From 6c6330fe85a776afed76e1df19e54bb7c5d9b515 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Fri, 10 Jul 2020 16:55:47 +0800 Subject: [PATCH 001/706] Add Colab Tutorial (#7) * add badge * Created using Colaboratory * add read docs * Fixed readthedocs * fixed colab ref * add readthedocs.txt * add link * fixed modelzoo link * add missing reference * fixed docs * remove relative path in docs * add colab in README.md * update docker image * add newline * fixed br --- .readthedocs.yml | 7 + README.md | 11 + demo/MMSegmentation_Tutorial.ipynb | 1416 ++++++++++++++++++++++++ docker/Dockerfile | 5 +- docs/getting_started.md | 5 +- docs/model_zoo.md | 32 +- docs/tutorials/index.rst | 1 + docs/tutorials/new_modules.md | 2 +- mmseg/datasets/pipelines/formating.py | 2 +- mmseg/datasets/pipelines/transforms.py | 9 +- mmseg/models/backbones/resnet.py | 23 +- requirements/docs.txt | 4 + requirements/readthedocs.txt | 3 + 13 files changed, 1485 insertions(+), 35 deletions(-) create mode 100644 .readthedocs.yml create mode 100644 demo/MMSegmentation_Tutorial.ipynb create mode 100644 requirements/docs.txt create mode 100644 requirements/readthedocs.txt diff --git a/.readthedocs.yml b/.readthedocs.yml new file mode 100644 index 0000000000..73ea4cb7e9 --- /dev/null +++ b/.readthedocs.yml @@ -0,0 +1,7 @@ +version: 2 + +python: + version: 3.7 + install: + - requirements: requirements/docs.txt + - requirements: requirements/readthedocs.txt diff --git a/README.md b/README.md index 9e7cf39b3f..8634ad850f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,14 @@
+
+ +[![docs](https://img.shields.io/badge/docs-latest-blue)](https://mmsegmentation.readthedocs.io/en/latest/) +[![badge](https://github.com/open-mmlab/mmsegmentation/workflows/build/badge.svg)](https://github.com/open-mmlab/mmsegmentation/actions) +[![codecov](https://codecov.io/gh/open-mmlab/mmsegmentation/branch/master/graph/badge.svg)](https://codecov.io/gh/open-mmlab/mmsegmentation) +[![license](https://img.shields.io/github/license/open-mmlab/mmsegmentation.svg)](https://github.com/open-mmlab/mmsegmentation/blob/master/LICENSE) + +Documentation: https://mmsegmentation.readthedocs.io/ ## Introduction @@ -50,6 +58,7 @@ Supported methods: - [x] [DeepLabV3+](configs/deeplabv3plus) - [x] [UPerNet](configs/upernet) - [x] [NonLocal Net](configs/nonlocal_net) +- [x] [EncNet](configs/encnet) - [x] [CCNet](configs/ccnet) - [x] [DANet](configs/danet) - [x] [GCNet](configs/gcnet) @@ -65,6 +74,8 @@ Please refer to [INSTALL.md](docs/install.md) for installation and dataset prepa Please see [getting_started.md](docs/getting_started.md) for the basic usage of MMSegmentation. There are also tutorials for [adding new dataset](docs/tutorials/new_dataset.md), [designing data pipeline](docs/tutorials/data_pipeline.md), and [adding new modules](docs/tutorials/new_modules.md). +A Colab tutorial is also provided. You may preview the notebook [here](demo/MMSegmentation_Tutorial.ipynb) or directly [run](https://colab.research.google.com/github/open-mmlab/mmsegmentation/blob/master/demo/MMSegmentation_Tutorial.ipynb) on Colab. + ## Contributing We appreciate all contributions to improve MMSegmentation. Please refer to [CONTRIBUTING.md](.github/CONTRIBUTING.md) for the contributing guideline. diff --git a/demo/MMSegmentation_Tutorial.ipynb b/demo/MMSegmentation_Tutorial.ipynb new file mode 100644 index 0000000000..d04084afb2 --- /dev/null +++ b/demo/MMSegmentation_Tutorial.ipynb @@ -0,0 +1,1416 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "MMSegmentation Tutorial.ipynb", + "provenance": [], + "collapsed_sections": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "accelerator": "GPU", + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "40a3c0b2c7a44085b69b9c741df20b3e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "state": { + "_view_name": "HBoxView", + "_dom_classes": [], + "_model_name": "HBoxModel", + "_view_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_view_count": null, + "_view_module_version": "1.5.0", + "box_style": "", + "layout": "IPY_MODEL_ec96fb4251ea4b8ea268a2bc62b9c75b", + "_model_module": "@jupyter-widgets/controls", + "children": [ + "IPY_MODEL_dae4b284c5a944639991d29f4e79fac5", + "IPY_MODEL_c78567afd0a6418781118ac9f4ecdea9" + ] + } + }, + "ec96fb4251ea4b8ea268a2bc62b9c75b": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "state": { + "_view_name": "LayoutView", + "grid_template_rows": null, + "right": null, + "justify_content": null, + "_view_module": "@jupyter-widgets/base", + "overflow": null, + "_model_module_version": "1.2.0", + "_view_count": null, + "flex_flow": null, + "width": null, + "min_width": null, + "border": null, + "align_items": null, + "bottom": null, + "_model_module": "@jupyter-widgets/base", + "top": null, + "grid_column": null, + "overflow_y": null, + "overflow_x": null, + "grid_auto_flow": null, + "grid_area": null, + "grid_template_columns": null, + "flex": null, + "_model_name": "LayoutModel", + "justify_items": null, + "grid_row": null, + "max_height": null, + "align_content": null, + "visibility": null, + "align_self": null, + "height": null, + "min_height": null, + "padding": null, + "grid_auto_rows": null, + "grid_gap": null, + "max_width": null, + "order": null, + "_view_module_version": "1.2.0", + "grid_template_areas": null, + "object_position": null, + "object_fit": null, + "grid_auto_columns": null, + "margin": null, + "display": null, + "left": null + } + }, + "dae4b284c5a944639991d29f4e79fac5": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "state": { + "_view_name": "ProgressView", + "style": "IPY_MODEL_32b7d27a143c41b5bb90f1d8e66a1c67", + "_dom_classes": [], + "description": "100%", + "_model_name": "FloatProgressModel", + "bar_style": "success", + "max": 102567401, + "_view_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "value": 102567401, + "_view_count": null, + "_view_module_version": "1.5.0", + "orientation": "horizontal", + "min": 0, + "description_tooltip": null, + "_model_module": "@jupyter-widgets/controls", + "layout": "IPY_MODEL_55d75951f51c4ab89e32045c3d6db8a4" + } + }, + "c78567afd0a6418781118ac9f4ecdea9": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "state": { + "_view_name": "HTMLView", + "style": "IPY_MODEL_9d29e2d02731416d9852e9c7c08d1665", + "_dom_classes": [], + "description": "", + "_model_name": "HTMLModel", + "placeholder": "​", + "_view_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "value": " 97.8M/97.8M [00:10<00:00, 9.75MB/s]", + "_view_count": null, + "_view_module_version": "1.5.0", + "description_tooltip": null, + "_model_module": "@jupyter-widgets/controls", + "layout": "IPY_MODEL_1bb2b93526cd421aa5d5b86d678932ab" + } + }, + "32b7d27a143c41b5bb90f1d8e66a1c67": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "state": { + "_view_name": "StyleView", + "_model_name": "ProgressStyleModel", + "description_width": "initial", + "_view_module": "@jupyter-widgets/base", + "_model_module_version": "1.5.0", + "_view_count": null, + "_view_module_version": "1.2.0", + "bar_color": null, + "_model_module": "@jupyter-widgets/controls" + } + }, + "55d75951f51c4ab89e32045c3d6db8a4": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "state": { + "_view_name": "LayoutView", + "grid_template_rows": null, + "right": null, + "justify_content": null, + "_view_module": "@jupyter-widgets/base", + "overflow": null, + "_model_module_version": "1.2.0", + "_view_count": null, + "flex_flow": null, + "width": null, + "min_width": null, + "border": null, + "align_items": null, + "bottom": null, + "_model_module": "@jupyter-widgets/base", + "top": null, + "grid_column": null, + "overflow_y": null, + "overflow_x": null, + "grid_auto_flow": null, + "grid_area": null, + "grid_template_columns": null, + "flex": null, + "_model_name": "LayoutModel", + "justify_items": null, + "grid_row": null, + "max_height": null, + "align_content": null, + "visibility": null, + "align_self": null, + "height": null, + "min_height": null, + "padding": null, + "grid_auto_rows": null, + "grid_gap": null, + "max_width": null, + "order": null, + "_view_module_version": "1.2.0", + "grid_template_areas": null, + "object_position": null, + "object_fit": null, + "grid_auto_columns": null, + "margin": null, + "display": null, + "left": null + } + }, + "9d29e2d02731416d9852e9c7c08d1665": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "state": { + "_view_name": "StyleView", + "_model_name": "DescriptionStyleModel", + "description_width": "", + "_view_module": "@jupyter-widgets/base", + "_model_module_version": "1.5.0", + "_view_count": null, + "_view_module_version": "1.2.0", + "_model_module": "@jupyter-widgets/controls" + } + }, + "1bb2b93526cd421aa5d5b86d678932ab": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "state": { + "_view_name": "LayoutView", + "grid_template_rows": null, + "right": null, + "justify_content": null, + "_view_module": "@jupyter-widgets/base", + "overflow": null, + "_model_module_version": "1.2.0", + "_view_count": null, + "flex_flow": null, + "width": null, + "min_width": null, + "border": null, + "align_items": null, + "bottom": null, + "_model_module": "@jupyter-widgets/base", + "top": null, + "grid_column": null, + "overflow_y": null, + "overflow_x": null, + "grid_auto_flow": null, + "grid_area": null, + "grid_template_columns": null, + "flex": null, + "_model_name": "LayoutModel", + "justify_items": null, + "grid_row": null, + "max_height": null, + "align_content": null, + "visibility": null, + "align_self": null, + "height": null, + "min_height": null, + "padding": null, + "grid_auto_rows": null, + "grid_gap": null, + "max_width": null, + "order": null, + "_view_module_version": "1.2.0", + "grid_template_areas": null, + "object_position": null, + "object_fit": null, + "grid_auto_columns": null, + "margin": null, + "display": null, + "left": null + } + } + } + }, + "pycharm": { + "stem_cell": { + "cell_type": "raw", + "source": [], + "metadata": { + "collapsed": false + } + } + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "FVmnaxFJvsb8", + "colab_type": "text" + }, + "source": [ + "# MMSegmentation Tutorial\n", + "Welcome to MMSegmentation! \n", + "\n", + "In this tutorial, we demo\n", + "* How to do inference with MMSeg trained weight\n", + "* How to train on your own dataset and visualize the results. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QS8YHrEhbpas", + "colab_type": "text" + }, + "source": [ + "## Install MMSegmentation\n", + "This step may take several minutes. \n", + "\n", + "We use PyTorch 1.5.0 and CUDA 10.1 for this tutorial. You may install other versions by change the version number in pip install command. " + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "UWyLrLYaNEaL", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 170 + }, + "outputId": "35b19c63-d6f3-49e1-dcaa-aed3ecd85ed7" + }, + "source": [ + "# Check nvcc version\n", + "!nvcc -V\n", + "# Check GCC version\n", + "!gcc --version" + ], + "execution_count": 1, + "outputs": [ + { + "output_type": "stream", + "text": [ + "nvcc: NVIDIA (R) Cuda compiler driver\n", + "Copyright (c) 2005-2019 NVIDIA Corporation\n", + "Built on Sun_Jul_28_19:07:16_PDT_2019\n", + "Cuda compilation tools, release 10.1, V10.1.243\n", + "gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0\n", + "Copyright (C) 2017 Free Software Foundation, Inc.\n", + "This is free software; see the source for copying conditions. There is NO\n", + "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n", + "\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Ki3WUBjKbutg", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 340 + }, + "outputId": "69f42fab-3f44-44d0-bd62-b73836f90a3d" + }, + "source": [ + "# Install PyTorch\n", + "!pip install -U torch==1.5.0+cu101 torchvision==0.6.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html\n", + "# Install MMCV\n", + "!pip install mmcv-full==latest+torch1.5.0+cu101 -f https://openmmlab.oss-accelerate.aliyuncs.com/mmcv/dist/index.html" + ], + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Looking in links: https://download.pytorch.org/whl/torch_stable.html\n", + "Requirement already up-to-date: torch==1.5.0+cu101 in /usr/local/lib/python3.6/dist-packages (1.5.0+cu101)\n", + "Requirement already up-to-date: torchvision==0.6.0+cu101 in /usr/local/lib/python3.6/dist-packages (0.6.0+cu101)\n", + "Requirement already satisfied, skipping upgrade: future in /usr/local/lib/python3.6/dist-packages (from torch==1.5.0+cu101) (0.16.0)\n", + "Requirement already satisfied, skipping upgrade: numpy in /usr/local/lib/python3.6/dist-packages (from torch==1.5.0+cu101) (1.18.5)\n", + "Requirement already satisfied, skipping upgrade: pillow>=4.1.1 in /usr/local/lib/python3.6/dist-packages (from torchvision==0.6.0+cu101) (7.0.0)\n", + "Looking in links: https://openmmlab.oss-accelerate.aliyuncs.com/mmcv/dist/index.html\n", + "Collecting mmcv-full==latest+torch1.5.0+cu101\n", + " Using cached https://openmmlab.oss-accelerate.aliyuncs.com/mmcv/dist/latest/torch1.5.0/cu101/mmcv_full-latest%2Btorch1.5.0%2Bcu101-cp36-cp36m-manylinux1_x86_64.whl\n", + "Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (1.18.5)\n", + "Requirement already satisfied: addict in /usr/local/lib/python3.6/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (2.2.1)\n", + "Requirement already satisfied: yapf in /usr/local/lib/python3.6/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (0.30.0)\n", + "Requirement already satisfied: pyyaml in /usr/local/lib/python3.6/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (3.13)\n", + "Requirement already satisfied: opencv-python>=3 in /usr/local/lib/python3.6/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (4.1.2.30)\n", + "Installing collected packages: mmcv-full\n", + " Found existing installation: mmcv-full 1.0.0\n", + " Uninstalling mmcv-full-1.0.0:\n", + " Successfully uninstalled mmcv-full-1.0.0\n", + "Successfully installed mmcv-full-1.0.0\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "nR-hHRvbNJJZ", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 374 + }, + "outputId": "ca6d9c48-0034-47cf-97b5-f31f529cc31c" + }, + "source": [ + "!rm -rf mmsegmentation\n", + "!git clone https://github.com/open-mmlab/mmsegmentation.git \n", + "%cd mmsegmentation\n", + "!pip install -e ." + ], + "execution_count": 3, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Cloning into 'mmsegmentation'...\n", + "remote: Enumerating objects: 485, done.\u001b[K\n", + "remote: Counting objects: 100% (485/485), done.\u001b[K\n", + "remote: Compressing objects: 100% (303/303), done.\u001b[K\n", + "remote: Total 649 (delta 280), reused 317 (delta 171), pack-reused 164\u001b[K\n", + "Receiving objects: 100% (649/649), 1.96 MiB | 3.99 MiB/s, done.\n", + "Resolving deltas: 100% (364/364), done.\n", + "/content/mmsegmentation\n", + "Obtaining file:///content/mmsegmentation\n", + "Requirement already satisfied: matplotlib in /usr/local/lib/python3.6/dist-packages (from mmseg==0.5.0+b2724da) (3.2.2)\n", + "Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from mmseg==0.5.0+b2724da) (1.18.5)\n", + "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib->mmseg==0.5.0+b2724da) (2.4.7)\n", + "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib->mmseg==0.5.0+b2724da) (2.8.1)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib->mmseg==0.5.0+b2724da) (1.2.0)\n", + "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.6/dist-packages (from matplotlib->mmseg==0.5.0+b2724da) (0.10.0)\n", + "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.6/dist-packages (from python-dateutil>=2.1->matplotlib->mmseg==0.5.0+b2724da) (1.12.0)\n", + "Installing collected packages: mmseg\n", + " Found existing installation: mmseg 0.5.0+b2724da\n", + " Can't uninstall 'mmseg'. No files were found to uninstall.\n", + " Running setup.py develop for mmseg\n", + "Successfully installed mmseg\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "mAE_h7XhPT7d", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "912ec9be-4103-40b8-91cc-4d31e9415f60" + }, + "source": [ + "# Check Pytorch installation\n", + "import torch, torchvision\n", + "print(torch.__version__, torch.cuda.is_available())\n", + "\n", + "# Check MMSegmentation installation\n", + "import mmseg\n", + "print(mmseg.__version__)" + ], + "execution_count": 4, + "outputs": [ + { + "output_type": "stream", + "text": [ + "1.5.0+cu101 True\n", + "0.5.0+b2724da\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "eUcuC3dUv32I", + "colab_type": "text" + }, + "source": [ + "## Run Inference with MMSeg trained weight" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "2hd41IGaiNet", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 204 + }, + "outputId": "2834674e-deef-49d7-cd4c-db8dd1ae9733" + }, + "source": [ + "!mkdir checkpoints\n", + "!wget https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth -P checkpoints" + ], + "execution_count": 5, + "outputs": [ + { + "output_type": "stream", + "text": [ + "--2020-07-09 19:13:21-- https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth\n", + "Resolving open-mmlab.s3.ap-northeast-2.amazonaws.com (open-mmlab.s3.ap-northeast-2.amazonaws.com)... 52.219.56.140\n", + "Connecting to open-mmlab.s3.ap-northeast-2.amazonaws.com (open-mmlab.s3.ap-northeast-2.amazonaws.com)|52.219.56.140|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 196205945 (187M) [application/x-www-form-urlencoded]\n", + "Saving to: ‘checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth’\n", + "\n", + "pspnet_r50-d8_512x1 100%[===================>] 187.12M 11.8MB/s in 18s \n", + "\n", + "2020-07-09 19:13:40 (10.4 MB/s) - ‘checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth’ saved [196205945/196205945]\n", + "\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "H8Fxg8i-wHJE", + "colab_type": "code", + "colab": {} + }, + "source": [ + "from mmseg.apis import inference_segmentor, init_segmentor, show_result_pyplot\n", + "from mmseg.core.evaluation import get_palette" + ], + "execution_count": 6, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "umk8sJ0Xuace", + "colab_type": "code", + "colab": {} + }, + "source": [ + "config_file = 'configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py'\n", + "checkpoint_file = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'" + ], + "execution_count": 7, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "nWlQFuTgudxu", + "colab_type": "code", + "colab": {} + }, + "source": [ + "# build the model from a config file and a checkpoint file\n", + "model = init_segmentor(config_file, checkpoint_file, device='cuda:0')" + ], + "execution_count": 8, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "izFv6pSRujk9", + "colab_type": "code", + "colab": {} + }, + "source": [ + "# test a single image\n", + "img = 'demo/demo.png'\n", + "result = inference_segmentor(model, img)" + ], + "execution_count": 9, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "bDcs9udgunQK", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 504 + }, + "outputId": "8221fdb1-92af-4d7c-e65b-c7adf0f5a8af" + }, + "source": [ + "# show the results\n", + "show_result_pyplot(model, img, result, get_palette('cityscapes'))" + ], + "execution_count": 10, + "outputs": [ + { + "output_type": "stream", + "text": [ + "/content/mmsegmentation/mmseg/models/segmentors/base.py:265: UserWarning: show==False and out_file is not specified, only result image will be returned\n", + " warnings.warn('show==False and out_file is not specified, only '\n" + ], + "name": "stderr" + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Ta51clKX4cwM", + "colab_type": "text" + }, + "source": [ + "## Train a semantic segmentation model on a new dataset\n", + "\n", + "To train on a customized dataset, the following steps are neccessary. \n", + "1. Add a new dataset class. \n", + "2. Create a config file accordingly. \n", + "3. Perform training and evaluation. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "AcZg6x_K5Zs3", + "colab_type": "text" + }, + "source": [ + "### Add a new dataset\n", + "\n", + "Datasets in MMSegmentation require image and semantic segmentation maps to be placed in folders with the same perfix. To support a new dataset, we may need to modify the original file structure. \n", + "\n", + "In this tutorial, we give an example of converting the dataset. You may refer to [docs](https://github.com/open-mmlab/mmsegmentation/docs/tutorials/new_dataset.md) for details about dataset reorganization. \n", + "\n", + "We use [Standord Background Dataset](http://dags.stanford.edu/projects/scenedataset.html) as an example. The dataset contains 715 images chosen from existing public datasets [LabelMe](http://labelme.csail.mit.edu), [MSRC](http://research.microsoft.com/en-us/projects/objectclassrecognition), [PASCAL VOC](http://pascallin.ecs.soton.ac.uk/challenges/VOC) and [Geometric Context](http://www.cs.illinois.edu/homes/dhoiem/). Images from these datasets are mainly outdoor scenes, each containing approximately 320-by-240 pixels. \n", + "In this tutorial, we use the region annotations as labels. There are 8 classes in total, i.e. sky, tree, road, grass, water, building, mountain, and foreground object. " + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "TFIt7MHq5Wls", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 204 + }, + "outputId": "5e56d5dc-4f1c-4d7c-f833-51cfdbf8d481" + }, + "source": [ + "# download and unzip\n", + "!wget http://dags.stanford.edu/data/iccv09Data.tar.gz -O standford_background.tar.gz\n", + "!tar xf standford_background.tar.gz" + ], + "execution_count": 11, + "outputs": [ + { + "output_type": "stream", + "text": [ + "--2020-07-09 19:13:50-- http://dags.stanford.edu/data/iccv09Data.tar.gz\n", + "Resolving dags.stanford.edu (dags.stanford.edu)... 171.64.68.10\n", + "Connecting to dags.stanford.edu (dags.stanford.edu)|171.64.68.10|:80... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 14727974 (14M) [application/x-gzip]\n", + "Saving to: ‘standford_background.tar.gz’\n", + "\n", + "standford_backgroun 100%[===================>] 14.04M 3.22MB/s in 4.4s \n", + "\n", + "2020-07-09 19:13:55 (3.22 MB/s) - ‘standford_background.tar.gz’ saved [14727974/14727974]\n", + "\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "78LIci7F9WWI", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 377 + }, + "outputId": "a7f339c7-a071-40db-f30d-44028dd2ce1c" + }, + "source": [ + "# Let's take a look at the dataset\n", + "import mmcv\n", + "import matplotlib.pyplot as plt\n", + "\n", + "img = mmcv.imread('iccv09Data/images/6000124.jpg')\n", + "plt.figure(figsize=(8, 6))\n", + "plt.imshow(mmcv.bgr2rgb(img))\n", + "plt.show()" + ], + "execution_count": 12, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "L5mNQuc2GsVE", + "colab_type": "text" + }, + "source": [ + "We need to convert the annotation into semantic map format as an image." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "WnGZfribFHCx", + "colab_type": "code", + "colab": {} + }, + "source": [ + "import os.path as osp\n", + "import numpy as np\n", + "from PIL import Image\n", + "# convert dataset annotation to semantic segmentation map\n", + "data_root = 'iccv09Data'\n", + "img_dir = 'images'\n", + "ann_dir = 'labels'\n", + "# define class and plaette for better visualization\n", + "classes = ('sky', 'tree', 'road', 'grass', 'water', 'bldg', 'mntn', 'fg obj')\n", + "palette = [[128, 128, 128], [129, 127, 38], [120, 69, 125], [53, 125, 34], \n", + " [0, 11, 123], [118, 20, 12], [122, 81, 25], [241, 134, 51]]\n", + "for file in mmcv.scandir(osp.join(data_root, ann_dir), suffix='.regions.txt'):\n", + " seg_map = np.loadtxt(osp.join(data_root, ann_dir, file)).astype(np.uint8)\n", + " seg_img = Image.fromarray(seg_map).convert('P')\n", + " seg_img.putpalette(np.array(palette, dtype=np.uint8))\n", + " seg_img.save(osp.join(data_root, ann_dir, file.replace('.regions.txt', \n", + " '.png')))" + ], + "execution_count": 13, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "5MCSS9ABfSks", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 377 + }, + "outputId": "d093e054-8db3-40e5-a800-061de844597f" + }, + "source": [ + "# Let's take a look at the segmentation map we got\n", + "import matplotlib.patches as mpatches\n", + "img = Image.open('iccv09Data/labels/6000124.png')\n", + "plt.figure(figsize=(8, 6))\n", + "im = plt.imshow(np.array(img.convert('RGB')))\n", + "\n", + "# create a patch (proxy artist) for every color \n", + "patches = [mpatches.Patch(color=np.array(palette[i])/255., \n", + " label=classes[i]) for i in range(8)]\n", + "# put those patched as legend-handles into the legend\n", + "plt.legend(handles=patches, bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0., \n", + " fontsize='large')\n", + "\n", + "plt.show()" + ], + "execution_count": 14, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "WbeLYCp2k5hl", + "colab_type": "code", + "colab": {} + }, + "source": [ + "# split train/val set randomly\n", + "split_dir = 'splits'\n", + "mmcv.mkdir_or_exist(osp.join(data_root, split_dir))\n", + "filename_list = [osp.splitext(filename)[0] for filename in mmcv.scandir(\n", + " osp.join(data_root, ann_dir), suffix='.png')]\n", + "with open(osp.join(data_root, split_dir, 'train.txt'), 'w') as f:\n", + " # select first 4/5 as train set\n", + " train_length = int(len(filename_list)*4/5)\n", + " f.writelines(line + '\\n' for line in filename_list[:train_length])\n", + "with open(osp.join(data_root, split_dir, 'val.txt'), 'w') as f:\n", + " # select last 1/5 as train set\n", + " f.writelines(line + '\\n' for line in filename_list[train_length:])" + ], + "execution_count": 15, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "HchvmGYB_rrO", + "colab_type": "text" + }, + "source": [ + "After downloading the data, we need to implement `load_annotations` function in the new dataset class `StandfordBackgroundDataset`." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "LbsWOw62_o-X", + "colab_type": "code", + "colab": {} + }, + "source": [ + "from mmseg.datasets.builder import DATASETS\n", + "from mmseg.datasets.custom import CustomDataset\n", + "\n", + "@DATASETS.register_module()\n", + "class StandfordBackgroundDataset(CustomDataset):\n", + " CLASSES = classes\n", + " PALETTE = palette\n", + " def __init__(self, split, **kwargs):\n", + " super().__init__(img_suffix='.jpg', seg_map_suffix='.png', \n", + " split=split, **kwargs)\n", + " assert osp.exists(self.img_dir) and self.split is not None\n", + "\n", + " " + ], + "execution_count": 16, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "yUVtmn3Iq3WA", + "colab_type": "text" + }, + "source": [ + "### Create a config file\n", + "In the next step, we need to modify the config for the training. To accelerate the process, we finetune the model from trained weights." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Wwnj9tRzqX_A", + "colab_type": "code", + "colab": {} + }, + "source": [ + "from mmcv import Config\n", + "cfg = Config.fromfile('configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py')" + ], + "execution_count": 17, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "1y2oV5w97jQo", + "colab_type": "text" + }, + "source": [ + "Since the given config is used to train PSPNet on cityscapes dataset, we need to modify it accordingly for our new dataset. " + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "eyKnYC1Z7iCV", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "outputId": "a25241e2-431c-4944-b0b8-b9c792d5aadd" + }, + "source": [ + "from mmseg.apis import set_random_seed\n", + "\n", + "# Since we use ony one GPU, BN is used instead of SyncBN\n", + "cfg.norm_cfg = dict(type='BN', requires_grad=True)\n", + "cfg.model.backbone.norm_cfg = cfg.norm_cfg\n", + "cfg.model.decode_head.norm_cfg = cfg.norm_cfg\n", + "cfg.model.auxiliary_head.norm_cfg = cfg.norm_cfg\n", + "# modify num classes of the model in decode/auxiliary head\n", + "cfg.model.decode_head.num_classes = 8\n", + "cfg.model.auxiliary_head.num_classes = 8\n", + "\n", + "# Modify dataset type and path\n", + "cfg.dataset_type = 'StandfordBackgroundDataset'\n", + "cfg.data_root = data_root\n", + "\n", + "cfg.data.samples_per_gpu = 8\n", + "cfg.data.workers_per_gpu=8\n", + "\n", + "cfg.img_norm_cfg = dict(\n", + " mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)\n", + "cfg.crop_size = (256, 256)\n", + "cfg.train_pipeline = [\n", + " dict(type='LoadImageFromFile'),\n", + " dict(type='LoadAnnotations'),\n", + " dict(type='Resize', img_scale=(320, 240), ratio_range=(0.5, 2.0)),\n", + " dict(type='RandomCrop', crop_size=cfg.crop_size, cat_max_ratio=0.75),\n", + " dict(type='RandomFlip', flip_ratio=0.5),\n", + " dict(type='PhotoMetricDistortion'),\n", + " dict(type='Normalize', **cfg.img_norm_cfg),\n", + " dict(type='Pad', size=cfg.crop_size, pad_val=0, seg_pad_val=255),\n", + " dict(type='DefaultFormatBundle'),\n", + " dict(type='Collect', keys=['img', 'gt_semantic_seg']),\n", + "]\n", + "\n", + "cfg.test_pipeline = [\n", + " dict(type='LoadImageFromFile'),\n", + " dict(\n", + " type='MultiScaleFlipAug',\n", + " img_scale=(320, 240),\n", + " # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],\n", + " flip=False,\n", + " transforms=[\n", + " dict(type='Resize', keep_ratio=True),\n", + " dict(type='RandomFlip'),\n", + " dict(type='Normalize', **cfg.img_norm_cfg),\n", + " dict(type='ImageToTensor', keys=['img']),\n", + " dict(type='Collect', keys=['img']),\n", + " ])\n", + "]\n", + "\n", + "\n", + "cfg.data.train.type = cfg.dataset_type\n", + "cfg.data.train.data_root = cfg.data_root\n", + "cfg.data.train.img_dir = img_dir\n", + "cfg.data.train.ann_dir = ann_dir\n", + "cfg.data.train.pipeline = cfg.train_pipeline\n", + "cfg.data.train.split = 'splits/train.txt'\n", + "\n", + "cfg.data.val.type = cfg.dataset_type\n", + "cfg.data.val.data_root = cfg.data_root\n", + "cfg.data.val.img_dir = img_dir\n", + "cfg.data.val.ann_dir = ann_dir\n", + "cfg.data.val.pipeline = cfg.test_pipeline\n", + "cfg.data.val.split = 'splits/val.txt'\n", + "\n", + "cfg.data.test.type = cfg.dataset_type\n", + "cfg.data.test.data_root = cfg.data_root\n", + "cfg.data.test.img_dir = img_dir\n", + "cfg.data.test.ann_dir = ann_dir\n", + "cfg.data.test.pipeline = cfg.test_pipeline\n", + "cfg.data.test.split = 'splits/val.txt'\n", + "\n", + "# We can still use the pre-trained Mask RCNN model though we do not need to\n", + "# use the mask branch\n", + "cfg.load_from = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'\n", + "\n", + "# Set up working dir to save files and logs.\n", + "cfg.work_dir = './work_dirs/tutorial'\n", + "\n", + "cfg.total_iters = 200\n", + "cfg.log_config.interval = 10\n", + "cfg.evaluation.interval = 200\n", + "cfg.checkpoint_config.interval = 200\n", + "\n", + "# Set seed to facitate reproducing the result\n", + "cfg.seed = 0\n", + "set_random_seed(0, deterministic=False)\n", + "cfg.gpu_ids = range(1)\n", + "\n", + "# Let's have a look at the final config used for training\n", + "print(f'Config:\\n{cfg.pretty_text}')" + ], + "execution_count": 18, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Config:\n", + "norm_cfg = dict(type='BN', requires_grad=True)\n", + "model = dict(\n", + " type='EncoderDecoder',\n", + " pretrained='open-mmlab://resnet50_v1c',\n", + " backbone=dict(\n", + " type='ResNetV1c',\n", + " depth=50,\n", + " num_stages=4,\n", + " out_indices=(0, 1, 2, 3),\n", + " dilations=(1, 1, 2, 4),\n", + " strides=(1, 2, 1, 1),\n", + " norm_cfg=dict(type='BN', requires_grad=True),\n", + " norm_eval=False,\n", + " style='pytorch',\n", + " contract_dilation=True),\n", + " decode_head=dict(\n", + " type='PSPHead',\n", + " in_channels=2048,\n", + " in_index=3,\n", + " channels=512,\n", + " pool_scales=(1, 2, 3, 6),\n", + " drop_out_ratio=0.1,\n", + " num_classes=8,\n", + " norm_cfg=dict(type='BN', requires_grad=True),\n", + " align_corners=False,\n", + " loss_decode=dict(\n", + " type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),\n", + " auxiliary_head=dict(\n", + " type='FCNHead',\n", + " in_channels=1024,\n", + " in_index=2,\n", + " channels=256,\n", + " num_convs=1,\n", + " concat_input=False,\n", + " drop_out_ratio=0.1,\n", + " num_classes=8,\n", + " norm_cfg=dict(type='BN', requires_grad=True),\n", + " align_corners=False,\n", + " loss_decode=dict(\n", + " type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)))\n", + "train_cfg = dict()\n", + "test_cfg = dict(mode='whole')\n", + "dataset_type = 'StandfordBackgroundDataset'\n", + "data_root = 'iccv09Data'\n", + "img_norm_cfg = dict(\n", + " mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)\n", + "crop_size = (256, 256)\n", + "train_pipeline = [\n", + " dict(type='LoadImageFromFile'),\n", + " dict(type='LoadAnnotations'),\n", + " dict(type='Resize', img_scale=(320, 240), ratio_range=(0.5, 2.0)),\n", + " dict(type='RandomCrop', crop_size=(256, 256), cat_max_ratio=0.75),\n", + " dict(type='RandomFlip', flip_ratio=0.5),\n", + " dict(type='PhotoMetricDistortion'),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[123.675, 116.28, 103.53],\n", + " std=[58.395, 57.12, 57.375],\n", + " to_rgb=True),\n", + " dict(type='Pad', size=(256, 256), pad_val=0, seg_pad_val=255),\n", + " dict(type='DefaultFormatBundle'),\n", + " dict(type='Collect', keys=['img', 'gt_semantic_seg'])\n", + "]\n", + "test_pipeline = [\n", + " dict(type='LoadImageFromFile'),\n", + " dict(\n", + " type='MultiScaleFlipAug',\n", + " img_scale=(320, 240),\n", + " flip=False,\n", + " transforms=[\n", + " dict(type='Resize', keep_ratio=True),\n", + " dict(type='RandomFlip'),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[123.675, 116.28, 103.53],\n", + " std=[58.395, 57.12, 57.375],\n", + " to_rgb=True),\n", + " dict(type='ImageToTensor', keys=['img']),\n", + " dict(type='Collect', keys=['img'])\n", + " ])\n", + "]\n", + "data = dict(\n", + " samples_per_gpu=8,\n", + " workers_per_gpu=8,\n", + " train=dict(\n", + " type='StandfordBackgroundDataset',\n", + " data_root='iccv09Data',\n", + " img_dir='images',\n", + " ann_dir='labels',\n", + " pipeline=[\n", + " dict(type='LoadImageFromFile'),\n", + " dict(type='LoadAnnotations'),\n", + " dict(type='Resize', img_scale=(320, 240), ratio_range=(0.5, 2.0)),\n", + " dict(type='RandomCrop', crop_size=(256, 256), cat_max_ratio=0.75),\n", + " dict(type='RandomFlip', flip_ratio=0.5),\n", + " dict(type='PhotoMetricDistortion'),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[123.675, 116.28, 103.53],\n", + " std=[58.395, 57.12, 57.375],\n", + " to_rgb=True),\n", + " dict(type='Pad', size=(256, 256), pad_val=0, seg_pad_val=255),\n", + " dict(type='DefaultFormatBundle'),\n", + " dict(type='Collect', keys=['img', 'gt_semantic_seg'])\n", + " ],\n", + " split='splits/train.txt'),\n", + " val=dict(\n", + " type='StandfordBackgroundDataset',\n", + " data_root='iccv09Data',\n", + " img_dir='images',\n", + " ann_dir='labels',\n", + " pipeline=[\n", + " dict(type='LoadImageFromFile'),\n", + " dict(\n", + " type='MultiScaleFlipAug',\n", + " img_scale=(320, 240),\n", + " flip=False,\n", + " transforms=[\n", + " dict(type='Resize', keep_ratio=True),\n", + " dict(type='RandomFlip'),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[123.675, 116.28, 103.53],\n", + " std=[58.395, 57.12, 57.375],\n", + " to_rgb=True),\n", + " dict(type='ImageToTensor', keys=['img']),\n", + " dict(type='Collect', keys=['img'])\n", + " ])\n", + " ],\n", + " split='splits/val.txt'),\n", + " test=dict(\n", + " type='StandfordBackgroundDataset',\n", + " data_root='iccv09Data',\n", + " img_dir='images',\n", + " ann_dir='labels',\n", + " pipeline=[\n", + " dict(type='LoadImageFromFile'),\n", + " dict(\n", + " type='MultiScaleFlipAug',\n", + " img_scale=(320, 240),\n", + " flip=False,\n", + " transforms=[\n", + " dict(type='Resize', keep_ratio=True),\n", + " dict(type='RandomFlip'),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[123.675, 116.28, 103.53],\n", + " std=[58.395, 57.12, 57.375],\n", + " to_rgb=True),\n", + " dict(type='ImageToTensor', keys=['img']),\n", + " dict(type='Collect', keys=['img'])\n", + " ])\n", + " ],\n", + " split='splits/val.txt'))\n", + "log_config = dict(\n", + " interval=10, hooks=[dict(type='TextLoggerHook', by_epoch=False)])\n", + "dist_params = dict(backend='nccl')\n", + "log_level = 'INFO'\n", + "load_from = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'\n", + "resume_from = None\n", + "workflow = [('train', 1)]\n", + "cudnn_benchmark = True\n", + "optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)\n", + "optimizer_config = dict()\n", + "lr_config = dict(policy='poly', power=0.9, min_lr=0.0001, by_epoch=False)\n", + "total_iters = 200\n", + "checkpoint_config = dict(by_epoch=False, interval=200)\n", + "evaluation = dict(interval=200, metric='mIoU')\n", + "work_dir = './work_dirs/tutorial'\n", + "seed = 0\n", + "gpu_ids = range(0, 1)\n", + "\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QWuH14LYF2gQ", + "colab_type": "text" + }, + "source": [ + "### Train and Evaluation" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "jYKoSfdMF12B", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 953, + "referenced_widgets": [ + "40a3c0b2c7a44085b69b9c741df20b3e", + "ec96fb4251ea4b8ea268a2bc62b9c75b", + "dae4b284c5a944639991d29f4e79fac5", + "c78567afd0a6418781118ac9f4ecdea9", + "32b7d27a143c41b5bb90f1d8e66a1c67", + "55d75951f51c4ab89e32045c3d6db8a4", + "9d29e2d02731416d9852e9c7c08d1665", + "1bb2b93526cd421aa5d5b86d678932ab" + ] + }, + "outputId": "1c0b5a11-434b-4c96-a4aa-9d685fff0856" + }, + "source": [ + "from mmseg.datasets import build_dataset\n", + "from mmseg.models import build_segmentor\n", + "from mmseg.apis import train_segmentor\n", + "\n", + "\n", + "# Build the dataset\n", + "datasets = [build_dataset(cfg.data.train)]\n", + "\n", + "# Build the detector\n", + "model = build_segmentor(\n", + " cfg.model, train_cfg=cfg.train_cfg, test_cfg=cfg.test_cfg)\n", + "# Add an attribute for visualization convenience\n", + "model.CLASSES = datasets[0].CLASSES\n", + "\n", + "# Create work_dir\n", + "mmcv.mkdir_or_exist(osp.abspath(cfg.work_dir))\n", + "train_segmentor(model, datasets, cfg, distributed=False, validate=True, \n", + " meta=dict())" + ], + "execution_count": 19, + "outputs": [ + { + "output_type": "stream", + "text": [ + "2020-07-09 19:14:27,264 - mmseg - INFO - Loaded 572 images\n", + "Downloading: \"https://open-mmlab.s3.ap-northeast-2.amazonaws.com/pretrain/third_party/resnet50_v1c-2cccc1ad.pth\" to /root/.cache/torch/checkpoints/resnet50_v1c-2cccc1ad.pth\n" + ], + "name": "stderr" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "40a3c0b2c7a44085b69b9c741df20b3e", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=102567401.0), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "2020-07-09 19:14:39,770 - mmseg - WARNING - The model and loaded state dict do not match exactly\n", + "\n", + "unexpected key in source state_dict: fc.weight, fc.bias\n", + "\n", + "2020-07-09 19:14:39,836 - mmseg - INFO - Loaded 143 images\n", + "2020-07-09 19:14:39,837 - mmseg - INFO - load checkpoint from checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth\n" + ], + "name": "stderr" + }, + { + "output_type": "stream", + "text": [ + "\n" + ], + "name": "stdout" + }, + { + "output_type": "stream", + "text": [ + "2020-07-09 19:14:39,990 - mmseg - WARNING - The model and loaded state dict do not match exactly\n", + "\n", + "size mismatch for decode_head.conv_seg.weight: copying a param with shape torch.Size([19, 512, 1, 1]) from checkpoint, the shape in current model is torch.Size([8, 512, 1, 1]).\n", + "size mismatch for decode_head.conv_seg.bias: copying a param with shape torch.Size([19]) from checkpoint, the shape in current model is torch.Size([8]).\n", + "size mismatch for auxiliary_head.conv_seg.weight: copying a param with shape torch.Size([19, 256, 1, 1]) from checkpoint, the shape in current model is torch.Size([8, 256, 1, 1]).\n", + "size mismatch for auxiliary_head.conv_seg.bias: copying a param with shape torch.Size([19]) from checkpoint, the shape in current model is torch.Size([8]).\n", + "2020-07-09 19:14:39,994 - mmseg - INFO - Start running, host: root@71c6cf9b06c5, work_dir: /content/mmsegmentation/work_dirs/tutorial\n", + "2020-07-09 19:14:39,995 - mmseg - INFO - workflow: [('train', 1)], max: 200 iters\n", + "2020-07-09 19:14:54,192 - mmseg - INFO - Iter [10/200]\tlr: 9.598e-03, eta: 0:04:21, time: 1.379, data_time: 0.002, memory: 3772, decode.loss_seg: 1.5616, decode.acc_seg: 46.9241, aux.loss_seg: 0.6853, aux.acc_seg: 38.7292, loss: 2.2469\n", + "2020-07-09 19:15:07,556 - mmseg - INFO - Iter [20/200]\tlr: 9.149e-03, eta: 0:04:04, time: 1.336, data_time: 0.016, memory: 3772, decode.loss_seg: 0.8215, decode.acc_seg: 68.8879, aux.loss_seg: 0.5371, aux.acc_seg: 67.9098, loss: 1.3586\n", + "2020-07-09 19:15:20,914 - mmseg - INFO - Iter [30/200]\tlr: 8.698e-03, eta: 0:03:49, time: 1.336, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5890, decode.acc_seg: 66.6747, aux.loss_seg: 0.3591, aux.acc_seg: 65.8590, loss: 0.9481\n", + "2020-07-09 19:15:34,235 - mmseg - INFO - Iter [40/200]\tlr: 8.244e-03, eta: 0:03:35, time: 1.332, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5888, decode.acc_seg: 71.6006, aux.loss_seg: 0.3192, aux.acc_seg: 66.5800, loss: 0.9079\n", + "2020-07-09 19:15:47,580 - mmseg - INFO - Iter [50/200]\tlr: 7.788e-03, eta: 0:03:21, time: 1.335, data_time: 0.016, memory: 3772, decode.loss_seg: 0.7011, decode.acc_seg: 65.8105, aux.loss_seg: 0.3223, aux.acc_seg: 62.9866, loss: 1.0235\n", + "2020-07-09 19:16:00,900 - mmseg - INFO - Iter [60/200]\tlr: 7.328e-03, eta: 0:03:07, time: 1.332, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5531, decode.acc_seg: 66.3968, aux.loss_seg: 0.2624, aux.acc_seg: 63.4624, loss: 0.8156\n", + "2020-07-09 19:16:14,199 - mmseg - INFO - Iter [70/200]\tlr: 6.865e-03, eta: 0:02:54, time: 1.330, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5888, decode.acc_seg: 66.5814, aux.loss_seg: 0.2905, aux.acc_seg: 62.6161, loss: 0.8792\n", + "2020-07-09 19:16:28,148 - mmseg - INFO - Iter [80/200]\tlr: 6.398e-03, eta: 0:02:41, time: 1.395, data_time: 0.016, memory: 3772, decode.loss_seg: 0.4988, decode.acc_seg: 69.7736, aux.loss_seg: 0.2388, aux.acc_seg: 68.5068, loss: 0.7376\n", + "2020-07-09 19:16:41,440 - mmseg - INFO - Iter [90/200]\tlr: 5.928e-03, eta: 0:02:27, time: 1.330, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5177, decode.acc_seg: 72.9874, aux.loss_seg: 0.2512, aux.acc_seg: 71.1549, loss: 0.7690\n", + "2020-07-09 19:16:54,703 - mmseg - INFO - Iter [100/200]\tlr: 5.453e-03, eta: 0:02:14, time: 1.326, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5794, decode.acc_seg: 65.9114, aux.loss_seg: 0.2557, aux.acc_seg: 65.2695, loss: 0.8351\n", + "2020-07-09 19:17:07,972 - mmseg - INFO - Iter [110/200]\tlr: 4.974e-03, eta: 0:02:00, time: 1.327, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5395, decode.acc_seg: 69.2955, aux.loss_seg: 0.2443, aux.acc_seg: 68.5840, loss: 0.7838\n", + "2020-07-09 19:17:21,227 - mmseg - INFO - Iter [120/200]\tlr: 4.489e-03, eta: 0:01:47, time: 1.326, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5568, decode.acc_seg: 70.1717, aux.loss_seg: 0.2490, aux.acc_seg: 69.4707, loss: 0.8058\n", + "2020-07-09 19:17:34,513 - mmseg - INFO - Iter [130/200]\tlr: 3.998e-03, eta: 0:01:33, time: 1.328, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5222, decode.acc_seg: 72.1791, aux.loss_seg: 0.2446, aux.acc_seg: 71.0046, loss: 0.7668\n", + "2020-07-09 19:17:47,812 - mmseg - INFO - Iter [140/200]\tlr: 3.500e-03, eta: 0:01:20, time: 1.330, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5178, decode.acc_seg: 72.7657, aux.loss_seg: 0.2552, aux.acc_seg: 70.8837, loss: 0.7730\n", + "2020-07-09 19:18:01,667 - mmseg - INFO - Iter [150/200]\tlr: 2.994e-03, eta: 0:01:07, time: 1.386, data_time: 0.016, memory: 3772, decode.loss_seg: 0.4719, decode.acc_seg: 72.4819, aux.loss_seg: 0.2263, aux.acc_seg: 69.9169, loss: 0.6982\n", + "2020-07-09 19:18:14,904 - mmseg - INFO - Iter [160/200]\tlr: 2.478e-03, eta: 0:00:53, time: 1.324, data_time: 0.016, memory: 3772, decode.loss_seg: 0.4494, decode.acc_seg: 75.4808, aux.loss_seg: 0.2228, aux.acc_seg: 73.2249, loss: 0.6723\n", + "2020-07-09 19:18:28,151 - mmseg - INFO - Iter [170/200]\tlr: 1.949e-03, eta: 0:00:40, time: 1.325, data_time: 0.016, memory: 3772, decode.loss_seg: 0.4412, decode.acc_seg: 72.4503, aux.loss_seg: 0.2177, aux.acc_seg: 69.9681, loss: 0.6589\n", + "2020-07-09 19:18:41,413 - mmseg - INFO - Iter [180/200]\tlr: 1.402e-03, eta: 0:00:26, time: 1.326, data_time: 0.016, memory: 3772, decode.loss_seg: 0.4127, decode.acc_seg: 74.4395, aux.loss_seg: 0.1955, aux.acc_seg: 72.5129, loss: 0.6082\n", + "2020-07-09 19:18:54,678 - mmseg - INFO - Iter [190/200]\tlr: 8.277e-04, eta: 0:00:13, time: 1.326, data_time: 0.016, memory: 3772, decode.loss_seg: 0.4733, decode.acc_seg: 74.7937, aux.loss_seg: 0.2285, aux.acc_seg: 72.0337, loss: 0.7019\n", + "2020-07-09 19:19:07,808 - mmseg - INFO - Saving checkpoint at 200 iterations\n" + ], + "name": "stderr" + }, + { + "output_type": "stream", + "text": [ + "[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 143/143, 10.9 task/s, elapsed: 13s, ETA: 0s" + ], + "name": "stdout" + }, + { + "output_type": "stream", + "text": [ + "2020-07-09 19:19:22,647 - mmseg - INFO - per class results:\n", + "Class IoU Acc\n", + "sky 88.67 94.28\n", + "tree 68.95 86.73\n", + "road 86.23 94.42\n", + "grass 70.01 91.35\n", + "water 62.08 68.32\n", + "bldg 81.11 88.89\n", + "mntn 0.00 0.00\n", + "fg obj 70.39 82.49\n", + "Summary:\n", + "Scope mIoU mAcc aAcc\n", + "global 65.93 75.81 87.48\n", + "\n", + "2020-07-09 19:19:22,660 - mmseg - INFO - Iter [200/200]\tlr: 1.841e-04, mIoU: 0.6593, mAcc: 0.7581, aAcc: 0.8748\n" + ], + "name": "stderr" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "DEkWOP-NMbc_", + "colab_type": "text" + }, + "source": [ + "Inference with trained model" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ekG__UfaH_OU", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 645 + }, + "outputId": "ac1eb835-19ed-48e6-8f77-e6d325b915c4" + }, + "source": [ + "img = mmcv.imread('iccv09Data/images/6000124.jpg')\n", + "\n", + "model.cfg = cfg\n", + "result = inference_segmentor(model, img)\n", + "plt.figure(figsize=(8, 6))\n", + "show_result_pyplot(model, img, result, palette)" + ], + "execution_count": 20, + "outputs": [ + { + "output_type": "stream", + "text": [ + "/content/mmsegmentation/mmseg/models/segmentors/base.py:265: UserWarning: show==False and out_file is not specified, only result image will be returned\n", + " warnings.warn('show==False and out_file is not specified, only '\n" + ], + "name": "stderr" + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + } + ] +} diff --git a/docker/Dockerfile b/docker/Dockerfile index 700ac15dee..65f03b4313 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,4 @@ -ARG PYTORCH="1.3" +ARG PYTORCH="1.5" ARG CUDA="10.1" ARG CUDNN="7" @@ -14,7 +14,8 @@ RUN apt-get update && apt-get install -y libglib2.0-0 libsm6 libxrender-dev libx # Install mmsegmentation RUN conda clean --all +RUN pip install mmcv-full==latest+torch1.5.0+cu101 -f https://openmmlab.oss-accelerate.aliyuncs.com/mmcv/dist/index.html RUN git clone https://github.com/open-mmlab/mmsegmenation.git /mmsegmentation WORKDIR /mmsegmentation -ENV FORCE_CUDA="1" +RUN pip install -r requirements/build.txt RUN pip install --no-cache-dir -e . diff --git a/docs/getting_started.md b/docs/getting_started.md index a5ad9b888d..c122ae1d9c 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -45,7 +45,7 @@ mmsegmentation The data could be found [here](https://www.cityscapes-dataset.com/downloads/) after registration. By convention, `**labelTrainIds.png` are used for cityscapes training. -We provided a [scripts](../tools/convert_datasets/cityscapes.py) based on [cityscapesscripts](https://github.com/mcordts/cityscapesScripts) +We provided a [scripts](https://github.com/open-mmlab/mmsegmentation/blob/master/tools/convert_datasets/cityscapes.py) based on [cityscapesscripts](https://github.com/mcordts/cityscapesScripts) to generate `**labelTrainIds.png`. ```shell # --nproc means 8 process for conversion, which could be omitted as well. @@ -62,7 +62,7 @@ If you would like to use augmented VOC dataset, please run following command to python tools/convert_datasets/voc_aug.py data/VOCdevkit data/VOCdevkit/VOCaug --nproc 8 ``` -Please refer to [concat dataset](tutorials/new_dataset.md#concatenate-dataset) for details about how to concatenate them and train them together. +Please refer to [concat dataset](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/tutorials/new_dataset.md#concatenate-dataset) for details about how to concatenate them and train them together. ### ADE20K @@ -311,7 +311,6 @@ Params: 48.98 M (1) FLOPs are related to the input shape while parameters are not. The default input shape is (1, 3, 1280, 800). (2) Some operators are not counted into FLOPs like GN and custom operators. -You can add support for new operators by modifying [`mmseg/utils/flops_counter.py`](../mmseg/utils/flops_counter.py). ### Publish a model diff --git a/docs/model_zoo.md b/docs/model_zoo.md index 8f39928e76..19df432acc 100644 --- a/docs/model_zoo.md +++ b/docs/model_zoo.md @@ -18,6 +18,8 @@ Results are obtained with the script `tools/benchmark.py` which computes the ave * `whole` mode: The `test_cfg` will be like `dict(mode='whole')`. In this mode, the whole imaged will be passed into network directly. + + By default, we use `slide` inference for 769x769 trained model, `whole` inference for the rest. * For input size of 8x+1 (e.g. 769), `align_corner=True` is adopted as a traditional practice. Otherwise, for input size of 8x (e.g. 512, 1024), `align_corner=False` is adopted. @@ -25,55 +27,59 @@ Otherwise, for input size of 8x (e.g. 512, 1024), `align_corner=False` is adopte ### FCN -Please refer to [FCN](https://github.com/open-mmlab/mmsegmentation/tree/master/configs/fcn) for details. +Please refer to [FCN](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn) for details. ### PSPNet -Please refer to [PSPNet](https://github.com/open-mmlab/mmsegmentation/tree/master/configs/pspnet) for details. +Please refer to [PSPNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet) for details. ### DeepLabV3 -Please refer to [DeepLabV3](https://github.com/open-mmlab/mmsegmentatio/tree/master/configs/deeplabv3) for details. +Please refer to [DeepLabV3](https://github.com/open-mmlab/mmsegmentatio/blob/master/configs/deeplabv3) for details. ### PSANet -Please refer to [PSANet](https://github.com/open-mmlab/mmsegmentation/tree/master/configs/psanet) for details. +Please refer to [PSANet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/psanet) for details. ### DeepLabV3+ -Please refer to [DeepLabV3+](https://github.com/open-mmlab/mmsegmentatio/tree/master/configs/deeplabv3plus) for details. +Please refer to [DeepLabV3+](https://github.com/open-mmlab/mmsegmentatio/blob/master/configs/deeplabv3plus) for details. ### UPerNet -Please refer to [UPerNet](https://github.com/open-mmlab/mmsegmentation/tree/master/configs/upernet) for details. +Please refer to [UPerNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/upernet) for details. ### NonLocal Net -Please refer to [NonLocal Net](https://github.com/open-mmlab/mmsegmentatio/tree/master/configs/nlnet) for details. +Please refer to [NonLocal Net](https://github.com/open-mmlab/mmsegmentatio/blob/master/configs/nlnet) for details. + +### EncNet + +Please refer to [NonLocal Net](https://github.com/open-mmlab/mmsegmentatio/blob/master/configs/encnet) for details. ### CCNet -Please refer to [CCNet](https://github.com/open-mmlab/mmsegmentation/tree/master/configs/ccnet) for details. +Please refer to [CCNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ccnet) for details. ### DANet -Please refer to [DANet](https://github.com/open-mmlab/mmsegmentation/tree/master/configs/danet) for details. +Please refer to [DANet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/danet) for details. ### HRNet -Please refer to [HRNet](https://github.com/open-mmlab/mmsegmentation/tree/master/configs/hrnet) for details. +Please refer to [HRNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet) for details. ### GCNet -Please refer to [GCNet](https://github.com/open-mmlab/mmsegmentation/tree/master/configs/gcnet) for details. +Please refer to [GCNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/gcnet) for details. ### ANN -Please refer to [ANN](https://github.com/open-mmlab/mmsegmentation/tree/master/configs/ann) for details. +Please refer to [ANN](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ann) for details. ### OCRNet -Please refer to [OCRNet](https://github.com/open-mmlab/mmsegmentation/tree/master/configs/ocrnet) for details. +Please refer to [OCRNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet) for details. ## Speed benchmark diff --git a/docs/tutorials/index.rst b/docs/tutorials/index.rst index 778191bb43..3e2f357d1a 100644 --- a/docs/tutorials/index.rst +++ b/docs/tutorials/index.rst @@ -4,3 +4,4 @@ new_dataset.md data_pipeline.md new_modules.md + training_tricks.md diff --git a/docs/tutorials/new_modules.md b/docs/tutorials/new_modules.md index 5940880907..86f77f1e3b 100644 --- a/docs/tutorials/new_modules.md +++ b/docs/tutorials/new_modules.md @@ -121,7 +121,7 @@ model = dict( ### Add new heads -In MMSegmentation, we provide a base [BaseDecodeHead](../../mmseg/models/decode_heads/decode_head.py) for all segmentation head. +In MMSegmentation, we provide a base [BaseDecodeHead](https://github.com/open-mmlab/mmsegmentation/blob/master/mmseg/models/decode_heads/decode_head.py) for all segmentation head. All newly implemented decode heads should be derived from it. Here we show how to develop a new head with the example of [PSPNet](https://arxiv.org/abs/1612.01105) as the following. diff --git a/mmseg/datasets/pipelines/formating.py b/mmseg/datasets/pipelines/formating.py index e7029a8bac..34061c1dd1 100644 --- a/mmseg/datasets/pipelines/formating.py +++ b/mmseg/datasets/pipelines/formating.py @@ -144,7 +144,7 @@ class ToDataContainer(object): ``dict(key='xxx', **kwargs)``. The ``key`` in result will be converted to :obj:`mmcv.DataContainer` with ``**kwargs``. Default: ``(dict(key='img', stack=True), - dict(key='gt_semantic_seg'))``. + dict(key='gt_semantic_seg'))``. """ def __init__(self, diff --git a/mmseg/datasets/pipelines/transforms.py b/mmseg/datasets/pipelines/transforms.py index b683973ca2..2b314a810f 100644 --- a/mmseg/datasets/pipelines/transforms.py +++ b/mmseg/datasets/pipelines/transforms.py @@ -15,12 +15,15 @@ class Resize(object): ``img_scale`` can either be a tuple (single-scale) or a list of tuple (multi-scale). There are 3 multiscale modes: + - ``ratio_range is not None``: randomly sample a ratio from the ratio range - and multiply it with the image scale. + and multiply it with the image scale. + - ``ratio_range is None and multiscale_mode == "range"``: randomly sample a - scale from the a range. + scale from the a range. + - ``ratio_range is None and multiscale_mode == "value"``: randomly sample a - scale from multiple scales. + scale from multiple scales. Args: img_scale (tuple or list[tuple]): Images scales for resizing. diff --git a/mmseg/models/backbones/resnet.py b/mmseg/models/backbones/resnet.py index 4e90c67778..f6c4c08d47 100644 --- a/mmseg/models/backbones/resnet.py +++ b/mmseg/models/backbones/resnet.py @@ -330,11 +330,14 @@ class ResNet(nn.Module): freeze running stats (mean and var). Note: Effect on Batch Norm and its variants only. plugins (list[dict]): List of plugins for stages, each dict contains: - cfg (dict, required): Cfg dict to build plugin. - position (str, required): Position inside block to insert plugin, - options: 'after_conv1', 'after_conv2', 'after_conv3'. - stages (tuple[bool], optional): Stages to apply plugin, length - should be same as 'num_stages' + + - cfg (dict, required): Cfg dict to build plugin. + + - position (str, required): Position inside block to insert plugin, + options: 'after_conv1', 'after_conv2', 'after_conv3'. + + - stages (tuple[bool], optional): Stages to apply plugin, length + should be same as 'num_stages' multi_grid (Sequence[int]|None): Multi grid dilation rates of last stage. Default: None contract_dilation (bool): Whether contract first dilation of each layer @@ -675,13 +678,9 @@ def __init__(self, **kwargs): class ResNetV1d(ResNet): """ResNetV1d variant described in [1]_. - Compared with default ResNet(ResNetV1b), ResNetV1d replaces the 7x7 conv - in the input stem with three 3x3 convs. And in the downsampling block, - a 2x2 avg_pool with stride 2 is added before conv, whose stride is - changed to 1. - - References: - .. [1] https://arxiv.org/pdf/1812.01187.pdf + Compared with default ResNet(ResNetV1b), ResNetV1d replaces the 7x7 conv in + the input stem with three 3x3 convs. And in the downsampling block, a 2x2 + avg_pool with stride 2 is added before conv, whose stride is changed to 1. """ def __init__(self, **kwargs): diff --git a/requirements/docs.txt b/requirements/docs.txt new file mode 100644 index 0000000000..89fbf86c01 --- /dev/null +++ b/requirements/docs.txt @@ -0,0 +1,4 @@ +recommonmark +sphinx +sphinx_markdown_tables +sphinx_rtd_theme diff --git a/requirements/readthedocs.txt b/requirements/readthedocs.txt new file mode 100644 index 0000000000..0542bfce6d --- /dev/null +++ b/requirements/readthedocs.txt @@ -0,0 +1,3 @@ +mmcv +torch +torchvision From 2fc821ec134f9dd355e930f3997632c033e704d6 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Sun, 12 Jul 2020 23:53:56 +0800 Subject: [PATCH 002/706] Add test tutorial (#9) * add test tutorial * remote torch/torchvision from requirements * update getting started * rename drop_out_ratio -> dropout_ratio --- configs/_base_/models/ann_r50-d8.py | 4 +-- configs/_base_/models/ccnet_r50-d8.py | 4 +-- configs/_base_/models/danet_r50-d8.py | 4 +-- configs/_base_/models/deeplabv3_r50-d8.py | 4 +-- configs/_base_/models/deeplabv3plus_r50-d8.py | 4 +-- configs/_base_/models/encnet_r50-d8.py | 4 +-- configs/_base_/models/fcn_hr18.py | 2 +- configs/_base_/models/fcn_r50-d8.py | 4 +-- configs/_base_/models/gcnet_r50-d8.py | 4 +-- configs/_base_/models/nonlocal_r50-d8.py | 4 +-- configs/_base_/models/ocrnet_hr18.py | 4 +-- configs/_base_/models/psanet_r50-d8.py | 4 +-- configs/_base_/models/pspnet_r50-d8.py | 4 +-- configs/_base_/models/upernet_r50.py | 4 +-- .../ocrnet/ocrnet_hr18_512x512_160k_ade20k.py | 4 +-- .../ocrnet_hr18_512x512_20k_voc12aug.py | 4 +-- .../ocrnet_hr18_512x512_40k_voc12aug.py | 4 +-- .../ocrnet/ocrnet_hr18_512x512_80k_ade20k.py | 4 +-- .../ocrnet_hr48_512x1024_160k_cityscapes.py | 4 +-- .../ocrnet_hr48_512x1024_40k_cityscapes.py | 4 +-- .../ocrnet_hr48_512x1024_80k_cityscapes.py | 4 +-- .../ocrnet/ocrnet_hr48_512x512_160k_ade20k.py | 4 +-- .../ocrnet_hr48_512x512_20k_voc12aug.py | 4 +-- .../ocrnet_hr48_512x512_40k_voc12aug.py | 4 +-- .../ocrnet/ocrnet_hr48_512x512_80k_ade20k.py | 4 +-- docs/config.md | 4 +-- docs/getting_started.md | 25 ++++++++++++++----- mmseg/datasets/cityscapes.py | 7 +++--- mmseg/models/decode_heads/decode_head.py | 10 ++++---- requirements/build.txt | 1 - requirements/runtime.txt | 2 -- tests/test_models/test_heads.py | 2 +- tools/dist_test.sh | 1 - tools/get_flops.py | 1 + 34 files changed, 81 insertions(+), 70 deletions(-) diff --git a/configs/_base_/models/ann_r50-d8.py b/configs/_base_/models/ann_r50-d8.py index c2287b4790..07ed0f3c6f 100644 --- a/configs/_base_/models/ann_r50-d8.py +++ b/configs/_base_/models/ann_r50-d8.py @@ -22,7 +22,7 @@ project_channels=256, query_scales=(1, ), key_pool_scales=(1, 3, 6, 8), - drop_out_ratio=0.1, + dropout_ratio=0.1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, @@ -35,7 +35,7 @@ channels=256, num_convs=1, concat_input=False, - drop_out_ratio=0.1, + dropout_ratio=0.1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, diff --git a/configs/_base_/models/ccnet_r50-d8.py b/configs/_base_/models/ccnet_r50-d8.py index 9f2794c33c..28f7360a21 100644 --- a/configs/_base_/models/ccnet_r50-d8.py +++ b/configs/_base_/models/ccnet_r50-d8.py @@ -20,7 +20,7 @@ in_index=3, channels=512, recurrence=2, - drop_out_ratio=0.1, + dropout_ratio=0.1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, @@ -33,7 +33,7 @@ channels=256, num_convs=1, concat_input=False, - drop_out_ratio=0.1, + dropout_ratio=0.1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, diff --git a/configs/_base_/models/danet_r50-d8.py b/configs/_base_/models/danet_r50-d8.py index 76a27054ed..65eb170860 100644 --- a/configs/_base_/models/danet_r50-d8.py +++ b/configs/_base_/models/danet_r50-d8.py @@ -20,7 +20,7 @@ in_index=3, channels=512, pam_channels=64, - drop_out_ratio=0.1, + dropout_ratio=0.1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, @@ -33,7 +33,7 @@ channels=256, num_convs=1, concat_input=False, - drop_out_ratio=0.1, + dropout_ratio=0.1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, diff --git a/configs/_base_/models/deeplabv3_r50-d8.py b/configs/_base_/models/deeplabv3_r50-d8.py index 00c1f8796d..a9f319c2b5 100644 --- a/configs/_base_/models/deeplabv3_r50-d8.py +++ b/configs/_base_/models/deeplabv3_r50-d8.py @@ -20,7 +20,7 @@ in_index=3, channels=512, dilations=(1, 12, 24, 36), - drop_out_ratio=0.1, + dropout_ratio=0.1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, @@ -33,7 +33,7 @@ channels=256, num_convs=1, concat_input=False, - drop_out_ratio=0.1, + dropout_ratio=0.1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, diff --git a/configs/_base_/models/deeplabv3plus_r50-d8.py b/configs/_base_/models/deeplabv3plus_r50-d8.py index f930b154f5..f74a1534fb 100644 --- a/configs/_base_/models/deeplabv3plus_r50-d8.py +++ b/configs/_base_/models/deeplabv3plus_r50-d8.py @@ -22,7 +22,7 @@ dilations=(1, 12, 24, 36), c1_in_channels=256, c1_channels=48, - drop_out_ratio=0.1, + dropout_ratio=0.1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, @@ -35,7 +35,7 @@ channels=256, num_convs=1, concat_input=False, - drop_out_ratio=0.1, + dropout_ratio=0.1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, diff --git a/configs/_base_/models/encnet_r50-d8.py b/configs/_base_/models/encnet_r50-d8.py index 46fffa1f8c..c643cea62a 100644 --- a/configs/_base_/models/encnet_r50-d8.py +++ b/configs/_base_/models/encnet_r50-d8.py @@ -22,7 +22,7 @@ num_codes=32, use_se_loss=True, add_lateral=False, - drop_out_ratio=0.1, + dropout_ratio=0.1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, @@ -37,7 +37,7 @@ channels=256, num_convs=1, concat_input=False, - drop_out_ratio=0.1, + dropout_ratio=0.1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, diff --git a/configs/_base_/models/fcn_hr18.py b/configs/_base_/models/fcn_hr18.py index e2583a2ac8..8293e06536 100644 --- a/configs/_base_/models/fcn_hr18.py +++ b/configs/_base_/models/fcn_hr18.py @@ -41,7 +41,7 @@ kernel_size=1, num_convs=1, concat_input=False, - drop_out_ratio=-1, + dropout_ratio=-1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, diff --git a/configs/_base_/models/fcn_r50-d8.py b/configs/_base_/models/fcn_r50-d8.py index 08546755c9..97a11ec961 100644 --- a/configs/_base_/models/fcn_r50-d8.py +++ b/configs/_base_/models/fcn_r50-d8.py @@ -21,7 +21,7 @@ channels=512, num_convs=2, concat_input=True, - drop_out_ratio=0.1, + dropout_ratio=0.1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, @@ -34,7 +34,7 @@ channels=256, num_convs=1, concat_input=False, - drop_out_ratio=0.1, + dropout_ratio=0.1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, diff --git a/configs/_base_/models/gcnet_r50-d8.py b/configs/_base_/models/gcnet_r50-d8.py index 9057687c06..b679be1254 100644 --- a/configs/_base_/models/gcnet_r50-d8.py +++ b/configs/_base_/models/gcnet_r50-d8.py @@ -22,7 +22,7 @@ ratio=1 / 4., pooling_type='att', fusion_types=('channel_add', ), - drop_out_ratio=0.1, + dropout_ratio=0.1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, @@ -35,7 +35,7 @@ channels=256, num_convs=1, concat_input=False, - drop_out_ratio=0.1, + dropout_ratio=0.1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, diff --git a/configs/_base_/models/nonlocal_r50-d8.py b/configs/_base_/models/nonlocal_r50-d8.py index 7fa88f9a59..64dbeb080d 100644 --- a/configs/_base_/models/nonlocal_r50-d8.py +++ b/configs/_base_/models/nonlocal_r50-d8.py @@ -19,7 +19,7 @@ in_channels=2048, in_index=3, channels=512, - drop_out_ratio=0.1, + dropout_ratio=0.1, reduction=2, use_scale=True, mode='embedded_gaussian', @@ -35,7 +35,7 @@ channels=256, num_convs=1, concat_input=False, - drop_out_ratio=0.1, + dropout_ratio=0.1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, diff --git a/configs/_base_/models/ocrnet_hr18.py b/configs/_base_/models/ocrnet_hr18.py index 4053daa0b0..fd88780b60 100644 --- a/configs/_base_/models/ocrnet_hr18.py +++ b/configs/_base_/models/ocrnet_hr18.py @@ -43,7 +43,7 @@ kernel_size=1, num_convs=1, concat_input=False, - drop_out_ratio=-1, + dropout_ratio=-1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, @@ -56,7 +56,7 @@ input_transform='resize_concat', channels=512, ocr_channels=256, - drop_out_ratio=-1, + dropout_ratio=-1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, diff --git a/configs/_base_/models/psanet_r50-d8.py b/configs/_base_/models/psanet_r50-d8.py index 170b48f457..1b45588268 100644 --- a/configs/_base_/models/psanet_r50-d8.py +++ b/configs/_base_/models/psanet_r50-d8.py @@ -25,7 +25,7 @@ shrink_factor=2, normalization_factor=1.0, psa_softmax=True, - drop_out_ratio=0.1, + dropout_ratio=0.1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, @@ -38,7 +38,7 @@ channels=256, num_convs=1, concat_input=False, - drop_out_ratio=0.1, + dropout_ratio=0.1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, diff --git a/configs/_base_/models/pspnet_r50-d8.py b/configs/_base_/models/pspnet_r50-d8.py index c5bb885c58..cf9d8ce0a8 100644 --- a/configs/_base_/models/pspnet_r50-d8.py +++ b/configs/_base_/models/pspnet_r50-d8.py @@ -20,7 +20,7 @@ in_index=3, channels=512, pool_scales=(1, 2, 3, 6), - drop_out_ratio=0.1, + dropout_ratio=0.1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, @@ -33,7 +33,7 @@ channels=256, num_convs=1, concat_input=False, - drop_out_ratio=0.1, + dropout_ratio=0.1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, diff --git a/configs/_base_/models/upernet_r50.py b/configs/_base_/models/upernet_r50.py index 7d736f6bcf..19cf451359 100644 --- a/configs/_base_/models/upernet_r50.py +++ b/configs/_base_/models/upernet_r50.py @@ -20,7 +20,7 @@ in_index=[0, 1, 2, 3], pool_scales=(1, 2, 3, 6), channels=512, - drop_out_ratio=0.1, + dropout_ratio=0.1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, @@ -33,7 +33,7 @@ channels=256, num_convs=1, concat_input=False, - drop_out_ratio=0.1, + dropout_ratio=0.1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, diff --git a/configs/ocrnet/ocrnet_hr18_512x512_160k_ade20k.py b/configs/ocrnet/ocrnet_hr18_512x512_160k_ade20k.py index fe5d20ffb0..a3c86e18ea 100644 --- a/configs/ocrnet/ocrnet_hr18_512x512_160k_ade20k.py +++ b/configs/ocrnet/ocrnet_hr18_512x512_160k_ade20k.py @@ -13,7 +13,7 @@ kernel_size=1, num_convs=1, concat_input=False, - drop_out_ratio=-1, + dropout_ratio=-1, num_classes=150, norm_cfg=norm_cfg, align_corners=False, @@ -26,7 +26,7 @@ input_transform='resize_concat', channels=512, ocr_channels=256, - drop_out_ratio=-1, + dropout_ratio=-1, num_classes=150, norm_cfg=norm_cfg, align_corners=False, diff --git a/configs/ocrnet/ocrnet_hr18_512x512_20k_voc12aug.py b/configs/ocrnet/ocrnet_hr18_512x512_20k_voc12aug.py index 71e70dcec1..ab9d6446c9 100644 --- a/configs/ocrnet/ocrnet_hr18_512x512_20k_voc12aug.py +++ b/configs/ocrnet/ocrnet_hr18_512x512_20k_voc12aug.py @@ -14,7 +14,7 @@ kernel_size=1, num_convs=1, concat_input=False, - drop_out_ratio=-1, + dropout_ratio=-1, num_classes=21, norm_cfg=norm_cfg, align_corners=False, @@ -27,7 +27,7 @@ input_transform='resize_concat', channels=512, ocr_channels=256, - drop_out_ratio=-1, + dropout_ratio=-1, num_classes=21, norm_cfg=norm_cfg, align_corners=False, diff --git a/configs/ocrnet/ocrnet_hr18_512x512_40k_voc12aug.py b/configs/ocrnet/ocrnet_hr18_512x512_40k_voc12aug.py index b3fd747211..df79a9cf13 100644 --- a/configs/ocrnet/ocrnet_hr18_512x512_40k_voc12aug.py +++ b/configs/ocrnet/ocrnet_hr18_512x512_40k_voc12aug.py @@ -14,7 +14,7 @@ kernel_size=1, num_convs=1, concat_input=False, - drop_out_ratio=-1, + dropout_ratio=-1, num_classes=21, norm_cfg=norm_cfg, align_corners=False, @@ -27,7 +27,7 @@ input_transform='resize_concat', channels=512, ocr_channels=256, - drop_out_ratio=-1, + dropout_ratio=-1, num_classes=21, norm_cfg=norm_cfg, align_corners=False, diff --git a/configs/ocrnet/ocrnet_hr18_512x512_80k_ade20k.py b/configs/ocrnet/ocrnet_hr18_512x512_80k_ade20k.py index e41eaf8ac5..6ad67722a5 100644 --- a/configs/ocrnet/ocrnet_hr18_512x512_80k_ade20k.py +++ b/configs/ocrnet/ocrnet_hr18_512x512_80k_ade20k.py @@ -13,7 +13,7 @@ kernel_size=1, num_convs=1, concat_input=False, - drop_out_ratio=-1, + dropout_ratio=-1, num_classes=150, norm_cfg=norm_cfg, align_corners=False, @@ -26,7 +26,7 @@ input_transform='resize_concat', channels=512, ocr_channels=256, - drop_out_ratio=-1, + dropout_ratio=-1, num_classes=150, norm_cfg=norm_cfg, align_corners=False, diff --git a/configs/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes.py b/configs/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes.py index 70c1ce5b5b..c094391b1d 100644 --- a/configs/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes.py +++ b/configs/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes.py @@ -18,7 +18,7 @@ num_convs=1, norm_cfg=norm_cfg, concat_input=False, - drop_out_ratio=-1, + dropout_ratio=-1, num_classes=19, align_corners=False, loss_decode=dict( @@ -31,7 +31,7 @@ input_transform='resize_concat', in_index=(0, 1, 2, 3), norm_cfg=norm_cfg, - drop_out_ratio=-1, + dropout_ratio=-1, num_classes=19, align_corners=False, loss_decode=dict( diff --git a/configs/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes.py b/configs/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes.py index cd777e89bf..0aada9d8dc 100644 --- a/configs/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes.py +++ b/configs/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes.py @@ -18,7 +18,7 @@ num_convs=1, norm_cfg=norm_cfg, concat_input=False, - drop_out_ratio=-1, + dropout_ratio=-1, num_classes=19, align_corners=False, loss_decode=dict( @@ -31,7 +31,7 @@ input_transform='resize_concat', in_index=(0, 1, 2, 3), norm_cfg=norm_cfg, - drop_out_ratio=-1, + dropout_ratio=-1, num_classes=19, align_corners=False, loss_decode=dict( diff --git a/configs/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes.py b/configs/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes.py index 6ed60096a1..1b2e009439 100644 --- a/configs/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes.py +++ b/configs/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes.py @@ -18,7 +18,7 @@ num_convs=1, norm_cfg=norm_cfg, concat_input=False, - drop_out_ratio=-1, + dropout_ratio=-1, num_classes=19, align_corners=False, loss_decode=dict( @@ -31,7 +31,7 @@ input_transform='resize_concat', in_index=(0, 1, 2, 3), norm_cfg=norm_cfg, - drop_out_ratio=-1, + dropout_ratio=-1, num_classes=19, align_corners=False, loss_decode=dict( diff --git a/configs/ocrnet/ocrnet_hr48_512x512_160k_ade20k.py b/configs/ocrnet/ocrnet_hr48_512x512_160k_ade20k.py index f6cd20e642..3b3e8af953 100644 --- a/configs/ocrnet/ocrnet_hr48_512x512_160k_ade20k.py +++ b/configs/ocrnet/ocrnet_hr48_512x512_160k_ade20k.py @@ -18,7 +18,7 @@ num_convs=1, norm_cfg=norm_cfg, concat_input=False, - drop_out_ratio=-1, + dropout_ratio=-1, num_classes=150, align_corners=False, loss_decode=dict( @@ -31,7 +31,7 @@ input_transform='resize_concat', in_index=(0, 1, 2, 3), norm_cfg=norm_cfg, - drop_out_ratio=-1, + dropout_ratio=-1, num_classes=150, align_corners=False, loss_decode=dict( diff --git a/configs/ocrnet/ocrnet_hr48_512x512_20k_voc12aug.py b/configs/ocrnet/ocrnet_hr48_512x512_20k_voc12aug.py index 3149cfc371..c2dd6d1158 100644 --- a/configs/ocrnet/ocrnet_hr48_512x512_20k_voc12aug.py +++ b/configs/ocrnet/ocrnet_hr48_512x512_20k_voc12aug.py @@ -18,7 +18,7 @@ num_convs=1, norm_cfg=norm_cfg, concat_input=False, - drop_out_ratio=-1, + dropout_ratio=-1, num_classes=21, align_corners=False, loss_decode=dict( @@ -31,7 +31,7 @@ input_transform='resize_concat', in_index=(0, 1, 2, 3), norm_cfg=norm_cfg, - drop_out_ratio=-1, + dropout_ratio=-1, num_classes=21, align_corners=False, loss_decode=dict( diff --git a/configs/ocrnet/ocrnet_hr48_512x512_40k_voc12aug.py b/configs/ocrnet/ocrnet_hr48_512x512_40k_voc12aug.py index f97260039b..89e6309f55 100644 --- a/configs/ocrnet/ocrnet_hr48_512x512_40k_voc12aug.py +++ b/configs/ocrnet/ocrnet_hr48_512x512_40k_voc12aug.py @@ -18,7 +18,7 @@ num_convs=1, norm_cfg=norm_cfg, concat_input=False, - drop_out_ratio=-1, + dropout_ratio=-1, num_classes=21, align_corners=False, loss_decode=dict( @@ -31,7 +31,7 @@ input_transform='resize_concat', in_index=(0, 1, 2, 3), norm_cfg=norm_cfg, - drop_out_ratio=-1, + dropout_ratio=-1, num_classes=21, align_corners=False, loss_decode=dict( diff --git a/configs/ocrnet/ocrnet_hr48_512x512_80k_ade20k.py b/configs/ocrnet/ocrnet_hr48_512x512_80k_ade20k.py index 94dbe90298..04971226eb 100644 --- a/configs/ocrnet/ocrnet_hr48_512x512_80k_ade20k.py +++ b/configs/ocrnet/ocrnet_hr48_512x512_80k_ade20k.py @@ -18,7 +18,7 @@ num_convs=1, norm_cfg=norm_cfg, concat_input=False, - drop_out_ratio=-1, + dropout_ratio=-1, num_classes=150, align_corners=False, loss_decode=dict( @@ -31,7 +31,7 @@ input_transform='resize_concat', in_index=(0, 1, 2, 3), norm_cfg=norm_cfg, - drop_out_ratio=-1, + dropout_ratio=-1, num_classes=150, align_corners=False, loss_decode=dict( diff --git a/docs/config.md b/docs/config.md index e07fdfee84..aace67ff93 100644 --- a/docs/config.md +++ b/docs/config.md @@ -224,8 +224,8 @@ log_config = dict( # config to register logger hook dist_params = dict(backend='nccl') # Parameters to setup distributed training, the port can also be set. log_level = 'INFO' # The level of logging. load_from = None # load models as a pre-trained model from a given path. This will not resume training. -resume_from = None # Resume checkpoints from a given path, the training will be resumed from the epoch when the checkpoint's is saved. -workflow = [('train', 1)] # Workflow for runner. [('train', 1)] means there is only one workflow and the workflow named 'train' is executed once. The workflow trains the model by 12 epochs according to the total_epochs. +resume_from = None # Resume checkpoints from a given path, the training will be resumed from the iteration when the checkpoint's is saved. +workflow = [('train', 1)] # Workflow for runner. [('train', 1)] means there is only one workflow and the workflow named 'train' is executed once. The workflow trains the model by 40000 iterations according to the total_iters. cudnn_benchmark = True # Whether use cudnn_benchmark to speed up, which is fast for fixed input size. optimizer = dict( # Config used to build optimizer, support all the optimizers in PyTorch whose arguments are also the same as those in PyTorch type='SGD', # Type of optimizers, refer to https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/optimizer/default_constructor.py#L13 for more details diff --git a/docs/getting_started.md b/docs/getting_started.md index c122ae1d9c..3a9b656032 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -125,23 +125,34 @@ Assume that you have already downloaded the checkpoints to the directory `checkp --eval mAP ``` -4. Test PSPNet with 8 GPUs, and evaluate the standard mIoU and cityscapes metric. +4. Test PSPNet with 4 GPUs, and evaluate the standard mIoU and cityscapes metric. ```shell ./tools/dist_test.sh configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \ checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth \ - 8 --out results.pkl --eval mIoU cityscapes + 4 --out results.pkl --eval mIoU cityscapes ``` -5. Test PSPNet on cityscapes test split with 8 GPUs, and generate the png files to be submit to the official evaluation server. +5. Test PSPNet on cityscapes test split with 4 GPUs, and generate the png files to be submit to the official evaluation server. + + First, add following to config file `configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py`, + + ```python + data = dict( + test=dict( + img_dir='leftImg8bit/test', + ann_dir='gtFine/test')) + ``` + Then run test. ```shell ./tools/dist_test.sh configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \ checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth \ - 8 --format-only --options "imgfile_prefix=./pspnet_test_results" + 4 --format-only --options "imgfile_prefix=./pspnet_test_results" ``` You will get png files under `./pspnet_test_results` directory. +You may run `zip -r results.zip pspnet_test_results/` and submit the zip file to [evaluation server](https://www.cityscapes-dataset.com/submit/). ### Image demo @@ -205,8 +216,10 @@ By default we evaluate the model on the validation set after some iterations, yo evaluation = dict(interval=4000) # This evaluate the model per 4000 iterations. ``` -**\*Important\***: The default learning rate in config files is for 8 GPUs and 1 img/gpu (batch size = 8x1 = 8). -Equivalently, you may also use 4 GPUs and 2 imgs/gpu since all models using cross-GPU SyncBN. +**\*Important\***: The default learning rate in config files is for 4 GPUs and 2 img/gpu (batch size = 4x2 = 8). +Equivalently, you may also use 8 GPUs and 1 imgs/gpu since all models using cross-GPU SyncBN. + +To trade speed with GPU memory, you may pass in `--options model.backbone.with_cp=True` to enable checkpoint in backbone. ### Train with a single GPU diff --git a/mmseg/datasets/cityscapes.py b/mmseg/datasets/cityscapes.py index 9a12ab1724..30e3c2b24e 100644 --- a/mmseg/datasets/cityscapes.py +++ b/mmseg/datasets/cityscapes.py @@ -61,6 +61,7 @@ def results2img(self, results, imgfile_prefix, to_label_id): list[str: str]: result txt files which contains corresponding semantic segmentation images. """ + mmcv.mkdir_or_exist(imgfile_prefix) result_files = [] prog_bar = mmcv.ProgressBar(len(self)) for idx in range(len(self)): @@ -135,9 +136,9 @@ def evaluate(self, the prefix of filename, e.g., "a/b/prefix". If results are evaluated with cityscapes protocol, it would be the prefix of output png files. The output files would be - png images under folder "a/b/prefix/xxx/", where "xxx" is the - video name of cityscapes. If not specified, a temp file will - be created. + png images under folder "a/b/prefix/xxx.png", where "xxx" is + the image name of cityscapes. If not specified, a temp file + will be created for evaluation. Default: None. Returns: diff --git a/mmseg/models/decode_heads/decode_head.py b/mmseg/models/decode_heads/decode_head.py index d4c8748722..1c2636fd14 100644 --- a/mmseg/models/decode_heads/decode_head.py +++ b/mmseg/models/decode_heads/decode_head.py @@ -17,7 +17,7 @@ class BaseDecodeHead(nn.Module, metaclass=ABCMeta): in_channels (int|Sequence[int]): Input channels. channels (int): Channels after modules, before conv_seg. num_classes (int): Number of classes. - drop_out_ratio (float): Ratio of dropout layer. Default: 0.1. + dropout_ratio (float): Ratio of dropout layer. Default: 0.1. conv_cfg (dict|None): Config of conv layers. Default: None. norm_cfg (dict|None): Config of norm layers. Default: None. act_cfg (dict): Config of activation layers. @@ -46,7 +46,7 @@ def __init__(self, channels, *, num_classes, - drop_out_ratio=0.1, + dropout_ratio=0.1, conv_cfg=None, norm_cfg=None, act_cfg=dict(type='ReLU'), @@ -63,7 +63,7 @@ def __init__(self, self._init_inputs(in_channels, in_index, input_transform) self.channels = channels self.num_classes = num_classes - self.drop_out_ratio = drop_out_ratio + self.dropout_ratio = dropout_ratio self.conv_cfg = conv_cfg self.norm_cfg = norm_cfg self.act_cfg = act_cfg @@ -77,8 +77,8 @@ def __init__(self, self.sampler = None self.conv_seg = nn.Conv2d(channels, num_classes, kernel_size=1) - if drop_out_ratio > 0: - self.dropout = nn.Dropout2d(drop_out_ratio) + if dropout_ratio > 0: + self.dropout = nn.Dropout2d(dropout_ratio) else: self.dropout = None diff --git a/requirements/build.txt b/requirements/build.txt index 2f74f3d17f..06ef892b41 100644 --- a/requirements/build.txt +++ b/requirements/build.txt @@ -1,3 +1,2 @@ # These must be installed before building mmsegmentation numpy -# torch diff --git a/requirements/runtime.txt b/requirements/runtime.txt index a03605f66a..db5d81e01e 100644 --- a/requirements/runtime.txt +++ b/requirements/runtime.txt @@ -1,4 +1,2 @@ matplotlib numpy -# torch -# torchvision diff --git a/tests/test_models/test_heads.py b/tests/test_models/test_heads.py index 935239438f..3ac6bb0aa2 100644 --- a/tests/test_models/test_heads.py +++ b/tests/test_models/test_heads.py @@ -71,7 +71,7 @@ def test_decode_head(): assert hasattr(head, 'dropout') and head.dropout.p == 0.1 # test set dropout - head = BaseDecodeHead(32, 16, num_classes=19, drop_out_ratio=0.2) + head = BaseDecodeHead(32, 16, num_classes=19, dropout_ratio=0.2) assert hasattr(head, 'dropout') and head.dropout.p == 0.2 # test no input_transform diff --git a/tools/dist_test.sh b/tools/dist_test.sh index 7381dfb1d7..34fb46541d 100755 --- a/tools/dist_test.sh +++ b/tools/dist_test.sh @@ -4,7 +4,6 @@ CONFIG=$1 CHECKPOINT=$2 GPUS=$3 PORT=${PORT:-29500} -$CONFIG\/$GPUS/ PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \ python -m torch.distributed.launch --nproc_per_node=$GPUS --master_port=$PORT \ $(dirname "$0")/test.py $CONFIG $CHECKPOINT --launcher pytorch ${@:4} diff --git a/tools/get_flops.py b/tools/get_flops.py index 86f1c5a9ef..aef3055499 100644 --- a/tools/get_flops.py +++ b/tools/get_flops.py @@ -31,6 +31,7 @@ def main(): raise ValueError('invalid input shape') cfg = Config.fromfile(args.config) + cfg.model.pretrained = None model = build_segmentor( cfg.model, train_cfg=cfg.train_cfg, test_cfg=cfg.test_cfg).cuda() model.eval() From bc285bea2811a14e2dc49c408760cef8caf52c65 Mon Sep 17 00:00:00 2001 From: Kai Chen Date: Mon, 13 Jul 2020 20:54:32 +0800 Subject: [PATCH 003/706] Add pypi deployment (#11) * add pypi deployment * remove useless jobs * fixed typo and cleanup * delete build.tx * add change log Co-authored-by: Jiarui XU --- .github/CONTRIBUTING.md | 2 +- .github/workflows/build.yml | 96 +++++++++++++++++------------------- .github/workflows/deploy.yml | 20 ++++++++ .style.yapf | 4 -- README.md | 4 ++ docs/install.md | 38 +++++--------- docs/model_zoo.md | 8 +-- mmseg/__init__.py | 4 +- requirements.txt | 1 - requirements/build.txt | 2 - requirements/tests.txt | 1 - setup.py | 33 ------------- 12 files changed, 89 insertions(+), 124 deletions(-) create mode 100644 .github/workflows/deploy.yml delete mode 100644 .style.yapf delete mode 100644 requirements/build.txt diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 6ffa7b2e64..97e2768453 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -27,7 +27,7 @@ We use the following tools for linting and formatting: - [yapf](https://github.com/google/yapf): formatter - [isort](https://github.com/timothycrosley/isort): sort imports -Style configurations of yapf and isort can be found in [.style.yapf](../.style.yapf) and [.isort.cfg](../.isort.cfg). +Style configurations of yapf and isort can be found in [setup.cfg](../setup.cfg) and [.isort.cfg](../.isort.cfg). We use [pre-commit hook](https://pre-commit.com/) that checks and formats for `flake8`, `yapf`, `isort`, `trailing whitespaces`, fixes `end-of-files`, sorts `requirments.txt` automatically on every commit. diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 68afd6e5ec..c3c0dd95e4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,12 +1,8 @@ -# This workflow will install Python dependencies, run tests and lint with a variety of Python versions -# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions - name: build on: [push, pull_request] jobs: - lint: runs-on: ubuntu-latest steps: @@ -53,49 +49,49 @@ jobs: python-version: 3.7 steps: - - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - name: Install CUDA - if: ${{matrix.torch == '1.5.0+cu101'}} - run: | - export INSTALLER=cuda-repo-${UBUNTU_VERSION}_${CUDA}_amd64.deb - wget http://developer.download.nvidia.com/compute/cuda/repos/${UBUNTU_VERSION}/x86_64/${INSTALLER} - sudo dpkg -i ${INSTALLER} - wget https://developer.download.nvidia.com/compute/cuda/repos/${UBUNTU_VERSION}/x86_64/7fa2af80.pub - sudo apt-key add 7fa2af80.pub - sudo apt update -qq - sudo apt install -y cuda-${CUDA_SHORT/./-} cuda-cufft-dev-${CUDA_SHORT/./-} - sudo apt clean - export CUDA_HOME=/usr/local/cuda-${CUDA_SHORT} - export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${CUDA_HOME}/include:${LD_LIBRARY_PATH} - export PATH=${CUDA_HOME}/bin:${PATH} - sudo apt-get install -y ninja-build - - name: Install Pillow - if: ${{matrix.torchvision == '0.4.2+cpu'}} - run: pip install Pillow==6.2.2 - - name: Install PyTorch - run: pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html - - name: Install mmseg dependencies - run: | - pip install mmcv-full==latest+torch${{matrix.torch}} -f https://openmmlab.oss-accelerate.aliyuncs.com/mmcv/dist/index.html - pip install -r requirements.txt - - name: Build and install - run: rm -rf .eggs && pip install -e . - - name: Run unittests and generate coverage report - run: | - coverage run --branch --source mmseg -m pytest tests/ - coverage xml - coverage report -m --omit="mmseg/utils/*","mmseg/apis/*" - # Only upload coverage report for python3.7 && pytorch1.5 - - name: Upload coverage to Codecov - if: ${{matrix.torch == '1.5.0+cu101' && matrix.python-version == '3.7'}} - uses: codecov/codecov-action@v1.0.10 - with: - file: ./coverage.xml - flags: unittests - env_vars: OS,PYTHON - name: codecov-umbrella - fail_ci_if_error: false + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install CUDA + if: ${{matrix.torch == '1.5.0+cu101'}} + run: | + export INSTALLER=cuda-repo-${UBUNTU_VERSION}_${CUDA}_amd64.deb + wget http://developer.download.nvidia.com/compute/cuda/repos/${UBUNTU_VERSION}/x86_64/${INSTALLER} + sudo dpkg -i ${INSTALLER} + wget https://developer.download.nvidia.com/compute/cuda/repos/${UBUNTU_VERSION}/x86_64/7fa2af80.pub + sudo apt-key add 7fa2af80.pub + sudo apt update -qq + sudo apt install -y cuda-${CUDA_SHORT/./-} cuda-cufft-dev-${CUDA_SHORT/./-} + sudo apt clean + export CUDA_HOME=/usr/local/cuda-${CUDA_SHORT} + export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${CUDA_HOME}/include:${LD_LIBRARY_PATH} + export PATH=${CUDA_HOME}/bin:${PATH} + sudo apt-get install -y ninja-build + - name: Install Pillow + if: ${{matrix.torchvision == '0.4.2+cpu'}} + run: pip install Pillow==6.2.2 + - name: Install PyTorch + run: pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html + - name: Install mmseg dependencies + run: | + pip install mmcv-full==latest+torch${{matrix.torch}} -f https://openmmlab.oss-accelerate.aliyuncs.com/mmcv/dist/index.html + pip install -r requirements.txt + - name: Build and install + run: rm -rf .eggs && pip install -e . + - name: Run unittests and generate coverage report + run: | + coverage run --branch --source mmseg -m pytest tests/ + coverage xml + coverage report -m + # Only upload coverage report for python3.7 && pytorch1.5 + - name: Upload coverage to Codecov + if: ${{matrix.torch == '1.5.0+cu101' && matrix.python-version == '3.7'}} + uses: codecov/codecov-action@v1.0.10 + with: + file: ./coverage.xml + flags: unittests + env_vars: OS,PYTHON + name: codecov-umbrella + fail_ci_if_error: false diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000000..0f66a64aa1 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,20 @@ +name: deploy + +on: push + +jobs: + build-n-publish: + runs-on: ubuntu-latest + if: startsWith(github.event.ref, 'refs/tags') + steps: + - uses: actions/checkout@v2 + - name: Set up Python 3.7 + uses: actions/setup-python@v2 + with: + python-version: 3.7 + - name: Build MMSegmentation + run: python setup.py sdist bdist_wheel + - name: Publish distribution to PyPI + run: | + pip install twine + twine upload dist/* -u __token__ -p ${{ secrets.pypi_password }} diff --git a/.style.yapf b/.style.yapf deleted file mode 100644 index 286a3f1d7a..0000000000 --- a/.style.yapf +++ /dev/null @@ -1,4 +0,0 @@ -[style] -BASED_ON_STYLE = pep8 -BLANK_LINE_BEFORE_NESTED_CLASS_OR_DEF = true -SPLIT_BEFORE_EXPRESSION_AFTER_OPENING_PAREN = true diff --git a/README.md b/README.md index 8634ad850f..ea1e8d5051 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,10 @@ The master branch works with **PyTorch 1.3 to 1.5**. This project is released under the [Apache 2.0 license](LICENSE). +## Changelog + +v0.5.0 was released in 10/7/2020. + ## Benchmark and model zoo Results and models are available in the [model zoo](docs/model_zoo.md). diff --git a/docs/install.md b/docs/install.md index 5d6a2d9bc5..265f45b18a 100644 --- a/docs/install.md +++ b/docs/install.md @@ -18,41 +18,31 @@ conda activate open-mmlab b. Install PyTorch and torchvision following the [official instructions](https://pytorch.org/). Here we use PyTorch 1.5.0 and CUDA 10.1. -You may also switch to other version by specifying version number. +You may also switch to other version by specifying the version number. ```shell conda install pytorch=1.5.0 torchvision cudatoolkit=10.1 -c pytorch ``` -c. Clone the mmsegmentation repository. +c. Install [MMCV](https://mmcv.readthedocs.io/en/latest/) following the [official instructions](https://mmcv.readthedocs.io/en/latest/#installation). +Either `mmcv` or `mmcv-full` is compatible with MMSegmentation, but for methods like CCNet and PSANet, CUDA ops in `mmcv-full` is required -```shell -git clone http://github.com/open-mmlab/mmsegmentation -cd mmsegmentation -``` - -d. Install [MMCV](https://mmcv.readthedocs.io/en/latest/). -Either *mmcv* or *mmcv-full* is compatible with MMSegmentation, but for methods like CCNet and PSANet, CUDA ops in *mmcv-full* is required +The pre-build mmcv-full (with PyTorch 1.5 and CUDA 10.1) can be installed by running: (other available versions could be found [here](https://mmcv.readthedocs.io/en/latest/#install-with-pip)) -The pre-build *mmcv-full* could be installed by running: (available versions could be found [here](https://mmcv.readthedocs.io/en/latest/#install-with-pip)) -``` +```shell pip install mmcv-full==latest+torch1.5.0+cu101 -f https://openmmlab.oss-accelerate.aliyuncs.com/mmcv/dist/index.html ``` -Optionally, you could also install lite version by running: -``` -pip install mmcv -``` -or build full version from source: -``` -pip install mmcv-full +d. Install MMSegmentation. + +```shell +pip install mmseg # install the latest release ``` -e. Install build requirements and then install MMSegmentation. +or ```shell -pip install -r requirements/build.txt # or "pip install -r requirements.txt" for everything. -pip install -e . # or "python setup.py develop" +pip install git+https://github.com/open-mmlab/mmsegmentation.git # install the master branch ``` Note: @@ -68,7 +58,6 @@ you can install it before installing MMCV. 4. Some dependencies are optional. Simply running `pip install -e .` will only install the minimum runtime requirements. To use optional dependencies like `cityscapessripts` either install them manually with `pip install -r requirements/optional.txt` or specify desired extras when calling `pip` (e.g. `pip install -e .[optional]`). Valid keys for the extras field are: `all`, `tests`, `build`, and `optional`. - ### A from-scratch setup script Here is a full script for setting up mmsegmentation with conda and link the dataset path (supposing that your dataset path is $DATA_ROOT). @@ -78,11 +67,8 @@ conda create -n open-mmlab python=3.7 -y conda activate open-mmlab conda install pytorch=1.5.0 torchvision cudatoolkit=10.1 -c pytorch -git clone http://github.com/open-mmlab/mmsegmentation -cd mmsegmentation pip install mmcv-full==latest+torch1.5.0+cu101 -f https://openmmlab.oss-accelerate.aliyuncs.com/mmcv/dist/index.html -pip install -r requirements/build.txt -pip install -e . +pip install git+https://github.com/open-mmlab/mmsegmentation.git mkdir data ln -s $DATA_ROOT data diff --git a/docs/model_zoo.md b/docs/model_zoo.md index 19df432acc..200ae2fffd 100644 --- a/docs/model_zoo.md +++ b/docs/model_zoo.md @@ -35,7 +35,7 @@ Please refer to [PSPNet](https://github.com/open-mmlab/mmsegmentation/blob/maste ### DeepLabV3 -Please refer to [DeepLabV3](https://github.com/open-mmlab/mmsegmentatio/blob/master/configs/deeplabv3) for details. +Please refer to [DeepLabV3](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3) for details. ### PSANet @@ -43,7 +43,7 @@ Please refer to [PSANet](https://github.com/open-mmlab/mmsegmentation/blob/maste ### DeepLabV3+ -Please refer to [DeepLabV3+](https://github.com/open-mmlab/mmsegmentatio/blob/master/configs/deeplabv3plus) for details. +Please refer to [DeepLabV3+](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus) for details. ### UPerNet @@ -51,11 +51,11 @@ Please refer to [UPerNet](https://github.com/open-mmlab/mmsegmentation/blob/mast ### NonLocal Net -Please refer to [NonLocal Net](https://github.com/open-mmlab/mmsegmentatio/blob/master/configs/nlnet) for details. +Please refer to [NonLocal Net](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/nlnet) for details. ### EncNet -Please refer to [NonLocal Net](https://github.com/open-mmlab/mmsegmentatio/blob/master/configs/encnet) for details. +Please refer to [NonLocal Net](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet) for details. ### CCNet diff --git a/mmseg/__init__.py b/mmseg/__init__.py index 1c4f7e8fcc..151fd63f55 100644 --- a/mmseg/__init__.py +++ b/mmseg/__init__.py @@ -1,3 +1,3 @@ -from .version import __version__, short_version +from .version import __version__, short_version, version_info -__all__ = ['__version__', 'short_version'] +__all__ = ['__version__', 'short_version', 'version_info'] diff --git a/requirements.txt b/requirements.txt index 6981bd7233..6da5adea75 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,3 @@ --r requirements/build.txt -r requirements/optional.txt -r requirements/runtime.txt -r requirements/tests.txt diff --git a/requirements/build.txt b/requirements/build.txt deleted file mode 100644 index 06ef892b41..0000000000 --- a/requirements/build.txt +++ /dev/null @@ -1,2 +0,0 @@ -# These must be installed before building mmsegmentation -numpy diff --git a/requirements/tests.txt b/requirements/tests.txt index 400f79cd26..991fd711d4 100644 --- a/requirements/tests.txt +++ b/requirements/tests.txt @@ -1,4 +1,3 @@ -asynctest codecov flake8 interrogate diff --git a/setup.py b/setup.py index af05f95548..45f56b44b1 100755 --- a/setup.py +++ b/setup.py @@ -1,13 +1,8 @@ -#!/usr/bin/env python import os import subprocess import time from setuptools import find_packages, setup -import torch -from mmcv.utils.parrots_wrapper import (BuildExtension, CppExtension, - CUDAExtension) - def readme(): with open('README.md', encoding='utf-8') as f: @@ -85,32 +80,6 @@ def get_version(): return locals()['__version__'] -def make_cuda_ext(name, module, sources, sources_cuda=[]): - - define_macros = [] - extra_compile_args = {'cxx': []} - - if torch.cuda.is_available() or os.getenv('FORCE_CUDA', '0') == '1': - define_macros += [('WITH_CUDA', None)] - extension = CUDAExtension - extra_compile_args['nvcc'] = [ - '-D__CUDA_NO_HALF_OPERATORS__', - '-D__CUDA_NO_HALF_CONVERSIONS__', - '-D__CUDA_NO_HALF2_OPERATORS__', - ] - sources += sources_cuda - else: - print('Compiling {} without CUDA'.format(name)) - extension = CppExtension - # raise EnvironmentError('CUDA is required to compile MMSegmentation!') - - return extension( - name='{}.{}'.format(module, name), - sources=[os.path.join(*module.split('.'), p) for p in sources], - define_macros=define_macros, - extra_compile_args=extra_compile_args) - - def parse_requirements(fname='requirements.txt', with_version=True): """Parse the package dependencies listed in a requirements file but strips specific versioning information. @@ -199,7 +168,6 @@ def gen_packages_items(): keywords='computer vision, semantic segmentation', url='http://github.com/open-mmlab/mmsegmentation', packages=find_packages(exclude=('configs', 'tools', 'demo')), - package_data={'mmseg.ops': ['*/*.so']}, classifiers=[ 'Development Status :: 4 - Beta', 'License :: OSI Approved :: Apache Software License', @@ -219,5 +187,4 @@ def gen_packages_items(): 'optional': parse_requirements('requirements/optional.txt'), }, ext_modules=[], - cmdclass={'build_ext': BuildExtension}, zip_safe=False) From 5d2140f0cad181693655fdae8ea13da5d2b10b75 Mon Sep 17 00:00:00 2001 From: Kai Chen Date: Tue, 14 Jul 2020 00:28:13 +0800 Subject: [PATCH 004/706] Install wheel before building mmseg (#14) --- .github/workflows/deploy.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 0f66a64aa1..b972731162 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -13,7 +13,9 @@ jobs: with: python-version: 3.7 - name: Build MMSegmentation - run: python setup.py sdist bdist_wheel + run: | + pip install wheel + python setup.py sdist bdist_wheel - name: Publish distribution to PyPI run: | pip install twine From 0de0387b1f0cb3990656faa8fc55fd4e04b80743 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Tue, 14 Jul 2020 14:41:52 +0800 Subject: [PATCH 005/706] fixed name in pypi, add badge (#15) * fixed name in pypi, add badge * fixed name in install.md * update install.md --- README.md | 1 + docs/install.md | 19 ++++++++++++++----- setup.py | 9 +++++++-- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index ea1e8d5051..c7ea9e5299 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@
+[![PyPI](https://img.shields.io/pypi/v/mmsegmentation)](https://pypi.org/project/mmsegmentation) [![docs](https://img.shields.io/badge/docs-latest-blue)](https://mmsegmentation.readthedocs.io/en/latest/) [![badge](https://github.com/open-mmlab/mmsegmentation/workflows/build/badge.svg)](https://github.com/open-mmlab/mmsegmentation/actions) [![codecov](https://codecov.io/gh/open-mmlab/mmsegmentation/branch/master/graph/badge.svg)](https://codecov.io/gh/open-mmlab/mmsegmentation) diff --git a/docs/install.md b/docs/install.md index 265f45b18a..b3400959db 100644 --- a/docs/install.md +++ b/docs/install.md @@ -36,7 +36,7 @@ pip install mmcv-full==latest+torch1.5.0+cu101 -f https://openmmlab.oss-accelera d. Install MMSegmentation. ```shell -pip install mmseg # install the latest release +pip install mmsegmentation # install the latest release ``` or @@ -45,12 +45,19 @@ or pip install git+https://github.com/open-mmlab/mmsegmentation.git # install the master branch ``` +Instead, if you would like to install MMSegmentation in `dev` mode, run following +```shell +git clone https://github.com/open-mmlab/mmsegmentation +cd mmsegmentation +pip install -e . # or "python setup.py develop" +``` + Note: -1. The git commit id will be written to the version number with step *e*, e.g. 0.5.0+c415a2e. The version will also be saved in trained models. -It is recommended that you run step *e* each time you pull some updates from github. If C++/CUDA codes are modified, then this step is compulsory. +1. In `dev` mode, the git commit id will be written to the version number with step *d*, e.g. 0.5.0+c415a2e. The version will also be saved in trained models. +It is recommended that you run step *d* each time you pull some updates from github. If C++/CUDA codes are modified, then this step is compulsory. -2. Following the above instructions, mmsegmentation is installed on `dev` mode, any local modifications made to the code will take effect without the need to reinstall it (unless you submit some commits and want to update the version number). +2. When MMsegmentation is installed on `dev` mode, any local modifications made to the code will take effect without the need to reinstall it (unless you submit some commits and want to update the version number). 3. If you would like to use `opencv-python-headless` instead of `opencv-python`, you can install it before installing MMCV. @@ -68,7 +75,9 @@ conda activate open-mmlab conda install pytorch=1.5.0 torchvision cudatoolkit=10.1 -c pytorch pip install mmcv-full==latest+torch1.5.0+cu101 -f https://openmmlab.oss-accelerate.aliyuncs.com/mmcv/dist/index.html -pip install git+https://github.com/open-mmlab/mmsegmentation.git +git clone https://github.com/open-mmlab/mmsegmentation +cd mmsegmentation +pip install -e . # or "python setup.py develop" mkdir data ln -s $DATA_ROOT data diff --git a/setup.py b/setup.py index 45f56b44b1..63d73484f3 100755 --- a/setup.py +++ b/setup.py @@ -77,7 +77,12 @@ def write_version_py(): def get_version(): with open(version_file, 'r') as f: exec(compile(f.read(), version_file, 'exec')) - return locals()['__version__'] + import sys + # return short version for sdist + if 'sdist' in sys.argv or 'bdist_wheel' in sys.argv: + return locals()['short_version'] + else: + return locals()['__version__'] def parse_requirements(fname='requirements.txt', with_version=True): @@ -159,7 +164,7 @@ def gen_packages_items(): if __name__ == '__main__': write_version_py() setup( - name='mmseg', + name='mmsegmentation', version=get_version(), description='Open MMLab Semantic Segmentation Toolbox and Benchmark', long_description=readme(), From fd34179921d903e0a9e04da53846710d4a5793cc Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Tue, 14 Jul 2020 19:35:25 +0800 Subject: [PATCH 006/706] Fixed long description (#16) --- setup.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/setup.py b/setup.py index 63d73484f3..ab249fe718 100755 --- a/setup.py +++ b/setup.py @@ -3,13 +3,6 @@ import time from setuptools import find_packages, setup - -def readme(): - with open('README.md', encoding='utf-8') as f: - content = f.read() - return content - - version_file = 'mmseg/version.py' @@ -167,7 +160,6 @@ def gen_packages_items(): name='mmsegmentation', version=get_version(), description='Open MMLab Semantic Segmentation Toolbox and Benchmark', - long_description=readme(), author='MMSegmentation Authors', author_email='openmmlab@gmail.com', keywords='computer vision, semantic segmentation', From daa023836bb33209b8c73419a4dec47d7589f315 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Fri, 17 Jul 2020 09:55:28 +0800 Subject: [PATCH 007/706] Fixed voc aug convert (#19) * Fixed voc aug convert * update getting_started.md * add class balanced doc --- .github/ISSUE_TEMPLATE/config.yml | 5 +++++ docs/config.md | 10 ++++++++++ docs/getting_started.md | 6 ++++-- docs/tutorials/training_tricks.md | 16 ++++++++++++++++ tools/convert_datasets/voc_aug.py | 8 ++++++-- 5 files changed, 41 insertions(+), 4 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 3ba13e0cec..6eaae3e0d5 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1 +1,6 @@ blank_issues_enabled: false + +contact_links: + - name: MMSegmentation Documentation + url: https://mmsegmentation.readthedocs.io + about: Check the docs and FAQ to see if you question is already anwsered. diff --git a/docs/config.md b/docs/config.md index aace67ff93..be9226a60d 100644 --- a/docs/config.md +++ b/docs/config.md @@ -363,3 +363,13 @@ data = dict( test=dict(pipeline=test_pipeline)) ``` We first define the new `train_pipeline`/`test_pipeline` and pass them into `data`. + +Similarly, if we would like to switch from `SyncBN` to `BN` or `MMSyncBN`, we need to substitute every `norm_cfg` in the config. +```python +_base_ = '../pspnet/psp_r50_512x1024_40ki_cityscpaes.py' +norm_cfg = dict(type='BN', requires_grad=True) +model = dict( + backbone=dict(norm_cfg=norm_cfg), + decode_head=dict(norm_cfg=norm_cfg), + auxiliary_head=dict(norm_cfg=norm_cfg)) +``` diff --git a/docs/getting_started.md b/docs/getting_started.md index 3a9b656032..16cb3b4f04 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -132,6 +132,8 @@ Assume that you have already downloaded the checkpoints to the directory `checkp checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth \ 4 --out results.pkl --eval mIoU cityscapes ``` + Note: There is some inconsistency between cityscapes mIoU and our mIoU. The reason is that cityscapes average each class with class size by default. + We use the simple version without average for all datasets. 5. Test PSPNet on cityscapes test split with 4 GPUs, and generate the png files to be submit to the official evaluation server. @@ -151,8 +153,8 @@ Assume that you have already downloaded the checkpoints to the directory `checkp 4 --format-only --options "imgfile_prefix=./pspnet_test_results" ``` -You will get png files under `./pspnet_test_results` directory. -You may run `zip -r results.zip pspnet_test_results/` and submit the zip file to [evaluation server](https://www.cityscapes-dataset.com/submit/). + You will get png files under `./pspnet_test_results` directory. + You may run `zip -r results.zip pspnet_test_results/` and submit the zip file to [evaluation server](https://www.cityscapes-dataset.com/submit/). ### Image demo diff --git a/docs/tutorials/training_tricks.md b/docs/tutorials/training_tricks.md index 5ff4b18a70..85552166f4 100644 --- a/docs/tutorials/training_tricks.md +++ b/docs/tutorials/training_tricks.md @@ -26,3 +26,19 @@ model=dict( sampler=dict(type='OHEMPixelSampler', thresh=0.7, min_kept=100000)) ) ``` In this way, only pixels with confidence score under 0.7 are used to train. And we keep at least 100000 pixels during training. + +## Class Balanced Loss +For dataset that is not balanced in classes distribution, you may change the loss weight of each class. +Here is an example for cityscapes dataset. +```python +_base_ = './pspnet_r50-d8_512x1024_40k_cityscapes.py' +model=dict( + decode_head=dict( + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0, + # DeepLab used this class weight for cityscapes + class_weight=[0.8373, 0.9180, 0.8660, 1.0345, 1.0166, 0.9969, 0.9754, + 1.0489, 0.8786, 1.0023, 0.9539, 0.9843, 1.1116, 0.9037, + 1.0865, 1.0955, 1.0865, 1.1529, 1.0507]))) +``` +`class_weight` will be passed into `CrossEntropyLoss` as `weight` argument. Please refer to [PyTorch Doc ](https://pytorch.org/docs/stable/nn.html?highlight=crossentropy#torch.nn.CrossEntropyLoss) for details. diff --git a/tools/convert_datasets/voc_aug.py b/tools/convert_datasets/voc_aug.py index fd5400361f..942746351b 100644 --- a/tools/convert_datasets/voc_aug.py +++ b/tools/convert_datasets/voc_aug.py @@ -50,8 +50,12 @@ def main(): list(mmcv.scandir(in_dir, suffix='.mat')), nproc=nproc) - with open(osp.join(aug_path, 'dataset', 'trainval.txt')) as f: - full_aug_list = [line.strip() for line in f] + full_aug_list = [] + with open(osp.join(aug_path, 'dataset', 'train.txt')) as f: + full_aug_list += [line.strip() for line in f] + with open(osp.join(aug_path, 'dataset', 'val.txt')) as f: + full_aug_list += [line.strip() for line in f] + with open( osp.join(devkit_path, 'VOC2012/ImageSets/Segmentation', 'train.txt')) as f: From e1f5b9231e36d9a9d2816683147d1e51844dc6ad Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Mon, 20 Jul 2020 15:17:18 +0800 Subject: [PATCH 008/706] Support FP16 (#21) * Support FP16 * add miss folder * add tests * remove useless config * update memory * reduce config * migrate fp16 to mmcv * add model link --- README.md | 1 + configs/fp16/README.md | 21 ++++++++ ...v3_r101-d8_512x1024_80k_fp16_cityscapes.py | 3 ++ ...us_r101-d8_512x1024_80k_fp16_cityscapes.py | 3 ++ ...cn_r101-d8_512x1024_80k_fp16_cityscapes.py | 3 ++ ...et_r101-d8_512x1024_80k_fp16_cityscapes.py | 3 ++ docs/model_zoo.md | 5 ++ mmseg/core/utils/__init__.py | 3 +- mmseg/core/utils/dist_utils.py | 49 +++++++++++++++++++ mmseg/models/decode_heads/decode_head.py | 4 ++ mmseg/models/segmentors/base.py | 7 ++- 11 files changed, 99 insertions(+), 3 deletions(-) create mode 100644 configs/fp16/README.md create mode 100644 configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py create mode 100644 configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py create mode 100644 configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py create mode 100644 configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py create mode 100644 mmseg/core/utils/dist_utils.py diff --git a/README.md b/README.md index c7ea9e5299..69eab45fbc 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,7 @@ Supported methods: - [x] [GCNet](configs/gcnet) - [x] [ANN](configs/ann) - [x] [OCRNet](configs/ocrnet) +- [x] [Mixed Precision (FP16) Training](configs/fp16/README.md) ## Installation diff --git a/configs/fp16/README.md b/configs/fp16/README.md new file mode 100644 index 0000000000..757a83c5a7 --- /dev/null +++ b/configs/fp16/README.md @@ -0,0 +1,21 @@ +# Mixed Precision Training + +## Introduction +``` +@article{micikevicius2017mixed, + title={Mixed precision training}, + author={Micikevicius, Paulius and Narang, Sharan and Alben, Jonah and Diamos, Gregory and Elsen, Erich and Garcia, David and Ginsburg, Boris and Houston, Michael and Kuchaiev, Oleksii and Venkatesh, Ganesh and others}, + journal={arXiv preprint arXiv:1710.03740}, + year={2017} +} +``` + +## Results and models + +### Cityscapes +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | +|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| FCN | R-101-D8 | 512x1024 | 80000 | 5.50 | 2.66 | 76.80 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes-50245227.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230921.log.json) | +| PSPNet | R-101-D8 | 512x1024 | 80000 | 5.47 | 2.68 | 79.46 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes-ade37931.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230919.log.json) | +| DeepLabV3 | R-101-D8 | 512x1024 | 80000 | 5.91 | 1.93 | 80.48 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes-bc86dc84.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920.log.json) | +| DeepLabV3+ | R-101-D8 | 512x1024 | 80000 | 6.46 | 2.60 | 80.46 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes-cc58bc8d.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920.log.json) | diff --git a/configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py b/configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py new file mode 100644 index 0000000000..60d8350e98 --- /dev/null +++ b/configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py @@ -0,0 +1,3 @@ +_base_ = '../deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py' +# fp16 settings +optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.) diff --git a/configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py b/configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py new file mode 100644 index 0000000000..c263d6907e --- /dev/null +++ b/configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py @@ -0,0 +1,3 @@ +_base_ = '../deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py' +# fp16 settings +optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.) diff --git a/configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py b/configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py new file mode 100644 index 0000000000..8100a8e64d --- /dev/null +++ b/configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py @@ -0,0 +1,3 @@ +_base_ = '../fcn/fcn_r101-d8_512x1024_80k_cityscapes.py' +# fp16 settings +optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.) diff --git a/configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py b/configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py new file mode 100644 index 0000000000..aefac2953a --- /dev/null +++ b/configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py @@ -0,0 +1,3 @@ +_base_ = '../pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py' +# fp16 settings +optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.) diff --git a/docs/model_zoo.md b/docs/model_zoo.md index 200ae2fffd..ddca1f5095 100644 --- a/docs/model_zoo.md +++ b/docs/model_zoo.md @@ -81,6 +81,11 @@ Please refer to [ANN](https://github.com/open-mmlab/mmsegmentation/blob/master/c Please refer to [OCRNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet) for details. + +### Mixed Precision (FP16) Training + +Please refer [Mixed Precision (FP16) Training](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/README.md) for details. + ## Speed benchmark ### Hardware diff --git a/mmseg/core/utils/__init__.py b/mmseg/core/utils/__init__.py index f2678b321c..79d62f0270 100644 --- a/mmseg/core/utils/__init__.py +++ b/mmseg/core/utils/__init__.py @@ -1,3 +1,4 @@ +from .dist_utils import allreduce_grads from .misc import add_prefix -__all__ = ['add_prefix'] +__all__ = ['add_prefix', 'allreduce_grads'] diff --git a/mmseg/core/utils/dist_utils.py b/mmseg/core/utils/dist_utils.py new file mode 100644 index 0000000000..25219a7956 --- /dev/null +++ b/mmseg/core/utils/dist_utils.py @@ -0,0 +1,49 @@ +from collections import OrderedDict + +import torch.distributed as dist +from torch._utils import (_flatten_dense_tensors, _take_tensors, + _unflatten_dense_tensors) + + +def _allreduce_coalesced(tensors, world_size, bucket_size_mb=-1): + if bucket_size_mb > 0: + bucket_size_bytes = bucket_size_mb * 1024 * 1024 + buckets = _take_tensors(tensors, bucket_size_bytes) + else: + buckets = OrderedDict() + for tensor in tensors: + tp = tensor.type() + if tp not in buckets: + buckets[tp] = [] + buckets[tp].append(tensor) + buckets = buckets.values() + + for bucket in buckets: + flat_tensors = _flatten_dense_tensors(bucket) + dist.all_reduce(flat_tensors) + flat_tensors.div_(world_size) + for tensor, synced in zip( + bucket, _unflatten_dense_tensors(flat_tensors, bucket)): + tensor.copy_(synced) + + +def allreduce_grads(params, coalesce=True, bucket_size_mb=-1): + """Allreduce gradients. + + Args: + params (list[torch.Parameters]): List of parameters of a model + coalesce (bool, optional): Whether allreduce parameters as a whole. + Defaults to True. + bucket_size_mb (int, optional): Size of bucket, the unit is MB. + Defaults to -1. + """ + grads = [ + param.grad.data for param in params + if param.requires_grad and param.grad is not None + ] + world_size = dist.get_world_size() + if coalesce: + _allreduce_coalesced(grads, world_size, bucket_size_mb) + else: + for tensor in grads: + dist.all_reduce(tensor.div_(world_size)) diff --git a/mmseg/models/decode_heads/decode_head.py b/mmseg/models/decode_heads/decode_head.py index 1c2636fd14..9f55fee958 100644 --- a/mmseg/models/decode_heads/decode_head.py +++ b/mmseg/models/decode_heads/decode_head.py @@ -3,6 +3,7 @@ import torch import torch.nn as nn from mmcv.cnn import normal_init +from mmcv.runner import auto_fp16, force_fp32 from mmseg.core import build_pixel_sampler from mmseg.ops import resize @@ -81,6 +82,7 @@ def __init__(self, self.dropout = nn.Dropout2d(dropout_ratio) else: self.dropout = None + self.fp16_enabled = False def extra_repr(self): """Extra repr.""" @@ -158,6 +160,7 @@ def _transform_inputs(self, inputs): return inputs + @auto_fp16() @abstractmethod def forward(self, inputs): """Placeholder of forward function.""" @@ -207,6 +210,7 @@ def cls_seg(self, feat): output = self.conv_seg(feat) return output + @force_fp32(apply_to=('seg_logit', )) def losses(self, seg_logit, seg_label): """Compute segmentation loss.""" loss = dict() diff --git a/mmseg/models/segmentors/base.py b/mmseg/models/segmentors/base.py index 4f31127210..6b4084c77e 100644 --- a/mmseg/models/segmentors/base.py +++ b/mmseg/models/segmentors/base.py @@ -8,6 +8,7 @@ import torch import torch.distributed as dist import torch.nn as nn +from mmcv.runner import auto_fp16 class BaseSegmentor(nn.Module): @@ -17,6 +18,7 @@ class BaseSegmentor(nn.Module): def __init__(self): super(BaseSegmentor, self).__init__() + self.fp16_enabled = False @property def with_neck(self): @@ -105,6 +107,7 @@ def forward_test(self, imgs, img_metas, **kwargs): else: return self.aug_test(imgs, img_metas, **kwargs) + @auto_fp16(apply_to=('img', )) def forward(self, img, img_metas, return_loss=True, **kwargs): """Calls either :func:`forward_train` or :func:`forward_test` depending on whether ``return_loss`` is ``True``. @@ -146,7 +149,7 @@ def train_step(self, data_batch, optimizer, **kwargs): DDP, it means the batch size on each GPU), which is used for averaging the logs. """ - losses = self.forward_train(**data_batch, **kwargs) + losses = self(**data_batch) loss, log_vars = self._parse_losses(losses) outputs = dict( @@ -163,7 +166,7 @@ def val_step(self, data_batch, **kwargs): during val epochs. Note that the evaluation after training epochs is not implemented with this method, but an evaluation hook. """ - output = self.forward_test(**data_batch, **kwargs) + output = self(**data_batch, **kwargs) return output @staticmethod From 6e96bf83e5fa95474da779ca8dd4f0c395750ae3 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Mon, 20 Jul 2020 15:17:59 +0800 Subject: [PATCH 009/706] Fixed training tricks (#26) --- docs/getting_started.md | 2 +- docs/tutorials/training_tricks.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/getting_started.md b/docs/getting_started.md index 16cb3b4f04..e0a1caea64 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -132,7 +132,7 @@ Assume that you have already downloaded the checkpoints to the directory `checkp checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth \ 4 --out results.pkl --eval mIoU cityscapes ``` - Note: There is some inconsistency between cityscapes mIoU and our mIoU. The reason is that cityscapes average each class with class size by default. + Note: There is some gap (~0.1%) between cityscapes mIoU and our mIoU. The reason is that cityscapes average each class with class size by default. We use the simple version without average for all datasets. 5. Test PSPNet on cityscapes test split with 4 GPUs, and generate the png files to be submit to the official evaluation server. diff --git a/docs/tutorials/training_tricks.md b/docs/tutorials/training_tricks.md index 85552166f4..2a56daf301 100644 --- a/docs/tutorials/training_tricks.md +++ b/docs/tutorials/training_tricks.md @@ -8,7 +8,7 @@ In semantic segmentation, some methods make the LR of heads larger than backbone In MMSegmentation, you may add following lines to config to make the LR of heads 10 times of backbone. ```python -optimizer_config=dict( +optimizer=dict( paramwise_cfg = dict( custom_keys={ 'head': dict(lr_mult=10.)})) From a932cbe02ef06af2538e3fc2f5d0ed901ccee2a2 Mon Sep 17 00:00:00 2001 From: ycr <34575412+ClaireYiu@users.noreply.github.com> Date: Thu, 23 Jul 2020 13:01:31 +0800 Subject: [PATCH 010/706] Fix palette type. (#27) --- mmseg/models/segmentors/base.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mmseg/models/segmentors/base.py b/mmseg/models/segmentors/base.py index 6b4084c77e..6f59dbc72e 100644 --- a/mmseg/models/segmentors/base.py +++ b/mmseg/models/segmentors/base.py @@ -242,8 +242,7 @@ def show_result(self, 0, 255, size=(len(self.CLASSES), 3)) else: palette = self.PALETTE - else: - palette = np.array(palette) + palette = np.array(palette) assert palette.shape[0] == len(self.CLASSES) assert palette.shape[1] == 3 assert len(palette.shape) == 2 From 0d1c7a750b8b83ac515cae5e33b87b3d3586a467 Mon Sep 17 00:00:00 2001 From: Kai Chen Date: Mon, 27 Jul 2020 19:02:08 +0800 Subject: [PATCH 011/706] Update README.md (#38) --- README.md | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/README.md b/README.md index 69eab45fbc..e512f5e4ca 100644 --- a/README.md +++ b/README.md @@ -92,22 +92,3 @@ MMSegmentation is an open source project that welcome any contribution and feedb We wish that the toolbox and benchmark could serve the growing research community by providing a flexible as well as standardized toolkit to reimplement existing methods and develop their own new semantic segmentation methods. - -Many thanks to Ruobing Han ([@drcut](https://github.com/drcut)), Xiaoming Ma([@aishangmaxiaoming](https://github.com/aishangmaxiaoming)), Shiguang Wang ([@sunnyxiaohu](https://github.com/sunnyxiaohu)) for deployment support. - -## Citation - -If you use this toolbox or benchmark in your research, please cite this project. - -``` -@misc{mmseg2020, - author={Xu, Jiarui and Chen, Kai and Lin, Dahua}, - title={{MMSegmenation}}, - howpublished={\url{https://github.com/open-mmlab/mmsegmentation}}, - year={2020} -} -``` - -## Contact - -This repo is currently maintained by Jiarui Xu ([@xvjiarui](https://github.com/xvjiarui)), Kai Chen ([@hellock](http://github.com/hellock)). From fd100e02c461277e36fc511fde6f0f00ff1ff3a8 Mon Sep 17 00:00:00 2001 From: Evgeny Nizhibitsky Date: Thu, 6 Aug 2020 16:17:49 +0300 Subject: [PATCH 012/706] Add load-from flag (#33) * Add load-from flag * minor update Co-authored-by: Jiarui XU --- docs/getting_started.md | 7 ++++--- tools/train.py | 4 ++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/getting_started.md b/docs/getting_started.md index e0a1caea64..3098ea1c46 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -241,11 +241,12 @@ Optional arguments are: - `--no-validate` (**not suggested**): By default, the codebase will perform evaluation at every k iterations during the training. To disable this behavior, use `--no-validate`. - `--work-dir ${WORK_DIR}`: Override the working directory specified in the config file. -- `--resume-from ${CHECKPOINT_FILE}`: Resume from a previous checkpoint file. +- `--resume-from ${CHECKPOINT_FILE}`: Resume from a previous checkpoint file (to continue the training process). +- `--load-from ${CHECKPOINT_FILE}`: Load weights from a checkpoint file (to start finetuning for another task). Difference between `resume-from` and `load-from`: -`resume-from` loads both the model weights and optimizer status, and the iteration number is also inherited from the specified checkpoint. It is usually used for resuming the training process that is interrupted accidentally. -`load-from` only loads the model weights and the training iteration starts from 0. It is usually used for finetuning. +- `resume-from` loads both the model weights and optimizer state including the iteration number. +- `load-from` loads only the model weights, starts the training from iteration 0. ### Train with multiple machines diff --git a/tools/train.py b/tools/train.py index 26e8274b1f..34c097fbf3 100644 --- a/tools/train.py +++ b/tools/train.py @@ -20,6 +20,8 @@ def parse_args(): parser = argparse.ArgumentParser(description='Train a segmentor') parser.add_argument('config', help='train config file path') parser.add_argument('--work_dir', help='the dir to save logs and models') + parser.add_argument( + '--load-from', help='the checkpoint file to load weights from') parser.add_argument( '--resume-from', help='the checkpoint file to resume from') parser.add_argument( @@ -76,6 +78,8 @@ def main(): # use config filename as default work_dir if cfg.work_dir is None cfg.work_dir = osp.join('./work_dirs', osp.splitext(osp.basename(args.config))[0]) + if args.load_from is not None: + cfg.load_from = args.load_from if args.resume_from is not None: cfg.resume_from = args.resume_from if args.gpu_ids is not None: From 99e3e5e499ff55e5f2d7e43a2386edb25a9f98b0 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Sun, 9 Aug 2020 23:49:23 +0800 Subject: [PATCH 013/706] Generalized OHEM (#54) * Generalized OHEM * remove config * update docstring * fixed sort prob * fixed valid_mask --- docs/getting_started.md | 23 ++------ docs/tutorials/training_tricks.md | 2 +- mmseg/core/seg/sampler/ohem_pixel_sampler.py | 60 ++++++++++++-------- mmseg/models/decode_heads/decode_head.py | 2 +- tests/test_sampler.py | 21 ++++++- 5 files changed, 62 insertions(+), 46 deletions(-) diff --git a/docs/getting_started.md b/docs/getting_started.md index 3098ea1c46..9140435cf2 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -271,36 +271,23 @@ Usually it is slow if you do not have high speed networking like InfiniBand. ### Launch multiple jobs on a single machine If you launch multiple jobs on a single machine, e.g., 2 jobs of 4-GPU training on a machine with 8 GPUs, -you need to specify different ports (29500 by default) for each job to avoid communication conflict. +you need to specify different ports (29500 by default) for each job to avoid communication conflict. Otherwise, there will be error message saying `RuntimeError: Address already in use`. -If you use `dist_train.sh` to launch training jobs, you can set the port in commands. +If you use `dist_train.sh` to launch training jobs, you can set the port in commands with environment variable `PORT`. ```shell CUDA_VISIBLE_DEVICES=0,1,2,3 PORT=29500 ./tools/dist_train.sh ${CONFIG_FILE} 4 CUDA_VISIBLE_DEVICES=4,5,6,7 PORT=29501 ./tools/dist_train.sh ${CONFIG_FILE} 4 ``` -If you use launch training jobs with Slurm, you need to modify the config files (usually the 6th line from the bottom in config files) to set different communication ports. +If you use `slurm_train.sh` to launch training jobs, you can set the port in commands with environment variable `MASTER_PORT`. -In `config1.py`, -```python -dist_params = dict(backend='nccl', port=29500) -``` - -In `config2.py`, -```python -dist_params = dict(backend='nccl', port=29501) -``` - -Then you can launch two jobs with `config1.py` ang `config2.py`. ```shell -CUDA_VISIBLE_DEVICES=0,1,2,3 GPUS=4 ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} config1.py ${WORK_DIR} -CUDA_VISIBLE_DEVICES=4,5,6,7 GPUS=4 ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} config2.py ${WORK_DIR} +MASTER_PORT=29500 ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} ${CONFIG_FILE} +MASTER_PORT=29501 ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} ${CONFIG_FILE} ``` -Or you could specify port by `---options dist_params.port=29501` - ## Useful tools We provide lots of useful tools under `tools/` directory. diff --git a/docs/tutorials/training_tricks.md b/docs/tutorials/training_tricks.md index 2a56daf301..11b348075b 100644 --- a/docs/tutorials/training_tricks.md +++ b/docs/tutorials/training_tricks.md @@ -25,7 +25,7 @@ model=dict( decode_head=dict( sampler=dict(type='OHEMPixelSampler', thresh=0.7, min_kept=100000)) ) ``` -In this way, only pixels with confidence score under 0.7 are used to train. And we keep at least 100000 pixels during training. +In this way, only pixels with confidence score under 0.7 are used to train. And we keep at least 100000 pixels during training. If `thresh` is not specified, pixels of top ``min_kept`` loss will be selected. ## Class Balanced Loss For dataset that is not balanced in classes distribution, you may change the loss weight of each class. diff --git a/mmseg/core/seg/sampler/ohem_pixel_sampler.py b/mmseg/core/seg/sampler/ohem_pixel_sampler.py index 28c14ab5d1..88bb10d440 100644 --- a/mmseg/core/seg/sampler/ohem_pixel_sampler.py +++ b/mmseg/core/seg/sampler/ohem_pixel_sampler.py @@ -10,22 +10,25 @@ class OHEMPixelSampler(BasePixelSampler): """Online Hard Example Mining Sampler for segmentation. Args: - thresh (float): The threshold for hard example selection. Below - which, are prediction with low confidence. Default: 0.7. - min_kept (int): The minimum number of predictions to keep. + context (nn.Module): The context of sampler, subclass of + :obj:`BaseDecodeHead`. + thresh (float, optional): The threshold for hard example selection. + Below which, are prediction with low confidence. If not + specified, the hard examples will be pixels of top ``min_kept`` + loss. Default: None. + min_kept (int, optional): The minimum number of predictions to keep. Default: 100000. - ignore_index (int): The ignore index for training. Default: 255. """ - def __init__(self, thresh=0.7, min_kept=100000, ignore_index=255): + def __init__(self, context, thresh=None, min_kept=100000): super(OHEMPixelSampler, self).__init__() + self.context = context assert min_kept > 1 self.thresh = thresh self.min_kept = min_kept - self.ignore_index = ignore_index def sample(self, seg_logit, seg_label): - """ + """Sample pixels that have high loss or with low prediction confidence. Args: seg_logit (torch.Tensor): segmentation logits, shape (N, C, H, W) @@ -33,32 +36,41 @@ def sample(self, seg_logit, seg_label): Returns: torch.Tensor: segmentation weight, shape (N, H, W) - """ with torch.no_grad(): assert seg_logit.shape[2:] == seg_label.shape[2:] assert seg_label.shape[1] == 1 seg_label = seg_label.squeeze(1).long() batch_kept = self.min_kept * seg_label.size(0) - seg_prob = F.softmax(seg_logit, dim=1) - mask = seg_label.contiguous().view(-1, ) != self.ignore_index + valid_mask = seg_label != self.context.ignore_index + seg_weight = seg_logit.new_zeros(size=seg_label.size()) + valid_seg_weight = seg_weight[valid_mask] + if self.thresh is not None: + seg_prob = F.softmax(seg_logit, dim=1) - tmp_seg_label = seg_label.clone() - tmp_seg_label[tmp_seg_label == self.ignore_index] = 0 - seg_prob = seg_prob.gather(1, tmp_seg_label.unsqueeze(1)) - sort_prob, sort_indices = seg_prob.contiguous().view( - -1, )[mask].contiguous().sort() + tmp_seg_label = seg_label.clone().unsqueeze(1) + tmp_seg_label[tmp_seg_label == self.context.ignore_index] = 0 + seg_prob = seg_prob.gather(1, tmp_seg_label).squeeze(1) + sort_prob, sort_indices = seg_prob[valid_mask].sort() - if sort_prob.numel() > 0: - min_threshold = sort_prob[min(batch_kept, - sort_prob.numel() - 1)] + if sort_prob.numel() > 0: + min_threshold = sort_prob[min(batch_kept, + sort_prob.numel() - 1)] + else: + min_threshold = 0.0 + threshold = max(min_threshold, self.thresh) + valid_seg_weight[seg_prob[valid_mask] < threshold] = 1. else: - min_threshold = 0.0 - threshold = max(min_threshold, self.thresh) + losses = self.context.loss_decode( + seg_logit, + seg_label, + weight=None, + ignore_index=self.context.ignore_index, + reduction_override='none') + # faster than topk according to https://github.com/pytorch/pytorch/issues/22812 # noqa + _, sort_indices = losses[valid_mask].sort(descending=True) + valid_seg_weight[sort_indices[:batch_kept]] = 1. - seg_weight = seg_logit.new_ones(size=seg_label.size()) - seg_weight = seg_weight.view(-1) - seg_weight[mask][sort_prob < threshold] = 0. - seg_weight = seg_weight.view_as(seg_label) + seg_weight[valid_mask] = valid_seg_weight return seg_weight diff --git a/mmseg/models/decode_heads/decode_head.py b/mmseg/models/decode_heads/decode_head.py index 9f55fee958..0f58c80e9b 100644 --- a/mmseg/models/decode_heads/decode_head.py +++ b/mmseg/models/decode_heads/decode_head.py @@ -73,7 +73,7 @@ def __init__(self, self.ignore_index = ignore_index self.align_corners = align_corners if sampler is not None: - self.sampler = build_pixel_sampler(sampler) + self.sampler = build_pixel_sampler(sampler, context=self) else: self.sampler = None diff --git a/tests/test_sampler.py b/tests/test_sampler.py index af26b8dd62..3c79c16277 100644 --- a/tests/test_sampler.py +++ b/tests/test_sampler.py @@ -2,20 +2,37 @@ import torch from mmseg.core import OHEMPixelSampler +from mmseg.models.decode_heads import FCNHead + + +def _context_for_ohem(): + return FCNHead(in_channels=32, channels=16, num_classes=19) def test_ohem_sampler(): with pytest.raises(AssertionError): # seg_logit and seg_label must be of the same size - sampler = OHEMPixelSampler() + sampler = OHEMPixelSampler(context=_context_for_ohem()) seg_logit = torch.randn(1, 19, 45, 45) seg_label = torch.randint(0, 19, size=(1, 1, 89, 89)) sampler.sample(seg_logit, seg_label) - sampler = OHEMPixelSampler() + # test with thresh + sampler = OHEMPixelSampler( + context=_context_for_ohem(), thresh=0.7, min_kept=200) + seg_logit = torch.randn(1, 19, 45, 45) + seg_label = torch.randint(0, 19, size=(1, 1, 45, 45)) + seg_weight = sampler.sample(seg_logit, seg_label) + assert seg_weight.shape[0] == seg_logit.shape[0] + assert seg_weight.shape[1:] == seg_logit.shape[2:] + assert seg_weight.sum() > 200 + + # test w.o thresh + sampler = OHEMPixelSampler(context=_context_for_ohem(), min_kept=200) seg_logit = torch.randn(1, 19, 45, 45) seg_label = torch.randint(0, 19, size=(1, 1, 45, 45)) seg_weight = sampler.sample(seg_logit, seg_label) assert seg_weight.shape[0] == seg_logit.shape[0] assert seg_weight.shape[1:] == seg_logit.shape[2:] + assert seg_weight.sum() == 200 From 0f702f44afa540c3887b21d8a3a66f7e3fd9bf09 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Tue, 11 Aug 2020 19:23:35 +0800 Subject: [PATCH 014/706] Auto get version info and git hash (#55) * Auto get version info and git hash * bump 0.5.1 and update doc * fixed docs * Add change log --- .gitignore | 1 - README.md | 3 +- docs/changelog.md | 15 + docs/conf.py | 11 +- docs/install.md | 5 +- docs/model_zoo.json | 2724 ------------------------------------ mmseg/VERSION | 1 - mmseg/__init__.py | 31 +- mmseg/utils/collect_env.py | 4 +- mmseg/version.py | 18 + setup.py | 79 +- tools/train.py | 4 +- 12 files changed, 88 insertions(+), 2808 deletions(-) create mode 100644 docs/changelog.md delete mode 100644 docs/model_zoo.json delete mode 100644 mmseg/VERSION create mode 100644 mmseg/version.py diff --git a/.gitignore b/.gitignore index 77824a97a7..9b7cffbc88 100644 --- a/.gitignore +++ b/.gitignore @@ -103,7 +103,6 @@ venv.bak/ # mypy .mypy_cache/ -mmseg/version.py data .vscode .idea diff --git a/README.md b/README.md index e512f5e4ca..63352663de 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,8 @@ This project is released under the [Apache 2.0 license](LICENSE). ## Changelog -v0.5.0 was released in 10/7/2020. +v0.5.1 was released in 11/08/2020. +Please refer to [changelog.md](docs/changelog.md) for details and release history. ## Benchmark and model zoo diff --git a/docs/changelog.md b/docs/changelog.md new file mode 100644 index 0000000000..9efa48b24d --- /dev/null +++ b/docs/changelog.md @@ -0,0 +1,15 @@ +## Changelog + +### v0.5.1 (11/08/2020) +**Highlights** +- Support FP16 and more generalized OHEM +**Bug Fixes** +- Fixed Pascal VOC conversion script (#19) +- Fixed OHEM weight assign bug (#54) +- Fixed palette type when palette is not given (#27) +**New Features** +- Support FP16 (#21) +- Generalized OHEM (#54) +**Improvements** +- Add load-from flag (#33) +- Fixed training tricks doc about different learning rates of model (#26) diff --git a/docs/conf.py b/docs/conf.py index 20f2534dec..d8b473b461 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -20,10 +20,17 @@ project = 'MMSegmentation' copyright = '2020-2020, OpenMMLab' author = 'MMSegmentation Authors' +version_file = '../mmseg/version.py' + + +def get_version(): + with open(version_file, 'r') as f: + exec(compile(f.read(), version_file, 'exec')) + return locals()['__version__'] + # The full version, including alpha/beta/rc tags -with open('../mmseg/VERSION', 'r') as f: - release = f.read().strip() +release = get_version() # -- General configuration --------------------------------------------------- diff --git a/docs/install.md b/docs/install.md index b3400959db..a6def65d6b 100644 --- a/docs/install.md +++ b/docs/install.md @@ -54,10 +54,9 @@ pip install -e . # or "python setup.py develop" Note: -1. In `dev` mode, the git commit id will be written to the version number with step *d*, e.g. 0.5.0+c415a2e. The version will also be saved in trained models. -It is recommended that you run step *d* each time you pull some updates from github. If C++/CUDA codes are modified, then this step is compulsory. +1. The `version+git_hash` will also be saved in trained models meta, e.g. 0.5.0+c415a2e. -2. When MMsegmentation is installed on `dev` mode, any local modifications made to the code will take effect without the need to reinstall it (unless you submit some commits and want to update the version number). +2. When MMsegmentation is installed on `dev` mode, any local modifications made to the code will take effect without the need to reinstall it. 3. If you would like to use `opencv-python-headless` instead of `opencv-python`, you can install it before installing MMCV. diff --git a/docs/model_zoo.json b/docs/model_zoo.json deleted file mode 100644 index cc14cce043..0000000000 --- a/docs/model_zoo.json +++ /dev/null @@ -1,2724 +0,0 @@ -{ - "ccnet": { - "voc12aug": [ - [ - [ - "CCNet", - "R-50-D8", - "512x512", - 20000, - "6.0", - 20.446969644812683, - 76.168, - 77.51245728562927, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r50-d8_512x512_20k_voc12aug/ccnet_r50-d8_512x512_20k_voc12aug_20200617_193212-fad81784.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r50-d8_512x512_20k_voc12aug/ccnet_r50-d8_512x512_20k_voc12aug_20200617_193212.log.json)" - ], - [ - "CCNet", - "R-101-D8", - "512x512", - 20000, - "9.5", - 13.637111132708073, - 77.274, - 79.02193536016937, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r101-d8_512x512_20k_voc12aug/ccnet_r101-d8_512x512_20k_voc12aug_20200617_193212-0007b61d.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r101-d8_512x512_20k_voc12aug/ccnet_r101-d8_512x512_20k_voc12aug_20200617_193212.log.json)" - ], - [ - "CCNet", - "R-50-D8", - "512x512", - 40000, - "-", - "-", - 75.96300000000001, - 77.03666314173265, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r50-d8_512x512_40k_voc12aug/ccnet_r50-d8_512x512_40k_voc12aug_20200613_232127-c2a15f02.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r50-d8_512x512_40k_voc12aug/ccnet_r50-d8_512x512_40k_voc12aug_20200613_232127.log.json)" - ], - [ - "CCNet", - "R-101-D8", - "512x512", - 40000, - "-", - "-", - 77.86800000000001, - 78.90226783309761, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r101-d8_512x512_40k_voc12aug/ccnet_r101-d8_512x512_40k_voc12aug_20200613_232127-c30da577.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r101-d8_512x512_40k_voc12aug/ccnet_r101-d8_512x512_40k_voc12aug_20200613_232127.log.json)" - ] - ] - ], - "cityscapes": [ - [ - [ - "CCNet", - "R-50-D8", - "512x1024", - 40000, - "6.0", - 3.321448861645321, - 77.757, - 78.87281569371032, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes/ccnet_r50-d8_512x1024_40k_cityscapes_20200616_142517-4123f401.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes/ccnet_r50-d8_512x1024_40k_cityscapes_20200616_142517.log.json)" - ], - [ - "CCNet", - "R-101-D8", - "512x1024", - 40000, - "9.5", - 2.3057084889880533, - 76.346, - 78.19477535704155, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes/ccnet_r101-d8_512x1024_40k_cityscapes_20200616_142540-a3b84ba6.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes/ccnet_r101-d8_512x1024_40k_cityscapes_20200616_142540.log.json)" - ], - [ - "CCNet", - "R-50-D8", - "769x769", - 40000, - "6.8", - 1.4297640908184566, - 78.461, - 79.9288478571096, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r50-d8_769x769_40k_cityscapes/ccnet_r50-d8_769x769_40k_cityscapes_20200616_145125-76d11884.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r50-d8_769x769_40k_cityscapes/ccnet_r50-d8_769x769_40k_cityscapes_20200616_145125.log.json)" - ], - [ - "CCNet", - "R-101-D8", - "769x769", - 40000, - "10.7", - 1.0054480750692631, - 76.941, - 78.62346948358564, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r101-d8_769x769_40k_cityscapes/ccnet_r101-d8_769x769_40k_cityscapes_20200617_101428-4f57c8d0.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r101-d8_769x769_40k_cityscapes/ccnet_r101-d8_769x769_40k_cityscapes_20200617_101428.log.json)" - ], - [ - "CCNet", - "R-50-D8", - "512x1024", - 80000, - "-", - "-", - 79.035, - 80.1605485551008, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes/ccnet_r50-d8_512x1024_80k_cityscapes_20200617_010421-869a3423.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes/ccnet_r50-d8_512x1024_80k_cityscapes_20200617_010421.log.json)" - ], - [ - "CCNet", - "R-101-D8", - "512x1024", - 80000, - "-", - "-", - 78.86800000000001, - 79.89770560760813, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes/ccnet_r101-d8_512x1024_80k_cityscapes_20200617_203935-ffae8917.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes/ccnet_r101-d8_512x1024_80k_cityscapes_20200617_203935.log.json)" - ], - [ - "CCNet", - "R-50-D8", - "769x769", - 80000, - "-", - "-", - 79.295, - 81.07581708289482, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r50-d8_769x769_80k_cityscapes/ccnet_r50-d8_769x769_80k_cityscapes_20200617_010421-73eed8ca.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r50-d8_769x769_80k_cityscapes/ccnet_r50-d8_769x769_80k_cityscapes_20200617_010421.log.json)" - ], - [ - "CCNet", - "R-101-D8", - "769x769", - 80000, - "-", - "-", - 79.449, - 80.65765062513057, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r101-d8_769x769_80k_cityscapes/ccnet_r101-d8_769x769_80k_cityscapes_20200618_011502-ad3cd481.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r101-d8_769x769_80k_cityscapes/ccnet_r101-d8_769x769_80k_cityscapes_20200618_011502.log.json)" - ] - ] - ], - "ade20k": [ - [ - [ - "CCNet", - "R-50-D8", - "512x512", - 80000, - "8.8", - 20.889847025344185, - 41.776, - 42.980388602332184, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r50-d8_512x512_80k_ade20k/ccnet_r50-d8_512x512_80k_ade20k_20200615_014848-aa37f61e.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r50-d8_512x512_80k_ade20k/ccnet_r50-d8_512x512_80k_ade20k_20200615_014848.log.json)" - ], - [ - "CCNet", - "R-101-D8", - "512x512", - 80000, - "12.2", - 14.108705519350595, - 43.972, - 45.13437368692854, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r101-d8_512x512_80k_ade20k/ccnet_r101-d8_512x512_80k_ade20k_20200615_014848-1f4929a3.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r101-d8_512x512_80k_ade20k/ccnet_r101-d8_512x512_80k_ade20k_20200615_014848.log.json)" - ], - [ - "CCNet", - "R-50-D8", - "512x512", - 160000, - "-", - "-", - 42.079, - 43.131354987778764, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r50-d8_512x512_160k_ade20k/ccnet_r50-d8_512x512_160k_ade20k_20200616_084435-7c97193b.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r50-d8_512x512_160k_ade20k/ccnet_r50-d8_512x512_160k_ade20k_20200616_084435.log.json)" - ], - [ - "CCNet", - "R-101-D8", - "512x512", - 160000, - "-", - "-", - 43.706, - 45.043400185988624, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r101-d8_512x512_160k_ade20k/ccnet_r101-d8_512x512_160k_ade20k_20200616_000644-e849e007.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ccnet/ccnet_r101-d8_512x512_160k_ade20k/ccnet_r101-d8_512x512_160k_ade20k_20200616_000644.log.json)" - ] - ] - ] - }, - "ocrnet": { - "cityscapes": [ - [ - [ - "OCRNet", - "HRNetV2p-W18-Small", - "512x1024", - 40000, - "3.5", - 10.452887853499684, - 74.30099999999999, - 75.94532264911325, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes/ocrnet_hr18s_512x1024_40k_cityscapes_20200601_033304-fa2436c2.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes/ocrnet_hr18s_512x1024_40k_cityscapes_20200601_033304.log.json)" - ], - [ - "OCRNet", - "HRNetV2p-W18", - "512x1024", - 40000, - "4.7", - 7.504321415510909, - 77.71900000000001, - 79.49233034088692, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes/ocrnet_hr18_512x1024_40k_cityscapes_20200601_033320-401c5bdd.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes/ocrnet_hr18_512x1024_40k_cityscapes_20200601_033320.log.json)" - ], - [ - "OCRNet", - "HRNetV2p-W48", - "512x1024", - 40000, - "8.0", - 4.215373853142414, - 80.58, - 81.79213277409706, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes/ocrnet_hr48_512x1024_40k_cityscapes_20200601_033336-55b32491.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes/ocrnet_hr48_512x1024_40k_cityscapes_20200601_033336.log.json)" - ], - [ - "OCRNet", - "HRNetV2p-W18-Small", - "512x1024", - 80000, - "-", - "-", - 77.157, - 78.66157171766707, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes/ocrnet_hr18s_512x1024_80k_cityscapes_20200601_222735-55979e63.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes/ocrnet_hr18s_512x1024_80k_cityscapes_20200601_222735.log.json)" - ], - [ - "OCRNet", - "HRNetV2p-W18", - "512x1024", - 80000, - "-", - "-", - 78.568, - 80.45534029123633, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes/ocrnet_hr18_512x1024_80k_cityscapes_20200614_230521-c2e1dd4a.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes/ocrnet_hr18_512x1024_80k_cityscapes_20200614_230521.log.json)" - ], - [ - "OCRNet", - "HRNetV2p-W48", - "512x1024", - 80000, - "-", - "-", - 80.704, - 81.87462053536443, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes/ocrnet_hr48_512x1024_80k_cityscapes_20200601_222752-9076bcdf.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes/ocrnet_hr48_512x1024_80k_cityscapes_20200601_222752.log.json)" - ], - [ - "OCRNet", - "HRNetV2p-W18-Small", - "512x1024", - 160000, - "-", - "-", - 78.448, - 79.9684406563932, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes/ocrnet_hr18s_512x1024_160k_cityscapes_20200602_191005-f4a7af28.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes/ocrnet_hr18s_512x1024_160k_cityscapes_20200602_191005.log.json)" - ], - [ - "OCRNet", - "HRNetV2p-W18", - "512x1024", - 160000, - "-", - "-", - 79.473, - 80.91408916940453, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes/ocrnet_hr18_512x1024_160k_cityscapes_20200602_191001-b9172d0c.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes/ocrnet_hr18_512x1024_160k_cityscapes_20200602_191001.log.json)" - ], - [ - "OCRNet", - "HRNetV2p-W48", - "512x1024", - 160000, - "-", - "-", - 81.34599999999999, - 82.69728960882979, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes/ocrnet_hr48_512x1024_160k_cityscapes_20200602_191037-dfbf1b0c.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes/ocrnet_hr48_512x1024_160k_cityscapes_20200602_191037.log.json)" - ] - ] - ], - "voc12aug": [ - [ - [ - "OCRNet", - "HRNetV2p-W18-Small", - "512x512", - 20000, - "3.5", - 31.554844022107428, - 71.7, - 73.83921653423745, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug/ocrnet_hr18s_512x512_20k_voc12aug_20200617_233913-02b04fcb.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug/ocrnet_hr18s_512x512_20k_voc12aug_20200617_233913.log.json)" - ], - [ - "OCRNet", - "HRNetV2p-W18", - "512x512", - 20000, - "4.7", - 19.90720967998522, - 74.749, - 77.1105042314631, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18_512x512_20k_voc12aug/ocrnet_hr18_512x512_20k_voc12aug_20200617_233932-8954cbb7.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18_512x512_20k_voc12aug/ocrnet_hr18_512x512_20k_voc12aug_20200617_233932.log.json)" - ], - [ - "OCRNet", - "HRNetV2p-W48", - "512x512", - 20000, - "8.1", - 17.82942134961672, - 77.72, - 79.87183377075576, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr48_512x512_20k_voc12aug/ocrnet_hr48_512x512_20k_voc12aug_20200617_233932-9e82080a.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr48_512x512_20k_voc12aug/ocrnet_hr48_512x512_20k_voc12aug_20200617_233932.log.json)" - ], - [ - "OCRNet", - "HRNetV2p-W18-Small", - "512x512", - 40000, - "-", - "-", - 72.761, - 74.6014601681293, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug/ocrnet_hr18s_512x512_40k_voc12aug_20200614_002025-42b587ac.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug/ocrnet_hr18s_512x512_40k_voc12aug_20200614_002025.log.json)" - ], - [ - "OCRNet", - "HRNetV2p-W18", - "512x512", - 40000, - "-", - "-", - 74.982, - 77.39817842813225, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18_512x512_40k_voc12aug/ocrnet_hr18_512x512_40k_voc12aug_20200614_015958-714302be.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18_512x512_40k_voc12aug/ocrnet_hr18_512x512_40k_voc12aug_20200614_015958.log.json)" - ], - [ - "OCRNet", - "HRNetV2p-W48", - "512x512", - 40000, - "-", - "-", - 77.143, - 79.70754598517257, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr48_512x512_40k_voc12aug/ocrnet_hr48_512x512_40k_voc12aug_20200614_015958-255bc5ce.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr48_512x512_40k_voc12aug/ocrnet_hr48_512x512_40k_voc12aug_20200614_015958.log.json)" - ] - ] - ], - "ade20k": [ - [ - [ - "OCRNet", - "HRNetV2p-W18-Small", - "512x512", - 80000, - "6.7", - 28.980094398974657, - 35.056, - 35.797050387137105, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18s_512x512_80k_ade20k/ocrnet_hr18s_512x512_80k_ade20k_20200615_055600-e80b62af.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18s_512x512_80k_ade20k/ocrnet_hr18s_512x512_80k_ade20k_20200615_055600.log.json)" - ], - [ - "OCRNet", - "HRNetV2p-W18", - "512x512", - 80000, - "7.9", - 18.928971854245283, - 37.789, - 39.155377232744, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18_512x512_80k_ade20k/ocrnet_hr18_512x512_80k_ade20k_20200615_053157-d173d83b.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18_512x512_80k_ade20k/ocrnet_hr18_512x512_80k_ade20k_20200615_053157.log.json)" - ], - [ - "OCRNet", - "HRNetV2p-W48", - "512x512", - 80000, - "11.2", - 16.991178423144667, - 43.0, - 44.299600723103225, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr48_512x512_80k_ade20k/ocrnet_hr48_512x512_80k_ade20k_20200615_021518-d168c2d1.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr48_512x512_80k_ade20k/ocrnet_hr48_512x512_80k_ade20k_20200615_021518.log.json)" - ], - [ - "OCRNet", - "HRNetV2p-W18-Small", - "512x512", - 160000, - "-", - "-", - 37.191, - 38.40331034259458, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18s_512x512_160k_ade20k/ocrnet_hr18s_512x512_160k_ade20k_20200615_184505-8e913058.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18s_512x512_160k_ade20k/ocrnet_hr18s_512x512_160k_ade20k_20200615_184505.log.json)" - ], - [ - "OCRNet", - "HRNetV2p-W18", - "512x512", - 160000, - "-", - "-", - 39.322, - 40.80220494656125, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18_512x512_160k_ade20k/ocrnet_hr18_512x512_160k_ade20k_20200615_200940-d8fcd9d1.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr18_512x512_160k_ade20k/ocrnet_hr18_512x512_160k_ade20k_20200615_200940.log.json)" - ], - [ - "OCRNet", - "HRNetV2p-W48", - "512x512", - 160000, - "-", - "-", - 43.254, - 44.87655360616251, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr48_512x512_160k_ade20k/ocrnet_hr48_512x512_160k_ade20k_20200615_184705-a073726d.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ocrnet/ocrnet_hr48_512x512_160k_ade20k/ocrnet_hr48_512x512_160k_ade20k_20200615_184705.log.json)" - ] - ] - ] - }, - "fcn": { - "ade20k": [ - [ - [ - "FCN", - "R-50-D8", - "512x512", - 80000, - "8.5", - 23.4864501408415, - 35.94, - 37.93716647334422, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r50-d8_512x512_80k_ade20k/fcn_r50-d8_512x512_80k_ade20k_20200614_144016-f8ac5082.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r50-d8_512x512_80k_ade20k/fcn_r50-d8_512x512_80k_ade20k_20200614_144016.log.json)" - ], - [ - "FCN", - "R-101-D8", - "512x512", - 80000, - "12.0", - 14.780950192500319, - 39.614, - 40.827367113582405, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r101-d8_512x512_80k_ade20k/fcn_r101-d8_512x512_80k_ade20k_20200615_014143-bc1809f7.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r101-d8_512x512_80k_ade20k/fcn_r101-d8_512x512_80k_ade20k_20200615_014143.log.json)" - ], - [ - "FCN", - "R-50-D8", - "512x512", - 160000, - "-", - "-", - 36.105, - 38.078772436420934, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r50-d8_512x512_160k_ade20k/fcn_r50-d8_512x512_160k_ade20k_20200615_100713-4edbc3b4.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r50-d8_512x512_160k_ade20k/fcn_r50-d8_512x512_160k_ade20k_20200615_100713.log.json)" - ], - [ - "FCN", - "R-101-D8", - "512x512", - 160000, - "-", - "-", - 39.914, - 41.39843118160508, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r101-d8_512x512_160k_ade20k/fcn_r101-d8_512x512_160k_ade20k_20200615_105816-fd192bd5.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r101-d8_512x512_160k_ade20k/fcn_r101-d8_512x512_160k_ade20k_20200615_105816.log.json)" - ] - ] - ], - "cityscapes": [ - [ - [ - "FCN", - "R-50-D8", - "512x1024", - 40000, - "5.7", - 4.169686275718568, - 72.246, - 73.35990418338677, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r50-d8_512x1024_40k_cityscapes/fcn_r50-d8_512x1024_40k_cityscapes_20200604_192608-efe53f0d.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r50-d8_512x1024_40k_cityscapes/fcn_r50-d8_512x1024_40k_cityscapes_20200604_192608.log.json)" - ], - [ - "FCN", - "R-101-D8", - "512x1024", - 40000, - "9.2", - 2.6579467518998623, - 75.44999999999999, - 76.58052712300109, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r101-d8_512x1024_40k_cityscapes/fcn_r101-d8_512x1024_40k_cityscapes_20200604_181852-a883d3a1.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r101-d8_512x1024_40k_cityscapes/fcn_r101-d8_512x1024_40k_cityscapes_20200604_181852.log.json)" - ], - [ - "FCN", - "R-50-D8", - "769x769", - 40000, - "6.5", - 1.796476680257555, - 71.47099999999999, - 72.53595679063739, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r50-d8_769x769_40k_cityscapes/fcn_r50-d8_769x769_40k_cityscapes_20200606_113104-977b5d02.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r50-d8_769x769_40k_cityscapes/fcn_r50-d8_769x769_40k_cityscapes_20200606_113104.log.json)" - ], - [ - "FCN", - "R-101-D8", - "769x769", - 40000, - "10.4", - 1.1858280952855258, - 73.929, - 75.13723386002961, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r101-d8_769x769_40k_cityscapes/fcn_r101-d8_769x769_40k_cityscapes_20200606_113208-7d4ab69c.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r101-d8_769x769_40k_cityscapes/fcn_r101-d8_769x769_40k_cityscapes_20200606_113208.log.json)" - ], - [ - "FCN", - "R-50-D8", - "512x1024", - 80000, - "-", - "-", - 73.61, - 74.23620409061135, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r50-d8_512x1024_80k_cityscapes/fcn_r50-d8_512x1024_80k_cityscapes_20200606_113019-03aa804d.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r50-d8_512x1024_80k_cityscapes/fcn_r50-d8_512x1024_80k_cityscapes_20200606_113019.log.json)" - ], - [ - "FCN", - "R-101-D8", - "512x1024", - 80000, - "-", - "-", - 75.13300000000001, - 75.93619310604196, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r101-d8_512x1024_80k_cityscapes/fcn_r101-d8_512x1024_80k_cityscapes_20200606_113038-3fb937eb.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r101-d8_512x1024_80k_cityscapes/fcn_r101-d8_512x1024_80k_cityscapes_20200606_113038.log.json)" - ], - [ - "FCN", - "R-50-D8", - "769x769", - 80000, - "-", - "-", - 72.643, - 73.31626041581089, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r50-d8_769x769_80k_cityscapes/fcn_r50-d8_769x769_80k_cityscapes_20200606_195749-f5caeabc.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r50-d8_769x769_80k_cityscapes/fcn_r50-d8_769x769_80k_cityscapes_20200606_195749.log.json)" - ], - [ - "FCN", - "R-101-D8", - "769x769", - 80000, - "-", - "-", - 75.519, - 76.60857360886911, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r101-d8_769x769_80k_cityscapes/fcn_r101-d8_769x769_80k_cityscapes_20200606_214354-45cbac68.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r101-d8_769x769_80k_cityscapes/fcn_r101-d8_769x769_80k_cityscapes_20200606_214354.log.json)" - ] - ] - ], - "voc12aug": [ - [ - [ - "FCN", - "R-50-D8", - "512x512", - 20000, - "5.7", - 23.28063707693325, - 67.085, - 69.9383574378687, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r50-d8_512x512_20k_voc12aug/fcn_r50-d8_512x512_20k_voc12aug_20200617_010715-52dc5306.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r50-d8_512x512_20k_voc12aug/fcn_r50-d8_512x512_20k_voc12aug_20200617_010715.log.json)" - ], - [ - "FCN", - "R-101-D8", - "512x512", - 20000, - "9.2", - 14.80917380811037, - 71.16, - 73.56633022724682, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r101-d8_512x512_20k_voc12aug/fcn_r101-d8_512x512_20k_voc12aug_20200617_010842-0bb4e798.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r101-d8_512x512_20k_voc12aug/fcn_r101-d8_512x512_20k_voc12aug_20200617_010842.log.json)" - ], - [ - "FCN", - "R-50-D8", - "512x512", - 40000, - "-", - "-", - 66.971, - 69.03918575643368, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r50-d8_512x512_40k_voc12aug/fcn_r50-d8_512x512_40k_voc12aug_20200613_161222-5e2dbf40.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r50-d8_512x512_40k_voc12aug/fcn_r50-d8_512x512_40k_voc12aug_20200613_161222.log.json)" - ], - [ - "FCN", - "R-101-D8", - "512x512", - 40000, - "-", - "-", - 69.90899999999999, - 72.3822015171163, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r101-d8_512x512_40k_voc12aug/fcn_r101-d8_512x512_40k_voc12aug_20200613_161240-4c8bcefd.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/fcn/fcn_r101-d8_512x512_40k_voc12aug/fcn_r101-d8_512x512_40k_voc12aug_20200613_161240.log.json)" - ] - ] - ] - }, - "upernet": { - "cityscapes": [ - [ - [ - "UPerNet", - "R-50", - "512x1024", - 40000, - "6.4", - 4.250181636943019, - 77.096, - 78.3708722046974, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r50_512x1024_40k_cityscapes/upernet_r50_512x1024_40k_cityscapes_20200605_094827-aa54cb54.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r50_512x1024_40k_cityscapes/upernet_r50_512x1024_40k_cityscapes_20200605_094827.log.json)" - ], - [ - "UPerNet", - "R-101", - "512x1024", - 40000, - "7.4", - 3.7930291329191848, - 78.689, - 80.10934950511658, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r101_512x1024_40k_cityscapes/upernet_r101_512x1024_40k_cityscapes_20200605_094933-ebce3b10.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r101_512x1024_40k_cityscapes/upernet_r101_512x1024_40k_cityscapes_20200605_094933.log.json)" - ], - [ - "UPerNet", - "R-50", - "769x769", - 40000, - "7.2", - 1.7640659185483825, - 77.97699999999999, - 79.70262909350413, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r50_769x769_40k_cityscapes/upernet_r50_769x769_40k_cityscapes_20200530_033048-92d21539.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r50_769x769_40k_cityscapes/upernet_r50_769x769_40k_cityscapes_20200530_033048.log.json)" - ], - [ - "UPerNet", - "R-101", - "769x769", - 40000, - "8.4", - 1.5620856953198976, - 79.03099999999999, - 80.76684306267266, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r101_769x769_40k_cityscapes/upernet_r101_769x769_40k_cityscapes_20200530_040819-83c95d01.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r101_769x769_40k_cityscapes/upernet_r101_769x769_40k_cityscapes_20200530_040819.log.json)" - ], - [ - "UPerNet", - "R-50", - "512x1024", - 80000, - "-", - "-", - 78.193, - 79.18874361591651, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r50_512x1024_80k_cityscapes/upernet_r50_512x1024_80k_cityscapes_20200607_052207-848beca8.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r50_512x1024_80k_cityscapes/upernet_r50_512x1024_80k_cityscapes_20200607_052207.log.json)" - ], - [ - "UPerNet", - "R-101", - "512x1024", - 80000, - "-", - "-", - 79.396, - 80.45737464738971, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r101_512x1024_80k_cityscapes/upernet_r101_512x1024_80k_cityscapes_20200607_002403-f05f2345.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r101_512x1024_80k_cityscapes/upernet_r101_512x1024_80k_cityscapes_20200607_002403.log.json)" - ], - [ - "UPerNet", - "R-50", - "769x769", - 80000, - "-", - "-", - 79.389, - 80.91628431360874, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r50_769x769_80k_cityscapes/upernet_r50_769x769_80k_cityscapes_20200607_005107-82ae7d15.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r50_769x769_80k_cityscapes/upernet_r50_769x769_80k_cityscapes_20200607_005107.log.json)" - ], - [ - "UPerNet", - "R-101", - "769x769", - 80000, - "-", - "-", - 80.096, - 81.49282902181865, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r101_769x769_80k_cityscapes/upernet_r101_769x769_80k_cityscapes_20200607_001014-082fc334.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r101_769x769_80k_cityscapes/upernet_r101_769x769_80k_cityscapes_20200607_001014.log.json)" - ] - ] - ], - "voc12aug": [ - [ - [ - "UPerNet", - "R-50", - "512x512", - 20000, - "6.4", - 23.173912855179744, - 74.823, - 76.3452508971145, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r50_512x512_20k_voc12aug/upernet_r50_512x512_20k_voc12aug_20200617_165330-5b5890a7.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r50_512x512_20k_voc12aug/upernet_r50_512x512_20k_voc12aug_20200617_165330.log.json)" - ], - [ - "UPerNet", - "R-101", - "512x512", - 20000, - "7.5", - 19.980025806149488, - 77.096, - 78.28805607216208, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r101_512x512_20k_voc12aug/upernet_r101_512x512_20k_voc12aug_20200617_165629-f14e7f27.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r101_512x512_20k_voc12aug/upernet_r101_512x512_20k_voc12aug_20200617_165629.log.json)" - ], - [ - "UPerNet", - "R-50", - "512x512", - 40000, - "-", - "-", - 75.921, - 77.43852589851066, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r50_512x512_40k_voc12aug/upernet_r50_512x512_40k_voc12aug_20200613_162257-ca9bcc6b.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r50_512x512_40k_voc12aug/upernet_r50_512x512_40k_voc12aug_20200613_162257.log.json)" - ], - [ - "UPerNet", - "R-101", - "512x512", - 40000, - "-", - "-", - 77.432, - 78.55592324577675, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r101_512x512_40k_voc12aug/upernet_r101_512x512_40k_voc12aug_20200613_163549-e26476ac.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r101_512x512_40k_voc12aug/upernet_r101_512x512_40k_voc12aug_20200613_163549.log.json)" - ] - ] - ], - "ade20k": [ - [ - [ - "UPerNet", - "R-50", - "512x512", - 80000, - "8.1", - 23.404934213597443, - 40.704, - 41.80915610272295, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r50_512x512_80k_ade20k/upernet_r50_512x512_80k_ade20k_20200614_144127-ecc8377b.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r50_512x512_80k_ade20k/upernet_r50_512x512_80k_ade20k_20200614_144127.log.json)" - ], - [ - "UPerNet", - "R-101", - "512x512", - 80000, - "9.1", - 20.336544682582634, - 42.91, - 43.95794963214672, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r101_512x512_80k_ade20k/upernet_r101_512x512_80k_ade20k_20200614_185117-32e4db94.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r101_512x512_80k_ade20k/upernet_r101_512x512_80k_ade20k_20200614_185117.log.json)" - ], - [ - "UPerNet", - "R-50", - "512x512", - 160000, - "-", - "-", - 42.05, - 42.784926632807014, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r50_512x512_160k_ade20k/upernet_r50_512x512_160k_ade20k_20200615_184328-8534de8d.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r50_512x512_160k_ade20k/upernet_r50_512x512_160k_ade20k_20200615_184328.log.json)" - ], - [ - "UPerNet", - "R-101", - "512x512", - 160000, - "-", - "-", - 43.824999999999996, - 44.84822175137515, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r101_512x512_160k_ade20k/upernet_r101_512x512_160k_ade20k_20200615_161951-91b32684.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/upernet/upernet_r101_512x512_160k_ade20k/upernet_r101_512x512_160k_ade20k_20200615_161951.log.json)" - ] - ] - ] - }, - "encnet": { - "ade20k": [ - [ - [ - "encnet", - "R-50-D8", - "512x512", - 80000, - "10.1", - 22.81234693333879, - 39.53, - 41.174465044693534, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/encnet/encnet_r50-d8_512x512_80k_ade20k/encnet_r50-d8_512x512_80k_ade20k_20200622_042412-44b46b04.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/encnet/encnet_r50-d8_512x512_80k_ade20k/encnet_r50-d8_512x512_80k_ade20k-20200622_042412.log.json)" - ], - [ - "encnet", - "R-101-D8", - "512x512", - 80000, - "13.6", - 14.8713593833497, - 42.108000000000004, - 43.60970109562513, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/encnet/encnet_r101-d8_512x512_80k_ade20k/encnet_r101-d8_512x512_80k_ade20k_20200622_101128-dd35e237.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/encnet/encnet_r101-d8_512x512_80k_ade20k/encnet_r101-d8_512x512_80k_ade20k-20200622_101128.log.json)" - ], - [ - "encnet", - "R-50-D8", - "512x512", - 160000, - "-", - "-", - 40.096, - 41.71317203062112, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/encnet/encnet_r50-d8_512x512_160k_ade20k/encnet_r50-d8_512x512_160k_ade20k_20200622_101059-b2db95e0.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/encnet/encnet_r50-d8_512x512_160k_ade20k/encnet_r50-d8_512x512_160k_ade20k-20200622_101059.log.json)" - ], - [ - "encnet", - "R-101-D8", - "512x512", - 160000, - "-", - "-", - 42.61, - 44.01125617918497, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/encnet/encnet_r101-d8_512x512_160k_ade20k/encnet_r101-d8_512x512_160k_ade20k_20200622_073348-7989641f.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/encnet/encnet_r101-d8_512x512_160k_ade20k/encnet_r101-d8_512x512_160k_ade20k-20200622_073348.log.json)" - ] - ] - ], - "cityscapes": [ - [ - [ - "encnet", - "R-50-D8", - "512x1024", - 40000, - "8.6", - 4.579766763724604, - 75.672, - 77.08129779577173, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/encnet/encnet_r50-d8_512x1024_40k_cityscapes/encnet_r50-d8_512x1024_40k_cityscapes_20200621_220958-68638a47.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/encnet/encnet_r50-d8_512x1024_40k_cityscapes/encnet_r50-d8_512x1024_40k_cityscapes-20200621_220958.log.json)" - ], - [ - "encnet", - "R-101-D8", - "512x1024", - 40000, - "12.1", - 2.6579084094229293, - 75.81099999999999, - 77.20722229497062, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/encnet/encnet_r101-d8_512x1024_40k_cityscapes/encnet_r101-d8_512x1024_40k_cityscapes_20200621_220933-35e0a3e8.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/encnet/encnet_r101-d8_512x1024_40k_cityscapes/encnet_r101-d8_512x1024_40k_cityscapes-20200621_220933.log.json)" - ], - [ - "encnet", - "R-50-D8", - "769x769", - 40000, - "9.8", - 1.815523577456311, - 76.244, - 77.8544931191627, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/encnet/encnet_r50-d8_769x769_40k_cityscapes/encnet_r50-d8_769x769_40k_cityscapes_20200621_220958-3bcd2884.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/encnet/encnet_r50-d8_769x769_40k_cityscapes/encnet_r50-d8_769x769_40k_cityscapes-20200621_220958.log.json)" - ], - [ - "encnet", - "R-101-D8", - "769x769", - 40000, - "13.7", - 1.2586694727171592, - 74.248, - 76.2517491915298, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/encnet/encnet_r101-d8_769x769_40k_cityscapes/encnet_r101-d8_769x769_40k_cityscapes_20200621_220933-2fafed55.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/encnet/encnet_r101-d8_769x769_40k_cityscapes/encnet_r101-d8_769x769_40k_cityscapes-20200621_220933.log.json)" - ], - [ - "encnet", - "R-50-D8", - "512x1024", - 80000, - "-", - "-", - 77.93900000000001, - 79.12604738206694, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/encnet/encnet_r50-d8_512x1024_80k_cityscapes/encnet_r50-d8_512x1024_80k_cityscapes_20200622_003554-fc5c5624.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/encnet/encnet_r50-d8_512x1024_80k_cityscapes/encnet_r50-d8_512x1024_80k_cityscapes-20200622_003554.log.json)" - ], - [ - "encnet", - "R-101-D8", - "512x1024", - 80000, - "-", - "-", - 78.55499999999999, - 79.46808306901366, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/encnet/encnet_r101-d8_512x1024_80k_cityscapes/encnet_r101-d8_512x1024_80k_cityscapes_20200622_003555-1de64bec.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/encnet/encnet_r101-d8_512x1024_80k_cityscapes/encnet_r101-d8_512x1024_80k_cityscapes-20200622_003555.log.json)" - ], - [ - "encnet", - "R-50-D8", - "769x769", - 80000, - "-", - "-", - 77.444, - 78.71857972971966, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/encnet/encnet_r50-d8_769x769_80k_cityscapes/encnet_r50-d8_769x769_80k_cityscapes_20200622_003554-55096dcb.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/encnet/encnet_r50-d8_769x769_80k_cityscapes/encnet_r50-d8_769x769_80k_cityscapes-20200622_003554.log.json)" - ], - [ - "encnet", - "R-101-D8", - "769x769", - 80000, - "-", - "-", - 76.099, - 76.97183988185541, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/encnet/encnet_r101-d8_769x769_80k_cityscapes/encnet_r101-d8_769x769_80k_cityscapes_20200622_003555-470ef79d.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/encnet/encnet_r101-d8_769x769_80k_cityscapes/encnet_r101-d8_769x769_80k_cityscapes-20200622_003555.log.json)" - ] - ] - ] - }, - "psanet": { - "voc12aug": [ - [ - [ - "PSANet", - "R-50-D8", - "512x512", - 20000, - "6.9", - 18.243332440478824, - 76.393, - 77.3406686160825, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r50-d8_512x512_20k_voc12aug/psanet_r50-d8_512x512_20k_voc12aug_20200617_102413-2f1bbaa1.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r50-d8_512x512_20k_voc12aug/psanet_r50-d8_512x512_20k_voc12aug_20200617_102413.log.json)" - ], - [ - "PSANet", - "R-101-D8", - "512x512", - 20000, - "10.4", - 12.62519076615176, - 77.90700000000001, - 79.30352112599553, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r101-d8_512x512_20k_voc12aug/psanet_r101-d8_512x512_20k_voc12aug_20200617_110624-946fef11.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r101-d8_512x512_20k_voc12aug/psanet_r101-d8_512x512_20k_voc12aug_20200617_110624.log.json)" - ], - [ - "PSANet", - "R-50-D8", - "512x512", - 40000, - "-", - "-", - 76.305, - 77.35064085992029, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r50-d8_512x512_40k_voc12aug/psanet_r50-d8_512x512_40k_voc12aug_20200613_161946-f596afb5.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r50-d8_512x512_40k_voc12aug/psanet_r50-d8_512x512_40k_voc12aug_20200613_161946.log.json)" - ], - [ - "PSANet", - "R-101-D8", - "512x512", - 40000, - "-", - "-", - 77.73400000000001, - 79.0523901742458, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r101-d8_512x512_40k_voc12aug/psanet_r101-d8_512x512_40k_voc12aug_20200613_161946-1f560f9e.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r101-d8_512x512_40k_voc12aug/psanet_r101-d8_512x512_40k_voc12aug_20200613_161946.log.json)" - ] - ] - ], - "cityscapes": [ - [ - [ - "PSANet", - "R-50-D8", - "512x1024", - 40000, - "7.0", - 3.1667705694500796, - 77.628, - 79.0422496865149, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r50-d8_512x1024_40k_cityscapes/psanet_r50-d8_512x1024_40k_cityscapes_20200606_103117-99fac37c.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r50-d8_512x1024_40k_cityscapes/psanet_r50-d8_512x1024_40k_cityscapes_20200606_103117.log.json)" - ], - [ - "PSANet", - "R-101-D8", - "512x1024", - 40000, - "10.5", - 2.2037021448307477, - 79.13900000000001, - 80.19378817152979, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r101-d8_512x1024_40k_cityscapes/psanet_r101-d8_512x1024_40k_cityscapes_20200606_001418-27b9cfa7.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r101-d8_512x1024_40k_cityscapes/psanet_r101-d8_512x1024_40k_cityscapes_20200606_001418.log.json)" - ], - [ - "PSANet", - "R-50-D8", - "769x769", - 40000, - "7.9", - 1.4027260879051224, - 77.991, - 79.63690034167004, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r50-d8_769x769_40k_cityscapes/psanet_r50-d8_769x769_40k_cityscapes_20200530_033717-d5365506.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r50-d8_769x769_40k_cityscapes/psanet_r50-d8_769x769_40k_cityscapes_20200530_033717.log.json)" - ], - [ - "PSANet", - "R-101-D8", - "769x769", - 40000, - "11.9", - 0.9842023985382289, - 78.432, - 80.26050149532226, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r101-d8_769x769_40k_cityscapes/psanet_r101-d8_769x769_40k_cityscapes_20200530_035107-997da1e6.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r101-d8_769x769_40k_cityscapes/psanet_r101-d8_769x769_40k_cityscapes_20200530_035107.log.json)" - ], - [ - "PSANet", - "R-50-D8", - "512x1024", - 80000, - "-", - "-", - 77.239, - 78.69336591221833, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r50-d8_512x1024_80k_cityscapes/psanet_r50-d8_512x1024_80k_cityscapes_20200606_161842-ab60a24f.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r50-d8_512x1024_80k_cityscapes/psanet_r50-d8_512x1024_80k_cityscapes_20200606_161842.log.json)" - ], - [ - "PSANet", - "R-101-D8", - "512x1024", - 80000, - "-", - "-", - 79.315, - 80.53461181920574, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r101-d8_512x1024_80k_cityscapes/psanet_r101-d8_512x1024_80k_cityscapes_20200606_161823-0f73a169.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r101-d8_512x1024_80k_cityscapes/psanet_r101-d8_512x1024_80k_cityscapes_20200606_161823.log.json)" - ], - [ - "PSANet", - "R-50-D8", - "769x769", - 80000, - "-", - "-", - 79.315, - 80.91271206157141, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r50-d8_769x769_80k_cityscapes/psanet_r50-d8_769x769_80k_cityscapes_20200606_225134-fe42f49e.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r50-d8_769x769_80k_cityscapes/psanet_r50-d8_769x769_80k_cityscapes_20200606_225134.log.json)" - ], - [ - "PSANet", - "R-101-D8", - "769x769", - 80000, - "-", - "-", - 79.687, - 80.88962393764702, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r101-d8_769x769_80k_cityscapes/psanet_r101-d8_769x769_80k_cityscapes_20200606_214550-7665827b.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r101-d8_769x769_80k_cityscapes/psanet_r101-d8_769x769_80k_cityscapes_20200606_214550.log.json)" - ] - ] - ], - "ade20k": [ - [ - [ - "PSANet", - "R-50-D8", - "512x512", - 80000, - "9.0", - 18.906812073042055, - 41.141, - 41.91306881085375, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r50-d8_512x512_80k_ade20k/psanet_r50-d8_512x512_80k_ade20k_20200614_144141-835e4b97.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r50-d8_512x512_80k_ade20k/psanet_r50-d8_512x512_80k_ade20k_20200614_144141.log.json)" - ], - [ - "PSANet", - "R-101-D8", - "512x512", - 80000, - "12.5", - 13.12564520230877, - 43.797999999999995, - 44.751736929040355, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r101-d8_512x512_80k_ade20k/psanet_r101-d8_512x512_80k_ade20k_20200614_185117-1fab60d4.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r101-d8_512x512_80k_ade20k/psanet_r101-d8_512x512_80k_ade20k_20200614_185117.log.json)" - ], - [ - "PSANet", - "R-50-D8", - "512x512", - 160000, - "-", - "-", - 41.668, - 42.950020936188984, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r50-d8_512x512_160k_ade20k/psanet_r50-d8_512x512_160k_ade20k_20200615_161258-148077dd.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r50-d8_512x512_160k_ade20k/psanet_r50-d8_512x512_160k_ade20k_20200615_161258.log.json)" - ], - [ - "PSANet", - "R-101-D8", - "512x512", - 160000, - "-", - "-", - 43.742999999999995, - 45.37610124877713, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r101-d8_512x512_160k_ade20k/psanet_r101-d8_512x512_160k_ade20k_20200615_161537-dbfa564c.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/psanet/psanet_r101-d8_512x512_160k_ade20k/psanet_r101-d8_512x512_160k_ade20k_20200615_161537.log.json)" - ] - ] - ] - }, - "danet": { - "voc12aug": [ - [ - [ - "DANet", - "R-50-D8", - "512x512", - 20000, - "6.5", - 20.943311686542472, - 74.455, - 75.68810367906634, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r50-d8_512x512_20k_voc12aug/danet_r50-d8_512x512_20k_voc12aug_20200618_070026-9e9e3ab3.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r50-d8_512x512_20k_voc12aug/danet_r50-d8_512x512_20k_voc12aug_20200618_070026.log.json)" - ], - [ - "DANet", - "R-101-D8", - "512x512", - 20000, - "9.9", - 13.758801929101844, - 76.024, - 77.22605579984322, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r101-d8_512x512_20k_voc12aug/danet_r101-d8_512x512_20k_voc12aug_20200618_070026-d48d23b2.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r101-d8_512x512_20k_voc12aug/danet_r101-d8_512x512_20k_voc12aug_20200618_070026.log.json)" - ], - [ - "DANet", - "R-50-D8", - "512x512", - 40000, - "-", - "-", - 76.371, - 77.29119104649632, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r50-d8_512x512_40k_voc12aug/danet_r50-d8_512x512_40k_voc12aug_20200613_235526-426e3a64.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r50-d8_512x512_40k_voc12aug/danet_r50-d8_512x512_40k_voc12aug_20200613_235526.log.json)" - ], - [ - "DANet", - "R-101-D8", - "512x512", - 40000, - "-", - "-", - 76.508, - 77.31718399039389, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r101-d8_512x512_40k_voc12aug/danet_r101-d8_512x512_40k_voc12aug_20200613_223031-788e232a.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r101-d8_512x512_40k_voc12aug/danet_r101-d8_512x512_40k_voc12aug_20200613_223031.log.json)" - ] - ] - ], - "ade20k": [ - [ - [ - "DANet", - "R-50-D8", - "512x512", - 80000, - "11.5", - 21.197953173726543, - 41.662, - 42.90219783063448, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r50-d8_512x512_80k_ade20k/danet_r50-d8_512x512_80k_ade20k_20200615_015125-edb18e08.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r50-d8_512x512_80k_ade20k/danet_r50-d8_512x512_80k_ade20k_20200615_015125.log.json)" - ], - [ - "DANet", - "R-101-D8", - "512x512", - 80000, - "15.0", - 14.176784169645225, - 43.645, - 45.19098849554861, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r101-d8_512x512_80k_ade20k/danet_r101-d8_512x512_80k_ade20k_20200615_015126-d0357c73.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r101-d8_512x512_80k_ade20k/danet_r101-d8_512x512_80k_ade20k_20200615_015126.log.json)" - ], - [ - "DANet", - "R-50-D8", - "512x512", - 160000, - "-", - "-", - 42.449999999999996, - 43.251880532863545, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r50-d8_512x512_160k_ade20k/danet_r50-d8_512x512_160k_ade20k_20200616_082340-9cb35dcd.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r50-d8_512x512_160k_ade20k/danet_r50-d8_512x512_160k_ade20k_20200616_082340.log.json)" - ], - [ - "DANet", - "R-101-D8", - "512x512", - 160000, - "-", - "-", - 44.171, - 45.016860694179314, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r101-d8_512x512_160k_ade20k/danet_r101-d8_512x512_160k_ade20k_20200616_082348-23bf12f9.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r101-d8_512x512_160k_ade20k/danet_r101-d8_512x512_160k_ade20k_20200616_082348.log.json)" - ] - ] - ], - "cityscapes": [ - [ - [ - "DANet", - "R-50-D8", - "512x1024", - 40000, - "7.4", - 2.655504792992914, - 78.741, - "-", - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r50-d8_512x1024_40k_cityscapes/danet_r50-d8_512x1024_40k_cityscapes_20200605_191324-c0dbfa5f.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r50-d8_512x1024_40k_cityscapes/danet_r50-d8_512x1024_40k_cityscapes_20200605_191324.log.json)" - ], - [ - "DANet", - "R-101-D8", - "512x1024", - 40000, - "10.9", - 1.9939886829099438, - 80.521, - "-", - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r101-d8_512x1024_40k_cityscapes/danet_r101-d8_512x1024_40k_cityscapes_20200605_200831-c57a7157.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r101-d8_512x1024_40k_cityscapes/danet_r101-d8_512x1024_40k_cityscapes_20200605_200831.log.json)" - ], - [ - "DANet", - "R-50-D8", - "769x769", - 40000, - "8.8", - 1.5557926799730137, - 78.88, - 80.61866776927825, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r50-d8_769x769_40k_cityscapes/danet_r50-d8_769x769_40k_cityscapes_20200530_025703-76681c60.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r50-d8_769x769_40k_cityscapes/danet_r50-d8_769x769_40k_cityscapes_20200530_025703.log.json)" - ], - [ - "DANet", - "R-101-D8", - "769x769", - 40000, - "12.8", - 1.0655867297959223, - 79.88199999999999, - 81.46525733416875, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r101-d8_769x769_40k_cityscapes/danet_r101-d8_769x769_40k_cityscapes_20200530_025717-dcb7fd4e.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r101-d8_769x769_40k_cityscapes/danet_r101-d8_769x769_40k_cityscapes_20200530_025717.log.json)" - ], - [ - "DANet", - "R-50-D8", - "512x1024", - 80000, - "-", - "-", - 79.336, - "-", - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r50-d8_512x1024_80k_cityscapes/danet_r50-d8_512x1024_80k_cityscapes_20200607_133029-2bfa2293.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r50-d8_512x1024_80k_cityscapes/danet_r50-d8_512x1024_80k_cityscapes_20200607_133029.log.json)" - ], - [ - "DANet", - "R-101-D8", - "512x1024", - 80000, - "-", - "-", - 80.413, - "-", - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r101-d8_512x1024_80k_cityscapes/danet_r101-d8_512x1024_80k_cityscapes_20200607_132918-955e6350.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r101-d8_512x1024_80k_cityscapes/danet_r101-d8_512x1024_80k_cityscapes_20200607_132918.log.json)" - ], - [ - "DANet", - "R-50-D8", - "769x769", - 80000, - "-", - "-", - 79.274, - 80.96441839831498, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r50-d8_769x769_80k_cityscapes/danet_r50-d8_769x769_80k_cityscapes_20200607_132954-495689b4.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r50-d8_769x769_80k_cityscapes/danet_r50-d8_769x769_80k_cityscapes_20200607_132954.log.json)" - ], - [ - "DANet", - "R-101-D8", - "769x769", - 80000, - "-", - "-", - 80.471, - 82.020171090948, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r101-d8_769x769_80k_cityscapes/danet_r101-d8_769x769_80k_cityscapes_20200607_132918-f3a929e7.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/danet/danet_r101-d8_769x769_80k_cityscapes/danet_r101-d8_769x769_80k_cityscapes_20200607_132918.log.json)" - ] - ] - ] - }, - "hrnet": { - "voc12aug": [ - [ - [ - "FCN", - "HRNetV2p-W18-Small", - "512x512", - 20000, - "1.8", - 43.364505532130885, - 65.201, - 68.55284135943813, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18s_512x512_20k_voc12aug/fcn_hr18s_512x512_20k_voc12aug_20200617_224503-56e36088.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18s_512x512_20k_voc12aug/fcn_hr18s_512x512_20k_voc12aug_20200617_224503.log.json)" - ], - [ - "FCN", - "HRNetV2p-W18", - "512x512", - 20000, - "2.9", - 23.482760884011036, - 72.303, - 74.70589725240711, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18_512x512_20k_voc12aug/fcn_hr18_512x512_20k_voc12aug_20200617_224503-488d45f7.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18_512x512_20k_voc12aug/fcn_hr18_512x512_20k_voc12aug_20200617_224503.log.json)" - ], - [ - "FCN", - "HRNetV2p-W48", - "512x512", - 20000, - "6.2", - 22.047745500601465, - 75.87, - 78.57597654496765, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr48_512x512_20k_voc12aug/fcn_hr48_512x512_20k_voc12aug_20200617_224419-89de05cd.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr48_512x512_20k_voc12aug/fcn_hr48_512x512_20k_voc12aug_20200617_224419.log.json)" - ], - [ - "FCN", - "HRNetV2p-W18-Small", - "512x512", - 40000, - "-", - "-", - 66.61200000000001, - 70.0031319918366, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18s_512x512_40k_voc12aug/fcn_hr18s_512x512_40k_voc12aug_20200614_000648-4f8d6e7f.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18s_512x512_40k_voc12aug/fcn_hr18s_512x512_40k_voc12aug_20200614_000648.log.json)" - ], - [ - "FCN", - "HRNetV2p-W18", - "512x512", - 40000, - "-", - "-", - 72.904, - 75.58601750093821, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18_512x512_40k_voc12aug/fcn_hr18_512x512_40k_voc12aug_20200613_224401-1b4b76cd.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18_512x512_40k_voc12aug/fcn_hr18_512x512_40k_voc12aug_20200613_224401.log.json)" - ], - [ - "FCN", - "HRNetV2p-W48", - "512x512", - 40000, - "-", - "-", - 76.237, - 78.48754167864209, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr48_512x512_40k_voc12aug/fcn_hr48_512x512_40k_voc12aug_20200613_222111-1b0f18bc.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr48_512x512_40k_voc12aug/fcn_hr48_512x512_40k_voc12aug_20200613_222111.log.json)" - ] - ] - ], - "cityscapes": [ - [ - [ - "FCN", - "HRNetV2p-W18-Small", - "512x1024", - 40000, - "1.7", - 23.74297838183743, - 73.859, - 75.90997145624684, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18s_512x1024_40k_cityscapes/fcn_hr18s_512x1024_40k_cityscapes_20200601_014216-93db27d0.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18s_512x1024_40k_cityscapes/fcn_hr18s_512x1024_40k_cityscapes_20200601_014216.log.json)" - ], - [ - "FCN", - "HRNetV2p-W18", - "512x1024", - 40000, - "2.9", - 12.96853348364565, - 77.188, - 78.91665724639267, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18_512x1024_40k_cityscapes/fcn_hr18_512x1024_40k_cityscapes_20200601_014216-f196fb4e.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18_512x1024_40k_cityscapes/fcn_hr18_512x1024_40k_cityscapes_20200601_014216.log.json)" - ], - [ - "FCN", - "HRNetV2p-W48", - "512x1024", - 40000, - "6.2", - 6.421700443191522, - 78.483, - 79.69458922303686, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr48_512x1024_40k_cityscapes/fcn_hr48_512x1024_40k_cityscapes_20200601_014240-a989b146.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr48_512x1024_40k_cityscapes/fcn_hr48_512x1024_40k_cityscapes_20200601_014240.log.json)" - ], - [ - "FCN", - "HRNetV2p-W18-Small", - "512x1024", - 80000, - "-", - "-", - 75.306, - 77.47890927385332, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18s_512x1024_80k_cityscapes/fcn_hr18s_512x1024_80k_cityscapes_20200601_202700-1462b75d.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18s_512x1024_80k_cityscapes/fcn_hr18s_512x1024_80k_cityscapes_20200601_202700.log.json)" - ], - [ - "FCN", - "HRNetV2p-W18", - "512x1024", - 80000, - "-", - "-", - 78.64999999999999, - 80.35059171130018, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18_512x1024_80k_cityscapes/fcn_hr18_512x1024_80k_cityscapes_20200601_223255-4e7b345e.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18_512x1024_80k_cityscapes/fcn_hr18_512x1024_80k_cityscapes_20200601_223255.log.json)" - ], - [ - "FCN", - "HRNetV2p-W48", - "512x1024", - 80000, - "-", - "-", - 79.928, - 80.71977327982115, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr48_512x1024_80k_cityscapes/fcn_hr48_512x1024_80k_cityscapes_20200601_202606-58ea95d6.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr48_512x1024_80k_cityscapes/fcn_hr48_512x1024_80k_cityscapes_20200601_202606.log.json)" - ], - [ - "FCN", - "HRNetV2p-W18-Small", - "512x1024", - 160000, - "-", - "-", - 76.312, - 78.31118288010825, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18s_512x1024_160k_cityscapes/fcn_hr18s_512x1024_160k_cityscapes_20200602_190901-4a0797ea.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18s_512x1024_160k_cityscapes/fcn_hr18s_512x1024_160k_cityscapes_20200602_190901.log.json)" - ], - [ - "FCN", - "HRNetV2p-W18", - "512x1024", - 160000, - "-", - "-", - 78.797, - 80.74329822797024, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18_512x1024_160k_cityscapes/fcn_hr18_512x1024_160k_cityscapes_20200602_190822-221e4a4f.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18_512x1024_160k_cityscapes/fcn_hr18_512x1024_160k_cityscapes_20200602_190822.log.json)" - ], - [ - "FCN", - "HRNetV2p-W48", - "512x1024", - 160000, - "-", - "-", - 80.651, - 81.92482068666172, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr48_512x1024_160k_cityscapes/fcn_hr48_512x1024_160k_cityscapes_20200602_190946-59b7973e.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr48_512x1024_160k_cityscapes/fcn_hr48_512x1024_160k_cityscapes_20200602_190946.log.json)" - ] - ] - ], - "ade20k": [ - [ - [ - "FCN", - "HRNetV2p-W18-Small", - "512x512", - 80000, - "3.8", - 38.65539699852906, - 31.384, - 32.452806656988855, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18s_512x512_80k_ade20k/fcn_hr18s_512x512_80k_ade20k_20200614_144345-77fc814a.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18s_512x512_80k_ade20k/fcn_hr18s_512x512_80k_ade20k_20200614_144345.log.json)" - ], - [ - "FCN", - "HRNetV2p-W18", - "512x512", - 80000, - "4.9", - 22.569194335083992, - 35.515, - 36.804822066348805, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18_512x512_80k_ade20k/fcn_hr18_512x512_80k_ade20k_20200614_185145-66f20cb7.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18_512x512_80k_ade20k/fcn_hr18_512x512_80k_ade20k_20200614_185145.log.json)" - ], - [ - "FCN", - "HRNetV2p-W48", - "512x512", - 80000, - "8.2", - 21.234892591194093, - 41.897, - 43.26888294374513, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr48_512x512_80k_ade20k/fcn_hr48_512x512_80k_ade20k_20200614_193946-7ba5258d.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr48_512x512_80k_ade20k/fcn_hr48_512x512_80k_ade20k_20200614_193946.log.json)" - ], - [ - "FCN", - "HRNetV2p-W18-Small", - "512x512", - 160000, - "-", - "-", - 32.995000000000005, - 34.547964211800654, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18s_512x512_160k_ade20k/fcn_hr18s_512x512_160k_ade20k_20200614_214413-870f65ac.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18s_512x512_160k_ade20k/fcn_hr18s_512x512_160k_ade20k_20200614_214413.log.json)" - ], - [ - "FCN", - "HRNetV2p-W18", - "512x512", - 160000, - "-", - "-", - 36.786, - 38.58485577782462, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18_512x512_160k_ade20k/fcn_hr18_512x512_160k_ade20k_20200614_214426-ca961836.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr18_512x512_160k_ade20k/fcn_hr18_512x512_160k_ade20k_20200614_214426.log.json)" - ], - [ - "FCN", - "HRNetV2p-W48", - "512x512", - 160000, - "-", - "-", - 42.018, - 43.86047333076445, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr48_512x512_160k_ade20k/fcn_hr48_512x512_160k_ade20k_20200614_214407-a52fc02c.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/hrnet/fcn_hr48_512x512_160k_ade20k/fcn_hr48_512x512_160k_ade20k_20200614_214407.log.json)" - ] - ] - ] - }, - "ann": { - "ade20k": [ - [ - [ - "ANN", - "R-50-D8", - "512x512", - 80000, - "9.1", - 21.01150654479224, - 41.008, - 42.299370248011755, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r50-d8_512x512_80k_ade20k/ann_r50-d8_512x512_80k_ade20k_20200615_014818-26f75e11.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r50-d8_512x512_80k_ade20k/ann_r50-d8_512x512_80k_ade20k_20200615_014818.log.json)" - ], - [ - "ANN", - "R-101-D8", - "512x512", - 80000, - "12.5", - 14.116439500308603, - 42.939, - 44.180116688803125, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r101-d8_512x512_80k_ade20k/ann_r101-d8_512x512_80k_ade20k_20200615_014818-c0153543.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r101-d8_512x512_80k_ade20k/ann_r101-d8_512x512_80k_ade20k_20200615_014818.log.json)" - ], - [ - "ANN", - "R-50-D8", - "512x512", - 160000, - "-", - "-", - 41.744, - 42.61939537832803, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r50-d8_512x512_160k_ade20k/ann_r50-d8_512x512_160k_ade20k_20200615_231733-892247bc.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r50-d8_512x512_160k_ade20k/ann_r50-d8_512x512_160k_ade20k_20200615_231733.log.json)" - ], - [ - "ANN", - "R-101-D8", - "512x512", - 160000, - "-", - "-", - 42.936, - 44.05749393457835, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r101-d8_512x512_160k_ade20k/ann_r101-d8_512x512_160k_ade20k_20200615_231733-955eb1ec.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r101-d8_512x512_160k_ade20k/ann_r101-d8_512x512_160k_ade20k_20200615_231733.log.json)" - ] - ] - ], - "cityscapes": [ - [ - [ - "ANN", - "R-50-D8", - "512x1024", - 40000, - "6.0", - 3.7066015347562153, - 77.402, - 78.56666466963291, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r50-d8_512x1024_40k_cityscapes/ann_r50-d8_512x1024_40k_cityscapes_20200605_095211-049fc292.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r50-d8_512x1024_40k_cityscapes/ann_r50-d8_512x1024_40k_cityscapes_20200605_095211.log.json)" - ], - [ - "ANN", - "R-101-D8", - "512x1024", - 40000, - "9.5", - 2.5468121299522504, - 76.553, - 78.85000230335912, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r101-d8_512x1024_40k_cityscapes/ann_r101-d8_512x1024_40k_cityscapes_20200605_095243-adf6eece.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r101-d8_512x1024_40k_cityscapes/ann_r101-d8_512x1024_40k_cityscapes_20200605_095243.log.json)" - ], - [ - "ANN", - "R-50-D8", - "769x769", - 40000, - "6.8", - 1.6951337367703907, - 78.89399999999999, - 80.45833256780746, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r50-d8_769x769_40k_cityscapes/ann_r50-d8_769x769_40k_cityscapes_20200530_025712-2b46b04d.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r50-d8_769x769_40k_cityscapes/ann_r50-d8_769x769_40k_cityscapes_20200530_025712.log.json)" - ], - [ - "ANN", - "R-101-D8", - "769x769", - 40000, - "10.7", - 1.1484480822281227, - 79.325, - 80.94411938511638, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r101-d8_769x769_40k_cityscapes/ann_r101-d8_769x769_40k_cityscapes_20200530_025720-059bff28.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r101-d8_769x769_40k_cityscapes/ann_r101-d8_769x769_40k_cityscapes_20200530_025720.log.json)" - ], - [ - "ANN", - "R-50-D8", - "512x1024", - 80000, - "-", - "-", - 77.345, - 78.65222072634322, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r50-d8_512x1024_80k_cityscapes/ann_r50-d8_512x1024_80k_cityscapes_20200607_101911-5a9ad545.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r50-d8_512x1024_80k_cityscapes/ann_r50-d8_512x1024_80k_cityscapes_20200607_101911.log.json)" - ], - [ - "ANN", - "R-101-D8", - "512x1024", - 80000, - "-", - "-", - 77.137, - 78.81361594500169, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r101-d8_512x1024_80k_cityscapes/ann_r101-d8_512x1024_80k_cityscapes_20200607_013728-aceccc6e.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r101-d8_512x1024_80k_cityscapes/ann_r101-d8_512x1024_80k_cityscapes_20200607_013728.log.json)" - ], - [ - "ANN", - "R-50-D8", - "769x769", - 80000, - "-", - "-", - 78.879, - 80.5665089108356, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r50-d8_769x769_80k_cityscapes/ann_r50-d8_769x769_80k_cityscapes_20200607_044426-cc7ff323.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r50-d8_769x769_80k_cityscapes/ann_r50-d8_769x769_80k_cityscapes_20200607_044426.log.json)" - ], - [ - "ANN", - "R-101-D8", - "769x769", - 80000, - "-", - "-", - 78.803, - 80.34287446616453, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r101-d8_769x769_80k_cityscapes/ann_r101-d8_769x769_80k_cityscapes_20200607_013713-a9d4be8d.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r101-d8_769x769_80k_cityscapes/ann_r101-d8_769x769_80k_cityscapes_20200607_013713.log.json)" - ] - ] - ], - "voc12aug": [ - [ - [ - "ANN", - "R-50-D8", - "512x512", - 20000, - "6.0", - 20.919551932584206, - 74.86, - 76.12674212435266, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r50-d8_512x512_20k_voc12aug/ann_r50-d8_512x512_20k_voc12aug_20200617_222246-dfcb1c62.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r50-d8_512x512_20k_voc12aug/ann_r50-d8_512x512_20k_voc12aug_20200617_222246.log.json)" - ], - [ - "ANN", - "R-101-D8", - "512x512", - 20000, - "9.5", - 13.944150769190673, - 77.47, - 78.69711736662727, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r101-d8_512x512_20k_voc12aug/ann_r101-d8_512x512_20k_voc12aug_20200617_222246-2fad0042.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r101-d8_512x512_20k_voc12aug/ann_r101-d8_512x512_20k_voc12aug_20200617_222246.log.json)" - ], - [ - "ANN", - "R-50-D8", - "512x512", - 40000, - "-", - "-", - 76.556, - 77.5139251733015, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r50-d8_512x512_40k_voc12aug/ann_r50-d8_512x512_40k_voc12aug_20200613_231314-b5dac322.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r50-d8_512x512_40k_voc12aug/ann_r50-d8_512x512_40k_voc12aug_20200613_231314.log.json)" - ], - [ - "ANN", - "R-101-D8", - "512x512", - 40000, - "-", - "-", - 76.69500000000001, - 78.05579776330663, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r101-d8_512x512_40k_voc12aug/ann_r101-d8_512x512_40k_voc12aug_20200613_231314-bd205bbe.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/ann/ann_r101-d8_512x512_40k_voc12aug/ann_r101-d8_512x512_40k_voc12aug_20200613_231314.log.json)" - ] - ] - ] - }, - "pspnet": { - "ade20k": [ - [ - [ - "PSPNet", - "R-50-D8", - "512x512", - 80000, - "8.5", - 23.526579373672153, - 41.134, - 41.941132390638955, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x512_80k_ade20k/pspnet_r50-d8_512x512_80k_ade20k_20200615_014128-15a8b914.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x512_80k_ade20k/pspnet_r50-d8_512x512_80k_ade20k_20200615_014128.log.json)" - ], - [ - "PSPNet", - "R-101-D8", - "512x512", - 80000, - "12.0", - 15.301938618847755, - 43.57, - 44.354975719492394, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r101-d8_512x512_80k_ade20k/pspnet_r101-d8_512x512_80k_ade20k_20200614_031423-b6e782f0.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r101-d8_512x512_80k_ade20k/pspnet_r101-d8_512x512_80k_ade20k_20200614_031423.log.json)" - ], - [ - "PSPNet", - "R-50-D8", - "512x512", - 160000, - "-", - "-", - 42.477, - 43.441892719742064, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x512_160k_ade20k/pspnet_r50-d8_512x512_160k_ade20k_20200615_184358-1890b0bd.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x512_160k_ade20k/pspnet_r50-d8_512x512_160k_ade20k_20200615_184358.log.json)" - ], - [ - "PSPNet", - "R-101-D8", - "512x512", - 160000, - "-", - "-", - 44.39, - 45.34825070704653, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r101-d8_512x512_160k_ade20k/pspnet_r101-d8_512x512_160k_ade20k_20200615_100650-967c316f.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r101-d8_512x512_160k_ade20k/pspnet_r101-d8_512x512_160k_ade20k_20200615_100650.log.json)" - ] - ] - ], - "cityscapes": [ - [ - [ - "PSPNet", - "R-50-D8", - "512x1024", - 40000, - "6.1", - 4.072768293326251, - 77.848, - 79.18377782829393, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338.log.json)" - ], - [ - "PSPNet", - "R-101-D8", - "512x1024", - 40000, - "9.6", - 2.6817753401497195, - 78.34, - 79.74414521564499, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes/pspnet_r101-d8_512x1024_40k_cityscapes_20200604_232751-467e7cf4.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes/pspnet_r101-d8_512x1024_40k_cityscapes_20200604_232751.log.json)" - ], - [ - "PSPNet", - "R-50-D8", - "769x769", - 40000, - "6.9", - 1.7590560538055864, - 78.262, - 79.88301952959716, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_769x769_40k_cityscapes/pspnet_r50-d8_769x769_40k_cityscapes_20200606_112725-86638686.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_769x769_40k_cityscapes/pspnet_r50-d8_769x769_40k_cityscapes_20200606_112725.log.json)" - ], - [ - "PSPNet", - "R-101-D8", - "769x769", - 40000, - "10.9", - 1.1539857289832562, - 79.082, - 80.2847015735947, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r101-d8_769x769_40k_cityscapes/pspnet_r101-d8_769x769_40k_cityscapes_20200606_112753-61c6f5be.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r101-d8_769x769_40k_cityscapes/pspnet_r101-d8_769x769_40k_cityscapes_20200606_112753.log.json)" - ], - [ - "PSPNet", - "R-50-D8", - "512x1024", - 80000, - "-", - "-", - 78.55199999999999, - 79.79089188640063, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes/pspnet_r50-d8_512x1024_80k_cityscapes_20200606_112131-2376f12b.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes/pspnet_r50-d8_512x1024_80k_cityscapes_20200606_112131.log.json)" - ], - [ - "PSPNet", - "R-101-D8", - "512x1024", - 80000, - "-", - "-", - 79.756, - 81.01164255858869, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes/pspnet_r101-d8_512x1024_80k_cityscapes_20200606_112211-e1e1100f.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes/pspnet_r101-d8_512x1024_80k_cityscapes_20200606_112211.log.json)" - ], - [ - "PSPNet", - "R-50-D8", - "769x769", - 80000, - "-", - "-", - 79.58800000000001, - 80.68588581173638, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_769x769_80k_cityscapes/pspnet_r50-d8_769x769_80k_cityscapes_20200606_210121-5ccf03dd.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_769x769_80k_cityscapes/pspnet_r50-d8_769x769_80k_cityscapes_20200606_210121.log.json)" - ], - [ - "PSPNet", - "R-101-D8", - "769x769", - 80000, - "-", - "-", - 79.77499999999999, - 81.05734239329955, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r101-d8_769x769_80k_cityscapes/pspnet_r101-d8_769x769_80k_cityscapes_20200606_225055-dba412fa.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r101-d8_769x769_80k_cityscapes/pspnet_r101-d8_769x769_80k_cityscapes_20200606_225055.log.json)" - ] - ] - ], - "voc12aug": [ - [ - [ - "PSPNet", - "R-50-D8", - "512x512", - 20000, - "6.1", - 23.594295286990285, - 76.778, - 77.61449930304435, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x512_20k_voc12aug/pspnet_r50-d8_512x512_20k_voc12aug_20200617_101958-ed5dfbd9.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x512_20k_voc12aug/pspnet_r50-d8_512x512_20k_voc12aug_20200617_101958.log.json)" - ], - [ - "PSPNet", - "R-101-D8", - "512x512", - 20000, - "9.6", - 15.016859227435978, - 78.472, - 79.24767235924098, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r101-d8_512x512_20k_voc12aug/pspnet_r101-d8_512x512_20k_voc12aug_20200617_102003-4aef3c9a.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r101-d8_512x512_20k_voc12aug/pspnet_r101-d8_512x512_20k_voc12aug_20200617_102003.log.json)" - ], - [ - "PSPNet", - "R-50-D8", - "512x512", - 40000, - "-", - "-", - 77.294, - 78.48376581837772, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x512_40k_voc12aug/pspnet_r50-d8_512x512_40k_voc12aug_20200613_161222-ae9c1b8c.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x512_40k_voc12aug/pspnet_r50-d8_512x512_40k_voc12aug_20200613_161222.log.json)" - ], - [ - "PSPNet", - "R-101-D8", - "512x512", - 40000, - "-", - "-", - 78.524, - 79.56722327765866, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r101-d8_512x512_40k_voc12aug/pspnet_r101-d8_512x512_40k_voc12aug_20200613_161222-bc933b18.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r101-d8_512x512_40k_voc12aug/pspnet_r101-d8_512x512_40k_voc12aug_20200613_161222.log.json)" - ] - ] - ] - }, - "deeplabv3": { - "voc12aug": [ - [ - [ - "DeepLabV3", - "R-50-D8", - "512x512", - 20000, - "6.1", - 13.882586968538902, - 76.17, - 77.42428903363798, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug/deeplabv3_r50-d8_512x512_20k_voc12aug_20200617_010906-596905ef.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug/deeplabv3_r50-d8_512x512_20k_voc12aug_20200617_010906.log.json)" - ], - [ - "DeepLabV3", - "R-101-D8", - "512x512", - 20000, - "9.6", - 9.81331369081087, - 78.704, - 79.9523799897917, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug/deeplabv3_r101-d8_512x512_20k_voc12aug_20200617_010932-8d13832f.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug/deeplabv3_r101-d8_512x512_20k_voc12aug_20200617_010932.log.json)" - ], - [ - "DeepLabV3", - "R-50-D8", - "512x512", - 40000, - "-", - "-", - 77.676, - 78.78389817782097, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug/deeplabv3_r50-d8_512x512_40k_voc12aug_20200613_161546-2ae96e7e.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug/deeplabv3_r50-d8_512x512_40k_voc12aug_20200613_161546.log.json)" - ], - [ - "DeepLabV3", - "R-101-D8", - "512x512", - 40000, - "-", - "-", - 77.923, - 79.17787250140825, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug/deeplabv3_r101-d8_512x512_40k_voc12aug_20200613_161432-0017d784.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug/deeplabv3_r101-d8_512x512_40k_voc12aug_20200613_161432.log.json)" - ] - ] - ], - "cityscapes": [ - [ - [ - "DeepLabV3", - "R-50-D8", - "512x1024", - 40000, - "6.1", - 2.57047659861635, - 79.091, - 80.4506523590434, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes/deeplabv3_r50-d8_512x1024_40k_cityscapes_20200605_022449-acadc2f8.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes/deeplabv3_r50-d8_512x1024_40k_cityscapes_20200605_022449.log.json)" - ], - [ - "DeepLabV3", - "R-101-D8", - "512x1024", - 40000, - "9.6", - 1.9222440928636317, - 77.121, - 79.61407891260694, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes/deeplabv3_r101-d8_512x1024_40k_cityscapes_20200605_012241-7fd3f799.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes/deeplabv3_r101-d8_512x1024_40k_cityscapes_20200605_012241.log.json)" - ], - [ - "DeepLabV3", - "R-50-D8", - "769x769", - 40000, - "6.9", - 1.1119590479409436, - 78.581, - 79.89433614719104, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes/deeplabv3_r50-d8_769x769_40k_cityscapes_20200606_113723-7eda553c.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes/deeplabv3_r50-d8_769x769_40k_cityscapes_20200606_113723.log.json)" - ], - [ - "DeepLabV3", - "R-101-D8", - "769x769", - 40000, - "10.9", - 0.832582701195375, - 79.27300000000001, - 80.11177730128428, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes/deeplabv3_r101-d8_769x769_40k_cityscapes_20200606_113809-c64f889f.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes/deeplabv3_r101-d8_769x769_40k_cityscapes_20200606_113809.log.json)" - ], - [ - "DeepLabV3", - "R-50-D8", - "512x1024", - 80000, - "-", - "-", - 79.31700000000001, - 80.56867900987751, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes/deeplabv3_r50-d8_512x1024_80k_cityscapes_20200606_113404-b92cfdd4.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes/deeplabv3_r50-d8_512x1024_80k_cityscapes_20200606_113404.log.json)" - ], - [ - "DeepLabV3", - "R-101-D8", - "512x1024", - 80000, - "-", - "-", - 80.19500000000001, - 81.21365141510776, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes/deeplabv3_r101-d8_512x1024_80k_cityscapes_20200606_113503-9e428899.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes/deeplabv3_r101-d8_512x1024_80k_cityscapes_20200606_113503.log.json)" - ], - [ - "DeepLabV3", - "R-50-D8", - "769x769", - 80000, - "-", - "-", - 79.893, - 81.0599984851973, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes/deeplabv3_r50-d8_769x769_80k_cityscapes_20200606_221338-788d6228.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes/deeplabv3_r50-d8_769x769_80k_cityscapes_20200606_221338.log.json)" - ], - [ - "DeepLabV3", - "R-101-D8", - "769x769", - 80000, - "-", - "-", - 79.668, - 80.81226045958836, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes/deeplabv3_r101-d8_769x769_80k_cityscapes_20200607_013353-60e95418.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes/deeplabv3_r101-d8_769x769_80k_cityscapes_20200607_013353.log.json)" - ] - ] - ], - "ade20k": [ - [ - [ - "DeepLabV3", - "R-50-D8", - "512x512", - 80000, - "8.9", - 14.763588319372595, - 42.422, - 43.27846378978279, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k/deeplabv3_r50-d8_512x512_80k_ade20k_20200614_185028-0bb3f844.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k/deeplabv3_r50-d8_512x512_80k_ade20k_20200614_185028.log.json)" - ], - [ - "DeepLabV3", - "R-101-D8", - "512x512", - 80000, - "12.4", - 10.144087811258307, - 44.080999999999996, - 45.19313139034226, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k/deeplabv3_r101-d8_512x512_80k_ade20k_20200615_021256-d89c7fa4.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k/deeplabv3_r101-d8_512x512_80k_ade20k_20200615_021256.log.json)" - ], - [ - "DeepLabV3", - "R-50-D8", - "512x512", - 160000, - "-", - "-", - 42.657000000000004, - 44.08872105809725, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k/deeplabv3_r50-d8_512x512_160k_ade20k_20200615_123227-5d0ee427.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k/deeplabv3_r50-d8_512x512_160k_ade20k_20200615_123227.log.json)" - ], - [ - "DeepLabV3", - "R-101-D8", - "512x512", - 160000, - "-", - "-", - 44.999, - 46.65804362786369, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k/deeplabv3_r101-d8_512x512_160k_ade20k_20200615_105816-b1f72b3b.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k/deeplabv3_r101-d8_512x512_160k_ade20k_20200615_105816.log.json)" - ] - ] - ] - }, - "nonlocal_net": { - "ade20k": [ - [ - [ - "NonLocal", - "R-50-D8", - "512x512", - 80000, - "9.1", - 21.37048896225747, - 40.752, - 42.053557458158075, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k/nonlocal_r50-d8_512x512_80k_ade20k_20200615_015801-5ae0aa33.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k/nonlocal_r50-d8_512x512_80k_ade20k_20200615_015801.log.json)" - ], - [ - "NonLocal", - "R-101-D8", - "512x512", - 80000, - "12.6", - 13.965079302337752, - 42.896, - 44.26894963193766, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k/nonlocal_r101-d8_512x512_80k_ade20k_20200615_015758-24105919.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k/nonlocal_r101-d8_512x512_80k_ade20k_20200615_015758.log.json)" - ], - [ - "NonLocal", - "R-50-D8", - "512x512", - 160000, - "-", - "-", - 42.028, - 43.03561642742581, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k/nonlocal_r50-d8_512x512_160k_ade20k_20200616_005410-baef45e3.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k/nonlocal_r50-d8_512x512_160k_ade20k_20200616_005410.log.json)" - ], - [ - "NonLocal", - "R-101-D8", - "512x512", - 160000, - "-", - "-", - 43.361, - 44.82970596168541, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k/nonlocal_r101-d8_512x512_160k_ade20k_20200616_003422-affd0f8d.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k/nonlocal_r101-d8_512x512_160k_ade20k_20200616_003422.log.json)" - ] - ] - ], - "voc12aug": [ - [ - [ - "NonLocal", - "R-50-D8", - "512x512", - 20000, - "6.4", - 21.213895119736144, - 76.199, - 77.11520756528137, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug/nonlocal_r50-d8_512x512_20k_voc12aug_20200617_222613-07f2a57c.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug/nonlocal_r50-d8_512x512_20k_voc12aug_20200617_222613.log.json)" - ], - [ - "NonLocal", - "R-101-D8", - "512x512", - 20000, - "9.8", - 14.009331593316489, - 78.146, - 78.86433067761453, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug/nonlocal_r101-d8_512x512_20k_voc12aug_20200617_222615-948c68ab.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug/nonlocal_r101-d8_512x512_20k_voc12aug_20200617_222615.log.json)" - ], - [ - "NonLocal", - "R-50-D8", - "512x512", - 40000, - "-", - "-", - 76.646, - 77.47020448125416, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug/nonlocal_r50-d8_512x512_40k_voc12aug_20200614_000028-0139d4a9.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug/nonlocal_r50-d8_512x512_40k_voc12aug_20200614_000028.log.json)" - ], - [ - "NonLocal", - "R-101-D8", - "512x512", - 40000, - "-", - "-", - 78.27300000000001, - 79.11788410243086, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug/nonlocal_r101-d8_512x512_40k_voc12aug_20200614_000028-7e5ff470.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug/nonlocal_r101-d8_512x512_40k_voc12aug_20200614_000028.log.json)" - ] - ] - ], - "cityscapes": [ - [ - [ - "NonLocal", - "R-50-D8", - "512x1024", - 40000, - "7.4", - 2.7236662742933437, - 78.237, - "-", - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes/nonlocal_r50-d8_512x1024_40k_cityscapes_20200605_210748-c75e81e3.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes/nonlocal_r50-d8_512x1024_40k_cityscapes_20200605_210748.log.json)" - ], - [ - "NonLocal", - "R-101-D8", - "512x1024", - 40000, - "10.9", - 1.9480966751075284, - 78.657, - "-", - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes/nonlocal_r101-d8_512x1024_40k_cityscapes_20200605_210748-d63729fa.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes/nonlocal_r101-d8_512x1024_40k_cityscapes_20200605_210748.log.json)" - ], - [ - "NonLocal", - "R-50-D8", - "769x769", - 40000, - "8.9", - 1.5246259413816563, - 78.327, - 79.92096670245425, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes/nonlocal_r50-d8_769x769_40k_cityscapes_20200530_045243-82ef6749.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes/nonlocal_r50-d8_769x769_40k_cityscapes_20200530_045243.log.json)" - ], - [ - "NonLocal", - "R-101-D8", - "769x769", - 40000, - "12.8", - 1.0477751460724616, - 78.569, - 80.29003703614515, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes/nonlocal_r101-d8_769x769_40k_cityscapes_20200530_045348-8fe9a9dc.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes/nonlocal_r101-d8_769x769_40k_cityscapes_20200530_045348.log.json)" - ], - [ - "NonLocal", - "R-50-D8", - "512x1024", - 80000, - "-", - "-", - 78.009, - "-", - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes/nonlocal_r50-d8_512x1024_80k_cityscapes_20200607_193518-d6839fae.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes/nonlocal_r50-d8_512x1024_80k_cityscapes_20200607_193518.log.json)" - ], - [ - "NonLocal", - "R-101-D8", - "512x1024", - 80000, - "-", - "-", - 78.93, - "-", - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes/nonlocal_r101-d8_512x1024_80k_cityscapes_20200607_183411-32700183.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes/nonlocal_r101-d8_512x1024_80k_cityscapes_20200607_183411.log.json)" - ], - [ - "NonLocal", - "R-50-D8", - "769x769", - 80000, - "-", - "-", - 79.052, - 80.67913947439877, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes/nonlocal_r50-d8_769x769_80k_cityscapes_20200607_193506-1f9792f6.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes/nonlocal_r50-d8_769x769_80k_cityscapes_20200607_193506.log.json)" - ], - [ - "NonLocal", - "R-101-D8", - "769x769", - 80000, - "-", - "-", - 79.4, - 80.85278857807543, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes/nonlocal_r101-d8_769x769_80k_cityscapes_20200607_183428-0e1fa4f9.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes/nonlocal_r101-d8_769x769_80k_cityscapes_20200607_183428.log.json)" - ] - ] - ] - }, - "gcnet": { - "voc12aug": [ - [ - [ - "GCNet", - "R-50-D8", - "512x512", - 20000, - "5.8", - 23.350259534912006, - 76.42099999999999, - 77.50740243914798, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r50-d8_512x512_20k_voc12aug/gcnet_r50-d8_512x512_20k_voc12aug_20200617_165701-3cbfdab1.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r50-d8_512x512_20k_voc12aug/gcnet_r50-d8_512x512_20k_voc12aug_20200617_165701.log.json)" - ], - [ - "GCNet", - "R-101-D8", - "512x512", - 20000, - "9.2", - 14.799942609024914, - 77.40700000000001, - 78.56005567821165, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r101-d8_512x512_20k_voc12aug/gcnet_r101-d8_512x512_20k_voc12aug_20200617_165713-6c720aa9.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r101-d8_512x512_20k_voc12aug/gcnet_r101-d8_512x512_20k_voc12aug_20200617_165713.log.json)" - ], - [ - "GCNet", - "R-50-D8", - "512x512", - 40000, - "-", - "-", - 76.238, - 77.63464439678829, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r50-d8_512x512_40k_voc12aug/gcnet_r50-d8_512x512_40k_voc12aug_20200613_195105-9797336d.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r50-d8_512x512_40k_voc12aug/gcnet_r50-d8_512x512_40k_voc12aug_20200613_195105.log.json)" - ], - [ - "GCNet", - "R-101-D8", - "512x512", - 40000, - "-", - "-", - 77.84299999999999, - 78.59489046439079, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r101-d8_512x512_40k_voc12aug/gcnet_r101-d8_512x512_40k_voc12aug_20200613_185806-1e38208d.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r101-d8_512x512_40k_voc12aug/gcnet_r101-d8_512x512_40k_voc12aug_20200613_185806.log.json)" - ] - ] - ], - "ade20k": [ - [ - [ - "GCNet", - "R-50-D8", - "512x512", - 80000, - "8.5", - 23.37990361060126, - 41.465999999999994, - 42.853494172834885, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r50-d8_512x512_80k_ade20k/gcnet_r50-d8_512x512_80k_ade20k_20200614_185146-91a6da41.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r50-d8_512x512_80k_ade20k/gcnet_r50-d8_512x512_80k_ade20k_20200614_185146.log.json)" - ], - [ - "GCNet", - "R-101-D8", - "512x512", - 80000, - "12.0", - 15.198333955746829, - 42.824, - 44.54431618918491, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r101-d8_512x512_80k_ade20k/gcnet_r101-d8_512x512_80k_ade20k_20200615_020811-c3fcb6dd.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r101-d8_512x512_80k_ade20k/gcnet_r101-d8_512x512_80k_ade20k_20200615_020811.log.json)" - ], - [ - "GCNet", - "R-50-D8", - "512x512", - 160000, - "-", - "-", - 42.367, - 43.51941132800723, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r50-d8_512x512_160k_ade20k/gcnet_r50-d8_512x512_160k_ade20k_20200615_224122-d95f3e1f.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r50-d8_512x512_160k_ade20k/gcnet_r50-d8_512x512_160k_ade20k_20200615_224122.log.json)" - ], - [ - "GCNet", - "R-101-D8", - "512x512", - 160000, - "-", - "-", - 43.686, - 45.21077897100608, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r101-d8_512x512_160k_ade20k/gcnet_r101-d8_512x512_160k_ade20k_20200615_225406-615528d7.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r101-d8_512x512_160k_ade20k/gcnet_r101-d8_512x512_160k_ade20k_20200615_225406.log.json)" - ] - ] - ], - "cityscapes": [ - [ - [ - "GCNet", - "R-50-D8", - "512x1024", - 40000, - "5.8", - 3.9294375140356674, - 77.691, - 78.55901060780846, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes/gcnet_r50-d8_512x1024_40k_cityscapes_20200618_074436-4b0fd17b.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes/gcnet_r50-d8_512x1024_40k_cityscapes_20200618_074436.log.json)" - ], - [ - "GCNet", - "R-101-D8", - "512x1024", - 40000, - "9.2", - 2.613929250881175, - 78.276, - 79.34154953801408, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes/gcnet_r101-d8_512x1024_40k_cityscapes_20200618_074436-5e62567f.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes/gcnet_r101-d8_512x1024_40k_cityscapes_20200618_074436.log.json)" - ], - [ - "GCNet", - "R-50-D8", - "769x769", - 40000, - "6.5", - 1.6665314351879814, - 78.117, - 80.08636386919896, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r50-d8_769x769_40k_cityscapes/gcnet_r50-d8_769x769_40k_cityscapes_20200618_182814-a26f4471.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r50-d8_769x769_40k_cityscapes/gcnet_r50-d8_769x769_40k_cityscapes_20200618_182814.log.json)" - ], - [ - "GCNet", - "R-101-D8", - "769x769", - 40000, - "10.5", - 1.130548704280006, - 78.949, - 80.70740508232963, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r101-d8_769x769_40k_cityscapes/gcnet_r101-d8_769x769_40k_cityscapes_20200619_092550-ca4f0a84.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r101-d8_769x769_40k_cityscapes/gcnet_r101-d8_769x769_40k_cityscapes_20200619_092550.log.json)" - ], - [ - "GCNet", - "R-50-D8", - "512x1024", - 80000, - "-", - "-", - 78.481, - 80.00715692663934, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes/gcnet_r50-d8_512x1024_80k_cityscapes_20200618_074450-ef8f069b.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes/gcnet_r50-d8_512x1024_80k_cityscapes_20200618_074450.log.json)" - ], - [ - "GCNet", - "R-101-D8", - "512x1024", - 80000, - "-", - "-", - 79.02900000000001, - 79.8389342161561, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes/gcnet_r101-d8_512x1024_80k_cityscapes_20200618_074450-778ebf69.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes/gcnet_r101-d8_512x1024_80k_cityscapes_20200618_074450.log.json)" - ], - [ - "GCNet", - "R-50-D8", - "769x769", - 80000, - "-", - "-", - 78.682, - 80.66434566958863, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r50-d8_769x769_80k_cityscapes/gcnet_r50-d8_769x769_80k_cityscapes_20200619_092516-4839565b.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r50-d8_769x769_80k_cityscapes/gcnet_r50-d8_769x769_80k_cityscapes_20200619_092516.log.json)" - ], - [ - "GCNet", - "R-101-D8", - "769x769", - 80000, - "-", - "-", - 79.184, - 80.70740508232963, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r101-d8_769x769_80k_cityscapes/gcnet_r101-d8_769x769_80k_cityscapes_20200619_092628-8e043423.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/gcnet/gcnet_r101-d8_769x769_80k_cityscapes/gcnet_r101-d8_769x769_80k_cityscapes_20200619_092628.log.json)" - ] - ] - ] - }, - "deeplabv3plus": { - "ade20k": [ - [ - [ - "DeepLabV3+", - "R-50-D8", - "512x512", - 80000, - "10.6", - 21.009967570414005, - 42.725, - 43.750872665309245, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k/deeplabv3plus_r50-d8_512x512_80k_ade20k_20200614_185028-bf1400d8.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k/deeplabv3plus_r50-d8_512x512_80k_ade20k_20200614_185028.log.json)" - ], - [ - "DeepLabV3+", - "R-101-D8", - "512x512", - 80000, - "14.1", - 14.156578683381744, - 44.604, - 46.057602920856496, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k/deeplabv3plus_r101-d8_512x512_80k_ade20k_20200615_014139-d5730af7.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k/deeplabv3plus_r101-d8_512x512_80k_ade20k_20200615_014139.log.json)" - ], - [ - "DeepLabV3+", - "R-50-D8", - "512x512", - 160000, - "-", - "-", - 43.952999999999996, - 44.9257356479825, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k/deeplabv3plus_r50-d8_512x512_160k_ade20k_20200615_124504-6135c7e0.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k/deeplabv3plus_r50-d8_512x512_160k_ade20k_20200615_124504.log.json)" - ], - [ - "DeepLabV3+", - "R-101-D8", - "512x512", - 160000, - "-", - "-", - 45.467999999999996, - 46.35142741219229, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k/deeplabv3plus_r101-d8_512x512_160k_ade20k_20200615_123232-38ed86bb.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k/deeplabv3plus_r101-d8_512x512_160k_ade20k_20200615_123232.log.json)" - ] - ] - ], - "voc12aug": [ - [ - [ - "DeepLabV3+", - "R-50-D8", - "512x512", - 20000, - "7.6", - 20.995826216517777, - 75.932, - 77.49501357998696, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug/deeplabv3plus_r50-d8_512x512_20k_voc12aug_20200617_102323-aad58ef1.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug/deeplabv3plus_r50-d8_512x512_20k_voc12aug_20200617_102323.log.json)" - ], - [ - "DeepLabV3+", - "R-101-D8", - "512x512", - 20000, - "11.0", - 13.877644753051397, - 77.216, - 78.59404066425819, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug/deeplabv3plus_r101-d8_512x512_20k_voc12aug_20200617_102345-c7ff3d56.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug/deeplabv3plus_r101-d8_512x512_20k_voc12aug_20200617_102345.log.json)" - ], - [ - "DeepLabV3+", - "R-50-D8", - "512x512", - 40000, - "-", - "-", - 76.80799999999999, - 77.56956435172417, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug/deeplabv3plus_r50-d8_512x512_40k_voc12aug_20200613_161759-e1b43aa9.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug/deeplabv3plus_r50-d8_512x512_40k_voc12aug_20200613_161759.log.json)" - ], - [ - "DeepLabV3+", - "R-101-D8", - "512x512", - 40000, - "-", - "-", - 78.618, - 79.5312727643948, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug/deeplabv3plus_r101-d8_512x512_40k_voc12aug_20200613_205333-faf03387.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug/deeplabv3plus_r101-d8_512x512_40k_voc12aug_20200613_205333.log.json)" - ] - ] - ], - "cityscapes": [ - [ - [ - "DeepLabV3+", - "R-50-D8", - "512x1024", - 40000, - "7.5", - 3.937852781596224, - 79.606, - 81.0126987140963, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes/deeplabv3plus_r50-d8_512x1024_40k_cityscapes_20200605_094610-d222ffcd.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes/deeplabv3plus_r50-d8_512x1024_40k_cityscapes_20200605_094610.log.json)" - ], - [ - "DeepLabV3+", - "R-101-D8", - "512x1024", - 40000, - "11.0", - 2.6029196398088135, - 80.208, - 81.81580429286755, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes/deeplabv3plus_r101-d8_512x1024_40k_cityscapes_20200605_094614-3769eecf.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes/deeplabv3plus_r101-d8_512x1024_40k_cityscapes_20200605_094614.log.json)" - ], - [ - "DeepLabV3+", - "R-50-D8", - "769x769", - 40000, - "8.5", - 1.7219797309503193, - 78.972, - 80.46092552803746, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes/deeplabv3plus_r50-d8_769x769_40k_cityscapes_20200606_114143-1dcb0e3c.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes/deeplabv3plus_r50-d8_769x769_40k_cityscapes_20200606_114143.log.json)" - ], - [ - "DeepLabV3+", - "R-101-D8", - "769x769", - 40000, - "12.5", - 1.1546806682489152, - 79.461, - 80.5005593465169, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes/deeplabv3plus_r101-d8_769x769_40k_cityscapes_20200606_114304-ff414b9e.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes/deeplabv3plus_r101-d8_769x769_40k_cityscapes_20200606_114304.log.json)" - ], - [ - "DeepLabV3+", - "R-50-D8", - "512x1024", - 80000, - "-", - "-", - 80.08800000000001, - 81.13450865498024, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes/deeplabv3plus_r50-d8_512x1024_80k_cityscapes_20200606_114049-f9fb496d.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes/deeplabv3plus_r50-d8_512x1024_80k_cityscapes_20200606_114049.log.json)" - ], - [ - "DeepLabV3+", - "R-101-D8", - "512x1024", - 80000, - "-", - "-", - 80.972, - 82.02915734982798, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143-068fcfe9.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143.log.json)" - ], - [ - "DeepLabV3+", - "R-50-D8", - "769x769", - 80000, - "-", - "-", - 79.827, - 81.47591334418544, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes/deeplabv3plus_r50-d8_769x769_80k_cityscapes_20200606_210233-0e9dfdc4.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes/deeplabv3plus_r50-d8_769x769_80k_cityscapes_20200606_210233.log.json)" - ], - [ - "DeepLabV3+", - "R-101-D8", - "769x769", - 80000, - "-", - "-", - 80.97999999999999, - 82.17610990719812, - "[model](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes/deeplabv3plus_r101-d8_769x769_80k_cityscapes_20200607_000405-a7573d20.pth) | [log](https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes/deeplabv3plus_r101-d8_769x769_80k_cityscapes_20200607_000405.log.json)" - ] - ] - ] - } -} diff --git a/mmseg/VERSION b/mmseg/VERSION deleted file mode 100644 index 8f0916f768..0000000000 --- a/mmseg/VERSION +++ /dev/null @@ -1 +0,0 @@ -0.5.0 diff --git a/mmseg/__init__.py b/mmseg/__init__.py index 151fd63f55..11376951e9 100644 --- a/mmseg/__init__.py +++ b/mmseg/__init__.py @@ -1,3 +1,30 @@ -from .version import __version__, short_version, version_info +import mmcv -__all__ = ['__version__', 'short_version', 'version_info'] +from .version import __version__, version_info + +MMCV_MIN = '1.0.5' +MMCV_MAX = '1.0.5' + + +def digit_version(version_str): + digit_version = [] + for x in version_str.split('.'): + if x.isdigit(): + digit_version.append(int(x)) + elif x.find('rc') != -1: + patch_version = x.split('rc') + digit_version.append(int(patch_version[0]) - 1) + digit_version.append(int(patch_version[1])) + return digit_version + + +mmcv_min_version = digit_version(MMCV_MIN) +mmcv_max_version = digit_version(MMCV_MAX) +mmcv_version = digit_version(mmcv.__version__) + + +assert (mmcv_min_version <= mmcv_version <= mmcv_max_version), \ + f'MMCV=={mmcv.__version__} is used but incompatible. ' \ + f'Please install mmcv>={mmcv_min_version}, <={mmcv_max_version}.' + +__all__ = ['__version__', 'version_info'] diff --git a/mmseg/utils/collect_env.py b/mmseg/utils/collect_env.py index 8b82019668..c2b1cd4e94 100644 --- a/mmseg/utils/collect_env.py +++ b/mmseg/utils/collect_env.py @@ -7,7 +7,7 @@ import mmcv import torch import torchvision -from mmcv.utils.parrots_wrapper import get_build_config +from mmcv.utils import get_build_config, get_git_hash import mmseg @@ -53,7 +53,7 @@ def collect_env(): env_info['OpenCV'] = cv2.__version__ env_info['MMCV'] = mmcv.__version__ - env_info['MMSegmentation'] = mmseg.__version__ + env_info['MMSegmentation'] = f'{mmseg.__version__}+{get_git_hash()[:7]}' try: from mmcv.ops import get_compiler_version, get_compiling_cuda_version env_info['MMCV Compiler'] = get_compiler_version() diff --git a/mmseg/version.py b/mmseg/version.py new file mode 100644 index 0000000000..cae796d455 --- /dev/null +++ b/mmseg/version.py @@ -0,0 +1,18 @@ +# Copyright (c) Open-MMLab. All rights reserved. + +__version__ = '0.5.1' + + +def parse_version_info(version_str): + version_info = [] + for x in version_str.split('.'): + if x.isdigit(): + version_info.append(int(x)) + elif x.find('rc') != -1: + patch_version = x.split('rc') + version_info.append(int(patch_version[0])) + version_info.append(f'rc{patch_version[1]}') + return tuple(version_info) + + +version_info = parse_version_info(__version__) diff --git a/setup.py b/setup.py index ab249fe718..2e69551b8f 100755 --- a/setup.py +++ b/setup.py @@ -1,81 +1,19 @@ -import os -import subprocess -import time from setuptools import find_packages, setup -version_file = 'mmseg/version.py' + +def readme(): + with open('README.md', encoding='utf-8') as f: + content = f.read() + return content -def get_git_hash(): - - def _minimal_ext_cmd(cmd): - # construct minimal environment - env = {} - for k in ['SYSTEMROOT', 'PATH', 'HOME']: - v = os.environ.get(k) - if v is not None: - env[k] = v - # LANGUAGE is used on win32 - env['LANGUAGE'] = 'C' - env['LANG'] = 'C' - env['LC_ALL'] = 'C' - out = subprocess.Popen( - cmd, stdout=subprocess.PIPE, env=env).communicate()[0] - return out - - try: - out = _minimal_ext_cmd(['git', 'rev-parse', 'HEAD']) - sha = out.strip().decode('ascii') - except OSError: - sha = 'unknown' - - return sha - - -def get_hash(): - if os.path.exists('.git'): - sha = get_git_hash()[:7] - elif os.path.exists(version_file): - try: - from mmseg.version import __version__ - sha = __version__.split('+')[-1] - except ImportError: - raise ImportError('Unable to get git version') - else: - sha = 'unknown' - - return sha - - -def write_version_py(): - content = """# GENERATED VERSION FILE -# TIME: {} - -__version__ = '{}' -short_version = '{}' -version_info = ({}) -""" - sha = get_hash() - with open('mmseg/VERSION', 'r') as f: - SHORT_VERSION = f.read().strip() - VERSION_INFO = ', '.join(SHORT_VERSION.split('.')) - VERSION = SHORT_VERSION + '+' + sha - - version_file_str = content.format(time.asctime(), VERSION, SHORT_VERSION, - VERSION_INFO) - with open(version_file, 'w') as f: - f.write(version_file_str) +version_file = 'mmseg/version.py' def get_version(): with open(version_file, 'r') as f: exec(compile(f.read(), version_file, 'exec')) - import sys - # return short version for sdist - if 'sdist' in sys.argv or 'bdist_wheel' in sys.argv: - return locals()['short_version'] - else: - return locals()['__version__'] + return locals()['__version__'] def parse_requirements(fname='requirements.txt', with_version=True): @@ -155,11 +93,12 @@ def gen_packages_items(): if __name__ == '__main__': - write_version_py() setup( name='mmsegmentation', version=get_version(), description='Open MMLab Semantic Segmentation Toolbox and Benchmark', + long_description=readme(), + long_description_content_type='text/markdown', author='MMSegmentation Authors', author_email='openmmlab@gmail.com', keywords='computer vision, semantic segmentation', diff --git a/tools/train.py b/tools/train.py index 34c097fbf3..7f67c72004 100644 --- a/tools/train.py +++ b/tools/train.py @@ -7,7 +7,7 @@ import mmcv import torch from mmcv.runner import init_dist -from mmcv.utils import Config, DictAction +from mmcv.utils import Config, DictAction, get_git_hash from mmseg import __version__ from mmseg.apis import set_random_seed, train_segmentor @@ -141,7 +141,7 @@ def main(): # save mmseg version, config file content and class names in # checkpoints as meta data cfg.checkpoint_config.meta = dict( - mmseg_version=__version__, + mmseg_version=f'{__version__}+{get_git_hash()[:7]}', config=cfg.pretty_text, CLASSES=datasets[0].CLASSES, PALETTE=datasets[0].PALETTE) From a96e2f932da095f79b69159d30ff4db52b72cc3f Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Wed, 12 Aug 2020 18:55:40 +0800 Subject: [PATCH 015/706] Add pytorch 1.6 CI (#64) --- .github/workflows/build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c3c0dd95e4..48b0cb7811 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -47,6 +47,9 @@ jobs: - torch: 1.5.0+cu101 torchvision: 0.6.0+cu101 python-version: 3.7 + - torch: 1.6.0+cu101 + torchvision: 0.7.0+cu101 + python-version: 3.7 steps: - uses: actions/checkout@v2 From 5ddef979fc5a7fc67331b203b196fab0afba2ea3 Mon Sep 17 00:00:00 2001 From: robin Han Date: Fri, 14 Aug 2020 03:28:21 +0800 Subject: [PATCH 016/706] add pytorch2onnx part (#12) * add pytorch2onnx part * Update according to the latest mmcv * add docstring * update docs * update docs Co-authored-by: Jiarui XU --- docs/getting_started.md | 15 ++ mmseg/models/segmentors/encoder_decoder.py | 21 ++- setup.cfg | 2 +- tools/pytorch2onnx.py | 198 +++++++++++++++++++++ 4 files changed, 227 insertions(+), 9 deletions(-) create mode 100644 tools/pytorch2onnx.py diff --git a/docs/getting_started.md b/docs/getting_started.md index 9140435cf2..bf4980218e 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -332,3 +332,18 @@ python tools/publish_model.py work_dirs/pspnet/latest.pth psp_r50_hszhao_200ep.p ``` The final output filename will be `psp_r50_512x1024_40ki_cityscapes-{hash id}.pth`. + +### Convert to ONNX (experimental) + +We provide a script to convert model to [ONNX](https://github.com/onnx/onnx) format. The converted model could be visualized by tools like [Netron](https://github.com/lutzroeder/netron). Besides, we also support comparing the output results between Pytorch and ONNX model. + +```shell +python tools/pytorch2onnx.py ${CONFIG_FILE} --checkpoint ${CHECKPOINT_FILE} --output_file ${ONNX_FILE} [--shape ${INPUT_SHAPE} --verify] +``` + +**Note**: This tool is still experimental. Some customized operators are not supported for now. + +## Tutorials + +Currently, we provide four tutorials for users to [add new dataset](tutorials/new_dataset.md), [design data pipeline](tutorials/data_pipeline.md) and [add new modules](tutorials/new_modules.md), [use training tricks](tutorials/training_tricks.md). +We also provide a full description about the [config system](config.md). diff --git a/mmseg/models/segmentors/encoder_decoder.py b/mmseg/models/segmentors/encoder_decoder.py index d3ce17adbb..d1709e0ca3 100644 --- a/mmseg/models/segmentors/encoder_decoder.py +++ b/mmseg/models/segmentors/encoder_decoder.py @@ -1,3 +1,4 @@ +import torch import torch.nn as nn import torch.nn.functional as F @@ -171,6 +172,8 @@ def slide_inference(self, img, img_meta, rescale): h_stride, w_stride = self.test_cfg.stride h_crop, w_crop = self.test_cfg.crop_size batch_size, _, h_img, w_img = img.size() + assert h_crop <= h_img and w_crop <= w_img, ( + 'crop size should not greater than image size') num_classes = self.num_classes h_grids = max(h_img - h_crop + h_stride - 1, 0) // h_stride + 1 w_grids = max(w_img - w_crop + w_stride - 1, 0) // w_stride + 1 @@ -185,14 +188,15 @@ def slide_inference(self, img, img_meta, rescale): y1 = max(y2 - h_crop, 0) x1 = max(x2 - w_crop, 0) crop_img = img[:, :, y1:y2, x1:x2] - pad_img = crop_img.new_zeros( - (crop_img.size(0), crop_img.size(1), h_crop, w_crop)) - pad_img[:, :, :y2 - y1, :x2 - x1] = crop_img - pad_seg_logit = self.encode_decode(pad_img, img_meta) - preds[:, :, y1:y2, - x1:x2] += pad_seg_logit[:, :, :y2 - y1, :x2 - x1] + crop_seg_logit = self.encode_decode(crop_img, img_meta) + preds += F.pad(crop_seg_logit, + (int(x1), int(preds.shape[3] - x2), int(y1), + int(preds.shape[2] - y2))) + count_mat[:, :, y1:y2, x1:x2] += 1 assert (count_mat == 0).sum() == 0 + # We want to regard count_mat as a constant while exporting to ONNX + count_mat = torch.from_numpy(count_mat.detach().numpy()) preds = preds / count_mat if rescale: preds = resize( @@ -201,7 +205,6 @@ def slide_inference(self, img, img_meta, rescale): mode='bilinear', align_corners=self.align_corners, warning=False) - return preds def whole_inference(self, img, img_meta, rescale): @@ -243,8 +246,8 @@ def inference(self, img, img_meta, rescale): seg_logit = self.whole_inference(img, img_meta, rescale) output = F.softmax(seg_logit, dim=1) flip = img_meta[0]['flip'] - flip_direction = img_meta[0]['flip_direction'] if flip: + flip_direction = img_meta[0]['flip_direction'] assert flip_direction in ['horizontal', 'vertical'] if flip_direction == 'horizontal': output = output.flip(dims=(3, )) @@ -257,6 +260,8 @@ def simple_test(self, img, img_meta, rescale=True): """Simple test with single image.""" seg_logit = self.inference(img, img_meta, rescale) seg_pred = seg_logit.argmax(dim=1) + if torch.onnx.is_in_onnx_export(): + return seg_pred seg_pred = seg_pred.cpu().numpy() # unravel batch dim seg_pred = list(seg_pred) diff --git a/setup.cfg b/setup.cfg index 2102a8ca60..9721e1c5c3 100644 --- a/setup.cfg +++ b/setup.cfg @@ -8,6 +8,6 @@ line_length = 79 multi_line_output = 0 known_standard_library = setuptools known_first_party = mmseg -known_third_party = PIL,cityscapesscripts,cv2,matplotlib,mmcv,numpy,pytablewriter,pytest,scipy,torch,torchvision +known_third_party = PIL,cityscapesscripts,cv2,matplotlib,mmcv,numpy,onnxruntime,pytablewriter,pytest,scipy,torch,torchvision no_lines_before = STDLIB,LOCALFOLDER default_section = THIRDPARTY diff --git a/tools/pytorch2onnx.py b/tools/pytorch2onnx.py new file mode 100644 index 0000000000..df84eeb911 --- /dev/null +++ b/tools/pytorch2onnx.py @@ -0,0 +1,198 @@ +import argparse +from functools import partial + +import mmcv +import numpy as np +import onnxruntime as rt +import torch +import torch._C +import torch.serialization +from mmcv.onnx import register_extra_symbolics +from mmcv.runner import load_checkpoint + +from mmseg.models import build_segmentor + +torch.manual_seed(3) + + +def _convert_batchnorm(module): + module_output = module + if isinstance(module, torch.nn.SyncBatchNorm): + module_output = torch.nn.BatchNorm2d(module.num_features, module.eps, + module.momentum, module.affine, + module.track_running_stats) + if module.affine: + module_output.weight.data = module.weight.data.clone().detach() + module_output.bias.data = module.bias.data.clone().detach() + # keep requires_grad unchanged + module_output.weight.requires_grad = module.weight.requires_grad + module_output.bias.requires_grad = module.bias.requires_grad + module_output.running_mean = module.running_mean + module_output.running_var = module.running_var + module_output.num_batches_tracked = module.num_batches_tracked + for name, child in module.named_children(): + module_output.add_module(name, _convert_batchnorm(child)) + del module + return module_output + + +def _demo_mm_inputs(input_shape, num_classes): + """Create a superset of inputs needed to run test or train batches. + + Args: + input_shape (tuple): + input batch dimensions + num_classes (int): + number of semantic classes + """ + (N, C, H, W) = input_shape + rng = np.random.RandomState(0) + imgs = rng.rand(*input_shape) + segs = rng.randint( + low=0, high=num_classes - 1, size=(N, 1, H, W)).astype(np.uint8) + img_metas = [{ + 'img_shape': (H, W, C), + 'ori_shape': (H, W, C), + 'pad_shape': (H, W, C), + 'filename': '.png', + 'scale_factor': 1.0, + 'flip': False, + } for _ in range(N)] + mm_inputs = { + 'imgs': torch.FloatTensor(imgs).requires_grad_(True), + 'img_metas': img_metas, + 'gt_semantic_seg': torch.LongTensor(segs) + } + return mm_inputs + + +def pytorch2onnx(model, + input_shape, + opset_version=11, + show=False, + output_file='tmp.onnx', + verify=False): + """Export Pytorch model to ONNX model and verify the outputs are same + between Pytorch and ONNX. + + Args: + model (nn.Module): Pytorch model we want to export. + input_shape (tuple): Use this input shape to construct + the corresponding dummy input and execute the model. + opset_version (int): The onnx op version. Default: 11. + show (bool): Whether print the computation graph. Default: False. + output_file (string): The path to where we store the output ONNX model. + Default: `tmp.onnx`. + verify (bool): Whether compare the outputs between Pytorch and ONNX. + Default: False. + """ + model.cpu().eval() + + num_classes = model.decode_head.num_classes + + mm_inputs = _demo_mm_inputs(input_shape, num_classes) + + imgs = mm_inputs.pop('imgs') + img_metas = mm_inputs.pop('img_metas') + + img_list = [img[None, :] for img in imgs] + img_meta_list = [[img_meta] for img_meta in img_metas] + + # replace original forward function + origin_forward = model.forward + model.forward = partial( + model.forward, img_metas=img_meta_list, return_loss=False) + + register_extra_symbolics(opset_version) + with torch.no_grad(): + torch.onnx.export( + model, (img_list, ), + output_file, + export_params=True, + keep_initializers_as_inputs=True, + verbose=show, + opset_version=opset_version) + print(f'Successfully exported ONNX model: {output_file}') + model.forward = origin_forward + + if verify: + # check by onnx + import onnx + onnx_model = onnx.load(output_file) + onnx.checker.check_model(onnx_model) + + # check the numerical value + # get pytorch output + pytorch_result = model(img_list, img_meta_list, return_loss=False)[0] + + # get onnx output + input_all = [node.name for node in onnx_model.graph.input] + input_initializer = [ + node.name for node in onnx_model.graph.initializer + ] + net_feed_input = list(set(input_all) - set(input_initializer)) + assert (len(net_feed_input) == 1) + sess = rt.InferenceSession(output_file) + onnx_result = sess.run( + None, {net_feed_input[0]: img_list[0].detach().numpy()})[0] + if not np.allclose(pytorch_result, onnx_result): + raise ValueError( + 'The outputs are different between Pytorch and ONNX') + print('The outputs are same between Pytorch and ONNX') + + +def parse_args(): + parser = argparse.ArgumentParser(description='Convert MMDet to ONNX') + parser.add_argument('config', help='test config file path') + parser.add_argument('--checkpoint', help='checkpoint file', default=None) + parser.add_argument('--show', action='store_true', help='show onnx graph') + parser.add_argument( + '--verify', action='store_true', help='verify the onnx model') + parser.add_argument('--output-file', type=str, default='tmp.onnx') + parser.add_argument('--opset-version', type=int, default=11) + parser.add_argument( + '--shape', + type=int, + nargs='+', + default=[256, 256], + help='input image size') + args = parser.parse_args() + return args + + +if __name__ == '__main__': + args = parse_args() + + if len(args.shape) == 1: + input_shape = (1, 3, args.shape[0], args.shape[0]) + elif len(args.shape) == 2: + input_shape = ( + 1, + 3, + ) + tuple(args.shape) + else: + raise ValueError('invalid input shape') + + cfg = mmcv.Config.fromfile(args.config) + cfg.model.pretrained = None + + # build the model and load checkpoint + segmentor = build_segmentor( + cfg.model, train_cfg=None, test_cfg=cfg.test_cfg) + # convert SyncBN to BN + segmentor = _convert_batchnorm(segmentor) + + num_classes = segmentor.decode_head.num_classes + + if args.checkpoint: + checkpoint = load_checkpoint( + segmentor, args.checkpoint, map_location='cpu') + + # conver model to onnx file + pytorch2onnx( + segmentor, + input_shape, + opset_version=args.opset_version, + show=args.show, + output_file=args.output_file, + verify=args.verify) From df37f801b6405af7e20016310e4a82f37a1fd6e1 Mon Sep 17 00:00:00 2001 From: RainbowSecret Date: Thu, 13 Aug 2020 22:16:27 -0700 Subject: [PATCH 017/706] add more results of OCRNet (#20) * update the HRNet-OCR & add ResNet-101-OCR * revise the script * add the results of resnet-101+ocr * add cascade ocr, aspp ocr * add comparison table * move comparison table * support ocr+decoder * revise the ocrnet_sep_aspp * update the results of ocrnet * update the results of ocrnet * add sep-ocr-variants * add bs2x exp of deeplabv3/v3+ * apply sep-conv in ocr module * update the results * update the results * update the results of OCRNet * update the results of OCRNet * correct the results * verify the release branch * init the release branch * add more results of ocrnet and ocrnetplus * resolve the conflicts * rename OCRNetPlus as OCRNet+ * fix the format * fix the lint issues * fix the lint issues * fix the lint issues * fix the lint isort issues * fix the lint yapf issues * fix the format issues * remove the changes by the master branch * remove the changes by the master branch * remove the changes by the master branch * remove the changes by the master branch * remove the changes by the master branch * add the logs folder to .gitignore * recover .gitignore * update readme * update readme * reset the cudnn_benchmark * revise the README of OCRNet * revise the name * revise the reference of OCRNet * revise the Figure of OCRNet+ * update the results of OCR/OCR+ * update the results of OCR/OCR+ * update the results of OCR/OCR+ * fix the format issue * fix the format issue * remove the ocr+ * update the results * update the results * fix the conflicts * fix the lint issue * fix the lint issue * fix the lint issue * fix the lint issue * fix the inconsistency * add urls to README * clean the code * remove the schedule configs * clean the custom code * clean up * remove ocr.png Co-authored-by: Jiarui XU --- configs/_base_/models/ocrnet_r50-d8.py | 47 +++++++++++++++++++ configs/ocrnet/README.md | 28 +++++++++-- ...net_r101-d8_512x1024_40k_b16_cityscapes.py | 9 ++++ ...rnet_r101-d8_512x1024_40k_b8_cityscapes.py | 7 +++ ...net_r101-d8_512x1024_80k_b16_cityscapes.py | 9 ++++ 5 files changed, 96 insertions(+), 4 deletions(-) create mode 100644 configs/_base_/models/ocrnet_r50-d8.py create mode 100644 configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py create mode 100644 configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py create mode 100644 configs/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py diff --git a/configs/_base_/models/ocrnet_r50-d8.py b/configs/_base_/models/ocrnet_r50-d8.py new file mode 100644 index 0000000000..52fe060b1e --- /dev/null +++ b/configs/_base_/models/ocrnet_r50-d8.py @@ -0,0 +1,47 @@ +# model settings +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + type='CascadeEncoderDecoder', + num_stages=2, + pretrained='open-mmlab://resnet50_v1c', + backbone=dict( + type='ResNetV1c', + depth=50, + num_stages=4, + out_indices=(0, 1, 2, 3), + dilations=(1, 1, 2, 4), + strides=(1, 2, 1, 1), + norm_cfg=norm_cfg, + norm_eval=False, + style='pytorch', + contract_dilation=True), + decode_head=[ + dict( + type='FCNHead', + in_channels=1024, + in_index=2, + channels=256, + num_convs=1, + concat_input=False, + drop_out_ratio=0.1, + num_classes=19, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + dict( + type='OCRHead', + in_channels=2048, + in_index=3, + channels=512, + ocr_channels=256, + drop_out_ratio=0.1, + num_classes=19, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)) + ]) +# model training and testing settings +train_cfg = dict() +test_cfg = dict(mode='whole') diff --git a/configs/ocrnet/README.md b/configs/ocrnet/README.md index fe9e05aaac..5c1ce604ae 100644 --- a/configs/ocrnet/README.md +++ b/configs/ocrnet/README.md @@ -1,18 +1,28 @@ # Object-Contextual Representations for Semantic Segmentation ## Introduction + ``` -@article{yuan2019ocr, +@article{YuanW18, + title={Ocnet: Object context network for scene parsing}, + author={Yuhui Yuan and Jingdong Wang}, + booktitle={arXiv preprint arXiv:1809.00916}, + year={2018} +} + +@article{YuanCW20, title={Object-Contextual Representations for Semantic Segmentation}, - author={Yuan Yuhui and Chen Xilin and Wang Jingdong}, - journal={arXiv preprint arXiv:1909.11065}, - year={2019} + author={Yuhui Yuan and Xilin Chen and Jingdong Wang}, + booktitle={ECCV}, + year={2020} } ``` ## Results and models ### Cityscapes + +#### HRNet backbone | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | OCRNet | HRNetV2p-W18-Small | 512x1024 | 40000 | 3.5 | 10.45 | 74.30 | 75.95 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes/ocrnet_hr18s_512x1024_40k_cityscapes_20200601_033304-fa2436c2.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes/ocrnet_hr18s_512x1024_40k_cityscapes_20200601_033304.log.json) | @@ -25,6 +35,16 @@ | OCRNet | HRNetV2p-W18 | 512x1024 | 160000 | - | - | 79.47 | 80.91 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes/ocrnet_hr18_512x1024_160k_cityscapes_20200602_191001-b9172d0c.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes/ocrnet_hr18_512x1024_160k_cityscapes_20200602_191001.log.json) | | OCRNet | HRNetV2p-W48 | 512x1024 | 160000 | - | - | 81.35 | 82.70 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes/ocrnet_hr48_512x1024_160k_cityscapes_20200602_191037-dfbf1b0c.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes/ocrnet_hr48_512x1024_160k_cityscapes_20200602_191037.log.json) | + +#### ResNet backbone + +| Method | Backbone | Crop Size | Batch Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | +|--------|--------------------|-----------|--------|----------|-----------|----------------|------|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| OCRNet | R-101-D8 | 512x1024 | 8 | 40000 | - | - | 80.09 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes/ocrnet_r101-d8_512x1024_40k_b8_cityscapes-02ac0f13.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes/ocrnet_r101-d8_512x1024_40k_b8_cityscapes_20200717_110721.log.json) | +| OCRNet | R-101-D8 | 512x1024 | 16 | 40000 | 8.8 | 3.02 | 80.30 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes/ocrnet_r101-d8_512x1024_40k_b16_cityscapes-db500f80.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes/ocrnet_r101-d8_512x1024_40k_b16_cityscapes_20200723_193726.log.json) | +| OCRNet | R-101-D8 | 512x1024 | 16 | 80000 | 8.8 | 3.02 | 80.81 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes/ocrnet_r101-d8_512x1024_80k_b16_cityscapes-78688424.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes/ocrnet_r101-d8_512x1024_80k_b16_cityscapes_20200723_192421.log.json) | + + ### ADE20K | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| diff --git a/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py b/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py new file mode 100644 index 0000000000..3085f9eac4 --- /dev/null +++ b/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = [ + '../_base_/models/ocrnet_r50-d8.py', + '../_base_/datasets/cityscapes.py', + '../_base_/default_runtime.py', + '../_base_/schedules/schedule_40k.py' +] +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) +optimizer = dict(lr=0.02) +lr_config = dict(min_lr=2e-4) diff --git a/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py b/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py new file mode 100644 index 0000000000..955dce099b --- /dev/null +++ b/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py @@ -0,0 +1,7 @@ +_base_ = [ + '../_base_/models/ocrnet_r50-d8.py', + '../_base_/datasets/cityscapes.py', + '../_base_/default_runtime.py', + '../_base_/schedules/schedule_40k.py' +] +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py b/configs/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py new file mode 100644 index 0000000000..1704fa8128 --- /dev/null +++ b/configs/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = [ + '../_base_/models/ocrnet_r50-d8.py', + '../_base_/datasets/cityscapes.py', + '../_base_/default_runtime.py', + '../_base_/schedules/schedule_80k.py' +] +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) +optimizer = dict(lr=0.02) +lr_config = dict(min_lr=2e-4) From c8b250df4affe66b224d740f63329720597aaa0b Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Mon, 17 Aug 2020 00:54:01 +0800 Subject: [PATCH 018/706] Support ResNeSt backbone (#47) * Support ResNeSt backbone * fixed avg_down * add docstring and test * update table * update docs and tests * fixed test * rename * refactor splits --- README.md | 3 +- configs/resnest/README.md | 30 ++ ...eplabv3_s101-d8_512x1024_80k_cityscapes.py | 9 + .../deeplabv3_s101-d8_512x512_160k_ade20k.py | 9 + ...bv3plus_s101-d8_512x1024_80k_cityscapes.py | 9 + ...eplabv3plus_s101-d8_512x512_160k_ade20k.py | 9 + .../fcn_s101-d8_512x1024_80k_cityscapes.py | 9 + .../fcn_s101-d8_512x512_160k_ade20k.py | 9 + .../pspnet_s101-d8_512x1024_80k_cityscapes.py | 9 + .../pspnet_s101-d8_512x512_160k_ade20k.py | 9 + docs/model_zoo.md | 4 + mmseg/models/backbones/__init__.py | 3 +- mmseg/models/backbones/resnest.py | 314 ++++++++++++++++++ mmseg/models/utils/res_layer.py | 3 +- tests/test_models/test_backbone.py | 41 ++- 15 files changed, 465 insertions(+), 5 deletions(-) create mode 100644 configs/resnest/README.md create mode 100644 configs/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes.py create mode 100644 configs/resnest/deeplabv3_s101-d8_512x512_160k_ade20k.py create mode 100644 configs/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py create mode 100644 configs/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k.py create mode 100644 configs/resnest/fcn_s101-d8_512x1024_80k_cityscapes.py create mode 100644 configs/resnest/fcn_s101-d8_512x512_160k_ade20k.py create mode 100644 configs/resnest/pspnet_s101-d8_512x1024_80k_cityscapes.py create mode 100644 configs/resnest/pspnet_s101-d8_512x512_160k_ade20k.py create mode 100644 mmseg/models/backbones/resnest.py diff --git a/README.md b/README.md index 63352663de..157a57b368 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,8 @@ Results and models are available in the [model zoo](docs/model_zoo.md). Supported backbones: - [x] ResNet - [x] ResNeXt -- [x] HRNet +- [x] [HRNet](configs/hrnet/README.md) +- [x] [ResNeSt](configs/resnest/README.md) Supported methods: - [x] [FCN](configs/fcn) diff --git a/configs/resnest/README.md b/configs/resnest/README.md new file mode 100644 index 0000000000..4c876214f0 --- /dev/null +++ b/configs/resnest/README.md @@ -0,0 +1,30 @@ +# ResNeSt: Split-Attention Networks + +## Introduction + +``` +@article{zhang2020resnest, +title={ResNeSt: Split-Attention Networks}, +author={Zhang, Hang and Wu, Chongruo and Zhang, Zhongyue and Zhu, Yi and Zhang, Zhi and Lin, Haibin and Sun, Yue and He, Tong and Muller, Jonas and Manmatha, R. and Li, Mu and Smola, Alexander}, +journal={arXiv preprint arXiv:2004.08955}, +year={2020} +} +``` + +## Results and models + +### Cityscapes +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | +|------------|----------|-----------|--------:|---------:|----------------|------:|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| FCN | S-101-D8 | 512x1024 | 80000 | 11.4 | 2.39 | 77.56 | 78.98 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x1024_80k_cityscapes/fcn_s101-d8_512x1024_80k_cityscapes_20200807_140631-f8d155b3.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x1024_80k_cityscapes/fcn_s101-d8_512x1024_80k_cityscapes-20200807_140631.log.json) | +| PSPNet | S-101-D8 | 512x1024 | 80000 | 11.8 | 2.52 | 78.57 | 79.19 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x1024_80k_cityscapes/pspnet_s101-d8_512x1024_80k_cityscapes_20200807_140631-c75f3b99.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x1024_80k_cityscapes/pspnet_s101-d8_512x1024_80k_cityscapes-20200807_140631.log.json) | +| DeepLabV3 | S-101-D8 | 512x1024 | 80000 | 11.9 | 1.88 | 79.67 | 80.51 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes/deeplabv3_s101-d8_512x1024_80k_cityscapes_20200807_144429-b73c4270.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes/deeplabv3_s101-d8_512x1024_80k_cityscapes-20200807_144429.log.json) | +| DeepLabV3+ | S-101-D8 | 512x1024 | 80000 | 13.2 | 2.36 | 79.62 | 80.27 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes/deeplabv3plus_s101-d8_512x1024_80k_cityscapes_20200807_144429-1239eb43.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes/deeplabv3plus_s101-d8_512x1024_80k_cityscapes-20200807_144429.log.json) | + +### ADE20k +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | +|------------|----------|-----------|--------:|---------:|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| FCN | S-101-D8 | 512x512 | 160000 | 14.2 | 12.86 | 45.62 | 46.16 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x512_160k_ade20k/fcn_s101-d8_512x512_160k_ade20k_20200807_145416-d3160329.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x512_160k_ade20k/fcn_s101-d8_512x512_160k_ade20k-20200807_145416.log.json) | +| PSPNet | S-101-D8 | 512x512 | 160000 | 14.2 | 13.02 | 45.44 | 46.28 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x512_160k_ade20k/pspnet_s101-d8_512x512_160k_ade20k_20200807_145416-a6daa92a.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x512_160k_ade20k/pspnet_s101-d8_512x512_160k_ade20k-20200807_145416.log.json) | +| DeepLabV3 | S-101-D8 | 512x512 | 160000 | 14.6 | 9.28 | 45.71 | 46.59 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x512_160k_ade20k/deeplabv3_s101-d8_512x512_160k_ade20k_20200807_144503-17ecabe5.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x512_160k_ade20k/deeplabv3_s101-d8_512x512_160k_ade20k-20200807_144503.log.json) | +| DeepLabV3+ | S-101-D8 | 512x512 | 160000 | 16.2 | 11.96 | 46.47 | 47.27 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k/deeplabv3plus_s101-d8_512x512_160k_ade20k_20200807_144503-27b26226.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k/deeplabv3plus_s101-d8_512x512_160k_ade20k-20200807_144503.log.json) | diff --git a/configs/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes.py b/configs/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..f98398690e --- /dev/null +++ b/configs/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = '../deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py' +model = dict( + pretrained='open-mmlab://resnest101', + backbone=dict( + type='ResNeSt', + stem_channels=128, + radix=2, + reduction_factor=4, + avg_down_stride=True)) diff --git a/configs/resnest/deeplabv3_s101-d8_512x512_160k_ade20k.py b/configs/resnest/deeplabv3_s101-d8_512x512_160k_ade20k.py new file mode 100644 index 0000000000..e3924ad679 --- /dev/null +++ b/configs/resnest/deeplabv3_s101-d8_512x512_160k_ade20k.py @@ -0,0 +1,9 @@ +_base_ = '../deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k.py' +model = dict( + pretrained='open-mmlab://resnest101', + backbone=dict( + type='ResNeSt', + stem_channels=128, + radix=2, + reduction_factor=4, + avg_down_stride=True)) diff --git a/configs/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py b/configs/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..69bef72383 --- /dev/null +++ b/configs/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = '../deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py' +model = dict( + pretrained='open-mmlab://resnest101', + backbone=dict( + type='ResNeSt', + stem_channels=128, + radix=2, + reduction_factor=4, + avg_down_stride=True)) diff --git a/configs/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k.py b/configs/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k.py new file mode 100644 index 0000000000..d51bccb965 --- /dev/null +++ b/configs/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k.py @@ -0,0 +1,9 @@ +_base_ = '../deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k.py' +model = dict( + pretrained='open-mmlab://resnest101', + backbone=dict( + type='ResNeSt', + stem_channels=128, + radix=2, + reduction_factor=4, + avg_down_stride=True)) diff --git a/configs/resnest/fcn_s101-d8_512x1024_80k_cityscapes.py b/configs/resnest/fcn_s101-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..33fa0252d8 --- /dev/null +++ b/configs/resnest/fcn_s101-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = '../fcn/fcn_r101-d8_512x1024_80k_cityscapes.py' +model = dict( + pretrained='open-mmlab://resnest101', + backbone=dict( + type='ResNeSt', + stem_channels=128, + radix=2, + reduction_factor=4, + avg_down_stride=True)) diff --git a/configs/resnest/fcn_s101-d8_512x512_160k_ade20k.py b/configs/resnest/fcn_s101-d8_512x512_160k_ade20k.py new file mode 100644 index 0000000000..dcee8c280e --- /dev/null +++ b/configs/resnest/fcn_s101-d8_512x512_160k_ade20k.py @@ -0,0 +1,9 @@ +_base_ = '../fcn/fcn_r101-d8_512x512_160k_ade20k.py' +model = dict( + pretrained='open-mmlab://resnest101', + backbone=dict( + type='ResNeSt', + stem_channels=128, + radix=2, + reduction_factor=4, + avg_down_stride=True)) diff --git a/configs/resnest/pspnet_s101-d8_512x1024_80k_cityscapes.py b/configs/resnest/pspnet_s101-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..9737849cbd --- /dev/null +++ b/configs/resnest/pspnet_s101-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = '../pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py' +model = dict( + pretrained='open-mmlab://resnest101', + backbone=dict( + type='ResNeSt', + stem_channels=128, + radix=2, + reduction_factor=4, + avg_down_stride=True)) diff --git a/configs/resnest/pspnet_s101-d8_512x512_160k_ade20k.py b/configs/resnest/pspnet_s101-d8_512x512_160k_ade20k.py new file mode 100644 index 0000000000..6a622eae96 --- /dev/null +++ b/configs/resnest/pspnet_s101-d8_512x512_160k_ade20k.py @@ -0,0 +1,9 @@ +_base_ = '../pspnet/pspnet_r101-d8_512x512_160k_ade20k.py' +model = dict( + pretrained='open-mmlab://resnest101', + backbone=dict( + type='ResNeSt', + stem_channels=128, + radix=2, + reduction_factor=4, + avg_down_stride=True)) diff --git a/docs/model_zoo.md b/docs/model_zoo.md index ddca1f5095..aa5c4eb62f 100644 --- a/docs/model_zoo.md +++ b/docs/model_zoo.md @@ -81,6 +81,10 @@ Please refer to [ANN](https://github.com/open-mmlab/mmsegmentation/blob/master/c Please refer to [OCRNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet) for details. +### ResNeSt + +Please refer to [ResNeSt](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/resnest) for details. + ### Mixed Precision (FP16) Training diff --git a/mmseg/models/backbones/__init__.py b/mmseg/models/backbones/__init__.py index 367b398ce8..35924248d1 100644 --- a/mmseg/models/backbones/__init__.py +++ b/mmseg/models/backbones/__init__.py @@ -1,5 +1,6 @@ from .hrnet import HRNet +from .resnest import ResNeSt from .resnet import ResNet, ResNetV1c, ResNetV1d from .resnext import ResNeXt -__all__ = ['ResNet', 'ResNetV1c', 'ResNetV1d', 'ResNeXt', 'HRNet'] +__all__ = ['ResNet', 'ResNetV1c', 'ResNetV1d', 'ResNeXt', 'HRNet', 'ResNeSt'] diff --git a/mmseg/models/backbones/resnest.py b/mmseg/models/backbones/resnest.py new file mode 100644 index 0000000000..8931decb87 --- /dev/null +++ b/mmseg/models/backbones/resnest.py @@ -0,0 +1,314 @@ +import math + +import torch +import torch.nn as nn +import torch.nn.functional as F +import torch.utils.checkpoint as cp +from mmcv.cnn import build_conv_layer, build_norm_layer + +from ..builder import BACKBONES +from ..utils import ResLayer +from .resnet import Bottleneck as _Bottleneck +from .resnet import ResNetV1d + + +class RSoftmax(nn.Module): + """Radix Softmax module in ``SplitAttentionConv2d``. + + Args: + radix (int): Radix of input. + groups (int): Groups of input. + """ + + def __init__(self, radix, groups): + super().__init__() + self.radix = radix + self.groups = groups + + def forward(self, x): + batch = x.size(0) + if self.radix > 1: + x = x.view(batch, self.groups, self.radix, -1).transpose(1, 2) + x = F.softmax(x, dim=1) + x = x.reshape(batch, -1) + else: + x = torch.sigmoid(x) + return x + + +class SplitAttentionConv2d(nn.Module): + """Split-Attention Conv2d in ResNeSt. + + Args: + in_channels (int): Same as nn.Conv2d. + out_channels (int): Same as nn.Conv2d. + kernel_size (int | tuple[int]): Same as nn.Conv2d. + stride (int | tuple[int]): Same as nn.Conv2d. + padding (int | tuple[int]): Same as nn.Conv2d. + dilation (int | tuple[int]): Same as nn.Conv2d. + groups (int): Same as nn.Conv2d. + radix (int): Radix of SpltAtConv2d. Default: 2 + reduction_factor (int): Reduction factor of inter_channels. Default: 4. + conv_cfg (dict): Config dict for convolution layer. Default: None, + which means using conv2d. + norm_cfg (dict): Config dict for normalization layer. Default: None. + dcn (dict): Config dict for DCN. Default: None. + """ + + def __init__(self, + in_channels, + channels, + kernel_size, + stride=1, + padding=0, + dilation=1, + groups=1, + radix=2, + reduction_factor=4, + conv_cfg=None, + norm_cfg=dict(type='BN'), + dcn=None): + super(SplitAttentionConv2d, self).__init__() + inter_channels = max(in_channels * radix // reduction_factor, 32) + self.radix = radix + self.groups = groups + self.channels = channels + self.with_dcn = dcn is not None + self.dcn = dcn + fallback_on_stride = False + if self.with_dcn: + fallback_on_stride = self.dcn.pop('fallback_on_stride', False) + if self.with_dcn and not fallback_on_stride: + assert conv_cfg is None, 'conv_cfg must be None for DCN' + conv_cfg = dcn + self.conv = build_conv_layer( + conv_cfg, + in_channels, + channels * radix, + kernel_size, + stride=stride, + padding=padding, + dilation=dilation, + groups=groups * radix, + bias=False) + self.norm0_name, norm0 = build_norm_layer( + norm_cfg, channels * radix, postfix=0) + self.add_module(self.norm0_name, norm0) + self.relu = nn.ReLU(inplace=True) + self.fc1 = build_conv_layer( + None, channels, inter_channels, 1, groups=self.groups) + self.norm1_name, norm1 = build_norm_layer( + norm_cfg, inter_channels, postfix=1) + self.add_module(self.norm1_name, norm1) + self.fc2 = build_conv_layer( + None, inter_channels, channels * radix, 1, groups=self.groups) + self.rsoftmax = RSoftmax(radix, groups) + + @property + def norm0(self): + """nn.Module: the normalization layer named "norm0" """ + return getattr(self, self.norm0_name) + + @property + def norm1(self): + """nn.Module: the normalization layer named "norm1" """ + return getattr(self, self.norm1_name) + + def forward(self, x): + x = self.conv(x) + x = self.norm0(x) + x = self.relu(x) + + batch, rchannel = x.shape[:2] + batch = x.size(0) + if self.radix > 1: + splits = x.view(batch, self.radix, -1, *x.shape[2:]) + gap = splits.sum(dim=1) + else: + gap = x + gap = F.adaptive_avg_pool2d(gap, 1) + gap = self.fc1(gap) + + gap = self.norm1(gap) + gap = self.relu(gap) + + atten = self.fc2(gap) + atten = self.rsoftmax(atten).view(batch, -1, 1, 1) + + if self.radix > 1: + attens = atten.view(batch, self.radix, -1, *atten.shape[2:]) + out = torch.sum(attens * splits, dim=1) + else: + out = atten * x + return out.contiguous() + + +class Bottleneck(_Bottleneck): + """Bottleneck block for ResNeSt. + + Args: + inplane (int): Input planes of this block. + planes (int): Middle planes of this block. + groups (int): Groups of conv2. + width_per_group (int): Width per group of conv2. 64x4d indicates + ``groups=64, width_per_group=4`` and 32x8d indicates + ``groups=32, width_per_group=8``. + radix (int): Radix of SpltAtConv2d. Default: 2 + reduction_factor (int): Reduction factor of inter_channels in + SplitAttentionConv2d. Default: 4. + avg_down_stride (bool): Whether to use average pool for stride in + Bottleneck. Default: True. + kwargs (dict): Key word arguments for base class. + """ + expansion = 4 + + def __init__(self, + inplanes, + planes, + groups=1, + base_width=4, + base_channels=64, + radix=2, + reduction_factor=4, + avg_down_stride=True, + **kwargs): + """Bottleneck block for ResNeSt.""" + super(Bottleneck, self).__init__(inplanes, planes, **kwargs) + + if groups == 1: + width = self.planes + else: + width = math.floor(self.planes * + (base_width / base_channels)) * groups + + self.avg_down_stride = avg_down_stride and self.conv2_stride > 1 + + self.norm1_name, norm1 = build_norm_layer( + self.norm_cfg, width, postfix=1) + self.norm3_name, norm3 = build_norm_layer( + self.norm_cfg, self.planes * self.expansion, postfix=3) + + self.conv1 = build_conv_layer( + self.conv_cfg, + self.inplanes, + width, + kernel_size=1, + stride=self.conv1_stride, + bias=False) + self.add_module(self.norm1_name, norm1) + self.with_modulated_dcn = False + self.conv2 = SplitAttentionConv2d( + width, + width, + kernel_size=3, + stride=1 if self.avg_down_stride else self.conv2_stride, + padding=self.dilation, + dilation=self.dilation, + groups=groups, + radix=radix, + reduction_factor=reduction_factor, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + dcn=self.dcn) + delattr(self, self.norm2_name) + + if self.avg_down_stride: + self.avd_layer = nn.AvgPool2d(3, self.conv2_stride, padding=1) + + self.conv3 = build_conv_layer( + self.conv_cfg, + width, + self.planes * self.expansion, + kernel_size=1, + bias=False) + self.add_module(self.norm3_name, norm3) + + def forward(self, x): + + def _inner_forward(x): + identity = x + + out = self.conv1(x) + out = self.norm1(out) + out = self.relu(out) + + if self.with_plugins: + out = self.forward_plugin(out, self.after_conv1_plugin_names) + + out = self.conv2(out) + + if self.avg_down_stride: + out = self.avd_layer(out) + + if self.with_plugins: + out = self.forward_plugin(out, self.after_conv2_plugin_names) + + out = self.conv3(out) + out = self.norm3(out) + + if self.with_plugins: + out = self.forward_plugin(out, self.after_conv3_plugin_names) + + if self.downsample is not None: + identity = self.downsample(x) + + out += identity + + return out + + if self.with_cp and x.requires_grad: + out = cp.checkpoint(_inner_forward, x) + else: + out = _inner_forward(x) + + out = self.relu(out) + + return out + + +@BACKBONES.register_module() +class ResNeSt(ResNetV1d): + """ResNeSt backbone. + + Args: + groups (int): Number of groups of Bottleneck. Default: 1 + base_width (int): Base width of Bottleneck. Default: 4 + radix (int): Radix of SpltAtConv2d. Default: 2 + reduction_factor (int): Reduction factor of inter_channels in + SplitAttentionConv2d. Default: 4. + avg_down_stride (bool): Whether to use average pool for stride in + Bottleneck. Default: True. + kwargs (dict): Keyword arguments for ResNet. + """ + + arch_settings = { + 50: (Bottleneck, (3, 4, 6, 3)), + 101: (Bottleneck, (3, 4, 23, 3)), + 152: (Bottleneck, (3, 8, 36, 3)), + 200: (Bottleneck, (3, 24, 36, 3)) + } + + def __init__(self, + groups=1, + base_width=4, + radix=2, + reduction_factor=4, + avg_down_stride=True, + **kwargs): + self.groups = groups + self.base_width = base_width + self.radix = radix + self.reduction_factor = reduction_factor + self.avg_down_stride = avg_down_stride + super(ResNeSt, self).__init__(**kwargs) + + def make_res_layer(self, **kwargs): + """Pack all blocks in a stage into a ``ResLayer``.""" + return ResLayer( + groups=self.groups, + base_width=self.base_width, + base_channels=self.base_channels, + radix=self.radix, + reduction_factor=self.reduction_factor, + avg_down_stride=self.avg_down_stride, + **kwargs) diff --git a/mmseg/models/utils/res_layer.py b/mmseg/models/utils/res_layer.py index 9ef51b95b0..2585ab551a 100644 --- a/mmseg/models/utils/res_layer.py +++ b/mmseg/models/utils/res_layer.py @@ -42,8 +42,7 @@ def __init__(self, if stride != 1 or inplanes != planes * block.expansion: downsample = [] conv_stride = stride - # check dilation for dilated ResNet - if avg_down and (stride != 1 or dilation != 1): + if avg_down: conv_stride = 1 downsample.append( nn.AvgPool2d( diff --git a/tests/test_models/test_backbone.py b/tests/test_models/test_backbone.py index 00ae43d009..ba6cdaa19b 100644 --- a/tests/test_models/test_backbone.py +++ b/tests/test_models/test_backbone.py @@ -4,7 +4,8 @@ from mmcv.utils.parrots_wrapper import _BatchNorm from torch.nn.modules import AvgPool2d, GroupNorm -from mmseg.models.backbones import ResNet, ResNetV1d, ResNeXt +from mmseg.models.backbones import ResNeSt, ResNet, ResNetV1d, ResNeXt +from mmseg.models.backbones.resnest import Bottleneck as BottleneckS from mmseg.models.backbones.resnet import BasicBlock, Bottleneck from mmseg.models.backbones.resnext import Bottleneck as BottleneckX from mmseg.models.utils import ResLayer @@ -664,3 +665,41 @@ def test_resnext_backbone(): assert feat[1].shape == torch.Size([1, 512, 28, 28]) assert feat[2].shape == torch.Size([1, 1024, 14, 14]) assert feat[3].shape == torch.Size([1, 2048, 7, 7]) + + +def test_resnest_bottleneck(): + with pytest.raises(AssertionError): + # Style must be in ['pytorch', 'caffe'] + BottleneckS(64, 64, radix=2, reduction_factor=4, style='tensorflow') + + # Test ResNeSt Bottleneck structure + block = BottleneckS( + 64, 256, radix=2, reduction_factor=4, stride=2, style='pytorch') + assert block.avd_layer.stride == 2 + assert block.conv2.channels == 256 + + # Test ResNeSt Bottleneck forward + block = BottleneckS(64, 16, radix=2, reduction_factor=4) + x = torch.randn(2, 64, 56, 56) + x_out = block(x) + assert x_out.shape == torch.Size([2, 64, 56, 56]) + + +def test_resnest_backbone(): + with pytest.raises(KeyError): + # ResNeSt depth should be in [50, 101, 152, 200] + ResNeSt(depth=18) + + # Test ResNeSt with radix 2, reduction_factor 4 + model = ResNeSt( + depth=50, radix=2, reduction_factor=4, out_indices=(0, 1, 2, 3)) + model.init_weights() + model.train() + + imgs = torch.randn(2, 3, 224, 224) + feat = model(imgs) + assert len(feat) == 4 + assert feat[0].shape == torch.Size([2, 256, 56, 56]) + assert feat[1].shape == torch.Size([2, 512, 28, 28]) + assert feat[2].shape == torch.Size([2, 1024, 14, 14]) + assert feat[3].shape == torch.Size([2, 2048, 7, 7]) From f6b9da55f37cf5b2f9dd96fba3fe716141fadb22 Mon Sep 17 00:00:00 2001 From: John Zhu <31381602+johnzja@users.noreply.github.com> Date: Tue, 18 Aug 2020 23:33:05 +0800 Subject: [PATCH 019/706] Fast-SCNN implemented (#58) * init commit: fast_scnn * 247917iters * 4x8_80k * configs placed in configs_unify. 4x8_80k exp.running. * mmseg/utils/collect_env.py modified to support Windows * study on lr * bug in configs_unify/***/cityscapes.py fixed. * lr0.08_100k * lr_power changed to 1.2 * log_config by_epoch set to False. * lr1.2 * doc strings added * add fast_scnn backbone test * 80k 0.08,0.12 * add 450k * fast_scnn test: fix BN bug. * Add different config files into configs/ * .gitignore recovered. * configs_unify del * .gitignore recovered. * delete sub-optimal config files of fast-scnn * Code style improved. * add docstrings to component modules of fast-scnn * relevant files modified according to Jerry's instructions * relevant files modified according to Jerry's instructions * lint problems fixed. * fast_scnn config extremely simplified. * InvertedResidual * fixed padding problems * add unit test for inverted_residual * add unit test for inverted_residual: debug 0 * add unit test for inverted_residual: debug 1 * add unit test for inverted_residual: debug 2 * add unit test for inverted_residual: debug 3 * add unit test for sep_fcn_head: debug 0 * add unit test for sep_fcn_head: debug 1 * add unit test for sep_fcn_head: debug 2 * add unit test for sep_fcn_head: debug 3 * add unit test for sep_fcn_head: debug 4 * add unit test for sep_fcn_head: debug 5 * FastSCNN type(dwchannels) changed to tuple. * t changed to expand_ratio. * Spaces fixed. * Update mmseg/models/backbones/fast_scnn.py Co-authored-by: Jerry Jiarui XU * Update mmseg/models/decode_heads/sep_fcn_head.py Co-authored-by: Jerry Jiarui XU * Update mmseg/models/decode_heads/sep_fcn_head.py Co-authored-by: Jerry Jiarui XU * Docstrings fixed. * Docstrings fixed. * Inverted Residual kept coherent with mmcl. * Inverted Residual kept coherent with mmcl. Debug 0 * _make_layer parameters renamed. * final commit * Arg scale_factor deleted. * Expand_ratio docstrings updated. * final commit * Readme for Fast-SCNN added. * model-zoo.md modified. * fast_scnn README updated. * Move InvertedResidual module into mmseg/utils. * test_inverted_residual module corrected. * test_inverted_residual.py moved. * encoder_decoder modified to avoid bugs when running PSPNet. getting_started.md bug fixed. * Revert "encoder_decoder modified to avoid bugs when running PSPNet. " This reverts commit dd0aadfb Co-authored-by: Jerry Jiarui XU --- configs/_base_/models/fast_scnn.py | 58 +++ configs/fastscnn/README.md | 18 + .../fast_scnn_4x8_80k_lr0.12_cityscapes.py | 10 + docs/getting_started.md | 2 +- docs/model_zoo.md | 5 +- mmseg/models/backbones/__init__.py | 6 +- mmseg/models/backbones/fast_scnn.py | 385 ++++++++++++++++++ mmseg/models/decode_heads/__init__.py | 3 +- mmseg/models/decode_heads/fcn_head.py | 1 + mmseg/models/decode_heads/sep_fcn_head.py | 50 +++ mmseg/utils/__init__.py | 6 +- mmseg/utils/inverted_residual_module.py | 73 ++++ tests/test_models/test_backbone.py | 32 +- tests/test_models/test_heads.py | 37 +- .../test_inverted_residual_module.py | 40 ++ 15 files changed, 714 insertions(+), 12 deletions(-) create mode 100644 configs/_base_/models/fast_scnn.py create mode 100644 configs/fastscnn/README.md create mode 100644 configs/fastscnn/fast_scnn_4x8_80k_lr0.12_cityscapes.py create mode 100644 mmseg/models/backbones/fast_scnn.py create mode 100644 mmseg/models/decode_heads/sep_fcn_head.py create mode 100644 mmseg/utils/inverted_residual_module.py create mode 100644 tests/test_utils/test_inverted_residual_module.py diff --git a/configs/_base_/models/fast_scnn.py b/configs/_base_/models/fast_scnn.py new file mode 100644 index 0000000000..67ee0d39a6 --- /dev/null +++ b/configs/_base_/models/fast_scnn.py @@ -0,0 +1,58 @@ +# model settings +norm_cfg = dict(type='SyncBN', requires_grad=True, momentum=0.01) +model = dict( + type='EncoderDecoder', + backbone=dict( + type='FastSCNN', + downsample_dw_channels=(32, 48), + global_in_channels=64, + global_block_channels=(64, 96, 128), + global_block_strides=(2, 2, 1), + global_out_channels=128, + higher_in_channels=64, + lower_in_channels=128, + fusion_out_channels=128, + out_indices=(0, 1, 2), + norm_cfg=norm_cfg, + align_corners=False), + decode_head=dict( + type='DepthwiseSeparableFCNHead', + in_channels=128, + channels=128, + concat_input=False, + num_classes=19, + in_index=-1, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.)), + auxiliary_head=[ + dict( + type='FCNHead', + in_channels=128, + channels=32, + num_convs=1, + num_classes=19, + in_index=-2, + norm_cfg=norm_cfg, + concat_input=False, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + dict( + type='FCNHead', + in_channels=64, + channels=32, + num_convs=1, + num_classes=19, + in_index=-3, + norm_cfg=norm_cfg, + concat_input=False, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + ]) + +# model training and testing settings +train_cfg = dict() +test_cfg = dict(mode='whole') diff --git a/configs/fastscnn/README.md b/configs/fastscnn/README.md new file mode 100644 index 0000000000..dbfc0e4275 --- /dev/null +++ b/configs/fastscnn/README.md @@ -0,0 +1,18 @@ +# Fast-SCNN for Semantic Segmentation + +## Introduction +``` +@article{poudel2019fast, + title={Fast-scnn: Fast semantic segmentation network}, + author={Poudel, Rudra PK and Liwicki, Stephan and Cipolla, Roberto}, + journal={arXiv preprint arXiv:1902.04502}, + year={2019} +} +``` + +## Results and models + +### Cityscapes +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | +|------------|-----------|-----------|--------:|----------|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Fast-SCNN | Fast-SCNN | 512x1024 | 80000 | 8.4 | 63.61 | 69.06 | - | [model](https://openmmlab.oss-cn-hangzhou.aliyuncs.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_4x8_80k_lr0.12_cityscapes-cae6c46a.pth) | [log](https://openmmlab.oss-cn-hangzhou.aliyuncs.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_4x8_80k_lr0.12_cityscapes-20200807_165744.log.json) | diff --git a/configs/fastscnn/fast_scnn_4x8_80k_lr0.12_cityscapes.py b/configs/fastscnn/fast_scnn_4x8_80k_lr0.12_cityscapes.py new file mode 100644 index 0000000000..53fcfc4203 --- /dev/null +++ b/configs/fastscnn/fast_scnn_4x8_80k_lr0.12_cityscapes.py @@ -0,0 +1,10 @@ +_base_ = [ + '../_base_/models/fast_scnn.py', '../_base_/datasets/cityscapes.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' +] + +# Re-config the data sampler. +data = dict(samples_per_gpu=8, workers_per_gpu=4) + +# Re-config the optimizer. +optimizer = dict(type='SGD', lr=0.12, momentum=0.9, weight_decay=4e-5) diff --git a/docs/getting_started.md b/docs/getting_started.md index bf4980218e..a4ab035245 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -338,7 +338,7 @@ The final output filename will be `psp_r50_512x1024_40ki_cityscapes-{hash id}.pt We provide a script to convert model to [ONNX](https://github.com/onnx/onnx) format. The converted model could be visualized by tools like [Netron](https://github.com/lutzroeder/netron). Besides, we also support comparing the output results between Pytorch and ONNX model. ```shell -python tools/pytorch2onnx.py ${CONFIG_FILE} --checkpoint ${CHECKPOINT_FILE} --output_file ${ONNX_FILE} [--shape ${INPUT_SHAPE} --verify] +python tools/pytorch2onnx.py ${CONFIG_FILE} --checkpoint ${CHECKPOINT_FILE} --output-file ${ONNX_FILE} [--shape ${INPUT_SHAPE} --verify] ``` **Note**: This tool is still experimental. Some customized operators are not supported for now. diff --git a/docs/model_zoo.md b/docs/model_zoo.md index aa5c4eb62f..3919a49180 100644 --- a/docs/model_zoo.md +++ b/docs/model_zoo.md @@ -81,11 +81,14 @@ Please refer to [ANN](https://github.com/open-mmlab/mmsegmentation/blob/master/c Please refer to [OCRNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet) for details. +### Fast-SCNN + +Please refer to [Fast-SCNN](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fastscnn) for details. + ### ResNeSt Please refer to [ResNeSt](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/resnest) for details. - ### Mixed Precision (FP16) Training Please refer [Mixed Precision (FP16) Training](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/README.md) for details. diff --git a/mmseg/models/backbones/__init__.py b/mmseg/models/backbones/__init__.py index 35924248d1..0cb2ec17b4 100644 --- a/mmseg/models/backbones/__init__.py +++ b/mmseg/models/backbones/__init__.py @@ -1,6 +1,10 @@ +from .fast_scnn import FastSCNN from .hrnet import HRNet from .resnest import ResNeSt from .resnet import ResNet, ResNetV1c, ResNetV1d from .resnext import ResNeXt -__all__ = ['ResNet', 'ResNetV1c', 'ResNetV1d', 'ResNeXt', 'HRNet', 'ResNeSt'] +__all__ = [ + 'ResNet', 'ResNetV1c', 'ResNetV1d', 'ResNeXt', 'HRNet', 'FastSCNN', + 'ResNeSt' +] diff --git a/mmseg/models/backbones/fast_scnn.py b/mmseg/models/backbones/fast_scnn.py new file mode 100644 index 0000000000..d94f52cb7f --- /dev/null +++ b/mmseg/models/backbones/fast_scnn.py @@ -0,0 +1,385 @@ +import torch +import torch.nn as nn +from mmcv.cnn import ConvModule, constant_init, kaiming_init +from torch.nn.modules.batchnorm import _BatchNorm + +from mmseg.models.decode_heads.psp_head import PPM +from mmseg.ops import DepthwiseSeparableConvModule, resize +from mmseg.utils import InvertedResidual +from ..builder import BACKBONES + + +class LearningToDownsample(nn.Module): + """Learning to downsample module. + + Args: + in_channels (int): Number of input channels. + dw_channels (tuple[int]): Number of output channels of the first and + the second depthwise conv (dwconv) layers. + out_channels (int): Number of output channels of the whole + 'learning to downsample' module. + conv_cfg (dict | None): Config of conv layers. Default: None + norm_cfg (dict | None): Config of norm layers. Default: + dict(type='BN') + act_cfg (dict): Config of activation layers. Default: + dict(type='ReLU') + """ + + def __init__(self, + in_channels, + dw_channels, + out_channels, + conv_cfg=None, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU')): + super(LearningToDownsample, self).__init__() + self.conv_cfg = conv_cfg + self.norm_cfg = norm_cfg + self.act_cfg = act_cfg + dw_channels1 = dw_channels[0] + dw_channels2 = dw_channels[1] + + self.conv = ConvModule( + in_channels, + dw_channels1, + 3, + stride=2, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + self.dsconv1 = DepthwiseSeparableConvModule( + dw_channels1, + dw_channels2, + kernel_size=3, + stride=2, + padding=1, + norm_cfg=self.norm_cfg) + self.dsconv2 = DepthwiseSeparableConvModule( + dw_channels2, + out_channels, + kernel_size=3, + stride=2, + padding=1, + norm_cfg=self.norm_cfg) + + def forward(self, x): + x = self.conv(x) + x = self.dsconv1(x) + x = self.dsconv2(x) + return x + + +class GlobalFeatureExtractor(nn.Module): + """Global feature extractor module. + + Args: + in_channels (int): Number of input channels of the GFE module. + Default: 64 + block_channels (tuple[int]): Tuple of ints. Each int specifies the + number of output channels of each Inverted Residual module. + Default: (64, 96, 128) + out_channels(int): Number of output channels of the GFE module. + Default: 128 + expand_ratio (int): Adjusts number of channels of the hidden layer + in InvertedResidual by this amount. + Default: 6 + num_blocks (tuple[int]): Tuple of ints. Each int specifies the + number of times each Inverted Residual module is repeated. + The repeated Inverted Residual modules are called a 'group'. + Default: (3, 3, 3) + strides (tuple[int]): Tuple of ints. Each int specifies + the downsampling factor of each 'group'. + Default: (2, 2, 1) + pool_scales (tuple[int]): Tuple of ints. Each int specifies + the parameter required in 'global average pooling' within PPM. + Default: (1, 2, 3, 6) + conv_cfg (dict | None): Config of conv layers. Default: None + norm_cfg (dict | None): Config of norm layers. Default: + dict(type='BN') + act_cfg (dict): Config of activation layers. Default: + dict(type='ReLU') + align_corners (bool): align_corners argument of F.interpolate. + Default: False + """ + + def __init__(self, + in_channels=64, + block_channels=(64, 96, 128), + out_channels=128, + expand_ratio=6, + num_blocks=(3, 3, 3), + strides=(2, 2, 1), + pool_scales=(1, 2, 3, 6), + conv_cfg=None, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + align_corners=False): + super(GlobalFeatureExtractor, self).__init__() + self.conv_cfg = conv_cfg + self.norm_cfg = norm_cfg + self.act_cfg = act_cfg + assert len(block_channels) == len(num_blocks) == 3 + self.bottleneck1 = self._make_layer(in_channels, block_channels[0], + num_blocks[0], strides[0], + expand_ratio) + self.bottleneck2 = self._make_layer(block_channels[0], + block_channels[1], num_blocks[1], + strides[1], expand_ratio) + self.bottleneck3 = self._make_layer(block_channels[1], + block_channels[2], num_blocks[2], + strides[2], expand_ratio) + self.ppm = PPM( + pool_scales, + block_channels[2], + block_channels[2] // 4, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg, + align_corners=align_corners) + self.out = ConvModule( + block_channels[2] * 2, + out_channels, + 1, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + + def _make_layer(self, + in_channels, + out_channels, + blocks, + stride=1, + expand_ratio=6): + layers = [ + InvertedResidual( + in_channels, + out_channels, + stride, + expand_ratio, + norm_cfg=self.norm_cfg) + ] + for i in range(1, blocks): + layers.append( + InvertedResidual( + out_channels, + out_channels, + 1, + expand_ratio, + norm_cfg=self.norm_cfg)) + return nn.Sequential(*layers) + + def forward(self, x): + x = self.bottleneck1(x) + x = self.bottleneck2(x) + x = self.bottleneck3(x) + x = torch.cat([x, *self.ppm(x)], dim=1) + x = self.out(x) + return x + + +class FeatureFusionModule(nn.Module): + """Feature fusion module. + + Args: + higher_in_channels (int): Number of input channels of the + higher-resolution branch. + lower_in_channels (int): Number of input channels of the + lower-resolution branch. + out_channels (int): Number of output channels. + scale_factor (int): Scale factor applied to the lower-res input. + Should be coherent with the downsampling factor determined + by the GFE module. + conv_cfg (dict | None): Config of conv layers. Default: None + norm_cfg (dict | None): Config of norm layers. Default: + dict(type='BN') + act_cfg (dict): Config of activation layers. Default: + dict(type='ReLU') + align_corners (bool): align_corners argument of F.interpolate. + Default: False + """ + + def __init__(self, + higher_in_channels, + lower_in_channels, + out_channels, + scale_factor, + conv_cfg=None, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + align_corners=False): + super(FeatureFusionModule, self).__init__() + self.scale_factor = scale_factor + self.conv_cfg = conv_cfg + self.norm_cfg = norm_cfg + self.act_cfg = act_cfg + self.align_corners = align_corners + self.dwconv = ConvModule( + lower_in_channels, + out_channels, + 1, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + self.conv_lower_res = ConvModule( + out_channels, + out_channels, + 1, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=None) + self.conv_higher_res = ConvModule( + higher_in_channels, + out_channels, + 1, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=None) + self.relu = nn.ReLU(True) + + def forward(self, higher_res_feature, lower_res_feature): + lower_res_feature = resize( + lower_res_feature, + scale_factor=self.scale_factor, + mode='bilinear', + align_corners=self.align_corners) + lower_res_feature = self.dwconv(lower_res_feature) + lower_res_feature = self.conv_lower_res(lower_res_feature) + + higher_res_feature = self.conv_higher_res(higher_res_feature) + out = higher_res_feature + lower_res_feature + return self.relu(out) + + +@BACKBONES.register_module() +class FastSCNN(nn.Module): + """Fast-SCNN Backbone. + + Args: + in_channels (int): Number of input image channels. Default: 3. + downsample_dw_channels (tuple[int]): Number of output channels after + the first conv layer & the second conv layer in + Learning-To-Downsample (LTD) module. + Default: (32, 48). + global_in_channels (int): Number of input channels of + Global Feature Extractor(GFE). + Equal to number of output channels of LTD. + Default: 64. + global_block_channels (tuple[int]): Tuple of integers that describe + the output channels for each of the MobileNet-v2 bottleneck + residual blocks in GFE. + Default: (64, 96, 128). + global_block_strides (tuple[int]): Tuple of integers + that describe the strides (downsampling factors) for each of the + MobileNet-v2 bottleneck residual blocks in GFE. + Default: (2, 2, 1). + global_out_channels (int): Number of output channels of GFE. + Default: 128. + higher_in_channels (int): Number of input channels of the higher + resolution branch in FFM. + Equal to global_in_channels. + Default: 64. + lower_in_channels (int): Number of input channels of the lower + resolution branch in FFM. + Equal to global_out_channels. + Default: 128. + fusion_out_channels (int): Number of output channels of FFM. + Default: 128. + out_indices (tuple): Tuple of indices of list + [higher_res_features, lower_res_features, fusion_output]. + Often set to (0,1,2) to enable aux. heads. + Default: (0, 1, 2). + conv_cfg (dict | None): Config of conv layers. Default: None + norm_cfg (dict | None): Config of norm layers. Default: + dict(type='BN') + act_cfg (dict): Config of activation layers. Default: + dict(type='ReLU') + align_corners (bool): align_corners argument of F.interpolate. + Default: False + """ + + def __init__(self, + in_channels=3, + downsample_dw_channels=(32, 48), + global_in_channels=64, + global_block_channels=(64, 96, 128), + global_block_strides=(2, 2, 1), + global_out_channels=128, + higher_in_channels=64, + lower_in_channels=128, + fusion_out_channels=128, + out_indices=(0, 1, 2), + conv_cfg=None, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + align_corners=False): + + super(FastSCNN, self).__init__() + if global_in_channels != higher_in_channels: + raise AssertionError('Global Input Channels must be the same \ + with Higher Input Channels!') + elif global_out_channels != lower_in_channels: + raise AssertionError('Global Output Channels must be the same \ + with Lower Input Channels!') + + # Calculate scale factor used in FFM. + self.scale_factor = 1 + for factor in global_block_strides: + self.scale_factor *= factor + + self.in_channels = in_channels + self.downsample_dw_channels1 = downsample_dw_channels[0] + self.downsample_dw_channels2 = downsample_dw_channels[1] + self.global_in_channels = global_in_channels + self.global_block_channels = global_block_channels + self.global_block_strides = global_block_strides + self.global_out_channels = global_out_channels + self.higher_in_channels = higher_in_channels + self.lower_in_channels = lower_in_channels + self.fusion_out_channels = fusion_out_channels + self.out_indices = out_indices + self.conv_cfg = conv_cfg + self.norm_cfg = norm_cfg + self.act_cfg = act_cfg + self.align_corners = align_corners + self.learning_to_downsample = LearningToDownsample( + in_channels, + downsample_dw_channels, + global_in_channels, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + self.global_feature_extractor = GlobalFeatureExtractor( + global_in_channels, + global_block_channels, + global_out_channels, + strides=self.global_block_strides, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg, + align_corners=self.align_corners) + self.feature_fusion = FeatureFusionModule( + higher_in_channels, + lower_in_channels, + fusion_out_channels, + scale_factor=self.scale_factor, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg, + align_corners=self.align_corners) + + def init_weights(self, pretrained=None): + for m in self.modules(): + if isinstance(m, nn.Conv2d): + kaiming_init(m) + elif isinstance(m, (_BatchNorm, nn.GroupNorm)): + constant_init(m, 1) + + def forward(self, x): + higher_res_features = self.learning_to_downsample(x) + lower_res_features = self.global_feature_extractor(higher_res_features) + fusion_output = self.feature_fusion(higher_res_features, + lower_res_features) + + outs = [higher_res_features, lower_res_features, fusion_output] + outs = [outs[i] for i in self.out_indices] + return tuple(outs) diff --git a/mmseg/models/decode_heads/__init__.py b/mmseg/models/decode_heads/__init__.py index fda4309436..a6ead50357 100644 --- a/mmseg/models/decode_heads/__init__.py +++ b/mmseg/models/decode_heads/__init__.py @@ -10,10 +10,11 @@ from .psa_head import PSAHead from .psp_head import PSPHead from .sep_aspp_head import DepthwiseSeparableASPPHead +from .sep_fcn_head import DepthwiseSeparableFCNHead from .uper_head import UPerHead __all__ = [ 'FCNHead', 'PSPHead', 'ASPPHead', 'PSAHead', 'NLHead', 'GCHead', 'CCHead', 'UPerHead', 'DepthwiseSeparableASPPHead', 'ANNHead', 'DAHead', 'OCRHead', - 'EncHead' + 'EncHead', 'DepthwiseSeparableFCNHead' ] diff --git a/mmseg/models/decode_heads/fcn_head.py b/mmseg/models/decode_heads/fcn_head.py index e586a2e0d4..ff48b51975 100644 --- a/mmseg/models/decode_heads/fcn_head.py +++ b/mmseg/models/decode_heads/fcn_head.py @@ -27,6 +27,7 @@ def __init__(self, assert num_convs > 0 self.num_convs = num_convs self.concat_input = concat_input + self.kernel_size = kernel_size super(FCNHead, self).__init__(**kwargs) convs = [] convs.append( diff --git a/mmseg/models/decode_heads/sep_fcn_head.py b/mmseg/models/decode_heads/sep_fcn_head.py new file mode 100644 index 0000000000..187795128b --- /dev/null +++ b/mmseg/models/decode_heads/sep_fcn_head.py @@ -0,0 +1,50 @@ +from mmseg.ops import DepthwiseSeparableConvModule +from ..builder import HEADS +from .fcn_head import FCNHead + + +@HEADS.register_module() +class DepthwiseSeparableFCNHead(FCNHead): + """Depthwise-Separable Fully Convolutional Network for Semantic + Segmentation. + + This head is implemented according to Fast-SCNN paper. + Args: + in_channels(int): Number of output channels of FFM. + channels(int): Number of middle-stage channels in the decode head. + concat_input(bool): Whether to concatenate original decode input into + the result of several consecutive convolution layers. + Default: True. + num_classes(int): Used to determine the dimension of + final prediction tensor. + in_index(int): Correspond with 'out_indices' in FastSCNN backbone. + norm_cfg (dict | None): Config of norm layers. + align_corners (bool): align_corners argument of F.interpolate. + Default: False. + loss_decode(dict): Config of loss type and some + relevant additional options. + """ + + def __init__(self, **kwargs): + super(DepthwiseSeparableFCNHead, self).__init__(**kwargs) + self.convs[0] = DepthwiseSeparableConvModule( + self.in_channels, + self.channels, + kernel_size=self.kernel_size, + padding=self.kernel_size // 2, + norm_cfg=self.norm_cfg) + for i in range(1, self.num_convs): + self.convs[i] = DepthwiseSeparableConvModule( + self.channels, + self.channels, + kernel_size=self.kernel_size, + padding=self.kernel_size // 2, + norm_cfg=self.norm_cfg) + + if self.concat_input: + self.conv_cat = DepthwiseSeparableConvModule( + self.in_channels + self.channels, + self.channels, + kernel_size=self.kernel_size, + padding=self.kernel_size // 2, + norm_cfg=self.norm_cfg) diff --git a/mmseg/utils/__init__.py b/mmseg/utils/__init__.py index e7d28670e0..5b54059565 100644 --- a/mmseg/utils/__init__.py +++ b/mmseg/utils/__init__.py @@ -1,7 +1,5 @@ from .collect_env import collect_env +from .inverted_residual_module import InvertedResidual from .logger import get_root_logger -__all__ = [ - 'get_root_logger', - 'collect_env', -] +__all__ = ['get_root_logger', 'collect_env', 'InvertedResidual'] diff --git a/mmseg/utils/inverted_residual_module.py b/mmseg/utils/inverted_residual_module.py new file mode 100644 index 0000000000..ff33a3604c --- /dev/null +++ b/mmseg/utils/inverted_residual_module.py @@ -0,0 +1,73 @@ +from mmcv.cnn import ConvModule, build_norm_layer +from torch import nn + + +class InvertedResidual(nn.Module): + """Inverted residual module. + + Args: + in_channels (int): The input channels of the InvertedResidual block. + out_channels (int): The output channels of the InvertedResidual block. + stride (int): Stride of the middle (first) 3x3 convolution. + expand_ratio (int): adjusts number of channels of the hidden layer + in InvertedResidual by this amount. + conv_cfg (dict): Config dict for convolution layer. + Default: None, which means using conv2d. + norm_cfg (dict): Config dict for normalization layer. + Default: dict(type='BN'). + act_cfg (dict): Config dict for activation layer. + Default: dict(type='ReLU6'). + """ + + def __init__(self, + in_channels, + out_channels, + stride, + expand_ratio, + dilation=1, + conv_cfg=None, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU6')): + super(InvertedResidual, self).__init__() + self.stride = stride + assert stride in [1, 2] + + hidden_dim = int(round(in_channels * expand_ratio)) + self.use_res_connect = self.stride == 1 \ + and in_channels == out_channels + + layers = [] + if expand_ratio != 1: + # pw + layers.append( + ConvModule( + in_channels, + hidden_dim, + kernel_size=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg)) + layers.extend([ + # dw + ConvModule( + hidden_dim, + hidden_dim, + kernel_size=3, + padding=dilation, + stride=stride, + dilation=dilation, + groups=hidden_dim, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg), + # pw-linear + nn.Conv2d(hidden_dim, out_channels, 1, 1, 0, bias=False), + build_norm_layer(norm_cfg, out_channels)[1], + ]) + self.conv = nn.Sequential(*layers) + + def forward(self, x): + if self.use_res_connect: + return x + self.conv(x) + else: + return self.conv(x) diff --git a/tests/test_models/test_backbone.py b/tests/test_models/test_backbone.py index ba6cdaa19b..3f654b7d7a 100644 --- a/tests/test_models/test_backbone.py +++ b/tests/test_models/test_backbone.py @@ -4,7 +4,8 @@ from mmcv.utils.parrots_wrapper import _BatchNorm from torch.nn.modules import AvgPool2d, GroupNorm -from mmseg.models.backbones import ResNeSt, ResNet, ResNetV1d, ResNeXt +from mmseg.models.backbones import (FastSCNN, ResNeSt, ResNet, ResNetV1d, + ResNeXt) from mmseg.models.backbones.resnest import Bottleneck as BottleneckS from mmseg.models.backbones.resnet import BasicBlock, Bottleneck from mmseg.models.backbones.resnext import Bottleneck as BottleneckX @@ -48,7 +49,6 @@ def check_norm_state(modules, train_state): def test_resnet_basic_block(): - with pytest.raises(AssertionError): # Not implemented yet. dcn = dict(type='DCN', deform_groups=1, fallback_on_stride=False) @@ -98,7 +98,6 @@ def test_resnet_basic_block(): def test_resnet_bottleneck(): - with pytest.raises(AssertionError): # Style must be in ['pytorch', 'caffe'] Bottleneck(64, 64, style='tensorflow') @@ -667,6 +666,33 @@ def test_resnext_backbone(): assert feat[3].shape == torch.Size([1, 2048, 7, 7]) +def test_fastscnn_backbone(): + with pytest.raises(AssertionError): + # Fast-SCNN channel constraints. + FastSCNN( + 3, (32, 48), + 64, (64, 96, 128), (2, 2, 1), + global_out_channels=127, + higher_in_channels=64, + lower_in_channels=128) + + # Test FastSCNN Standard Forward + model = FastSCNN() + model.init_weights() + model.train() + batch_size = 4 + imgs = torch.randn(batch_size, 3, 512, 1024) + feat = model(imgs) + + assert len(feat) == 3 + # higher-res + assert feat[0].shape == torch.Size([batch_size, 64, 64, 128]) + # lower-res + assert feat[1].shape == torch.Size([batch_size, 128, 16, 32]) + # FFM output + assert feat[2].shape == torch.Size([batch_size, 128, 64, 128]) + + def test_resnest_bottleneck(): with pytest.raises(AssertionError): # Style must be in ['pytorch', 'caffe'] diff --git a/tests/test_models/test_heads.py b/tests/test_models/test_heads.py index 3ac6bb0aa2..8feb0e64b9 100644 --- a/tests/test_models/test_heads.py +++ b/tests/test_models/test_heads.py @@ -6,7 +6,8 @@ from mmcv.utils.parrots_wrapper import SyncBatchNorm from mmseg.models.decode_heads import (ANNHead, ASPPHead, CCHead, DAHead, - DepthwiseSeparableASPPHead, EncHead, + DepthwiseSeparableASPPHead, + DepthwiseSeparableFCNHead, EncHead, FCNHead, GCHead, NLHead, OCRHead, PSAHead, PSPHead, UPerHead) from mmseg.models.decode_heads.decode_head import BaseDecodeHead @@ -539,3 +540,37 @@ def test_dw_aspp_head(): assert head.aspp_modules[2].depthwise_conv.dilation == (24, 24) outputs = head(inputs) assert outputs.shape == (1, head.num_classes, 45, 45) + + +def test_sep_fcn_head(): + # test sep_fcn_head with concat_input=False + head = DepthwiseSeparableFCNHead( + in_channels=128, + channels=128, + concat_input=False, + num_classes=19, + in_index=-1, + norm_cfg=dict(type='BN', requires_grad=True, momentum=0.01)) + x = [torch.rand(2, 128, 32, 32)] + output = head(x) + assert output.shape == (2, head.num_classes, 32, 32) + assert not head.concat_input + from mmseg.ops.separable_conv_module import DepthwiseSeparableConvModule + assert isinstance(head.convs[0], DepthwiseSeparableConvModule) + assert isinstance(head.convs[1], DepthwiseSeparableConvModule) + assert head.conv_seg.kernel_size == (1, 1) + + head = DepthwiseSeparableFCNHead( + in_channels=64, + channels=64, + concat_input=True, + num_classes=19, + in_index=-1, + norm_cfg=dict(type='BN', requires_grad=True, momentum=0.01)) + x = [torch.rand(3, 64, 32, 32)] + output = head(x) + assert output.shape == (3, head.num_classes, 32, 32) + assert head.concat_input + from mmseg.ops.separable_conv_module import DepthwiseSeparableConvModule + assert isinstance(head.convs[0], DepthwiseSeparableConvModule) + assert isinstance(head.convs[1], DepthwiseSeparableConvModule) diff --git a/tests/test_utils/test_inverted_residual_module.py b/tests/test_utils/test_inverted_residual_module.py new file mode 100644 index 0000000000..827c105280 --- /dev/null +++ b/tests/test_utils/test_inverted_residual_module.py @@ -0,0 +1,40 @@ +import pytest +import torch + +from mmseg.utils import InvertedResidual + + +def test_inv_residual(): + with pytest.raises(AssertionError): + # test stride assertion. + InvertedResidual(32, 32, 3, 4) + + # test default config with res connection. + # set expand_ratio = 4, stride = 1 and inp=oup. + inv_module = InvertedResidual(32, 32, 1, 4) + assert inv_module.use_res_connect + assert inv_module.conv[0].kernel_size == (1, 1) + assert inv_module.conv[0].padding == 0 + assert inv_module.conv[1].kernel_size == (3, 3) + assert inv_module.conv[1].padding == 1 + assert inv_module.conv[0].with_norm + assert inv_module.conv[1].with_norm + x = torch.rand(1, 32, 64, 64) + output = inv_module(x) + assert output.shape == (1, 32, 64, 64) + + # test inv_residual module without res connection. + # set expand_ratio = 4, stride = 2. + inv_module = InvertedResidual(32, 32, 2, 4) + assert not inv_module.use_res_connect + assert inv_module.conv[0].kernel_size == (1, 1) + x = torch.rand(1, 32, 64, 64) + output = inv_module(x) + assert output.shape == (1, 32, 32, 32) + + # test expand_ratio == 1 + inv_module = InvertedResidual(32, 32, 1, 1) + assert inv_module.conv[0].kernel_size == (3, 3) + x = torch.rand(1, 32, 64, 64) + output = inv_module(x) + assert output.shape == (1, 32, 64, 64) From 11dd9859c2a03cfd153396a9021464deadc23373 Mon Sep 17 00:00:00 2001 From: John Zhu <31381602+johnzja@users.noreply.github.com> Date: Wed, 19 Aug 2020 15:52:46 +0800 Subject: [PATCH 020/706] Sorry for forgetting to update README.md. (#74) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 157a57b368..c864afbce0 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,7 @@ Supported methods: - [x] [GCNet](configs/gcnet) - [x] [ANN](configs/ann) - [x] [OCRNet](configs/ocrnet) +- [x] [Fast-SCNN](configs/fastscnn) - [x] [Mixed Precision (FP16) Training](configs/fp16/README.md) ## Installation From 65dae41bbfec5bb479c5c17ff5a0d929ba28dc94 Mon Sep 17 00:00:00 2001 From: John Zhu <31381602+johnzja@users.noreply.github.com> Date: Sun, 23 Aug 2020 14:41:30 +0800 Subject: [PATCH 021/706] Fix fastscnn resize problems. (#82) * Fix fast_scnn resize problems * Fix fast_scnn resize problems 1 * Fix fast_scnn resize problems 2 * test for pascal voc --- .../fast_scnn_4x8_80k_lr0.12_pascal.py | 70 +++++++++++++++++++ mmseg/__init__.py | 2 +- mmseg/models/backbones/fast_scnn.py | 13 +--- 3 files changed, 72 insertions(+), 13 deletions(-) create mode 100644 configs/fastscnn/fast_scnn_4x8_80k_lr0.12_pascal.py diff --git a/configs/fastscnn/fast_scnn_4x8_80k_lr0.12_pascal.py b/configs/fastscnn/fast_scnn_4x8_80k_lr0.12_pascal.py new file mode 100644 index 0000000000..23c2ea996d --- /dev/null +++ b/configs/fastscnn/fast_scnn_4x8_80k_lr0.12_pascal.py @@ -0,0 +1,70 @@ +_base_ = [ + '../_base_/models/fast_scnn.py', '../_base_/datasets/pascal_voc12.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' +] + +# Re-config the data sampler. +data = dict(samples_per_gpu=8, workers_per_gpu=4) + +# Re-config the optimizer. +optimizer = dict(type='SGD', lr=0.12, momentum=0.9, weight_decay=4e-5) + +# update num_classes of the segmentor. +# model settings +norm_cfg = dict(type='SyncBN', requires_grad=True, momentum=0.01) +model = dict( + type='EncoderDecoder', + backbone=dict( + type='FastSCNN', + downsample_dw_channels=(32, 48), + global_in_channels=64, + global_block_channels=(64, 96, 128), + global_block_strides=(2, 2, 1), + global_out_channels=128, + higher_in_channels=64, + lower_in_channels=128, + fusion_out_channels=128, + out_indices=(0, 1, 2), + norm_cfg=norm_cfg, + align_corners=False), + decode_head=dict( + type='DepthwiseSeparableFCNHead', + in_channels=128, + channels=128, + concat_input=False, + num_classes=21, + in_index=-1, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.)), + auxiliary_head=[ + dict( + type='FCNHead', + in_channels=128, + channels=32, + num_convs=1, + num_classes=21, + in_index=-2, + norm_cfg=norm_cfg, + concat_input=False, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + dict( + type='FCNHead', + in_channels=64, + channels=32, + num_convs=1, + num_classes=21, + in_index=-3, + norm_cfg=norm_cfg, + concat_input=False, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + ]) + +# model training and testing settings +train_cfg = dict() +test_cfg = dict(mode='whole') diff --git a/mmseg/__init__.py b/mmseg/__init__.py index 11376951e9..abaee58890 100644 --- a/mmseg/__init__.py +++ b/mmseg/__init__.py @@ -3,7 +3,7 @@ from .version import __version__, version_info MMCV_MIN = '1.0.5' -MMCV_MAX = '1.0.5' +MMCV_MAX = '1.1.0' def digit_version(version_str): diff --git a/mmseg/models/backbones/fast_scnn.py b/mmseg/models/backbones/fast_scnn.py index d94f52cb7f..dcb24214dd 100644 --- a/mmseg/models/backbones/fast_scnn.py +++ b/mmseg/models/backbones/fast_scnn.py @@ -186,9 +186,6 @@ class FeatureFusionModule(nn.Module): lower_in_channels (int): Number of input channels of the lower-resolution branch. out_channels (int): Number of output channels. - scale_factor (int): Scale factor applied to the lower-res input. - Should be coherent with the downsampling factor determined - by the GFE module. conv_cfg (dict | None): Config of conv layers. Default: None norm_cfg (dict | None): Config of norm layers. Default: dict(type='BN') @@ -202,13 +199,11 @@ def __init__(self, higher_in_channels, lower_in_channels, out_channels, - scale_factor, conv_cfg=None, norm_cfg=dict(type='BN'), act_cfg=dict(type='ReLU'), align_corners=False): super(FeatureFusionModule, self).__init__() - self.scale_factor = scale_factor self.conv_cfg = conv_cfg self.norm_cfg = norm_cfg self.act_cfg = act_cfg @@ -239,7 +234,7 @@ def __init__(self, def forward(self, higher_res_feature, lower_res_feature): lower_res_feature = resize( lower_res_feature, - scale_factor=self.scale_factor, + size=higher_res_feature.size()[2:], mode='bilinear', align_corners=self.align_corners) lower_res_feature = self.dwconv(lower_res_feature) @@ -321,11 +316,6 @@ def __init__(self, raise AssertionError('Global Output Channels must be the same \ with Lower Input Channels!') - # Calculate scale factor used in FFM. - self.scale_factor = 1 - for factor in global_block_strides: - self.scale_factor *= factor - self.in_channels = in_channels self.downsample_dw_channels1 = downsample_dw_channels[0] self.downsample_dw_channels2 = downsample_dw_channels[1] @@ -361,7 +351,6 @@ def __init__(self, higher_in_channels, lower_in_channels, fusion_out_channels, - scale_factor=self.scale_factor, conv_cfg=self.conv_cfg, norm_cfg=self.norm_cfg, act_cfg=self.act_cfg, From 9e63ddbd19d26f0f165158674b7d50b4d3fd6b60 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Sun, 23 Aug 2020 14:42:07 +0800 Subject: [PATCH 022/706] [Doc] Add annotaion format note (#77) --- docs/tutorials/new_dataset.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/tutorials/new_dataset.md b/docs/tutorials/new_dataset.md index 0ad1019e0e..6118904765 100644 --- a/docs/tutorials/new_dataset.md +++ b/docs/tutorials/new_dataset.md @@ -38,6 +38,9 @@ Only `data/my_dataset/ann_dir/train/xxx{seg_map_suffix}`, `data/my_dataset/ann_dir/train/zzz{seg_map_suffix}` will be loaded. +Note: The annotations are images of shape (H, W), the value pixel should fall in range `[0, num_classes - 1]`. +You may use `'P'` mode of [pillow](https://pillow.readthedocs.io/en/stable/handbook/concepts.html#palette) to create your annotation image with color. + ## Customize datasets by mixing dataset MMSegmentation also supports to mix dataset for training. From 8c0e093b31b35890ebf06e61c54838134869f234 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Tue, 25 Aug 2020 20:01:01 +0800 Subject: [PATCH 023/706] Fixed slide inference (#90) --- docs/getting_started.md | 4 ++-- mmseg/apis/test.py | 2 +- mmseg/datasets/cityscapes.py | 2 +- mmseg/models/segmentors/encoder_decoder.py | 6 ++++-- tools/train.py | 2 +- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/docs/getting_started.md b/docs/getting_started.md index a4ab035245..892060d00b 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -229,7 +229,7 @@ To trade speed with GPU memory, you may pass in `--options model.backbone.with_c python tools/train.py ${CONFIG_FILE} [optional arguments] ``` -If you want to specify the working directory in the command, you can add an argument `--work_dir ${YOUR_WORK_DIR}`. +If you want to specify the working directory in the command, you can add an argument `--work-dir ${YOUR_WORK_DIR}`. ### Train with multiple GPUs @@ -253,7 +253,7 @@ Difference between `resume-from` and `load-from`: If you run MMSegmentation on a cluster managed with [slurm](https://slurm.schedmd.com/), you can use the script `slurm_train.sh`. (This script also supports single machine training.) ```shell -[GPUS=${GPUS}] ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} ${CONFIG_FILE} ${WORK_DIR} +[GPUS=${GPUS}] ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} ${CONFIG_FILE} --work-dir ${WORK_DIR} ``` Here is an example of using 16 GPUs to train PSPNet on the dev partition. diff --git a/mmseg/apis/test.py b/mmseg/apis/test.py index 8cbf236f05..5b4b2da40e 100644 --- a/mmseg/apis/test.py +++ b/mmseg/apis/test.py @@ -30,7 +30,7 @@ def single_gpu_test(model, data_loader, show=False, out_dir=None): prog_bar = mmcv.ProgressBar(len(dataset)) for i, data in enumerate(data_loader): with torch.no_grad(): - result = model(return_loss=False, rescale=not show, **data) + result = model(return_loss=False, **data) if isinstance(results, list): results.extend(result) else: diff --git a/mmseg/datasets/cityscapes.py b/mmseg/datasets/cityscapes.py index 30e3c2b24e..e26cd00b09 100644 --- a/mmseg/datasets/cityscapes.py +++ b/mmseg/datasets/cityscapes.py @@ -173,7 +173,7 @@ def _evaluate_cityscapes(self, results, logger, imgfile_prefix): try: import cityscapesscripts.evaluation.evalPixelLevelSemanticLabeling as CSEval # noqa except ImportError: - raise ImportError('Please run "pip install citscapesscripts" to ' + raise ImportError('Please run "pip install cityscapesscripts" to ' 'install cityscapesscripts first.') msg = 'Evaluating in Cityscapes style' if logger is None: diff --git a/mmseg/models/segmentors/encoder_decoder.py b/mmseg/models/segmentors/encoder_decoder.py index d1709e0ca3..3e11630e25 100644 --- a/mmseg/models/segmentors/encoder_decoder.py +++ b/mmseg/models/segmentors/encoder_decoder.py @@ -195,8 +195,10 @@ def slide_inference(self, img, img_meta, rescale): count_mat[:, :, y1:y2, x1:x2] += 1 assert (count_mat == 0).sum() == 0 - # We want to regard count_mat as a constant while exporting to ONNX - count_mat = torch.from_numpy(count_mat.detach().numpy()) + if torch.onnx.is_in_onnx_export(): + # cast count_mat to constant while exporting to ONNX + count_mat = torch.from_numpy( + count_mat.cpu().detach().numpy()).to(device=img.device) preds = preds / count_mat if rescale: preds = resize( diff --git a/tools/train.py b/tools/train.py index 7f67c72004..8e3835ae00 100644 --- a/tools/train.py +++ b/tools/train.py @@ -19,7 +19,7 @@ def parse_args(): parser = argparse.ArgumentParser(description='Train a segmentor') parser.add_argument('config', help='train config file path') - parser.add_argument('--work_dir', help='the dir to save logs and models') + parser.add_argument('--work-dir', help='the dir to save logs and models') parser.add_argument( '--load-from', help='the checkpoint file to load weights from') parser.add_argument( From 429c8b3fbf5fdd70d4edb31a1461756c88f503da Mon Sep 17 00:00:00 2001 From: MY_ Date: Tue, 25 Aug 2020 21:12:39 +0800 Subject: [PATCH 024/706] Update test.py (#93) --- mmseg/apis/test.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mmseg/apis/test.py b/mmseg/apis/test.py index 5b4b2da40e..7f98abf297 100644 --- a/mmseg/apis/test.py +++ b/mmseg/apis/test.py @@ -31,7 +31,7 @@ def single_gpu_test(model, data_loader, show=False, out_dir=None): for i, data in enumerate(data_loader): with torch.no_grad(): result = model(return_loss=False, **data) - if isinstance(results, list): + if isinstance(result, list): results.extend(result) else: results.append(result) @@ -96,7 +96,7 @@ def multi_gpu_test(model, data_loader, tmpdir=None, gpu_collect=False): for i, data in enumerate(data_loader): with torch.no_grad(): result = model(return_loss=False, rescale=True, **data) - if isinstance(results, list): + if isinstance(result, list): results.extend(result) else: results.append(result) From 683b34d4865e53ba50bf843ce0edf1e8d66a5cdb Mon Sep 17 00:00:00 2001 From: John Zhu <31381602+johnzja@users.noreply.github.com> Date: Fri, 28 Aug 2020 11:34:44 +0800 Subject: [PATCH 025/706] Windows Support (Experimental) (#75) * Windows basic support * getting_started updated for Windows. * add experimental * install.md restructured to seperate Windows & Linux. * fix problems in install.md * fix mmcv version problem. * Fix fastscnn resize problems. (#82) * Fix fast_scnn resize problems * Fix fast_scnn resize problems 1 * Fix fast_scnn resize problems 2 * test for pascal voc * [Doc] Add annotaion format note (#77) * update pytorch version to 1.6.0 in install.md * del fastscnn_pascal config * del create_symlink=True * Merge instructions for Linux & Windows * mmcv version updated * redundant newline deleted * Update docs/install.md Co-authored-by: Jerry Jiarui XU * Update docs/install.md Co-authored-by: Jerry Jiarui XU Co-authored-by: Jerry Jiarui XU --- docs/install.md | 82 ++++++++++++++++++++++++++++++-------- mmseg/__init__.py | 2 +- mmseg/utils/collect_env.py | 10 +++-- 3 files changed, 73 insertions(+), 21 deletions(-) diff --git a/docs/install.md b/docs/install.md index a6def65d6b..a483023659 100644 --- a/docs/install.md +++ b/docs/install.md @@ -1,13 +1,11 @@ -## Installation - -### Requirements +## Requirements -- Linux (Windows is not officially supported) +- Linux or Windows(Experimental) - Python 3.6+ - PyTorch 1.3 or higher - [mmcv](https://github.com/open-mmlab/mmcv) -### Install mmsegmentation +## Installation a. Create a conda virtual environment and activate it. @@ -17,15 +15,17 @@ conda activate open-mmlab ``` b. Install PyTorch and torchvision following the [official instructions](https://pytorch.org/). -Here we use PyTorch 1.5.0 and CUDA 10.1. +Here we use PyTorch 1.6.0 and CUDA 10.1. You may also switch to other version by specifying the version number. ```shell -conda install pytorch=1.5.0 torchvision cudatoolkit=10.1 -c pytorch +conda install pytorch=1.6.0 torchvision cudatoolkit=10.1 -c pytorch ``` c. Install [MMCV](https://mmcv.readthedocs.io/en/latest/) following the [official instructions](https://mmcv.readthedocs.io/en/latest/#installation). -Either `mmcv` or `mmcv-full` is compatible with MMSegmentation, but for methods like CCNet and PSANet, CUDA ops in `mmcv-full` is required +Either `mmcv` or `mmcv-full` is compatible with MMSegmentation, but for methods like CCNet and PSANet, CUDA ops in `mmcv-full` is required. + +**Install mmcv for Linux:** The pre-build mmcv-full (with PyTorch 1.5 and CUDA 10.1) can be installed by running: (other available versions could be found [here](https://mmcv.readthedocs.io/en/latest/#install-with-pip)) @@ -33,6 +33,33 @@ The pre-build mmcv-full (with PyTorch 1.5 and CUDA 10.1) can be installed by run pip install mmcv-full==latest+torch1.5.0+cu101 -f https://openmmlab.oss-accelerate.aliyuncs.com/mmcv/dist/index.html ``` +**Install mmcv for Windows (Experimental):** + +For Windows, the installation of MMCV requires native C++ compilers, such as cl.exe. Please add the compiler to %PATH%. + +A typical path for cl.exe looks like the following if you have Windows SDK and Visual Studio installed on your computer: + +```shell +C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.26.28801\bin\Hostx86\x64 +``` + +Or you should download the cl compiler from web and then set up the path. + +Then, clone mmcv from github and install mmcv via pip: + +```shell +git clone https://github.com/open-mmlab/mmcv.git +cd mmcv +pip install -e . +``` + +Or simply: +```shell +pip install mmcv +``` + +Currently, mmcv-full is not supported on Windows. + d. Install MMSegmentation. ```shell @@ -47,24 +74,28 @@ pip install git+https://github.com/open-mmlab/mmsegmentation.git # install the m Instead, if you would like to install MMSegmentation in `dev` mode, run following ```shell -git clone https://github.com/open-mmlab/mmsegmentation +git clone https://github.com/open-mmlab/mmsegmentation.git cd mmsegmentation pip install -e . # or "python setup.py develop" ``` Note: -1. The `version+git_hash` will also be saved in trained models meta, e.g. 0.5.0+c415a2e. +1. When training or testing models on Windows, please ensure that all the '\\' in paths are replaced with '/'. Add .replace('\\', '/') to your python code wherever path strings occur. + +2. The `version+git_hash` will also be saved in trained models meta, e.g. 0.5.0+c415a2e. -2. When MMsegmentation is installed on `dev` mode, any local modifications made to the code will take effect without the need to reinstall it. +3. When MMsegmentation is installed on `dev` mode, any local modifications made to the code will take effect without the need to reinstall it. -3. If you would like to use `opencv-python-headless` instead of `opencv-python`, +4. If you would like to use `opencv-python-headless` instead of `opencv-python`, you can install it before installing MMCV. -4. Some dependencies are optional. Simply running `pip install -e .` will only install the minimum runtime requirements. +5. Some dependencies are optional. Simply running `pip install -e .` will only install the minimum runtime requirements. To use optional dependencies like `cityscapessripts` either install them manually with `pip install -r requirements/optional.txt` or specify desired extras when calling `pip` (e.g. `pip install -e .[optional]`). Valid keys for the extras field are: `all`, `tests`, `build`, and `optional`. -### A from-scratch setup script + +## A from-scratch setup script +### Linux Here is a full script for setting up mmsegmentation with conda and link the dataset path (supposing that your dataset path is $DATA_ROOT). @@ -72,12 +103,31 @@ Here is a full script for setting up mmsegmentation with conda and link the data conda create -n open-mmlab python=3.7 -y conda activate open-mmlab -conda install pytorch=1.5.0 torchvision cudatoolkit=10.1 -c pytorch +conda install pytorch=1.6.0 torchvision cudatoolkit=10.1 -c pytorch pip install mmcv-full==latest+torch1.5.0+cu101 -f https://openmmlab.oss-accelerate.aliyuncs.com/mmcv/dist/index.html -git clone https://github.com/open-mmlab/mmsegmentation +git clone https://github.com/open-mmlab/mmsegmentation.git cd mmsegmentation pip install -e . # or "python setup.py develop" mkdir data ln -s $DATA_ROOT data ``` + +### Windows(Experimental) +Here is a full script for setting up mmsegmentation with conda and link the dataset path (supposing that your dataset path is +%DATA_ROOT%. Notice: It must be an absolute path). + +```shell +conda create -n open-mmlab python=3.7 -y +conda activate open-mmlab + +conda install pytorch=1.6.0 torchvision cudatoolkit=10.1 -c pytorch +set PATH=full\path\to\your\cpp\compiler;%PATH% +pip install mmcv + +git clone https://github.com/open-mmlab/mmsegmentation.git +cd mmsegmentation +pip install -e . # or "python setup.py develop" + +mklink /D data %DATA_ROOT% +``` diff --git a/mmseg/__init__.py b/mmseg/__init__.py index abaee58890..0ab33a8ed9 100644 --- a/mmseg/__init__.py +++ b/mmseg/__init__.py @@ -3,7 +3,7 @@ from .version import __version__, version_info MMCV_MIN = '1.0.5' -MMCV_MAX = '1.1.0' +MMCV_MAX = '1.1.1' def digit_version(version_str): diff --git a/mmseg/utils/collect_env.py b/mmseg/utils/collect_env.py index c2b1cd4e94..3fcead4596 100644 --- a/mmseg/utils/collect_env.py +++ b/mmseg/utils/collect_env.py @@ -40,10 +40,12 @@ def collect_env(): devices[torch.cuda.get_device_name(k)].append(str(k)) for name, devids in devices.items(): env_info['GPU ' + ','.join(devids)] = name - - gcc = subprocess.check_output('gcc --version | head -n1', shell=True) - gcc = gcc.decode('utf-8').strip() - env_info['GCC'] = gcc + try: + gcc = subprocess.check_output('gcc --version | head -n1', shell=True) + gcc = gcc.decode('utf-8').strip() + env_info['GCC'] = gcc + except subprocess.CalledProcessError: + env_info['GCC'] = 'n/a' env_info['PyTorch'] = torch.__version__ env_info['PyTorch compiling details'] = get_build_config() From 56f6941331dce92ba9ad3d7c7547a492a3073dae Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Thu, 3 Sep 2020 19:56:36 +0800 Subject: [PATCH 026/706] Add Semantic FPN (#94) * Add Semantic FPN * remove HRFPN --- configs/_base_/models/fpn_r50.py | 36 +++ configs/sem_fpn/README.md | 30 +++ .../fpn_r101_512x1024_80k_cityscapes.py | 2 + .../sem_fpn/fpn_r101_512x512_160k_ade20k.py | 2 + .../fpn_r50_512x1024_80k_cityscapes.py | 4 + .../sem_fpn/fpn_r50_512x512_160k_ade20k.py | 5 + mmseg/models/__init__.py | 1 + mmseg/models/decode_heads/__init__.py | 3 +- mmseg/models/decode_heads/fpn_head.py | 68 ++++++ mmseg/models/necks/__init__.py | 3 + mmseg/models/necks/fpn.py | 212 ++++++++++++++++++ tests/test_models/test_forward.py | 4 + tests/test_models/test_heads.py | 37 +-- tests/test_models/test_necks.py | 18 ++ 14 files changed, 388 insertions(+), 37 deletions(-) create mode 100644 configs/_base_/models/fpn_r50.py create mode 100644 configs/sem_fpn/README.md create mode 100644 configs/sem_fpn/fpn_r101_512x1024_80k_cityscapes.py create mode 100644 configs/sem_fpn/fpn_r101_512x512_160k_ade20k.py create mode 100644 configs/sem_fpn/fpn_r50_512x1024_80k_cityscapes.py create mode 100644 configs/sem_fpn/fpn_r50_512x512_160k_ade20k.py create mode 100644 mmseg/models/decode_heads/fpn_head.py create mode 100644 mmseg/models/necks/__init__.py create mode 100644 mmseg/models/necks/fpn.py create mode 100644 tests/test_models/test_necks.py diff --git a/configs/_base_/models/fpn_r50.py b/configs/_base_/models/fpn_r50.py new file mode 100644 index 0000000000..ec11717201 --- /dev/null +++ b/configs/_base_/models/fpn_r50.py @@ -0,0 +1,36 @@ +# model settings +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + type='EncoderDecoder', + pretrained='open-mmlab://resnet50_v1c', + backbone=dict( + type='ResNetV1c', + depth=50, + num_stages=4, + out_indices=(0, 1, 2, 3), + dilations=(1, 1, 1, 1), + strides=(1, 2, 2, 2), + norm_cfg=norm_cfg, + norm_eval=False, + style='pytorch', + contract_dilation=True), + neck=dict( + type='FPN', + in_channels=[256, 512, 1024, 2048], + out_channels=256, + num_outs=4), + decode_head=dict( + type='FPNHead', + in_channels=[256, 256, 256, 256], + in_index=[0, 1, 2, 3], + feature_strides=[4, 8, 16, 32], + channels=128, + dropout_ratio=0.1, + num_classes=19, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))) +# model training and testing settings +train_cfg = dict() +test_cfg = dict(mode='whole') diff --git a/configs/sem_fpn/README.md b/configs/sem_fpn/README.md new file mode 100644 index 0000000000..5315d3622f --- /dev/null +++ b/configs/sem_fpn/README.md @@ -0,0 +1,30 @@ +# Panoptic Feature Pyramid Networks + +## Introduction +``` +@article{Kirillov_2019, + title={Panoptic Feature Pyramid Networks}, + ISBN={9781728132938}, + url={http://dx.doi.org/10.1109/CVPR.2019.00656}, + DOI={10.1109/cvpr.2019.00656}, + journal={2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)}, + publisher={IEEE}, + author={Kirillov, Alexander and Girshick, Ross and He, Kaiming and Dollar, Piotr}, + year={2019}, + month={Jun} +} +``` + +## Results and models + +### Cityscapes +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | +|--------|----------|-----------|--------:|---------:|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| FPN | R-50 | 512x1024 | 80000 | 2.8 | 13.54 | 74.52 | 76.08 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x1024_80k_cityscapes/fpn_r50_512x1024_80k_cityscapes_20200717_021437-94018a0d.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x1024_80k_cityscapes/fpn_r50_512x1024_80k_cityscapes-20200717_021437.log.json) | +| FPN | R-101 | 512x1024 | 80000 | 3.9 | 10.29 | 75.80 | 77.40 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x1024_80k_cityscapes/fpn_r101_512x1024_80k_cityscapes_20200717_012416-c5800d4c.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x1024_80k_cityscapes/fpn_r101_512x1024_80k_cityscapes-20200717_012416.log.json) | + +### ADE20K +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | +|--------|----------|-----------|--------:|---------:|----------------|------:|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| FPN | R-50 | 512x512 | 160000 | 4.9 | 55.77 | 37.49 | 39.09 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x512_160k_ade20k/fpn_r50_512x512_160k_ade20k_20200718_131734-5b5a6ab9.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x512_160k_ade20k/fpn_r50_512x512_160k_ade20k-20200718_131734.log.json) | +| FPN | R-101 | 512x512 | 160000 | 5.9 | 40.58 | 39.35 | 40.72 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x512_160k_ade20k/fpn_r101_512x512_160k_ade20k_20200718_131734-306b5004.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x512_160k_ade20k/fpn_r101_512x512_160k_ade20k-20200718_131734.log.json) | diff --git a/configs/sem_fpn/fpn_r101_512x1024_80k_cityscapes.py b/configs/sem_fpn/fpn_r101_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..7f8710d4be --- /dev/null +++ b/configs/sem_fpn/fpn_r101_512x1024_80k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './fpn_r50_512x1024_80k_cityscapes.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/sem_fpn/fpn_r101_512x512_160k_ade20k.py b/configs/sem_fpn/fpn_r101_512x512_160k_ade20k.py new file mode 100644 index 0000000000..2654096dfd --- /dev/null +++ b/configs/sem_fpn/fpn_r101_512x512_160k_ade20k.py @@ -0,0 +1,2 @@ +_base_ = './fpn_r50_512x512_160k_ade20k.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/sem_fpn/fpn_r50_512x1024_80k_cityscapes.py b/configs/sem_fpn/fpn_r50_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..4bf3edd825 --- /dev/null +++ b/configs/sem_fpn/fpn_r50_512x1024_80k_cityscapes.py @@ -0,0 +1,4 @@ +_base_ = [ + '../_base_/models/fpn_r50.py', '../_base_/datasets/cityscapes.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' +] diff --git a/configs/sem_fpn/fpn_r50_512x512_160k_ade20k.py b/configs/sem_fpn/fpn_r50_512x512_160k_ade20k.py new file mode 100644 index 0000000000..5cdfc8ca26 --- /dev/null +++ b/configs/sem_fpn/fpn_r50_512x512_160k_ade20k.py @@ -0,0 +1,5 @@ +_base_ = [ + '../_base_/models/fpn_r50.py', '../_base_/datasets/ade20k.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' +] +model = dict(decode_head=dict(num_classes=150)) diff --git a/mmseg/models/__init__.py b/mmseg/models/__init__.py index d492a2324f..3cf93f8bec 100644 --- a/mmseg/models/__init__.py +++ b/mmseg/models/__init__.py @@ -3,6 +3,7 @@ build_head, build_loss, build_segmentor) from .decode_heads import * # noqa: F401,F403 from .losses import * # noqa: F401,F403 +from .necks import * # noqa: F401,F403 from .segmentors import * # noqa: F401,F403 __all__ = [ diff --git a/mmseg/models/decode_heads/__init__.py b/mmseg/models/decode_heads/__init__.py index a6ead50357..5828034018 100644 --- a/mmseg/models/decode_heads/__init__.py +++ b/mmseg/models/decode_heads/__init__.py @@ -4,6 +4,7 @@ from .da_head import DAHead from .enc_head import EncHead from .fcn_head import FCNHead +from .fpn_head import FPNHead from .gc_head import GCHead from .nl_head import NLHead from .ocr_head import OCRHead @@ -16,5 +17,5 @@ __all__ = [ 'FCNHead', 'PSPHead', 'ASPPHead', 'PSAHead', 'NLHead', 'GCHead', 'CCHead', 'UPerHead', 'DepthwiseSeparableASPPHead', 'ANNHead', 'DAHead', 'OCRHead', - 'EncHead', 'DepthwiseSeparableFCNHead' + 'EncHead', 'DepthwiseSeparableFCNHead', 'FPNHead' ] diff --git a/mmseg/models/decode_heads/fpn_head.py b/mmseg/models/decode_heads/fpn_head.py new file mode 100644 index 0000000000..9b6ada0059 --- /dev/null +++ b/mmseg/models/decode_heads/fpn_head.py @@ -0,0 +1,68 @@ +import numpy as np +import torch.nn as nn +from mmcv.cnn import ConvModule + +from mmseg.ops import resize +from ..builder import HEADS +from .decode_head import BaseDecodeHead + + +@HEADS.register_module() +class FPNHead(BaseDecodeHead): + """Panoptic Feature Pyramid Networks. + + This head is the implementation of `Semantic FPN + `_. + + Args: + feature_strides (tuple[int]): The strides for input feature maps. + stack_lateral. All strides suppose to be power of 2. The first + one is of largest resolution. + """ + + def __init__(self, feature_strides, **kwargs): + super(FPNHead, self).__init__( + input_transform='multiple_select', **kwargs) + assert len(feature_strides) == len(self.in_channels) + assert min(feature_strides) == feature_strides[0] + self.feature_strides = feature_strides + + self.scale_heads = nn.ModuleList() + for i in range(len(feature_strides)): + head_length = max( + 1, + int(np.log2(feature_strides[i]) - np.log2(feature_strides[0]))) + scale_head = [] + for k in range(head_length): + scale_head.append( + ConvModule( + self.in_channels[i] if k == 0 else self.channels, + self.channels, + 3, + padding=1, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg)) + if feature_strides[i] != feature_strides[0]: + scale_head.append( + nn.Upsample( + scale_factor=2, + mode='bilinear', + align_corners=self.align_corners)) + self.scale_heads.append(nn.Sequential(*scale_head)) + + def forward(self, inputs): + + x = self._transform_inputs(inputs) + + output = self.scale_heads[0](x[0]) + for i in range(1, len(self.feature_strides)): + # non inplace + output = output + resize( + self.scale_heads[i](x[i]), + size=output.shape[2:], + mode='bilinear', + align_corners=self.align_corners) + + output = self.cls_seg(output) + return output diff --git a/mmseg/models/necks/__init__.py b/mmseg/models/necks/__init__.py new file mode 100644 index 0000000000..0093021eba --- /dev/null +++ b/mmseg/models/necks/__init__.py @@ -0,0 +1,3 @@ +from .fpn import FPN + +__all__ = ['FPN'] diff --git a/mmseg/models/necks/fpn.py b/mmseg/models/necks/fpn.py new file mode 100644 index 0000000000..f43d1e62f6 --- /dev/null +++ b/mmseg/models/necks/fpn.py @@ -0,0 +1,212 @@ +import torch.nn as nn +import torch.nn.functional as F +from mmcv.cnn import ConvModule, xavier_init + +from ..builder import NECKS + + +@NECKS.register_module() +class FPN(nn.Module): + """Feature Pyramid Network. + + This is an implementation of - Feature Pyramid Networks for Object + Detection (https://arxiv.org/abs/1612.03144) + + Args: + in_channels (List[int]): Number of input channels per scale. + out_channels (int): Number of output channels (used at each scale) + num_outs (int): Number of output scales. + start_level (int): Index of the start input backbone level used to + build the feature pyramid. Default: 0. + end_level (int): Index of the end input backbone level (exclusive) to + build the feature pyramid. Default: -1, which means the last level. + add_extra_convs (bool | str): If bool, it decides whether to add conv + layers on top of the original feature maps. Default to False. + If True, its actual mode is specified by `extra_convs_on_inputs`. + If str, it specifies the source feature map of the extra convs. + Only the following options are allowed + + - 'on_input': Last feat map of neck inputs (i.e. backbone feature). + - 'on_lateral': Last feature map after lateral convs. + - 'on_output': The last output feature map after fpn convs. + extra_convs_on_inputs (bool, deprecated): Whether to apply extra convs + on the original feature from the backbone. If True, + it is equivalent to `add_extra_convs='on_input'`. If False, it is + equivalent to set `add_extra_convs='on_output'`. Default to True. + relu_before_extra_convs (bool): Whether to apply relu before the extra + conv. Default: False. + no_norm_on_lateral (bool): Whether to apply norm on lateral. + Default: False. + conv_cfg (dict): Config dict for convolution layer. Default: None. + norm_cfg (dict): Config dict for normalization layer. Default: None. + act_cfg (str): Config dict for activation layer in ConvModule. + Default: None. + upsample_cfg (dict): Config dict for interpolate layer. + Default: `dict(mode='nearest')` + + Example: + >>> import torch + >>> in_channels = [2, 3, 5, 7] + >>> scales = [340, 170, 84, 43] + >>> inputs = [torch.rand(1, c, s, s) + ... for c, s in zip(in_channels, scales)] + >>> self = FPN(in_channels, 11, len(in_channels)).eval() + >>> outputs = self.forward(inputs) + >>> for i in range(len(outputs)): + ... print(f'outputs[{i}].shape = {outputs[i].shape}') + outputs[0].shape = torch.Size([1, 11, 340, 340]) + outputs[1].shape = torch.Size([1, 11, 170, 170]) + outputs[2].shape = torch.Size([1, 11, 84, 84]) + outputs[3].shape = torch.Size([1, 11, 43, 43]) + """ + + def __init__(self, + in_channels, + out_channels, + num_outs, + start_level=0, + end_level=-1, + add_extra_convs=False, + extra_convs_on_inputs=False, + relu_before_extra_convs=False, + no_norm_on_lateral=False, + conv_cfg=None, + norm_cfg=None, + act_cfg=None, + upsample_cfg=dict(mode='nearest')): + super(FPN, self).__init__() + assert isinstance(in_channels, list) + self.in_channels = in_channels + self.out_channels = out_channels + self.num_ins = len(in_channels) + self.num_outs = num_outs + self.relu_before_extra_convs = relu_before_extra_convs + self.no_norm_on_lateral = no_norm_on_lateral + self.fp16_enabled = False + self.upsample_cfg = upsample_cfg.copy() + + if end_level == -1: + self.backbone_end_level = self.num_ins + assert num_outs >= self.num_ins - start_level + else: + # if end_level < inputs, no extra level is allowed + self.backbone_end_level = end_level + assert end_level <= len(in_channels) + assert num_outs == end_level - start_level + self.start_level = start_level + self.end_level = end_level + self.add_extra_convs = add_extra_convs + assert isinstance(add_extra_convs, (str, bool)) + if isinstance(add_extra_convs, str): + # Extra_convs_source choices: 'on_input', 'on_lateral', 'on_output' + assert add_extra_convs in ('on_input', 'on_lateral', 'on_output') + elif add_extra_convs: # True + if extra_convs_on_inputs: + # For compatibility with previous release + # TODO: deprecate `extra_convs_on_inputs` + self.add_extra_convs = 'on_input' + else: + self.add_extra_convs = 'on_output' + + self.lateral_convs = nn.ModuleList() + self.fpn_convs = nn.ModuleList() + + for i in range(self.start_level, self.backbone_end_level): + l_conv = ConvModule( + in_channels[i], + out_channels, + 1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg if not self.no_norm_on_lateral else None, + act_cfg=act_cfg, + inplace=False) + fpn_conv = ConvModule( + out_channels, + out_channels, + 3, + padding=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg, + inplace=False) + + self.lateral_convs.append(l_conv) + self.fpn_convs.append(fpn_conv) + + # add extra conv layers (e.g., RetinaNet) + extra_levels = num_outs - self.backbone_end_level + self.start_level + if self.add_extra_convs and extra_levels >= 1: + for i in range(extra_levels): + if i == 0 and self.add_extra_convs == 'on_input': + in_channels = self.in_channels[self.backbone_end_level - 1] + else: + in_channels = out_channels + extra_fpn_conv = ConvModule( + in_channels, + out_channels, + 3, + stride=2, + padding=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg, + inplace=False) + self.fpn_convs.append(extra_fpn_conv) + + # default init_weights for conv(msra) and norm in ConvModule + def init_weights(self): + for m in self.modules(): + if isinstance(m, nn.Conv2d): + xavier_init(m, distribution='uniform') + + def forward(self, inputs): + assert len(inputs) == len(self.in_channels) + + # build laterals + laterals = [ + lateral_conv(inputs[i + self.start_level]) + for i, lateral_conv in enumerate(self.lateral_convs) + ] + + # build top-down path + used_backbone_levels = len(laterals) + for i in range(used_backbone_levels - 1, 0, -1): + # In some cases, fixing `scale factor` (e.g. 2) is preferred, but + # it cannot co-exist with `size` in `F.interpolate`. + if 'scale_factor' in self.upsample_cfg: + laterals[i - 1] += F.interpolate(laterals[i], + **self.upsample_cfg) + else: + prev_shape = laterals[i - 1].shape[2:] + laterals[i - 1] += F.interpolate( + laterals[i], size=prev_shape, **self.upsample_cfg) + + # build outputs + # part 1: from original levels + outs = [ + self.fpn_convs[i](laterals[i]) for i in range(used_backbone_levels) + ] + # part 2: add extra levels + if self.num_outs > len(outs): + # use max pool to get more levels on top of outputs + # (e.g., Faster R-CNN, Mask R-CNN) + if not self.add_extra_convs: + for i in range(self.num_outs - used_backbone_levels): + outs.append(F.max_pool2d(outs[-1], 1, stride=2)) + # add conv layers on top of original feature maps (RetinaNet) + else: + if self.add_extra_convs == 'on_input': + extra_source = inputs[self.backbone_end_level - 1] + elif self.add_extra_convs == 'on_lateral': + extra_source = laterals[-1] + elif self.add_extra_convs == 'on_output': + extra_source = outs[-1] + else: + raise NotImplementedError + outs.append(self.fpn_convs[used_backbone_levels](extra_source)) + for i in range(used_backbone_levels + 1, self.num_outs): + if self.relu_before_extra_convs: + outs.append(self.fpn_convs[i](F.relu(outs[-1]))) + else: + outs.append(self.fpn_convs[i](outs[-1])) + return tuple(outs) diff --git a/tests/test_models/test_forward.py b/tests/test_models/test_forward.py index 620b82e64d..fffe23e746 100644 --- a/tests/test_models/test_forward.py +++ b/tests/test_models/test_forward.py @@ -153,6 +153,10 @@ def test_encnet_forward(): 'encnet/encnet_r50-d8_512x1024_40k_cityscapes.py') +def test_sem_fpn_forward(): + _test_encoder_decoder_forward('sem_fpn/fpn_r50_512x1024_80k_cityscapes.py') + + def get_world_size(process_group): return 1 diff --git a/tests/test_models/test_heads.py b/tests/test_models/test_heads.py index 8feb0e64b9..3ac6bb0aa2 100644 --- a/tests/test_models/test_heads.py +++ b/tests/test_models/test_heads.py @@ -6,8 +6,7 @@ from mmcv.utils.parrots_wrapper import SyncBatchNorm from mmseg.models.decode_heads import (ANNHead, ASPPHead, CCHead, DAHead, - DepthwiseSeparableASPPHead, - DepthwiseSeparableFCNHead, EncHead, + DepthwiseSeparableASPPHead, EncHead, FCNHead, GCHead, NLHead, OCRHead, PSAHead, PSPHead, UPerHead) from mmseg.models.decode_heads.decode_head import BaseDecodeHead @@ -540,37 +539,3 @@ def test_dw_aspp_head(): assert head.aspp_modules[2].depthwise_conv.dilation == (24, 24) outputs = head(inputs) assert outputs.shape == (1, head.num_classes, 45, 45) - - -def test_sep_fcn_head(): - # test sep_fcn_head with concat_input=False - head = DepthwiseSeparableFCNHead( - in_channels=128, - channels=128, - concat_input=False, - num_classes=19, - in_index=-1, - norm_cfg=dict(type='BN', requires_grad=True, momentum=0.01)) - x = [torch.rand(2, 128, 32, 32)] - output = head(x) - assert output.shape == (2, head.num_classes, 32, 32) - assert not head.concat_input - from mmseg.ops.separable_conv_module import DepthwiseSeparableConvModule - assert isinstance(head.convs[0], DepthwiseSeparableConvModule) - assert isinstance(head.convs[1], DepthwiseSeparableConvModule) - assert head.conv_seg.kernel_size == (1, 1) - - head = DepthwiseSeparableFCNHead( - in_channels=64, - channels=64, - concat_input=True, - num_classes=19, - in_index=-1, - norm_cfg=dict(type='BN', requires_grad=True, momentum=0.01)) - x = [torch.rand(3, 64, 32, 32)] - output = head(x) - assert output.shape == (3, head.num_classes, 32, 32) - assert head.concat_input - from mmseg.ops.separable_conv_module import DepthwiseSeparableConvModule - assert isinstance(head.convs[0], DepthwiseSeparableConvModule) - assert isinstance(head.convs[1], DepthwiseSeparableConvModule) diff --git a/tests/test_models/test_necks.py b/tests/test_models/test_necks.py new file mode 100644 index 0000000000..8fc968450f --- /dev/null +++ b/tests/test_models/test_necks.py @@ -0,0 +1,18 @@ +import torch + +from mmseg.models import FPN + + +def test_fpn(): + in_channels = [256, 512, 1024, 2048] + inputs = [ + torch.randn(1, c, 56 // 2**i, 56 // 2**i) + for i, c in enumerate(in_channels) + ] + + fpn = FPN(in_channels, 256, len(in_channels)) + outputs = fpn(inputs) + assert outputs[0].shape == torch.Size([1, 256, 56, 56]) + assert outputs[1].shape == torch.Size([1, 256, 28, 28]) + assert outputs[2].shape == torch.Size([1, 256, 14, 14]) + assert outputs[3].shape == torch.Size([1, 256, 7, 7]) From 2e5260b58a0a0aa7d1247c15d86611ba0f629896 Mon Sep 17 00:00:00 2001 From: robin Han Date: Thu, 3 Sep 2020 19:59:13 +0800 Subject: [PATCH 027/706] Onnx upsample (#100) * add customized Upsample which can convert to ONNX * support multiply decode head for hrnet * support size for Upsample --- mmseg/models/backbones/hrnet.py | 4 ++-- mmseg/ops/__init__.py | 4 ++-- mmseg/ops/wrappers.py | 32 ++++++++++++++++++++++++++++++-- tools/pytorch2onnx.py | 16 +++++++++++----- 4 files changed, 45 insertions(+), 11 deletions(-) diff --git a/mmseg/models/backbones/hrnet.py b/mmseg/models/backbones/hrnet.py index e4247ba67e..33f3ba86d8 100644 --- a/mmseg/models/backbones/hrnet.py +++ b/mmseg/models/backbones/hrnet.py @@ -4,7 +4,7 @@ from mmcv.runner import load_checkpoint from mmcv.utils.parrots_wrapper import _BatchNorm -from mmseg.ops import resize +from mmseg.ops import Upsample, resize from mmseg.utils import get_root_logger from ..builder import BACKBONES from .resnet import BasicBlock, Bottleneck @@ -141,7 +141,7 @@ def _make_fuse_layers(self): bias=False), build_norm_layer(self.norm_cfg, in_channels[i])[1], # we set align_corners=False for HRNet - nn.Upsample( + Upsample( scale_factor=2**(j - i), mode='bilinear', align_corners=False))) diff --git a/mmseg/ops/__init__.py b/mmseg/ops/__init__.py index 54b0d0b79c..7a0b930c35 100644 --- a/mmseg/ops/__init__.py +++ b/mmseg/ops/__init__.py @@ -1,5 +1,5 @@ from .encoding import Encoding from .separable_conv_module import DepthwiseSeparableConvModule -from .wrappers import resize +from .wrappers import Upsample, resize -__all__ = ['resize', 'DepthwiseSeparableConvModule', 'Encoding'] +__all__ = ['Upsample', 'resize', 'DepthwiseSeparableConvModule', 'Encoding'] diff --git a/mmseg/ops/wrappers.py b/mmseg/ops/wrappers.py index 0b319767f5..a6d755273d 100644 --- a/mmseg/ops/wrappers.py +++ b/mmseg/ops/wrappers.py @@ -1,5 +1,7 @@ import warnings +import torch +import torch.nn as nn import torch.nn.functional as F @@ -11,8 +13,8 @@ def resize(input, warning=True): if warning: if size is not None and align_corners: - input_h, input_w = input.shape[2:] - output_h, output_w = size + input_h, input_w = tuple(int(x) for x in input.shape[2:]) + output_h, output_w = tuple(int(x) for x in size) if output_h > input_h or output_w > output_h: if ((output_h > 1 and output_w > 1 and input_h > 1 and input_w > 1) and (output_h - 1) % (input_h - 1) @@ -22,4 +24,30 @@ def resize(input, 'the output would more aligned if ' f'input size {(input_h, input_w)} is `x+1` and ' f'out size {(output_h, output_w)} is `nx+1`') + if isinstance(size, torch.Size): + size = tuple(int(x) for x in size) return F.interpolate(input, size, scale_factor, mode, align_corners) + + +class Upsample(nn.Module): + + def __init__(self, + size=None, + scale_factor=None, + mode='nearest', + align_corners=None): + super(Upsample, self).__init__() + self.size = size + if isinstance(scale_factor, tuple): + self.scale_factor = tuple(float(factor) for factor in scale_factor) + else: + self.scale_factor = float(scale_factor) if scale_factor else None + self.mode = mode + self.align_corners = align_corners + + def forward(self, x): + if not self.size: + size = [int(t * self.scale_factor) for t in x.shape[-2:]] + else: + size = self.size + return resize(x, size, None, self.mode, self.align_corners) diff --git a/tools/pytorch2onnx.py b/tools/pytorch2onnx.py index df84eeb911..b24536678a 100644 --- a/tools/pytorch2onnx.py +++ b/tools/pytorch2onnx.py @@ -5,6 +5,7 @@ import numpy as np import onnxruntime as rt import torch +from torch import nn import torch._C import torch.serialization from mmcv.onnx import register_extra_symbolics @@ -88,7 +89,10 @@ def pytorch2onnx(model, """ model.cpu().eval() - num_classes = model.decode_head.num_classes + if isinstance(model.decode_head, nn.ModuleList): + num_classes = model.decode_head[-1].num_classes + else: + num_classes = model.decode_head.num_classes mm_inputs = _demo_mm_inputs(input_shape, num_classes) @@ -142,7 +146,7 @@ def pytorch2onnx(model, def parse_args(): - parser = argparse.ArgumentParser(description='Convert MMDet to ONNX') + parser = argparse.ArgumentParser(description='Convert MMSeg to ONNX') parser.add_argument('config', help='test config file path') parser.add_argument('--checkpoint', help='checkpoint file', default=None) parser.add_argument('--show', action='store_true', help='show onnx graph') @@ -182,11 +186,13 @@ def parse_args(): # convert SyncBN to BN segmentor = _convert_batchnorm(segmentor) - num_classes = segmentor.decode_head.num_classes + if isinstance(segmentor.decode_head, nn.ModuleList): + num_classes = segmentor.decode_head[-1].num_classes + else: + num_classes = segmentor.decode_head.num_classes if args.checkpoint: - checkpoint = load_checkpoint( - segmentor, args.checkpoint, map_location='cpu') + load_checkpoint(segmentor, args.checkpoint, map_location='cpu') # conver model to onnx file pytorch2onnx( From 1fbb537958eb36ddd77567ee6837ec9610706715 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Fri, 4 Sep 2020 15:35:52 +0800 Subject: [PATCH 028/706] [Feature] Support MobileNetV2 backbone (#86) * [Feature] Support MobileNetV2 backbone * Fixed import * Fixed test * Fixed test * Fixed dilate * upload model * update table * update table * update bibtex * update MMCV requirement --- configs/mobilenet_v2/README.md | 32 +++ ...eplabv3_m-v2-d8_512x1024_80k_cityscapes.py | 12 + .../deeplabv3_m-v2-d8_512x512_160k_ade20k.py | 12 + ...bv3plus_m-v2-d8_512x1024_80k_cityscapes.py | 12 + ...eplabv3plus_m-v2-d8_512x512_160k_ade20k.py | 12 + .../fcn_m-v2-d8_512x1024_80k_cityscapes.py | 12 + .../fcn_m-v2-d8_512x512_160k_ade20k.py | 12 + .../pspnet_m-v2-d8_512x1024_80k_cityscapes.py | 12 + .../pspnet_m-v2-d8_512x512_160k_ade20k.py | 12 + mmseg/__init__.py | 4 +- mmseg/models/backbones/__init__.py | 3 +- mmseg/models/backbones/mobilenet_v2.py | 270 ++++++++++++++++++ mmseg/models/utils/__init__.py | 3 +- mmseg/models/utils/make_divisible.py | 24 ++ tests/test_models/test_forward.py | 5 + 15 files changed, 433 insertions(+), 4 deletions(-) create mode 100644 configs/mobilenet_v2/README.md create mode 100644 configs/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py create mode 100644 configs/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k.py create mode 100644 configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py create mode 100644 configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py create mode 100644 configs/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes.py create mode 100644 configs/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k.py create mode 100644 configs/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes.py create mode 100644 configs/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k.py create mode 100644 mmseg/models/backbones/mobilenet_v2.py create mode 100644 mmseg/models/utils/make_divisible.py diff --git a/configs/mobilenet_v2/README.md b/configs/mobilenet_v2/README.md new file mode 100644 index 0000000000..0dcbb4d383 --- /dev/null +++ b/configs/mobilenet_v2/README.md @@ -0,0 +1,32 @@ +# MobileNetV2: Inverted Residuals and Linear Bottlenecks + +## Introduction + +``` +@inproceedings{sandler2018mobilenetv2, + title={Mobilenetv2: Inverted residuals and linear bottlenecks}, + author={Sandler, Mark and Howard, Andrew and Zhu, Menglong and Zhmoginov, Andrey and Chen, Liang-Chieh}, + booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition}, + pages={4510--4520}, + year={2018} +} +``` + + +## Results and models + +### Cityscapes +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | +|------------|----------|-----------|--------:|---------:|----------------|------:|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| FCN | M-V2-D8 | 512x1024 | 80000 | 3.4 | 14.2 | 61.54 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes/fcn_m-v2-d8_512x1024_80k_cityscapes_20200825_124817-d24c28c1.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes/fcn_m-v2-d8_512x1024_80k_cityscapes-20200825_124817.log.json) | +| PSPNet | M-V2-D8 | 512x1024 | 80000 | 3.6 | 11.2 | 70.23 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes/pspnet_m-v2-d8_512x1024_80k_cityscapes_20200825_124817-19e81d51.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes/pspnet_m-v2-d8_512x1024_80k_cityscapes-20200825_124817.log.json) | +| DeepLabV3 | M-V2-D8 | 512x1024 | 80000 | 3.9 | 8.4 | 73.84 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes/deeplabv3_m-v2-d8_512x1024_80k_cityscapes_20200825_124836-bef03590.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes/deeplabv3_m-v2-d8_512x1024_80k_cityscapes-20200825_124836.log.json) | +| DeepLabV3+ | M-V2-D8 | 512x1024 | 80000 | 5.1 | 8.4 | 75.20 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes_20200825_124836-d256dd4b.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes-20200825_124836.log.json) | + +### ADE20k +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | +|------------|----------|-----------|--------:|---------:|----------------|------:|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| FCN | M-V2-D8 | 512x512 | 160000 | 6.5 | 64.4 | 19.71 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k/fcn_m-v2-d8_512x512_160k_ade20k_20200825_214953-c40e1095.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k/fcn_m-v2-d8_512x512_160k_ade20k-20200825_214953.log.json) | +| PSPNet | M-V2-D8 | 512x512 | 160000 | 6.5 | 57.7 | 29.68 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k/pspnet_m-v2-d8_512x512_160k_ade20k_20200825_214953-f5942f7a.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k/pspnet_m-v2-d8_512x512_160k_ade20k-20200825_214953.log.json) | +| DeepLabV3 | M-V2-D8 | 512x512 | 160000 | 6.8 | 39.9 | 34.08 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k/deeplabv3_m-v2-d8_512x512_160k_ade20k_20200825_223255-63986343.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k/deeplabv3_m-v2-d8_512x512_160k_ade20k-20200825_223255.log.json) | +| DeepLabV3+ | M-V2-D8 | 512x512 | 160000 | 8.2 | 43.1 | 34.02 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k/deeplabv3plus_m-v2-d8_512x512_160k_ade20k_20200825_223255-465a01d4.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k/deeplabv3plus_m-v2-d8_512x512_160k_ade20k-20200825_223255.log.json) | diff --git a/configs/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py b/configs/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..267483d88f --- /dev/null +++ b/configs/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,12 @@ +_base_ = '../deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py' +model = dict( + pretrained='mmcls://mobilenet_v2', + backbone=dict( + _delete_=True, + type='MobileNetV2', + widen_factor=1., + strides=(1, 2, 2, 1, 1, 1, 1), + dilations=(1, 1, 1, 2, 2, 4, 4), + out_indices=(1, 2, 4, 6)), + decode_head=dict(in_channels=320), + auxiliary_head=dict(in_channels=96)) diff --git a/configs/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k.py b/configs/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k.py new file mode 100644 index 0000000000..e15b8cc82b --- /dev/null +++ b/configs/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k.py @@ -0,0 +1,12 @@ +_base_ = '../deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k.py' +model = dict( + pretrained='mmcls://mobilenet_v2', + backbone=dict( + _delete_=True, + type='MobileNetV2', + widen_factor=1., + strides=(1, 2, 2, 1, 1, 1, 1), + dilations=(1, 1, 1, 2, 2, 4, 4), + out_indices=(1, 2, 4, 6)), + decode_head=dict(in_channels=320), + auxiliary_head=dict(in_channels=96)) diff --git a/configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py b/configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..d4533d79a2 --- /dev/null +++ b/configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,12 @@ +_base_ = '../deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py' +model = dict( + pretrained='mmcls://mobilenet_v2', + backbone=dict( + _delete_=True, + type='MobileNetV2', + widen_factor=1., + strides=(1, 2, 2, 1, 1, 1, 1), + dilations=(1, 1, 1, 2, 2, 4, 4), + out_indices=(1, 2, 4, 6)), + decode_head=dict(in_channels=320, c1_in_channels=24), + auxiliary_head=dict(in_channels=96)) diff --git a/configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py b/configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py new file mode 100644 index 0000000000..7615a7c19a --- /dev/null +++ b/configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py @@ -0,0 +1,12 @@ +_base_ = '../deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k.py' +model = dict( + pretrained='mmcls://mobilenet_v2', + backbone=dict( + _delete_=True, + type='MobileNetV2', + widen_factor=1., + strides=(1, 2, 2, 1, 1, 1, 1), + dilations=(1, 1, 1, 2, 2, 4, 4), + out_indices=(1, 2, 4, 6)), + decode_head=dict(in_channels=320, c1_in_channels=24), + auxiliary_head=dict(in_channels=96)) diff --git a/configs/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes.py b/configs/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..a535bd0ed8 --- /dev/null +++ b/configs/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,12 @@ +_base_ = '../fcn/fcn_r101-d8_512x1024_80k_cityscapes.py' +model = dict( + pretrained='mmcls://mobilenet_v2', + backbone=dict( + _delete_=True, + type='MobileNetV2', + widen_factor=1., + strides=(1, 2, 2, 1, 1, 1, 1), + dilations=(1, 1, 1, 2, 2, 4, 4), + out_indices=(1, 2, 4, 6)), + decode_head=dict(in_channels=320), + auxiliary_head=dict(in_channels=96)) diff --git a/configs/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k.py b/configs/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k.py new file mode 100644 index 0000000000..c5f6ab0d62 --- /dev/null +++ b/configs/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k.py @@ -0,0 +1,12 @@ +_base_ = '../fcn/fcn_r101-d8_512x512_160k_ade20k.py' +model = dict( + pretrained='mmcls://mobilenet_v2', + backbone=dict( + _delete_=True, + type='MobileNetV2', + widen_factor=1., + strides=(1, 2, 2, 1, 1, 1, 1), + dilations=(1, 1, 1, 2, 2, 4, 4), + out_indices=(1, 2, 4, 6)), + decode_head=dict(in_channels=320), + auxiliary_head=dict(in_channels=96)) diff --git a/configs/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes.py b/configs/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..7403bee864 --- /dev/null +++ b/configs/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,12 @@ +_base_ = '../pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py' +model = dict( + pretrained='mmcls://mobilenet_v2', + backbone=dict( + _delete_=True, + type='MobileNetV2', + widen_factor=1., + strides=(1, 2, 2, 1, 1, 1, 1), + dilations=(1, 1, 1, 2, 2, 4, 4), + out_indices=(1, 2, 4, 6)), + decode_head=dict(in_channels=320), + auxiliary_head=dict(in_channels=96)) diff --git a/configs/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k.py b/configs/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k.py new file mode 100644 index 0000000000..5b72ac830b --- /dev/null +++ b/configs/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k.py @@ -0,0 +1,12 @@ +_base_ = '../pspnet/pspnet_r101-d8_512x512_160k_ade20k.py' +model = dict( + pretrained='mmcls://mobilenet_v2', + backbone=dict( + _delete_=True, + type='MobileNetV2', + widen_factor=1., + strides=(1, 2, 2, 1, 1, 1, 1), + dilations=(1, 1, 1, 2, 2, 4, 4), + out_indices=(1, 2, 4, 6)), + decode_head=dict(in_channels=320), + auxiliary_head=dict(in_channels=96)) diff --git a/mmseg/__init__.py b/mmseg/__init__.py index 0ab33a8ed9..20bce069a1 100644 --- a/mmseg/__init__.py +++ b/mmseg/__init__.py @@ -2,8 +2,8 @@ from .version import __version__, version_info -MMCV_MIN = '1.0.5' -MMCV_MAX = '1.1.1' +MMCV_MIN = '1.1.2' +MMCV_MAX = '1.2.0' def digit_version(version_str): diff --git a/mmseg/models/backbones/__init__.py b/mmseg/models/backbones/__init__.py index 0cb2ec17b4..6253bab425 100644 --- a/mmseg/models/backbones/__init__.py +++ b/mmseg/models/backbones/__init__.py @@ -1,10 +1,11 @@ from .fast_scnn import FastSCNN from .hrnet import HRNet +from .mobilenet_v2 import MobileNetV2 from .resnest import ResNeSt from .resnet import ResNet, ResNetV1c, ResNetV1d from .resnext import ResNeXt __all__ = [ 'ResNet', 'ResNetV1c', 'ResNetV1d', 'ResNeXt', 'HRNet', 'FastSCNN', - 'ResNeSt' + 'ResNeSt', 'MobileNetV2' ] diff --git a/mmseg/models/backbones/mobilenet_v2.py b/mmseg/models/backbones/mobilenet_v2.py new file mode 100644 index 0000000000..5fff485f0a --- /dev/null +++ b/mmseg/models/backbones/mobilenet_v2.py @@ -0,0 +1,270 @@ +import logging + +import torch.nn as nn +import torch.utils.checkpoint as cp +from mmcv.cnn import ConvModule, constant_init, kaiming_init +from mmcv.runner import load_checkpoint +from torch.nn.modules.batchnorm import _BatchNorm + +from ..builder import BACKBONES +from ..utils import make_divisible + + +class InvertedResidual(nn.Module): + """InvertedResidual block for MobileNetV2. + + Args: + in_channels (int): The input channels of the InvertedResidual block. + out_channels (int): The output channels of the InvertedResidual block. + stride (int): Stride of the middle (first) 3x3 convolution. + expand_ratio (int): Adjusts number of channels of the hidden layer + in InvertedResidual by this amount. + dilation (int): Dilation rate of depthwise conv. Default: 1 + conv_cfg (dict): Config dict for convolution layer. + Default: None, which means using conv2d. + norm_cfg (dict): Config dict for normalization layer. + Default: dict(type='BN'). + act_cfg (dict): Config dict for activation layer. + Default: dict(type='ReLU6'). + with_cp (bool): Use checkpoint or not. Using checkpoint will save some + memory while slowing down the training speed. Default: False. + + Returns: + Tensor: The output tensor + """ + + def __init__(self, + in_channels, + out_channels, + stride, + expand_ratio, + dilation=1, + conv_cfg=None, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU6'), + with_cp=False): + super(InvertedResidual, self).__init__() + self.stride = stride + assert stride in [1, 2], f'stride must in [1, 2]. ' \ + f'But received {stride}.' + self.with_cp = with_cp + self.use_res_connect = self.stride == 1 and in_channels == out_channels + hidden_dim = int(round(in_channels * expand_ratio)) + + layers = [] + if expand_ratio != 1: + layers.append( + ConvModule( + in_channels=in_channels, + out_channels=hidden_dim, + kernel_size=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg)) + layers.extend([ + ConvModule( + in_channels=hidden_dim, + out_channels=hidden_dim, + kernel_size=3, + stride=stride, + padding=dilation, + dilation=dilation, + groups=hidden_dim, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg), + ConvModule( + in_channels=hidden_dim, + out_channels=out_channels, + kernel_size=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=None) + ]) + self.conv = nn.Sequential(*layers) + + def forward(self, x): + + def _inner_forward(x): + if self.use_res_connect: + return x + self.conv(x) + else: + return self.conv(x) + + if self.with_cp and x.requires_grad: + out = cp.checkpoint(_inner_forward, x) + else: + out = _inner_forward(x) + + return out + + +@BACKBONES.register_module() +class MobileNetV2(nn.Module): + """MobileNetV2 backbone. + + Args: + widen_factor (float): Width multiplier, multiply number of + channels in each layer by this amount. Default: 1.0. + strides (Sequence[int], optional): Strides of the first block of each + layer. If not specified, default config in ``arch_setting`` will + be used. + dilations (Sequence[int]): Dilation of each layer. + out_indices (None or Sequence[int]): Output from which stages. + Default: (7, ). + frozen_stages (int): Stages to be frozen (all param fixed). + Default: -1, which means not freezing any parameters. + conv_cfg (dict): Config dict for convolution layer. + Default: None, which means using conv2d. + norm_cfg (dict): Config dict for normalization layer. + Default: dict(type='BN'). + act_cfg (dict): Config dict for activation layer. + Default: dict(type='ReLU6'). + norm_eval (bool): Whether to set norm layers to eval mode, namely, + freeze running stats (mean and var). Note: Effect on Batch Norm + and its variants only. Default: False. + with_cp (bool): Use checkpoint or not. Using checkpoint will save some + memory while slowing down the training speed. Default: False. + """ + + # Parameters to build layers. 3 parameters are needed to construct a + # layer, from left to right: expand_ratio, channel, num_blocks. + arch_settings = [[1, 16, 1], [6, 24, 2], [6, 32, 3], [6, 64, 4], + [6, 96, 3], [6, 160, 3], [6, 320, 1]] + + def __init__(self, + widen_factor=1., + strides=(1, 2, 2, 2, 1, 2, 1), + dilations=(1, 1, 1, 1, 1, 1, 1), + out_indices=(1, 2, 4, 6), + frozen_stages=-1, + conv_cfg=None, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU6'), + norm_eval=False, + with_cp=False): + super(MobileNetV2, self).__init__() + self.widen_factor = widen_factor + self.strides = strides + self.dilations = dilations + assert len(strides) == len(dilations) == len(self.arch_settings) + self.out_indices = out_indices + for index in out_indices: + if index not in range(0, 7): + raise ValueError('the item in out_indices must in ' + f'range(0, 8). But received {index}') + + if frozen_stages not in range(-1, 7): + raise ValueError('frozen_stages must be in range(-1, 7). ' + f'But received {frozen_stages}') + self.out_indices = out_indices + self.frozen_stages = frozen_stages + self.conv_cfg = conv_cfg + self.norm_cfg = norm_cfg + self.act_cfg = act_cfg + self.norm_eval = norm_eval + self.with_cp = with_cp + + self.in_channels = make_divisible(32 * widen_factor, 8) + + self.conv1 = ConvModule( + in_channels=3, + out_channels=self.in_channels, + kernel_size=3, + stride=2, + padding=1, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + + self.layers = [] + + for i, layer_cfg in enumerate(self.arch_settings): + expand_ratio, channel, num_blocks = layer_cfg + stride = self.strides[i] + dilation = self.dilations[i] + out_channels = make_divisible(channel * widen_factor, 8) + inverted_res_layer = self.make_layer( + out_channels=out_channels, + num_blocks=num_blocks, + stride=stride, + dilation=dilation, + expand_ratio=expand_ratio) + layer_name = f'layer{i + 1}' + self.add_module(layer_name, inverted_res_layer) + self.layers.append(layer_name) + + def make_layer(self, out_channels, num_blocks, stride, dilation, + expand_ratio): + """Stack InvertedResidual blocks to build a layer for MobileNetV2. + + Args: + out_channels (int): out_channels of block. + num_blocks (int): Number of blocks. + stride (int): Stride of the first block. + dilation (int): Dilation of the first block. + expand_ratio (int): Expand the number of channels of the + hidden layer in InvertedResidual by this ratio. + """ + layers = [] + for i in range(num_blocks): + layers.append( + InvertedResidual( + self.in_channels, + out_channels, + stride if i == 0 else 1, + expand_ratio=expand_ratio, + dilation=dilation if i == 0 else 1, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg, + with_cp=self.with_cp)) + self.in_channels = out_channels + + return nn.Sequential(*layers) + + def init_weights(self, pretrained=None): + if isinstance(pretrained, str): + logger = logging.getLogger() + load_checkpoint(self, pretrained, strict=False, logger=logger) + elif pretrained is None: + for m in self.modules(): + if isinstance(m, nn.Conv2d): + kaiming_init(m) + elif isinstance(m, (_BatchNorm, nn.GroupNorm)): + constant_init(m, 1) + else: + raise TypeError('pretrained must be a str or None') + + def forward(self, x): + x = self.conv1(x) + + outs = [] + for i, layer_name in enumerate(self.layers): + layer = getattr(self, layer_name) + x = layer(x) + if i in self.out_indices: + outs.append(x) + + if len(outs) == 1: + return outs[0] + else: + return tuple(outs) + + def _freeze_stages(self): + if self.frozen_stages >= 0: + for param in self.conv1.parameters(): + param.requires_grad = False + for i in range(1, self.frozen_stages + 1): + layer = getattr(self, f'layer{i}') + layer.eval() + for param in layer.parameters(): + param.requires_grad = False + + def train(self, mode=True): + super(MobileNetV2, self).train(mode) + self._freeze_stages() + if mode and self.norm_eval: + for m in self.modules(): + if isinstance(m, _BatchNorm): + m.eval() diff --git a/mmseg/models/utils/__init__.py b/mmseg/models/utils/__init__.py index 71d3f423ce..bea300c3ac 100644 --- a/mmseg/models/utils/__init__.py +++ b/mmseg/models/utils/__init__.py @@ -1,4 +1,5 @@ +from .make_divisible import make_divisible from .res_layer import ResLayer from .self_attention_block import SelfAttentionBlock -__all__ = ['ResLayer', 'SelfAttentionBlock'] +__all__ = ['ResLayer', 'SelfAttentionBlock', 'make_divisible'] diff --git a/mmseg/models/utils/make_divisible.py b/mmseg/models/utils/make_divisible.py new file mode 100644 index 0000000000..02ee047c50 --- /dev/null +++ b/mmseg/models/utils/make_divisible.py @@ -0,0 +1,24 @@ +def make_divisible(value, divisor, min_value=None, min_ratio=0.9): + """Make divisible function. + + This function rounds the channel number down to the nearest value that can + be divisible by the divisor. + + Args: + value (int): The original channel number. + divisor (int): The divisor to fully divide the channel number. + min_value (int, optional): The minimum value of the output channel. + Default: None, means that the minimum value equal to the divisor. + min_ratio (float, optional): The minimum ratio of the rounded channel + number to the original channel number. Default: 0.9. + Returns: + int: The modified output channel number + """ + + if min_value is None: + min_value = divisor + new_value = max(min_value, int(value + divisor / 2) // divisor * divisor) + # Make sure that round down does not go down by more than (1-min_ratio). + if new_value < min_ratio * value: + new_value += divisor + return new_value diff --git a/tests/test_models/test_forward.py b/tests/test_models/test_forward.py index fffe23e746..ca2f7cb277 100644 --- a/tests/test_models/test_forward.py +++ b/tests/test_models/test_forward.py @@ -157,6 +157,11 @@ def test_sem_fpn_forward(): _test_encoder_decoder_forward('sem_fpn/fpn_r50_512x1024_80k_cityscapes.py') +def test_mobilenet_v2_forward(): + _test_encoder_decoder_forward( + 'mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes.py') + + def get_world_size(process_group): return 1 From 4b883ab717c84a67dfefccf0aba7c544084a4119 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xia=20Li=20=E6=9D=8E=E5=A4=8F?= Date: Mon, 7 Sep 2020 13:06:59 +0800 Subject: [PATCH 029/706] [Feature] Support EMANet (#34) * add emanet * fixed bug and typos * add emanet config * fixed padding * fixed identity * rename * rename * add concat_input * fallback to update last * Fixed concat * update EMANet * Add tests * remove self-implement norm Co-authored-by: Jiarui XU --- configs/_base_/models/emanet_r50-d8.py | 47 +++++ configs/emanet/README.md | 22 +++ .../emanet_r101-d8_512x1024_80k_cityscapes.py | 2 + .../emanet_r101-d8_769x769_80k_cityscapes.py | 2 + .../emanet_r50-d8_512x1024_80k_cityscapes.py | 4 + .../emanet_r50-d8_769x769_80k_cityscapes.py | 9 + mmseg/models/decode_heads/__init__.py | 3 +- mmseg/models/decode_heads/ema_head.py | 168 ++++++++++++++++++ tests/test_models/test_forward.py | 5 + tests/test_models/test_heads.py | 24 ++- 10 files changed, 282 insertions(+), 4 deletions(-) create mode 100644 configs/_base_/models/emanet_r50-d8.py create mode 100644 configs/emanet/README.md create mode 100644 configs/emanet/emanet_r101-d8_512x1024_80k_cityscapes.py create mode 100644 configs/emanet/emanet_r101-d8_769x769_80k_cityscapes.py create mode 100644 configs/emanet/emanet_r50-d8_512x1024_80k_cityscapes.py create mode 100644 configs/emanet/emanet_r50-d8_769x769_80k_cityscapes.py create mode 100644 mmseg/models/decode_heads/ema_head.py diff --git a/configs/_base_/models/emanet_r50-d8.py b/configs/_base_/models/emanet_r50-d8.py new file mode 100644 index 0000000000..326a25137a --- /dev/null +++ b/configs/_base_/models/emanet_r50-d8.py @@ -0,0 +1,47 @@ +# model settings +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + type='EncoderDecoder', + pretrained='open-mmlab://resnet50_v1c', + backbone=dict( + type='ResNetV1c', + depth=50, + num_stages=4, + out_indices=(0, 1, 2, 3), + dilations=(1, 1, 2, 4), + strides=(1, 2, 1, 1), + norm_cfg=norm_cfg, + norm_eval=False, + style='pytorch', + contract_dilation=True), + decode_head=dict( + type='EMAHead', + in_channels=2048, + in_index=3, + channels=256, + ema_channels=512, + num_bases=64, + num_stages=3, + momentum=0.1, + dropout_ratio=0.1, + num_classes=19, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + auxiliary_head=dict( + type='FCNHead', + in_channels=1024, + in_index=2, + channels=256, + num_convs=1, + concat_input=False, + dropout_ratio=0.1, + num_classes=19, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))) +# model training and testing settings +train_cfg = dict() +test_cfg = dict(mode='whole') diff --git a/configs/emanet/README.md b/configs/emanet/README.md new file mode 100644 index 0000000000..25ef985332 --- /dev/null +++ b/configs/emanet/README.md @@ -0,0 +1,22 @@ +# Expectation-Maximization Attention Networks for Semantic Segmentation + +## Introduction +``` +@inproceedings{li2019expectation, + title={Expectation-maximization attention networks for semantic segmentation}, + author={Li, Xia and Zhong, Zhisheng and Wu, Jianlong and Yang, Yibo and Lin, Zhouchen and Liu, Hong}, + booktitle={Proceedings of the IEEE International Conference on Computer Vision}, + pages={9167--9176}, + year={2019} +} +``` + +## Results and models + +### Cityscapes +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | +|--------|----------|-----------|--------:|---------:|----------------|------:|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| EMANet | R-50-D8 | 512x1024 | 80000 | 5.4 | 4.58 | 77.59 | 79.44 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_512x1024_80k_cityscapes/emanet_r50-d8_512x1024_80k_cityscapes_20200901_100301-c43fcef1.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_512x1024_80k_cityscapes/emanet_r50-d8_512x1024_80k_cityscapes-20200901_100301.log.json) | +| EMANet | R-101-D8 | 512x1024 | 80000 | 6.2 | 2.87 | 79.10 | 81.21 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_512x1024_80k_cityscapes/emanet_r101-d8_512x1024_80k_cityscapes_20200901_100301-2d970745.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_512x1024_80k_cityscapes/emanet_r101-d8_512x1024_80k_cityscapes-20200901_100301.log.json) | +| EMANet | R-50-D8 | 769x769 | 80000 | 8.9 | 1.97 | 79.33 | 80.49 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_769x769_80k_cityscapes/emanet_r50-d8_769x769_80k_cityscapes_20200901_100301-16f8de52.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_769x769_80k_cityscapes/emanet_r50-d8_769x769_80k_cityscapes-20200901_100301.log.json) | +| EMANet | R-101-D8 | 769x769 | 80000 | 10.1 | 1.22 | 79.62 | 81.00 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_769x769_80k_cityscapes/emanet_r101-d8_769x769_80k_cityscapes_20200901_100301-47a324ce.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_769x769_80k_cityscapes/emanet_r101-d8_769x769_80k_cityscapes-20200901_100301.log.json) | diff --git a/configs/emanet/emanet_r101-d8_512x1024_80k_cityscapes.py b/configs/emanet/emanet_r101-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..58f28b43f5 --- /dev/null +++ b/configs/emanet/emanet_r101-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './emanet_r50-d8_512x1024_80k_cityscapes.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/emanet/emanet_r101-d8_769x769_80k_cityscapes.py b/configs/emanet/emanet_r101-d8_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..c5dbf20b0f --- /dev/null +++ b/configs/emanet/emanet_r101-d8_769x769_80k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './emanet_r50-d8_769x769_80k_cityscapes.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/emanet/emanet_r50-d8_512x1024_80k_cityscapes.py b/configs/emanet/emanet_r50-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..73b7788bf9 --- /dev/null +++ b/configs/emanet/emanet_r50-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,4 @@ +_base_ = [ + '../_base_/models/emanet_r50-d8.py', '../_base_/datasets/cityscapes.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' +] diff --git a/configs/emanet/emanet_r50-d8_769x769_80k_cityscapes.py b/configs/emanet/emanet_r50-d8_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..0fd9beea03 --- /dev/null +++ b/configs/emanet/emanet_r50-d8_769x769_80k_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = [ + '../_base_/models/emanet_r50-d8.py', + '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_80k.py' +] +model = dict( + decode_head=dict(align_corners=True), + auxiliary_head=dict(align_corners=True)) +test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) diff --git a/mmseg/models/decode_heads/__init__.py b/mmseg/models/decode_heads/__init__.py index 5828034018..a4a06d2af8 100644 --- a/mmseg/models/decode_heads/__init__.py +++ b/mmseg/models/decode_heads/__init__.py @@ -2,6 +2,7 @@ from .aspp_head import ASPPHead from .cc_head import CCHead from .da_head import DAHead +from .ema_head import EMAHead from .enc_head import EncHead from .fcn_head import FCNHead from .fpn_head import FPNHead @@ -17,5 +18,5 @@ __all__ = [ 'FCNHead', 'PSPHead', 'ASPPHead', 'PSAHead', 'NLHead', 'GCHead', 'CCHead', 'UPerHead', 'DepthwiseSeparableASPPHead', 'ANNHead', 'DAHead', 'OCRHead', - 'EncHead', 'DepthwiseSeparableFCNHead', 'FPNHead' + 'EncHead', 'DepthwiseSeparableFCNHead', 'FPNHead', 'EMAHead' ] diff --git a/mmseg/models/decode_heads/ema_head.py b/mmseg/models/decode_heads/ema_head.py new file mode 100644 index 0000000000..619d757046 --- /dev/null +++ b/mmseg/models/decode_heads/ema_head.py @@ -0,0 +1,168 @@ +import math + +import torch +import torch.distributed as dist +import torch.nn as nn +import torch.nn.functional as F +from mmcv.cnn import ConvModule + +from ..builder import HEADS +from .decode_head import BaseDecodeHead + + +def reduce_mean(tensor): + """Reduce mean when distributed training.""" + if not (dist.is_available() and dist.is_initialized()): + return tensor + tensor = tensor.clone() + dist.all_reduce(tensor.div_(dist.get_world_size()), op=dist.ReduceOp.SUM) + return tensor + + +class EMAModule(nn.Module): + """Expectation Maximization Attention Module used in EMANet. + + Args: + channels (int): Channels of the whole module. + num_bases (int): Number of bases. + num_stages (int): Number of the EM iterations. + """ + + def __init__(self, channels, num_bases, num_stages, momentum): + super(EMAModule, self).__init__() + assert num_stages >= 1, 'num_stages must be at least 1!' + self.num_bases = num_bases + self.num_stages = num_stages + self.momentum = momentum + + bases = torch.zeros(1, channels, self.num_bases) + bases.normal_(0, math.sqrt(2. / self.num_bases)) + # [1, channels, num_bases] + bases = F.normalize(bases, dim=1, p=2) + self.register_buffer('bases', bases) + + def forward(self, feats): + """Forward function.""" + batch_size, channels, height, width = feats.size() + # [batch_size, channels, height*width] + feats = feats.view(batch_size, channels, height * width) + # [batch_size, channels, num_bases] + bases = self.bases.repeat(batch_size, 1, 1) + + with torch.no_grad(): + for i in range(self.num_stages): + # [batch_size, height*width, num_bases] + attention = torch.einsum('bcn,bck->bnk', feats, bases) + attention = F.softmax(attention, dim=2) + # l1 norm + attention_normed = F.normalize(attention, dim=1, p=1) + # [batch_size, channels, num_bases] + bases = torch.einsum('bcn,bnk->bck', feats, attention_normed) + # l2 norm + bases = F.normalize(bases, dim=1, p=2) + + feats_recon = torch.einsum('bck,bnk->bcn', bases, attention) + feats_recon = feats_recon.view(batch_size, channels, height, width) + + if self.training: + bases = bases.mean(dim=0, keepdim=True) + bases = reduce_mean(bases) + # l2 norm + bases = F.normalize(bases, dim=1, p=2) + self.bases = (1 - + self.momentum) * self.bases + self.momentum * bases + + return feats_recon + + +@HEADS.register_module() +class EMAHead(BaseDecodeHead): + """Expectation Maximization Attention Networks for Semantic Segmentation. + + This head is the implementation of `EMANet + `_. + + Args: + ema_channels (int): EMA module channels + num_bases (int): Number of bases. + num_stages (int): Number of the EM iterations. + concat_input (bool): Whether concat the input and output of convs + before classification layer. Default: True + momentum (float): Momentum to update the base. Default: 0.1. + """ + + def __init__(self, + ema_channels, + num_bases, + num_stages, + concat_input=True, + momentum=0.1, + **kwargs): + super(EMAHead, self).__init__(**kwargs) + self.ema_channels = ema_channels + self.num_bases = num_bases + self.num_stages = num_stages + self.concat_input = concat_input + self.momentum = momentum + self.ema_module = EMAModule(self.ema_channels, self.num_bases, + self.num_stages, self.momentum) + + self.ema_in_conv = ConvModule( + self.in_channels, + self.ema_channels, + 3, + padding=1, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + # project (0, inf) -> (-inf, inf) + self.ema_mid_conv = ConvModule( + self.ema_channels, + self.ema_channels, + 1, + conv_cfg=self.conv_cfg, + norm_cfg=None, + act_cfg=None) + for param in self.ema_mid_conv.parameters(): + param.requires_grad = False + + self.ema_out_conv = ConvModule( + self.ema_channels, + self.ema_channels, + 1, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=None) + self.bottleneck = ConvModule( + self.ema_channels, + self.channels, + 3, + padding=1, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + if self.concat_input: + self.conv_cat = ConvModule( + self.in_channels + self.channels, + self.channels, + kernel_size=3, + padding=1, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + + def forward(self, inputs): + """Forward function.""" + x = self._transform_inputs(inputs) + feats = self.ema_in_conv(x) + identity = feats + feats = self.ema_mid_conv(feats) + recon = self.ema_module(feats) + recon = F.relu(recon, inplace=True) + recon = self.ema_out_conv(recon) + output = F.relu(identity + recon, inplace=True) + output = self.bottleneck(output) + if self.concat_input: + output = self.conv_cat(torch.cat([x, output], dim=1)) + output = self.cls_seg(output) + return output diff --git a/tests/test_models/test_forward.py b/tests/test_models/test_forward.py index ca2f7cb277..afca42c285 100644 --- a/tests/test_models/test_forward.py +++ b/tests/test_models/test_forward.py @@ -162,6 +162,11 @@ def test_mobilenet_v2_forward(): 'mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes.py') +def test_emanet_forward(): + _test_encoder_decoder_forward( + 'emanet/emanet_r50-d8_512x1024_80k_cityscapes.py') + + def get_world_size(process_group): return 1 diff --git a/tests/test_models/test_heads.py b/tests/test_models/test_heads.py index 3ac6bb0aa2..8a36d1ffc7 100644 --- a/tests/test_models/test_heads.py +++ b/tests/test_models/test_heads.py @@ -6,9 +6,9 @@ from mmcv.utils.parrots_wrapper import SyncBatchNorm from mmseg.models.decode_heads import (ANNHead, ASPPHead, CCHead, DAHead, - DepthwiseSeparableASPPHead, EncHead, - FCNHead, GCHead, NLHead, OCRHead, - PSAHead, PSPHead, UPerHead) + DepthwiseSeparableASPPHead, EMAHead, + EncHead, FCNHead, GCHead, NLHead, + OCRHead, PSAHead, PSPHead, UPerHead) from mmseg.models.decode_heads.decode_head import BaseDecodeHead @@ -539,3 +539,21 @@ def test_dw_aspp_head(): assert head.aspp_modules[2].depthwise_conv.dilation == (24, 24) outputs = head(inputs) assert outputs.shape == (1, head.num_classes, 45, 45) + + +def test_emanet_head(): + head = EMAHead( + in_channels=32, + ema_channels=24, + channels=16, + num_stages=3, + num_bases=16, + num_classes=19) + for param in head.ema_mid_conv.parameters(): + assert not param.requires_grad + assert hasattr(head, 'ema_module') + inputs = [torch.randn(1, 32, 45, 45)] + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) From d7ae15c7f7d6bfaa67ddc87f8cd96126fb6587a3 Mon Sep 17 00:00:00 2001 From: Han Hu Date: Mon, 7 Sep 2020 16:22:00 +0800 Subject: [PATCH 030/706] Add "disentangled non-local (DNL) neural networks" [ECCV2020] (#37) * Add DNLHead * add configs * add weight decay mult * add norm back * Update README.md * matched inference performance * Fixed shape * sep conv_out * no norm * add norm back * complete model zoo * add tests * Add test forward * Add more test Co-authored-by: Jiarui XU --- README.md | 3 + configs/_base_/models/dnl_r50-d8.py | 46 ++++++ configs/dnlnet/README.md | 40 ++++++ .../dnl_r101-d8_512x1024_40k_cityscapes.py | 2 + .../dnl_r101-d8_512x1024_80k_cityscapes.py | 2 + .../dnlnet/dnl_r101-d8_512x512_160k_ade20k.py | 2 + .../dnlnet/dnl_r101-d8_512x512_80k_ade20k.py | 2 + .../dnl_r101-d8_769x769_40k_cityscapes.py | 2 + .../dnl_r101-d8_769x769_80k_cityscapes.py | 2 + .../dnl_r50-d8_512x1024_40k_cityscapes.py | 4 + .../dnl_r50-d8_512x1024_80k_cityscapes.py | 4 + .../dnlnet/dnl_r50-d8_512x512_160k_ade20k.py | 6 + .../dnlnet/dnl_r50-d8_512x512_80k_ade20k.py | 6 + .../dnl_r50-d8_769x769_40k_cityscapes.py | 9 ++ .../dnl_r50-d8_769x769_80k_cityscapes.py | 12 ++ mmseg/models/decode_heads/__init__.py | 3 +- mmseg/models/decode_heads/dnl_head.py | 131 ++++++++++++++++++ tests/test_models/test_forward.py | 5 + tests/test_models/test_heads.py | 47 ++++++- 19 files changed, 324 insertions(+), 4 deletions(-) create mode 100644 configs/_base_/models/dnl_r50-d8.py create mode 100644 configs/dnlnet/README.md create mode 100644 configs/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes.py create mode 100644 configs/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes.py create mode 100644 configs/dnlnet/dnl_r101-d8_512x512_160k_ade20k.py create mode 100644 configs/dnlnet/dnl_r101-d8_512x512_80k_ade20k.py create mode 100644 configs/dnlnet/dnl_r101-d8_769x769_40k_cityscapes.py create mode 100644 configs/dnlnet/dnl_r101-d8_769x769_80k_cityscapes.py create mode 100644 configs/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes.py create mode 100644 configs/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes.py create mode 100644 configs/dnlnet/dnl_r50-d8_512x512_160k_ade20k.py create mode 100644 configs/dnlnet/dnl_r50-d8_512x512_80k_ade20k.py create mode 100644 configs/dnlnet/dnl_r50-d8_769x769_40k_cityscapes.py create mode 100644 configs/dnlnet/dnl_r50-d8_769x769_80k_cityscapes.py create mode 100644 mmseg/models/decode_heads/dnl_head.py diff --git a/README.md b/README.md index c864afbce0..d0205fa6b4 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,9 @@ Supported methods: - [x] [ANN](configs/ann) - [x] [OCRNet](configs/ocrnet) - [x] [Fast-SCNN](configs/fastscnn) +- [x] [Semantic FPN](configs/sem_fpn) +- [x] [EMANet](configs/emanet) +- [x] [DNLNet](configs/dnlnet) - [x] [Mixed Precision (FP16) Training](configs/fp16/README.md) ## Installation diff --git a/configs/_base_/models/dnl_r50-d8.py b/configs/_base_/models/dnl_r50-d8.py new file mode 100644 index 0000000000..423dc3b065 --- /dev/null +++ b/configs/_base_/models/dnl_r50-d8.py @@ -0,0 +1,46 @@ +# model settings +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + type='EncoderDecoder', + pretrained='open-mmlab://resnet50_v1c', + backbone=dict( + type='ResNetV1c', + depth=50, + num_stages=4, + out_indices=(0, 1, 2, 3), + dilations=(1, 1, 2, 4), + strides=(1, 2, 1, 1), + norm_cfg=norm_cfg, + norm_eval=False, + style='pytorch', + contract_dilation=True), + decode_head=dict( + type='DNLHead', + in_channels=2048, + in_index=3, + channels=512, + dropout_ratio=0.1, + reduction=2, + use_scale=True, + mode='embedded_gaussian', + num_classes=19, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + auxiliary_head=dict( + type='FCNHead', + in_channels=1024, + in_index=2, + channels=256, + num_convs=1, + concat_input=False, + dropout_ratio=0.1, + num_classes=19, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))) +# model training and testing settings +train_cfg = dict() +test_cfg = dict(mode='whole') diff --git a/configs/dnlnet/README.md b/configs/dnlnet/README.md new file mode 100644 index 0000000000..925be2d6fb --- /dev/null +++ b/configs/dnlnet/README.md @@ -0,0 +1,40 @@ +# Disentangled Non-Local Neural Networks + +## Introduction + +This example is to reproduce ["Disentangled Non-Local Neural Networks"](https://arxiv.org/abs/2006.06668) for semantic segmentation. It is still in progress. + +## Citation +``` +@misc{yin2020disentangled, + title={Disentangled Non-Local Neural Networks}, + author={Minghao Yin and Zhuliang Yao and Yue Cao and Xiu Li and Zheng Zhang and Stephen Lin and Han Hu}, + year={2020}, + booktitle={ECCV} +} +``` + +## Results and models (in progress) + +### Cityscapes + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | +|--------|----------|-----------|--------:|---------:|----------------|------:|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| dnl | R-50-D8 | 512x1024 | 40000 | 7.3 | 2.56 | 78.61 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes/dnl_r50-d8_512x1024_40k_cityscapes_20200904_233629-53d4ea93.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes/dnl_r50-d8_512x1024_40k_cityscapes-20200904_233629.log.json) | +| dnl | R-101-D8 | 512x1024 | 40000 | 10.9 | 1.96 | 78.31 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes/dnl_r101-d8_512x1024_40k_cityscapes_20200904_233629-9928ffef.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes/dnl_r101-d8_512x1024_40k_cityscapes-20200904_233629.log.json) | +| dnl | R-50-D8 | 769x769 | 40000 | 9.2 | 1.50 | 78.44 | 80.27 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_40k_cityscapes/dnl_r50-d8_769x769_40k_cityscapes_20200820_232206-0f283785.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_40k_cityscapes/dnl_r50-d8_769x769_40k_cityscapes-20200820_232206.log.json) | +| dnl | R-101-D8 | 769x769 | 40000 | 12.6 | 1.02 | 76.39 | 77.77 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_40k_cityscapes/dnl_r101-d8_769x769_40k_cityscapes_20200820_171256-76c596df.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_40k_cityscapes/dnl_r101-d8_769x769_40k_cityscapes-20200820_171256.log.json) | +| dnl | R-50-D8 | 512x1024 | 80000 | - | - | 79.33 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes/dnl_r50-d8_512x1024_80k_cityscapes_20200904_233629-58b2f778.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes/dnl_r50-d8_512x1024_80k_cityscapes-20200904_233629.log.json) | +| dnl | R-101-D8 | 512x1024 | 80000 | - | - | 80.41 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes/dnl_r101-d8_512x1024_80k_cityscapes_20200904_233629-758e2dd4.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes/dnl_r101-d8_512x1024_80k_cityscapes-20200904_233629.log.json) | +| dnl | R-50-D8 | 769x769 | 80000 | - | - | 79.36 | 80.70 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_80k_cityscapes/dnl_r50-d8_769x769_80k_cityscapes_20200820_011925-366bc4c7.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_80k_cityscapes/dnl_r50-d8_769x769_80k_cityscapes-20200820_011925.log.json) | +| dnl | R-101-D8 | 769x769 | 80000 | - | - | 79.41 | 80.68 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_80k_cityscapes/dnl_r101-d8_769x769_80k_cityscapes_20200821_051111-95ff84ab.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_80k_cityscapes/dnl_r101-d8_769x769_80k_cityscapes-20200821_051111.log.json) | + + +### ADE20K + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | +|--------|----------|-----------|--------:|---------:|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| DNL | R-50-D8 | 512x512 | 80000 | 8.8 | 20.66 | 41.76 | 42.99 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_80k_ade20k/dnl_r50-d8_512x512_80k_ade20k_20200826_183354-1cf6e0c1.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_80k_ade20k/dnl_r50-d8_512x512_80k_ade20k-20200826_183354.log.json) | +| DNL | R-101-D8 | 512x512 | 80000 | 12.8 | 12.54 | 43.76 | 44.91 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_80k_ade20k/dnl_r101-d8_512x512_80k_ade20k_20200826_183354-d820d6ea.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_80k_ade20k/dnl_r101-d8_512x512_80k_ade20k-20200826_183354.log.json) | +| DNL | R-50-D8 | 512x512 | 160000 | - | - | 41.87 | 43.01 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_160k_ade20k/dnl_r50-d8_512x512_160k_ade20k_20200826_183350-37837798.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_160k_ade20k/dnl_r50-d8_512x512_160k_ade20k-20200826_183350.log.json) | +| DNL | R-101-D8 | 512x512 | 160000 | - | - | 44.25 | 45.78 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_160k_ade20k/dnl_r101-d8_512x512_160k_ade20k_20200826_183350-ed522c61.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_160k_ade20k/dnl_r101-d8_512x512_160k_ade20k-20200826_183350.log.json) | diff --git a/configs/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes.py b/configs/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes.py new file mode 100644 index 0000000000..1a36e3c80a --- /dev/null +++ b/configs/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './dnl_r50-d8_512x1024_40k_cityscapes.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes.py b/configs/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..0f2e1b6da7 --- /dev/null +++ b/configs/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './dnl_r50-d8_512x1024_80k_cityscapes.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/dnlnet/dnl_r101-d8_512x512_160k_ade20k.py b/configs/dnlnet/dnl_r101-d8_512x512_160k_ade20k.py new file mode 100644 index 0000000000..aca44e478b --- /dev/null +++ b/configs/dnlnet/dnl_r101-d8_512x512_160k_ade20k.py @@ -0,0 +1,2 @@ +_base_ = './dnl_r50-d8_512x512_160k_ade20k.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/dnlnet/dnl_r101-d8_512x512_80k_ade20k.py b/configs/dnlnet/dnl_r101-d8_512x512_80k_ade20k.py new file mode 100644 index 0000000000..ebd27a1d1c --- /dev/null +++ b/configs/dnlnet/dnl_r101-d8_512x512_80k_ade20k.py @@ -0,0 +1,2 @@ +_base_ = './dnl_r50-d8_512x512_80k_ade20k.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/dnlnet/dnl_r101-d8_769x769_40k_cityscapes.py b/configs/dnlnet/dnl_r101-d8_769x769_40k_cityscapes.py new file mode 100644 index 0000000000..575e9d0134 --- /dev/null +++ b/configs/dnlnet/dnl_r101-d8_769x769_40k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './dnl_r50-d8_769x769_40k_cityscapes.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/dnlnet/dnl_r101-d8_769x769_80k_cityscapes.py b/configs/dnlnet/dnl_r101-d8_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..4f1b9e1941 --- /dev/null +++ b/configs/dnlnet/dnl_r101-d8_769x769_80k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './dnl_r50-d8_769x769_80k_cityscapes.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes.py b/configs/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes.py new file mode 100644 index 0000000000..f7aa7444d4 --- /dev/null +++ b/configs/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes.py @@ -0,0 +1,4 @@ +_base_ = [ + '../_base_/models/dnl_r50-d8.py', '../_base_/datasets/cityscapes.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' +] diff --git a/configs/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes.py b/configs/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..fdff93f543 --- /dev/null +++ b/configs/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,4 @@ +_base_ = [ + '../_base_/models/dnl_r50-d8.py', '../_base_/datasets/cityscapes.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' +] diff --git a/configs/dnlnet/dnl_r50-d8_512x512_160k_ade20k.py b/configs/dnlnet/dnl_r50-d8_512x512_160k_ade20k.py new file mode 100644 index 0000000000..5305689d09 --- /dev/null +++ b/configs/dnlnet/dnl_r50-d8_512x512_160k_ade20k.py @@ -0,0 +1,6 @@ +_base_ = [ + '../_base_/models/dnl_r50-d8.py', '../_base_/datasets/ade20k.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' +] +model = dict( + decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) diff --git a/configs/dnlnet/dnl_r50-d8_512x512_80k_ade20k.py b/configs/dnlnet/dnl_r50-d8_512x512_80k_ade20k.py new file mode 100644 index 0000000000..09604c3972 --- /dev/null +++ b/configs/dnlnet/dnl_r50-d8_512x512_80k_ade20k.py @@ -0,0 +1,6 @@ +_base_ = [ + '../_base_/models/dnl_r50-d8.py', '../_base_/datasets/ade20k.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' +] +model = dict( + decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) diff --git a/configs/dnlnet/dnl_r50-d8_769x769_40k_cityscapes.py b/configs/dnlnet/dnl_r50-d8_769x769_40k_cityscapes.py new file mode 100644 index 0000000000..a39ef22988 --- /dev/null +++ b/configs/dnlnet/dnl_r50-d8_769x769_40k_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = [ + '../_base_/models/dnl_r50-d8.py', + '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_40k.py' +] +model = dict( + decode_head=dict(align_corners=True), + auxiliary_head=dict(align_corners=True)) +test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) diff --git a/configs/dnlnet/dnl_r50-d8_769x769_80k_cityscapes.py b/configs/dnlnet/dnl_r50-d8_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..aba808073d --- /dev/null +++ b/configs/dnlnet/dnl_r50-d8_769x769_80k_cityscapes.py @@ -0,0 +1,12 @@ +_base_ = [ + '../_base_/models/dnl_r50-d8.py', + '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_80k.py' +] +model = dict( + decode_head=dict(align_corners=True), + auxiliary_head=dict(align_corners=True)) +test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) +optimizer = dict( + paramwise_cfg=dict( + custom_keys=dict(theta=dict(wd_mult=0.), phi=dict(wd_mult=0.)))) diff --git a/mmseg/models/decode_heads/__init__.py b/mmseg/models/decode_heads/__init__.py index a4a06d2af8..0730827cab 100644 --- a/mmseg/models/decode_heads/__init__.py +++ b/mmseg/models/decode_heads/__init__.py @@ -2,6 +2,7 @@ from .aspp_head import ASPPHead from .cc_head import CCHead from .da_head import DAHead +from .dnl_head import DNLHead from .ema_head import EMAHead from .enc_head import EncHead from .fcn_head import FCNHead @@ -18,5 +19,5 @@ __all__ = [ 'FCNHead', 'PSPHead', 'ASPPHead', 'PSAHead', 'NLHead', 'GCHead', 'CCHead', 'UPerHead', 'DepthwiseSeparableASPPHead', 'ANNHead', 'DAHead', 'OCRHead', - 'EncHead', 'DepthwiseSeparableFCNHead', 'FPNHead', 'EMAHead' + 'EncHead', 'DepthwiseSeparableFCNHead', 'FPNHead', 'EMAHead', 'DNLHead' ] diff --git a/mmseg/models/decode_heads/dnl_head.py b/mmseg/models/decode_heads/dnl_head.py new file mode 100644 index 0000000000..52a662ccb6 --- /dev/null +++ b/mmseg/models/decode_heads/dnl_head.py @@ -0,0 +1,131 @@ +import torch +from mmcv.cnn import NonLocal2d +from torch import nn + +from ..builder import HEADS +from .fcn_head import FCNHead + + +class DisentangledNonLocal2d(NonLocal2d): + """Disentangled Non-Local Blocks. + + Args: + temperature (float): Temperature to adjust attention. Default: 0.05 + """ + + def __init__(self, *arg, temperature, **kwargs): + super().__init__(*arg, **kwargs) + self.temperature = temperature + self.conv_mask = nn.Conv2d(self.in_channels, 1, kernel_size=1) + + def embedded_gaussian(self, theta_x, phi_x): + """Embedded gaussian with temperature.""" + + # NonLocal2d pairwise_weight: [N, HxW, HxW] + pairwise_weight = torch.matmul(theta_x, phi_x) + if self.use_scale: + # theta_x.shape[-1] is `self.inter_channels` + pairwise_weight /= theta_x.shape[-1]**0.5 + pairwise_weight /= self.temperature + pairwise_weight = pairwise_weight.softmax(dim=-1) + return pairwise_weight + + def forward(self, x): + # x: [N, C, H, W] + n = x.size(0) + + # g_x: [N, HxW, C] + g_x = self.g(x).view(n, self.inter_channels, -1) + g_x = g_x.permute(0, 2, 1) + + # theta_x: [N, HxW, C], phi_x: [N, C, HxW] + if self.mode == 'gaussian': + theta_x = x.view(n, self.in_channels, -1) + theta_x = theta_x.permute(0, 2, 1) + if self.sub_sample: + phi_x = self.phi(x).view(n, self.in_channels, -1) + else: + phi_x = x.view(n, self.in_channels, -1) + elif self.mode == 'concatenation': + theta_x = self.theta(x).view(n, self.inter_channels, -1, 1) + phi_x = self.phi(x).view(n, self.inter_channels, 1, -1) + else: + theta_x = self.theta(x).view(n, self.inter_channels, -1) + theta_x = theta_x.permute(0, 2, 1) + phi_x = self.phi(x).view(n, self.inter_channels, -1) + + # subtract mean + theta_x -= theta_x.mean(dim=-2, keepdim=True) + phi_x -= phi_x.mean(dim=-1, keepdim=True) + + pairwise_func = getattr(self, self.mode) + # pairwise_weight: [N, HxW, HxW] + pairwise_weight = pairwise_func(theta_x, phi_x) + + # y: [N, HxW, C] + y = torch.matmul(pairwise_weight, g_x) + # y: [N, C, H, W] + y = y.permute(0, 2, 1).contiguous().reshape(n, self.inter_channels, + *x.size()[2:]) + + # unary_mask: [N, 1, HxW] + unary_mask = self.conv_mask(x) + unary_mask = unary_mask.view(n, 1, -1) + unary_mask = unary_mask.softmax(dim=-1) + # unary_x: [N, 1, C] + unary_x = torch.matmul(unary_mask, g_x) + # unary_x: [N, C, 1, 1] + unary_x = unary_x.permute(0, 2, 1).contiguous().reshape( + n, self.inter_channels, 1, 1) + + output = x + self.conv_out(y + unary_x) + + return output + + +@HEADS.register_module() +class DNLHead(FCNHead): + """Disentangled Non-Local Neural Networks. + + This head is the implementation of `DNLNet + `_. + + Args: + reduction (int): Reduction factor of projection transform. Default: 2. + use_scale (bool): Whether to scale pairwise_weight by + sqrt(1/inter_channels). Default: False. + mode (str): The nonlocal mode. Options are 'embedded_gaussian', + 'dot_product'. Default: 'embedded_gaussian.'. + temperature (float): Temperature to adjust attention. Default: 0.05 + """ + + def __init__(self, + reduction=2, + use_scale=True, + mode='embedded_gaussian', + temperature=0.05, + **kwargs): + super(DNLHead, self).__init__(num_convs=2, **kwargs) + self.reduction = reduction + self.use_scale = use_scale + self.mode = mode + self.temperature = temperature + self.dnl_block = DisentangledNonLocal2d( + in_channels=self.channels, + reduction=self.reduction, + use_scale=self.use_scale, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + mode=self.mode, + temperature=self.temperature) + + def forward(self, inputs): + """Forward function.""" + x = self._transform_inputs(inputs) + output = self.convs[0](x) + output = self.dnl_block(output) + output = self.convs[1](output) + if self.concat_input: + output = self.conv_cat(torch.cat([x, output], dim=1)) + output = self.cls_seg(output) + return output diff --git a/tests/test_models/test_forward.py b/tests/test_models/test_forward.py index afca42c285..dbe9035103 100644 --- a/tests/test_models/test_forward.py +++ b/tests/test_models/test_forward.py @@ -162,6 +162,11 @@ def test_mobilenet_v2_forward(): 'mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes.py') +def test_dnlnet_forward(): + _test_encoder_decoder_forward( + 'dnlnet/dnl_r50-d8_512x1024_40k_cityscapes.py') + + def test_emanet_forward(): _test_encoder_decoder_forward( 'emanet/emanet_r50-d8_512x1024_80k_cityscapes.py') diff --git a/tests/test_models/test_heads.py b/tests/test_models/test_heads.py index 8a36d1ffc7..b9ba02a68d 100644 --- a/tests/test_models/test_heads.py +++ b/tests/test_models/test_heads.py @@ -6,9 +6,10 @@ from mmcv.utils.parrots_wrapper import SyncBatchNorm from mmseg.models.decode_heads import (ANNHead, ASPPHead, CCHead, DAHead, - DepthwiseSeparableASPPHead, EMAHead, - EncHead, FCNHead, GCHead, NLHead, - OCRHead, PSAHead, PSPHead, UPerHead) + DepthwiseSeparableASPPHead, DNLHead, + EMAHead, EncHead, FCNHead, GCHead, + NLHead, OCRHead, PSAHead, PSPHead, + UPerHead) from mmseg.models.decode_heads.decode_head import BaseDecodeHead @@ -541,6 +542,46 @@ def test_dw_aspp_head(): assert outputs.shape == (1, head.num_classes, 45, 45) +def test_dnl_head(): + # DNL with 'embedded_gaussian' mode + head = DNLHead(in_channels=32, channels=16, num_classes=19) + assert len(head.convs) == 2 + assert hasattr(head, 'dnl_block') + assert head.dnl_block.temperature == 0.05 + inputs = [torch.randn(1, 32, 45, 45)] + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) + + # NonLocal2d with 'dot_product' mode + head = DNLHead( + in_channels=32, channels=16, num_classes=19, mode='dot_product') + inputs = [torch.randn(1, 32, 45, 45)] + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) + + # NonLocal2d with 'gaussian' mode + head = DNLHead( + in_channels=32, channels=16, num_classes=19, mode='gaussian') + inputs = [torch.randn(1, 32, 45, 45)] + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) + + # NonLocal2d with 'concatenation' mode + head = DNLHead( + in_channels=32, channels=16, num_classes=19, mode='concatenation') + inputs = [torch.randn(1, 32, 45, 45)] + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) + + def test_emanet_head(): head = EMAHead( in_channels=32, From 7ec82394292b0a13f17694d8bc4674428a9ef20c Mon Sep 17 00:00:00 2001 From: Hongkai Zhang Date: Mon, 7 Sep 2020 17:02:00 +0800 Subject: [PATCH 031/706] Fix typo (#110) --- docs/model_zoo.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/model_zoo.md b/docs/model_zoo.md index 3919a49180..39cb0be6f5 100644 --- a/docs/model_zoo.md +++ b/docs/model_zoo.md @@ -55,7 +55,7 @@ Please refer to [NonLocal Net](https://github.com/open-mmlab/mmsegmentation/blob ### EncNet -Please refer to [NonLocal Net](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet) for details. +Please refer to [EncNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet) for details. ### CCNet From 4448647e90da81e21c389968bca4d14e9da1a754 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Mon, 7 Sep 2020 19:59:44 +0800 Subject: [PATCH 032/706] [Feature] Support PointRend (#109) * [Feature] Support PointRend * add previous test * update modelzoo --- README.md | 1 + configs/_base_/models/pointrend_r50.py | 56 +++ configs/point_rend/README.md | 27 ++ .../pointrend_r101_512x1024_80k_cityscapes.py | 2 + .../pointrend_r101_512x512_160k_ade20k.py | 2 + .../pointrend_r50_512x1024_80k_cityscapes.py | 5 + .../pointrend_r50_512x512_160k_ade20k.py | 32 ++ docs/model_zoo.md | 16 + mmseg/models/decode_heads/__init__.py | 4 +- mmseg/models/decode_heads/point_head.py | 349 ++++++++++++++++++ tests/test_models/test_forward.py | 5 + tests/test_models/test_heads.py | 59 ++- 12 files changed, 554 insertions(+), 4 deletions(-) create mode 100644 configs/_base_/models/pointrend_r50.py create mode 100644 configs/point_rend/README.md create mode 100644 configs/point_rend/pointrend_r101_512x1024_80k_cityscapes.py create mode 100644 configs/point_rend/pointrend_r101_512x512_160k_ade20k.py create mode 100644 configs/point_rend/pointrend_r50_512x1024_80k_cityscapes.py create mode 100644 configs/point_rend/pointrend_r50_512x512_160k_ade20k.py create mode 100644 mmseg/models/decode_heads/point_head.py diff --git a/README.md b/README.md index d0205fa6b4..14484f93aa 100644 --- a/README.md +++ b/README.md @@ -73,6 +73,7 @@ Supported methods: - [x] [OCRNet](configs/ocrnet) - [x] [Fast-SCNN](configs/fastscnn) - [x] [Semantic FPN](configs/sem_fpn) +- [x] [PointRend](configs/point_rend) - [x] [EMANet](configs/emanet) - [x] [DNLNet](configs/dnlnet) - [x] [Mixed Precision (FP16) Training](configs/fp16/README.md) diff --git a/configs/_base_/models/pointrend_r50.py b/configs/_base_/models/pointrend_r50.py new file mode 100644 index 0000000000..1a56af3a87 --- /dev/null +++ b/configs/_base_/models/pointrend_r50.py @@ -0,0 +1,56 @@ +# model settings +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + type='CascadeEncoderDecoder', + num_stages=2, + pretrained='open-mmlab://resnet50_v1c', + backbone=dict( + type='ResNetV1c', + depth=50, + num_stages=4, + out_indices=(0, 1, 2, 3), + dilations=(1, 1, 1, 1), + strides=(1, 2, 2, 2), + norm_cfg=norm_cfg, + norm_eval=False, + style='pytorch', + contract_dilation=True), + neck=dict( + type='FPN', + in_channels=[256, 512, 1024, 2048], + out_channels=256, + num_outs=4), + decode_head=[ + dict( + type='FPNHead', + in_channels=[256, 256, 256, 256], + in_index=[0, 1, 2, 3], + feature_strides=[4, 8, 16, 32], + channels=128, + dropout_ratio=-1, + num_classes=19, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + dict( + type='PointHead', + in_channels=[256], + in_index=[0], + channels=256, + num_fcs=3, + coarse_pred_each_layer=True, + dropout_ratio=-1, + num_classes=19, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)) + ]) +# model training and testing settings +train_cfg = dict( + num_points=2048, oversample_ratio=3, importance_sample_ratio=0.75) +test_cfg = dict( + mode='whole', + subdivision_steps=2, + subdivision_num_points=8196, + scale_factor=2) diff --git a/configs/point_rend/README.md b/configs/point_rend/README.md new file mode 100644 index 0000000000..11d1d423d5 --- /dev/null +++ b/configs/point_rend/README.md @@ -0,0 +1,27 @@ +# PointRend: Image Segmentation as Rendering + +## Introduction +``` +@misc{alex2019pointrend, + title={PointRend: Image Segmentation as Rendering}, + author={Alexander Kirillov and Yuxin Wu and Kaiming He and Ross Girshick}, + year={2019}, + eprint={1912.08193}, + archivePrefix={arXiv}, + primaryClass={cs.CV} +} +``` + +## Results and models + +### Cityscapes +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | +|-----------|----------|-----------|--------:|---------:|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| PointRend | R-50 | 512x1024 | 80000 | 3.1 | 8.48 | 76.47 | 78.13 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x1024_80k_cityscapes/pointrend_r50_512x1024_80k_cityscapes_20200711_015821-bb1ff523.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x1024_80k_cityscapes/pointrend_r50_512x1024_80k_cityscapes-20200715_214714.log.json) | +| PointRend | R-101 | 512x1024 | 80000 | 4.2 | 7.00 | 78.30 | 79.97 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x1024_80k_cityscapes/pointrend_r101_512x1024_80k_cityscapes_20200711_170850-d0ca84be.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x1024_80k_cityscapes/pointrend_r101_512x1024_80k_cityscapes-20200715_214824.log.json) | + +### ADE20K +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | +|-----------|----------|-----------|--------:|---------:|----------------|------:|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| PointRend | R-50 | 512x512 | 160000 | 5.1 | 17.31 | 37.64 | 39.17 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x512_160k_ade20k/pointrend_r50_512x512_160k_ade20k_20200807_232644-ac3febf2.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x512_160k_ade20k/pointrend_r50_512x512_160k_ade20k-20200807_232644.log.json) | +| PointRend | R-101 | 512x512 | 160000 | 6.1 | 15.50 | 40.02 | 41.60 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x512_160k_ade20k/pointrend_r101_512x512_160k_ade20k_20200808_030852-8834902a.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x512_160k_ade20k/pointrend_r101_512x512_160k_ade20k-20200808_030852.log.json) | diff --git a/configs/point_rend/pointrend_r101_512x1024_80k_cityscapes.py b/configs/point_rend/pointrend_r101_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..a8c14c8cf9 --- /dev/null +++ b/configs/point_rend/pointrend_r101_512x1024_80k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './pointrend_r50_512x1024_80k_cityscapes.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/point_rend/pointrend_r101_512x512_160k_ade20k.py b/configs/point_rend/pointrend_r101_512x512_160k_ade20k.py new file mode 100644 index 0000000000..4d1f8c8154 --- /dev/null +++ b/configs/point_rend/pointrend_r101_512x512_160k_ade20k.py @@ -0,0 +1,2 @@ +_base_ = './pointrend_r50_512x512_160k_ade20k.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/point_rend/pointrend_r50_512x1024_80k_cityscapes.py b/configs/point_rend/pointrend_r50_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..96cbaa48d6 --- /dev/null +++ b/configs/point_rend/pointrend_r50_512x1024_80k_cityscapes.py @@ -0,0 +1,5 @@ +_base_ = [ + '../_base_/models/pointrend_r50.py', '../_base_/datasets/cityscapes.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' +] +lr_config = dict(warmup='linear', warmup_iters=200) diff --git a/configs/point_rend/pointrend_r50_512x512_160k_ade20k.py b/configs/point_rend/pointrend_r50_512x512_160k_ade20k.py new file mode 100644 index 0000000000..db8c634c0f --- /dev/null +++ b/configs/point_rend/pointrend_r50_512x512_160k_ade20k.py @@ -0,0 +1,32 @@ +_base_ = [ + '../_base_/models/pointrend_r50.py', '../_base_/datasets/ade20k.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' +] +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict(decode_head=[ + dict( + type='FPNHead', + in_channels=[256, 256, 256, 256], + in_index=[0, 1, 2, 3], + feature_strides=[4, 8, 16, 32], + channels=128, + dropout_ratio=-1, + num_classes=150, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + dict( + type='PointHead', + in_channels=[256], + in_index=[0], + channels=256, + num_fcs=3, + coarse_pred_each_layer=True, + dropout_ratio=-1, + num_classes=150, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)) +]) +lr_config = dict(warmup='linear', warmup_iters=200) diff --git a/docs/model_zoo.md b/docs/model_zoo.md index 39cb0be6f5..404eb44832 100644 --- a/docs/model_zoo.md +++ b/docs/model_zoo.md @@ -89,6 +89,22 @@ Please refer to [Fast-SCNN](https://github.com/open-mmlab/mmsegmentation/blob/ma Please refer to [ResNeSt](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/resnest) for details. +### Semantic FPN + +Please refer to [Semantic FPN](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/semfpn) for details. + +### PointRend + +Please refer to [PointRend](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/point_rend) for details. + +### EMANet + +Please refer to [EMANet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/emanet) for details. + +### DNLNet + +Please refer to [DNLNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dnlnet) for details. + ### Mixed Precision (FP16) Training Please refer [Mixed Precision (FP16) Training](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/README.md) for details. diff --git a/mmseg/models/decode_heads/__init__.py b/mmseg/models/decode_heads/__init__.py index 0730827cab..6f3217ec03 100644 --- a/mmseg/models/decode_heads/__init__.py +++ b/mmseg/models/decode_heads/__init__.py @@ -10,6 +10,7 @@ from .gc_head import GCHead from .nl_head import NLHead from .ocr_head import OCRHead +from .point_head import PointHead from .psa_head import PSAHead from .psp_head import PSPHead from .sep_aspp_head import DepthwiseSeparableASPPHead @@ -19,5 +20,6 @@ __all__ = [ 'FCNHead', 'PSPHead', 'ASPPHead', 'PSAHead', 'NLHead', 'GCHead', 'CCHead', 'UPerHead', 'DepthwiseSeparableASPPHead', 'ANNHead', 'DAHead', 'OCRHead', - 'EncHead', 'DepthwiseSeparableFCNHead', 'FPNHead', 'EMAHead', 'DNLHead' + 'EncHead', 'DepthwiseSeparableFCNHead', 'FPNHead', 'EMAHead', 'DNLHead', + 'PointHead' ] diff --git a/mmseg/models/decode_heads/point_head.py b/mmseg/models/decode_heads/point_head.py new file mode 100644 index 0000000000..90a23635d9 --- /dev/null +++ b/mmseg/models/decode_heads/point_head.py @@ -0,0 +1,349 @@ +# Modified from https://github.com/facebookresearch/detectron2/tree/master/projects/PointRend/point_head/point_head.py # noqa + +import torch +import torch.nn as nn +from mmcv.cnn import ConvModule, normal_init +from mmcv.ops import point_sample + +from mmseg.models.builder import HEADS +from mmseg.ops import resize +from ..losses import accuracy +from .cascade_decode_head import BaseCascadeDecodeHead + + +def calculate_uncertainty(seg_logits): + """Estimate uncertainty based on seg logits. + + For each location of the prediction ``seg_logits`` we estimate + uncertainty as the difference between top first and top second + predicted logits. + + Args: + seg_logits (Tensor): Semantic segmentation logits, + shape (batch_size, num_classes, height, width). + + Returns: + scores (Tensor): T uncertainty scores with the most uncertain + locations having the highest uncertainty score, shape ( + batch_size, 1, height, width) + """ + top2_scores = torch.topk(seg_logits, k=2, dim=1)[0] + return (top2_scores[:, 1] - top2_scores[:, 0]).unsqueeze(1) + + +@HEADS.register_module() +class PointHead(BaseCascadeDecodeHead): + """A mask point head use in PointRend. + + ``PointHead`` use shared multi-layer perceptron (equivalent to + nn.Conv1d) to predict the logit of input points. The fine-grained feature + and coarse feature will be concatenate together for predication. + + Args: + num_fcs (int): Number of fc layers in the head. Default: 3. + in_channels (int): Number of input channels. Default: 256. + fc_channels (int): Number of fc channels. Default: 256. + num_classes (int): Number of classes for logits. Default: 80. + class_agnostic (bool): Whether use class agnostic classification. + If so, the output channels of logits will be 1. Default: False. + coarse_pred_each_layer (bool): Whether concatenate coarse feature with + the output of each fc layer. Default: True. + conv_cfg (dict|None): Dictionary to construct and config conv layer. + Default: dict(type='Conv1d')) + norm_cfg (dict|None): Dictionary to construct and config norm layer. + Default: None. + loss_point (dict): Dictionary to construct and config loss layer of + point head. Default: dict(type='CrossEntropyLoss', use_mask=True, + loss_weight=1.0). + """ + + def __init__(self, + num_fcs=3, + coarse_pred_each_layer=True, + conv_cfg=dict(type='Conv1d'), + norm_cfg=None, + act_cfg=dict(type='ReLU', inplace=False), + **kwargs): + super(PointHead, self).__init__( + input_transform='multiple_select', + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg, + **kwargs) + + self.num_fcs = num_fcs + self.coarse_pred_each_layer = coarse_pred_each_layer + + fc_in_channels = sum(self.in_channels) + self.num_classes + fc_channels = self.channels + self.fcs = nn.ModuleList() + for k in range(num_fcs): + fc = ConvModule( + fc_in_channels, + fc_channels, + kernel_size=1, + stride=1, + padding=0, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + self.fcs.append(fc) + fc_in_channels = fc_channels + fc_in_channels += self.num_classes if self.coarse_pred_each_layer \ + else 0 + self.fc_seg = nn.Conv1d( + fc_in_channels, + self.num_classes, + kernel_size=1, + stride=1, + padding=0) + if self.dropout_ratio > 0: + self.dropout = nn.Dropout(self.dropout_ratio) + delattr(self, 'conv_seg') + + def init_weights(self): + """Initialize weights of classification layer.""" + normal_init(self.fc_seg, std=0.001) + + def cls_seg(self, feat): + """Classify each pixel with fc.""" + if self.dropout is not None: + feat = self.dropout(feat) + output = self.fc_seg(feat) + return output + + def forward(self, fine_grained_point_feats, coarse_point_feats): + x = torch.cat([fine_grained_point_feats, coarse_point_feats], dim=1) + for fc in self.fcs: + x = fc(x) + if self.coarse_pred_each_layer: + x = torch.cat((x, coarse_point_feats), dim=1) + return self.cls_seg(x) + + def _get_fine_grained_point_feats(self, x, points): + """Sample from fine grained features. + + Args: + x (list[Tensor]): Feature pyramid from by neck or backbone. + points (Tensor): Point coordinates, shape (batch_size, + num_points, 2). + + Returns: + fine_grained_feats (Tensor): Sampled fine grained feature, + shape (batch_size, sum(channels of x), num_points). + """ + + fine_grained_feats_list = [ + point_sample(_, points, align_corners=self.align_corners) + for _ in x + ] + if len(fine_grained_feats_list) > 1: + fine_grained_feats = torch.cat(fine_grained_feats_list, dim=1) + else: + fine_grained_feats = fine_grained_feats_list[0] + + return fine_grained_feats + + def _get_coarse_point_feats(self, prev_output, points): + """Sample from fine grained features. + + Args: + prev_output (list[Tensor]): Prediction of previous decode head. + points (Tensor): Point coordinates, shape (batch_size, + num_points, 2). + + Returns: + coarse_feats (Tensor): Sampled coarse feature, shape (batch_size, + num_classes, num_points). + """ + + coarse_feats = point_sample( + prev_output, points, align_corners=self.align_corners) + + return coarse_feats + + def forward_train(self, inputs, prev_output, img_metas, gt_semantic_seg, + train_cfg): + """Forward function for training. + Args: + inputs (list[Tensor]): List of multi-level img features. + prev_output (Tensor): The output of previous decode head. + img_metas (list[dict]): List of image info dict where each dict + has: 'img_shape', 'scale_factor', 'flip', and may also contain + 'filename', 'ori_shape', 'pad_shape', and 'img_norm_cfg'. + For details on the values of these keys see + `mmseg/datasets/pipelines/formatting.py:Collect`. + gt_semantic_seg (Tensor): Semantic segmentation masks + used if the architecture supports semantic segmentation task. + train_cfg (dict): The training config. + + Returns: + dict[str, Tensor]: a dictionary of loss components + """ + x = self._transform_inputs(inputs) + with torch.no_grad(): + points = self.get_points_train( + prev_output, calculate_uncertainty, cfg=train_cfg) + fine_grained_point_feats = self._get_fine_grained_point_feats( + x, points) + coarse_point_feats = self._get_coarse_point_feats(prev_output, points) + point_logits = self.forward(fine_grained_point_feats, + coarse_point_feats) + point_label = point_sample( + gt_semantic_seg.float(), + points, + mode='nearest', + align_corners=self.align_corners) + point_label = point_label.squeeze(1).long() + + losses = self.losses(point_logits, point_label) + + return losses + + def forward_test(self, inputs, prev_output, img_metas, test_cfg): + """Forward function for testing. + + Args: + inputs (list[Tensor]): List of multi-level img features. + prev_output (Tensor): The output of previous decode head. + img_metas (list[dict]): List of image info dict where each dict + has: 'img_shape', 'scale_factor', 'flip', and may also contain + 'filename', 'ori_shape', 'pad_shape', and 'img_norm_cfg'. + For details on the values of these keys see + `mmseg/datasets/pipelines/formatting.py:Collect`. + test_cfg (dict): The testing config. + + Returns: + Tensor: Output segmentation map. + """ + + x = self._transform_inputs(inputs) + refined_seg_logits = prev_output.clone() + for _ in range(test_cfg.subdivision_steps): + refined_seg_logits = resize( + refined_seg_logits, + scale_factor=test_cfg.scale_factor, + mode='bilinear', + align_corners=self.align_corners) + batch_size, channels, height, width = refined_seg_logits.shape + point_indices, points = self.get_points_test( + refined_seg_logits, calculate_uncertainty, cfg=test_cfg) + fine_grained_point_feats = self._get_fine_grained_point_feats( + x, points) + coarse_point_feats = self._get_coarse_point_feats( + prev_output, points) + point_logits = self.forward(fine_grained_point_feats, + coarse_point_feats) + + point_indices = point_indices.unsqueeze(1).expand(-1, channels, -1) + refined_seg_logits = refined_seg_logits.reshape( + batch_size, channels, height * width) + refined_seg_logits = refined_seg_logits.scatter_( + 2, point_indices, point_logits) + refined_seg_logits = refined_seg_logits.view( + batch_size, channels, height, width) + + return refined_seg_logits + + def losses(self, point_logits, point_label): + """Compute segmentation loss.""" + loss = dict() + loss['loss_point'] = self.loss_decode( + point_logits, point_label, ignore_index=self.ignore_index) + loss['acc_point'] = accuracy(point_logits, point_label) + return loss + + def get_points_train(self, seg_logits, uncertainty_func, cfg): + """Sample points for training. + + Sample points in [0, 1] x [0, 1] coordinate space based on their + uncertainty. The uncertainties are calculated for each point using + 'uncertainty_func' function that takes point's logit prediction as + input. + + Args: + seg_logits (Tensor): Semantic segmentation logits, shape ( + batch_size, num_classes, height, width). + uncertainty_func (func): uncertainty calculation function. + cfg (dict): Training config of point head. + + Returns: + point_coords (Tensor): A tensor of shape (batch_size, num_points, + 2) that contains the coordinates of ``num_points`` sampled + points. + """ + num_points = cfg.num_points + oversample_ratio = cfg.oversample_ratio + importance_sample_ratio = cfg.importance_sample_ratio + assert oversample_ratio >= 1 + assert 0 <= importance_sample_ratio <= 1 + batch_size = seg_logits.shape[0] + num_sampled = int(num_points * oversample_ratio) + point_coords = torch.rand( + batch_size, num_sampled, 2, device=seg_logits.device) + point_logits = point_sample(seg_logits, point_coords) + # It is crucial to calculate uncertainty based on the sampled + # prediction value for the points. Calculating uncertainties of the + # coarse predictions first and sampling them for points leads to + # incorrect results. To illustrate this: assume uncertainty func( + # logits)=-abs(logits), a sampled point between two coarse + # predictions with -1 and 1 logits has 0 logits, and therefore 0 + # uncertainty value. However, if we calculate uncertainties for the + # coarse predictions first, both will have -1 uncertainty, + # and sampled point will get -1 uncertainty. + point_uncertainties = uncertainty_func(point_logits) + num_uncertain_points = int(importance_sample_ratio * num_points) + num_random_points = num_points - num_uncertain_points + idx = torch.topk( + point_uncertainties[:, 0, :], k=num_uncertain_points, dim=1)[1] + shift = num_sampled * torch.arange( + batch_size, dtype=torch.long, device=seg_logits.device) + idx += shift[:, None] + point_coords = point_coords.view(-1, 2)[idx.view(-1), :].view( + batch_size, num_uncertain_points, 2) + if num_random_points > 0: + rand_point_coords = torch.rand( + batch_size, num_random_points, 2, device=seg_logits.device) + point_coords = torch.cat((point_coords, rand_point_coords), dim=1) + return point_coords + + def get_points_test(self, seg_logits, uncertainty_func, cfg): + """Sample points for testing. + + Find ``num_points`` most uncertain points from ``uncertainty_map``. + + Args: + seg_logits (Tensor): A tensor of shape (batch_size, num_classes, + height, width) for class-specific or class-agnostic prediction. + uncertainty_func (func): uncertainty calculation function. + cfg (dict): Testing config of point head. + + Returns: + point_indices (Tensor): A tensor of shape (batch_size, num_points) + that contains indices from [0, height x width) of the most + uncertain points. + point_coords (Tensor): A tensor of shape (batch_size, num_points, + 2) that contains [0, 1] x [0, 1] normalized coordinates of the + most uncertain points from the ``height x width`` grid . + """ + + num_points = cfg.subdivision_num_points + uncertainty_map = uncertainty_func(seg_logits) + batch_size, _, height, width = uncertainty_map.shape + h_step = 1.0 / height + w_step = 1.0 / width + + uncertainty_map = uncertainty_map.view(batch_size, height * width) + num_points = min(height * width, num_points) + point_indices = uncertainty_map.topk(num_points, dim=1)[1] + point_coords = torch.zeros( + batch_size, + num_points, + 2, + dtype=torch.float, + device=seg_logits.device) + point_coords[:, :, 0] = w_step / 2.0 + (point_indices % + width).float() * w_step + point_coords[:, :, 1] = h_step / 2.0 + (point_indices // + width).float() * h_step + return point_indices, point_coords diff --git a/tests/test_models/test_forward.py b/tests/test_models/test_forward.py index dbe9035103..be797a74d0 100644 --- a/tests/test_models/test_forward.py +++ b/tests/test_models/test_forward.py @@ -157,6 +157,11 @@ def test_sem_fpn_forward(): _test_encoder_decoder_forward('sem_fpn/fpn_r50_512x1024_80k_cityscapes.py') +def test_point_rend_forward(): + _test_encoder_decoder_forward( + 'point_rend/pointrend_r50_512x1024_80k_cityscapes.py') + + def test_mobilenet_v2_forward(): _test_encoder_decoder_forward( 'mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes.py') diff --git a/tests/test_models/test_heads.py b/tests/test_models/test_heads.py index b9ba02a68d..02460cbc4e 100644 --- a/tests/test_models/test_heads.py +++ b/tests/test_models/test_heads.py @@ -3,13 +3,15 @@ import pytest import torch from mmcv.cnn import ConvModule +from mmcv.utils import ConfigDict from mmcv.utils.parrots_wrapper import SyncBatchNorm from mmseg.models.decode_heads import (ANNHead, ASPPHead, CCHead, DAHead, - DepthwiseSeparableASPPHead, DNLHead, + DepthwiseSeparableASPPHead, + DepthwiseSeparableFCNHead, DNLHead, EMAHead, EncHead, FCNHead, GCHead, - NLHead, OCRHead, PSAHead, PSPHead, - UPerHead) + NLHead, OCRHead, PointHead, PSAHead, + PSPHead, UPerHead) from mmseg.models.decode_heads.decode_head import BaseDecodeHead @@ -542,6 +544,40 @@ def test_dw_aspp_head(): assert outputs.shape == (1, head.num_classes, 45, 45) +def test_sep_fcn_head(): + # test sep_fcn_head with concat_input=False + head = DepthwiseSeparableFCNHead( + in_channels=128, + channels=128, + concat_input=False, + num_classes=19, + in_index=-1, + norm_cfg=dict(type='BN', requires_grad=True, momentum=0.01)) + x = [torch.rand(2, 128, 32, 32)] + output = head(x) + assert output.shape == (2, head.num_classes, 32, 32) + assert not head.concat_input + from mmseg.ops.separable_conv_module import DepthwiseSeparableConvModule + assert isinstance(head.convs[0], DepthwiseSeparableConvModule) + assert isinstance(head.convs[1], DepthwiseSeparableConvModule) + assert head.conv_seg.kernel_size == (1, 1) + + head = DepthwiseSeparableFCNHead( + in_channels=64, + channels=64, + concat_input=True, + num_classes=19, + in_index=-1, + norm_cfg=dict(type='BN', requires_grad=True, momentum=0.01)) + x = [torch.rand(3, 64, 32, 32)] + output = head(x) + assert output.shape == (3, head.num_classes, 32, 32) + assert head.concat_input + from mmseg.ops.separable_conv_module import DepthwiseSeparableConvModule + assert isinstance(head.convs[0], DepthwiseSeparableConvModule) + assert isinstance(head.convs[1], DepthwiseSeparableConvModule) + + def test_dnl_head(): # DNL with 'embedded_gaussian' mode head = DNLHead(in_channels=32, channels=16, num_classes=19) @@ -598,3 +634,20 @@ def test_emanet_head(): head, inputs = to_cuda(head, inputs) outputs = head(inputs) assert outputs.shape == (1, head.num_classes, 45, 45) + + +def test_point_head(): + + inputs = [torch.randn(1, 32, 45, 45)] + point_head = PointHead( + in_channels=[32], in_index=[0], channels=16, num_classes=19) + assert len(point_head.fcs) == 3 + fcn_head = FCNHead(in_channels=32, channels=16, num_classes=19) + if torch.cuda.is_available(): + head, inputs = to_cuda(point_head, inputs) + head, inputs = to_cuda(fcn_head, inputs) + prev_output = fcn_head(inputs) + test_cfg = ConfigDict( + subdivision_steps=2, subdivision_num_points=8196, scale_factor=2) + output = point_head.forward_test(inputs, prev_output, None, test_cfg) + assert output.shape == (1, point_head.num_classes, 180, 180) From e2371a196e643c1b59f2cc0385ab124570d49213 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Thu, 10 Sep 2020 20:57:18 +0800 Subject: [PATCH 033/706] Bump to version 0.6 (#119) * Bump to version 0.6 * fixed format --- docs/changelog.md | 26 ++++++++++++++++++++++++++ mmseg/version.py | 2 +- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/docs/changelog.md b/docs/changelog.md index 9efa48b24d..58f31e601a 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,5 +1,31 @@ ## Changelog + +### V0.6 (10/09/2020) +**Highlights** +- Support new methods i.e. MobileNetV2, EMANet, DNL, PointRend, Semantic FPN, Fast-SCNN, +ResNeSt. + +**Bug Fixes** +- Fixed sliding inference ONNX export ([#90](https://github.com/open-mmlab/mmsegmentation/pull/90)) + +**New Features** +- Support MobileNet v2 ([#86](https://github.com/open-mmlab/mmsegmentation/pull/86)) +- Support EMANet ([#34](https://github.com/open-mmlab/mmsegmentation/pull/34)) +- Support DNL ([#37](https://github.com/open-mmlab/mmsegmentation/pull/37)) +- Support PointRend ([#109](https://github.com/open-mmlab/mmsegmentation/pull/109)) +- Support Semantic FPN ([#94](https://github.com/open-mmlab/mmsegmentation/pull/94)) +- Support Fast-SCNN ([#58](https://github.com/open-mmlab/mmsegmentation/pull/58)) +- Support ResNeSt backbone ([#47](https://github.com/open-mmlab/mmsegmentation/pull/47)) +- Support ONNX export (experimental) ([#12](https://github.com/open-mmlab/mmsegmentation/pull/12)) + +**Improvements** +- Support Upsample in ONNX ([#100](https://github.com/open-mmlab/mmsegmentation/pull/100)) +- Support Windows install (experimental) ([#75](https://github.com/open-mmlab/mmsegmentation/pull/75)) +- Add more OCRNet results ([#20](https://github.com/open-mmlab/mmsegmentation/pull/20)) +- Add PyTorch 1.6 CI ([#64](https://github.com/open-mmlab/mmsegmentation/pull/64)) +- Get version and githash automatically ([#55](https://github.com/open-mmlab/mmsegmentation/pull/55)) + ### v0.5.1 (11/08/2020) **Highlights** - Support FP16 and more generalized OHEM diff --git a/mmseg/version.py b/mmseg/version.py index cae796d455..ec75baacb1 100644 --- a/mmseg/version.py +++ b/mmseg/version.py @@ -1,6 +1,6 @@ # Copyright (c) Open-MMLab. All rights reserved. -__version__ = '0.5.1' +__version__ = '0.6.0' def parse_version_info(version_str): From 7c6fa484110f855e517d0d54967c2610c947fffb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iago=20Gonz=C3=A1lez?= Date: Wed, 16 Sep 2020 15:33:01 +0200 Subject: [PATCH 034/706] Add support for custom classes (#71) * Support for custom classes * Fix test * Fix pre-commit * Add pipeline logic for custom classes * Fix minor issues, fix test * Fix issues from PR review * Fix tests * Remove palette as str * Rename old_to_new_ids to label_map * Test for load_anns * Remove get_palette function * fixed temp * Add subset of palette, remove palette as arg * minor update Co-authored-by: Jiarui XU --- mmseg/datasets/custom.py | 70 ++++++++++++++++++++- mmseg/datasets/pipelines/loading.py | 4 ++ tests/test_data/test_dataset.py | 64 ++++++++++++++++++- tests/test_data/test_loading.py | 98 +++++++++++++++++++++++++++++ 4 files changed, 233 insertions(+), 3 deletions(-) diff --git a/mmseg/datasets/custom.py b/mmseg/datasets/custom.py index 92d17c5252..91d7b0b5eb 100644 --- a/mmseg/datasets/custom.py +++ b/mmseg/datasets/custom.py @@ -58,6 +58,8 @@ class CustomDataset(Dataset): ignore_index (int): The label index to be ignored. Default: 255 reduce_zero_label (bool): Whether to mark label zero as ignored. Default: False + classes (str | Sequence[str], optional): Specify classes to load. + If is None, ``cls.CLASSES`` will be used. Default: None. """ CLASSES = None @@ -74,7 +76,8 @@ def __init__(self, data_root=None, test_mode=False, ignore_index=255, - reduce_zero_label=False): + reduce_zero_label=False, + classes=None): self.pipeline = Compose(pipeline) self.img_dir = img_dir self.img_suffix = img_suffix @@ -85,6 +88,8 @@ def __init__(self, self.test_mode = test_mode self.ignore_index = ignore_index self.reduce_zero_label = reduce_zero_label + self.label_map = None + self.CLASSES, self.PALETTE = self.get_classes_and_palette(classes) # join paths if data_root is specified if self.data_root is not None: @@ -160,6 +165,8 @@ def get_ann_info(self, idx): def pre_pipeline(self, results): """Prepare results dict for pipeline.""" results['seg_fields'] = [] + if self.custom_classes: + results['label_map'] = self.label_map def __getitem__(self, idx): """Get training/test data after pipeline. @@ -220,6 +227,10 @@ def get_gt_seg_maps(self): for img_info in self.img_infos: gt_seg_map = mmcv.imread( img_info['ann']['seg_map'], flag='unchanged', backend='pillow') + # modify if custom classes + if self.label_map is not None: + for old_id, new_id in self.label_map.items(): + gt_seg_map[gt_seg_map == old_id] = new_id if self.reduce_zero_label: # avoid using underflow conversion gt_seg_map[gt_seg_map == 0] = 255 @@ -230,6 +241,63 @@ def get_gt_seg_maps(self): return gt_seg_maps + def get_classes_and_palette(self, classes=None): + """Get class names of current dataset. + + Args: + classes (Sequence[str] | str | None): If classes is None, use + default CLASSES defined by builtin dataset. If classes is a + string, take it as a file name. The file contains the name of + classes where each line contains one class name. If classes is + a tuple or list, override the CLASSES defined by the dataset. + """ + if classes is None: + self.custom_classes = False + return self.CLASSES, self.PALETTE + + self.custom_classes = True + if isinstance(classes, str): + # take it as a file path + class_names = mmcv.list_from_file(classes) + elif isinstance(classes, (tuple, list)): + class_names = classes + else: + raise ValueError(f'Unsupported type {type(classes)} of classes.') + + if self.CLASSES: + if not set(classes).issubset(self.CLASSES): + raise ValueError('classes is not a subset of CLASSES.') + + # dictionary, its keys are the old label ids and its values + # are the new label ids. + # used for changing pixel labels in load_annotations. + self.label_map = {} + for i, c in enumerate(self.CLASSES): + if c not in class_names: + self.label_map[i] = -1 + else: + self.label_map[i] = classes.index(c) + + palette = self.get_palette_for_custom_classes() + + return class_names, palette + + def get_palette_for_custom_classes(self): + + if self.label_map is not None: + # return subset of palette + palette = [] + for old_id, new_id in sorted( + self.label_map.items(), key=lambda x: x[1]): + if new_id != -1: + palette.append(self.PALETTE[old_id]) + palette = type(self.PALETTE)(palette) + + else: + palette = self.PALETTE + + return palette + def evaluate(self, results, metric='mIoU', logger=None, **kwargs): """Evaluate the dataset. diff --git a/mmseg/datasets/pipelines/loading.py b/mmseg/datasets/pipelines/loading.py index 9786269106..a98ddf20b9 100644 --- a/mmseg/datasets/pipelines/loading.py +++ b/mmseg/datasets/pipelines/loading.py @@ -132,6 +132,10 @@ def __call__(self, results): gt_semantic_seg = mmcv.imfrombytes( img_bytes, flag='unchanged', backend=self.imdecode_backend).squeeze().astype(np.uint8) + # modify if custom classes + if results.get('label_map', None) is not None: + for old_id, new_id in results['label_map'].items(): + gt_semantic_seg[gt_semantic_seg == old_id] = new_id # reduce zero_label if self.reduce_zero_label: # avoid using underflow conversion diff --git a/tests/test_data/test_dataset.py b/tests/test_data/test_dataset.py index ee6d2c47a8..cb178b2b01 100644 --- a/tests/test_data/test_dataset.py +++ b/tests/test_data/test_dataset.py @@ -5,8 +5,9 @@ import pytest from mmseg.core.evaluation import get_classes, get_palette -from mmseg.datasets import (ADE20KDataset, CityscapesDataset, ConcatDataset, - CustomDataset, PascalVOCDataset, RepeatDataset) +from mmseg.datasets import (DATASETS, ADE20KDataset, CityscapesDataset, + ConcatDataset, CustomDataset, PascalVOCDataset, + RepeatDataset) def test_classes(): @@ -171,3 +172,62 @@ def test_custom_dataset(): assert 'mIoU' in eval_results assert 'mAcc' in eval_results assert 'aAcc' in eval_results + + +@patch('mmseg.datasets.CustomDataset.load_annotations', MagicMock) +@patch('mmseg.datasets.CustomDataset.__getitem__', + MagicMock(side_effect=lambda idx: idx)) +@pytest.mark.parametrize('dataset, classes', [ + ('ADE20KDataset', ('wall', 'building')), + ('CityscapesDataset', ('road', 'sidewalk')), + ('CustomDataset', ('bus', 'car')), + ('PascalVOCDataset', ('aeroplane', 'bicycle')), +]) +def test_custom_classes_override_default(dataset, classes): + + dataset_class = DATASETS.get(dataset) + + original_classes = dataset_class.CLASSES + + # Test setting classes as a tuple + custom_dataset = dataset_class( + pipeline=[], + img_dir=MagicMock(), + split=MagicMock(), + classes=classes, + test_mode=True) + + assert custom_dataset.CLASSES != original_classes + assert custom_dataset.CLASSES == classes + + # Test setting classes as a list + custom_dataset = dataset_class( + pipeline=[], + img_dir=MagicMock(), + split=MagicMock(), + classes=list(classes), + test_mode=True) + + assert custom_dataset.CLASSES != original_classes + assert custom_dataset.CLASSES == list(classes) + + # Test overriding not a subset + custom_dataset = dataset_class( + pipeline=[], + img_dir=MagicMock(), + split=MagicMock(), + classes=[classes[0]], + test_mode=True) + + assert custom_dataset.CLASSES != original_classes + assert custom_dataset.CLASSES == [classes[0]] + + # Test default behavior + custom_dataset = dataset_class( + pipeline=[], + img_dir=MagicMock(), + split=MagicMock(), + classes=None, + test_mode=True) + + assert custom_dataset.CLASSES == original_classes diff --git a/tests/test_data/test_loading.py b/tests/test_data/test_loading.py index 653b3daf4e..e8aa5d3130 100644 --- a/tests/test_data/test_loading.py +++ b/tests/test_data/test_loading.py @@ -1,6 +1,8 @@ import copy import os.path as osp +import tempfile +import mmcv import numpy as np from mmseg.datasets.pipelines import LoadAnnotations, LoadImageFromFile @@ -98,3 +100,99 @@ def test_load_seg(self): # this image is saved by PIL assert results['gt_semantic_seg'].shape == (288, 512) assert results['gt_semantic_seg'].dtype == np.uint8 + + def test_load_seg_custom_classes(self): + + test_img = np.random.rand(10, 10) + test_gt = np.zeros_like(test_img) + test_gt[2:4, 2:4] = 1 + test_gt[2:4, 6:8] = 2 + test_gt[6:8, 2:4] = 3 + test_gt[6:8, 6:8] = 4 + + tmp_dir = tempfile.TemporaryDirectory() + img_path = osp.join(tmp_dir.name, 'img.jpg') + gt_path = osp.join(tmp_dir.name, 'gt.png') + + mmcv.imwrite(test_img, img_path) + mmcv.imwrite(test_gt, gt_path) + + # test only train with label with id 3 + results = dict( + img_info=dict(filename=img_path), + ann_info=dict(seg_map=gt_path), + label_map={ + 0: 0, + 1: 0, + 2: 0, + 3: 1, + 4: 0 + }, + seg_fields=[]) + + load_imgs = LoadImageFromFile() + results = load_imgs(copy.deepcopy(results)) + + load_anns = LoadAnnotations() + results = load_anns(copy.deepcopy(results)) + + gt_array = results['gt_semantic_seg'] + + true_mask = np.zeros_like(gt_array) + true_mask[6:8, 2:4] = 1 + + assert results['seg_fields'] == ['gt_semantic_seg'] + assert gt_array.shape == (10, 10) + assert gt_array.dtype == np.uint8 + np.testing.assert_array_equal(gt_array, true_mask) + + # test only train with label with id 4 and 3 + results = dict( + img_info=dict(filename=img_path), + ann_info=dict(seg_map=gt_path), + label_map={ + 0: 0, + 1: 0, + 2: 0, + 3: 2, + 4: 1 + }, + seg_fields=[]) + + load_imgs = LoadImageFromFile() + results = load_imgs(copy.deepcopy(results)) + + load_anns = LoadAnnotations() + results = load_anns(copy.deepcopy(results)) + + gt_array = results['gt_semantic_seg'] + + true_mask = np.zeros_like(gt_array) + true_mask[6:8, 2:4] = 2 + true_mask[6:8, 6:8] = 1 + + assert results['seg_fields'] == ['gt_semantic_seg'] + assert gt_array.shape == (10, 10) + assert gt_array.dtype == np.uint8 + np.testing.assert_array_equal(gt_array, true_mask) + + # test no custom classes + results = dict( + img_info=dict(filename=img_path), + ann_info=dict(seg_map=gt_path), + seg_fields=[]) + + load_imgs = LoadImageFromFile() + results = load_imgs(copy.deepcopy(results)) + + load_anns = LoadAnnotations() + results = load_anns(copy.deepcopy(results)) + + gt_array = results['gt_semantic_seg'] + + assert results['seg_fields'] == ['gt_semantic_seg'] + assert gt_array.shape == (10, 10) + assert gt_array.dtype == np.uint8 + np.testing.assert_array_equal(gt_array, test_gt) + + tmp_dir.cleanup() From 276e9ca75edc1f6192b09e9612b6cd307ae2a2c6 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Sat, 19 Sep 2020 21:32:41 +0800 Subject: [PATCH 035/706] [Enhance] Use MMCV collect_env (#137) --- mmseg/utils/collect_env.py | 61 ++------------------------------------ setup.cfg | 2 +- 2 files changed, 4 insertions(+), 59 deletions(-) diff --git a/mmseg/utils/collect_env.py b/mmseg/utils/collect_env.py index 3fcead4596..8293a05fb3 100644 --- a/mmseg/utils/collect_env.py +++ b/mmseg/utils/collect_env.py @@ -1,68 +1,13 @@ -import os.path as osp -import subprocess -import sys -from collections import defaultdict - -import cv2 -import mmcv -import torch -import torchvision -from mmcv.utils import get_build_config, get_git_hash +from mmcv.utils import collect_env as collect_base_env +from mmcv.utils import get_git_hash import mmseg def collect_env(): """Collect the information of the running environments.""" - env_info = {} - env_info['sys.platform'] = sys.platform - env_info['Python'] = sys.version.replace('\n', '') - - cuda_available = torch.cuda.is_available() - env_info['CUDA available'] = cuda_available - - if cuda_available: - from mmcv.utils.parrots_wrapper import CUDA_HOME - env_info['CUDA_HOME'] = CUDA_HOME - - if CUDA_HOME is not None and osp.isdir(CUDA_HOME): - try: - nvcc = osp.join(CUDA_HOME, 'bin/nvcc') - nvcc = subprocess.check_output( - '"{}" -V | tail -n1'.format(nvcc), shell=True) - nvcc = nvcc.decode('utf-8').strip() - except subprocess.SubprocessError: - nvcc = 'Not Available' - env_info['NVCC'] = nvcc - - devices = defaultdict(list) - for k in range(torch.cuda.device_count()): - devices[torch.cuda.get_device_name(k)].append(str(k)) - for name, devids in devices.items(): - env_info['GPU ' + ','.join(devids)] = name - try: - gcc = subprocess.check_output('gcc --version | head -n1', shell=True) - gcc = gcc.decode('utf-8').strip() - env_info['GCC'] = gcc - except subprocess.CalledProcessError: - env_info['GCC'] = 'n/a' - - env_info['PyTorch'] = torch.__version__ - env_info['PyTorch compiling details'] = get_build_config() - - env_info['TorchVision'] = torchvision.__version__ - - env_info['OpenCV'] = cv2.__version__ - - env_info['MMCV'] = mmcv.__version__ + env_info = collect_base_env() env_info['MMSegmentation'] = f'{mmseg.__version__}+{get_git_hash()[:7]}' - try: - from mmcv.ops import get_compiler_version, get_compiling_cuda_version - env_info['MMCV Compiler'] = get_compiler_version() - env_info['MMCV CUDA Compiler'] = get_compiling_cuda_version() - except ImportError: - env_info['MMCV Compiler'] = 'n/a' - env_info['MMCV CUDA Compiler'] = 'n/a' return env_info diff --git a/setup.cfg b/setup.cfg index 9721e1c5c3..594abb8ece 100644 --- a/setup.cfg +++ b/setup.cfg @@ -8,6 +8,6 @@ line_length = 79 multi_line_output = 0 known_standard_library = setuptools known_first_party = mmseg -known_third_party = PIL,cityscapesscripts,cv2,matplotlib,mmcv,numpy,onnxruntime,pytablewriter,pytest,scipy,torch,torchvision +known_third_party = PIL,cityscapesscripts,matplotlib,mmcv,numpy,onnxruntime,pytablewriter,pytest,scipy,torch no_lines_before = STDLIB,LOCALFOLDER default_section = THIRDPARTY From cac4138f99790401c362847d8da7fb8f5a30cc24 Mon Sep 17 00:00:00 2001 From: sshuair Date: Tue, 22 Sep 2020 01:04:46 +0800 Subject: [PATCH 036/706] fix acc and iou compute nan problem (#116) * fix acc and iou compute nan problem * fix acc and iou compute nan problem * add nan_to_num args for mean_iou * add nan_to_num args for mean_iou * add nan_to_num args for mean_iou * add nan_to_num args for mean_iou * add nan_to_num args for mean_iou * Update mmseg/core/evaluation/mean_iou.py * Update mean_iou.py * Update mean_iou.py Co-authored-by: Jerry Jiarui XU --- mmseg/core/evaluation/mean_iou.py | 8 ++++++-- tests/test_mean_iou.py | 7 +++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/mmseg/core/evaluation/mean_iou.py b/mmseg/core/evaluation/mean_iou.py index f0b4234fb4..301cfd04fb 100644 --- a/mmseg/core/evaluation/mean_iou.py +++ b/mmseg/core/evaluation/mean_iou.py @@ -34,7 +34,7 @@ def intersect_and_union(pred_label, label, num_classes, ignore_index): return area_intersect, area_union, area_pred_label, area_label -def mean_iou(results, gt_seg_maps, num_classes, ignore_index): +def mean_iou(results, gt_seg_maps, num_classes, ignore_index, nan_to_num=None): """Calculate Intersection and Union (IoU) Args: @@ -42,6 +42,8 @@ def mean_iou(results, gt_seg_maps, num_classes, ignore_index): gt_seg_maps (list[ndarray]): list of ground truth segmentation maps num_classes (int): Number of categories ignore_index (int): Index that will be ignored in evaluation. + nan_to_num (int, optional): If specified, NaN values will be replaced + by the numbers defined by the user. Default: None. Returns: float: Overall accuracy on all images. @@ -66,5 +68,7 @@ def mean_iou(results, gt_seg_maps, num_classes, ignore_index): all_acc = total_area_intersect.sum() / total_area_label.sum() acc = total_area_intersect / total_area_label iou = total_area_intersect / total_area_union - + if nan_to_num is not None: + return all_acc, np.nan_to_num(acc, nan=nan_to_num), \ + np.nan_to_num(iou, nan=nan_to_num) return all_acc, acc, iou diff --git a/tests/test_mean_iou.py b/tests/test_mean_iou.py index 48a3df8e4c..74a2b78617 100644 --- a/tests/test_mean_iou.py +++ b/tests/test_mean_iou.py @@ -54,3 +54,10 @@ def test_mean_iou(): assert all_acc == all_acc_l assert np.allclose(acc, acc_l) assert np.allclose(iou, iou_l) + + results = np.random.randint(0, 5, size=pred_size) + label = np.random.randint(0, 4, size=pred_size) + all_acc, acc, iou = mean_iou( + results, label, num_classes, ignore_index=255, nan_to_num=-1) + assert acc[-1] == -1 + assert iou[-1] == -1 From 7baed6513eb69cb9e7831c617b0d06268f51b2de Mon Sep 17 00:00:00 2001 From: yamengxi <49829199+yamengxi@users.noreply.github.com> Date: Tue, 22 Sep 2020 14:56:13 +0800 Subject: [PATCH 037/706] Add Pascal Context to mmsegmentation (#133) * Add Pascal Context to mmsegmentation * Add benchmark result to Pascal Context * fix mmcv version * fix code syntax * fix code syntax again * Update mmseg/models/segmentors/encoder_decoder.py update hint Co-authored-by: Jerry Jiarui XU * update comment * fix pascal context model path * fix model path mistake again * fix model path mistake again * fix model path mistakes again Co-authored-by: Jerry Jiarui XU --- configs/_base_/datasets/pascal_context.py | 60 +++++++++++++ configs/deeplabv3/README.md | 6 ++ ...abv3_r101-d8_480x480_40k_pascal_context.py | 2 + ...abv3_r101-d8_480x480_80k_pascal_context.py | 2 + ...labv3_r50-d8_480x480_40k_pascal_context.py | 9 ++ ...labv3_r50-d8_480x480_80k_pascal_context.py | 9 ++ configs/deeplabv3plus/README.md | 6 ++ ...plus_r101-d8_480x480_40k_pascal_context.py | 2 + ...plus_r101-d8_480x480_80k_pascal_context.py | 2 + ...3plus_r50-d8_480x480_40k_pascal_context.py | 9 ++ ...3plus_r50-d8_480x480_80k_pascal_context.py | 9 ++ configs/fcn/README.md | 6 ++ .../fcn_r101-d8_480x480_40k_pascal_context.py | 2 + .../fcn_r101-d8_480x480_80k_pascal_context.py | 2 + .../fcn_r50-d8_480x480_40k_pascal_context.py | 7 ++ .../fcn_r50-d8_480x480_80k_pascal_context.py | 7 ++ configs/hrnet/README.md | 6 ++ .../fcn_hr18_480x480_40k_pascal_context.py | 7 ++ .../fcn_hr18_480x480_80k_pascal_context.py | 7 ++ .../fcn_hr18s_480x480_40k_pascal_context.py | 9 ++ .../fcn_hr18s_480x480_80k_pascal_context.py | 9 ++ .../fcn_hr48_480x480_40k_pascal_context.py | 10 +++ .../fcn_hr48_480x480_80k_pascal_context.py | 10 +++ configs/pspnet/README.md | 6 ++ ...pnet_r101-d8_480x480_40k_pascal_context.py | 2 + ...pnet_r101-d8_480x480_80k_pascal_context.py | 2 + ...spnet_r50-d8_480x480_40k_pascal_context.py | 9 ++ ...spnet_r50-d8_480x480_80k_pascal_context.py | 9 ++ docs/getting_started.md | 19 ++++ mmseg/datasets/__init__.py | 3 +- mmseg/datasets/pascal_context.py | 54 ++++++++++++ mmseg/models/segmentors/encoder_decoder.py | 8 +- setup.cfg | 2 +- tools/convert_datasets/pascal_context.py | 86 +++++++++++++++++++ 34 files changed, 393 insertions(+), 5 deletions(-) create mode 100644 configs/_base_/datasets/pascal_context.py create mode 100644 configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context.py create mode 100644 configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context.py create mode 100644 configs/deeplabv3/deeplabv3_r50-d8_480x480_40k_pascal_context.py create mode 100644 configs/deeplabv3/deeplabv3_r50-d8_480x480_80k_pascal_context.py create mode 100644 configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context.py create mode 100644 configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context.py create mode 100644 configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_40k_pascal_context.py create mode 100644 configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_80k_pascal_context.py create mode 100644 configs/fcn/fcn_r101-d8_480x480_40k_pascal_context.py create mode 100644 configs/fcn/fcn_r101-d8_480x480_80k_pascal_context.py create mode 100644 configs/fcn/fcn_r50-d8_480x480_40k_pascal_context.py create mode 100644 configs/fcn/fcn_r50-d8_480x480_80k_pascal_context.py create mode 100644 configs/hrnet/fcn_hr18_480x480_40k_pascal_context.py create mode 100644 configs/hrnet/fcn_hr18_480x480_80k_pascal_context.py create mode 100644 configs/hrnet/fcn_hr18s_480x480_40k_pascal_context.py create mode 100644 configs/hrnet/fcn_hr18s_480x480_80k_pascal_context.py create mode 100644 configs/hrnet/fcn_hr48_480x480_40k_pascal_context.py create mode 100644 configs/hrnet/fcn_hr48_480x480_80k_pascal_context.py create mode 100644 configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context.py create mode 100644 configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context.py create mode 100644 configs/pspnet/pspnet_r50-d8_480x480_40k_pascal_context.py create mode 100644 configs/pspnet/pspnet_r50-d8_480x480_80k_pascal_context.py create mode 100644 mmseg/datasets/pascal_context.py create mode 100644 tools/convert_datasets/pascal_context.py diff --git a/configs/_base_/datasets/pascal_context.py b/configs/_base_/datasets/pascal_context.py new file mode 100644 index 0000000000..a00e474cf6 --- /dev/null +++ b/configs/_base_/datasets/pascal_context.py @@ -0,0 +1,60 @@ +# dataset settings +dataset_type = 'PascalContextDataset' +data_root = 'data/VOCdevkit/VOC2010/' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) + +img_scale = (520, 520) +crop_size = (480, 480) + +train_pipeline = [ + dict(type='LoadImageFromFile'), + dict(type='LoadAnnotations'), + dict(type='Resize', img_scale=img_scale, ratio_range=(0.5, 2.0)), + dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='RandomFlip', flip_ratio=0.5), + dict(type='PhotoMetricDistortion'), + dict(type='Normalize', **img_norm_cfg), + dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255), + dict(type='DefaultFormatBundle'), + dict(type='Collect', keys=['img', 'gt_semantic_seg']), +] +test_pipeline = [ + dict(type='LoadImageFromFile'), + dict( + type='MultiScaleFlipAug', + img_scale=img_scale, + # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75], + flip=False, + transforms=[ + dict(type='Resize', keep_ratio=True), + dict(type='RandomFlip'), + dict(type='Normalize', **img_norm_cfg), + dict(type='ImageToTensor', keys=['img']), + dict(type='Collect', keys=['img']), + ]) +] +data = dict( + samples_per_gpu=4, + workers_per_gpu=4, + train=dict( + type=dataset_type, + data_root=data_root, + img_dir='JPEGImages', + ann_dir='SegmentationClassContext', + split='ImageSets/SegmentationContext/train.txt', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + data_root=data_root, + img_dir='JPEGImages', + ann_dir='SegmentationClassContext', + split='ImageSets/SegmentationContext/val.txt', + pipeline=test_pipeline), + test=dict( + type=dataset_type, + data_root=data_root, + img_dir='JPEGImages', + ann_dir='SegmentationClassContext', + split='ImageSets/SegmentationContext/val.txt', + pipeline=test_pipeline)) diff --git a/configs/deeplabv3/README.md b/configs/deeplabv3/README.md index 37e2ee6baa..e67857edf8 100644 --- a/configs/deeplabv3/README.md +++ b/configs/deeplabv3/README.md @@ -41,3 +41,9 @@ Note: `D-8` here corresponding to the output stride 8 setting for DeepLab series | DeepLabV3 | R-101-D8 | 512x512 | 20000 | 9.6 | 9.81 | 78.70 | 79.95 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug/deeplabv3_r101-d8_512x512_20k_voc12aug_20200617_010932-8d13832f.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug/deeplabv3_r101-d8_512x512_20k_voc12aug_20200617_010932.log.json) | | DeepLabV3 | R-50-D8 | 512x512 | 40000 | - | - | 77.68 | 78.78 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug/deeplabv3_r50-d8_512x512_40k_voc12aug_20200613_161546-2ae96e7e.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug/deeplabv3_r50-d8_512x512_40k_voc12aug_20200613_161546.log.json) | | DeepLabV3 | R-101-D8 | 512x512 | 40000 | - | - | 77.92 | 79.18 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug/deeplabv3_r101-d8_512x512_40k_voc12aug_20200613_161432-0017d784.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug/deeplabv3_r101-d8_512x512_40k_voc12aug_20200613_161432.log.json) | + +### Pascal Context +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | +|-----------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| DeepLabV3 | R-101-D8 | 480x480 | 40000 | 9.2 | 7.09 | 46.55 | 47.81 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context/deeplabv3_r101-d8_480x480_40k_pascal_context_20200911_204118-1aa27336.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context/deeplabv3_r101-d8_480x480_40k_pascal_context-20200911_204118.log.json) | +| DeepLabV3 | R-101-D8 | 480x480 | 80000 | - | - | 46.42 | 47.53 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context/deeplabv3_r101-d8_480x480_80k_pascal_context_20200911_170155-2a21fff3.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context/deeplabv3_r101-d8_480x480_80k_pascal_context-20200911_170155.log.json) | diff --git a/configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context.py b/configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context.py new file mode 100644 index 0000000000..0b5256f7b7 --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context.py @@ -0,0 +1,2 @@ +_base_ = './deeplabv3_r50-d8_480x480_40k_pascal_context.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context.py b/configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context.py new file mode 100644 index 0000000000..001b7a69c1 --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context.py @@ -0,0 +1,2 @@ +_base_ = './deeplabv3_r50-d8_480x480_80k_pascal_context.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/deeplabv3/deeplabv3_r50-d8_480x480_40k_pascal_context.py b/configs/deeplabv3/deeplabv3_r50-d8_480x480_40k_pascal_context.py new file mode 100644 index 0000000000..0cdb262833 --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r50-d8_480x480_40k_pascal_context.py @@ -0,0 +1,9 @@ +_base_ = [ + '../_base_/models/deeplabv3_r50-d8.py', + '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_40k.py' +] +model = dict( + decode_head=dict(num_classes=60), auxiliary_head=dict(num_classes=60)) +test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320)) +optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/deeplabv3/deeplabv3_r50-d8_480x480_80k_pascal_context.py b/configs/deeplabv3/deeplabv3_r50-d8_480x480_80k_pascal_context.py new file mode 100644 index 0000000000..84e831a7be --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r50-d8_480x480_80k_pascal_context.py @@ -0,0 +1,9 @@ +_base_ = [ + '../_base_/models/deeplabv3_r50-d8.py', + '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_80k.py' +] +model = dict( + decode_head=dict(num_classes=60), auxiliary_head=dict(num_classes=60)) +test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320)) +optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/deeplabv3plus/README.md b/configs/deeplabv3plus/README.md index 591554daea..cdfaba1f86 100644 --- a/configs/deeplabv3plus/README.md +++ b/configs/deeplabv3plus/README.md @@ -41,3 +41,9 @@ Note: `D-8` here corresponding to the output stride 8 setting for DeepLab series | DeepLabV3+ | R-101-D8 | 512x512 | 20000 | 11 | 13.88 | 77.22 | 78.59 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug/deeplabv3plus_r101-d8_512x512_20k_voc12aug_20200617_102345-c7ff3d56.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug/deeplabv3plus_r101-d8_512x512_20k_voc12aug_20200617_102345.log.json) | | DeepLabV3+ | R-50-D8 | 512x512 | 40000 | - | - | 76.81 | 77.57 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug/deeplabv3plus_r50-d8_512x512_40k_voc12aug_20200613_161759-e1b43aa9.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug/deeplabv3plus_r50-d8_512x512_40k_voc12aug_20200613_161759.log.json) | | DeepLabV3+ | R-101-D8 | 512x512 | 40000 | - | - | 78.62 | 79.53 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug/deeplabv3plus_r101-d8_512x512_40k_voc12aug_20200613_205333-faf03387.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug/deeplabv3plus_r101-d8_512x512_40k_voc12aug_20200613_205333.log.json) | + +#### Pascal Context +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | +|------------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| DeepLabV3+ | R-101-D8 | 480x480 | 40000 | - | 9.09 | 47.30 | 48.47 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context/deeplabv3plus_r101-d8_480x480_40k_pascal_context_20200911_165459-d3c8a29e.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context/deeplabv3plus_r101-d8_480x480_40k_pascal_context-20200911_165459.log.json) | +| DeepLabV3+ | R-101-D8 | 480x480 | 80000 | - | - | 47.23 | 48.26 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context/deeplabv3plus_r101-d8_480x480_80k_pascal_context_20200911_155322-145d3ee8.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context/deeplabv3plus_r101-d8_480x480_80k_pascal_context-20200911_155322.log.json) | diff --git a/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context.py b/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context.py new file mode 100644 index 0000000000..68e2b072e4 --- /dev/null +++ b/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context.py @@ -0,0 +1,2 @@ +_base_ = './deeplabv3plus_r50-d8_480x480_40k_pascal_context.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context.py b/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context.py new file mode 100644 index 0000000000..3a46c28608 --- /dev/null +++ b/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context.py @@ -0,0 +1,2 @@ +_base_ = './deeplabv3plus_r50-d8_480x480_80k_pascal_context.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_40k_pascal_context.py b/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_40k_pascal_context.py new file mode 100644 index 0000000000..ee548fb014 --- /dev/null +++ b/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_40k_pascal_context.py @@ -0,0 +1,9 @@ +_base_ = [ + '../_base_/models/deeplabv3plus_r50-d8.py', + '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_40k.py' +] +model = dict( + decode_head=dict(num_classes=60), auxiliary_head=dict(num_classes=60)) +test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320)) +optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_80k_pascal_context.py b/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_80k_pascal_context.py new file mode 100644 index 0000000000..604cf2bf5e --- /dev/null +++ b/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_80k_pascal_context.py @@ -0,0 +1,9 @@ +_base_ = [ + '../_base_/models/deeplabv3plus_r50-d8.py', + '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_80k.py' +] +model = dict( + decode_head=dict(num_classes=60), auxiliary_head=dict(num_classes=60)) +test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320)) +optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/fcn/README.md b/configs/fcn/README.md index 6ec2080123..25c966c183 100644 --- a/configs/fcn/README.md +++ b/configs/fcn/README.md @@ -43,3 +43,9 @@ | FCN | R-101-D8 | 512x512 | 20000 | 9.2 | 14.81 | 71.16 | 73.57 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_20k_voc12aug/fcn_r101-d8_512x512_20k_voc12aug_20200617_010842-0bb4e798.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_20k_voc12aug/fcn_r101-d8_512x512_20k_voc12aug_20200617_010842.log.json) | | FCN | R-50-D8 | 512x512 | 40000 | - | - | 66.97 | 69.04 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_40k_voc12aug/fcn_r50-d8_512x512_40k_voc12aug_20200613_161222-5e2dbf40.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_40k_voc12aug/fcn_r50-d8_512x512_40k_voc12aug_20200613_161222.log.json) | | FCN | R-101-D8 | 512x512 | 40000 | - | - | 69.91 | 72.38 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_40k_voc12aug/fcn_r101-d8_512x512_40k_voc12aug_20200613_161240-4c8bcefd.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_40k_voc12aug/fcn_r101-d8_512x512_40k_voc12aug_20200613_161240.log.json) | + +### Pascal Context +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | +|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| FCN | R-101-D8 | 480x480 | 40000 | - | 9.93 | 44.14 | 45.67 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context_20200911_212515-9b565a6d.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context-20200911_212515.log.json) | +| FCN | R-101-D8 | 480x480 | 80000 | - | - | 44.47 | 45.74 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context_20200915_032644-a3828480.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context-20200915_032644.log.json) | diff --git a/configs/fcn/fcn_r101-d8_480x480_40k_pascal_context.py b/configs/fcn/fcn_r101-d8_480x480_40k_pascal_context.py new file mode 100644 index 0000000000..f3a15b4105 --- /dev/null +++ b/configs/fcn/fcn_r101-d8_480x480_40k_pascal_context.py @@ -0,0 +1,2 @@ +_base_ = './fcn_r50-d8_480x480_40k_pascal_context.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/fcn/fcn_r101-d8_480x480_80k_pascal_context.py b/configs/fcn/fcn_r101-d8_480x480_80k_pascal_context.py new file mode 100644 index 0000000000..bdccfd99ba --- /dev/null +++ b/configs/fcn/fcn_r101-d8_480x480_80k_pascal_context.py @@ -0,0 +1,2 @@ +_base_ = './fcn_r50-d8_480x480_80k_pascal_context.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/fcn/fcn_r50-d8_480x480_40k_pascal_context.py b/configs/fcn/fcn_r50-d8_480x480_40k_pascal_context.py new file mode 100644 index 0000000000..d124fbf00d --- /dev/null +++ b/configs/fcn/fcn_r50-d8_480x480_40k_pascal_context.py @@ -0,0 +1,7 @@ +_base_ = [ + '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/pascal_context.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' +] +model = dict(decode_head=dict(num_classes=60)) +test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320)) +optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/fcn/fcn_r50-d8_480x480_80k_pascal_context.py b/configs/fcn/fcn_r50-d8_480x480_80k_pascal_context.py new file mode 100644 index 0000000000..d84f1c8aaf --- /dev/null +++ b/configs/fcn/fcn_r50-d8_480x480_80k_pascal_context.py @@ -0,0 +1,7 @@ +_base_ = [ + '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/pascal_context.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' +] +model = dict(decode_head=dict(num_classes=60)) +test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320)) +optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/hrnet/README.md b/configs/hrnet/README.md index 4bb016e441..153fbdd2ec 100644 --- a/configs/hrnet/README.md +++ b/configs/hrnet/README.md @@ -44,3 +44,9 @@ | FCN | HRNetV2p-W18-Small | 512x512 | 40000 | - | - | 66.61 | 70.00 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_40k_voc12aug/fcn_hr18s_512x512_40k_voc12aug_20200614_000648-4f8d6e7f.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_40k_voc12aug/fcn_hr18s_512x512_40k_voc12aug_20200614_000648.log.json) | | FCN | HRNetV2p-W18 | 512x512 | 40000 | - | - | 72.90 | 75.59 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_40k_voc12aug/fcn_hr18_512x512_40k_voc12aug_20200613_224401-1b4b76cd.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_40k_voc12aug/fcn_hr18_512x512_40k_voc12aug_20200613_224401.log.json) | | FCN | HRNetV2p-W48 | 512x512 | 40000 | - | - | 76.24 | 78.49 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_40k_voc12aug/fcn_hr48_512x512_40k_voc12aug_20200613_222111-1b0f18bc.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_40k_voc12aug/fcn_hr48_512x512_40k_voc12aug_20200613_222111.log.json) | + +### Pascal Context +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | +|--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| FCN | HRNetV2p-W48 | 480x480 | 40000 | 6.1 | 8.86 | 45.14 | 47.42 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context/fcn_hr48_480x480_40k_pascal_context_20200911_164852-667d00b0.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context/fcn_hr48_480x480_40k_pascal_context-20200911_164852.log.json) | +| FCN | HRNetV2p-W48 | 480x480 | 80000 | - | - | 45.84 | 47.84 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context/fcn_hr48_480x480_80k_pascal_context_20200911_155322-847a6711.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context/fcn_hr48_480x480_80k_pascal_context-20200911_155322.log.json) | diff --git a/configs/hrnet/fcn_hr18_480x480_40k_pascal_context.py b/configs/hrnet/fcn_hr18_480x480_40k_pascal_context.py new file mode 100644 index 0000000000..54a412e52c --- /dev/null +++ b/configs/hrnet/fcn_hr18_480x480_40k_pascal_context.py @@ -0,0 +1,7 @@ +_base_ = [ + '../_base_/models/fcn_hr18.py', '../_base_/datasets/pascal_context.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' +] +model = dict(decode_head=dict(num_classes=60)) +test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320)) +optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/hrnet/fcn_hr18_480x480_80k_pascal_context.py b/configs/hrnet/fcn_hr18_480x480_80k_pascal_context.py new file mode 100644 index 0000000000..2dfba8732b --- /dev/null +++ b/configs/hrnet/fcn_hr18_480x480_80k_pascal_context.py @@ -0,0 +1,7 @@ +_base_ = [ + '../_base_/models/fcn_hr18.py', '../_base_/datasets/pascal_context.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' +] +model = dict(decode_head=dict(num_classes=60)) +test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320)) +optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/hrnet/fcn_hr18s_480x480_40k_pascal_context.py b/configs/hrnet/fcn_hr18s_480x480_40k_pascal_context.py new file mode 100644 index 0000000000..d09931048f --- /dev/null +++ b/configs/hrnet/fcn_hr18s_480x480_40k_pascal_context.py @@ -0,0 +1,9 @@ +_base_ = './fcn_hr18_480x480_40k_pascal_context.py' +model = dict( + pretrained='open-mmlab://msra/hrnetv2_w18_small', + backbone=dict( + extra=dict( + stage1=dict(num_blocks=(2, )), + stage2=dict(num_blocks=(2, 2)), + stage3=dict(num_modules=3, num_blocks=(2, 2, 2)), + stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2))))) diff --git a/configs/hrnet/fcn_hr18s_480x480_80k_pascal_context.py b/configs/hrnet/fcn_hr18s_480x480_80k_pascal_context.py new file mode 100644 index 0000000000..584b7135fd --- /dev/null +++ b/configs/hrnet/fcn_hr18s_480x480_80k_pascal_context.py @@ -0,0 +1,9 @@ +_base_ = './fcn_hr18_480x480_80k_pascal_context.py' +model = dict( + pretrained='open-mmlab://msra/hrnetv2_w18_small', + backbone=dict( + extra=dict( + stage1=dict(num_blocks=(2, )), + stage2=dict(num_blocks=(2, 2)), + stage3=dict(num_modules=3, num_blocks=(2, 2, 2)), + stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2))))) diff --git a/configs/hrnet/fcn_hr48_480x480_40k_pascal_context.py b/configs/hrnet/fcn_hr48_480x480_40k_pascal_context.py new file mode 100644 index 0000000000..0e2d96cb6c --- /dev/null +++ b/configs/hrnet/fcn_hr48_480x480_40k_pascal_context.py @@ -0,0 +1,10 @@ +_base_ = './fcn_hr18_480x480_40k_pascal_context.py' +model = dict( + pretrained='open-mmlab://msra/hrnetv2_w48', + backbone=dict( + extra=dict( + stage2=dict(num_channels=(48, 96)), + stage3=dict(num_channels=(48, 96, 192)), + stage4=dict(num_channels=(48, 96, 192, 384)))), + decode_head=dict( + in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384]))) diff --git a/configs/hrnet/fcn_hr48_480x480_80k_pascal_context.py b/configs/hrnet/fcn_hr48_480x480_80k_pascal_context.py new file mode 100644 index 0000000000..e28164e3dc --- /dev/null +++ b/configs/hrnet/fcn_hr48_480x480_80k_pascal_context.py @@ -0,0 +1,10 @@ +_base_ = './fcn_hr18_480x480_80k_pascal_context.py' +model = dict( + pretrained='open-mmlab://msra/hrnetv2_w48', + backbone=dict( + extra=dict( + stage2=dict(num_channels=(48, 96)), + stage3=dict(num_channels=(48, 96, 192)), + stage4=dict(num_channels=(48, 96, 192, 384)))), + decode_head=dict( + in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384]))) diff --git a/configs/pspnet/README.md b/configs/pspnet/README.md index ec31feeb8a..304804baa9 100644 --- a/configs/pspnet/README.md +++ b/configs/pspnet/README.md @@ -39,3 +39,9 @@ | PSPNet | R-101-D8 | 512x512 | 20000 | 9.6 | 15.02 | 78.47 | 79.25 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_20k_voc12aug/pspnet_r101-d8_512x512_20k_voc12aug_20200617_102003-4aef3c9a.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_20k_voc12aug/pspnet_r101-d8_512x512_20k_voc12aug_20200617_102003.log.json) | | PSPNet | R-50-D8 | 512x512 | 40000 | - | - | 77.29 | 78.48 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_40k_voc12aug/pspnet_r50-d8_512x512_40k_voc12aug_20200613_161222-ae9c1b8c.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_40k_voc12aug/pspnet_r50-d8_512x512_40k_voc12aug_20200613_161222.log.json) | | PSPNet | R-101-D8 | 512x512 | 40000 | - | - | 78.52 | 79.57 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_40k_voc12aug/pspnet_r101-d8_512x512_40k_voc12aug_20200613_161222-bc933b18.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_40k_voc12aug/pspnet_r101-d8_512x512_40k_voc12aug_20200613_161222.log.json) | + +### Pascal Context +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | +|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| PSPNet | R-101-D8 | 480x480 | 40000 | 8.8 | 9.68 | 46.60 | 47.78 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context/pspnet_r101-d8_480x480_40k_pascal_context_20200911_211210-bf0f5d7c.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context/pspnet_r101-d8_480x480_40k_pascal_context-20200911_211210.log.json) | +| PSPNet | R-101-D8 | 480x480 | 80000 | - | - | 46.03 | 47.15 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context/pspnet_r101-d8_480x480_80k_pascal_context_20200911_190530-c86d6233.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context/pspnet_r101-d8_480x480_80k_pascal_context-20200911_190530.log.json) | diff --git a/configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context.py b/configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context.py new file mode 100644 index 0000000000..0b5a990604 --- /dev/null +++ b/configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context.py @@ -0,0 +1,2 @@ +_base_ = './pspnet_r50-d8_480x480_40k_pascal_context.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context.py b/configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context.py new file mode 100644 index 0000000000..fda9110603 --- /dev/null +++ b/configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context.py @@ -0,0 +1,2 @@ +_base_ = './pspnet_r50-d8_480x480_80k_pascal_context.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/pspnet/pspnet_r50-d8_480x480_40k_pascal_context.py b/configs/pspnet/pspnet_r50-d8_480x480_40k_pascal_context.py new file mode 100644 index 0000000000..86da94de5b --- /dev/null +++ b/configs/pspnet/pspnet_r50-d8_480x480_40k_pascal_context.py @@ -0,0 +1,9 @@ +_base_ = [ + '../_base_/models/pspnet_r50-d8.py', + '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_40k.py' +] +model = dict( + decode_head=dict(num_classes=60), auxiliary_head=dict(num_classes=60)) +test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320)) +optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/pspnet/pspnet_r50-d8_480x480_80k_pascal_context.py b/configs/pspnet/pspnet_r50-d8_480x480_80k_pascal_context.py new file mode 100644 index 0000000000..cbb02714b9 --- /dev/null +++ b/configs/pspnet/pspnet_r50-d8_480x480_80k_pascal_context.py @@ -0,0 +1,9 @@ +_base_ = [ + '../_base_/models/pspnet_r50-d8.py', + '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_80k.py' +] +model = dict( + decode_head=dict(num_classes=60), auxiliary_head=dict(num_classes=60)) +test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320)) +optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/docs/getting_started.md b/docs/getting_started.md index 892060d00b..35ba57b5b2 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -27,6 +27,14 @@ mmsegmentation │ │ │ ├── SegmentationClass │ │ │ ├── ImageSets │ │ │ │ ├── Segmentation +│ │ ├── VOC2010 +│ │ │ ├── JPEGImages +│ │ │ ├── SegmentationClassContext +│ │ │ ├── ImageSets +│ │ │ │ ├── SegmentationContext +│ │ │ │ │ ├── train.txt +│ │ │ │ │ ├── val.txt +│ │ │ ├── trainval_merged.json │ │ ├── VOCaug │ │ │ ├── dataset │ │ │ │ ├── cls @@ -69,6 +77,17 @@ Please refer to [concat dataset](https://github.com/open-mmlab/mmsegmentation/bl The training and validation set of ADE20K could be download from this [link](http://data.csail.mit.edu/places/ADEchallenge/ADEChallengeData2016.zip). We may also download test set from [here](http://data.csail.mit.edu/places/ADEchallenge/ADEChallengeData2016.zip). +### Pascal Context +The training and validation set of Pascal Context could be download from [here](http://host.robots.ox.ac.uk/pascal/VOC/voc2010/VOCtrainval_03-May-2010.tar). You may also download test set from [here](http://host.robots.ox.ac.uk:8080/eval/downloads/VOC2010test.tar) after registration. + +To split the training and validation set from original dataset, you may download trainval_merged.json from [here](https://codalabuser.blob.core.windows.net/public/trainval_merged.json). + +If you would like to use Pascal Context dataset, please install [Detail](https://github.com/ccvl/detail-api) and then run the following command to convert annotations into proper format. + +```shell +python tools/convert_datasets/pascal_context.py data/VOCdevkit data/VOCdevkit/VOC2010/trainval_merged.json +``` + ## Inference with pretrained models We provide testing scripts to evaluate a whole dataset (Cityscapes, PASCAL VOC, ADE20k, etc.), diff --git a/mmseg/datasets/__init__.py b/mmseg/datasets/__init__.py index cb81b9a2eb..dd4705c3e4 100644 --- a/mmseg/datasets/__init__.py +++ b/mmseg/datasets/__init__.py @@ -3,10 +3,11 @@ from .cityscapes import CityscapesDataset from .custom import CustomDataset from .dataset_wrappers import ConcatDataset, RepeatDataset +from .pascal_context import PascalContextDataset from .voc import PascalVOCDataset __all__ = [ 'CustomDataset', 'build_dataloader', 'ConcatDataset', 'RepeatDataset', 'DATASETS', 'build_dataset', 'PIPELINES', 'CityscapesDataset', - 'PascalVOCDataset', 'ADE20KDataset' + 'PascalVOCDataset', 'ADE20KDataset', 'PascalContextDataset' ] diff --git a/mmseg/datasets/pascal_context.py b/mmseg/datasets/pascal_context.py new file mode 100644 index 0000000000..ab42877f1e --- /dev/null +++ b/mmseg/datasets/pascal_context.py @@ -0,0 +1,54 @@ +import os.path as osp + +from .builder import DATASETS +from .custom import CustomDataset + + +@DATASETS.register_module() +class PascalContextDataset(CustomDataset): + """PascalContext dataset. + + In segmentation map annotation for PascalContext, 0 stands for background, + which is included in 60 categories. ``reduce_zero_label`` is fixed to + False. The ``img_suffix`` is fixed to '.jpg' and ``seg_map_suffix`` is + fixed to '.png'. + + Args: + split (str): Split txt file for PascalContext. + """ + + CLASSES = ('background', 'aeroplane', 'bicycle', 'bird', 'boat', 'bottle', + 'bus', 'car', 'cat', 'chair', 'cow', 'table', 'dog', 'horse', + 'motorbike', 'person', 'pottedplant', 'sheep', 'sofa', 'train', + 'tvmonitor', 'bag', 'bed', 'bench', 'book', 'building', + 'cabinet', 'ceiling', 'cloth', 'computer', 'cup', 'door', + 'fence', 'floor', 'flower', 'food', 'grass', 'ground', + 'keyboard', 'light', 'mountain', 'mouse', 'curtain', 'platform', + 'sign', 'plate', 'road', 'rock', 'shelves', 'sidewalk', 'sky', + 'snow', 'bedclothes', 'track', 'tree', 'truck', 'wall', 'water', + 'window', 'wood') + + PALETTE = [[120, 120, 120], [180, 120, 120], [6, 230, 230], [80, 50, 50], + [4, 200, 3], [120, 120, 80], [140, 140, 140], [204, 5, 255], + [230, 230, 230], [4, 250, 7], [224, 5, 255], [235, 255, 7], + [150, 5, 61], [120, 120, 70], [8, 255, 51], [255, 6, 82], + [143, 255, 140], [204, 255, 4], [255, 51, 7], [204, 70, 3], + [0, 102, 200], [61, 230, 250], [255, 6, 51], [11, 102, 255], + [255, 7, 71], [255, 9, 224], [9, 7, 230], [220, 220, 220], + [255, 9, 92], [112, 9, 255], [8, 255, 214], [7, 255, 224], + [255, 184, 6], [10, 255, 71], [255, 41, 10], [7, 255, 255], + [224, 255, 8], [102, 8, 255], [255, 61, 6], [255, 194, 7], + [255, 122, 8], [0, 255, 20], [255, 8, 41], [255, 5, 153], + [6, 51, 255], [235, 12, 255], [160, 150, 20], [0, 163, 255], + [140, 140, 140], [250, 10, 15], [20, 255, 0], [31, 255, 0], + [255, 31, 0], [255, 224, 0], [153, 255, 0], [0, 0, 255], + [255, 71, 0], [0, 235, 255], [0, 173, 255], [31, 0, 255]] + + def __init__(self, split, **kwargs): + super(PascalContextDataset, self).__init__( + img_suffix='.jpg', + seg_map_suffix='.png', + split=split, + reduce_zero_label=False, + **kwargs) + assert osp.exists(self.img_dir) and self.split is not None diff --git a/mmseg/models/segmentors/encoder_decoder.py b/mmseg/models/segmentors/encoder_decoder.py index 3e11630e25..9adf65bd02 100644 --- a/mmseg/models/segmentors/encoder_decoder.py +++ b/mmseg/models/segmentors/encoder_decoder.py @@ -167,13 +167,15 @@ def forward_train(self, img, img_metas, gt_semantic_seg): # TODO refactor def slide_inference(self, img, img_meta, rescale): - """Inference by sliding-window with overlap.""" + """Inference by sliding-window with overlap. + + If h_crop > h_img or w_crop > w_img, the small patch will be used to + decode without padding. + """ h_stride, w_stride = self.test_cfg.stride h_crop, w_crop = self.test_cfg.crop_size batch_size, _, h_img, w_img = img.size() - assert h_crop <= h_img and w_crop <= w_img, ( - 'crop size should not greater than image size') num_classes = self.num_classes h_grids = max(h_img - h_crop + h_stride - 1, 0) // h_stride + 1 w_grids = max(w_img - w_crop + w_stride - 1, 0) // w_stride + 1 diff --git a/setup.cfg b/setup.cfg index 594abb8ece..21aad54e48 100644 --- a/setup.cfg +++ b/setup.cfg @@ -8,6 +8,6 @@ line_length = 79 multi_line_output = 0 known_standard_library = setuptools known_first_party = mmseg -known_third_party = PIL,cityscapesscripts,matplotlib,mmcv,numpy,onnxruntime,pytablewriter,pytest,scipy,torch +known_third_party = PIL,cityscapesscripts,detail,matplotlib,mmcv,numpy,onnxruntime,pytablewriter,pytest,scipy,torch no_lines_before = STDLIB,LOCALFOLDER default_section = THIRDPARTY diff --git a/tools/convert_datasets/pascal_context.py b/tools/convert_datasets/pascal_context.py new file mode 100644 index 0000000000..e0a97ce26b --- /dev/null +++ b/tools/convert_datasets/pascal_context.py @@ -0,0 +1,86 @@ +import argparse +import os.path as osp +from functools import partial + +import mmcv +import numpy as np +from detail import Detail +from PIL import Image + +_mapping = np.sort( + np.array([ + 0, 2, 259, 260, 415, 324, 9, 258, 144, 18, 19, 22, 23, 397, 25, 284, + 158, 159, 416, 33, 162, 420, 454, 295, 296, 427, 44, 45, 46, 308, 59, + 440, 445, 31, 232, 65, 354, 424, 68, 326, 72, 458, 34, 207, 80, 355, + 85, 347, 220, 349, 360, 98, 187, 104, 105, 366, 189, 368, 113, 115 + ])) +_key = np.array(range(len(_mapping))).astype('uint8') + + +def generate_labels(img_id, detail, out_dir): + + def _class_to_index(mask, _mapping, _key): + # assert the values + values = np.unique(mask) + for i in range(len(values)): + assert (values[i] in _mapping) + index = np.digitize(mask.ravel(), _mapping, right=True) + return _key[index].reshape(mask.shape) + + mask = Image.fromarray( + _class_to_index(detail.getMask(img_id), _mapping=_mapping, _key=_key)) + filename = img_id['file_name'] + mask.save(osp.join(out_dir, filename.replace('jpg', 'png'))) + return osp.splitext(osp.basename(filename))[0] + + +def parse_args(): + parser = argparse.ArgumentParser( + description='Convert PASCAL VOC annotations to mmdetection format') + parser.add_argument('devkit_path', help='pascal voc devkit path') + parser.add_argument('json_path', help='annoation json filepath') + parser.add_argument('-o', '--out_dir', help='output path') + args = parser.parse_args() + return args + + +def main(): + args = parse_args() + devkit_path = args.devkit_path + if args.out_dir is None: + out_dir = osp.join(devkit_path, 'VOC2010', 'SegmentationClassContext') + else: + out_dir = args.out_dir + json_path = args.json_path + mmcv.mkdir_or_exist(out_dir) + img_dir = osp.join(devkit_path, 'VOC2010', 'JPEGImages') + + train_detail = Detail(json_path, img_dir, 'train') + train_ids = train_detail.getImgs() + + val_detail = Detail(json_path, img_dir, 'val') + val_ids = val_detail.getImgs() + + mmcv.mkdir_or_exist( + osp.join(devkit_path, 'VOC2010/ImageSets/SegmentationContext')) + + train_list = mmcv.track_progress( + partial(generate_labels, detail=train_detail, out_dir=out_dir), + train_ids) + with open( + osp.join(devkit_path, 'VOC2010/ImageSets/SegmentationContext', + 'train.txt'), 'w') as f: + f.writelines(line + '\n' for line in sorted(train_list)) + + val_list = mmcv.track_progress( + partial(generate_labels, detail=val_detail, out_dir=out_dir), val_ids) + with open( + osp.join(devkit_path, 'VOC2010/ImageSets/SegmentationContext', + 'val.txt'), 'w') as f: + f.writelines(line + '\n' for line in sorted(val_list)) + + print('Done!') + + +if __name__ == '__main__': + main() From 588a2c036a4254a1c06e02e61ae2bc93c33cd21c Mon Sep 17 00:00:00 2001 From: robin Han Date: Wed, 23 Sep 2020 17:01:20 +0800 Subject: [PATCH 038/706] add support for 4D output (#150) --- mmseg/models/segmentors/encoder_decoder.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mmseg/models/segmentors/encoder_decoder.py b/mmseg/models/segmentors/encoder_decoder.py index 9adf65bd02..2284906e3f 100644 --- a/mmseg/models/segmentors/encoder_decoder.py +++ b/mmseg/models/segmentors/encoder_decoder.py @@ -265,6 +265,8 @@ def simple_test(self, img, img_meta, rescale=True): seg_logit = self.inference(img, img_meta, rescale) seg_pred = seg_logit.argmax(dim=1) if torch.onnx.is_in_onnx_export(): + # our inference backend only support 4D output + seg_pred = seg_pred.unsqueeze(0) return seg_pred seg_pred = seg_pred.cpu().numpy() # unravel batch dim From 51e4cdefc5c3565cd2364d8dc8bed5c7032917ca Mon Sep 17 00:00:00 2001 From: David de la Iglesia Castro Date: Thu, 24 Sep 2020 18:48:16 +0200 Subject: [PATCH 039/706] Use img_prefix and seg_prefix for loading (#153) * Use img_prefix and seg_prefix for loading * flake8 * Fix split --- mmseg/datasets/custom.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/mmseg/datasets/custom.py b/mmseg/datasets/custom.py index 91d7b0b5eb..f055faee28 100644 --- a/mmseg/datasets/custom.py +++ b/mmseg/datasets/custom.py @@ -131,19 +131,16 @@ def load_annotations(self, img_dir, img_suffix, ann_dir, seg_map_suffix, with open(split) as f: for line in f: img_name = line.strip() - img_file = osp.join(img_dir, img_name + img_suffix) - img_info = dict(filename=img_file) + img_info = dict(filename=img_name + img_suffix) if ann_dir is not None: - seg_map = osp.join(ann_dir, img_name + seg_map_suffix) + seg_map = img_name + seg_map_suffix img_info['ann'] = dict(seg_map=seg_map) img_infos.append(img_info) else: for img in mmcv.scandir(img_dir, img_suffix, recursive=True): - img_file = osp.join(img_dir, img) - img_info = dict(filename=img_file) + img_info = dict(filename=img) if ann_dir is not None: - seg_map = osp.join(ann_dir, - img.replace(img_suffix, seg_map_suffix)) + seg_map = img.replace(img_suffix, seg_map_suffix) img_info['ann'] = dict(seg_map=seg_map) img_infos.append(img_info) @@ -165,6 +162,8 @@ def get_ann_info(self, idx): def pre_pipeline(self, results): """Prepare results dict for pipeline.""" results['seg_fields'] = [] + results['img_prefix'] = self.img_dir + results['seg_prefix'] = self.ann_dir if self.custom_classes: results['label_map'] = self.label_map @@ -225,8 +224,9 @@ def get_gt_seg_maps(self): """Get ground truth segmentation maps for evaluation.""" gt_seg_maps = [] for img_info in self.img_infos: + seg_map = osp.join(self.ann_dir, img_info['ann']['seg_map']) gt_seg_map = mmcv.imread( - img_info['ann']['seg_map'], flag='unchanged', backend='pillow') + seg_map, flag='unchanged', backend='pillow') # modify if custom classes if self.label_map is not None: for old_id, new_id in self.label_map.items(): From e385842557766763f2eba660498ff0a26d0f4848 Mon Sep 17 00:00:00 2001 From: David de la Iglesia Castro Date: Thu, 24 Sep 2020 19:34:40 +0200 Subject: [PATCH 040/706] Fix cpu inference (#152) * Add missing map_location * Add docstring * Update mmseg/apis/inference.py Co-authored-by: Jerry Jiarui XU * Update inference.py * Update inference.py Co-authored-by: Jerry Jiarui XU --- mmseg/apis/inference.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mmseg/apis/inference.py b/mmseg/apis/inference.py index 3ba6b62ce1..6fa7e3b343 100644 --- a/mmseg/apis/inference.py +++ b/mmseg/apis/inference.py @@ -16,7 +16,8 @@ def init_segmentor(config, checkpoint=None, device='cuda:0'): object. checkpoint (str, optional): Checkpoint path. If left as None, the model will not load any weights. - + device (str, optional) CPU/CUDA device option. Default 'cuda:0'. + Use 'cpu' for loading model on CPU. Returns: nn.Module: The constructed segmentor. """ @@ -28,7 +29,7 @@ def init_segmentor(config, checkpoint=None, device='cuda:0'): config.model.pretrained = None model = build_segmentor(config.model, test_cfg=config.test_cfg) if checkpoint is not None: - checkpoint = load_checkpoint(model, checkpoint) + checkpoint = load_checkpoint(model, checkpoint, map_location='cpu') model.CLASSES = checkpoint['meta']['CLASSES'] model.PALETTE = checkpoint['meta']['PALETTE'] model.cfg = config # save the config in the model for convenience From efc5c20cd0c6dbe8dbb65cc096ffb67e16a10673 Mon Sep 17 00:00:00 2001 From: Mahmoud Zidan Date: Fri, 25 Sep 2020 11:44:34 +0200 Subject: [PATCH 041/706] adding mobilenetv2 to docs/model_zoo.md and readme.md (#146) * updating the readme with mobilenet_v2 backbone * adding mobilenetv2 to model_zoo.md * placing mobilenetv2 after pointrend --- README.md | 1 + docs/model_zoo.md | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/README.md b/README.md index 14484f93aa..16fd84c440 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,7 @@ Supported backbones: - [x] ResNeXt - [x] [HRNet](configs/hrnet/README.md) - [x] [ResNeSt](configs/resnest/README.md) +- [x] [MobileNetV2](configs/mobilenet_v2/README.md) Supported methods: - [x] [FCN](configs/fcn) diff --git a/docs/model_zoo.md b/docs/model_zoo.md index 404eb44832..c59f316423 100644 --- a/docs/model_zoo.md +++ b/docs/model_zoo.md @@ -97,6 +97,10 @@ Please refer to [Semantic FPN](https://github.com/open-mmlab/mmsegmentation/blob Please refer to [PointRend](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/point_rend) for details. +### MobileNetV2 + +Please refer to [MobileNetV2](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/mobilenet_v2) for details. + ### EMANet Please refer to [EMANet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/emanet) for details. From f3f443ff719bf4f17b0e17182b8261bb68b8b1dc Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Fri, 25 Sep 2020 19:56:10 +0800 Subject: [PATCH 042/706] [Enhance] Migrate to MMCV DepthwiseSeparableConv (#158) * Add D16-MG124 models * Use MMCV DepthSepConv * add OHEM * add warmup * fixed test * fixed test * change to bs 16 * revert config * add models * seperate --- .dev/clean_models.py | 125 ----------------- .dev/generate_table.py | 152 --------------------- .dev/modelzoo_json2md.py | 58 -------- .dev/upload_modelzoo.py | 44 ++++++ mmseg/core/utils/__init__.py | 3 +- mmseg/core/utils/dist_utils.py | 49 ------- mmseg/models/backbones/fast_scnn.py | 5 +- mmseg/models/decode_heads/sep_aspp_head.py | 4 +- mmseg/models/decode_heads/sep_fcn_head.py | 3 +- mmseg/ops/__init__.py | 3 +- mmseg/ops/separable_conv_module.py | 88 ------------ setup.cfg | 2 +- tests/test_models/test_heads.py | 4 +- tests/test_ops/test_sep_conv_module.py | 71 ---------- 14 files changed, 55 insertions(+), 556 deletions(-) delete mode 100644 .dev/clean_models.py delete mode 100644 .dev/generate_table.py delete mode 100644 .dev/modelzoo_json2md.py create mode 100644 .dev/upload_modelzoo.py delete mode 100644 mmseg/core/utils/dist_utils.py delete mode 100644 mmseg/ops/separable_conv_module.py delete mode 100644 tests/test_ops/test_sep_conv_module.py diff --git a/.dev/clean_models.py b/.dev/clean_models.py deleted file mode 100644 index c9ac2acbc0..0000000000 --- a/.dev/clean_models.py +++ /dev/null @@ -1,125 +0,0 @@ -import argparse -import glob -import json -import os -import os.path as osp - -import mmcv - -# build schedule look-up table to automatically find the final model -SCHEDULES_LUT = { - '20ki': 20000, - '40ki': 40000, - '60ki': 60000, - '80ki': 80000, - '160ki': 160000 -} -RESULTS_LUT = ['mIoU', 'mAcc', 'aAcc'] - - -def get_final_iter(config): - iter_num = SCHEDULES_LUT[config.split('_')[-2]] - return iter_num - - -def get_final_results(log_json_path, iter_num): - result_dict = dict() - with open(log_json_path, 'r') as f: - for line in f.readlines(): - log_line = json.loads(line) - if 'mode' not in log_line.keys(): - continue - - if log_line['mode'] == 'train' and log_line['iter'] == iter_num: - result_dict['memory'] = log_line['memory'] - - if log_line['iter'] == iter_num: - result_dict.update({ - key: log_line[key] - for key in RESULTS_LUT if key in log_line - }) - return result_dict - - -def parse_args(): - parser = argparse.ArgumentParser(description='Gather benchmarked models') - parser.add_argument( - 'root', - type=str, - help='root path of benchmarked models to be gathered') - parser.add_argument( - 'config', - type=str, - help='root path of benchmarked configs to be gathered') - - args = parser.parse_args() - return args - - -def main(): - args = parse_args() - models_root = args.root - config_name = args.config - - # find all models in the root directory to be gathered - raw_configs = list(mmcv.scandir(config_name, '.py', recursive=True)) - - # filter configs that is not trained in the experiments dir - used_configs = [] - for raw_config in raw_configs: - work_dir = osp.splitext(osp.basename(raw_config))[0] - if osp.exists(osp.join(models_root, work_dir)): - used_configs.append(work_dir) - print(f'Find {len(used_configs)} models to be gathered') - - # find final_ckpt and log file for trained each config - # and parse the best performance - model_infos = [] - for used_config in used_configs: - exp_dir = osp.join(models_root, used_config) - # check whether the exps is finished - final_iter = get_final_iter(used_config) - final_model = 'iter_{}.pth'.format(final_iter) - model_path = osp.join(exp_dir, final_model) - - # skip if the model is still training - if not osp.exists(model_path): - print(f'{used_config} not finished yet') - continue - - # get logs - log_json_path = glob.glob(osp.join(exp_dir, '*.log.json'))[0] - log_txt_path = glob.glob(osp.join(exp_dir, '*.log'))[0] - model_performance = get_final_results(log_json_path, final_iter) - - if model_performance is None: - print(f'{used_config} does not have performance') - continue - - model_time = osp.split(log_txt_path)[-1].split('.')[0] - model_infos.append( - dict( - config=used_config, - results=model_performance, - iters=final_iter, - model_time=model_time, - log_json_path=osp.split(log_json_path)[-1])) - - # publish model for each checkpoint - for model in model_infos: - - model_name = osp.split(model['config'])[-1].split('.')[0] - - model_name += '_' + model['model_time'] - for checkpoints in mmcv.scandir( - osp.join(models_root, model['config']), suffix='.pth'): - if checkpoints.endswith(f"iter_{model['iters']}.pth" - ) or checkpoints.endswith('latest.pth'): - continue - print('removing {}'.format( - osp.join(models_root, model['config'], checkpoints))) - os.remove(osp.join(models_root, model['config'], checkpoints)) - - -if __name__ == '__main__': - main() diff --git a/.dev/generate_table.py b/.dev/generate_table.py deleted file mode 100644 index 25142caee0..0000000000 --- a/.dev/generate_table.py +++ /dev/null @@ -1,152 +0,0 @@ -import argparse -import csv -import glob -import json -import os.path as osp -from collections import OrderedDict - -import mmcv - -# build schedule look-up table to automatically find the final model -RESULTS_LUT = ['mIoU', 'mAcc', 'aAcc'] - - -def get_final_iter(config): - iter_num = config.split('_')[-2] - assert iter_num.endswith('ki') - return int(iter_num[:-2]) * 1000 - - -def get_final_results(log_json_path, iter_num): - result_dict = dict() - with open(log_json_path, 'r') as f: - for line in f.readlines(): - log_line = json.loads(line) - if 'mode' not in log_line.keys(): - continue - - if log_line['mode'] == 'train' and log_line[ - 'iter'] == iter_num - 50: - result_dict['memory'] = log_line['memory'] - - if log_line['iter'] == iter_num: - result_dict.update({ - key: log_line[key] * 100 - for key in RESULTS_LUT if key in log_line - }) - return result_dict - - -def get_total_time(log_json_path, iter_num): - - def convert(seconds): - hour = seconds // 3600 - seconds %= 3600 - minutes = seconds // 60 - seconds %= 60 - - return f'{hour:d}:{minutes:2d}:{seconds:2d}' - - time_dict = dict() - with open(log_json_path, 'r') as f: - last_iter = 0 - total_sec = 0 - for line in f.readlines(): - log_line = json.loads(line) - if 'mode' not in log_line.keys(): - continue - - if log_line['mode'] == 'train': - cur_iter = log_line['iter'] - total_sec += (cur_iter - last_iter) * log_line['time'] - last_iter = cur_iter - time_dict['time'] = convert(int(total_sec)) - - return time_dict - - -def parse_args(): - parser = argparse.ArgumentParser(description='Gather benchmarked models') - parser.add_argument( - 'root', - type=str, - help='root path of benchmarked models to be gathered') - parser.add_argument( - 'config', - type=str, - help='root path of benchmarked configs to be gathered') - parser.add_argument( - 'out', type=str, help='output path of gathered models to be stored') - - args = parser.parse_args() - return args - - -def main(): - args = parse_args() - models_root = args.root - models_out = args.out - config_name = args.config - mmcv.mkdir_or_exist(models_out) - - # find all models in the root directory to be gathered - raw_configs = list(mmcv.scandir(config_name, '.py', recursive=True)) - - # filter configs that is not trained in the experiments dir - exp_dirs = [] - for raw_config in raw_configs: - work_dir = osp.splitext(osp.basename(raw_config))[0] - if osp.exists(osp.join(models_root, work_dir)): - exp_dirs.append(work_dir) - print(f'Find {len(exp_dirs)} models to be gathered') - - # find final_ckpt and log file for trained each config - # and parse the best performance - model_infos = [] - for work_dir in exp_dirs: - exp_dir = osp.join(models_root, work_dir) - # check whether the exps is finished - final_iter = get_final_iter(work_dir) - final_model = 'iter_{}.pth'.format(final_iter) - model_path = osp.join(exp_dir, final_model) - - # skip if the model is still training - if not osp.exists(model_path): - print(f'{model_path} not finished yet') - continue - - # get logs - log_json_path = glob.glob(osp.join(exp_dir, '*.log.json'))[0] - model_performance = get_final_results(log_json_path, final_iter) - - if model_performance is None: - continue - - head = work_dir.split('_')[0] - backbone = work_dir.split('_')[1] - crop_size = work_dir.split('_')[-3] - dataset = work_dir.split('_')[-1] - model_info = OrderedDict( - head=head, - backbone=backbone, - crop_size=crop_size, - dataset=dataset, - iters=f'{final_iter//1000}ki') - model_info.update(model_performance) - model_time = get_total_time(log_json_path, final_iter) - model_info.update(model_time) - model_info['config'] = work_dir - model_infos.append(model_info) - - with open( - osp.join(models_out, 'models_table.csv'), 'w', - newline='') as csvfile: - writer = csv.writer( - csvfile, delimiter='\t', quotechar='|', quoting=csv.QUOTE_MINIMAL) - writer.writerow(model_infos[0].keys()) - for model_info in model_infos: - writer.writerow(model_info.values()) - - -if __name__ == '__main__': - main() diff --git a/.dev/modelzoo_json2md.py b/.dev/modelzoo_json2md.py deleted file mode 100644 index 7cb44bffa2..0000000000 --- a/.dev/modelzoo_json2md.py +++ /dev/null @@ -1,58 +0,0 @@ -import argparse -import os -import os.path as osp - -import mmcv -from pytablewriter import Align, MarkdownTableWriter - - -def parse_args(): - parser = argparse.ArgumentParser(description='Gather benchmarked models') - parser.add_argument('table_cache', type=str, help='table_cache input') - parser.add_argument('out', type=str, help='output path md') - - args = parser.parse_args() - return args - - -def main(): - args = parse_args() - table_cache = mmcv.load(args.table_cache) - output_dir = args.out - - writer = MarkdownTableWriter() - writer.headers = [ - 'Method', 'Backbone', 'Crop Size', 'Lr schd', 'Mem (GB)', - 'Inf time (fps)', 'mIoU', 'mIoU(ms+flip)', 'download' - ] - writer.margin = 1 - writer.align_list = [Align.CENTER] * len(writer.headers) - dataset_maps = { - 'cityscapes': 'Cityscapes', - 'ade20k': 'ADE20K', - 'voc12aug': 'Pascal VOC 2012 + Aug' - } - for directory in table_cache: - for dataset in table_cache[directory]: - table = table_cache[directory][dataset][0] - writer.table_name = dataset_maps[dataset] - writer.value_matrix = table - for i in range(len(table)): - if table[i][-4] != '-': - table[i][-4] = f'{table[i][-4]:.2f}' - mmcv.mkdir_or_exist(osp.join(output_dir, directory)) - writer.dump( - osp.join(output_dir, directory, f'README_{dataset}.md')) - with open(osp.join(output_dir, directory, 'README.md'), 'w') as dst_f: - for dataset in dataset_maps: - dataset_md_file = osp.join(output_dir, directory, - f'README_{dataset}.md') - with open(dataset_md_file) as src_f: - for line in src_f: - dst_f.write(line) - dst_f.write('\n') - os.remove(dataset_md_file) - - -if __name__ == '__main__': - main() diff --git a/.dev/upload_modelzoo.py b/.dev/upload_modelzoo.py new file mode 100644 index 0000000000..bd78bc41e6 --- /dev/null +++ b/.dev/upload_modelzoo.py @@ -0,0 +1,44 @@ +import argparse +import os +import os.path as osp + +import oss2 + +ACCESS_KEY_ID = os.getenv('OSS_ACCESS_KEY_ID', None) +ACCESS_KEY_SECRET = os.getenv('OSS_ACCESS_KEY_SECRET', None) +BUCKET_NAME = 'openmmlab' +ENDPOINT = 'https://oss-accelerate.aliyuncs.com' + + +def parse_args(): + parser = argparse.ArgumentParser(description='Upload models to OSS') + parser.add_argument('model_zoo', type=str, help='model_zoo input') + parser.add_argument( + '--dst-folder', + type=str, + default='mmsegmentation/v0.5', + help='destination folder') + args = parser.parse_args() + return args + + +def main(): + args = parse_args() + model_zoo = args.model_zoo + dst_folder = args.dst_folder + bucket = oss2.Bucket( + oss2.Auth(ACCESS_KEY_ID, ACCESS_KEY_SECRET), ENDPOINT, BUCKET_NAME) + + for root, dirs, files in os.walk(model_zoo): + for file in files: + file_path = osp.relpath(osp.join(root, file), model_zoo) + print(f'Uploading {file_path}') + + oss2.resumable_upload(bucket, osp.join(dst_folder, file_path), + osp.join(model_zoo, file_path)) + bucket.put_object_acl( + osp.join(dst_folder, file_path), oss2.OBJECT_ACL_PUBLIC_READ) + + +if __name__ == '__main__': + main() diff --git a/mmseg/core/utils/__init__.py b/mmseg/core/utils/__init__.py index 79d62f0270..f2678b321c 100644 --- a/mmseg/core/utils/__init__.py +++ b/mmseg/core/utils/__init__.py @@ -1,4 +1,3 @@ -from .dist_utils import allreduce_grads from .misc import add_prefix -__all__ = ['add_prefix', 'allreduce_grads'] +__all__ = ['add_prefix'] diff --git a/mmseg/core/utils/dist_utils.py b/mmseg/core/utils/dist_utils.py deleted file mode 100644 index 25219a7956..0000000000 --- a/mmseg/core/utils/dist_utils.py +++ /dev/null @@ -1,49 +0,0 @@ -from collections import OrderedDict - -import torch.distributed as dist -from torch._utils import (_flatten_dense_tensors, _take_tensors, - _unflatten_dense_tensors) - - -def _allreduce_coalesced(tensors, world_size, bucket_size_mb=-1): - if bucket_size_mb > 0: - bucket_size_bytes = bucket_size_mb * 1024 * 1024 - buckets = _take_tensors(tensors, bucket_size_bytes) - else: - buckets = OrderedDict() - for tensor in tensors: - tp = tensor.type() - if tp not in buckets: - buckets[tp] = [] - buckets[tp].append(tensor) - buckets = buckets.values() - - for bucket in buckets: - flat_tensors = _flatten_dense_tensors(bucket) - dist.all_reduce(flat_tensors) - flat_tensors.div_(world_size) - for tensor, synced in zip( - bucket, _unflatten_dense_tensors(flat_tensors, bucket)): - tensor.copy_(synced) - - -def allreduce_grads(params, coalesce=True, bucket_size_mb=-1): - """Allreduce gradients. - - Args: - params (list[torch.Parameters]): List of parameters of a model - coalesce (bool, optional): Whether allreduce parameters as a whole. - Defaults to True. - bucket_size_mb (int, optional): Size of bucket, the unit is MB. - Defaults to -1. - """ - grads = [ - param.grad.data for param in params - if param.requires_grad and param.grad is not None - ] - world_size = dist.get_world_size() - if coalesce: - _allreduce_coalesced(grads, world_size, bucket_size_mb) - else: - for tensor in grads: - dist.all_reduce(tensor.div_(world_size)) diff --git a/mmseg/models/backbones/fast_scnn.py b/mmseg/models/backbones/fast_scnn.py index dcb24214dd..4aaec2212d 100644 --- a/mmseg/models/backbones/fast_scnn.py +++ b/mmseg/models/backbones/fast_scnn.py @@ -1,10 +1,11 @@ import torch import torch.nn as nn -from mmcv.cnn import ConvModule, constant_init, kaiming_init +from mmcv.cnn import (ConvModule, DepthwiseSeparableConvModule, constant_init, + kaiming_init) from torch.nn.modules.batchnorm import _BatchNorm from mmseg.models.decode_heads.psp_head import PPM -from mmseg.ops import DepthwiseSeparableConvModule, resize +from mmseg.ops import resize from mmseg.utils import InvertedResidual from ..builder import BACKBONES diff --git a/mmseg/models/decode_heads/sep_aspp_head.py b/mmseg/models/decode_heads/sep_aspp_head.py index 71881890bd..50bd52bcff 100644 --- a/mmseg/models/decode_heads/sep_aspp_head.py +++ b/mmseg/models/decode_heads/sep_aspp_head.py @@ -1,8 +1,8 @@ import torch import torch.nn as nn -from mmcv.cnn import ConvModule +from mmcv.cnn import ConvModule, DepthwiseSeparableConvModule -from mmseg.ops import DepthwiseSeparableConvModule, resize +from mmseg.ops import resize from ..builder import HEADS from .aspp_head import ASPPHead, ASPPModule diff --git a/mmseg/models/decode_heads/sep_fcn_head.py b/mmseg/models/decode_heads/sep_fcn_head.py index 187795128b..a636f702e7 100644 --- a/mmseg/models/decode_heads/sep_fcn_head.py +++ b/mmseg/models/decode_heads/sep_fcn_head.py @@ -1,4 +1,5 @@ -from mmseg.ops import DepthwiseSeparableConvModule +from mmcv.cnn import DepthwiseSeparableConvModule + from ..builder import HEADS from .fcn_head import FCNHead diff --git a/mmseg/ops/__init__.py b/mmseg/ops/__init__.py index 7a0b930c35..bec51c75b9 100644 --- a/mmseg/ops/__init__.py +++ b/mmseg/ops/__init__.py @@ -1,5 +1,4 @@ from .encoding import Encoding -from .separable_conv_module import DepthwiseSeparableConvModule from .wrappers import Upsample, resize -__all__ = ['Upsample', 'resize', 'DepthwiseSeparableConvModule', 'Encoding'] +__all__ = ['Upsample', 'resize', 'Encoding'] diff --git a/mmseg/ops/separable_conv_module.py b/mmseg/ops/separable_conv_module.py deleted file mode 100644 index 4e5922cc4d..0000000000 --- a/mmseg/ops/separable_conv_module.py +++ /dev/null @@ -1,88 +0,0 @@ -import torch.nn as nn -from mmcv.cnn import ConvModule - - -class DepthwiseSeparableConvModule(nn.Module): - """Depthwise separable convolution module. - - See https://arxiv.org/pdf/1704.04861.pdf for details. - - This module can replace a ConvModule with the conv block replaced by two - conv block: depthwise conv block and pointwise conv block. The depthwise - conv block contains depthwise-conv/norm/activation layers. The pointwise - conv block contains pointwise-conv/norm/activation layers. It should be - noted that there will be norm/activation layer in the depthwise conv block - if `norm_cfg` and `act_cfg` are specified. - - Args: - in_channels (int): Same as nn.Conv2d. - out_channels (int): Same as nn.Conv2d. - kernel_size (int or tuple[int]): Same as nn.Conv2d. - stride (int or tuple[int]): Same as nn.Conv2d. Default: 1. - padding (int or tuple[int]): Same as nn.Conv2d. Default: 0. - dilation (int or tuple[int]): Same as nn.Conv2d. Default: 1. - norm_cfg (dict): Default norm config for both depthwise ConvModule and - pointwise ConvModule. Default: None. - act_cfg (dict): Default activation config for both depthwise ConvModule - and pointwise ConvModule. Default: dict(type='ReLU'). - dw_norm_cfg (dict): Norm config of depthwise ConvModule. If it is - 'default', it will be the same as `norm_cfg`. Default: 'default'. - dw_act_cfg (dict): Activation config of depthwise ConvModule. If it is - 'default', it will be the same as `act_cfg`. Default: 'default'. - pw_norm_cfg (dict): Norm config of pointwise ConvModule. If it is - 'default', it will be the same as `norm_cfg`. Default: 'default'. - pw_act_cfg (dict): Activation config of pointwise ConvModule. If it is - 'default', it will be the same as `act_cfg`. Default: 'default'. - kwargs (optional): Other shared arguments for depthwise and pointwise - ConvModule. See ConvModule for ref. - """ - - def __init__(self, - in_channels, - out_channels, - kernel_size, - stride=1, - padding=0, - dilation=1, - norm_cfg=None, - act_cfg=dict(type='ReLU'), - dw_norm_cfg='default', - dw_act_cfg='default', - pw_norm_cfg='default', - pw_act_cfg='default', - **kwargs): - super(DepthwiseSeparableConvModule, self).__init__() - assert 'groups' not in kwargs, 'groups should not be specified' - - # if norm/activation config of depthwise/pointwise ConvModule is not - # specified, use default config. - dw_norm_cfg = dw_norm_cfg if dw_norm_cfg != 'default' else norm_cfg - dw_act_cfg = dw_act_cfg if dw_act_cfg != 'default' else act_cfg - pw_norm_cfg = pw_norm_cfg if pw_norm_cfg != 'default' else norm_cfg - pw_act_cfg = pw_act_cfg if pw_act_cfg != 'default' else act_cfg - - # depthwise convolution - self.depthwise_conv = ConvModule( - in_channels, - in_channels, - kernel_size, - stride=stride, - padding=padding, - dilation=dilation, - groups=in_channels, - norm_cfg=dw_norm_cfg, - act_cfg=dw_act_cfg, - **kwargs) - - self.pointwise_conv = ConvModule( - in_channels, - out_channels, - 1, - norm_cfg=pw_norm_cfg, - act_cfg=pw_act_cfg, - **kwargs) - - def forward(self, x): - x = self.depthwise_conv(x) - x = self.pointwise_conv(x) - return x diff --git a/setup.cfg b/setup.cfg index 21aad54e48..cb533f4b59 100644 --- a/setup.cfg +++ b/setup.cfg @@ -8,6 +8,6 @@ line_length = 79 multi_line_output = 0 known_standard_library = setuptools known_first_party = mmseg -known_third_party = PIL,cityscapesscripts,detail,matplotlib,mmcv,numpy,onnxruntime,pytablewriter,pytest,scipy,torch +known_third_party = PIL,cityscapesscripts,detail,matplotlib,mmcv,numpy,onnxruntime,oss2,pytest,scipy,torch no_lines_before = STDLIB,LOCALFOLDER default_section = THIRDPARTY diff --git a/tests/test_models/test_heads.py b/tests/test_models/test_heads.py index 02460cbc4e..8e60a915c6 100644 --- a/tests/test_models/test_heads.py +++ b/tests/test_models/test_heads.py @@ -2,7 +2,7 @@ import pytest import torch -from mmcv.cnn import ConvModule +from mmcv.cnn import ConvModule, DepthwiseSeparableConvModule from mmcv.utils import ConfigDict from mmcv.utils.parrots_wrapper import SyncBatchNorm @@ -557,7 +557,6 @@ def test_sep_fcn_head(): output = head(x) assert output.shape == (2, head.num_classes, 32, 32) assert not head.concat_input - from mmseg.ops.separable_conv_module import DepthwiseSeparableConvModule assert isinstance(head.convs[0], DepthwiseSeparableConvModule) assert isinstance(head.convs[1], DepthwiseSeparableConvModule) assert head.conv_seg.kernel_size == (1, 1) @@ -573,7 +572,6 @@ def test_sep_fcn_head(): output = head(x) assert output.shape == (3, head.num_classes, 32, 32) assert head.concat_input - from mmseg.ops.separable_conv_module import DepthwiseSeparableConvModule assert isinstance(head.convs[0], DepthwiseSeparableConvModule) assert isinstance(head.convs[1], DepthwiseSeparableConvModule) diff --git a/tests/test_ops/test_sep_conv_module.py b/tests/test_ops/test_sep_conv_module.py deleted file mode 100644 index 4eb650111c..0000000000 --- a/tests/test_ops/test_sep_conv_module.py +++ /dev/null @@ -1,71 +0,0 @@ -import pytest -import torch -import torch.nn as nn - -from mmseg.ops import DepthwiseSeparableConvModule - - -def test_depthwise_separable_conv(): - with pytest.raises(AssertionError): - # conv_cfg must be a dict or None - DepthwiseSeparableConvModule(4, 8, 2, groups=2) - - # test default config - conv = DepthwiseSeparableConvModule(3, 8, 2) - assert conv.depthwise_conv.conv.groups == 3 - assert conv.pointwise_conv.conv.kernel_size == (1, 1) - assert not conv.depthwise_conv.with_norm - assert not conv.pointwise_conv.with_norm - assert conv.depthwise_conv.activate.__class__.__name__ == 'ReLU' - assert conv.pointwise_conv.activate.__class__.__name__ == 'ReLU' - x = torch.rand(1, 3, 256, 256) - output = conv(x) - assert output.shape == (1, 8, 255, 255) - - # test - conv = DepthwiseSeparableConvModule(3, 8, 2, dw_norm_cfg=dict(type='BN')) - assert conv.depthwise_conv.norm_name == 'bn' - assert not conv.pointwise_conv.with_norm - x = torch.rand(1, 3, 256, 256) - output = conv(x) - assert output.shape == (1, 8, 255, 255) - - conv = DepthwiseSeparableConvModule(3, 8, 2, pw_norm_cfg=dict(type='BN')) - assert not conv.depthwise_conv.with_norm - assert conv.pointwise_conv.norm_name == 'bn' - x = torch.rand(1, 3, 256, 256) - output = conv(x) - assert output.shape == (1, 8, 255, 255) - - # add test for ['norm', 'conv', 'act'] - conv = DepthwiseSeparableConvModule(3, 8, 2, order=('norm', 'conv', 'act')) - x = torch.rand(1, 3, 256, 256) - output = conv(x) - assert output.shape == (1, 8, 255, 255) - - conv = DepthwiseSeparableConvModule( - 3, 8, 3, padding=1, with_spectral_norm=True) - assert hasattr(conv.depthwise_conv.conv, 'weight_orig') - assert hasattr(conv.pointwise_conv.conv, 'weight_orig') - output = conv(x) - assert output.shape == (1, 8, 256, 256) - - conv = DepthwiseSeparableConvModule( - 3, 8, 3, padding=1, padding_mode='reflect') - assert isinstance(conv.depthwise_conv.padding_layer, nn.ReflectionPad2d) - output = conv(x) - assert output.shape == (1, 8, 256, 256) - - conv = DepthwiseSeparableConvModule( - 3, 8, 3, padding=1, dw_act_cfg=dict(type='LeakyReLU')) - assert conv.depthwise_conv.activate.__class__.__name__ == 'LeakyReLU' - assert conv.pointwise_conv.activate.__class__.__name__ == 'ReLU' - output = conv(x) - assert output.shape == (1, 8, 256, 256) - - conv = DepthwiseSeparableConvModule( - 3, 8, 3, padding=1, pw_act_cfg=dict(type='LeakyReLU')) - assert conv.depthwise_conv.activate.__class__.__name__ == 'ReLU' - assert conv.pointwise_conv.activate.__class__.__name__ == 'LeakyReLU' - output = conv(x) - assert output.shape == (1, 8, 256, 256) From e86f4377b34b719a63801be61ec7ff7441910fbb Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Mon, 28 Sep 2020 00:32:44 +0800 Subject: [PATCH 043/706] [Enhance] Update url to https://download.openmmlab.com (#165) --- .github/workflows/build.yml | 2 +- configs/ann/README.md | 32 ++++++++++---------- configs/ccnet/README.md | 32 ++++++++++---------- configs/danet/README.md | 32 ++++++++++---------- configs/deeplabv3/README.md | 36 +++++++++++----------- configs/deeplabv3plus/README.md | 36 +++++++++++----------- configs/dnlnet/README.md | 24 +++++++-------- configs/emanet/README.md | 8 ++--- configs/encnet/README.md | 24 +++++++-------- configs/fcn/README.md | 36 +++++++++++----------- configs/fp16/README.md | 8 ++--- configs/gcnet/README.md | 32 ++++++++++---------- configs/hrnet/README.md | 46 ++++++++++++++-------------- configs/mobilenet_v2/README.md | 16 +++++----- configs/nonlocal_net/README.md | 32 ++++++++++---------- configs/ocrnet/README.md | 48 +++++++++++++++--------------- configs/point_rend/README.md | 8 ++--- configs/psanet/README.md | 32 ++++++++++---------- configs/pspnet/README.md | 36 +++++++++++----------- configs/resnest/README.md | 16 +++++----- configs/sem_fpn/README.md | 8 ++--- configs/upernet/README.md | 32 ++++++++++---------- demo/MMSegmentation_Tutorial.ipynb | 6 ++-- docker/Dockerfile | 2 +- docs/install.md | 4 +-- 25 files changed, 294 insertions(+), 294 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 48b0cb7811..037a024875 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -79,7 +79,7 @@ jobs: run: pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html - name: Install mmseg dependencies run: | - pip install mmcv-full==latest+torch${{matrix.torch}} -f https://openmmlab.oss-accelerate.aliyuncs.com/mmcv/dist/index.html + pip install mmcv-full==latest+torch${{matrix.torch}} -f https://download.openmmlab.com/mmcv/dist/index.html pip install -r requirements.txt - name: Build and install run: rm -rf .eggs && pip install -e . diff --git a/configs/ann/README.md b/configs/ann/README.md index e3e217c4bd..523eaa8a3c 100644 --- a/configs/ann/README.md +++ b/configs/ann/README.md @@ -20,27 +20,27 @@ ### Cityscapes | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| ANN | R-50-D8 | 512x1024 | 40000 | 6 | 3.71 | 77.40 | 78.57 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_40k_cityscapes/ann_r50-d8_512x1024_40k_cityscapes_20200605_095211-049fc292.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_40k_cityscapes/ann_r50-d8_512x1024_40k_cityscapes_20200605_095211.log.json) | -| ANN | R-101-D8 | 512x1024 | 40000 | 9.5 | 2.55 | 76.55 | 78.85 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_40k_cityscapes/ann_r101-d8_512x1024_40k_cityscapes_20200605_095243-adf6eece.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_40k_cityscapes/ann_r101-d8_512x1024_40k_cityscapes_20200605_095243.log.json) | -| ANN | R-50-D8 | 769x769 | 40000 | 6.8 | 1.70 | 78.89 | 80.46 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_40k_cityscapes/ann_r50-d8_769x769_40k_cityscapes_20200530_025712-2b46b04d.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_40k_cityscapes/ann_r50-d8_769x769_40k_cityscapes_20200530_025712.log.json) | -| ANN | R-101-D8 | 769x769 | 40000 | 10.7 | 1.15 | 79.32 | 80.94 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_40k_cityscapes/ann_r101-d8_769x769_40k_cityscapes_20200530_025720-059bff28.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_40k_cityscapes/ann_r101-d8_769x769_40k_cityscapes_20200530_025720.log.json) | -| ANN | R-50-D8 | 512x1024 | 80000 | - | - | 77.34 | 78.65 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_80k_cityscapes/ann_r50-d8_512x1024_80k_cityscapes_20200607_101911-5a9ad545.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_80k_cityscapes/ann_r50-d8_512x1024_80k_cityscapes_20200607_101911.log.json) | -| ANN | R-101-D8 | 512x1024 | 80000 | - | - | 77.14 | 78.81 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_80k_cityscapes/ann_r101-d8_512x1024_80k_cityscapes_20200607_013728-aceccc6e.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_80k_cityscapes/ann_r101-d8_512x1024_80k_cityscapes_20200607_013728.log.json) | -| ANN | R-50-D8 | 769x769 | 80000 | - | - | 78.88 | 80.57 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_80k_cityscapes/ann_r50-d8_769x769_80k_cityscapes_20200607_044426-cc7ff323.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_80k_cityscapes/ann_r50-d8_769x769_80k_cityscapes_20200607_044426.log.json) | -| ANN | R-101-D8 | 769x769 | 80000 | - | - | 78.80 | 80.34 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_80k_cityscapes/ann_r101-d8_769x769_80k_cityscapes_20200607_013713-a9d4be8d.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_80k_cityscapes/ann_r101-d8_769x769_80k_cityscapes_20200607_013713.log.json) | +| ANN | R-50-D8 | 512x1024 | 40000 | 6 | 3.71 | 77.40 | 78.57 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_40k_cityscapes/ann_r50-d8_512x1024_40k_cityscapes_20200605_095211-049fc292.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_40k_cityscapes/ann_r50-d8_512x1024_40k_cityscapes_20200605_095211.log.json) | +| ANN | R-101-D8 | 512x1024 | 40000 | 9.5 | 2.55 | 76.55 | 78.85 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_40k_cityscapes/ann_r101-d8_512x1024_40k_cityscapes_20200605_095243-adf6eece.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_40k_cityscapes/ann_r101-d8_512x1024_40k_cityscapes_20200605_095243.log.json) | +| ANN | R-50-D8 | 769x769 | 40000 | 6.8 | 1.70 | 78.89 | 80.46 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_40k_cityscapes/ann_r50-d8_769x769_40k_cityscapes_20200530_025712-2b46b04d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_40k_cityscapes/ann_r50-d8_769x769_40k_cityscapes_20200530_025712.log.json) | +| ANN | R-101-D8 | 769x769 | 40000 | 10.7 | 1.15 | 79.32 | 80.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_40k_cityscapes/ann_r101-d8_769x769_40k_cityscapes_20200530_025720-059bff28.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_40k_cityscapes/ann_r101-d8_769x769_40k_cityscapes_20200530_025720.log.json) | +| ANN | R-50-D8 | 512x1024 | 80000 | - | - | 77.34 | 78.65 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_80k_cityscapes/ann_r50-d8_512x1024_80k_cityscapes_20200607_101911-5a9ad545.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_80k_cityscapes/ann_r50-d8_512x1024_80k_cityscapes_20200607_101911.log.json) | +| ANN | R-101-D8 | 512x1024 | 80000 | - | - | 77.14 | 78.81 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_80k_cityscapes/ann_r101-d8_512x1024_80k_cityscapes_20200607_013728-aceccc6e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_80k_cityscapes/ann_r101-d8_512x1024_80k_cityscapes_20200607_013728.log.json) | +| ANN | R-50-D8 | 769x769 | 80000 | - | - | 78.88 | 80.57 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_80k_cityscapes/ann_r50-d8_769x769_80k_cityscapes_20200607_044426-cc7ff323.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_80k_cityscapes/ann_r50-d8_769x769_80k_cityscapes_20200607_044426.log.json) | +| ANN | R-101-D8 | 769x769 | 80000 | - | - | 78.80 | 80.34 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_80k_cityscapes/ann_r101-d8_769x769_80k_cityscapes_20200607_013713-a9d4be8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_80k_cityscapes/ann_r101-d8_769x769_80k_cityscapes_20200607_013713.log.json) | ### ADE20K | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| ANN | R-50-D8 | 512x512 | 80000 | 9.1 | 21.01 | 41.01 | 42.30 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_80k_ade20k/ann_r50-d8_512x512_80k_ade20k_20200615_014818-26f75e11.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_80k_ade20k/ann_r50-d8_512x512_80k_ade20k_20200615_014818.log.json) | -| ANN | R-101-D8 | 512x512 | 80000 | 12.5 | 14.12 | 42.94 | 44.18 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_80k_ade20k/ann_r101-d8_512x512_80k_ade20k_20200615_014818-c0153543.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_80k_ade20k/ann_r101-d8_512x512_80k_ade20k_20200615_014818.log.json) | -| ANN | R-50-D8 | 512x512 | 160000 | - | - | 41.74 | 42.62 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_160k_ade20k/ann_r50-d8_512x512_160k_ade20k_20200615_231733-892247bc.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_160k_ade20k/ann_r50-d8_512x512_160k_ade20k_20200615_231733.log.json) | -| ANN | R-101-D8 | 512x512 | 160000 | - | - | 42.94 | 44.06 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_160k_ade20k/ann_r101-d8_512x512_160k_ade20k_20200615_231733-955eb1ec.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_160k_ade20k/ann_r101-d8_512x512_160k_ade20k_20200615_231733.log.json) | +| ANN | R-50-D8 | 512x512 | 80000 | 9.1 | 21.01 | 41.01 | 42.30 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_80k_ade20k/ann_r50-d8_512x512_80k_ade20k_20200615_014818-26f75e11.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_80k_ade20k/ann_r50-d8_512x512_80k_ade20k_20200615_014818.log.json) | +| ANN | R-101-D8 | 512x512 | 80000 | 12.5 | 14.12 | 42.94 | 44.18 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_80k_ade20k/ann_r101-d8_512x512_80k_ade20k_20200615_014818-c0153543.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_80k_ade20k/ann_r101-d8_512x512_80k_ade20k_20200615_014818.log.json) | +| ANN | R-50-D8 | 512x512 | 160000 | - | - | 41.74 | 42.62 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_160k_ade20k/ann_r50-d8_512x512_160k_ade20k_20200615_231733-892247bc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_160k_ade20k/ann_r50-d8_512x512_160k_ade20k_20200615_231733.log.json) | +| ANN | R-101-D8 | 512x512 | 160000 | - | - | 42.94 | 44.06 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_160k_ade20k/ann_r101-d8_512x512_160k_ade20k_20200615_231733-955eb1ec.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_160k_ade20k/ann_r101-d8_512x512_160k_ade20k_20200615_231733.log.json) | ### Pascal VOC 2012 + Aug | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| ANN | R-50-D8 | 512x512 | 20000 | 6 | 20.92 | 74.86 | 76.13 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_20k_voc12aug/ann_r50-d8_512x512_20k_voc12aug_20200617_222246-dfcb1c62.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_20k_voc12aug/ann_r50-d8_512x512_20k_voc12aug_20200617_222246.log.json) | -| ANN | R-101-D8 | 512x512 | 20000 | 9.5 | 13.94 | 77.47 | 78.70 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_20k_voc12aug/ann_r101-d8_512x512_20k_voc12aug_20200617_222246-2fad0042.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_20k_voc12aug/ann_r101-d8_512x512_20k_voc12aug_20200617_222246.log.json) | -| ANN | R-50-D8 | 512x512 | 40000 | - | - | 76.56 | 77.51 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_40k_voc12aug/ann_r50-d8_512x512_40k_voc12aug_20200613_231314-b5dac322.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_40k_voc12aug/ann_r50-d8_512x512_40k_voc12aug_20200613_231314.log.json) | -| ANN | R-101-D8 | 512x512 | 40000 | - | - | 76.70 | 78.06 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_40k_voc12aug/ann_r101-d8_512x512_40k_voc12aug_20200613_231314-bd205bbe.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_40k_voc12aug/ann_r101-d8_512x512_40k_voc12aug_20200613_231314.log.json) | +| ANN | R-50-D8 | 512x512 | 20000 | 6 | 20.92 | 74.86 | 76.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_20k_voc12aug/ann_r50-d8_512x512_20k_voc12aug_20200617_222246-dfcb1c62.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_20k_voc12aug/ann_r50-d8_512x512_20k_voc12aug_20200617_222246.log.json) | +| ANN | R-101-D8 | 512x512 | 20000 | 9.5 | 13.94 | 77.47 | 78.70 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_20k_voc12aug/ann_r101-d8_512x512_20k_voc12aug_20200617_222246-2fad0042.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_20k_voc12aug/ann_r101-d8_512x512_20k_voc12aug_20200617_222246.log.json) | +| ANN | R-50-D8 | 512x512 | 40000 | - | - | 76.56 | 77.51 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_40k_voc12aug/ann_r50-d8_512x512_40k_voc12aug_20200613_231314-b5dac322.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_40k_voc12aug/ann_r50-d8_512x512_40k_voc12aug_20200613_231314.log.json) | +| ANN | R-101-D8 | 512x512 | 40000 | - | - | 76.70 | 78.06 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_40k_voc12aug/ann_r101-d8_512x512_40k_voc12aug_20200613_231314-bd205bbe.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_40k_voc12aug/ann_r101-d8_512x512_40k_voc12aug_20200613_231314.log.json) | diff --git a/configs/ccnet/README.md b/configs/ccnet/README.md index 436a962340..7648d630b4 100644 --- a/configs/ccnet/README.md +++ b/configs/ccnet/README.md @@ -15,27 +15,27 @@ ### Cityscapes | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| CCNet | R-50-D8 | 512x1024 | 40000 | 6 | 3.32 | 77.76 | 78.87 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes/ccnet_r50-d8_512x1024_40k_cityscapes_20200616_142517-4123f401.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes/ccnet_r50-d8_512x1024_40k_cityscapes_20200616_142517.log.json) | -| CCNet | R-101-D8 | 512x1024 | 40000 | 9.5 | 2.31 | 76.35 | 78.19 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes/ccnet_r101-d8_512x1024_40k_cityscapes_20200616_142540-a3b84ba6.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes/ccnet_r101-d8_512x1024_40k_cityscapes_20200616_142540.log.json) | -| CCNet | R-50-D8 | 769x769 | 40000 | 6.8 | 1.43 | 78.46 | 79.93 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_40k_cityscapes/ccnet_r50-d8_769x769_40k_cityscapes_20200616_145125-76d11884.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_40k_cityscapes/ccnet_r50-d8_769x769_40k_cityscapes_20200616_145125.log.json) | -| CCNet | R-101-D8 | 769x769 | 40000 | 10.7 | 1.01 | 76.94 | 78.62 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_40k_cityscapes/ccnet_r101-d8_769x769_40k_cityscapes_20200617_101428-4f57c8d0.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_40k_cityscapes/ccnet_r101-d8_769x769_40k_cityscapes_20200617_101428.log.json) | -| CCNet | R-50-D8 | 512x1024 | 80000 | - | - | 79.03 | 80.16 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes/ccnet_r50-d8_512x1024_80k_cityscapes_20200617_010421-869a3423.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes/ccnet_r50-d8_512x1024_80k_cityscapes_20200617_010421.log.json) | -| CCNet | R-101-D8 | 512x1024 | 80000 | - | - | 78.87 | 79.90 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes/ccnet_r101-d8_512x1024_80k_cityscapes_20200617_203935-ffae8917.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes/ccnet_r101-d8_512x1024_80k_cityscapes_20200617_203935.log.json) | -| CCNet | R-50-D8 | 769x769 | 80000 | - | - | 79.29 | 81.08 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_80k_cityscapes/ccnet_r50-d8_769x769_80k_cityscapes_20200617_010421-73eed8ca.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_80k_cityscapes/ccnet_r50-d8_769x769_80k_cityscapes_20200617_010421.log.json) | -| CCNet | R-101-D8 | 769x769 | 80000 | - | - | 79.45 | 80.66 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_80k_cityscapes/ccnet_r101-d8_769x769_80k_cityscapes_20200618_011502-ad3cd481.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_80k_cityscapes/ccnet_r101-d8_769x769_80k_cityscapes_20200618_011502.log.json) | +| CCNet | R-50-D8 | 512x1024 | 40000 | 6 | 3.32 | 77.76 | 78.87 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes/ccnet_r50-d8_512x1024_40k_cityscapes_20200616_142517-4123f401.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes/ccnet_r50-d8_512x1024_40k_cityscapes_20200616_142517.log.json) | +| CCNet | R-101-D8 | 512x1024 | 40000 | 9.5 | 2.31 | 76.35 | 78.19 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes/ccnet_r101-d8_512x1024_40k_cityscapes_20200616_142540-a3b84ba6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes/ccnet_r101-d8_512x1024_40k_cityscapes_20200616_142540.log.json) | +| CCNet | R-50-D8 | 769x769 | 40000 | 6.8 | 1.43 | 78.46 | 79.93 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_40k_cityscapes/ccnet_r50-d8_769x769_40k_cityscapes_20200616_145125-76d11884.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_40k_cityscapes/ccnet_r50-d8_769x769_40k_cityscapes_20200616_145125.log.json) | +| CCNet | R-101-D8 | 769x769 | 40000 | 10.7 | 1.01 | 76.94 | 78.62 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_40k_cityscapes/ccnet_r101-d8_769x769_40k_cityscapes_20200617_101428-4f57c8d0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_40k_cityscapes/ccnet_r101-d8_769x769_40k_cityscapes_20200617_101428.log.json) | +| CCNet | R-50-D8 | 512x1024 | 80000 | - | - | 79.03 | 80.16 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes/ccnet_r50-d8_512x1024_80k_cityscapes_20200617_010421-869a3423.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes/ccnet_r50-d8_512x1024_80k_cityscapes_20200617_010421.log.json) | +| CCNet | R-101-D8 | 512x1024 | 80000 | - | - | 78.87 | 79.90 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes/ccnet_r101-d8_512x1024_80k_cityscapes_20200617_203935-ffae8917.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes/ccnet_r101-d8_512x1024_80k_cityscapes_20200617_203935.log.json) | +| CCNet | R-50-D8 | 769x769 | 80000 | - | - | 79.29 | 81.08 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_80k_cityscapes/ccnet_r50-d8_769x769_80k_cityscapes_20200617_010421-73eed8ca.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_80k_cityscapes/ccnet_r50-d8_769x769_80k_cityscapes_20200617_010421.log.json) | +| CCNet | R-101-D8 | 769x769 | 80000 | - | - | 79.45 | 80.66 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_80k_cityscapes/ccnet_r101-d8_769x769_80k_cityscapes_20200618_011502-ad3cd481.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_80k_cityscapes/ccnet_r101-d8_769x769_80k_cityscapes_20200618_011502.log.json) | ### ADE20K | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| CCNet | R-50-D8 | 512x512 | 80000 | 8.8 | 20.89 | 41.78 | 42.98 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_80k_ade20k/ccnet_r50-d8_512x512_80k_ade20k_20200615_014848-aa37f61e.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_80k_ade20k/ccnet_r50-d8_512x512_80k_ade20k_20200615_014848.log.json) | -| CCNet | R-101-D8 | 512x512 | 80000 | 12.2 | 14.11 | 43.97 | 45.13 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_80k_ade20k/ccnet_r101-d8_512x512_80k_ade20k_20200615_014848-1f4929a3.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_80k_ade20k/ccnet_r101-d8_512x512_80k_ade20k_20200615_014848.log.json) | -| CCNet | R-50-D8 | 512x512 | 160000 | - | - | 42.08 | 43.13 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_160k_ade20k/ccnet_r50-d8_512x512_160k_ade20k_20200616_084435-7c97193b.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_160k_ade20k/ccnet_r50-d8_512x512_160k_ade20k_20200616_084435.log.json) | -| CCNet | R-101-D8 | 512x512 | 160000 | - | - | 43.71 | 45.04 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_160k_ade20k/ccnet_r101-d8_512x512_160k_ade20k_20200616_000644-e849e007.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_160k_ade20k/ccnet_r101-d8_512x512_160k_ade20k_20200616_000644.log.json) | +| CCNet | R-50-D8 | 512x512 | 80000 | 8.8 | 20.89 | 41.78 | 42.98 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_80k_ade20k/ccnet_r50-d8_512x512_80k_ade20k_20200615_014848-aa37f61e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_80k_ade20k/ccnet_r50-d8_512x512_80k_ade20k_20200615_014848.log.json) | +| CCNet | R-101-D8 | 512x512 | 80000 | 12.2 | 14.11 | 43.97 | 45.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_80k_ade20k/ccnet_r101-d8_512x512_80k_ade20k_20200615_014848-1f4929a3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_80k_ade20k/ccnet_r101-d8_512x512_80k_ade20k_20200615_014848.log.json) | +| CCNet | R-50-D8 | 512x512 | 160000 | - | - | 42.08 | 43.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_160k_ade20k/ccnet_r50-d8_512x512_160k_ade20k_20200616_084435-7c97193b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_160k_ade20k/ccnet_r50-d8_512x512_160k_ade20k_20200616_084435.log.json) | +| CCNet | R-101-D8 | 512x512 | 160000 | - | - | 43.71 | 45.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_160k_ade20k/ccnet_r101-d8_512x512_160k_ade20k_20200616_000644-e849e007.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_160k_ade20k/ccnet_r101-d8_512x512_160k_ade20k_20200616_000644.log.json) | ### Pascal VOC 2012 + Aug | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| CCNet | R-50-D8 | 512x512 | 20000 | 6 | 20.45 | 76.17 | 77.51 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_20k_voc12aug/ccnet_r50-d8_512x512_20k_voc12aug_20200617_193212-fad81784.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_20k_voc12aug/ccnet_r50-d8_512x512_20k_voc12aug_20200617_193212.log.json) | -| CCNet | R-101-D8 | 512x512 | 20000 | 9.5 | 13.64 | 77.27 | 79.02 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_20k_voc12aug/ccnet_r101-d8_512x512_20k_voc12aug_20200617_193212-0007b61d.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_20k_voc12aug/ccnet_r101-d8_512x512_20k_voc12aug_20200617_193212.log.json) | -| CCNet | R-50-D8 | 512x512 | 40000 | - | - | 75.96 | 77.04 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_40k_voc12aug/ccnet_r50-d8_512x512_40k_voc12aug_20200613_232127-c2a15f02.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_40k_voc12aug/ccnet_r50-d8_512x512_40k_voc12aug_20200613_232127.log.json) | -| CCNet | R-101-D8 | 512x512 | 40000 | - | - | 77.87 | 78.90 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_40k_voc12aug/ccnet_r101-d8_512x512_40k_voc12aug_20200613_232127-c30da577.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_40k_voc12aug/ccnet_r101-d8_512x512_40k_voc12aug_20200613_232127.log.json) | +| CCNet | R-50-D8 | 512x512 | 20000 | 6 | 20.45 | 76.17 | 77.51 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_20k_voc12aug/ccnet_r50-d8_512x512_20k_voc12aug_20200617_193212-fad81784.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_20k_voc12aug/ccnet_r50-d8_512x512_20k_voc12aug_20200617_193212.log.json) | +| CCNet | R-101-D8 | 512x512 | 20000 | 9.5 | 13.64 | 77.27 | 79.02 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_20k_voc12aug/ccnet_r101-d8_512x512_20k_voc12aug_20200617_193212-0007b61d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_20k_voc12aug/ccnet_r101-d8_512x512_20k_voc12aug_20200617_193212.log.json) | +| CCNet | R-50-D8 | 512x512 | 40000 | - | - | 75.96 | 77.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_40k_voc12aug/ccnet_r50-d8_512x512_40k_voc12aug_20200613_232127-c2a15f02.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_40k_voc12aug/ccnet_r50-d8_512x512_40k_voc12aug_20200613_232127.log.json) | +| CCNet | R-101-D8 | 512x512 | 40000 | - | - | 77.87 | 78.90 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_40k_voc12aug/ccnet_r101-d8_512x512_40k_voc12aug_20200613_232127-c30da577.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_40k_voc12aug/ccnet_r101-d8_512x512_40k_voc12aug_20200613_232127.log.json) | diff --git a/configs/danet/README.md b/configs/danet/README.md index 5550890de4..155b5590d3 100644 --- a/configs/danet/README.md +++ b/configs/danet/README.md @@ -15,27 +15,27 @@ ### Cityscapes | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| DANet | R-50-D8 | 512x1024 | 40000 | 7.4 | 2.66 | 78.74 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_40k_cityscapes/danet_r50-d8_512x1024_40k_cityscapes_20200605_191324-c0dbfa5f.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_40k_cityscapes/danet_r50-d8_512x1024_40k_cityscapes_20200605_191324.log.json) | -| DANet | R-101-D8 | 512x1024 | 40000 | 10.9 | 1.99 | 80.52 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_40k_cityscapes/danet_r101-d8_512x1024_40k_cityscapes_20200605_200831-c57a7157.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_40k_cityscapes/danet_r101-d8_512x1024_40k_cityscapes_20200605_200831.log.json) | -| DANet | R-50-D8 | 769x769 | 40000 | 8.8 | 1.56 | 78.88 | 80.62 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_40k_cityscapes/danet_r50-d8_769x769_40k_cityscapes_20200530_025703-76681c60.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_40k_cityscapes/danet_r50-d8_769x769_40k_cityscapes_20200530_025703.log.json) | -| DANet | R-101-D8 | 769x769 | 40000 | 12.8 | 1.07 | 79.88 | 81.47 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_40k_cityscapes/danet_r101-d8_769x769_40k_cityscapes_20200530_025717-dcb7fd4e.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_40k_cityscapes/danet_r101-d8_769x769_40k_cityscapes_20200530_025717.log.json) | -| DANet | R-50-D8 | 512x1024 | 80000 | - | - | 79.34 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_80k_cityscapes/danet_r50-d8_512x1024_80k_cityscapes_20200607_133029-2bfa2293.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_80k_cityscapes/danet_r50-d8_512x1024_80k_cityscapes_20200607_133029.log.json) | -| DANet | R-101-D8 | 512x1024 | 80000 | - | - | 80.41 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_80k_cityscapes/danet_r101-d8_512x1024_80k_cityscapes_20200607_132918-955e6350.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_80k_cityscapes/danet_r101-d8_512x1024_80k_cityscapes_20200607_132918.log.json) | -| DANet | R-50-D8 | 769x769 | 80000 | - | - | 79.27 | 80.96 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_80k_cityscapes/danet_r50-d8_769x769_80k_cityscapes_20200607_132954-495689b4.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_80k_cityscapes/danet_r50-d8_769x769_80k_cityscapes_20200607_132954.log.json) | -| DANet | R-101-D8 | 769x769 | 80000 | - | - | 80.47 | 82.02 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_80k_cityscapes/danet_r101-d8_769x769_80k_cityscapes_20200607_132918-f3a929e7.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_80k_cityscapes/danet_r101-d8_769x769_80k_cityscapes_20200607_132918.log.json) | +| DANet | R-50-D8 | 512x1024 | 40000 | 7.4 | 2.66 | 78.74 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_40k_cityscapes/danet_r50-d8_512x1024_40k_cityscapes_20200605_191324-c0dbfa5f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_40k_cityscapes/danet_r50-d8_512x1024_40k_cityscapes_20200605_191324.log.json) | +| DANet | R-101-D8 | 512x1024 | 40000 | 10.9 | 1.99 | 80.52 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_40k_cityscapes/danet_r101-d8_512x1024_40k_cityscapes_20200605_200831-c57a7157.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_40k_cityscapes/danet_r101-d8_512x1024_40k_cityscapes_20200605_200831.log.json) | +| DANet | R-50-D8 | 769x769 | 40000 | 8.8 | 1.56 | 78.88 | 80.62 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_40k_cityscapes/danet_r50-d8_769x769_40k_cityscapes_20200530_025703-76681c60.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_40k_cityscapes/danet_r50-d8_769x769_40k_cityscapes_20200530_025703.log.json) | +| DANet | R-101-D8 | 769x769 | 40000 | 12.8 | 1.07 | 79.88 | 81.47 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_40k_cityscapes/danet_r101-d8_769x769_40k_cityscapes_20200530_025717-dcb7fd4e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_40k_cityscapes/danet_r101-d8_769x769_40k_cityscapes_20200530_025717.log.json) | +| DANet | R-50-D8 | 512x1024 | 80000 | - | - | 79.34 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_80k_cityscapes/danet_r50-d8_512x1024_80k_cityscapes_20200607_133029-2bfa2293.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_80k_cityscapes/danet_r50-d8_512x1024_80k_cityscapes_20200607_133029.log.json) | +| DANet | R-101-D8 | 512x1024 | 80000 | - | - | 80.41 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_80k_cityscapes/danet_r101-d8_512x1024_80k_cityscapes_20200607_132918-955e6350.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_80k_cityscapes/danet_r101-d8_512x1024_80k_cityscapes_20200607_132918.log.json) | +| DANet | R-50-D8 | 769x769 | 80000 | - | - | 79.27 | 80.96 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_80k_cityscapes/danet_r50-d8_769x769_80k_cityscapes_20200607_132954-495689b4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_80k_cityscapes/danet_r50-d8_769x769_80k_cityscapes_20200607_132954.log.json) | +| DANet | R-101-D8 | 769x769 | 80000 | - | - | 80.47 | 82.02 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_80k_cityscapes/danet_r101-d8_769x769_80k_cityscapes_20200607_132918-f3a929e7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_80k_cityscapes/danet_r101-d8_769x769_80k_cityscapes_20200607_132918.log.json) | ### ADE20K | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| DANet | R-50-D8 | 512x512 | 80000 | 11.5 | 21.20 | 41.66 | 42.90 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_80k_ade20k/danet_r50-d8_512x512_80k_ade20k_20200615_015125-edb18e08.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_80k_ade20k/danet_r50-d8_512x512_80k_ade20k_20200615_015125.log.json) | -| DANet | R-101-D8 | 512x512 | 80000 | 15 | 14.18 | 43.64 | 45.19 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_80k_ade20k/danet_r101-d8_512x512_80k_ade20k_20200615_015126-d0357c73.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_80k_ade20k/danet_r101-d8_512x512_80k_ade20k_20200615_015126.log.json) | -| DANet | R-50-D8 | 512x512 | 160000 | - | - | 42.45 | 43.25 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_160k_ade20k/danet_r50-d8_512x512_160k_ade20k_20200616_082340-9cb35dcd.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_160k_ade20k/danet_r50-d8_512x512_160k_ade20k_20200616_082340.log.json) | -| DANet | R-101-D8 | 512x512 | 160000 | - | - | 44.17 | 45.02 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_160k_ade20k/danet_r101-d8_512x512_160k_ade20k_20200616_082348-23bf12f9.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_160k_ade20k/danet_r101-d8_512x512_160k_ade20k_20200616_082348.log.json) | +| DANet | R-50-D8 | 512x512 | 80000 | 11.5 | 21.20 | 41.66 | 42.90 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_80k_ade20k/danet_r50-d8_512x512_80k_ade20k_20200615_015125-edb18e08.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_80k_ade20k/danet_r50-d8_512x512_80k_ade20k_20200615_015125.log.json) | +| DANet | R-101-D8 | 512x512 | 80000 | 15 | 14.18 | 43.64 | 45.19 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_80k_ade20k/danet_r101-d8_512x512_80k_ade20k_20200615_015126-d0357c73.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_80k_ade20k/danet_r101-d8_512x512_80k_ade20k_20200615_015126.log.json) | +| DANet | R-50-D8 | 512x512 | 160000 | - | - | 42.45 | 43.25 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_160k_ade20k/danet_r50-d8_512x512_160k_ade20k_20200616_082340-9cb35dcd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_160k_ade20k/danet_r50-d8_512x512_160k_ade20k_20200616_082340.log.json) | +| DANet | R-101-D8 | 512x512 | 160000 | - | - | 44.17 | 45.02 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_160k_ade20k/danet_r101-d8_512x512_160k_ade20k_20200616_082348-23bf12f9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_160k_ade20k/danet_r101-d8_512x512_160k_ade20k_20200616_082348.log.json) | ### Pascal VOC 2012 + Aug | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| DANet | R-50-D8 | 512x512 | 20000 | 6.5 | 20.94 | 74.45 | 75.69 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_20k_voc12aug/danet_r50-d8_512x512_20k_voc12aug_20200618_070026-9e9e3ab3.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_20k_voc12aug/danet_r50-d8_512x512_20k_voc12aug_20200618_070026.log.json) | -| DANet | R-101-D8 | 512x512 | 20000 | 9.9 | 13.76 | 76.02 | 77.23 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_20k_voc12aug/danet_r101-d8_512x512_20k_voc12aug_20200618_070026-d48d23b2.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_20k_voc12aug/danet_r101-d8_512x512_20k_voc12aug_20200618_070026.log.json) | -| DANet | R-50-D8 | 512x512 | 40000 | - | - | 76.37 | 77.29 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_40k_voc12aug/danet_r50-d8_512x512_40k_voc12aug_20200613_235526-426e3a64.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_40k_voc12aug/danet_r50-d8_512x512_40k_voc12aug_20200613_235526.log.json) | -| DANet | R-101-D8 | 512x512 | 40000 | - | - | 76.51 | 77.32 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_40k_voc12aug/danet_r101-d8_512x512_40k_voc12aug_20200613_223031-788e232a.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_40k_voc12aug/danet_r101-d8_512x512_40k_voc12aug_20200613_223031.log.json) | +| DANet | R-50-D8 | 512x512 | 20000 | 6.5 | 20.94 | 74.45 | 75.69 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_20k_voc12aug/danet_r50-d8_512x512_20k_voc12aug_20200618_070026-9e9e3ab3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_20k_voc12aug/danet_r50-d8_512x512_20k_voc12aug_20200618_070026.log.json) | +| DANet | R-101-D8 | 512x512 | 20000 | 9.9 | 13.76 | 76.02 | 77.23 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_20k_voc12aug/danet_r101-d8_512x512_20k_voc12aug_20200618_070026-d48d23b2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_20k_voc12aug/danet_r101-d8_512x512_20k_voc12aug_20200618_070026.log.json) | +| DANet | R-50-D8 | 512x512 | 40000 | - | - | 76.37 | 77.29 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_40k_voc12aug/danet_r50-d8_512x512_40k_voc12aug_20200613_235526-426e3a64.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_40k_voc12aug/danet_r50-d8_512x512_40k_voc12aug_20200613_235526.log.json) | +| DANet | R-101-D8 | 512x512 | 40000 | - | - | 76.51 | 77.32 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_40k_voc12aug/danet_r101-d8_512x512_40k_voc12aug_20200613_223031-788e232a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_40k_voc12aug/danet_r101-d8_512x512_40k_voc12aug_20200613_223031.log.json) | diff --git a/configs/deeplabv3/README.md b/configs/deeplabv3/README.md index e67857edf8..8b465d3d18 100644 --- a/configs/deeplabv3/README.md +++ b/configs/deeplabv3/README.md @@ -17,33 +17,33 @@ Note: `D-8` here corresponding to the output stride 8 setting for DeepLab series ### Cityscapes | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |-----------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| DeepLabV3 | R-50-D8 | 512x1024 | 40000 | 6.1 | 2.57 | 79.09 | 80.45 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes/deeplabv3_r50-d8_512x1024_40k_cityscapes_20200605_022449-acadc2f8.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes/deeplabv3_r50-d8_512x1024_40k_cityscapes_20200605_022449.log.json) | -| DeepLabV3 | R-101-D8 | 512x1024 | 40000 | 9.6 | 1.92 | 77.12 | 79.61 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes/deeplabv3_r101-d8_512x1024_40k_cityscapes_20200605_012241-7fd3f799.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes/deeplabv3_r101-d8_512x1024_40k_cityscapes_20200605_012241.log.json) | -| DeepLabV3 | R-50-D8 | 769x769 | 40000 | 6.9 | 1.11 | 78.58 | 79.89 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes/deeplabv3_r50-d8_769x769_40k_cityscapes_20200606_113723-7eda553c.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes/deeplabv3_r50-d8_769x769_40k_cityscapes_20200606_113723.log.json) | -| DeepLabV3 | R-101-D8 | 769x769 | 40000 | 10.9 | 0.83 | 79.27 | 80.11 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes/deeplabv3_r101-d8_769x769_40k_cityscapes_20200606_113809-c64f889f.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes/deeplabv3_r101-d8_769x769_40k_cityscapes_20200606_113809.log.json) | -| DeepLabV3 | R-50-D8 | 512x1024 | 80000 | - | - | 79.32 | 80.57 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes/deeplabv3_r50-d8_512x1024_80k_cityscapes_20200606_113404-b92cfdd4.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes/deeplabv3_r50-d8_512x1024_80k_cityscapes_20200606_113404.log.json) | -| DeepLabV3 | R-101-D8 | 512x1024 | 80000 | - | - | 80.20 | 81.21 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes/deeplabv3_r101-d8_512x1024_80k_cityscapes_20200606_113503-9e428899.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes/deeplabv3_r101-d8_512x1024_80k_cityscapes_20200606_113503.log.json) | -| DeepLabV3 | R-50-D8 | 769x769 | 80000 | - | - | 79.89 | 81.06 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes/deeplabv3_r50-d8_769x769_80k_cityscapes_20200606_221338-788d6228.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes/deeplabv3_r50-d8_769x769_80k_cityscapes_20200606_221338.log.json) | -| DeepLabV3 | R-101-D8 | 769x769 | 80000 | - | - | 79.67 | 80.81 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes/deeplabv3_r101-d8_769x769_80k_cityscapes_20200607_013353-60e95418.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes/deeplabv3_r101-d8_769x769_80k_cityscapes_20200607_013353.log.json) | +| DeepLabV3 | R-50-D8 | 512x1024 | 40000 | 6.1 | 2.57 | 79.09 | 80.45 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes/deeplabv3_r50-d8_512x1024_40k_cityscapes_20200605_022449-acadc2f8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes/deeplabv3_r50-d8_512x1024_40k_cityscapes_20200605_022449.log.json) | +| DeepLabV3 | R-101-D8 | 512x1024 | 40000 | 9.6 | 1.92 | 77.12 | 79.61 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes/deeplabv3_r101-d8_512x1024_40k_cityscapes_20200605_012241-7fd3f799.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes/deeplabv3_r101-d8_512x1024_40k_cityscapes_20200605_012241.log.json) | +| DeepLabV3 | R-50-D8 | 769x769 | 40000 | 6.9 | 1.11 | 78.58 | 79.89 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes/deeplabv3_r50-d8_769x769_40k_cityscapes_20200606_113723-7eda553c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes/deeplabv3_r50-d8_769x769_40k_cityscapes_20200606_113723.log.json) | +| DeepLabV3 | R-101-D8 | 769x769 | 40000 | 10.9 | 0.83 | 79.27 | 80.11 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes/deeplabv3_r101-d8_769x769_40k_cityscapes_20200606_113809-c64f889f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes/deeplabv3_r101-d8_769x769_40k_cityscapes_20200606_113809.log.json) | +| DeepLabV3 | R-50-D8 | 512x1024 | 80000 | - | - | 79.32 | 80.57 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes/deeplabv3_r50-d8_512x1024_80k_cityscapes_20200606_113404-b92cfdd4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes/deeplabv3_r50-d8_512x1024_80k_cityscapes_20200606_113404.log.json) | +| DeepLabV3 | R-101-D8 | 512x1024 | 80000 | - | - | 80.20 | 81.21 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes/deeplabv3_r101-d8_512x1024_80k_cityscapes_20200606_113503-9e428899.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes/deeplabv3_r101-d8_512x1024_80k_cityscapes_20200606_113503.log.json) | +| DeepLabV3 | R-50-D8 | 769x769 | 80000 | - | - | 79.89 | 81.06 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes/deeplabv3_r50-d8_769x769_80k_cityscapes_20200606_221338-788d6228.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes/deeplabv3_r50-d8_769x769_80k_cityscapes_20200606_221338.log.json) | +| DeepLabV3 | R-101-D8 | 769x769 | 80000 | - | - | 79.67 | 80.81 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes/deeplabv3_r101-d8_769x769_80k_cityscapes_20200607_013353-60e95418.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes/deeplabv3_r101-d8_769x769_80k_cityscapes_20200607_013353.log.json) | ### ADE20K | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |-----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| DeepLabV3 | R-50-D8 | 512x512 | 80000 | 8.9 | 14.76 | 42.42 | 43.28 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k/deeplabv3_r50-d8_512x512_80k_ade20k_20200614_185028-0bb3f844.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k/deeplabv3_r50-d8_512x512_80k_ade20k_20200614_185028.log.json) | -| DeepLabV3 | R-101-D8 | 512x512 | 80000 | 12.4 | 10.14 | 44.08 | 45.19 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k/deeplabv3_r101-d8_512x512_80k_ade20k_20200615_021256-d89c7fa4.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k/deeplabv3_r101-d8_512x512_80k_ade20k_20200615_021256.log.json) | -| DeepLabV3 | R-50-D8 | 512x512 | 160000 | - | - | 42.66 | 44.09 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k/deeplabv3_r50-d8_512x512_160k_ade20k_20200615_123227-5d0ee427.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k/deeplabv3_r50-d8_512x512_160k_ade20k_20200615_123227.log.json) | -| DeepLabV3 | R-101-D8 | 512x512 | 160000 | - | - | 45.00 | 46.66 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k/deeplabv3_r101-d8_512x512_160k_ade20k_20200615_105816-b1f72b3b.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k/deeplabv3_r101-d8_512x512_160k_ade20k_20200615_105816.log.json) | +| DeepLabV3 | R-50-D8 | 512x512 | 80000 | 8.9 | 14.76 | 42.42 | 43.28 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k/deeplabv3_r50-d8_512x512_80k_ade20k_20200614_185028-0bb3f844.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k/deeplabv3_r50-d8_512x512_80k_ade20k_20200614_185028.log.json) | +| DeepLabV3 | R-101-D8 | 512x512 | 80000 | 12.4 | 10.14 | 44.08 | 45.19 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k/deeplabv3_r101-d8_512x512_80k_ade20k_20200615_021256-d89c7fa4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k/deeplabv3_r101-d8_512x512_80k_ade20k_20200615_021256.log.json) | +| DeepLabV3 | R-50-D8 | 512x512 | 160000 | - | - | 42.66 | 44.09 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k/deeplabv3_r50-d8_512x512_160k_ade20k_20200615_123227-5d0ee427.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k/deeplabv3_r50-d8_512x512_160k_ade20k_20200615_123227.log.json) | +| DeepLabV3 | R-101-D8 | 512x512 | 160000 | - | - | 45.00 | 46.66 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k/deeplabv3_r101-d8_512x512_160k_ade20k_20200615_105816-b1f72b3b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k/deeplabv3_r101-d8_512x512_160k_ade20k_20200615_105816.log.json) | ### Pascal VOC 2012 + Aug | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |-----------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| DeepLabV3 | R-50-D8 | 512x512 | 20000 | 6.1 | 13.88 | 76.17 | 77.42 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug/deeplabv3_r50-d8_512x512_20k_voc12aug_20200617_010906-596905ef.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug/deeplabv3_r50-d8_512x512_20k_voc12aug_20200617_010906.log.json) | -| DeepLabV3 | R-101-D8 | 512x512 | 20000 | 9.6 | 9.81 | 78.70 | 79.95 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug/deeplabv3_r101-d8_512x512_20k_voc12aug_20200617_010932-8d13832f.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug/deeplabv3_r101-d8_512x512_20k_voc12aug_20200617_010932.log.json) | -| DeepLabV3 | R-50-D8 | 512x512 | 40000 | - | - | 77.68 | 78.78 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug/deeplabv3_r50-d8_512x512_40k_voc12aug_20200613_161546-2ae96e7e.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug/deeplabv3_r50-d8_512x512_40k_voc12aug_20200613_161546.log.json) | -| DeepLabV3 | R-101-D8 | 512x512 | 40000 | - | - | 77.92 | 79.18 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug/deeplabv3_r101-d8_512x512_40k_voc12aug_20200613_161432-0017d784.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug/deeplabv3_r101-d8_512x512_40k_voc12aug_20200613_161432.log.json) | +| DeepLabV3 | R-50-D8 | 512x512 | 20000 | 6.1 | 13.88 | 76.17 | 77.42 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug/deeplabv3_r50-d8_512x512_20k_voc12aug_20200617_010906-596905ef.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug/deeplabv3_r50-d8_512x512_20k_voc12aug_20200617_010906.log.json) | +| DeepLabV3 | R-101-D8 | 512x512 | 20000 | 9.6 | 9.81 | 78.70 | 79.95 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug/deeplabv3_r101-d8_512x512_20k_voc12aug_20200617_010932-8d13832f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug/deeplabv3_r101-d8_512x512_20k_voc12aug_20200617_010932.log.json) | +| DeepLabV3 | R-50-D8 | 512x512 | 40000 | - | - | 77.68 | 78.78 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug/deeplabv3_r50-d8_512x512_40k_voc12aug_20200613_161546-2ae96e7e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug/deeplabv3_r50-d8_512x512_40k_voc12aug_20200613_161546.log.json) | +| DeepLabV3 | R-101-D8 | 512x512 | 40000 | - | - | 77.92 | 79.18 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug/deeplabv3_r101-d8_512x512_40k_voc12aug_20200613_161432-0017d784.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug/deeplabv3_r101-d8_512x512_40k_voc12aug_20200613_161432.log.json) | ### Pascal Context | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |-----------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| DeepLabV3 | R-101-D8 | 480x480 | 40000 | 9.2 | 7.09 | 46.55 | 47.81 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context/deeplabv3_r101-d8_480x480_40k_pascal_context_20200911_204118-1aa27336.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context/deeplabv3_r101-d8_480x480_40k_pascal_context-20200911_204118.log.json) | -| DeepLabV3 | R-101-D8 | 480x480 | 80000 | - | - | 46.42 | 47.53 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context/deeplabv3_r101-d8_480x480_80k_pascal_context_20200911_170155-2a21fff3.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context/deeplabv3_r101-d8_480x480_80k_pascal_context-20200911_170155.log.json) | +| DeepLabV3 | R-101-D8 | 480x480 | 40000 | 9.2 | 7.09 | 46.55 | 47.81 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context/deeplabv3_r101-d8_480x480_40k_pascal_context_20200911_204118-1aa27336.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context/deeplabv3_r101-d8_480x480_40k_pascal_context-20200911_204118.log.json) | +| DeepLabV3 | R-101-D8 | 480x480 | 80000 | - | - | 46.42 | 47.53 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context/deeplabv3_r101-d8_480x480_80k_pascal_context_20200911_170155-2a21fff3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context/deeplabv3_r101-d8_480x480_80k_pascal_context-20200911_170155.log.json) | diff --git a/configs/deeplabv3plus/README.md b/configs/deeplabv3plus/README.md index cdfaba1f86..72875e3880 100644 --- a/configs/deeplabv3plus/README.md +++ b/configs/deeplabv3plus/README.md @@ -17,33 +17,33 @@ Note: `D-8` here corresponding to the output stride 8 setting for DeepLab series ### Cityscapes | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |------------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| DeepLabV3+ | R-50-D8 | 512x1024 | 40000 | 7.5 | 3.94 | 79.61 | 81.01 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes/deeplabv3plus_r50-d8_512x1024_40k_cityscapes_20200605_094610-d222ffcd.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes/deeplabv3plus_r50-d8_512x1024_40k_cityscapes_20200605_094610.log.json) | -| DeepLabV3+ | R-101-D8 | 512x1024 | 40000 | 11 | 2.60 | 80.21 | 81.82 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes/deeplabv3plus_r101-d8_512x1024_40k_cityscapes_20200605_094614-3769eecf.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes/deeplabv3plus_r101-d8_512x1024_40k_cityscapes_20200605_094614.log.json) | -| DeepLabV3+ | R-50-D8 | 769x769 | 40000 | 8.5 | 1.72 | 78.97 | 80.46 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes/deeplabv3plus_r50-d8_769x769_40k_cityscapes_20200606_114143-1dcb0e3c.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes/deeplabv3plus_r50-d8_769x769_40k_cityscapes_20200606_114143.log.json) | -| DeepLabV3+ | R-101-D8 | 769x769 | 40000 | 12.5 | 1.15 | 79.46 | 80.50 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes/deeplabv3plus_r101-d8_769x769_40k_cityscapes_20200606_114304-ff414b9e.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes/deeplabv3plus_r101-d8_769x769_40k_cityscapes_20200606_114304.log.json) | -| DeepLabV3+ | R-50-D8 | 512x1024 | 80000 | - | - | 80.09 | 81.13 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes/deeplabv3plus_r50-d8_512x1024_80k_cityscapes_20200606_114049-f9fb496d.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes/deeplabv3plus_r50-d8_512x1024_80k_cityscapes_20200606_114049.log.json) | -| DeepLabV3+ | R-101-D8 | 512x1024 | 80000 | - | - | 80.97 | 82.03 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143-068fcfe9.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143.log.json) | -| DeepLabV3+ | R-50-D8 | 769x769 | 80000 | - | - | 79.83 | 81.48 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes/deeplabv3plus_r50-d8_769x769_80k_cityscapes_20200606_210233-0e9dfdc4.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes/deeplabv3plus_r50-d8_769x769_80k_cityscapes_20200606_210233.log.json) | -| DeepLabV3+ | R-101-D8 | 769x769 | 80000 | - | - | 80.98 | 82.18 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes/deeplabv3plus_r101-d8_769x769_80k_cityscapes_20200607_000405-a7573d20.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes/deeplabv3plus_r101-d8_769x769_80k_cityscapes_20200607_000405.log.json) | +| DeepLabV3+ | R-50-D8 | 512x1024 | 40000 | 7.5 | 3.94 | 79.61 | 81.01 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes/deeplabv3plus_r50-d8_512x1024_40k_cityscapes_20200605_094610-d222ffcd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes/deeplabv3plus_r50-d8_512x1024_40k_cityscapes_20200605_094610.log.json) | +| DeepLabV3+ | R-101-D8 | 512x1024 | 40000 | 11 | 2.60 | 80.21 | 81.82 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes/deeplabv3plus_r101-d8_512x1024_40k_cityscapes_20200605_094614-3769eecf.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes/deeplabv3plus_r101-d8_512x1024_40k_cityscapes_20200605_094614.log.json) | +| DeepLabV3+ | R-50-D8 | 769x769 | 40000 | 8.5 | 1.72 | 78.97 | 80.46 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes/deeplabv3plus_r50-d8_769x769_40k_cityscapes_20200606_114143-1dcb0e3c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes/deeplabv3plus_r50-d8_769x769_40k_cityscapes_20200606_114143.log.json) | +| DeepLabV3+ | R-101-D8 | 769x769 | 40000 | 12.5 | 1.15 | 79.46 | 80.50 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes/deeplabv3plus_r101-d8_769x769_40k_cityscapes_20200606_114304-ff414b9e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes/deeplabv3plus_r101-d8_769x769_40k_cityscapes_20200606_114304.log.json) | +| DeepLabV3+ | R-50-D8 | 512x1024 | 80000 | - | - | 80.09 | 81.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes/deeplabv3plus_r50-d8_512x1024_80k_cityscapes_20200606_114049-f9fb496d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes/deeplabv3plus_r50-d8_512x1024_80k_cityscapes_20200606_114049.log.json) | +| DeepLabV3+ | R-101-D8 | 512x1024 | 80000 | - | - | 80.97 | 82.03 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143-068fcfe9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143.log.json) | +| DeepLabV3+ | R-50-D8 | 769x769 | 80000 | - | - | 79.83 | 81.48 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes/deeplabv3plus_r50-d8_769x769_80k_cityscapes_20200606_210233-0e9dfdc4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes/deeplabv3plus_r50-d8_769x769_80k_cityscapes_20200606_210233.log.json) | +| DeepLabV3+ | R-101-D8 | 769x769 | 80000 | - | - | 80.98 | 82.18 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes/deeplabv3plus_r101-d8_769x769_80k_cityscapes_20200607_000405-a7573d20.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes/deeplabv3plus_r101-d8_769x769_80k_cityscapes_20200607_000405.log.json) | ### ADE20K | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |------------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| DeepLabV3+ | R-50-D8 | 512x512 | 80000 | 10.6 | 21.01 | 42.72 | 43.75 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k/deeplabv3plus_r50-d8_512x512_80k_ade20k_20200614_185028-bf1400d8.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k/deeplabv3plus_r50-d8_512x512_80k_ade20k_20200614_185028.log.json) | -| DeepLabV3+ | R-101-D8 | 512x512 | 80000 | 14.1 | 14.16 | 44.60 | 46.06 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k/deeplabv3plus_r101-d8_512x512_80k_ade20k_20200615_014139-d5730af7.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k/deeplabv3plus_r101-d8_512x512_80k_ade20k_20200615_014139.log.json) | -| DeepLabV3+ | R-50-D8 | 512x512 | 160000 | - | - | 43.95 | 44.93 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k/deeplabv3plus_r50-d8_512x512_160k_ade20k_20200615_124504-6135c7e0.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k/deeplabv3plus_r50-d8_512x512_160k_ade20k_20200615_124504.log.json) | -| DeepLabV3+ | R-101-D8 | 512x512 | 160000 | - | - | 45.47 | 46.35 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k/deeplabv3plus_r101-d8_512x512_160k_ade20k_20200615_123232-38ed86bb.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k/deeplabv3plus_r101-d8_512x512_160k_ade20k_20200615_123232.log.json) | +| DeepLabV3+ | R-50-D8 | 512x512 | 80000 | 10.6 | 21.01 | 42.72 | 43.75 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k/deeplabv3plus_r50-d8_512x512_80k_ade20k_20200614_185028-bf1400d8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k/deeplabv3plus_r50-d8_512x512_80k_ade20k_20200614_185028.log.json) | +| DeepLabV3+ | R-101-D8 | 512x512 | 80000 | 14.1 | 14.16 | 44.60 | 46.06 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k/deeplabv3plus_r101-d8_512x512_80k_ade20k_20200615_014139-d5730af7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k/deeplabv3plus_r101-d8_512x512_80k_ade20k_20200615_014139.log.json) | +| DeepLabV3+ | R-50-D8 | 512x512 | 160000 | - | - | 43.95 | 44.93 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k/deeplabv3plus_r50-d8_512x512_160k_ade20k_20200615_124504-6135c7e0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k/deeplabv3plus_r50-d8_512x512_160k_ade20k_20200615_124504.log.json) | +| DeepLabV3+ | R-101-D8 | 512x512 | 160000 | - | - | 45.47 | 46.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k/deeplabv3plus_r101-d8_512x512_160k_ade20k_20200615_123232-38ed86bb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k/deeplabv3plus_r101-d8_512x512_160k_ade20k_20200615_123232.log.json) | #### Pascal VOC 2012 + Aug | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |------------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| DeepLabV3+ | R-50-D8 | 512x512 | 20000 | 7.6 | 21 | 75.93 | 77.50 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug/deeplabv3plus_r50-d8_512x512_20k_voc12aug_20200617_102323-aad58ef1.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug/deeplabv3plus_r50-d8_512x512_20k_voc12aug_20200617_102323.log.json) | -| DeepLabV3+ | R-101-D8 | 512x512 | 20000 | 11 | 13.88 | 77.22 | 78.59 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug/deeplabv3plus_r101-d8_512x512_20k_voc12aug_20200617_102345-c7ff3d56.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug/deeplabv3plus_r101-d8_512x512_20k_voc12aug_20200617_102345.log.json) | -| DeepLabV3+ | R-50-D8 | 512x512 | 40000 | - | - | 76.81 | 77.57 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug/deeplabv3plus_r50-d8_512x512_40k_voc12aug_20200613_161759-e1b43aa9.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug/deeplabv3plus_r50-d8_512x512_40k_voc12aug_20200613_161759.log.json) | -| DeepLabV3+ | R-101-D8 | 512x512 | 40000 | - | - | 78.62 | 79.53 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug/deeplabv3plus_r101-d8_512x512_40k_voc12aug_20200613_205333-faf03387.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug/deeplabv3plus_r101-d8_512x512_40k_voc12aug_20200613_205333.log.json) | +| DeepLabV3+ | R-50-D8 | 512x512 | 20000 | 7.6 | 21 | 75.93 | 77.50 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug/deeplabv3plus_r50-d8_512x512_20k_voc12aug_20200617_102323-aad58ef1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug/deeplabv3plus_r50-d8_512x512_20k_voc12aug_20200617_102323.log.json) | +| DeepLabV3+ | R-101-D8 | 512x512 | 20000 | 11 | 13.88 | 77.22 | 78.59 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug/deeplabv3plus_r101-d8_512x512_20k_voc12aug_20200617_102345-c7ff3d56.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug/deeplabv3plus_r101-d8_512x512_20k_voc12aug_20200617_102345.log.json) | +| DeepLabV3+ | R-50-D8 | 512x512 | 40000 | - | - | 76.81 | 77.57 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug/deeplabv3plus_r50-d8_512x512_40k_voc12aug_20200613_161759-e1b43aa9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug/deeplabv3plus_r50-d8_512x512_40k_voc12aug_20200613_161759.log.json) | +| DeepLabV3+ | R-101-D8 | 512x512 | 40000 | - | - | 78.62 | 79.53 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug/deeplabv3plus_r101-d8_512x512_40k_voc12aug_20200613_205333-faf03387.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug/deeplabv3plus_r101-d8_512x512_40k_voc12aug_20200613_205333.log.json) | #### Pascal Context | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |------------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| DeepLabV3+ | R-101-D8 | 480x480 | 40000 | - | 9.09 | 47.30 | 48.47 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context/deeplabv3plus_r101-d8_480x480_40k_pascal_context_20200911_165459-d3c8a29e.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context/deeplabv3plus_r101-d8_480x480_40k_pascal_context-20200911_165459.log.json) | -| DeepLabV3+ | R-101-D8 | 480x480 | 80000 | - | - | 47.23 | 48.26 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context/deeplabv3plus_r101-d8_480x480_80k_pascal_context_20200911_155322-145d3ee8.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context/deeplabv3plus_r101-d8_480x480_80k_pascal_context-20200911_155322.log.json) | +| DeepLabV3+ | R-101-D8 | 480x480 | 40000 | - | 9.09 | 47.30 | 48.47 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context/deeplabv3plus_r101-d8_480x480_40k_pascal_context_20200911_165459-d3c8a29e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context/deeplabv3plus_r101-d8_480x480_40k_pascal_context-20200911_165459.log.json) | +| DeepLabV3+ | R-101-D8 | 480x480 | 80000 | - | - | 47.23 | 48.26 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context/deeplabv3plus_r101-d8_480x480_80k_pascal_context_20200911_155322-145d3ee8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context/deeplabv3plus_r101-d8_480x480_80k_pascal_context-20200911_155322.log.json) | diff --git a/configs/dnlnet/README.md b/configs/dnlnet/README.md index 925be2d6fb..8397394d10 100644 --- a/configs/dnlnet/README.md +++ b/configs/dnlnet/README.md @@ -20,21 +20,21 @@ This example is to reproduce ["Disentangled Non-Local Neural Networks"](https:// | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|---------:|----------------|------:|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dnl | R-50-D8 | 512x1024 | 40000 | 7.3 | 2.56 | 78.61 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes/dnl_r50-d8_512x1024_40k_cityscapes_20200904_233629-53d4ea93.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes/dnl_r50-d8_512x1024_40k_cityscapes-20200904_233629.log.json) | -| dnl | R-101-D8 | 512x1024 | 40000 | 10.9 | 1.96 | 78.31 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes/dnl_r101-d8_512x1024_40k_cityscapes_20200904_233629-9928ffef.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes/dnl_r101-d8_512x1024_40k_cityscapes-20200904_233629.log.json) | -| dnl | R-50-D8 | 769x769 | 40000 | 9.2 | 1.50 | 78.44 | 80.27 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_40k_cityscapes/dnl_r50-d8_769x769_40k_cityscapes_20200820_232206-0f283785.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_40k_cityscapes/dnl_r50-d8_769x769_40k_cityscapes-20200820_232206.log.json) | -| dnl | R-101-D8 | 769x769 | 40000 | 12.6 | 1.02 | 76.39 | 77.77 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_40k_cityscapes/dnl_r101-d8_769x769_40k_cityscapes_20200820_171256-76c596df.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_40k_cityscapes/dnl_r101-d8_769x769_40k_cityscapes-20200820_171256.log.json) | -| dnl | R-50-D8 | 512x1024 | 80000 | - | - | 79.33 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes/dnl_r50-d8_512x1024_80k_cityscapes_20200904_233629-58b2f778.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes/dnl_r50-d8_512x1024_80k_cityscapes-20200904_233629.log.json) | -| dnl | R-101-D8 | 512x1024 | 80000 | - | - | 80.41 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes/dnl_r101-d8_512x1024_80k_cityscapes_20200904_233629-758e2dd4.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes/dnl_r101-d8_512x1024_80k_cityscapes-20200904_233629.log.json) | -| dnl | R-50-D8 | 769x769 | 80000 | - | - | 79.36 | 80.70 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_80k_cityscapes/dnl_r50-d8_769x769_80k_cityscapes_20200820_011925-366bc4c7.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_80k_cityscapes/dnl_r50-d8_769x769_80k_cityscapes-20200820_011925.log.json) | -| dnl | R-101-D8 | 769x769 | 80000 | - | - | 79.41 | 80.68 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_80k_cityscapes/dnl_r101-d8_769x769_80k_cityscapes_20200821_051111-95ff84ab.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_80k_cityscapes/dnl_r101-d8_769x769_80k_cityscapes-20200821_051111.log.json) | +| dnl | R-50-D8 | 512x1024 | 40000 | 7.3 | 2.56 | 78.61 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes/dnl_r50-d8_512x1024_40k_cityscapes_20200904_233629-53d4ea93.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes/dnl_r50-d8_512x1024_40k_cityscapes-20200904_233629.log.json) | +| dnl | R-101-D8 | 512x1024 | 40000 | 10.9 | 1.96 | 78.31 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes/dnl_r101-d8_512x1024_40k_cityscapes_20200904_233629-9928ffef.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes/dnl_r101-d8_512x1024_40k_cityscapes-20200904_233629.log.json) | +| dnl | R-50-D8 | 769x769 | 40000 | 9.2 | 1.50 | 78.44 | 80.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_40k_cityscapes/dnl_r50-d8_769x769_40k_cityscapes_20200820_232206-0f283785.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_40k_cityscapes/dnl_r50-d8_769x769_40k_cityscapes-20200820_232206.log.json) | +| dnl | R-101-D8 | 769x769 | 40000 | 12.6 | 1.02 | 76.39 | 77.77 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_40k_cityscapes/dnl_r101-d8_769x769_40k_cityscapes_20200820_171256-76c596df.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_40k_cityscapes/dnl_r101-d8_769x769_40k_cityscapes-20200820_171256.log.json) | +| dnl | R-50-D8 | 512x1024 | 80000 | - | - | 79.33 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes/dnl_r50-d8_512x1024_80k_cityscapes_20200904_233629-58b2f778.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes/dnl_r50-d8_512x1024_80k_cityscapes-20200904_233629.log.json) | +| dnl | R-101-D8 | 512x1024 | 80000 | - | - | 80.41 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes/dnl_r101-d8_512x1024_80k_cityscapes_20200904_233629-758e2dd4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes/dnl_r101-d8_512x1024_80k_cityscapes-20200904_233629.log.json) | +| dnl | R-50-D8 | 769x769 | 80000 | - | - | 79.36 | 80.70 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_80k_cityscapes/dnl_r50-d8_769x769_80k_cityscapes_20200820_011925-366bc4c7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_80k_cityscapes/dnl_r50-d8_769x769_80k_cityscapes-20200820_011925.log.json) | +| dnl | R-101-D8 | 769x769 | 80000 | - | - | 79.41 | 80.68 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_80k_cityscapes/dnl_r101-d8_769x769_80k_cityscapes_20200821_051111-95ff84ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_80k_cityscapes/dnl_r101-d8_769x769_80k_cityscapes-20200821_051111.log.json) | ### ADE20K | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|---------:|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| DNL | R-50-D8 | 512x512 | 80000 | 8.8 | 20.66 | 41.76 | 42.99 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_80k_ade20k/dnl_r50-d8_512x512_80k_ade20k_20200826_183354-1cf6e0c1.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_80k_ade20k/dnl_r50-d8_512x512_80k_ade20k-20200826_183354.log.json) | -| DNL | R-101-D8 | 512x512 | 80000 | 12.8 | 12.54 | 43.76 | 44.91 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_80k_ade20k/dnl_r101-d8_512x512_80k_ade20k_20200826_183354-d820d6ea.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_80k_ade20k/dnl_r101-d8_512x512_80k_ade20k-20200826_183354.log.json) | -| DNL | R-50-D8 | 512x512 | 160000 | - | - | 41.87 | 43.01 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_160k_ade20k/dnl_r50-d8_512x512_160k_ade20k_20200826_183350-37837798.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_160k_ade20k/dnl_r50-d8_512x512_160k_ade20k-20200826_183350.log.json) | -| DNL | R-101-D8 | 512x512 | 160000 | - | - | 44.25 | 45.78 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_160k_ade20k/dnl_r101-d8_512x512_160k_ade20k_20200826_183350-ed522c61.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_160k_ade20k/dnl_r101-d8_512x512_160k_ade20k-20200826_183350.log.json) | +| DNL | R-50-D8 | 512x512 | 80000 | 8.8 | 20.66 | 41.76 | 42.99 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_80k_ade20k/dnl_r50-d8_512x512_80k_ade20k_20200826_183354-1cf6e0c1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_80k_ade20k/dnl_r50-d8_512x512_80k_ade20k-20200826_183354.log.json) | +| DNL | R-101-D8 | 512x512 | 80000 | 12.8 | 12.54 | 43.76 | 44.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_80k_ade20k/dnl_r101-d8_512x512_80k_ade20k_20200826_183354-d820d6ea.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_80k_ade20k/dnl_r101-d8_512x512_80k_ade20k-20200826_183354.log.json) | +| DNL | R-50-D8 | 512x512 | 160000 | - | - | 41.87 | 43.01 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_160k_ade20k/dnl_r50-d8_512x512_160k_ade20k_20200826_183350-37837798.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_160k_ade20k/dnl_r50-d8_512x512_160k_ade20k-20200826_183350.log.json) | +| DNL | R-101-D8 | 512x512 | 160000 | - | - | 44.25 | 45.78 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_160k_ade20k/dnl_r101-d8_512x512_160k_ade20k_20200826_183350-ed522c61.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_160k_ade20k/dnl_r101-d8_512x512_160k_ade20k-20200826_183350.log.json) | diff --git a/configs/emanet/README.md b/configs/emanet/README.md index 25ef985332..cddab591c7 100644 --- a/configs/emanet/README.md +++ b/configs/emanet/README.md @@ -16,7 +16,7 @@ ### Cityscapes | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|---------:|----------------|------:|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| EMANet | R-50-D8 | 512x1024 | 80000 | 5.4 | 4.58 | 77.59 | 79.44 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_512x1024_80k_cityscapes/emanet_r50-d8_512x1024_80k_cityscapes_20200901_100301-c43fcef1.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_512x1024_80k_cityscapes/emanet_r50-d8_512x1024_80k_cityscapes-20200901_100301.log.json) | -| EMANet | R-101-D8 | 512x1024 | 80000 | 6.2 | 2.87 | 79.10 | 81.21 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_512x1024_80k_cityscapes/emanet_r101-d8_512x1024_80k_cityscapes_20200901_100301-2d970745.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_512x1024_80k_cityscapes/emanet_r101-d8_512x1024_80k_cityscapes-20200901_100301.log.json) | -| EMANet | R-50-D8 | 769x769 | 80000 | 8.9 | 1.97 | 79.33 | 80.49 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_769x769_80k_cityscapes/emanet_r50-d8_769x769_80k_cityscapes_20200901_100301-16f8de52.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_769x769_80k_cityscapes/emanet_r50-d8_769x769_80k_cityscapes-20200901_100301.log.json) | -| EMANet | R-101-D8 | 769x769 | 80000 | 10.1 | 1.22 | 79.62 | 81.00 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_769x769_80k_cityscapes/emanet_r101-d8_769x769_80k_cityscapes_20200901_100301-47a324ce.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_769x769_80k_cityscapes/emanet_r101-d8_769x769_80k_cityscapes-20200901_100301.log.json) | +| EMANet | R-50-D8 | 512x1024 | 80000 | 5.4 | 4.58 | 77.59 | 79.44 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_512x1024_80k_cityscapes/emanet_r50-d8_512x1024_80k_cityscapes_20200901_100301-c43fcef1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_512x1024_80k_cityscapes/emanet_r50-d8_512x1024_80k_cityscapes-20200901_100301.log.json) | +| EMANet | R-101-D8 | 512x1024 | 80000 | 6.2 | 2.87 | 79.10 | 81.21 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_512x1024_80k_cityscapes/emanet_r101-d8_512x1024_80k_cityscapes_20200901_100301-2d970745.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_512x1024_80k_cityscapes/emanet_r101-d8_512x1024_80k_cityscapes-20200901_100301.log.json) | +| EMANet | R-50-D8 | 769x769 | 80000 | 8.9 | 1.97 | 79.33 | 80.49 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_769x769_80k_cityscapes/emanet_r50-d8_769x769_80k_cityscapes_20200901_100301-16f8de52.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_769x769_80k_cityscapes/emanet_r50-d8_769x769_80k_cityscapes-20200901_100301.log.json) | +| EMANet | R-101-D8 | 769x769 | 80000 | 10.1 | 1.22 | 79.62 | 81.00 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_769x769_80k_cityscapes/emanet_r101-d8_769x769_80k_cityscapes_20200901_100301-47a324ce.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_769x769_80k_cityscapes/emanet_r101-d8_769x769_80k_cityscapes-20200901_100301.log.json) | diff --git a/configs/encnet/README.md b/configs/encnet/README.md index 9f1edde82a..3f60f362c6 100644 --- a/configs/encnet/README.md +++ b/configs/encnet/README.md @@ -16,19 +16,19 @@ year = {2018} ### Cityscapes | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| encnet | R-50-D8 | 512x1024 | 40000 | 8.6 | 4.58 | 75.67 | 77.08 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_40k_cityscapes/encnet_r50-d8_512x1024_40k_cityscapes_20200621_220958-68638a47.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_40k_cityscapes/encnet_r50-d8_512x1024_40k_cityscapes-20200621_220958.log.json) | -| encnet | R-101-D8 | 512x1024 | 40000 | 12.1 | 2.66 | 75.81 | 77.21 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_40k_cityscapes/encnet_r101-d8_512x1024_40k_cityscapes_20200621_220933-35e0a3e8.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_40k_cityscapes/encnet_r101-d8_512x1024_40k_cityscapes-20200621_220933.log.json) | -| encnet | R-50-D8 | 769x769 | 40000 | 9.8 | 1.82 | 76.24 | 77.85 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_40k_cityscapes/encnet_r50-d8_769x769_40k_cityscapes_20200621_220958-3bcd2884.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_40k_cityscapes/encnet_r50-d8_769x769_40k_cityscapes-20200621_220958.log.json) | -| encnet | R-101-D8 | 769x769 | 40000 | 13.7 | 1.26 | 74.25 | 76.25 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_40k_cityscapes/encnet_r101-d8_769x769_40k_cityscapes_20200621_220933-2fafed55.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_40k_cityscapes/encnet_r101-d8_769x769_40k_cityscapes-20200621_220933.log.json) | -| encnet | R-50-D8 | 512x1024 | 80000 | - | - | 77.94 | 79.13 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_80k_cityscapes/encnet_r50-d8_512x1024_80k_cityscapes_20200622_003554-fc5c5624.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_80k_cityscapes/encnet_r50-d8_512x1024_80k_cityscapes-20200622_003554.log.json) | -| encnet | R-101-D8 | 512x1024 | 80000 | - | - | 78.55 | 79.47 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_80k_cityscapes/encnet_r101-d8_512x1024_80k_cityscapes_20200622_003555-1de64bec.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_80k_cityscapes/encnet_r101-d8_512x1024_80k_cityscapes-20200622_003555.log.json) | -| encnet | R-50-D8 | 769x769 | 80000 | - | - | 77.44 | 78.72 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_80k_cityscapes/encnet_r50-d8_769x769_80k_cityscapes_20200622_003554-55096dcb.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_80k_cityscapes/encnet_r50-d8_769x769_80k_cityscapes-20200622_003554.log.json) | -| encnet | R-101-D8 | 769x769 | 80000 | - | - | 76.10 | 76.97 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_80k_cityscapes/encnet_r101-d8_769x769_80k_cityscapes_20200622_003555-470ef79d.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_80k_cityscapes/encnet_r101-d8_769x769_80k_cityscapes-20200622_003555.log.json) | +| encnet | R-50-D8 | 512x1024 | 40000 | 8.6 | 4.58 | 75.67 | 77.08 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_40k_cityscapes/encnet_r50-d8_512x1024_40k_cityscapes_20200621_220958-68638a47.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_40k_cityscapes/encnet_r50-d8_512x1024_40k_cityscapes-20200621_220958.log.json) | +| encnet | R-101-D8 | 512x1024 | 40000 | 12.1 | 2.66 | 75.81 | 77.21 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_40k_cityscapes/encnet_r101-d8_512x1024_40k_cityscapes_20200621_220933-35e0a3e8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_40k_cityscapes/encnet_r101-d8_512x1024_40k_cityscapes-20200621_220933.log.json) | +| encnet | R-50-D8 | 769x769 | 40000 | 9.8 | 1.82 | 76.24 | 77.85 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_40k_cityscapes/encnet_r50-d8_769x769_40k_cityscapes_20200621_220958-3bcd2884.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_40k_cityscapes/encnet_r50-d8_769x769_40k_cityscapes-20200621_220958.log.json) | +| encnet | R-101-D8 | 769x769 | 40000 | 13.7 | 1.26 | 74.25 | 76.25 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_40k_cityscapes/encnet_r101-d8_769x769_40k_cityscapes_20200621_220933-2fafed55.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_40k_cityscapes/encnet_r101-d8_769x769_40k_cityscapes-20200621_220933.log.json) | +| encnet | R-50-D8 | 512x1024 | 80000 | - | - | 77.94 | 79.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_80k_cityscapes/encnet_r50-d8_512x1024_80k_cityscapes_20200622_003554-fc5c5624.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_80k_cityscapes/encnet_r50-d8_512x1024_80k_cityscapes-20200622_003554.log.json) | +| encnet | R-101-D8 | 512x1024 | 80000 | - | - | 78.55 | 79.47 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_80k_cityscapes/encnet_r101-d8_512x1024_80k_cityscapes_20200622_003555-1de64bec.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_80k_cityscapes/encnet_r101-d8_512x1024_80k_cityscapes-20200622_003555.log.json) | +| encnet | R-50-D8 | 769x769 | 80000 | - | - | 77.44 | 78.72 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_80k_cityscapes/encnet_r50-d8_769x769_80k_cityscapes_20200622_003554-55096dcb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_80k_cityscapes/encnet_r50-d8_769x769_80k_cityscapes-20200622_003554.log.json) | +| encnet | R-101-D8 | 769x769 | 80000 | - | - | 76.10 | 76.97 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_80k_cityscapes/encnet_r101-d8_769x769_80k_cityscapes_20200622_003555-470ef79d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_80k_cityscapes/encnet_r101-d8_769x769_80k_cityscapes-20200622_003555.log.json) | ### ADE20K | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| encnet | R-50-D8 | 512x512 | 80000 | 10.1 | 22.81 | 39.53 | 41.17 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_80k_ade20k/encnet_r50-d8_512x512_80k_ade20k_20200622_042412-44b46b04.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_80k_ade20k/encnet_r50-d8_512x512_80k_ade20k-20200622_042412.log.json) | -| encnet | R-101-D8 | 512x512 | 80000 | 13.6 | 14.87 | 42.11 | 43.61 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_80k_ade20k/encnet_r101-d8_512x512_80k_ade20k_20200622_101128-dd35e237.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_80k_ade20k/encnet_r101-d8_512x512_80k_ade20k-20200622_101128.log.json) | -| encnet | R-50-D8 | 512x512 | 160000 | - | - | 40.10 | 41.71 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_160k_ade20k/encnet_r50-d8_512x512_160k_ade20k_20200622_101059-b2db95e0.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_160k_ade20k/encnet_r50-d8_512x512_160k_ade20k-20200622_101059.log.json) | -| encnet | R-101-D8 | 512x512 | 160000 | - | - | 42.61 | 44.01 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_160k_ade20k/encnet_r101-d8_512x512_160k_ade20k_20200622_073348-7989641f.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_160k_ade20k/encnet_r101-d8_512x512_160k_ade20k-20200622_073348.log.json) | +| encnet | R-50-D8 | 512x512 | 80000 | 10.1 | 22.81 | 39.53 | 41.17 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_80k_ade20k/encnet_r50-d8_512x512_80k_ade20k_20200622_042412-44b46b04.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_80k_ade20k/encnet_r50-d8_512x512_80k_ade20k-20200622_042412.log.json) | +| encnet | R-101-D8 | 512x512 | 80000 | 13.6 | 14.87 | 42.11 | 43.61 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_80k_ade20k/encnet_r101-d8_512x512_80k_ade20k_20200622_101128-dd35e237.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_80k_ade20k/encnet_r101-d8_512x512_80k_ade20k-20200622_101128.log.json) | +| encnet | R-50-D8 | 512x512 | 160000 | - | - | 40.10 | 41.71 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_160k_ade20k/encnet_r50-d8_512x512_160k_ade20k_20200622_101059-b2db95e0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_160k_ade20k/encnet_r50-d8_512x512_160k_ade20k-20200622_101059.log.json) | +| encnet | R-101-D8 | 512x512 | 160000 | - | - | 42.61 | 44.01 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_160k_ade20k/encnet_r101-d8_512x512_160k_ade20k_20200622_073348-7989641f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_160k_ade20k/encnet_r101-d8_512x512_160k_ade20k-20200622_073348.log.json) | diff --git a/configs/fcn/README.md b/configs/fcn/README.md index 25c966c183..6638cf89fc 100644 --- a/configs/fcn/README.md +++ b/configs/fcn/README.md @@ -19,33 +19,33 @@ ### Cityscapes | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FCN | R-50-D8 | 512x1024 | 40000 | 5.7 | 4.17 | 72.25 | 73.36 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_40k_cityscapes/fcn_r50-d8_512x1024_40k_cityscapes_20200604_192608-efe53f0d.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_40k_cityscapes/fcn_r50-d8_512x1024_40k_cityscapes_20200604_192608.log.json) | -| FCN | R-101-D8 | 512x1024 | 40000 | 9.2 | 2.66 | 75.45 | 76.58 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_40k_cityscapes/fcn_r101-d8_512x1024_40k_cityscapes_20200604_181852-a883d3a1.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_40k_cityscapes/fcn_r101-d8_512x1024_40k_cityscapes_20200604_181852.log.json) | -| FCN | R-50-D8 | 769x769 | 40000 | 6.5 | 1.80 | 71.47 | 72.54 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_40k_cityscapes/fcn_r50-d8_769x769_40k_cityscapes_20200606_113104-977b5d02.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_40k_cityscapes/fcn_r50-d8_769x769_40k_cityscapes_20200606_113104.log.json) | -| FCN | R-101-D8 | 769x769 | 40000 | 10.4 | 1.19 | 73.93 | 75.14 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_40k_cityscapes/fcn_r101-d8_769x769_40k_cityscapes_20200606_113208-7d4ab69c.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_40k_cityscapes/fcn_r101-d8_769x769_40k_cityscapes_20200606_113208.log.json) | -| FCN | R-50-D8 | 512x1024 | 80000 | - | - | 73.61 | 74.24 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_80k_cityscapes/fcn_r50-d8_512x1024_80k_cityscapes_20200606_113019-03aa804d.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_80k_cityscapes/fcn_r50-d8_512x1024_80k_cityscapes_20200606_113019.log.json) | -| FCN | R-101-D8 | 512x1024 | 80000 | - | - | 75.13 | 75.94 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_80k_cityscapes/fcn_r101-d8_512x1024_80k_cityscapes_20200606_113038-3fb937eb.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_80k_cityscapes/fcn_r101-d8_512x1024_80k_cityscapes_20200606_113038.log.json) | -| FCN | R-50-D8 | 769x769 | 80000 | - | - | 72.64 | 73.32 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_80k_cityscapes/fcn_r50-d8_769x769_80k_cityscapes_20200606_195749-f5caeabc.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_80k_cityscapes/fcn_r50-d8_769x769_80k_cityscapes_20200606_195749.log.json) | -| FCN | R-101-D8 | 769x769 | 80000 | - | - | 75.52 | 76.61 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_80k_cityscapes/fcn_r101-d8_769x769_80k_cityscapes_20200606_214354-45cbac68.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_80k_cityscapes/fcn_r101-d8_769x769_80k_cityscapes_20200606_214354.log.json) | +| FCN | R-50-D8 | 512x1024 | 40000 | 5.7 | 4.17 | 72.25 | 73.36 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_40k_cityscapes/fcn_r50-d8_512x1024_40k_cityscapes_20200604_192608-efe53f0d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_40k_cityscapes/fcn_r50-d8_512x1024_40k_cityscapes_20200604_192608.log.json) | +| FCN | R-101-D8 | 512x1024 | 40000 | 9.2 | 2.66 | 75.45 | 76.58 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_40k_cityscapes/fcn_r101-d8_512x1024_40k_cityscapes_20200604_181852-a883d3a1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_40k_cityscapes/fcn_r101-d8_512x1024_40k_cityscapes_20200604_181852.log.json) | +| FCN | R-50-D8 | 769x769 | 40000 | 6.5 | 1.80 | 71.47 | 72.54 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_40k_cityscapes/fcn_r50-d8_769x769_40k_cityscapes_20200606_113104-977b5d02.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_40k_cityscapes/fcn_r50-d8_769x769_40k_cityscapes_20200606_113104.log.json) | +| FCN | R-101-D8 | 769x769 | 40000 | 10.4 | 1.19 | 73.93 | 75.14 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_40k_cityscapes/fcn_r101-d8_769x769_40k_cityscapes_20200606_113208-7d4ab69c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_40k_cityscapes/fcn_r101-d8_769x769_40k_cityscapes_20200606_113208.log.json) | +| FCN | R-50-D8 | 512x1024 | 80000 | - | - | 73.61 | 74.24 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_80k_cityscapes/fcn_r50-d8_512x1024_80k_cityscapes_20200606_113019-03aa804d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_80k_cityscapes/fcn_r50-d8_512x1024_80k_cityscapes_20200606_113019.log.json) | +| FCN | R-101-D8 | 512x1024 | 80000 | - | - | 75.13 | 75.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_80k_cityscapes/fcn_r101-d8_512x1024_80k_cityscapes_20200606_113038-3fb937eb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_80k_cityscapes/fcn_r101-d8_512x1024_80k_cityscapes_20200606_113038.log.json) | +| FCN | R-50-D8 | 769x769 | 80000 | - | - | 72.64 | 73.32 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_80k_cityscapes/fcn_r50-d8_769x769_80k_cityscapes_20200606_195749-f5caeabc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_80k_cityscapes/fcn_r50-d8_769x769_80k_cityscapes_20200606_195749.log.json) | +| FCN | R-101-D8 | 769x769 | 80000 | - | - | 75.52 | 76.61 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_80k_cityscapes/fcn_r101-d8_769x769_80k_cityscapes_20200606_214354-45cbac68.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_80k_cityscapes/fcn_r101-d8_769x769_80k_cityscapes_20200606_214354.log.json) | ### ADE20K | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FCN | R-50-D8 | 512x512 | 80000 | 8.5 | 23.49 | 35.94 | 37.94 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_80k_ade20k/fcn_r50-d8_512x512_80k_ade20k_20200614_144016-f8ac5082.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_80k_ade20k/fcn_r50-d8_512x512_80k_ade20k_20200614_144016.log.json) | -| FCN | R-101-D8 | 512x512 | 80000 | 12 | 14.78 | 39.61 | 40.83 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_80k_ade20k/fcn_r101-d8_512x512_80k_ade20k_20200615_014143-bc1809f7.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_80k_ade20k/fcn_r101-d8_512x512_80k_ade20k_20200615_014143.log.json) | -| FCN | R-50-D8 | 512x512 | 160000 | - | - | 36.10 | 38.08 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_160k_ade20k/fcn_r50-d8_512x512_160k_ade20k_20200615_100713-4edbc3b4.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_160k_ade20k/fcn_r50-d8_512x512_160k_ade20k_20200615_100713.log.json) | -| FCN | R-101-D8 | 512x512 | 160000 | - | - | 39.91 | 41.40 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_160k_ade20k/fcn_r101-d8_512x512_160k_ade20k_20200615_105816-fd192bd5.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_160k_ade20k/fcn_r101-d8_512x512_160k_ade20k_20200615_105816.log.json) | +| FCN | R-50-D8 | 512x512 | 80000 | 8.5 | 23.49 | 35.94 | 37.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_80k_ade20k/fcn_r50-d8_512x512_80k_ade20k_20200614_144016-f8ac5082.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_80k_ade20k/fcn_r50-d8_512x512_80k_ade20k_20200614_144016.log.json) | +| FCN | R-101-D8 | 512x512 | 80000 | 12 | 14.78 | 39.61 | 40.83 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_80k_ade20k/fcn_r101-d8_512x512_80k_ade20k_20200615_014143-bc1809f7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_80k_ade20k/fcn_r101-d8_512x512_80k_ade20k_20200615_014143.log.json) | +| FCN | R-50-D8 | 512x512 | 160000 | - | - | 36.10 | 38.08 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_160k_ade20k/fcn_r50-d8_512x512_160k_ade20k_20200615_100713-4edbc3b4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_160k_ade20k/fcn_r50-d8_512x512_160k_ade20k_20200615_100713.log.json) | +| FCN | R-101-D8 | 512x512 | 160000 | - | - | 39.91 | 41.40 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_160k_ade20k/fcn_r101-d8_512x512_160k_ade20k_20200615_105816-fd192bd5.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_160k_ade20k/fcn_r101-d8_512x512_160k_ade20k_20200615_105816.log.json) | ### Pascal VOC 2012 + Aug | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FCN | R-50-D8 | 512x512 | 20000 | 5.7 | 23.28 | 67.08 | 69.94 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_20k_voc12aug/fcn_r50-d8_512x512_20k_voc12aug_20200617_010715-52dc5306.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_20k_voc12aug/fcn_r50-d8_512x512_20k_voc12aug_20200617_010715.log.json) | -| FCN | R-101-D8 | 512x512 | 20000 | 9.2 | 14.81 | 71.16 | 73.57 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_20k_voc12aug/fcn_r101-d8_512x512_20k_voc12aug_20200617_010842-0bb4e798.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_20k_voc12aug/fcn_r101-d8_512x512_20k_voc12aug_20200617_010842.log.json) | -| FCN | R-50-D8 | 512x512 | 40000 | - | - | 66.97 | 69.04 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_40k_voc12aug/fcn_r50-d8_512x512_40k_voc12aug_20200613_161222-5e2dbf40.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_40k_voc12aug/fcn_r50-d8_512x512_40k_voc12aug_20200613_161222.log.json) | -| FCN | R-101-D8 | 512x512 | 40000 | - | - | 69.91 | 72.38 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_40k_voc12aug/fcn_r101-d8_512x512_40k_voc12aug_20200613_161240-4c8bcefd.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_40k_voc12aug/fcn_r101-d8_512x512_40k_voc12aug_20200613_161240.log.json) | +| FCN | R-50-D8 | 512x512 | 20000 | 5.7 | 23.28 | 67.08 | 69.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_20k_voc12aug/fcn_r50-d8_512x512_20k_voc12aug_20200617_010715-52dc5306.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_20k_voc12aug/fcn_r50-d8_512x512_20k_voc12aug_20200617_010715.log.json) | +| FCN | R-101-D8 | 512x512 | 20000 | 9.2 | 14.81 | 71.16 | 73.57 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_20k_voc12aug/fcn_r101-d8_512x512_20k_voc12aug_20200617_010842-0bb4e798.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_20k_voc12aug/fcn_r101-d8_512x512_20k_voc12aug_20200617_010842.log.json) | +| FCN | R-50-D8 | 512x512 | 40000 | - | - | 66.97 | 69.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_40k_voc12aug/fcn_r50-d8_512x512_40k_voc12aug_20200613_161222-5e2dbf40.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_40k_voc12aug/fcn_r50-d8_512x512_40k_voc12aug_20200613_161222.log.json) | +| FCN | R-101-D8 | 512x512 | 40000 | - | - | 69.91 | 72.38 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_40k_voc12aug/fcn_r101-d8_512x512_40k_voc12aug_20200613_161240-4c8bcefd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_40k_voc12aug/fcn_r101-d8_512x512_40k_voc12aug_20200613_161240.log.json) | ### Pascal Context | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FCN | R-101-D8 | 480x480 | 40000 | - | 9.93 | 44.14 | 45.67 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context_20200911_212515-9b565a6d.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context-20200911_212515.log.json) | -| FCN | R-101-D8 | 480x480 | 80000 | - | - | 44.47 | 45.74 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context_20200915_032644-a3828480.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context-20200915_032644.log.json) | +| FCN | R-101-D8 | 480x480 | 40000 | - | 9.93 | 44.14 | 45.67 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context_20200911_212515-9b565a6d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context-20200911_212515.log.json) | +| FCN | R-101-D8 | 480x480 | 80000 | - | - | 44.47 | 45.74 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context_20200915_032644-a3828480.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context-20200915_032644.log.json) | diff --git a/configs/fp16/README.md b/configs/fp16/README.md index 757a83c5a7..0b8ec4d8ec 100644 --- a/configs/fp16/README.md +++ b/configs/fp16/README.md @@ -15,7 +15,7 @@ ### Cityscapes | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FCN | R-101-D8 | 512x1024 | 80000 | 5.50 | 2.66 | 76.80 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes-50245227.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230921.log.json) | -| PSPNet | R-101-D8 | 512x1024 | 80000 | 5.47 | 2.68 | 79.46 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes-ade37931.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230919.log.json) | -| DeepLabV3 | R-101-D8 | 512x1024 | 80000 | 5.91 | 1.93 | 80.48 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes-bc86dc84.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920.log.json) | -| DeepLabV3+ | R-101-D8 | 512x1024 | 80000 | 6.46 | 2.60 | 80.46 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes-cc58bc8d.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920.log.json) | +| FCN | R-101-D8 | 512x1024 | 80000 | 5.50 | 2.66 | 76.80 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes-50245227.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230921.log.json) | +| PSPNet | R-101-D8 | 512x1024 | 80000 | 5.47 | 2.68 | 79.46 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes-ade37931.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230919.log.json) | +| DeepLabV3 | R-101-D8 | 512x1024 | 80000 | 5.91 | 1.93 | 80.48 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes-bc86dc84.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920.log.json) | +| DeepLabV3+ | R-101-D8 | 512x1024 | 80000 | 6.46 | 2.60 | 80.46 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes-cc58bc8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920.log.json) | diff --git a/configs/gcnet/README.md b/configs/gcnet/README.md index 44c4a40511..ccc2709005 100644 --- a/configs/gcnet/README.md +++ b/configs/gcnet/README.md @@ -16,27 +16,27 @@ ### Cityscapes | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| GCNet | R-50-D8 | 512x1024 | 40000 | 5.8 | 3.93 | 77.69 | 78.56 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes/gcnet_r50-d8_512x1024_40k_cityscapes_20200618_074436-4b0fd17b.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes/gcnet_r50-d8_512x1024_40k_cityscapes_20200618_074436.log.json) | -| GCNet | R-101-D8 | 512x1024 | 40000 | 9.2 | 2.61 | 78.28 | 79.34 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes/gcnet_r101-d8_512x1024_40k_cityscapes_20200618_074436-5e62567f.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes/gcnet_r101-d8_512x1024_40k_cityscapes_20200618_074436.log.json) | -| GCNet | R-50-D8 | 769x769 | 40000 | 6.5 | 1.67 | 78.12 | 80.09 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_40k_cityscapes/gcnet_r50-d8_769x769_40k_cityscapes_20200618_182814-a26f4471.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_40k_cityscapes/gcnet_r50-d8_769x769_40k_cityscapes_20200618_182814.log.json) | -| GCNet | R-101-D8 | 769x769 | 40000 | 10.5 | 1.13 | 78.95 | 80.71 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_40k_cityscapes/gcnet_r101-d8_769x769_40k_cityscapes_20200619_092550-ca4f0a84.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_40k_cityscapes/gcnet_r101-d8_769x769_40k_cityscapes_20200619_092550.log.json) | -| GCNet | R-50-D8 | 512x1024 | 80000 | - | - | 78.48 | 80.01 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes/gcnet_r50-d8_512x1024_80k_cityscapes_20200618_074450-ef8f069b.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes/gcnet_r50-d8_512x1024_80k_cityscapes_20200618_074450.log.json) | -| GCNet | R-101-D8 | 512x1024 | 80000 | - | - | 79.03 | 79.84 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes/gcnet_r101-d8_512x1024_80k_cityscapes_20200618_074450-778ebf69.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes/gcnet_r101-d8_512x1024_80k_cityscapes_20200618_074450.log.json) | -| GCNet | R-50-D8 | 769x769 | 80000 | - | - | 78.68 | 80.66 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_80k_cityscapes/gcnet_r50-d8_769x769_80k_cityscapes_20200619_092516-4839565b.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_80k_cityscapes/gcnet_r50-d8_769x769_80k_cityscapes_20200619_092516.log.json) | -| GCNet | R-101-D8 | 769x769 | 80000 | - | - | 79.18 | 80.71 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_80k_cityscapes/gcnet_r101-d8_769x769_80k_cityscapes_20200619_092628-8e043423.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_80k_cityscapes/gcnet_r101-d8_769x769_80k_cityscapes_20200619_092628.log.json) | +| GCNet | R-50-D8 | 512x1024 | 40000 | 5.8 | 3.93 | 77.69 | 78.56 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes/gcnet_r50-d8_512x1024_40k_cityscapes_20200618_074436-4b0fd17b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes/gcnet_r50-d8_512x1024_40k_cityscapes_20200618_074436.log.json) | +| GCNet | R-101-D8 | 512x1024 | 40000 | 9.2 | 2.61 | 78.28 | 79.34 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes/gcnet_r101-d8_512x1024_40k_cityscapes_20200618_074436-5e62567f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes/gcnet_r101-d8_512x1024_40k_cityscapes_20200618_074436.log.json) | +| GCNet | R-50-D8 | 769x769 | 40000 | 6.5 | 1.67 | 78.12 | 80.09 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_40k_cityscapes/gcnet_r50-d8_769x769_40k_cityscapes_20200618_182814-a26f4471.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_40k_cityscapes/gcnet_r50-d8_769x769_40k_cityscapes_20200618_182814.log.json) | +| GCNet | R-101-D8 | 769x769 | 40000 | 10.5 | 1.13 | 78.95 | 80.71 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_40k_cityscapes/gcnet_r101-d8_769x769_40k_cityscapes_20200619_092550-ca4f0a84.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_40k_cityscapes/gcnet_r101-d8_769x769_40k_cityscapes_20200619_092550.log.json) | +| GCNet | R-50-D8 | 512x1024 | 80000 | - | - | 78.48 | 80.01 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes/gcnet_r50-d8_512x1024_80k_cityscapes_20200618_074450-ef8f069b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes/gcnet_r50-d8_512x1024_80k_cityscapes_20200618_074450.log.json) | +| GCNet | R-101-D8 | 512x1024 | 80000 | - | - | 79.03 | 79.84 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes/gcnet_r101-d8_512x1024_80k_cityscapes_20200618_074450-778ebf69.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes/gcnet_r101-d8_512x1024_80k_cityscapes_20200618_074450.log.json) | +| GCNet | R-50-D8 | 769x769 | 80000 | - | - | 78.68 | 80.66 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_80k_cityscapes/gcnet_r50-d8_769x769_80k_cityscapes_20200619_092516-4839565b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_80k_cityscapes/gcnet_r50-d8_769x769_80k_cityscapes_20200619_092516.log.json) | +| GCNet | R-101-D8 | 769x769 | 80000 | - | - | 79.18 | 80.71 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_80k_cityscapes/gcnet_r101-d8_769x769_80k_cityscapes_20200619_092628-8e043423.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_80k_cityscapes/gcnet_r101-d8_769x769_80k_cityscapes_20200619_092628.log.json) | ### ADE20K | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| GCNet | R-50-D8 | 512x512 | 80000 | 8.5 | 23.38 | 41.47 | 42.85 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_80k_ade20k/gcnet_r50-d8_512x512_80k_ade20k_20200614_185146-91a6da41.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_80k_ade20k/gcnet_r50-d8_512x512_80k_ade20k_20200614_185146.log.json) | -| GCNet | R-101-D8 | 512x512 | 80000 | 12 | 15.20 | 42.82 | 44.54 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_80k_ade20k/gcnet_r101-d8_512x512_80k_ade20k_20200615_020811-c3fcb6dd.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_80k_ade20k/gcnet_r101-d8_512x512_80k_ade20k_20200615_020811.log.json) | -| GCNet | R-50-D8 | 512x512 | 160000 | - | - | 42.37 | 43.52 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_160k_ade20k/gcnet_r50-d8_512x512_160k_ade20k_20200615_224122-d95f3e1f.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_160k_ade20k/gcnet_r50-d8_512x512_160k_ade20k_20200615_224122.log.json) | -| GCNet | R-101-D8 | 512x512 | 160000 | - | - | 43.69 | 45.21 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_160k_ade20k/gcnet_r101-d8_512x512_160k_ade20k_20200615_225406-615528d7.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_160k_ade20k/gcnet_r101-d8_512x512_160k_ade20k_20200615_225406.log.json) | +| GCNet | R-50-D8 | 512x512 | 80000 | 8.5 | 23.38 | 41.47 | 42.85 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_80k_ade20k/gcnet_r50-d8_512x512_80k_ade20k_20200614_185146-91a6da41.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_80k_ade20k/gcnet_r50-d8_512x512_80k_ade20k_20200614_185146.log.json) | +| GCNet | R-101-D8 | 512x512 | 80000 | 12 | 15.20 | 42.82 | 44.54 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_80k_ade20k/gcnet_r101-d8_512x512_80k_ade20k_20200615_020811-c3fcb6dd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_80k_ade20k/gcnet_r101-d8_512x512_80k_ade20k_20200615_020811.log.json) | +| GCNet | R-50-D8 | 512x512 | 160000 | - | - | 42.37 | 43.52 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_160k_ade20k/gcnet_r50-d8_512x512_160k_ade20k_20200615_224122-d95f3e1f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_160k_ade20k/gcnet_r50-d8_512x512_160k_ade20k_20200615_224122.log.json) | +| GCNet | R-101-D8 | 512x512 | 160000 | - | - | 43.69 | 45.21 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_160k_ade20k/gcnet_r101-d8_512x512_160k_ade20k_20200615_225406-615528d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_160k_ade20k/gcnet_r101-d8_512x512_160k_ade20k_20200615_225406.log.json) | ### Pascal VOC 2012 + Aug | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| GCNet | R-50-D8 | 512x512 | 20000 | 5.8 | 23.35 | 76.42 | 77.51 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_20k_voc12aug/gcnet_r50-d8_512x512_20k_voc12aug_20200617_165701-3cbfdab1.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_20k_voc12aug/gcnet_r50-d8_512x512_20k_voc12aug_20200617_165701.log.json) | -| GCNet | R-101-D8 | 512x512 | 20000 | 9.2 | 14.80 | 77.41 | 78.56 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_20k_voc12aug/gcnet_r101-d8_512x512_20k_voc12aug_20200617_165713-6c720aa9.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_20k_voc12aug/gcnet_r101-d8_512x512_20k_voc12aug_20200617_165713.log.json) | -| GCNet | R-50-D8 | 512x512 | 40000 | - | - | 76.24 | 77.63 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_40k_voc12aug/gcnet_r50-d8_512x512_40k_voc12aug_20200613_195105-9797336d.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_40k_voc12aug/gcnet_r50-d8_512x512_40k_voc12aug_20200613_195105.log.json) | -| GCNet | R-101-D8 | 512x512 | 40000 | - | - | 77.84 | 78.59 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_40k_voc12aug/gcnet_r101-d8_512x512_40k_voc12aug_20200613_185806-1e38208d.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_40k_voc12aug/gcnet_r101-d8_512x512_40k_voc12aug_20200613_185806.log.json) | +| GCNet | R-50-D8 | 512x512 | 20000 | 5.8 | 23.35 | 76.42 | 77.51 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_20k_voc12aug/gcnet_r50-d8_512x512_20k_voc12aug_20200617_165701-3cbfdab1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_20k_voc12aug/gcnet_r50-d8_512x512_20k_voc12aug_20200617_165701.log.json) | +| GCNet | R-101-D8 | 512x512 | 20000 | 9.2 | 14.80 | 77.41 | 78.56 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_20k_voc12aug/gcnet_r101-d8_512x512_20k_voc12aug_20200617_165713-6c720aa9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_20k_voc12aug/gcnet_r101-d8_512x512_20k_voc12aug_20200617_165713.log.json) | +| GCNet | R-50-D8 | 512x512 | 40000 | - | - | 76.24 | 77.63 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_40k_voc12aug/gcnet_r50-d8_512x512_40k_voc12aug_20200613_195105-9797336d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_40k_voc12aug/gcnet_r50-d8_512x512_40k_voc12aug_20200613_195105.log.json) | +| GCNet | R-101-D8 | 512x512 | 40000 | - | - | 77.84 | 78.59 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_40k_voc12aug/gcnet_r101-d8_512x512_40k_voc12aug_20200613_185806-1e38208d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_40k_voc12aug/gcnet_r101-d8_512x512_40k_voc12aug_20200613_185806.log.json) | diff --git a/configs/hrnet/README.md b/configs/hrnet/README.md index 153fbdd2ec..6b9bddb9f1 100644 --- a/configs/hrnet/README.md +++ b/configs/hrnet/README.md @@ -15,38 +15,38 @@ ### Cityscapes | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FCN | HRNetV2p-W18-Small | 512x1024 | 40000 | 1.7 | 23.74 | 73.86 | 75.91 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_40k_cityscapes/fcn_hr18s_512x1024_40k_cityscapes_20200601_014216-93db27d0.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_40k_cityscapes/fcn_hr18s_512x1024_40k_cityscapes_20200601_014216.log.json) | -| FCN | HRNetV2p-W18 | 512x1024 | 40000 | 2.9 | 12.97 | 77.19 | 78.92 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_40k_cityscapes/fcn_hr18_512x1024_40k_cityscapes_20200601_014216-f196fb4e.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_40k_cityscapes/fcn_hr18_512x1024_40k_cityscapes_20200601_014216.log.json) | -| FCN | HRNetV2p-W48 | 512x1024 | 40000 | 6.2 | 6.42 | 78.48 | 79.69 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_40k_cityscapes/fcn_hr48_512x1024_40k_cityscapes_20200601_014240-a989b146.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_40k_cityscapes/fcn_hr48_512x1024_40k_cityscapes_20200601_014240.log.json) | -| FCN | HRNetV2p-W18-Small | 512x1024 | 80000 | - | - | 75.31 | 77.48 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_80k_cityscapes/fcn_hr18s_512x1024_80k_cityscapes_20200601_202700-1462b75d.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_80k_cityscapes/fcn_hr18s_512x1024_80k_cityscapes_20200601_202700.log.json) | -| FCN | HRNetV2p-W18 | 512x1024 | 80000 | - | - | 78.65 | 80.35 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_80k_cityscapes/fcn_hr18_512x1024_80k_cityscapes_20200601_223255-4e7b345e.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_80k_cityscapes/fcn_hr18_512x1024_80k_cityscapes_20200601_223255.log.json) | -| FCN | HRNetV2p-W48 | 512x1024 | 80000 | - | - | 79.93 | 80.72 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_80k_cityscapes/fcn_hr48_512x1024_80k_cityscapes_20200601_202606-58ea95d6.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_80k_cityscapes/fcn_hr48_512x1024_80k_cityscapes_20200601_202606.log.json) | -| FCN | HRNetV2p-W18-Small | 512x1024 | 160000 | - | - | 76.31 | 78.31 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_160k_cityscapes/fcn_hr18s_512x1024_160k_cityscapes_20200602_190901-4a0797ea.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_160k_cityscapes/fcn_hr18s_512x1024_160k_cityscapes_20200602_190901.log.json) | -| FCN | HRNetV2p-W18 | 512x1024 | 160000 | - | - | 78.80 | 80.74 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_160k_cityscapes/fcn_hr18_512x1024_160k_cityscapes_20200602_190822-221e4a4f.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_160k_cityscapes/fcn_hr18_512x1024_160k_cityscapes_20200602_190822.log.json) | -| FCN | HRNetV2p-W48 | 512x1024 | 160000 | - | - | 80.65 | 81.92 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_160k_cityscapes/fcn_hr48_512x1024_160k_cityscapes_20200602_190946-59b7973e.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_160k_cityscapes/fcn_hr48_512x1024_160k_cityscapes_20200602_190946.log.json) | +| FCN | HRNetV2p-W18-Small | 512x1024 | 40000 | 1.7 | 23.74 | 73.86 | 75.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_40k_cityscapes/fcn_hr18s_512x1024_40k_cityscapes_20200601_014216-93db27d0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_40k_cityscapes/fcn_hr18s_512x1024_40k_cityscapes_20200601_014216.log.json) | +| FCN | HRNetV2p-W18 | 512x1024 | 40000 | 2.9 | 12.97 | 77.19 | 78.92 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_40k_cityscapes/fcn_hr18_512x1024_40k_cityscapes_20200601_014216-f196fb4e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_40k_cityscapes/fcn_hr18_512x1024_40k_cityscapes_20200601_014216.log.json) | +| FCN | HRNetV2p-W48 | 512x1024 | 40000 | 6.2 | 6.42 | 78.48 | 79.69 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_40k_cityscapes/fcn_hr48_512x1024_40k_cityscapes_20200601_014240-a989b146.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_40k_cityscapes/fcn_hr48_512x1024_40k_cityscapes_20200601_014240.log.json) | +| FCN | HRNetV2p-W18-Small | 512x1024 | 80000 | - | - | 75.31 | 77.48 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_80k_cityscapes/fcn_hr18s_512x1024_80k_cityscapes_20200601_202700-1462b75d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_80k_cityscapes/fcn_hr18s_512x1024_80k_cityscapes_20200601_202700.log.json) | +| FCN | HRNetV2p-W18 | 512x1024 | 80000 | - | - | 78.65 | 80.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_80k_cityscapes/fcn_hr18_512x1024_80k_cityscapes_20200601_223255-4e7b345e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_80k_cityscapes/fcn_hr18_512x1024_80k_cityscapes_20200601_223255.log.json) | +| FCN | HRNetV2p-W48 | 512x1024 | 80000 | - | - | 79.93 | 80.72 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_80k_cityscapes/fcn_hr48_512x1024_80k_cityscapes_20200601_202606-58ea95d6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_80k_cityscapes/fcn_hr48_512x1024_80k_cityscapes_20200601_202606.log.json) | +| FCN | HRNetV2p-W18-Small | 512x1024 | 160000 | - | - | 76.31 | 78.31 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_160k_cityscapes/fcn_hr18s_512x1024_160k_cityscapes_20200602_190901-4a0797ea.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_160k_cityscapes/fcn_hr18s_512x1024_160k_cityscapes_20200602_190901.log.json) | +| FCN | HRNetV2p-W18 | 512x1024 | 160000 | - | - | 78.80 | 80.74 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_160k_cityscapes/fcn_hr18_512x1024_160k_cityscapes_20200602_190822-221e4a4f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_160k_cityscapes/fcn_hr18_512x1024_160k_cityscapes_20200602_190822.log.json) | +| FCN | HRNetV2p-W48 | 512x1024 | 160000 | - | - | 80.65 | 81.92 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_160k_cityscapes/fcn_hr48_512x1024_160k_cityscapes_20200602_190946-59b7973e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_160k_cityscapes/fcn_hr48_512x1024_160k_cityscapes_20200602_190946.log.json) | ### ADE20K | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FCN | HRNetV2p-W18-Small | 512x512 | 80000 | 3.8 | 38.66 | 31.38 | 32.45 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_80k_ade20k/fcn_hr18s_512x512_80k_ade20k_20200614_144345-77fc814a.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_80k_ade20k/fcn_hr18s_512x512_80k_ade20k_20200614_144345.log.json) | -| FCN | HRNetV2p-W18 | 512x512 | 80000 | 4.9 | 22.57 | 35.51 | 36.80 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_ade20k/fcn_hr18_512x512_80k_ade20k_20200614_185145-66f20cb7.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_ade20k/fcn_hr18_512x512_80k_ade20k_20200614_185145.log.json) | -| FCN | HRNetV2p-W48 | 512x512 | 80000 | 8.2 | 21.23 | 41.90 | 43.27 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_80k_ade20k/fcn_hr48_512x512_80k_ade20k_20200614_193946-7ba5258d.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_80k_ade20k/fcn_hr48_512x512_80k_ade20k_20200614_193946.log.json) | -| FCN | HRNetV2p-W18-Small | 512x512 | 160000 | - | - | 33.00 | 34.55 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_160k_ade20k/fcn_hr18s_512x512_160k_ade20k_20200614_214413-870f65ac.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_160k_ade20k/fcn_hr18s_512x512_160k_ade20k_20200614_214413.log.json) | -| FCN | HRNetV2p-W18 | 512x512 | 160000 | - | - | 36.79 | 38.58 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_160k_ade20k/fcn_hr18_512x512_160k_ade20k_20200614_214426-ca961836.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_160k_ade20k/fcn_hr18_512x512_160k_ade20k_20200614_214426.log.json) | -| FCN | HRNetV2p-W48 | 512x512 | 160000 | - | - | 42.02 | 43.86 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_160k_ade20k/fcn_hr48_512x512_160k_ade20k_20200614_214407-a52fc02c.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_160k_ade20k/fcn_hr48_512x512_160k_ade20k_20200614_214407.log.json) | +| FCN | HRNetV2p-W18-Small | 512x512 | 80000 | 3.8 | 38.66 | 31.38 | 32.45 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_80k_ade20k/fcn_hr18s_512x512_80k_ade20k_20200614_144345-77fc814a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_80k_ade20k/fcn_hr18s_512x512_80k_ade20k_20200614_144345.log.json) | +| FCN | HRNetV2p-W18 | 512x512 | 80000 | 4.9 | 22.57 | 35.51 | 36.80 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_ade20k/fcn_hr18_512x512_80k_ade20k_20200614_185145-66f20cb7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_ade20k/fcn_hr18_512x512_80k_ade20k_20200614_185145.log.json) | +| FCN | HRNetV2p-W48 | 512x512 | 80000 | 8.2 | 21.23 | 41.90 | 43.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_80k_ade20k/fcn_hr48_512x512_80k_ade20k_20200614_193946-7ba5258d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_80k_ade20k/fcn_hr48_512x512_80k_ade20k_20200614_193946.log.json) | +| FCN | HRNetV2p-W18-Small | 512x512 | 160000 | - | - | 33.00 | 34.55 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_160k_ade20k/fcn_hr18s_512x512_160k_ade20k_20200614_214413-870f65ac.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_160k_ade20k/fcn_hr18s_512x512_160k_ade20k_20200614_214413.log.json) | +| FCN | HRNetV2p-W18 | 512x512 | 160000 | - | - | 36.79 | 38.58 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_160k_ade20k/fcn_hr18_512x512_160k_ade20k_20200614_214426-ca961836.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_160k_ade20k/fcn_hr18_512x512_160k_ade20k_20200614_214426.log.json) | +| FCN | HRNetV2p-W48 | 512x512 | 160000 | - | - | 42.02 | 43.86 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_160k_ade20k/fcn_hr48_512x512_160k_ade20k_20200614_214407-a52fc02c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_160k_ade20k/fcn_hr48_512x512_160k_ade20k_20200614_214407.log.json) | ### Pascal VOC 2012 + Aug | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FCN | HRNetV2p-W18-Small | 512x512 | 20000 | 1.8 | 43.36 | 65.20 | 68.55 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_20k_voc12aug/fcn_hr18s_512x512_20k_voc12aug_20200617_224503-56e36088.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_20k_voc12aug/fcn_hr18s_512x512_20k_voc12aug_20200617_224503.log.json) | -| FCN | HRNetV2p-W18 | 512x512 | 20000 | 2.9 | 23.48 | 72.30 | 74.71 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_20k_voc12aug/fcn_hr18_512x512_20k_voc12aug_20200617_224503-488d45f7.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_20k_voc12aug/fcn_hr18_512x512_20k_voc12aug_20200617_224503.log.json) | -| FCN | HRNetV2p-W48 | 512x512 | 20000 | 6.2 | 22.05 | 75.87 | 78.58 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_20k_voc12aug/fcn_hr48_512x512_20k_voc12aug_20200617_224419-89de05cd.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_20k_voc12aug/fcn_hr48_512x512_20k_voc12aug_20200617_224419.log.json) | -| FCN | HRNetV2p-W18-Small | 512x512 | 40000 | - | - | 66.61 | 70.00 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_40k_voc12aug/fcn_hr18s_512x512_40k_voc12aug_20200614_000648-4f8d6e7f.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_40k_voc12aug/fcn_hr18s_512x512_40k_voc12aug_20200614_000648.log.json) | -| FCN | HRNetV2p-W18 | 512x512 | 40000 | - | - | 72.90 | 75.59 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_40k_voc12aug/fcn_hr18_512x512_40k_voc12aug_20200613_224401-1b4b76cd.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_40k_voc12aug/fcn_hr18_512x512_40k_voc12aug_20200613_224401.log.json) | -| FCN | HRNetV2p-W48 | 512x512 | 40000 | - | - | 76.24 | 78.49 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_40k_voc12aug/fcn_hr48_512x512_40k_voc12aug_20200613_222111-1b0f18bc.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_40k_voc12aug/fcn_hr48_512x512_40k_voc12aug_20200613_222111.log.json) | +| FCN | HRNetV2p-W18-Small | 512x512 | 20000 | 1.8 | 43.36 | 65.20 | 68.55 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_20k_voc12aug/fcn_hr18s_512x512_20k_voc12aug_20200617_224503-56e36088.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_20k_voc12aug/fcn_hr18s_512x512_20k_voc12aug_20200617_224503.log.json) | +| FCN | HRNetV2p-W18 | 512x512 | 20000 | 2.9 | 23.48 | 72.30 | 74.71 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_20k_voc12aug/fcn_hr18_512x512_20k_voc12aug_20200617_224503-488d45f7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_20k_voc12aug/fcn_hr18_512x512_20k_voc12aug_20200617_224503.log.json) | +| FCN | HRNetV2p-W48 | 512x512 | 20000 | 6.2 | 22.05 | 75.87 | 78.58 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_20k_voc12aug/fcn_hr48_512x512_20k_voc12aug_20200617_224419-89de05cd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_20k_voc12aug/fcn_hr48_512x512_20k_voc12aug_20200617_224419.log.json) | +| FCN | HRNetV2p-W18-Small | 512x512 | 40000 | - | - | 66.61 | 70.00 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_40k_voc12aug/fcn_hr18s_512x512_40k_voc12aug_20200614_000648-4f8d6e7f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_40k_voc12aug/fcn_hr18s_512x512_40k_voc12aug_20200614_000648.log.json) | +| FCN | HRNetV2p-W18 | 512x512 | 40000 | - | - | 72.90 | 75.59 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_40k_voc12aug/fcn_hr18_512x512_40k_voc12aug_20200613_224401-1b4b76cd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_40k_voc12aug/fcn_hr18_512x512_40k_voc12aug_20200613_224401.log.json) | +| FCN | HRNetV2p-W48 | 512x512 | 40000 | - | - | 76.24 | 78.49 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_40k_voc12aug/fcn_hr48_512x512_40k_voc12aug_20200613_222111-1b0f18bc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_40k_voc12aug/fcn_hr48_512x512_40k_voc12aug_20200613_222111.log.json) | ### Pascal Context | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FCN | HRNetV2p-W48 | 480x480 | 40000 | 6.1 | 8.86 | 45.14 | 47.42 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context/fcn_hr48_480x480_40k_pascal_context_20200911_164852-667d00b0.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context/fcn_hr48_480x480_40k_pascal_context-20200911_164852.log.json) | -| FCN | HRNetV2p-W48 | 480x480 | 80000 | - | - | 45.84 | 47.84 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context/fcn_hr48_480x480_80k_pascal_context_20200911_155322-847a6711.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context/fcn_hr48_480x480_80k_pascal_context-20200911_155322.log.json) | +| FCN | HRNetV2p-W48 | 480x480 | 40000 | 6.1 | 8.86 | 45.14 | 47.42 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context/fcn_hr48_480x480_40k_pascal_context_20200911_164852-667d00b0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context/fcn_hr48_480x480_40k_pascal_context-20200911_164852.log.json) | +| FCN | HRNetV2p-W48 | 480x480 | 80000 | - | - | 45.84 | 47.84 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context/fcn_hr48_480x480_80k_pascal_context_20200911_155322-847a6711.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context/fcn_hr48_480x480_80k_pascal_context-20200911_155322.log.json) | diff --git a/configs/mobilenet_v2/README.md b/configs/mobilenet_v2/README.md index 0dcbb4d383..cd7fa207b1 100644 --- a/configs/mobilenet_v2/README.md +++ b/configs/mobilenet_v2/README.md @@ -18,15 +18,15 @@ ### Cityscapes | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |------------|----------|-----------|--------:|---------:|----------------|------:|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FCN | M-V2-D8 | 512x1024 | 80000 | 3.4 | 14.2 | 61.54 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes/fcn_m-v2-d8_512x1024_80k_cityscapes_20200825_124817-d24c28c1.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes/fcn_m-v2-d8_512x1024_80k_cityscapes-20200825_124817.log.json) | -| PSPNet | M-V2-D8 | 512x1024 | 80000 | 3.6 | 11.2 | 70.23 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes/pspnet_m-v2-d8_512x1024_80k_cityscapes_20200825_124817-19e81d51.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes/pspnet_m-v2-d8_512x1024_80k_cityscapes-20200825_124817.log.json) | -| DeepLabV3 | M-V2-D8 | 512x1024 | 80000 | 3.9 | 8.4 | 73.84 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes/deeplabv3_m-v2-d8_512x1024_80k_cityscapes_20200825_124836-bef03590.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes/deeplabv3_m-v2-d8_512x1024_80k_cityscapes-20200825_124836.log.json) | -| DeepLabV3+ | M-V2-D8 | 512x1024 | 80000 | 5.1 | 8.4 | 75.20 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes_20200825_124836-d256dd4b.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes-20200825_124836.log.json) | +| FCN | M-V2-D8 | 512x1024 | 80000 | 3.4 | 14.2 | 61.54 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes/fcn_m-v2-d8_512x1024_80k_cityscapes_20200825_124817-d24c28c1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes/fcn_m-v2-d8_512x1024_80k_cityscapes-20200825_124817.log.json) | +| PSPNet | M-V2-D8 | 512x1024 | 80000 | 3.6 | 11.2 | 70.23 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes/pspnet_m-v2-d8_512x1024_80k_cityscapes_20200825_124817-19e81d51.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes/pspnet_m-v2-d8_512x1024_80k_cityscapes-20200825_124817.log.json) | +| DeepLabV3 | M-V2-D8 | 512x1024 | 80000 | 3.9 | 8.4 | 73.84 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes/deeplabv3_m-v2-d8_512x1024_80k_cityscapes_20200825_124836-bef03590.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes/deeplabv3_m-v2-d8_512x1024_80k_cityscapes-20200825_124836.log.json) | +| DeepLabV3+ | M-V2-D8 | 512x1024 | 80000 | 5.1 | 8.4 | 75.20 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes_20200825_124836-d256dd4b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes-20200825_124836.log.json) | ### ADE20k | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |------------|----------|-----------|--------:|---------:|----------------|------:|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FCN | M-V2-D8 | 512x512 | 160000 | 6.5 | 64.4 | 19.71 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k/fcn_m-v2-d8_512x512_160k_ade20k_20200825_214953-c40e1095.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k/fcn_m-v2-d8_512x512_160k_ade20k-20200825_214953.log.json) | -| PSPNet | M-V2-D8 | 512x512 | 160000 | 6.5 | 57.7 | 29.68 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k/pspnet_m-v2-d8_512x512_160k_ade20k_20200825_214953-f5942f7a.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k/pspnet_m-v2-d8_512x512_160k_ade20k-20200825_214953.log.json) | -| DeepLabV3 | M-V2-D8 | 512x512 | 160000 | 6.8 | 39.9 | 34.08 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k/deeplabv3_m-v2-d8_512x512_160k_ade20k_20200825_223255-63986343.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k/deeplabv3_m-v2-d8_512x512_160k_ade20k-20200825_223255.log.json) | -| DeepLabV3+ | M-V2-D8 | 512x512 | 160000 | 8.2 | 43.1 | 34.02 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k/deeplabv3plus_m-v2-d8_512x512_160k_ade20k_20200825_223255-465a01d4.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k/deeplabv3plus_m-v2-d8_512x512_160k_ade20k-20200825_223255.log.json) | +| FCN | M-V2-D8 | 512x512 | 160000 | 6.5 | 64.4 | 19.71 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k/fcn_m-v2-d8_512x512_160k_ade20k_20200825_214953-c40e1095.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k/fcn_m-v2-d8_512x512_160k_ade20k-20200825_214953.log.json) | +| PSPNet | M-V2-D8 | 512x512 | 160000 | 6.5 | 57.7 | 29.68 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k/pspnet_m-v2-d8_512x512_160k_ade20k_20200825_214953-f5942f7a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k/pspnet_m-v2-d8_512x512_160k_ade20k-20200825_214953.log.json) | +| DeepLabV3 | M-V2-D8 | 512x512 | 160000 | 6.8 | 39.9 | 34.08 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k/deeplabv3_m-v2-d8_512x512_160k_ade20k_20200825_223255-63986343.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k/deeplabv3_m-v2-d8_512x512_160k_ade20k-20200825_223255.log.json) | +| DeepLabV3+ | M-V2-D8 | 512x512 | 160000 | 8.2 | 43.1 | 34.02 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k/deeplabv3plus_m-v2-d8_512x512_160k_ade20k_20200825_223255-465a01d4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k/deeplabv3plus_m-v2-d8_512x512_160k_ade20k-20200825_223255.log.json) | diff --git a/configs/nonlocal_net/README.md b/configs/nonlocal_net/README.md index dbd924dfe8..592f4d900f 100644 --- a/configs/nonlocal_net/README.md +++ b/configs/nonlocal_net/README.md @@ -16,27 +16,27 @@ ### Cityscapes | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |----------|----------|-----------|--------:|----------|----------------|------:|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| NonLocal | R-50-D8 | 512x1024 | 40000 | 7.4 | 2.72 | 78.24 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes/nonlocal_r50-d8_512x1024_40k_cityscapes_20200605_210748-c75e81e3.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes/nonlocal_r50-d8_512x1024_40k_cityscapes_20200605_210748.log.json) | -| NonLocal | R-101-D8 | 512x1024 | 40000 | 10.9 | 1.95 | 78.66 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes/nonlocal_r101-d8_512x1024_40k_cityscapes_20200605_210748-d63729fa.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes/nonlocal_r101-d8_512x1024_40k_cityscapes_20200605_210748.log.json) | -| NonLocal | R-50-D8 | 769x769 | 40000 | 8.9 | 1.52 | 78.33 | 79.92 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes/nonlocal_r50-d8_769x769_40k_cityscapes_20200530_045243-82ef6749.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes/nonlocal_r50-d8_769x769_40k_cityscapes_20200530_045243.log.json) | -| NonLocal | R-101-D8 | 769x769 | 40000 | 12.8 | 1.05 | 78.57 | 80.29 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes/nonlocal_r101-d8_769x769_40k_cityscapes_20200530_045348-8fe9a9dc.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes/nonlocal_r101-d8_769x769_40k_cityscapes_20200530_045348.log.json) | -| NonLocal | R-50-D8 | 512x1024 | 80000 | - | - | 78.01 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes/nonlocal_r50-d8_512x1024_80k_cityscapes_20200607_193518-d6839fae.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes/nonlocal_r50-d8_512x1024_80k_cityscapes_20200607_193518.log.json) | -| NonLocal | R-101-D8 | 512x1024 | 80000 | - | - | 78.93 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes/nonlocal_r101-d8_512x1024_80k_cityscapes_20200607_183411-32700183.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes/nonlocal_r101-d8_512x1024_80k_cityscapes_20200607_183411.log.json) | -| NonLocal | R-50-D8 | 769x769 | 80000 | - | - | 79.05 | 80.68 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes/nonlocal_r50-d8_769x769_80k_cityscapes_20200607_193506-1f9792f6.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes/nonlocal_r50-d8_769x769_80k_cityscapes_20200607_193506.log.json) | -| NonLocal | R-101-D8 | 769x769 | 80000 | - | - | 79.40 | 80.85 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes/nonlocal_r101-d8_769x769_80k_cityscapes_20200607_183428-0e1fa4f9.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes/nonlocal_r101-d8_769x769_80k_cityscapes_20200607_183428.log.json) | +| NonLocal | R-50-D8 | 512x1024 | 40000 | 7.4 | 2.72 | 78.24 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes/nonlocal_r50-d8_512x1024_40k_cityscapes_20200605_210748-c75e81e3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes/nonlocal_r50-d8_512x1024_40k_cityscapes_20200605_210748.log.json) | +| NonLocal | R-101-D8 | 512x1024 | 40000 | 10.9 | 1.95 | 78.66 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes/nonlocal_r101-d8_512x1024_40k_cityscapes_20200605_210748-d63729fa.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes/nonlocal_r101-d8_512x1024_40k_cityscapes_20200605_210748.log.json) | +| NonLocal | R-50-D8 | 769x769 | 40000 | 8.9 | 1.52 | 78.33 | 79.92 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes/nonlocal_r50-d8_769x769_40k_cityscapes_20200530_045243-82ef6749.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes/nonlocal_r50-d8_769x769_40k_cityscapes_20200530_045243.log.json) | +| NonLocal | R-101-D8 | 769x769 | 40000 | 12.8 | 1.05 | 78.57 | 80.29 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes/nonlocal_r101-d8_769x769_40k_cityscapes_20200530_045348-8fe9a9dc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes/nonlocal_r101-d8_769x769_40k_cityscapes_20200530_045348.log.json) | +| NonLocal | R-50-D8 | 512x1024 | 80000 | - | - | 78.01 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes/nonlocal_r50-d8_512x1024_80k_cityscapes_20200607_193518-d6839fae.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes/nonlocal_r50-d8_512x1024_80k_cityscapes_20200607_193518.log.json) | +| NonLocal | R-101-D8 | 512x1024 | 80000 | - | - | 78.93 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes/nonlocal_r101-d8_512x1024_80k_cityscapes_20200607_183411-32700183.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes/nonlocal_r101-d8_512x1024_80k_cityscapes_20200607_183411.log.json) | +| NonLocal | R-50-D8 | 769x769 | 80000 | - | - | 79.05 | 80.68 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes/nonlocal_r50-d8_769x769_80k_cityscapes_20200607_193506-1f9792f6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes/nonlocal_r50-d8_769x769_80k_cityscapes_20200607_193506.log.json) | +| NonLocal | R-101-D8 | 769x769 | 80000 | - | - | 79.40 | 80.85 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes/nonlocal_r101-d8_769x769_80k_cityscapes_20200607_183428-0e1fa4f9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes/nonlocal_r101-d8_769x769_80k_cityscapes_20200607_183428.log.json) | ### ADE20K | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |----------|----------|-----------|--------:|----------|----------------|------:|--------------:|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| NonLocal | R-50-D8 | 512x512 | 80000 | 9.1 | 21.37 | 40.75 | 42.05 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k/nonlocal_r50-d8_512x512_80k_ade20k_20200615_015801-5ae0aa33.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k/nonlocal_r50-d8_512x512_80k_ade20k_20200615_015801.log.json) | -| NonLocal | R-101-D8 | 512x512 | 80000 | 12.6 | 13.97 | 42.90 | 44.27 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k/nonlocal_r101-d8_512x512_80k_ade20k_20200615_015758-24105919.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k/nonlocal_r101-d8_512x512_80k_ade20k_20200615_015758.log.json) | -| NonLocal | R-50-D8 | 512x512 | 160000 | - | - | 42.03 | 43.04 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k/nonlocal_r50-d8_512x512_160k_ade20k_20200616_005410-baef45e3.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k/nonlocal_r50-d8_512x512_160k_ade20k_20200616_005410.log.json) | -| NonLocal | R-101-D8 | 512x512 | 160000 | - | - | 43.36 | 44.83 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k/nonlocal_r101-d8_512x512_160k_ade20k_20200616_003422-affd0f8d.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k/nonlocal_r101-d8_512x512_160k_ade20k_20200616_003422.log.json) | +| NonLocal | R-50-D8 | 512x512 | 80000 | 9.1 | 21.37 | 40.75 | 42.05 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k/nonlocal_r50-d8_512x512_80k_ade20k_20200615_015801-5ae0aa33.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k/nonlocal_r50-d8_512x512_80k_ade20k_20200615_015801.log.json) | +| NonLocal | R-101-D8 | 512x512 | 80000 | 12.6 | 13.97 | 42.90 | 44.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k/nonlocal_r101-d8_512x512_80k_ade20k_20200615_015758-24105919.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k/nonlocal_r101-d8_512x512_80k_ade20k_20200615_015758.log.json) | +| NonLocal | R-50-D8 | 512x512 | 160000 | - | - | 42.03 | 43.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k/nonlocal_r50-d8_512x512_160k_ade20k_20200616_005410-baef45e3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k/nonlocal_r50-d8_512x512_160k_ade20k_20200616_005410.log.json) | +| NonLocal | R-101-D8 | 512x512 | 160000 | - | - | 43.36 | 44.83 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k/nonlocal_r101-d8_512x512_160k_ade20k_20200616_003422-affd0f8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k/nonlocal_r101-d8_512x512_160k_ade20k_20200616_003422.log.json) | ### Pascal VOC 2012 + Aug | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| NonLocal | R-50-D8 | 512x512 | 20000 | 6.4 | 21.21 | 76.20 | 77.12 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug/nonlocal_r50-d8_512x512_20k_voc12aug_20200617_222613-07f2a57c.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug/nonlocal_r50-d8_512x512_20k_voc12aug_20200617_222613.log.json) | -| NonLocal | R-101-D8 | 512x512 | 20000 | 9.8 | 14.01 | 78.15 | 78.86 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug/nonlocal_r101-d8_512x512_20k_voc12aug_20200617_222615-948c68ab.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug/nonlocal_r101-d8_512x512_20k_voc12aug_20200617_222615.log.json) | -| NonLocal | R-50-D8 | 512x512 | 40000 | - | - | 76.65 | 77.47 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug/nonlocal_r50-d8_512x512_40k_voc12aug_20200614_000028-0139d4a9.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug/nonlocal_r50-d8_512x512_40k_voc12aug_20200614_000028.log.json) | -| NonLocal | R-101-D8 | 512x512 | 40000 | - | - | 78.27 | 79.12 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug/nonlocal_r101-d8_512x512_40k_voc12aug_20200614_000028-7e5ff470.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug/nonlocal_r101-d8_512x512_40k_voc12aug_20200614_000028.log.json) | +| NonLocal | R-50-D8 | 512x512 | 20000 | 6.4 | 21.21 | 76.20 | 77.12 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug/nonlocal_r50-d8_512x512_20k_voc12aug_20200617_222613-07f2a57c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug/nonlocal_r50-d8_512x512_20k_voc12aug_20200617_222613.log.json) | +| NonLocal | R-101-D8 | 512x512 | 20000 | 9.8 | 14.01 | 78.15 | 78.86 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug/nonlocal_r101-d8_512x512_20k_voc12aug_20200617_222615-948c68ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug/nonlocal_r101-d8_512x512_20k_voc12aug_20200617_222615.log.json) | +| NonLocal | R-50-D8 | 512x512 | 40000 | - | - | 76.65 | 77.47 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug/nonlocal_r50-d8_512x512_40k_voc12aug_20200614_000028-0139d4a9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug/nonlocal_r50-d8_512x512_40k_voc12aug_20200614_000028.log.json) | +| NonLocal | R-101-D8 | 512x512 | 40000 | - | - | 78.27 | 79.12 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug/nonlocal_r101-d8_512x512_40k_voc12aug_20200614_000028-7e5ff470.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug/nonlocal_r101-d8_512x512_40k_voc12aug_20200614_000028.log.json) | diff --git a/configs/ocrnet/README.md b/configs/ocrnet/README.md index 5c1ce604ae..27383b80a4 100644 --- a/configs/ocrnet/README.md +++ b/configs/ocrnet/README.md @@ -25,42 +25,42 @@ #### HRNet backbone | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| OCRNet | HRNetV2p-W18-Small | 512x1024 | 40000 | 3.5 | 10.45 | 74.30 | 75.95 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes/ocrnet_hr18s_512x1024_40k_cityscapes_20200601_033304-fa2436c2.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes/ocrnet_hr18s_512x1024_40k_cityscapes_20200601_033304.log.json) | -| OCRNet | HRNetV2p-W18 | 512x1024 | 40000 | 4.7 | 7.50 | 77.72 | 79.49 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes/ocrnet_hr18_512x1024_40k_cityscapes_20200601_033320-401c5bdd.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes/ocrnet_hr18_512x1024_40k_cityscapes_20200601_033320.log.json) | -| OCRNet | HRNetV2p-W48 | 512x1024 | 40000 | 8 | 4.22 | 80.58 | 81.79 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes/ocrnet_hr48_512x1024_40k_cityscapes_20200601_033336-55b32491.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes/ocrnet_hr48_512x1024_40k_cityscapes_20200601_033336.log.json) | -| OCRNet | HRNetV2p-W18-Small | 512x1024 | 80000 | - | - | 77.16 | 78.66 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes/ocrnet_hr18s_512x1024_80k_cityscapes_20200601_222735-55979e63.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes/ocrnet_hr18s_512x1024_80k_cityscapes_20200601_222735.log.json) | -| OCRNet | HRNetV2p-W18 | 512x1024 | 80000 | - | - | 78.57 | 80.46 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes/ocrnet_hr18_512x1024_80k_cityscapes_20200614_230521-c2e1dd4a.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes/ocrnet_hr18_512x1024_80k_cityscapes_20200614_230521.log.json) | -| OCRNet | HRNetV2p-W48 | 512x1024 | 80000 | - | - | 80.70 | 81.87 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes/ocrnet_hr48_512x1024_80k_cityscapes_20200601_222752-9076bcdf.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes/ocrnet_hr48_512x1024_80k_cityscapes_20200601_222752.log.json) | -| OCRNet | HRNetV2p-W18-Small | 512x1024 | 160000 | - | - | 78.45 | 79.97 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes/ocrnet_hr18s_512x1024_160k_cityscapes_20200602_191005-f4a7af28.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes/ocrnet_hr18s_512x1024_160k_cityscapes_20200602_191005.log.json) | -| OCRNet | HRNetV2p-W18 | 512x1024 | 160000 | - | - | 79.47 | 80.91 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes/ocrnet_hr18_512x1024_160k_cityscapes_20200602_191001-b9172d0c.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes/ocrnet_hr18_512x1024_160k_cityscapes_20200602_191001.log.json) | -| OCRNet | HRNetV2p-W48 | 512x1024 | 160000 | - | - | 81.35 | 82.70 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes/ocrnet_hr48_512x1024_160k_cityscapes_20200602_191037-dfbf1b0c.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes/ocrnet_hr48_512x1024_160k_cityscapes_20200602_191037.log.json) | +| OCRNet | HRNetV2p-W18-Small | 512x1024 | 40000 | 3.5 | 10.45 | 74.30 | 75.95 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes/ocrnet_hr18s_512x1024_40k_cityscapes_20200601_033304-fa2436c2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes/ocrnet_hr18s_512x1024_40k_cityscapes_20200601_033304.log.json) | +| OCRNet | HRNetV2p-W18 | 512x1024 | 40000 | 4.7 | 7.50 | 77.72 | 79.49 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes/ocrnet_hr18_512x1024_40k_cityscapes_20200601_033320-401c5bdd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes/ocrnet_hr18_512x1024_40k_cityscapes_20200601_033320.log.json) | +| OCRNet | HRNetV2p-W48 | 512x1024 | 40000 | 8 | 4.22 | 80.58 | 81.79 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes/ocrnet_hr48_512x1024_40k_cityscapes_20200601_033336-55b32491.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes/ocrnet_hr48_512x1024_40k_cityscapes_20200601_033336.log.json) | +| OCRNet | HRNetV2p-W18-Small | 512x1024 | 80000 | - | - | 77.16 | 78.66 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes/ocrnet_hr18s_512x1024_80k_cityscapes_20200601_222735-55979e63.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes/ocrnet_hr18s_512x1024_80k_cityscapes_20200601_222735.log.json) | +| OCRNet | HRNetV2p-W18 | 512x1024 | 80000 | - | - | 78.57 | 80.46 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes/ocrnet_hr18_512x1024_80k_cityscapes_20200614_230521-c2e1dd4a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes/ocrnet_hr18_512x1024_80k_cityscapes_20200614_230521.log.json) | +| OCRNet | HRNetV2p-W48 | 512x1024 | 80000 | - | - | 80.70 | 81.87 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes/ocrnet_hr48_512x1024_80k_cityscapes_20200601_222752-9076bcdf.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes/ocrnet_hr48_512x1024_80k_cityscapes_20200601_222752.log.json) | +| OCRNet | HRNetV2p-W18-Small | 512x1024 | 160000 | - | - | 78.45 | 79.97 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes/ocrnet_hr18s_512x1024_160k_cityscapes_20200602_191005-f4a7af28.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes/ocrnet_hr18s_512x1024_160k_cityscapes_20200602_191005.log.json) | +| OCRNet | HRNetV2p-W18 | 512x1024 | 160000 | - | - | 79.47 | 80.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes/ocrnet_hr18_512x1024_160k_cityscapes_20200602_191001-b9172d0c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes/ocrnet_hr18_512x1024_160k_cityscapes_20200602_191001.log.json) | +| OCRNet | HRNetV2p-W48 | 512x1024 | 160000 | - | - | 81.35 | 82.70 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes/ocrnet_hr48_512x1024_160k_cityscapes_20200602_191037-dfbf1b0c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes/ocrnet_hr48_512x1024_160k_cityscapes_20200602_191037.log.json) | #### ResNet backbone | Method | Backbone | Crop Size | Batch Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|--------------------|-----------|--------|----------|-----------|----------------|------|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| OCRNet | R-101-D8 | 512x1024 | 8 | 40000 | - | - | 80.09 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes/ocrnet_r101-d8_512x1024_40k_b8_cityscapes-02ac0f13.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes/ocrnet_r101-d8_512x1024_40k_b8_cityscapes_20200717_110721.log.json) | -| OCRNet | R-101-D8 | 512x1024 | 16 | 40000 | 8.8 | 3.02 | 80.30 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes/ocrnet_r101-d8_512x1024_40k_b16_cityscapes-db500f80.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes/ocrnet_r101-d8_512x1024_40k_b16_cityscapes_20200723_193726.log.json) | -| OCRNet | R-101-D8 | 512x1024 | 16 | 80000 | 8.8 | 3.02 | 80.81 | - | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes/ocrnet_r101-d8_512x1024_80k_b16_cityscapes-78688424.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes/ocrnet_r101-d8_512x1024_80k_b16_cityscapes_20200723_192421.log.json) | +| OCRNet | R-101-D8 | 512x1024 | 8 | 40000 | - | - | 80.09 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes/ocrnet_r101-d8_512x1024_40k_b8_cityscapes-02ac0f13.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes/ocrnet_r101-d8_512x1024_40k_b8_cityscapes_20200717_110721.log.json) | +| OCRNet | R-101-D8 | 512x1024 | 16 | 40000 | 8.8 | 3.02 | 80.30 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes/ocrnet_r101-d8_512x1024_40k_b16_cityscapes-db500f80.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes/ocrnet_r101-d8_512x1024_40k_b16_cityscapes_20200723_193726.log.json) | +| OCRNet | R-101-D8 | 512x1024 | 16 | 80000 | 8.8 | 3.02 | 80.81 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes/ocrnet_r101-d8_512x1024_80k_b16_cityscapes-78688424.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes/ocrnet_r101-d8_512x1024_80k_b16_cityscapes_20200723_192421.log.json) | ### ADE20K | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| OCRNet | HRNetV2p-W18-Small | 512x512 | 80000 | 6.7 | 28.98 | 35.06 | 35.80 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_80k_ade20k/ocrnet_hr18s_512x512_80k_ade20k_20200615_055600-e80b62af.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_80k_ade20k/ocrnet_hr18s_512x512_80k_ade20k_20200615_055600.log.json) | -| OCRNet | HRNetV2p-W18 | 512x512 | 80000 | 7.9 | 18.93 | 37.79 | 39.16 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_80k_ade20k/ocrnet_hr18_512x512_80k_ade20k_20200615_053157-d173d83b.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_80k_ade20k/ocrnet_hr18_512x512_80k_ade20k_20200615_053157.log.json) | -| OCRNet | HRNetV2p-W48 | 512x512 | 80000 | 11.2 | 16.99 | 43.00 | 44.30 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_80k_ade20k/ocrnet_hr48_512x512_80k_ade20k_20200615_021518-d168c2d1.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_80k_ade20k/ocrnet_hr48_512x512_80k_ade20k_20200615_021518.log.json) | -| OCRNet | HRNetV2p-W18-Small | 512x512 | 160000 | - | - | 37.19 | 38.40 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_160k_ade20k/ocrnet_hr18s_512x512_160k_ade20k_20200615_184505-8e913058.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_160k_ade20k/ocrnet_hr18s_512x512_160k_ade20k_20200615_184505.log.json) | -| OCRNet | HRNetV2p-W18 | 512x512 | 160000 | - | - | 39.32 | 40.80 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_160k_ade20k/ocrnet_hr18_512x512_160k_ade20k_20200615_200940-d8fcd9d1.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_160k_ade20k/ocrnet_hr18_512x512_160k_ade20k_20200615_200940.log.json) | -| OCRNet | HRNetV2p-W48 | 512x512 | 160000 | - | - | 43.25 | 44.88 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_160k_ade20k/ocrnet_hr48_512x512_160k_ade20k_20200615_184705-a073726d.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_160k_ade20k/ocrnet_hr48_512x512_160k_ade20k_20200615_184705.log.json) | +| OCRNet | HRNetV2p-W18-Small | 512x512 | 80000 | 6.7 | 28.98 | 35.06 | 35.80 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_80k_ade20k/ocrnet_hr18s_512x512_80k_ade20k_20200615_055600-e80b62af.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_80k_ade20k/ocrnet_hr18s_512x512_80k_ade20k_20200615_055600.log.json) | +| OCRNet | HRNetV2p-W18 | 512x512 | 80000 | 7.9 | 18.93 | 37.79 | 39.16 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_80k_ade20k/ocrnet_hr18_512x512_80k_ade20k_20200615_053157-d173d83b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_80k_ade20k/ocrnet_hr18_512x512_80k_ade20k_20200615_053157.log.json) | +| OCRNet | HRNetV2p-W48 | 512x512 | 80000 | 11.2 | 16.99 | 43.00 | 44.30 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_80k_ade20k/ocrnet_hr48_512x512_80k_ade20k_20200615_021518-d168c2d1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_80k_ade20k/ocrnet_hr48_512x512_80k_ade20k_20200615_021518.log.json) | +| OCRNet | HRNetV2p-W18-Small | 512x512 | 160000 | - | - | 37.19 | 38.40 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_160k_ade20k/ocrnet_hr18s_512x512_160k_ade20k_20200615_184505-8e913058.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_160k_ade20k/ocrnet_hr18s_512x512_160k_ade20k_20200615_184505.log.json) | +| OCRNet | HRNetV2p-W18 | 512x512 | 160000 | - | - | 39.32 | 40.80 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_160k_ade20k/ocrnet_hr18_512x512_160k_ade20k_20200615_200940-d8fcd9d1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_160k_ade20k/ocrnet_hr18_512x512_160k_ade20k_20200615_200940.log.json) | +| OCRNet | HRNetV2p-W48 | 512x512 | 160000 | - | - | 43.25 | 44.88 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_160k_ade20k/ocrnet_hr48_512x512_160k_ade20k_20200615_184705-a073726d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_160k_ade20k/ocrnet_hr48_512x512_160k_ade20k_20200615_184705.log.json) | ### Pascal VOC 2012 + Aug | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| OCRNet | HRNetV2p-W18-Small | 512x512 | 20000 | 3.5 | 31.55 | 71.70 | 73.84 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug/ocrnet_hr18s_512x512_20k_voc12aug_20200617_233913-02b04fcb.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug/ocrnet_hr18s_512x512_20k_voc12aug_20200617_233913.log.json) | -| OCRNet | HRNetV2p-W18 | 512x512 | 20000 | 4.7 | 19.91 | 74.75 | 77.11 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_20k_voc12aug/ocrnet_hr18_512x512_20k_voc12aug_20200617_233932-8954cbb7.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_20k_voc12aug/ocrnet_hr18_512x512_20k_voc12aug_20200617_233932.log.json) | -| OCRNet | HRNetV2p-W48 | 512x512 | 20000 | 8.1 | 17.83 | 77.72 | 79.87 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_20k_voc12aug/ocrnet_hr48_512x512_20k_voc12aug_20200617_233932-9e82080a.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_20k_voc12aug/ocrnet_hr48_512x512_20k_voc12aug_20200617_233932.log.json) | -| OCRNet | HRNetV2p-W18-Small | 512x512 | 40000 | - | - | 72.76 | 74.60 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug/ocrnet_hr18s_512x512_40k_voc12aug_20200614_002025-42b587ac.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug/ocrnet_hr18s_512x512_40k_voc12aug_20200614_002025.log.json) | -| OCRNet | HRNetV2p-W18 | 512x512 | 40000 | - | - | 74.98 | 77.40 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_40k_voc12aug/ocrnet_hr18_512x512_40k_voc12aug_20200614_015958-714302be.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_40k_voc12aug/ocrnet_hr18_512x512_40k_voc12aug_20200614_015958.log.json) | -| OCRNet | HRNetV2p-W48 | 512x512 | 40000 | - | - | 77.14 | 79.71 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_40k_voc12aug/ocrnet_hr48_512x512_40k_voc12aug_20200614_015958-255bc5ce.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_40k_voc12aug/ocrnet_hr48_512x512_40k_voc12aug_20200614_015958.log.json) | +| OCRNet | HRNetV2p-W18-Small | 512x512 | 20000 | 3.5 | 31.55 | 71.70 | 73.84 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug/ocrnet_hr18s_512x512_20k_voc12aug_20200617_233913-02b04fcb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug/ocrnet_hr18s_512x512_20k_voc12aug_20200617_233913.log.json) | +| OCRNet | HRNetV2p-W18 | 512x512 | 20000 | 4.7 | 19.91 | 74.75 | 77.11 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_20k_voc12aug/ocrnet_hr18_512x512_20k_voc12aug_20200617_233932-8954cbb7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_20k_voc12aug/ocrnet_hr18_512x512_20k_voc12aug_20200617_233932.log.json) | +| OCRNet | HRNetV2p-W48 | 512x512 | 20000 | 8.1 | 17.83 | 77.72 | 79.87 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_20k_voc12aug/ocrnet_hr48_512x512_20k_voc12aug_20200617_233932-9e82080a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_20k_voc12aug/ocrnet_hr48_512x512_20k_voc12aug_20200617_233932.log.json) | +| OCRNet | HRNetV2p-W18-Small | 512x512 | 40000 | - | - | 72.76 | 74.60 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug/ocrnet_hr18s_512x512_40k_voc12aug_20200614_002025-42b587ac.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug/ocrnet_hr18s_512x512_40k_voc12aug_20200614_002025.log.json) | +| OCRNet | HRNetV2p-W18 | 512x512 | 40000 | - | - | 74.98 | 77.40 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_40k_voc12aug/ocrnet_hr18_512x512_40k_voc12aug_20200614_015958-714302be.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_40k_voc12aug/ocrnet_hr18_512x512_40k_voc12aug_20200614_015958.log.json) | +| OCRNet | HRNetV2p-W48 | 512x512 | 40000 | - | - | 77.14 | 79.71 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_40k_voc12aug/ocrnet_hr48_512x512_40k_voc12aug_20200614_015958-255bc5ce.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_40k_voc12aug/ocrnet_hr48_512x512_40k_voc12aug_20200614_015958.log.json) | diff --git a/configs/point_rend/README.md b/configs/point_rend/README.md index 11d1d423d5..a5553f099a 100644 --- a/configs/point_rend/README.md +++ b/configs/point_rend/README.md @@ -17,11 +17,11 @@ ### Cityscapes | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |-----------|----------|-----------|--------:|---------:|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| PointRend | R-50 | 512x1024 | 80000 | 3.1 | 8.48 | 76.47 | 78.13 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x1024_80k_cityscapes/pointrend_r50_512x1024_80k_cityscapes_20200711_015821-bb1ff523.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x1024_80k_cityscapes/pointrend_r50_512x1024_80k_cityscapes-20200715_214714.log.json) | -| PointRend | R-101 | 512x1024 | 80000 | 4.2 | 7.00 | 78.30 | 79.97 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x1024_80k_cityscapes/pointrend_r101_512x1024_80k_cityscapes_20200711_170850-d0ca84be.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x1024_80k_cityscapes/pointrend_r101_512x1024_80k_cityscapes-20200715_214824.log.json) | +| PointRend | R-50 | 512x1024 | 80000 | 3.1 | 8.48 | 76.47 | 78.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x1024_80k_cityscapes/pointrend_r50_512x1024_80k_cityscapes_20200711_015821-bb1ff523.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x1024_80k_cityscapes/pointrend_r50_512x1024_80k_cityscapes-20200715_214714.log.json) | +| PointRend | R-101 | 512x1024 | 80000 | 4.2 | 7.00 | 78.30 | 79.97 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x1024_80k_cityscapes/pointrend_r101_512x1024_80k_cityscapes_20200711_170850-d0ca84be.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x1024_80k_cityscapes/pointrend_r101_512x1024_80k_cityscapes-20200715_214824.log.json) | ### ADE20K | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |-----------|----------|-----------|--------:|---------:|----------------|------:|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| PointRend | R-50 | 512x512 | 160000 | 5.1 | 17.31 | 37.64 | 39.17 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x512_160k_ade20k/pointrend_r50_512x512_160k_ade20k_20200807_232644-ac3febf2.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x512_160k_ade20k/pointrend_r50_512x512_160k_ade20k-20200807_232644.log.json) | -| PointRend | R-101 | 512x512 | 160000 | 6.1 | 15.50 | 40.02 | 41.60 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x512_160k_ade20k/pointrend_r101_512x512_160k_ade20k_20200808_030852-8834902a.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x512_160k_ade20k/pointrend_r101_512x512_160k_ade20k-20200808_030852.log.json) | +| PointRend | R-50 | 512x512 | 160000 | 5.1 | 17.31 | 37.64 | 39.17 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x512_160k_ade20k/pointrend_r50_512x512_160k_ade20k_20200807_232644-ac3febf2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x512_160k_ade20k/pointrend_r50_512x512_160k_ade20k-20200807_232644.log.json) | +| PointRend | R-101 | 512x512 | 160000 | 6.1 | 15.50 | 40.02 | 41.60 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x512_160k_ade20k/pointrend_r101_512x512_160k_ade20k_20200808_030852-8834902a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x512_160k_ade20k/pointrend_r101_512x512_160k_ade20k-20200808_030852.log.json) | diff --git a/configs/psanet/README.md b/configs/psanet/README.md index d6d94e36d2..1a3352bda4 100644 --- a/configs/psanet/README.md +++ b/configs/psanet/README.md @@ -16,27 +16,27 @@ ### Cityscapes | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| PSANet | R-50-D8 | 512x1024 | 40000 | 7 | 3.17 | 77.63 | 79.04 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_40k_cityscapes/psanet_r50-d8_512x1024_40k_cityscapes_20200606_103117-99fac37c.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_40k_cityscapes/psanet_r50-d8_512x1024_40k_cityscapes_20200606_103117.log.json) | -| PSANet | R-101-D8 | 512x1024 | 40000 | 10.5 | 2.20 | 79.14 | 80.19 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_40k_cityscapes/psanet_r101-d8_512x1024_40k_cityscapes_20200606_001418-27b9cfa7.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_40k_cityscapes/psanet_r101-d8_512x1024_40k_cityscapes_20200606_001418.log.json) | -| PSANet | R-50-D8 | 769x769 | 40000 | 7.9 | 1.40 | 77.99 | 79.64 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_40k_cityscapes/psanet_r50-d8_769x769_40k_cityscapes_20200530_033717-d5365506.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_40k_cityscapes/psanet_r50-d8_769x769_40k_cityscapes_20200530_033717.log.json) | -| PSANet | R-101-D8 | 769x769 | 40000 | 11.9 | 0.98 | 78.43 | 80.26 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_40k_cityscapes/psanet_r101-d8_769x769_40k_cityscapes_20200530_035107-997da1e6.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_40k_cityscapes/psanet_r101-d8_769x769_40k_cityscapes_20200530_035107.log.json) | -| PSANet | R-50-D8 | 512x1024 | 80000 | - | - | 77.24 | 78.69 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_80k_cityscapes/psanet_r50-d8_512x1024_80k_cityscapes_20200606_161842-ab60a24f.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_80k_cityscapes/psanet_r50-d8_512x1024_80k_cityscapes_20200606_161842.log.json) | -| PSANet | R-101-D8 | 512x1024 | 80000 | - | - | 79.31 | 80.53 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_80k_cityscapes/psanet_r101-d8_512x1024_80k_cityscapes_20200606_161823-0f73a169.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_80k_cityscapes/psanet_r101-d8_512x1024_80k_cityscapes_20200606_161823.log.json) | -| PSANet | R-50-D8 | 769x769 | 80000 | - | - | 79.31 | 80.91 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_80k_cityscapes/psanet_r50-d8_769x769_80k_cityscapes_20200606_225134-fe42f49e.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_80k_cityscapes/psanet_r50-d8_769x769_80k_cityscapes_20200606_225134.log.json) | -| PSANet | R-101-D8 | 769x769 | 80000 | - | - | 79.69 | 80.89 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_80k_cityscapes/psanet_r101-d8_769x769_80k_cityscapes_20200606_214550-7665827b.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_80k_cityscapes/psanet_r101-d8_769x769_80k_cityscapes_20200606_214550.log.json) | +| PSANet | R-50-D8 | 512x1024 | 40000 | 7 | 3.17 | 77.63 | 79.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_40k_cityscapes/psanet_r50-d8_512x1024_40k_cityscapes_20200606_103117-99fac37c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_40k_cityscapes/psanet_r50-d8_512x1024_40k_cityscapes_20200606_103117.log.json) | +| PSANet | R-101-D8 | 512x1024 | 40000 | 10.5 | 2.20 | 79.14 | 80.19 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_40k_cityscapes/psanet_r101-d8_512x1024_40k_cityscapes_20200606_001418-27b9cfa7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_40k_cityscapes/psanet_r101-d8_512x1024_40k_cityscapes_20200606_001418.log.json) | +| PSANet | R-50-D8 | 769x769 | 40000 | 7.9 | 1.40 | 77.99 | 79.64 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_40k_cityscapes/psanet_r50-d8_769x769_40k_cityscapes_20200530_033717-d5365506.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_40k_cityscapes/psanet_r50-d8_769x769_40k_cityscapes_20200530_033717.log.json) | +| PSANet | R-101-D8 | 769x769 | 40000 | 11.9 | 0.98 | 78.43 | 80.26 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_40k_cityscapes/psanet_r101-d8_769x769_40k_cityscapes_20200530_035107-997da1e6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_40k_cityscapes/psanet_r101-d8_769x769_40k_cityscapes_20200530_035107.log.json) | +| PSANet | R-50-D8 | 512x1024 | 80000 | - | - | 77.24 | 78.69 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_80k_cityscapes/psanet_r50-d8_512x1024_80k_cityscapes_20200606_161842-ab60a24f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_80k_cityscapes/psanet_r50-d8_512x1024_80k_cityscapes_20200606_161842.log.json) | +| PSANet | R-101-D8 | 512x1024 | 80000 | - | - | 79.31 | 80.53 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_80k_cityscapes/psanet_r101-d8_512x1024_80k_cityscapes_20200606_161823-0f73a169.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_80k_cityscapes/psanet_r101-d8_512x1024_80k_cityscapes_20200606_161823.log.json) | +| PSANet | R-50-D8 | 769x769 | 80000 | - | - | 79.31 | 80.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_80k_cityscapes/psanet_r50-d8_769x769_80k_cityscapes_20200606_225134-fe42f49e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_80k_cityscapes/psanet_r50-d8_769x769_80k_cityscapes_20200606_225134.log.json) | +| PSANet | R-101-D8 | 769x769 | 80000 | - | - | 79.69 | 80.89 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_80k_cityscapes/psanet_r101-d8_769x769_80k_cityscapes_20200606_214550-7665827b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_80k_cityscapes/psanet_r101-d8_769x769_80k_cityscapes_20200606_214550.log.json) | ### ADE20K | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| PSANet | R-50-D8 | 512x512 | 80000 | 9 | 18.91 | 41.14 | 41.91 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_80k_ade20k/psanet_r50-d8_512x512_80k_ade20k_20200614_144141-835e4b97.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_80k_ade20k/psanet_r50-d8_512x512_80k_ade20k_20200614_144141.log.json) | -| PSANet | R-101-D8 | 512x512 | 80000 | 12.5 | 13.13 | 43.80 | 44.75 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_80k_ade20k/psanet_r101-d8_512x512_80k_ade20k_20200614_185117-1fab60d4.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_80k_ade20k/psanet_r101-d8_512x512_80k_ade20k_20200614_185117.log.json) | -| PSANet | R-50-D8 | 512x512 | 160000 | - | - | 41.67 | 42.95 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_160k_ade20k/psanet_r50-d8_512x512_160k_ade20k_20200615_161258-148077dd.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_160k_ade20k/psanet_r50-d8_512x512_160k_ade20k_20200615_161258.log.json) | -| PSANet | R-101-D8 | 512x512 | 160000 | - | - | 43.74 | 45.38 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_160k_ade20k/psanet_r101-d8_512x512_160k_ade20k_20200615_161537-dbfa564c.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_160k_ade20k/psanet_r101-d8_512x512_160k_ade20k_20200615_161537.log.json) | +| PSANet | R-50-D8 | 512x512 | 80000 | 9 | 18.91 | 41.14 | 41.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_80k_ade20k/psanet_r50-d8_512x512_80k_ade20k_20200614_144141-835e4b97.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_80k_ade20k/psanet_r50-d8_512x512_80k_ade20k_20200614_144141.log.json) | +| PSANet | R-101-D8 | 512x512 | 80000 | 12.5 | 13.13 | 43.80 | 44.75 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_80k_ade20k/psanet_r101-d8_512x512_80k_ade20k_20200614_185117-1fab60d4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_80k_ade20k/psanet_r101-d8_512x512_80k_ade20k_20200614_185117.log.json) | +| PSANet | R-50-D8 | 512x512 | 160000 | - | - | 41.67 | 42.95 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_160k_ade20k/psanet_r50-d8_512x512_160k_ade20k_20200615_161258-148077dd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_160k_ade20k/psanet_r50-d8_512x512_160k_ade20k_20200615_161258.log.json) | +| PSANet | R-101-D8 | 512x512 | 160000 | - | - | 43.74 | 45.38 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_160k_ade20k/psanet_r101-d8_512x512_160k_ade20k_20200615_161537-dbfa564c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_160k_ade20k/psanet_r101-d8_512x512_160k_ade20k_20200615_161537.log.json) | ### Pascal VOC 2012 + Aug | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| PSANet | R-50-D8 | 512x512 | 20000 | 6.9 | 18.24 | 76.39 | 77.34 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_20k_voc12aug/psanet_r50-d8_512x512_20k_voc12aug_20200617_102413-2f1bbaa1.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_20k_voc12aug/psanet_r50-d8_512x512_20k_voc12aug_20200617_102413.log.json) | -| PSANet | R-101-D8 | 512x512 | 20000 | 10.4 | 12.63 | 77.91 | 79.30 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_20k_voc12aug/psanet_r101-d8_512x512_20k_voc12aug_20200617_110624-946fef11.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_20k_voc12aug/psanet_r101-d8_512x512_20k_voc12aug_20200617_110624.log.json) | -| PSANet | R-50-D8 | 512x512 | 40000 | - | - | 76.30 | 77.35 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_40k_voc12aug/psanet_r50-d8_512x512_40k_voc12aug_20200613_161946-f596afb5.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_40k_voc12aug/psanet_r50-d8_512x512_40k_voc12aug_20200613_161946.log.json) | -| PSANet | R-101-D8 | 512x512 | 40000 | - | - | 77.73 | 79.05 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_40k_voc12aug/psanet_r101-d8_512x512_40k_voc12aug_20200613_161946-1f560f9e.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_40k_voc12aug/psanet_r101-d8_512x512_40k_voc12aug_20200613_161946.log.json) | +| PSANet | R-50-D8 | 512x512 | 20000 | 6.9 | 18.24 | 76.39 | 77.34 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_20k_voc12aug/psanet_r50-d8_512x512_20k_voc12aug_20200617_102413-2f1bbaa1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_20k_voc12aug/psanet_r50-d8_512x512_20k_voc12aug_20200617_102413.log.json) | +| PSANet | R-101-D8 | 512x512 | 20000 | 10.4 | 12.63 | 77.91 | 79.30 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_20k_voc12aug/psanet_r101-d8_512x512_20k_voc12aug_20200617_110624-946fef11.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_20k_voc12aug/psanet_r101-d8_512x512_20k_voc12aug_20200617_110624.log.json) | +| PSANet | R-50-D8 | 512x512 | 40000 | - | - | 76.30 | 77.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_40k_voc12aug/psanet_r50-d8_512x512_40k_voc12aug_20200613_161946-f596afb5.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_40k_voc12aug/psanet_r50-d8_512x512_40k_voc12aug_20200613_161946.log.json) | +| PSANet | R-101-D8 | 512x512 | 40000 | - | - | 77.73 | 79.05 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_40k_voc12aug/psanet_r101-d8_512x512_40k_voc12aug_20200613_161946-1f560f9e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_40k_voc12aug/psanet_r101-d8_512x512_40k_voc12aug_20200613_161946.log.json) | diff --git a/configs/pspnet/README.md b/configs/pspnet/README.md index 304804baa9..879d292b3e 100644 --- a/configs/pspnet/README.md +++ b/configs/pspnet/README.md @@ -15,33 +15,33 @@ ### Cityscapes | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| PSPNet | R-50-D8 | 512x1024 | 40000 | 6.1 | 4.07 | 77.85 | 79.18 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338.log.json) | -| PSPNet | R-101-D8 | 512x1024 | 40000 | 9.6 | 2.68 | 78.34 | 79.74 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes/pspnet_r101-d8_512x1024_40k_cityscapes_20200604_232751-467e7cf4.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes/pspnet_r101-d8_512x1024_40k_cityscapes_20200604_232751.log.json) | -| PSPNet | R-50-D8 | 769x769 | 40000 | 6.9 | 1.76 | 78.26 | 79.88 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_40k_cityscapes/pspnet_r50-d8_769x769_40k_cityscapes_20200606_112725-86638686.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_40k_cityscapes/pspnet_r50-d8_769x769_40k_cityscapes_20200606_112725.log.json) | -| PSPNet | R-101-D8 | 769x769 | 40000 | 10.9 | 1.15 | 79.08 | 80.28 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_40k_cityscapes/pspnet_r101-d8_769x769_40k_cityscapes_20200606_112753-61c6f5be.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_40k_cityscapes/pspnet_r101-d8_769x769_40k_cityscapes_20200606_112753.log.json) | -| PSPNet | R-50-D8 | 512x1024 | 80000 | - | - | 78.55 | 79.79 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes/pspnet_r50-d8_512x1024_80k_cityscapes_20200606_112131-2376f12b.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes/pspnet_r50-d8_512x1024_80k_cityscapes_20200606_112131.log.json) | -| PSPNet | R-101-D8 | 512x1024 | 80000 | - | - | 79.76 | 81.01 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes/pspnet_r101-d8_512x1024_80k_cityscapes_20200606_112211-e1e1100f.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes/pspnet_r101-d8_512x1024_80k_cityscapes_20200606_112211.log.json) | -| PSPNet | R-50-D8 | 769x769 | 80000 | - | - | 79.59 | 80.69 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_80k_cityscapes/pspnet_r50-d8_769x769_80k_cityscapes_20200606_210121-5ccf03dd.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_80k_cityscapes/pspnet_r50-d8_769x769_80k_cityscapes_20200606_210121.log.json) | -| PSPNet | R-101-D8 | 769x769 | 80000 | - | - | 79.77 | 81.06 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_80k_cityscapes/pspnet_r101-d8_769x769_80k_cityscapes_20200606_225055-dba412fa.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_80k_cityscapes/pspnet_r101-d8_769x769_80k_cityscapes_20200606_225055.log.json) | +| PSPNet | R-50-D8 | 512x1024 | 40000 | 6.1 | 4.07 | 77.85 | 79.18 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338.log.json) | +| PSPNet | R-101-D8 | 512x1024 | 40000 | 9.6 | 2.68 | 78.34 | 79.74 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes/pspnet_r101-d8_512x1024_40k_cityscapes_20200604_232751-467e7cf4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes/pspnet_r101-d8_512x1024_40k_cityscapes_20200604_232751.log.json) | +| PSPNet | R-50-D8 | 769x769 | 40000 | 6.9 | 1.76 | 78.26 | 79.88 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_40k_cityscapes/pspnet_r50-d8_769x769_40k_cityscapes_20200606_112725-86638686.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_40k_cityscapes/pspnet_r50-d8_769x769_40k_cityscapes_20200606_112725.log.json) | +| PSPNet | R-101-D8 | 769x769 | 40000 | 10.9 | 1.15 | 79.08 | 80.28 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_40k_cityscapes/pspnet_r101-d8_769x769_40k_cityscapes_20200606_112753-61c6f5be.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_40k_cityscapes/pspnet_r101-d8_769x769_40k_cityscapes_20200606_112753.log.json) | +| PSPNet | R-50-D8 | 512x1024 | 80000 | - | - | 78.55 | 79.79 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes/pspnet_r50-d8_512x1024_80k_cityscapes_20200606_112131-2376f12b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes/pspnet_r50-d8_512x1024_80k_cityscapes_20200606_112131.log.json) | +| PSPNet | R-101-D8 | 512x1024 | 80000 | - | - | 79.76 | 81.01 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes/pspnet_r101-d8_512x1024_80k_cityscapes_20200606_112211-e1e1100f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes/pspnet_r101-d8_512x1024_80k_cityscapes_20200606_112211.log.json) | +| PSPNet | R-50-D8 | 769x769 | 80000 | - | - | 79.59 | 80.69 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_80k_cityscapes/pspnet_r50-d8_769x769_80k_cityscapes_20200606_210121-5ccf03dd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_80k_cityscapes/pspnet_r50-d8_769x769_80k_cityscapes_20200606_210121.log.json) | +| PSPNet | R-101-D8 | 769x769 | 80000 | - | - | 79.77 | 81.06 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_80k_cityscapes/pspnet_r101-d8_769x769_80k_cityscapes_20200606_225055-dba412fa.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_80k_cityscapes/pspnet_r101-d8_769x769_80k_cityscapes_20200606_225055.log.json) | ### ADE20K | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| PSPNet | R-50-D8 | 512x512 | 80000 | 8.5 | 23.53 | 41.13 | 41.94 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_80k_ade20k/pspnet_r50-d8_512x512_80k_ade20k_20200615_014128-15a8b914.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_80k_ade20k/pspnet_r50-d8_512x512_80k_ade20k_20200615_014128.log.json) | -| PSPNet | R-101-D8 | 512x512 | 80000 | 12 | 15.30 | 43.57 | 44.35 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_80k_ade20k/pspnet_r101-d8_512x512_80k_ade20k_20200614_031423-b6e782f0.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_80k_ade20k/pspnet_r101-d8_512x512_80k_ade20k_20200614_031423.log.json) | -| PSPNet | R-50-D8 | 512x512 | 160000 | - | - | 42.48 | 43.44 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_160k_ade20k/pspnet_r50-d8_512x512_160k_ade20k_20200615_184358-1890b0bd.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_160k_ade20k/pspnet_r50-d8_512x512_160k_ade20k_20200615_184358.log.json) | -| PSPNet | R-101-D8 | 512x512 | 160000 | - | - | 44.39 | 45.35 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_160k_ade20k/pspnet_r101-d8_512x512_160k_ade20k_20200615_100650-967c316f.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_160k_ade20k/pspnet_r101-d8_512x512_160k_ade20k_20200615_100650.log.json) | +| PSPNet | R-50-D8 | 512x512 | 80000 | 8.5 | 23.53 | 41.13 | 41.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_80k_ade20k/pspnet_r50-d8_512x512_80k_ade20k_20200615_014128-15a8b914.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_80k_ade20k/pspnet_r50-d8_512x512_80k_ade20k_20200615_014128.log.json) | +| PSPNet | R-101-D8 | 512x512 | 80000 | 12 | 15.30 | 43.57 | 44.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_80k_ade20k/pspnet_r101-d8_512x512_80k_ade20k_20200614_031423-b6e782f0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_80k_ade20k/pspnet_r101-d8_512x512_80k_ade20k_20200614_031423.log.json) | +| PSPNet | R-50-D8 | 512x512 | 160000 | - | - | 42.48 | 43.44 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_160k_ade20k/pspnet_r50-d8_512x512_160k_ade20k_20200615_184358-1890b0bd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_160k_ade20k/pspnet_r50-d8_512x512_160k_ade20k_20200615_184358.log.json) | +| PSPNet | R-101-D8 | 512x512 | 160000 | - | - | 44.39 | 45.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_160k_ade20k/pspnet_r101-d8_512x512_160k_ade20k_20200615_100650-967c316f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_160k_ade20k/pspnet_r101-d8_512x512_160k_ade20k_20200615_100650.log.json) | ### Pascal VOC 2012 + Aug | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| PSPNet | R-50-D8 | 512x512 | 20000 | 6.1 | 23.59 | 76.78 | 77.61 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_20k_voc12aug/pspnet_r50-d8_512x512_20k_voc12aug_20200617_101958-ed5dfbd9.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_20k_voc12aug/pspnet_r50-d8_512x512_20k_voc12aug_20200617_101958.log.json) | -| PSPNet | R-101-D8 | 512x512 | 20000 | 9.6 | 15.02 | 78.47 | 79.25 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_20k_voc12aug/pspnet_r101-d8_512x512_20k_voc12aug_20200617_102003-4aef3c9a.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_20k_voc12aug/pspnet_r101-d8_512x512_20k_voc12aug_20200617_102003.log.json) | -| PSPNet | R-50-D8 | 512x512 | 40000 | - | - | 77.29 | 78.48 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_40k_voc12aug/pspnet_r50-d8_512x512_40k_voc12aug_20200613_161222-ae9c1b8c.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_40k_voc12aug/pspnet_r50-d8_512x512_40k_voc12aug_20200613_161222.log.json) | -| PSPNet | R-101-D8 | 512x512 | 40000 | - | - | 78.52 | 79.57 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_40k_voc12aug/pspnet_r101-d8_512x512_40k_voc12aug_20200613_161222-bc933b18.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_40k_voc12aug/pspnet_r101-d8_512x512_40k_voc12aug_20200613_161222.log.json) | +| PSPNet | R-50-D8 | 512x512 | 20000 | 6.1 | 23.59 | 76.78 | 77.61 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_20k_voc12aug/pspnet_r50-d8_512x512_20k_voc12aug_20200617_101958-ed5dfbd9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_20k_voc12aug/pspnet_r50-d8_512x512_20k_voc12aug_20200617_101958.log.json) | +| PSPNet | R-101-D8 | 512x512 | 20000 | 9.6 | 15.02 | 78.47 | 79.25 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_20k_voc12aug/pspnet_r101-d8_512x512_20k_voc12aug_20200617_102003-4aef3c9a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_20k_voc12aug/pspnet_r101-d8_512x512_20k_voc12aug_20200617_102003.log.json) | +| PSPNet | R-50-D8 | 512x512 | 40000 | - | - | 77.29 | 78.48 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_40k_voc12aug/pspnet_r50-d8_512x512_40k_voc12aug_20200613_161222-ae9c1b8c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_40k_voc12aug/pspnet_r50-d8_512x512_40k_voc12aug_20200613_161222.log.json) | +| PSPNet | R-101-D8 | 512x512 | 40000 | - | - | 78.52 | 79.57 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_40k_voc12aug/pspnet_r101-d8_512x512_40k_voc12aug_20200613_161222-bc933b18.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_40k_voc12aug/pspnet_r101-d8_512x512_40k_voc12aug_20200613_161222.log.json) | ### Pascal Context | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| PSPNet | R-101-D8 | 480x480 | 40000 | 8.8 | 9.68 | 46.60 | 47.78 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context/pspnet_r101-d8_480x480_40k_pascal_context_20200911_211210-bf0f5d7c.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context/pspnet_r101-d8_480x480_40k_pascal_context-20200911_211210.log.json) | -| PSPNet | R-101-D8 | 480x480 | 80000 | - | - | 46.03 | 47.15 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context/pspnet_r101-d8_480x480_80k_pascal_context_20200911_190530-c86d6233.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context/pspnet_r101-d8_480x480_80k_pascal_context-20200911_190530.log.json) | +| PSPNet | R-101-D8 | 480x480 | 40000 | 8.8 | 9.68 | 46.60 | 47.78 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context/pspnet_r101-d8_480x480_40k_pascal_context_20200911_211210-bf0f5d7c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context/pspnet_r101-d8_480x480_40k_pascal_context-20200911_211210.log.json) | +| PSPNet | R-101-D8 | 480x480 | 80000 | - | - | 46.03 | 47.15 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context/pspnet_r101-d8_480x480_80k_pascal_context_20200911_190530-c86d6233.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context/pspnet_r101-d8_480x480_80k_pascal_context-20200911_190530.log.json) | diff --git a/configs/resnest/README.md b/configs/resnest/README.md index 4c876214f0..9476cd895c 100644 --- a/configs/resnest/README.md +++ b/configs/resnest/README.md @@ -16,15 +16,15 @@ year={2020} ### Cityscapes | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |------------|----------|-----------|--------:|---------:|----------------|------:|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FCN | S-101-D8 | 512x1024 | 80000 | 11.4 | 2.39 | 77.56 | 78.98 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x1024_80k_cityscapes/fcn_s101-d8_512x1024_80k_cityscapes_20200807_140631-f8d155b3.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x1024_80k_cityscapes/fcn_s101-d8_512x1024_80k_cityscapes-20200807_140631.log.json) | -| PSPNet | S-101-D8 | 512x1024 | 80000 | 11.8 | 2.52 | 78.57 | 79.19 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x1024_80k_cityscapes/pspnet_s101-d8_512x1024_80k_cityscapes_20200807_140631-c75f3b99.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x1024_80k_cityscapes/pspnet_s101-d8_512x1024_80k_cityscapes-20200807_140631.log.json) | -| DeepLabV3 | S-101-D8 | 512x1024 | 80000 | 11.9 | 1.88 | 79.67 | 80.51 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes/deeplabv3_s101-d8_512x1024_80k_cityscapes_20200807_144429-b73c4270.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes/deeplabv3_s101-d8_512x1024_80k_cityscapes-20200807_144429.log.json) | -| DeepLabV3+ | S-101-D8 | 512x1024 | 80000 | 13.2 | 2.36 | 79.62 | 80.27 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes/deeplabv3plus_s101-d8_512x1024_80k_cityscapes_20200807_144429-1239eb43.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes/deeplabv3plus_s101-d8_512x1024_80k_cityscapes-20200807_144429.log.json) | +| FCN | S-101-D8 | 512x1024 | 80000 | 11.4 | 2.39 | 77.56 | 78.98 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x1024_80k_cityscapes/fcn_s101-d8_512x1024_80k_cityscapes_20200807_140631-f8d155b3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x1024_80k_cityscapes/fcn_s101-d8_512x1024_80k_cityscapes-20200807_140631.log.json) | +| PSPNet | S-101-D8 | 512x1024 | 80000 | 11.8 | 2.52 | 78.57 | 79.19 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x1024_80k_cityscapes/pspnet_s101-d8_512x1024_80k_cityscapes_20200807_140631-c75f3b99.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x1024_80k_cityscapes/pspnet_s101-d8_512x1024_80k_cityscapes-20200807_140631.log.json) | +| DeepLabV3 | S-101-D8 | 512x1024 | 80000 | 11.9 | 1.88 | 79.67 | 80.51 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes/deeplabv3_s101-d8_512x1024_80k_cityscapes_20200807_144429-b73c4270.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes/deeplabv3_s101-d8_512x1024_80k_cityscapes-20200807_144429.log.json) | +| DeepLabV3+ | S-101-D8 | 512x1024 | 80000 | 13.2 | 2.36 | 79.62 | 80.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes/deeplabv3plus_s101-d8_512x1024_80k_cityscapes_20200807_144429-1239eb43.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes/deeplabv3plus_s101-d8_512x1024_80k_cityscapes-20200807_144429.log.json) | ### ADE20k | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |------------|----------|-----------|--------:|---------:|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FCN | S-101-D8 | 512x512 | 160000 | 14.2 | 12.86 | 45.62 | 46.16 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x512_160k_ade20k/fcn_s101-d8_512x512_160k_ade20k_20200807_145416-d3160329.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x512_160k_ade20k/fcn_s101-d8_512x512_160k_ade20k-20200807_145416.log.json) | -| PSPNet | S-101-D8 | 512x512 | 160000 | 14.2 | 13.02 | 45.44 | 46.28 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x512_160k_ade20k/pspnet_s101-d8_512x512_160k_ade20k_20200807_145416-a6daa92a.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x512_160k_ade20k/pspnet_s101-d8_512x512_160k_ade20k-20200807_145416.log.json) | -| DeepLabV3 | S-101-D8 | 512x512 | 160000 | 14.6 | 9.28 | 45.71 | 46.59 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x512_160k_ade20k/deeplabv3_s101-d8_512x512_160k_ade20k_20200807_144503-17ecabe5.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x512_160k_ade20k/deeplabv3_s101-d8_512x512_160k_ade20k-20200807_144503.log.json) | -| DeepLabV3+ | S-101-D8 | 512x512 | 160000 | 16.2 | 11.96 | 46.47 | 47.27 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k/deeplabv3plus_s101-d8_512x512_160k_ade20k_20200807_144503-27b26226.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k/deeplabv3plus_s101-d8_512x512_160k_ade20k-20200807_144503.log.json) | +| FCN | S-101-D8 | 512x512 | 160000 | 14.2 | 12.86 | 45.62 | 46.16 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x512_160k_ade20k/fcn_s101-d8_512x512_160k_ade20k_20200807_145416-d3160329.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x512_160k_ade20k/fcn_s101-d8_512x512_160k_ade20k-20200807_145416.log.json) | +| PSPNet | S-101-D8 | 512x512 | 160000 | 14.2 | 13.02 | 45.44 | 46.28 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x512_160k_ade20k/pspnet_s101-d8_512x512_160k_ade20k_20200807_145416-a6daa92a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x512_160k_ade20k/pspnet_s101-d8_512x512_160k_ade20k-20200807_145416.log.json) | +| DeepLabV3 | S-101-D8 | 512x512 | 160000 | 14.6 | 9.28 | 45.71 | 46.59 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x512_160k_ade20k/deeplabv3_s101-d8_512x512_160k_ade20k_20200807_144503-17ecabe5.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x512_160k_ade20k/deeplabv3_s101-d8_512x512_160k_ade20k-20200807_144503.log.json) | +| DeepLabV3+ | S-101-D8 | 512x512 | 160000 | 16.2 | 11.96 | 46.47 | 47.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k/deeplabv3plus_s101-d8_512x512_160k_ade20k_20200807_144503-27b26226.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k/deeplabv3plus_s101-d8_512x512_160k_ade20k-20200807_144503.log.json) | diff --git a/configs/sem_fpn/README.md b/configs/sem_fpn/README.md index 5315d3622f..707041e961 100644 --- a/configs/sem_fpn/README.md +++ b/configs/sem_fpn/README.md @@ -20,11 +20,11 @@ ### Cityscapes | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|---------:|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FPN | R-50 | 512x1024 | 80000 | 2.8 | 13.54 | 74.52 | 76.08 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x1024_80k_cityscapes/fpn_r50_512x1024_80k_cityscapes_20200717_021437-94018a0d.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x1024_80k_cityscapes/fpn_r50_512x1024_80k_cityscapes-20200717_021437.log.json) | -| FPN | R-101 | 512x1024 | 80000 | 3.9 | 10.29 | 75.80 | 77.40 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x1024_80k_cityscapes/fpn_r101_512x1024_80k_cityscapes_20200717_012416-c5800d4c.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x1024_80k_cityscapes/fpn_r101_512x1024_80k_cityscapes-20200717_012416.log.json) | +| FPN | R-50 | 512x1024 | 80000 | 2.8 | 13.54 | 74.52 | 76.08 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x1024_80k_cityscapes/fpn_r50_512x1024_80k_cityscapes_20200717_021437-94018a0d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x1024_80k_cityscapes/fpn_r50_512x1024_80k_cityscapes-20200717_021437.log.json) | +| FPN | R-101 | 512x1024 | 80000 | 3.9 | 10.29 | 75.80 | 77.40 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x1024_80k_cityscapes/fpn_r101_512x1024_80k_cityscapes_20200717_012416-c5800d4c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x1024_80k_cityscapes/fpn_r101_512x1024_80k_cityscapes-20200717_012416.log.json) | ### ADE20K | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|---------:|----------------|------:|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FPN | R-50 | 512x512 | 160000 | 4.9 | 55.77 | 37.49 | 39.09 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x512_160k_ade20k/fpn_r50_512x512_160k_ade20k_20200718_131734-5b5a6ab9.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x512_160k_ade20k/fpn_r50_512x512_160k_ade20k-20200718_131734.log.json) | -| FPN | R-101 | 512x512 | 160000 | 5.9 | 40.58 | 39.35 | 40.72 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x512_160k_ade20k/fpn_r101_512x512_160k_ade20k_20200718_131734-306b5004.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x512_160k_ade20k/fpn_r101_512x512_160k_ade20k-20200718_131734.log.json) | +| FPN | R-50 | 512x512 | 160000 | 4.9 | 55.77 | 37.49 | 39.09 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x512_160k_ade20k/fpn_r50_512x512_160k_ade20k_20200718_131734-5b5a6ab9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x512_160k_ade20k/fpn_r50_512x512_160k_ade20k-20200718_131734.log.json) | +| FPN | R-101 | 512x512 | 160000 | 5.9 | 40.58 | 39.35 | 40.72 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x512_160k_ade20k/fpn_r101_512x512_160k_ade20k_20200718_131734-306b5004.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x512_160k_ade20k/fpn_r101_512x512_160k_ade20k-20200718_131734.log.json) | diff --git a/configs/upernet/README.md b/configs/upernet/README.md index 88a64d848d..26aa2ee5bd 100644 --- a/configs/upernet/README.md +++ b/configs/upernet/README.md @@ -16,27 +16,27 @@ ### Cityscapes | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |---------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| UPerNet | R-50 | 512x1024 | 40000 | 6.4 | 4.25 | 77.10 | 78.37 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_40k_cityscapes/upernet_r50_512x1024_40k_cityscapes_20200605_094827-aa54cb54.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_40k_cityscapes/upernet_r50_512x1024_40k_cityscapes_20200605_094827.log.json) | -| UPerNet | R-101 | 512x1024 | 40000 | 7.4 | 3.79 | 78.69 | 80.11 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_40k_cityscapes/upernet_r101_512x1024_40k_cityscapes_20200605_094933-ebce3b10.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_40k_cityscapes/upernet_r101_512x1024_40k_cityscapes_20200605_094933.log.json) | -| UPerNet | R-50 | 769x769 | 40000 | 7.2 | 1.76 | 77.98 | 79.70 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_40k_cityscapes/upernet_r50_769x769_40k_cityscapes_20200530_033048-92d21539.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_40k_cityscapes/upernet_r50_769x769_40k_cityscapes_20200530_033048.log.json) | -| UPerNet | R-101 | 769x769 | 40000 | 8.4 | 1.56 | 79.03 | 80.77 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_40k_cityscapes/upernet_r101_769x769_40k_cityscapes_20200530_040819-83c95d01.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_40k_cityscapes/upernet_r101_769x769_40k_cityscapes_20200530_040819.log.json) | -| UPerNet | R-50 | 512x1024 | 80000 | - | - | 78.19 | 79.19 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_80k_cityscapes/upernet_r50_512x1024_80k_cityscapes_20200607_052207-848beca8.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_80k_cityscapes/upernet_r50_512x1024_80k_cityscapes_20200607_052207.log.json) | -| UPerNet | R-101 | 512x1024 | 80000 | - | - | 79.40 | 80.46 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_80k_cityscapes/upernet_r101_512x1024_80k_cityscapes_20200607_002403-f05f2345.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_80k_cityscapes/upernet_r101_512x1024_80k_cityscapes_20200607_002403.log.json) | -| UPerNet | R-50 | 769x769 | 80000 | - | - | 79.39 | 80.92 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_80k_cityscapes/upernet_r50_769x769_80k_cityscapes_20200607_005107-82ae7d15.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_80k_cityscapes/upernet_r50_769x769_80k_cityscapes_20200607_005107.log.json) | -| UPerNet | R-101 | 769x769 | 80000 | - | - | 80.10 | 81.49 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_80k_cityscapes/upernet_r101_769x769_80k_cityscapes_20200607_001014-082fc334.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_80k_cityscapes/upernet_r101_769x769_80k_cityscapes_20200607_001014.log.json) | +| UPerNet | R-50 | 512x1024 | 40000 | 6.4 | 4.25 | 77.10 | 78.37 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_40k_cityscapes/upernet_r50_512x1024_40k_cityscapes_20200605_094827-aa54cb54.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_40k_cityscapes/upernet_r50_512x1024_40k_cityscapes_20200605_094827.log.json) | +| UPerNet | R-101 | 512x1024 | 40000 | 7.4 | 3.79 | 78.69 | 80.11 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_40k_cityscapes/upernet_r101_512x1024_40k_cityscapes_20200605_094933-ebce3b10.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_40k_cityscapes/upernet_r101_512x1024_40k_cityscapes_20200605_094933.log.json) | +| UPerNet | R-50 | 769x769 | 40000 | 7.2 | 1.76 | 77.98 | 79.70 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_40k_cityscapes/upernet_r50_769x769_40k_cityscapes_20200530_033048-92d21539.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_40k_cityscapes/upernet_r50_769x769_40k_cityscapes_20200530_033048.log.json) | +| UPerNet | R-101 | 769x769 | 40000 | 8.4 | 1.56 | 79.03 | 80.77 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_40k_cityscapes/upernet_r101_769x769_40k_cityscapes_20200530_040819-83c95d01.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_40k_cityscapes/upernet_r101_769x769_40k_cityscapes_20200530_040819.log.json) | +| UPerNet | R-50 | 512x1024 | 80000 | - | - | 78.19 | 79.19 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_80k_cityscapes/upernet_r50_512x1024_80k_cityscapes_20200607_052207-848beca8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_80k_cityscapes/upernet_r50_512x1024_80k_cityscapes_20200607_052207.log.json) | +| UPerNet | R-101 | 512x1024 | 80000 | - | - | 79.40 | 80.46 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_80k_cityscapes/upernet_r101_512x1024_80k_cityscapes_20200607_002403-f05f2345.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_80k_cityscapes/upernet_r101_512x1024_80k_cityscapes_20200607_002403.log.json) | +| UPerNet | R-50 | 769x769 | 80000 | - | - | 79.39 | 80.92 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_80k_cityscapes/upernet_r50_769x769_80k_cityscapes_20200607_005107-82ae7d15.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_80k_cityscapes/upernet_r50_769x769_80k_cityscapes_20200607_005107.log.json) | +| UPerNet | R-101 | 769x769 | 80000 | - | - | 80.10 | 81.49 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_80k_cityscapes/upernet_r101_769x769_80k_cityscapes_20200607_001014-082fc334.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_80k_cityscapes/upernet_r101_769x769_80k_cityscapes_20200607_001014.log.json) | ### ADE20K | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |---------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| UPerNet | R-50 | 512x512 | 80000 | 8.1 | 23.40 | 40.70 | 41.81 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_80k_ade20k/upernet_r50_512x512_80k_ade20k_20200614_144127-ecc8377b.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_80k_ade20k/upernet_r50_512x512_80k_ade20k_20200614_144127.log.json) | -| UPerNet | R-101 | 512x512 | 80000 | 9.1 | 20.34 | 42.91 | 43.96 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_80k_ade20k/upernet_r101_512x512_80k_ade20k_20200614_185117-32e4db94.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_80k_ade20k/upernet_r101_512x512_80k_ade20k_20200614_185117.log.json) | -| UPerNet | R-50 | 512x512 | 160000 | - | - | 42.05 | 42.78 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_160k_ade20k/upernet_r50_512x512_160k_ade20k_20200615_184328-8534de8d.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_160k_ade20k/upernet_r50_512x512_160k_ade20k_20200615_184328.log.json) | -| UPerNet | R-101 | 512x512 | 160000 | - | - | 43.82 | 44.85 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_160k_ade20k/upernet_r101_512x512_160k_ade20k_20200615_161951-91b32684.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_160k_ade20k/upernet_r101_512x512_160k_ade20k_20200615_161951.log.json) | +| UPerNet | R-50 | 512x512 | 80000 | 8.1 | 23.40 | 40.70 | 41.81 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_80k_ade20k/upernet_r50_512x512_80k_ade20k_20200614_144127-ecc8377b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_80k_ade20k/upernet_r50_512x512_80k_ade20k_20200614_144127.log.json) | +| UPerNet | R-101 | 512x512 | 80000 | 9.1 | 20.34 | 42.91 | 43.96 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_80k_ade20k/upernet_r101_512x512_80k_ade20k_20200614_185117-32e4db94.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_80k_ade20k/upernet_r101_512x512_80k_ade20k_20200614_185117.log.json) | +| UPerNet | R-50 | 512x512 | 160000 | - | - | 42.05 | 42.78 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_160k_ade20k/upernet_r50_512x512_160k_ade20k_20200615_184328-8534de8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_160k_ade20k/upernet_r50_512x512_160k_ade20k_20200615_184328.log.json) | +| UPerNet | R-101 | 512x512 | 160000 | - | - | 43.82 | 44.85 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_160k_ade20k/upernet_r101_512x512_160k_ade20k_20200615_161951-91b32684.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_160k_ade20k/upernet_r101_512x512_160k_ade20k_20200615_161951.log.json) | ### Pascal VOC 2012 + Aug | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |---------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| UPerNet | R-50 | 512x512 | 20000 | 6.4 | 23.17 | 74.82 | 76.35 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_20k_voc12aug/upernet_r50_512x512_20k_voc12aug_20200617_165330-5b5890a7.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_20k_voc12aug/upernet_r50_512x512_20k_voc12aug_20200617_165330.log.json) | -| UPerNet | R-101 | 512x512 | 20000 | 7.5 | 19.98 | 77.10 | 78.29 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_20k_voc12aug/upernet_r101_512x512_20k_voc12aug_20200617_165629-f14e7f27.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_20k_voc12aug/upernet_r101_512x512_20k_voc12aug_20200617_165629.log.json) | -| UPerNet | R-50 | 512x512 | 40000 | - | - | 75.92 | 77.44 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_40k_voc12aug/upernet_r50_512x512_40k_voc12aug_20200613_162257-ca9bcc6b.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_40k_voc12aug/upernet_r50_512x512_40k_voc12aug_20200613_162257.log.json) | -| UPerNet | R-101 | 512x512 | 40000 | - | - | 77.43 | 78.56 | [model](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_40k_voc12aug/upernet_r101_512x512_40k_voc12aug_20200613_163549-e26476ac.pth) | [log](https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_40k_voc12aug/upernet_r101_512x512_40k_voc12aug_20200613_163549.log.json) | +| UPerNet | R-50 | 512x512 | 20000 | 6.4 | 23.17 | 74.82 | 76.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_20k_voc12aug/upernet_r50_512x512_20k_voc12aug_20200617_165330-5b5890a7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_20k_voc12aug/upernet_r50_512x512_20k_voc12aug_20200617_165330.log.json) | +| UPerNet | R-101 | 512x512 | 20000 | 7.5 | 19.98 | 77.10 | 78.29 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_20k_voc12aug/upernet_r101_512x512_20k_voc12aug_20200617_165629-f14e7f27.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_20k_voc12aug/upernet_r101_512x512_20k_voc12aug_20200617_165629.log.json) | +| UPerNet | R-50 | 512x512 | 40000 | - | - | 75.92 | 77.44 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_40k_voc12aug/upernet_r50_512x512_40k_voc12aug_20200613_162257-ca9bcc6b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_40k_voc12aug/upernet_r50_512x512_40k_voc12aug_20200613_162257.log.json) | +| UPerNet | R-101 | 512x512 | 40000 | - | - | 77.43 | 78.56 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_40k_voc12aug/upernet_r101_512x512_40k_voc12aug_20200613_163549-e26476ac.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_40k_voc12aug/upernet_r101_512x512_40k_voc12aug_20200613_163549.log.json) | diff --git a/demo/MMSegmentation_Tutorial.ipynb b/demo/MMSegmentation_Tutorial.ipynb index d04084afb2..6ec7225dd4 100644 --- a/demo/MMSegmentation_Tutorial.ipynb +++ b/demo/MMSegmentation_Tutorial.ipynb @@ -362,7 +362,7 @@ "# Install PyTorch\n", "!pip install -U torch==1.5.0+cu101 torchvision==0.6.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html\n", "# Install MMCV\n", - "!pip install mmcv-full==latest+torch1.5.0+cu101 -f https://openmmlab.oss-accelerate.aliyuncs.com/mmcv/dist/index.html" + "!pip install mmcv-full==latest+torch1.5.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html" ], "execution_count": 2, "outputs": [ @@ -375,9 +375,9 @@ "Requirement already satisfied, skipping upgrade: future in /usr/local/lib/python3.6/dist-packages (from torch==1.5.0+cu101) (0.16.0)\n", "Requirement already satisfied, skipping upgrade: numpy in /usr/local/lib/python3.6/dist-packages (from torch==1.5.0+cu101) (1.18.5)\n", "Requirement already satisfied, skipping upgrade: pillow>=4.1.1 in /usr/local/lib/python3.6/dist-packages (from torchvision==0.6.0+cu101) (7.0.0)\n", - "Looking in links: https://openmmlab.oss-accelerate.aliyuncs.com/mmcv/dist/index.html\n", + "Looking in links: https://download.openmmlab.com/mmcv/dist/index.html\n", "Collecting mmcv-full==latest+torch1.5.0+cu101\n", - " Using cached https://openmmlab.oss-accelerate.aliyuncs.com/mmcv/dist/latest/torch1.5.0/cu101/mmcv_full-latest%2Btorch1.5.0%2Bcu101-cp36-cp36m-manylinux1_x86_64.whl\n", + " Using cached https://download.openmmlab.com/mmcv/dist/latest/torch1.5.0/cu101/mmcv_full-latest%2Btorch1.5.0%2Bcu101-cp36-cp36m-manylinux1_x86_64.whl\n", "Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (1.18.5)\n", "Requirement already satisfied: addict in /usr/local/lib/python3.6/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (2.2.1)\n", "Requirement already satisfied: yapf in /usr/local/lib/python3.6/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (0.30.0)\n", diff --git a/docker/Dockerfile b/docker/Dockerfile index 65f03b4313..2612f6fb9c 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -14,7 +14,7 @@ RUN apt-get update && apt-get install -y libglib2.0-0 libsm6 libxrender-dev libx # Install mmsegmentation RUN conda clean --all -RUN pip install mmcv-full==latest+torch1.5.0+cu101 -f https://openmmlab.oss-accelerate.aliyuncs.com/mmcv/dist/index.html +RUN pip install mmcv-full==latest+torch1.5.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html RUN git clone https://github.com/open-mmlab/mmsegmenation.git /mmsegmentation WORKDIR /mmsegmentation RUN pip install -r requirements/build.txt diff --git a/docs/install.md b/docs/install.md index a483023659..46569bff78 100644 --- a/docs/install.md +++ b/docs/install.md @@ -30,7 +30,7 @@ Either `mmcv` or `mmcv-full` is compatible with MMSegmentation, but for methods The pre-build mmcv-full (with PyTorch 1.5 and CUDA 10.1) can be installed by running: (other available versions could be found [here](https://mmcv.readthedocs.io/en/latest/#install-with-pip)) ```shell -pip install mmcv-full==latest+torch1.5.0+cu101 -f https://openmmlab.oss-accelerate.aliyuncs.com/mmcv/dist/index.html +pip install mmcv-full==latest+torch1.5.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html ``` **Install mmcv for Windows (Experimental):** @@ -104,7 +104,7 @@ conda create -n open-mmlab python=3.7 -y conda activate open-mmlab conda install pytorch=1.6.0 torchvision cudatoolkit=10.1 -c pytorch -pip install mmcv-full==latest+torch1.5.0+cu101 -f https://openmmlab.oss-accelerate.aliyuncs.com/mmcv/dist/index.html +pip install mmcv-full==latest+torch1.5.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html git clone https://github.com/open-mmlab/mmsegmentation.git cd mmsegmentation pip install -e . # or "python setup.py develop" From 2610a11981fb06b3f1ae0d990f8acaf8f9ba5d1d Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Mon, 28 Sep 2020 00:33:51 +0800 Subject: [PATCH 044/706] [Enhance] Refactor inverted residual (#164) * [Enhance] Unifed InvertedResidual in MobileNetV2 and FastSCNN * [Enhance] Unifed InvertedResidual in MobileNetV2 and FastSCNN --- configs/fastscnn/README.md | 2 +- .../fast_scnn_4x8_80k_lr0.12_pascal.py | 70 -------------- mmseg/models/backbones/fast_scnn.py | 2 +- mmseg/models/backbones/mobilenet_v2.py | 92 +------------------ mmseg/models/utils/__init__.py | 5 +- .../utils/inverted_residual.py} | 63 ++++++++----- mmseg/utils/__init__.py | 3 +- .../test_inverted_residual_module.py | 2 +- 8 files changed, 50 insertions(+), 189 deletions(-) delete mode 100644 configs/fastscnn/fast_scnn_4x8_80k_lr0.12_pascal.py rename mmseg/{utils/inverted_residual_module.py => models/utils/inverted_residual.py} (53%) diff --git a/configs/fastscnn/README.md b/configs/fastscnn/README.md index dbfc0e4275..3d8f778b92 100644 --- a/configs/fastscnn/README.md +++ b/configs/fastscnn/README.md @@ -15,4 +15,4 @@ ### Cityscapes | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |------------|-----------|-----------|--------:|----------|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Fast-SCNN | Fast-SCNN | 512x1024 | 80000 | 8.4 | 63.61 | 69.06 | - | [model](https://openmmlab.oss-cn-hangzhou.aliyuncs.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_4x8_80k_lr0.12_cityscapes-cae6c46a.pth) | [log](https://openmmlab.oss-cn-hangzhou.aliyuncs.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_4x8_80k_lr0.12_cityscapes-20200807_165744.log.json) | +| Fast-SCNN | Fast-SCNN | 512x1024 | 80000 | 8.4 | 63.61 | 69.06 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_4x8_80k_lr0.12_cityscapes-f5096c79.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_4x8_80k_lr0.12_cityscapes-20200807_165744.log.json) | diff --git a/configs/fastscnn/fast_scnn_4x8_80k_lr0.12_pascal.py b/configs/fastscnn/fast_scnn_4x8_80k_lr0.12_pascal.py deleted file mode 100644 index 23c2ea996d..0000000000 --- a/configs/fastscnn/fast_scnn_4x8_80k_lr0.12_pascal.py +++ /dev/null @@ -1,70 +0,0 @@ -_base_ = [ - '../_base_/models/fast_scnn.py', '../_base_/datasets/pascal_voc12.py', - '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' -] - -# Re-config the data sampler. -data = dict(samples_per_gpu=8, workers_per_gpu=4) - -# Re-config the optimizer. -optimizer = dict(type='SGD', lr=0.12, momentum=0.9, weight_decay=4e-5) - -# update num_classes of the segmentor. -# model settings -norm_cfg = dict(type='SyncBN', requires_grad=True, momentum=0.01) -model = dict( - type='EncoderDecoder', - backbone=dict( - type='FastSCNN', - downsample_dw_channels=(32, 48), - global_in_channels=64, - global_block_channels=(64, 96, 128), - global_block_strides=(2, 2, 1), - global_out_channels=128, - higher_in_channels=64, - lower_in_channels=128, - fusion_out_channels=128, - out_indices=(0, 1, 2), - norm_cfg=norm_cfg, - align_corners=False), - decode_head=dict( - type='DepthwiseSeparableFCNHead', - in_channels=128, - channels=128, - concat_input=False, - num_classes=21, - in_index=-1, - norm_cfg=norm_cfg, - align_corners=False, - loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.)), - auxiliary_head=[ - dict( - type='FCNHead', - in_channels=128, - channels=32, - num_convs=1, - num_classes=21, - in_index=-2, - norm_cfg=norm_cfg, - concat_input=False, - align_corners=False, - loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), - dict( - type='FCNHead', - in_channels=64, - channels=32, - num_convs=1, - num_classes=21, - in_index=-3, - norm_cfg=norm_cfg, - concat_input=False, - align_corners=False, - loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), - ]) - -# model training and testing settings -train_cfg = dict() -test_cfg = dict(mode='whole') diff --git a/mmseg/models/backbones/fast_scnn.py b/mmseg/models/backbones/fast_scnn.py index 4aaec2212d..ee115ffda1 100644 --- a/mmseg/models/backbones/fast_scnn.py +++ b/mmseg/models/backbones/fast_scnn.py @@ -6,8 +6,8 @@ from mmseg.models.decode_heads.psp_head import PPM from mmseg.ops import resize -from mmseg.utils import InvertedResidual from ..builder import BACKBONES +from ..utils.inverted_residual import InvertedResidual class LearningToDownsample(nn.Module): diff --git a/mmseg/models/backbones/mobilenet_v2.py b/mmseg/models/backbones/mobilenet_v2.py index 5fff485f0a..5820b4b13c 100644 --- a/mmseg/models/backbones/mobilenet_v2.py +++ b/mmseg/models/backbones/mobilenet_v2.py @@ -1,102 +1,12 @@ import logging import torch.nn as nn -import torch.utils.checkpoint as cp from mmcv.cnn import ConvModule, constant_init, kaiming_init from mmcv.runner import load_checkpoint from torch.nn.modules.batchnorm import _BatchNorm from ..builder import BACKBONES -from ..utils import make_divisible - - -class InvertedResidual(nn.Module): - """InvertedResidual block for MobileNetV2. - - Args: - in_channels (int): The input channels of the InvertedResidual block. - out_channels (int): The output channels of the InvertedResidual block. - stride (int): Stride of the middle (first) 3x3 convolution. - expand_ratio (int): Adjusts number of channels of the hidden layer - in InvertedResidual by this amount. - dilation (int): Dilation rate of depthwise conv. Default: 1 - conv_cfg (dict): Config dict for convolution layer. - Default: None, which means using conv2d. - norm_cfg (dict): Config dict for normalization layer. - Default: dict(type='BN'). - act_cfg (dict): Config dict for activation layer. - Default: dict(type='ReLU6'). - with_cp (bool): Use checkpoint or not. Using checkpoint will save some - memory while slowing down the training speed. Default: False. - - Returns: - Tensor: The output tensor - """ - - def __init__(self, - in_channels, - out_channels, - stride, - expand_ratio, - dilation=1, - conv_cfg=None, - norm_cfg=dict(type='BN'), - act_cfg=dict(type='ReLU6'), - with_cp=False): - super(InvertedResidual, self).__init__() - self.stride = stride - assert stride in [1, 2], f'stride must in [1, 2]. ' \ - f'But received {stride}.' - self.with_cp = with_cp - self.use_res_connect = self.stride == 1 and in_channels == out_channels - hidden_dim = int(round(in_channels * expand_ratio)) - - layers = [] - if expand_ratio != 1: - layers.append( - ConvModule( - in_channels=in_channels, - out_channels=hidden_dim, - kernel_size=1, - conv_cfg=conv_cfg, - norm_cfg=norm_cfg, - act_cfg=act_cfg)) - layers.extend([ - ConvModule( - in_channels=hidden_dim, - out_channels=hidden_dim, - kernel_size=3, - stride=stride, - padding=dilation, - dilation=dilation, - groups=hidden_dim, - conv_cfg=conv_cfg, - norm_cfg=norm_cfg, - act_cfg=act_cfg), - ConvModule( - in_channels=hidden_dim, - out_channels=out_channels, - kernel_size=1, - conv_cfg=conv_cfg, - norm_cfg=norm_cfg, - act_cfg=None) - ]) - self.conv = nn.Sequential(*layers) - - def forward(self, x): - - def _inner_forward(x): - if self.use_res_connect: - return x + self.conv(x) - else: - return self.conv(x) - - if self.with_cp and x.requires_grad: - out = cp.checkpoint(_inner_forward, x) - else: - out = _inner_forward(x) - - return out +from ..utils import InvertedResidual, make_divisible @BACKBONES.register_module() diff --git a/mmseg/models/utils/__init__.py b/mmseg/models/utils/__init__.py index bea300c3ac..969a0c7d98 100644 --- a/mmseg/models/utils/__init__.py +++ b/mmseg/models/utils/__init__.py @@ -1,5 +1,8 @@ +from .inverted_residual import InvertedResidual from .make_divisible import make_divisible from .res_layer import ResLayer from .self_attention_block import SelfAttentionBlock -__all__ = ['ResLayer', 'SelfAttentionBlock', 'make_divisible'] +__all__ = [ + 'ResLayer', 'SelfAttentionBlock', 'make_divisible', 'InvertedResidual' +] diff --git a/mmseg/utils/inverted_residual_module.py b/mmseg/models/utils/inverted_residual.py similarity index 53% rename from mmseg/utils/inverted_residual_module.py rename to mmseg/models/utils/inverted_residual.py index ff33a3604c..c3de83aa2f 100644 --- a/mmseg/utils/inverted_residual_module.py +++ b/mmseg/models/utils/inverted_residual.py @@ -1,22 +1,29 @@ -from mmcv.cnn import ConvModule, build_norm_layer -from torch import nn +from mmcv.cnn import ConvModule +from torch import nn as nn +from torch.utils import checkpoint as cp class InvertedResidual(nn.Module): - """Inverted residual module. + """InvertedResidual block for MobileNetV2. Args: in_channels (int): The input channels of the InvertedResidual block. out_channels (int): The output channels of the InvertedResidual block. stride (int): Stride of the middle (first) 3x3 convolution. - expand_ratio (int): adjusts number of channels of the hidden layer + expand_ratio (int): Adjusts number of channels of the hidden layer in InvertedResidual by this amount. + dilation (int): Dilation rate of depthwise conv. Default: 1 conv_cfg (dict): Config dict for convolution layer. Default: None, which means using conv2d. norm_cfg (dict): Config dict for normalization layer. Default: dict(type='BN'). act_cfg (dict): Config dict for activation layer. Default: dict(type='ReLU6'). + with_cp (bool): Use checkpoint or not. Using checkpoint will save some + memory while slowing down the training speed. Default: False. + + Returns: + Tensor: The output tensor """ def __init__(self, @@ -27,47 +34,59 @@ def __init__(self, dilation=1, conv_cfg=None, norm_cfg=dict(type='BN'), - act_cfg=dict(type='ReLU6')): + act_cfg=dict(type='ReLU6'), + with_cp=False): super(InvertedResidual, self).__init__() self.stride = stride - assert stride in [1, 2] - + assert stride in [1, 2], f'stride must in [1, 2]. ' \ + f'But received {stride}.' + self.with_cp = with_cp + self.use_res_connect = self.stride == 1 and in_channels == out_channels hidden_dim = int(round(in_channels * expand_ratio)) - self.use_res_connect = self.stride == 1 \ - and in_channels == out_channels layers = [] if expand_ratio != 1: - # pw layers.append( ConvModule( - in_channels, - hidden_dim, + in_channels=in_channels, + out_channels=hidden_dim, kernel_size=1, conv_cfg=conv_cfg, norm_cfg=norm_cfg, act_cfg=act_cfg)) layers.extend([ - # dw ConvModule( - hidden_dim, - hidden_dim, + in_channels=hidden_dim, + out_channels=hidden_dim, kernel_size=3, - padding=dilation, stride=stride, + padding=dilation, dilation=dilation, groups=hidden_dim, conv_cfg=conv_cfg, norm_cfg=norm_cfg, act_cfg=act_cfg), - # pw-linear - nn.Conv2d(hidden_dim, out_channels, 1, 1, 0, bias=False), - build_norm_layer(norm_cfg, out_channels)[1], + ConvModule( + in_channels=hidden_dim, + out_channels=out_channels, + kernel_size=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=None) ]) self.conv = nn.Sequential(*layers) def forward(self, x): - if self.use_res_connect: - return x + self.conv(x) + + def _inner_forward(x): + if self.use_res_connect: + return x + self.conv(x) + else: + return self.conv(x) + + if self.with_cp and x.requires_grad: + out = cp.checkpoint(_inner_forward, x) else: - return self.conv(x) + out = _inner_forward(x) + + return out diff --git a/mmseg/utils/__init__.py b/mmseg/utils/__init__.py index 5b54059565..ac489e2dbb 100644 --- a/mmseg/utils/__init__.py +++ b/mmseg/utils/__init__.py @@ -1,5 +1,4 @@ from .collect_env import collect_env -from .inverted_residual_module import InvertedResidual from .logger import get_root_logger -__all__ = ['get_root_logger', 'collect_env', 'InvertedResidual'] +__all__ = ['get_root_logger', 'collect_env'] diff --git a/tests/test_utils/test_inverted_residual_module.py b/tests/test_utils/test_inverted_residual_module.py index 827c105280..279dcf442a 100644 --- a/tests/test_utils/test_inverted_residual_module.py +++ b/tests/test_utils/test_inverted_residual_module.py @@ -1,7 +1,7 @@ import pytest import torch -from mmseg.utils import InvertedResidual +from mmseg.models.utils import InvertedResidual def test_inv_residual(): From 2de01c0c60636369c1ae40f90000e3ca675f3b0d Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Tue, 29 Sep 2020 19:54:32 +0800 Subject: [PATCH 045/706] update docker (#149) * update docker * Update Dockerfile --- README.md | 4 +++- docker/Dockerfile | 7 ++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 16fd84c440..7a929d132f 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,8 @@ [![badge](https://github.com/open-mmlab/mmsegmentation/workflows/build/badge.svg)](https://github.com/open-mmlab/mmsegmentation/actions) [![codecov](https://codecov.io/gh/open-mmlab/mmsegmentation/branch/master/graph/badge.svg)](https://codecov.io/gh/open-mmlab/mmsegmentation) [![license](https://img.shields.io/github/license/open-mmlab/mmsegmentation.svg)](https://github.com/open-mmlab/mmsegmentation/blob/master/LICENSE) +[![issue resolution](https://isitmaintained.com/badge/resolution/open-mmlab/mmsegmentation.svg)](https://github.com/open-mmlab/mmsegmentation/issues) +[![open issues](https://isitmaintained.com/badge/open/open-mmlab/mmsegmentation.svg)](https://github.com/open-mmlab/mmsegmentation/issues) Documentation: https://mmsegmentation.readthedocs.io/ @@ -16,7 +18,7 @@ Documentation: https://mmsegmentation.readthedocs.io/ MMSegmentation is an open source semantic segmentation toolbox based on PyTorch. It is a part of the OpenMMLab project. -The master branch works with **PyTorch 1.3 to 1.5**. +The master branch works with **PyTorch 1.3 to 1.6**. ![demo image](resources/seg_demo.gif) diff --git a/docker/Dockerfile b/docker/Dockerfile index 2612f6fb9c..8e090f73a9 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,4 @@ -ARG PYTORCH="1.5" +ARG PYTORCH="1.6.0" ARG CUDA="10.1" ARG CUDNN="7" @@ -8,13 +8,14 @@ ENV TORCH_CUDA_ARCH_LIST="6.0 6.1 7.0+PTX" ENV TORCH_NVCC_FLAGS="-Xfatbin -compress-all" ENV CMAKE_PREFIX_PATH="$(dirname $(which conda))/../" -RUN apt-get update && apt-get install -y libglib2.0-0 libsm6 libxrender-dev libxext6 \ +RUN apt-get update && apt-get install -y git ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* # Install mmsegmentation RUN conda clean --all -RUN pip install mmcv-full==latest+torch1.5.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html + +RUN pip install mmcv-full==latest+torch1.6.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html RUN git clone https://github.com/open-mmlab/mmsegmenation.git /mmsegmentation WORKDIR /mmsegmentation RUN pip install -r requirements/build.txt From cc01f0d07a79d5376eca3f74af70f303ef4ceeef Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Tue, 29 Sep 2020 20:00:48 +0800 Subject: [PATCH 046/706] [Feature] Add OS16 DeepLab (#154) * Add D16-MG124 models * Use MMCV DepthSepConv * add OHEM * add warmup * fixed test * fixed test * change to bs 16 * revert config * add models --- configs/deeplabv3/README.md | 2 ++ ...eeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py | 11 +++++++++++ ...eeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py | 11 +++++++++++ configs/deeplabv3plus/README.md | 6 +++++- ...abv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py | 11 +++++++++++ ...abv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py | 11 +++++++++++ 6 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py create mode 100644 configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py create mode 100644 configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py create mode 100644 configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py diff --git a/configs/deeplabv3/README.md b/configs/deeplabv3/README.md index 8b465d3d18..01f9743e83 100644 --- a/configs/deeplabv3/README.md +++ b/configs/deeplabv3/README.md @@ -25,6 +25,8 @@ Note: `D-8` here corresponding to the output stride 8 setting for DeepLab series | DeepLabV3 | R-101-D8 | 512x1024 | 80000 | - | - | 80.20 | 81.21 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes/deeplabv3_r101-d8_512x1024_80k_cityscapes_20200606_113503-9e428899.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes/deeplabv3_r101-d8_512x1024_80k_cityscapes_20200606_113503.log.json) | | DeepLabV3 | R-50-D8 | 769x769 | 80000 | - | - | 79.89 | 81.06 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes/deeplabv3_r50-d8_769x769_80k_cityscapes_20200606_221338-788d6228.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes/deeplabv3_r50-d8_769x769_80k_cityscapes_20200606_221338.log.json) | | DeepLabV3 | R-101-D8 | 769x769 | 80000 | - | - | 79.67 | 80.81 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes/deeplabv3_r101-d8_769x769_80k_cityscapes_20200607_013353-60e95418.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes/deeplabv3_r101-d8_769x769_80k_cityscapes_20200607_013353.log.json) | +| DeepLabV3 | R-101-D16-MG124 | 512x1024 | 40000 | 4.7 | - 6.96 | 76.71 | 78.63 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes_20200908_005644-67b0c992.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes-20200908_005644.log.json) | +| DeepLabV3 | R-101-D16-MG124 | 512x1024 | 80000 | - | - | 78.36 | 79.84 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes_20200908_005644-57bb8425.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes-20200908_005644.log.json) | ### ADE20K | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | diff --git a/configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py b/configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py new file mode 100644 index 0000000000..f20f260e23 --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py @@ -0,0 +1,11 @@ +_base_ = './deeplabv3_r50-d8_512x1024_40k_cityscapes.py' +model = dict( + pretrained='open-mmlab://resnet101_v1c', + backbone=dict( + depth=101, + dilations=(1, 1, 1, 2), + strides=(1, 2, 2, 1), + multi_grid=(1, 2, 4)), + decode_head=dict( + dilations=(1, 6, 12, 18), + sampler=dict(type='OHEMPixelSampler', min_kept=100000))) diff --git a/configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py b/configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..de4a8a5e9f --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py @@ -0,0 +1,11 @@ +_base_ = './deeplabv3_r50-d8_512x1024_80k_cityscapes.py' +model = dict( + pretrained='open-mmlab://resnet101_v1c', + backbone=dict( + depth=101, + dilations=(1, 1, 1, 2), + strides=(1, 2, 2, 1), + multi_grid=(1, 2, 4)), + decode_head=dict( + dilations=(1, 6, 12, 18), + sampler=dict(type='OHEMPixelSampler', min_kept=100000))) diff --git a/configs/deeplabv3plus/README.md b/configs/deeplabv3plus/README.md index 72875e3880..cb25bc0ac2 100644 --- a/configs/deeplabv3plus/README.md +++ b/configs/deeplabv3plus/README.md @@ -12,7 +12,9 @@ ## Results and models -Note: `D-8` here corresponding to the output stride 8 setting for DeepLab series. +Note: +`D-8`/`D-16` here corresponding to the output stride 8/16 setting for DeepLab series. +`MG-124` stands for multi-grid dilation in the last stage of ResNet. ### Cityscapes | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | @@ -25,6 +27,8 @@ Note: `D-8` here corresponding to the output stride 8 setting for DeepLab series | DeepLabV3+ | R-101-D8 | 512x1024 | 80000 | - | - | 80.97 | 82.03 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143-068fcfe9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143.log.json) | | DeepLabV3+ | R-50-D8 | 769x769 | 80000 | - | - | 79.83 | 81.48 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes/deeplabv3plus_r50-d8_769x769_80k_cityscapes_20200606_210233-0e9dfdc4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes/deeplabv3plus_r50-d8_769x769_80k_cityscapes_20200606_210233.log.json) | | DeepLabV3+ | R-101-D8 | 769x769 | 80000 | - | - | 80.98 | 82.18 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes/deeplabv3plus_r101-d8_769x769_80k_cityscapes_20200607_000405-a7573d20.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes/deeplabv3plus_r101-d8_769x769_80k_cityscapes_20200607_000405.log.json) | +| DeepLabV3+ | R-101-D16-MG124 | 512x1024 | 40000 | 5.8 | 7.48 | 79.09 | 80.36 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes_20200908_005644-cf9ce186.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes-20200908_005644.log.json) | +| DeepLabV3+ | R-101-D16-MG124 | 512x1024 | 80000 | 9.9 | - | 79.90 | 81.33 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes_20200908_005644-ee6158e0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes-20200908_005644.log.json) | ### ADE20K | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | diff --git a/configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py b/configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py new file mode 100644 index 0000000000..bf39d2f12b --- /dev/null +++ b/configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py @@ -0,0 +1,11 @@ +_base_ = './deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py' +model = dict( + pretrained='open-mmlab://resnet101_v1c', + backbone=dict( + depth=101, + dilations=(1, 1, 1, 2), + strides=(1, 2, 2, 1), + multi_grid=(1, 2, 4)), + decode_head=dict( + dilations=(1, 6, 12, 18), + sampler=dict(type='OHEMPixelSampler', min_kept=100000))) diff --git a/configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py b/configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..c53ec41baf --- /dev/null +++ b/configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py @@ -0,0 +1,11 @@ +_base_ = './deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py' +model = dict( + pretrained='open-mmlab://resnet101_v1c', + backbone=dict( + depth=101, + dilations=(1, 1, 1, 2), + strides=(1, 2, 2, 1), + multi_grid=(1, 2, 4)), + decode_head=dict( + dilations=(1, 6, 12, 18), + sampler=dict(type='OHEMPixelSampler', min_kept=100000))) From 93a2456defbac9ae8a0041584e8397cd977ea531 Mon Sep 17 00:00:00 2001 From: Lei Yang Date: Wed, 30 Sep 2020 10:11:34 +0800 Subject: [PATCH 047/706] Remove redundancies in pytorch2onnx (#160) * rm redundancies * re-add some packages --- tools/pytorch2onnx.py | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/tools/pytorch2onnx.py b/tools/pytorch2onnx.py index b24536678a..f22d4d3786 100644 --- a/tools/pytorch2onnx.py +++ b/tools/pytorch2onnx.py @@ -5,11 +5,11 @@ import numpy as np import onnxruntime as rt import torch -from torch import nn import torch._C import torch.serialization from mmcv.onnx import register_extra_symbolics from mmcv.runner import load_checkpoint +from torch import nn from mmseg.models import build_segmentor @@ -186,11 +186,6 @@ def parse_args(): # convert SyncBN to BN segmentor = _convert_batchnorm(segmentor) - if isinstance(segmentor.decode_head, nn.ModuleList): - num_classes = segmentor.decode_head[-1].num_classes - else: - num_classes = segmentor.decode_head.num_classes - if args.checkpoint: load_checkpoint(segmentor, args.checkpoint, map_location='cpu') From e7240c8cf1c97d50518ff5c2758a25724dc08107 Mon Sep 17 00:00:00 2001 From: David de la Iglesia Castro Date: Wed, 30 Sep 2020 12:02:08 +0200 Subject: [PATCH 048/706] Support custom palette (#157) * Fix split * Update tests/test_data/test_dataset.py Co-authored-by: Jerry Jiarui XU Co-authored-by: Jerry Jiarui XU --- mmseg/datasets/custom.py | 26 +++++++++++++++++++------- tests/test_data/test_dataset.py | 30 ++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 7 deletions(-) diff --git a/mmseg/datasets/custom.py b/mmseg/datasets/custom.py index f055faee28..7e42d6622c 100644 --- a/mmseg/datasets/custom.py +++ b/mmseg/datasets/custom.py @@ -60,6 +60,10 @@ class CustomDataset(Dataset): Default: False classes (str | Sequence[str], optional): Specify classes to load. If is None, ``cls.CLASSES`` will be used. Default: None. + palette (Sequence[Sequence[int]]] | np.ndarray | None): + The palette of segmentation map. If None is given, and + self.PALETTE is None, random palette will be generated. + Default: None """ CLASSES = None @@ -77,7 +81,8 @@ def __init__(self, test_mode=False, ignore_index=255, reduce_zero_label=False, - classes=None): + classes=None, + palette=None): self.pipeline = Compose(pipeline) self.img_dir = img_dir self.img_suffix = img_suffix @@ -89,7 +94,8 @@ def __init__(self, self.ignore_index = ignore_index self.reduce_zero_label = reduce_zero_label self.label_map = None - self.CLASSES, self.PALETTE = self.get_classes_and_palette(classes) + self.CLASSES, self.PALETTE = self.get_classes_and_palette( + classes, palette) # join paths if data_root is specified if self.data_root is not None: @@ -241,7 +247,7 @@ def get_gt_seg_maps(self): return gt_seg_maps - def get_classes_and_palette(self, classes=None): + def get_classes_and_palette(self, classes=None, palette=None): """Get class names of current dataset. Args: @@ -250,6 +256,9 @@ def get_classes_and_palette(self, classes=None): string, take it as a file name. The file contains the name of classes where each line contains one class name. If classes is a tuple or list, override the CLASSES defined by the dataset. + palette (Sequence[Sequence[int]]] | np.ndarray | None): + The palette of segmentation map. If None is given, random + palette will be generated. Default: None """ if classes is None: self.custom_classes = False @@ -278,11 +287,11 @@ def get_classes_and_palette(self, classes=None): else: self.label_map[i] = classes.index(c) - palette = self.get_palette_for_custom_classes() + palette = self.get_palette_for_custom_classes(class_names, palette) return class_names, palette - def get_palette_for_custom_classes(self): + def get_palette_for_custom_classes(self, class_names, palette=None): if self.label_map is not None: # return subset of palette @@ -293,8 +302,11 @@ def get_palette_for_custom_classes(self): palette.append(self.PALETTE[old_id]) palette = type(self.PALETTE)(palette) - else: - palette = self.PALETTE + elif palette is None: + if self.PALETTE is None: + palette = np.random.randint(0, 255, size=(len(class_names), 3)) + else: + palette = self.PALETTE return palette diff --git a/tests/test_data/test_dataset.py b/tests/test_data/test_dataset.py index cb178b2b01..d7e44f50ec 100644 --- a/tests/test_data/test_dataset.py +++ b/tests/test_data/test_dataset.py @@ -231,3 +231,33 @@ def test_custom_classes_override_default(dataset, classes): test_mode=True) assert custom_dataset.CLASSES == original_classes + + +@patch('mmseg.datasets.CustomDataset.load_annotations', MagicMock) +@patch('mmseg.datasets.CustomDataset.__getitem__', + MagicMock(side_effect=lambda idx: idx)) +def test_custom_dataset_random_palette_is_generated(): + dataset = CustomDataset( + pipeline=[], + img_dir=MagicMock(), + split=MagicMock(), + classes=('bus', 'car'), + test_mode=True) + assert len(dataset.PALETTE) == 2 + for class_color in dataset.PALETTE: + assert len(class_color) == 3 + assert all(x >= 0 and x <= 255 for x in class_color) + + +@patch('mmseg.datasets.CustomDataset.load_annotations', MagicMock) +@patch('mmseg.datasets.CustomDataset.__getitem__', + MagicMock(side_effect=lambda idx: idx)) +def test_custom_dataset_custom_palette(): + dataset = CustomDataset( + pipeline=[], + img_dir=MagicMock(), + split=MagicMock(), + classes=('bus', 'car'), + palette=[[100, 100, 100], [200, 200, 200]], + test_mode=True) + assert tuple(dataset.PALETTE) == tuple([[100, 100, 100], [200, 200, 200]]) From c13e1d5e05d057c6c22b593341d1f360c423676a Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Wed, 7 Oct 2020 19:50:16 +0800 Subject: [PATCH 049/706] [Improvement] Add markdown linter and fix linting errors (#171) * [Improvement] Add markdown linter and fix linting errors * fixed pip --- .github/CONTRIBUTING.md | 12 ++++--- .github/ISSUE_TEMPLATE/error-report.md | 15 +++++--- .github/ISSUE_TEMPLATE/feature_request.md | 2 +- .github/workflows/build.yml | 18 +++++----- .pre-commit-config.yaml | 5 +++ README.md | 2 ++ configs/ann/README.md | 6 +++- configs/ccnet/README.md | 6 +++- configs/danet/README.md | 6 +++- configs/deeplabv3/README.md | 7 +++- configs/deeplabv3plus/README.md | 7 +++- configs/dnlnet/README.md | 4 +-- configs/emanet/README.md | 4 ++- configs/encnet/README.md | 5 ++- configs/fastscnn/README.md | 4 ++- configs/fcn/README.md | 7 +++- configs/fp16/README.md | 4 ++- configs/gcnet/README.md | 6 +++- configs/hrnet/README.md | 7 +++- configs/mobilenet_v2/README.md | 5 +-- configs/nonlocal_net/README.md | 6 +++- configs/ocrnet/README.md | 7 ++-- ...net_r101-d8_512x1024_40k_b16_cityscapes.py | 6 ++-- ...rnet_r101-d8_512x1024_40k_b8_cityscapes.py | 6 ++-- ...net_r101-d8_512x1024_80k_b16_cityscapes.py | 6 ++-- configs/point_rend/README.md | 3 ++ configs/psanet/README.md | 6 +++- configs/pspnet/README.md | 7 +++- configs/resnest/README.md | 4 ++- configs/sem_fpn/README.md | 5 ++- configs/upernet/README.md | 6 +++- docs/changelog.md | 17 ++++++++-- docs/config.md | 4 +++ docs/getting_started.md | 21 +++++++----- docs/install.md | 13 ++++--- docs/model_zoo.md | 34 ++++++++++--------- docs/tutorials/data_pipeline.md | 15 ++++++++ docs/tutorials/new_dataset.md | 14 ++++++-- docs/tutorials/training_tricks.md | 10 +++++- 39 files changed, 228 insertions(+), 94 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 97e2768453..112527ec88 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -13,16 +13,19 @@ All kinds of contributions are welcome, including but not limited to the followi 4. create a PR Note + - If you plan to add some new features that involve large changes, it is encouraged to open an issue for discussion first. - If you are the author of some papers and would like to include your method to mmsegmentation, -please contact Kai Chen (chenkaidev[at]gmail[dot]com). We will much appreciate your contribution. + please contact Kai Chen (chenkaidev[at]gmail[dot]com). We will much appreciate your contribution. ## Code style ### Python + We adopt [PEP8](https://www.python.org/dev/peps/pep-0008/) as the preferred code style. We use the following tools for linting and formatting: + - [flake8](http://flake8.pycqa.org/en/latest/): linter - [yapf](https://github.com/google/yapf): formatter - [isort](https://github.com/timothycrosley/isort): sort imports @@ -35,19 +38,20 @@ The config for a pre-commit hook is stored in [.pre-commit-config](../.pre-commi After you clone the repository, you will need to install initialize pre-commit hook. -``` +```shell pip install -U pre-commit ``` From the repository folder -``` + +```shell pre-commit install ``` After this on every commit check code linters and formatter will be enforced. - >Before you create a PR, make sure that your code lints and is formatted by yapf. ### C++ and CUDA + We follow the [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html). diff --git a/.github/ISSUE_TEMPLATE/error-report.md b/.github/ISSUE_TEMPLATE/error-report.md index 1b129c1574..73a63b7d10 100644 --- a/.github/ISSUE_TEMPLATE/error-report.md +++ b/.github/ISSUE_TEMPLATE/error-report.md @@ -10,6 +10,7 @@ assignees: '' Thanks for your error report and we appreciate it a lot. **Checklist** + 1. I have searched related issues but cannot get the expected help. 2. The bug has not been fixed in the latest version. @@ -17,10 +18,13 @@ Thanks for your error report and we appreciate it a lot. A clear and concise description of what the bug is. **Reproduction** + 1. What command or script did you run? -``` -A placeholder for the command. -``` + + ```none + A placeholder for the command. + ``` + 2. Did you make any modifications on the code or config? Did you understand what you have modified? 3. What dataset did you use? @@ -32,10 +36,13 @@ A placeholder for the command. - Other environment variables that may be related (such as `$PATH`, `$LD_LIBRARY_PATH`, `$PYTHONPATH`, etc.) **Error traceback** + If applicable, paste the error trackback here. -``` + +```none A placeholder for trackback. ``` **Bug fix** + If you have already identified the reason, you can provide the information here. If you are willing to create a PR to fix it, please also leave a comment here and that would be much appreciated! diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 33f9d5f235..ec59b783d9 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -7,7 +7,7 @@ assignees: '' --- -**Describe the feature** +# Describe the feature **Motivation** A clear and concise description of the motivation of the feature. diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 037a024875..5093c05254 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,18 +11,16 @@ jobs: uses: actions/setup-python@v1 with: python-version: 3.7 - - name: Install linting dependencies + - name: Install pre-commit hook run: | - python -m pip install --upgrade pip - pip install flake8 isort==4.3.21 yapf interrogate - - name: Lint with flake8 - run: flake8 . - - name: Lint with isort - run: isort --recursive --check-only --diff mmseg/ tests/ examples/ - - name: Format python codes with yapf - run: yapf -r -d mmseg/ tests/ examples/ + pip install pre-commit + pre-commit install + - name: Linting + run: pre-commit run --all-files - name: Check docstring - run: interrogate -v --ignore-init-method --ignore-module --ignore-nested-functions --exclude mmseg/ops --ignore-regex "__repr__" --fail-under 80 mmseg + run: | + pip install interrogate + interrogate -v --ignore-init-method --ignore-module --ignore-nested-functions --exclude mmseg/ops --ignore-regex "__repr__" --fail-under 80 mmseg build: env: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 9e6d30895b..d3395dc284 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -28,6 +28,11 @@ repos: args: ["--remove"] - id: mixed-line-ending args: ["--fix=lf"] + - repo: https://github.com/jumanjihouse/pre-commit-hooks + rev: 2.1.4 + hooks: + - id: markdownlint + args: ["-r", "~MD002,~MD013,~MD029,~MD033,~MD034,~MD036"] - repo: https://github.com/myint/docformatter rev: v1.3.1 hooks: diff --git a/README.md b/README.md index 7a929d132f..4595f8633a 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,7 @@ Please refer to [changelog.md](docs/changelog.md) for details and release histor Results and models are available in the [model zoo](docs/model_zoo.md). Supported backbones: + - [x] ResNet - [x] ResNeXt - [x] [HRNet](configs/hrnet/README.md) @@ -61,6 +62,7 @@ Supported backbones: - [x] [MobileNetV2](configs/mobilenet_v2/README.md) Supported methods: + - [x] [FCN](configs/fcn) - [x] [PSPNet](configs/pspnet) - [x] [DeepLabV3](configs/deeplabv3) diff --git a/configs/ann/README.md b/configs/ann/README.md index 523eaa8a3c..032766c0c9 100644 --- a/configs/ann/README.md +++ b/configs/ann/README.md @@ -1,7 +1,8 @@ # Asymmetric Non-local Neural Networks for Semantic Segmentation ## Introduction -``` + +```latex @inproceedings{annn, author = {Zhen Zhu and Mengde Xu and @@ -18,6 +19,7 @@ ## Results and models ### Cityscapes + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ANN | R-50-D8 | 512x1024 | 40000 | 6 | 3.71 | 77.40 | 78.57 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_40k_cityscapes/ann_r50-d8_512x1024_40k_cityscapes_20200605_095211-049fc292.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_40k_cityscapes/ann_r50-d8_512x1024_40k_cityscapes_20200605_095211.log.json) | @@ -30,6 +32,7 @@ | ANN | R-101-D8 | 769x769 | 80000 | - | - | 78.80 | 80.34 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_80k_cityscapes/ann_r101-d8_769x769_80k_cityscapes_20200607_013713-a9d4be8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_80k_cityscapes/ann_r101-d8_769x769_80k_cityscapes_20200607_013713.log.json) | ### ADE20K + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ANN | R-50-D8 | 512x512 | 80000 | 9.1 | 21.01 | 41.01 | 42.30 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_80k_ade20k/ann_r50-d8_512x512_80k_ade20k_20200615_014818-26f75e11.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_80k_ade20k/ann_r50-d8_512x512_80k_ade20k_20200615_014818.log.json) | @@ -38,6 +41,7 @@ | ANN | R-101-D8 | 512x512 | 160000 | - | - | 42.94 | 44.06 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_160k_ade20k/ann_r101-d8_512x512_160k_ade20k_20200615_231733-955eb1ec.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_160k_ade20k/ann_r101-d8_512x512_160k_ade20k_20200615_231733.log.json) | ### Pascal VOC 2012 + Aug + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ANN | R-50-D8 | 512x512 | 20000 | 6 | 20.92 | 74.86 | 76.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_20k_voc12aug/ann_r50-d8_512x512_20k_voc12aug_20200617_222246-dfcb1c62.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_20k_voc12aug/ann_r50-d8_512x512_20k_voc12aug_20200617_222246.log.json) | diff --git a/configs/ccnet/README.md b/configs/ccnet/README.md index 7648d630b4..6bbe44ec64 100644 --- a/configs/ccnet/README.md +++ b/configs/ccnet/README.md @@ -1,7 +1,8 @@ # CCNet: Criss-Cross Attention for Semantic Segmentation ## Introduction -``` + +```latex @article{huang2018ccnet, title={CCNet: Criss-Cross Attention for Semantic Segmentation}, author={Huang, Zilong and Wang, Xinggang and Huang, Lichao and Huang, Chang and Wei, Yunchao and Liu, Wenyu}, @@ -13,6 +14,7 @@ ## Results and models ### Cityscapes + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | CCNet | R-50-D8 | 512x1024 | 40000 | 6 | 3.32 | 77.76 | 78.87 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes/ccnet_r50-d8_512x1024_40k_cityscapes_20200616_142517-4123f401.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes/ccnet_r50-d8_512x1024_40k_cityscapes_20200616_142517.log.json) | @@ -25,6 +27,7 @@ | CCNet | R-101-D8 | 769x769 | 80000 | - | - | 79.45 | 80.66 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_80k_cityscapes/ccnet_r101-d8_769x769_80k_cityscapes_20200618_011502-ad3cd481.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_80k_cityscapes/ccnet_r101-d8_769x769_80k_cityscapes_20200618_011502.log.json) | ### ADE20K + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | CCNet | R-50-D8 | 512x512 | 80000 | 8.8 | 20.89 | 41.78 | 42.98 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_80k_ade20k/ccnet_r50-d8_512x512_80k_ade20k_20200615_014848-aa37f61e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_80k_ade20k/ccnet_r50-d8_512x512_80k_ade20k_20200615_014848.log.json) | @@ -33,6 +36,7 @@ | CCNet | R-101-D8 | 512x512 | 160000 | - | - | 43.71 | 45.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_160k_ade20k/ccnet_r101-d8_512x512_160k_ade20k_20200616_000644-e849e007.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_160k_ade20k/ccnet_r101-d8_512x512_160k_ade20k_20200616_000644.log.json) | ### Pascal VOC 2012 + Aug + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | CCNet | R-50-D8 | 512x512 | 20000 | 6 | 20.45 | 76.17 | 77.51 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_20k_voc12aug/ccnet_r50-d8_512x512_20k_voc12aug_20200617_193212-fad81784.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_20k_voc12aug/ccnet_r50-d8_512x512_20k_voc12aug_20200617_193212.log.json) | diff --git a/configs/danet/README.md b/configs/danet/README.md index 155b5590d3..6b0b24bfe2 100644 --- a/configs/danet/README.md +++ b/configs/danet/README.md @@ -1,7 +1,8 @@ # Dual Attention Network for Scene Segmentation ## Introduction -``` + +```latex @article{fu2018dual, title={Dual Attention Network for Scene Segmentation}, author={Jun Fu, Jing Liu, Haijie Tian, Yong Li, Yongjun Bao, Zhiwei Fang,and Hanqing Lu}, @@ -13,6 +14,7 @@ ## Results and models ### Cityscapes + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | DANet | R-50-D8 | 512x1024 | 40000 | 7.4 | 2.66 | 78.74 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_40k_cityscapes/danet_r50-d8_512x1024_40k_cityscapes_20200605_191324-c0dbfa5f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_40k_cityscapes/danet_r50-d8_512x1024_40k_cityscapes_20200605_191324.log.json) | @@ -25,6 +27,7 @@ | DANet | R-101-D8 | 769x769 | 80000 | - | - | 80.47 | 82.02 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_80k_cityscapes/danet_r101-d8_769x769_80k_cityscapes_20200607_132918-f3a929e7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_80k_cityscapes/danet_r101-d8_769x769_80k_cityscapes_20200607_132918.log.json) | ### ADE20K + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | DANet | R-50-D8 | 512x512 | 80000 | 11.5 | 21.20 | 41.66 | 42.90 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_80k_ade20k/danet_r50-d8_512x512_80k_ade20k_20200615_015125-edb18e08.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_80k_ade20k/danet_r50-d8_512x512_80k_ade20k_20200615_015125.log.json) | @@ -33,6 +36,7 @@ | DANet | R-101-D8 | 512x512 | 160000 | - | - | 44.17 | 45.02 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_160k_ade20k/danet_r101-d8_512x512_160k_ade20k_20200616_082348-23bf12f9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_160k_ade20k/danet_r101-d8_512x512_160k_ade20k_20200616_082348.log.json) | ### Pascal VOC 2012 + Aug + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | DANet | R-50-D8 | 512x512 | 20000 | 6.5 | 20.94 | 74.45 | 75.69 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_20k_voc12aug/danet_r50-d8_512x512_20k_voc12aug_20200618_070026-9e9e3ab3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_20k_voc12aug/danet_r50-d8_512x512_20k_voc12aug_20200618_070026.log.json) | diff --git a/configs/deeplabv3/README.md b/configs/deeplabv3/README.md index 01f9743e83..b9edb41aaf 100644 --- a/configs/deeplabv3/README.md +++ b/configs/deeplabv3/README.md @@ -1,7 +1,8 @@ # Rethinking atrous convolution for semantic image segmentation ## Introduction -``` + +```latext @article{chen2017rethinking, title={Rethinking atrous convolution for semantic image segmentation}, author={Chen, Liang-Chieh and Papandreou, George and Schroff, Florian and Adam, Hartwig}, @@ -15,6 +16,7 @@ Note: `D-8` here corresponding to the output stride 8 setting for DeepLab series. ### Cityscapes + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |-----------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | DeepLabV3 | R-50-D8 | 512x1024 | 40000 | 6.1 | 2.57 | 79.09 | 80.45 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes/deeplabv3_r50-d8_512x1024_40k_cityscapes_20200605_022449-acadc2f8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes/deeplabv3_r50-d8_512x1024_40k_cityscapes_20200605_022449.log.json) | @@ -29,6 +31,7 @@ Note: `D-8` here corresponding to the output stride 8 setting for DeepLab series | DeepLabV3 | R-101-D16-MG124 | 512x1024 | 80000 | - | - | 78.36 | 79.84 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes_20200908_005644-57bb8425.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes-20200908_005644.log.json) | ### ADE20K + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |-----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | DeepLabV3 | R-50-D8 | 512x512 | 80000 | 8.9 | 14.76 | 42.42 | 43.28 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k/deeplabv3_r50-d8_512x512_80k_ade20k_20200614_185028-0bb3f844.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k/deeplabv3_r50-d8_512x512_80k_ade20k_20200614_185028.log.json) | @@ -37,6 +40,7 @@ Note: `D-8` here corresponding to the output stride 8 setting for DeepLab series | DeepLabV3 | R-101-D8 | 512x512 | 160000 | - | - | 45.00 | 46.66 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k/deeplabv3_r101-d8_512x512_160k_ade20k_20200615_105816-b1f72b3b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k/deeplabv3_r101-d8_512x512_160k_ade20k_20200615_105816.log.json) | ### Pascal VOC 2012 + Aug + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |-----------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | DeepLabV3 | R-50-D8 | 512x512 | 20000 | 6.1 | 13.88 | 76.17 | 77.42 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug/deeplabv3_r50-d8_512x512_20k_voc12aug_20200617_010906-596905ef.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug/deeplabv3_r50-d8_512x512_20k_voc12aug_20200617_010906.log.json) | @@ -45,6 +49,7 @@ Note: `D-8` here corresponding to the output stride 8 setting for DeepLab series | DeepLabV3 | R-101-D8 | 512x512 | 40000 | - | - | 77.92 | 79.18 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug/deeplabv3_r101-d8_512x512_40k_voc12aug_20200613_161432-0017d784.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug/deeplabv3_r101-d8_512x512_40k_voc12aug_20200613_161432.log.json) | ### Pascal Context + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |-----------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | DeepLabV3 | R-101-D8 | 480x480 | 40000 | 9.2 | 7.09 | 46.55 | 47.81 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context/deeplabv3_r101-d8_480x480_40k_pascal_context_20200911_204118-1aa27336.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context/deeplabv3_r101-d8_480x480_40k_pascal_context-20200911_204118.log.json) | diff --git a/configs/deeplabv3plus/README.md b/configs/deeplabv3plus/README.md index cb25bc0ac2..1c9e3f782b 100644 --- a/configs/deeplabv3plus/README.md +++ b/configs/deeplabv3plus/README.md @@ -1,7 +1,8 @@ # Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation ## Introduction -``` + +```latex @inproceedings{deeplabv3plus2018, title={Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation}, author={Liang-Chieh Chen and Yukun Zhu and George Papandreou and Florian Schroff and Hartwig Adam}, @@ -17,6 +18,7 @@ Note: `MG-124` stands for multi-grid dilation in the last stage of ResNet. ### Cityscapes + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |------------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | DeepLabV3+ | R-50-D8 | 512x1024 | 40000 | 7.5 | 3.94 | 79.61 | 81.01 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes/deeplabv3plus_r50-d8_512x1024_40k_cityscapes_20200605_094610-d222ffcd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes/deeplabv3plus_r50-d8_512x1024_40k_cityscapes_20200605_094610.log.json) | @@ -31,6 +33,7 @@ Note: | DeepLabV3+ | R-101-D16-MG124 | 512x1024 | 80000 | 9.9 | - | 79.90 | 81.33 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes_20200908_005644-ee6158e0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes-20200908_005644.log.json) | ### ADE20K + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |------------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | DeepLabV3+ | R-50-D8 | 512x512 | 80000 | 10.6 | 21.01 | 42.72 | 43.75 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k/deeplabv3plus_r50-d8_512x512_80k_ade20k_20200614_185028-bf1400d8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k/deeplabv3plus_r50-d8_512x512_80k_ade20k_20200614_185028.log.json) | @@ -39,6 +42,7 @@ Note: | DeepLabV3+ | R-101-D8 | 512x512 | 160000 | - | - | 45.47 | 46.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k/deeplabv3plus_r101-d8_512x512_160k_ade20k_20200615_123232-38ed86bb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k/deeplabv3plus_r101-d8_512x512_160k_ade20k_20200615_123232.log.json) | #### Pascal VOC 2012 + Aug + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |------------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | DeepLabV3+ | R-50-D8 | 512x512 | 20000 | 7.6 | 21 | 75.93 | 77.50 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug/deeplabv3plus_r50-d8_512x512_20k_voc12aug_20200617_102323-aad58ef1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug/deeplabv3plus_r50-d8_512x512_20k_voc12aug_20200617_102323.log.json) | @@ -47,6 +51,7 @@ Note: | DeepLabV3+ | R-101-D8 | 512x512 | 40000 | - | - | 78.62 | 79.53 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug/deeplabv3plus_r101-d8_512x512_40k_voc12aug_20200613_205333-faf03387.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug/deeplabv3plus_r101-d8_512x512_40k_voc12aug_20200613_205333.log.json) | #### Pascal Context + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |------------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | DeepLabV3+ | R-101-D8 | 480x480 | 40000 | - | 9.09 | 47.30 | 48.47 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context/deeplabv3plus_r101-d8_480x480_40k_pascal_context_20200911_165459-d3c8a29e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context/deeplabv3plus_r101-d8_480x480_40k_pascal_context-20200911_165459.log.json) | diff --git a/configs/dnlnet/README.md b/configs/dnlnet/README.md index 8397394d10..af6fb06e8f 100644 --- a/configs/dnlnet/README.md +++ b/configs/dnlnet/README.md @@ -5,7 +5,8 @@ This example is to reproduce ["Disentangled Non-Local Neural Networks"](https://arxiv.org/abs/2006.06668) for semantic segmentation. It is still in progress. ## Citation -``` + +```latex @misc{yin2020disentangled, title={Disentangled Non-Local Neural Networks}, author={Minghao Yin and Zhuliang Yao and Yue Cao and Xiu Li and Zheng Zhang and Stephen Lin and Han Hu}, @@ -29,7 +30,6 @@ This example is to reproduce ["Disentangled Non-Local Neural Networks"](https:// | dnl | R-50-D8 | 769x769 | 80000 | - | - | 79.36 | 80.70 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_80k_cityscapes/dnl_r50-d8_769x769_80k_cityscapes_20200820_011925-366bc4c7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_80k_cityscapes/dnl_r50-d8_769x769_80k_cityscapes-20200820_011925.log.json) | | dnl | R-101-D8 | 769x769 | 80000 | - | - | 79.41 | 80.68 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_80k_cityscapes/dnl_r101-d8_769x769_80k_cityscapes_20200821_051111-95ff84ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_80k_cityscapes/dnl_r101-d8_769x769_80k_cityscapes-20200821_051111.log.json) | - ### ADE20K | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | diff --git a/configs/emanet/README.md b/configs/emanet/README.md index cddab591c7..1ea9ee15f0 100644 --- a/configs/emanet/README.md +++ b/configs/emanet/README.md @@ -1,7 +1,8 @@ # Expectation-Maximization Attention Networks for Semantic Segmentation ## Introduction -``` + +```latex @inproceedings{li2019expectation, title={Expectation-maximization attention networks for semantic segmentation}, author={Li, Xia and Zhong, Zhisheng and Wu, Jianlong and Yang, Yibo and Lin, Zhouchen and Liu, Hong}, @@ -14,6 +15,7 @@ ## Results and models ### Cityscapes + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|---------:|----------------|------:|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | EMANet | R-50-D8 | 512x1024 | 80000 | 5.4 | 4.58 | 77.59 | 79.44 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_512x1024_80k_cityscapes/emanet_r50-d8_512x1024_80k_cityscapes_20200901_100301-c43fcef1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_512x1024_80k_cityscapes/emanet_r50-d8_512x1024_80k_cityscapes-20200901_100301.log.json) | diff --git a/configs/encnet/README.md b/configs/encnet/README.md index 3f60f362c6..d5c78e3abd 100644 --- a/configs/encnet/README.md +++ b/configs/encnet/README.md @@ -1,7 +1,8 @@ # Context Encoding for Semantic Segmentation ## Introduction -``` + +```latex @InProceedings{Zhang_2018_CVPR, author = {Zhang, Hang and Dana, Kristin and Shi, Jianping and Zhang, Zhongyue and Wang, Xiaogang and Tyagi, Ambrish and Agrawal, Amit}, title = {Context Encoding for Semantic Segmentation}, @@ -14,6 +15,7 @@ year = {2018} ## Results and models ### Cityscapes + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | encnet | R-50-D8 | 512x1024 | 40000 | 8.6 | 4.58 | 75.67 | 77.08 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_40k_cityscapes/encnet_r50-d8_512x1024_40k_cityscapes_20200621_220958-68638a47.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_40k_cityscapes/encnet_r50-d8_512x1024_40k_cityscapes-20200621_220958.log.json) | @@ -26,6 +28,7 @@ year = {2018} | encnet | R-101-D8 | 769x769 | 80000 | - | - | 76.10 | 76.97 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_80k_cityscapes/encnet_r101-d8_769x769_80k_cityscapes_20200622_003555-470ef79d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_80k_cityscapes/encnet_r101-d8_769x769_80k_cityscapes-20200622_003555.log.json) | ### ADE20K + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | encnet | R-50-D8 | 512x512 | 80000 | 10.1 | 22.81 | 39.53 | 41.17 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_80k_ade20k/encnet_r50-d8_512x512_80k_ade20k_20200622_042412-44b46b04.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_80k_ade20k/encnet_r50-d8_512x512_80k_ade20k-20200622_042412.log.json) | diff --git a/configs/fastscnn/README.md b/configs/fastscnn/README.md index 3d8f778b92..5a1f6bc7b5 100644 --- a/configs/fastscnn/README.md +++ b/configs/fastscnn/README.md @@ -1,7 +1,8 @@ # Fast-SCNN for Semantic Segmentation ## Introduction -``` + +```latex @article{poudel2019fast, title={Fast-scnn: Fast semantic segmentation network}, author={Poudel, Rudra PK and Liwicki, Stephan and Cipolla, Roberto}, @@ -13,6 +14,7 @@ ## Results and models ### Cityscapes + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |------------|-----------|-----------|--------:|----------|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Fast-SCNN | Fast-SCNN | 512x1024 | 80000 | 8.4 | 63.61 | 69.06 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_4x8_80k_lr0.12_cityscapes-f5096c79.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_4x8_80k_lr0.12_cityscapes-20200807_165744.log.json) | diff --git a/configs/fcn/README.md b/configs/fcn/README.md index 6638cf89fc..332c03ea62 100644 --- a/configs/fcn/README.md +++ b/configs/fcn/README.md @@ -1,7 +1,8 @@ # Fully Convolutional Networks for Semantic Segmentation ## Introduction -``` + +```latex @article{shelhamer2017fully, title={Fully convolutional networks for semantic segmentation}, author={Shelhamer, Evan and Long, Jonathan and Darrell, Trevor}, @@ -17,6 +18,7 @@ ## Results and models ### Cityscapes + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | FCN | R-50-D8 | 512x1024 | 40000 | 5.7 | 4.17 | 72.25 | 73.36 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_40k_cityscapes/fcn_r50-d8_512x1024_40k_cityscapes_20200604_192608-efe53f0d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_40k_cityscapes/fcn_r50-d8_512x1024_40k_cityscapes_20200604_192608.log.json) | @@ -29,6 +31,7 @@ | FCN | R-101-D8 | 769x769 | 80000 | - | - | 75.52 | 76.61 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_80k_cityscapes/fcn_r101-d8_769x769_80k_cityscapes_20200606_214354-45cbac68.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_80k_cityscapes/fcn_r101-d8_769x769_80k_cityscapes_20200606_214354.log.json) | ### ADE20K + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | FCN | R-50-D8 | 512x512 | 80000 | 8.5 | 23.49 | 35.94 | 37.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_80k_ade20k/fcn_r50-d8_512x512_80k_ade20k_20200614_144016-f8ac5082.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_80k_ade20k/fcn_r50-d8_512x512_80k_ade20k_20200614_144016.log.json) | @@ -37,6 +40,7 @@ | FCN | R-101-D8 | 512x512 | 160000 | - | - | 39.91 | 41.40 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_160k_ade20k/fcn_r101-d8_512x512_160k_ade20k_20200615_105816-fd192bd5.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_160k_ade20k/fcn_r101-d8_512x512_160k_ade20k_20200615_105816.log.json) | ### Pascal VOC 2012 + Aug + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | FCN | R-50-D8 | 512x512 | 20000 | 5.7 | 23.28 | 67.08 | 69.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_20k_voc12aug/fcn_r50-d8_512x512_20k_voc12aug_20200617_010715-52dc5306.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_20k_voc12aug/fcn_r50-d8_512x512_20k_voc12aug_20200617_010715.log.json) | @@ -45,6 +49,7 @@ | FCN | R-101-D8 | 512x512 | 40000 | - | - | 69.91 | 72.38 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_40k_voc12aug/fcn_r101-d8_512x512_40k_voc12aug_20200613_161240-4c8bcefd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_40k_voc12aug/fcn_r101-d8_512x512_40k_voc12aug_20200613_161240.log.json) | ### Pascal Context + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | FCN | R-101-D8 | 480x480 | 40000 | - | 9.93 | 44.14 | 45.67 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context_20200911_212515-9b565a6d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context-20200911_212515.log.json) | diff --git a/configs/fp16/README.md b/configs/fp16/README.md index 0b8ec4d8ec..7f5924ae7f 100644 --- a/configs/fp16/README.md +++ b/configs/fp16/README.md @@ -1,7 +1,8 @@ # Mixed Precision Training ## Introduction -``` + +```latex @article{micikevicius2017mixed, title={Mixed precision training}, author={Micikevicius, Paulius and Narang, Sharan and Alben, Jonah and Diamos, Gregory and Elsen, Erich and Garcia, David and Ginsburg, Boris and Houston, Michael and Kuchaiev, Oleksii and Venkatesh, Ganesh and others}, @@ -13,6 +14,7 @@ ## Results and models ### Cityscapes + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | FCN | R-101-D8 | 512x1024 | 80000 | 5.50 | 2.66 | 76.80 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes-50245227.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230921.log.json) | diff --git a/configs/gcnet/README.md b/configs/gcnet/README.md index ccc2709005..c39161048b 100644 --- a/configs/gcnet/README.md +++ b/configs/gcnet/README.md @@ -1,7 +1,8 @@ # GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyond ## Introduction -``` + +```latex @inproceedings{cao2019gcnet, title={Gcnet: Non-local networks meet squeeze-excitation networks and beyond}, author={Cao, Yue and Xu, Jiarui and Lin, Stephen and Wei, Fangyun and Hu, Han}, @@ -14,6 +15,7 @@ ## Results and models ### Cityscapes + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | GCNet | R-50-D8 | 512x1024 | 40000 | 5.8 | 3.93 | 77.69 | 78.56 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes/gcnet_r50-d8_512x1024_40k_cityscapes_20200618_074436-4b0fd17b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes/gcnet_r50-d8_512x1024_40k_cityscapes_20200618_074436.log.json) | @@ -26,6 +28,7 @@ | GCNet | R-101-D8 | 769x769 | 80000 | - | - | 79.18 | 80.71 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_80k_cityscapes/gcnet_r101-d8_769x769_80k_cityscapes_20200619_092628-8e043423.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_80k_cityscapes/gcnet_r101-d8_769x769_80k_cityscapes_20200619_092628.log.json) | ### ADE20K + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | GCNet | R-50-D8 | 512x512 | 80000 | 8.5 | 23.38 | 41.47 | 42.85 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_80k_ade20k/gcnet_r50-d8_512x512_80k_ade20k_20200614_185146-91a6da41.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_80k_ade20k/gcnet_r50-d8_512x512_80k_ade20k_20200614_185146.log.json) | @@ -34,6 +37,7 @@ | GCNet | R-101-D8 | 512x512 | 160000 | - | - | 43.69 | 45.21 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_160k_ade20k/gcnet_r101-d8_512x512_160k_ade20k_20200615_225406-615528d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_160k_ade20k/gcnet_r101-d8_512x512_160k_ade20k_20200615_225406.log.json) | ### Pascal VOC 2012 + Aug + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | GCNet | R-50-D8 | 512x512 | 20000 | 5.8 | 23.35 | 76.42 | 77.51 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_20k_voc12aug/gcnet_r50-d8_512x512_20k_voc12aug_20200617_165701-3cbfdab1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_20k_voc12aug/gcnet_r50-d8_512x512_20k_voc12aug_20200617_165701.log.json) | diff --git a/configs/hrnet/README.md b/configs/hrnet/README.md index 6b9bddb9f1..5084e1c522 100644 --- a/configs/hrnet/README.md +++ b/configs/hrnet/README.md @@ -1,7 +1,8 @@ # Deep High-Resolution Representation Learning for Human Pose Estimation ## Introduction -``` + +```latext @inproceedings{SunXLW19, title={Deep High-Resolution Representation Learning for Human Pose Estimation}, author={Ke Sun and Bin Xiao and Dong Liu and Jingdong Wang}, @@ -13,6 +14,7 @@ ## Results and models ### Cityscapes + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | FCN | HRNetV2p-W18-Small | 512x1024 | 40000 | 1.7 | 23.74 | 73.86 | 75.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_40k_cityscapes/fcn_hr18s_512x1024_40k_cityscapes_20200601_014216-93db27d0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_40k_cityscapes/fcn_hr18s_512x1024_40k_cityscapes_20200601_014216.log.json) | @@ -26,6 +28,7 @@ | FCN | HRNetV2p-W48 | 512x1024 | 160000 | - | - | 80.65 | 81.92 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_160k_cityscapes/fcn_hr48_512x1024_160k_cityscapes_20200602_190946-59b7973e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_160k_cityscapes/fcn_hr48_512x1024_160k_cityscapes_20200602_190946.log.json) | ### ADE20K + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | FCN | HRNetV2p-W18-Small | 512x512 | 80000 | 3.8 | 38.66 | 31.38 | 32.45 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_80k_ade20k/fcn_hr18s_512x512_80k_ade20k_20200614_144345-77fc814a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_80k_ade20k/fcn_hr18s_512x512_80k_ade20k_20200614_144345.log.json) | @@ -36,6 +39,7 @@ | FCN | HRNetV2p-W48 | 512x512 | 160000 | - | - | 42.02 | 43.86 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_160k_ade20k/fcn_hr48_512x512_160k_ade20k_20200614_214407-a52fc02c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_160k_ade20k/fcn_hr48_512x512_160k_ade20k_20200614_214407.log.json) | ### Pascal VOC 2012 + Aug + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | FCN | HRNetV2p-W18-Small | 512x512 | 20000 | 1.8 | 43.36 | 65.20 | 68.55 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_20k_voc12aug/fcn_hr18s_512x512_20k_voc12aug_20200617_224503-56e36088.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_20k_voc12aug/fcn_hr18s_512x512_20k_voc12aug_20200617_224503.log.json) | @@ -46,6 +50,7 @@ | FCN | HRNetV2p-W48 | 512x512 | 40000 | - | - | 76.24 | 78.49 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_40k_voc12aug/fcn_hr48_512x512_40k_voc12aug_20200613_222111-1b0f18bc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_40k_voc12aug/fcn_hr48_512x512_40k_voc12aug_20200613_222111.log.json) | ### Pascal Context + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | FCN | HRNetV2p-W48 | 480x480 | 40000 | 6.1 | 8.86 | 45.14 | 47.42 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context/fcn_hr48_480x480_40k_pascal_context_20200911_164852-667d00b0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context/fcn_hr48_480x480_40k_pascal_context-20200911_164852.log.json) | diff --git a/configs/mobilenet_v2/README.md b/configs/mobilenet_v2/README.md index cd7fa207b1..733bf66c7a 100644 --- a/configs/mobilenet_v2/README.md +++ b/configs/mobilenet_v2/README.md @@ -2,7 +2,7 @@ ## Introduction -``` +```latex @inproceedings{sandler2018mobilenetv2, title={Mobilenetv2: Inverted residuals and linear bottlenecks}, author={Sandler, Mark and Howard, Andrew and Zhu, Menglong and Zhmoginov, Andrey and Chen, Liang-Chieh}, @@ -12,10 +12,10 @@ } ``` - ## Results and models ### Cityscapes + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |------------|----------|-----------|--------:|---------:|----------------|------:|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | FCN | M-V2-D8 | 512x1024 | 80000 | 3.4 | 14.2 | 61.54 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes/fcn_m-v2-d8_512x1024_80k_cityscapes_20200825_124817-d24c28c1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes/fcn_m-v2-d8_512x1024_80k_cityscapes-20200825_124817.log.json) | @@ -24,6 +24,7 @@ | DeepLabV3+ | M-V2-D8 | 512x1024 | 80000 | 5.1 | 8.4 | 75.20 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes_20200825_124836-d256dd4b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes-20200825_124836.log.json) | ### ADE20k + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |------------|----------|-----------|--------:|---------:|----------------|------:|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | FCN | M-V2-D8 | 512x512 | 160000 | 6.5 | 64.4 | 19.71 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k/fcn_m-v2-d8_512x512_160k_ade20k_20200825_214953-c40e1095.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k/fcn_m-v2-d8_512x512_160k_ade20k-20200825_214953.log.json) | diff --git a/configs/nonlocal_net/README.md b/configs/nonlocal_net/README.md index 592f4d900f..944d382dbb 100644 --- a/configs/nonlocal_net/README.md +++ b/configs/nonlocal_net/README.md @@ -1,7 +1,8 @@ # Non-local Neural Networks ## Introduction -``` + +```latex @inproceedings{wang2018non, title={Non-local neural networks}, author={Wang, Xiaolong and Girshick, Ross and Gupta, Abhinav and He, Kaiming}, @@ -14,6 +15,7 @@ ## Results and models ### Cityscapes + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |----------|----------|-----------|--------:|----------|----------------|------:|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | NonLocal | R-50-D8 | 512x1024 | 40000 | 7.4 | 2.72 | 78.24 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes/nonlocal_r50-d8_512x1024_40k_cityscapes_20200605_210748-c75e81e3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes/nonlocal_r50-d8_512x1024_40k_cityscapes_20200605_210748.log.json) | @@ -26,6 +28,7 @@ | NonLocal | R-101-D8 | 769x769 | 80000 | - | - | 79.40 | 80.85 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes/nonlocal_r101-d8_769x769_80k_cityscapes_20200607_183428-0e1fa4f9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes/nonlocal_r101-d8_769x769_80k_cityscapes_20200607_183428.log.json) | ### ADE20K + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |----------|----------|-----------|--------:|----------|----------------|------:|--------------:|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | NonLocal | R-50-D8 | 512x512 | 80000 | 9.1 | 21.37 | 40.75 | 42.05 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k/nonlocal_r50-d8_512x512_80k_ade20k_20200615_015801-5ae0aa33.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k/nonlocal_r50-d8_512x512_80k_ade20k_20200615_015801.log.json) | @@ -34,6 +37,7 @@ | NonLocal | R-101-D8 | 512x512 | 160000 | - | - | 43.36 | 44.83 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k/nonlocal_r101-d8_512x512_160k_ade20k_20200616_003422-affd0f8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k/nonlocal_r101-d8_512x512_160k_ade20k_20200616_003422.log.json) | ### Pascal VOC 2012 + Aug + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | NonLocal | R-50-D8 | 512x512 | 20000 | 6.4 | 21.21 | 76.20 | 77.12 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug/nonlocal_r50-d8_512x512_20k_voc12aug_20200617_222613-07f2a57c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug/nonlocal_r50-d8_512x512_20k_voc12aug_20200617_222613.log.json) | diff --git a/configs/ocrnet/README.md b/configs/ocrnet/README.md index 27383b80a4..3a909daed7 100644 --- a/configs/ocrnet/README.md +++ b/configs/ocrnet/README.md @@ -2,7 +2,7 @@ ## Introduction -``` +```latex @article{YuanW18, title={Ocnet: Object context network for scene parsing}, author={Yuhui Yuan and Jingdong Wang}, @@ -23,6 +23,7 @@ ### Cityscapes #### HRNet backbone + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | OCRNet | HRNetV2p-W18-Small | 512x1024 | 40000 | 3.5 | 10.45 | 74.30 | 75.95 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes/ocrnet_hr18s_512x1024_40k_cityscapes_20200601_033304-fa2436c2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes/ocrnet_hr18s_512x1024_40k_cityscapes_20200601_033304.log.json) | @@ -35,7 +36,6 @@ | OCRNet | HRNetV2p-W18 | 512x1024 | 160000 | - | - | 79.47 | 80.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes/ocrnet_hr18_512x1024_160k_cityscapes_20200602_191001-b9172d0c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes/ocrnet_hr18_512x1024_160k_cityscapes_20200602_191001.log.json) | | OCRNet | HRNetV2p-W48 | 512x1024 | 160000 | - | - | 81.35 | 82.70 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes/ocrnet_hr48_512x1024_160k_cityscapes_20200602_191037-dfbf1b0c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes/ocrnet_hr48_512x1024_160k_cityscapes_20200602_191037.log.json) | - #### ResNet backbone | Method | Backbone | Crop Size | Batch Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | @@ -44,8 +44,8 @@ | OCRNet | R-101-D8 | 512x1024 | 16 | 40000 | 8.8 | 3.02 | 80.30 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes/ocrnet_r101-d8_512x1024_40k_b16_cityscapes-db500f80.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes/ocrnet_r101-d8_512x1024_40k_b16_cityscapes_20200723_193726.log.json) | | OCRNet | R-101-D8 | 512x1024 | 16 | 80000 | 8.8 | 3.02 | 80.81 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes/ocrnet_r101-d8_512x1024_80k_b16_cityscapes-78688424.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes/ocrnet_r101-d8_512x1024_80k_b16_cityscapes_20200723_192421.log.json) | - ### ADE20K + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | OCRNet | HRNetV2p-W18-Small | 512x512 | 80000 | 6.7 | 28.98 | 35.06 | 35.80 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_80k_ade20k/ocrnet_hr18s_512x512_80k_ade20k_20200615_055600-e80b62af.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_80k_ade20k/ocrnet_hr18s_512x512_80k_ade20k_20200615_055600.log.json) | @@ -56,6 +56,7 @@ | OCRNet | HRNetV2p-W48 | 512x512 | 160000 | - | - | 43.25 | 44.88 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_160k_ade20k/ocrnet_hr48_512x512_160k_ade20k_20200615_184705-a073726d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_160k_ade20k/ocrnet_hr48_512x512_160k_ade20k_20200615_184705.log.json) | ### Pascal VOC 2012 + Aug + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | OCRNet | HRNetV2p-W18-Small | 512x512 | 20000 | 3.5 | 31.55 | 71.70 | 73.84 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug/ocrnet_hr18s_512x512_20k_voc12aug_20200617_233913-02b04fcb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug/ocrnet_hr18s_512x512_20k_voc12aug_20200617_233913.log.json) | diff --git a/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py b/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py index 3085f9eac4..3dd70b74a0 100644 --- a/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py +++ b/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py @@ -1,8 +1,6 @@ _base_ = [ - '../_base_/models/ocrnet_r50-d8.py', - '../_base_/datasets/cityscapes.py', - '../_base_/default_runtime.py', - '../_base_/schedules/schedule_40k.py' + '../_base_/models/ocrnet_r50-d8.py', '../_base_/datasets/cityscapes.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' ] model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) optimizer = dict(lr=0.02) diff --git a/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py b/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py index 955dce099b..e34f3432e5 100644 --- a/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py +++ b/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py @@ -1,7 +1,5 @@ _base_ = [ - '../_base_/models/ocrnet_r50-d8.py', - '../_base_/datasets/cityscapes.py', - '../_base_/default_runtime.py', - '../_base_/schedules/schedule_40k.py' + '../_base_/models/ocrnet_r50-d8.py', '../_base_/datasets/cityscapes.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' ] model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py b/configs/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py index 1704fa8128..33d96c76f6 100644 --- a/configs/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py +++ b/configs/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py @@ -1,8 +1,6 @@ _base_ = [ - '../_base_/models/ocrnet_r50-d8.py', - '../_base_/datasets/cityscapes.py', - '../_base_/default_runtime.py', - '../_base_/schedules/schedule_80k.py' + '../_base_/models/ocrnet_r50-d8.py', '../_base_/datasets/cityscapes.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' ] model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) optimizer = dict(lr=0.02) diff --git a/configs/point_rend/README.md b/configs/point_rend/README.md index a5553f099a..fcd4a33dfe 100644 --- a/configs/point_rend/README.md +++ b/configs/point_rend/README.md @@ -1,6 +1,7 @@ # PointRend: Image Segmentation as Rendering ## Introduction + ``` @misc{alex2019pointrend, title={PointRend: Image Segmentation as Rendering}, @@ -15,12 +16,14 @@ ## Results and models ### Cityscapes + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |-----------|----------|-----------|--------:|---------:|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | PointRend | R-50 | 512x1024 | 80000 | 3.1 | 8.48 | 76.47 | 78.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x1024_80k_cityscapes/pointrend_r50_512x1024_80k_cityscapes_20200711_015821-bb1ff523.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x1024_80k_cityscapes/pointrend_r50_512x1024_80k_cityscapes-20200715_214714.log.json) | | PointRend | R-101 | 512x1024 | 80000 | 4.2 | 7.00 | 78.30 | 79.97 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x1024_80k_cityscapes/pointrend_r101_512x1024_80k_cityscapes_20200711_170850-d0ca84be.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x1024_80k_cityscapes/pointrend_r101_512x1024_80k_cityscapes-20200715_214824.log.json) | ### ADE20K + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |-----------|----------|-----------|--------:|---------:|----------------|------:|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | PointRend | R-50 | 512x512 | 160000 | 5.1 | 17.31 | 37.64 | 39.17 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x512_160k_ade20k/pointrend_r50_512x512_160k_ade20k_20200807_232644-ac3febf2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x512_160k_ade20k/pointrend_r50_512x512_160k_ade20k-20200807_232644.log.json) | diff --git a/configs/psanet/README.md b/configs/psanet/README.md index 1a3352bda4..3a03067098 100644 --- a/configs/psanet/README.md +++ b/configs/psanet/README.md @@ -1,7 +1,8 @@ # PSANet: Point-wise Spatial Attention Network for Scene Parsing ## Introduction -``` + +```latex @inproceedings{zhao2018psanet, title={Psanet: Point-wise spatial attention network for scene parsing}, author={Zhao, Hengshuang and Zhang, Yi and Liu, Shu and Shi, Jianping and Change Loy, Chen and Lin, Dahua and Jia, Jiaya}, @@ -14,6 +15,7 @@ ## Results and models ### Cityscapes + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | PSANet | R-50-D8 | 512x1024 | 40000 | 7 | 3.17 | 77.63 | 79.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_40k_cityscapes/psanet_r50-d8_512x1024_40k_cityscapes_20200606_103117-99fac37c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_40k_cityscapes/psanet_r50-d8_512x1024_40k_cityscapes_20200606_103117.log.json) | @@ -26,6 +28,7 @@ | PSANet | R-101-D8 | 769x769 | 80000 | - | - | 79.69 | 80.89 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_80k_cityscapes/psanet_r101-d8_769x769_80k_cityscapes_20200606_214550-7665827b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_80k_cityscapes/psanet_r101-d8_769x769_80k_cityscapes_20200606_214550.log.json) | ### ADE20K + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | PSANet | R-50-D8 | 512x512 | 80000 | 9 | 18.91 | 41.14 | 41.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_80k_ade20k/psanet_r50-d8_512x512_80k_ade20k_20200614_144141-835e4b97.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_80k_ade20k/psanet_r50-d8_512x512_80k_ade20k_20200614_144141.log.json) | @@ -34,6 +37,7 @@ | PSANet | R-101-D8 | 512x512 | 160000 | - | - | 43.74 | 45.38 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_160k_ade20k/psanet_r101-d8_512x512_160k_ade20k_20200615_161537-dbfa564c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_160k_ade20k/psanet_r101-d8_512x512_160k_ade20k_20200615_161537.log.json) | ### Pascal VOC 2012 + Aug + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | PSANet | R-50-D8 | 512x512 | 20000 | 6.9 | 18.24 | 76.39 | 77.34 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_20k_voc12aug/psanet_r50-d8_512x512_20k_voc12aug_20200617_102413-2f1bbaa1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_20k_voc12aug/psanet_r50-d8_512x512_20k_voc12aug_20200617_102413.log.json) | diff --git a/configs/pspnet/README.md b/configs/pspnet/README.md index 879d292b3e..d270af4b91 100644 --- a/configs/pspnet/README.md +++ b/configs/pspnet/README.md @@ -1,7 +1,8 @@ # Pyramid Scene Parsing Network ## Introduction -``` + +```latex @inproceedings{zhao2017pspnet, title={Pyramid Scene Parsing Network}, author={Zhao, Hengshuang and Shi, Jianping and Qi, Xiaojuan and Wang, Xiaogang and Jia, Jiaya}, @@ -13,6 +14,7 @@ ## Results and models ### Cityscapes + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | PSPNet | R-50-D8 | 512x1024 | 40000 | 6.1 | 4.07 | 77.85 | 79.18 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338.log.json) | @@ -25,6 +27,7 @@ | PSPNet | R-101-D8 | 769x769 | 80000 | - | - | 79.77 | 81.06 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_80k_cityscapes/pspnet_r101-d8_769x769_80k_cityscapes_20200606_225055-dba412fa.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_80k_cityscapes/pspnet_r101-d8_769x769_80k_cityscapes_20200606_225055.log.json) | ### ADE20K + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | PSPNet | R-50-D8 | 512x512 | 80000 | 8.5 | 23.53 | 41.13 | 41.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_80k_ade20k/pspnet_r50-d8_512x512_80k_ade20k_20200615_014128-15a8b914.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_80k_ade20k/pspnet_r50-d8_512x512_80k_ade20k_20200615_014128.log.json) | @@ -33,6 +36,7 @@ | PSPNet | R-101-D8 | 512x512 | 160000 | - | - | 44.39 | 45.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_160k_ade20k/pspnet_r101-d8_512x512_160k_ade20k_20200615_100650-967c316f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_160k_ade20k/pspnet_r101-d8_512x512_160k_ade20k_20200615_100650.log.json) | ### Pascal VOC 2012 + Aug + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | PSPNet | R-50-D8 | 512x512 | 20000 | 6.1 | 23.59 | 76.78 | 77.61 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_20k_voc12aug/pspnet_r50-d8_512x512_20k_voc12aug_20200617_101958-ed5dfbd9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_20k_voc12aug/pspnet_r50-d8_512x512_20k_voc12aug_20200617_101958.log.json) | @@ -41,6 +45,7 @@ | PSPNet | R-101-D8 | 512x512 | 40000 | - | - | 78.52 | 79.57 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_40k_voc12aug/pspnet_r101-d8_512x512_40k_voc12aug_20200613_161222-bc933b18.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_40k_voc12aug/pspnet_r101-d8_512x512_40k_voc12aug_20200613_161222.log.json) | ### Pascal Context + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | PSPNet | R-101-D8 | 480x480 | 40000 | 8.8 | 9.68 | 46.60 | 47.78 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context/pspnet_r101-d8_480x480_40k_pascal_context_20200911_211210-bf0f5d7c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context/pspnet_r101-d8_480x480_40k_pascal_context-20200911_211210.log.json) | diff --git a/configs/resnest/README.md b/configs/resnest/README.md index 9476cd895c..a84f3b22e8 100644 --- a/configs/resnest/README.md +++ b/configs/resnest/README.md @@ -2,7 +2,7 @@ ## Introduction -``` +```latex @article{zhang2020resnest, title={ResNeSt: Split-Attention Networks}, author={Zhang, Hang and Wu, Chongruo and Zhang, Zhongyue and Zhu, Yi and Zhang, Zhi and Lin, Haibin and Sun, Yue and He, Tong and Muller, Jonas and Manmatha, R. and Li, Mu and Smola, Alexander}, @@ -14,6 +14,7 @@ year={2020} ## Results and models ### Cityscapes + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |------------|----------|-----------|--------:|---------:|----------------|------:|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | FCN | S-101-D8 | 512x1024 | 80000 | 11.4 | 2.39 | 77.56 | 78.98 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x1024_80k_cityscapes/fcn_s101-d8_512x1024_80k_cityscapes_20200807_140631-f8d155b3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x1024_80k_cityscapes/fcn_s101-d8_512x1024_80k_cityscapes-20200807_140631.log.json) | @@ -22,6 +23,7 @@ year={2020} | DeepLabV3+ | S-101-D8 | 512x1024 | 80000 | 13.2 | 2.36 | 79.62 | 80.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes/deeplabv3plus_s101-d8_512x1024_80k_cityscapes_20200807_144429-1239eb43.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes/deeplabv3plus_s101-d8_512x1024_80k_cityscapes-20200807_144429.log.json) | ### ADE20k + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |------------|----------|-----------|--------:|---------:|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | FCN | S-101-D8 | 512x512 | 160000 | 14.2 | 12.86 | 45.62 | 46.16 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x512_160k_ade20k/fcn_s101-d8_512x512_160k_ade20k_20200807_145416-d3160329.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x512_160k_ade20k/fcn_s101-d8_512x512_160k_ade20k-20200807_145416.log.json) | diff --git a/configs/sem_fpn/README.md b/configs/sem_fpn/README.md index 707041e961..f05aeb8de4 100644 --- a/configs/sem_fpn/README.md +++ b/configs/sem_fpn/README.md @@ -1,7 +1,8 @@ # Panoptic Feature Pyramid Networks ## Introduction -``` + +```latex @article{Kirillov_2019, title={Panoptic Feature Pyramid Networks}, ISBN={9781728132938}, @@ -18,12 +19,14 @@ ## Results and models ### Cityscapes + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|---------:|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | FPN | R-50 | 512x1024 | 80000 | 2.8 | 13.54 | 74.52 | 76.08 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x1024_80k_cityscapes/fpn_r50_512x1024_80k_cityscapes_20200717_021437-94018a0d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x1024_80k_cityscapes/fpn_r50_512x1024_80k_cityscapes-20200717_021437.log.json) | | FPN | R-101 | 512x1024 | 80000 | 3.9 | 10.29 | 75.80 | 77.40 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x1024_80k_cityscapes/fpn_r101_512x1024_80k_cityscapes_20200717_012416-c5800d4c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x1024_80k_cityscapes/fpn_r101_512x1024_80k_cityscapes-20200717_012416.log.json) | ### ADE20K + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |--------|----------|-----------|--------:|---------:|----------------|------:|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | FPN | R-50 | 512x512 | 160000 | 4.9 | 55.77 | 37.49 | 39.09 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x512_160k_ade20k/fpn_r50_512x512_160k_ade20k_20200718_131734-5b5a6ab9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x512_160k_ade20k/fpn_r50_512x512_160k_ade20k-20200718_131734.log.json) | diff --git a/configs/upernet/README.md b/configs/upernet/README.md index 26aa2ee5bd..a3a4d6b1ea 100644 --- a/configs/upernet/README.md +++ b/configs/upernet/README.md @@ -1,7 +1,8 @@ # Unified Perceptual Parsing for Scene Understanding ## Introduction -``` + +```latex @inproceedings{xiao2018unified, title={Unified perceptual parsing for scene understanding}, author={Xiao, Tete and Liu, Yingcheng and Zhou, Bolei and Jiang, Yuning and Sun, Jian}, @@ -14,6 +15,7 @@ ## Results and models ### Cityscapes + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |---------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | UPerNet | R-50 | 512x1024 | 40000 | 6.4 | 4.25 | 77.10 | 78.37 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_40k_cityscapes/upernet_r50_512x1024_40k_cityscapes_20200605_094827-aa54cb54.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_40k_cityscapes/upernet_r50_512x1024_40k_cityscapes_20200605_094827.log.json) | @@ -26,6 +28,7 @@ | UPerNet | R-101 | 769x769 | 80000 | - | - | 80.10 | 81.49 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_80k_cityscapes/upernet_r101_769x769_80k_cityscapes_20200607_001014-082fc334.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_80k_cityscapes/upernet_r101_769x769_80k_cityscapes_20200607_001014.log.json) | ### ADE20K + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |---------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | UPerNet | R-50 | 512x512 | 80000 | 8.1 | 23.40 | 40.70 | 41.81 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_80k_ade20k/upernet_r50_512x512_80k_ade20k_20200614_144127-ecc8377b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_80k_ade20k/upernet_r50_512x512_80k_ade20k_20200614_144127.log.json) | @@ -34,6 +37,7 @@ | UPerNet | R-101 | 512x512 | 160000 | - | - | 43.82 | 44.85 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_160k_ade20k/upernet_r101_512x512_160k_ade20k_20200615_161951-91b32684.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_160k_ade20k/upernet_r101_512x512_160k_ade20k_20200615_161951.log.json) | ### Pascal VOC 2012 + Aug + | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | |---------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | UPerNet | R-50 | 512x512 | 20000 | 6.4 | 23.17 | 74.82 | 76.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_20k_voc12aug/upernet_r50_512x512_20k_voc12aug_20200617_165330-5b5890a7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_20k_voc12aug/upernet_r50_512x512_20k_voc12aug_20200617_165330.log.json) | diff --git a/docs/changelog.md b/docs/changelog.md index 58f31e601a..8f8e056e62 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,15 +1,17 @@ ## Changelog - ### V0.6 (10/09/2020) + **Highlights** -- Support new methods i.e. MobileNetV2, EMANet, DNL, PointRend, Semantic FPN, Fast-SCNN, -ResNeSt. + +- Support new methods i.e. MobileNetV2, EMANet, DNL, PointRend, Semantic FPN, Fast-SCNN, ResNeSt. **Bug Fixes** + - Fixed sliding inference ONNX export ([#90](https://github.com/open-mmlab/mmsegmentation/pull/90)) **New Features** + - Support MobileNet v2 ([#86](https://github.com/open-mmlab/mmsegmentation/pull/86)) - Support EMANet ([#34](https://github.com/open-mmlab/mmsegmentation/pull/34)) - Support DNL ([#37](https://github.com/open-mmlab/mmsegmentation/pull/37)) @@ -20,6 +22,7 @@ ResNeSt. - Support ONNX export (experimental) ([#12](https://github.com/open-mmlab/mmsegmentation/pull/12)) **Improvements** + - Support Upsample in ONNX ([#100](https://github.com/open-mmlab/mmsegmentation/pull/100)) - Support Windows install (experimental) ([#75](https://github.com/open-mmlab/mmsegmentation/pull/75)) - Add more OCRNet results ([#20](https://github.com/open-mmlab/mmsegmentation/pull/20)) @@ -27,15 +30,23 @@ ResNeSt. - Get version and githash automatically ([#55](https://github.com/open-mmlab/mmsegmentation/pull/55)) ### v0.5.1 (11/08/2020) + **Highlights** + - Support FP16 and more generalized OHEM + **Bug Fixes** + - Fixed Pascal VOC conversion script (#19) - Fixed OHEM weight assign bug (#54) - Fixed palette type when palette is not given (#27) + **New Features** + - Support FP16 (#21) - Generalized OHEM (#54) + **Improvements** + - Add load-from flag (#33) - Fixed training tricks doc about different learning rates of model (#26) diff --git a/docs/config.md b/docs/config.md index be9226a60d..485ff7828b 100644 --- a/docs/config.md +++ b/docs/config.md @@ -1,4 +1,5 @@ # Config System + We incorporate modular and inheritance design into our config system, which is convenient to conduct various experiments. If you wish to inspect the config file, you may run `python tools/print_config.py /PATH/TO/CONFIG` to see the complete config. You may also pass `--options xxx.yyy=zzz` to see updated config. @@ -325,6 +326,7 @@ The `_delete_=True` would replace all old keys in `backbone` field with new keys Some intermediate variables are used in the configs files, like `train_pipeline`/`test_pipeline` in datasets. It's worth noting that when modifying intermediate variables in the children configs, user need to pass the intermediate variables into corresponding fields again. For example, we would like to change multi scale strategy to train/test a PSPNet. `train_pipeline`/`test_pipeline` are intermediate variable we would like modify. + ```python _base_ = '../pspnet/psp_r50_512x1024_40ki_cityscapes.py' crop_size = (512, 1024) @@ -362,9 +364,11 @@ data = dict( val=dict(pipeline=test_pipeline), test=dict(pipeline=test_pipeline)) ``` + We first define the new `train_pipeline`/`test_pipeline` and pass them into `data`. Similarly, if we would like to switch from `SyncBN` to `BN` or `MMSyncBN`, we need to substitute every `norm_cfg` in the config. + ```python _base_ = '../pspnet/psp_r50_512x1024_40ki_cityscpaes.py' norm_cfg = dict(type='BN', requires_grad=True) diff --git a/docs/getting_started.md b/docs/getting_started.md index 35ba57b5b2..3b2d2db3d0 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -8,7 +8,7 @@ For installation instructions, please see [install.md](install.md). It is recommended to symlink the dataset root to `$MMSEGMENTATION/data`. If your folder structure is different, you may need to change the corresponding paths in config files. -``` +```none mmsegmentation ├── mmseg ├── tools @@ -50,21 +50,25 @@ mmsegmentation ``` ### Cityscapes + The data could be found [here](https://www.cityscapes-dataset.com/downloads/) after registration. By convention, `**labelTrainIds.png` are used for cityscapes training. We provided a [scripts](https://github.com/open-mmlab/mmsegmentation/blob/master/tools/convert_datasets/cityscapes.py) based on [cityscapesscripts](https://github.com/mcordts/cityscapesScripts) to generate `**labelTrainIds.png`. + ```shell # --nproc means 8 process for conversion, which could be omitted as well. python tools/convert_datasets/cityscapes.py data/cityscapes --nproc 8 ``` ### Pascal VOC + Pascal VOC 2012 could be downloaded from [here](http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar). Beside, most recent works on Pascal VOC dataset usually exploit extra augmentation data, which could be found [here](http://www.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/semantic_contours/benchmark.tgz). If you would like to use augmented VOC dataset, please run following command to convert augmentation annotations into proper format. + ```shell # --nproc means 8 process for conversion, which could be omitted as well. python tools/convert_datasets/voc_aug.py data/VOCdevkit data/VOCdevkit/VOCaug --nproc 8 @@ -72,12 +76,13 @@ python tools/convert_datasets/voc_aug.py data/VOCdevkit data/VOCdevkit/VOCaug -- Please refer to [concat dataset](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/tutorials/new_dataset.md#concatenate-dataset) for details about how to concatenate them and train them together. - ### ADE20K + The training and validation set of ADE20K could be download from this [link](http://data.csail.mit.edu/places/ADEchallenge/ADEChallengeData2016.zip). We may also download test set from [here](http://data.csail.mit.edu/places/ADEchallenge/ADEChallengeData2016.zip). ### Pascal Context + The training and validation set of Pascal Context could be download from [here](http://host.robots.ox.ac.uk/pascal/VOC/voc2010/VOCtrainval_03-May-2010.tar). You may also download test set from [here](http://host.robots.ox.ac.uk:8080/eval/downloads/VOC2010test.tar) after registration. To split the training and validation set from original dataset, you may download trainval_merged.json from [here](https://codalabuser.blob.core.windows.net/public/trainval_merged.json). @@ -110,12 +115,12 @@ python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--out ${RESULT_FILE}] [- ``` Optional arguments: + - `RESULT_FILE`: Filename of the output results in pickle format. If not specified, the results will not be saved to a file. - `EVAL_METRICS`: Items to be evaluated on the results. Allowed values depend on the dataset, e.g., `mIoU` is available for all dataset. Cityscapes could be evaluated by `cityscapes` as well as standard `mIoU` metrics. - `--show`: If specified, segmentation results will be plotted on the images and shown in a new window. It is only applicable to single GPU testing and used for debugging and visualization. Please make sure that GUI is available in your environment, otherwise you may encounter the error like `cannot connect to X server`. - `--show-dir`: If specified, segmentation results will be plotted on the images and saved to the specified directory. It is only applicable to single GPU testing and used for debugging and visualization. You do NOT need a GUI available in your environment for using this option. - Examples: Assume that you have already downloaded the checkpoints to the directory `checkpoints/`. @@ -151,6 +156,7 @@ Assume that you have already downloaded the checkpoints to the directory `checkp checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth \ 4 --out results.pkl --eval mIoU cityscapes ``` + Note: There is some gap (~0.1%) between cityscapes mIoU and our mIoU. The reason is that cityscapes average each class with class size by default. We use the simple version without average for all datasets. @@ -164,6 +170,7 @@ Assume that you have already downloaded the checkpoints to the directory `checkp img_dir='leftImg8bit/test', ann_dir='gtFine/test')) ``` + Then run test. ```shell @@ -175,7 +182,6 @@ Assume that you have already downloaded the checkpoints to the directory `checkp You will get png files under `./pspnet_test_results` directory. You may run `zip -r results.zip pspnet_test_results/` and submit the zip file to [evaluation server](https://www.cityscapes-dataset.com/submit/). - ### Image demo We provide a demo script to test a single image. @@ -191,7 +197,6 @@ python demo/image_demo.py demo/demo.jpg configs/pspnet/pspnet_r50-d8_512x1024_40 checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth --device cuda:0 --palette cityscapes ``` - ### High-level APIs for testing images Here is an example of building the model and test given images. @@ -223,7 +228,6 @@ for frame in video: A notebook demo can be found in [demo/inference_demo.ipynb](../demo/inference_demo.ipynb). - ## Train a model MMSegmentation implements distributed training and non-distributed training, @@ -233,6 +237,7 @@ All outputs (log files and checkpoints) will be saved to the working directory, which is specified by `work_dir` in the config file. By default we evaluate the model on the validation set after some iterations, you can change the evaluation interval by adding the interval argument in the training config. + ```python evaluation = dict(interval=4000) # This evaluate the model per 4000 iterations. ``` @@ -264,6 +269,7 @@ Optional arguments are: - `--load-from ${CHECKPOINT_FILE}`: Load weights from a checkpoint file (to start finetuning for another task). Difference between `resume-from` and `load-from`: + - `resume-from` loads both the model weights and optimizer state including the iteration number. - `load-from` loads only the model weights, starts the training from iteration 0. @@ -301,7 +307,6 @@ CUDA_VISIBLE_DEVICES=4,5,6,7 PORT=29501 ./tools/dist_train.sh ${CONFIG_FILE} 4 If you use `slurm_train.sh` to launch training jobs, you can set the port in commands with environment variable `MASTER_PORT`. - ```shell MASTER_PORT=29500 ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} ${CONFIG_FILE} MASTER_PORT=29501 ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} ${CONFIG_FILE} @@ -321,7 +326,7 @@ python tools/get_flops.py ${CONFIG_FILE} [--shape ${INPUT_SHAPE}] You will get the result like this. -``` +```none ============================== Input shape: (3, 2048, 1024) Flops: 1429.68 GMac diff --git a/docs/install.md b/docs/install.md index 46569bff78..09d1923178 100644 --- a/docs/install.md +++ b/docs/install.md @@ -54,6 +54,7 @@ pip install -e . ``` Or simply: + ```shell pip install mmcv ``` @@ -73,6 +74,7 @@ pip install git+https://github.com/open-mmlab/mmsegmentation.git # install the m ``` Instead, if you would like to install MMSegmentation in `dev` mode, run following + ```shell git clone https://github.com/open-mmlab/mmsegmentation.git cd mmsegmentation @@ -82,19 +84,15 @@ pip install -e . # or "python setup.py develop" Note: 1. When training or testing models on Windows, please ensure that all the '\\' in paths are replaced with '/'. Add .replace('\\', '/') to your python code wherever path strings occur. - 2. The `version+git_hash` will also be saved in trained models meta, e.g. 0.5.0+c415a2e. - 3. When MMsegmentation is installed on `dev` mode, any local modifications made to the code will take effect without the need to reinstall it. - 4. If you would like to use `opencv-python-headless` instead of `opencv-python`, -you can install it before installing MMCV. - + you can install it before installing MMCV. 5. Some dependencies are optional. Simply running `pip install -e .` will only install the minimum runtime requirements. -To use optional dependencies like `cityscapessripts` either install them manually with `pip install -r requirements/optional.txt` or specify desired extras when calling `pip` (e.g. `pip install -e .[optional]`). Valid keys for the extras field are: `all`, `tests`, `build`, and `optional`. - + To use optional dependencies like `cityscapessripts` either install them manually with `pip install -r requirements/optional.txt` or specify desired extras when calling `pip` (e.g. `pip install -e .[optional]`). Valid keys for the extras field are: `all`, `tests`, `build`, and `optional`. ## A from-scratch setup script + ### Linux Here is a full script for setting up mmsegmentation with conda and link the dataset path (supposing that your dataset path is $DATA_ROOT). @@ -114,6 +112,7 @@ ln -s $DATA_ROOT data ``` ### Windows(Experimental) + Here is a full script for setting up mmsegmentation with conda and link the dataset path (supposing that your dataset path is %DATA_ROOT%. Notice: It must be an absolute path). diff --git a/docs/model_zoo.md b/docs/model_zoo.md index c59f316423..fb86c5e377 100644 --- a/docs/model_zoo.md +++ b/docs/model_zoo.md @@ -4,24 +4,26 @@ * We use distributed training with 4 GPUs by default. * All pytorch-style pretrained backbones on ImageNet are train by ourselves, with the same procedure in the [paper](https://arxiv.org/pdf/1812.01187.pdf). -Our ResNet style backbone are based on ResNetV1c variant, where the 7x7 conv in the input stem is replaced with three 3x3 convs. + Our ResNet style backbone are based on ResNetV1c variant, where the 7x7 conv in the input stem is replaced with three 3x3 convs. * For the consistency across different hardwares, we report the GPU memory as the maximum value of `torch.cuda.max_memory_allocated()` for all 4 GPUs with `torch.backends.cudnn.benchmark=False`. Note that this value is usually less than what `nvidia-smi` shows. * We report the inference time as the total time of network forwarding and post-processing, excluding the data loading time. -Results are obtained with the script `tools/benchmark.py` which computes the average time on 200 images with `torch.backends.cudnn.benchmark=False`. + Results are obtained with the script `tools/benchmark.py` which computes the average time on 200 images with `torch.backends.cudnn.benchmark=False`. * There are two inference modes in this framework. - * `slide` mode: The `test_cfg` will be like `dict(mode='slide', crop_size=(769, 769), stride=(513, 513))`. - In this mode, multiple patches will be cropped from input image, passed into network individually. - The crop size and stride between patches are specified by `crop_size` and `stride`. - The overlapping area will be merged by average - * `whole` mode: The `test_cfg` will be like `dict(mode='whole')`. + * `slide` mode: The `test_cfg` will be like `dict(mode='slide', crop_size=(769, 769), stride=(513, 513))`. - In this mode, the whole imaged will be passed into network directly. + In this mode, multiple patches will be cropped from input image, passed into network individually. + The crop size and stride between patches are specified by `crop_size` and `stride`. + The overlapping area will be merged by average + + * `whole` mode: The `test_cfg` will be like `dict(mode='whole')`. + + In this mode, the whole imaged will be passed into network directly. By default, we use `slide` inference for 769x769 trained model, `whole` inference for the rest. * For input size of 8x+1 (e.g. 769), `align_corner=True` is adopted as a traditional practice. -Otherwise, for input size of 8x (e.g. 512, 1024), `align_corner=False` is adopted. + Otherwise, for input size of 8x (e.g. 512, 1024), `align_corner=False` is adopted. ## Baselines @@ -117,16 +119,16 @@ Please refer [Mixed Precision (FP16) Training](https://github.com/open-mmlab/mms ### Hardware -- 8 NVIDIA Tesla V100 (32G) GPUs -- Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz +* 8 NVIDIA Tesla V100 (32G) GPUs +* Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz ### Software environment -- Python 3.7 -- PyTorch 1.5 -- CUDA 10.1 -- CUDNN 7.6.03 -- NCCL 2.4.08 +* Python 3.7 +* PyTorch 1.5 +* CUDA 10.1 +* CUDNN 7.6.03 +* NCCL 2.4.08 ### Training speed diff --git a/docs/tutorials/data_pipeline.md b/docs/tutorials/data_pipeline.md index 825260d32c..6c91fbb1e9 100644 --- a/docs/tutorials/data_pipeline.md +++ b/docs/tutorials/data_pipeline.md @@ -56,56 +56,71 @@ For each operation, we list the related dict fields that are added/updated/remov ### Data loading `LoadImageFromFile` + - add: img, img_shape, ori_shape `LoadAnnotations` + - add: gt_semantic_seg, seg_fields ### Pre-processing `Resize` + - add: scale, scale_idx, pad_shape, scale_factor, keep_ratio - update: img, img_shape, *seg_fields `RandomFlip` + - add: flip - update: img, *seg_fields `Pad` + - add: pad_fixed_size, pad_size_divisor - update: img, pad_shape, *seg_fields `RandomCrop` + - update: img, pad_shape, *seg_fields `Normalize` + - add: img_norm_cfg - update: img `SegRescale` + - update: gt_semantic_seg `PhotoMetricDistortion` + - update: img ### Formatting `ToTensor` + - update: specified by `keys`. `ImageToTensor` + - update: specified by `keys`. `Transpose` + - update: specified by `keys`. `ToDataContainer` + - update: specified by `fields`. `DefaultFormatBundle` + - update: img, gt_semantic_seg `Collect` + - add: img_meta (the keys of img_meta is specified by `meta_keys`) - remove: all other keys except for those specified by `keys` diff --git a/docs/tutorials/new_dataset.md b/docs/tutorials/new_dataset.md index 6118904765..4e89022d0c 100644 --- a/docs/tutorials/new_dataset.md +++ b/docs/tutorials/new_dataset.md @@ -5,7 +5,8 @@ The simplest way is to convert your dataset to organize your data into folders. An example of file structure is as followed. -``` + +```none ├── data │ ├── my_dataset │ │ ├── img_dir @@ -22,16 +23,19 @@ An example of file structure is as followed. │ │ │ ├── val ``` + A training pair will consist of the files with same suffix in img_dir/ann_dir. If `split` argument is given, only part of the files in img_dir/ann_dir will be loaded. We may specify the prefix of files we would like to be included in the split txt. More specifically, for a split txt like following, -``` + +```none xxx zzz ``` + Only `data/my_dataset/img_dir/train/xxx{img_suffix}`, `data/my_dataset/img_dir/train/zzz{img_suffix}`, @@ -50,6 +54,7 @@ Currently it supports to concat and repeat datasets. We use `RepeatDataset` as wrapper to repeat the dataset. For example, suppose the original dataset is `Dataset_A`, to repeat it, the config looks like the following + ```python dataset_A_train = dict( type='RepeatDataset', @@ -70,6 +75,7 @@ There 2 ways to concatenate the dataset. you can concatenate the dataset configs like the following. 1. You may concatenate two `ann_dir`. + ```python dataset_A_train = dict( type='Dataset_A', @@ -78,6 +84,7 @@ There 2 ways to concatenate the dataset. pipeline=train_pipeline ) ``` + 2. You may concatenate two `split`. ```python @@ -89,6 +96,7 @@ There 2 ways to concatenate the dataset. pipeline=train_pipeline ) ``` + 3. You may concatenate two `ann_dir` and `split` simultaneously. ```python @@ -100,6 +108,7 @@ There 2 ways to concatenate the dataset. pipeline=train_pipeline ) ``` + In this case, `ann_dir_1` and `ann_dir_2` are corresponding to `split_1.txt` and `split_2.txt`. 2. In case the dataset you want to concatenate is different, you can concatenate the dataset configs like the following. @@ -120,7 +129,6 @@ There 2 ways to concatenate the dataset. ) ``` - A more complex example that repeats `Dataset_A` and `Dataset_B` by N and M times, respectively, and then concatenates the repeated datasets is as the following. ```python diff --git a/docs/tutorials/training_tricks.md b/docs/tutorials/training_tricks.md index 11b348075b..fd11163d87 100644 --- a/docs/tutorials/training_tricks.md +++ b/docs/tutorials/training_tricks.md @@ -7,29 +7,36 @@ MMSegmentation support following training tricks out of box. In semantic segmentation, some methods make the LR of heads larger than backbone to achieve better performance or faster convergence. In MMSegmentation, you may add following lines to config to make the LR of heads 10 times of backbone. + ```python optimizer=dict( paramwise_cfg = dict( custom_keys={ 'head': dict(lr_mult=10.)})) ``` + With this modification, the LR of any parameter group with `'head'` in name will be multiplied by 10. You may refer to [MMCV doc](https://mmcv.readthedocs.io/en/latest/api.html#mmcv.runner.DefaultOptimizerConstructor) for further details. ## Online Hard Example Mining (OHEM) + We implement pixel sampler [here](https://github.com/open-mmlab/mmsegmentation/tree/master/mmseg/core/seg/sampler) for training sampling. Here is an example config of training PSPNet with OHEM enabled. + ```python _base_ = './pspnet_r50-d8_512x1024_40k_cityscapes.py' model=dict( decode_head=dict( sampler=dict(type='OHEMPixelSampler', thresh=0.7, min_kept=100000)) ) ``` + In this way, only pixels with confidence score under 0.7 are used to train. And we keep at least 100000 pixels during training. If `thresh` is not specified, pixels of top ``min_kept`` loss will be selected. ## Class Balanced Loss + For dataset that is not balanced in classes distribution, you may change the loss weight of each class. Here is an example for cityscapes dataset. + ```python _base_ = './pspnet_r50-d8_512x1024_40k_cityscapes.py' model=dict( @@ -41,4 +48,5 @@ model=dict( 1.0489, 0.8786, 1.0023, 0.9539, 0.9843, 1.1116, 0.9037, 1.0865, 1.0955, 1.0865, 1.1529, 1.0507]))) ``` -`class_weight` will be passed into `CrossEntropyLoss` as `weight` argument. Please refer to [PyTorch Doc ](https://pytorch.org/docs/stable/nn.html?highlight=crossentropy#torch.nn.CrossEntropyLoss) for details. + +`class_weight` will be passed into `CrossEntropyLoss` as `weight` argument. Please refer to [PyTorch Doc](https://pytorch.org/docs/stable/nn.html?highlight=crossentropy#torch.nn.CrossEntropyLoss) for details. From 420578a3040da1fa4c75b31aafacbcf498d98c99 Mon Sep 17 00:00:00 2001 From: LabMemNo003 Date: Sat, 10 Oct 2020 19:18:27 +0800 Subject: [PATCH 050/706] [Doc] Correct download link of ADE20K's test set (#181) --- docs/getting_started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting_started.md b/docs/getting_started.md index 3b2d2db3d0..23b3021511 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -79,7 +79,7 @@ Please refer to [concat dataset](https://github.com/open-mmlab/mmsegmentation/bl ### ADE20K The training and validation set of ADE20K could be download from this [link](http://data.csail.mit.edu/places/ADEchallenge/ADEChallengeData2016.zip). -We may also download test set from [here](http://data.csail.mit.edu/places/ADEchallenge/ADEChallengeData2016.zip). +We may also download test set from [here](http://data.csail.mit.edu/places/ADEchallenge/release_test.zip). ### Pascal Context From 725a01f0385b02ba99afbdc3db1494dd5915f383 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Sat, 10 Oct 2020 19:19:52 +0800 Subject: [PATCH 051/706] Bump to 0.7 (#177) * Bump to 0.7 * update --- README.md | 2 +- docs/changelog.md | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4595f8633a..affcab7fa9 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ This project is released under the [Apache 2.0 license](LICENSE). ## Changelog -v0.5.1 was released in 11/08/2020. +v0.7.0 was released in 07/10/2020. Please refer to [changelog.md](docs/changelog.md) for details and release history. ## Benchmark and model zoo diff --git a/docs/changelog.md b/docs/changelog.md index 8f8e056e62..5c86d6b1d6 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,5 +1,30 @@ ## Changelog +### V0.7 (07/10/2020) + +**Highlights** + +- Support Pascal Context dataset and customizing class dataset. + +**Bug Fixes** + +- Fixed CPU inference ([#153](https://github.com/open-mmlab/mmsegmentation/pull/153)) + +**New Features** + +- Add DeepLab OS16 models ([#154](https://github.com/open-mmlab/mmsegmentation/pull/154)) +- Support Pascal Context dataset ([#133](https://github.com/open-mmlab/mmsegmentation/pull/133)) +- Support customizing dataset classes ([#71](https://github.com/open-mmlab/mmsegmentation/pull/71)) +- Support customizing dataset palette ([#157](https://github.com/open-mmlab/mmsegmentation/pull/157)) + +**Improvements** + +- Support 4D tensor output in ONNX ([#150](https://github.com/open-mmlab/mmsegmentation/pull/150)) +- Remove redundancies in ONNX export ([#160](https://github.com/open-mmlab/mmsegmentation/pull/160)) +- Migrate to MMCV DepthwiseSeparableConv ([#158](https://github.com/open-mmlab/mmsegmentation/pull/158)) +- Migrate to MMCV collect_env ([#137](https://github.com/open-mmlab/mmsegmentation/pull/137)) +- Use img_prefix and seg_prefix for loading ([#153](https://github.com/open-mmlab/mmsegmentation/pull/153)) + ### V0.6 (10/09/2020) **Highlights** From a2e9d97096252af43f42d20761182602baa942ff Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Sun, 11 Oct 2020 18:08:40 +0800 Subject: [PATCH 052/706] add missing 0.7 (#188) --- mmseg/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mmseg/version.py b/mmseg/version.py index ec75baacb1..0e889ae80f 100644 --- a/mmseg/version.py +++ b/mmseg/version.py @@ -1,6 +1,6 @@ # Copyright (c) Open-MMLab. All rights reserved. -__version__ = '0.6.0' +__version__ = '0.7.0' def parse_version_info(version_str): From eaefe54e8dd526d31868c7bec056b026037c4417 Mon Sep 17 00:00:00 2001 From: yamengxi <49829199+yamengxi@users.noreply.github.com> Date: Sun, 18 Oct 2020 16:22:42 +0800 Subject: [PATCH 053/706] Add blood vessel dataset processing script (#184) * Add blood vessel dataset processing script * Fix syntax error * Fix syntax error * Fix syntax error * Fix bugs * Fix bugs * Fix bugs * Use safe functions and expand more apis * Use safe functions and expand more apis * Fix hard code and verify dataset integrity --- docs/getting_started.md | 76 +++++++++++++ setup.cfg | 2 +- tools/convert_datasets/chase_db1.py | 83 ++++++++++++++ tools/convert_datasets/drive.py | 109 ++++++++++++++++++ tools/convert_datasets/hrf.py | 110 +++++++++++++++++++ tools/convert_datasets/stare.py | 165 ++++++++++++++++++++++++++++ 6 files changed, 544 insertions(+), 1 deletion(-) create mode 100644 tools/convert_datasets/chase_db1.py create mode 100644 tools/convert_datasets/drive.py create mode 100644 tools/convert_datasets/hrf.py create mode 100644 tools/convert_datasets/stare.py diff --git a/docs/getting_started.md b/docs/getting_started.md index 23b3021511..15fd155b5d 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -46,6 +46,34 @@ mmsegmentation │ │ │ ├── images │ │ │ │ ├── training │ │ │ │ ├── validation +│ ├── CHASE_DB1 +│ │ ├── images +│ │ │ ├── training +│ │ │ ├── validation +│ │ ├── annotations +│ │ │ ├── training +│ │ │ ├── validation +│ ├── DRIVE +│ │ ├── images +│ │ │ ├── training +│ │ │ ├── validation +│ │ ├── annotations +│ │ │ ├── training +│ │ │ ├── validation +│ ├── HRF +│ │ ├── images +│ │ │ ├── training +│ │ │ ├── validation +│ │ ├── annotations +│ │ │ ├── training +│ │ │ ├── validation +│ ├── STARE +│ │ ├── images +│ │ │ ├── training +│ │ │ ├── validation +│ │ ├── annotations +│ │ │ ├── training +│ │ │ ├── validation ``` @@ -93,6 +121,54 @@ If you would like to use Pascal Context dataset, please install [Detail](https:/ python tools/convert_datasets/pascal_context.py data/VOCdevkit data/VOCdevkit/VOC2010/trainval_merged.json ``` +### CHASE DB1 + +The training and validation set of CHASE DB1 could be download from [here](https://staffnet.kingston.ac.uk/~ku15565/CHASE_DB1/assets/CHASEDB1.zip). + +To convert CHASE DB1 dataset to MMSegmentation format, you should run the following command: + +```shell +python tools/convert_datasets/chase_db1.py /path/to/CHASEDB1.zip +``` + +The script will make directory structure automatically. + +### DRIVE + +The training and validation set of DRIVE could be download from [here](https://drive.grand-challenge.org/). Before that, you should register an account. Currently '1st_manual' is not provided officially. + +To convert DRIVE dataset to MMSegmentation format, you should run the following command: + +```shell +python tools/convert_datasets/drive.py /path/to/training.zip /path/to/test.zip +``` + +The script will make directory structure automatically. + +### HRF + +First, download [healthy.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/healthy.zip), [glaucoma.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/glaucoma.zip), [diabetic_retinopathy.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/diabetic_retinopathy.zip), [healthy_manualsegm.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/healthy_manualsegm.zip), [glaucoma_manualsegm.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/glaucoma_manualsegm.zip) and [diabetic_retinopathy_manualsegm.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/diabetic_retinopathy_manualsegm.zip). + +To convert HRF dataset to MMSegmentation format, you should run the following command: + +```shell +python tools/convert_datasets/hrf.py /path/to/healthy.zip /path/to/healthy_manualsegm.zip /path/to/glaucoma.zip /path/to/glaucoma_manualsegm.zip /path/to/diabetic_retinopathy.zip /path/to/diabetic_retinopathy_manualsegm.zip +``` + +The script will make directory structure automatically. + +### STARE + +First, download [stare-images.tar](http://cecas.clemson.edu/~ahoover/stare/probing/stare-images.tar), [labels-ah.tar](http://cecas.clemson.edu/~ahoover/stare/probing/labels-ah.tar) and [labels-vk.tar](http://cecas.clemson.edu/~ahoover/stare/probing/labels-vk.tar). + +To convert STARE dataset to MMSegmentation format, you should run the following command: + +```shell +python tools/convert_datasets/stare.py /path/to/stare-images.tar /path/to/labels-ah.tar /path/to/labels-vk.tar +``` + +The script will make directory structure automatically. + ## Inference with pretrained models We provide testing scripts to evaluate a whole dataset (Cityscapes, PASCAL VOC, ADE20k, etc.), diff --git a/setup.cfg b/setup.cfg index cb533f4b59..a5fb07d401 100644 --- a/setup.cfg +++ b/setup.cfg @@ -8,6 +8,6 @@ line_length = 79 multi_line_output = 0 known_standard_library = setuptools known_first_party = mmseg -known_third_party = PIL,cityscapesscripts,detail,matplotlib,mmcv,numpy,onnxruntime,oss2,pytest,scipy,torch +known_third_party = PIL,cityscapesscripts,cv2,detail,matplotlib,mmcv,numpy,onnxruntime,oss2,pytest,scipy,torch no_lines_before = STDLIB,LOCALFOLDER default_section = THIRDPARTY diff --git a/tools/convert_datasets/chase_db1.py b/tools/convert_datasets/chase_db1.py new file mode 100644 index 0000000000..e127a04f74 --- /dev/null +++ b/tools/convert_datasets/chase_db1.py @@ -0,0 +1,83 @@ +import argparse +import os +import os.path as osp +import tempfile +import zipfile + +import mmcv + +CHASE_DB1_LEN = 28 * 3 +TRAINING_LEN = 60 + + +def parse_args(): + parser = argparse.ArgumentParser( + description='Convert CHASE_DB1 dataset to mmsegmentation format') + parser.add_argument('dataset_path', help='path of CHASEDB1.zip') + parser.add_argument('--tmp_dir', help='path of the temporary directory') + parser.add_argument('-o', '--out_dir', help='output path') + args = parser.parse_args() + return args + + +def main(): + args = parse_args() + dataset_path = args.dataset_path + if args.out_dir is None: + out_dir = osp.join('data', 'CHASE_DB1') + else: + out_dir = args.out_dir + + print('Making directories...') + mmcv.mkdir_or_exist(out_dir) + mmcv.mkdir_or_exist(osp.join(out_dir, 'images')) + mmcv.mkdir_or_exist(osp.join(out_dir, 'images', 'training')) + mmcv.mkdir_or_exist(osp.join(out_dir, 'images', 'validation')) + mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations')) + mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations', 'training')) + mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations', 'validation')) + + with tempfile.TemporaryDirectory(dir=args.tmp_dir) as tmp_dir: + print('Extracting CHASEDB1.zip...') + zip_file = zipfile.ZipFile(dataset_path) + zip_file.extractall(tmp_dir) + + print('Generating training dataset...') + + assert len(os.listdir(tmp_dir)) == CHASE_DB1_LEN, \ + 'len(os.listdir(tmp_dir)) != {}'.format(CHASE_DB1_LEN) + + for img_name in sorted(os.listdir(tmp_dir))[:TRAINING_LEN]: + img = mmcv.imread(osp.join(tmp_dir, img_name)) + if osp.splitext(img_name)[1] == '.jpg': + mmcv.imwrite(img, + osp.join(out_dir, 'images', 'training', img_name)) + else: + # The annotation img should be divided by 128, because some of + # the annotation imgs are not standard. We should set a + # threshold to convert the nonstandard annotation imgs. The + # value divided by 128 is equivalent to '1 if value >= 128 + # else 0' + mmcv.imwrite( + img[:, :, 0] // 128, + osp.join(out_dir, 'annotations', 'training', + osp.splitext(img_name)[0] + '.jpg')) + + for img_name in sorted(os.listdir(tmp_dir))[TRAINING_LEN:]: + img = mmcv.imread(osp.join(tmp_dir, img_name)) + if osp.splitext(img_name)[1] == '.jpg': + mmcv.imwrite( + img, osp.join(out_dir, 'images', 'validation', img_name)) + else: + mmcv.imwrite( + img[:, :, 0] // 128, + osp.join(out_dir, 'annotations', 'validation', + osp.splitext(img_name)[0] + '.jpg')) + + print('Removing the temporary files...') + + print('Done!') + + +if __name__ == '__main__': + main() diff --git a/tools/convert_datasets/drive.py b/tools/convert_datasets/drive.py new file mode 100644 index 0000000000..9da30fb1b4 --- /dev/null +++ b/tools/convert_datasets/drive.py @@ -0,0 +1,109 @@ +import argparse +import os +import os.path as osp +import tempfile +import zipfile + +import cv2 +import mmcv + + +def parse_args(): + parser = argparse.ArgumentParser( + description='Convert DRIVE dataset to mmsegmentation format') + parser.add_argument( + 'training_path', help='the training part of DRIVE dataset') + parser.add_argument( + 'testing_path', help='the testing part of DRIVE dataset') + parser.add_argument('--tmp_dir', help='path of the temporary directory') + parser.add_argument('-o', '--out_dir', help='output path') + args = parser.parse_args() + return args + + +def main(): + args = parse_args() + training_path = args.training_path + testing_path = args.testing_path + if args.out_dir is None: + out_dir = osp.join('data', 'DRIVE') + else: + out_dir = args.out_dir + + print('Making directories...') + mmcv.mkdir_or_exist(out_dir) + mmcv.mkdir_or_exist(osp.join(out_dir, 'images')) + mmcv.mkdir_or_exist(osp.join(out_dir, 'images', 'training')) + mmcv.mkdir_or_exist(osp.join(out_dir, 'images', 'validation')) + mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations')) + mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations', 'training')) + mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations', 'validation')) + + with tempfile.TemporaryDirectory(dir=args.tmp_dir) as tmp_dir: + print('Extracting training.zip...') + zip_file = zipfile.ZipFile(training_path) + zip_file.extractall(tmp_dir) + + print('Generating training dataset...') + now_dir = osp.join(tmp_dir, 'training', 'images') + for img_name in os.listdir(now_dir): + img = mmcv.imread(osp.join(now_dir, img_name)) + mmcv.imwrite( + img, + osp.join(out_dir, 'images', 'training', + osp.splitext(img_name)[0] + '.jpg')) + + now_dir = osp.join(tmp_dir, 'training', '1st_manual') + for img_name in os.listdir(now_dir): + cap = cv2.VideoCapture(osp.join(now_dir, img_name)) + ret, img = cap.read() + mmcv.imwrite( + img[:, :, 0] // 128, + osp.join(out_dir, 'annotations', 'training', + osp.splitext(img_name)[0] + '.jpg')) + + print('Extracting test.zip...') + zip_file = zipfile.ZipFile(testing_path) + zip_file.extractall(tmp_dir) + + print('Generating validation dataset...') + now_dir = osp.join(tmp_dir, 'test', 'images') + for img_name in os.listdir(now_dir): + img = mmcv.imread(osp.join(now_dir, img_name)) + mmcv.imwrite( + img, + osp.join(out_dir, 'images', 'validation', + osp.splitext(img_name)[0] + '.jpg')) + + now_dir = osp.join(tmp_dir, 'test', '1st_manual') + if osp.exists(now_dir): + for img_name in os.listdir(now_dir): + cap = cv2.VideoCapture(osp.join(now_dir, img_name)) + ret, img = cap.read() + # The annotation img should be divided by 128, because some of + # the annotation imgs are not standard. We should set a + # threshold to convert the nonstandard annotation imgs. The + # value divided by 128 is equivalent to '1 if value >= 128 + # else 0' + mmcv.imwrite( + img[:, :, 0] // 128, + osp.join(out_dir, 'annotations', 'validation', + osp.splitext(img_name)[0] + '.jpg')) + + now_dir = osp.join(tmp_dir, 'test', '2nd_manual') + if osp.exists(now_dir): + for img_name in os.listdir(now_dir): + cap = cv2.VideoCapture(osp.join(now_dir, img_name)) + ret, img = cap.read() + mmcv.imwrite( + img[:, :, 0] // 128, + osp.join(out_dir, 'annotations', 'validation', + osp.splitext(img_name)[0] + '.jpg')) + + print('Removing the temporary files...') + + print('Done!') + + +if __name__ == '__main__': + main() diff --git a/tools/convert_datasets/hrf.py b/tools/convert_datasets/hrf.py new file mode 100644 index 0000000000..3f00b9bcd9 --- /dev/null +++ b/tools/convert_datasets/hrf.py @@ -0,0 +1,110 @@ +import argparse +import os +import os.path as osp +import tempfile +import zipfile + +import mmcv + +HRF_LEN = 15 +TRAINING_LEN = 5 + + +def parse_args(): + parser = argparse.ArgumentParser( + description='Convert HRF dataset to mmsegmentation format') + parser.add_argument('healthy_path', help='the path of healthy.zip') + parser.add_argument( + 'healthy_manualsegm_path', help='the path of healthy_manualsegm.zip') + parser.add_argument('glaucoma_path', help='the path of glaucoma.zip') + parser.add_argument( + 'glaucoma_manualsegm_path', help='the path of glaucoma_manualsegm.zip') + parser.add_argument( + 'diabetic_retinopathy_path', + help='the path of diabetic_retinopathy.zip') + parser.add_argument( + 'diabetic_retinopathy_manualsegm_path', + help='the path of diabetic_retinopathy_manualsegm.zip') + parser.add_argument('--tmp_dir', help='path of the temporary directory') + parser.add_argument('-o', '--out_dir', help='output path') + args = parser.parse_args() + return args + + +def main(): + args = parse_args() + images_path = [ + args.healthy_path, args.glaucoma_path, args.diabetic_retinopathy_path + ] + annotations_path = [ + args.healthy_manualsegm_path, args.glaucoma_manualsegm_path, + args.diabetic_retinopathy_manualsegm_path + ] + if args.out_dir is None: + out_dir = osp.join('data', 'HRF') + else: + out_dir = args.out_dir + + print('Making directories...') + mmcv.mkdir_or_exist(out_dir) + mmcv.mkdir_or_exist(osp.join(out_dir, 'images')) + mmcv.mkdir_or_exist(osp.join(out_dir, 'images', 'training')) + mmcv.mkdir_or_exist(osp.join(out_dir, 'images', 'validation')) + mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations')) + mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations', 'training')) + mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations', 'validation')) + + print('Generating images...') + for now_path in images_path: + with tempfile.TemporaryDirectory(dir=args.tmp_dir) as tmp_dir: + zip_file = zipfile.ZipFile(now_path) + zip_file.extractall(tmp_dir) + + assert len(os.listdir(tmp_dir)) == HRF_LEN, \ + 'len(os.listdir(tmp_dir)) != {}'.format(HRF_LEN) + + for filename in sorted(os.listdir(tmp_dir))[:TRAINING_LEN]: + img = mmcv.imread(osp.join(tmp_dir, filename)) + mmcv.imwrite( + img, + osp.join(out_dir, 'images', 'training', + osp.splitext(filename)[0] + '.jpg')) + for filename in sorted(os.listdir(tmp_dir))[TRAINING_LEN:]: + img = mmcv.imread(osp.join(tmp_dir, filename)) + mmcv.imwrite( + img, + osp.join(out_dir, 'images', 'validation', + osp.splitext(filename)[0] + '.jpg')) + + print('Generating annotations...') + for now_path in annotations_path: + with tempfile.TemporaryDirectory(dir=args.tmp_dir) as tmp_dir: + zip_file = zipfile.ZipFile(now_path) + zip_file.extractall(tmp_dir) + + assert len(os.listdir(tmp_dir)) == HRF_LEN, \ + 'len(os.listdir(tmp_dir)) != {}'.format(HRF_LEN) + + for filename in sorted(os.listdir(tmp_dir))[:TRAINING_LEN]: + img = mmcv.imread(osp.join(tmp_dir, filename)) + # The annotation img should be divided by 128, because some of + # the annotation imgs are not standard. We should set a + # threshold to convert the nonstandard annotation imgs. The + # value divided by 128 is equivalent to '1 if value >= 128 + # else 0' + mmcv.imwrite( + img[:, :, 0] // 128, + osp.join(out_dir, 'annotations', 'training', + osp.splitext(filename)[0] + '.jpg')) + for filename in sorted(os.listdir(tmp_dir))[TRAINING_LEN:]: + img = mmcv.imread(osp.join(tmp_dir, filename)) + mmcv.imwrite( + img[:, :, 0] // 128, + osp.join(out_dir, 'annotations', 'validation', + osp.splitext(filename)[0] + '.jpg')) + + print('Done!') + + +if __name__ == '__main__': + main() diff --git a/tools/convert_datasets/stare.py b/tools/convert_datasets/stare.py new file mode 100644 index 0000000000..28129da08b --- /dev/null +++ b/tools/convert_datasets/stare.py @@ -0,0 +1,165 @@ +import argparse +import gzip +import os +import os.path as osp +import tarfile +import tempfile + +import mmcv + +STARE_LEN = 20 +TRAINING_LEN = 10 + + +def un_gz(src, dst): + g_file = gzip.GzipFile(src) + with open(dst, 'wb+') as f: + f.write(g_file.read()) + g_file.close() + + +def parse_args(): + parser = argparse.ArgumentParser( + description='Convert STARE dataset to mmsegmentation format') + parser.add_argument('image_path', help='the path of stare-images.tar') + parser.add_argument('labels_ah', help='the path of labels-ah.tar') + parser.add_argument('labels_vk', help='the path of labels-vk.tar') + parser.add_argument('--tmp_dir', help='path of the temporary directory') + parser.add_argument('-o', '--out_dir', help='output path') + args = parser.parse_args() + return args + + +def main(): + args = parse_args() + image_path = args.image_path + labels_ah = args.labels_ah + labels_vk = args.labels_vk + if args.out_dir is None: + out_dir = osp.join('data', 'STARE') + else: + out_dir = args.out_dir + + print('Making directories...') + mmcv.mkdir_or_exist(out_dir) + mmcv.mkdir_or_exist(osp.join(out_dir, 'images')) + mmcv.mkdir_or_exist(osp.join(out_dir, 'images', 'training')) + mmcv.mkdir_or_exist(osp.join(out_dir, 'images', 'validation')) + mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations')) + mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations', 'training')) + mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations', 'validation')) + + with tempfile.TemporaryDirectory(dir=args.tmp_dir) as tmp_dir: + mmcv.mkdir_or_exist(osp.join(tmp_dir, 'gz')) + mmcv.mkdir_or_exist(osp.join(tmp_dir, 'files')) + + print('Extracting stare-images.tar...') + with tarfile.open(image_path) as f: + f.extractall(osp.join(tmp_dir, 'gz')) + + for filename in os.listdir(osp.join(tmp_dir, 'gz')): + un_gz( + osp.join(tmp_dir, 'gz', filename), + osp.join(tmp_dir, 'files', + osp.splitext(filename)[0])) + + now_dir = osp.join(tmp_dir, 'files') + + assert len(os.listdir(now_dir)) == STARE_LEN, \ + 'len(os.listdir(now_dir)) != {}'.format(STARE_LEN) + + for filename in sorted(os.listdir(now_dir))[:TRAINING_LEN]: + img = mmcv.imread(osp.join(now_dir, filename)) + mmcv.imwrite( + img, + osp.join(out_dir, 'images', 'training', + osp.splitext(filename)[0] + '.jpg')) + + for filename in sorted(os.listdir(now_dir))[TRAINING_LEN:]: + img = mmcv.imread(osp.join(now_dir, filename)) + mmcv.imwrite( + img, + osp.join(out_dir, 'images', 'validation', + osp.splitext(filename)[0] + '.jpg')) + + print('Removing the temporary files...') + + with tempfile.TemporaryDirectory(dir=args.tmp_dir) as tmp_dir: + mmcv.mkdir_or_exist(osp.join(tmp_dir, 'gz')) + mmcv.mkdir_or_exist(osp.join(tmp_dir, 'files')) + + print('Extracting labels-ah.tar...') + with tarfile.open(labels_ah) as f: + f.extractall(osp.join(tmp_dir, 'gz')) + + for filename in os.listdir(osp.join(tmp_dir, 'gz')): + un_gz( + osp.join(tmp_dir, 'gz', filename), + osp.join(tmp_dir, 'files', + osp.splitext(filename)[0])) + + now_dir = osp.join(tmp_dir, 'files') + + assert len(os.listdir(now_dir)) == STARE_LEN, \ + 'len(os.listdir(now_dir)) != {}'.format(STARE_LEN) + + for filename in sorted(os.listdir(now_dir))[:TRAINING_LEN]: + img = mmcv.imread(osp.join(now_dir, filename)) + # The annotation img should be divided by 128, because some of + # the annotation imgs are not standard. We should set a threshold + # to convert the nonstandard annotation imgs. The value divided by + # 128 equivalent to '1 if value >= 128 else 0' + mmcv.imwrite( + img[:, :, 0] // 128, + osp.join(out_dir, 'annotations', 'training', + osp.splitext(filename)[0] + '.jpg')) + + for filename in sorted(os.listdir(now_dir))[TRAINING_LEN:]: + img = mmcv.imread(osp.join(now_dir, filename)) + mmcv.imwrite( + img[:, :, 0] // 128, + osp.join(out_dir, 'annotations', 'validation', + osp.splitext(filename)[0] + '.jpg')) + + print('Removing the temporary files...') + + with tempfile.TemporaryDirectory(dir=args.tmp_dir) as tmp_dir: + mmcv.mkdir_or_exist(osp.join(tmp_dir, 'gz')) + mmcv.mkdir_or_exist(osp.join(tmp_dir, 'files')) + + print('Extracting labels-vk.tar...') + with tarfile.open(labels_vk) as f: + f.extractall(osp.join(tmp_dir, 'gz')) + + for filename in os.listdir(osp.join(tmp_dir, 'gz')): + un_gz( + osp.join(tmp_dir, 'gz', filename), + osp.join(tmp_dir, 'files', + osp.splitext(filename)[0])) + + now_dir = osp.join(tmp_dir, 'files') + + assert len(os.listdir(now_dir)) == STARE_LEN, \ + 'len(os.listdir(now_dir)) != {}'.format(STARE_LEN) + + for filename in sorted(os.listdir(now_dir))[:TRAINING_LEN]: + img = mmcv.imread(osp.join(now_dir, filename)) + mmcv.imwrite( + img[:, :, 0] // 128, + osp.join(out_dir, 'annotations', 'training', + osp.splitext(filename)[0] + '.jpg')) + + for filename in sorted(os.listdir(now_dir))[TRAINING_LEN:]: + img = mmcv.imread(osp.join(now_dir, filename)) + mmcv.imwrite( + img[:, :, 0] // 128, + osp.join(out_dir, 'annotations', 'validation', + osp.splitext(filename)[0] + '.jpg')) + + print('Removing the temporary files...') + + print('Done!') + + +if __name__ == '__main__': + main() From 59564510148a5996beeab3731fa05f7a37588fe1 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Thu, 22 Oct 2020 02:24:38 +0800 Subject: [PATCH 054/706] add unet (#161) * add unet * add unet * add unet * update test_unet * update test_unet * update test_unet * update test_unet * fix bugs * add init method for unet * add test of UNet init_weights method * add registry * merge upsample * fix test * Update mmseg/models/backbones/unet.py Co-authored-by: Jerry Jiarui XU * Update mmseg/models/backbones/unet.py Co-authored-by: Jerry Jiarui XU * split UpConvBlock from UNet * use reversed * rename upsample module * rename upsample module * rename upsample module * rename upsample module Co-authored-by: Jerry Jiarui XU --- mmseg/models/backbones/__init__.py | 3 +- mmseg/models/backbones/unet.py | 428 ++++++++++++++ mmseg/models/utils/__init__.py | 4 +- mmseg/models/utils/up_conv_block.py | 101 ++++ tests/test_models/test_unet.py | 833 ++++++++++++++++++++++++++++ 5 files changed, 1367 insertions(+), 2 deletions(-) create mode 100644 mmseg/models/backbones/unet.py create mode 100644 mmseg/models/utils/up_conv_block.py create mode 100644 tests/test_models/test_unet.py diff --git a/mmseg/models/backbones/__init__.py b/mmseg/models/backbones/__init__.py index 6253bab425..db5eb1c5c3 100644 --- a/mmseg/models/backbones/__init__.py +++ b/mmseg/models/backbones/__init__.py @@ -4,8 +4,9 @@ from .resnest import ResNeSt from .resnet import ResNet, ResNetV1c, ResNetV1d from .resnext import ResNeXt +from .unet import UNet __all__ = [ 'ResNet', 'ResNetV1c', 'ResNetV1d', 'ResNeXt', 'HRNet', 'FastSCNN', - 'ResNeSt', 'MobileNetV2' + 'ResNeSt', 'MobileNetV2', 'UNet' ] diff --git a/mmseg/models/backbones/unet.py b/mmseg/models/backbones/unet.py new file mode 100644 index 0000000000..0e1b001c82 --- /dev/null +++ b/mmseg/models/backbones/unet.py @@ -0,0 +1,428 @@ +import torch.nn as nn +import torch.utils.checkpoint as cp +from mmcv.cnn import (UPSAMPLE_LAYERS, ConvModule, build_activation_layer, + build_norm_layer, constant_init, kaiming_init) +from mmcv.runner import load_checkpoint +from mmcv.utils.parrots_wrapper import _BatchNorm + +from mmseg.utils import get_root_logger +from ..builder import BACKBONES +from ..utils import UpConvBlock + + +class BasicConvBlock(nn.Module): + """Basic convolutional block for UNet. + + This module consists of several plain convolutional layers. + + Args: + in_channels (int): Number of input channels. + out_channels (int): Number of output channels. + num_convs (int): Number of convolutional layers. Default: 2. + stride (int): Whether use stride convolution to downsample + the input feature map. If stride=2, it only uses stride convolution + in the first convolutional layer to downsample the input feature + map. Options are 1 or 2. Default: 1. + dilation (int): Whether use dilated convolution to expand the + receptive field. Set dilation rate of each convolutional layer and + the dilation rate of the first convolutional layer is always 1. + Default: 1. + with_cp (bool): Use checkpoint or not. Using checkpoint will save some + memory while slowing down the training speed. Default: False. + conv_cfg (dict | None): Config dict for convolution layer. + Default: None. + norm_cfg (dict | None): Config dict for normalization layer. + Default: dict(type='BN'). + act_cfg (dict | None): Config dict for activation layer in ConvModule. + Default: dict(type='ReLU'). + dcn (bool): Use deformable convoluton in convolutional layer or not. + Default: None. + plugins (dict): plugins for convolutional layers. Default: None. + """ + + def __init__(self, + in_channels, + out_channels, + num_convs=2, + stride=1, + dilation=1, + with_cp=False, + conv_cfg=None, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + dcn=None, + plugins=None): + super(BasicConvBlock, self).__init__() + assert dcn is None, 'Not implemented yet.' + assert plugins is None, 'Not implemented yet.' + + self.with_cp = with_cp + convs = [] + for i in range(num_convs): + convs.append( + ConvModule( + in_channels=in_channels if i == 0 else out_channels, + out_channels=out_channels, + kernel_size=3, + stride=stride if i == 0 else 1, + dilation=1 if i == 0 else dilation, + padding=1 if i == 0 else dilation, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg)) + + self.convs = nn.Sequential(*convs) + + def forward(self, x): + """Forward function.""" + + if self.with_cp and x.requires_grad: + out = cp.checkpoint(self.convs, x) + else: + out = self.convs(x) + return out + + +@UPSAMPLE_LAYERS.register_module() +class DeconvModule(nn.Module): + """Deconvolution upsample module in decoder for UNet (2X upsample). + + This module uses deconvolution to upsample feature map in the decoder + of UNet. + + Args: + in_channels (int): Number of input channels. + out_channels (int): Number of output channels. + with_cp (bool): Use checkpoint or not. Using checkpoint will save some + memory while slowing down the training speed. Default: False. + norm_cfg (dict | None): Config dict for normalization layer. + Default: dict(type='BN'). + act_cfg (dict | None): Config dict for activation layer in ConvModule. + Default: dict(type='ReLU'). + kernel_size (int): Kernel size of the convolutional layer. Default: 4. + """ + + def __init__(self, + in_channels, + out_channels, + with_cp=False, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + *, + kernel_size=4, + scale_factor=2): + super(DeconvModule, self).__init__() + + assert (kernel_size - scale_factor >= 0) and\ + (kernel_size - scale_factor) % 2 == 0,\ + f'kernel_size should be greater than or equal to scale_factor '\ + f'and (kernel_size - scale_factor) should be even numbers, '\ + f'while the kernel size is {kernel_size} and scale_factor is '\ + f'{scale_factor}.' + + stride = scale_factor + padding = (kernel_size - scale_factor) // 2 + self.with_cp = with_cp + deconv = nn.ConvTranspose2d( + in_channels, + out_channels, + kernel_size=kernel_size, + stride=stride, + padding=padding) + + norm_name, norm = build_norm_layer(norm_cfg, out_channels) + activate = build_activation_layer(act_cfg) + self.deconv_upsamping = nn.Sequential(deconv, norm, activate) + + def forward(self, x): + """Forward function.""" + + if self.with_cp and x.requires_grad: + out = cp.checkpoint(self.deconv_upsamping, x) + else: + out = self.deconv_upsamping(x) + return out + + +@UPSAMPLE_LAYERS.register_module() +class InterpConv(nn.Module): + """Interpolation upsample module in decoder for UNet. + + This module uses interpolation to upsample feature map in the decoder + of UNet. It consists of one interpolation upsample layer and one + convolutional layer. It can be one interpolation upsample layer followed + by one convolutional layer (conv_first=False) or one convolutional layer + followed by one interpolation upsample layer (conv_first=True). + + Args: + in_channels (int): Number of input channels. + out_channels (int): Number of output channels. + with_cp (bool): Use checkpoint or not. Using checkpoint will save some + memory while slowing down the training speed. Default: False. + norm_cfg (dict | None): Config dict for normalization layer. + Default: dict(type='BN'). + act_cfg (dict | None): Config dict for activation layer in ConvModule. + Default: dict(type='ReLU'). + conv_cfg (dict | None): Config dict for convolution layer. + Default: None. + conv_first (bool): Whether convolutional layer or interpolation + upsample layer first. Default: False. It means interpolation + upsample layer followed by one convolutional layer. + kernel_size (int): Kernel size of the convolutional layer. Default: 1. + stride (int): Stride of the convolutional layer. Default: 1. + padding (int): Padding of the convolutional layer. Default: 1. + upsampe_cfg (dict): Interpolation config of the upsample layer. + Default: dict( + scale_factor=2, mode='bilinear', align_corners=False). + """ + + def __init__(self, + in_channels, + out_channels, + with_cp=False, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + *, + conv_cfg=None, + conv_first=False, + kernel_size=1, + stride=1, + padding=0, + upsampe_cfg=dict( + scale_factor=2, mode='bilinear', align_corners=False)): + super(InterpConv, self).__init__() + + self.with_cp = with_cp + conv = ConvModule( + in_channels, + out_channels, + kernel_size=kernel_size, + stride=stride, + padding=padding, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + upsample = nn.Upsample(**upsampe_cfg) + if conv_first: + self.interp_upsample = nn.Sequential(conv, upsample) + else: + self.interp_upsample = nn.Sequential(upsample, conv) + + def forward(self, x): + """Forward function.""" + + if self.with_cp and x.requires_grad: + out = cp.checkpoint(self.interp_upsample, x) + else: + out = self.interp_upsample(x) + return out + + +@BACKBONES.register_module() +class UNet(nn.Module): + """UNet backbone. + U-Net: Convolutional Networks for Biomedical Image Segmentation. + https://arxiv.org/pdf/1505.04597.pdf + + Args: + in_channels (int): Number of input image channels. Default" 3. + base_channels (int): Number of base channels of each stage. + The output channels of the first stage. Default: 64. + num_stages (int): Number of stages in encoder, normally 5. Default: 5. + strides (Sequence[int 1 | 2]): Strides of each stage in encoder. + len(strides) is equal to num_stages. Normally the stride of the + first stage in encoder is 1. If strides[i]=2, it uses stride + convolution to downsample in the correspondance encoder stage. + Default: (1, 1, 1, 1, 1). + enc_num_convs (Sequence[int]): Number of convolutional layers in the + convolution block of the correspondance encoder stage. + Default: (2, 2, 2, 2, 2). + dec_num_convs (Sequence[int]): Number of convolutional layers in the + convolution block of the correspondance decoder stage. + Default: (2, 2, 2, 2). + downsamples (Sequence[int]): Whether use MaxPool to downsample the + feature map after the first stage of encoder + (stages: [1, num_stages)). If the correspondance encoder stage use + stride convolution (strides[i]=2), it will never use MaxPool to + downsample, even downsamples[i-1]=True. + Default: (True, True, True, True). + enc_dilations (Sequence[int]): Dilation rate of each stage in encoder. + Default: (1, 1, 1, 1, 1). + dec_dilations (Sequence[int]): Dilation rate of each stage in decoder. + Default: (1, 1, 1, 1). + with_cp (bool): Use checkpoint or not. Using checkpoint will save some + memory while slowing down the training speed. Default: False. + conv_cfg (dict | None): Config dict for convolution layer. + Default: None. + norm_cfg (dict | None): Config dict for normalization layer. + Default: dict(type='BN'). + act_cfg (dict | None): Config dict for activation layer in ConvModule. + Default: dict(type='ReLU'). + upsample_cfg (dict): The upsample config of the upsample module in + decoder. Default: dict(type='InterpConv'). + norm_eval (bool): Whether to set norm layers to eval mode, namely, + freeze running stats (mean and var). Note: Effect on Batch Norm + and its variants only. Default: False. + dcn (bool): Use deformable convoluton in convolutional layer or not. + Default: None. + plugins (dict): plugins for convolutional layers. Default: None. + + Notice: + The input image size should be devisible by the whole downsample rate + of the encoder. More detail of the whole downsample rate can be found + in UNet._check_input_devisible. + + """ + + def __init__(self, + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 1, 1, 1, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(True, True, True, True), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1), + with_cp=False, + conv_cfg=None, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + upsample_cfg=dict(type='InterpConv'), + norm_eval=False, + dcn=None, + plugins=None): + super(UNet, self).__init__() + assert dcn is None, 'Not implemented yet.' + assert plugins is None, 'Not implemented yet.' + assert len(strides) == num_stages, \ + 'The length of strides should be equal to num_stages, '\ + f'while the strides is {strides}, the length of '\ + f'strides is {len(strides)}, and the num_stages is '\ + f'{num_stages}.' + assert len(enc_num_convs) == num_stages, \ + 'The length of enc_num_convs should be equal to num_stages, '\ + f'while the enc_num_convs is {enc_num_convs}, the length of '\ + f'enc_num_convs is {len(enc_num_convs)}, and the num_stages is '\ + f'{num_stages}.' + assert len(dec_num_convs) == (num_stages-1), \ + 'The length of dec_num_convs should be equal to (num_stages-1), '\ + f'while the dec_num_convs is {dec_num_convs}, the length of '\ + f'dec_num_convs is {len(dec_num_convs)}, and the num_stages is '\ + f'{num_stages}.' + assert len(downsamples) == (num_stages-1), \ + 'The length of downsamples should be equal to (num_stages-1), '\ + f'while the downsamples is {downsamples}, the length of '\ + f'downsamples is {len(downsamples)}, and the num_stages is '\ + f'{num_stages}.' + assert len(enc_dilations) == num_stages, \ + 'The length of enc_dilations should be equal to num_stages, '\ + f'while the enc_dilations is {enc_dilations}, the length of '\ + f'enc_dilations is {len(enc_dilations)}, and the num_stages is '\ + f'{num_stages}.' + assert len(dec_dilations) == (num_stages-1), \ + 'The length of dec_dilations should be equal to (num_stages-1), '\ + f'while the dec_dilations is {dec_dilations}, the length of '\ + f'dec_dilations is {len(dec_dilations)}, and the num_stages is '\ + f'{num_stages}.' + self.num_stages = num_stages + self.strides = strides + self.downsamples = downsamples + self.norm_eval = norm_eval + + self.encoder = nn.ModuleList() + self.decoder = nn.ModuleList() + + for i in range(num_stages): + enc_conv_block = [] + if i != 0: + if strides[i] == 1 and downsamples[i - 1]: + enc_conv_block.append(nn.MaxPool2d(kernel_size=2)) + upsample = (strides[i] != 1 or downsamples[i - 1]) + self.decoder.append( + UpConvBlock( + conv_block=BasicConvBlock, + in_channels=base_channels * 2**i, + skip_channels=base_channels * 2**(i - 1), + out_channels=base_channels * 2**(i - 1), + num_convs=dec_num_convs[i - 1], + stride=1, + dilation=dec_dilations[i - 1], + with_cp=with_cp, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg, + upsample_cfg=upsample_cfg if upsample else None, + dcn=None, + plugins=None)) + + enc_conv_block.append( + BasicConvBlock( + in_channels=in_channels, + out_channels=base_channels * 2**i, + num_convs=enc_num_convs[i], + stride=strides[i], + dilation=enc_dilations[i], + with_cp=with_cp, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg, + dcn=None, + plugins=None)) + self.encoder.append((nn.Sequential(*enc_conv_block))) + in_channels = base_channels * 2**i + + def forward(self, x): + self._check_input_devisible(x) + enc_outs = [] + for enc in self.encoder: + x = enc(x) + enc_outs.append(x) + dec_outs = [x] + for i in reversed(range(len(self.decoder))): + x = self.decoder[i](enc_outs[i], x) + dec_outs.append(x) + + return dec_outs + + def train(self, mode=True): + """Convert the model into training mode while keep normalization layer + freezed.""" + super(UNet, self).train(mode) + if mode and self.norm_eval: + for m in self.modules(): + # trick: eval have effect on BatchNorm only + if isinstance(m, _BatchNorm): + m.eval() + + def _check_input_devisible(self, x): + h, w = x.shape[-2:] + whole_downsample_rate = 1 + for i in range(1, self.num_stages): + if self.strides[i] == 2 or self.downsamples[i - 1]: + whole_downsample_rate *= 2 + assert (h % whole_downsample_rate == 0) \ + and (w % whole_downsample_rate == 0),\ + f'The input image size {(h, w)} should be devisible by the whole '\ + f'downsample rate {whole_downsample_rate}, when num_stages is '\ + f'{self.num_stages}, strides is {self.strides}, and downsamples '\ + f'is {self.downsamples}.' + + def init_weights(self, pretrained=None): + """Initialize the weights in backbone. + + Args: + pretrained (str, optional): Path to pre-trained weights. + Defaults to None. + """ + if isinstance(pretrained, str): + logger = get_root_logger() + load_checkpoint(self, pretrained, strict=False, logger=logger) + elif pretrained is None: + for m in self.modules(): + if isinstance(m, nn.Conv2d): + kaiming_init(m) + elif isinstance(m, (_BatchNorm, nn.GroupNorm)): + constant_init(m, 1) + else: + raise TypeError('pretrained must be a str or None') diff --git a/mmseg/models/utils/__init__.py b/mmseg/models/utils/__init__.py index 969a0c7d98..5d233a4232 100644 --- a/mmseg/models/utils/__init__.py +++ b/mmseg/models/utils/__init__.py @@ -2,7 +2,9 @@ from .make_divisible import make_divisible from .res_layer import ResLayer from .self_attention_block import SelfAttentionBlock +from .up_conv_block import UpConvBlock __all__ = [ - 'ResLayer', 'SelfAttentionBlock', 'make_divisible', 'InvertedResidual' + 'ResLayer', 'SelfAttentionBlock', 'make_divisible', 'InvertedResidual', + 'UpConvBlock' ] diff --git a/mmseg/models/utils/up_conv_block.py b/mmseg/models/utils/up_conv_block.py new file mode 100644 index 0000000000..df8a2aa7db --- /dev/null +++ b/mmseg/models/utils/up_conv_block.py @@ -0,0 +1,101 @@ +import torch +import torch.nn as nn +from mmcv.cnn import ConvModule, build_upsample_layer + + +class UpConvBlock(nn.Module): + """Upsample convolution block in decoder for UNet. + + This upsample convolution block consists of one upsample module + followed by one convolution block. The upsample module expands the + high-level low-resolution feature map and the convolution block fuses + the upsampled high-level low-resolution feature map and the low-level + high-resolution feature map from encoder. + + Args: + conv_block (nn.Sequential): Sequential of convolutional layers. + in_channels (int): Number of input channels of the high-level + skip_channels (int): Number of input channels of the low-level + high-resolution feature map from encoder. + out_channels (int): Number of output channels. + num_convs (int): Number of convolutional layers in the conv_block. + Default: 2. + stride (int): Stride of convolutional layer in conv_block. Default: 1. + dilation (int): Dilation rate of convolutional layer in conv_block. + Default: 1. + with_cp (bool): Use checkpoint or not. Using checkpoint will save some + memory while slowing down the training speed. Default: False. + conv_cfg (dict | None): Config dict for convolution layer. + Default: None. + norm_cfg (dict | None): Config dict for normalization layer. + Default: dict(type='BN'). + act_cfg (dict | None): Config dict for activation layer in ConvModule. + Default: dict(type='ReLU'). + upsample_cfg (dict): The upsample config of the upsample module in + decoder. Default: dict(type='InterpConv'). If the size of + high-level feature map is the same as that of skip feature map + (low-level feature map from encoder), it does not need upsample the + high-level feature map and the upsample_cfg is None. + dcn (bool): Use deformable convoluton in convolutional layer or not. + Default: None. + plugins (dict): plugins for convolutional layers. Default: None. + """ + + def __init__(self, + conv_block, + in_channels, + skip_channels, + out_channels, + num_convs=2, + stride=1, + dilation=1, + with_cp=False, + conv_cfg=None, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + upsample_cfg=dict(type='InterpConv'), + dcn=None, + plugins=None): + super(UpConvBlock, self).__init__() + assert dcn is None, 'Not implemented yet.' + assert plugins is None, 'Not implemented yet.' + + self.conv_block = conv_block( + in_channels=2 * skip_channels, + out_channels=out_channels, + num_convs=num_convs, + stride=stride, + dilation=dilation, + with_cp=with_cp, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg, + dcn=None, + plugins=None) + if upsample_cfg is not None: + self.upsample = build_upsample_layer( + cfg=upsample_cfg, + in_channels=in_channels, + out_channels=skip_channels, + with_cp=with_cp, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + else: + self.upsample = ConvModule( + in_channels, + skip_channels, + kernel_size=1, + stride=1, + padding=0, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + + def forward(self, skip, x): + """Forward function.""" + + x = self.upsample(x) + out = torch.cat([skip, x], dim=1) + out = self.conv_block(out) + + return out diff --git a/tests/test_models/test_unet.py b/tests/test_models/test_unet.py new file mode 100644 index 0000000000..febe4f0c97 --- /dev/null +++ b/tests/test_models/test_unet.py @@ -0,0 +1,833 @@ +import pytest +import torch +from mmcv.cnn import ConvModule +from mmcv.utils.parrots_wrapper import _BatchNorm +from torch import nn + +from mmseg.models.backbones.unet import (BasicConvBlock, DeconvModule, + InterpConv, UNet, UpConvBlock) + + +def check_norm_state(modules, train_state): + """Check if norm layer is in correct train state.""" + for mod in modules: + if isinstance(mod, _BatchNorm): + if mod.training != train_state: + return False + return True + + +def test_unet_basic_conv_block(): + with pytest.raises(AssertionError): + # Not implemented yet. + dcn = dict(type='DCN', deform_groups=1, fallback_on_stride=False) + BasicConvBlock(64, 64, dcn=dcn) + + with pytest.raises(AssertionError): + # Not implemented yet. + plugins = [ + dict( + cfg=dict(type='ContextBlock', ratio=1. / 16), + position='after_conv3') + ] + BasicConvBlock(64, 64, plugins=plugins) + + with pytest.raises(AssertionError): + # Not implemented yet + plugins = [ + dict( + cfg=dict( + type='GeneralizedAttention', + spatial_range=-1, + num_heads=8, + attention_type='0010', + kv_stride=2), + position='after_conv2') + ] + BasicConvBlock(64, 64, plugins=plugins) + + # test BasicConvBlock with checkpoint forward + block = BasicConvBlock(16, 16, with_cp=True) + assert block.with_cp + x = torch.randn(1, 16, 64, 64, requires_grad=True) + x_out = block(x) + assert x_out.shape == torch.Size([1, 16, 64, 64]) + + block = BasicConvBlock(16, 16, with_cp=False) + assert not block.with_cp + x = torch.randn(1, 16, 64, 64) + x_out = block(x) + assert x_out.shape == torch.Size([1, 16, 64, 64]) + + # test BasicConvBlock with stride convolution to downsample + block = BasicConvBlock(16, 16, stride=2) + x = torch.randn(1, 16, 64, 64) + x_out = block(x) + assert x_out.shape == torch.Size([1, 16, 32, 32]) + + # test BasicConvBlock structure and forward + block = BasicConvBlock(16, 64, num_convs=3, dilation=3) + assert block.convs[0].conv.in_channels == 16 + assert block.convs[0].conv.out_channels == 64 + assert block.convs[0].conv.kernel_size == (3, 3) + assert block.convs[0].conv.dilation == (1, 1) + assert block.convs[0].conv.padding == (1, 1) + + assert block.convs[1].conv.in_channels == 64 + assert block.convs[1].conv.out_channels == 64 + assert block.convs[1].conv.kernel_size == (3, 3) + assert block.convs[1].conv.dilation == (3, 3) + assert block.convs[1].conv.padding == (3, 3) + + assert block.convs[2].conv.in_channels == 64 + assert block.convs[2].conv.out_channels == 64 + assert block.convs[2].conv.kernel_size == (3, 3) + assert block.convs[2].conv.dilation == (3, 3) + assert block.convs[2].conv.padding == (3, 3) + + +def test_deconv_module(): + with pytest.raises(AssertionError): + # kernel_size should be greater than or equal to scale_factor and + # (kernel_size - scale_factor) should be even numbers + DeconvModule(64, 32, kernel_size=1, scale_factor=2) + + with pytest.raises(AssertionError): + # kernel_size should be greater than or equal to scale_factor and + # (kernel_size - scale_factor) should be even numbers + DeconvModule(64, 32, kernel_size=3, scale_factor=2) + + with pytest.raises(AssertionError): + # kernel_size should be greater than or equal to scale_factor and + # (kernel_size - scale_factor) should be even numbers + DeconvModule(64, 32, kernel_size=5, scale_factor=4) + + # test DeconvModule with checkpoint forward and upsample 2X. + block = DeconvModule(64, 32, with_cp=True) + assert block.with_cp + x = torch.randn(1, 64, 128, 128, requires_grad=True) + x_out = block(x) + assert x_out.shape == torch.Size([1, 32, 256, 256]) + + block = DeconvModule(64, 32, with_cp=False) + assert not block.with_cp + x = torch.randn(1, 64, 128, 128) + x_out = block(x) + assert x_out.shape == torch.Size([1, 32, 256, 256]) + + # test DeconvModule with different kernel size for upsample 2X. + x = torch.randn(1, 64, 64, 64) + block = DeconvModule(64, 32, kernel_size=2, scale_factor=2) + x_out = block(x) + assert x_out.shape == torch.Size([1, 32, 128, 128]) + + block = DeconvModule(64, 32, kernel_size=6, scale_factor=2) + x_out = block(x) + assert x_out.shape == torch.Size([1, 32, 128, 128]) + + # test DeconvModule with different kernel size for upsample 4X. + x = torch.randn(1, 64, 64, 64) + block = DeconvModule(64, 32, kernel_size=4, scale_factor=4) + x_out = block(x) + assert x_out.shape == torch.Size([1, 32, 256, 256]) + + block = DeconvModule(64, 32, kernel_size=6, scale_factor=4) + x_out = block(x) + assert x_out.shape == torch.Size([1, 32, 256, 256]) + + +def test_interp_conv(): + # test InterpConv with checkpoint forward and upsample 2X. + block = InterpConv(64, 32, with_cp=True) + assert block.with_cp + x = torch.randn(1, 64, 128, 128, requires_grad=True) + x_out = block(x) + assert x_out.shape == torch.Size([1, 32, 256, 256]) + + block = InterpConv(64, 32, with_cp=False) + assert not block.with_cp + x = torch.randn(1, 64, 128, 128) + x_out = block(x) + assert x_out.shape == torch.Size([1, 32, 256, 256]) + + # test InterpConv with conv_first=False for upsample 2X. + block = InterpConv(64, 32, conv_first=False) + x = torch.randn(1, 64, 128, 128) + x_out = block(x) + assert isinstance(block.interp_upsample[0], nn.Upsample) + assert isinstance(block.interp_upsample[1], ConvModule) + assert x_out.shape == torch.Size([1, 32, 256, 256]) + + # test InterpConv with conv_first=True for upsample 2X. + block = InterpConv(64, 32, conv_first=True) + x = torch.randn(1, 64, 128, 128) + x_out = block(x) + assert isinstance(block.interp_upsample[0], ConvModule) + assert isinstance(block.interp_upsample[1], nn.Upsample) + assert x_out.shape == torch.Size([1, 32, 256, 256]) + + # test InterpConv with bilinear upsample for upsample 2X. + block = InterpConv( + 64, + 32, + conv_first=False, + upsampe_cfg=dict(scale_factor=2, mode='bilinear', align_corners=False)) + x = torch.randn(1, 64, 128, 128) + x_out = block(x) + assert isinstance(block.interp_upsample[0], nn.Upsample) + assert isinstance(block.interp_upsample[1], ConvModule) + assert x_out.shape == torch.Size([1, 32, 256, 256]) + assert block.interp_upsample[0].mode == 'bilinear' + + # test InterpConv with nearest upsample for upsample 2X. + block = InterpConv( + 64, + 32, + conv_first=False, + upsampe_cfg=dict(scale_factor=2, mode='nearest')) + x = torch.randn(1, 64, 128, 128) + x_out = block(x) + assert isinstance(block.interp_upsample[0], nn.Upsample) + assert isinstance(block.interp_upsample[1], ConvModule) + assert x_out.shape == torch.Size([1, 32, 256, 256]) + assert block.interp_upsample[0].mode == 'nearest' + + +def test_up_conv_block(): + with pytest.raises(AssertionError): + # Not implemented yet. + dcn = dict(type='DCN', deform_groups=1, fallback_on_stride=False) + UpConvBlock(BasicConvBlock, 64, 32, 32, dcn=dcn) + + with pytest.raises(AssertionError): + # Not implemented yet. + plugins = [ + dict( + cfg=dict(type='ContextBlock', ratio=1. / 16), + position='after_conv3') + ] + UpConvBlock(BasicConvBlock, 64, 32, 32, plugins=plugins) + + with pytest.raises(AssertionError): + # Not implemented yet + plugins = [ + dict( + cfg=dict( + type='GeneralizedAttention', + spatial_range=-1, + num_heads=8, + attention_type='0010', + kv_stride=2), + position='after_conv2') + ] + UpConvBlock(BasicConvBlock, 64, 32, 32, plugins=plugins) + + # test UpConvBlock with checkpoint forward and upsample 2X. + block = UpConvBlock(BasicConvBlock, 64, 32, 32, with_cp=True) + skip_x = torch.randn(1, 32, 256, 256, requires_grad=True) + x = torch.randn(1, 64, 128, 128, requires_grad=True) + x_out = block(skip_x, x) + assert x_out.shape == torch.Size([1, 32, 256, 256]) + + # test UpConvBlock with upsample=True for upsample 2X. The spatial size of + # skip_x is 2X larger than x. + block = UpConvBlock( + BasicConvBlock, 64, 32, 32, upsample_cfg=dict(type='InterpConv')) + skip_x = torch.randn(1, 32, 256, 256) + x = torch.randn(1, 64, 128, 128) + x_out = block(skip_x, x) + assert x_out.shape == torch.Size([1, 32, 256, 256]) + + # test UpConvBlock with upsample=False for upsample 2X. The spatial size of + # skip_x is the same as that of x. + block = UpConvBlock(BasicConvBlock, 64, 32, 32, upsample_cfg=None) + skip_x = torch.randn(1, 32, 256, 256) + x = torch.randn(1, 64, 256, 256) + x_out = block(skip_x, x) + assert x_out.shape == torch.Size([1, 32, 256, 256]) + + # test UpConvBlock with different upsample method for upsample 2X. + # The upsample method is interpolation upsample (bilinear or nearest). + block = UpConvBlock( + BasicConvBlock, + 64, + 32, + 32, + upsample_cfg=dict( + type='InterpConv', + upsampe_cfg=dict( + scale_factor=2, mode='bilinear', align_corners=False))) + skip_x = torch.randn(1, 32, 256, 256) + x = torch.randn(1, 64, 128, 128) + x_out = block(skip_x, x) + assert x_out.shape == torch.Size([1, 32, 256, 256]) + + # test UpConvBlock with different upsample method for upsample 2X. + # The upsample method is deconvolution upsample. + block = UpConvBlock( + BasicConvBlock, + 64, + 32, + 32, + upsample_cfg=dict(type='DeconvModule', kernel_size=4, scale_factor=2)) + skip_x = torch.randn(1, 32, 256, 256) + x = torch.randn(1, 64, 128, 128) + x_out = block(skip_x, x) + assert x_out.shape == torch.Size([1, 32, 256, 256]) + + # test BasicConvBlock structure and forward + block = UpConvBlock( + conv_block=BasicConvBlock, + in_channels=64, + skip_channels=32, + out_channels=32, + num_convs=3, + dilation=3, + upsample_cfg=dict( + type='InterpConv', + upsampe_cfg=dict( + scale_factor=2, mode='bilinear', align_corners=False))) + skip_x = torch.randn(1, 32, 256, 256) + x = torch.randn(1, 64, 128, 128) + x_out = block(skip_x, x) + assert x_out.shape == torch.Size([1, 32, 256, 256]) + + assert block.conv_block.convs[0].conv.in_channels == 64 + assert block.conv_block.convs[0].conv.out_channels == 32 + assert block.conv_block.convs[0].conv.kernel_size == (3, 3) + assert block.conv_block.convs[0].conv.dilation == (1, 1) + assert block.conv_block.convs[0].conv.padding == (1, 1) + + assert block.conv_block.convs[1].conv.in_channels == 32 + assert block.conv_block.convs[1].conv.out_channels == 32 + assert block.conv_block.convs[1].conv.kernel_size == (3, 3) + assert block.conv_block.convs[1].conv.dilation == (3, 3) + assert block.conv_block.convs[1].conv.padding == (3, 3) + + assert block.conv_block.convs[2].conv.in_channels == 32 + assert block.conv_block.convs[2].conv.out_channels == 32 + assert block.conv_block.convs[2].conv.kernel_size == (3, 3) + assert block.conv_block.convs[2].conv.dilation == (3, 3) + assert block.conv_block.convs[2].conv.padding == (3, 3) + + assert block.upsample.interp_upsample[1].conv.in_channels == 64 + assert block.upsample.interp_upsample[1].conv.out_channels == 32 + assert block.upsample.interp_upsample[1].conv.kernel_size == (1, 1) + assert block.upsample.interp_upsample[1].conv.dilation == (1, 1) + assert block.upsample.interp_upsample[1].conv.padding == (0, 0) + + +def test_unet(): + with pytest.raises(AssertionError): + # Not implemented yet. + dcn = dict(type='DCN', deform_groups=1, fallback_on_stride=False) + UNet(3, 64, 5, dcn=dcn) + + with pytest.raises(AssertionError): + # Not implemented yet. + plugins = [ + dict( + cfg=dict(type='ContextBlock', ratio=1. / 16), + position='after_conv3') + ] + UNet(3, 64, 5, plugins=plugins) + + with pytest.raises(AssertionError): + # Not implemented yet + plugins = [ + dict( + cfg=dict( + type='GeneralizedAttention', + spatial_range=-1, + num_heads=8, + attention_type='0010', + kv_stride=2), + position='after_conv2') + ] + UNet(3, 64, 5, plugins=plugins) + + with pytest.raises(AssertionError): + # Check whether the input image size can be devisible by the whole + # downsample rate of the encoder. The whole downsample rate of this + # case is 8. + unet = UNet( + in_channels=3, + base_channels=64, + num_stages=4, + strides=(1, 1, 1, 1), + enc_num_convs=(2, 2, 2, 2), + dec_num_convs=(2, 2, 2), + downsamples=(True, True, True), + enc_dilations=(1, 1, 1, 1), + dec_dilations=(1, 1, 1)) + x = torch.randn(2, 3, 65, 65) + unet(x) + + with pytest.raises(AssertionError): + # Check whether the input image size can be devisible by the whole + # downsample rate of the encoder. The whole downsample rate of this + # case is 16. + unet = UNet( + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 1, 1, 1, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(True, True, True, True), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1)) + x = torch.randn(2, 3, 65, 65) + unet(x) + + with pytest.raises(AssertionError): + # Check whether the input image size can be devisible by the whole + # downsample rate of the encoder. The whole downsample rate of this + # case is 8. + unet = UNet( + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 1, 1, 1, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(True, True, True, False), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1)) + x = torch.randn(2, 3, 65, 65) + unet(x) + + with pytest.raises(AssertionError): + # Check whether the input image size can be devisible by the whole + # downsample rate of the encoder. The whole downsample rate of this + # case is 8. + unet = UNet( + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 2, 2, 2, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(True, True, True, False), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1)) + x = torch.randn(2, 3, 65, 65) + unet(x) + + with pytest.raises(AssertionError): + # Check whether the input image size can be devisible by the whole + # downsample rate of the encoder. The whole downsample rate of this + # case is 32. + unet = UNet( + in_channels=3, + base_channels=64, + num_stages=6, + strides=(1, 1, 1, 1, 1, 1), + enc_num_convs=(2, 2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2, 2), + downsamples=(True, True, True, True, True), + enc_dilations=(1, 1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1, 1)) + x = torch.randn(2, 3, 65, 65) + unet(x) + + with pytest.raises(AssertionError): + # Check if num_stages matchs strides, len(strides)=num_stages + unet = UNet( + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 1, 1, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(True, True, True, True), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1)) + x = torch.randn(2, 3, 64, 64) + unet(x) + + with pytest.raises(AssertionError): + # Check if num_stages matchs strides, len(enc_num_convs)=num_stages + unet = UNet( + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 1, 1, 1, 1), + enc_num_convs=(2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(True, True, True, True), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1)) + x = torch.randn(2, 3, 64, 64) + unet(x) + + with pytest.raises(AssertionError): + # Check if num_stages matchs strides, len(dec_num_convs)=num_stages-1 + unet = UNet( + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 1, 1, 1, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2, 2), + downsamples=(True, True, True, True), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1)) + x = torch.randn(2, 3, 64, 64) + unet(x) + + with pytest.raises(AssertionError): + # Check if num_stages matchs strides, len(downsamples)=num_stages-1 + unet = UNet( + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 1, 1, 1, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(True, True, True), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1)) + x = torch.randn(2, 3, 64, 64) + unet(x) + + with pytest.raises(AssertionError): + # Check if num_stages matchs strides, len(enc_dilations)=num_stages + unet = UNet( + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 1, 1, 1, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(True, True, True, True), + enc_dilations=(1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1)) + x = torch.randn(2, 3, 64, 64) + unet(x) + + with pytest.raises(AssertionError): + # Check if num_stages matchs strides, len(dec_dilations)=num_stages-1 + unet = UNet( + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 1, 1, 1, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(True, True, True, True), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1, 1)) + x = torch.randn(2, 3, 64, 64) + unet(x) + + # test UNet norm_eval=True + unet = UNet( + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 1, 1, 1, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(True, True, True, True), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1), + norm_eval=True) + unet.train() + assert check_norm_state(unet.modules(), False) + + # test UNet norm_eval=False + unet = UNet( + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 1, 1, 1, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(True, True, True, True), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1), + norm_eval=False) + unet.train() + assert check_norm_state(unet.modules(), True) + + # test UNet forward and outputs. The whole downsample rate is 16. + unet = UNet( + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 1, 1, 1, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(True, True, True, True), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1)) + + x = torch.randn(2, 3, 128, 128) + x_outs = unet(x) + assert x_outs[0].shape == torch.Size([2, 1024, 8, 8]) + assert x_outs[1].shape == torch.Size([2, 512, 16, 16]) + assert x_outs[2].shape == torch.Size([2, 256, 32, 32]) + assert x_outs[3].shape == torch.Size([2, 128, 64, 64]) + assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) + + # test UNet forward and outputs. The whole downsample rate is 8. + unet = UNet( + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 1, 1, 1, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(True, True, True, False), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1)) + + x = torch.randn(2, 3, 128, 128) + x_outs = unet(x) + assert x_outs[0].shape == torch.Size([2, 1024, 16, 16]) + assert x_outs[1].shape == torch.Size([2, 512, 16, 16]) + assert x_outs[2].shape == torch.Size([2, 256, 32, 32]) + assert x_outs[3].shape == torch.Size([2, 128, 64, 64]) + assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) + + # test UNet forward and outputs. The whole downsample rate is 8. + unet = UNet( + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 2, 2, 2, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(True, True, True, False), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1)) + + x = torch.randn(2, 3, 128, 128) + x_outs = unet(x) + assert x_outs[0].shape == torch.Size([2, 1024, 16, 16]) + assert x_outs[1].shape == torch.Size([2, 512, 16, 16]) + assert x_outs[2].shape == torch.Size([2, 256, 32, 32]) + assert x_outs[3].shape == torch.Size([2, 128, 64, 64]) + assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) + + # test UNet forward and outputs. The whole downsample rate is 4. + unet = UNet( + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 1, 1, 1, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(True, True, False, False), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1)) + + x = torch.randn(2, 3, 128, 128) + x_outs = unet(x) + assert x_outs[0].shape == torch.Size([2, 1024, 32, 32]) + assert x_outs[1].shape == torch.Size([2, 512, 32, 32]) + assert x_outs[2].shape == torch.Size([2, 256, 32, 32]) + assert x_outs[3].shape == torch.Size([2, 128, 64, 64]) + assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) + + # test UNet forward and outputs. The whole downsample rate is 4. + unet = UNet( + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 2, 2, 1, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(True, True, False, False), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1)) + + x = torch.randn(2, 3, 128, 128) + x_outs = unet(x) + assert x_outs[0].shape == torch.Size([2, 1024, 32, 32]) + assert x_outs[1].shape == torch.Size([2, 512, 32, 32]) + assert x_outs[2].shape == torch.Size([2, 256, 32, 32]) + assert x_outs[3].shape == torch.Size([2, 128, 64, 64]) + assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) + + # test UNet forward and outputs. The whole downsample rate is 8. + unet = UNet( + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 1, 1, 1, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(True, True, True, False), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1)) + + x = torch.randn(2, 3, 128, 128) + x_outs = unet(x) + assert x_outs[0].shape == torch.Size([2, 1024, 16, 16]) + assert x_outs[1].shape == torch.Size([2, 512, 16, 16]) + assert x_outs[2].shape == torch.Size([2, 256, 32, 32]) + assert x_outs[3].shape == torch.Size([2, 128, 64, 64]) + assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) + + # test UNet forward and outputs. The whole downsample rate is 4. + unet = UNet( + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 1, 1, 1, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(True, True, False, False), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1)) + + x = torch.randn(2, 3, 128, 128) + x_outs = unet(x) + assert x_outs[0].shape == torch.Size([2, 1024, 32, 32]) + assert x_outs[1].shape == torch.Size([2, 512, 32, 32]) + assert x_outs[2].shape == torch.Size([2, 256, 32, 32]) + assert x_outs[3].shape == torch.Size([2, 128, 64, 64]) + assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) + + # test UNet forward and outputs. The whole downsample rate is 2. + unet = UNet( + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 1, 1, 1, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(True, False, False, False), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1)) + + x = torch.randn(2, 3, 128, 128) + x_outs = unet(x) + assert x_outs[0].shape == torch.Size([2, 1024, 64, 64]) + assert x_outs[1].shape == torch.Size([2, 512, 64, 64]) + assert x_outs[2].shape == torch.Size([2, 256, 64, 64]) + assert x_outs[3].shape == torch.Size([2, 128, 64, 64]) + assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) + + # test UNet forward and outputs. The whole downsample rate is 1. + unet = UNet( + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 1, 1, 1, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(False, False, False, False), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1)) + + x = torch.randn(2, 3, 128, 128) + x_outs = unet(x) + assert x_outs[0].shape == torch.Size([2, 1024, 128, 128]) + assert x_outs[1].shape == torch.Size([2, 512, 128, 128]) + assert x_outs[2].shape == torch.Size([2, 256, 128, 128]) + assert x_outs[3].shape == torch.Size([2, 128, 128, 128]) + assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) + + # test UNet forward and outputs. The whole downsample rate is 16. + unet = UNet( + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 2, 2, 1, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(True, True, True, True), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1)) + print(unet) + x = torch.randn(2, 3, 128, 128) + x_outs = unet(x) + assert x_outs[0].shape == torch.Size([2, 1024, 8, 8]) + assert x_outs[1].shape == torch.Size([2, 512, 16, 16]) + assert x_outs[2].shape == torch.Size([2, 256, 32, 32]) + assert x_outs[3].shape == torch.Size([2, 128, 64, 64]) + assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) + + # test UNet forward and outputs. The whole downsample rate is 8. + unet = UNet( + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 2, 2, 1, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(True, True, True, False), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1)) + print(unet) + x = torch.randn(2, 3, 128, 128) + x_outs = unet(x) + assert x_outs[0].shape == torch.Size([2, 1024, 16, 16]) + assert x_outs[1].shape == torch.Size([2, 512, 16, 16]) + assert x_outs[2].shape == torch.Size([2, 256, 32, 32]) + assert x_outs[3].shape == torch.Size([2, 128, 64, 64]) + assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) + + # test UNet forward and outputs. The whole downsample rate is 8. + unet = UNet( + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 2, 2, 2, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(True, True, True, False), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1)) + print(unet) + x = torch.randn(2, 3, 128, 128) + x_outs = unet(x) + assert x_outs[0].shape == torch.Size([2, 1024, 16, 16]) + assert x_outs[1].shape == torch.Size([2, 512, 16, 16]) + assert x_outs[2].shape == torch.Size([2, 256, 32, 32]) + assert x_outs[3].shape == torch.Size([2, 128, 64, 64]) + assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) + + # test UNet forward and outputs. The whole downsample rate is 4. + unet = UNet( + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 2, 2, 1, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(True, True, False, False), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1)) + print(unet) + x = torch.randn(2, 3, 128, 128) + x_outs = unet(x) + assert x_outs[0].shape == torch.Size([2, 1024, 32, 32]) + assert x_outs[1].shape == torch.Size([2, 512, 32, 32]) + assert x_outs[2].shape == torch.Size([2, 256, 32, 32]) + assert x_outs[3].shape == torch.Size([2, 128, 64, 64]) + assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) + + # test UNet init_weights method. + unet = UNet( + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 2, 2, 1, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(True, True, False, False), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1)) + unet.init_weights(pretrained=None) + print(unet) + x = torch.randn(2, 3, 128, 128) + x_outs = unet(x) + assert x_outs[0].shape == torch.Size([2, 1024, 32, 32]) + assert x_outs[1].shape == torch.Size([2, 512, 32, 32]) + assert x_outs[2].shape == torch.Size([2, 256, 32, 32]) + assert x_outs[3].shape == torch.Size([2, 128, 64, 64]) + assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) From 464ffb77ade5c882a15a8cf91f662247c881d2de Mon Sep 17 00:00:00 2001 From: yamengxi <49829199+yamengxi@users.noreply.github.com> Date: Fri, 23 Oct 2020 08:27:40 +0800 Subject: [PATCH 055/706] Define blood vessel dataset and fix filename bug (#203) * fix filename bug * define blood vessel dataset * redo debug * fix small bug * rename dataset Co-authored-by: yamengxi --- mmseg/datasets/__init__.py | 7 ++++++- mmseg/datasets/chase_db1.py | 27 +++++++++++++++++++++++++++ mmseg/datasets/drive.py | 27 +++++++++++++++++++++++++++ mmseg/datasets/hrf.py | 27 +++++++++++++++++++++++++++ mmseg/datasets/stare.py | 27 +++++++++++++++++++++++++++ tools/convert_datasets/drive.py | 11 +++++++---- 6 files changed, 121 insertions(+), 5 deletions(-) create mode 100644 mmseg/datasets/chase_db1.py create mode 100644 mmseg/datasets/drive.py create mode 100644 mmseg/datasets/hrf.py create mode 100644 mmseg/datasets/stare.py diff --git a/mmseg/datasets/__init__.py b/mmseg/datasets/__init__.py index dd4705c3e4..4f248dc16b 100644 --- a/mmseg/datasets/__init__.py +++ b/mmseg/datasets/__init__.py @@ -1,13 +1,18 @@ from .ade import ADE20KDataset from .builder import DATASETS, PIPELINES, build_dataloader, build_dataset +from .chase_db1 import ChaseDB1Dataset from .cityscapes import CityscapesDataset from .custom import CustomDataset from .dataset_wrappers import ConcatDataset, RepeatDataset +from .drive import DRIVEDataset +from .hrf import HRFDataset from .pascal_context import PascalContextDataset +from .stare import STAREDataset from .voc import PascalVOCDataset __all__ = [ 'CustomDataset', 'build_dataloader', 'ConcatDataset', 'RepeatDataset', 'DATASETS', 'build_dataset', 'PIPELINES', 'CityscapesDataset', - 'PascalVOCDataset', 'ADE20KDataset', 'PascalContextDataset' + 'PascalVOCDataset', 'ADE20KDataset', 'PascalContextDataset', + 'ChaseDB1Dataset', 'DRIVEDataset', 'HRFDataset', 'STAREDataset' ] diff --git a/mmseg/datasets/chase_db1.py b/mmseg/datasets/chase_db1.py new file mode 100644 index 0000000000..79d544f202 --- /dev/null +++ b/mmseg/datasets/chase_db1.py @@ -0,0 +1,27 @@ +import os.path as osp + +from .builder import DATASETS +from .custom import CustomDataset + + +@DATASETS.register_module() +class ChaseDB1Dataset(CustomDataset): + """Chase_db1 dataset. + + In segmentation map annotation for Chase_db1, 0 stands for background, + which is included in 2 categories. ``reduce_zero_label`` is fixed to False. + The ``img_suffix`` is fixed to '.jpg' and ``seg_map_suffix`` is fixed to + '_1stHO.jpg'. + """ + + CLASSES = ('background', 'vessel') + + PALETTE = [[120, 120, 120], [6, 230, 230]] + + def __init__(self, **kwargs): + super(ChaseDB1Dataset, self).__init__( + img_suffix='.jpg', + seg_map_suffix='_1stHO.jpg', + reduce_zero_label=False, + **kwargs) + assert osp.exists(self.img_dir) diff --git a/mmseg/datasets/drive.py b/mmseg/datasets/drive.py new file mode 100644 index 0000000000..177ca5f691 --- /dev/null +++ b/mmseg/datasets/drive.py @@ -0,0 +1,27 @@ +import os.path as osp + +from .builder import DATASETS +from .custom import CustomDataset + + +@DATASETS.register_module() +class DRIVEDataset(CustomDataset): + """DRIVE dataset. + + In segmentation map annotation for DRIVE, 0 stands for background, which is + included in 2 categories. ``reduce_zero_label`` is fixed to False. The + ``img_suffix`` is fixed to '.jpg' and ``seg_map_suffix`` is fixed to + '_manual1.jpg'. + """ + + CLASSES = ('background', 'vessel') + + PALETTE = [[120, 120, 120], [6, 230, 230]] + + def __init__(self, **kwargs): + super(DRIVEDataset, self).__init__( + img_suffix='.jpg', + seg_map_suffix='_manual1.jpg', + reduce_zero_label=False, + **kwargs) + assert osp.exists(self.img_dir) diff --git a/mmseg/datasets/hrf.py b/mmseg/datasets/hrf.py new file mode 100644 index 0000000000..ff24417831 --- /dev/null +++ b/mmseg/datasets/hrf.py @@ -0,0 +1,27 @@ +import os.path as osp + +from .builder import DATASETS +from .custom import CustomDataset + + +@DATASETS.register_module() +class HRFDataset(CustomDataset): + """HRF dataset. + + In segmentation map annotation for HRF, 0 stands for background, which is + included in 2 categories. ``reduce_zero_label`` is fixed to False. The + ``img_suffix`` is fixed to '.jpg' and ``seg_map_suffix`` is fixed to + '.jpg'. + """ + + CLASSES = ('background', 'vessel') + + PALETTE = [[120, 120, 120], [6, 230, 230]] + + def __init__(self, **kwargs): + super(HRFDataset, self).__init__( + img_suffix='.jpg', + seg_map_suffix='.jpg', + reduce_zero_label=False, + **kwargs) + assert osp.exists(self.img_dir) diff --git a/mmseg/datasets/stare.py b/mmseg/datasets/stare.py new file mode 100644 index 0000000000..97e987a39c --- /dev/null +++ b/mmseg/datasets/stare.py @@ -0,0 +1,27 @@ +import os.path as osp + +from .builder import DATASETS +from .custom import CustomDataset + + +@DATASETS.register_module() +class STAREDataset(CustomDataset): + """STARE dataset. + + In segmentation map annotation for STARE, 0 stands for background, which is + included in 2 categories. ``reduce_zero_label`` is fixed to False. The + ``img_suffix`` is fixed to '.jpg' and ``seg_map_suffix`` is fixed to + '.ah.jpg'. + """ + + CLASSES = ('background', 'vessel') + + PALETTE = [[120, 120, 120], [6, 230, 230]] + + def __init__(self, **kwargs): + super(STAREDataset, self).__init__( + img_suffix='.jpg', + seg_map_suffix='.ah.jpg', + reduce_zero_label=False, + **kwargs) + assert osp.exists(self.img_dir) diff --git a/tools/convert_datasets/drive.py b/tools/convert_datasets/drive.py index 9da30fb1b4..c25a1d2059 100644 --- a/tools/convert_datasets/drive.py +++ b/tools/convert_datasets/drive.py @@ -50,8 +50,10 @@ def main(): img = mmcv.imread(osp.join(now_dir, img_name)) mmcv.imwrite( img, - osp.join(out_dir, 'images', 'training', - osp.splitext(img_name)[0] + '.jpg')) + osp.join( + out_dir, 'images', 'training', + osp.splitext(img_name)[0].replace('_training', '') + + '.jpg')) now_dir = osp.join(tmp_dir, 'training', '1st_manual') for img_name in os.listdir(now_dir): @@ -72,8 +74,9 @@ def main(): img = mmcv.imread(osp.join(now_dir, img_name)) mmcv.imwrite( img, - osp.join(out_dir, 'images', 'validation', - osp.splitext(img_name)[0] + '.jpg')) + osp.join( + out_dir, 'images', 'validation', + osp.splitext(img_name)[0].replace('_test', '') + '.jpg')) now_dir = osp.join(tmp_dir, 'test', '1st_manual') if osp.exists(now_dir): From 969c7fd8e4287bc5541397ceaf4ed2af8927b223 Mon Sep 17 00:00:00 2001 From: David de la Iglesia Castro Date: Sun, 25 Oct 2020 23:18:46 +0100 Subject: [PATCH 056/706] Add runner type (#118) * Add runner_type option * pre-commit * Fix max_iters * Add by_epoch to EvalHook * Add test_eval_hook for epoch runner * Remove runner-type arg from tools/train * Add missing every_n_iters check for epoch mode * Bump mmcv min version * Use build_runner * Use interval in tests * Update test_eval_hook.py * Use every_n_epochs instead of every_n_iters. Update DistEvalHook * Add test_dist_eval_hook_epoch * Fix tests * Add DeprecationWarning * Update docs * Replace DeprecationWarning with UserWarning --- configs/_base_/schedules/schedule_160k.py | 2 +- configs/_base_/schedules/schedule_20k.py | 2 +- configs/_base_/schedules/schedule_40k.py | 2 +- configs/_base_/schedules/schedule_80k.py | 2 +- docs/config.md | 6 +- mmseg/__init__.py | 2 +- mmseg/apis/train.py | 28 ++++++--- mmseg/core/evaluation/eval_hooks.py | 33 +++++++++- tests/test_eval_hook.py | 77 ++++++++++++++++++++++- 9 files changed, 134 insertions(+), 20 deletions(-) diff --git a/configs/_base_/schedules/schedule_160k.py b/configs/_base_/schedules/schedule_160k.py index 8fe4b04d22..52603890b1 100644 --- a/configs/_base_/schedules/schedule_160k.py +++ b/configs/_base_/schedules/schedule_160k.py @@ -4,6 +4,6 @@ # learning policy lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False) # runtime settings -total_iters = 160000 +runner = dict(type='IterBasedRunner', max_iters=160000) checkpoint_config = dict(by_epoch=False, interval=16000) evaluation = dict(interval=16000, metric='mIoU') diff --git a/configs/_base_/schedules/schedule_20k.py b/configs/_base_/schedules/schedule_20k.py index d3903d6452..bf780a1b6f 100644 --- a/configs/_base_/schedules/schedule_20k.py +++ b/configs/_base_/schedules/schedule_20k.py @@ -4,6 +4,6 @@ # learning policy lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False) # runtime settings -total_iters = 20000 +runner = dict(type='IterBasedRunner', max_iters=20000) checkpoint_config = dict(by_epoch=False, interval=2000) evaluation = dict(interval=2000, metric='mIoU') diff --git a/configs/_base_/schedules/schedule_40k.py b/configs/_base_/schedules/schedule_40k.py index b1449219cb..cdbf841abc 100644 --- a/configs/_base_/schedules/schedule_40k.py +++ b/configs/_base_/schedules/schedule_40k.py @@ -4,6 +4,6 @@ # learning policy lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False) # runtime settings -total_iters = 40000 +runner = dict(type='IterBasedRunner', max_iters=40000) checkpoint_config = dict(by_epoch=False, interval=4000) evaluation = dict(interval=4000, metric='mIoU') diff --git a/configs/_base_/schedules/schedule_80k.py b/configs/_base_/schedules/schedule_80k.py index 3a77b41d45..c190cee6bd 100644 --- a/configs/_base_/schedules/schedule_80k.py +++ b/configs/_base_/schedules/schedule_80k.py @@ -4,6 +4,6 @@ # learning policy lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False) # runtime settings -total_iters = 80000 +runner = dict(type='IterBasedRunner', max_iters=80000) checkpoint_config = dict(by_epoch=False, interval=8000) evaluation = dict(interval=8000, metric='mIoU') diff --git a/docs/config.md b/docs/config.md index 485ff7828b..595b8f977f 100644 --- a/docs/config.md +++ b/docs/config.md @@ -226,7 +226,7 @@ dist_params = dict(backend='nccl') # Parameters to setup distributed training, log_level = 'INFO' # The level of logging. load_from = None # load models as a pre-trained model from a given path. This will not resume training. resume_from = None # Resume checkpoints from a given path, the training will be resumed from the iteration when the checkpoint's is saved. -workflow = [('train', 1)] # Workflow for runner. [('train', 1)] means there is only one workflow and the workflow named 'train' is executed once. The workflow trains the model by 40000 iterations according to the total_iters. +workflow = [('train', 1)] # Workflow for runner. [('train', 1)] means there is only one workflow and the workflow named 'train' is executed once. The workflow trains the model by 40000 iterations according to the `runner.max_iters`. cudnn_benchmark = True # Whether use cudnn_benchmark to speed up, which is fast for fixed input size. optimizer = dict( # Config used to build optimizer, support all the optimizers in PyTorch whose arguments are also the same as those in PyTorch type='SGD', # Type of optimizers, refer to https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/optimizer/default_constructor.py#L13 for more details @@ -239,7 +239,9 @@ lr_config = dict( power=0.9, # The power of polynomial decay. min_lr=0.0001, # The minimum learning rate to stable the training. by_epoch=False) # Whethe count by epoch or not. -total_iters = 40000 # Total number of iterations. +runner = dict( + type='IterBasedRunner', # Type of runner to use (i.e. IterBasedRunner or EpochBasedRunner) + max_iters=40000) # Total number of iterations. For EpochBasedRunner use `max_epochs` checkpoint_config = dict( # Config to set the checkpoint hook, Refer to https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/checkpoint.py for implementation. by_epoch=False, # Whethe count by epoch or not. interval=4000) # The save interval. diff --git a/mmseg/__init__.py b/mmseg/__init__.py index 20bce069a1..ffc848a934 100644 --- a/mmseg/__init__.py +++ b/mmseg/__init__.py @@ -2,7 +2,7 @@ from .version import __version__, version_info -MMCV_MIN = '1.1.2' +MMCV_MIN = '1.1.4' MMCV_MAX = '1.2.0' diff --git a/mmseg/apis/train.py b/mmseg/apis/train.py index b703143587..5f526df2b0 100644 --- a/mmseg/apis/train.py +++ b/mmseg/apis/train.py @@ -1,9 +1,10 @@ import random +import warnings import numpy as np import torch from mmcv.parallel import MMDataParallel, MMDistributedDataParallel -from mmcv.runner import IterBasedRunner, build_optimizer +from mmcv.runner import build_optimizer, build_runner from mmseg.core import DistEvalHook, EvalHook from mmseg.datasets import build_dataloader, build_dataset @@ -70,13 +71,21 @@ def train_segmentor(model, # build runner optimizer = build_optimizer(model, cfg.optimizer) - runner = IterBasedRunner( - model=model, - batch_processor=None, - optimizer=optimizer, - work_dir=cfg.work_dir, - logger=logger, - meta=meta) + if cfg.get('runner') is None: + cfg.runner = {'type': 'IterBasedRunner', 'max_iters': cfg.total_iters} + warnings.warn( + 'config is now expected to have a `runner` section, ' + 'please set `runner` in your config.', UserWarning) + + runner = build_runner( + cfg.runner, + default_args=dict( + model=model, + batch_processor=None, + optimizer=optimizer, + work_dir=cfg.work_dir, + logger=logger, + meta=meta)) # register hooks runner.register_training_hooks(cfg.lr_config, cfg.optimizer_config, @@ -96,6 +105,7 @@ def train_segmentor(model, dist=distributed, shuffle=False) eval_cfg = cfg.get('evaluation', {}) + eval_cfg['by_epoch'] = cfg.runner['type'] != 'IterBasedRunner' eval_hook = DistEvalHook if distributed else EvalHook runner.register_hook(eval_hook(val_dataloader, **eval_cfg)) @@ -103,4 +113,4 @@ def train_segmentor(model, runner.resume(cfg.resume_from) elif cfg.load_from: runner.load_checkpoint(cfg.load_from) - runner.run(data_loaders, cfg.workflow, cfg.total_iters) + runner.run(data_loaders, cfg.workflow) diff --git a/mmseg/core/evaluation/eval_hooks.py b/mmseg/core/evaluation/eval_hooks.py index cbd0b23fe9..09c6265ece 100644 --- a/mmseg/core/evaluation/eval_hooks.py +++ b/mmseg/core/evaluation/eval_hooks.py @@ -12,17 +12,27 @@ class EvalHook(Hook): interval (int): Evaluation interval (by epochs). Default: 1. """ - def __init__(self, dataloader, interval=1, **eval_kwargs): + def __init__(self, dataloader, interval=1, by_epoch=False, **eval_kwargs): if not isinstance(dataloader, DataLoader): raise TypeError('dataloader must be a pytorch DataLoader, but got ' f'{type(dataloader)}') self.dataloader = dataloader self.interval = interval + self.by_epoch = by_epoch self.eval_kwargs = eval_kwargs def after_train_iter(self, runner): """After train epoch hook.""" - if not self.every_n_iters(runner, self.interval): + if self.by_epoch or not self.every_n_iters(runner, self.interval): + return + from mmseg.apis import single_gpu_test + runner.log_buffer.clear() + results = single_gpu_test(runner.model, self.dataloader, show=False) + self.evaluate(runner, results) + + def after_train_epoch(self, runner): + """After train epoch hook.""" + if not self.by_epoch or not self.every_n_epochs(runner, self.interval): return from mmseg.apis import single_gpu_test runner.log_buffer.clear() @@ -54,6 +64,7 @@ def __init__(self, dataloader, interval=1, gpu_collect=False, + by_epoch=False, **eval_kwargs): if not isinstance(dataloader, DataLoader): raise TypeError( @@ -62,11 +73,27 @@ def __init__(self, self.dataloader = dataloader self.interval = interval self.gpu_collect = gpu_collect + self.by_epoch = by_epoch self.eval_kwargs = eval_kwargs def after_train_iter(self, runner): """After train epoch hook.""" - if not self.every_n_iters(runner, self.interval): + if self.by_epoch or not self.every_n_iters(runner, self.interval): + return + from mmseg.apis import multi_gpu_test + runner.log_buffer.clear() + results = multi_gpu_test( + runner.model, + self.dataloader, + tmpdir=osp.join(runner.work_dir, '.eval_hook'), + gpu_collect=self.gpu_collect) + if runner.rank == 0: + print('\n') + self.evaluate(runner, results) + + def after_train_epoch(self, runner): + """After train epoch hook.""" + if not self.by_epoch or not self.every_n_epochs(runner, self.interval): return from mmseg.apis import multi_gpu_test runner.log_buffer.clear() diff --git a/tests/test_eval_hook.py b/tests/test_eval_hook.py index 84542ecfe3..a6a1352ea5 100644 --- a/tests/test_eval_hook.py +++ b/tests/test_eval_hook.py @@ -38,7 +38,7 @@ def train_step(self, data_batch, optimizer): return dict(loss=loss) -def test_eval_hook(): +def test_iter_eval_hook(): with pytest.raises(TypeError): test_dataset = ExampleModel() data_loader = [ @@ -75,6 +75,43 @@ def test_eval_hook(): logger=runner.logger) +def test_epoch_eval_hook(): + with pytest.raises(TypeError): + test_dataset = ExampleModel() + data_loader = [ + DataLoader( + test_dataset, + batch_size=1, + sampler=None, + num_worker=0, + shuffle=False) + ] + EvalHook(data_loader, by_epoch=True) + + test_dataset = ExampleDataset() + test_dataset.evaluate = MagicMock(return_value=dict(test='success')) + loader = DataLoader(test_dataset, batch_size=1) + model = ExampleModel() + data_loader = DataLoader( + test_dataset, batch_size=1, sampler=None, num_workers=0, shuffle=False) + optim_cfg = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005) + optimizer = obj_from_dict(optim_cfg, torch.optim, + dict(params=model.parameters())) + + # test EvalHook with interval + with tempfile.TemporaryDirectory() as tmpdir: + eval_hook = EvalHook(data_loader, by_epoch=True, interval=2) + runner = mmcv.runner.EpochBasedRunner( + model=model, + optimizer=optimizer, + work_dir=tmpdir, + logger=logging.getLogger()) + runner.register_hook(eval_hook) + runner.run([loader], [('train', 1)], 2) + test_dataset.evaluate.assert_called_once_with([torch.tensor([1])], + logger=runner.logger) + + def multi_gpu_test(model, data_loader, tmpdir=None, gpu_collect=False): results = single_gpu_test(model, data_loader) return results @@ -116,3 +153,41 @@ def test_dist_eval_hook(): runner.run([loader], [('train', 1)], 1) test_dataset.evaluate.assert_called_with([torch.tensor([1])], logger=runner.logger) + + +@patch('mmseg.apis.multi_gpu_test', multi_gpu_test) +def test_dist_eval_hook_epoch(): + with pytest.raises(TypeError): + test_dataset = ExampleModel() + data_loader = [ + DataLoader( + test_dataset, + batch_size=1, + sampler=None, + num_worker=0, + shuffle=False) + ] + DistEvalHook(data_loader) + + test_dataset = ExampleDataset() + test_dataset.evaluate = MagicMock(return_value=dict(test='success')) + loader = DataLoader(test_dataset, batch_size=1) + model = ExampleModel() + data_loader = DataLoader( + test_dataset, batch_size=1, sampler=None, num_workers=0, shuffle=False) + optim_cfg = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005) + optimizer = obj_from_dict(optim_cfg, torch.optim, + dict(params=model.parameters())) + + # test DistEvalHook + with tempfile.TemporaryDirectory() as tmpdir: + eval_hook = DistEvalHook(data_loader, by_epoch=True, interval=2) + runner = mmcv.runner.EpochBasedRunner( + model=model, + optimizer=optimizer, + work_dir=tmpdir, + logger=logging.getLogger()) + runner.register_hook(eval_hook) + runner.run([loader], [('train', 1)], 2) + test_dataset.evaluate.assert_called_with([torch.tensor([1])], + logger=runner.logger) From 294a1f377a84ead53ba8b5ed4e2769cdf970f8c7 Mon Sep 17 00:00:00 2001 From: yamengxi <49829199+yamengxi@users.noreply.github.com> Date: Thu, 29 Oct 2020 02:58:44 +0800 Subject: [PATCH 057/706] fix dataset jpg bug (#213) * fix dataset jpg bug * fix syntax error --- mmseg/datasets/chase_db1.py | 8 ++++---- mmseg/datasets/drive.py | 8 ++++---- mmseg/datasets/hrf.py | 8 ++++---- mmseg/datasets/stare.py | 8 ++++---- tools/convert_datasets/chase_db1.py | 14 +++++++++----- tools/convert_datasets/drive.py | 10 +++++----- tools/convert_datasets/hrf.py | 8 ++++---- tools/convert_datasets/stare.py | 12 ++++++------ 8 files changed, 40 insertions(+), 36 deletions(-) diff --git a/mmseg/datasets/chase_db1.py b/mmseg/datasets/chase_db1.py index 79d544f202..8bc29bea14 100644 --- a/mmseg/datasets/chase_db1.py +++ b/mmseg/datasets/chase_db1.py @@ -10,8 +10,8 @@ class ChaseDB1Dataset(CustomDataset): In segmentation map annotation for Chase_db1, 0 stands for background, which is included in 2 categories. ``reduce_zero_label`` is fixed to False. - The ``img_suffix`` is fixed to '.jpg' and ``seg_map_suffix`` is fixed to - '_1stHO.jpg'. + The ``img_suffix`` is fixed to '.png' and ``seg_map_suffix`` is fixed to + '_1stHO.png'. """ CLASSES = ('background', 'vessel') @@ -20,8 +20,8 @@ class ChaseDB1Dataset(CustomDataset): def __init__(self, **kwargs): super(ChaseDB1Dataset, self).__init__( - img_suffix='.jpg', - seg_map_suffix='_1stHO.jpg', + img_suffix='.png', + seg_map_suffix='_1stHO.png', reduce_zero_label=False, **kwargs) assert osp.exists(self.img_dir) diff --git a/mmseg/datasets/drive.py b/mmseg/datasets/drive.py index 177ca5f691..3cbfda8ae7 100644 --- a/mmseg/datasets/drive.py +++ b/mmseg/datasets/drive.py @@ -10,8 +10,8 @@ class DRIVEDataset(CustomDataset): In segmentation map annotation for DRIVE, 0 stands for background, which is included in 2 categories. ``reduce_zero_label`` is fixed to False. The - ``img_suffix`` is fixed to '.jpg' and ``seg_map_suffix`` is fixed to - '_manual1.jpg'. + ``img_suffix`` is fixed to '.png' and ``seg_map_suffix`` is fixed to + '_manual1.png'. """ CLASSES = ('background', 'vessel') @@ -20,8 +20,8 @@ class DRIVEDataset(CustomDataset): def __init__(self, **kwargs): super(DRIVEDataset, self).__init__( - img_suffix='.jpg', - seg_map_suffix='_manual1.jpg', + img_suffix='.png', + seg_map_suffix='_manual1.png', reduce_zero_label=False, **kwargs) assert osp.exists(self.img_dir) diff --git a/mmseg/datasets/hrf.py b/mmseg/datasets/hrf.py index ff24417831..923203b513 100644 --- a/mmseg/datasets/hrf.py +++ b/mmseg/datasets/hrf.py @@ -10,8 +10,8 @@ class HRFDataset(CustomDataset): In segmentation map annotation for HRF, 0 stands for background, which is included in 2 categories. ``reduce_zero_label`` is fixed to False. The - ``img_suffix`` is fixed to '.jpg' and ``seg_map_suffix`` is fixed to - '.jpg'. + ``img_suffix`` is fixed to '.png' and ``seg_map_suffix`` is fixed to + '.png'. """ CLASSES = ('background', 'vessel') @@ -20,8 +20,8 @@ class HRFDataset(CustomDataset): def __init__(self, **kwargs): super(HRFDataset, self).__init__( - img_suffix='.jpg', - seg_map_suffix='.jpg', + img_suffix='.png', + seg_map_suffix='.png', reduce_zero_label=False, **kwargs) assert osp.exists(self.img_dir) diff --git a/mmseg/datasets/stare.py b/mmseg/datasets/stare.py index 97e987a39c..cbd14e0920 100644 --- a/mmseg/datasets/stare.py +++ b/mmseg/datasets/stare.py @@ -10,8 +10,8 @@ class STAREDataset(CustomDataset): In segmentation map annotation for STARE, 0 stands for background, which is included in 2 categories. ``reduce_zero_label`` is fixed to False. The - ``img_suffix`` is fixed to '.jpg' and ``seg_map_suffix`` is fixed to - '.ah.jpg'. + ``img_suffix`` is fixed to '.png' and ``seg_map_suffix`` is fixed to + '.ah.png'. """ CLASSES = ('background', 'vessel') @@ -20,8 +20,8 @@ class STAREDataset(CustomDataset): def __init__(self, **kwargs): super(STAREDataset, self).__init__( - img_suffix='.jpg', - seg_map_suffix='.ah.jpg', + img_suffix='.png', + seg_map_suffix='.ah.png', reduce_zero_label=False, **kwargs) assert osp.exists(self.img_dir) diff --git a/tools/convert_datasets/chase_db1.py b/tools/convert_datasets/chase_db1.py index e127a04f74..56bb210edb 100644 --- a/tools/convert_datasets/chase_db1.py +++ b/tools/convert_datasets/chase_db1.py @@ -50,8 +50,10 @@ def main(): for img_name in sorted(os.listdir(tmp_dir))[:TRAINING_LEN]: img = mmcv.imread(osp.join(tmp_dir, img_name)) if osp.splitext(img_name)[1] == '.jpg': - mmcv.imwrite(img, - osp.join(out_dir, 'images', 'training', img_name)) + mmcv.imwrite( + img, + osp.join(out_dir, 'images', 'training', + osp.splitext(img_name)[0] + '.png')) else: # The annotation img should be divided by 128, because some of # the annotation imgs are not standard. We should set a @@ -61,18 +63,20 @@ def main(): mmcv.imwrite( img[:, :, 0] // 128, osp.join(out_dir, 'annotations', 'training', - osp.splitext(img_name)[0] + '.jpg')) + osp.splitext(img_name)[0] + '.png')) for img_name in sorted(os.listdir(tmp_dir))[TRAINING_LEN:]: img = mmcv.imread(osp.join(tmp_dir, img_name)) if osp.splitext(img_name)[1] == '.jpg': mmcv.imwrite( - img, osp.join(out_dir, 'images', 'validation', img_name)) + img, + osp.join(out_dir, 'images', 'validation', + osp.splitext(img_name)[0] + '.png')) else: mmcv.imwrite( img[:, :, 0] // 128, osp.join(out_dir, 'annotations', 'validation', - osp.splitext(img_name)[0] + '.jpg')) + osp.splitext(img_name)[0] + '.png')) print('Removing the temporary files...') diff --git a/tools/convert_datasets/drive.py b/tools/convert_datasets/drive.py index c25a1d2059..891f06f725 100644 --- a/tools/convert_datasets/drive.py +++ b/tools/convert_datasets/drive.py @@ -53,7 +53,7 @@ def main(): osp.join( out_dir, 'images', 'training', osp.splitext(img_name)[0].replace('_training', '') + - '.jpg')) + '.png')) now_dir = osp.join(tmp_dir, 'training', '1st_manual') for img_name in os.listdir(now_dir): @@ -62,7 +62,7 @@ def main(): mmcv.imwrite( img[:, :, 0] // 128, osp.join(out_dir, 'annotations', 'training', - osp.splitext(img_name)[0] + '.jpg')) + osp.splitext(img_name)[0] + '.png')) print('Extracting test.zip...') zip_file = zipfile.ZipFile(testing_path) @@ -76,7 +76,7 @@ def main(): img, osp.join( out_dir, 'images', 'validation', - osp.splitext(img_name)[0].replace('_test', '') + '.jpg')) + osp.splitext(img_name)[0].replace('_test', '') + '.png')) now_dir = osp.join(tmp_dir, 'test', '1st_manual') if osp.exists(now_dir): @@ -91,7 +91,7 @@ def main(): mmcv.imwrite( img[:, :, 0] // 128, osp.join(out_dir, 'annotations', 'validation', - osp.splitext(img_name)[0] + '.jpg')) + osp.splitext(img_name)[0] + '.png')) now_dir = osp.join(tmp_dir, 'test', '2nd_manual') if osp.exists(now_dir): @@ -101,7 +101,7 @@ def main(): mmcv.imwrite( img[:, :, 0] // 128, osp.join(out_dir, 'annotations', 'validation', - osp.splitext(img_name)[0] + '.jpg')) + osp.splitext(img_name)[0] + '.png')) print('Removing the temporary files...') diff --git a/tools/convert_datasets/hrf.py b/tools/convert_datasets/hrf.py index 3f00b9bcd9..bdeb6e7e56 100644 --- a/tools/convert_datasets/hrf.py +++ b/tools/convert_datasets/hrf.py @@ -68,13 +68,13 @@ def main(): mmcv.imwrite( img, osp.join(out_dir, 'images', 'training', - osp.splitext(filename)[0] + '.jpg')) + osp.splitext(filename)[0] + '.png')) for filename in sorted(os.listdir(tmp_dir))[TRAINING_LEN:]: img = mmcv.imread(osp.join(tmp_dir, filename)) mmcv.imwrite( img, osp.join(out_dir, 'images', 'validation', - osp.splitext(filename)[0] + '.jpg')) + osp.splitext(filename)[0] + '.png')) print('Generating annotations...') for now_path in annotations_path: @@ -95,13 +95,13 @@ def main(): mmcv.imwrite( img[:, :, 0] // 128, osp.join(out_dir, 'annotations', 'training', - osp.splitext(filename)[0] + '.jpg')) + osp.splitext(filename)[0] + '.png')) for filename in sorted(os.listdir(tmp_dir))[TRAINING_LEN:]: img = mmcv.imread(osp.join(tmp_dir, filename)) mmcv.imwrite( img[:, :, 0] // 128, osp.join(out_dir, 'annotations', 'validation', - osp.splitext(filename)[0] + '.jpg')) + osp.splitext(filename)[0] + '.png')) print('Done!') diff --git a/tools/convert_datasets/stare.py b/tools/convert_datasets/stare.py index 28129da08b..6238d62f64 100644 --- a/tools/convert_datasets/stare.py +++ b/tools/convert_datasets/stare.py @@ -73,14 +73,14 @@ def main(): mmcv.imwrite( img, osp.join(out_dir, 'images', 'training', - osp.splitext(filename)[0] + '.jpg')) + osp.splitext(filename)[0] + '.png')) for filename in sorted(os.listdir(now_dir))[TRAINING_LEN:]: img = mmcv.imread(osp.join(now_dir, filename)) mmcv.imwrite( img, osp.join(out_dir, 'images', 'validation', - osp.splitext(filename)[0] + '.jpg')) + osp.splitext(filename)[0] + '.png')) print('Removing the temporary files...') @@ -112,14 +112,14 @@ def main(): mmcv.imwrite( img[:, :, 0] // 128, osp.join(out_dir, 'annotations', 'training', - osp.splitext(filename)[0] + '.jpg')) + osp.splitext(filename)[0] + '.png')) for filename in sorted(os.listdir(now_dir))[TRAINING_LEN:]: img = mmcv.imread(osp.join(now_dir, filename)) mmcv.imwrite( img[:, :, 0] // 128, osp.join(out_dir, 'annotations', 'validation', - osp.splitext(filename)[0] + '.jpg')) + osp.splitext(filename)[0] + '.png')) print('Removing the temporary files...') @@ -147,14 +147,14 @@ def main(): mmcv.imwrite( img[:, :, 0] // 128, osp.join(out_dir, 'annotations', 'training', - osp.splitext(filename)[0] + '.jpg')) + osp.splitext(filename)[0] + '.png')) for filename in sorted(os.listdir(now_dir))[TRAINING_LEN:]: img = mmcv.imread(osp.join(now_dir, filename)) mmcv.imwrite( img[:, :, 0] // 128, osp.join(out_dir, 'annotations', 'validation', - osp.splitext(filename)[0] + '.jpg')) + osp.splitext(filename)[0] + '.png')) print('Removing the temporary files...') From 86d473002f9e68111aa95465b6ac3bdbdb07f25a Mon Sep 17 00:00:00 2001 From: yamengxi <49829199+yamengxi@users.noreply.github.com> Date: Tue, 3 Nov 2020 16:05:25 +0800 Subject: [PATCH 058/706] [New model] Support CGNet (#223) * added cgnet * added testing for cgnet * git test * add cgnet * fix __init__ * rename FGlo with GlobalContextExtractor * add readme.md and rename bn with norm * delete cg_head * fix a language mistake * rename cgnet_m3n21.py to cgnet.py * modify README.md * modify list to tuple * add fcn_head test * add assert to fcn_head * blank * fix fcn_head assert bug * add * add cgnet to README.md and model_zoo.md * modify cgnet README.md Co-authored-by: KID --- README.md | 1 + configs/_base_/models/cgnet.py | 35 ++ configs/cgnet/README.md | 21 + .../cgnet/cgnet_512x1024_60k_cityscapes.py | 66 ++++ configs/cgnet/cgnet_680x680_60k_cityscapes.py | 50 +++ docs/model_zoo.md | 4 + mmseg/models/backbones/__init__.py | 3 +- mmseg/models/backbones/cgnet.py | 367 ++++++++++++++++++ mmseg/models/decode_heads/fcn_head.py | 10 +- tests/test_models/test_backbone.py | 150 ++++++- tests/test_models/test_heads.py | 18 +- 11 files changed, 718 insertions(+), 7 deletions(-) create mode 100644 configs/_base_/models/cgnet.py create mode 100644 configs/cgnet/README.md create mode 100644 configs/cgnet/cgnet_512x1024_60k_cityscapes.py create mode 100644 configs/cgnet/cgnet_680x680_60k_cityscapes.py create mode 100644 mmseg/models/backbones/cgnet.py diff --git a/README.md b/README.md index affcab7fa9..2c5b5b94cc 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,7 @@ Supported methods: - [x] [PointRend](configs/point_rend) - [x] [EMANet](configs/emanet) - [x] [DNLNet](configs/dnlnet) +- [x] [CGNet](configs/cgnet) - [x] [Mixed Precision (FP16) Training](configs/fp16/README.md) ## Installation diff --git a/configs/_base_/models/cgnet.py b/configs/_base_/models/cgnet.py new file mode 100644 index 0000000000..e598abca2e --- /dev/null +++ b/configs/_base_/models/cgnet.py @@ -0,0 +1,35 @@ +# model settings +norm_cfg = dict(type='SyncBN', eps=1e-03, requires_grad=True) +model = dict( + type='EncoderDecoder', + backbone=dict( + type='CGNet', + norm_cfg=norm_cfg, + in_channels=3, + num_channels=(32, 64, 128), + num_blocks=(3, 21), + dilations=(2, 4), + reductions=(8, 16)), + decode_head=dict( + type='FCNHead', + in_channels=256, + in_index=2, + channels=256, + num_convs=0, + concat_input=False, + dropout_ratio=0, + num_classes=19, + norm_cfg=norm_cfg, + loss_decode=dict( + type='CrossEntropyLoss', + use_sigmoid=False, + loss_weight=1.0, + class_weight=[ + 2.5959933, 6.7415504, 3.5354059, 9.8663225, 9.690899, 9.369352, + 10.289121, 9.953208, 4.3097677, 9.490387, 7.674431, 9.396905, + 10.347791, 6.3927646, 10.226669, 10.241062, 10.280587, + 10.396974, 10.055647 + ]))) +# model training and testing settings +train_cfg = dict(sampler=None) +test_cfg = dict(mode='whole') diff --git a/configs/cgnet/README.md b/configs/cgnet/README.md new file mode 100644 index 0000000000..f260a47d06 --- /dev/null +++ b/configs/cgnet/README.md @@ -0,0 +1,21 @@ +# CGNet: A Light-weight Context Guided Network for Semantic Segmentation + +## Introduction + +```latext +@article{wu2018cgnet, + title={CGNet: A Light-weight Context Guided Network for Semantic Segmentation}, + author={Wu, Tianyi and Tang, Sheng and Zhang, Rui and Zhang, Yongdong}, + journal={arXiv preprint arXiv:1811.08201}, + year={2018} +} +``` + +## Results and models + +### Cityscapes + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | +|-----------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| CGNet | M3N21 | 680x680 | 60000 | 7.5 | 30.51 | 65.63 | 68.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_680x680_60k_cityscapes/cgnet_680x680_60k_cityscapes_20201101_110253-4c0b2f2d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_680x680_60k_cityscapes/cgnet_680x680_60k_cityscapes-20201101_110253.log.json) | +| CGNet | M3N21 | 512x1024 | 60000 | 8.3 | 31.14 | 68.27 | 70.33 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_512x1024_60k_cityscapes/cgnet_512x1024_60k_cityscapes_20201101_110254-124ea03b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_512x1024_60k_cityscapes/cgnet_512x1024_60k_cityscapes-20201101_110254.log.json) | diff --git a/configs/cgnet/cgnet_512x1024_60k_cityscapes.py b/configs/cgnet/cgnet_512x1024_60k_cityscapes.py new file mode 100644 index 0000000000..11421ef9d3 --- /dev/null +++ b/configs/cgnet/cgnet_512x1024_60k_cityscapes.py @@ -0,0 +1,66 @@ +_base_ = ['../_base_/models/cgnet.py', '../_base_/default_runtime.py'] + +# optimizer +optimizer = dict(type='Adam', lr=0.001, eps=1e-08, weight_decay=0.0005) +optimizer_config = dict() +# learning policy +lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False) +# runtime settings +total_iters = 60000 +checkpoint_config = dict(by_epoch=False, interval=4000) +evaluation = dict(interval=4000, metric='mIoU') + +# dataset settings +dataset_type = 'CityscapesDataset' +data_root = 'data/cityscapes/' +img_norm_cfg = dict( + mean=[72.39239876, 82.90891754, 73.15835921], std=[1, 1, 1], to_rgb=True) +crop_size = (512, 1024) +train_pipeline = [ + dict(type='LoadImageFromFile'), + dict(type='LoadAnnotations'), + dict(type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)), + dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='RandomFlip', flip_ratio=0.5), + dict(type='PhotoMetricDistortion'), + dict(type='Normalize', **img_norm_cfg), + dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255), + dict(type='DefaultFormatBundle'), + dict(type='Collect', keys=['img', 'gt_semantic_seg']), +] +test_pipeline = [ + dict(type='LoadImageFromFile'), + dict( + type='MultiScaleFlipAug', + img_scale=(2048, 1024), + # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75], + flip=False, + transforms=[ + dict(type='Resize', keep_ratio=True), + dict(type='RandomFlip'), + dict(type='Normalize', **img_norm_cfg), + dict(type='ImageToTensor', keys=['img']), + dict(type='Collect', keys=['img']), + ]) +] +data = dict( + samples_per_gpu=8, + workers_per_gpu=8, + train=dict( + type=dataset_type, + data_root=data_root, + img_dir='leftImg8bit/train', + ann_dir='gtFine/train', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + data_root=data_root, + img_dir='leftImg8bit/val', + ann_dir='gtFine/val', + pipeline=test_pipeline), + test=dict( + type=dataset_type, + data_root=data_root, + img_dir='leftImg8bit/val', + ann_dir='gtFine/val', + pipeline=test_pipeline)) diff --git a/configs/cgnet/cgnet_680x680_60k_cityscapes.py b/configs/cgnet/cgnet_680x680_60k_cityscapes.py new file mode 100644 index 0000000000..2b2f8eefb7 --- /dev/null +++ b/configs/cgnet/cgnet_680x680_60k_cityscapes.py @@ -0,0 +1,50 @@ +_base_ = [ + '../_base_/models/cgnet.py', '../_base_/datasets/cityscapes.py', + '../_base_/default_runtime.py' +] + +# optimizer +optimizer = dict(type='Adam', lr=0.001, eps=1e-08, weight_decay=0.0005) +optimizer_config = dict() +# learning policy +lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False) +# runtime settings +total_iters = 60000 +checkpoint_config = dict(by_epoch=False, interval=4000) +evaluation = dict(interval=4000, metric='mIoU') + +img_norm_cfg = dict( + mean=[72.39239876, 82.90891754, 73.15835921], std=[1, 1, 1], to_rgb=True) +crop_size = (680, 680) +train_pipeline = [ + dict(type='LoadImageFromFile'), + dict(type='LoadAnnotations'), + dict(type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)), + dict(type='RandomCrop', crop_size=crop_size), + dict(type='RandomFlip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255), + dict(type='DefaultFormatBundle'), + dict(type='Collect', keys=['img', 'gt_semantic_seg']), +] +test_pipeline = [ + dict(type='LoadImageFromFile'), + dict( + type='MultiScaleFlipAug', + img_scale=(2048, 1024), + # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75], + flip=False, + transforms=[ + dict(type='Resize', keep_ratio=True), + dict(type='RandomFlip'), + dict(type='Normalize', **img_norm_cfg), + dict(type='ImageToTensor', keys=['img']), + dict(type='Collect', keys=['img']), + ]) +] +data = dict( + samples_per_gpu=8, + workers_per_gpu=8, + train=dict(pipeline=train_pipeline), + val=dict(pipeline=test_pipeline), + test=dict(pipeline=test_pipeline)) diff --git a/docs/model_zoo.md b/docs/model_zoo.md index fb86c5e377..0dd1b410bc 100644 --- a/docs/model_zoo.md +++ b/docs/model_zoo.md @@ -111,6 +111,10 @@ Please refer to [EMANet](https://github.com/open-mmlab/mmsegmentation/blob/maste Please refer to [DNLNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dnlnet) for details. +### CGNet + +Please refer to [CGNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/cgnet) for details. + ### Mixed Precision (FP16) Training Please refer [Mixed Precision (FP16) Training](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/README.md) for details. diff --git a/mmseg/models/backbones/__init__.py b/mmseg/models/backbones/__init__.py index db5eb1c5c3..86174ac7a9 100644 --- a/mmseg/models/backbones/__init__.py +++ b/mmseg/models/backbones/__init__.py @@ -1,3 +1,4 @@ +from .cgnet import CGNet from .fast_scnn import FastSCNN from .hrnet import HRNet from .mobilenet_v2 import MobileNetV2 @@ -8,5 +9,5 @@ __all__ = [ 'ResNet', 'ResNetV1c', 'ResNetV1d', 'ResNeXt', 'HRNet', 'FastSCNN', - 'ResNeSt', 'MobileNetV2', 'UNet' + 'ResNeSt', 'MobileNetV2', 'UNet', 'CGNet' ] diff --git a/mmseg/models/backbones/cgnet.py b/mmseg/models/backbones/cgnet.py new file mode 100644 index 0000000000..968d171cd4 --- /dev/null +++ b/mmseg/models/backbones/cgnet.py @@ -0,0 +1,367 @@ +import torch +import torch.nn as nn +import torch.utils.checkpoint as cp +from mmcv.cnn import (ConvModule, build_conv_layer, build_norm_layer, + constant_init, kaiming_init) +from mmcv.runner import load_checkpoint +from mmcv.utils.parrots_wrapper import _BatchNorm + +from mmseg.utils import get_root_logger +from ..builder import BACKBONES + + +class GlobalContextExtractor(nn.Module): + """Global Context Extractor for CGNet. + + This class is employed to refine the joFint feature of both local feature + and surrounding context. + + Args: + channel (int): Number of input feature channels. + reduction (int): Reductions for global context extractor. Default: 16. + with_cp (bool): Use checkpoint or not. Using checkpoint will save some + memory while slowing down the training speed. Default: False. + """ + + def __init__(self, channel, reduction=16, with_cp=False): + super(GlobalContextExtractor, self).__init__() + self.channel = channel + self.reduction = reduction + assert reduction >= 1 and channel >= reduction + self.with_cp = with_cp + self.avg_pool = nn.AdaptiveAvgPool2d(1) + self.fc = nn.Sequential( + nn.Linear(channel, channel // reduction), nn.ReLU(inplace=True), + nn.Linear(channel // reduction, channel), nn.Sigmoid()) + + def forward(self, x): + + def _inner_forward(x): + num_batch, num_channel = x.size()[:2] + y = self.avg_pool(x).view(num_batch, num_channel) + y = self.fc(y).view(num_batch, num_channel, 1, 1) + return x * y + + if self.with_cp and x.requires_grad: + out = cp.checkpoint(_inner_forward, x) + else: + out = _inner_forward(x) + + return out + + +class ContextGuidedBlock(nn.Module): + """Context Guided Block for CGNet. + + This class consists of four components: local feature extractor, + surrounding feature extractor, joint feature extractor and global + context extractor. + + Args: + in_channels (int): Number of input feature channels. + out_channels (int): Number of output feature channels. + dilation (int): Dilation rate for surrounding context extractor. + Default: 2. + reduction (int): Reduction for global context extractor. Default: 16. + skip_connect (bool): Add input to output or not. Default: True. + downsample (bool): Downsample the input to 1/2 or not. Default: False. + conv_cfg (dict): Config dict for convolution layer. + Default: None, which means using conv2d. + norm_cfg (dict): Config dict for normalization layer. + Default: dict(type='BN', requires_grad=True). + act_cfg (dict): Config dict for activation layer. + Default: dict(type='PReLU'). + with_cp (bool): Use checkpoint or not. Using checkpoint will save some + memory while slowing down the training speed. Default: False. + """ + + def __init__(self, + in_channels, + out_channels, + dilation=2, + reduction=16, + skip_connect=True, + downsample=False, + conv_cfg=None, + norm_cfg=dict(type='BN', requires_grad=True), + act_cfg=dict(type='PReLU'), + with_cp=False): + super(ContextGuidedBlock, self).__init__() + self.with_cp = with_cp + self.downsample = downsample + + channels = out_channels if downsample else out_channels // 2 + if 'type' in act_cfg and act_cfg['type'] == 'PReLU': + act_cfg['num_parameters'] = channels + kernel_size = 3 if downsample else 1 + stride = 2 if downsample else 1 + padding = (kernel_size - 1) // 2 + + self.conv1x1 = ConvModule( + in_channels, + channels, + kernel_size, + stride, + padding, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + + self.f_loc = build_conv_layer( + conv_cfg, + channels, + channels, + kernel_size=3, + padding=1, + groups=channels, + bias=False) + self.f_sur = build_conv_layer( + conv_cfg, + channels, + channels, + kernel_size=3, + padding=dilation, + groups=channels, + dilation=dilation, + bias=False) + + self.bn = build_norm_layer(norm_cfg, 2 * channels)[1] + self.activate = nn.PReLU(2 * channels) + + if downsample: + self.bottleneck = build_conv_layer( + conv_cfg, + 2 * channels, + out_channels, + kernel_size=1, + bias=False) + + self.skip_connect = skip_connect and not downsample + self.f_glo = GlobalContextExtractor(out_channels, reduction, with_cp) + + def forward(self, x): + + def _inner_forward(x): + out = self.conv1x1(x) + loc = self.f_loc(out) + sur = self.f_sur(out) + + joi_feat = torch.cat([loc, sur], 1) # the joint feature + joi_feat = self.bn(joi_feat) + joi_feat = self.activate(joi_feat) + if self.downsample: + joi_feat = self.bottleneck(joi_feat) # channel = out_channels + # f_glo is employed to refine the joint feature + out = self.f_glo(joi_feat) + + if self.skip_connect: + return x + out + else: + return out + + if self.with_cp and x.requires_grad: + out = cp.checkpoint(_inner_forward, x) + else: + out = _inner_forward(x) + + return out + + +class InputInjection(nn.Module): + """Downsampling module for CGNet.""" + + def __init__(self, num_downsampling): + super(InputInjection, self).__init__() + self.pool = nn.ModuleList() + for i in range(num_downsampling): + self.pool.append(nn.AvgPool2d(3, stride=2, padding=1)) + + def forward(self, x): + for pool in self.pool: + x = pool(x) + return x + + +@BACKBONES.register_module() +class CGNet(nn.Module): + """CGNet backbone. + + A Light-weight Context Guided Network for Semantic Segmentation + arXiv: https://arxiv.org/abs/1811.08201 + + Args: + in_channels (int): Number of input image channels. Normally 3. + num_channels (tuple[int]): Numbers of feature channels at each stages. + Default: (32, 64, 128). + num_blocks (tuple[int]): Numbers of CG blocks at stage 1 and stage 2. + Default: (3, 21). + dilations (tuple[int]): Dilation rate for surrounding context + extractors at stage 1 and stage 2. Default: (2, 4). + reductions (tuple[int]): Reductions for global context extractors at + stage 1 and stage 2. Default: (8, 16). + conv_cfg (dict): Config dict for convolution layer. + Default: None, which means using conv2d. + norm_cfg (dict): Config dict for normalization layer. + Default: dict(type='BN', requires_grad=True). + act_cfg (dict): Config dict for activation layer. + Default: dict(type='PReLU'). + norm_eval (bool): Whether to set norm layers to eval mode, namely, + freeze running stats (mean and var). Note: Effect on Batch Norm + and its variants only. Default: False. + with_cp (bool): Use checkpoint or not. Using checkpoint will save some + memory while slowing down the training speed. Default: False. + """ + + def __init__(self, + in_channels=3, + num_channels=(32, 64, 128), + num_blocks=(3, 21), + dilations=(2, 4), + reductions=(8, 16), + conv_cfg=None, + norm_cfg=dict(type='BN', requires_grad=True), + act_cfg=dict(type='PReLU'), + norm_eval=False, + with_cp=False): + + super(CGNet, self).__init__() + self.in_channels = in_channels + self.num_channels = num_channels + assert isinstance(self.num_channels, tuple) and len( + self.num_channels) == 3 + self.num_blocks = num_blocks + assert isinstance(self.num_blocks, tuple) and len(self.num_blocks) == 2 + self.dilations = dilations + assert isinstance(self.dilations, tuple) and len(self.dilations) == 2 + self.reductions = reductions + assert isinstance(self.reductions, tuple) and len(self.reductions) == 2 + self.conv_cfg = conv_cfg + self.norm_cfg = norm_cfg + self.act_cfg = act_cfg + if 'type' in self.act_cfg and self.act_cfg['type'] == 'PReLU': + self.act_cfg['num_parameters'] = num_channels[0] + self.norm_eval = norm_eval + self.with_cp = with_cp + + cur_channels = in_channels + self.stem = nn.ModuleList() + for i in range(3): + self.stem.append( + ConvModule( + cur_channels, + num_channels[0], + 3, + 2 if i == 0 else 1, + padding=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg)) + cur_channels = num_channels[0] + + self.inject_2x = InputInjection(1) # down-sample for Input, factor=2 + self.inject_4x = InputInjection(2) # down-sample for Input, factor=4 + + cur_channels += in_channels + self.norm_prelu_0 = nn.Sequential( + build_norm_layer(norm_cfg, cur_channels)[1], + nn.PReLU(cur_channels)) + + # stage 1 + self.level1 = nn.ModuleList() + for i in range(num_blocks[0]): + self.level1.append( + ContextGuidedBlock( + cur_channels if i == 0 else num_channels[1], + num_channels[1], + dilations[0], + reductions[0], + downsample=(i == 0), + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg, + with_cp=with_cp)) # CG block + + cur_channels = 2 * num_channels[1] + in_channels + self.norm_prelu_1 = nn.Sequential( + build_norm_layer(norm_cfg, cur_channels)[1], + nn.PReLU(cur_channels)) + + # stage 2 + self.level2 = nn.ModuleList() + for i in range(num_blocks[1]): + self.level2.append( + ContextGuidedBlock( + cur_channels if i == 0 else num_channels[2], + num_channels[2], + dilations[1], + reductions[1], + downsample=(i == 0), + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg, + with_cp=with_cp)) # CG block + + cur_channels = 2 * num_channels[2] + self.norm_prelu_2 = nn.Sequential( + build_norm_layer(norm_cfg, cur_channels)[1], + nn.PReLU(cur_channels)) + + def forward(self, x): + output = [] + + # stage 0 + inp_2x = self.inject_2x(x) + inp_4x = self.inject_4x(x) + for layer in self.stem: + x = layer(x) + x = self.norm_prelu_0(torch.cat([x, inp_2x], 1)) + output.append(x) + + # stage 1 + for i, layer in enumerate(self.level1): + x = layer(x) + if i == 0: + down1 = x + x = self.norm_prelu_1(torch.cat([x, down1, inp_4x], 1)) + output.append(x) + + # stage 2 + for i, layer in enumerate(self.level2): + x = layer(x) + if i == 0: + down2 = x + x = self.norm_prelu_2(torch.cat([down2, x], 1)) + output.append(x) + + return output + + def init_weights(self, pretrained=None): + """Initialize the weights in backbone. + + Args: + pretrained (str, optional): Path to pre-trained weights. + Defaults to None. + """ + if isinstance(pretrained, str): + logger = get_root_logger() + load_checkpoint(self, pretrained, strict=False, logger=logger) + elif pretrained is None: + for m in self.modules(): + if isinstance(m, (nn.Conv2d, nn.Linear)): + kaiming_init(m) + elif isinstance(m, (_BatchNorm, nn.GroupNorm)): + constant_init(m, 1) + elif isinstance(m, nn.PReLU): + constant_init(m, 0) + else: + raise TypeError('pretrained must be a str or None') + + def train(self, mode=True): + """Convert the model into training mode whill keeping the normalization + layer freezed.""" + super(CGNet, self).train(mode) + if mode and self.norm_eval: + for m in self.modules(): + # trick: eval have effect on BatchNorm only + if isinstance(m, _BatchNorm): + m.eval() diff --git a/mmseg/models/decode_heads/fcn_head.py b/mmseg/models/decode_heads/fcn_head.py index ff48b51975..d660847f89 100644 --- a/mmseg/models/decode_heads/fcn_head.py +++ b/mmseg/models/decode_heads/fcn_head.py @@ -24,11 +24,14 @@ def __init__(self, kernel_size=3, concat_input=True, **kwargs): - assert num_convs > 0 + assert num_convs >= 0 self.num_convs = num_convs self.concat_input = concat_input self.kernel_size = kernel_size super(FCNHead, self).__init__(**kwargs) + if num_convs == 0: + assert self.in_channels == self.channels + convs = [] convs.append( ConvModule( @@ -49,7 +52,10 @@ def __init__(self, conv_cfg=self.conv_cfg, norm_cfg=self.norm_cfg, act_cfg=self.act_cfg)) - self.convs = nn.Sequential(*convs) + if num_convs == 0: + self.convs = nn.Identity() + else: + self.convs = nn.Sequential(*convs) if self.concat_input: self.conv_cat = ConvModule( self.in_channels + self.channels, diff --git a/tests/test_models/test_backbone.py b/tests/test_models/test_backbone.py index 3f654b7d7a..25467f86e4 100644 --- a/tests/test_models/test_backbone.py +++ b/tests/test_models/test_backbone.py @@ -4,8 +4,10 @@ from mmcv.utils.parrots_wrapper import _BatchNorm from torch.nn.modules import AvgPool2d, GroupNorm -from mmseg.models.backbones import (FastSCNN, ResNeSt, ResNet, ResNetV1d, - ResNeXt) +from mmseg.models.backbones import (CGNet, FastSCNN, ResNeSt, ResNet, + ResNetV1d, ResNeXt) +from mmseg.models.backbones.cgnet import (ContextGuidedBlock, + GlobalContextExtractor) from mmseg.models.backbones.resnest import Bottleneck as BottleneckS from mmseg.models.backbones.resnet import BasicBlock, Bottleneck from mmseg.models.backbones.resnext import Bottleneck as BottleneckX @@ -729,3 +731,147 @@ def test_resnest_backbone(): assert feat[1].shape == torch.Size([2, 512, 28, 28]) assert feat[2].shape == torch.Size([2, 1024, 14, 14]) assert feat[3].shape == torch.Size([2, 2048, 7, 7]) + + +def test_cgnet_GlobalContextExtractor(): + block = GlobalContextExtractor(16, 16, with_cp=True) + x = torch.randn(2, 16, 64, 64, requires_grad=True) + x_out = block(x) + assert x_out.shape == torch.Size([2, 16, 64, 64]) + + +def test_cgnet_context_guided_block(): + with pytest.raises(AssertionError): + # cgnet ContextGuidedBlock GlobalContextExtractor channel and reduction + # constraints. + ContextGuidedBlock(8, 8) + + # test cgnet ContextGuidedBlock with checkpoint forward + block = ContextGuidedBlock( + 16, 16, act_cfg=dict(type='PReLU'), with_cp=True) + assert block.with_cp + x = torch.randn(2, 16, 64, 64, requires_grad=True) + x_out = block(x) + assert x_out.shape == torch.Size([2, 16, 64, 64]) + + # test cgnet ContextGuidedBlock without checkpoint forward + block = ContextGuidedBlock(32, 32) + assert not block.with_cp + x = torch.randn(3, 32, 32, 32) + x_out = block(x) + assert x_out.shape == torch.Size([3, 32, 32, 32]) + + # test cgnet ContextGuidedBlock with down sampling + block = ContextGuidedBlock(32, 32, downsample=True) + assert block.conv1x1.conv.in_channels == 32 + assert block.conv1x1.conv.out_channels == 32 + assert block.conv1x1.conv.kernel_size == (3, 3) + assert block.conv1x1.conv.stride == (2, 2) + assert block.conv1x1.conv.padding == (1, 1) + + assert block.f_loc.in_channels == 32 + assert block.f_loc.out_channels == 32 + assert block.f_loc.kernel_size == (3, 3) + assert block.f_loc.stride == (1, 1) + assert block.f_loc.padding == (1, 1) + assert block.f_loc.groups == 32 + assert block.f_loc.dilation == (1, 1) + assert block.f_loc.bias is None + + assert block.f_sur.in_channels == 32 + assert block.f_sur.out_channels == 32 + assert block.f_sur.kernel_size == (3, 3) + assert block.f_sur.stride == (1, 1) + assert block.f_sur.padding == (2, 2) + assert block.f_sur.groups == 32 + assert block.f_sur.dilation == (2, 2) + assert block.f_sur.bias is None + + assert block.bottleneck.in_channels == 64 + assert block.bottleneck.out_channels == 32 + assert block.bottleneck.kernel_size == (1, 1) + assert block.bottleneck.stride == (1, 1) + assert block.bottleneck.bias is None + + x = torch.randn(1, 32, 32, 32) + x_out = block(x) + assert x_out.shape == torch.Size([1, 32, 16, 16]) + + # test cgnet ContextGuidedBlock without down sampling + block = ContextGuidedBlock(32, 32, downsample=False) + assert block.conv1x1.conv.in_channels == 32 + assert block.conv1x1.conv.out_channels == 16 + assert block.conv1x1.conv.kernel_size == (1, 1) + assert block.conv1x1.conv.stride == (1, 1) + assert block.conv1x1.conv.padding == (0, 0) + + assert block.f_loc.in_channels == 16 + assert block.f_loc.out_channels == 16 + assert block.f_loc.kernel_size == (3, 3) + assert block.f_loc.stride == (1, 1) + assert block.f_loc.padding == (1, 1) + assert block.f_loc.groups == 16 + assert block.f_loc.dilation == (1, 1) + assert block.f_loc.bias is None + + assert block.f_sur.in_channels == 16 + assert block.f_sur.out_channels == 16 + assert block.f_sur.kernel_size == (3, 3) + assert block.f_sur.stride == (1, 1) + assert block.f_sur.padding == (2, 2) + assert block.f_sur.groups == 16 + assert block.f_sur.dilation == (2, 2) + assert block.f_sur.bias is None + + x = torch.randn(1, 32, 32, 32) + x_out = block(x) + assert x_out.shape == torch.Size([1, 32, 32, 32]) + + +def test_cgnet_backbone(): + with pytest.raises(AssertionError): + # check invalid num_channels + CGNet(num_channels=(32, 64, 128, 256)) + + with pytest.raises(AssertionError): + # check invalid num_blocks + CGNet(num_blocks=(3, 21, 3)) + + with pytest.raises(AssertionError): + # check invalid dilation + CGNet(num_blocks=2) + + with pytest.raises(AssertionError): + # check invalid reduction + CGNet(reductions=16) + + with pytest.raises(AssertionError): + # check invalid num_channels and reduction + CGNet(num_channels=(32, 64, 128), reductions=(64, 129)) + + # Test CGNet with default settings + model = CGNet() + model.init_weights() + model.train() + + imgs = torch.randn(2, 3, 224, 224) + feat = model(imgs) + assert len(feat) == 3 + assert feat[0].shape == torch.Size([2, 35, 112, 112]) + assert feat[1].shape == torch.Size([2, 131, 56, 56]) + assert feat[2].shape == torch.Size([2, 256, 28, 28]) + + # Test CGNet with norm_eval True and with_cp True + model = CGNet(norm_eval=True, with_cp=True) + with pytest.raises(TypeError): + # check invalid pretrained + model.init_weights(pretrained=8) + model.init_weights() + model.train() + + imgs = torch.randn(2, 3, 224, 224) + feat = model(imgs) + assert len(feat) == 3 + assert feat[0].shape == torch.Size([2, 35, 112, 112]) + assert feat[1].shape == torch.Size([2, 131, 56, 56]) + assert feat[2].shape == torch.Size([2, 256, 28, 28]) diff --git a/tests/test_models/test_heads.py b/tests/test_models/test_heads.py index 8e60a915c6..acf290226e 100644 --- a/tests/test_models/test_heads.py +++ b/tests/test_models/test_heads.py @@ -105,8 +105,8 @@ def test_decode_head(): def test_fcn_head(): with pytest.raises(AssertionError): - # num_convs must be larger than 0 - FCNHead(num_classes=19, num_convs=0) + # num_convs must be not less than 0 + FCNHead(num_classes=19, num_convs=-1) # test no norm_cfg head = FCNHead(in_channels=32, channels=16, num_classes=19) @@ -178,6 +178,20 @@ def test_fcn_head(): outputs = head(inputs) assert outputs.shape == (1, head.num_classes, 45, 45) + # test num_conv = 0 + inputs = [torch.randn(1, 32, 45, 45)] + head = FCNHead( + in_channels=32, + channels=32, + num_classes=19, + num_convs=0, + concat_input=False) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + assert isinstance(head.convs, torch.nn.Identity) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) + def test_psp_head(): From be94bbf1cc37355a1d426b050b304918a98055ab Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Wed, 4 Nov 2020 16:18:02 -0800 Subject: [PATCH 059/706] Bump to v0.8 (#226) * Bump to v0.8 * add version --- docs/changelog.md | 13 +++++++++++++ mmseg/version.py | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/docs/changelog.md b/docs/changelog.md index 5c86d6b1d6..bbea68349a 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,5 +1,18 @@ ## Changelog +### V0.8 (03/11/2020) + +**Highlights** + +- Support 4 medical dataset, UNet and CGNet. + +**New Features** + +- Support customize runner ([#118](https://github.com/open-mmlab/mmsegmentation/pull/118)) +- Support UNet ([#161](https://github.com/open-mmlab/mmsegmentation/pull/162)) +- Support CHASE_DB1, DRIVE, STARE, HRD ([#203](https://github.com/open-mmlab/mmsegmentation/pull/203)) +- Support CGNet ([#223](https://github.com/open-mmlab/mmsegmentation/pull/223)) + ### V0.7 (07/10/2020) **Highlights** diff --git a/mmseg/version.py b/mmseg/version.py index 0e889ae80f..d9db9abffe 100644 --- a/mmseg/version.py +++ b/mmseg/version.py @@ -1,6 +1,6 @@ # Copyright (c) Open-MMLab. All rights reserved. -__version__ = '0.7.0' +__version__ = '0.8.0' def parse_version_info(version_str): From 500babf958bc8a6cad6abe21a7afdab49f5fd736 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Sat, 7 Nov 2020 09:53:12 -0800 Subject: [PATCH 060/706] [Feature] Add RandomRotate transform (#215) * add RandomRotate for transforms * change rotation function to mmcv.imrotate * refactor * add unittest * fixed test * fixed docstring * fixed test * add more test * fixed repr * rename to prob * fixed unittest Co-authored-by: hkzhang95 --- configs/_base_/datasets/ade20k.py | 2 +- configs/_base_/datasets/cityscapes.py | 2 +- configs/_base_/datasets/cityscapes_769x769.py | 2 +- configs/_base_/datasets/pascal_context.py | 2 +- configs/_base_/datasets/pascal_voc12.py | 2 +- mmseg/datasets/pipelines/transforms.py | 99 +++++++++++++++++-- tests/test_data/test_dataset.py | 2 +- tests/test_data/test_transform.py | 50 +++++++++- 8 files changed, 143 insertions(+), 18 deletions(-) diff --git a/configs/_base_/datasets/ade20k.py b/configs/_base_/datasets/ade20k.py index a1d9baba7c..efc8b4bb20 100644 --- a/configs/_base_/datasets/ade20k.py +++ b/configs/_base_/datasets/ade20k.py @@ -9,7 +9,7 @@ dict(type='LoadAnnotations', reduce_zero_label=True), dict(type='Resize', img_scale=(2048, 512), ratio_range=(0.5, 2.0)), dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75), - dict(type='RandomFlip', flip_ratio=0.5), + dict(type='RandomFlip', prob=0.5), dict(type='PhotoMetricDistortion'), dict(type='Normalize', **img_norm_cfg), dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255), diff --git a/configs/_base_/datasets/cityscapes.py b/configs/_base_/datasets/cityscapes.py index 21cf5c3958..f21867c63e 100644 --- a/configs/_base_/datasets/cityscapes.py +++ b/configs/_base_/datasets/cityscapes.py @@ -9,7 +9,7 @@ dict(type='LoadAnnotations'), dict(type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)), dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75), - dict(type='RandomFlip', flip_ratio=0.5), + dict(type='RandomFlip', prob=0.5), dict(type='PhotoMetricDistortion'), dict(type='Normalize', **img_norm_cfg), dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255), diff --git a/configs/_base_/datasets/cityscapes_769x769.py b/configs/_base_/datasets/cityscapes_769x769.py index a5bcff3710..336c7b254f 100644 --- a/configs/_base_/datasets/cityscapes_769x769.py +++ b/configs/_base_/datasets/cityscapes_769x769.py @@ -7,7 +7,7 @@ dict(type='LoadAnnotations'), dict(type='Resize', img_scale=(2049, 1025), ratio_range=(0.5, 2.0)), dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75), - dict(type='RandomFlip', flip_ratio=0.5), + dict(type='RandomFlip', prob=0.5), dict(type='PhotoMetricDistortion'), dict(type='Normalize', **img_norm_cfg), dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255), diff --git a/configs/_base_/datasets/pascal_context.py b/configs/_base_/datasets/pascal_context.py index a00e474cf6..ff65bad1b8 100644 --- a/configs/_base_/datasets/pascal_context.py +++ b/configs/_base_/datasets/pascal_context.py @@ -12,7 +12,7 @@ dict(type='LoadAnnotations'), dict(type='Resize', img_scale=img_scale, ratio_range=(0.5, 2.0)), dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75), - dict(type='RandomFlip', flip_ratio=0.5), + dict(type='RandomFlip', prob=0.5), dict(type='PhotoMetricDistortion'), dict(type='Normalize', **img_norm_cfg), dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255), diff --git a/configs/_base_/datasets/pascal_voc12.py b/configs/_base_/datasets/pascal_voc12.py index 6a367c7f1d..ba1d42d0c5 100644 --- a/configs/_base_/datasets/pascal_voc12.py +++ b/configs/_base_/datasets/pascal_voc12.py @@ -9,7 +9,7 @@ dict(type='LoadAnnotations'), dict(type='Resize', img_scale=(2048, 512), ratio_range=(0.5, 2.0)), dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75), - dict(type='RandomFlip', flip_ratio=0.5), + dict(type='RandomFlip', prob=0.5), dict(type='PhotoMetricDistortion'), dict(type='Normalize', **img_norm_cfg), dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255), diff --git a/mmseg/datasets/pipelines/transforms.py b/mmseg/datasets/pipelines/transforms.py index 2b314a810f..592854ab42 100644 --- a/mmseg/datasets/pipelines/transforms.py +++ b/mmseg/datasets/pipelines/transforms.py @@ -1,5 +1,6 @@ import mmcv import numpy as np +from mmcv.utils import deprecated_api_warning from numpy import random from ..builder import PIPELINES @@ -232,16 +233,17 @@ class RandomFlip(object): method. Args: - flip_ratio (float, optional): The flipping probability. Default: None. + prob (float, optional): The flipping probability. Default: None. direction(str, optional): The flipping direction. Options are 'horizontal' and 'vertical'. Default: 'horizontal'. """ - def __init__(self, flip_ratio=None, direction='horizontal'): - self.flip_ratio = flip_ratio + @deprecated_api_warning({'flip_ratio': 'prob'}, cls_name='RandomFlip') + def __init__(self, prob=None, direction='horizontal'): + self.prob = prob self.direction = direction - if flip_ratio is not None: - assert flip_ratio >= 0 and flip_ratio <= 1 + if prob is not None: + assert prob >= 0 and prob <= 1 assert direction in ['horizontal', 'vertical'] def __call__(self, results): @@ -257,7 +259,7 @@ def __call__(self, results): """ if 'flip' not in results: - flip = True if np.random.rand() < self.flip_ratio else False + flip = True if np.random.rand() < self.prob else False results['flip'] = flip if 'flip_direction' not in results: results['flip_direction'] = self.direction @@ -274,7 +276,7 @@ def __call__(self, results): return results def __repr__(self): - return self.__class__.__name__ + f'(flip_ratio={self.flip_ratio})' + return self.__class__.__name__ + f'(prob={self.prob})' @PIPELINES.register_module() @@ -463,6 +465,89 @@ def __repr__(self): return self.__class__.__name__ + f'(crop_size={self.crop_size})' +@PIPELINES.register_module() +class RandomRotate(object): + """Rotate the image & seg. + + Args: + prob (float): The rotation probability. + degree (float, tuple[float]): Range of degrees to select from. If + degree is a number instead of tuple like (min, max), + the range of degree will be (``-degree``, ``+degree``) + pad_val (float, optional): Padding value of image. Default: 0. + seg_pad_val (float, optional): Padding value of segmentation map. + Default: 255. + center (tuple[float], optional): Center point (w, h) of the rotation in + the source image. If not specified, the center of the image will be + used. Default: None. + auto_bound (bool): Whether to adjust the image size to cover the whole + rotated image. Default: False + """ + + def __init__(self, + prob, + degree, + pad_val=0, + seg_pad_val=255, + center=None, + auto_bound=False): + self.prob = prob + assert prob >= 0 and prob <= 1 + if isinstance(degree, (float, int)): + assert degree > 0, f'degree {degree} should be positive' + self.degree = (-degree, degree) + else: + self.degree = degree + assert len(self.degree) == 2, f'degree {self.degree} should be a ' \ + f'tuple of (min, max)' + self.pal_val = pad_val + self.seg_pad_val = seg_pad_val + self.center = center + self.auto_bound = auto_bound + + def __call__(self, results): + """Call function to rotate image, semantic segmentation maps. + + Args: + results (dict): Result dict from loading pipeline. + + Returns: + dict: Rotated results. + """ + + rotate = True if np.random.rand() < self.prob else False + degree = np.random.uniform(min(*self.degree), max(*self.degree)) + if rotate: + # rotate image + results['img'] = mmcv.imrotate( + results['img'], + angle=degree, + border_value=self.pal_val, + center=self.center, + auto_bound=self.auto_bound) + + # rotate segs + for key in results.get('seg_fields', []): + results[key] = mmcv.imrotate( + results[key], + angle=degree, + border_value=self.seg_pad_val, + center=self.center, + auto_bound=self.auto_bound, + interpolation='nearest') + return results + + def __repr__(self): + repr_str = self.__class__.__name__ + repr_str += f'(prob={self.prob}, ' \ + f'degree={self.degree}, ' \ + f'pad_val={self.pal_val}, ' \ + f'seg_pad_val={self.seg_pad_val}, ' \ + f'center={self.center}, ' \ + f'auto_bound={self.auto_bound})' + return repr_str + + @PIPELINES.register_module() class SegRescale(object): """Rescale semantic segmentation maps. diff --git a/tests/test_data/test_dataset.py b/tests/test_data/test_dataset.py index d7e44f50ec..e933c200cc 100644 --- a/tests/test_data/test_dataset.py +++ b/tests/test_data/test_dataset.py @@ -69,7 +69,7 @@ def test_custom_dataset(): dict(type='LoadAnnotations'), dict(type='Resize', img_scale=(128, 256), ratio_range=(0.5, 2.0)), dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75), - dict(type='RandomFlip', flip_ratio=0.5), + dict(type='RandomFlip', prob=0.5), dict(type='PhotoMetricDistortion'), dict(type='Normalize', **img_norm_cfg), dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255), diff --git a/tests/test_data/test_transform.py b/tests/test_data/test_transform.py index 7a1ca0dde3..ff06375c66 100644 --- a/tests/test_data/test_transform.py +++ b/tests/test_data/test_transform.py @@ -94,18 +94,17 @@ def test_resize(): def test_flip(): - # test assertion for invalid flip_ratio + # test assertion for invalid prob with pytest.raises(AssertionError): - transform = dict(type='RandomFlip', flip_ratio=1.5) + transform = dict(type='RandomFlip', prob=1.5) build_from_cfg(transform, PIPELINES) # test assertion for invalid direction with pytest.raises(AssertionError): - transform = dict( - type='RandomFlip', flip_ratio=1, direction='horizonta') + transform = dict(type='RandomFlip', prob=1, direction='horizonta') build_from_cfg(transform, PIPELINES) - transform = dict(type='RandomFlip', flip_ratio=1) + transform = dict(type='RandomFlip', prob=1) flip_module = build_from_cfg(transform, PIPELINES) results = dict() @@ -197,6 +196,47 @@ def test_pad(): assert img_shape[1] % 32 == 0 +def test_rotate(): + # test assertion degree should be tuple[float] or float + with pytest.raises(AssertionError): + transform = dict(type='RandomRotate', prob=0.5, degree=-10) + build_from_cfg(transform, PIPELINES) + # test assertion degree should be tuple[float] or float + with pytest.raises(AssertionError): + transform = dict(type='RandomRotate', prob=0.5, degree=(10., 20., 30.)) + build_from_cfg(transform, PIPELINES) + + transform = dict(type='RandomRotate', degree=10., prob=1.) + transform = build_from_cfg(transform, PIPELINES) + + assert str(transform) == f'RandomRotate(' \ + f'prob={1.}, ' \ + f'degree=({-10.}, {10.}), ' \ + f'pad_val={0}, ' \ + f'seg_pad_val={255}, ' \ + f'center={None}, ' \ + f'auto_bound={False})' + + results = dict() + img = mmcv.imread( + osp.join(osp.dirname(__file__), '../data/color.jpg'), 'color') + h, w, _ = img.shape + seg = np.array( + Image.open(osp.join(osp.dirname(__file__), '../data/seg.png'))) + results['img'] = img + results['gt_semantic_seg'] = seg + results['seg_fields'] = ['gt_semantic_seg'] + results['img_shape'] = img.shape + results['ori_shape'] = img.shape + # Set initial values for default meta_keys + results['pad_shape'] = img.shape + results['scale_factor'] = 1.0 + + results = transform(results) + assert results['img'].shape[:2] == (h, w) + assert results['gt_semantic_seg'].shape[:2] == (h, w) + + def test_normalize(): img_norm_cfg = dict( mean=[123.675, 116.28, 103.53], From 0588426eaa237a171884bd296fac480dfd1f876a Mon Sep 17 00:00:00 2001 From: yamengxi <49829199+yamengxi@users.noreply.github.com> Date: Mon, 9 Nov 2020 15:23:34 +0800 Subject: [PATCH 061/706] [Feature] Add Rgb2Gray transform (#227) * add transformer Rgb2Gray * restore * fix self.weights * restore * fix code * restore * fix syntax error * restore --- mmseg/datasets/pipelines/transforms.py | 55 +++++++++++++++++++++ tests/test_data/test_transform.py | 67 ++++++++++++++++++++++++++ 2 files changed, 122 insertions(+) diff --git a/mmseg/datasets/pipelines/transforms.py b/mmseg/datasets/pipelines/transforms.py index 592854ab42..5d38fa27aa 100644 --- a/mmseg/datasets/pipelines/transforms.py +++ b/mmseg/datasets/pipelines/transforms.py @@ -548,6 +548,61 @@ def __repr__(self): return repr_str +@PIPELINES.register_module() +class RGB2Gray(object): + """Convert RGB image to grayscale image. + + This transform calculate the weighted mean of input image channels with + ``weights`` and then expand the channels to ``out_channels``. When + ``out_channels`` is None, the number of output channels is the same as + input channels. + + Args: + out_channels (int): Expected number of output channels after + transforming. Default: None. + weights (tuple[float]): The weights to calculate the weighted mean. + Default: (0.299, 0.587, 0.114). + """ + + def __init__(self, out_channels=None, weights=(0.299, 0.587, 0.114)): + assert out_channels is None or out_channels > 0 + self.out_channels = out_channels + assert isinstance(weights, tuple) + for item in weights: + assert isinstance(item, (float, int)) + self.weights = weights + + def __call__(self, results): + """Call function to convert RGB image to grayscale image. + + Args: + results (dict): Result dict from loading pipeline. + + Returns: + dict: Result dict with grayscale image. + """ + img = results['img'] + assert len(img.shape) == 3 + assert img.shape[2] == len(self.weights) + weights = np.array(self.weights).reshape((1, 1, -1)) + img = (img * weights).sum(2, keepdims=True) + if self.out_channels is None: + img = img.repeat(weights.shape[2], axis=2) + else: + img = img.repeat(self.out_channels, axis=2) + + results['img'] = img + results['img_shape'] = img.shape + + return results + + def __repr__(self): + repr_str = self.__class__.__name__ + repr_str += f'(out_channels={self.out_channels}, ' \ + f'weights={self.weights})' + return repr_str + + @PIPELINES.register_module() class SegRescale(object): """Rescale semantic segmentation maps. diff --git a/tests/test_data/test_transform.py b/tests/test_data/test_transform.py index ff06375c66..4d199e993f 100644 --- a/tests/test_data/test_transform.py +++ b/tests/test_data/test_transform.py @@ -263,6 +263,73 @@ def test_normalize(): assert np.allclose(results['img'], converted_img) +def test_rgb2gray(): + # test assertion out_channels should be greater than 0 + with pytest.raises(AssertionError): + transform = dict(type='RGB2Gray', out_channels=-1) + build_from_cfg(transform, PIPELINES) + # test assertion weights should be tuple[float] + with pytest.raises(AssertionError): + transform = dict(type='RGB2Gray', out_channels=1, weights=1.1) + build_from_cfg(transform, PIPELINES) + + # test out_channels is None + transform = dict(type='RGB2Gray') + transform = build_from_cfg(transform, PIPELINES) + + assert str(transform) == f'RGB2Gray(' \ + f'out_channels={None}, ' \ + f'weights={(0.299, 0.587, 0.114)})' + + results = dict() + img = mmcv.imread( + osp.join(osp.dirname(__file__), '../data/color.jpg'), 'color') + h, w, c = img.shape + seg = np.array( + Image.open(osp.join(osp.dirname(__file__), '../data/seg.png'))) + results['img'] = img + results['gt_semantic_seg'] = seg + results['seg_fields'] = ['gt_semantic_seg'] + results['img_shape'] = img.shape + results['ori_shape'] = img.shape + # Set initial values for default meta_keys + results['pad_shape'] = img.shape + results['scale_factor'] = 1.0 + + results = transform(results) + assert results['img'].shape == (h, w, c) + assert results['img_shape'] == (h, w, c) + assert results['ori_shape'] == (h, w, c) + + # test out_channels = 2 + transform = dict(type='RGB2Gray', out_channels=2) + transform = build_from_cfg(transform, PIPELINES) + + assert str(transform) == f'RGB2Gray(' \ + f'out_channels={2}, ' \ + f'weights={(0.299, 0.587, 0.114)})' + + results = dict() + img = mmcv.imread( + osp.join(osp.dirname(__file__), '../data/color.jpg'), 'color') + h, w, c = img.shape + seg = np.array( + Image.open(osp.join(osp.dirname(__file__), '../data/seg.png'))) + results['img'] = img + results['gt_semantic_seg'] = seg + results['seg_fields'] = ['gt_semantic_seg'] + results['img_shape'] = img.shape + results['ori_shape'] = img.shape + # Set initial values for default meta_keys + results['pad_shape'] = img.shape + results['scale_factor'] = 1.0 + + results = transform(results) + assert results['img'].shape == (h, w, 2) + assert results['img_shape'] == (h, w, 2) + assert results['ori_shape'] == (h, w, c) + + def test_seg_rescale(): results = dict() seg = np.array( From 365ce9e2af8bea31c878b7f7f0cedaf84bdc7ebf Mon Sep 17 00:00:00 2001 From: yamengxi <49829199+yamengxi@users.noreply.github.com> Date: Tue, 10 Nov 2020 18:30:07 +0800 Subject: [PATCH 062/706] [Feature] Add Rerange transform (#228) * add rerange transform * restore * delete rerange config * delete rerange config hint * add min < max assert * restore --- mmseg/datasets/pipelines/transforms.py | 47 ++++++++++++++++++++++++++ tests/test_data/test_transform.py | 43 +++++++++++++++++++++++ 2 files changed, 90 insertions(+) diff --git a/mmseg/datasets/pipelines/transforms.py b/mmseg/datasets/pipelines/transforms.py index 5d38fa27aa..2f4262fdac 100644 --- a/mmseg/datasets/pipelines/transforms.py +++ b/mmseg/datasets/pipelines/transforms.py @@ -392,6 +392,53 @@ def __repr__(self): return repr_str +@PIPELINES.register_module() +class Rerange(object): + """Rerange the image pixel value. + + Args: + min_value (float or int): Minimum value of the reranged image. + Default: 0. + max_value (float or int): Maximum value of the reranged image. + Default: 255. + """ + + def __init__(self, min_value=0, max_value=255): + assert isinstance(min_value, float) or isinstance(min_value, int) + assert isinstance(max_value, float) or isinstance(max_value, int) + assert min_value < max_value + self.min_value = min_value + self.max_value = max_value + + def __call__(self, results): + """Call function to rerange images. + + Args: + results (dict): Result dict from loading pipeline. + + Returns: + dict: Reranged results. + """ + + img = results['img'] + img_min_value = np.min(img) + img_max_value = np.max(img) + + assert img_min_value < img_max_value + # rerange to [0, 1] + img = (img - img_min_value) / (img_max_value - img_min_value) + # rerange to [min_value, max_value] + img = img * (self.max_value - self.min_value) + self.min_value + results['img'] = img + + return results + + def __repr__(self): + repr_str = self.__class__.__name__ + repr_str += f'(min_value={self.min_value}, max_value={self.max_value})' + return repr_str + + @PIPELINES.register_module() class RandomCrop(object): """Random crop the image & seg. diff --git a/tests/test_data/test_transform.py b/tests/test_data/test_transform.py index 4d199e993f..d4f81ecc6f 100644 --- a/tests/test_data/test_transform.py +++ b/tests/test_data/test_transform.py @@ -330,6 +330,49 @@ def test_rgb2gray(): assert results['ori_shape'] == (h, w, c) +def test_rerange(): + # test assertion if min_value or max_value is illegal + with pytest.raises(AssertionError): + transform = dict(type='Rerange', min_value=[0], max_value=[255]) + build_from_cfg(transform, PIPELINES) + + # test assertion if min_value >= max_value + with pytest.raises(AssertionError): + transform = dict(type='Rerange', min_value=1, max_value=1) + build_from_cfg(transform, PIPELINES) + + # test assertion if img_min_value == img_max_value + with pytest.raises(AssertionError): + transform = dict(type='Rerange', min_value=0, max_value=1) + transform = build_from_cfg(transform, PIPELINES) + results = dict() + results['img'] = np.array([[1, 1], [1, 1]]) + transform(results) + + img_rerange_cfg = dict() + transform = dict(type='Rerange', **img_rerange_cfg) + transform = build_from_cfg(transform, PIPELINES) + results = dict() + img = mmcv.imread( + osp.join(osp.dirname(__file__), '../data/color.jpg'), 'color') + original_img = copy.deepcopy(img) + results['img'] = img + results['img_shape'] = img.shape + results['ori_shape'] = img.shape + # Set initial values for default meta_keys + results['pad_shape'] = img.shape + results['scale_factor'] = 1.0 + + results = transform(results) + + min_value = np.min(original_img) + max_value = np.max(original_img) + converted_img = (original_img - min_value) / (max_value - min_value) * 255 + + assert np.allclose(results['img'], converted_img) + assert str(transform) == f'Rerange(min_value={0}, max_value={255})' + + def test_seg_rescale(): results = dict() seg = np.array( From 378ea27e4f1bfa69a7129d71811d1fb111a5338d Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Mon, 16 Nov 2020 17:28:41 +0800 Subject: [PATCH 063/706] fix _resize_seg bug in Resize data transforms (#246) --- mmseg/datasets/pipelines/transforms.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mmseg/datasets/pipelines/transforms.py b/mmseg/datasets/pipelines/transforms.py index 2f4262fdac..74be564c57 100644 --- a/mmseg/datasets/pipelines/transforms.py +++ b/mmseg/datasets/pipelines/transforms.py @@ -195,7 +195,7 @@ def _resize_seg(self, results): else: gt_seg = mmcv.imresize( results[key], results['scale'], interpolation='nearest') - results['gt_semantic_seg'] = gt_seg + results[key] = gt_seg def __call__(self, results): """Call function to resize images, bounding boxes, masks, semantic From 16fae6ef7fbfb332c18fee8cb322b49bfd10e8ce Mon Sep 17 00:00:00 2001 From: Jinkun Cao Date: Mon, 16 Nov 2020 17:32:53 +0800 Subject: [PATCH 064/706] update test tutorial: --eval-options instead of --options to set extra options (#251) --- docs/getting_started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting_started.md b/docs/getting_started.md index 15fd155b5d..37bad85f8c 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -252,7 +252,7 @@ Assume that you have already downloaded the checkpoints to the directory `checkp ```shell ./tools/dist_test.sh configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \ checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth \ - 4 --format-only --options "imgfile_prefix=./pspnet_test_results" + 4 --format-only --eval-options "imgfile_prefix=./pspnet_test_results" ``` You will get png files under `./pspnet_test_results` directory. From ffcdfd36d08a4548556052dd56ac7662ed238183 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Tue, 17 Nov 2020 00:14:03 -0800 Subject: [PATCH 065/706] [Enhancement] Support ignore_index for sigmoid BCE (#210) * [Enhancement] Add args check for ignore_index * Support ignore_index --- configs/_base_/models/fast_scnn.py | 6 +-- .../fast_scnn_4x8_80k_lr0.12_cityscapes.py | 2 +- mmseg/models/decode_heads/decode_head.py | 3 +- mmseg/models/losses/cross_entropy_loss.py | 43 +++++++++++++------ tests/test_models/test_losses.py | 12 +++++- 5 files changed, 48 insertions(+), 18 deletions(-) diff --git a/configs/_base_/models/fast_scnn.py b/configs/_base_/models/fast_scnn.py index 67ee0d39a6..06cd83979d 100644 --- a/configs/_base_/models/fast_scnn.py +++ b/configs/_base_/models/fast_scnn.py @@ -25,7 +25,7 @@ norm_cfg=norm_cfg, align_corners=False, loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.)), + type='CrossEntropyLoss', use_sigmoid=True, loss_weight=0.4)), auxiliary_head=[ dict( type='FCNHead', @@ -38,7 +38,7 @@ concat_input=False, align_corners=False, loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + type='CrossEntropyLoss', use_sigmoid=True, loss_weight=0.4)), dict( type='FCNHead', in_channels=64, @@ -50,7 +50,7 @@ concat_input=False, align_corners=False, loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + type='CrossEntropyLoss', use_sigmoid=True, loss_weight=0.4)), ]) # model training and testing settings diff --git a/configs/fastscnn/fast_scnn_4x8_80k_lr0.12_cityscapes.py b/configs/fastscnn/fast_scnn_4x8_80k_lr0.12_cityscapes.py index 53fcfc4203..3d9c999937 100644 --- a/configs/fastscnn/fast_scnn_4x8_80k_lr0.12_cityscapes.py +++ b/configs/fastscnn/fast_scnn_4x8_80k_lr0.12_cityscapes.py @@ -4,7 +4,7 @@ ] # Re-config the data sampler. -data = dict(samples_per_gpu=8, workers_per_gpu=4) +data = dict(samples_per_gpu=2, workers_per_gpu=4) # Re-config the optimizer. optimizer = dict(type='SGD', lr=0.12, momentum=0.9, weight_decay=4e-5) diff --git a/mmseg/models/decode_heads/decode_head.py b/mmseg/models/decode_heads/decode_head.py index 0f58c80e9b..86b9b63f43 100644 --- a/mmseg/models/decode_heads/decode_head.py +++ b/mmseg/models/decode_heads/decode_head.py @@ -35,7 +35,8 @@ class BaseDecodeHead(nn.Module, metaclass=ABCMeta): Default: None. loss_decode (dict): Config of decode loss. Default: dict(type='CrossEntropyLoss'). - ignore_index (int): The label index to be ignored. Default: 255 + ignore_index (int | None): The label index to be ignored. When using + masked BCE loss, ignore_index should be set to None. Default: 255 sampler (dict|None): The config of segmentation map sampler. Default: None. align_corners (bool): align_corners argument of F.interpolate. diff --git a/mmseg/models/losses/cross_entropy_loss.py b/mmseg/models/losses/cross_entropy_loss.py index dcd9f1c894..44798421aa 100644 --- a/mmseg/models/losses/cross_entropy_loss.py +++ b/mmseg/models/losses/cross_entropy_loss.py @@ -32,17 +32,25 @@ def cross_entropy(pred, return loss -def _expand_onehot_labels(labels, label_weights, label_channels): +def _expand_onehot_labels(labels, label_weights, target_shape, ignore_index): """Expand onehot labels to match the size of prediction.""" - bin_labels = labels.new_full((labels.size(0), label_channels), 0) - inds = torch.nonzero(labels >= 1, as_tuple=False).squeeze() - if inds.numel() > 0: - bin_labels[inds, labels[inds] - 1] = 1 + bin_labels = labels.new_zeros(target_shape) + valid_mask = (labels >= 0) & (labels != ignore_index) + inds = torch.nonzero(valid_mask, as_tuple=True) + + if inds[0].numel() > 0: + if labels.dim() == 3: + bin_labels[inds[0], labels[valid_mask], inds[1], inds[2]] = 1 + else: + bin_labels[inds[0], labels[valid_mask]] = 1 + + valid_mask = valid_mask.unsqueeze(1).expand(target_shape).float() if label_weights is None: - bin_label_weights = None + bin_label_weights = valid_mask else: - bin_label_weights = label_weights.view(-1, 1).expand( - label_weights.size(0), label_channels) + bin_label_weights = label_weights.unsqueeze(1).expand(target_shape) + bin_label_weights *= valid_mask + return bin_labels, bin_label_weights @@ -51,7 +59,8 @@ def binary_cross_entropy(pred, weight=None, reduction='mean', avg_factor=None, - class_weight=None): + class_weight=None, + ignore_index=255): """Calculate the binary CrossEntropy loss. Args: @@ -63,18 +72,24 @@ def binary_cross_entropy(pred, avg_factor (int, optional): Average factor that is used to average the loss. Defaults to None. class_weight (list[float], optional): The weight for each class. + ignore_index (int | None): The label index to be ignored. Default: 255 Returns: torch.Tensor: The calculated loss """ if pred.dim() != label.dim(): - label, weight = _expand_onehot_labels(label, weight, pred.size(-1)) + assert (pred.dim() == 2 and label.dim() == 1) or ( + pred.dim() == 4 and label.dim() == 3), \ + 'Only pred shape [N, C], label shape [N] or pred shape [N, C, ' \ + 'H, W], label shape [N, H, W] are supported' + label, weight = _expand_onehot_labels(label, weight, pred.shape, + ignore_index) # weighted element-wise losses if weight is not None: weight = weight.float() loss = F.binary_cross_entropy_with_logits( - pred, label.float(), weight=class_weight, reduction='none') + pred, label.float(), pos_weight=class_weight, reduction='none') # do the reduction for the weighted loss loss = weight_reduce_loss( loss, weight, reduction=reduction, avg_factor=avg_factor) @@ -87,7 +102,8 @@ def mask_cross_entropy(pred, label, reduction='mean', avg_factor=None, - class_weight=None): + class_weight=None, + ignore_index=None): """Calculate the CrossEntropy loss for masks. Args: @@ -103,10 +119,13 @@ def mask_cross_entropy(pred, avg_factor (int, optional): Average factor that is used to average the loss. Defaults to None. class_weight (list[float], optional): The weight for each class. + ignore_index (None): Placeholder, to be consistent with other loss. + Default: None. Returns: torch.Tensor: The calculated loss """ + assert ignore_index is None, 'BCE loss does not support ignore_index' # TODO: handle these two reserved arguments assert reduction == 'mean' and avg_factor is None num_rois = pred.size()[0] diff --git a/tests/test_models/test_losses.py b/tests/test_models/test_losses.py index edae6bfd16..32b3d067a3 100644 --- a/tests/test_models/test_losses.py +++ b/tests/test_models/test_losses.py @@ -71,7 +71,17 @@ def test_ce_loss(): loss_cls_cfg = dict( type='CrossEntropyLoss', use_sigmoid=True, loss_weight=1.0) loss_cls = build_loss(loss_cls_cfg) - assert torch.allclose(loss_cls(fake_pred, fake_label), torch.tensor(0.)) + assert torch.allclose(loss_cls(fake_pred, fake_label), torch.tensor(100.)) + + fake_pred = torch.full(size=(2, 21, 8, 8), fill_value=0.5) + fake_label = torch.ones(2, 8, 8).long() + assert torch.allclose( + loss_cls(fake_pred, fake_label), torch.tensor(0.9503), atol=1e-4) + fake_label[:, 0, 0] = 255 + assert torch.allclose( + loss_cls(fake_pred, fake_label, ignore_index=255), + torch.tensor(0.9354), + atol=1e-4) # TODO test use_mask From a6234975f10103c3e84df02dca44c22886f375a2 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Tue, 17 Nov 2020 20:22:06 -0800 Subject: [PATCH 066/706] [Bug Fix] Fix dropout_ratio typo (#261) --- configs/_base_/models/ocrnet_r50-d8.py | 4 ++-- demo/MMSegmentation_Tutorial.ipynb | 4 ++-- docs/config.md | 4 ++-- docs/tutorials/new_modules.md | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/configs/_base_/models/ocrnet_r50-d8.py b/configs/_base_/models/ocrnet_r50-d8.py index 52fe060b1e..0f5ff956c0 100644 --- a/configs/_base_/models/ocrnet_r50-d8.py +++ b/configs/_base_/models/ocrnet_r50-d8.py @@ -23,7 +23,7 @@ channels=256, num_convs=1, concat_input=False, - drop_out_ratio=0.1, + dropout_ratio=0.1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, @@ -35,7 +35,7 @@ in_index=3, channels=512, ocr_channels=256, - drop_out_ratio=0.1, + dropout_ratio=0.1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, diff --git a/demo/MMSegmentation_Tutorial.ipynb b/demo/MMSegmentation_Tutorial.ipynb index 6ec7225dd4..127ad4e6a7 100644 --- a/demo/MMSegmentation_Tutorial.ipynb +++ b/demo/MMSegmentation_Tutorial.ipynb @@ -1031,7 +1031,7 @@ " in_index=3,\n", " channels=512,\n", " pool_scales=(1, 2, 3, 6),\n", - " drop_out_ratio=0.1,\n", + " dropout_ratio=0.1,\n", " num_classes=8,\n", " norm_cfg=dict(type='BN', requires_grad=True),\n", " align_corners=False,\n", @@ -1044,7 +1044,7 @@ " channels=256,\n", " num_convs=1,\n", " concat_input=False,\n", - " drop_out_ratio=0.1,\n", + " dropout_ratio=0.1,\n", " num_classes=8,\n", " norm_cfg=dict(type='BN', requires_grad=True),\n", " align_corners=False,\n", diff --git a/docs/config.md b/docs/config.md index 595b8f977f..d5c1cd9b6c 100644 --- a/docs/config.md +++ b/docs/config.md @@ -66,7 +66,7 @@ model = dict( in_index=3, # The index of feature map to select. channels=512, # The intermediate channels of decode head. pool_scales=(1, 2, 3, 6), # The avg pooling scales of PSPHead. Please refer to paper for details. - drop_out_ratio=0.1, # The dropout ratio before final classification layer. + dropout_ratio=0.1, # The dropout ratio before final classification layer. num_classes=19, # Number of segmentation classs. Usually 19 for cityscapes, 21 for VOC, 150 for ADE20k. norm_cfg=dict(type='SyncBN', requires_grad=True), # The configuration of norm layer. align_corners=False, # The align_corners argument for resize in decoding. @@ -81,7 +81,7 @@ model = dict( channels=256, # The intermediate channels of decode head. num_convs=1, # Number of convs in FCNHead. It is usually 1 in auxiliary head. concat_input=False, # Whether concat output of convs with input before classification layer. - drop_out_ratio=0.1, # The dropout ratio before final classification layer. + dropout_ratio=0.1, # The dropout ratio before final classification layer. num_classes=19, # Number of segmentation classs. Usually 19 for cityscapes, 21 for VOC, 150 for ADE20k. norm_cfg=dict(type='SyncBN', requires_grad=True), # The configuration of norm layer. align_corners=False, # The align_corners argument for resize in decoding. diff --git a/docs/tutorials/new_modules.md b/docs/tutorials/new_modules.md index 86f77f1e3b..9832a30f08 100644 --- a/docs/tutorials/new_modules.md +++ b/docs/tutorials/new_modules.md @@ -168,7 +168,7 @@ model = dict( in_index=3, channels=512, pool_scales=(1, 2, 3, 6), - drop_out_ratio=0.1, + dropout_ratio=0.1, num_classes=19, norm_cfg=norm_cfg, align_corners=False, From 97f10dbb049529aa4ff06a5dd1aa09feeb5bd17b Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Tue, 17 Nov 2020 20:22:46 -0800 Subject: [PATCH 067/706] [Bug Fix] Add missing transforms in __init__.py (#260) --- mmseg/datasets/pipelines/__init__.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mmseg/datasets/pipelines/__init__.py b/mmseg/datasets/pipelines/__init__.py index e45f495070..b4b7148089 100644 --- a/mmseg/datasets/pipelines/__init__.py +++ b/mmseg/datasets/pipelines/__init__.py @@ -4,11 +4,13 @@ from .loading import LoadAnnotations, LoadImageFromFile from .test_time_aug import MultiScaleFlipAug from .transforms import (Normalize, Pad, PhotoMetricDistortion, RandomCrop, - RandomFlip, Resize, SegRescale) + RandomFlip, RandomRotate, Rerange, Resize, RGB2Gray, + SegRescale) __all__ = [ 'Compose', 'to_tensor', 'ToTensor', 'ImageToTensor', 'ToDataContainer', 'Transpose', 'Collect', 'LoadAnnotations', 'LoadImageFromFile', 'MultiScaleFlipAug', 'Resize', 'RandomFlip', 'Pad', 'RandomCrop', - 'Normalize', 'SegRescale', 'PhotoMetricDistortion' + 'Normalize', 'SegRescale', 'PhotoMetricDistortion', 'RandomRotate', + 'Rerange', 'RGB2Gray' ] From ad09482fa201671a595d1d502193de352df78ead Mon Sep 17 00:00:00 2001 From: Jintao Lin <528557675@qq.com> Date: Thu, 19 Nov 2020 07:58:02 +0800 Subject: [PATCH 068/706] [docs] add modelzoo statistics readthedocs (#263) * add modelzoo statistics readthedocs * fix --- docs/conf.py | 9 +++++++++ docs/index.rst | 1 + docs/stat.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 52 insertions(+) create mode 100644 docs/stat.py diff --git a/docs/conf.py b/docs/conf.py index d8b473b461..f472acb30a 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -11,6 +11,7 @@ # documentation root, use os.path.abspath to make it absolute, like shown here. # import os +import subprocess import sys sys.path.insert(0, os.path.abspath('..')) @@ -77,3 +78,11 @@ def get_version(): # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] + + +def builder_inited_handler(app): + subprocess.run(['./stat.py']) + + +def setup(app): + app.connect('builder-inited', builder_inited_handler) diff --git a/docs/index.rst b/docs/index.rst index caa6677249..43f960ea04 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -7,6 +7,7 @@ Welcome to MMSegmenation's documentation! install.md getting_started.md config.md + modelzoo_statistics.md model_zoo.md .. toctree:: diff --git a/docs/stat.py b/docs/stat.py new file mode 100644 index 0000000000..dc310de332 --- /dev/null +++ b/docs/stat.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python +import glob +import os.path as osp +import re + +url_prefix = 'https://github.com/open-mmlab/mmsegmentation/blob/master/' + +files = sorted(glob.glob('../configs/*/README.md')) + +stats = [] +titles = [] +num_ckpts = 0 + +for f in files: + url = osp.dirname(f.replace('../', url_prefix)) + + with open(f, 'r') as content_file: + content = content_file.read() + + title = content.split('\n')[0].replace('#', '') + titles.append(title) + ckpts = set(x.lower().strip() + for x in re.findall(r'https?://download.*\.pth', content) + if 'mmsegmentation' in x) + num_ckpts += len(ckpts) + statsmsg = f""" +\t* [{title}]({url}) ({len(ckpts)} ckpts) +""" + stats.append((title, ckpts, statsmsg)) + +msglist = '\n'.join(x for _, _, x in stats) + +modelzoo = f""" +# Model Zoo Statistics + +* Number of papers: {len(titles)} +* Number of checkpoints: {num_ckpts} +{msglist} +""" + +with open('modelzoo_statistics.md', 'w') as f: + f.write(modelzoo) From 2b80032fa608847b238d8490bae6e1aa002d3ba7 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Wed, 18 Nov 2020 19:49:45 -0800 Subject: [PATCH 069/706] fixed readocs (#264) --- docs/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/conf.py b/docs/conf.py index f472acb30a..56506ad65d 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -81,7 +81,7 @@ def get_version(): def builder_inited_handler(app): - subprocess.run(['./stat.py']) + subprocess.run(['python ./stat.py']) def setup(app): From 886db15751492ab0da4989a78e2a1732f4428325 Mon Sep 17 00:00:00 2001 From: yamengxi <49829199+yamengxi@users.noreply.github.com> Date: Mon, 23 Nov 2020 11:46:22 +0800 Subject: [PATCH 070/706] fix detail url (#267) --- docs/getting_started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting_started.md b/docs/getting_started.md index 37bad85f8c..e310edad10 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -115,7 +115,7 @@ The training and validation set of Pascal Context could be download from [here]( To split the training and validation set from original dataset, you may download trainval_merged.json from [here](https://codalabuser.blob.core.windows.net/public/trainval_merged.json). -If you would like to use Pascal Context dataset, please install [Detail](https://github.com/ccvl/detail-api) and then run the following command to convert annotations into proper format. +If you would like to use Pascal Context dataset, please install [Detail](https://github.com/zhanghang1989/detail-api) and then run the following command to convert annotations into proper format. ```shell python tools/convert_datasets/pascal_context.py data/VOCdevkit data/VOCdevkit/VOC2010/trainval_merged.json From d8f780c403205c199baf87d05b49181f4790a977 Mon Sep 17 00:00:00 2001 From: Jintao Lin <528557675@qq.com> Date: Mon, 23 Nov 2020 12:44:32 +0800 Subject: [PATCH 071/706] chmod +x stat.py (#266) * add modelzoo statistics readthedocs * chmod stat.py --- docs/conf.py | 2 +- docs/stat.py | 0 2 files changed, 1 insertion(+), 1 deletion(-) mode change 100644 => 100755 docs/stat.py diff --git a/docs/conf.py b/docs/conf.py index 56506ad65d..f472acb30a 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -81,7 +81,7 @@ def get_version(): def builder_inited_handler(app): - subprocess.run(['python ./stat.py']) + subprocess.run(['./stat.py']) def setup(app): diff --git a/docs/stat.py b/docs/stat.py old mode 100644 new mode 100755 From 1530af65337317548348667b5f0f07bd56d21e27 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Tue, 24 Nov 2020 11:21:22 +0800 Subject: [PATCH 072/706] add dice evaluation metric (#225) * add dice evaluation metric * add dice evaluation metric * add dice evaluation metric * support 2 metrics * support 2 metrics * support 2 metrics * support 2 metrics * fix docstring * use np.round once for all --- mmseg/core/evaluation/__init__.py | 5 +- mmseg/core/evaluation/mean_iou.py | 74 ------------- mmseg/core/evaluation/metrics.py | 176 ++++++++++++++++++++++++++++++ mmseg/datasets/custom.py | 80 +++++++------- requirements/runtime.txt | 1 + setup.cfg | 2 +- tests/test_data/test_dataset.py | 32 +++++- tests/test_mean_iou.py | 63 ----------- tests/test_metrics.py | 166 ++++++++++++++++++++++++++++ 9 files changed, 420 insertions(+), 179 deletions(-) delete mode 100644 mmseg/core/evaluation/mean_iou.py create mode 100644 mmseg/core/evaluation/metrics.py delete mode 100644 tests/test_mean_iou.py create mode 100644 tests/test_metrics.py diff --git a/mmseg/core/evaluation/__init__.py b/mmseg/core/evaluation/__init__.py index f169d1bf1b..c58d926f06 100644 --- a/mmseg/core/evaluation/__init__.py +++ b/mmseg/core/evaluation/__init__.py @@ -1,7 +1,8 @@ from .class_names import get_classes, get_palette from .eval_hooks import DistEvalHook, EvalHook -from .mean_iou import mean_iou +from .metrics import eval_metrics, mean_dice, mean_iou __all__ = [ - 'EvalHook', 'DistEvalHook', 'mean_iou', 'get_classes', 'get_palette' + 'EvalHook', 'DistEvalHook', 'mean_dice', 'mean_iou', 'eval_metrics', + 'get_classes', 'get_palette' ] diff --git a/mmseg/core/evaluation/mean_iou.py b/mmseg/core/evaluation/mean_iou.py deleted file mode 100644 index 301cfd04fb..0000000000 --- a/mmseg/core/evaluation/mean_iou.py +++ /dev/null @@ -1,74 +0,0 @@ -import numpy as np - - -def intersect_and_union(pred_label, label, num_classes, ignore_index): - """Calculate intersection and Union. - - Args: - pred_label (ndarray): Prediction segmentation map - label (ndarray): Ground truth segmentation map - num_classes (int): Number of categories - ignore_index (int): Index that will be ignored in evaluation. - - Returns: - ndarray: The intersection of prediction and ground truth histogram - on all classes - ndarray: The union of prediction and ground truth histogram on all - classes - ndarray: The prediction histogram on all classes. - ndarray: The ground truth histogram on all classes. - """ - - mask = (label != ignore_index) - pred_label = pred_label[mask] - label = label[mask] - - intersect = pred_label[pred_label == label] - area_intersect, _ = np.histogram( - intersect, bins=np.arange(num_classes + 1)) - area_pred_label, _ = np.histogram( - pred_label, bins=np.arange(num_classes + 1)) - area_label, _ = np.histogram(label, bins=np.arange(num_classes + 1)) - area_union = area_pred_label + area_label - area_intersect - - return area_intersect, area_union, area_pred_label, area_label - - -def mean_iou(results, gt_seg_maps, num_classes, ignore_index, nan_to_num=None): - """Calculate Intersection and Union (IoU) - - Args: - results (list[ndarray]): List of prediction segmentation maps - gt_seg_maps (list[ndarray]): list of ground truth segmentation maps - num_classes (int): Number of categories - ignore_index (int): Index that will be ignored in evaluation. - nan_to_num (int, optional): If specified, NaN values will be replaced - by the numbers defined by the user. Default: None. - - Returns: - float: Overall accuracy on all images. - ndarray: Per category accuracy, shape (num_classes, ) - ndarray: Per category IoU, shape (num_classes, ) - """ - - num_imgs = len(results) - assert len(gt_seg_maps) == num_imgs - total_area_intersect = np.zeros((num_classes, ), dtype=np.float) - total_area_union = np.zeros((num_classes, ), dtype=np.float) - total_area_pred_label = np.zeros((num_classes, ), dtype=np.float) - total_area_label = np.zeros((num_classes, ), dtype=np.float) - for i in range(num_imgs): - area_intersect, area_union, area_pred_label, area_label = \ - intersect_and_union(results[i], gt_seg_maps[i], num_classes, - ignore_index=ignore_index) - total_area_intersect += area_intersect - total_area_union += area_union - total_area_pred_label += area_pred_label - total_area_label += area_label - all_acc = total_area_intersect.sum() / total_area_label.sum() - acc = total_area_intersect / total_area_label - iou = total_area_intersect / total_area_union - if nan_to_num is not None: - return all_acc, np.nan_to_num(acc, nan=nan_to_num), \ - np.nan_to_num(iou, nan=nan_to_num) - return all_acc, acc, iou diff --git a/mmseg/core/evaluation/metrics.py b/mmseg/core/evaluation/metrics.py new file mode 100644 index 0000000000..45c62b1641 --- /dev/null +++ b/mmseg/core/evaluation/metrics.py @@ -0,0 +1,176 @@ +import numpy as np + + +def intersect_and_union(pred_label, label, num_classes, ignore_index): + """Calculate intersection and Union. + + Args: + pred_label (ndarray): Prediction segmentation map + label (ndarray): Ground truth segmentation map + num_classes (int): Number of categories + ignore_index (int): Index that will be ignored in evaluation. + + Returns: + ndarray: The intersection of prediction and ground truth histogram + on all classes + ndarray: The union of prediction and ground truth histogram on all + classes + ndarray: The prediction histogram on all classes. + ndarray: The ground truth histogram on all classes. + """ + + mask = (label != ignore_index) + pred_label = pred_label[mask] + label = label[mask] + + intersect = pred_label[pred_label == label] + area_intersect, _ = np.histogram( + intersect, bins=np.arange(num_classes + 1)) + area_pred_label, _ = np.histogram( + pred_label, bins=np.arange(num_classes + 1)) + area_label, _ = np.histogram(label, bins=np.arange(num_classes + 1)) + area_union = area_pred_label + area_label - area_intersect + + return area_intersect, area_union, area_pred_label, area_label + + +def total_intersect_and_union(results, gt_seg_maps, num_classes, ignore_index): + """Calculate Total Intersection and Union. + + Args: + results (list[ndarray]): List of prediction segmentation maps + gt_seg_maps (list[ndarray]): list of ground truth segmentation maps + num_classes (int): Number of categories + ignore_index (int): Index that will be ignored in evaluation. + + Returns: + ndarray: The intersection of prediction and ground truth histogram + on all classes + ndarray: The union of prediction and ground truth histogram on all + classes + ndarray: The prediction histogram on all classes. + ndarray: The ground truth histogram on all classes. + """ + + num_imgs = len(results) + assert len(gt_seg_maps) == num_imgs + total_area_intersect = np.zeros((num_classes, ), dtype=np.float) + total_area_union = np.zeros((num_classes, ), dtype=np.float) + total_area_pred_label = np.zeros((num_classes, ), dtype=np.float) + total_area_label = np.zeros((num_classes, ), dtype=np.float) + for i in range(num_imgs): + area_intersect, area_union, area_pred_label, area_label = \ + intersect_and_union(results[i], gt_seg_maps[i], num_classes, + ignore_index=ignore_index) + total_area_intersect += area_intersect + total_area_union += area_union + total_area_pred_label += area_pred_label + total_area_label += area_label + return total_area_intersect, total_area_union, \ + total_area_pred_label, total_area_label + + +def mean_iou(results, gt_seg_maps, num_classes, ignore_index, nan_to_num=None): + """Calculate Mean Intersection and Union (mIoU) + + Args: + results (list[ndarray]): List of prediction segmentation maps + gt_seg_maps (list[ndarray]): list of ground truth segmentation maps + num_classes (int): Number of categories + ignore_index (int): Index that will be ignored in evaluation. + nan_to_num (int, optional): If specified, NaN values will be replaced + by the numbers defined by the user. Default: None. + + Returns: + float: Overall accuracy on all images. + ndarray: Per category accuracy, shape (num_classes, ) + ndarray: Per category IoU, shape (num_classes, ) + """ + + all_acc, acc, iou = eval_metrics( + results=results, + gt_seg_maps=gt_seg_maps, + num_classes=num_classes, + ignore_index=ignore_index, + metrics=['mIoU'], + nan_to_num=nan_to_num) + return all_acc, acc, iou + + +def mean_dice(results, + gt_seg_maps, + num_classes, + ignore_index, + nan_to_num=None): + """Calculate Mean Dice (mDice) + + Args: + results (list[ndarray]): List of prediction segmentation maps + gt_seg_maps (list[ndarray]): list of ground truth segmentation maps + num_classes (int): Number of categories + ignore_index (int): Index that will be ignored in evaluation. + nan_to_num (int, optional): If specified, NaN values will be replaced + by the numbers defined by the user. Default: None. + + Returns: + float: Overall accuracy on all images. + ndarray: Per category accuracy, shape (num_classes, ) + ndarray: Per category dice, shape (num_classes, ) + """ + + all_acc, acc, dice = eval_metrics( + results=results, + gt_seg_maps=gt_seg_maps, + num_classes=num_classes, + ignore_index=ignore_index, + metrics=['mDice'], + nan_to_num=nan_to_num) + return all_acc, acc, dice + + +def eval_metrics(results, + gt_seg_maps, + num_classes, + ignore_index, + metrics=['mIoU'], + nan_to_num=None): + """Calculate evaluation metrics + Args: + results (list[ndarray]): List of prediction segmentation maps + gt_seg_maps (list[ndarray]): list of ground truth segmentation maps + num_classes (int): Number of categories + ignore_index (int): Index that will be ignored in evaluation. + metrics (list[str] | str): Metrics to be evaluated, 'mIoU' and 'mDice'. + nan_to_num (int, optional): If specified, NaN values will be replaced + by the numbers defined by the user. Default: None. + Returns: + float: Overall accuracy on all images. + ndarray: Per category accuracy, shape (num_classes, ) + ndarray: Per category evalution metrics, shape (num_classes, ) + """ + + if isinstance(metrics, str): + metrics = [metrics] + allowed_metrics = ['mIoU', 'mDice'] + if not set(metrics).issubset(set(allowed_metrics)): + raise KeyError('metrics {} is not supported'.format(metrics)) + total_area_intersect, total_area_union, total_area_pred_label, \ + total_area_label = total_intersect_and_union(results, gt_seg_maps, + num_classes, + ignore_index=ignore_index) + all_acc = total_area_intersect.sum() / total_area_label.sum() + acc = total_area_intersect / total_area_label + ret_metrics = [all_acc, acc] + for metric in metrics: + if metric == 'mIoU': + iou = total_area_intersect / total_area_union + ret_metrics.append(iou) + elif metric == 'mDice': + dice = 2 * total_area_intersect / ( + total_area_pred_label + total_area_label) + ret_metrics.append(dice) + if nan_to_num is not None: + ret_metrics = [ + np.nan_to_num(metric, nan=nan_to_num) for metric in ret_metrics + ] + return ret_metrics diff --git a/mmseg/datasets/custom.py b/mmseg/datasets/custom.py index 7e42d6622c..4e7e30e91c 100644 --- a/mmseg/datasets/custom.py +++ b/mmseg/datasets/custom.py @@ -4,9 +4,10 @@ import mmcv import numpy as np from mmcv.utils import print_log +from terminaltables import AsciiTable from torch.utils.data import Dataset -from mmseg.core import mean_iou +from mmseg.core import eval_metrics from mmseg.utils import get_root_logger from .builder import DATASETS from .pipelines import Compose @@ -14,9 +15,8 @@ @DATASETS.register_module() class CustomDataset(Dataset): - """Custom dataset for semantic segmentation. - - An example of file structure is as followed. + """Custom dataset for semantic segmentation. An example of file structure + is as followed. .. code-block:: none @@ -315,7 +315,8 @@ def evaluate(self, results, metric='mIoU', logger=None, **kwargs): Args: results (list): Testing results of the dataset. - metric (str | list[str]): Metrics to be evaluated. + metric (str | list[str]): Metrics to be evaluated. 'mIoU' and + 'mDice' are supported. logger (logging.Logger | None | str): Logger used for printing related information during evaluation. Default: None. @@ -323,13 +324,11 @@ def evaluate(self, results, metric='mIoU', logger=None, **kwargs): dict[str, float]: Default metrics. """ - if not isinstance(metric, str): - assert len(metric) == 1 - metric = metric[0] - allowed_metrics = ['mIoU'] - if metric not in allowed_metrics: + if isinstance(metric, str): + metric = [metric] + allowed_metrics = ['mIoU', 'mDice'] + if not set(metric).issubset(set(allowed_metrics)): raise KeyError('metric {} is not supported'.format(metric)) - eval_results = {} gt_seg_maps = self.get_gt_seg_maps() if self.CLASSES is None: @@ -337,35 +336,42 @@ def evaluate(self, results, metric='mIoU', logger=None, **kwargs): reduce(np.union1d, [np.unique(_) for _ in gt_seg_maps])) else: num_classes = len(self.CLASSES) - - all_acc, acc, iou = mean_iou( - results, gt_seg_maps, num_classes, ignore_index=self.ignore_index) - summary_str = '' - summary_str += 'per class results:\n' - - line_format = '{:<15} {:>10} {:>10}\n' - summary_str += line_format.format('Class', 'IoU', 'Acc') + ret_metrics = eval_metrics( + results, + gt_seg_maps, + num_classes, + ignore_index=self.ignore_index, + metrics=metric) + class_table_data = [['Class'] + [m[1:] for m in metric] + ['Acc']] if self.CLASSES is None: class_names = tuple(range(num_classes)) else: class_names = self.CLASSES + ret_metrics_round = [ + np.round(ret_metric * 100, 2) for ret_metric in ret_metrics + ] for i in range(num_classes): - iou_str = '{:.2f}'.format(iou[i] * 100) - acc_str = '{:.2f}'.format(acc[i] * 100) - summary_str += line_format.format(class_names[i], iou_str, acc_str) - summary_str += 'Summary:\n' - line_format = '{:<15} {:>10} {:>10} {:>10}\n' - summary_str += line_format.format('Scope', 'mIoU', 'mAcc', 'aAcc') - - iou_str = '{:.2f}'.format(np.nanmean(iou) * 100) - acc_str = '{:.2f}'.format(np.nanmean(acc) * 100) - all_acc_str = '{:.2f}'.format(all_acc * 100) - summary_str += line_format.format('global', iou_str, acc_str, - all_acc_str) - print_log(summary_str, logger) - - eval_results['mIoU'] = np.nanmean(iou) - eval_results['mAcc'] = np.nanmean(acc) - eval_results['aAcc'] = all_acc - + class_table_data.append([class_names[i]] + + [m[i] for m in ret_metrics_round[2:]] + + [ret_metrics_round[1][i]]) + summary_table_data = [['Scope'] + + ['m' + head + for head in class_table_data[0][1:]] + ['aAcc']] + ret_metrics_mean = [ + np.round(np.nanmean(ret_metric) * 100, 2) + for ret_metric in ret_metrics + ] + summary_table_data.append(['global'] + ret_metrics_mean[2:] + + [ret_metrics_mean[1]] + + [ret_metrics_mean[0]]) + print_log('per class results:', logger) + table = AsciiTable(class_table_data) + print_log('\n' + table.table, logger=logger) + print_log('Summary:', logger) + table = AsciiTable(summary_table_data) + print_log('\n' + table.table, logger=logger) + + for i in range(1, len(summary_table_data[0])): + eval_results[summary_table_data[0] + [i]] = summary_table_data[1][i] / 100.0 return eval_results diff --git a/requirements/runtime.txt b/requirements/runtime.txt index db5d81e01e..a8347b9c0c 100644 --- a/requirements/runtime.txt +++ b/requirements/runtime.txt @@ -1,2 +1,3 @@ matplotlib numpy +terminaltables diff --git a/setup.cfg b/setup.cfg index a5fb07d401..708fb4ce33 100644 --- a/setup.cfg +++ b/setup.cfg @@ -8,6 +8,6 @@ line_length = 79 multi_line_output = 0 known_standard_library = setuptools known_first_party = mmseg -known_third_party = PIL,cityscapesscripts,cv2,detail,matplotlib,mmcv,numpy,onnxruntime,oss2,pytest,scipy,torch +known_third_party = PIL,cityscapesscripts,cv2,detail,matplotlib,mmcv,numpy,onnxruntime,oss2,pytest,scipy,terminaltables,torch no_lines_before = STDLIB,LOCALFOLDER default_section = THIRDPARTY diff --git a/tests/test_data/test_dataset.py b/tests/test_data/test_dataset.py index e933c200cc..2e19c30f08 100644 --- a/tests/test_data/test_dataset.py +++ b/tests/test_data/test_dataset.py @@ -159,17 +159,45 @@ def test_custom_dataset(): for gt_seg_map in gt_seg_maps: h, w = gt_seg_map.shape pseudo_results.append(np.random.randint(low=0, high=7, size=(h, w))) - eval_results = train_dataset.evaluate(pseudo_results) + eval_results = train_dataset.evaluate(pseudo_results, metric='mIoU') assert isinstance(eval_results, dict) assert 'mIoU' in eval_results assert 'mAcc' in eval_results assert 'aAcc' in eval_results + eval_results = train_dataset.evaluate(pseudo_results, metric='mDice') + assert isinstance(eval_results, dict) + assert 'mDice' in eval_results + assert 'mAcc' in eval_results + assert 'aAcc' in eval_results + + eval_results = train_dataset.evaluate( + pseudo_results, metric=['mDice', 'mIoU']) + assert isinstance(eval_results, dict) + assert 'mIoU' in eval_results + assert 'mDice' in eval_results + assert 'mAcc' in eval_results + assert 'aAcc' in eval_results + # evaluation with CLASSES train_dataset.CLASSES = tuple(['a'] * 7) - eval_results = train_dataset.evaluate(pseudo_results) + eval_results = train_dataset.evaluate(pseudo_results, metric='mIoU') + assert isinstance(eval_results, dict) + assert 'mIoU' in eval_results + assert 'mAcc' in eval_results + assert 'aAcc' in eval_results + + eval_results = train_dataset.evaluate(pseudo_results, metric='mDice') + assert isinstance(eval_results, dict) + assert 'mDice' in eval_results + assert 'mAcc' in eval_results + assert 'aAcc' in eval_results + + eval_results = train_dataset.evaluate( + pseudo_results, metric=['mIoU', 'mDice']) assert isinstance(eval_results, dict) assert 'mIoU' in eval_results + assert 'mDice' in eval_results assert 'mAcc' in eval_results assert 'aAcc' in eval_results diff --git a/tests/test_mean_iou.py b/tests/test_mean_iou.py deleted file mode 100644 index 74a2b78617..0000000000 --- a/tests/test_mean_iou.py +++ /dev/null @@ -1,63 +0,0 @@ -import numpy as np - -from mmseg.core.evaluation import mean_iou - - -def get_confusion_matrix(pred_label, label, num_classes, ignore_index): - """Intersection over Union - Args: - pred_label (np.ndarray): 2D predict map - label (np.ndarray): label 2D label map - num_classes (int): number of categories - ignore_index (int): index ignore in evaluation - """ - - mask = (label != ignore_index) - pred_label = pred_label[mask] - label = label[mask] - - n = num_classes - inds = n * label + pred_label - - mat = np.bincount(inds, minlength=n**2).reshape(n, n) - - return mat - - -# This func is deprecated since it's not memory efficient -def legacy_mean_iou(results, gt_seg_maps, num_classes, ignore_index): - num_imgs = len(results) - assert len(gt_seg_maps) == num_imgs - total_mat = np.zeros((num_classes, num_classes), dtype=np.float) - for i in range(num_imgs): - mat = get_confusion_matrix( - results[i], gt_seg_maps[i], num_classes, ignore_index=ignore_index) - total_mat += mat - all_acc = np.diag(total_mat).sum() / total_mat.sum() - acc = np.diag(total_mat) / total_mat.sum(axis=1) - iou = np.diag(total_mat) / ( - total_mat.sum(axis=1) + total_mat.sum(axis=0) - np.diag(total_mat)) - - return all_acc, acc, iou - - -def test_mean_iou(): - pred_size = (10, 30, 30) - num_classes = 19 - ignore_index = 255 - results = np.random.randint(0, num_classes, size=pred_size) - label = np.random.randint(0, num_classes, size=pred_size) - label[:, 2, 5:10] = ignore_index - all_acc, acc, iou = mean_iou(results, label, num_classes, ignore_index) - all_acc_l, acc_l, iou_l = legacy_mean_iou(results, label, num_classes, - ignore_index) - assert all_acc == all_acc_l - assert np.allclose(acc, acc_l) - assert np.allclose(iou, iou_l) - - results = np.random.randint(0, 5, size=pred_size) - label = np.random.randint(0, 4, size=pred_size) - all_acc, acc, iou = mean_iou( - results, label, num_classes, ignore_index=255, nan_to_num=-1) - assert acc[-1] == -1 - assert iou[-1] == -1 diff --git a/tests/test_metrics.py b/tests/test_metrics.py new file mode 100644 index 0000000000..023bbb0a55 --- /dev/null +++ b/tests/test_metrics.py @@ -0,0 +1,166 @@ +import numpy as np + +from mmseg.core.evaluation import eval_metrics, mean_dice, mean_iou + + +def get_confusion_matrix(pred_label, label, num_classes, ignore_index): + """Intersection over Union + Args: + pred_label (np.ndarray): 2D predict map + label (np.ndarray): label 2D label map + num_classes (int): number of categories + ignore_index (int): index ignore in evaluation + """ + + mask = (label != ignore_index) + pred_label = pred_label[mask] + label = label[mask] + + n = num_classes + inds = n * label + pred_label + + mat = np.bincount(inds, minlength=n**2).reshape(n, n) + + return mat + + +# This func is deprecated since it's not memory efficient +def legacy_mean_iou(results, gt_seg_maps, num_classes, ignore_index): + num_imgs = len(results) + assert len(gt_seg_maps) == num_imgs + total_mat = np.zeros((num_classes, num_classes), dtype=np.float) + for i in range(num_imgs): + mat = get_confusion_matrix( + results[i], gt_seg_maps[i], num_classes, ignore_index=ignore_index) + total_mat += mat + all_acc = np.diag(total_mat).sum() / total_mat.sum() + acc = np.diag(total_mat) / total_mat.sum(axis=1) + iou = np.diag(total_mat) / ( + total_mat.sum(axis=1) + total_mat.sum(axis=0) - np.diag(total_mat)) + + return all_acc, acc, iou + + +# This func is deprecated since it's not memory efficient +def legacy_mean_dice(results, gt_seg_maps, num_classes, ignore_index): + num_imgs = len(results) + assert len(gt_seg_maps) == num_imgs + total_mat = np.zeros((num_classes, num_classes), dtype=np.float) + for i in range(num_imgs): + mat = get_confusion_matrix( + results[i], gt_seg_maps[i], num_classes, ignore_index=ignore_index) + total_mat += mat + all_acc = np.diag(total_mat).sum() / total_mat.sum() + acc = np.diag(total_mat) / total_mat.sum(axis=1) + dice = 2 * np.diag(total_mat) / ( + total_mat.sum(axis=1) + total_mat.sum(axis=0)) + + return all_acc, acc, dice + + +def test_metrics(): + pred_size = (10, 30, 30) + num_classes = 19 + ignore_index = 255 + results = np.random.randint(0, num_classes, size=pred_size) + label = np.random.randint(0, num_classes, size=pred_size) + label[:, 2, 5:10] = ignore_index + all_acc, acc, iou = eval_metrics( + results, label, num_classes, ignore_index, metrics='mIoU') + all_acc_l, acc_l, iou_l = legacy_mean_iou(results, label, num_classes, + ignore_index) + assert all_acc == all_acc_l + assert np.allclose(acc, acc_l) + assert np.allclose(iou, iou_l) + + all_acc, acc, dice = eval_metrics( + results, label, num_classes, ignore_index, metrics='mDice') + all_acc_l, acc_l, dice_l = legacy_mean_dice(results, label, num_classes, + ignore_index) + assert all_acc == all_acc_l + assert np.allclose(acc, acc_l) + assert np.allclose(dice, dice_l) + + all_acc, acc, iou, dice = eval_metrics( + results, label, num_classes, ignore_index, metrics=['mIoU', 'mDice']) + assert all_acc == all_acc_l + assert np.allclose(acc, acc_l) + assert np.allclose(iou, iou_l) + assert np.allclose(dice, dice_l) + + results = np.random.randint(0, 5, size=pred_size) + label = np.random.randint(0, 4, size=pred_size) + all_acc, acc, iou = eval_metrics( + results, + label, + num_classes, + ignore_index=255, + metrics='mIoU', + nan_to_num=-1) + assert acc[-1] == -1 + assert iou[-1] == -1 + + all_acc, acc, dice = eval_metrics( + results, + label, + num_classes, + ignore_index=255, + metrics='mDice', + nan_to_num=-1) + assert acc[-1] == -1 + assert dice[-1] == -1 + + all_acc, acc, dice, iou = eval_metrics( + results, + label, + num_classes, + ignore_index=255, + metrics=['mDice', 'mIoU'], + nan_to_num=-1) + assert acc[-1] == -1 + assert dice[-1] == -1 + assert iou[-1] == -1 + + +def test_mean_iou(): + pred_size = (10, 30, 30) + num_classes = 19 + ignore_index = 255 + results = np.random.randint(0, num_classes, size=pred_size) + label = np.random.randint(0, num_classes, size=pred_size) + label[:, 2, 5:10] = ignore_index + all_acc, acc, iou = mean_iou(results, label, num_classes, ignore_index) + all_acc_l, acc_l, iou_l = legacy_mean_iou(results, label, num_classes, + ignore_index) + assert all_acc == all_acc_l + assert np.allclose(acc, acc_l) + assert np.allclose(iou, iou_l) + + results = np.random.randint(0, 5, size=pred_size) + label = np.random.randint(0, 4, size=pred_size) + all_acc, acc, iou = mean_iou( + results, label, num_classes, ignore_index=255, nan_to_num=-1) + assert acc[-1] == -1 + assert iou[-1] == -1 + + +def test_mean_dice(): + pred_size = (10, 30, 30) + num_classes = 19 + ignore_index = 255 + results = np.random.randint(0, num_classes, size=pred_size) + label = np.random.randint(0, num_classes, size=pred_size) + label[:, 2, 5:10] = ignore_index + all_acc, acc, iou = mean_dice(results, label, num_classes, ignore_index) + all_acc_l, acc_l, iou_l = legacy_mean_dice(results, label, num_classes, + ignore_index) + assert all_acc == all_acc_l + assert np.allclose(acc, acc_l) + assert np.allclose(iou, iou_l) + + results = np.random.randint(0, 5, size=pred_size) + label = np.random.randint(0, 4, size=pred_size) + all_acc, acc, iou = mean_dice( + results, label, num_classes, ignore_index=255, nan_to_num=-1) + assert acc[-1] == -1 + assert iou[-1] == -1 From e8d643fe3a9df60d515bdc895be0e7a1e6f06934 Mon Sep 17 00:00:00 2001 From: yamengxi <49829199+yamengxi@users.noreply.github.com> Date: Wed, 2 Dec 2020 12:14:01 +0800 Subject: [PATCH 073/706] [Feature] add AdjustGamma transform (#232) * add AdjustGamma transform * restore * change cv2 to mmcv * simplify AdjustGamma * fix syntax error * modify * fix syntax error * change mmcv version to 1.3.0 * fix lut function name error * fix syntax error * fix range --- mmseg/__init__.py | 2 +- mmseg/datasets/pipelines/transforms.py | 36 ++++++++++++++++++++++++++ tests/test_data/test_transform.py | 36 ++++++++++++++++++++++++++ 3 files changed, 73 insertions(+), 1 deletion(-) diff --git a/mmseg/__init__.py b/mmseg/__init__.py index ffc848a934..f301a5dc34 100644 --- a/mmseg/__init__.py +++ b/mmseg/__init__.py @@ -3,7 +3,7 @@ from .version import __version__, version_info MMCV_MIN = '1.1.4' -MMCV_MAX = '1.2.0' +MMCV_MAX = '1.3.0' def digit_version(version_str): diff --git a/mmseg/datasets/pipelines/transforms.py b/mmseg/datasets/pipelines/transforms.py index 74be564c57..c138b21c20 100644 --- a/mmseg/datasets/pipelines/transforms.py +++ b/mmseg/datasets/pipelines/transforms.py @@ -650,6 +650,42 @@ def __repr__(self): return repr_str +@PIPELINES.register_module() +class AdjustGamma(object): + """Using gamma correction to process the image. + + Args: + gamma (float or int): Gamma value used in gamma correction. + Default: 1.0. + """ + + def __init__(self, gamma=1.0): + assert isinstance(gamma, float) or isinstance(gamma, int) + assert gamma > 0 + self.gamma = gamma + inv_gamma = 1.0 / gamma + self.table = np.array([(i / 255.0)**inv_gamma * 255 + for i in np.arange(256)]).astype('uint8') + + def __call__(self, results): + """Call function to process the image with gamma correction. + + Args: + results (dict): Result dict from loading pipeline. + + Returns: + dict: Processed results. + """ + + results['img'] = mmcv.lut_transform( + np.array(results['img'], dtype=np.uint8), self.table) + + return results + + def __repr__(self): + return self.__class__.__name__ + f'(gamma={self.gamma})' + + @PIPELINES.register_module() class SegRescale(object): """Rescale semantic segmentation maps. diff --git a/tests/test_data/test_transform.py b/tests/test_data/test_transform.py index d4f81ecc6f..19cf6d5337 100644 --- a/tests/test_data/test_transform.py +++ b/tests/test_data/test_transform.py @@ -330,6 +330,42 @@ def test_rgb2gray(): assert results['ori_shape'] == (h, w, c) +def test_adjust_gamma(): + # test assertion if gamma <= 0 + with pytest.raises(AssertionError): + transform = dict(type='AdjustGamma', gamma=0) + build_from_cfg(transform, PIPELINES) + + # test assertion if gamma is list + with pytest.raises(AssertionError): + transform = dict(type='AdjustGamma', gamma=[1.2]) + build_from_cfg(transform, PIPELINES) + + # test with gamma = 1.2 + transform = dict(type='AdjustGamma', gamma=1.2) + transform = build_from_cfg(transform, PIPELINES) + results = dict() + img = mmcv.imread( + osp.join(osp.dirname(__file__), '../data/color.jpg'), 'color') + original_img = copy.deepcopy(img) + results['img'] = img + results['img_shape'] = img.shape + results['ori_shape'] = img.shape + # Set initial values for default meta_keys + results['pad_shape'] = img.shape + results['scale_factor'] = 1.0 + + results = transform(results) + + inv_gamma = 1.0 / 1.2 + table = np.array([((i / 255.0)**inv_gamma) * 255 + for i in np.arange(0, 256)]).astype('uint8') + converted_img = mmcv.lut_transform( + np.array(original_img, dtype=np.uint8), table) + assert np.allclose(results['img'], converted_img) + assert str(transform) == f'AdjustGamma(gamma={1.2})' + + def test_rerange(): # test assertion if min_value or max_value is illegal with pytest.raises(AssertionError): From 26f4bed2421d54258b34edead518e5841f6102e2 Mon Sep 17 00:00:00 2001 From: yamengxi <49829199+yamengxi@users.noreply.github.com> Date: Wed, 2 Dec 2020 13:08:16 +0800 Subject: [PATCH 074/706] [Feature]add CLAHE transform (#229) * add CLAHE transform * fix syntax error * fix syntax error * restore * add a test * modify cv2 to mmcv * add docstring * modify * restore * fix mmcv.clahe error * change mmcv version to 1.3.0 * fix bugs * add all data transformers to __init__ * fix __init__ * fix test_transform --- mmseg/datasets/pipelines/__init__.py | 8 ++--- mmseg/datasets/pipelines/transforms.py | 48 ++++++++++++++++++++++++-- tests/test_data/test_transform.py | 40 +++++++++++++++++++++ 3 files changed, 90 insertions(+), 6 deletions(-) diff --git a/mmseg/datasets/pipelines/__init__.py b/mmseg/datasets/pipelines/__init__.py index b4b7148089..8b9046b07b 100644 --- a/mmseg/datasets/pipelines/__init__.py +++ b/mmseg/datasets/pipelines/__init__.py @@ -3,14 +3,14 @@ Transpose, to_tensor) from .loading import LoadAnnotations, LoadImageFromFile from .test_time_aug import MultiScaleFlipAug -from .transforms import (Normalize, Pad, PhotoMetricDistortion, RandomCrop, - RandomFlip, RandomRotate, Rerange, Resize, RGB2Gray, - SegRescale) +from .transforms import (CLAHE, AdjustGamma, Normalize, Pad, + PhotoMetricDistortion, RandomCrop, RandomFlip, + RandomRotate, Rerange, Resize, RGB2Gray, SegRescale) __all__ = [ 'Compose', 'to_tensor', 'ToTensor', 'ImageToTensor', 'ToDataContainer', 'Transpose', 'Collect', 'LoadAnnotations', 'LoadImageFromFile', 'MultiScaleFlipAug', 'Resize', 'RandomFlip', 'Pad', 'RandomCrop', 'Normalize', 'SegRescale', 'PhotoMetricDistortion', 'RandomRotate', - 'Rerange', 'RGB2Gray' + 'AdjustGamma', 'CLAHE', 'Rerange', 'RGB2Gray' ] diff --git a/mmseg/datasets/pipelines/transforms.py b/mmseg/datasets/pipelines/transforms.py index c138b21c20..4f586cfe44 100644 --- a/mmseg/datasets/pipelines/transforms.py +++ b/mmseg/datasets/pipelines/transforms.py @@ -1,6 +1,6 @@ import mmcv import numpy as np -from mmcv.utils import deprecated_api_warning +from mmcv.utils import deprecated_api_warning, is_tuple_of from numpy import random from ..builder import PIPELINES @@ -415,7 +415,6 @@ def __call__(self, results): Args: results (dict): Result dict from loading pipeline. - Returns: dict: Reranged results. """ @@ -439,6 +438,51 @@ def __repr__(self): return repr_str +@PIPELINES.register_module() +class CLAHE(object): + """Use CLAHE method to process the image. + + See `ZUIDERVELD,K. Contrast Limited Adaptive Histogram Equalization[J]. + Graphics Gems, 1994:474-485.` for more information. + + Args: + clip_limit (float): Threshold for contrast limiting. Default: 40.0. + tile_grid_size (tuple[int]): Size of grid for histogram equalization. + Input image will be divided into equally sized rectangular tiles. + It defines the number of tiles in row and column. Default: (8, 8). + """ + + def __init__(self, clip_limit=40.0, tile_grid_size=(8, 8)): + assert isinstance(clip_limit, (float, int)) + self.clip_limit = clip_limit + assert is_tuple_of(tile_grid_size, int) + assert len(tile_grid_size) == 2 + self.tile_grid_size = tile_grid_size + + def __call__(self, results): + """Call function to Use CLAHE method process images. + + Args: + results (dict): Result dict from loading pipeline. + + Returns: + dict: Processed results. + """ + + for i in range(results['img'].shape[2]): + results['img'][:, :, i] = mmcv.clahe( + np.array(results['img'][:, :, i], dtype=np.uint8), + self.clip_limit, self.tile_grid_size) + + return results + + def __repr__(self): + repr_str = self.__class__.__name__ + repr_str += f'(clip_limit={self.clip_limit}, '\ + f'tile_grid_size={self.tile_grid_size})' + return repr_str + + @PIPELINES.register_module() class RandomCrop(object): """Random crop the image & seg. diff --git a/tests/test_data/test_transform.py b/tests/test_data/test_transform.py index 19cf6d5337..1833d791e8 100644 --- a/tests/test_data/test_transform.py +++ b/tests/test_data/test_transform.py @@ -409,6 +409,46 @@ def test_rerange(): assert str(transform) == f'Rerange(min_value={0}, max_value={255})' +def test_CLAHE(): + # test assertion if clip_limit is None + with pytest.raises(AssertionError): + transform = dict(type='CLAHE', clip_limit=None) + build_from_cfg(transform, PIPELINES) + + # test assertion if tile_grid_size is illegal + with pytest.raises(AssertionError): + transform = dict(type='CLAHE', tile_grid_size=(8.0, 8.0)) + build_from_cfg(transform, PIPELINES) + + # test assertion if tile_grid_size is illegal + with pytest.raises(AssertionError): + transform = dict(type='CLAHE', tile_grid_size=(9, 9, 9)) + build_from_cfg(transform, PIPELINES) + + transform = dict(type='CLAHE', clip_limit=2) + transform = build_from_cfg(transform, PIPELINES) + results = dict() + img = mmcv.imread( + osp.join(osp.dirname(__file__), '../data/color.jpg'), 'color') + original_img = copy.deepcopy(img) + results['img'] = img + results['img_shape'] = img.shape + results['ori_shape'] = img.shape + # Set initial values for default meta_keys + results['pad_shape'] = img.shape + results['scale_factor'] = 1.0 + + results = transform(results) + + converted_img = np.empty(original_img.shape) + for i in range(original_img.shape[2]): + converted_img[:, :, i] = mmcv.clahe( + np.array(original_img[:, :, i], dtype=np.uint8), 2, (8, 8)) + + assert np.allclose(results['img'], converted_img) + assert str(transform) == f'CLAHE(clip_limit={2}, tile_grid_size={(8, 8)})' + + def test_seg_rescale(): results = dict() seg = np.array( From 7678ecc33385f63746c59756f17e0f4209d3d938 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Tue, 1 Dec 2020 21:10:55 -0800 Subject: [PATCH 075/706] Bump to 0.9.0 (#285) * Bump to 0.9.0 * add version --- README.md | 2 +- docs/changelog.md | 21 +++++++++++++++++++++ mmseg/version.py | 2 +- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2c5b5b94cc..0ea731fb85 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ This project is released under the [Apache 2.0 license](LICENSE). ## Changelog -v0.7.0 was released in 07/10/2020. +v0.9.0 was released in 30/11/2020. Please refer to [changelog.md](docs/changelog.md) for details and release history. ## Benchmark and model zoo diff --git a/docs/changelog.md b/docs/changelog.md index bbea68349a..7b9c6ffb7b 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,5 +1,26 @@ ## Changelog +### V0.9 (30/11/2020) + +**Highlights** + +- Support 4 medical dataset, UNet and CGNet. + +**New Features** + +- Support RandomRotate transform ([#215](https://github.com/open-mmlab/mmsegmentation/pull/215), [#260](https://github.com/open-mmlab/mmsegmentation/pull/260)) +- Support RGB2Gray transform ([#227](https://github.com/open-mmlab/mmsegmentation/pull/227)) +- Support Rerange transform ([#228](https://github.com/open-mmlab/mmsegmentation/pull/228)) +- Support ignore_index for BCE loss ([#210](https://github.com/open-mmlab/mmsegmentation/pull/210)) +- Add modelzoo statistics ([#263](https://github.com/open-mmlab/mmsegmentation/pull/263)) +- Support Dice evaluation metric ([#225](https://github.com/open-mmlab/mmsegmentation/pull/225)) +- Support Adjust Gamma transform ([#232](https://github.com/open-mmlab/mmsegmentation/pull/232)) +- Support CLAHE transform ([#229](https://github.com/open-mmlab/mmsegmentation/pull/229)) + +**Bug Fixes** + +- Fixed detail API link ([#267](https://github.com/open-mmlab/mmsegmentation/pull/267)) + ### V0.8 (03/11/2020) **Highlights** diff --git a/mmseg/version.py b/mmseg/version.py index d9db9abffe..48c1ac9eb5 100644 --- a/mmseg/version.py +++ b/mmseg/version.py @@ -1,6 +1,6 @@ # Copyright (c) Open-MMLab. All rights reserved. -__version__ = '0.8.0' +__version__ = '0.9.0' def parse_version_info(version_str): From b77623e783c0a41808ac90259afb8a596cedef45 Mon Sep 17 00:00:00 2001 From: yinchimaoliang Date: Mon, 14 Dec 2020 02:06:01 +0800 Subject: [PATCH 076/706] change 'reduct' to 'reduce' (#298) --- mmseg/datasets/pipelines/loading.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mmseg/datasets/pipelines/loading.py b/mmseg/datasets/pipelines/loading.py index a98ddf20b9..fdfc496ba9 100644 --- a/mmseg/datasets/pipelines/loading.py +++ b/mmseg/datasets/pipelines/loading.py @@ -91,7 +91,7 @@ class LoadAnnotations(object): """Load annotations for semantic segmentation. Args: - reduct_zero_label (bool): Whether reduce all label value by 1. + reduce_zero_label (bool): Whether reduce all label value by 1. Usually used for datasets where 0 is background label. Default: False. file_client_args (dict): Arguments to instantiate a FileClient. From d5712c4d38ecfcde151054cb33b14d32753ba5c7 Mon Sep 17 00:00:00 2001 From: Youqing Xiaozhua <843213558@qq.com> Date: Mon, 14 Dec 2020 15:51:42 +0800 Subject: [PATCH 077/706] Bugfix: num of augmentations and image meta not match when run TTA on CPU (#276) * add inference test * fix E501 line too long (81 > 79 characters * fix wrong config path * fix num of augmentations (2) != num of image meta (1) * Update test_inference.py Co-authored-by: Jerry Jiarui XU --- mmseg/apis/inference.py | 2 +- tests/test_inference.py | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 tests/test_inference.py diff --git a/mmseg/apis/inference.py b/mmseg/apis/inference.py index 6fa7e3b343..7cebac986d 100644 --- a/mmseg/apis/inference.py +++ b/mmseg/apis/inference.py @@ -89,7 +89,7 @@ def inference_segmentor(model, img): # scatter to specified GPU data = scatter(data, [device])[0] else: - data['img_metas'] = data['img_metas'][0].data + data['img_metas'] = [i.data[0] for i in data['img_metas']] # forward the model with torch.no_grad(): diff --git a/tests/test_inference.py b/tests/test_inference.py new file mode 100644 index 0000000000..046e036281 --- /dev/null +++ b/tests/test_inference.py @@ -0,0 +1,29 @@ +import os.path as osp + +import mmcv + +from mmseg.apis import inference_segmentor, init_segmentor + + +def test_test_time_augmentation_on_cpu(): + config_file = 'configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py' + config = mmcv.Config.fromfile(config_file) + + # Remove pretrain model download for testing + config.model.pretrained = None + # Replace SyncBN with BN to inference on CPU + norm_cfg = dict(type='BN', requires_grad=True) + config.model.backbone.norm_cfg = norm_cfg + config.model.decode_head.norm_cfg = norm_cfg + config.model.auxiliary_head.norm_cfg = norm_cfg + + # Enable test time augmentation + config.data.test.pipeline[1].flip = True + + checkpoint_file = None + model = init_segmentor(config, checkpoint_file, device='cpu') + + img = mmcv.imread( + osp.join(osp.dirname(__file__), 'data/color.jpg'), 'color') + result = inference_segmentor(model, img) + assert result[0].shape == (288, 512) From 55df29beab9979c345c0e3cbdd2749349f9f047c Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Tue, 15 Dec 2020 12:23:18 +0800 Subject: [PATCH 078/706] Support resize data augmentation according to original image size (#291) * Support resize data augmentation according to original image size (img_scale=None and retio_range is tuple) * fix docstring * fix bug * add unittest * img_scale=None in TTA * fix bug * add unittest * fix typos * fix bug --- mmseg/datasets/pipelines/test_time_aug.py | 25 +++- mmseg/datasets/pipelines/transforms.py | 31 +++-- tests/test_data/test_transform.py | 10 ++ tests/test_data/test_tta.py | 150 ++++++++++++++++++++++ 4 files changed, 199 insertions(+), 17 deletions(-) create mode 100644 tests/test_data/test_tta.py diff --git a/mmseg/datasets/pipelines/test_time_aug.py b/mmseg/datasets/pipelines/test_time_aug.py index 5712c79d58..bab663653f 100644 --- a/mmseg/datasets/pipelines/test_time_aug.py +++ b/mmseg/datasets/pipelines/test_time_aug.py @@ -41,7 +41,7 @@ class MultiScaleFlipAug(object): Args: transforms (list[dict]): Transforms to apply in each augmentation. - img_scale (tuple | list[tuple]): Images scales for resizing. + img_scale (None | tuple | list[tuple]): Images scales for resizing. img_ratios (float | list[float]): Image ratios for resizing flip (bool): Whether apply flip augmentation. Default: False. flip_direction (str | list[str]): Flip augmentation directions, @@ -58,20 +58,27 @@ def __init__(self, flip_direction='horizontal'): self.transforms = Compose(transforms) if img_ratios is not None: - # mode 1: given a scale and a range of image ratio img_ratios = img_ratios if isinstance(img_ratios, list) else [img_ratios] assert mmcv.is_list_of(img_ratios, float) - assert isinstance(img_scale, tuple) and len(img_scale) == 2 + if img_scale is None: + # mode 1: given img_scale=None and a range of image ratio + self.img_scale = None + assert mmcv.is_list_of(img_ratios, float) + elif isinstance(img_scale, tuple) and mmcv.is_list_of( + img_ratios, float): + assert len(img_scale) == 2 + # mode 2: given a scale and a range of image ratio self.img_scale = [(int(img_scale[0] * ratio), int(img_scale[1] * ratio)) for ratio in img_ratios] else: - # mode 2: given multiple scales + # mode 3: given multiple scales self.img_scale = img_scale if isinstance(img_scale, list) else [img_scale] - assert mmcv.is_list_of(self.img_scale, tuple) + assert mmcv.is_list_of(self.img_scale, tuple) or self.img_scale is None self.flip = flip + self.img_ratios = img_ratios self.flip_direction = flip_direction if isinstance( flip_direction, list) else [flip_direction] assert mmcv.is_list_of(self.flip_direction, str) @@ -95,8 +102,14 @@ def __call__(self, results): """ aug_data = [] + if self.img_scale is None and mmcv.is_list_of(self.img_ratios, float): + h, w = results['img'].shape[:2] + img_scale = [(int(h * ratio), int(w * ratio)) + for ratio in self.img_ratios] + else: + img_scale = self.img_scale flip_aug = [False, True] if self.flip else [False] - for scale in self.img_scale: + for scale in img_scale: for flip in flip_aug: for direction in self.flip_direction: _results = results.copy() diff --git a/mmseg/datasets/pipelines/transforms.py b/mmseg/datasets/pipelines/transforms.py index 4f586cfe44..801c666440 100644 --- a/mmseg/datasets/pipelines/transforms.py +++ b/mmseg/datasets/pipelines/transforms.py @@ -14,17 +14,21 @@ class Resize(object): contains the key "scale", then the scale in the input dict is used, otherwise the specified scale in the init method is used. - ``img_scale`` can either be a tuple (single-scale) or a list of tuple - (multi-scale). There are 3 multiscale modes: + ``img_scale`` can be Nong, a tuple (single-scale) or a list of tuple + (multi-scale). There are 4 multiscale modes: - - ``ratio_range is not None``: randomly sample a ratio from the ratio range - and multiply it with the image scale. + - ``ratio_range is not None``: + 1. When img_scale is None, img_scale is the shape of image in results + (img_scale = results['img'].shape[:2]) and the image is resized based + on the original size. (mode 1) + 2. When img_scale is a tuple (single-scale), randomly sample a ratio from + the ratio range and multiply it with the image scale. (mode 2) - ``ratio_range is None and multiscale_mode == "range"``: randomly sample a - scale from the a range. + scale from the a range. (mode 3) - ``ratio_range is None and multiscale_mode == "value"``: randomly sample a - scale from multiple scales. + scale from multiple scales. (mode 4) Args: img_scale (tuple or list[tuple]): Images scales for resizing. @@ -49,10 +53,11 @@ def __init__(self, assert mmcv.is_list_of(self.img_scale, tuple) if ratio_range is not None: - # mode 1: given a scale and a range of image ratio - assert len(self.img_scale) == 1 + # mode 1: given img_scale=None and a range of image ratio + # mode 2: given a scale and a range of image ratio + assert self.img_scale is None or len(self.img_scale) == 1 else: - # mode 2: given multiple scales or a range of scales + # mode 3 and 4: given multiple scales or a range of scales assert multiscale_mode in ['value', 'range'] self.multiscale_mode = multiscale_mode @@ -150,8 +155,12 @@ def _random_scale(self, results): """ if self.ratio_range is not None: - scale, scale_idx = self.random_sample_ratio( - self.img_scale[0], self.ratio_range) + if self.img_scale is None: + scale, scale_idx = self.random_sample_ratio( + results['img'].shape[:2], self.ratio_range) + else: + scale, scale_idx = self.random_sample_ratio( + self.img_scale[0], self.ratio_range) elif len(self.img_scale) == 1: scale, scale_idx = self.img_scale[0], 0 elif self.multiscale_mode == 'range': diff --git a/tests/test_data/test_transform.py b/tests/test_data/test_transform.py index 1833d791e8..a6417575c3 100644 --- a/tests/test_data/test_transform.py +++ b/tests/test_data/test_transform.py @@ -38,6 +38,7 @@ def test_resize(): resize_module = build_from_cfg(transform, PIPELINES) results = dict() + # (288, 512, 3) img = mmcv.imread( osp.join(osp.dirname(__file__), '../data/color.jpg'), 'color') results['img'] = img @@ -92,6 +93,15 @@ def test_resize(): resized_results = resize_module(results.copy()) assert max(resized_results['img_shape'][:2]) <= 1333 * 1.1 + # test img_scale=None and ratio_range is tuple. + # img shape: (288, 512, 3) + transform = dict( + type='Resize', img_scale=None, ratio_range=(0.5, 2.0), keep_ratio=True) + resize_module = build_from_cfg(transform, PIPELINES) + resized_results = resize_module(results.copy()) + assert int(288 * 0.5) <= resized_results['img_shape'][0] <= 288 * 2.0 + assert int(512 * 0.5) <= resized_results['img_shape'][1] <= 512 * 2.0 + def test_flip(): # test assertion for invalid prob diff --git a/tests/test_data/test_tta.py b/tests/test_data/test_tta.py new file mode 100644 index 0000000000..61fb5aa340 --- /dev/null +++ b/tests/test_data/test_tta.py @@ -0,0 +1,150 @@ +import os.path as osp + +import mmcv +import pytest +from mmcv.utils import build_from_cfg + +from mmseg.datasets.builder import PIPELINES + + +def test_multi_scale_flip_aug(): + # test assertion if img_scale=None, img_ratios=1 (not float). + with pytest.raises(AssertionError): + tta_transform = dict( + type='MultiScaleFlipAug', + img_scale=None, + img_ratios=1, + transforms=[dict(type='Resize', keep_ratio=False)], + ) + build_from_cfg(tta_transform, PIPELINES) + + # test assertion if img_scale=None, img_ratios=None. + with pytest.raises(AssertionError): + tta_transform = dict( + type='MultiScaleFlipAug', + img_scale=None, + img_ratios=None, + transforms=[dict(type='Resize', keep_ratio=False)], + ) + build_from_cfg(tta_transform, PIPELINES) + + # test assertion if img_scale=(512, 512), img_ratios=1 (not float). + with pytest.raises(AssertionError): + tta_transform = dict( + type='MultiScaleFlipAug', + img_scale=(512, 512), + img_ratios=1, + transforms=[dict(type='Resize', keep_ratio=False)], + ) + build_from_cfg(tta_transform, PIPELINES) + + tta_transform = dict( + type='MultiScaleFlipAug', + img_scale=(512, 512), + img_ratios=[0.5, 1.0, 2.0], + flip=False, + transforms=[dict(type='Resize', keep_ratio=False)], + ) + tta_module = build_from_cfg(tta_transform, PIPELINES) + + results = dict() + # (288, 512, 3) + img = mmcv.imread( + osp.join(osp.dirname(__file__), '../data/color.jpg'), 'color') + results['img'] = img + results['img_shape'] = img.shape + results['ori_shape'] = img.shape + # Set initial values for default meta_keys + results['pad_shape'] = img.shape + results['scale_factor'] = 1.0 + + tta_results = tta_module(results.copy()) + assert tta_results['scale'] == [(256, 256), (512, 512), (1024, 1024)] + assert tta_results['flip'] == [False, False, False] + + tta_transform = dict( + type='MultiScaleFlipAug', + img_scale=(512, 512), + img_ratios=[0.5, 1.0, 2.0], + flip=True, + transforms=[dict(type='Resize', keep_ratio=False)], + ) + tta_module = build_from_cfg(tta_transform, PIPELINES) + tta_results = tta_module(results.copy()) + assert tta_results['scale'] == [(256, 256), (256, 256), (512, 512), + (512, 512), (1024, 1024), (1024, 1024)] + assert tta_results['flip'] == [False, True, False, True, False, True] + + tta_transform = dict( + type='MultiScaleFlipAug', + img_scale=(512, 512), + img_ratios=1.0, + flip=False, + transforms=[dict(type='Resize', keep_ratio=False)], + ) + tta_module = build_from_cfg(tta_transform, PIPELINES) + tta_results = tta_module(results.copy()) + assert tta_results['scale'] == [(512, 512)] + assert tta_results['flip'] == [False] + + tta_transform = dict( + type='MultiScaleFlipAug', + img_scale=(512, 512), + img_ratios=1.0, + flip=True, + transforms=[dict(type='Resize', keep_ratio=False)], + ) + tta_module = build_from_cfg(tta_transform, PIPELINES) + tta_results = tta_module(results.copy()) + assert tta_results['scale'] == [(512, 512), (512, 512)] + assert tta_results['flip'] == [False, True] + + tta_transform = dict( + type='MultiScaleFlipAug', + img_scale=None, + img_ratios=[0.5, 1.0, 2.0], + flip=False, + transforms=[dict(type='Resize', keep_ratio=False)], + ) + tta_module = build_from_cfg(tta_transform, PIPELINES) + tta_results = tta_module(results.copy()) + assert tta_results['scale'] == [(144, 256), (288, 512), (576, 1024)] + assert tta_results['flip'] == [False, False, False] + + tta_transform = dict( + type='MultiScaleFlipAug', + img_scale=None, + img_ratios=[0.5, 1.0, 2.0], + flip=True, + transforms=[dict(type='Resize', keep_ratio=False)], + ) + tta_module = build_from_cfg(tta_transform, PIPELINES) + tta_results = tta_module(results.copy()) + assert tta_results['scale'] == [(144, 256), (144, 256), (288, 512), + (288, 512), (576, 1024), (576, 1024)] + assert tta_results['flip'] == [False, True, False, True, False, True] + + tta_transform = dict( + type='MultiScaleFlipAug', + img_scale=[(256, 256), (512, 512), (1024, 1024)], + img_ratios=None, + flip=False, + transforms=[dict(type='Resize', keep_ratio=False)], + ) + tta_module = build_from_cfg(tta_transform, PIPELINES) + tta_results = tta_module(results.copy()) + assert tta_results['scale'] == [(256, 256), (512, 512), (1024, 1024)] + assert tta_results['flip'] == [False, False, False] + + tta_transform = dict( + type='MultiScaleFlipAug', + img_scale=[(256, 256), (512, 512), (1024, 1024)], + img_ratios=None, + flip=True, + transforms=[dict(type='Resize', keep_ratio=False)], + ) + tta_module = build_from_cfg(tta_transform, PIPELINES) + tta_results = tta_module(results.copy()) + assert tta_results['scale'] == [(256, 256), (256, 256), (512, 512), + (512, 512), (1024, 1024), (1024, 1024)] + assert tta_results['flip'] == [False, True, False, True, False, True] From 7e918e302ae51049b59d252b4d14e1abc027f7e0 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Thu, 17 Dec 2020 22:46:38 -0800 Subject: [PATCH 079/706] update CI for pip 20.3 (#307) * update CI for pip 20.3 * fixed 1.6 torchvision * delete python 3.8 * fixed mmcv * add cuda home * change to 1.2.2 * add pip upgrade * install cuda for all * add missing mmcv * switch to deprecate --- .github/workflows/build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5093c05254..9a30054bfe 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -36,7 +36,7 @@ jobs: torch: [1.3.0+cpu, 1.5.0+cpu] include: - torch: 1.3.0+cpu - torchvision: 0.4.2+cpu + torchvision: 0.4.1+cpu - torch: 1.5.0+cpu torchvision: 0.6.0+cpu - torch: 1.5.0+cpu @@ -71,13 +71,13 @@ jobs: export PATH=${CUDA_HOME}/bin:${PATH} sudo apt-get install -y ninja-build - name: Install Pillow - if: ${{matrix.torchvision == '0.4.2+cpu'}} + if: ${{matrix.torchvision == '0.4.1+cpu'}} run: pip install Pillow==6.2.2 - name: Install PyTorch run: pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html - name: Install mmseg dependencies run: | - pip install mmcv-full==latest+torch${{matrix.torch}} -f https://download.openmmlab.com/mmcv/dist/index.html + pip install mmcv-full==latest+torch${{matrix.torch}} -f https://download.openmmlab.com/mmcv/dist/index.html --use-deprecated=legacy-resolver pip install -r requirements.txt - name: Build and install run: rm -rf .eggs && pip install -e . From a5d15ae22821aef70024400bd6edfdac22c12bd3 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Fri, 18 Dec 2020 15:23:45 +0800 Subject: [PATCH 080/706] Support APCNet (#299) * Support APCNet * code optimization * add apcnet configs * add benchmark * add readme and model zoo * fix doc --- README.md | 1 + configs/_base_/models/apcnet_r50-d8.py | 44 +++++ configs/apcnet/README.md | 37 ++++ .../apcnet_r101-d8_512x1024_40k_cityscapes.py | 2 + .../apcnet_r101-d8_512x1024_80k_cityscapes.py | 2 + .../apcnet_r101-d8_512x512_160k_ade20k.py | 2 + .../apcnet_r101-d8_512x512_80k_ade20k.py | 2 + .../apcnet_r101-d8_769x769_40k_cityscapes.py | 2 + .../apcnet_r101-d8_769x769_80k_cityscapes.py | 2 + .../apcnet_r50-d8_512x1024_40k_cityscapes.py | 4 + .../apcnet_r50-d8_512x1024_80k_cityscapes.py | 4 + .../apcnet_r50-d8_512x512_160k_ade20k.py | 7 + .../apcnet_r50-d8_512x512_80k_ade20k.py | 7 + .../apcnet_r50-d8_769x769_40k_cityscapes.py | 9 + .../apcnet_r50-d8_769x769_80k_cityscapes.py | 9 + docs/model_zoo.md | 4 + mmseg/models/decode_heads/__init__.py | 3 +- mmseg/models/decode_heads/apc_head.py | 158 ++++++++++++++++++ tests/test_models/test_heads.py | 57 ++++++- 19 files changed, 353 insertions(+), 3 deletions(-) create mode 100644 configs/_base_/models/apcnet_r50-d8.py create mode 100644 configs/apcnet/README.md create mode 100644 configs/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes.py create mode 100644 configs/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes.py create mode 100644 configs/apcnet/apcnet_r101-d8_512x512_160k_ade20k.py create mode 100644 configs/apcnet/apcnet_r101-d8_512x512_80k_ade20k.py create mode 100644 configs/apcnet/apcnet_r101-d8_769x769_40k_cityscapes.py create mode 100644 configs/apcnet/apcnet_r101-d8_769x769_80k_cityscapes.py create mode 100644 configs/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes.py create mode 100644 configs/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes.py create mode 100644 configs/apcnet/apcnet_r50-d8_512x512_160k_ade20k.py create mode 100644 configs/apcnet/apcnet_r50-d8_512x512_80k_ade20k.py create mode 100644 configs/apcnet/apcnet_r50-d8_769x769_40k_cityscapes.py create mode 100644 configs/apcnet/apcnet_r50-d8_769x769_80k_cityscapes.py create mode 100644 mmseg/models/decode_heads/apc_head.py diff --git a/README.md b/README.md index 0ea731fb85..ba9184c90a 100644 --- a/README.md +++ b/README.md @@ -73,6 +73,7 @@ Supported methods: - [x] [EncNet](configs/encnet) - [x] [CCNet](configs/ccnet) - [x] [DANet](configs/danet) +- [x] [APCNet](configs/apcnet) - [x] [GCNet](configs/gcnet) - [x] [ANN](configs/ann) - [x] [OCRNet](configs/ocrnet) diff --git a/configs/_base_/models/apcnet_r50-d8.py b/configs/_base_/models/apcnet_r50-d8.py new file mode 100644 index 0000000000..451cbc4190 --- /dev/null +++ b/configs/_base_/models/apcnet_r50-d8.py @@ -0,0 +1,44 @@ +# model settings +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + type='EncoderDecoder', + pretrained='open-mmlab://resnet50_v1c', + backbone=dict( + type='ResNetV1c', + depth=50, + num_stages=4, + out_indices=(0, 1, 2, 3), + dilations=(1, 1, 2, 4), + strides=(1, 2, 1, 1), + norm_cfg=norm_cfg, + norm_eval=False, + style='pytorch', + contract_dilation=True), + decode_head=dict( + type='APCHead', + in_channels=2048, + in_index=3, + channels=512, + pool_scales=(1, 2, 3, 6), + dropout_ratio=0.1, + num_classes=19, + norm_cfg=dict(type='SyncBN', requires_grad=True), + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + auxiliary_head=dict( + type='FCNHead', + in_channels=1024, + in_index=2, + channels=256, + num_convs=1, + concat_input=False, + dropout_ratio=0.1, + num_classes=19, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))) +# model training and testing settings +train_cfg = dict() +test_cfg = dict(mode='whole') diff --git a/configs/apcnet/README.md b/configs/apcnet/README.md new file mode 100644 index 0000000000..2dc55a3799 --- /dev/null +++ b/configs/apcnet/README.md @@ -0,0 +1,37 @@ +# Adaptive Pyramid Context Network for Semantic Segmentation + +## Introduction + +```latex +@InProceedings{He_2019_CVPR, +author = {He, Junjun and Deng, Zhongying and Zhou, Lei and Wang, Yali and Qiao, Yu}, +title = {Adaptive Pyramid Context Network for Semantic Segmentation}, +booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)}, +month = {June}, +year = {2019} +} +``` + +## Results and models + +### Cityscapes + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | +|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| APCNet | R-50-D8 | 512x1024 | 40000 | 7.7 | 3.57 | 78.02 | 79.26 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes/apcnet_r50-d8_512x1024_40k_cityscapes_20201214_115717-5e88fa33.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes/apcnet_r50-d8_512x1024_40k_cityscapes-20201214_115717.log.json) | +| APCNet | R-101-D8 | 512x1024 | 40000 | 11.2 | 2.15 | 79.08 | 80.34 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes/apcnet_r101-d8_512x1024_40k_cityscapes_20201214_115716-abc9d111.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes/apcnet_r101-d8_512x1024_40k_cityscapes-20201214_115716.log.json) | +| APCNet | R-50-D8 | 769x769 | 40000 | 8.7 | 1.52 | 77.89 | 79.75 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_40k_cityscapes/apcnet_r50-d8_769x769_40k_cityscapes_20201214_115717-2a2628d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_40k_cityscapes/apcnet_r50-d8_769x769_40k_cityscapes-20201214_115717.log.json) | +| APCNet | R-101-D8 | 769x769 | 40000 | 12.7 | 1.03 | 77.96 | 79.24 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_40k_cityscapes/apcnet_r101-d8_769x769_40k_cityscapes_20201214_115718-b650de90.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_40k_cityscapes/apcnet_r101-d8_769x769_40k_cityscapes-20201214_115718.log.json) | +| APCNet | R-50-D8 | 512x1024 | 80000 | - | - | 78.96 | 79.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes/apcnet_r50-d8_512x1024_80k_cityscapes_20201214_115716-987f51e3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes/apcnet_r50-d8_512x1024_80k_cityscapes-20201214_115716.log.json) | +| APCNet | R-101-D8 | 512x1024 | 80000 | - | - | 79.64 | 80.61 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes/apcnet_r101-d8_512x1024_80k_cityscapes_20201214_115705-b1ff208a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes/apcnet_r101-d8_512x1024_80k_cityscapes-20201214_115705.log.json) | +| APCNet | R-50-D8 | 769x769 | 80000 | - | - | 78.79 | 80.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_80k_cityscapes/apcnet_r50-d8_769x769_80k_cityscapes_20201214_115718-7ea9fa12.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_80k_cityscapes/apcnet_r50-d8_769x769_80k_cityscapes-20201214_115718.log.json) | +| APCNet | R-101-D8 | 769x769 | 80000 | - | - | 78.45 | 79.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_80k_cityscapes/apcnet_r101-d8_769x769_80k_cityscapes_20201214_115716-a7fbc2ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_80k_cityscapes/apcnet_r101-d8_769x769_80k_cityscapes-20201214_115716.log.json) | + +### ADE20K + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | +|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| APCNet | R-50-D8 | 512x512 | 80000 | 10.1 | 19.61 | 42.20 | 43.30 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_80k_ade20k/apcnet_r50-d8_512x512_80k_ade20k_20201214_115705-a8626293.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_80k_ade20k/apcnet_r50-d8_512x512_80k_ade20k-20201214_115705.log.json) | +| APCNet | R-101-D8 | 512x512 | 80000 | 13.6 | 13.10 | 45.54 | 46.65 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_80k_ade20k/apcnet_r101-d8_512x512_80k_ade20k_20201214_115704-c656c3fb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_80k_ade20k/apcnet_r101-d8_512x512_80k_ade20k-20201214_115704.log.json) | +| APCNet | R-50-D8 | 512x512 | 160000 | - | - | 43.40 | 43.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_160k_ade20k/apcnet_r50-d8_512x512_160k_ade20k_20201214_115706-25fb92c2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_160k_ade20k/apcnet_r50-d8_512x512_160k_ade20k-20201214_115706.log.json) | +| APCNet | R-101-D8 | 512x512 | 160000 | - | - | 45.41 | 46.63 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_160k_ade20k/apcnet_r101-d8_512x512_160k_ade20k_20201214_115705-73f9a8d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_160k_ade20k/apcnet_r101-d8_512x512_160k_ade20k-20201214_115705.log.json) | diff --git a/configs/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes.py b/configs/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes.py new file mode 100644 index 0000000000..1e1cec6735 --- /dev/null +++ b/configs/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './apcnet_r50-d8_512x1024_40k_cityscapes.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes.py b/configs/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..04cb006ba1 --- /dev/null +++ b/configs/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './apcnet_r50-d8_512x1024_80k_cityscapes.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/apcnet/apcnet_r101-d8_512x512_160k_ade20k.py b/configs/apcnet/apcnet_r101-d8_512x512_160k_ade20k.py new file mode 100644 index 0000000000..1ce2279a0f --- /dev/null +++ b/configs/apcnet/apcnet_r101-d8_512x512_160k_ade20k.py @@ -0,0 +1,2 @@ +_base_ = './apcnet_r50-d8_512x512_160k_ade20k.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/apcnet/apcnet_r101-d8_512x512_80k_ade20k.py b/configs/apcnet/apcnet_r101-d8_512x512_80k_ade20k.py new file mode 100644 index 0000000000..8f10b98406 --- /dev/null +++ b/configs/apcnet/apcnet_r101-d8_512x512_80k_ade20k.py @@ -0,0 +1,2 @@ +_base_ = './apcnet_r50-d8_512x512_80k_ade20k.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/apcnet/apcnet_r101-d8_769x769_40k_cityscapes.py b/configs/apcnet/apcnet_r101-d8_769x769_40k_cityscapes.py new file mode 100644 index 0000000000..5c44ebcaf3 --- /dev/null +++ b/configs/apcnet/apcnet_r101-d8_769x769_40k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './apcnet_r50-d8_769x769_40k_cityscapes.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/apcnet/apcnet_r101-d8_769x769_80k_cityscapes.py b/configs/apcnet/apcnet_r101-d8_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..616984575d --- /dev/null +++ b/configs/apcnet/apcnet_r101-d8_769x769_80k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './apcnet_r50-d8_769x769_80k_cityscapes.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes.py b/configs/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes.py new file mode 100644 index 0000000000..99c61a942e --- /dev/null +++ b/configs/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes.py @@ -0,0 +1,4 @@ +_base_ = [ + '../_base_/models/apcnet_r50-d8.py', '../_base_/datasets/cityscapes.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' +] diff --git a/configs/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes.py b/configs/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..62a0627ae2 --- /dev/null +++ b/configs/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,4 @@ +_base_ = [ + '../_base_/models/apcnet_r50-d8.py', '../_base_/datasets/cityscapes.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' +] diff --git a/configs/apcnet/apcnet_r50-d8_512x512_160k_ade20k.py b/configs/apcnet/apcnet_r50-d8_512x512_160k_ade20k.py new file mode 100644 index 0000000000..aa45e35d30 --- /dev/null +++ b/configs/apcnet/apcnet_r50-d8_512x512_160k_ade20k.py @@ -0,0 +1,7 @@ +_base_ = [ + '../_base_/models/apcnet_r50-d8.py', '../_base_/datasets/ade20k.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' +] +model = dict( + decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) +test_cfg = dict(mode='whole') diff --git a/configs/apcnet/apcnet_r50-d8_512x512_80k_ade20k.py b/configs/apcnet/apcnet_r50-d8_512x512_80k_ade20k.py new file mode 100644 index 0000000000..6b40d1f7ad --- /dev/null +++ b/configs/apcnet/apcnet_r50-d8_512x512_80k_ade20k.py @@ -0,0 +1,7 @@ +_base_ = [ + '../_base_/models/apcnet_r50-d8.py', '../_base_/datasets/ade20k.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' +] +model = dict( + decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) +test_cfg = dict(mode='whole') diff --git a/configs/apcnet/apcnet_r50-d8_769x769_40k_cityscapes.py b/configs/apcnet/apcnet_r50-d8_769x769_40k_cityscapes.py new file mode 100644 index 0000000000..d0134e31e8 --- /dev/null +++ b/configs/apcnet/apcnet_r50-d8_769x769_40k_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = [ + '../_base_/models/apcnet_r50-d8.py', + '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_40k.py' +] +model = dict( + decode_head=dict(align_corners=True), + auxiliary_head=dict(align_corners=True)) +test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) diff --git a/configs/apcnet/apcnet_r50-d8_769x769_80k_cityscapes.py b/configs/apcnet/apcnet_r50-d8_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..1d863c4f1b --- /dev/null +++ b/configs/apcnet/apcnet_r50-d8_769x769_80k_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = [ + '../_base_/models/apcnet_r50-d8.py', + '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_80k.py' +] +model = dict( + decode_head=dict(align_corners=True), + auxiliary_head=dict(align_corners=True)) +test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) diff --git a/docs/model_zoo.md b/docs/model_zoo.md index 0dd1b410bc..c130baf6a1 100644 --- a/docs/model_zoo.md +++ b/docs/model_zoo.md @@ -67,6 +67,10 @@ Please refer to [CCNet](https://github.com/open-mmlab/mmsegmentation/blob/master Please refer to [DANet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/danet) for details. +### APCNet + +Please refer to [APCNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/apcnet) for details. + ### HRNet Please refer to [HRNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet) for details. diff --git a/mmseg/models/decode_heads/__init__.py b/mmseg/models/decode_heads/__init__.py index 6f3217ec03..1ac8c1ae31 100644 --- a/mmseg/models/decode_heads/__init__.py +++ b/mmseg/models/decode_heads/__init__.py @@ -1,4 +1,5 @@ from .ann_head import ANNHead +from .apc_head import APCHead from .aspp_head import ASPPHead from .cc_head import CCHead from .da_head import DAHead @@ -21,5 +22,5 @@ 'FCNHead', 'PSPHead', 'ASPPHead', 'PSAHead', 'NLHead', 'GCHead', 'CCHead', 'UPerHead', 'DepthwiseSeparableASPPHead', 'ANNHead', 'DAHead', 'OCRHead', 'EncHead', 'DepthwiseSeparableFCNHead', 'FPNHead', 'EMAHead', 'DNLHead', - 'PointHead' + 'PointHead', 'APCHead' ] diff --git a/mmseg/models/decode_heads/apc_head.py b/mmseg/models/decode_heads/apc_head.py new file mode 100644 index 0000000000..b453db3943 --- /dev/null +++ b/mmseg/models/decode_heads/apc_head.py @@ -0,0 +1,158 @@ +import torch +import torch.nn as nn +import torch.nn.functional as F +from mmcv.cnn import ConvModule + +from mmseg.ops import resize +from ..builder import HEADS +from .decode_head import BaseDecodeHead + + +class ACM(nn.Module): + """Adaptive Context Module used in APCNet. + + Args: + pool_scale (int): Pooling scale used in Adaptive Context + Module to extract region fetures. + fusion (bool): Add one conv to fuse residual feature. + in_channels (int): Input channels. + channels (int): Channels after modules, before conv_seg. + conv_cfg (dict | None): Config of conv layers. + norm_cfg (dict | None): Config of norm layers. + act_cfg (dict): Config of activation layers. + """ + + def __init__(self, pool_scale, fusion, in_channels, channels, conv_cfg, + norm_cfg, act_cfg): + super(ACM, self).__init__() + self.pool_scale = pool_scale + self.fusion = fusion + self.in_channels = in_channels + self.channels = channels + self.conv_cfg = conv_cfg + self.norm_cfg = norm_cfg + self.act_cfg = act_cfg + self.pooled_redu_conv = ConvModule( + self.in_channels, + self.channels, + 1, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + + self.input_redu_conv = ConvModule( + self.in_channels, + self.channels, + 1, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + + self.global_info = ConvModule( + self.channels, + self.channels, + 1, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + + self.gla = nn.Conv2d(self.channels, self.pool_scale**2, 1, 1, 0) + + self.residual_conv = ConvModule( + self.channels, + self.channels, + 1, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + + if self.fusion: + self.fusion_conv = ConvModule( + self.channels, + self.channels, + 1, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + + def forward(self, x): + """Forward function.""" + pooled_x = F.adaptive_avg_pool2d(x, self.pool_scale) + # [batch_size, channels, h, w] + x = self.input_redu_conv(x) + # [batch_size, channels, pool_scale, pool_scale] + pooled_x = self.pooled_redu_conv(pooled_x) + batch_size = x.size(0) + # [batch_size, pool_scale * pool_scale, channels] + pooled_x = pooled_x.view(batch_size, self.channels, + -1).permute(0, 2, 1).contiguous() + # [batch_size, h * w, pool_scale * pool_scale] + affinity_matrix = self.gla(x + resize( + self.global_info(F.adaptive_avg_pool2d(x, 1)), size=x.shape[2:]) + ).permute(0, 2, 3, 1).reshape( + batch_size, -1, self.pool_scale**2) + affinity_matrix = F.sigmoid(affinity_matrix) + # [batch_size, h * w, channels] + z_out = torch.matmul(affinity_matrix, pooled_x) + # [batch_size, channels, h * w] + z_out = z_out.permute(0, 2, 1).contiguous() + # [batch_size, channels, h, w] + z_out = z_out.view(batch_size, self.channels, x.size(2), x.size(3)) + z_out = self.residual_conv(z_out) + z_out = F.relu(z_out + x) + if self.fusion: + z_out = self.fusion_conv(z_out) + + return z_out + + +@HEADS.register_module() +class APCHead(BaseDecodeHead): + """Adaptive Pyramid Context Network for Semantic Segmentation. + + This head is the implementation of + `APCNet `_. + + Args: + pool_scales (tuple[int]): Pooling scales used in Adaptive Context + Module. Default: (1, 2, 3, 6). + fusion (bool): Add one conv to fuse residual feature. + """ + + def __init__(self, pool_scales=(1, 2, 3, 6), fusion=True, **kwargs): + super(APCHead, self).__init__(**kwargs) + assert isinstance(pool_scales, (list, tuple)) + self.pool_scales = pool_scales + self.fusion = fusion + acm_modules = [] + for pool_scale in self.pool_scales: + acm_modules.append( + ACM(pool_scale, + self.fusion, + self.in_channels, + self.channels, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg)) + self.acm_modules = nn.ModuleList(acm_modules) + self.bottleneck = ConvModule( + self.in_channels + len(pool_scales) * self.channels, + self.channels, + 3, + padding=1, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + + def forward(self, inputs): + """Forward function.""" + x = self._transform_inputs(inputs) + acm_outs = [x] + for acm_module in self.acm_modules: + acm_outs.append(acm_module(x)) + acm_outs = torch.cat(acm_outs, dim=1) + output = self.bottleneck(acm_outs) + output = self.cls_seg(output) + return output diff --git a/tests/test_models/test_heads.py b/tests/test_models/test_heads.py index acf290226e..5a8ab74637 100644 --- a/tests/test_models/test_heads.py +++ b/tests/test_models/test_heads.py @@ -6,8 +6,8 @@ from mmcv.utils import ConfigDict from mmcv.utils.parrots_wrapper import SyncBatchNorm -from mmseg.models.decode_heads import (ANNHead, ASPPHead, CCHead, DAHead, - DepthwiseSeparableASPPHead, +from mmseg.models.decode_heads import (ANNHead, APCHead, ASPPHead, CCHead, + DAHead, DepthwiseSeparableASPPHead, DepthwiseSeparableFCNHead, DNLHead, EMAHead, EncHead, FCNHead, GCHead, NLHead, OCRHead, PointHead, PSAHead, @@ -223,6 +223,59 @@ def test_psp_head(): assert outputs.shape == (1, head.num_classes, 45, 45) +def test_apc_head(): + + with pytest.raises(AssertionError): + # pool_scales must be list|tuple + APCHead(in_channels=32, channels=16, num_classes=19, pool_scales=1) + + # test no norm_cfg + head = APCHead(in_channels=32, channels=16, num_classes=19) + assert not _conv_has_norm(head, sync_bn=False) + + # test with norm_cfg + head = APCHead( + in_channels=32, + channels=16, + num_classes=19, + norm_cfg=dict(type='SyncBN')) + assert _conv_has_norm(head, sync_bn=True) + + # fusion=True + inputs = [torch.randn(1, 32, 45, 45)] + head = APCHead( + in_channels=32, + channels=16, + num_classes=19, + pool_scales=(1, 2, 3), + fusion=True) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + assert head.fusion is True + assert head.acm_modules[0].pool_scale == 1 + assert head.acm_modules[1].pool_scale == 2 + assert head.acm_modules[2].pool_scale == 3 + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) + + # fusion=False + inputs = [torch.randn(1, 32, 45, 45)] + head = APCHead( + in_channels=32, + channels=16, + num_classes=19, + pool_scales=(1, 2, 3), + fusion=False) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + assert head.fusion is False + assert head.acm_modules[0].pool_scale == 1 + assert head.acm_modules[1].pool_scale == 2 + assert head.acm_modules[2].pool_scale == 3 + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) + + def test_aspp_head(): with pytest.raises(AssertionError): From aba6d62c65af0c7ee1b38b087088a1b954e59cf9 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Tue, 22 Dec 2020 18:36:49 -0800 Subject: [PATCH 081/706] Doc refactor (#311) * refactor docs * add docs * add modelzoo * refactor getting started --- docs/dataset_prepare.md | 165 +++++++ docs/{install.md => get_started.md} | 75 ++- docs/getting_started.md | 449 ------------------ docs/index.rst | 40 +- docs/inference.md | 88 ++++ docs/train.md | 83 ++++ docs/{ => tutorials}/config.md | 2 +- .../{new_dataset.md => customize_datasets.md} | 2 +- .../{new_modules.md => customize_models.md} | 2 +- docs/tutorials/customize_runtime.md | 243 ++++++++++ docs/tutorials/data_pipeline.md | 2 +- docs/tutorials/index.rst | 6 +- docs/tutorials/training_tricks.md | 2 +- docs/useful_tools.md | 64 +++ tools/convert_datasets/pascal_context.py | 2 +- 15 files changed, 755 insertions(+), 470 deletions(-) create mode 100644 docs/dataset_prepare.md rename docs/{install.md => get_started.md} (62%) delete mode 100644 docs/getting_started.md create mode 100644 docs/inference.md create mode 100644 docs/train.md rename docs/{ => tutorials}/config.md (99%) rename docs/tutorials/{new_dataset.md => customize_datasets.md} (99%) rename docs/tutorials/{new_modules.md => customize_models.md} (99%) create mode 100644 docs/tutorials/customize_runtime.md create mode 100644 docs/useful_tools.md diff --git a/docs/dataset_prepare.md b/docs/dataset_prepare.md new file mode 100644 index 0000000000..5407339f13 --- /dev/null +++ b/docs/dataset_prepare.md @@ -0,0 +1,165 @@ +## Prepare datasets + +It is recommended to symlink the dataset root to `$MMSEGMENTATION/data`. +If your folder structure is different, you may need to change the corresponding paths in config files. + +```none +mmsegmentation +├── mmseg +├── tools +├── configs +├── data +│ ├── cityscapes +│ │ ├── leftImg8bit +│ │ │ ├── train +│ │ │ ├── val +│ │ ├── gtFine +│ │ │ ├── train +│ │ │ ├── val +│ ├── VOCdevkit +│ │ ├── VOC2012 +│ │ │ ├── JPEGImages +│ │ │ ├── SegmentationClass +│ │ │ ├── ImageSets +│ │ │ │ ├── Segmentation +│ │ ├── VOC2010 +│ │ │ ├── JPEGImages +│ │ │ ├── SegmentationClassContext +│ │ │ ├── ImageSets +│ │ │ │ ├── SegmentationContext +│ │ │ │ │ ├── train.txt +│ │ │ │ │ ├── val.txt +│ │ │ ├── trainval_merged.json +│ │ ├── VOCaug +│ │ │ ├── dataset +│ │ │ │ ├── cls +│ ├── ade +│ │ ├── ADEChallengeData2016 +│ │ │ ├── annotations +│ │ │ │ ├── training +│ │ │ │ ├── validation +│ │ │ ├── images +│ │ │ │ ├── training +│ │ │ │ ├── validation +│ ├── CHASE_DB1 +│ │ ├── images +│ │ │ ├── training +│ │ │ ├── validation +│ │ ├── annotations +│ │ │ ├── training +│ │ │ ├── validation +│ ├── DRIVE +│ │ ├── images +│ │ │ ├── training +│ │ │ ├── validation +│ │ ├── annotations +│ │ │ ├── training +│ │ │ ├── validation +│ ├── HRF +│ │ ├── images +│ │ │ ├── training +│ │ │ ├── validation +│ │ ├── annotations +│ │ │ ├── training +│ │ │ ├── validation +│ ├── STARE +│ │ ├── images +│ │ │ ├── training +│ │ │ ├── validation +│ │ ├── annotations +│ │ │ ├── training +│ │ │ ├── validation + +``` + +### Cityscapes + +The data could be found [here](https://www.cityscapes-dataset.com/downloads/) after registration. + +By convention, `**labelTrainIds.png` are used for cityscapes training. +We provided a [scripts](https://github.com/open-mmlab/mmsegmentation/blob/master/tools/convert_datasets/cityscapes.py) based on [cityscapesscripts](https://github.com/mcordts/cityscapesScripts) +to generate `**labelTrainIds.png`. + +```shell +# --nproc means 8 process for conversion, which could be omitted as well. +python tools/convert_datasets/cityscapes.py data/cityscapes --nproc 8 +``` + +### Pascal VOC + +Pascal VOC 2012 could be downloaded from [here](http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar). +Beside, most recent works on Pascal VOC dataset usually exploit extra augmentation data, which could be found [here](http://www.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/semantic_contours/benchmark.tgz). + +If you would like to use augmented VOC dataset, please run following command to convert augmentation annotations into proper format. + +```shell +# --nproc means 8 process for conversion, which could be omitted as well. +python tools/convert_datasets/voc_aug.py data/VOCdevkit data/VOCdevkit/VOCaug --nproc 8 +``` + +Please refer to [concat dataset](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/tutorials/new_dataset.md#concatenate-dataset) for details about how to concatenate them and train them together. + +### ADE20K + +The training and validation set of ADE20K could be download from this [link](http://data.csail.mit.edu/places/ADEchallenge/ADEChallengeData2016.zip). +We may also download test set from [here](http://data.csail.mit.edu/places/ADEchallenge/release_test.zip). + +### Pascal Context + +The training and validation set of Pascal Context could be download from [here](http://host.robots.ox.ac.uk/pascal/VOC/voc2010/VOCtrainval_03-May-2010.tar). You may also download test set from [here](http://host.robots.ox.ac.uk:8080/eval/downloads/VOC2010test.tar) after registration. + +To split the training and validation set from original dataset, you may download trainval_merged.json from [here](https://codalabuser.blob.core.windows.net/public/trainval_merged.json). + +If you would like to use Pascal Context dataset, please install [Detail](https://github.com/zhanghang1989/detail-api) and then run the following command to convert annotations into proper format. + +```shell +python tools/convert_datasets/pascal_context.py data/VOCdevkit data/VOCdevkit/VOC2010/trainval_merged.json +``` + +### CHASE DB1 + +The training and validation set of CHASE DB1 could be download from [here](https://staffnet.kingston.ac.uk/~ku15565/CHASE_DB1/assets/CHASEDB1.zip). + +To convert CHASE DB1 dataset to MMSegmentation format, you should run the following command: + +```shell +python tools/convert_datasets/chase_db1.py /path/to/CHASEDB1.zip +``` + +The script will make directory structure automatically. + +### DRIVE + +The training and validation set of DRIVE could be download from [here](https://drive.grand-challenge.org/). Before that, you should register an account. Currently '1st_manual' is not provided officially. + +To convert DRIVE dataset to MMSegmentation format, you should run the following command: + +```shell +python tools/convert_datasets/drive.py /path/to/training.zip /path/to/test.zip +``` + +The script will make directory structure automatically. + +### HRF + +First, download [healthy.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/healthy.zip), [glaucoma.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/glaucoma.zip), [diabetic_retinopathy.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/diabetic_retinopathy.zip), [healthy_manualsegm.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/healthy_manualsegm.zip), [glaucoma_manualsegm.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/glaucoma_manualsegm.zip) and [diabetic_retinopathy_manualsegm.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/diabetic_retinopathy_manualsegm.zip). + +To convert HRF dataset to MMSegmentation format, you should run the following command: + +```shell +python tools/convert_datasets/hrf.py /path/to/healthy.zip /path/to/healthy_manualsegm.zip /path/to/glaucoma.zip /path/to/glaucoma_manualsegm.zip /path/to/diabetic_retinopathy.zip /path/to/diabetic_retinopathy_manualsegm.zip +``` + +The script will make directory structure automatically. + +### STARE + +First, download [stare-images.tar](http://cecas.clemson.edu/~ahoover/stare/probing/stare-images.tar), [labels-ah.tar](http://cecas.clemson.edu/~ahoover/stare/probing/labels-ah.tar) and [labels-vk.tar](http://cecas.clemson.edu/~ahoover/stare/probing/labels-vk.tar). + +To convert STARE dataset to MMSegmentation format, you should run the following command: + +```shell +python tools/convert_datasets/stare.py /path/to/stare-images.tar /path/to/labels-ah.tar /path/to/labels-vk.tar +``` + +The script will make directory structure automatically. diff --git a/docs/install.md b/docs/get_started.md similarity index 62% rename from docs/install.md rename to docs/get_started.md index 09d1923178..3182c53451 100644 --- a/docs/install.md +++ b/docs/get_started.md @@ -1,9 +1,14 @@ -## Requirements +## Prerequisites -- Linux or Windows(Experimental) +- Linux or macOS (Windows is in experimental support) - Python 3.6+ -- PyTorch 1.3 or higher -- [mmcv](https://github.com/open-mmlab/mmcv) +- PyTorch 1.3+ +- CUDA 9.2+ (If you build PyTorch from source, CUDA 9.0 is also compatible) +- GCC 5+ +- [MMCV](https://mmcv.readthedocs.io/en/latest/#installation) + +Note: You need to run `pip uninstall mmcv` first if you have mmcv installed. +If mmcv and mmcv-full are both installed, there will be `ModuleNotFoundError`. ## Installation @@ -91,9 +96,9 @@ Note: 5. Some dependencies are optional. Simply running `pip install -e .` will only install the minimum runtime requirements. To use optional dependencies like `cityscapessripts` either install them manually with `pip install -r requirements/optional.txt` or specify desired extras when calling `pip` (e.g. `pip install -e .[optional]`). Valid keys for the extras field are: `all`, `tests`, `build`, and `optional`. -## A from-scratch setup script +### A from-scratch setup script -### Linux +#### Linux Here is a full script for setting up mmsegmentation with conda and link the dataset path (supposing that your dataset path is $DATA_ROOT). @@ -111,7 +116,7 @@ mkdir data ln -s $DATA_ROOT data ``` -### Windows(Experimental) +#### Windows(Experimental) Here is a full script for setting up mmsegmentation with conda and link the dataset path (supposing that your dataset path is %DATA_ROOT%. Notice: It must be an absolute path). @@ -130,3 +135,59 @@ pip install -e . # or "python setup.py develop" mklink /D data %DATA_ROOT% ``` + +#### Developing with multiple MMSegmentation versions + +The train and test scripts already modify the `PYTHONPATH` to ensure the script use the MMSegmentation in the current directory. + +To use the default MMSegmentation installed in the environment rather than that you are working with, you can remove the following line in those scripts + +```shell +PYTHONPATH="$(dirname $0)/..":$PYTHONPATH +``` + +## Verification + +To verify whether MMSegmentation and the required environment are installed correctly, we can run sample python codes to initialize a detector and inference a demo image: + +```python +from mmseg.apis import inference_segmentor, init_segmentor +import mmcv + +config_file = 'configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py' +checkpoint_file = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth' + +# build the model from a config file and a checkpoint file +model = init_segmentor(config_file, checkpoint_file, device='cuda:0') + +# test a single image and show the results +img = 'test.jpg' # or img = mmcv.imread(img), which will only load it once +result = inference_segmentor(model, img) +# visualize the results in a new window +model.show_result(img, result, show=True) +# or save the visualization results to image files +model.show_result(img, result, out_file='result.jpg') + +# test a video and show the results +video = mmcv.VideoReader('video.mp4') +for frame in video: + result = inference_segmentor(model, frame) + model.show_result(frame, result, wait_time=1) +``` + +The above code is supposed to run successfully upon you finish the installation. + +We also provide a demo script to test a single image. + +```shell +python demo/image_demo.py ${IMAGE_FILE} ${CONFIG_FILE} ${CHECKPOINT_FILE} [--device ${DEVICE_NAME}] [--palette-thr ${PALETTE}] +``` + +Examples: + +```shell +python demo/image_demo.py demo/demo.jpg configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \ + checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth --device cuda:0 --palette cityscapes +``` + +A notebook demo can be found in [demo/inference_demo.ipynb](../demo/inference_demo.ipynb). diff --git a/docs/getting_started.md b/docs/getting_started.md deleted file mode 100644 index e310edad10..0000000000 --- a/docs/getting_started.md +++ /dev/null @@ -1,449 +0,0 @@ -# Getting Started - -This page provides basic tutorials about the usage of MMSegmentation. -For installation instructions, please see [install.md](install.md). - -## Prepare datasets - -It is recommended to symlink the dataset root to `$MMSEGMENTATION/data`. -If your folder structure is different, you may need to change the corresponding paths in config files. - -```none -mmsegmentation -├── mmseg -├── tools -├── configs -├── data -│ ├── cityscapes -│ │ ├── leftImg8bit -│ │ │ ├── train -│ │ │ ├── val -│ │ ├── gtFine -│ │ │ ├── train -│ │ │ ├── val -│ ├── VOCdevkit -│ │ ├── VOC2012 -│ │ │ ├── JPEGImages -│ │ │ ├── SegmentationClass -│ │ │ ├── ImageSets -│ │ │ │ ├── Segmentation -│ │ ├── VOC2010 -│ │ │ ├── JPEGImages -│ │ │ ├── SegmentationClassContext -│ │ │ ├── ImageSets -│ │ │ │ ├── SegmentationContext -│ │ │ │ │ ├── train.txt -│ │ │ │ │ ├── val.txt -│ │ │ ├── trainval_merged.json -│ │ ├── VOCaug -│ │ │ ├── dataset -│ │ │ │ ├── cls -│ ├── ade -│ │ ├── ADEChallengeData2016 -│ │ │ ├── annotations -│ │ │ │ ├── training -│ │ │ │ ├── validation -│ │ │ ├── images -│ │ │ │ ├── training -│ │ │ │ ├── validation -│ ├── CHASE_DB1 -│ │ ├── images -│ │ │ ├── training -│ │ │ ├── validation -│ │ ├── annotations -│ │ │ ├── training -│ │ │ ├── validation -│ ├── DRIVE -│ │ ├── images -│ │ │ ├── training -│ │ │ ├── validation -│ │ ├── annotations -│ │ │ ├── training -│ │ │ ├── validation -│ ├── HRF -│ │ ├── images -│ │ │ ├── training -│ │ │ ├── validation -│ │ ├── annotations -│ │ │ ├── training -│ │ │ ├── validation -│ ├── STARE -│ │ ├── images -│ │ │ ├── training -│ │ │ ├── validation -│ │ ├── annotations -│ │ │ ├── training -│ │ │ ├── validation - -``` - -### Cityscapes - -The data could be found [here](https://www.cityscapes-dataset.com/downloads/) after registration. - -By convention, `**labelTrainIds.png` are used for cityscapes training. -We provided a [scripts](https://github.com/open-mmlab/mmsegmentation/blob/master/tools/convert_datasets/cityscapes.py) based on [cityscapesscripts](https://github.com/mcordts/cityscapesScripts) -to generate `**labelTrainIds.png`. - -```shell -# --nproc means 8 process for conversion, which could be omitted as well. -python tools/convert_datasets/cityscapes.py data/cityscapes --nproc 8 -``` - -### Pascal VOC - -Pascal VOC 2012 could be downloaded from [here](http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar). -Beside, most recent works on Pascal VOC dataset usually exploit extra augmentation data, which could be found [here](http://www.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/semantic_contours/benchmark.tgz). - -If you would like to use augmented VOC dataset, please run following command to convert augmentation annotations into proper format. - -```shell -# --nproc means 8 process for conversion, which could be omitted as well. -python tools/convert_datasets/voc_aug.py data/VOCdevkit data/VOCdevkit/VOCaug --nproc 8 -``` - -Please refer to [concat dataset](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/tutorials/new_dataset.md#concatenate-dataset) for details about how to concatenate them and train them together. - -### ADE20K - -The training and validation set of ADE20K could be download from this [link](http://data.csail.mit.edu/places/ADEchallenge/ADEChallengeData2016.zip). -We may also download test set from [here](http://data.csail.mit.edu/places/ADEchallenge/release_test.zip). - -### Pascal Context - -The training and validation set of Pascal Context could be download from [here](http://host.robots.ox.ac.uk/pascal/VOC/voc2010/VOCtrainval_03-May-2010.tar). You may also download test set from [here](http://host.robots.ox.ac.uk:8080/eval/downloads/VOC2010test.tar) after registration. - -To split the training and validation set from original dataset, you may download trainval_merged.json from [here](https://codalabuser.blob.core.windows.net/public/trainval_merged.json). - -If you would like to use Pascal Context dataset, please install [Detail](https://github.com/zhanghang1989/detail-api) and then run the following command to convert annotations into proper format. - -```shell -python tools/convert_datasets/pascal_context.py data/VOCdevkit data/VOCdevkit/VOC2010/trainval_merged.json -``` - -### CHASE DB1 - -The training and validation set of CHASE DB1 could be download from [here](https://staffnet.kingston.ac.uk/~ku15565/CHASE_DB1/assets/CHASEDB1.zip). - -To convert CHASE DB1 dataset to MMSegmentation format, you should run the following command: - -```shell -python tools/convert_datasets/chase_db1.py /path/to/CHASEDB1.zip -``` - -The script will make directory structure automatically. - -### DRIVE - -The training and validation set of DRIVE could be download from [here](https://drive.grand-challenge.org/). Before that, you should register an account. Currently '1st_manual' is not provided officially. - -To convert DRIVE dataset to MMSegmentation format, you should run the following command: - -```shell -python tools/convert_datasets/drive.py /path/to/training.zip /path/to/test.zip -``` - -The script will make directory structure automatically. - -### HRF - -First, download [healthy.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/healthy.zip), [glaucoma.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/glaucoma.zip), [diabetic_retinopathy.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/diabetic_retinopathy.zip), [healthy_manualsegm.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/healthy_manualsegm.zip), [glaucoma_manualsegm.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/glaucoma_manualsegm.zip) and [diabetic_retinopathy_manualsegm.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/diabetic_retinopathy_manualsegm.zip). - -To convert HRF dataset to MMSegmentation format, you should run the following command: - -```shell -python tools/convert_datasets/hrf.py /path/to/healthy.zip /path/to/healthy_manualsegm.zip /path/to/glaucoma.zip /path/to/glaucoma_manualsegm.zip /path/to/diabetic_retinopathy.zip /path/to/diabetic_retinopathy_manualsegm.zip -``` - -The script will make directory structure automatically. - -### STARE - -First, download [stare-images.tar](http://cecas.clemson.edu/~ahoover/stare/probing/stare-images.tar), [labels-ah.tar](http://cecas.clemson.edu/~ahoover/stare/probing/labels-ah.tar) and [labels-vk.tar](http://cecas.clemson.edu/~ahoover/stare/probing/labels-vk.tar). - -To convert STARE dataset to MMSegmentation format, you should run the following command: - -```shell -python tools/convert_datasets/stare.py /path/to/stare-images.tar /path/to/labels-ah.tar /path/to/labels-vk.tar -``` - -The script will make directory structure automatically. - -## Inference with pretrained models - -We provide testing scripts to evaluate a whole dataset (Cityscapes, PASCAL VOC, ADE20k, etc.), -and also some high-level apis for easier integration to other projects. - -### Test a dataset - -- single GPU -- single node multiple GPU -- multiple node - -You can use the following commands to test a dataset. - -```shell -# single-gpu testing -python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--out ${RESULT_FILE}] [--eval ${EVAL_METRICS}] [--show] - -# multi-gpu testing -./tools/dist_test.sh ${CONFIG_FILE} ${CHECKPOINT_FILE} ${GPU_NUM} [--out ${RESULT_FILE}] [--eval ${EVAL_METRICS}] -``` - -Optional arguments: - -- `RESULT_FILE`: Filename of the output results in pickle format. If not specified, the results will not be saved to a file. -- `EVAL_METRICS`: Items to be evaluated on the results. Allowed values depend on the dataset, e.g., `mIoU` is available for all dataset. Cityscapes could be evaluated by `cityscapes` as well as standard `mIoU` metrics. -- `--show`: If specified, segmentation results will be plotted on the images and shown in a new window. It is only applicable to single GPU testing and used for debugging and visualization. Please make sure that GUI is available in your environment, otherwise you may encounter the error like `cannot connect to X server`. -- `--show-dir`: If specified, segmentation results will be plotted on the images and saved to the specified directory. It is only applicable to single GPU testing and used for debugging and visualization. You do NOT need a GUI available in your environment for using this option. - -Examples: - -Assume that you have already downloaded the checkpoints to the directory `checkpoints/`. - -1. Test PSPNet and visualize the results. Press any key for the next image. - - ```shell - python tools/test.py configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \ - checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth \ - --show - ``` - -2. Test PSPNet and save the painted images for latter visualization. - - ```shell - python tools/test.py configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \ - checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth \ - --show-dir psp_r50_512x1024_40ki_cityscapes_results - ``` - -3. Test PSPNet on PASCAL VOC (without saving the test results) and evaluate the mIoU. - - ```shell - python tools/test.py configs/pspnet/pspnet_r50-d8_512x1024_20k_voc12aug.py \ - checkpoints/pspnet_r50-d8_512x1024_20k_voc12aug_20200605_003338-c57ef100.pth \ - --eval mAP - ``` - -4. Test PSPNet with 4 GPUs, and evaluate the standard mIoU and cityscapes metric. - - ```shell - ./tools/dist_test.sh configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \ - checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth \ - 4 --out results.pkl --eval mIoU cityscapes - ``` - - Note: There is some gap (~0.1%) between cityscapes mIoU and our mIoU. The reason is that cityscapes average each class with class size by default. - We use the simple version without average for all datasets. - -5. Test PSPNet on cityscapes test split with 4 GPUs, and generate the png files to be submit to the official evaluation server. - - First, add following to config file `configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py`, - - ```python - data = dict( - test=dict( - img_dir='leftImg8bit/test', - ann_dir='gtFine/test')) - ``` - - Then run test. - - ```shell - ./tools/dist_test.sh configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \ - checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth \ - 4 --format-only --eval-options "imgfile_prefix=./pspnet_test_results" - ``` - - You will get png files under `./pspnet_test_results` directory. - You may run `zip -r results.zip pspnet_test_results/` and submit the zip file to [evaluation server](https://www.cityscapes-dataset.com/submit/). - -### Image demo - -We provide a demo script to test a single image. - -```shell -python demo/image_demo.py ${IMAGE_FILE} ${CONFIG_FILE} ${CHECKPOINT_FILE} [--device ${DEVICE_NAME}] [--palette-thr ${PALETTE}] -``` - -Examples: - -```shell -python demo/image_demo.py demo/demo.jpg configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \ - checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth --device cuda:0 --palette cityscapes -``` - -### High-level APIs for testing images - -Here is an example of building the model and test given images. - -```python -from mmseg.apis import inference_segmentor, init_segmentor -import mmcv - -config_file = 'configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py' -checkpoint_file = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth' - -# build the model from a config file and a checkpoint file -model = init_segmentor(config_file, checkpoint_file, device='cuda:0') - -# test a single image and show the results -img = 'test.jpg' # or img = mmcv.imread(img), which will only load it once -result = inference_segmentor(model, img) -# visualize the results in a new window -model.show_result(img, result, show=True) -# or save the visualization results to image files -model.show_result(img, result, out_file='result.jpg') - -# test a video and show the results -video = mmcv.VideoReader('video.mp4') -for frame in video: - result = inference_segmentor(model, frame) - model.show_result(frame, result, wait_time=1) -``` - -A notebook demo can be found in [demo/inference_demo.ipynb](../demo/inference_demo.ipynb). - -## Train a model - -MMSegmentation implements distributed training and non-distributed training, -which uses `MMDistributedDataParallel` and `MMDataParallel` respectively. - -All outputs (log files and checkpoints) will be saved to the working directory, -which is specified by `work_dir` in the config file. - -By default we evaluate the model on the validation set after some iterations, you can change the evaluation interval by adding the interval argument in the training config. - -```python -evaluation = dict(interval=4000) # This evaluate the model per 4000 iterations. -``` - -**\*Important\***: The default learning rate in config files is for 4 GPUs and 2 img/gpu (batch size = 4x2 = 8). -Equivalently, you may also use 8 GPUs and 1 imgs/gpu since all models using cross-GPU SyncBN. - -To trade speed with GPU memory, you may pass in `--options model.backbone.with_cp=True` to enable checkpoint in backbone. - -### Train with a single GPU - -```shell -python tools/train.py ${CONFIG_FILE} [optional arguments] -``` - -If you want to specify the working directory in the command, you can add an argument `--work-dir ${YOUR_WORK_DIR}`. - -### Train with multiple GPUs - -```shell -./tools/dist_train.sh ${CONFIG_FILE} ${GPU_NUM} [optional arguments] -``` - -Optional arguments are: - -- `--no-validate` (**not suggested**): By default, the codebase will perform evaluation at every k iterations during the training. To disable this behavior, use `--no-validate`. -- `--work-dir ${WORK_DIR}`: Override the working directory specified in the config file. -- `--resume-from ${CHECKPOINT_FILE}`: Resume from a previous checkpoint file (to continue the training process). -- `--load-from ${CHECKPOINT_FILE}`: Load weights from a checkpoint file (to start finetuning for another task). - -Difference between `resume-from` and `load-from`: - -- `resume-from` loads both the model weights and optimizer state including the iteration number. -- `load-from` loads only the model weights, starts the training from iteration 0. - -### Train with multiple machines - -If you run MMSegmentation on a cluster managed with [slurm](https://slurm.schedmd.com/), you can use the script `slurm_train.sh`. (This script also supports single machine training.) - -```shell -[GPUS=${GPUS}] ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} ${CONFIG_FILE} --work-dir ${WORK_DIR} -``` - -Here is an example of using 16 GPUs to train PSPNet on the dev partition. - -```shell -GPUS=16 ./tools/slurm_train.sh dev pspr50 configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py /nfs/xxxx/psp_r50_512x1024_40ki_cityscapes -``` - -You can check [slurm_train.sh](../tools/slurm_train.sh) for full arguments and environment variables. - -If you have just multiple machines connected with ethernet, you can refer to -PyTorch [launch utility](https://pytorch.org/docs/stable/distributed_deprecated.html#launch-utility). -Usually it is slow if you do not have high speed networking like InfiniBand. - -### Launch multiple jobs on a single machine - -If you launch multiple jobs on a single machine, e.g., 2 jobs of 4-GPU training on a machine with 8 GPUs, -you need to specify different ports (29500 by default) for each job to avoid communication conflict. Otherwise, there will be error message saying `RuntimeError: Address already in use`. - -If you use `dist_train.sh` to launch training jobs, you can set the port in commands with environment variable `PORT`. - -```shell -CUDA_VISIBLE_DEVICES=0,1,2,3 PORT=29500 ./tools/dist_train.sh ${CONFIG_FILE} 4 -CUDA_VISIBLE_DEVICES=4,5,6,7 PORT=29501 ./tools/dist_train.sh ${CONFIG_FILE} 4 -``` - -If you use `slurm_train.sh` to launch training jobs, you can set the port in commands with environment variable `MASTER_PORT`. - -```shell -MASTER_PORT=29500 ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} ${CONFIG_FILE} -MASTER_PORT=29501 ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} ${CONFIG_FILE} -``` - -## Useful tools - -We provide lots of useful tools under `tools/` directory. - -### Get the FLOPs and params (experimental) - -We provide a script adapted from [flops-counter.pytorch](https://github.com/sovrasov/flops-counter.pytorch) to compute the FLOPs and params of a given model. - -```shell -python tools/get_flops.py ${CONFIG_FILE} [--shape ${INPUT_SHAPE}] -``` - -You will get the result like this. - -```none -============================== -Input shape: (3, 2048, 1024) -Flops: 1429.68 GMac -Params: 48.98 M -============================== -``` - -**Note**: This tool is still experimental and we do not guarantee that the number is correct. You may well use the result for simple comparisons, but double check it before you adopt it in technical reports or papers. - -(1) FLOPs are related to the input shape while parameters are not. The default input shape is (1, 3, 1280, 800). -(2) Some operators are not counted into FLOPs like GN and custom operators. - -### Publish a model - -Before you upload a model to AWS, you may want to -(1) convert model weights to CPU tensors, (2) delete the optimizer states and -(3) compute the hash of the checkpoint file and append the hash id to the filename. - -```shell -python tools/publish_model.py ${INPUT_FILENAME} ${OUTPUT_FILENAME} -``` - -E.g., - -```shell -python tools/publish_model.py work_dirs/pspnet/latest.pth psp_r50_hszhao_200ep.pth -``` - -The final output filename will be `psp_r50_512x1024_40ki_cityscapes-{hash id}.pth`. - -### Convert to ONNX (experimental) - -We provide a script to convert model to [ONNX](https://github.com/onnx/onnx) format. The converted model could be visualized by tools like [Netron](https://github.com/lutzroeder/netron). Besides, we also support comparing the output results between Pytorch and ONNX model. - -```shell -python tools/pytorch2onnx.py ${CONFIG_FILE} --checkpoint ${CHECKPOINT_FILE} --output-file ${ONNX_FILE} [--shape ${INPUT_SHAPE} --verify] -``` - -**Note**: This tool is still experimental. Some customized operators are not supported for now. - -## Tutorials - -Currently, we provide four tutorials for users to [add new dataset](tutorials/new_dataset.md), [design data pipeline](tutorials/data_pipeline.md) and [add new modules](tutorials/new_modules.md), [use training tricks](tutorials/training_tricks.md). -We also provide a full description about the [config system](config.md). diff --git a/docs/index.rst b/docs/index.rst index 43f960ea04..94db902657 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,14 +1,31 @@ Welcome to MMSegmenation's documentation! -========================================= +======================================= .. toctree:: :maxdepth: 2 + :caption: Get Started + + get_started.md + +.. toctree:: + :maxdepth: 1 + :caption: Dataset Preparation + + dataset_prepare.md + +.. toctree:: + :maxdepth: 1 + :caption: Model Zoo - install.md - getting_started.md - config.md - modelzoo_statistics.md model_zoo.md + modelzoo_statistics.md + +.. toctree:: + :maxdepth: 2 + :caption: Quick Run + + train.md + inference.md .. toctree:: :maxdepth: 2 @@ -16,12 +33,23 @@ Welcome to MMSegmenation's documentation! tutorials/index.rst +.. toctree:: + :maxdepth: 2 + :caption: Useful Tools and Scripts + + useful_tools.md + +.. toctree:: + :maxdepth: 2 + :caption: Notes + + changelog.md + .. toctree:: :caption: API Reference api.rst - Indices and tables ================== diff --git a/docs/inference.md b/docs/inference.md new file mode 100644 index 0000000000..a19c2258da --- /dev/null +++ b/docs/inference.md @@ -0,0 +1,88 @@ +## Inference with pretrained models + +We provide testing scripts to evaluate a whole dataset (Cityscapes, PASCAL VOC, ADE20k, etc.), +and also some high-level apis for easier integration to other projects. + +### Test a dataset + +- single GPU +- single node multiple GPU +- multiple node + +You can use the following commands to test a dataset. + +```shell +# single-gpu testing +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--out ${RESULT_FILE}] [--eval ${EVAL_METRICS}] [--show] + +# multi-gpu testing +./tools/dist_test.sh ${CONFIG_FILE} ${CHECKPOINT_FILE} ${GPU_NUM} [--out ${RESULT_FILE}] [--eval ${EVAL_METRICS}] +``` + +Optional arguments: + +- `RESULT_FILE`: Filename of the output results in pickle format. If not specified, the results will not be saved to a file. +- `EVAL_METRICS`: Items to be evaluated on the results. Allowed values depend on the dataset, e.g., `mIoU` is available for all dataset. Cityscapes could be evaluated by `cityscapes` as well as standard `mIoU` metrics. +- `--show`: If specified, segmentation results will be plotted on the images and shown in a new window. It is only applicable to single GPU testing and used for debugging and visualization. Please make sure that GUI is available in your environment, otherwise you may encounter the error like `cannot connect to X server`. +- `--show-dir`: If specified, segmentation results will be plotted on the images and saved to the specified directory. It is only applicable to single GPU testing and used for debugging and visualization. You do NOT need a GUI available in your environment for using this option. + +Examples: + +Assume that you have already downloaded the checkpoints to the directory `checkpoints/`. + +1. Test PSPNet and visualize the results. Press any key for the next image. + + ```shell + python tools/test.py configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \ + checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth \ + --show + ``` + +2. Test PSPNet and save the painted images for latter visualization. + + ```shell + python tools/test.py configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \ + checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth \ + --show-dir psp_r50_512x1024_40ki_cityscapes_results + ``` + +3. Test PSPNet on PASCAL VOC (without saving the test results) and evaluate the mIoU. + + ```shell + python tools/test.py configs/pspnet/pspnet_r50-d8_512x1024_20k_voc12aug.py \ + checkpoints/pspnet_r50-d8_512x1024_20k_voc12aug_20200605_003338-c57ef100.pth \ + --eval mAP + ``` + +4. Test PSPNet with 4 GPUs, and evaluate the standard mIoU and cityscapes metric. + + ```shell + ./tools/dist_test.sh configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \ + checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth \ + 4 --out results.pkl --eval mIoU cityscapes + ``` + + Note: There is some gap (~0.1%) between cityscapes mIoU and our mIoU. The reason is that cityscapes average each class with class size by default. + We use the simple version without average for all datasets. + +5. Test PSPNet on cityscapes test split with 4 GPUs, and generate the png files to be submit to the official evaluation server. + + First, add following to config file `configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py`, + + ```python + data = dict( + test=dict( + img_dir='leftImg8bit/test', + ann_dir='gtFine/test')) + ``` + + Then run test. + + ```shell + ./tools/dist_test.sh configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \ + checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth \ + 4 --format-only --eval-options "imgfile_prefix=./pspnet_test_results" + ``` + + You will get png files under `./pspnet_test_results` directory. + You may run `zip -r results.zip pspnet_test_results/` and submit the zip file to [evaluation server](https://www.cityscapes-dataset.com/submit/). diff --git a/docs/train.md b/docs/train.md new file mode 100644 index 0000000000..1deac95f7d --- /dev/null +++ b/docs/train.md @@ -0,0 +1,83 @@ +## Train a model + +MMSegmentation implements distributed training and non-distributed training, +which uses `MMDistributedDataParallel` and `MMDataParallel` respectively. + +All outputs (log files and checkpoints) will be saved to the working directory, +which is specified by `work_dir` in the config file. + +By default we evaluate the model on the validation set after some iterations, you can change the evaluation interval by adding the interval argument in the training config. + +```python +evaluation = dict(interval=4000) # This evaluate the model per 4000 iterations. +``` + +**\*Important\***: The default learning rate in config files is for 4 GPUs and 2 img/gpu (batch size = 4x2 = 8). +Equivalently, you may also use 8 GPUs and 1 imgs/gpu since all models using cross-GPU SyncBN. + +To trade speed with GPU memory, you may pass in `--options model.backbone.with_cp=True` to enable checkpoint in backbone. + +### Train with a single GPU + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +If you want to specify the working directory in the command, you can add an argument `--work-dir ${YOUR_WORK_DIR}`. + +### Train with multiple GPUs + +```shell +./tools/dist_train.sh ${CONFIG_FILE} ${GPU_NUM} [optional arguments] +``` + +Optional arguments are: + +- `--no-validate` (**not suggested**): By default, the codebase will perform evaluation at every k iterations during the training. To disable this behavior, use `--no-validate`. +- `--work-dir ${WORK_DIR}`: Override the working directory specified in the config file. +- `--resume-from ${CHECKPOINT_FILE}`: Resume from a previous checkpoint file (to continue the training process). +- `--load-from ${CHECKPOINT_FILE}`: Load weights from a checkpoint file (to start finetuning for another task). + +Difference between `resume-from` and `load-from`: + +- `resume-from` loads both the model weights and optimizer state including the iteration number. +- `load-from` loads only the model weights, starts the training from iteration 0. + +### Train with multiple machines + +If you run MMSegmentation on a cluster managed with [slurm](https://slurm.schedmd.com/), you can use the script `slurm_train.sh`. (This script also supports single machine training.) + +```shell +[GPUS=${GPUS}] ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} ${CONFIG_FILE} --work-dir ${WORK_DIR} +``` + +Here is an example of using 16 GPUs to train PSPNet on the dev partition. + +```shell +GPUS=16 ./tools/slurm_train.sh dev pspr50 configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py /nfs/xxxx/psp_r50_512x1024_40ki_cityscapes +``` + +You can check [slurm_train.sh](../tools/slurm_train.sh) for full arguments and environment variables. + +If you have just multiple machines connected with ethernet, you can refer to +PyTorch [launch utility](https://pytorch.org/docs/stable/distributed_deprecated.html#launch-utility). +Usually it is slow if you do not have high speed networking like InfiniBand. + +### Launch multiple jobs on a single machine + +If you launch multiple jobs on a single machine, e.g., 2 jobs of 4-GPU training on a machine with 8 GPUs, +you need to specify different ports (29500 by default) for each job to avoid communication conflict. Otherwise, there will be error message saying `RuntimeError: Address already in use`. + +If you use `dist_train.sh` to launch training jobs, you can set the port in commands with environment variable `PORT`. + +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 PORT=29500 ./tools/dist_train.sh ${CONFIG_FILE} 4 +CUDA_VISIBLE_DEVICES=4,5,6,7 PORT=29501 ./tools/dist_train.sh ${CONFIG_FILE} 4 +``` + +If you use `slurm_train.sh` to launch training jobs, you can set the port in commands with environment variable `MASTER_PORT`. + +```shell +MASTER_PORT=29500 ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} ${CONFIG_FILE} +MASTER_PORT=29501 ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} ${CONFIG_FILE} +``` diff --git a/docs/config.md b/docs/tutorials/config.md similarity index 99% rename from docs/config.md rename to docs/tutorials/config.md index d5c1cd9b6c..b243c06d5b 100644 --- a/docs/config.md +++ b/docs/tutorials/config.md @@ -1,4 +1,4 @@ -# Config System +# Tutorial 1: Learn about Configs We incorporate modular and inheritance design into our config system, which is convenient to conduct various experiments. If you wish to inspect the config file, you may run `python tools/print_config.py /PATH/TO/CONFIG` to see the complete config. diff --git a/docs/tutorials/new_dataset.md b/docs/tutorials/customize_datasets.md similarity index 99% rename from docs/tutorials/new_dataset.md rename to docs/tutorials/customize_datasets.md index 4e89022d0c..020d51316e 100644 --- a/docs/tutorials/new_dataset.md +++ b/docs/tutorials/customize_datasets.md @@ -1,4 +1,4 @@ -# 1. Adding New Dataset +# Tutorial 2: Customize Datasets ## Customize datasets by reorganizing data diff --git a/docs/tutorials/new_modules.md b/docs/tutorials/customize_models.md similarity index 99% rename from docs/tutorials/new_modules.md rename to docs/tutorials/customize_models.md index 9832a30f08..f637fd6f04 100644 --- a/docs/tutorials/new_modules.md +++ b/docs/tutorials/customize_models.md @@ -1,4 +1,4 @@ -# 3. Adding New Modules +# Tutorial 4: Customize Models ## Customize optimizer diff --git a/docs/tutorials/customize_runtime.md b/docs/tutorials/customize_runtime.md new file mode 100644 index 0000000000..dd67ef54f6 --- /dev/null +++ b/docs/tutorials/customize_runtime.md @@ -0,0 +1,243 @@ +# Tutorial 6: Customize Runtime Settings + +## Customize optimization settings + +### Customize optimizer supported by Pytorch + +We already support to use all the optimizers implemented by PyTorch, and the only modification is to change the `optimizer` field of config files. +For example, if you want to use `ADAM` (note that the performance could drop a lot), the modification could be as the following. + +```python +optimizer = dict(type='Adam', lr=0.0003, weight_decay=0.0001) +``` + +To modify the learning rate of the model, the users only need to modify the `lr` in the config of optimizer. The users can directly set arguments following the [API doc](https://pytorch.org/docs/stable/optim.html?highlight=optim#module-torch.optim) of PyTorch. + +### Customize self-implemented optimizer + +#### 1. Define a new optimizer + +A customized optimizer could be defined as following. + +Assume you want to add a optimizer named `MyOptimizer`, which has arguments `a`, `b`, and `c`. +You need to create a new directory named `mmseg/core/optimizer`. +And then implement the new optimizer in a file, e.g., in `mmseg/core/optimizer/my_optimizer.py`: + +```python +from .registry import OPTIMIZERS +from torch.optim import Optimizer + + +@OPTIMIZERS.register_module() +class MyOptimizer(Optimizer): + + def __init__(self, a, b, c) + +``` + +#### 2. Add the optimizer to registry + +To find the above module defined above, this module should be imported into the main namespace at first. There are two options to achieve it. + +- Modify `mmseg/core/optimizer/__init__.py` to import it. + + The newly defined module should be imported in `mmseg/core/optimizer/__init__.py` so that the registry will + find the new module and add it: + +```python +from .my_optimizer import MyOptimizer +``` + +- Use `custom_imports` in the config to manually import it + +```python +custom_imports = dict(imports=['mmseg.core.optimizer.my_optimizer'], allow_failed_imports=False) +``` + +The module `mmseg.core.optimizer.my_optimizer` will be imported at the beginning of the program and the class `MyOptimizer` is then automatically registered. +Note that only the package containing the class `MyOptimizer` should be imported. +`mmseg.core.optimizer.my_optimizer.MyOptimizer` **cannot** be imported directly. + +Actually users can use a totally different file directory structure using this importing method, as long as the module root can be located in `PYTHONPATH`. + +#### 3. Specify the optimizer in the config file + +Then you can use `MyOptimizer` in `optimizer` field of config files. +In the configs, the optimizers are defined by the field `optimizer` like the following: + +```python +optimizer = dict(type='SGD', lr=0.02, momentum=0.9, weight_decay=0.0001) +``` + +To use your own optimizer, the field can be changed to + +```python +optimizer = dict(type='MyOptimizer', a=a_value, b=b_value, c=c_value) +``` + +### Customize optimizer constructor + +Some models may have some parameter-specific settings for optimization, e.g. weight decay for BatchNorm layers. +The users can do those fine-grained parameter tuning through customizing optimizer constructor. + +```python +from mmcv.utils import build_from_cfg + +from mmcv.runner.optimizer import OPTIMIZER_BUILDERS, OPTIMIZERS +from mmseg.utils import get_root_logger +from .my_optimizer import MyOptimizer + + +@OPTIMIZER_BUILDERS.register_module() +class MyOptimizerConstructor(object): + + def __init__(self, optimizer_cfg, paramwise_cfg=None): + + def __call__(self, model): + + return my_optimizer + +``` + +The default optimizer constructor is implemented [here](https://github.com/open-mmlab/mmcv/blob/9ecd6b0d5ff9d2172c49a182eaa669e9f27bb8e7/mmcv/runner/optimizer/default_constructor.py#L11), which could also serve as a template for new optimizer constructor. + +### Additional settings + +Tricks not implemented by the optimizer should be implemented through optimizer constructor (e.g., set parameter-wise learning rates) or hooks. We list some common settings that could stabilize the training or accelerate the training. Feel free to create PR, issue for more settings. + +- __Use gradient clip to stabilize training__: + Some models need gradient clip to clip the gradients to stabilize the training process. An example is as below: + + ```python + optimizer_config = dict( + _delete_=True, grad_clip=dict(max_norm=35, norm_type=2)) + ``` + + If your config inherits the base config which already sets the `optimizer_config`, you might need `_delete_=True` to overide the unnecessary settings. See the [config documenetation](https://mmsegmentation.readthedocs.io/en/latest/config.html) for more details. + +- __Use momentum schedule to accelerate model convergence__: + We support momentum scheduler to modify model's momentum according to learning rate, which could make the model converge in a faster way. + Momentum scheduler is usually used with LR scheduler, for example, the following config is used in 3D detection to accelerate convergence. + For more details, please refer to the implementation of [CyclicLrUpdater](https://github.com/open-mmlab/mmcv/blob/f48241a65aebfe07db122e9db320c31b685dc674/mmcv/runner/hooks/lr_updater.py#L327) and [CyclicMomentumUpdater](https://github.com/open-mmlab/mmcv/blob/f48241a65aebfe07db122e9db320c31b685dc674/mmcv/runner/hooks/momentum_updater.py#L130). + + ```python + lr_config = dict( + policy='cyclic', + target_ratio=(10, 1e-4), + cyclic_times=1, + step_ratio_up=0.4, + ) + momentum_config = dict( + policy='cyclic', + target_ratio=(0.85 / 0.95, 1), + cyclic_times=1, + step_ratio_up=0.4, + ) + ``` + +## Customize training schedules + +By default we use step learning rate with 40k/80k schedule, this calls [`PolyLrUpdaterHook`](https://github.com/open-mmlab/mmcv/blob/826d3a7b68596c824fa1e2cb89b6ac274f52179c/mmcv/runner/hooks/lr_updater.py#L196) in MMCV. +We support many other learning rate schedule [here](https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/lr_updater.py), such as `CosineAnnealing` and `Poly` schedule. Here are some examples + +- Step schedule: + + ```python + lr_config = dict(policy='step', step=[9, 10]) + ``` + +- ConsineAnnealing schedule: + + ```python + lr_config = dict( + policy='CosineAnnealing', + warmup='linear', + warmup_iters=1000, + warmup_ratio=1.0 / 10, + min_lr_ratio=1e-5) + ``` + +## Customize workflow + +Workflow is a list of (phase, epochs) to specify the running order and epochs. +By default it is set to be + +```python +workflow = [('train', 1)] +``` + +which means running 1 epoch for training. +Sometimes user may want to check some metrics (e.g. loss, accuracy) about the model on the validate set. +In such case, we can set the workflow as + +```python +[('train', 1), ('val', 1)] +``` + +so that 1 epoch for training and 1 epoch for validation will be run iteratively. + +**Note**: + +1. The parameters of model will not be updated during val epoch. +2. Keyword `total_epochs` in the config only controls the number of training epochs and will not affect the validation workflow. +3. Workflows `[('train', 1), ('val', 1)]` and `[('train', 1)]` will not change the behavior of `EvalHook` because `EvalHook` is called by `after_train_epoch` and validation workflow only affect hooks that are called through `after_val_epoch`. Therefore, the only difference between `[('train', 1), ('val', 1)]` and `[('train', 1)]` is that the runner will calculate losses on validation set after each training epoch. + +## Customize hooks + +### Use hooks implemented in MMCV + +If the hook is already implemented in MMCV, you can directly modify the config to use the hook as below + +```python +custom_hooks = [ + dict(type='MyHook', a=a_value, b=b_value, priority='NORMAL') +] +``` + +### Modify default runtime hooks + +There are some common hooks that are not registerd through `custom_hooks`, they are + +- log_config +- checkpoint_config +- evaluation +- lr_config +- optimizer_config +- momentum_config + +In those hooks, only the logger hook has the `VERY_LOW` priority, others' priority are `NORMAL`. +The above-mentioned tutorials already covers how to modify `optimizer_config`, `momentum_config`, and `lr_config`. +Here we reveals how what we can do with `log_config`, `checkpoint_config`, and `evaluation`. + +#### Checkpoint config + +The MMCV runner will use `checkpoint_config` to initialize [`CheckpointHook`](https://github.com/open-mmlab/mmcv/blob/9ecd6b0d5ff9d2172c49a182eaa669e9f27bb8e7/mmcv/runner/hooks/checkpoint.py#L9). + +```python +checkpoint_config = dict(interval=1) +``` + +The users could set `max_keep_ckpts` to only save only small number of checkpoints or decide whether to store state dict of optimizer by `save_optimizer`. More details of the arguments are [here](https://mmcv.readthedocs.io/en/latest/api.html#mmcv.runner.CheckpointHook) + +#### Log config + +The `log_config` wraps multiple logger hooks and enables to set intervals. Now MMCV supports `WandbLoggerHook`, `MlflowLoggerHook`, and `TensorboardLoggerHook`. +The detail usages can be found in the [doc](https://mmcv.readthedocs.io/en/latest/api.html#mmcv.runner.LoggerHook). + +```python +log_config = dict( + interval=50, + hooks=[ + dict(type='TextLoggerHook'), + dict(type='TensorboardLoggerHook') + ]) +``` + +#### Evaluation config + +The config of `evaluation` will be used to initialize the [`EvalHook`](https://github.com/open-mmlab/mmsegmentation/blob/e3f6f655d69b777341aec2fe8829871cc0beadcb/mmseg/core/evaluation/eval_hooks.py#L7). +Except the key `interval`, other arguments such as `metric` will be passed to the `dataset.evaluate()` + +```python +evaluation = dict(interval=1, metric='mIoU') +``` diff --git a/docs/tutorials/data_pipeline.md b/docs/tutorials/data_pipeline.md index 6c91fbb1e9..1eecfe91d4 100644 --- a/docs/tutorials/data_pipeline.md +++ b/docs/tutorials/data_pipeline.md @@ -1,4 +1,4 @@ -# 2. Custom Data Pipelines +# Tutorial 3: Customize Data Pipelines ## Design of Data pipelines diff --git a/docs/tutorials/index.rst b/docs/tutorials/index.rst index 3e2f357d1a..e1a67a8b44 100644 --- a/docs/tutorials/index.rst +++ b/docs/tutorials/index.rst @@ -1,7 +1,9 @@ .. toctree:: :maxdepth: 2 - new_dataset.md + config.md + customize_datasets.md data_pipeline.md - new_modules.md + customize_models.md training_tricks.md + customize_runtime.md diff --git a/docs/tutorials/training_tricks.md b/docs/tutorials/training_tricks.md index fd11163d87..14ed8b3d12 100644 --- a/docs/tutorials/training_tricks.md +++ b/docs/tutorials/training_tricks.md @@ -1,4 +1,4 @@ -# 4. Training Tricks +# Tutorial 6: Training Tricks MMSegmentation support following training tricks out of box. diff --git a/docs/useful_tools.md b/docs/useful_tools.md new file mode 100644 index 0000000000..514b5680ee --- /dev/null +++ b/docs/useful_tools.md @@ -0,0 +1,64 @@ +Apart from training/testing scripts, We provide lots of useful tools under the + `tools/` directory. + +### Get the FLOPs and params (experimental) + +We provide a script adapted from [flops-counter.pytorch](https://github.com/sovrasov/flops-counter.pytorch) to compute the FLOPs and params of a given model. + +```shell +python tools/get_flops.py ${CONFIG_FILE} [--shape ${INPUT_SHAPE}] +``` + +You will get the result like this. + +```none +============================== +Input shape: (3, 2048, 1024) +Flops: 1429.68 GMac +Params: 48.98 M +============================== +``` + +**Note**: This tool is still experimental and we do not guarantee that the number is correct. You may well use the result for simple comparisons, but double check it before you adopt it in technical reports or papers. + +(1) FLOPs are related to the input shape while parameters are not. The default input shape is (1, 3, 1280, 800). +(2) Some operators are not counted into FLOPs like GN and custom operators. + +### Publish a model + +Before you upload a model to AWS, you may want to +(1) convert model weights to CPU tensors, (2) delete the optimizer states and +(3) compute the hash of the checkpoint file and append the hash id to the filename. + +```shell +python tools/publish_model.py ${INPUT_FILENAME} ${OUTPUT_FILENAME} +``` + +E.g., + +```shell +python tools/publish_model.py work_dirs/pspnet/latest.pth psp_r50_hszhao_200ep.pth +``` + +The final output filename will be `psp_r50_512x1024_40ki_cityscapes-{hash id}.pth`. + +### Convert to ONNX (experimental) + +We provide a script to convert model to [ONNX](https://github.com/onnx/onnx) format. The converted model could be visualized by tools like [Netron](https://github.com/lutzroeder/netron). Besides, we also support comparing the output results between Pytorch and ONNX model. + +```shell +python tools/pytorch2onnx.py ${CONFIG_FILE} --checkpoint ${CHECKPOINT_FILE} --output-file ${ONNX_FILE} [--shape ${INPUT_SHAPE} --verify] +``` + +**Note**: This tool is still experimental. Some customized operators are not supported for now. + +## Miscellaneous + +### Print the entire config + +`tools/print_config.py` prints the whole config verbatim, expanding all its + imports. + +```shell +python tools/print_config.py ${CONFIG} [-h] [--options ${OPTIONS [OPTIONS...]}] +``` diff --git a/tools/convert_datasets/pascal_context.py b/tools/convert_datasets/pascal_context.py index e0a97ce26b..dc49ab7ad8 100644 --- a/tools/convert_datasets/pascal_context.py +++ b/tools/convert_datasets/pascal_context.py @@ -36,7 +36,7 @@ def _class_to_index(mask, _mapping, _key): def parse_args(): parser = argparse.ArgumentParser( - description='Convert PASCAL VOC annotations to mmdetection format') + description='Convert PASCAL VOC annotations to mmsegmentation format') parser.add_argument('devkit_path', help='pascal voc devkit path') parser.add_argument('json_path', help='annoation json filepath') parser.add_argument('-o', '--out_dir', help='output path') From b9ba9f6ce79fee29b541ae0dcb322c5261d84343 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Thu, 24 Dec 2020 14:16:34 +0800 Subject: [PATCH 082/706] Support DMNet (#313) * Support DMNet * fix doc and delete norm_name --- README.md | 1 + configs/_base_/models/dmnet_r50-d8.py | 44 ++++++ configs/dmnet/README.md | 37 +++++ .../dmnet_r101-d8_512x1024_40k_cityscapes.py | 2 + .../dmnet_r101-d8_512x1024_80k_cityscapes.py | 2 + .../dmnet_r101-d8_512x512_160k_ade20k.py | 2 + .../dmnet/dmnet_r101-d8_512x512_80k_ade20k.py | 2 + .../dmnet_r101-d8_769x769_40k_cityscapes.py | 2 + .../dmnet_r101-d8_769x769_80k_cityscapes.py | 2 + .../dmnet_r50-d8_512x1024_40k_cityscapes.py | 4 + .../dmnet_r50-d8_512x1024_80k_cityscapes.py | 4 + .../dmnet/dmnet_r50-d8_512x512_160k_ade20k.py | 7 + .../dmnet/dmnet_r50-d8_512x512_80k_ade20k.py | 7 + .../dmnet_r50-d8_769x769_40k_cityscapes.py | 9 ++ .../dmnet_r50-d8_769x769_80k_cityscapes.py | 9 ++ docs/model_zoo.md | 4 + mmseg/models/decode_heads/__init__.py | 3 +- mmseg/models/decode_heads/dm_head.py | 140 ++++++++++++++++++ tests/test_models/test_heads.py | 61 +++++++- 19 files changed, 337 insertions(+), 5 deletions(-) create mode 100644 configs/_base_/models/dmnet_r50-d8.py create mode 100644 configs/dmnet/README.md create mode 100644 configs/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes.py create mode 100644 configs/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes.py create mode 100644 configs/dmnet/dmnet_r101-d8_512x512_160k_ade20k.py create mode 100644 configs/dmnet/dmnet_r101-d8_512x512_80k_ade20k.py create mode 100644 configs/dmnet/dmnet_r101-d8_769x769_40k_cityscapes.py create mode 100644 configs/dmnet/dmnet_r101-d8_769x769_80k_cityscapes.py create mode 100644 configs/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes.py create mode 100644 configs/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes.py create mode 100644 configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py create mode 100644 configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py create mode 100644 configs/dmnet/dmnet_r50-d8_769x769_40k_cityscapes.py create mode 100644 configs/dmnet/dmnet_r50-d8_769x769_80k_cityscapes.py create mode 100644 mmseg/models/decode_heads/dm_head.py diff --git a/README.md b/README.md index ba9184c90a..7b16a636b8 100644 --- a/README.md +++ b/README.md @@ -75,6 +75,7 @@ Supported methods: - [x] [DANet](configs/danet) - [x] [APCNet](configs/apcnet) - [x] [GCNet](configs/gcnet) +- [x] [DMNet](configs/dmnet) - [x] [ANN](configs/ann) - [x] [OCRNet](configs/ocrnet) - [x] [Fast-SCNN](configs/fastscnn) diff --git a/configs/_base_/models/dmnet_r50-d8.py b/configs/_base_/models/dmnet_r50-d8.py new file mode 100644 index 0000000000..329c4fe8c2 --- /dev/null +++ b/configs/_base_/models/dmnet_r50-d8.py @@ -0,0 +1,44 @@ +# model settings +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + type='EncoderDecoder', + pretrained='open-mmlab://resnet50_v1c', + backbone=dict( + type='ResNetV1c', + depth=50, + num_stages=4, + out_indices=(0, 1, 2, 3), + dilations=(1, 1, 2, 4), + strides=(1, 2, 1, 1), + norm_cfg=norm_cfg, + norm_eval=False, + style='pytorch', + contract_dilation=True), + decode_head=dict( + type='DMHead', + in_channels=2048, + in_index=3, + channels=512, + filter_sizes=(1, 3, 5, 7), + dropout_ratio=0.1, + num_classes=19, + norm_cfg=dict(type='SyncBN', requires_grad=True), + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + auxiliary_head=dict( + type='FCNHead', + in_channels=1024, + in_index=2, + channels=256, + num_convs=1, + concat_input=False, + dropout_ratio=0.1, + num_classes=19, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))) +# model training and testing settings +train_cfg = dict() +test_cfg = dict(mode='whole') diff --git a/configs/dmnet/README.md b/configs/dmnet/README.md new file mode 100644 index 0000000000..64c4e65722 --- /dev/null +++ b/configs/dmnet/README.md @@ -0,0 +1,37 @@ +# Dynamic Multi-scale Filters for Semantic Segmentation + +## Introduction + +```latex +@InProceedings{He_2019_ICCV, +author = {He, Junjun and Deng, Zhongying and Qiao, Yu}, +title = {Dynamic Multi-Scale Filters for Semantic Segmentation}, +booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)}, +month = {October}, +year = {2019} +} +``` + +## Results and models + +### Cityscapes + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | +|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| DMNet | R-50-D8 | 512x1024 | 40000 | 7.0 | 3.66 | 77.78 | 79.14 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes/dmnet_r50-d8_512x1024_40k_cityscapes_20201214_115717-5e88fa33.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes/dmnet_r50-d8_512x1024_40k_cityscapes-20201214_115717.log.json) | +| DMNet | R-101-D8 | 512x1024 | 40000 | 10.6 | 2.54 | 78.37 | 79.72 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes/dmnet_r101-d8_512x1024_40k_cityscapes_20201214_115716-abc9d111.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes/dmnet_r101-d8_512x1024_40k_cityscapes-20201214_115716.log.json) | +| DMNet | R-50-D8 | 769x769 | 40000 | 7.9 | 1.57 | 78.49 | 80.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_40k_cityscapes/dmnet_r50-d8_769x769_40k_cityscapes_20201214_115717-2a2628d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_40k_cityscapes/dmnet_r50-d8_769x769_40k_cityscapes-20201214_115717.log.json) | +| DMNet | R-101-D8 | 769x769 | 40000 | 12.0 | 1.01 | 77.62 | 78.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_40k_cityscapes/dmnet_r101-d8_769x769_40k_cityscapes_20201214_115718-b650de90.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_40k_cityscapes/dmnet_r101-d8_769x769_40k_cityscapes-20201214_115718.log.json) | +| DMNet | R-50-D8 | 512x1024 | 80000 | - | - | 79.07 | 80.22 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes/dmnet_r50-d8_512x1024_80k_cityscapes_20201214_115716-987f51e3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes/dmnet_r50-d8_512x1024_80k_cityscapes-20201214_115716.log.json) | +| DMNet | R-101-D8 | 512x1024 | 80000 | - | - | 79.64 | 80.67 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes/dmnet_r101-d8_512x1024_80k_cityscapes_20201214_115705-b1ff208a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes/dmnet_r101-d8_512x1024_80k_cityscapes-20201214_115705.log.json) | +| DMNet | R-50-D8 | 769x769 | 80000 | - | - | 79.22 | 80.55 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_80k_cityscapes/dmnet_r50-d8_769x769_80k_cityscapes_20201214_115718-7ea9fa12.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_80k_cityscapes/dmnet_r50-d8_769x769_80k_cityscapes-20201214_115718.log.json) | +| DMNet | R-101-D8 | 769x769 | 80000 | - | - | 79.19 | 80.65 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_80k_cityscapes/dmnet_r101-d8_769x769_80k_cityscapes_20201214_115716-a7fbc2ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_80k_cityscapes/dmnet_r101-d8_769x769_80k_cityscapes-20201214_115716.log.json) | + +### ADE20K + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | +|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| DMNet | R-50-D8 | 512x512 | 80000 | 9.4 | 20.95 | 42.37 | 43.62 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_80k_ade20k/dmnet_r50-d8_512x512_80k_ade20k_20201214_115705-a8626293.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_80k_ade20k/dmnet_r50-d8_512x512_80k_ade20k-20201214_115705.log.json) | +| DMNet | R-101-D8 | 512x512 | 80000 | 13.0 | 13.88 | 45.34 | 46.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_80k_ade20k/dmnet_r101-d8_512x512_80k_ade20k_20201214_115704-c656c3fb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_80k_ade20k/dmnet_r101-d8_512x512_80k_ade20k-20201214_115704.log.json) | +| DMNet | R-50-D8 | 512x512 | 160000 | - | - | 43.15 | 44.17 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_160k_ade20k/dmnet_r50-d8_512x512_160k_ade20k_20201214_115706-25fb92c2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_160k_ade20k/dmnet_r50-d8_512x512_160k_ade20k-20201214_115706.log.json) | +| DMNet | R-101-D8 | 512x512 | 160000 | - | - | 45.42 | 46.76 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_160k_ade20k/dmnet_r101-d8_512x512_160k_ade20k_20201214_115705-73f9a8d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_160k_ade20k/dmnet_r101-d8_512x512_160k_ade20k-20201214_115705.log.json) | diff --git a/configs/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes.py b/configs/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes.py new file mode 100644 index 0000000000..fd6897691d --- /dev/null +++ b/configs/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './dmnet_r50-d8_512x1024_40k_cityscapes.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes.py b/configs/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..116cbdcede --- /dev/null +++ b/configs/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './dmnet_r50-d8_512x1024_80k_cityscapes.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/dmnet/dmnet_r101-d8_512x512_160k_ade20k.py b/configs/dmnet/dmnet_r101-d8_512x512_160k_ade20k.py new file mode 100644 index 0000000000..d78d46c040 --- /dev/null +++ b/configs/dmnet/dmnet_r101-d8_512x512_160k_ade20k.py @@ -0,0 +1,2 @@ +_base_ = './dmnet_r50-d8_512x512_160k_ade20k.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/dmnet/dmnet_r101-d8_512x512_80k_ade20k.py b/configs/dmnet/dmnet_r101-d8_512x512_80k_ade20k.py new file mode 100644 index 0000000000..9713b731a4 --- /dev/null +++ b/configs/dmnet/dmnet_r101-d8_512x512_80k_ade20k.py @@ -0,0 +1,2 @@ +_base_ = './dmnet_r50-d8_512x512_80k_ade20k.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/dmnet/dmnet_r101-d8_769x769_40k_cityscapes.py b/configs/dmnet/dmnet_r101-d8_769x769_40k_cityscapes.py new file mode 100644 index 0000000000..6b222e7300 --- /dev/null +++ b/configs/dmnet/dmnet_r101-d8_769x769_40k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './dmnet_r50-d8_769x769_40k_cityscapes.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/dmnet/dmnet_r101-d8_769x769_80k_cityscapes.py b/configs/dmnet/dmnet_r101-d8_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..f36d490e9c --- /dev/null +++ b/configs/dmnet/dmnet_r101-d8_769x769_80k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './dmnet_r50-d8_769x769_80k_cityscapes.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes.py b/configs/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes.py new file mode 100644 index 0000000000..1f9a917fa4 --- /dev/null +++ b/configs/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes.py @@ -0,0 +1,4 @@ +_base_ = [ + '../_base_/models/dmnet_r50-d8.py', '../_base_/datasets/cityscapes.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' +] diff --git a/configs/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes.py b/configs/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..1b38f90dc4 --- /dev/null +++ b/configs/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,4 @@ +_base_ = [ + '../_base_/models/dmnet_r50-d8.py', '../_base_/datasets/cityscapes.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' +] diff --git a/configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py b/configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py new file mode 100644 index 0000000000..69f4165c7c --- /dev/null +++ b/configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py @@ -0,0 +1,7 @@ +_base_ = [ + '../_base_/models/dmnet_r50-d8.py', '../_base_/datasets/ade20k.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' +] +model = dict( + decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) +test_cfg = dict(mode='whole') diff --git a/configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py b/configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py new file mode 100644 index 0000000000..513f58cbe4 --- /dev/null +++ b/configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py @@ -0,0 +1,7 @@ +_base_ = [ + '../_base_/models/dmnet_r50-d8.py', '../_base_/datasets/ade20k.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' +] +model = dict( + decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) +test_cfg = dict(mode='whole') diff --git a/configs/dmnet/dmnet_r50-d8_769x769_40k_cityscapes.py b/configs/dmnet/dmnet_r50-d8_769x769_40k_cityscapes.py new file mode 100644 index 0000000000..49db4da110 --- /dev/null +++ b/configs/dmnet/dmnet_r50-d8_769x769_40k_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = [ + '../_base_/models/dmnet_r50-d8.py', + '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_40k.py' +] +model = dict( + decode_head=dict(align_corners=True), + auxiliary_head=dict(align_corners=True)) +test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) diff --git a/configs/dmnet/dmnet_r50-d8_769x769_80k_cityscapes.py b/configs/dmnet/dmnet_r50-d8_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..1cf136e110 --- /dev/null +++ b/configs/dmnet/dmnet_r50-d8_769x769_80k_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = [ + '../_base_/models/dmnet_r50-d8.py', + '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_80k.py' +] +model = dict( + decode_head=dict(align_corners=True), + auxiliary_head=dict(align_corners=True)) +test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) diff --git a/docs/model_zoo.md b/docs/model_zoo.md index c130baf6a1..fe132f39b2 100644 --- a/docs/model_zoo.md +++ b/docs/model_zoo.md @@ -79,6 +79,10 @@ Please refer to [HRNet](https://github.com/open-mmlab/mmsegmentation/blob/master Please refer to [GCNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/gcnet) for details. +### DMNet + +Please refer to [DMNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet) for details. + ### ANN Please refer to [ANN](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ann) for details. diff --git a/mmseg/models/decode_heads/__init__.py b/mmseg/models/decode_heads/__init__.py index 1ac8c1ae31..44ff80feab 100644 --- a/mmseg/models/decode_heads/__init__.py +++ b/mmseg/models/decode_heads/__init__.py @@ -3,6 +3,7 @@ from .aspp_head import ASPPHead from .cc_head import CCHead from .da_head import DAHead +from .dm_head import DMHead from .dnl_head import DNLHead from .ema_head import EMAHead from .enc_head import EncHead @@ -22,5 +23,5 @@ 'FCNHead', 'PSPHead', 'ASPPHead', 'PSAHead', 'NLHead', 'GCHead', 'CCHead', 'UPerHead', 'DepthwiseSeparableASPPHead', 'ANNHead', 'DAHead', 'OCRHead', 'EncHead', 'DepthwiseSeparableFCNHead', 'FPNHead', 'EMAHead', 'DNLHead', - 'PointHead', 'APCHead' + 'PointHead', 'APCHead', 'DMHead' ] diff --git a/mmseg/models/decode_heads/dm_head.py b/mmseg/models/decode_heads/dm_head.py new file mode 100644 index 0000000000..1c918fc35d --- /dev/null +++ b/mmseg/models/decode_heads/dm_head.py @@ -0,0 +1,140 @@ +import torch +import torch.nn as nn +import torch.nn.functional as F +from mmcv.cnn import ConvModule, build_activation_layer, build_norm_layer + +from ..builder import HEADS +from .decode_head import BaseDecodeHead + + +class DCM(nn.Module): + """Dynamic Convolutional Module used in DMNet. + + Args: + filter_size (int): The filter size of generated convolution kernel + used in Dynamic Convolutional Module. + fusion (bool): Add one conv to fuse DCM output feature. + in_channels (int): Input channels. + channels (int): Channels after modules, before conv_seg. + conv_cfg (dict | None): Config of conv layers. + norm_cfg (dict | None): Config of norm layers. + act_cfg (dict): Config of activation layers. + """ + + def __init__(self, filter_size, fusion, in_channels, channels, conv_cfg, + norm_cfg, act_cfg): + super(DCM, self).__init__() + self.filter_size = filter_size + self.fusion = fusion + self.in_channels = in_channels + self.channels = channels + self.conv_cfg = conv_cfg + self.norm_cfg = norm_cfg + self.act_cfg = act_cfg + self.filter_gen_conv = nn.Conv2d(self.in_channels, self.channels, 1, 1, + 0) + + self.input_redu_conv = ConvModule( + self.in_channels, + self.channels, + 1, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + + if self.norm_cfg is not None: + self.norm = build_norm_layer(self.norm_cfg, self.channels)[1] + else: + self.norm = None + self.activate = build_activation_layer(self.act_cfg) + + if self.fusion: + self.fusion_conv = ConvModule( + self.channels, + self.channels, + 1, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + + def forward(self, x): + """Forward function.""" + generted_filter = self.filter_gen_conv( + F.adaptive_avg_pool2d(x, self.filter_size)) + x = self.input_redu_conv(x) + b, c, h, w = x.shape + # [1, b * c, h, w], c = self.channels + x = x.view(1, b * c, h, w) + # [b * c, 1, filter_size, filter_size] + generted_filter = generted_filter.view(b * c, 1, self.filter_size, + self.filter_size) + pad = (self.filter_size - 1) // 2 + if (self.filter_size - 1) % 2 == 0: + p2d = (pad, pad, pad, pad) + else: + p2d = (pad + 1, pad, pad + 1, pad) + x = F.pad(input=x, pad=p2d, mode='constant', value=0) + # [1, b * c, h, w] + output = F.conv2d(input=x, weight=generted_filter, groups=b * c) + # [b, c, h, w] + output = output.view(b, c, h, w) + if self.norm is not None: + output = self.norm(output) + output = self.activate(output) + + if self.fusion: + output = self.fusion_conv(output) + + return output + + +@HEADS.register_module() +class DMHead(BaseDecodeHead): + """Dynamic Multi-scale Filters for Semantic Segmentation. + + This head is the implementation of + `DMNet `_. + + Args: + filter_sizes (tuple[int]): The size of generated convolutional filters + used in Dynamic Convolutional Module. Default: (1, 3, 5, 7). + fusion (bool): Add one conv to fuse DCM output feature. + """ + + def __init__(self, filter_sizes=(1, 3, 5, 7), fusion=False, **kwargs): + super(DMHead, self).__init__(**kwargs) + assert isinstance(filter_sizes, (list, tuple)) + self.filter_sizes = filter_sizes + self.fusion = fusion + dcm_modules = [] + for filter_size in self.filter_sizes: + dcm_modules.append( + DCM(filter_size, + self.fusion, + self.in_channels, + self.channels, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg)) + self.dcm_modules = nn.ModuleList(dcm_modules) + self.bottleneck = ConvModule( + self.in_channels + len(filter_sizes) * self.channels, + self.channels, + 3, + padding=1, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + + def forward(self, inputs): + """Forward function.""" + x = self._transform_inputs(inputs) + dcm_outs = [x] + for dcm_module in self.dcm_modules: + dcm_outs.append(dcm_module(x)) + dcm_outs = torch.cat(dcm_outs, dim=1) + output = self.bottleneck(dcm_outs) + output = self.cls_seg(output) + return output diff --git a/tests/test_models/test_heads.py b/tests/test_models/test_heads.py index 5a8ab74637..612da300f7 100644 --- a/tests/test_models/test_heads.py +++ b/tests/test_models/test_heads.py @@ -8,10 +8,10 @@ from mmseg.models.decode_heads import (ANNHead, APCHead, ASPPHead, CCHead, DAHead, DepthwiseSeparableASPPHead, - DepthwiseSeparableFCNHead, DNLHead, - EMAHead, EncHead, FCNHead, GCHead, - NLHead, OCRHead, PointHead, PSAHead, - PSPHead, UPerHead) + DepthwiseSeparableFCNHead, DMHead, + DNLHead, EMAHead, EncHead, FCNHead, + GCHead, NLHead, OCRHead, PointHead, + PSAHead, PSPHead, UPerHead) from mmseg.models.decode_heads.decode_head import BaseDecodeHead @@ -276,6 +276,59 @@ def test_apc_head(): assert outputs.shape == (1, head.num_classes, 45, 45) +def test_dm_head(): + + with pytest.raises(AssertionError): + # filter_sizes must be list|tuple + DMHead(in_channels=32, channels=16, num_classes=19, filter_sizes=1) + + # test no norm_cfg + head = DMHead(in_channels=32, channels=16, num_classes=19) + assert not _conv_has_norm(head, sync_bn=False) + + # test with norm_cfg + head = DMHead( + in_channels=32, + channels=16, + num_classes=19, + norm_cfg=dict(type='SyncBN')) + assert _conv_has_norm(head, sync_bn=True) + + # fusion=True + inputs = [torch.randn(1, 32, 45, 45)] + head = DMHead( + in_channels=32, + channels=16, + num_classes=19, + filter_sizes=(1, 3, 5), + fusion=True) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + assert head.fusion is True + assert head.dcm_modules[0].filter_size == 1 + assert head.dcm_modules[1].filter_size == 3 + assert head.dcm_modules[2].filter_size == 5 + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) + + # fusion=False + inputs = [torch.randn(1, 32, 45, 45)] + head = DMHead( + in_channels=32, + channels=16, + num_classes=19, + filter_sizes=(1, 3, 5), + fusion=False) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + assert head.fusion is False + assert head.dcm_modules[0].filter_size == 1 + assert head.dcm_modules[1].filter_size == 3 + assert head.dcm_modules[2].filter_size == 5 + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) + + def test_aspp_head(): with pytest.raises(AssertionError): From 2e479d346b64698debf6e4bb44d12074363c1ec9 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Thu, 24 Dec 2020 15:58:09 +0800 Subject: [PATCH 083/706] Add 4 retinal vessel segmentation benchmark (#315) * add 4 retinal vessel segmentation configs of UNet * fix flip augmentation * add unet benchmark on 4 medical datasets * fix hrf bug --- configs/_base_/datasets/chase_db1.py | 59 +++++++++++++++++++ configs/_base_/datasets/drive.py | 59 +++++++++++++++++++ configs/_base_/datasets/hrf.py | 59 +++++++++++++++++++ configs/_base_/datasets/stare.py | 59 +++++++++++++++++++ configs/_base_/models/unet_s5-d16.py | 51 ++++++++++++++++ configs/unet/README.md | 23 ++++++++ .../unet/unet_s5-d16_128x128_40k_chase_db1.py | 6 ++ configs/unet/unet_s5-d16_128x128_40k_stare.py | 6 ++ configs/unet/unet_s5-d16_256x256_40k_hrf.py | 6 ++ configs/unet/unet_s5-d16_64x64_40k_drive.py | 6 ++ 10 files changed, 334 insertions(+) create mode 100644 configs/_base_/datasets/chase_db1.py create mode 100644 configs/_base_/datasets/drive.py create mode 100644 configs/_base_/datasets/hrf.py create mode 100644 configs/_base_/datasets/stare.py create mode 100644 configs/_base_/models/unet_s5-d16.py create mode 100644 configs/unet/README.md create mode 100644 configs/unet/unet_s5-d16_128x128_40k_chase_db1.py create mode 100644 configs/unet/unet_s5-d16_128x128_40k_stare.py create mode 100644 configs/unet/unet_s5-d16_256x256_40k_hrf.py create mode 100644 configs/unet/unet_s5-d16_64x64_40k_drive.py diff --git a/configs/_base_/datasets/chase_db1.py b/configs/_base_/datasets/chase_db1.py new file mode 100644 index 0000000000..298594ea92 --- /dev/null +++ b/configs/_base_/datasets/chase_db1.py @@ -0,0 +1,59 @@ +# dataset settings +dataset_type = 'ChaseDB1Dataset' +data_root = 'data/CHASE_DB1' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) +img_scale = (960, 999) +crop_size = (128, 128) +train_pipeline = [ + dict(type='LoadImageFromFile'), + dict(type='LoadAnnotations'), + dict(type='Resize', img_scale=img_scale, ratio_range=(0.5, 2.0)), + dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='RandomFlip', prob=0.5), + dict(type='PhotoMetricDistortion'), + dict(type='Normalize', **img_norm_cfg), + dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255), + dict(type='DefaultFormatBundle'), + dict(type='Collect', keys=['img', 'gt_semantic_seg']) +] +test_pipeline = [ + dict(type='LoadImageFromFile'), + dict( + type='MultiScaleFlipAug', + img_scale=img_scale, + # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0], + flip=False, + transforms=[ + dict(type='Resize', keep_ratio=True), + dict(type='RandomFlip'), + dict(type='Normalize', **img_norm_cfg), + dict(type='ImageToTensor', keys=['img']), + dict(type='Collect', keys=['img']) + ]) +] + +data = dict( + samples_per_gpu=4, + workers_per_gpu=4, + train=dict( + type='RepeatDataset', + times=40000, + dataset=dict( + type=dataset_type, + data_root=data_root, + img_dir='images/training', + ann_dir='annotations/training', + pipeline=train_pipeline)), + val=dict( + type=dataset_type, + data_root=data_root, + img_dir='images/validation', + ann_dir='annotations/validation', + pipeline=test_pipeline), + test=dict( + type=dataset_type, + data_root=data_root, + img_dir='images/validation', + ann_dir='annotations/validation', + pipeline=test_pipeline)) diff --git a/configs/_base_/datasets/drive.py b/configs/_base_/datasets/drive.py new file mode 100644 index 0000000000..06e8ff606e --- /dev/null +++ b/configs/_base_/datasets/drive.py @@ -0,0 +1,59 @@ +# dataset settings +dataset_type = 'DRIVEDataset' +data_root = 'data/DRIVE' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) +img_scale = (584, 565) +crop_size = (64, 64) +train_pipeline = [ + dict(type='LoadImageFromFile'), + dict(type='LoadAnnotations'), + dict(type='Resize', img_scale=img_scale, ratio_range=(0.5, 2.0)), + dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='RandomFlip', prob=0.5), + dict(type='PhotoMetricDistortion'), + dict(type='Normalize', **img_norm_cfg), + dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255), + dict(type='DefaultFormatBundle'), + dict(type='Collect', keys=['img', 'gt_semantic_seg']) +] +test_pipeline = [ + dict(type='LoadImageFromFile'), + dict( + type='MultiScaleFlipAug', + img_scale=img_scale, + # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0], + flip=False, + transforms=[ + dict(type='Resize', keep_ratio=True), + dict(type='RandomFlip'), + dict(type='Normalize', **img_norm_cfg), + dict(type='ImageToTensor', keys=['img']), + dict(type='Collect', keys=['img']) + ]) +] + +data = dict( + samples_per_gpu=4, + workers_per_gpu=4, + train=dict( + type='RepeatDataset', + times=40000, + dataset=dict( + type=dataset_type, + data_root=data_root, + img_dir='images/training', + ann_dir='annotations/training', + pipeline=train_pipeline)), + val=dict( + type=dataset_type, + data_root=data_root, + img_dir='images/validation', + ann_dir='annotations/validation', + pipeline=test_pipeline), + test=dict( + type=dataset_type, + data_root=data_root, + img_dir='images/validation', + ann_dir='annotations/validation', + pipeline=test_pipeline)) diff --git a/configs/_base_/datasets/hrf.py b/configs/_base_/datasets/hrf.py new file mode 100644 index 0000000000..242d790eb1 --- /dev/null +++ b/configs/_base_/datasets/hrf.py @@ -0,0 +1,59 @@ +# dataset settings +dataset_type = 'HRFDataset' +data_root = 'data/HRF' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) +img_scale = (2336, 3504) +crop_size = (256, 256) +train_pipeline = [ + dict(type='LoadImageFromFile'), + dict(type='LoadAnnotations'), + dict(type='Resize', img_scale=img_scale, ratio_range=(0.5, 2.0)), + dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='RandomFlip', prob=0.5), + dict(type='PhotoMetricDistortion'), + dict(type='Normalize', **img_norm_cfg), + dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255), + dict(type='DefaultFormatBundle'), + dict(type='Collect', keys=['img', 'gt_semantic_seg']) +] +test_pipeline = [ + dict(type='LoadImageFromFile'), + dict( + type='MultiScaleFlipAug', + img_scale=img_scale, + # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0], + flip=False, + transforms=[ + dict(type='Resize', keep_ratio=True), + dict(type='RandomFlip'), + dict(type='Normalize', **img_norm_cfg), + dict(type='ImageToTensor', keys=['img']), + dict(type='Collect', keys=['img']) + ]) +] + +data = dict( + samples_per_gpu=4, + workers_per_gpu=4, + train=dict( + type='RepeatDataset', + times=40000, + dataset=dict( + type=dataset_type, + data_root=data_root, + img_dir='images/training', + ann_dir='annotations/training', + pipeline=train_pipeline)), + val=dict( + type=dataset_type, + data_root=data_root, + img_dir='images/validation', + ann_dir='annotations/validation', + pipeline=test_pipeline), + test=dict( + type=dataset_type, + data_root=data_root, + img_dir='images/validation', + ann_dir='annotations/validation', + pipeline=test_pipeline)) diff --git a/configs/_base_/datasets/stare.py b/configs/_base_/datasets/stare.py new file mode 100644 index 0000000000..3f71b25488 --- /dev/null +++ b/configs/_base_/datasets/stare.py @@ -0,0 +1,59 @@ +# dataset settings +dataset_type = 'STAREDataset' +data_root = 'data/STARE' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) +img_scale = (605, 700) +crop_size = (128, 128) +train_pipeline = [ + dict(type='LoadImageFromFile'), + dict(type='LoadAnnotations'), + dict(type='Resize', img_scale=img_scale, ratio_range=(0.5, 2.0)), + dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='RandomFlip', prob=0.5), + dict(type='PhotoMetricDistortion'), + dict(type='Normalize', **img_norm_cfg), + dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255), + dict(type='DefaultFormatBundle'), + dict(type='Collect', keys=['img', 'gt_semantic_seg']) +] +test_pipeline = [ + dict(type='LoadImageFromFile'), + dict( + type='MultiScaleFlipAug', + img_scale=img_scale, + # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0], + flip=False, + transforms=[ + dict(type='Resize', keep_ratio=True), + dict(type='RandomFlip'), + dict(type='Normalize', **img_norm_cfg), + dict(type='ImageToTensor', keys=['img']), + dict(type='Collect', keys=['img']) + ]) +] + +data = dict( + samples_per_gpu=4, + workers_per_gpu=4, + train=dict( + type='RepeatDataset', + times=40000, + dataset=dict( + type=dataset_type, + data_root=data_root, + img_dir='images/training', + ann_dir='annotations/training', + pipeline=train_pipeline)), + val=dict( + type=dataset_type, + data_root=data_root, + img_dir='images/validation', + ann_dir='annotations/validation', + pipeline=test_pipeline), + test=dict( + type=dataset_type, + data_root=data_root, + img_dir='images/validation', + ann_dir='annotations/validation', + pipeline=test_pipeline)) diff --git a/configs/_base_/models/unet_s5-d16.py b/configs/_base_/models/unet_s5-d16.py new file mode 100644 index 0000000000..27b5b60834 --- /dev/null +++ b/configs/_base_/models/unet_s5-d16.py @@ -0,0 +1,51 @@ +# model settings +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + type='EncoderDecoder', + pretrained=None, + backbone=dict( + type='UNet', + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 1, 1, 1, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(True, True, True, True), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1), + with_cp=False, + conv_cfg=None, + norm_cfg=norm_cfg, + act_cfg=dict(type='ReLU'), + upsample_cfg=dict(type='InterpConv'), + norm_eval=False), + decode_head=dict( + type='FCNHead', + in_channels=64, + in_index=4, + channels=64, + num_convs=1, + concat_input=False, + dropout_ratio=0.1, + num_classes=2, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + auxiliary_head=dict( + type='FCNHead', + in_channels=128, + in_index=3, + channels=64, + num_convs=1, + concat_input=False, + dropout_ratio=0.1, + num_classes=2, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))) +# model training and testing settings +train_cfg = dict() +test_cfg = dict(mode='slide', crop_size=256, stride=170) diff --git a/configs/unet/README.md b/configs/unet/README.md new file mode 100644 index 0000000000..2b185dd4ed --- /dev/null +++ b/configs/unet/README.md @@ -0,0 +1,23 @@ +# U-Net: Convolutional Networks for Biomedical Image Segmentation + +## Introduction + +```latex +@inproceedings{ronneberger2015u, + title={U-net: Convolutional networks for biomedical image segmentation}, + author={Ronneberger, Olaf and Fischer, Philipp and Brox, Thomas}, + booktitle={International Conference on Medical image computing and computer-assisted intervention}, + pages={234--241}, + year={2015}, + organization={Springer} +} +``` + +## Results and models + +| Backbone | Head | Dataset | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | download | +|--------|----------|----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| UNet-S5-D16 | FCN | DRIVE | 584x565 | 64x64 | 42x42 | 40000 | 0.680 | - | 78.67 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_64x64_40k_drive/unet_s5-d16_64x64_40k_drive_20201223_191051-9cd163b8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_64x64_40k_drive/unet_s5-d16_64x64_40k_drive-20201223_191051.log.json) | +| UNet-S5-D16 | FCN | STARE | 605x700 | 128x128 | 85x85 | 40000 | 0.968 | - | 81.02 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_stare/unet_s5-d16_128x128_40k_stare_20201223_191051-e5439846.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_stare/unet_s5-d16_128x128_40k_stare-20201223_191051.log.json) | +| UNet-S5-D16 | FCN | CHASE_DB1 | 960x999 | 128x128 | 85x85 | 40000 | 0.968 | - | 80.24 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_chase_db1/unet_s5-d16_128x128_40k_chase_db1_20201223_191051-8b16ca0b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_chase_db1/unet_s5-d16_128x128_40k_chase_db1-20201223_191051.log.json) | +| UNet-S5-D16 | FCN | HRF | 2336x3504 | 256x256 | 170x170 | 40000 | 2.525 | - | 79.45 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_256x256_40k_hrf/unet_s5-d16_256x256_40k_hrf_20201223_173724-d89cf1ed.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_256x256_40k_hrf/unet_s5-d16_256x256_40k_hrf-20201223_173724.log.json) | diff --git a/configs/unet/unet_s5-d16_128x128_40k_chase_db1.py b/configs/unet/unet_s5-d16_128x128_40k_chase_db1.py new file mode 100644 index 0000000000..f67d565816 --- /dev/null +++ b/configs/unet/unet_s5-d16_128x128_40k_chase_db1.py @@ -0,0 +1,6 @@ +_base_ = [ + '../_base_/models/unet_s5-d16.py', '../_base_/datasets/chase_db1.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' +] +test_cfg = dict(crop_size=(128, 128), stride=(85, 85)) +evaluation = dict(metric='mDice') diff --git a/configs/unet/unet_s5-d16_128x128_40k_stare.py b/configs/unet/unet_s5-d16_128x128_40k_stare.py new file mode 100644 index 0000000000..756bbe73d1 --- /dev/null +++ b/configs/unet/unet_s5-d16_128x128_40k_stare.py @@ -0,0 +1,6 @@ +_base_ = [ + '../_base_/models/unet_s5-d16.py', '../_base_/datasets/stare.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' +] +test_cfg = dict(crop_size=(128, 128), stride=(85, 85)) +evaluation = dict(metric='mDice') diff --git a/configs/unet/unet_s5-d16_256x256_40k_hrf.py b/configs/unet/unet_s5-d16_256x256_40k_hrf.py new file mode 100644 index 0000000000..29a803455d --- /dev/null +++ b/configs/unet/unet_s5-d16_256x256_40k_hrf.py @@ -0,0 +1,6 @@ +_base_ = [ + '../_base_/models/unet_s5-d16.py', '../_base_/datasets/hrf.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' +] +test_cfg = dict(crop_size=(256, 256), stride=(170, 170)) +evaluation = dict(metric='mDice') diff --git a/configs/unet/unet_s5-d16_64x64_40k_drive.py b/configs/unet/unet_s5-d16_64x64_40k_drive.py new file mode 100644 index 0000000000..29e834a81c --- /dev/null +++ b/configs/unet/unet_s5-d16_64x64_40k_drive.py @@ -0,0 +1,6 @@ +_base_ = [ + '../_base_/models/unet_s5-d16.py', '../_base_/datasets/drive.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' +] +test_cfg = dict(crop_size=(64, 64), stride=(42, 42)) +evaluation = dict(metric='mDice') From 25d8d77fab767097701128fa5255c1bdb3d95112 Mon Sep 17 00:00:00 2001 From: yamengxi <49829199+yamengxi@users.noreply.github.com> Date: Sat, 26 Dec 2020 02:02:50 -0600 Subject: [PATCH 084/706] [New model] Support MobileNetV3 (#268) * delete markdownlint * Support MobileNetV3 * fix import * add mobilenetv3 head and configs * Modify MobileNetV3 to semantic segmentation version * modify mobilenetv3 configs * add std configs * fix Conv2dAdaptivePadding bug * add configs * add unitest and fix bugs * fix lraspp unitest bugs * restore * fix unitest * add MobileNetV3 docstring * add mmcv * add mmcv * fix syntax bug * fix unitest bug * fix unitest bug * fix unitest bugs * fix docstring * add configs * restore * delete unnecessary assert * modify unitest * delete benchmark --- README.md | 1 + configs/_base_/models/lraspp_m-v3-d8.py | 25 ++ configs/mobilenet_v3/README.md | 26 ++ ...lraspp_m-v3-d8_512x1024_320k_cityscapes.py | 11 + ...-v3-d8_scratch_512x1024_320k_cityscapes.py | 9 + ...raspp_m-v3s-d8_512x1024_320k_cityscapes.py | 23 ++ ...v3s-d8_scratch_512x1024_320k_cityscapes.py | 22 ++ docs/model_zoo.md | 4 + mmseg/models/backbones/__init__.py | 3 +- mmseg/models/backbones/mobilenet_v3.py | 255 ++++++++++++++++++ mmseg/models/decode_heads/__init__.py | 3 +- mmseg/models/decode_heads/lraspp_head.py | 90 +++++++ mmseg/models/utils/__init__.py | 4 +- mmseg/models/utils/inverted_residual.py | 118 +++++++- mmseg/models/utils/make_divisible.py | 15 +- mmseg/models/utils/se_layer.py | 57 ++++ tests/test_models/test_backbone.py | 66 ++++- tests/test_models/test_heads.py | 67 ++++- .../test_inverted_residual_module.py | 82 +++++- tests/test_utils/test_make_divisible.py | 13 + tests/test_utils/test_se_layer.py | 41 +++ 21 files changed, 919 insertions(+), 16 deletions(-) create mode 100644 configs/_base_/models/lraspp_m-v3-d8.py create mode 100644 configs/mobilenet_v3/README.md create mode 100644 configs/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes.py create mode 100644 configs/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py create mode 100644 configs/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes.py create mode 100644 configs/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py create mode 100644 mmseg/models/backbones/mobilenet_v3.py create mode 100644 mmseg/models/decode_heads/lraspp_head.py create mode 100644 mmseg/models/utils/se_layer.py create mode 100644 tests/test_utils/test_make_divisible.py create mode 100644 tests/test_utils/test_se_layer.py diff --git a/README.md b/README.md index 7b16a636b8..e7509c6202 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,7 @@ Supported backbones: - [x] [HRNet](configs/hrnet/README.md) - [x] [ResNeSt](configs/resnest/README.md) - [x] [MobileNetV2](configs/mobilenet_v2/README.md) +- [x] [MobileNetV3](configs/mobilenet_v3/README.md) Supported methods: diff --git a/configs/_base_/models/lraspp_m-v3-d8.py b/configs/_base_/models/lraspp_m-v3-d8.py new file mode 100644 index 0000000000..36e45090c9 --- /dev/null +++ b/configs/_base_/models/lraspp_m-v3-d8.py @@ -0,0 +1,25 @@ +# model settings +norm_cfg = dict(type='SyncBN', eps=0.001, requires_grad=True) +model = dict( + type='EncoderDecoder', + backbone=dict( + type='MobileNetV3', + arch='large', + out_indices=(1, 3, 16), + norm_cfg=norm_cfg), + decode_head=dict( + type='LRASPPHead', + in_channels=(16, 24, 960), + in_index=(0, 1, 2), + channels=128, + input_transform='multiple_select', + dropout_ratio=0.1, + num_classes=19, + norm_cfg=norm_cfg, + act_cfg=dict(type='ReLU'), + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))) +# model training and testing settings +train_cfg = dict() +test_cfg = dict(mode='whole') diff --git a/configs/mobilenet_v3/README.md b/configs/mobilenet_v3/README.md new file mode 100644 index 0000000000..a7bdd5a8ed --- /dev/null +++ b/configs/mobilenet_v3/README.md @@ -0,0 +1,26 @@ +# Searching for MobileNetV3 + +## Introduction + +```latex +@inproceedings{Howard_2019_ICCV, + title={Searching for MobileNetV3}, + author={Howard, Andrew and Sandler, Mark and Chu, Grace and Chen, Liang-Chieh and Chen, Bo and Tan, Mingxing and Wang, Weijun and Zhu, Yukun and Pang, Ruoming and Vasudevan, Vijay and Le, Quoc V. and Adam, Hartwig}, + booktitle={The IEEE International Conference on Computer Vision (ICCV)}, + pages={1314-1324}, + month={October}, + year={2019}, + doi={10.1109/ICCV.2019.00140}} +} +``` + +## Results and models + +### Cityscapes + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | +|------------|----------|-----------|--------:|---------:|----------------|------:|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| LRASPP | M-V3-D8 | 512x1024 | 320000 | 8.9 | 15.22 | 69.54 | 70.89 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes/lraspp_m-v3-d8_512x1024_320k_cityscapes_20201224_220337-cfe8fb07.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes/lraspp_m-v3-d8_512x1024_320k_cityscapes-20201224_220337.log.json)| +| LRASPP | M-V3-D8 (scratch) | 512x1024 | 320000 | 8.9 | 14.77 | 67.87 | 69.78 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes_20201224_220337-9f29cd72.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes-20201224_220337.log.json)| +| LRASPP | M-V3s-D8 | 512x1024 | 320000 | 5.3 | 23.64 | 64.11 | 66.42 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes/lraspp_m-v3s-d8_512x1024_320k_cityscapes_20201224_223935-61565b34.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes/lraspp_m-v3s-d8_512x1024_320k_cityscapes-20201224_223935.log.json)| +| LRASPP | M-V3s-D8 (scratch) | 512x1024 | 320000 | 5.3 | 24.50 | 62.74 | 65.01 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes_20201224_223935-03daeabb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes-20201224_223935.log.json)| diff --git a/configs/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes.py b/configs/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes.py new file mode 100644 index 0000000000..e59a78b48b --- /dev/null +++ b/configs/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes.py @@ -0,0 +1,11 @@ +_base_ = [ + '../_base_/models/lraspp_m-v3-d8.py', '../_base_/datasets/cityscapes.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' +] + +model = dict(pretrained='open-mmlab://contrib/mobilenet_v3_large') + +# Re-config the data sampler. +data = dict(samples_per_gpu=4, workers_per_gpu=4) + +runner = dict(type='IterBasedRunner', max_iters=320000) diff --git a/configs/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py b/configs/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py new file mode 100644 index 0000000000..a3c5435142 --- /dev/null +++ b/configs/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = [ + '../_base_/models/lraspp_m-v3-d8.py', '../_base_/datasets/cityscapes.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' +] + +# Re-config the data sampler. +data = dict(samples_per_gpu=4, workers_per_gpu=4) + +runner = dict(type='IterBasedRunner', max_iters=320000) diff --git a/configs/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes.py b/configs/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes.py new file mode 100644 index 0000000000..d4e368b2a1 --- /dev/null +++ b/configs/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes.py @@ -0,0 +1,23 @@ +_base_ = './lraspp_m-v3-d8_512x1024_320k_cityscapes.py' +norm_cfg = dict(type='SyncBN', eps=0.001, requires_grad=True) +model = dict( + type='EncoderDecoder', + pretrained='open-mmlab://contrib/mobilenet_v3_small', + backbone=dict( + type='MobileNetV3', + arch='small', + out_indices=(0, 1, 12), + norm_cfg=norm_cfg), + decode_head=dict( + type='LRASPPHead', + in_channels=(16, 16, 576), + in_index=(0, 1, 2), + channels=128, + input_transform='multiple_select', + dropout_ratio=0.1, + num_classes=19, + norm_cfg=norm_cfg, + act_cfg=dict(type='ReLU'), + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))) diff --git a/configs/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py b/configs/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py new file mode 100644 index 0000000000..0c5f707200 --- /dev/null +++ b/configs/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py @@ -0,0 +1,22 @@ +_base_ = './lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py' +norm_cfg = dict(type='SyncBN', eps=0.001, requires_grad=True) +model = dict( + type='EncoderDecoder', + backbone=dict( + type='MobileNetV3', + arch='small', + out_indices=(0, 1, 12), + norm_cfg=norm_cfg), + decode_head=dict( + type='LRASPPHead', + in_channels=(16, 16, 576), + in_index=(0, 1, 2), + channels=128, + input_transform='multiple_select', + dropout_ratio=0.1, + num_classes=19, + norm_cfg=norm_cfg, + act_cfg=dict(type='ReLU'), + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))) diff --git a/docs/model_zoo.md b/docs/model_zoo.md index fe132f39b2..2d4c1c2ac9 100644 --- a/docs/model_zoo.md +++ b/docs/model_zoo.md @@ -111,6 +111,10 @@ Please refer to [PointRend](https://github.com/open-mmlab/mmsegmentation/blob/ma Please refer to [MobileNetV2](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/mobilenet_v2) for details. +### MobileNetV3 + +Please refer to [MobileNetV3](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/mobilenet_v3) for details. + ### EMANet Please refer to [EMANet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/emanet) for details. diff --git a/mmseg/models/backbones/__init__.py b/mmseg/models/backbones/__init__.py index 86174ac7a9..740317da20 100644 --- a/mmseg/models/backbones/__init__.py +++ b/mmseg/models/backbones/__init__.py @@ -2,6 +2,7 @@ from .fast_scnn import FastSCNN from .hrnet import HRNet from .mobilenet_v2 import MobileNetV2 +from .mobilenet_v3 import MobileNetV3 from .resnest import ResNeSt from .resnet import ResNet, ResNetV1c, ResNetV1d from .resnext import ResNeXt @@ -9,5 +10,5 @@ __all__ = [ 'ResNet', 'ResNetV1c', 'ResNetV1d', 'ResNeXt', 'HRNet', 'FastSCNN', - 'ResNeSt', 'MobileNetV2', 'UNet', 'CGNet' + 'ResNeSt', 'MobileNetV2', 'UNet', 'CGNet', 'MobileNetV3' ] diff --git a/mmseg/models/backbones/mobilenet_v3.py b/mmseg/models/backbones/mobilenet_v3.py new file mode 100644 index 0000000000..104d8328af --- /dev/null +++ b/mmseg/models/backbones/mobilenet_v3.py @@ -0,0 +1,255 @@ +import logging + +import mmcv +import torch.nn as nn +from mmcv.cnn import ConvModule, constant_init, kaiming_init +from mmcv.cnn.bricks import Conv2dAdaptivePadding +from mmcv.runner import load_checkpoint +from torch.nn.modules.batchnorm import _BatchNorm + +from ..builder import BACKBONES +from ..utils import InvertedResidualV3 as InvertedResidual + + +@BACKBONES.register_module() +class MobileNetV3(nn.Module): + """MobileNetV3 backbone. + + This backbone is the improved implementation of `Searching for MobileNetV3 + `_. + + Args: + arch (str): Architechture of mobilnetv3, from {'small', 'large'}. + Default: 'small'. + conv_cfg (dict): Config dict for convolution layer. + Default: None, which means using conv2d. + norm_cfg (dict): Config dict for normalization layer. + Default: dict(type='BN'). + out_indices (tuple[int]): Output from which layer. + Default: (0, 1, 12). + frozen_stages (int): Stages to be frozen (all param fixed). + Defualt: -1, which means not freezing any parameters. + norm_eval (bool): Whether to set norm layers to eval mode, namely, + freeze running stats (mean and var). Note: Effect on Batch Norm + and its variants only. Default: False. + with_cp (bool): Use checkpoint or not. Using checkpoint will save + some memory while slowing down the training speed. + Defualt: False. + """ + # Parameters to build each block: + # [kernel size, mid channels, out channels, with_se, act type, stride] + arch_settings = { + 'small': [[3, 16, 16, True, 'ReLU', 2], # block0 layer1 os=4 + [3, 72, 24, False, 'ReLU', 2], # block1 layer2 os=8 + [3, 88, 24, False, 'ReLU', 1], + [5, 96, 40, True, 'HSwish', 2], # block2 layer4 os=16 + [5, 240, 40, True, 'HSwish', 1], + [5, 240, 40, True, 'HSwish', 1], + [5, 120, 48, True, 'HSwish', 1], # block3 layer7 os=16 + [5, 144, 48, True, 'HSwish', 1], + [5, 288, 96, True, 'HSwish', 2], # block4 layer9 os=32 + [5, 576, 96, True, 'HSwish', 1], + [5, 576, 96, True, 'HSwish', 1]], + 'large': [[3, 16, 16, False, 'ReLU', 1], # block0 layer1 os=2 + [3, 64, 24, False, 'ReLU', 2], # block1 layer2 os=4 + [3, 72, 24, False, 'ReLU', 1], + [5, 72, 40, True, 'ReLU', 2], # block2 layer4 os=8 + [5, 120, 40, True, 'ReLU', 1], + [5, 120, 40, True, 'ReLU', 1], + [3, 240, 80, False, 'HSwish', 2], # block3 layer7 os=16 + [3, 200, 80, False, 'HSwish', 1], + [3, 184, 80, False, 'HSwish', 1], + [3, 184, 80, False, 'HSwish', 1], + [3, 480, 112, True, 'HSwish', 1], # block4 layer11 os=16 + [3, 672, 112, True, 'HSwish', 1], + [5, 672, 160, True, 'HSwish', 2], # block5 layer13 os=32 + [5, 960, 160, True, 'HSwish', 1], + [5, 960, 160, True, 'HSwish', 1]] + } # yapf: disable + + def __init__(self, + arch='small', + conv_cfg=None, + norm_cfg=dict(type='BN'), + out_indices=(0, 1, 12), + frozen_stages=-1, + reduction_factor=1, + norm_eval=False, + with_cp=False): + super(MobileNetV3, self).__init__() + assert arch in self.arch_settings + assert isinstance(reduction_factor, int) and reduction_factor > 0 + assert mmcv.is_tuple_of(out_indices, int) + for index in out_indices: + if index not in range(0, len(self.arch_settings[arch]) + 2): + raise ValueError( + 'the item in out_indices must in ' + f'range(0, {len(self.arch_settings[arch])+2}). ' + f'But received {index}') + + if frozen_stages not in range(-1, len(self.arch_settings[arch]) + 2): + raise ValueError('frozen_stages must be in range(-1, ' + f'{len(self.arch_settings[arch])+2}). ' + f'But received {frozen_stages}') + self.arch = arch + self.conv_cfg = conv_cfg + self.norm_cfg = norm_cfg + self.out_indices = out_indices + self.frozen_stages = frozen_stages + self.reduction_factor = reduction_factor + self.norm_eval = norm_eval + self.with_cp = with_cp + self.layers = self._make_layer() + + def _make_layer(self): + layers = [] + + # build the first layer (layer0) + in_channels = 16 + layer = ConvModule( + in_channels=3, + out_channels=in_channels, + kernel_size=3, + stride=2, + padding=1, + conv_cfg=dict(type='Conv2dAdaptivePadding'), + norm_cfg=self.norm_cfg, + act_cfg=dict(type='HSwish')) + self.add_module('layer0', layer) + layers.append('layer0') + + layer_setting = self.arch_settings[self.arch] + for i, params in enumerate(layer_setting): + (kernel_size, mid_channels, out_channels, with_se, act, + stride) = params + + if self.arch == 'large' and i >= 12 or self.arch == 'small' and \ + i >= 8: + mid_channels = mid_channels // self.reduction_factor + out_channels = out_channels // self.reduction_factor + + if with_se: + se_cfg = dict( + channels=mid_channels, + ratio=4, + act_cfg=(dict(type='ReLU'), + dict(type='HSigmoid', bias=3.0, divisor=6.0))) + else: + se_cfg = None + + layer = InvertedResidual( + in_channels=in_channels, + out_channels=out_channels, + mid_channels=mid_channels, + kernel_size=kernel_size, + stride=stride, + se_cfg=se_cfg, + with_expand_conv=(in_channels != mid_channels), + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=dict(type=act), + with_cp=self.with_cp) + in_channels = out_channels + layer_name = 'layer{}'.format(i + 1) + self.add_module(layer_name, layer) + layers.append(layer_name) + + # build the last layer + # block5 layer12 os=32 for small model + # block6 layer16 os=32 for large model + layer = ConvModule( + in_channels=in_channels, + out_channels=576 if self.arch == 'small' else 960, + kernel_size=1, + stride=1, + dilation=4, + padding=0, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=dict(type='HSwish')) + layer_name = 'layer{}'.format(len(layer_setting) + 1) + self.add_module(layer_name, layer) + layers.append(layer_name) + + # next, convert backbone MobileNetV3 to a semantic segmentation version + if self.arch == 'small': + self.layer4.depthwise_conv.conv.stride = (1, 1) + self.layer9.depthwise_conv.conv.stride = (1, 1) + for i in range(4, len(layers)): + layer = getattr(self, layers[i]) + if isinstance(layer, InvertedResidual): + modified_module = layer.depthwise_conv.conv + else: + modified_module = layer.conv + + if i < 9: + modified_module.dilation = (2, 2) + pad = 2 + else: + modified_module.dilation = (4, 4) + pad = 4 + + if not isinstance(modified_module, Conv2dAdaptivePadding): + # Adjust padding + pad *= (modified_module.kernel_size[0] - 1) // 2 + modified_module.padding = (pad, pad) + else: + self.layer7.depthwise_conv.conv.stride = (1, 1) + self.layer13.depthwise_conv.conv.stride = (1, 1) + for i in range(7, len(layers)): + layer = getattr(self, layers[i]) + if isinstance(layer, InvertedResidual): + modified_module = layer.depthwise_conv.conv + else: + modified_module = layer.conv + + if i < 13: + modified_module.dilation = (2, 2) + pad = 2 + else: + modified_module.dilation = (4, 4) + pad = 4 + + if not isinstance(modified_module, Conv2dAdaptivePadding): + # Adjust padding + pad *= (modified_module.kernel_size[0] - 1) // 2 + modified_module.padding = (pad, pad) + + return layers + + def init_weights(self, pretrained=None): + if isinstance(pretrained, str): + logger = logging.getLogger() + load_checkpoint(self, pretrained, strict=False, logger=logger) + elif pretrained is None: + for m in self.modules(): + if isinstance(m, nn.Conv2d): + kaiming_init(m) + elif isinstance(m, nn.BatchNorm2d): + constant_init(m, 1) + else: + raise TypeError('pretrained must be a str or None') + + def forward(self, x): + outs = [] + for i, layer_name in enumerate(self.layers): + layer = getattr(self, layer_name) + x = layer(x) + if i in self.out_indices: + outs.append(x) + return outs + + def _freeze_stages(self): + for i in range(self.frozen_stages + 1): + layer = getattr(self, f'layer{i}') + layer.eval() + for param in layer.parameters(): + param.requires_grad = False + + def train(self, mode=True): + super(MobileNetV3, self).train(mode) + self._freeze_stages() + if mode and self.norm_eval: + for m in self.modules(): + if isinstance(m, _BatchNorm): + m.eval() diff --git a/mmseg/models/decode_heads/__init__.py b/mmseg/models/decode_heads/__init__.py index 44ff80feab..662aae3c00 100644 --- a/mmseg/models/decode_heads/__init__.py +++ b/mmseg/models/decode_heads/__init__.py @@ -10,6 +10,7 @@ from .fcn_head import FCNHead from .fpn_head import FPNHead from .gc_head import GCHead +from .lraspp_head import LRASPPHead from .nl_head import NLHead from .ocr_head import OCRHead from .point_head import PointHead @@ -23,5 +24,5 @@ 'FCNHead', 'PSPHead', 'ASPPHead', 'PSAHead', 'NLHead', 'GCHead', 'CCHead', 'UPerHead', 'DepthwiseSeparableASPPHead', 'ANNHead', 'DAHead', 'OCRHead', 'EncHead', 'DepthwiseSeparableFCNHead', 'FPNHead', 'EMAHead', 'DNLHead', - 'PointHead', 'APCHead', 'DMHead' + 'PointHead', 'APCHead', 'DMHead', 'LRASPPHead' ] diff --git a/mmseg/models/decode_heads/lraspp_head.py b/mmseg/models/decode_heads/lraspp_head.py new file mode 100644 index 0000000000..32a093cade --- /dev/null +++ b/mmseg/models/decode_heads/lraspp_head.py @@ -0,0 +1,90 @@ +import torch +import torch.nn as nn +from mmcv import is_tuple_of +from mmcv.cnn import ConvModule + +from mmseg.ops import resize +from ..builder import HEADS +from .decode_head import BaseDecodeHead + + +@HEADS.register_module() +class LRASPPHead(BaseDecodeHead): + """Lite R-ASPP (LRASPP) head is proposed in Searching for MobileNetV3. + + This head is the improved implementation of `Searching for MobileNetV3 + `_. + + Args: + branch_channels (tuple[int]): The number of output channels in every + each branch. Default: (32, 64). + """ + + def __init__(self, branch_channels=(32, 64), **kwargs): + super(LRASPPHead, self).__init__(**kwargs) + if self.input_transform != 'multiple_select': + raise ValueError('in Lite R-ASPP (LRASPP) head, input_transform ' + f'must be \'multiple_select\'. But received ' + f'\'{self.input_transform}\'') + assert is_tuple_of(branch_channels, int) + assert len(branch_channels) == len(self.in_channels) - 1 + self.branch_channels = branch_channels + + self.convs = nn.Sequential() + self.conv_ups = nn.Sequential() + for i in range(len(branch_channels)): + self.convs.add_module( + f'conv{i}', + nn.Conv2d( + self.in_channels[i], branch_channels[i], 1, bias=False)) + self.conv_ups.add_module( + f'conv_up{i}', + ConvModule( + self.channels + branch_channels[i], + self.channels, + 1, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg, + bias=False)) + + self.conv_up_input = nn.Conv2d(self.channels, self.channels, 1) + + self.aspp_conv = ConvModule( + self.in_channels[-1], + self.channels, + 1, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg, + bias=False) + self.image_pool = nn.Sequential( + nn.AvgPool2d(kernel_size=49, stride=(16, 20)), + ConvModule( + self.in_channels[2], + self.channels, + 1, + act_cfg=dict(type='Sigmoid'), + bias=False)) + + def forward(self, inputs): + """Forward function.""" + inputs = self._transform_inputs(inputs) + + x = inputs[-1] + + x = self.aspp_conv(x) * resize( + self.image_pool(x), + size=x.size()[2:], + mode='bilinear', + align_corners=self.align_corners) + x = self.conv_up_input(x) + + for i in range(len(self.branch_channels) - 1, -1, -1): + x = resize( + x, + size=inputs[i].size()[2:], + mode='bilinear', + align_corners=self.align_corners) + x = torch.cat([x, self.convs[i](inputs[i])], 1) + x = self.conv_ups[i](x) + + return self.cls_seg(x) diff --git a/mmseg/models/utils/__init__.py b/mmseg/models/utils/__init__.py index 5d233a4232..413228626e 100644 --- a/mmseg/models/utils/__init__.py +++ b/mmseg/models/utils/__init__.py @@ -1,4 +1,4 @@ -from .inverted_residual import InvertedResidual +from .inverted_residual import InvertedResidual, InvertedResidualV3 from .make_divisible import make_divisible from .res_layer import ResLayer from .self_attention_block import SelfAttentionBlock @@ -6,5 +6,5 @@ __all__ = [ 'ResLayer', 'SelfAttentionBlock', 'make_divisible', 'InvertedResidual', - 'UpConvBlock' + 'UpConvBlock', 'InvertedResidualV3' ] diff --git a/mmseg/models/utils/inverted_residual.py b/mmseg/models/utils/inverted_residual.py index c3de83aa2f..093388f564 100644 --- a/mmseg/models/utils/inverted_residual.py +++ b/mmseg/models/utils/inverted_residual.py @@ -2,6 +2,8 @@ from torch import nn as nn from torch.utils import checkpoint as cp +from .se_layer import SELayer + class InvertedResidual(nn.Module): """InvertedResidual block for MobileNetV2. @@ -23,7 +25,7 @@ class InvertedResidual(nn.Module): memory while slowing down the training speed. Default: False. Returns: - Tensor: The output tensor + Tensor: The output tensor. """ def __init__(self, @@ -90,3 +92,117 @@ def _inner_forward(x): out = _inner_forward(x) return out + + +class InvertedResidualV3(nn.Module): + """Inverted Residual Block for MobileNetV3. + + Args: + in_channels (int): The input channels of this Module. + out_channels (int): The output channels of this Module. + mid_channels (int): The input channels of the depthwise convolution. + kernel_size (int): The kernal size of the depthwise convolution. + Default: 3. + stride (int): The stride of the depthwise convolution. Default: 1. + se_cfg (dict): Config dict for se layer. Defaul: None, which means no + se layer. + with_expand_conv (bool): Use expand conv or not. If set False, + mid_channels must be the same with in_channels. Default: True. + conv_cfg (dict): Config dict for convolution layer. Default: None, + which means using conv2d. + norm_cfg (dict): Config dict for normalization layer. + Default: dict(type='BN'). + act_cfg (dict): Config dict for activation layer. + Default: dict(type='ReLU'). + with_cp (bool): Use checkpoint or not. Using checkpoint will save some + memory while slowing down the training speed. Default: False. + + Returns: + Tensor: The output tensor. + """ + + def __init__(self, + in_channels, + out_channels, + mid_channels, + kernel_size=3, + stride=1, + se_cfg=None, + with_expand_conv=True, + conv_cfg=None, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + with_cp=False): + super(InvertedResidualV3, self).__init__() + self.with_res_shortcut = (stride == 1 and in_channels == out_channels) + assert stride in [1, 2] + self.with_cp = with_cp + self.with_se = se_cfg is not None + self.with_expand_conv = with_expand_conv + + if self.with_se: + assert isinstance(se_cfg, dict) + if not self.with_expand_conv: + assert mid_channels == in_channels + + if self.with_expand_conv: + self.expand_conv = ConvModule( + in_channels=in_channels, + out_channels=mid_channels, + kernel_size=1, + stride=1, + padding=0, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + self.depthwise_conv = ConvModule( + in_channels=mid_channels, + out_channels=mid_channels, + kernel_size=kernel_size, + stride=stride, + padding=kernel_size // 2, + groups=mid_channels, + conv_cfg=dict( + type='Conv2dAdaptivePadding') if stride == 2 else conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + + if self.with_se: + self.se = SELayer(**se_cfg) + + self.linear_conv = ConvModule( + in_channels=mid_channels, + out_channels=out_channels, + kernel_size=1, + stride=1, + padding=0, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=None) + + def forward(self, x): + + def _inner_forward(x): + out = x + + if self.with_expand_conv: + out = self.expand_conv(out) + + out = self.depthwise_conv(out) + + if self.with_se: + out = self.se(out) + + out = self.linear_conv(out) + + if self.with_res_shortcut: + return x + out + else: + return out + + if self.with_cp and x.requires_grad: + out = cp.checkpoint(_inner_forward, x) + else: + out = _inner_forward(x) + + return out diff --git a/mmseg/models/utils/make_divisible.py b/mmseg/models/utils/make_divisible.py index 02ee047c50..75ad756052 100644 --- a/mmseg/models/utils/make_divisible.py +++ b/mmseg/models/utils/make_divisible.py @@ -1,18 +1,21 @@ def make_divisible(value, divisor, min_value=None, min_ratio=0.9): """Make divisible function. - This function rounds the channel number down to the nearest value that can - be divisible by the divisor. + This function rounds the channel number to the nearest value that can be + divisible by the divisor. It is taken from the original tf repo. It ensures + that all layers have a channel number that is divisible by divisor. It can + be seen here: https://github.com/tensorflow/models/blob/master/research/slim/nets/mobilenet/mobilenet.py # noqa Args: value (int): The original channel number. divisor (int): The divisor to fully divide the channel number. - min_value (int, optional): The minimum value of the output channel. + min_value (int): The minimum value of the output channel. Default: None, means that the minimum value equal to the divisor. - min_ratio (float, optional): The minimum ratio of the rounded channel - number to the original channel number. Default: 0.9. + min_ratio (float): The minimum ratio of the rounded channel number to + the original channel number. Default: 0.9. + Returns: - int: The modified output channel number + int: The modified output channel number. """ if min_value is None: diff --git a/mmseg/models/utils/se_layer.py b/mmseg/models/utils/se_layer.py new file mode 100644 index 0000000000..d75e712cb4 --- /dev/null +++ b/mmseg/models/utils/se_layer.py @@ -0,0 +1,57 @@ +import mmcv +import torch.nn as nn +from mmcv.cnn import ConvModule + +from .make_divisible import make_divisible + + +class SELayer(nn.Module): + """Squeeze-and-Excitation Module. + + Args: + channels (int): The input (and output) channels of the SE layer. + ratio (int): Squeeze ratio in SELayer, the intermediate channel will be + ``int(channels/ratio)``. Default: 16. + conv_cfg (None or dict): Config dict for convolution layer. + Default: None, which means using conv2d. + act_cfg (dict or Sequence[dict]): Config dict for activation layer. + If act_cfg is a dict, two activation layers will be configurated + by this dict. If act_cfg is a sequence of dicts, the first + activation layer will be configurated by the first dict and the + second activation layer will be configurated by the second dict. + Default: (dict(type='ReLU'), dict(type='HSigmoid', bias=3.0, + divisor=6.0)). + """ + + def __init__(self, + channels, + ratio=16, + conv_cfg=None, + act_cfg=(dict(type='ReLU'), + dict(type='HSigmoid', bias=3.0, divisor=6.0))): + super(SELayer, self).__init__() + if isinstance(act_cfg, dict): + act_cfg = (act_cfg, act_cfg) + assert len(act_cfg) == 2 + assert mmcv.is_tuple_of(act_cfg, dict) + self.global_avgpool = nn.AdaptiveAvgPool2d(1) + self.conv1 = ConvModule( + in_channels=channels, + out_channels=make_divisible(channels // ratio, 8), + kernel_size=1, + stride=1, + conv_cfg=conv_cfg, + act_cfg=act_cfg[0]) + self.conv2 = ConvModule( + in_channels=make_divisible(channels // ratio, 8), + out_channels=channels, + kernel_size=1, + stride=1, + conv_cfg=conv_cfg, + act_cfg=act_cfg[1]) + + def forward(self, x): + out = self.global_avgpool(x) + out = self.conv1(out) + out = self.conv2(out) + return x * out diff --git a/tests/test_models/test_backbone.py b/tests/test_models/test_backbone.py index 25467f86e4..9ed6ce222f 100644 --- a/tests/test_models/test_backbone.py +++ b/tests/test_models/test_backbone.py @@ -4,8 +4,8 @@ from mmcv.utils.parrots_wrapper import _BatchNorm from torch.nn.modules import AvgPool2d, GroupNorm -from mmseg.models.backbones import (CGNet, FastSCNN, ResNeSt, ResNet, - ResNetV1d, ResNeXt) +from mmseg.models.backbones import (CGNet, FastSCNN, MobileNetV3, ResNeSt, + ResNet, ResNetV1d, ResNeXt) from mmseg.models.backbones.cgnet import (ContextGuidedBlock, GlobalContextExtractor) from mmseg.models.backbones.resnest import Bottleneck as BottleneckS @@ -875,3 +875,65 @@ def test_cgnet_backbone(): assert feat[0].shape == torch.Size([2, 35, 112, 112]) assert feat[1].shape == torch.Size([2, 131, 56, 56]) assert feat[2].shape == torch.Size([2, 256, 28, 28]) + + +def test_mobilenet_v3(): + with pytest.raises(AssertionError): + # check invalid arch + MobileNetV3('big') + + with pytest.raises(AssertionError): + # check invalid reduction_factor + MobileNetV3(reduction_factor=0) + + with pytest.raises(ValueError): + # check invalid out_indices + MobileNetV3(out_indices=(0, 1, 15)) + + with pytest.raises(ValueError): + # check invalid frozen_stages + MobileNetV3(frozen_stages=15) + + with pytest.raises(TypeError): + # check invalid pretrained + model = MobileNetV3() + model.init_weights(pretrained=8) + + # Test MobileNetV3 with default settings + model = MobileNetV3() + model.init_weights() + model.train() + + imgs = torch.randn(2, 3, 224, 224) + feat = model(imgs) + assert len(feat) == 3 + assert feat[0].shape == (2, 16, 112, 112) + assert feat[1].shape == (2, 16, 56, 56) + assert feat[2].shape == (2, 576, 28, 28) + + # Test MobileNetV3 with arch = 'large' + model = MobileNetV3(arch='large', out_indices=(1, 3, 16)) + model.init_weights() + model.train() + + imgs = torch.randn(2, 3, 224, 224) + feat = model(imgs) + assert len(feat) == 3 + assert feat[0].shape == (2, 16, 112, 112) + assert feat[1].shape == (2, 24, 56, 56) + assert feat[2].shape == (2, 960, 28, 28) + + # Test MobileNetV3 with norm_eval True, with_cp True and frozen_stages=5 + model = MobileNetV3(norm_eval=True, with_cp=True, frozen_stages=5) + with pytest.raises(TypeError): + # check invalid pretrained + model.init_weights(pretrained=8) + model.init_weights() + model.train() + + imgs = torch.randn(2, 3, 224, 224) + feat = model(imgs) + assert len(feat) == 3 + assert feat[0].shape == (2, 16, 112, 112) + assert feat[1].shape == (2, 16, 56, 56) + assert feat[2].shape == (2, 576, 28, 28) diff --git a/tests/test_models/test_heads.py b/tests/test_models/test_heads.py index 612da300f7..e8a8493c16 100644 --- a/tests/test_models/test_heads.py +++ b/tests/test_models/test_heads.py @@ -10,8 +10,8 @@ DAHead, DepthwiseSeparableASPPHead, DepthwiseSeparableFCNHead, DMHead, DNLHead, EMAHead, EncHead, FCNHead, - GCHead, NLHead, OCRHead, PointHead, - PSAHead, PSPHead, UPerHead) + GCHead, LRASPPHead, NLHead, OCRHead, + PointHead, PSAHead, PSPHead, UPerHead) from mmseg.models.decode_heads.decode_head import BaseDecodeHead @@ -769,3 +769,66 @@ def test_point_head(): subdivision_steps=2, subdivision_num_points=8196, scale_factor=2) output = point_head.forward_test(inputs, prev_output, None, test_cfg) assert output.shape == (1, point_head.num_classes, 180, 180) + + +def test_lraspp_head(): + with pytest.raises(ValueError): + # check invalid input_transform + LRASPPHead( + in_channels=(16, 16, 576), + in_index=(0, 1, 2), + channels=128, + input_transform='resize_concat', + dropout_ratio=0.1, + num_classes=19, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)) + + with pytest.raises(AssertionError): + # check invalid branch_channels + LRASPPHead( + in_channels=(16, 16, 576), + in_index=(0, 1, 2), + channels=128, + branch_channels=64, + input_transform='multiple_select', + dropout_ratio=0.1, + num_classes=19, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)) + + # test with default settings + lraspp_head = LRASPPHead( + in_channels=(16, 16, 576), + in_index=(0, 1, 2), + channels=128, + input_transform='multiple_select', + dropout_ratio=0.1, + num_classes=19, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)) + inputs = [ + torch.randn(2, 16, 45, 45), + torch.randn(2, 16, 28, 28), + torch.randn(2, 576, 14, 14) + ] + with pytest.raises(RuntimeError): + # check invalid inputs + output = lraspp_head(inputs) + + inputs = [ + torch.randn(2, 16, 111, 111), + torch.randn(2, 16, 77, 77), + torch.randn(2, 576, 55, 55) + ] + output = lraspp_head(inputs) + assert output.shape == (2, 19, 111, 111) diff --git a/tests/test_utils/test_inverted_residual_module.py b/tests/test_utils/test_inverted_residual_module.py index 279dcf442a..8d5eecf15b 100644 --- a/tests/test_utils/test_inverted_residual_module.py +++ b/tests/test_utils/test_inverted_residual_module.py @@ -1,7 +1,8 @@ +import mmcv import pytest import torch -from mmseg.models.utils import InvertedResidual +from mmseg.models.utils import InvertedResidual, InvertedResidualV3 def test_inv_residual(): @@ -38,3 +39,82 @@ def test_inv_residual(): x = torch.rand(1, 32, 64, 64) output = inv_module(x) assert output.shape == (1, 32, 64, 64) + + # test with checkpoint forward + inv_module = InvertedResidual(32, 32, 1, 1, with_cp=True) + assert inv_module.with_cp + x = torch.rand(1, 32, 64, 64, requires_grad=True) + output = inv_module(x) + assert output.shape == (1, 32, 64, 64) + + +def test_inv_residualv3(): + with pytest.raises(AssertionError): + # test stride assertion. + InvertedResidualV3(32, 32, 16, stride=3) + + with pytest.raises(AssertionError): + # test assertion. + InvertedResidualV3(32, 32, 16, with_expand_conv=False) + + # test with se_cfg=None, with_expand_conv=False + inv_module = InvertedResidualV3(32, 32, 32, with_expand_conv=False) + + assert inv_module.with_res_shortcut is True + assert inv_module.with_se is False + assert inv_module.with_expand_conv is False + assert not hasattr(inv_module, 'expand_conv') + assert isinstance(inv_module.depthwise_conv.conv, torch.nn.Conv2d) + assert inv_module.depthwise_conv.conv.kernel_size == (3, 3) + assert inv_module.depthwise_conv.conv.stride == (1, 1) + assert inv_module.depthwise_conv.conv.padding == (1, 1) + assert isinstance(inv_module.depthwise_conv.bn, torch.nn.BatchNorm2d) + assert isinstance(inv_module.depthwise_conv.activate, torch.nn.ReLU) + assert inv_module.linear_conv.conv.kernel_size == (1, 1) + assert inv_module.linear_conv.conv.stride == (1, 1) + assert inv_module.linear_conv.conv.padding == (0, 0) + assert isinstance(inv_module.linear_conv.bn, torch.nn.BatchNorm2d) + + x = torch.rand(1, 32, 64, 64) + output = inv_module(x) + assert output.shape == (1, 32, 64, 64) + + # test with se_cfg and with_expand_conv + se_cfg = dict( + channels=16, + ratio=4, + act_cfg=(dict(type='ReLU'), + dict(type='HSigmoid', bias=3.0, divisor=6.0))) + act_cfg = dict(type='HSwish') + inv_module = InvertedResidualV3( + 32, 40, 16, 3, 2, se_cfg=se_cfg, act_cfg=act_cfg) + assert inv_module.with_res_shortcut is False + assert inv_module.with_se is True + assert inv_module.with_expand_conv is True + assert inv_module.expand_conv.conv.kernel_size == (1, 1) + assert inv_module.expand_conv.conv.stride == (1, 1) + assert inv_module.expand_conv.conv.padding == (0, 0) + assert isinstance(inv_module.expand_conv.activate, mmcv.cnn.HSwish) + + assert isinstance(inv_module.depthwise_conv.conv, + mmcv.cnn.bricks.Conv2dAdaptivePadding) + assert inv_module.depthwise_conv.conv.kernel_size == (3, 3) + assert inv_module.depthwise_conv.conv.stride == (2, 2) + assert inv_module.depthwise_conv.conv.padding == (0, 0) + assert isinstance(inv_module.depthwise_conv.bn, torch.nn.BatchNorm2d) + assert isinstance(inv_module.depthwise_conv.activate, mmcv.cnn.HSwish) + assert inv_module.linear_conv.conv.kernel_size == (1, 1) + assert inv_module.linear_conv.conv.stride == (1, 1) + assert inv_module.linear_conv.conv.padding == (0, 0) + assert isinstance(inv_module.linear_conv.bn, torch.nn.BatchNorm2d) + x = torch.rand(1, 32, 64, 64) + output = inv_module(x) + assert output.shape == (1, 40, 32, 32) + + # test with checkpoint forward + inv_module = InvertedResidualV3( + 32, 40, 16, 3, 2, se_cfg=se_cfg, act_cfg=act_cfg, with_cp=True) + assert inv_module.with_cp + x = torch.randn(2, 32, 64, 64, requires_grad=True) + output = inv_module(x) + assert output.shape == (2, 40, 32, 32) diff --git a/tests/test_utils/test_make_divisible.py b/tests/test_utils/test_make_divisible.py new file mode 100644 index 0000000000..5e9d1062ff --- /dev/null +++ b/tests/test_utils/test_make_divisible.py @@ -0,0 +1,13 @@ +from mmseg.models.utils import make_divisible + + +def test_make_divisible(): + # test with min_value = None + assert make_divisible(10, 4) == 12 + assert make_divisible(9, 4) == 12 + assert make_divisible(1, 4) == 4 + + # test with min_value = 8 + assert make_divisible(10, 4, 8) == 12 + assert make_divisible(9, 4, 8) == 12 + assert make_divisible(1, 4, 8) == 8 diff --git a/tests/test_utils/test_se_layer.py b/tests/test_utils/test_se_layer.py new file mode 100644 index 0000000000..8bba7b33b9 --- /dev/null +++ b/tests/test_utils/test_se_layer.py @@ -0,0 +1,41 @@ +import mmcv +import pytest +import torch + +from mmseg.models.utils.se_layer import SELayer + + +def test_se_layer(): + with pytest.raises(AssertionError): + # test act_cfg assertion. + SELayer(32, act_cfg=(dict(type='ReLU'), )) + + # test config with channels = 16. + se_layer = SELayer(16) + assert se_layer.conv1.conv.kernel_size == (1, 1) + assert se_layer.conv1.conv.stride == (1, 1) + assert se_layer.conv1.conv.padding == (0, 0) + assert isinstance(se_layer.conv1.activate, torch.nn.ReLU) + assert se_layer.conv2.conv.kernel_size == (1, 1) + assert se_layer.conv2.conv.stride == (1, 1) + assert se_layer.conv2.conv.padding == (0, 0) + assert isinstance(se_layer.conv2.activate, mmcv.cnn.HSigmoid) + + x = torch.rand(1, 16, 64, 64) + output = se_layer(x) + assert output.shape == (1, 16, 64, 64) + + # test config with channels = 16, act_cfg = dict(type='ReLU'). + se_layer = SELayer(16, act_cfg=dict(type='ReLU')) + assert se_layer.conv1.conv.kernel_size == (1, 1) + assert se_layer.conv1.conv.stride == (1, 1) + assert se_layer.conv1.conv.padding == (0, 0) + assert isinstance(se_layer.conv1.activate, torch.nn.ReLU) + assert se_layer.conv2.conv.kernel_size == (1, 1) + assert se_layer.conv2.conv.stride == (1, 1) + assert se_layer.conv2.conv.padding == (0, 0) + assert isinstance(se_layer.conv2.activate, torch.nn.ReLU) + + x = torch.rand(1, 16, 64, 64) + output = se_layer(x) + assert output.shape == (1, 16, 64, 64) From 95cd2700d7cb23a3dfa330149ef8a8212e789977 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Tue, 29 Dec 2020 17:56:06 -0800 Subject: [PATCH 085/706] Add more models (#316) * add more configs * add more configs * fixed backbone type * fixed deeplabv3+ channels * add r101 * update link * change resnet18 link * update aug test * add inf time * add mem --- configs/deeplabv3/README.md | 8 ++++++++ .../deeplabv3_r101b-d8_512x1024_80k_cityscapes.py | 4 ++++ .../deeplabv3_r101b-d8_769x769_80k_cityscapes.py | 4 ++++ .../deeplabv3_r18-d8_512x1024_80k_cityscapes.py | 9 +++++++++ .../deeplabv3_r18-d8_769x769_80k_cityscapes.py | 9 +++++++++ .../deeplabv3_r18b-d8_512x1024_80k_cityscapes.py | 9 +++++++++ .../deeplabv3_r18b-d8_769x769_80k_cityscapes.py | 9 +++++++++ .../deeplabv3_r50b-d8_512x1024_80k_cityscapes.py | 2 ++ .../deeplabv3_r50b-d8_769x769_80k_cityscapes.py | 2 ++ configs/deeplabv3plus/README.md | 8 ++++++++ .../deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py | 4 ++++ .../deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py | 4 ++++ .../deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py | 11 +++++++++++ .../deeplabv3plus_r18-d8_769x769_80k_cityscapes.py | 11 +++++++++++ .../deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py | 11 +++++++++++ .../deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py | 11 +++++++++++ .../deeplabv3plus_r50b-d8_512x1024_80k_cityscapes.py | 2 ++ .../deeplabv3plus_r50b-d8_769x769_80k_cityscapes.py | 2 ++ configs/fcn/README.md | 10 +++++++++- configs/fcn/fcn_r101b-d8_512x1024_80k_cityscapes.py | 4 ++++ configs/fcn/fcn_r101b-d8_769x769_80k_cityscapes.py | 4 ++++ configs/fcn/fcn_r18-d8_512x1024_80k_cityscapes.py | 9 +++++++++ configs/fcn/fcn_r18-d8_769x769_80k_cityscapes.py | 9 +++++++++ configs/fcn/fcn_r18b-d8_512x1024_80k_cityscapes.py | 9 +++++++++ configs/fcn/fcn_r18b-d8_769x769_80k_cityscapes.py | 9 +++++++++ configs/fcn/fcn_r50b-d8_512x1024_80k_cityscapes.py | 2 ++ configs/fcn/fcn_r50b-d8_769x769_80k_cityscapes.py | 2 ++ configs/pspnet/README.md | 8 ++++++++ .../pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes.py | 4 ++++ .../pspnet/pspnet_r101b-d8_769x769_80k_cityscapes.py | 4 ++++ .../pspnet/pspnet_r18-d8_512x1024_80k_cityscapes.py | 9 +++++++++ .../pspnet/pspnet_r18-d8_769x769_80k_cityscapes.py | 9 +++++++++ .../pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes.py | 9 +++++++++ .../pspnet/pspnet_r18b-d8_769x769_80k_cityscapes.py | 9 +++++++++ .../pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes.py | 2 ++ .../pspnet/pspnet_r50b-d8_769x769_80k_cityscapes.py | 2 ++ 36 files changed, 233 insertions(+), 1 deletion(-) create mode 100644 configs/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes.py create mode 100644 configs/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes.py create mode 100644 configs/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes.py create mode 100644 configs/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes.py create mode 100644 configs/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes.py create mode 100644 configs/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes.py create mode 100644 configs/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes.py create mode 100644 configs/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes.py create mode 100644 configs/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py create mode 100644 configs/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py create mode 100644 configs/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py create mode 100644 configs/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes.py create mode 100644 configs/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py create mode 100644 configs/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py create mode 100644 configs/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes.py create mode 100644 configs/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes.py create mode 100644 configs/fcn/fcn_r101b-d8_512x1024_80k_cityscapes.py create mode 100644 configs/fcn/fcn_r101b-d8_769x769_80k_cityscapes.py create mode 100644 configs/fcn/fcn_r18-d8_512x1024_80k_cityscapes.py create mode 100644 configs/fcn/fcn_r18-d8_769x769_80k_cityscapes.py create mode 100644 configs/fcn/fcn_r18b-d8_512x1024_80k_cityscapes.py create mode 100644 configs/fcn/fcn_r18b-d8_769x769_80k_cityscapes.py create mode 100644 configs/fcn/fcn_r50b-d8_512x1024_80k_cityscapes.py create mode 100644 configs/fcn/fcn_r50b-d8_769x769_80k_cityscapes.py create mode 100644 configs/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes.py create mode 100644 configs/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes.py create mode 100644 configs/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes.py create mode 100644 configs/pspnet/pspnet_r18-d8_769x769_80k_cityscapes.py create mode 100644 configs/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes.py create mode 100644 configs/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes.py create mode 100644 configs/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes.py create mode 100644 configs/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes.py diff --git a/configs/deeplabv3/README.md b/configs/deeplabv3/README.md index b9edb41aaf..91428f831c 100644 --- a/configs/deeplabv3/README.md +++ b/configs/deeplabv3/README.md @@ -23,12 +23,20 @@ Note: `D-8` here corresponding to the output stride 8 setting for DeepLab series | DeepLabV3 | R-101-D8 | 512x1024 | 40000 | 9.6 | 1.92 | 77.12 | 79.61 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes/deeplabv3_r101-d8_512x1024_40k_cityscapes_20200605_012241-7fd3f799.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes/deeplabv3_r101-d8_512x1024_40k_cityscapes_20200605_012241.log.json) | | DeepLabV3 | R-50-D8 | 769x769 | 40000 | 6.9 | 1.11 | 78.58 | 79.89 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes/deeplabv3_r50-d8_769x769_40k_cityscapes_20200606_113723-7eda553c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes/deeplabv3_r50-d8_769x769_40k_cityscapes_20200606_113723.log.json) | | DeepLabV3 | R-101-D8 | 769x769 | 40000 | 10.9 | 0.83 | 79.27 | 80.11 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes/deeplabv3_r101-d8_769x769_40k_cityscapes_20200606_113809-c64f889f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes/deeplabv3_r101-d8_769x769_40k_cityscapes_20200606_113809.log.json) | +| DeepLabV3 | R-18-D8 | 512x1024 | 80000 | 1.7 | 13.78 | 76.70 | 78.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes/deeplabv3_r18-d8_512x1024_80k_cityscapes_20201225_021506-23dffbe2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes/deeplabv3_r18-d8_512x1024_80k_cityscapes-20201225_021506.log.json) | | DeepLabV3 | R-50-D8 | 512x1024 | 80000 | - | - | 79.32 | 80.57 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes/deeplabv3_r50-d8_512x1024_80k_cityscapes_20200606_113404-b92cfdd4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes/deeplabv3_r50-d8_512x1024_80k_cityscapes_20200606_113404.log.json) | | DeepLabV3 | R-101-D8 | 512x1024 | 80000 | - | - | 80.20 | 81.21 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes/deeplabv3_r101-d8_512x1024_80k_cityscapes_20200606_113503-9e428899.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes/deeplabv3_r101-d8_512x1024_80k_cityscapes_20200606_113503.log.json) | +| DeepLabV3 | R-18-D8 | 769x769 | 80000 | 1.9 | 5.55 | 76.60 | 78.26 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes/deeplabv3_r18-d8_769x769_80k_cityscapes_20201225_021506-6452126a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes/deeplabv3_r18-d8_769x769_80k_cityscapes-20201225_021506.log.json) | | DeepLabV3 | R-50-D8 | 769x769 | 80000 | - | - | 79.89 | 81.06 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes/deeplabv3_r50-d8_769x769_80k_cityscapes_20200606_221338-788d6228.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes/deeplabv3_r50-d8_769x769_80k_cityscapes_20200606_221338.log.json) | | DeepLabV3 | R-101-D8 | 769x769 | 80000 | - | - | 79.67 | 80.81 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes/deeplabv3_r101-d8_769x769_80k_cityscapes_20200607_013353-60e95418.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes/deeplabv3_r101-d8_769x769_80k_cityscapes_20200607_013353.log.json) | | DeepLabV3 | R-101-D16-MG124 | 512x1024 | 40000 | 4.7 | - 6.96 | 76.71 | 78.63 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes_20200908_005644-67b0c992.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes-20200908_005644.log.json) | | DeepLabV3 | R-101-D16-MG124 | 512x1024 | 80000 | - | - | 78.36 | 79.84 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes_20200908_005644-57bb8425.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes-20200908_005644.log.json) | +| DeepLabV3 | R-18b-D8 | 512x1024 | 80000 | 1.6 | 13.93 | 76.26 | 77.88 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes/deeplabv3_r18b-d8_512x1024_80k_cityscapes_20201225_094144-46040cef.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes/deeplabv3_r18b-d8_512x1024_80k_cityscapes-20201225_094144.log.json) | +| DeepLabV3 | R-50b-D8 | 512x1024 | 80000 | 6.0 | 2.74 | 79.63 | 80.98 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes/deeplabv3_r50b-d8_512x1024_80k_cityscapes_20201225_155148-ec368954.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes/deeplabv3_r50b-d8_512x1024_80k_cityscapes-20201225_155148.log.json) | +| DeepLabV3 | R-101b-D8| 512x1024 | 80000 | 9.5 | 1.81 | 80.01 | 81.21 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes/deeplabv3_r101b-d8_512x1024_80k_cityscapes_20201226_171821-8fd49503.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes/deeplabv3_r101b-d8_512x1024_80k_cityscapes-20201226_171821.log.json) | +| DeepLabV3 | R-18b-D8 | 769x769 | 80000 | 1.8 | 5.79 | 76.63 | 77.51 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes/deeplabv3_r18b-d8_769x769_80k_cityscapes_20201225_094144-fdc985d9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes/deeplabv3_r18b-d8_769x769_80k_cityscapes-20201225_094144.log.json) | +| DeepLabV3 | R-50b-D8 | 769x769 | 80000 | 6.8 | 1.16 | 78.80 | 80.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes/deeplabv3_r50b-d8_769x769_80k_cityscapes_20201225_155404-87fb0cf4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes/deeplabv3_r50b-d8_769x769_80k_cityscapes-20201225_155404.log.json) | +| DeepLabV3 | R-101b-D8| 769x769 | 80000 | 10.7 | 0.82 | 79.41 | 80.73 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes/deeplabv3_r101b-d8_769x769_80k_cityscapes_20201226_190843-9142ee57.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes/deeplabv3_r101b-d8_769x769_80k_cityscapes-20201226_190843.log.json) | ### ADE20K diff --git a/configs/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes.py b/configs/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..5186bf614b --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,4 @@ +_base_ = './deeplabv3_r50-d8_512x1024_80k_cityscapes.py' +model = dict( + pretrained='torchvision://resnet101', + backbone=dict(type='ResNet', depth=101)) diff --git a/configs/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes.py b/configs/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..d185db95ad --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes.py @@ -0,0 +1,4 @@ +_base_ = './deeplabv3_r50-d8_769x769_80k_cityscapes.py' +model = dict( + pretrained='torchvision://resnet101', + backbone=dict(type='ResNet', depth=101)) diff --git a/configs/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes.py b/configs/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..e084e95c70 --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = './deeplabv3_r50-d8_512x1024_80k_cityscapes.py' +model = dict( + pretrained='open-mmlab://resnet18_v1c', + backbone=dict(depth=18), + decode_head=dict( + in_channels=512, + channels=128, + ), + auxiliary_head=dict(in_channels=256, channels=64)) diff --git a/configs/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes.py b/configs/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..a990c07653 --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = './deeplabv3_r50-d8_769x769_80k_cityscapes.py' +model = dict( + pretrained='open-mmlab://resnet18_v1c', + backbone=dict(depth=18), + decode_head=dict( + in_channels=512, + channels=128, + ), + auxiliary_head=dict(in_channels=256, channels=64)) diff --git a/configs/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes.py b/configs/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..b25e725ed9 --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = './deeplabv3_r50-d8_512x1024_80k_cityscapes.py' +model = dict( + pretrained='torchvision://resnet18', + backbone=dict(type='ResNet', depth=18), + decode_head=dict( + in_channels=512, + channels=128, + ), + auxiliary_head=dict(in_channels=256, channels=64)) diff --git a/configs/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes.py b/configs/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..fd920f0ca7 --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = './deeplabv3_r50-d8_769x769_80k_cityscapes.py' +model = dict( + pretrained='torchvision://resnet18', + backbone=dict(type='ResNet', depth=18), + decode_head=dict( + in_channels=512, + channels=128, + ), + auxiliary_head=dict(in_channels=256, channels=64)) diff --git a/configs/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes.py b/configs/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..e742d9a5ec --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './deeplabv3_r50-d8_512x1024_80k_cityscapes.py' +model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet')) diff --git a/configs/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes.py b/configs/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..332d9cfb79 --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './deeplabv3_r50-d8_769x769_80k_cityscapes.py' +model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet')) diff --git a/configs/deeplabv3plus/README.md b/configs/deeplabv3plus/README.md index 1c9e3f782b..75a8c33a7e 100644 --- a/configs/deeplabv3plus/README.md +++ b/configs/deeplabv3plus/README.md @@ -25,12 +25,20 @@ Note: | DeepLabV3+ | R-101-D8 | 512x1024 | 40000 | 11 | 2.60 | 80.21 | 81.82 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes/deeplabv3plus_r101-d8_512x1024_40k_cityscapes_20200605_094614-3769eecf.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes/deeplabv3plus_r101-d8_512x1024_40k_cityscapes_20200605_094614.log.json) | | DeepLabV3+ | R-50-D8 | 769x769 | 40000 | 8.5 | 1.72 | 78.97 | 80.46 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes/deeplabv3plus_r50-d8_769x769_40k_cityscapes_20200606_114143-1dcb0e3c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes/deeplabv3plus_r50-d8_769x769_40k_cityscapes_20200606_114143.log.json) | | DeepLabV3+ | R-101-D8 | 769x769 | 40000 | 12.5 | 1.15 | 79.46 | 80.50 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes/deeplabv3plus_r101-d8_769x769_40k_cityscapes_20200606_114304-ff414b9e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes/deeplabv3plus_r101-d8_769x769_40k_cityscapes_20200606_114304.log.json) | +| DeepLabV3+ | R-18-D8 | 512x1024 | 80000 | 2.2 | 14.27 | 76.89 | 78.76 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes/deeplabv3plus_r18-d8_512x1024_80k_cityscapes_20201226_080942-cff257fe.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes/deeplabv3plus_r18-d8_512x1024_80k_cityscapes-20201226_080942.log.json) | | DeepLabV3+ | R-50-D8 | 512x1024 | 80000 | - | - | 80.09 | 81.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes/deeplabv3plus_r50-d8_512x1024_80k_cityscapes_20200606_114049-f9fb496d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes/deeplabv3plus_r50-d8_512x1024_80k_cityscapes_20200606_114049.log.json) | | DeepLabV3+ | R-101-D8 | 512x1024 | 80000 | - | - | 80.97 | 82.03 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143-068fcfe9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143.log.json) | +| DeepLabV3+ | R-18-D8 | 769x769 | 80000 | 2.5 | 5.74 | 76.26 | 77.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes/deeplabv3plus_r18-d8_769x769_80k_cityscapes_20201226_083346-f326e06a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes/deeplabv3plus_r18-d8_769x769_80k_cityscapes-20201226_083346.log.json) | | DeepLabV3+ | R-50-D8 | 769x769 | 80000 | - | - | 79.83 | 81.48 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes/deeplabv3plus_r50-d8_769x769_80k_cityscapes_20200606_210233-0e9dfdc4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes/deeplabv3plus_r50-d8_769x769_80k_cityscapes_20200606_210233.log.json) | | DeepLabV3+ | R-101-D8 | 769x769 | 80000 | - | - | 80.98 | 82.18 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes/deeplabv3plus_r101-d8_769x769_80k_cityscapes_20200607_000405-a7573d20.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes/deeplabv3plus_r101-d8_769x769_80k_cityscapes_20200607_000405.log.json) | | DeepLabV3+ | R-101-D16-MG124 | 512x1024 | 40000 | 5.8 | 7.48 | 79.09 | 80.36 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes_20200908_005644-cf9ce186.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes-20200908_005644.log.json) | | DeepLabV3+ | R-101-D16-MG124 | 512x1024 | 80000 | 9.9 | - | 79.90 | 81.33 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes_20200908_005644-ee6158e0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes-20200908_005644.log.json) | +| DeepLabV3+ | R-18b-D8 | 512x1024 | 80000 | 2.1 | 14.95 | 75.87 | 77.52 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes_20201226_090828-e451abd9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes-20201226_090828.log.json) | +| DeepLabV3+ | R-50b-D8 | 512x1024 | 80000 | 7.4 | 3.94 | 80.28 | 81.44 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes_20201225_213645-a97e4e43.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes-20201225_213645.log.json) | +| DeepLabV3+ | R-101b-D8| 512x1024 | 80000 | 10.9 | 2.60 | 80.16 | 81.41 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes_20201226_190843-9c3c93a4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes-20201226_190843.log.json) | +| DeepLabV3+ | R-18b-D8 | 769x769 | 80000 | 2.4 | 5.96 | 76.36 | 78.24 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes/deeplabv3plus_r18b-d8_769x769_80k_cityscapes_20201226_151312-2c868aff.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes/deeplabv3plus_r18b-d8_769x769_80k_cityscapes-20201226_151312.log.json) | +| DeepLabV3+ | R-50b-D8 | 769x769 | 80000 | 8.4 | 1.72 | 79.41 | 80.56 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes/deeplabv3plus_r50b-d8_769x769_80k_cityscapes_20201225_224655-8b596d1c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes/deeplabv3plus_r50b-d8_769x769_80k_cityscapes-20201225_224655.log.json) | +| DeepLabV3+ | R-101b-D8| 769x769 | 80000 | 12.3 | 1.10 | 79.88 | 81.46 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes/deeplabv3plus_r101b-d8_769x769_80k_cityscapes_20201226_205041-227cdf7c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes/deeplabv3plus_r101b-d8_769x769_80k_cityscapes-20201226_205041.log.json) | ### ADE20K diff --git a/configs/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py b/configs/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..398d9759ca --- /dev/null +++ b/configs/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,4 @@ +_base_ = './deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py' +model = dict( + pretrained='torchvision://resnet101', + backbone=dict(type='ResNet', depth=101)) diff --git a/configs/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py b/configs/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..136449083f --- /dev/null +++ b/configs/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py @@ -0,0 +1,4 @@ +_base_ = './deeplabv3plus_r50-d8_769x769_80k_cityscapes.py' +model = dict( + pretrained='torchvision://resnet101', + backbone=dict(type='ResNet', depth=101)) diff --git a/configs/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py b/configs/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..aff70c93e6 --- /dev/null +++ b/configs/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,11 @@ +_base_ = './deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py' +model = dict( + pretrained='open-mmlab://resnet18_v1c', + backbone=dict(depth=18), + decode_head=dict( + c1_in_channels=64, + c1_channels=12, + in_channels=512, + channels=128, + ), + auxiliary_head=dict(in_channels=256, channels=64)) diff --git a/configs/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes.py b/configs/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..0172d9a87d --- /dev/null +++ b/configs/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes.py @@ -0,0 +1,11 @@ +_base_ = './deeplabv3plus_r50-d8_769x769_80k_cityscapes.py' +model = dict( + pretrained='open-mmlab://resnet18_v1c', + backbone=dict(depth=18), + decode_head=dict( + c1_in_channels=64, + c1_channels=12, + in_channels=512, + channels=128, + ), + auxiliary_head=dict(in_channels=256, channels=64)) diff --git a/configs/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py b/configs/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..b90b292b03 --- /dev/null +++ b/configs/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,11 @@ +_base_ = './deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py' +model = dict( + pretrained='torchvision://resnet18', + backbone=dict(type='ResNet', depth=18), + decode_head=dict( + c1_in_channels=64, + c1_channels=12, + in_channels=512, + channels=128, + ), + auxiliary_head=dict(in_channels=256, channels=64)) diff --git a/configs/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py b/configs/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..b49da3581d --- /dev/null +++ b/configs/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py @@ -0,0 +1,11 @@ +_base_ = './deeplabv3plus_r50-d8_769x769_80k_cityscapes.py' +model = dict( + pretrained='torchvision://resnet18', + backbone=dict(type='ResNet', depth=18), + decode_head=dict( + c1_in_channels=64, + c1_channels=12, + in_channels=512, + channels=128, + ), + auxiliary_head=dict(in_channels=256, channels=64)) diff --git a/configs/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes.py b/configs/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..dd8e1da9c7 --- /dev/null +++ b/configs/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py' +model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet')) diff --git a/configs/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes.py b/configs/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..c0ba019136 --- /dev/null +++ b/configs/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './deeplabv3plus_r50-d8_769x769_80k_cityscapes.py' +model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet')) diff --git a/configs/fcn/README.md b/configs/fcn/README.md index 332c03ea62..b330f6ef55 100644 --- a/configs/fcn/README.md +++ b/configs/fcn/README.md @@ -25,10 +25,18 @@ | FCN | R-101-D8 | 512x1024 | 40000 | 9.2 | 2.66 | 75.45 | 76.58 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_40k_cityscapes/fcn_r101-d8_512x1024_40k_cityscapes_20200604_181852-a883d3a1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_40k_cityscapes/fcn_r101-d8_512x1024_40k_cityscapes_20200604_181852.log.json) | | FCN | R-50-D8 | 769x769 | 40000 | 6.5 | 1.80 | 71.47 | 72.54 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_40k_cityscapes/fcn_r50-d8_769x769_40k_cityscapes_20200606_113104-977b5d02.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_40k_cityscapes/fcn_r50-d8_769x769_40k_cityscapes_20200606_113104.log.json) | | FCN | R-101-D8 | 769x769 | 40000 | 10.4 | 1.19 | 73.93 | 75.14 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_40k_cityscapes/fcn_r101-d8_769x769_40k_cityscapes_20200606_113208-7d4ab69c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_40k_cityscapes/fcn_r101-d8_769x769_40k_cityscapes_20200606_113208.log.json) | -| FCN | R-50-D8 | 512x1024 | 80000 | - | - | 73.61 | 74.24 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_80k_cityscapes/fcn_r50-d8_512x1024_80k_cityscapes_20200606_113019-03aa804d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_80k_cityscapes/fcn_r50-d8_512x1024_80k_cityscapes_20200606_113019.log.json) | +| FCN | R-18-D8 | 512x1024 | 80000 | 1.7 | 14.65 | 71.11 | 72.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_512x1024_80k_cityscapes/fcn_r18-d8_512x1024_80k_cityscapes_20201225_021327-6c50f8b4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_512x1024_80k_cityscapes/fcn_r18-d8_512x1024_80k_cityscapes-20201225_021327.log.json) | +| FCN | R-50-D8 | 512x1024 | 80000 | - | | 73.61 | 74.24 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_80k_cityscapes/fcn_r50-d8_512x1024_80k_cityscapes_20200606_113019-03aa804d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_80k_cityscapes/fcn_r50-d8_512x1024_80k_cityscapes_20200606_113019.log.json) | | FCN | R-101-D8 | 512x1024 | 80000 | - | - | 75.13 | 75.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_80k_cityscapes/fcn_r101-d8_512x1024_80k_cityscapes_20200606_113038-3fb937eb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_80k_cityscapes/fcn_r101-d8_512x1024_80k_cityscapes_20200606_113038.log.json) | +| FCN | R-18-D8 | 769x769 | 80000 | 1.9 | 6.40 | 70.80 | 73.16 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_769x769_80k_cityscapes/fcn_r18-d8_769x769_80k_cityscapes_20201225_021451-9739d1b8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_769x769_80k_cityscapes/fcn_r18-d8_769x769_80k_cityscapes-20201225_021451.log.json) | | FCN | R-50-D8 | 769x769 | 80000 | - | - | 72.64 | 73.32 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_80k_cityscapes/fcn_r50-d8_769x769_80k_cityscapes_20200606_195749-f5caeabc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_80k_cityscapes/fcn_r50-d8_769x769_80k_cityscapes_20200606_195749.log.json) | | FCN | R-101-D8 | 769x769 | 80000 | - | - | 75.52 | 76.61 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_80k_cityscapes/fcn_r101-d8_769x769_80k_cityscapes_20200606_214354-45cbac68.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_80k_cityscapes/fcn_r101-d8_769x769_80k_cityscapes_20200606_214354.log.json) | +| FCN | R-18b-D8 | 512x1024 | 80000 | 1.6 | 16.74 | 70.24 | 72.77 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_512x1024_80k_cityscapes/fcn_r18b-d8_512x1024_80k_cityscapes_20201225_230143-92c0f445.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_512x1024_80k_cityscapes/fcn_r18b-d8_512x1024_80k_cityscapes-20201225_230143.log.json) | +| FCN | R-50b-D8 | 512x1024 | 80000 | 5.6 | 4.20 | 75.65 | 77.59 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_512x1024_80k_cityscapes/fcn_r50b-d8_512x1024_80k_cityscapes_20201225_094221-82957416.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_512x1024_80k_cityscapes/fcn_r50b-d8_512x1024_80k_cityscapes-20201225_094221.log.json) | +| FCN | R-101b-D8| 512x1024 | 80000 | 9.1 | 2.73 | 77.37 | 78.77 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_512x1024_80k_cityscapes/fcn_r101b-d8_512x1024_80k_cityscapes_20201226_160213-4543858f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_512x1024_80k_cityscapes/fcn_r101b-d8_512x1024_80k_cityscapes-20201226_160213.log.json) | +| FCN | R-18b-D8 | 769x769 | 80000 | 1.7 | 6.70 | 69.66 | 72.07 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_769x769_80k_cityscapes/fcn_r18b-d8_769x769_80k_cityscapes_20201226_004430-32d504e5.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_769x769_80k_cityscapes/fcn_r18b-d8_769x769_80k_cityscapes-20201226_004430.log.json) | +| FCN | R-50b-D8 | 769x769 | 80000 | 6.3 | 1.82 | 73.83 | 76.60 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_769x769_80k_cityscapes/fcn_r50b-d8_769x769_80k_cityscapes_20201225_094223-94552d38.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_769x769_80k_cityscapes/fcn_r50b-d8_769x769_80k_cityscapes-20201225_094223.log.json) | +| FCN | R-101b-D8| 769x769 | 80000 | 10.3 | 1.15 | 77.02 | 78.67 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_769x769_80k_cityscapes/fcn_r101b-d8_769x769_80k_cityscapes_20201226_170012-82be37e2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_769x769_80k_cityscapes/fcn_r101b-d8_769x769_80k_cityscapes-20201226_170012.log.json) | ### ADE20K diff --git a/configs/fcn/fcn_r101b-d8_512x1024_80k_cityscapes.py b/configs/fcn/fcn_r101b-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..1b9bf60fc1 --- /dev/null +++ b/configs/fcn/fcn_r101b-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,4 @@ +_base_ = './fcn_r50-d8_512x1024_80k_cityscapes.py' +model = dict( + pretrained='torchvision://resnet101', + backbone=dict(type='ResNet', depth=101)) diff --git a/configs/fcn/fcn_r101b-d8_769x769_80k_cityscapes.py b/configs/fcn/fcn_r101b-d8_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..f36eb02e68 --- /dev/null +++ b/configs/fcn/fcn_r101b-d8_769x769_80k_cityscapes.py @@ -0,0 +1,4 @@ +_base_ = './fcn_r50-d8_769x769_80k_cityscapes.py' +model = dict( + pretrained='torchvision://resnet101', + backbone=dict(type='ResNet', depth=101)) diff --git a/configs/fcn/fcn_r18-d8_512x1024_80k_cityscapes.py b/configs/fcn/fcn_r18-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..5a1d29e480 --- /dev/null +++ b/configs/fcn/fcn_r18-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = './fcn_r50-d8_512x1024_80k_cityscapes.py' +model = dict( + pretrained='open-mmlab://resnet18_v1c', + backbone=dict(depth=18), + decode_head=dict( + in_channels=512, + channels=128, + ), + auxiliary_head=dict(in_channels=256, channels=64)) diff --git a/configs/fcn/fcn_r18-d8_769x769_80k_cityscapes.py b/configs/fcn/fcn_r18-d8_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..6644a58dea --- /dev/null +++ b/configs/fcn/fcn_r18-d8_769x769_80k_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = './fcn_r50-d8_769x769_80k_cityscapes.py' +model = dict( + pretrained='open-mmlab://resnet18_v1c', + backbone=dict(depth=18), + decode_head=dict( + in_channels=512, + channels=128, + ), + auxiliary_head=dict(in_channels=256, channels=64)) diff --git a/configs/fcn/fcn_r18b-d8_512x1024_80k_cityscapes.py b/configs/fcn/fcn_r18b-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..92accfc703 --- /dev/null +++ b/configs/fcn/fcn_r18b-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = './fcn_r50-d8_512x1024_80k_cityscapes.py' +model = dict( + pretrained='torchvision://resnet18', + backbone=dict(type='ResNet', depth=18), + decode_head=dict( + in_channels=512, + channels=128, + ), + auxiliary_head=dict(in_channels=256, channels=64)) diff --git a/configs/fcn/fcn_r18b-d8_769x769_80k_cityscapes.py b/configs/fcn/fcn_r18b-d8_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..5dd34dd213 --- /dev/null +++ b/configs/fcn/fcn_r18b-d8_769x769_80k_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = './fcn_r50-d8_769x769_80k_cityscapes.py' +model = dict( + pretrained='torchvision://resnet18', + backbone=dict(type='ResNet', depth=18), + decode_head=dict( + in_channels=512, + channels=128, + ), + auxiliary_head=dict(in_channels=256, channels=64)) diff --git a/configs/fcn/fcn_r50b-d8_512x1024_80k_cityscapes.py b/configs/fcn/fcn_r50b-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..28ef13f8d1 --- /dev/null +++ b/configs/fcn/fcn_r50b-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './fcn_r50-d8_512x1024_80k_cityscapes.py' +model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet')) diff --git a/configs/fcn/fcn_r50b-d8_769x769_80k_cityscapes.py b/configs/fcn/fcn_r50b-d8_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..106f7b6a1e --- /dev/null +++ b/configs/fcn/fcn_r50b-d8_769x769_80k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './fcn_r50-d8_769x769_80k_cityscapes.py' +model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet')) diff --git a/configs/pspnet/README.md b/configs/pspnet/README.md index d270af4b91..9a3d3a1832 100644 --- a/configs/pspnet/README.md +++ b/configs/pspnet/README.md @@ -21,10 +21,18 @@ | PSPNet | R-101-D8 | 512x1024 | 40000 | 9.6 | 2.68 | 78.34 | 79.74 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes/pspnet_r101-d8_512x1024_40k_cityscapes_20200604_232751-467e7cf4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes/pspnet_r101-d8_512x1024_40k_cityscapes_20200604_232751.log.json) | | PSPNet | R-50-D8 | 769x769 | 40000 | 6.9 | 1.76 | 78.26 | 79.88 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_40k_cityscapes/pspnet_r50-d8_769x769_40k_cityscapes_20200606_112725-86638686.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_40k_cityscapes/pspnet_r50-d8_769x769_40k_cityscapes_20200606_112725.log.json) | | PSPNet | R-101-D8 | 769x769 | 40000 | 10.9 | 1.15 | 79.08 | 80.28 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_40k_cityscapes/pspnet_r101-d8_769x769_40k_cityscapes_20200606_112753-61c6f5be.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_40k_cityscapes/pspnet_r101-d8_769x769_40k_cityscapes_20200606_112753.log.json) | +| PSPNet | R-18-D8 | 512x1024 | 80000 | 1.7 | 15.71 | 74.87 | 76.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes/pspnet_r18-d8_512x1024_80k_cityscapes_20201225_021458-09ffa746.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes/pspnet_r18-d8_512x1024_80k_cityscapes-20201225_021458.log.json) | | PSPNet | R-50-D8 | 512x1024 | 80000 | - | - | 78.55 | 79.79 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes/pspnet_r50-d8_512x1024_80k_cityscapes_20200606_112131-2376f12b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes/pspnet_r50-d8_512x1024_80k_cityscapes_20200606_112131.log.json) | | PSPNet | R-101-D8 | 512x1024 | 80000 | - | - | 79.76 | 81.01 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes/pspnet_r101-d8_512x1024_80k_cityscapes_20200606_112211-e1e1100f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes/pspnet_r101-d8_512x1024_80k_cityscapes_20200606_112211.log.json) | +| PSPNet | R-18-D8 | 769x769 | 80000 | 1.9 | 6.20 | 75.90 | 77.86 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_769x769_80k_cityscapes/pspnet_r18-d8_769x769_80k_cityscapes_20201225_021458-3deefc62.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_769x769_80k_cityscapes/pspnet_r18-d8_769x769_80k_cityscapes-20201225_021458.log.json) | | PSPNet | R-50-D8 | 769x769 | 80000 | - | - | 79.59 | 80.69 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_80k_cityscapes/pspnet_r50-d8_769x769_80k_cityscapes_20200606_210121-5ccf03dd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_80k_cityscapes/pspnet_r50-d8_769x769_80k_cityscapes_20200606_210121.log.json) | | PSPNet | R-101-D8 | 769x769 | 80000 | - | - | 79.77 | 81.06 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_80k_cityscapes/pspnet_r101-d8_769x769_80k_cityscapes_20200606_225055-dba412fa.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_80k_cityscapes/pspnet_r101-d8_769x769_80k_cityscapes_20200606_225055.log.json) | +| PSPNet | R-18b-D8 | 512x1024 | 80000 | 1.5 | 16.28 | 74.23 | 75.79 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes/pspnet_r18b-d8_512x1024_80k_cityscapes_20201226_063116-26928a60.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes/pspnet_r18b-d8_512x1024_80k_cityscapes-20201226_063116.log.json) | +| PSPNet | R-50b-D8 | 512x1024 | 80000 | 6.0 | 4.30 | 78.22 | 79.46 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes/pspnet_r50b-d8_512x1024_80k_cityscapes_20201225_094315-6344287a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes/pspnet_r50b-d8_512x1024_80k_cityscapes-20201225_094315.log.json) | +| PSPNet | R-101b-D8| 512x1024 | 80000 | 9.5 | 2.76 | 79.69 | 80.79 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes_20201226_170012-3a4d38ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes-20201226_170012.log.json) | +| PSPNet | R-18b-D8 | 769x769 | 80000 | 1.7 | 6.41 | 74.92 | 76.90 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes/pspnet_r18b-d8_769x769_80k_cityscapes_20201226_080942-bf98d186.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes/pspnet_r18b-d8_769x769_80k_cityscapes-20201226_080942.log.json) | +| PSPNet | R-50b-D8 | 769x769 | 80000 | 6.8 | 1.88 | 78.50 | 79.96 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes/pspnet_r50b-d8_769x769_80k_cityscapes_20201225_094316-4c643cf6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes/pspnet_r50b-d8_769x769_80k_cityscapes-20201225_094316.log.json) | +| PSPNet | R-101b-D8| 769x769 | 80000 | 10.8 | 1.17 | 78.87 | 80.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes/pspnet_r101b-d8_769x769_80k_cityscapes_20201226_171823-f0e7c293.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes/pspnet_r101b-d8_769x769_80k_cityscapes-20201226_171823.log.json) | ### ADE20K diff --git a/configs/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes.py b/configs/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..ab8a3d3e3f --- /dev/null +++ b/configs/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,4 @@ +_base_ = './pspnet_r50-d8_512x1024_80k_cityscapes.py' +model = dict( + pretrained='torchvision://resnet101', + backbone=dict(type='ResNet', depth=101)) diff --git a/configs/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes.py b/configs/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..1a7cb708e5 --- /dev/null +++ b/configs/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes.py @@ -0,0 +1,4 @@ +_base_ = './pspnet_r50-d8_769x769_80k_cityscapes.py' +model = dict( + pretrained='torchvision://resnet101', + backbone=dict(type='ResNet', depth=101)) diff --git a/configs/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes.py b/configs/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..d914f93c02 --- /dev/null +++ b/configs/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = './pspnet_r50-d8_512x1024_80k_cityscapes.py' +model = dict( + pretrained='open-mmlab://resnet18_v1c', + backbone=dict(depth=18), + decode_head=dict( + in_channels=512, + channels=128, + ), + auxiliary_head=dict(in_channels=256, channels=64)) diff --git a/configs/pspnet/pspnet_r18-d8_769x769_80k_cityscapes.py b/configs/pspnet/pspnet_r18-d8_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..5893e66a41 --- /dev/null +++ b/configs/pspnet/pspnet_r18-d8_769x769_80k_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = './pspnet_r50-d8_769x769_80k_cityscapes.py' +model = dict( + pretrained='open-mmlab://resnet18_v1c', + backbone=dict(depth=18), + decode_head=dict( + in_channels=512, + channels=128, + ), + auxiliary_head=dict(in_channels=256, channels=64)) diff --git a/configs/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes.py b/configs/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..abeeedf843 --- /dev/null +++ b/configs/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = './pspnet_r50-d8_512x1024_80k_cityscapes.py' +model = dict( + pretrained='torchvision://resnet18', + backbone=dict(type='ResNet', depth=18), + decode_head=dict( + in_channels=512, + channels=128, + ), + auxiliary_head=dict(in_channels=256, channels=64)) diff --git a/configs/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes.py b/configs/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..284be6d09a --- /dev/null +++ b/configs/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = './pspnet_r50-d8_769x769_80k_cityscapes.py' +model = dict( + pretrained='torchvision://resnet18', + backbone=dict(type='ResNet', depth=18), + decode_head=dict( + in_channels=512, + channels=128, + ), + auxiliary_head=dict(in_channels=256, channels=64)) diff --git a/configs/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes.py b/configs/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..946bf4fc84 --- /dev/null +++ b/configs/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './pspnet_r50-d8_512x1024_80k_cityscapes.py' +model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet')) diff --git a/configs/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes.py b/configs/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..b6087dcf9f --- /dev/null +++ b/configs/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './pspnet_r50-d8_769x769_80k_cityscapes.py' +model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet')) From 5eafe8f6dfed00296cc4f028f14cd99763f93708 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Sat, 2 Jan 2021 15:29:56 -0800 Subject: [PATCH 086/706] Bump to v0.10 (#325) * Bump to v0.10 * change version --- README.md | 2 +- docs/changelog.md | 24 ++++++++++++++++++++++++ docs/tutorials/training_tricks.md | 2 +- mmseg/version.py | 2 +- 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e7509c6202..820fbc9947 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ This project is released under the [Apache 2.0 license](LICENSE). ## Changelog -v0.9.0 was released in 30/11/2020. +v0.10.0 was released in 01/01/2021. Please refer to [changelog.md](docs/changelog.md) for details and release history. ## Benchmark and model zoo diff --git a/docs/changelog.md b/docs/changelog.md index 7b9c6ffb7b..75ae339640 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,5 +1,29 @@ ## Changelog +### V0.10 (01/01/2021) + +**Highlights** + +- Support MobileNetV3, DMNet, APCNet. Add models of ResNet18V1b, ResNet18V1c, ResNet50V1b. + +**Bug Fixes** + +- Fixed CPU TTA ([#276](https://github.com/open-mmlab/mmsegmentation/pull/276)) +- Fixed CI for pip 20.3 ([#307](https://github.com/open-mmlab/mmsegmentation/pull/307)) + +**New Features** + +- Add ResNet18V1b, ResNet18V1c, ResNet50V1b OS16 models ([#316](https://github.com/open-mmlab/mmsegmentation/pull/316)) +- Support MobileNetV3 ([#268](https://github.com/open-mmlab/mmsegmentation/pull/268)) +- Add 4 retinal vessel segmentation benchmark ([#315](https://github.com/open-mmlab/mmsegmentation/pull/315)) +- Support DMNet ([#313](https://github.com/open-mmlab/mmsegmentation/pull/313)) +- Support APCNet ([#299](https://github.com/open-mmlab/mmsegmentation/pull/299)) + +**Improvements** + +- Refactor Documentation page ([#311](https://github.com/open-mmlab/mmsegmentation/pull/311)) +- Support resize data augmentation according to original image size ([#291](https://github.com/open-mmlab/mmsegmentation/pull/291)) + ### V0.9 (30/11/2020) **Highlights** diff --git a/docs/tutorials/training_tricks.md b/docs/tutorials/training_tricks.md index 14ed8b3d12..98a201fa64 100644 --- a/docs/tutorials/training_tricks.md +++ b/docs/tutorials/training_tricks.md @@ -1,4 +1,4 @@ -# Tutorial 6: Training Tricks +# Tutorial 5: Training Tricks MMSegmentation support following training tricks out of box. diff --git a/mmseg/version.py b/mmseg/version.py index 48c1ac9eb5..8242f19a71 100644 --- a/mmseg/version.py +++ b/mmseg/version.py @@ -1,6 +1,6 @@ # Copyright (c) Open-MMLab. All rights reserved. -__version__ = '0.9.0' +__version__ = '0.10.0' def parse_version_info(version_str): From 7c4e505e7d140a59d5bfe78e929ffc035367b3bc Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Mon, 4 Jan 2021 23:52:40 -0800 Subject: [PATCH 087/706] Fix README.md (#329) --- README.md | 20 +++++++++++++++++--- docs/changelog.md | 2 +- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 820fbc9947..de5fa8faeb 100644 --- a/README.md +++ b/README.md @@ -89,15 +89,29 @@ Supported methods: ## Installation -Please refer to [INSTALL.md](docs/install.md) for installation and dataset preparation. +Please refer to [get_started.md](docs/get_started.md#installation) for installation and dataset preparation. ## Get Started -Please see [getting_started.md](docs/getting_started.md) for the basic usage of MMSegmentation. -There are also tutorials for [adding new dataset](docs/tutorials/new_dataset.md), [designing data pipeline](docs/tutorials/data_pipeline.md), and [adding new modules](docs/tutorials/new_modules.md). +Please see [train.md](docs/train.md) and [inference.md](docs/inference.md) for the basic usage of MMSegmentation. +There are also tutorials for [customizing dataset](docs/tutorials/customize_datasets.md), [designing data pipeline](docs/tutorials/data_pipeline.md), [customizing modules](docs/tutorials/customize_models.md), and [customizing runtime](docs/tutorials/customize_runtime.md). +We also provide many [training tricks](docs/tutorials/training_tricks.md). A Colab tutorial is also provided. You may preview the notebook [here](demo/MMSegmentation_Tutorial.ipynb) or directly [run](https://colab.research.google.com/github/open-mmlab/mmsegmentation/blob/master/demo/MMSegmentation_Tutorial.ipynb) on Colab. +## Citation + +If you find this project useful in your research, please consider cite: + +```latex +@misc{mmseg2020, + title={MMSegmentation, an Open Source Semantic Segmentation Toolbox}, + author={MMSegmentation Contributors}, + howpublished = {\url{https://github.com/open-mmlab/mmsegmentation}}, + year={2020} +} +``` + ## Contributing We appreciate all contributions to improve MMSegmentation. Please refer to [CONTRIBUTING.md](.github/CONTRIBUTING.md) for the contributing guideline. diff --git a/docs/changelog.md b/docs/changelog.md index 75ae339640..dcf269d130 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -13,7 +13,7 @@ **New Features** -- Add ResNet18V1b, ResNet18V1c, ResNet50V1b OS16 models ([#316](https://github.com/open-mmlab/mmsegmentation/pull/316)) +- Add ResNet18V1b, ResNet18V1c, ResNet50V1b, ResNet101V1b models ([#316](https://github.com/open-mmlab/mmsegmentation/pull/316)) - Support MobileNetV3 ([#268](https://github.com/open-mmlab/mmsegmentation/pull/268)) - Add 4 retinal vessel segmentation benchmark ([#315](https://github.com/open-mmlab/mmsegmentation/pull/315)) - Support DMNet ([#313](https://github.com/open-mmlab/mmsegmentation/pull/313)) From 022b055a661c52489fa01297fc63b905b55c7f8a Mon Sep 17 00:00:00 2001 From: yamengxi <49829199+yamengxi@users.noreply.github.com> Date: Fri, 8 Jan 2021 01:58:34 +0800 Subject: [PATCH 088/706] [Bug Fix] Fix TTA resize scale (#334) * fix tta bug * modify as suggested * fix test_tta bug --- mmseg/datasets/pipelines/test_time_aug.py | 2 +- mmseg/datasets/pipelines/transforms.py | 5 +++-- tests/test_data/test_tta.py | 6 +++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/mmseg/datasets/pipelines/test_time_aug.py b/mmseg/datasets/pipelines/test_time_aug.py index bab663653f..473a12bc86 100644 --- a/mmseg/datasets/pipelines/test_time_aug.py +++ b/mmseg/datasets/pipelines/test_time_aug.py @@ -104,7 +104,7 @@ def __call__(self, results): aug_data = [] if self.img_scale is None and mmcv.is_list_of(self.img_ratios, float): h, w = results['img'].shape[:2] - img_scale = [(int(h * ratio), int(w * ratio)) + img_scale = [(int(w * ratio), int(h * ratio)) for ratio in self.img_ratios] else: img_scale = self.img_scale diff --git a/mmseg/datasets/pipelines/transforms.py b/mmseg/datasets/pipelines/transforms.py index 801c666440..e168280adc 100644 --- a/mmseg/datasets/pipelines/transforms.py +++ b/mmseg/datasets/pipelines/transforms.py @@ -156,8 +156,9 @@ def _random_scale(self, results): if self.ratio_range is not None: if self.img_scale is None: - scale, scale_idx = self.random_sample_ratio( - results['img'].shape[:2], self.ratio_range) + h, w = results['img'].shape[:2] + scale, scale_idx = self.random_sample_ratio((w, h), + self.ratio_range) else: scale, scale_idx = self.random_sample_ratio( self.img_scale[0], self.ratio_range) diff --git a/tests/test_data/test_tta.py b/tests/test_data/test_tta.py index 61fb5aa340..cc8c71e57c 100644 --- a/tests/test_data/test_tta.py +++ b/tests/test_data/test_tta.py @@ -108,7 +108,7 @@ def test_multi_scale_flip_aug(): ) tta_module = build_from_cfg(tta_transform, PIPELINES) tta_results = tta_module(results.copy()) - assert tta_results['scale'] == [(144, 256), (288, 512), (576, 1024)] + assert tta_results['scale'] == [(256, 144), (512, 288), (1024, 576)] assert tta_results['flip'] == [False, False, False] tta_transform = dict( @@ -120,8 +120,8 @@ def test_multi_scale_flip_aug(): ) tta_module = build_from_cfg(tta_transform, PIPELINES) tta_results = tta_module(results.copy()) - assert tta_results['scale'] == [(144, 256), (144, 256), (288, 512), - (288, 512), (576, 1024), (576, 1024)] + assert tta_results['scale'] == [(256, 144), (256, 144), (512, 288), + (512, 288), (1024, 576), (1024, 576)] assert tta_results['flip'] == [False, True, False, True, False, True] tta_transform = dict( From 7a6b1eba3d3517ad69a4ee5783ef81570a54c334 Mon Sep 17 00:00:00 2001 From: congee <35596075+congee524@users.noreply.github.com> Date: Fri, 8 Jan 2021 18:00:30 +0800 Subject: [PATCH 089/706] remove the model with 0 ckpts and exclude the papers without proposing any model (#336) --- docs/stat.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/docs/stat.py b/docs/stat.py index dc310de332..f123aad881 100755 --- a/docs/stat.py +++ b/docs/stat.py @@ -4,6 +4,7 @@ import re url_prefix = 'https://github.com/open-mmlab/mmsegmentation/blob/master/' +titles_to_be_excluded = ['Mixed Precision Training'] files = sorted(glob.glob('../configs/*/README.md')) @@ -18,10 +19,16 @@ content = content_file.read() title = content.split('\n')[0].replace('#', '') - titles.append(title) + if title.strip() in titles_to_be_excluded: + continue + ckpts = set(x.lower().strip() for x in re.findall(r'https?://download.*\.pth', content) if 'mmsegmentation' in x) + if len(ckpts) == 0: + continue + + titles.append(title) num_ckpts += len(ckpts) statsmsg = f""" \t* [{title}]({url}) ({len(ckpts)} ckpts) @@ -33,7 +40,7 @@ modelzoo = f""" # Model Zoo Statistics -* Number of papers: {len(titles)} +* Number of papers: {len(set(titles))} * Number of checkpoints: {num_ckpts} {msglist} """ From 7e156454a2968f7b95b358491741ea04bc454e76 Mon Sep 17 00:00:00 2001 From: yamengxi <49829199+yamengxi@users.noreply.github.com> Date: Sun, 10 Jan 2021 15:47:31 +0800 Subject: [PATCH 090/706] memory efficient test (#330) * memory efficient test * implement efficient test * merge * Add document and docstring * fix unit test * add memory usage report --- docs/inference.md | 13 ++++ mmseg/apis/test.py | 63 +++++++++++++--- mmseg/core/evaluation/metrics.py | 123 ++++++++++++++++++++++--------- mmseg/datasets/cityscapes.py | 7 +- mmseg/datasets/custom.py | 39 +++++----- tools/test.py | 9 ++- 6 files changed, 187 insertions(+), 67 deletions(-) diff --git a/docs/inference.md b/docs/inference.md index a19c2258da..d7bc21b65a 100644 --- a/docs/inference.md +++ b/docs/inference.md @@ -25,6 +25,7 @@ Optional arguments: - `EVAL_METRICS`: Items to be evaluated on the results. Allowed values depend on the dataset, e.g., `mIoU` is available for all dataset. Cityscapes could be evaluated by `cityscapes` as well as standard `mIoU` metrics. - `--show`: If specified, segmentation results will be plotted on the images and shown in a new window. It is only applicable to single GPU testing and used for debugging and visualization. Please make sure that GUI is available in your environment, otherwise you may encounter the error like `cannot connect to X server`. - `--show-dir`: If specified, segmentation results will be plotted on the images and saved to the specified directory. It is only applicable to single GPU testing and used for debugging and visualization. You do NOT need a GUI available in your environment for using this option. +- `--eval-options`: Optional parameters during evaluation. When `efficient_test=True`, it will save intermediate results to local files to save CPU memory. Make sure that you have enough local storage space (more than 20GB). Examples: @@ -86,3 +87,15 @@ Assume that you have already downloaded the checkpoints to the directory `checkp You will get png files under `./pspnet_test_results` directory. You may run `zip -r results.zip pspnet_test_results/` and submit the zip file to [evaluation server](https://www.cityscapes-dataset.com/submit/). + +6. CPU memory efficient test DeeplabV3+ on Cityscapes (without saving the test results) and evaluate the mIoU. + + ```shell + python tools/test.py \ + configs/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py \ + deeplabv3plus_r18-d8_512x1024_80k_cityscapes_20201226_080942-cff257fe.pth \ + --eval-options efficient_test=True \ + --eval mIoU + ``` + + Using ```pmap``` to view CPU memory footprint, it used 2.25GB CPU memory with ```efficient_test=True``` and 11.06GB CPU memory with ```efficient_test=False``` . This optional parameter can save a lot of memory. diff --git a/mmseg/apis/test.py b/mmseg/apis/test.py index 7f98abf297..148df7680e 100644 --- a/mmseg/apis/test.py +++ b/mmseg/apis/test.py @@ -4,21 +4,48 @@ import tempfile import mmcv +import numpy as np import torch import torch.distributed as dist from mmcv.image import tensor2imgs from mmcv.runner import get_dist_info -def single_gpu_test(model, data_loader, show=False, out_dir=None): +def np2tmp(array, temp_file_name=None): + """Save ndarray to local numpy file. + + Args: + array (ndarray): Ndarray to save. + temp_file_name (str): Numpy file name. If 'temp_file_name=None', this + function will generate a file name with tempfile.NamedTemporaryFile + to save ndarray. Default: None. + + Returns: + str: The numpy file name. + """ + + if temp_file_name is None: + temp_file_name = tempfile.NamedTemporaryFile( + suffix='.npy', delete=False).name + np.save(temp_file_name, array) + return temp_file_name + + +def single_gpu_test(model, + data_loader, + show=False, + out_dir=None, + efficient_test=False): """Test with single GPU. Args: model (nn.Module): Model to be tested. - data_loader (nn.Dataloader): Pytorch data loader. + data_loader (utils.data.Dataloader): Pytorch data loader. show (bool): Whether show results during infernece. Default: False. - out_dir (str, optional): If specified, the results will be dumped - into the directory to save output results. + out_dir (str, optional): If specified, the results will be dumped into + the directory to save output results. + efficient_test (bool): Whether save the results as local numpy files to + save CPU memory during evaluation. Default: False. Returns: list: The prediction results. @@ -31,10 +58,6 @@ def single_gpu_test(model, data_loader, show=False, out_dir=None): for i, data in enumerate(data_loader): with torch.no_grad(): result = model(return_loss=False, **data) - if isinstance(result, list): - results.extend(result) - else: - results.append(result) if show or out_dir: img_tensor = data['img'][0] @@ -61,13 +84,26 @@ def single_gpu_test(model, data_loader, show=False, out_dir=None): show=show, out_file=out_file) + if isinstance(result, list): + if efficient_test: + result = [np2tmp(_) for _ in result] + results.extend(result) + else: + if efficient_test: + result = np2tmp(result) + results.append(result) + batch_size = data['img'][0].size(0) for _ in range(batch_size): prog_bar.update() return results -def multi_gpu_test(model, data_loader, tmpdir=None, gpu_collect=False): +def multi_gpu_test(model, + data_loader, + tmpdir=None, + gpu_collect=False, + efficient_test=False): """Test model with multiple gpus. This method tests model with multiple gpus and collects the results @@ -78,10 +114,12 @@ def multi_gpu_test(model, data_loader, tmpdir=None, gpu_collect=False): Args: model (nn.Module): Model to be tested. - data_loader (nn.Dataloader): Pytorch data loader. + data_loader (utils.data.Dataloader): Pytorch data loader. tmpdir (str): Path of directory to save the temporary results from different gpus under cpu mode. gpu_collect (bool): Option to use either gpu or cpu to collect results. + efficient_test (bool): Whether save the results as local numpy files to + save CPU memory during evaluation. Default: False. Returns: list: The prediction results. @@ -96,9 +134,14 @@ def multi_gpu_test(model, data_loader, tmpdir=None, gpu_collect=False): for i, data in enumerate(data_loader): with torch.no_grad(): result = model(return_loss=False, rescale=True, **data) + if isinstance(result, list): + if efficient_test: + result = [np2tmp(_) for _ in result] results.extend(result) else: + if efficient_test: + result = np2tmp(result) results.append(result) if rank == 0: diff --git a/mmseg/core/evaluation/metrics.py b/mmseg/core/evaluation/metrics.py index 45c62b1641..86475a8983 100644 --- a/mmseg/core/evaluation/metrics.py +++ b/mmseg/core/evaluation/metrics.py @@ -1,24 +1,49 @@ +import mmcv import numpy as np -def intersect_and_union(pred_label, label, num_classes, ignore_index): +def intersect_and_union(pred_label, + label, + num_classes, + ignore_index, + label_map=dict(), + reduce_zero_label=False): """Calculate intersection and Union. Args: - pred_label (ndarray): Prediction segmentation map - label (ndarray): Ground truth segmentation map - num_classes (int): Number of categories + pred_label (ndarray): Prediction segmentation map. + label (ndarray): Ground truth segmentation map. + num_classes (int): Number of categories. ignore_index (int): Index that will be ignored in evaluation. + label_map (dict): Mapping old labels to new labels. The parameter will + work only when label is str. Default: dict(). + reduce_zero_label (bool): Wether ignore zero label. The parameter will + work only when label is str. Default: False. Returns: ndarray: The intersection of prediction and ground truth histogram - on all classes + on all classes. ndarray: The union of prediction and ground truth histogram on all - classes + classes. ndarray: The prediction histogram on all classes. ndarray: The ground truth histogram on all classes. """ + if isinstance(pred_label, str): + pred_label = np.load(pred_label) + + if isinstance(label, str): + label = mmcv.imread(label, flag='unchanged', backend='pillow') + # modify if custom classes + if label_map is not None: + for old_id, new_id in label_map.items(): + label[label == old_id] = new_id + if reduce_zero_label: + # avoid using underflow conversion + label[label == 0] = 255 + label = label - 1 + label[label == 254] = 255 + mask = (label != ignore_index) pred_label = pred_label[mask] label = label[mask] @@ -34,20 +59,27 @@ def intersect_and_union(pred_label, label, num_classes, ignore_index): return area_intersect, area_union, area_pred_label, area_label -def total_intersect_and_union(results, gt_seg_maps, num_classes, ignore_index): +def total_intersect_and_union(results, + gt_seg_maps, + num_classes, + ignore_index, + label_map=dict(), + reduce_zero_label=False): """Calculate Total Intersection and Union. Args: - results (list[ndarray]): List of prediction segmentation maps - gt_seg_maps (list[ndarray]): list of ground truth segmentation maps - num_classes (int): Number of categories + results (list[ndarray]): List of prediction segmentation maps. + gt_seg_maps (list[ndarray]): list of ground truth segmentation maps. + num_classes (int): Number of categories. ignore_index (int): Index that will be ignored in evaluation. + label_map (dict): Mapping old labels to new labels. Default: dict(). + reduce_zero_label (bool): Wether ignore zero label. Default: False. Returns: ndarray: The intersection of prediction and ground truth histogram - on all classes + on all classes. ndarray: The union of prediction and ground truth histogram on all - classes + classes. ndarray: The prediction histogram on all classes. ndarray: The ground truth histogram on all classes. """ @@ -61,7 +93,7 @@ def total_intersect_and_union(results, gt_seg_maps, num_classes, ignore_index): for i in range(num_imgs): area_intersect, area_union, area_pred_label, area_label = \ intersect_and_union(results[i], gt_seg_maps[i], num_classes, - ignore_index=ignore_index) + ignore_index, label_map, reduce_zero_label) total_area_intersect += area_intersect total_area_union += area_union total_area_pred_label += area_pred_label @@ -70,21 +102,29 @@ def total_intersect_and_union(results, gt_seg_maps, num_classes, ignore_index): total_area_pred_label, total_area_label -def mean_iou(results, gt_seg_maps, num_classes, ignore_index, nan_to_num=None): +def mean_iou(results, + gt_seg_maps, + num_classes, + ignore_index, + nan_to_num=None, + label_map=dict(), + reduce_zero_label=False): """Calculate Mean Intersection and Union (mIoU) Args: - results (list[ndarray]): List of prediction segmentation maps - gt_seg_maps (list[ndarray]): list of ground truth segmentation maps - num_classes (int): Number of categories + results (list[ndarray]): List of prediction segmentation maps. + gt_seg_maps (list[ndarray]): list of ground truth segmentation maps. + num_classes (int): Number of categories. ignore_index (int): Index that will be ignored in evaluation. nan_to_num (int, optional): If specified, NaN values will be replaced by the numbers defined by the user. Default: None. + label_map (dict): Mapping old labels to new labels. Default: dict(). + reduce_zero_label (bool): Wether ignore zero label. Default: False. Returns: float: Overall accuracy on all images. - ndarray: Per category accuracy, shape (num_classes, ) - ndarray: Per category IoU, shape (num_classes, ) + ndarray: Per category accuracy, shape (num_classes, ). + ndarray: Per category IoU, shape (num_classes, ). """ all_acc, acc, iou = eval_metrics( @@ -93,7 +133,9 @@ def mean_iou(results, gt_seg_maps, num_classes, ignore_index, nan_to_num=None): num_classes=num_classes, ignore_index=ignore_index, metrics=['mIoU'], - nan_to_num=nan_to_num) + nan_to_num=nan_to_num, + label_map=label_map, + reduce_zero_label=reduce_zero_label) return all_acc, acc, iou @@ -101,21 +143,25 @@ def mean_dice(results, gt_seg_maps, num_classes, ignore_index, - nan_to_num=None): + nan_to_num=None, + label_map=dict(), + reduce_zero_label=False): """Calculate Mean Dice (mDice) Args: - results (list[ndarray]): List of prediction segmentation maps - gt_seg_maps (list[ndarray]): list of ground truth segmentation maps - num_classes (int): Number of categories + results (list[ndarray]): List of prediction segmentation maps. + gt_seg_maps (list[ndarray]): list of ground truth segmentation maps. + num_classes (int): Number of categories. ignore_index (int): Index that will be ignored in evaluation. nan_to_num (int, optional): If specified, NaN values will be replaced by the numbers defined by the user. Default: None. + label_map (dict): Mapping old labels to new labels. Default: dict(). + reduce_zero_label (bool): Wether ignore zero label. Default: False. Returns: float: Overall accuracy on all images. - ndarray: Per category accuracy, shape (num_classes, ) - ndarray: Per category dice, shape (num_classes, ) + ndarray: Per category accuracy, shape (num_classes, ). + ndarray: Per category dice, shape (num_classes, ). """ all_acc, acc, dice = eval_metrics( @@ -124,7 +170,9 @@ def mean_dice(results, num_classes=num_classes, ignore_index=ignore_index, metrics=['mDice'], - nan_to_num=nan_to_num) + nan_to_num=nan_to_num, + label_map=label_map, + reduce_zero_label=reduce_zero_label) return all_acc, acc, dice @@ -133,20 +181,24 @@ def eval_metrics(results, num_classes, ignore_index, metrics=['mIoU'], - nan_to_num=None): + nan_to_num=None, + label_map=dict(), + reduce_zero_label=False): """Calculate evaluation metrics Args: - results (list[ndarray]): List of prediction segmentation maps - gt_seg_maps (list[ndarray]): list of ground truth segmentation maps - num_classes (int): Number of categories + results (list[ndarray]): List of prediction segmentation maps. + gt_seg_maps (list[ndarray]): list of ground truth segmentation maps. + num_classes (int): Number of categories. ignore_index (int): Index that will be ignored in evaluation. metrics (list[str] | str): Metrics to be evaluated, 'mIoU' and 'mDice'. nan_to_num (int, optional): If specified, NaN values will be replaced by the numbers defined by the user. Default: None. + label_map (dict): Mapping old labels to new labels. Default: dict(). + reduce_zero_label (bool): Wether ignore zero label. Default: False. Returns: float: Overall accuracy on all images. - ndarray: Per category accuracy, shape (num_classes, ) - ndarray: Per category evalution metrics, shape (num_classes, ) + ndarray: Per category accuracy, shape (num_classes, ). + ndarray: Per category evalution metrics, shape (num_classes, ). """ if isinstance(metrics, str): @@ -156,8 +208,9 @@ def eval_metrics(results, raise KeyError('metrics {} is not supported'.format(metrics)) total_area_intersect, total_area_union, total_area_pred_label, \ total_area_label = total_intersect_and_union(results, gt_seg_maps, - num_classes, - ignore_index=ignore_index) + num_classes, ignore_index, + label_map, + reduce_zero_label) all_acc = total_area_intersect.sum() / total_area_label.sum() acc = total_area_intersect / total_area_label ret_metrics = [all_acc, acc] diff --git a/mmseg/datasets/cityscapes.py b/mmseg/datasets/cityscapes.py index e26cd00b09..fa9958ac14 100644 --- a/mmseg/datasets/cityscapes.py +++ b/mmseg/datasets/cityscapes.py @@ -38,6 +38,8 @@ def __init__(self, **kwargs): @staticmethod def _convert_to_label_id(result): """Convert trainId to id for cityscapes.""" + if isinstance(result, str): + result = np.load(result) import cityscapesscripts.helpers.labels as CSLabels result_copy = result.copy() for trainId, label in CSLabels.trainId2label.items(): @@ -123,7 +125,8 @@ def evaluate(self, results, metric='mIoU', logger=None, - imgfile_prefix=None): + imgfile_prefix=None, + efficient_test=False): """Evaluation in Cityscapes/default protocol. Args: @@ -154,7 +157,7 @@ def evaluate(self, if len(metrics) > 0: eval_results.update( super(CityscapesDataset, - self).evaluate(results, metrics, logger)) + self).evaluate(results, metrics, logger, efficient_test)) return eval_results diff --git a/mmseg/datasets/custom.py b/mmseg/datasets/custom.py index 4e7e30e91c..dc923fb42d 100644 --- a/mmseg/datasets/custom.py +++ b/mmseg/datasets/custom.py @@ -1,3 +1,4 @@ +import os import os.path as osp from functools import reduce @@ -226,25 +227,17 @@ def format_results(self, results, **kwargs): """Place holder to format result to dataset specific output.""" pass - def get_gt_seg_maps(self): + def get_gt_seg_maps(self, efficient_test=False): """Get ground truth segmentation maps for evaluation.""" gt_seg_maps = [] for img_info in self.img_infos: seg_map = osp.join(self.ann_dir, img_info['ann']['seg_map']) - gt_seg_map = mmcv.imread( - seg_map, flag='unchanged', backend='pillow') - # modify if custom classes - if self.label_map is not None: - for old_id, new_id in self.label_map.items(): - gt_seg_map[gt_seg_map == old_id] = new_id - if self.reduce_zero_label: - # avoid using underflow conversion - gt_seg_map[gt_seg_map == 0] = 255 - gt_seg_map = gt_seg_map - 1 - gt_seg_map[gt_seg_map == 254] = 255 - + if efficient_test: + gt_seg_map = seg_map + else: + gt_seg_map = mmcv.imread( + seg_map, flag='unchanged', backend='pillow') gt_seg_maps.append(gt_seg_map) - return gt_seg_maps def get_classes_and_palette(self, classes=None, palette=None): @@ -310,7 +303,12 @@ def get_palette_for_custom_classes(self, class_names, palette=None): return palette - def evaluate(self, results, metric='mIoU', logger=None, **kwargs): + def evaluate(self, + results, + metric='mIoU', + logger=None, + efficient_test=False, + **kwargs): """Evaluate the dataset. Args: @@ -330,7 +328,7 @@ def evaluate(self, results, metric='mIoU', logger=None, **kwargs): if not set(metric).issubset(set(allowed_metrics)): raise KeyError('metric {} is not supported'.format(metric)) eval_results = {} - gt_seg_maps = self.get_gt_seg_maps() + gt_seg_maps = self.get_gt_seg_maps(efficient_test) if self.CLASSES is None: num_classes = len( reduce(np.union1d, [np.unique(_) for _ in gt_seg_maps])) @@ -340,8 +338,10 @@ def evaluate(self, results, metric='mIoU', logger=None, **kwargs): results, gt_seg_maps, num_classes, - ignore_index=self.ignore_index, - metrics=metric) + self.ignore_index, + metric, + label_map=self.label_map, + reduce_zero_label=self.reduce_zero_label) class_table_data = [['Class'] + [m[1:] for m in metric] + ['Acc']] if self.CLASSES is None: class_names = tuple(range(num_classes)) @@ -374,4 +374,7 @@ def evaluate(self, results, metric='mIoU', logger=None, **kwargs): for i in range(1, len(summary_table_data[0])): eval_results[summary_table_data[0] [i]] = summary_table_data[1][i] / 100.0 + if mmcv.is_list_of(results, str): + for file_name in results: + os.remove(file_name) return eval_results diff --git a/tools/test.py b/tools/test.py index 3910f1f0bb..e47fcca68f 100644 --- a/tools/test.py +++ b/tools/test.py @@ -115,16 +115,21 @@ def main(): model.CLASSES = checkpoint['meta']['CLASSES'] model.PALETTE = checkpoint['meta']['PALETTE'] + efficient_test = False + if args.eval_options is not None: + efficient_test = args.eval_options.get('efficient_test', False) + if not distributed: model = MMDataParallel(model, device_ids=[0]) - outputs = single_gpu_test(model, data_loader, args.show, args.show_dir) + outputs = single_gpu_test(model, data_loader, args.show, args.show_dir, + efficient_test) else: model = MMDistributedDataParallel( model.cuda(), device_ids=[torch.cuda.current_device()], broadcast_buffers=False) outputs = multi_gpu_test(model, data_loader, args.tmpdir, - args.gpu_collect) + args.gpu_collect, efficient_test) rank, _ = get_dist_info() if rank == 0: From c8e6a82efb185b6d1561278036f546b8147e5af2 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Sun, 10 Jan 2021 18:25:39 -0800 Subject: [PATCH 091/706] [Improvement] Add OpenMMLab projects (#339) --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index de5fa8faeb..26bd6a1bff 100644 --- a/README.md +++ b/README.md @@ -122,3 +122,15 @@ MMSegmentation is an open source project that welcome any contribution and feedb We wish that the toolbox and benchmark could serve the growing research community by providing a flexible as well as standardized toolkit to reimplement existing methods and develop their own new semantic segmentation methods. + +## Projects in OpenMMLab + +- [MMCV](https://github.com/open-mmlab/mmcv): OpenMMLab foundational library for computer vision. +- [MMClassification](https://github.com/open-mmlab/mmclassification): OpenMMLab image classification toolbox and benchmark. +- [MMDetection](https://github.com/open-mmlab/mmdetection): OpenMMLab detection toolbox and benchmark. +- [MMDetection3D](https://github.com/open-mmlab/mmdetection3d): OpenMMLab's next-generation platform for general 3D object detection. +- [MMSegmentation](https://github.com/open-mmlab/mmsegmentation): OpenMMLab semantic segmentation toolbox and benchmark. +- [MMAction2](https://github.com/open-mmlab/mmaction2): OpenMMLab's next-generation action understanding toolbox and benchmark. +- [MMTracking](https://github.com/open-mmlab/mmtracking): OpenMMLab video perception toolbox and benchmark. +- [MMPose](https://github.com/open-mmlab/mmpose): OpenMMLab pose estimation toolbox and benchmark. +- [MMEditing](https://github.com/open-mmlab/mmediting): OpenMMLab image and video editing toolbox. From ce232deb098bbacfe02e981436a712e89e93905a Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Sun, 10 Jan 2021 21:35:09 -0800 Subject: [PATCH 092/706] [Improvement] Add tags for each README.md (#340) --- configs/ann/README.md | 2 ++ configs/apcnet/README.md | 2 ++ configs/ccnet/README.md | 2 ++ configs/cgnet/README.md | 2 ++ configs/danet/README.md | 2 ++ configs/deeplabv3/README.md | 2 ++ configs/deeplabv3plus/README.md | 2 ++ configs/dmnet/README.md | 2 ++ configs/dnlnet/README.md | 2 ++ configs/emanet/README.md | 2 ++ configs/encnet/README.md | 2 ++ configs/fastscnn/README.md | 2 ++ configs/fcn/README.md | 2 ++ configs/fp16/README.md | 2 ++ configs/gcnet/README.md | 2 ++ configs/hrnet/README.md | 2 ++ configs/mobilenet_v2/README.md | 2 ++ configs/mobilenet_v3/README.md | 2 ++ configs/nonlocal_net/README.md | 2 ++ configs/ocrnet/README.md | 2 ++ configs/point_rend/README.md | 2 ++ configs/psanet/README.md | 2 ++ configs/pspnet/README.md | 2 ++ configs/resnest/README.md | 2 ++ configs/sem_fpn/README.md | 2 ++ configs/unet/README.md | 2 ++ configs/upernet/README.md | 2 ++ 27 files changed, 54 insertions(+) diff --git a/configs/ann/README.md b/configs/ann/README.md index 032766c0c9..7fc1648311 100644 --- a/configs/ann/README.md +++ b/configs/ann/README.md @@ -2,6 +2,8 @@ ## Introduction +[ALGORITHM] + ```latex @inproceedings{annn, author = {Zhen Zhu and diff --git a/configs/apcnet/README.md b/configs/apcnet/README.md index 2dc55a3799..c2ab106a29 100644 --- a/configs/apcnet/README.md +++ b/configs/apcnet/README.md @@ -2,6 +2,8 @@ ## Introduction +[ALGORITHM] + ```latex @InProceedings{He_2019_CVPR, author = {He, Junjun and Deng, Zhongying and Zhou, Lei and Wang, Yali and Qiao, Yu}, diff --git a/configs/ccnet/README.md b/configs/ccnet/README.md index 6bbe44ec64..044d589678 100644 --- a/configs/ccnet/README.md +++ b/configs/ccnet/README.md @@ -2,6 +2,8 @@ ## Introduction +[ALGORITHM] + ```latex @article{huang2018ccnet, title={CCNet: Criss-Cross Attention for Semantic Segmentation}, diff --git a/configs/cgnet/README.md b/configs/cgnet/README.md index f260a47d06..00ba387203 100644 --- a/configs/cgnet/README.md +++ b/configs/cgnet/README.md @@ -2,6 +2,8 @@ ## Introduction +[ALGORITHM] + ```latext @article{wu2018cgnet, title={CGNet: A Light-weight Context Guided Network for Semantic Segmentation}, diff --git a/configs/danet/README.md b/configs/danet/README.md index 6b0b24bfe2..f49ccf9619 100644 --- a/configs/danet/README.md +++ b/configs/danet/README.md @@ -2,6 +2,8 @@ ## Introduction +[ALGORITHM] + ```latex @article{fu2018dual, title={Dual Attention Network for Scene Segmentation}, diff --git a/configs/deeplabv3/README.md b/configs/deeplabv3/README.md index 91428f831c..c4994f6469 100644 --- a/configs/deeplabv3/README.md +++ b/configs/deeplabv3/README.md @@ -2,6 +2,8 @@ ## Introduction +[ALGORITHM] + ```latext @article{chen2017rethinking, title={Rethinking atrous convolution for semantic image segmentation}, diff --git a/configs/deeplabv3plus/README.md b/configs/deeplabv3plus/README.md index 75a8c33a7e..dc02660428 100644 --- a/configs/deeplabv3plus/README.md +++ b/configs/deeplabv3plus/README.md @@ -2,6 +2,8 @@ ## Introduction +[ALGORITHM] + ```latex @inproceedings{deeplabv3plus2018, title={Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation}, diff --git a/configs/dmnet/README.md b/configs/dmnet/README.md index 64c4e65722..9b12c8d862 100644 --- a/configs/dmnet/README.md +++ b/configs/dmnet/README.md @@ -2,6 +2,8 @@ ## Introduction +[ALGORITHM] + ```latex @InProceedings{He_2019_ICCV, author = {He, Junjun and Deng, Zhongying and Qiao, Yu}, diff --git a/configs/dnlnet/README.md b/configs/dnlnet/README.md index af6fb06e8f..172dfe1a0f 100644 --- a/configs/dnlnet/README.md +++ b/configs/dnlnet/README.md @@ -2,6 +2,8 @@ ## Introduction +[ALGORITHM] + This example is to reproduce ["Disentangled Non-Local Neural Networks"](https://arxiv.org/abs/2006.06668) for semantic segmentation. It is still in progress. ## Citation diff --git a/configs/emanet/README.md b/configs/emanet/README.md index 1ea9ee15f0..40df946ed4 100644 --- a/configs/emanet/README.md +++ b/configs/emanet/README.md @@ -2,6 +2,8 @@ ## Introduction +[ALGORITHM] + ```latex @inproceedings{li2019expectation, title={Expectation-maximization attention networks for semantic segmentation}, diff --git a/configs/encnet/README.md b/configs/encnet/README.md index d5c78e3abd..6ba42f69fa 100644 --- a/configs/encnet/README.md +++ b/configs/encnet/README.md @@ -2,6 +2,8 @@ ## Introduction +[ALGORITHM] + ```latex @InProceedings{Zhang_2018_CVPR, author = {Zhang, Hang and Dana, Kristin and Shi, Jianping and Zhang, Zhongyue and Wang, Xiaogang and Tyagi, Ambrish and Agrawal, Amit}, diff --git a/configs/fastscnn/README.md b/configs/fastscnn/README.md index 5a1f6bc7b5..bb87a9f7ae 100644 --- a/configs/fastscnn/README.md +++ b/configs/fastscnn/README.md @@ -2,6 +2,8 @@ ## Introduction +[ALGORITHM] + ```latex @article{poudel2019fast, title={Fast-scnn: Fast semantic segmentation network}, diff --git a/configs/fcn/README.md b/configs/fcn/README.md index b330f6ef55..95ca2ac043 100644 --- a/configs/fcn/README.md +++ b/configs/fcn/README.md @@ -2,6 +2,8 @@ ## Introduction +[ALGORITHM] + ```latex @article{shelhamer2017fully, title={Fully convolutional networks for semantic segmentation}, diff --git a/configs/fp16/README.md b/configs/fp16/README.md index 7f5924ae7f..12c7b86ca2 100644 --- a/configs/fp16/README.md +++ b/configs/fp16/README.md @@ -2,6 +2,8 @@ ## Introduction +[ALGORITHM] + ```latex @article{micikevicius2017mixed, title={Mixed precision training}, diff --git a/configs/gcnet/README.md b/configs/gcnet/README.md index c39161048b..b840d5bf9f 100644 --- a/configs/gcnet/README.md +++ b/configs/gcnet/README.md @@ -2,6 +2,8 @@ ## Introduction +[ALGORITHM] + ```latex @inproceedings{cao2019gcnet, title={Gcnet: Non-local networks meet squeeze-excitation networks and beyond}, diff --git a/configs/hrnet/README.md b/configs/hrnet/README.md index 5084e1c522..4d77cefe3e 100644 --- a/configs/hrnet/README.md +++ b/configs/hrnet/README.md @@ -2,6 +2,8 @@ ## Introduction +[ALGORITHM] + ```latext @inproceedings{SunXLW19, title={Deep High-Resolution Representation Learning for Human Pose Estimation}, diff --git a/configs/mobilenet_v2/README.md b/configs/mobilenet_v2/README.md index 733bf66c7a..e0e75e028d 100644 --- a/configs/mobilenet_v2/README.md +++ b/configs/mobilenet_v2/README.md @@ -2,6 +2,8 @@ ## Introduction +[ALGORITHM] + ```latex @inproceedings{sandler2018mobilenetv2, title={Mobilenetv2: Inverted residuals and linear bottlenecks}, diff --git a/configs/mobilenet_v3/README.md b/configs/mobilenet_v3/README.md index a7bdd5a8ed..2bad2a731c 100644 --- a/configs/mobilenet_v3/README.md +++ b/configs/mobilenet_v3/README.md @@ -2,6 +2,8 @@ ## Introduction +[ALGORITHM] + ```latex @inproceedings{Howard_2019_ICCV, title={Searching for MobileNetV3}, diff --git a/configs/nonlocal_net/README.md b/configs/nonlocal_net/README.md index 944d382dbb..76352e265a 100644 --- a/configs/nonlocal_net/README.md +++ b/configs/nonlocal_net/README.md @@ -2,6 +2,8 @@ ## Introduction +[ALGORITHM] + ```latex @inproceedings{wang2018non, title={Non-local neural networks}, diff --git a/configs/ocrnet/README.md b/configs/ocrnet/README.md index 3a909daed7..0a4c75c708 100644 --- a/configs/ocrnet/README.md +++ b/configs/ocrnet/README.md @@ -2,6 +2,8 @@ ## Introduction +[ALGORITHM] + ```latex @article{YuanW18, title={Ocnet: Object context network for scene parsing}, diff --git a/configs/point_rend/README.md b/configs/point_rend/README.md index fcd4a33dfe..0dea3e31f8 100644 --- a/configs/point_rend/README.md +++ b/configs/point_rend/README.md @@ -2,6 +2,8 @@ ## Introduction +[ALGORITHM] + ``` @misc{alex2019pointrend, title={PointRend: Image Segmentation as Rendering}, diff --git a/configs/psanet/README.md b/configs/psanet/README.md index 3a03067098..fcb24103b8 100644 --- a/configs/psanet/README.md +++ b/configs/psanet/README.md @@ -2,6 +2,8 @@ ## Introduction +[ALGORITHM] + ```latex @inproceedings{zhao2018psanet, title={Psanet: Point-wise spatial attention network for scene parsing}, diff --git a/configs/pspnet/README.md b/configs/pspnet/README.md index 9a3d3a1832..931cad9006 100644 --- a/configs/pspnet/README.md +++ b/configs/pspnet/README.md @@ -2,6 +2,8 @@ ## Introduction +[ALGORITHM] + ```latex @inproceedings{zhao2017pspnet, title={Pyramid Scene Parsing Network}, diff --git a/configs/resnest/README.md b/configs/resnest/README.md index a84f3b22e8..31bac01ec9 100644 --- a/configs/resnest/README.md +++ b/configs/resnest/README.md @@ -2,6 +2,8 @@ ## Introduction +[ALGORITHM] + ```latex @article{zhang2020resnest, title={ResNeSt: Split-Attention Networks}, diff --git a/configs/sem_fpn/README.md b/configs/sem_fpn/README.md index f05aeb8de4..c73ade6248 100644 --- a/configs/sem_fpn/README.md +++ b/configs/sem_fpn/README.md @@ -2,6 +2,8 @@ ## Introduction +[ALGORITHM] + ```latex @article{Kirillov_2019, title={Panoptic Feature Pyramid Networks}, diff --git a/configs/unet/README.md b/configs/unet/README.md index 2b185dd4ed..760e09120b 100644 --- a/configs/unet/README.md +++ b/configs/unet/README.md @@ -2,6 +2,8 @@ ## Introduction +[ALGORITHM] + ```latex @inproceedings{ronneberger2015u, title={U-net: Convolutional networks for biomedical image segmentation}, diff --git a/configs/upernet/README.md b/configs/upernet/README.md index a3a4d6b1ea..4d53a92f9b 100644 --- a/configs/upernet/README.md +++ b/configs/upernet/README.md @@ -2,6 +2,8 @@ ## Introduction +[ALGORITHM] + ```latex @inproceedings{xiao2018unified, title={Unified perceptual parsing for scene understanding}, From d56f6823a2c3f945a1ac07fb7939065ebce94277 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Mon, 11 Jan 2021 16:07:59 +0800 Subject: [PATCH 093/706] Add more UNet-based medical segmentation benchmark (#324) * Add UNet as backbone and FCN PSPNet DeepLabV3 as decode_head benchmark on 4 retinal vessel segmentation datasets * adjust README of UNet --- .../_base_/models/deeplabv3_unet_s5-d16.py | 50 +++++++++++++++++++ .../{unet_s5-d16.py => fcn_unet_s5-d16.py} | 0 configs/_base_/models/pspnet_unet_s5-d16.py | 50 +++++++++++++++++++ configs/unet/README.md | 37 +++++++++++--- ...labv3_unet_s5-d16_128x128_40k_chase_db1.py | 7 +++ ...deeplabv3_unet_s5-d16_128x128_40k_stare.py | 6 +++ .../deeplabv3_unet_s5-d16_256x256_40k_hrf.py | 6 +++ .../deeplabv3_unet_s5-d16_64x64_40k_drive.py | 6 +++ .../fcn_unet_s5-d16_128x128_40k_chase_db1.py | 6 +++ ...y => fcn_unet_s5-d16_128x128_40k_stare.py} | 2 +- ....py => fcn_unet_s5-d16_256x256_40k_hrf.py} | 2 +- ....py => fcn_unet_s5-d16_64x64_40k_drive.py} | 2 +- ...spnet_unet_s5-d16_128x128_40k_chase_db1.py | 7 +++ ...> pspnet_unet_s5-d16_128x128_40k_stare.py} | 2 +- .../pspnet_unet_s5-d16_256x256_40k_hrf.py | 6 +++ .../pspnet_unet_s5-d16_64x64_40k_drive.py | 6 +++ 16 files changed, 185 insertions(+), 10 deletions(-) create mode 100644 configs/_base_/models/deeplabv3_unet_s5-d16.py rename configs/_base_/models/{unet_s5-d16.py => fcn_unet_s5-d16.py} (100%) create mode 100644 configs/_base_/models/pspnet_unet_s5-d16.py create mode 100644 configs/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py create mode 100644 configs/unet/deeplabv3_unet_s5-d16_128x128_40k_stare.py create mode 100644 configs/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf.py create mode 100644 configs/unet/deeplabv3_unet_s5-d16_64x64_40k_drive.py create mode 100644 configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py rename configs/unet/{unet_s5-d16_128x128_40k_chase_db1.py => fcn_unet_s5-d16_128x128_40k_stare.py} (70%) rename configs/unet/{unet_s5-d16_256x256_40k_hrf.py => fcn_unet_s5-d16_256x256_40k_hrf.py} (71%) rename configs/unet/{unet_s5-d16_64x64_40k_drive.py => fcn_unet_s5-d16_64x64_40k_drive.py} (70%) create mode 100644 configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py rename configs/unet/{unet_s5-d16_128x128_40k_stare.py => pspnet_unet_s5-d16_128x128_40k_stare.py} (69%) create mode 100644 configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py create mode 100644 configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py diff --git a/configs/_base_/models/deeplabv3_unet_s5-d16.py b/configs/_base_/models/deeplabv3_unet_s5-d16.py new file mode 100644 index 0000000000..9fce47510d --- /dev/null +++ b/configs/_base_/models/deeplabv3_unet_s5-d16.py @@ -0,0 +1,50 @@ +# model settings +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + type='EncoderDecoder', + pretrained=None, + backbone=dict( + type='UNet', + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 1, 1, 1, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(True, True, True, True), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1), + with_cp=False, + conv_cfg=None, + norm_cfg=norm_cfg, + act_cfg=dict(type='ReLU'), + upsample_cfg=dict(type='InterpConv'), + norm_eval=False), + decode_head=dict( + type='ASPPHead', + in_channels=64, + in_index=4, + channels=16, + dilations=(1, 12, 24, 36), + dropout_ratio=0.1, + num_classes=2, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + auxiliary_head=dict( + type='FCNHead', + in_channels=128, + in_index=3, + channels=64, + num_convs=1, + concat_input=False, + dropout_ratio=0.1, + num_classes=2, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))) +# model training and testing settings +train_cfg = dict() +test_cfg = dict(mode='slide', crop_size=256, stride=170) diff --git a/configs/_base_/models/unet_s5-d16.py b/configs/_base_/models/fcn_unet_s5-d16.py similarity index 100% rename from configs/_base_/models/unet_s5-d16.py rename to configs/_base_/models/fcn_unet_s5-d16.py diff --git a/configs/_base_/models/pspnet_unet_s5-d16.py b/configs/_base_/models/pspnet_unet_s5-d16.py new file mode 100644 index 0000000000..3be98685c4 --- /dev/null +++ b/configs/_base_/models/pspnet_unet_s5-d16.py @@ -0,0 +1,50 @@ +# model settings +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + type='EncoderDecoder', + pretrained=None, + backbone=dict( + type='UNet', + in_channels=3, + base_channels=64, + num_stages=5, + strides=(1, 1, 1, 1, 1), + enc_num_convs=(2, 2, 2, 2, 2), + dec_num_convs=(2, 2, 2, 2), + downsamples=(True, True, True, True), + enc_dilations=(1, 1, 1, 1, 1), + dec_dilations=(1, 1, 1, 1), + with_cp=False, + conv_cfg=None, + norm_cfg=norm_cfg, + act_cfg=dict(type='ReLU'), + upsample_cfg=dict(type='InterpConv'), + norm_eval=False), + decode_head=dict( + type='PSPHead', + in_channels=64, + in_index=4, + channels=16, + pool_scales=(1, 2, 3, 6), + dropout_ratio=0.1, + num_classes=2, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + auxiliary_head=dict( + type='FCNHead', + in_channels=128, + in_index=3, + channels=64, + num_convs=1, + concat_input=False, + dropout_ratio=0.1, + num_classes=2, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))) +# model training and testing settings +train_cfg = dict() +test_cfg = dict(mode='slide', crop_size=256, stride=170) diff --git a/configs/unet/README.md b/configs/unet/README.md index 760e09120b..d815510a19 100644 --- a/configs/unet/README.md +++ b/configs/unet/README.md @@ -17,9 +17,34 @@ ## Results and models -| Backbone | Head | Dataset | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | download | -|--------|----------|----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| UNet-S5-D16 | FCN | DRIVE | 584x565 | 64x64 | 42x42 | 40000 | 0.680 | - | 78.67 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_64x64_40k_drive/unet_s5-d16_64x64_40k_drive_20201223_191051-9cd163b8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_64x64_40k_drive/unet_s5-d16_64x64_40k_drive-20201223_191051.log.json) | -| UNet-S5-D16 | FCN | STARE | 605x700 | 128x128 | 85x85 | 40000 | 0.968 | - | 81.02 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_stare/unet_s5-d16_128x128_40k_stare_20201223_191051-e5439846.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_stare/unet_s5-d16_128x128_40k_stare-20201223_191051.log.json) | -| UNet-S5-D16 | FCN | CHASE_DB1 | 960x999 | 128x128 | 85x85 | 40000 | 0.968 | - | 80.24 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_chase_db1/unet_s5-d16_128x128_40k_chase_db1_20201223_191051-8b16ca0b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_chase_db1/unet_s5-d16_128x128_40k_chase_db1-20201223_191051.log.json) | -| UNet-S5-D16 | FCN | HRF | 2336x3504 | 256x256 | 170x170 | 40000 | 2.525 | - | 79.45 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_256x256_40k_hrf/unet_s5-d16_256x256_40k_hrf_20201223_173724-d89cf1ed.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_256x256_40k_hrf/unet_s5-d16_256x256_40k_hrf-20201223_173724.log.json) | +### DRIVE + +| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | download | +|--------|----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| UNet-S5-D16 | FCN | 584x565 | 64x64 | 42x42 | 40000 | 0.680 | - | 78.67 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_64x64_40k_drive/fcn_unet_s5-d16_64x64_40k_drive_20201223_191051-26cee593.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_64x64_40k_drive/fcn_unet_s5-d16_64x64_40k_drive-20201223_191051.log.json) | +| UNet-S5-D16 | PSPNet | 584x565 | 64x64 | 42x42 | 40000 | 0.599 | - | 78.62 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_64x64_40k_drive/pspnet_unet_s5-d16_64x64_40k_drive_20201227_181818-aac73387.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_64x64_40k_drive/pspnet_unet_s5-d16_64x64_40k_drive-20201227_181818.log.json) | +| UNet-S5-D16 | DeepLabV3 | 584x565 | 64x64 | 42x42 | 40000 | 0.596 | - | 78.69 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_64x64_40k_drive/deeplabv3_unet_s5-d16_64x64_40k_drive_20201226_094047-0671ff20.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_64x64_40k_drive/deeplabv3_unet_s5-d16_64x64_40k_drive-20201226_094047.log.json) | + +### STARE + +| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | download | +|--------|----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| UNet-S5-D16 | FCN | 605x700 | 128x128 | 85x85 | 40000 | 0.968 | - | 81.02 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_stare/fcn_unet_s5-d16_128x128_40k_stare_20201223_191051-6ea7cfda.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_stare/fcn_unet_s5-d16_128x128_40k_stare-20201223_191051.log.json) | +| UNet-S5-D16 | PSPNet | 605x700 | 128x128 | 85x85 | 40000 | 0.982 | - | 81.22 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_stare/pspnet_unet_s5-d16_128x128_40k_stare_20201227_181818-3c2923c4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_stare/pspnet_unet_s5-d16_128x128_40k_stare-20201227_181818.log.json) | +| UNet-S5-D16 | DeepLabV3 | 605x700 | 128x128 | 85x85 | 40000 | 0.999 | - | 80.93 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_stare/deeplabv3_unet_s5-d16_128x128_40k_stare_20201226_094047-93dcb93c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_stare/deeplabv3_unet_s5-d16_128x128_40k_stare-20201226_094047.log.json) | + +### CHASE_DB1 + +| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | download | +|--------|----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| UNet-S5-D16 | FCN | 960x999 | 128x128 | 85x85 | 40000 | 0.968 | - | 80.24 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_chase_db1/fcn_unet_s5-d16_128x128_40k_chase_db1_20201223_191051-95852f45.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_chase_db1/fcn_unet_s5-d16_128x128_40k_chase_db1-20201223_191051.log.json) | +| UNet-S5-D16 | PSPNet | 960x999 | 128x128 | 85x85 | 40000 | 0.982 | - | 80.36 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1/pspnet_unet_s5-d16_128x128_40k_chase_db1_20201227_181818-68d4e609.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1/pspnet_unet_s5-d16_128x128_40k_chase_db1-20201227_181818.log.json) | +| UNet-S5-D16 | DeepLabV3 | 960x999 | 128x128 | 85x85 | 40000 | 0.999 | - | 80.47 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1/deeplabv3_unet_s5-d16_128x128_40k_chase_db1_20201226_094047-4c5aefa3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1/deeplabv3_unet_s5-d16_128x128_40k_chase_db1-20201226_094047.log.json) | + +### HRF + +| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | download | +|--------|----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| UNet-S5-D16 | FCN | 2336x3504 | 256x256 | 170x170 | 40000 | 2.525 | - | 79.45 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_256x256_40k_hrf/fcn_unet_s5-d16_256x256_40k_hrf_20201223_173724-df3ec8c4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_256x256_40k_hrf/fcn_unet_s5-d16_256x256_40k_hrf-20201223_173724.log.json) | +| UNet-S5-D16 | PSPNet | 2336x3504 | 256x256 | 170x170 | 40000 | 2.588 | - | 80.07 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_256x256_40k_hrf/pspnet_unet_s5-d16_256x256_40k_hrf_20201227_181818-fdb7e29b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_256x256_40k_hrf/pspnet_unet_s5-d16_256x256_40k_hrf-20201227_181818.log.json) | +| UNet-S5-D16 | DeepLabV3 | 2336x3504 | 256x256 | 170x170 | 40000 | 2.604 | - | 80.21 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf/deeplabv3_unet_s5-d16_256x256_40k_hrf_20201226_094047-3a1fdf85.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf/deeplabv3_unet_s5-d16_256x256_40k_hrf-20201226_094047.log.json) | diff --git a/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py b/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py new file mode 100644 index 0000000000..615d241fec --- /dev/null +++ b/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py @@ -0,0 +1,7 @@ +_base_ = [ + '../_base_/models/deeplabv3_unet_s5-d16.py', + '../_base_/datasets/chase_db1.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_40k.py' +] +test_cfg = dict(crop_size=(128, 128), stride=(85, 85)) +evaluation = dict(metric='mDice') diff --git a/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_stare.py b/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_stare.py new file mode 100644 index 0000000000..286eebf445 --- /dev/null +++ b/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_stare.py @@ -0,0 +1,6 @@ +_base_ = [ + '../_base_/models/deeplabv3_unet_s5-d16.py', '../_base_/datasets/stare.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' +] +test_cfg = dict(crop_size=(128, 128), stride=(85, 85)) +evaluation = dict(metric='mDice') diff --git a/configs/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf.py b/configs/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf.py new file mode 100644 index 0000000000..40a20537a3 --- /dev/null +++ b/configs/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf.py @@ -0,0 +1,6 @@ +_base_ = [ + '../_base_/models/deeplabv3_unet_s5-d16.py', '../_base_/datasets/hrf.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' +] +test_cfg = dict(crop_size=(256, 256), stride=(170, 170)) +evaluation = dict(metric='mDice') diff --git a/configs/unet/deeplabv3_unet_s5-d16_64x64_40k_drive.py b/configs/unet/deeplabv3_unet_s5-d16_64x64_40k_drive.py new file mode 100644 index 0000000000..1ad6fd68c5 --- /dev/null +++ b/configs/unet/deeplabv3_unet_s5-d16_64x64_40k_drive.py @@ -0,0 +1,6 @@ +_base_ = [ + '../_base_/models/deeplabv3_unet_s5-d16.py', '../_base_/datasets/drive.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' +] +test_cfg = dict(crop_size=(64, 64), stride=(42, 42)) +evaluation = dict(metric='mDice') diff --git a/configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py b/configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py new file mode 100644 index 0000000000..ff5b7bbc8e --- /dev/null +++ b/configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py @@ -0,0 +1,6 @@ +_base_ = [ + '../_base_/models/fcn_unet_s5-d16.py', '../_base_/datasets/chase_db1.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' +] +test_cfg = dict(crop_size=(128, 128), stride=(85, 85)) +evaluation = dict(metric='mDice') diff --git a/configs/unet/unet_s5-d16_128x128_40k_chase_db1.py b/configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py similarity index 70% rename from configs/unet/unet_s5-d16_128x128_40k_chase_db1.py rename to configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py index f67d565816..64070a324a 100644 --- a/configs/unet/unet_s5-d16_128x128_40k_chase_db1.py +++ b/configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py @@ -1,5 +1,5 @@ _base_ = [ - '../_base_/models/unet_s5-d16.py', '../_base_/datasets/chase_db1.py', + '../_base_/models/fcn_unet_s5-d16.py', '../_base_/datasets/stare.py', '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' ] test_cfg = dict(crop_size=(128, 128), stride=(85, 85)) diff --git a/configs/unet/unet_s5-d16_256x256_40k_hrf.py b/configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py similarity index 71% rename from configs/unet/unet_s5-d16_256x256_40k_hrf.py rename to configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py index 29a803455d..8d74c0812d 100644 --- a/configs/unet/unet_s5-d16_256x256_40k_hrf.py +++ b/configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py @@ -1,5 +1,5 @@ _base_ = [ - '../_base_/models/unet_s5-d16.py', '../_base_/datasets/hrf.py', + '../_base_/models/fcn_unet_s5-d16.py', '../_base_/datasets/hrf.py', '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' ] test_cfg = dict(crop_size=(256, 256), stride=(170, 170)) diff --git a/configs/unet/unet_s5-d16_64x64_40k_drive.py b/configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py similarity index 70% rename from configs/unet/unet_s5-d16_64x64_40k_drive.py rename to configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py index 29e834a81c..c59a408e8c 100644 --- a/configs/unet/unet_s5-d16_64x64_40k_drive.py +++ b/configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py @@ -1,5 +1,5 @@ _base_ = [ - '../_base_/models/unet_s5-d16.py', '../_base_/datasets/drive.py', + '../_base_/models/fcn_unet_s5-d16.py', '../_base_/datasets/drive.py', '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' ] test_cfg = dict(crop_size=(64, 64), stride=(42, 42)) diff --git a/configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py b/configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py new file mode 100644 index 0000000000..46500ae811 --- /dev/null +++ b/configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py @@ -0,0 +1,7 @@ +_base_ = [ + '../_base_/models/pspnet_unet_s5-d16.py', + '../_base_/datasets/chase_db1.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_40k.py' +] +test_cfg = dict(crop_size=(128, 128), stride=(85, 85)) +evaluation = dict(metric='mDice') diff --git a/configs/unet/unet_s5-d16_128x128_40k_stare.py b/configs/unet/pspnet_unet_s5-d16_128x128_40k_stare.py similarity index 69% rename from configs/unet/unet_s5-d16_128x128_40k_stare.py rename to configs/unet/pspnet_unet_s5-d16_128x128_40k_stare.py index 756bbe73d1..4830b2fdd1 100644 --- a/configs/unet/unet_s5-d16_128x128_40k_stare.py +++ b/configs/unet/pspnet_unet_s5-d16_128x128_40k_stare.py @@ -1,5 +1,5 @@ _base_ = [ - '../_base_/models/unet_s5-d16.py', '../_base_/datasets/stare.py', + '../_base_/models/pspnet_unet_s5-d16.py', '../_base_/datasets/stare.py', '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' ] test_cfg = dict(crop_size=(128, 128), stride=(85, 85)) diff --git a/configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py b/configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py new file mode 100644 index 0000000000..dcfb7ec130 --- /dev/null +++ b/configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py @@ -0,0 +1,6 @@ +_base_ = [ + '../_base_/models/pspnet_unet_s5-d16.py', '../_base_/datasets/hrf.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' +] +test_cfg = dict(crop_size=(256, 256), stride=(170, 170)) +evaluation = dict(metric='mDice') diff --git a/configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py b/configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py new file mode 100644 index 0000000000..bf0b0b042a --- /dev/null +++ b/configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py @@ -0,0 +1,6 @@ +_base_ = [ + '../_base_/models/pspnet_unet_s5-d16.py', '../_base_/datasets/drive.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' +] +test_cfg = dict(crop_size=(64, 64), stride=(42, 42)) +evaluation = dict(metric='mDice') From 11471ad9bb5a6c4ae21b0e99a50011457127ab02 Mon Sep 17 00:00:00 2001 From: congee <35596075+congee524@users.noreply.github.com> Date: Thu, 14 Jan 2021 14:20:02 +0800 Subject: [PATCH 094/706] update stat to classify papers (#348) --- configs/fp16/README.md | 2 +- docs/stat.py | 27 ++++++++++++++++++++------- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/configs/fp16/README.md b/configs/fp16/README.md index 12c7b86ca2..8d12e4d780 100644 --- a/configs/fp16/README.md +++ b/configs/fp16/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] +[OTHERS] ```latex @article{micikevicius2017mixed, diff --git a/docs/stat.py b/docs/stat.py index f123aad881..3aaf060700 100755 --- a/docs/stat.py +++ b/docs/stat.py @@ -1,10 +1,12 @@ #!/usr/bin/env python +import functools as func import glob import os.path as osp import re +import numpy as np + url_prefix = 'https://github.com/open-mmlab/mmsegmentation/blob/master/' -titles_to_be_excluded = ['Mixed Precision Training'] files = sorted(glob.glob('../configs/*/README.md')) @@ -18,29 +20,40 @@ with open(f, 'r') as content_file: content = content_file.read() - title = content.split('\n')[0].replace('#', '') - if title.strip() in titles_to_be_excluded: - continue - + title = content.split('\n')[0].replace('#', '').strip() ckpts = set(x.lower().strip() for x in re.findall(r'https?://download.*\.pth', content) if 'mmsegmentation' in x) if len(ckpts) == 0: continue + _papertype = [x for x in re.findall(r'\[([A-Z]+)\]', content)] + assert len(_papertype) > 0 + papertype = _papertype[0] + + paper = set([(papertype, title)]) + titles.append(title) num_ckpts += len(ckpts) statsmsg = f""" -\t* [{title}]({url}) ({len(ckpts)} ckpts) +\t* [{papertype}] [{title}]({url}) ({len(ckpts)} ckpts) """ - stats.append((title, ckpts, statsmsg)) + stats.append((paper, ckpts, statsmsg)) +allpapers = func.reduce(lambda a, b: a.union(b), [p for p, _, _ in stats]) msglist = '\n'.join(x for _, _, x in stats) +papertypes, papercounts = np.unique([t for t, _ in allpapers], + return_counts=True) +countstr = '\n'.join( + [f' - {t}: {c}' for t, c in zip(papertypes, papercounts)]) + modelzoo = f""" # Model Zoo Statistics * Number of papers: {len(set(titles))} +{countstr} + * Number of checkpoints: {num_ckpts} {msglist} """ From c8bbd3fa9584d5b8e7c1d07983a48e043a4d9ddb Mon Sep 17 00:00:00 2001 From: yamengxi <49829199+yamengxi@users.noreply.github.com> Date: Tue, 19 Jan 2021 11:05:30 +0800 Subject: [PATCH 095/706] [New Feature]add lovasz loss (#351) * add lovasz loss * Modify as comments * Modify paper url * add unittest and remove Var * impove unittest --- mmseg/models/losses/__init__.py | 3 +- mmseg/models/losses/lovasz_loss.py | 303 +++++++++++++++++++++++++++++ tests/test_models/test_losses.py | 60 ++++++ 3 files changed, 365 insertions(+), 1 deletion(-) create mode 100644 mmseg/models/losses/lovasz_loss.py diff --git a/mmseg/models/losses/__init__.py b/mmseg/models/losses/__init__.py index 225bdde393..d623887760 100644 --- a/mmseg/models/losses/__init__.py +++ b/mmseg/models/losses/__init__.py @@ -1,10 +1,11 @@ from .accuracy import Accuracy, accuracy from .cross_entropy_loss import (CrossEntropyLoss, binary_cross_entropy, cross_entropy, mask_cross_entropy) +from .lovasz_loss import LovaszLoss from .utils import reduce_loss, weight_reduce_loss, weighted_loss __all__ = [ 'accuracy', 'Accuracy', 'cross_entropy', 'binary_cross_entropy', 'mask_cross_entropy', 'CrossEntropyLoss', 'reduce_loss', - 'weight_reduce_loss', 'weighted_loss' + 'weight_reduce_loss', 'weighted_loss', 'LovaszLoss' ] diff --git a/mmseg/models/losses/lovasz_loss.py b/mmseg/models/losses/lovasz_loss.py new file mode 100644 index 0000000000..e6e2450cfd --- /dev/null +++ b/mmseg/models/losses/lovasz_loss.py @@ -0,0 +1,303 @@ +"""Modified from https://github.com/bermanmaxim/LovaszSoftmax/blob/master/pytor +ch/lovasz_losses.py Lovasz-Softmax and Jaccard hinge loss in PyTorch Maxim +Berman 2018 ESAT-PSI KU Leuven (MIT License)""" + +import mmcv +import torch +import torch.nn as nn +import torch.nn.functional as F + +from ..builder import LOSSES +from .utils import weight_reduce_loss + + +def lovasz_grad(gt_sorted): + """Computes gradient of the Lovasz extension w.r.t sorted errors. + + See Alg. 1 in paper. + """ + p = len(gt_sorted) + gts = gt_sorted.sum() + intersection = gts - gt_sorted.float().cumsum(0) + union = gts + (1 - gt_sorted).float().cumsum(0) + jaccard = 1. - intersection / union + if p > 1: # cover 1-pixel case + jaccard[1:p] = jaccard[1:p] - jaccard[0:-1] + return jaccard + + +def flatten_binary_logits(logits, labels, ignore_index=None): + """Flattens predictions in the batch (binary case) Remove labels equal to + 'ignore_index'.""" + logits = logits.view(-1) + labels = labels.view(-1) + if ignore_index is None: + return logits, labels + valid = (labels != ignore_index) + vlogits = logits[valid] + vlabels = labels[valid] + return vlogits, vlabels + + +def flatten_probs(probs, labels, ignore_index=None): + """Flattens predictions in the batch.""" + if probs.dim() == 3: + # assumes output of a sigmoid layer + B, H, W = probs.size() + probs = probs.view(B, 1, H, W) + B, C, H, W = probs.size() + probs = probs.permute(0, 2, 3, 1).contiguous().view(-1, C) # B*H*W, C=P,C + labels = labels.view(-1) + if ignore_index is None: + return probs, labels + valid = (labels != ignore_index) + vprobs = probs[valid.nonzero().squeeze()] + vlabels = labels[valid] + return vprobs, vlabels + + +def lovasz_hinge_flat(logits, labels): + """Binary Lovasz hinge loss. + + Args: + logits (torch.Tensor): [P], logits at each prediction + (between -infty and +infty). + labels (torch.Tensor): [P], binary ground truth labels (0 or 1). + + Returns: + torch.Tensor: The calculated loss. + """ + if len(labels) == 0: + # only void pixels, the gradients should be 0 + return logits.sum() * 0. + signs = 2. * labels.float() - 1. + errors = (1. - logits * signs) + errors_sorted, perm = torch.sort(errors, dim=0, descending=True) + perm = perm.data + gt_sorted = labels[perm] + grad = lovasz_grad(gt_sorted) + loss = torch.dot(F.relu(errors_sorted), grad) + return loss + + +def lovasz_hinge(logits, + labels, + classes='present', + per_image=False, + class_weight=None, + reduction='mean', + avg_factor=None, + ignore_index=255): + """Binary Lovasz hinge loss. + + Args: + logits (torch.Tensor): [B, H, W], logits at each pixel + (between -infty and +infty). + labels (torch.Tensor): [B, H, W], binary ground truth masks (0 or 1). + classes (str | list[int], optional): Placeholder, to be consistent with + other loss. Default: None. + per_image (bool, optional): If per_image is True, compute the loss per + image instead of per batch. Default: False. + class_weight (list[float], optional): Placeholder, to be consistent + with other loss. Default: None. + reduction (str, optional): The method used to reduce the loss. Options + are "none", "mean" and "sum". This parameter only works when + per_image is True. Default: 'mean'. + avg_factor (int, optional): Average factor that is used to average + the loss. This parameter only works when per_image is True. + Default: None. + ignore_index (int | None): The label index to be ignored. Default: 255. + + Returns: + torch.Tensor: The calculated loss. + """ + if per_image: + loss = [ + lovasz_hinge_flat(*flatten_binary_logits( + logit.unsqueeze(0), label.unsqueeze(0), ignore_index)) + for logit, label in zip(logits, labels) + ] + loss = weight_reduce_loss( + torch.stack(loss), None, reduction, avg_factor) + else: + loss = lovasz_hinge_flat( + *flatten_binary_logits(logits, labels, ignore_index)) + return loss + + +def lovasz_softmax_flat(probs, labels, classes='present', class_weight=None): + """Multi-class Lovasz-Softmax loss. + + Args: + probs (torch.Tensor): [P, C], class probabilities at each prediction + (between 0 and 1). + labels (torch.Tensor): [P], ground truth labels (between 0 and C - 1). + classes (str | list[int], optional): Classes choosed to calculate loss. + 'all' for all classes, 'present' for classes present in labels, or + a list of classes to average. Default: 'present'. + class_weight (list[float], optional): The weight for each class. + Default: None. + + Returns: + torch.Tensor: The calculated loss. + """ + if probs.numel() == 0: + # only void pixels, the gradients should be 0 + return probs * 0. + C = probs.size(1) + losses = [] + class_to_sum = list(range(C)) if classes in ['all', 'present'] else classes + for c in class_to_sum: + fg = (labels == c).float() # foreground for class c + if (classes == 'present' and fg.sum() == 0): + continue + if C == 1: + if len(classes) > 1: + raise ValueError('Sigmoid output possible only with 1 class') + class_pred = probs[:, 0] + else: + class_pred = probs[:, c] + errors = (fg - class_pred).abs() + errors_sorted, perm = torch.sort(errors, 0, descending=True) + perm = perm.data + fg_sorted = fg[perm] + loss = torch.dot(errors_sorted, lovasz_grad(fg_sorted)) + if class_weight is not None: + loss *= class_weight[c] + losses.append(loss) + return torch.stack(losses).mean() + + +def lovasz_softmax(probs, + labels, + classes='present', + per_image=False, + class_weight=None, + reduction='mean', + avg_factor=None, + ignore_index=255): + """Multi-class Lovasz-Softmax loss. + + Args: + probs (torch.Tensor): [B, C, H, W], class probabilities at each + prediction (between 0 and 1). + labels (torch.Tensor): [B, H, W], ground truth labels (between 0 and + C - 1). + classes (str | list[int], optional): Classes choosed to calculate loss. + 'all' for all classes, 'present' for classes present in labels, or + a list of classes to average. Default: 'present'. + per_image (bool, optional): If per_image is True, compute the loss per + image instead of per batch. Default: False. + class_weight (list[float], optional): The weight for each class. + Default: None. + reduction (str, optional): The method used to reduce the loss. Options + are "none", "mean" and "sum". This parameter only works when + per_image is True. Default: 'mean'. + avg_factor (int, optional): Average factor that is used to average + the loss. This parameter only works when per_image is True. + Default: None. + ignore_index (int | None): The label index to be ignored. Default: 255. + + Returns: + torch.Tensor: The calculated loss. + """ + + if per_image: + loss = [ + lovasz_softmax_flat( + *flatten_probs( + prob.unsqueeze(0), label.unsqueeze(0), ignore_index), + classes=classes, + class_weight=class_weight) + for prob, label in zip(probs, labels) + ] + loss = weight_reduce_loss( + torch.stack(loss), None, reduction, avg_factor) + else: + loss = lovasz_softmax_flat( + *flatten_probs(probs, labels, ignore_index), + classes=classes, + class_weight=class_weight) + return loss + + +@LOSSES.register_module() +class LovaszLoss(nn.Module): + """LovaszLoss. + + This loss is proposed in `The Lovasz-Softmax loss: A tractable surrogate + for the optimization of the intersection-over-union measure in neural + networks `_. + + Args: + loss_type (str, optional): Binary or multi-class loss. + Default: 'multi_class'. Options are "binary" and "multi_class". + classes (str | list[int], optional): Classes choosed to calculate loss. + 'all' for all classes, 'present' for classes present in labels, or + a list of classes to average. Default: 'present'. + per_image (bool, optional): If per_image is True, compute the loss per + image instead of per batch. Default: False. + reduction (str, optional): The method used to reduce the loss. Options + are "none", "mean" and "sum". This parameter only works when + per_image is True. Default: 'mean'. + class_weight (list[float], optional): The weight for each class. + Default: None. + loss_weight (float, optional): Weight of the loss. Defaults to 1.0. + """ + + def __init__(self, + loss_type='multi_class', + classes='present', + per_image=False, + reduction='mean', + class_weight=None, + loss_weight=1.0): + super(LovaszLoss, self).__init__() + assert loss_type in ('binary', 'multi_class'), "loss_type should be \ + 'binary' or 'multi_class'." + + if loss_type == 'binary': + self.cls_criterion = lovasz_hinge + else: + self.cls_criterion = lovasz_softmax + assert classes in ('all', 'present') or mmcv.is_list_of(classes, int) + if not per_image: + assert reduction == 'none', "reduction should be 'none' when \ + per_image is False." + + self.classes = classes + self.per_image = per_image + self.reduction = reduction + self.loss_weight = loss_weight + self.class_weight = class_weight + + def forward(self, + cls_score, + label, + weight=None, + avg_factor=None, + reduction_override=None, + **kwargs): + """Forward function.""" + assert reduction_override in (None, 'none', 'mean', 'sum') + reduction = ( + reduction_override if reduction_override else self.reduction) + if self.class_weight is not None: + class_weight = cls_score.new_tensor(self.class_weight) + else: + class_weight = None + + # if multi-class loss, transform logits to probs + if self.cls_criterion == lovasz_softmax: + cls_score = F.softmax(cls_score, dim=1) + + loss_cls = self.loss_weight * self.cls_criterion( + cls_score, + label, + self.classes, + self.per_image, + class_weight=class_weight, + reduction=reduction, + avg_factor=avg_factor, + **kwargs) + return loss_cls diff --git a/tests/test_models/test_losses.py b/tests/test_models/test_losses.py index 32b3d067a3..005d939114 100644 --- a/tests/test_models/test_losses.py +++ b/tests/test_models/test_losses.py @@ -142,3 +142,63 @@ def test_accuracy(): with pytest.raises(AssertionError): accuracy = Accuracy() accuracy(pred[:, :, None], true_label) + + +def test_lovasz_loss(): + from mmseg.models import build_loss + + # loss_type should be 'binary' or 'multi_class' + with pytest.raises(AssertionError): + loss_cfg = dict( + type='LovaszLoss', + loss_type='Binary', + reduction='none', + loss_weight=1.0) + build_loss(loss_cfg) + + # reduction should be 'none' when per_image is False. + with pytest.raises(AssertionError): + loss_cfg = dict(type='LovaszLoss', loss_type='multi_class') + build_loss(loss_cfg) + + # test lovasz loss with loss_type = 'multi_class' and per_image = False + loss_cfg = dict(type='LovaszLoss', reduction='none', loss_weight=1.0) + lovasz_loss = build_loss(loss_cfg) + logits = torch.rand(1, 3, 4, 4) + labels = (torch.rand(1, 4, 4) * 2).long() + lovasz_loss(logits, labels) + + # test lovasz loss with loss_type = 'multi_class' and per_image = True + loss_cfg = dict( + type='LovaszLoss', + per_image=True, + reduction='mean', + class_weight=[1.0, 2.0, 3.0], + loss_weight=1.0) + lovasz_loss = build_loss(loss_cfg) + logits = torch.rand(1, 3, 4, 4) + labels = (torch.rand(1, 4, 4) * 2).long() + lovasz_loss(logits, labels, ignore_index=None) + + # test lovasz loss with loss_type = 'binary' and per_image = False + loss_cfg = dict( + type='LovaszLoss', + loss_type='binary', + reduction='none', + loss_weight=1.0) + lovasz_loss = build_loss(loss_cfg) + logits = torch.rand(2, 4, 4) + labels = (torch.rand(2, 4, 4)).long() + lovasz_loss(logits, labels) + + # test lovasz loss with loss_type = 'binary' and per_image = True + loss_cfg = dict( + type='LovaszLoss', + loss_type='binary', + per_image=True, + reduction='mean', + loss_weight=1.0) + lovasz_loss = build_loss(loss_cfg) + logits = torch.rand(2, 4, 4) + labels = (torch.rand(2, 4, 4)).long() + lovasz_loss(logits, labels, ignore_index=None) From 4423d327025b14f9fae0875166abce710334e678 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Tue, 19 Jan 2021 17:06:23 -0800 Subject: [PATCH 096/706] [Improvement] Move train_cfg/test_cfg inside model (#341) * [Improvement] Move train_cfg/test_cfg inside model * fixed config dict * fixed config dict --- configs/_base_/models/ann_r50-d8.py | 8 +-- configs/_base_/models/apcnet_r50-d8.py | 8 +-- configs/_base_/models/ccnet_r50-d8.py | 8 +-- configs/_base_/models/cgnet.py | 8 +-- configs/_base_/models/danet_r50-d8.py | 8 +-- configs/_base_/models/deeplabv3_r50-d8.py | 8 +-- .../_base_/models/deeplabv3_unet_s5-d16.py | 8 +-- configs/_base_/models/deeplabv3plus_r50-d8.py | 8 +-- configs/_base_/models/dmnet_r50-d8.py | 8 +-- configs/_base_/models/dnl_r50-d8.py | 8 +-- configs/_base_/models/emanet_r50-d8.py | 8 +-- configs/_base_/models/encnet_r50-d8.py | 8 +-- configs/_base_/models/fast_scnn.py | 9 ++-- configs/_base_/models/fcn_hr18.py | 8 +-- configs/_base_/models/fcn_r50-d8.py | 8 +-- configs/_base_/models/fcn_unet_s5-d16.py | 8 +-- configs/_base_/models/fpn_r50.py | 8 +-- configs/_base_/models/gcnet_r50-d8.py | 8 +-- configs/_base_/models/lraspp_m-v3-d8.py | 8 +-- configs/_base_/models/nonlocal_r50-d8.py | 8 +-- configs/_base_/models/ocrnet_hr18.py | 8 +-- configs/_base_/models/ocrnet_r50-d8.py | 8 +-- configs/_base_/models/pointrend_r50.py | 18 +++---- configs/_base_/models/psanet_r50-d8.py | 8 +-- configs/_base_/models/pspnet_r50-d8.py | 8 +-- configs/_base_/models/pspnet_unet_s5-d16.py | 8 +-- configs/_base_/models/upernet_r50.py | 8 +-- .../ann/ann_r50-d8_769x769_40k_cityscapes.py | 4 +- .../ann/ann_r50-d8_769x769_80k_cityscapes.py | 4 +- .../apcnet_r50-d8_769x769_40k_cityscapes.py | 4 +- .../apcnet_r50-d8_769x769_80k_cityscapes.py | 4 +- .../ccnet_r50-d8_769x769_40k_cityscapes.py | 4 +- .../ccnet_r50-d8_769x769_80k_cityscapes.py | 4 +- .../danet_r50-d8_769x769_40k_cityscapes.py | 4 +- .../danet_r50-d8_769x769_80k_cityscapes.py | 4 +- ...labv3_r50-d8_480x480_40k_pascal_context.py | 5 +- ...labv3_r50-d8_480x480_80k_pascal_context.py | 5 +- ...deeplabv3_r50-d8_769x769_40k_cityscapes.py | 4 +- ...deeplabv3_r50-d8_769x769_80k_cityscapes.py | 4 +- ...3plus_r50-d8_480x480_40k_pascal_context.py | 5 +- ...3plus_r50-d8_480x480_80k_pascal_context.py | 5 +- ...labv3plus_r50-d8_769x769_40k_cityscapes.py | 4 +- ...labv3plus_r50-d8_769x769_80k_cityscapes.py | 4 +- .../dmnet_r50-d8_769x769_40k_cityscapes.py | 4 +- .../dmnet_r50-d8_769x769_80k_cityscapes.py | 4 +- .../dnl_r50-d8_769x769_40k_cityscapes.py | 4 +- .../dnl_r50-d8_769x769_80k_cityscapes.py | 4 +- .../emanet_r50-d8_769x769_80k_cityscapes.py | 4 +- .../encnet_r50-d8_769x769_40k_cityscapes.py | 4 +- .../encnet_r50-d8_769x769_80k_cityscapes.py | 4 +- .../fcn_r50-d8_480x480_40k_pascal_context.py | 5 +- .../fcn_r50-d8_480x480_80k_pascal_context.py | 5 +- .../fcn/fcn_r50-d8_769x769_40k_cityscapes.py | 4 +- .../fcn/fcn_r50-d8_769x769_80k_cityscapes.py | 4 +- .../gcnet_r50-d8_769x769_40k_cityscapes.py | 4 +- .../gcnet_r50-d8_769x769_80k_cityscapes.py | 4 +- .../fcn_hr18_480x480_40k_pascal_context.py | 5 +- .../fcn_hr18_480x480_80k_pascal_context.py | 5 +- .../nonlocal_r50-d8_769x769_40k_cityscapes.py | 4 +- .../nonlocal_r50-d8_769x769_80k_cityscapes.py | 4 +- .../psanet_r50-d8_769x769_40k_cityscapes.py | 4 +- .../psanet_r50-d8_769x769_80k_cityscapes.py | 4 +- .../pspnet_r50-d8_769x769_40k_cityscapes.py | 4 +- .../pspnet_r50-d8_769x769_80k_cityscapes.py | 4 +- ...labv3_unet_s5-d16_128x128_40k_chase_db1.py | 2 +- ...deeplabv3_unet_s5-d16_128x128_40k_stare.py | 2 +- .../deeplabv3_unet_s5-d16_256x256_40k_hrf.py | 2 +- .../deeplabv3_unet_s5-d16_64x64_40k_drive.py | 2 +- .../fcn_unet_s5-d16_128x128_40k_chase_db1.py | 2 +- .../unet/fcn_unet_s5-d16_128x128_40k_stare.py | 2 +- .../unet/fcn_unet_s5-d16_256x256_40k_hrf.py | 2 +- .../unet/fcn_unet_s5-d16_64x64_40k_drive.py | 2 +- ...spnet_unet_s5-d16_128x128_40k_chase_db1.py | 2 +- .../pspnet_unet_s5-d16_128x128_40k_stare.py | 2 +- .../pspnet_unet_s5-d16_256x256_40k_hrf.py | 2 +- .../pspnet_unet_s5-d16_64x64_40k_drive.py | 2 +- .../upernet_r50_769x769_40k_cityscapes.py | 4 +- .../upernet_r50_769x769_80k_cityscapes.py | 4 +- mmseg/apis/inference.py | 3 +- mmseg/models/builder.py | 10 ++++ tests/test_config.py | 7 +-- tests/test_models/test_forward.py | 11 ++-- tests/test_models/test_segmentor.py | 50 ++++++++++--------- tools/benchmark.py | 3 +- tools/get_flops.py | 4 +- tools/pytorch2onnx.py | 3 +- tools/test.py | 3 +- tools/train.py | 4 +- 88 files changed, 266 insertions(+), 247 deletions(-) diff --git a/configs/_base_/models/ann_r50-d8.py b/configs/_base_/models/ann_r50-d8.py index 07ed0f3c6f..a2cb653827 100644 --- a/configs/_base_/models/ann_r50-d8.py +++ b/configs/_base_/models/ann_r50-d8.py @@ -40,7 +40,7 @@ norm_cfg=norm_cfg, align_corners=False, loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))) -# model training and testing settings -train_cfg = dict() -test_cfg = dict(mode='whole') + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/_base_/models/apcnet_r50-d8.py b/configs/_base_/models/apcnet_r50-d8.py index 451cbc4190..c8f5316cbc 100644 --- a/configs/_base_/models/apcnet_r50-d8.py +++ b/configs/_base_/models/apcnet_r50-d8.py @@ -38,7 +38,7 @@ norm_cfg=norm_cfg, align_corners=False, loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))) -# model training and testing settings -train_cfg = dict() -test_cfg = dict(mode='whole') + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/_base_/models/ccnet_r50-d8.py b/configs/_base_/models/ccnet_r50-d8.py index 28f7360a21..794148f576 100644 --- a/configs/_base_/models/ccnet_r50-d8.py +++ b/configs/_base_/models/ccnet_r50-d8.py @@ -38,7 +38,7 @@ norm_cfg=norm_cfg, align_corners=False, loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))) -# model training and testing settings -train_cfg = dict() -test_cfg = dict(mode='whole') + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/_base_/models/cgnet.py b/configs/_base_/models/cgnet.py index e598abca2e..eff8d9458c 100644 --- a/configs/_base_/models/cgnet.py +++ b/configs/_base_/models/cgnet.py @@ -29,7 +29,7 @@ 10.289121, 9.953208, 4.3097677, 9.490387, 7.674431, 9.396905, 10.347791, 6.3927646, 10.226669, 10.241062, 10.280587, 10.396974, 10.055647 - ]))) -# model training and testing settings -train_cfg = dict(sampler=None) -test_cfg = dict(mode='whole') + ])), + # model training and testing settings + train_cfg=dict(sampler=None), + test_cfg=dict(mode='whole')) diff --git a/configs/_base_/models/danet_r50-d8.py b/configs/_base_/models/danet_r50-d8.py index 65eb170860..2c934939fa 100644 --- a/configs/_base_/models/danet_r50-d8.py +++ b/configs/_base_/models/danet_r50-d8.py @@ -38,7 +38,7 @@ norm_cfg=norm_cfg, align_corners=False, loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))) -# model training and testing settings -train_cfg = dict() -test_cfg = dict(mode='whole') + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/_base_/models/deeplabv3_r50-d8.py b/configs/_base_/models/deeplabv3_r50-d8.py index a9f319c2b5..d7a43bee01 100644 --- a/configs/_base_/models/deeplabv3_r50-d8.py +++ b/configs/_base_/models/deeplabv3_r50-d8.py @@ -38,7 +38,7 @@ norm_cfg=norm_cfg, align_corners=False, loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))) -# model training and testing settings -train_cfg = dict() -test_cfg = dict(mode='whole') + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/_base_/models/deeplabv3_unet_s5-d16.py b/configs/_base_/models/deeplabv3_unet_s5-d16.py index 9fce47510d..0cd262999d 100644 --- a/configs/_base_/models/deeplabv3_unet_s5-d16.py +++ b/configs/_base_/models/deeplabv3_unet_s5-d16.py @@ -44,7 +44,7 @@ norm_cfg=norm_cfg, align_corners=False, loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))) -# model training and testing settings -train_cfg = dict() -test_cfg = dict(mode='slide', crop_size=256, stride=170) + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='slide', crop_size=256, stride=170)) diff --git a/configs/_base_/models/deeplabv3plus_r50-d8.py b/configs/_base_/models/deeplabv3plus_r50-d8.py index f74a1534fb..050e39e091 100644 --- a/configs/_base_/models/deeplabv3plus_r50-d8.py +++ b/configs/_base_/models/deeplabv3plus_r50-d8.py @@ -40,7 +40,7 @@ norm_cfg=norm_cfg, align_corners=False, loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))) -# model training and testing settings -train_cfg = dict() -test_cfg = dict(mode='whole') + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/_base_/models/dmnet_r50-d8.py b/configs/_base_/models/dmnet_r50-d8.py index 329c4fe8c2..d22ba52640 100644 --- a/configs/_base_/models/dmnet_r50-d8.py +++ b/configs/_base_/models/dmnet_r50-d8.py @@ -38,7 +38,7 @@ norm_cfg=norm_cfg, align_corners=False, loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))) -# model training and testing settings -train_cfg = dict() -test_cfg = dict(mode='whole') + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/_base_/models/dnl_r50-d8.py b/configs/_base_/models/dnl_r50-d8.py index 423dc3b065..edb4c174c5 100644 --- a/configs/_base_/models/dnl_r50-d8.py +++ b/configs/_base_/models/dnl_r50-d8.py @@ -40,7 +40,7 @@ norm_cfg=norm_cfg, align_corners=False, loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))) -# model training and testing settings -train_cfg = dict() -test_cfg = dict(mode='whole') + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/_base_/models/emanet_r50-d8.py b/configs/_base_/models/emanet_r50-d8.py index 326a25137a..26adcd4309 100644 --- a/configs/_base_/models/emanet_r50-d8.py +++ b/configs/_base_/models/emanet_r50-d8.py @@ -41,7 +41,7 @@ norm_cfg=norm_cfg, align_corners=False, loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))) -# model training and testing settings -train_cfg = dict() -test_cfg = dict(mode='whole') + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/_base_/models/encnet_r50-d8.py b/configs/_base_/models/encnet_r50-d8.py index c643cea62a..be777123a8 100644 --- a/configs/_base_/models/encnet_r50-d8.py +++ b/configs/_base_/models/encnet_r50-d8.py @@ -42,7 +42,7 @@ norm_cfg=norm_cfg, align_corners=False, loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))) -# model training and testing settings -train_cfg = dict() -test_cfg = dict(mode='whole') + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/_base_/models/fast_scnn.py b/configs/_base_/models/fast_scnn.py index 06cd83979d..32fdeb6593 100644 --- a/configs/_base_/models/fast_scnn.py +++ b/configs/_base_/models/fast_scnn.py @@ -51,8 +51,7 @@ align_corners=False, loss_decode=dict( type='CrossEntropyLoss', use_sigmoid=True, loss_weight=0.4)), - ]) - -# model training and testing settings -train_cfg = dict() -test_cfg = dict(mode='whole') + ], + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/_base_/models/fcn_hr18.py b/configs/_base_/models/fcn_hr18.py index 8293e06536..c3e299bc89 100644 --- a/configs/_base_/models/fcn_hr18.py +++ b/configs/_base_/models/fcn_hr18.py @@ -46,7 +46,7 @@ norm_cfg=norm_cfg, align_corners=False, loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))) -# model training and testing settings -train_cfg = dict() -test_cfg = dict(mode='whole') + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/_base_/models/fcn_r50-d8.py b/configs/_base_/models/fcn_r50-d8.py index 97a11ec961..5e98f6cc91 100644 --- a/configs/_base_/models/fcn_r50-d8.py +++ b/configs/_base_/models/fcn_r50-d8.py @@ -39,7 +39,7 @@ norm_cfg=norm_cfg, align_corners=False, loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))) -# model training and testing settings -train_cfg = dict() -test_cfg = dict(mode='whole') + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/_base_/models/fcn_unet_s5-d16.py b/configs/_base_/models/fcn_unet_s5-d16.py index 27b5b60834..a33e797287 100644 --- a/configs/_base_/models/fcn_unet_s5-d16.py +++ b/configs/_base_/models/fcn_unet_s5-d16.py @@ -45,7 +45,7 @@ norm_cfg=norm_cfg, align_corners=False, loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))) -# model training and testing settings -train_cfg = dict() -test_cfg = dict(mode='slide', crop_size=256, stride=170) + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='slide', crop_size=256, stride=170)) diff --git a/configs/_base_/models/fpn_r50.py b/configs/_base_/models/fpn_r50.py index ec11717201..86ab327db9 100644 --- a/configs/_base_/models/fpn_r50.py +++ b/configs/_base_/models/fpn_r50.py @@ -30,7 +30,7 @@ norm_cfg=norm_cfg, align_corners=False, loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))) -# model training and testing settings -train_cfg = dict() -test_cfg = dict(mode='whole') + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/_base_/models/gcnet_r50-d8.py b/configs/_base_/models/gcnet_r50-d8.py index b679be1254..3d2ad69f5c 100644 --- a/configs/_base_/models/gcnet_r50-d8.py +++ b/configs/_base_/models/gcnet_r50-d8.py @@ -40,7 +40,7 @@ norm_cfg=norm_cfg, align_corners=False, loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))) -# model training and testing settings -train_cfg = dict() -test_cfg = dict(mode='whole') + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/_base_/models/lraspp_m-v3-d8.py b/configs/_base_/models/lraspp_m-v3-d8.py index 36e45090c9..93258242a9 100644 --- a/configs/_base_/models/lraspp_m-v3-d8.py +++ b/configs/_base_/models/lraspp_m-v3-d8.py @@ -19,7 +19,7 @@ act_cfg=dict(type='ReLU'), align_corners=False, loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))) -# model training and testing settings -train_cfg = dict() -test_cfg = dict(mode='whole') + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/_base_/models/nonlocal_r50-d8.py b/configs/_base_/models/nonlocal_r50-d8.py index 64dbeb080d..5674a39854 100644 --- a/configs/_base_/models/nonlocal_r50-d8.py +++ b/configs/_base_/models/nonlocal_r50-d8.py @@ -40,7 +40,7 @@ norm_cfg=norm_cfg, align_corners=False, loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))) -# model training and testing settings -train_cfg = dict() -test_cfg = dict(mode='whole') + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/_base_/models/ocrnet_hr18.py b/configs/_base_/models/ocrnet_hr18.py index fd88780b60..c60f62a7cd 100644 --- a/configs/_base_/models/ocrnet_hr18.py +++ b/configs/_base_/models/ocrnet_hr18.py @@ -62,7 +62,7 @@ align_corners=False, loss_decode=dict( type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), - ]) -# model training and testing settings -train_cfg = dict() -test_cfg = dict(mode='whole') + ], + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/_base_/models/ocrnet_r50-d8.py b/configs/_base_/models/ocrnet_r50-d8.py index 0f5ff956c0..615aa3ff70 100644 --- a/configs/_base_/models/ocrnet_r50-d8.py +++ b/configs/_base_/models/ocrnet_r50-d8.py @@ -41,7 +41,7 @@ align_corners=False, loss_decode=dict( type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)) - ]) -# model training and testing settings -train_cfg = dict() -test_cfg = dict(mode='whole') + ], + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/_base_/models/pointrend_r50.py b/configs/_base_/models/pointrend_r50.py index 1a56af3a87..9d323dbf94 100644 --- a/configs/_base_/models/pointrend_r50.py +++ b/configs/_base_/models/pointrend_r50.py @@ -45,12 +45,12 @@ align_corners=False, loss_decode=dict( type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)) - ]) -# model training and testing settings -train_cfg = dict( - num_points=2048, oversample_ratio=3, importance_sample_ratio=0.75) -test_cfg = dict( - mode='whole', - subdivision_steps=2, - subdivision_num_points=8196, - scale_factor=2) + ], + # model training and testing settings + train_cfg=dict( + num_points=2048, oversample_ratio=3, importance_sample_ratio=0.75), + test_cfg=dict( + mode='whole', + subdivision_steps=2, + subdivision_num_points=8196, + scale_factor=2)) diff --git a/configs/_base_/models/psanet_r50-d8.py b/configs/_base_/models/psanet_r50-d8.py index 1b45588268..689513fa9d 100644 --- a/configs/_base_/models/psanet_r50-d8.py +++ b/configs/_base_/models/psanet_r50-d8.py @@ -43,7 +43,7 @@ norm_cfg=norm_cfg, align_corners=False, loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))) -# model training and testing settings -train_cfg = dict() -test_cfg = dict(mode='whole') + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/_base_/models/pspnet_r50-d8.py b/configs/_base_/models/pspnet_r50-d8.py index cf9d8ce0a8..f451e08ad2 100644 --- a/configs/_base_/models/pspnet_r50-d8.py +++ b/configs/_base_/models/pspnet_r50-d8.py @@ -38,7 +38,7 @@ norm_cfg=norm_cfg, align_corners=False, loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))) -# model training and testing settings -train_cfg = dict() -test_cfg = dict(mode='whole') + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/_base_/models/pspnet_unet_s5-d16.py b/configs/_base_/models/pspnet_unet_s5-d16.py index 3be98685c4..fcff9ec4f4 100644 --- a/configs/_base_/models/pspnet_unet_s5-d16.py +++ b/configs/_base_/models/pspnet_unet_s5-d16.py @@ -44,7 +44,7 @@ norm_cfg=norm_cfg, align_corners=False, loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))) -# model training and testing settings -train_cfg = dict() -test_cfg = dict(mode='slide', crop_size=256, stride=170) + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='slide', crop_size=256, stride=170)) diff --git a/configs/_base_/models/upernet_r50.py b/configs/_base_/models/upernet_r50.py index 19cf451359..10974962fd 100644 --- a/configs/_base_/models/upernet_r50.py +++ b/configs/_base_/models/upernet_r50.py @@ -38,7 +38,7 @@ norm_cfg=norm_cfg, align_corners=False, loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))) -# model training and testing settings -train_cfg = dict() -test_cfg = dict(mode='whole') + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/ann/ann_r50-d8_769x769_40k_cityscapes.py b/configs/ann/ann_r50-d8_769x769_40k_cityscapes.py index 393a400beb..4912bdb9fb 100644 --- a/configs/ann/ann_r50-d8_769x769_40k_cityscapes.py +++ b/configs/ann/ann_r50-d8_769x769_40k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/ann/ann_r50-d8_769x769_80k_cityscapes.py b/configs/ann/ann_r50-d8_769x769_80k_cityscapes.py index 7861a372e9..d1cc072b15 100644 --- a/configs/ann/ann_r50-d8_769x769_80k_cityscapes.py +++ b/configs/ann/ann_r50-d8_769x769_80k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/apcnet/apcnet_r50-d8_769x769_40k_cityscapes.py b/configs/apcnet/apcnet_r50-d8_769x769_40k_cityscapes.py index d0134e31e8..3db6140cb9 100644 --- a/configs/apcnet/apcnet_r50-d8_769x769_40k_cityscapes.py +++ b/configs/apcnet/apcnet_r50-d8_769x769_40k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/apcnet/apcnet_r50-d8_769x769_80k_cityscapes.py b/configs/apcnet/apcnet_r50-d8_769x769_80k_cityscapes.py index 1d863c4f1b..9cac4254f3 100644 --- a/configs/apcnet/apcnet_r50-d8_769x769_80k_cityscapes.py +++ b/configs/apcnet/apcnet_r50-d8_769x769_80k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/ccnet/ccnet_r50-d8_769x769_40k_cityscapes.py b/configs/ccnet/ccnet_r50-d8_769x769_40k_cityscapes.py index d7fd8ccc59..580d59ca69 100644 --- a/configs/ccnet/ccnet_r50-d8_769x769_40k_cityscapes.py +++ b/configs/ccnet/ccnet_r50-d8_769x769_40k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/ccnet/ccnet_r50-d8_769x769_80k_cityscapes.py b/configs/ccnet/ccnet_r50-d8_769x769_80k_cityscapes.py index 6d3b3498bf..c6dac64377 100644 --- a/configs/ccnet/ccnet_r50-d8_769x769_80k_cityscapes.py +++ b/configs/ccnet/ccnet_r50-d8_769x769_80k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/danet/danet_r50-d8_769x769_40k_cityscapes.py b/configs/danet/danet_r50-d8_769x769_40k_cityscapes.py index b8fba930a8..5c5b94e5a2 100644 --- a/configs/danet/danet_r50-d8_769x769_40k_cityscapes.py +++ b/configs/danet/danet_r50-d8_769x769_40k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/danet/danet_r50-d8_769x769_80k_cityscapes.py b/configs/danet/danet_r50-d8_769x769_80k_cityscapes.py index 8b8915d856..c7237ae03c 100644 --- a/configs/danet/danet_r50-d8_769x769_80k_cityscapes.py +++ b/configs/danet/danet_r50-d8_769x769_80k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/deeplabv3/deeplabv3_r50-d8_480x480_40k_pascal_context.py b/configs/deeplabv3/deeplabv3_r50-d8_480x480_40k_pascal_context.py index 0cdb262833..9d493ef527 100644 --- a/configs/deeplabv3/deeplabv3_r50-d8_480x480_40k_pascal_context.py +++ b/configs/deeplabv3/deeplabv3_r50-d8_480x480_40k_pascal_context.py @@ -4,6 +4,7 @@ '../_base_/schedules/schedule_40k.py' ] model = dict( - decode_head=dict(num_classes=60), auxiliary_head=dict(num_classes=60)) -test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320)) + decode_head=dict(num_classes=60), + auxiliary_head=dict(num_classes=60), + test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/deeplabv3/deeplabv3_r50-d8_480x480_80k_pascal_context.py b/configs/deeplabv3/deeplabv3_r50-d8_480x480_80k_pascal_context.py index 84e831a7be..71a0fda48a 100644 --- a/configs/deeplabv3/deeplabv3_r50-d8_480x480_80k_pascal_context.py +++ b/configs/deeplabv3/deeplabv3_r50-d8_480x480_80k_pascal_context.py @@ -4,6 +4,7 @@ '../_base_/schedules/schedule_80k.py' ] model = dict( - decode_head=dict(num_classes=60), auxiliary_head=dict(num_classes=60)) -test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320)) + decode_head=dict(num_classes=60), + auxiliary_head=dict(num_classes=60), + test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes.py b/configs/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes.py index fb067d2117..e35d1988f0 100644 --- a/configs/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes.py +++ b/configs/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes.py b/configs/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes.py index 8b8692140b..dd7c16580d 100644 --- a/configs/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes.py +++ b/configs/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_40k_pascal_context.py b/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_40k_pascal_context.py index ee548fb014..318845de1e 100644 --- a/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_40k_pascal_context.py +++ b/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_40k_pascal_context.py @@ -4,6 +4,7 @@ '../_base_/schedules/schedule_40k.py' ] model = dict( - decode_head=dict(num_classes=60), auxiliary_head=dict(num_classes=60)) -test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320)) + decode_head=dict(num_classes=60), + auxiliary_head=dict(num_classes=60), + test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_80k_pascal_context.py b/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_80k_pascal_context.py index 604cf2bf5e..1736c2397a 100644 --- a/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_80k_pascal_context.py +++ b/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_80k_pascal_context.py @@ -4,6 +4,7 @@ '../_base_/schedules/schedule_80k.py' ] model = dict( - decode_head=dict(num_classes=60), auxiliary_head=dict(num_classes=60)) -test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320)) + decode_head=dict(num_classes=60), + auxiliary_head=dict(num_classes=60), + test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes.py b/configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes.py index 4fcc062ca8..e4bda3eded 100644 --- a/configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes.py +++ b/configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py b/configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py index e0bfa94576..1420b97a4b 100644 --- a/configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py +++ b/configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/dmnet/dmnet_r50-d8_769x769_40k_cityscapes.py b/configs/dmnet/dmnet_r50-d8_769x769_40k_cityscapes.py index 49db4da110..19841547a4 100644 --- a/configs/dmnet/dmnet_r50-d8_769x769_40k_cityscapes.py +++ b/configs/dmnet/dmnet_r50-d8_769x769_40k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/dmnet/dmnet_r50-d8_769x769_80k_cityscapes.py b/configs/dmnet/dmnet_r50-d8_769x769_80k_cityscapes.py index 1cf136e110..31d95f96eb 100644 --- a/configs/dmnet/dmnet_r50-d8_769x769_80k_cityscapes.py +++ b/configs/dmnet/dmnet_r50-d8_769x769_80k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/dnlnet/dnl_r50-d8_769x769_40k_cityscapes.py b/configs/dnlnet/dnl_r50-d8_769x769_40k_cityscapes.py index a39ef22988..0666199b63 100644 --- a/configs/dnlnet/dnl_r50-d8_769x769_40k_cityscapes.py +++ b/configs/dnlnet/dnl_r50-d8_769x769_40k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/dnlnet/dnl_r50-d8_769x769_80k_cityscapes.py b/configs/dnlnet/dnl_r50-d8_769x769_80k_cityscapes.py index aba808073d..f7b07c4f47 100644 --- a/configs/dnlnet/dnl_r50-d8_769x769_80k_cityscapes.py +++ b/configs/dnlnet/dnl_r50-d8_769x769_80k_cityscapes.py @@ -5,8 +5,8 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) optimizer = dict( paramwise_cfg=dict( custom_keys=dict(theta=dict(wd_mult=0.), phi=dict(wd_mult=0.)))) diff --git a/configs/emanet/emanet_r50-d8_769x769_80k_cityscapes.py b/configs/emanet/emanet_r50-d8_769x769_80k_cityscapes.py index 0fd9beea03..699aa212c3 100644 --- a/configs/emanet/emanet_r50-d8_769x769_80k_cityscapes.py +++ b/configs/emanet/emanet_r50-d8_769x769_80k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/encnet/encnet_r50-d8_769x769_40k_cityscapes.py b/configs/encnet/encnet_r50-d8_769x769_40k_cityscapes.py index 9f44b425d4..d311e33f56 100644 --- a/configs/encnet/encnet_r50-d8_769x769_40k_cityscapes.py +++ b/configs/encnet/encnet_r50-d8_769x769_40k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/encnet/encnet_r50-d8_769x769_80k_cityscapes.py b/configs/encnet/encnet_r50-d8_769x769_80k_cityscapes.py index aac7f2d443..7b535f3c80 100644 --- a/configs/encnet/encnet_r50-d8_769x769_80k_cityscapes.py +++ b/configs/encnet/encnet_r50-d8_769x769_80k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/fcn/fcn_r50-d8_480x480_40k_pascal_context.py b/configs/fcn/fcn_r50-d8_480x480_40k_pascal_context.py index d124fbf00d..fdc6314f70 100644 --- a/configs/fcn/fcn_r50-d8_480x480_40k_pascal_context.py +++ b/configs/fcn/fcn_r50-d8_480x480_40k_pascal_context.py @@ -2,6 +2,7 @@ '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' ] -model = dict(decode_head=dict(num_classes=60)) -test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320)) +model = dict( + decode_head=dict(num_classes=60), + test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/fcn/fcn_r50-d8_480x480_80k_pascal_context.py b/configs/fcn/fcn_r50-d8_480x480_80k_pascal_context.py index d84f1c8aaf..0870f928b8 100644 --- a/configs/fcn/fcn_r50-d8_480x480_80k_pascal_context.py +++ b/configs/fcn/fcn_r50-d8_480x480_80k_pascal_context.py @@ -2,6 +2,7 @@ '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' ] -model = dict(decode_head=dict(num_classes=60)) -test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320)) +model = dict( + decode_head=dict(num_classes=60), + test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/fcn/fcn_r50-d8_769x769_40k_cityscapes.py b/configs/fcn/fcn_r50-d8_769x769_40k_cityscapes.py index 9a91f9cc96..fca98c1d9a 100644 --- a/configs/fcn/fcn_r50-d8_769x769_40k_cityscapes.py +++ b/configs/fcn/fcn_r50-d8_769x769_40k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/fcn/fcn_r50-d8_769x769_80k_cityscapes.py b/configs/fcn/fcn_r50-d8_769x769_80k_cityscapes.py index bbde29e8e9..7d75cd9f49 100644 --- a/configs/fcn/fcn_r50-d8_769x769_80k_cityscapes.py +++ b/configs/fcn/fcn_r50-d8_769x769_80k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/gcnet/gcnet_r50-d8_769x769_40k_cityscapes.py b/configs/gcnet/gcnet_r50-d8_769x769_40k_cityscapes.py index ac9826ad92..332495d3d7 100644 --- a/configs/gcnet/gcnet_r50-d8_769x769_40k_cityscapes.py +++ b/configs/gcnet/gcnet_r50-d8_769x769_40k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/gcnet/gcnet_r50-d8_769x769_80k_cityscapes.py b/configs/gcnet/gcnet_r50-d8_769x769_80k_cityscapes.py index cacf24e4f3..d6d9cb1c64 100644 --- a/configs/gcnet/gcnet_r50-d8_769x769_80k_cityscapes.py +++ b/configs/gcnet/gcnet_r50-d8_769x769_80k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/hrnet/fcn_hr18_480x480_40k_pascal_context.py b/configs/hrnet/fcn_hr18_480x480_40k_pascal_context.py index 54a412e52c..5ff05aa595 100644 --- a/configs/hrnet/fcn_hr18_480x480_40k_pascal_context.py +++ b/configs/hrnet/fcn_hr18_480x480_40k_pascal_context.py @@ -2,6 +2,7 @@ '../_base_/models/fcn_hr18.py', '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' ] -model = dict(decode_head=dict(num_classes=60)) -test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320)) +model = dict( + decode_head=dict(num_classes=60), + test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/hrnet/fcn_hr18_480x480_80k_pascal_context.py b/configs/hrnet/fcn_hr18_480x480_80k_pascal_context.py index 2dfba8732b..cf315a4f0e 100644 --- a/configs/hrnet/fcn_hr18_480x480_80k_pascal_context.py +++ b/configs/hrnet/fcn_hr18_480x480_80k_pascal_context.py @@ -2,6 +2,7 @@ '../_base_/models/fcn_hr18.py', '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' ] -model = dict(decode_head=dict(num_classes=60)) -test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320)) +model = dict( + decode_head=dict(num_classes=60), + test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes.py b/configs/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes.py index 3f0d47238f..75adef3248 100644 --- a/configs/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes.py +++ b/configs/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes.py b/configs/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes.py index 5d448c730a..a0726c293d 100644 --- a/configs/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes.py +++ b/configs/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/psanet/psanet_r50-d8_769x769_40k_cityscapes.py b/configs/psanet/psanet_r50-d8_769x769_40k_cityscapes.py index 2068667b0f..690f8b5ef3 100644 --- a/configs/psanet/psanet_r50-d8_769x769_40k_cityscapes.py +++ b/configs/psanet/psanet_r50-d8_769x769_40k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/psanet/psanet_r50-d8_769x769_80k_cityscapes.py b/configs/psanet/psanet_r50-d8_769x769_80k_cityscapes.py index 8745f5dbad..0966b4770c 100644 --- a/configs/psanet/psanet_r50-d8_769x769_80k_cityscapes.py +++ b/configs/psanet/psanet_r50-d8_769x769_80k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/pspnet/pspnet_r50-d8_769x769_40k_cityscapes.py b/configs/pspnet/pspnet_r50-d8_769x769_40k_cityscapes.py index e1026e0065..145cadb240 100644 --- a/configs/pspnet/pspnet_r50-d8_769x769_40k_cityscapes.py +++ b/configs/pspnet/pspnet_r50-d8_769x769_40k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/pspnet/pspnet_r50-d8_769x769_80k_cityscapes.py b/configs/pspnet/pspnet_r50-d8_769x769_80k_cityscapes.py index c1215c5c4a..23a81eb7ef 100644 --- a/configs/pspnet/pspnet_r50-d8_769x769_80k_cityscapes.py +++ b/configs/pspnet/pspnet_r50-d8_769x769_80k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py b/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py index 615d241fec..c706cf3548 100644 --- a/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py +++ b/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py @@ -3,5 +3,5 @@ '../_base_/datasets/chase_db1.py', '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' ] -test_cfg = dict(crop_size=(128, 128), stride=(85, 85)) +model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85))) evaluation = dict(metric='mDice') diff --git a/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_stare.py b/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_stare.py index 286eebf445..0ef02dcc49 100644 --- a/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_stare.py +++ b/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_stare.py @@ -2,5 +2,5 @@ '../_base_/models/deeplabv3_unet_s5-d16.py', '../_base_/datasets/stare.py', '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' ] -test_cfg = dict(crop_size=(128, 128), stride=(85, 85)) +model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85))) evaluation = dict(metric='mDice') diff --git a/configs/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf.py b/configs/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf.py index 40a20537a3..118428bc44 100644 --- a/configs/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf.py +++ b/configs/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf.py @@ -2,5 +2,5 @@ '../_base_/models/deeplabv3_unet_s5-d16.py', '../_base_/datasets/hrf.py', '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' ] -test_cfg = dict(crop_size=(256, 256), stride=(170, 170)) +model = dict(test_cfg=dict(crop_size=(256, 256), stride=(170, 170))) evaluation = dict(metric='mDice') diff --git a/configs/unet/deeplabv3_unet_s5-d16_64x64_40k_drive.py b/configs/unet/deeplabv3_unet_s5-d16_64x64_40k_drive.py index 1ad6fd68c5..1f8862a0e8 100644 --- a/configs/unet/deeplabv3_unet_s5-d16_64x64_40k_drive.py +++ b/configs/unet/deeplabv3_unet_s5-d16_64x64_40k_drive.py @@ -2,5 +2,5 @@ '../_base_/models/deeplabv3_unet_s5-d16.py', '../_base_/datasets/drive.py', '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' ] -test_cfg = dict(crop_size=(64, 64), stride=(42, 42)) +model = dict(test_cfg=dict(crop_size=(64, 64), stride=(42, 42))) evaluation = dict(metric='mDice') diff --git a/configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py b/configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py index ff5b7bbc8e..2bc52d9629 100644 --- a/configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py +++ b/configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py @@ -2,5 +2,5 @@ '../_base_/models/fcn_unet_s5-d16.py', '../_base_/datasets/chase_db1.py', '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' ] -test_cfg = dict(crop_size=(128, 128), stride=(85, 85)) +model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85))) evaluation = dict(metric='mDice') diff --git a/configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py b/configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py index 64070a324a..5d836c61df 100644 --- a/configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py +++ b/configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py @@ -2,5 +2,5 @@ '../_base_/models/fcn_unet_s5-d16.py', '../_base_/datasets/stare.py', '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' ] -test_cfg = dict(crop_size=(128, 128), stride=(85, 85)) +model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85))) evaluation = dict(metric='mDice') diff --git a/configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py b/configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py index 8d74c0812d..be8eec7779 100644 --- a/configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py +++ b/configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py @@ -2,5 +2,5 @@ '../_base_/models/fcn_unet_s5-d16.py', '../_base_/datasets/hrf.py', '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' ] -test_cfg = dict(crop_size=(256, 256), stride=(170, 170)) +model = dict(test_cfg=dict(crop_size=(256, 256), stride=(170, 170))) evaluation = dict(metric='mDice') diff --git a/configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py b/configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py index c59a408e8c..80483ade4a 100644 --- a/configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py +++ b/configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py @@ -2,5 +2,5 @@ '../_base_/models/fcn_unet_s5-d16.py', '../_base_/datasets/drive.py', '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' ] -test_cfg = dict(crop_size=(64, 64), stride=(42, 42)) +model = dict(test_cfg=dict(crop_size=(64, 64), stride=(42, 42))) evaluation = dict(metric='mDice') diff --git a/configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py b/configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py index 46500ae811..b085a17d6b 100644 --- a/configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py +++ b/configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py @@ -3,5 +3,5 @@ '../_base_/datasets/chase_db1.py', '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' ] -test_cfg = dict(crop_size=(128, 128), stride=(85, 85)) +model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85))) evaluation = dict(metric='mDice') diff --git a/configs/unet/pspnet_unet_s5-d16_128x128_40k_stare.py b/configs/unet/pspnet_unet_s5-d16_128x128_40k_stare.py index 4830b2fdd1..9d729cea69 100644 --- a/configs/unet/pspnet_unet_s5-d16_128x128_40k_stare.py +++ b/configs/unet/pspnet_unet_s5-d16_128x128_40k_stare.py @@ -2,5 +2,5 @@ '../_base_/models/pspnet_unet_s5-d16.py', '../_base_/datasets/stare.py', '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' ] -test_cfg = dict(crop_size=(128, 128), stride=(85, 85)) +model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85))) evaluation = dict(metric='mDice') diff --git a/configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py b/configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py index dcfb7ec130..f57c9166b6 100644 --- a/configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py +++ b/configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py @@ -2,5 +2,5 @@ '../_base_/models/pspnet_unet_s5-d16.py', '../_base_/datasets/hrf.py', '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' ] -test_cfg = dict(crop_size=(256, 256), stride=(170, 170)) +model = dict(test_cfg=dict(crop_size=(256, 256), stride=(170, 170))) evaluation = dict(metric='mDice') diff --git a/configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py b/configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py index bf0b0b042a..7b5421ad68 100644 --- a/configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py +++ b/configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py @@ -2,5 +2,5 @@ '../_base_/models/pspnet_unet_s5-d16.py', '../_base_/datasets/drive.py', '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' ] -test_cfg = dict(crop_size=(64, 64), stride=(42, 42)) +model = dict(test_cfg=dict(crop_size=(64, 64), stride=(42, 42))) evaluation = dict(metric='mDice') diff --git a/configs/upernet/upernet_r50_769x769_40k_cityscapes.py b/configs/upernet/upernet_r50_769x769_40k_cityscapes.py index 590ab61b76..89b18aa284 100644 --- a/configs/upernet/upernet_r50_769x769_40k_cityscapes.py +++ b/configs/upernet/upernet_r50_769x769_40k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/upernet/upernet_r50_769x769_80k_cityscapes.py b/configs/upernet/upernet_r50_769x769_80k_cityscapes.py index b3a6107581..29af98f2eb 100644 --- a/configs/upernet/upernet_r50_769x769_80k_cityscapes.py +++ b/configs/upernet/upernet_r50_769x769_80k_cityscapes.py @@ -5,5 +5,5 @@ ] model = dict( decode_head=dict(align_corners=True), - auxiliary_head=dict(align_corners=True)) -test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513)) + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/mmseg/apis/inference.py b/mmseg/apis/inference.py index 7cebac986d..20c20dccda 100644 --- a/mmseg/apis/inference.py +++ b/mmseg/apis/inference.py @@ -27,7 +27,8 @@ def init_segmentor(config, checkpoint=None, device='cuda:0'): raise TypeError('config must be a filename or Config object, ' 'but got {}'.format(type(config))) config.model.pretrained = None - model = build_segmentor(config.model, test_cfg=config.test_cfg) + config.model.train_cfg = None + model = build_segmentor(config.model, test_cfg=config.get('test_cfg')) if checkpoint is not None: checkpoint = load_checkpoint(model, checkpoint, map_location='cpu') model.CLASSES = checkpoint['meta']['CLASSES'] diff --git a/mmseg/models/builder.py b/mmseg/models/builder.py index f4b84dd60f..c487dcdd32 100644 --- a/mmseg/models/builder.py +++ b/mmseg/models/builder.py @@ -1,3 +1,5 @@ +import warnings + from mmcv.utils import Registry, build_from_cfg from torch import nn @@ -53,4 +55,12 @@ def build_loss(cfg): def build_segmentor(cfg, train_cfg=None, test_cfg=None): """Build segmentor.""" + if train_cfg is not None or test_cfg is not None: + warnings.warn( + 'train_cfg and test_cfg is deprecated, ' + 'please specify them in model', UserWarning) + assert cfg.get('train_cfg') is None or train_cfg is None, \ + 'train_cfg specified in both outer field and model field ' + assert cfg.get('test_cfg') is None or test_cfg is None, \ + 'test_cfg specified in both outer field and model field ' return build(cfg, SEGMENTORS, dict(train_cfg=train_cfg, test_cfg=test_cfg)) diff --git a/tests/test_config.py b/tests/test_config.py index 77a0035e55..b991fbfd31 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -45,8 +45,6 @@ def test_config_build_segmentor(): config_mod = Config.fromfile(config_fpath) config_mod.model - config_mod.train_cfg - config_mod.test_cfg print('Building segmentor, config_fpath = {!r}'.format(config_fpath)) # Remove pretrained keys to allow for testing in an offline environment @@ -54,10 +52,7 @@ def test_config_build_segmentor(): config_mod.model['pretrained'] = None print('building {}'.format(config_fname)) - segmentor = build_segmentor( - config_mod.model, - train_cfg=config_mod.train_cfg, - test_cfg=config_mod.test_cfg) + segmentor = build_segmentor(config_mod.model) assert segmentor is not None head_config = config_mod.model['decode_head'] diff --git a/tests/test_models/test_forward.py b/tests/test_models/test_forward.py index be797a74d0..ee8036246b 100644 --- a/tests/test_models/test_forward.py +++ b/tests/test_models/test_forward.py @@ -76,12 +76,9 @@ def _get_segmentor_cfg(fname): These are deep copied to allow for safe modification of parameters without influencing other tests. """ - import mmcv config = _get_config_module(fname) model = copy.deepcopy(config.model) - train_cfg = mmcv.Config(copy.deepcopy(config.train_cfg)) - test_cfg = mmcv.Config(copy.deepcopy(config.test_cfg)) - return model, train_cfg, test_cfg + return model def test_pspnet_forward(): @@ -212,12 +209,12 @@ def _convert_batchnorm(module): _check_input_dim) @patch('torch.distributed.get_world_size', get_world_size) def _test_encoder_decoder_forward(cfg_file): - model, train_cfg, test_cfg = _get_segmentor_cfg(cfg_file) + model = _get_segmentor_cfg(cfg_file) model['pretrained'] = None - test_cfg['mode'] = 'whole' + model['test_cfg']['mode'] = 'whole' from mmseg.models import build_segmentor - segmentor = build_segmentor(model, train_cfg=train_cfg, test_cfg=test_cfg) + segmentor = build_segmentor(model) if isinstance(segmentor.decode_head, nn.ModuleList): num_classes = segmentor.decode_head[-1].num_classes diff --git a/tests/test_models/test_segmentor.py b/tests/test_models/test_segmentor.py index 67f7884bc8..90d3bf6314 100644 --- a/tests/test_models/test_segmentor.py +++ b/tests/test_models/test_segmentor.py @@ -1,6 +1,6 @@ -import mmcv import numpy as np import torch +from mmcv import ConfigDict from torch import nn from mmseg.models import BACKBONES, HEADS, build_segmentor @@ -123,31 +123,33 @@ def _segmentor_forward_train_test(segmentor): def test_encoder_decoder(): # test 1 decode head, w.o. aux head - cfg = dict( + + cfg = ConfigDict( type='EncoderDecoder', backbone=dict(type='ExampleBackbone'), - decode_head=dict(type='ExampleDecodeHead')) - test_cfg = mmcv.Config(dict(mode='whole')) - segmentor = build_segmentor(cfg, train_cfg=None, test_cfg=test_cfg) + decode_head=dict(type='ExampleDecodeHead'), + train_cfg=None, + test_cfg=dict(mode='whole')) + segmentor = build_segmentor(cfg) _segmentor_forward_train_test(segmentor) # test slide mode - test_cfg = mmcv.Config(dict(mode='slide', crop_size=(3, 3), stride=(2, 2))) - segmentor = build_segmentor(cfg, train_cfg=None, test_cfg=test_cfg) + cfg.test_cfg = ConfigDict(mode='slide', crop_size=(3, 3), stride=(2, 2)) + segmentor = build_segmentor(cfg) _segmentor_forward_train_test(segmentor) # test 1 decode head, 1 aux head - cfg = dict( + cfg = ConfigDict( type='EncoderDecoder', backbone=dict(type='ExampleBackbone'), decode_head=dict(type='ExampleDecodeHead'), auxiliary_head=dict(type='ExampleDecodeHead')) - test_cfg = mmcv.Config(dict(mode='whole')) - segmentor = build_segmentor(cfg, train_cfg=None, test_cfg=test_cfg) + cfg.test_cfg = ConfigDict(mode='whole') + segmentor = build_segmentor(cfg) _segmentor_forward_train_test(segmentor) # test 1 decode head, 2 aux head - cfg = dict( + cfg = ConfigDict( type='EncoderDecoder', backbone=dict(type='ExampleBackbone'), decode_head=dict(type='ExampleDecodeHead'), @@ -155,15 +157,15 @@ def test_encoder_decoder(): dict(type='ExampleDecodeHead'), dict(type='ExampleDecodeHead') ]) - test_cfg = mmcv.Config(dict(mode='whole')) - segmentor = build_segmentor(cfg, train_cfg=None, test_cfg=test_cfg) + cfg.test_cfg = ConfigDict(mode='whole') + segmentor = build_segmentor(cfg) _segmentor_forward_train_test(segmentor) def test_cascade_encoder_decoder(): # test 1 decode head, w.o. aux head - cfg = dict( + cfg = ConfigDict( type='CascadeEncoderDecoder', num_stages=2, backbone=dict(type='ExampleBackbone'), @@ -171,17 +173,17 @@ def test_cascade_encoder_decoder(): dict(type='ExampleDecodeHead'), dict(type='ExampleCascadeDecodeHead') ]) - test_cfg = mmcv.Config(dict(mode='whole')) - segmentor = build_segmentor(cfg, train_cfg=None, test_cfg=test_cfg) + cfg.test_cfg = ConfigDict(mode='whole') + segmentor = build_segmentor(cfg) _segmentor_forward_train_test(segmentor) # test slide mode - test_cfg = mmcv.Config(dict(mode='slide', crop_size=(3, 3), stride=(2, 2))) - segmentor = build_segmentor(cfg, train_cfg=None, test_cfg=test_cfg) + cfg.test_cfg = ConfigDict(mode='slide', crop_size=(3, 3), stride=(2, 2)) + segmentor = build_segmentor(cfg) _segmentor_forward_train_test(segmentor) # test 1 decode head, 1 aux head - cfg = dict( + cfg = ConfigDict( type='CascadeEncoderDecoder', num_stages=2, backbone=dict(type='ExampleBackbone'), @@ -190,12 +192,12 @@ def test_cascade_encoder_decoder(): dict(type='ExampleCascadeDecodeHead') ], auxiliary_head=dict(type='ExampleDecodeHead')) - test_cfg = mmcv.Config(dict(mode='whole')) - segmentor = build_segmentor(cfg, train_cfg=None, test_cfg=test_cfg) + cfg.test_cfg = ConfigDict(mode='whole') + segmentor = build_segmentor(cfg) _segmentor_forward_train_test(segmentor) # test 1 decode head, 2 aux head - cfg = dict( + cfg = ConfigDict( type='CascadeEncoderDecoder', num_stages=2, backbone=dict(type='ExampleBackbone'), @@ -207,6 +209,6 @@ def test_cascade_encoder_decoder(): dict(type='ExampleDecodeHead'), dict(type='ExampleDecodeHead') ]) - test_cfg = mmcv.Config(dict(mode='whole')) - segmentor = build_segmentor(cfg, train_cfg=None, test_cfg=test_cfg) + cfg.test_cfg = ConfigDict(mode='whole') + segmentor = build_segmentor(cfg) _segmentor_forward_train_test(segmentor) diff --git a/tools/benchmark.py b/tools/benchmark.py index bcb0d9580f..cb0df3bdfa 100644 --- a/tools/benchmark.py +++ b/tools/benchmark.py @@ -40,7 +40,8 @@ def main(): shuffle=False) # build the model and load checkpoint - model = build_segmentor(cfg.model, train_cfg=None, test_cfg=cfg.test_cfg) + cfg.model.train_cfg = None + model = build_segmentor(cfg.model, test_cfg=cfg.get('test_cfg')) load_checkpoint(model, args.checkpoint, map_location='cpu') model = MMDataParallel(model, device_ids=[0]) diff --git a/tools/get_flops.py b/tools/get_flops.py index aef3055499..bc98c52525 100644 --- a/tools/get_flops.py +++ b/tools/get_flops.py @@ -33,7 +33,9 @@ def main(): cfg = Config.fromfile(args.config) cfg.model.pretrained = None model = build_segmentor( - cfg.model, train_cfg=cfg.train_cfg, test_cfg=cfg.test_cfg).cuda() + cfg.model, + train_cfg=cfg.get('train_cfg'), + test_cfg=cfg.get('test_cfg')).cuda() model.eval() if hasattr(model, 'forward_dummy'): diff --git a/tools/pytorch2onnx.py b/tools/pytorch2onnx.py index f22d4d3786..2ec9feb59a 100644 --- a/tools/pytorch2onnx.py +++ b/tools/pytorch2onnx.py @@ -181,8 +181,9 @@ def parse_args(): cfg.model.pretrained = None # build the model and load checkpoint + cfg.model.train_cfg = None segmentor = build_segmentor( - cfg.model, train_cfg=None, test_cfg=cfg.test_cfg) + cfg.model, train_cfg=None, test_cfg=cfg.get('test_cfg')) # convert SyncBN to BN segmentor = _convert_batchnorm(segmentor) diff --git a/tools/test.py b/tools/test.py index e47fcca68f..a106f04626 100644 --- a/tools/test.py +++ b/tools/test.py @@ -110,7 +110,8 @@ def main(): shuffle=False) # build the model and load checkpoint - model = build_segmentor(cfg.model, train_cfg=None, test_cfg=cfg.test_cfg) + cfg.model.train_cfg = None + model = build_segmentor(cfg.model, test_cfg=cfg.get('test_cfg')) checkpoint = load_checkpoint(model, args.checkpoint, map_location='cpu') model.CLASSES = checkpoint['meta']['CLASSES'] model.PALETTE = checkpoint['meta']['PALETTE'] diff --git a/tools/train.py b/tools/train.py index 8e3835ae00..51fe4065de 100644 --- a/tools/train.py +++ b/tools/train.py @@ -128,7 +128,9 @@ def main(): meta['exp_name'] = osp.basename(args.config) model = build_segmentor( - cfg.model, train_cfg=cfg.train_cfg, test_cfg=cfg.test_cfg) + cfg.model, + train_cfg=cfg.get('train_cfg'), + test_cfg=cfg.get('test_cfg')) logger.info(model) From f3cf96b63efd092e86f95f9fd6a10954a5173585 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Sun, 24 Jan 2021 02:17:59 -0800 Subject: [PATCH 097/706] [Bug fix] Fixed ADE20k test (#359) * [Bug fix] Fixed ADE20k test * fixed ade cfg --- .../apcnet_r50-d8_512x512_160k_ade20k.py | 1 - .../apcnet/apcnet_r50-d8_512x512_80k_ade20k.py | 1 - .../deeplabv3_r50-d8_512x512_160k_ade20k.py | 1 - .../deeplabv3_r50-d8_512x512_80k_ade20k.py | 1 - ...deeplabv3plus_r50-d8_512x512_160k_ade20k.py | 1 - .../deeplabv3plus_r50-d8_512x512_80k_ade20k.py | 1 - .../dmnet/dmnet_r50-d8_512x512_160k_ade20k.py | 1 - .../dmnet/dmnet_r50-d8_512x512_80k_ade20k.py | 1 - configs/fcn/fcn_r50-d8_512x512_160k_ade20k.py | 1 - configs/fcn/fcn_r50-d8_512x512_80k_ade20k.py | 1 - .../psanet_r50-d8_512x512_160k_ade20k.py | 1 - .../psanet/psanet_r50-d8_512x512_80k_ade20k.py | 1 - .../pspnet_r50-d8_512x512_160k_ade20k.py | 1 - .../pspnet/pspnet_r50-d8_512x512_80k_ade20k.py | 1 - .../upernet/upernet_r50_512x512_160k_ade20k.py | 1 - .../upernet/upernet_r50_512x512_80k_ade20k.py | 1 - mmseg/core/evaluation/metrics.py | 18 +++++++++--------- 17 files changed, 9 insertions(+), 25 deletions(-) diff --git a/configs/apcnet/apcnet_r50-d8_512x512_160k_ade20k.py b/configs/apcnet/apcnet_r50-d8_512x512_160k_ade20k.py index aa45e35d30..f7821c559d 100644 --- a/configs/apcnet/apcnet_r50-d8_512x512_160k_ade20k.py +++ b/configs/apcnet/apcnet_r50-d8_512x512_160k_ade20k.py @@ -4,4 +4,3 @@ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/apcnet/apcnet_r50-d8_512x512_80k_ade20k.py b/configs/apcnet/apcnet_r50-d8_512x512_80k_ade20k.py index 6b40d1f7ad..daafa5fbc1 100644 --- a/configs/apcnet/apcnet_r50-d8_512x512_80k_ade20k.py +++ b/configs/apcnet/apcnet_r50-d8_512x512_80k_ade20k.py @@ -4,4 +4,3 @@ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k.py b/configs/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k.py index 742e17d749..b4a9d4e1b9 100644 --- a/configs/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k.py +++ b/configs/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k.py @@ -4,4 +4,3 @@ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k.py b/configs/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k.py index 5ddef212f7..78f4d0d9de 100644 --- a/configs/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k.py +++ b/configs/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k.py @@ -4,4 +4,3 @@ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k.py b/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k.py index e734880956..1491e3b824 100644 --- a/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k.py +++ b/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k.py @@ -4,4 +4,3 @@ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k.py b/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k.py index 8705972631..352d870bc8 100644 --- a/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k.py +++ b/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k.py @@ -4,4 +4,3 @@ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py b/configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py index 69f4165c7c..a8fbd9beb1 100644 --- a/configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py +++ b/configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py @@ -4,4 +4,3 @@ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py b/configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py index 513f58cbe4..74f6d6a85a 100644 --- a/configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py +++ b/configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py @@ -4,4 +4,3 @@ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/fcn/fcn_r50-d8_512x512_160k_ade20k.py b/configs/fcn/fcn_r50-d8_512x512_160k_ade20k.py index db272d6b5b..9ca7fd23ce 100644 --- a/configs/fcn/fcn_r50-d8_512x512_160k_ade20k.py +++ b/configs/fcn/fcn_r50-d8_512x512_160k_ade20k.py @@ -4,4 +4,3 @@ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/fcn/fcn_r50-d8_512x512_80k_ade20k.py b/configs/fcn/fcn_r50-d8_512x512_80k_ade20k.py index 64997c26f7..ef194cb594 100644 --- a/configs/fcn/fcn_r50-d8_512x512_80k_ade20k.py +++ b/configs/fcn/fcn_r50-d8_512x512_80k_ade20k.py @@ -4,4 +4,3 @@ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/psanet/psanet_r50-d8_512x512_160k_ade20k.py b/configs/psanet/psanet_r50-d8_512x512_160k_ade20k.py index d177d17e17..9c6364eb43 100644 --- a/configs/psanet/psanet_r50-d8_512x512_160k_ade20k.py +++ b/configs/psanet/psanet_r50-d8_512x512_160k_ade20k.py @@ -5,4 +5,3 @@ model = dict( decode_head=dict(mask_size=(66, 66), num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/psanet/psanet_r50-d8_512x512_80k_ade20k.py b/configs/psanet/psanet_r50-d8_512x512_80k_ade20k.py index 58a18a043a..0141a6d092 100644 --- a/configs/psanet/psanet_r50-d8_512x512_80k_ade20k.py +++ b/configs/psanet/psanet_r50-d8_512x512_80k_ade20k.py @@ -5,4 +5,3 @@ model = dict( decode_head=dict(mask_size=(66, 66), num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py b/configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py index c34b66aaf8..86584573a3 100644 --- a/configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py +++ b/configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py @@ -4,4 +4,3 @@ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/pspnet/pspnet_r50-d8_512x512_80k_ade20k.py b/configs/pspnet/pspnet_r50-d8_512x512_80k_ade20k.py index 6922cc6d1f..52efdf51d7 100644 --- a/configs/pspnet/pspnet_r50-d8_512x512_80k_ade20k.py +++ b/configs/pspnet/pspnet_r50-d8_512x512_80k_ade20k.py @@ -4,4 +4,3 @@ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/upernet/upernet_r50_512x512_160k_ade20k.py b/configs/upernet/upernet_r50_512x512_160k_ade20k.py index f259165fca..f5dd9aa4ed 100644 --- a/configs/upernet/upernet_r50_512x512_160k_ade20k.py +++ b/configs/upernet/upernet_r50_512x512_160k_ade20k.py @@ -4,4 +4,3 @@ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/upernet/upernet_r50_512x512_80k_ade20k.py b/configs/upernet/upernet_r50_512x512_80k_ade20k.py index ce5d71f56d..f561e309e3 100644 --- a/configs/upernet/upernet_r50_512x512_80k_ade20k.py +++ b/configs/upernet/upernet_r50_512x512_80k_ade20k.py @@ -4,4 +4,3 @@ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/mmseg/core/evaluation/metrics.py b/mmseg/core/evaluation/metrics.py index 86475a8983..95b096e7a3 100644 --- a/mmseg/core/evaluation/metrics.py +++ b/mmseg/core/evaluation/metrics.py @@ -34,15 +34,15 @@ def intersect_and_union(pred_label, if isinstance(label, str): label = mmcv.imread(label, flag='unchanged', backend='pillow') - # modify if custom classes - if label_map is not None: - for old_id, new_id in label_map.items(): - label[label == old_id] = new_id - if reduce_zero_label: - # avoid using underflow conversion - label[label == 0] = 255 - label = label - 1 - label[label == 254] = 255 + # modify if custom classes + if label_map is not None: + for old_id, new_id in label_map.items(): + label[label == old_id] = new_id + if reduce_zero_label: + # avoid using underflow conversion + label[label == 0] = 255 + label = label - 1 + label[label == 254] = 255 mask = (label != ignore_index) pred_label = pred_label[mask] From 45f07af4c84a82b4f0ed8051e9d258bf6590f349 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Tue, 2 Feb 2021 15:09:20 -0800 Subject: [PATCH 098/706] Bump v0.11 (#368) * bump to v0.11 * update readme --- README.md | 2 +- docs/changelog.md | 22 ++++++++++++++++++++++ mmseg/version.py | 2 +- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 26bd6a1bff..3edffa842f 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ This project is released under the [Apache 2.0 license](LICENSE). ## Changelog -v0.10.0 was released in 01/01/2021. +v0.11.0 was released in 02/02/2021. Please refer to [changelog.md](docs/changelog.md) for details and release history. ## Benchmark and model zoo diff --git a/docs/changelog.md b/docs/changelog.md index dcf269d130..faf1df3d21 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,5 +1,27 @@ ## Changelog +### V0.11 (02/02/2021) + +**Highlights** + +- Support memory efficient test, add more UNet models. + +**Bug Fixes** + +- Fixed TTA resize scale ([#334](https://github.com/open-mmlab/mmsegmentation/pull/334)) +- Fixed CI for pip 20.3 ([#307](https://github.com/open-mmlab/mmsegmentation/pull/307)) +- Fixed ADE20k test ([#359](https://github.com/open-mmlab/mmsegmentation/pull/359)) + +**New Features** + +- Support memory efficient test ([#330](https://github.com/open-mmlab/mmsegmentation/pull/330)) +- Add more UNet benchmarks ([#324](https://github.com/open-mmlab/mmsegmentation/pull/324)) +- Support Lovasz Loss ([#351](https://github.com/open-mmlab/mmsegmentation/pull/351)) + +**Improvements** + +- Move train_cfg/test_cfg inside model ([#341](https://github.com/open-mmlab/mmsegmentation/pull/341)) + ### V0.10 (01/01/2021) **Highlights** diff --git a/mmseg/version.py b/mmseg/version.py index 8242f19a71..41a08cf155 100644 --- a/mmseg/version.py +++ b/mmseg/version.py @@ -1,6 +1,6 @@ # Copyright (c) Open-MMLab. All rights reserved. -__version__ = '0.10.0' +__version__ = '0.11.0' def parse_version_info(version_str): From 67d71504a731bdbb4c3adea526a2f45f955a03fe Mon Sep 17 00:00:00 2001 From: Kai Chen Date: Mon, 22 Feb 2021 03:11:28 +0800 Subject: [PATCH 099/706] add readme of chinese version (#383) --- README.md | 6 ++- README_zh-CN.md | 134 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 138 insertions(+), 2 deletions(-) create mode 100644 README_zh-CN.md diff --git a/README.md b/README.md index 3edffa842f..ba4e76bf17 100644 --- a/README.md +++ b/README.md @@ -13,12 +13,14 @@ Documentation: https://mmsegmentation.readthedocs.io/ +English | [简体中文](README_zh-CN.md) + ## Introduction MMSegmentation is an open source semantic segmentation toolbox based on PyTorch. It is a part of the OpenMMLab project. -The master branch works with **PyTorch 1.3 to 1.6**. +The master branch works with **PyTorch 1.3+**. ![demo image](resources/seg_demo.gif) @@ -105,7 +107,7 @@ If you find this project useful in your research, please consider cite: ```latex @misc{mmseg2020, - title={MMSegmentation, an Open Source Semantic Segmentation Toolbox}, + title={{MMSegmentation}: OpenMMLab Semantic Segmentation Toolbox and Benchmark}, author={MMSegmentation Contributors}, howpublished = {\url{https://github.com/open-mmlab/mmsegmentation}}, year={2020} diff --git a/README_zh-CN.md b/README_zh-CN.md new file mode 100644 index 0000000000..7ce583f8cb --- /dev/null +++ b/README_zh-CN.md @@ -0,0 +1,134 @@ +
+ +
+
+ +[![PyPI](https://img.shields.io/pypi/v/mmsegmentation)](https://pypi.org/project/mmsegmentation) +[![docs](https://img.shields.io/badge/docs-latest-blue)](https://mmsegmentation.readthedocs.io/en/latest/) +[![badge](https://github.com/open-mmlab/mmsegmentation/workflows/build/badge.svg)](https://github.com/open-mmlab/mmsegmentation/actions) +[![codecov](https://codecov.io/gh/open-mmlab/mmsegmentation/branch/master/graph/badge.svg)](https://codecov.io/gh/open-mmlab/mmsegmentation) +[![license](https://img.shields.io/github/license/open-mmlab/mmsegmentation.svg)](https://github.com/open-mmlab/mmsegmentation/blob/master/LICENSE) +[![issue resolution](https://isitmaintained.com/badge/resolution/open-mmlab/mmsegmentation.svg)](https://github.com/open-mmlab/mmsegmentation/issues) +[![open issues](https://isitmaintained.com/badge/open/open-mmlab/mmsegmentation.svg)](https://github.com/open-mmlab/mmsegmentation/issues) + +文档: https://mmsegmentation.readthedocs.io/ + +[English](README.md) | 简体中文 + +## 简介 + +MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 OpenMMLab 项目的一部分。 + +主分支代码目前支持 PyTorch 1.3 以上的版本。 + +![示例图片](resources/seg_demo.gif) + +### 主要特性 + +- **统一的基准平台** + + 我们将各种各样的语义分割算法集成到了一个统一的工具箱,进行基准测试。 + +- **模块化设计** + + MMSegmentation 将分割框架解耦成不同的模块组件,通过组合不同的模块组件,用户可以便捷地构建自定义的分割模型。 + +- **丰富的即插即用的算法和模型** + + MMSegmentation 支持了众多主流的和最新的检测算法,例如 PSPNet,DeepLabV3,PSANet,DeepLabV3+ 等. + +- **速度快** + + 训练速度比其他语义分割代码库更快或者相当。 + +## 开源许可证 + +该项目采用 [Apache 2.0 开源许可证](LICENSE)。 + +## 更新日志 + +最新的月度版本 v0.11.0 在 2021.02.02 发布。 +如果想了解更多版本更新细节和历史信息,请阅读[更新日志](docs/changelog.md)。 + +## 基准测试和模型库 + +测试结果和模型可以在[模型库](docs/model_zoo.md)中找到。 + +已支持的骨干网络: + +- [x] ResNet +- [x] ResNeXt +- [x] [HRNet](configs/hrnet/README.md) +- [x] [ResNeSt](configs/resnest/README.md) +- [x] [MobileNetV2](configs/mobilenet_v2/README.md) +- [x] [MobileNetV3](configs/mobilenet_v3/README.md) + +已支持的算法: + +- [x] [FCN](configs/fcn) +- [x] [PSPNet](configs/pspnet) +- [x] [DeepLabV3](configs/deeplabv3) +- [x] [PSANet](configs/psanet) +- [x] [DeepLabV3+](configs/deeplabv3plus) +- [x] [UPerNet](configs/upernet) +- [x] [NonLocal Net](configs/nonlocal_net) +- [x] [EncNet](configs/encnet) +- [x] [CCNet](configs/ccnet) +- [x] [DANet](configs/danet) +- [x] [APCNet](configs/apcnet) +- [x] [GCNet](configs/gcnet) +- [x] [DMNet](configs/dmnet) +- [x] [ANN](configs/ann) +- [x] [OCRNet](configs/ocrnet) +- [x] [Fast-SCNN](configs/fastscnn) +- [x] [Semantic FPN](configs/sem_fpn) +- [x] [PointRend](configs/point_rend) +- [x] [EMANet](configs/emanet) +- [x] [DNLNet](configs/dnlnet) +- [x] [CGNet](configs/cgnet) +- [x] [Mixed Precision (FP16) Training](configs/fp16/README.md) + +## 安装 + +请参考[快速入门文档](docs/get_started.md#installation)进行安装和数据集准备。 + +## 快速入门 + +请参考[训练教程](docs/train.md)和[测试教程](docs/inference.md)学习 MMSegmentation 的基本使用。 +我们也提供了一些进阶教程,内容覆盖了[增加自定义数据集](docs/tutorials/customize_datasets.md),[设计新的数据预处理流程](docs/tutorials/data_pipeline.md),[增加自定义模型](docs/tutorials/customize_models.md),[增加自定义的运行时配置](docs/tutorials/customize_runtime.md)。 +除此之外,我们也提供了很多实用的[训练技巧说明](docs/tutorials/training_tricks.md)。 + +同时,我们提供了 Colab 教程。你可以在[这里](demo/MMSegmentation_Tutorial.ipynb)浏览教程,或者直接在 Colab 上[运行](https://colab.research.google.com/github/open-mmlab/mmsegmentation/blob/master/demo/MMSegmentation_Tutorial.ipynb)。 + +## 引用 + +如果你觉得本项目对你的研究工作有所帮助,请参考如下 bibtex 引用 MMSegmentation。 + +```latex +@misc{mmseg2020, + title={{MMSegmentation}: OpenMMLab Semantic Segmentation Toolbox and Benchmark}, + author={MMSegmentation Contributors}, + howpublished = {\url{https://github.com/open-mmlab/mmsegmentation}}, + year={2020} +} +``` + +## 贡献指南 + +我们感谢所有的贡献者为改进和提升 MMSegmentation 所作出的努力。请参考[贡献指南](.github/CONTRIBUTING.md)来了解参与项目贡献的相关指引。 + +## 致谢 + +MMSegmentation 是一个由来自不同高校和企业的研发人员共同参与贡献的开源项目。我们感谢所有为项目提供算法复现和新功能支持的贡献者,以及提供宝贵反馈的用户。 我们希望这个工具箱和基准测试可以为社区提供灵活的代码工具,供用户复现已有算法并开发自己的新模型,从而不断为开源社区提供贡献。 + +## OpenMMLab 的其他项目 + +- [MMCV](https://github.com/open-mmlab/mmcv): OpenMMLab 计算机视觉基础库 +- [MMClassification](https://github.com/open-mmlab/mmclassification): OpenMMLab 图像分类工具箱 +- [MMDetection](https://github.com/open-mmlab/mmdetection): OpenMMLab 目标检测工具箱 +- [MMDetection3D](https://github.com/open-mmlab/mmdetection3d): OpenMMLab 新一代通用 3D 目标检测平台 +- [MMSegmentation](https://github.com/open-mmlab/mmsegmentation): OpenMMLab 语义分割工具箱 +- [MMAction2](https://github.com/open-mmlab/mmaction2): OpenMMLab 新一代视频理解工具箱 +- [MMTracking](https://github.com/open-mmlab/mmtracking): OpenMMLab 一体化视频目标感知平台 +- [MMPose](https://github.com/open-mmlab/mmpose): OpenMMLab 姿态估计工具箱 +- [MMEditing](https://github.com/open-mmlab/mmediting): OpenMMLab 图像视频编辑工具箱 From 96ddb41c6eae2e272e82e70715fbfcc06927cf5a Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Wed, 24 Feb 2021 18:22:00 -0800 Subject: [PATCH 100/706] Fix PhotoMetricDistortion docstring (#388) --- mmseg/datasets/pipelines/transforms.py | 1 - 1 file changed, 1 deletion(-) diff --git a/mmseg/datasets/pipelines/transforms.py b/mmseg/datasets/pipelines/transforms.py index e168280adc..9231efc8dc 100644 --- a/mmseg/datasets/pipelines/transforms.py +++ b/mmseg/datasets/pipelines/transforms.py @@ -783,7 +783,6 @@ class PhotoMetricDistortion(object): 5. random hue 6. convert color from HSV to BGR 7. random contrast (mode 1) - 8. randomly swap channels Args: brightness_delta (int): delta of brightness. From a3b523e3fd04d81aefa74895a7512188d5c7d357 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=98=95=E8=BE=B0?= Date: Thu, 11 Mar 2021 10:32:37 +0800 Subject: [PATCH 101/706] dice loss (#396) * dice loss * format code, add docstring and calculate denominator without valid_mask * minor change * restore --- mmseg/models/losses/__init__.py | 3 +- mmseg/models/losses/dice_loss.py | 116 +++++++++++++++++++++++++++++++ tests/test_models/test_losses.py | 40 +++++++++++ 3 files changed, 158 insertions(+), 1 deletion(-) create mode 100644 mmseg/models/losses/dice_loss.py diff --git a/mmseg/models/losses/__init__.py b/mmseg/models/losses/__init__.py index d623887760..beca720456 100644 --- a/mmseg/models/losses/__init__.py +++ b/mmseg/models/losses/__init__.py @@ -1,11 +1,12 @@ from .accuracy import Accuracy, accuracy from .cross_entropy_loss import (CrossEntropyLoss, binary_cross_entropy, cross_entropy, mask_cross_entropy) +from .dice_loss import DiceLoss from .lovasz_loss import LovaszLoss from .utils import reduce_loss, weight_reduce_loss, weighted_loss __all__ = [ 'accuracy', 'Accuracy', 'cross_entropy', 'binary_cross_entropy', 'mask_cross_entropy', 'CrossEntropyLoss', 'reduce_loss', - 'weight_reduce_loss', 'weighted_loss', 'LovaszLoss' + 'weight_reduce_loss', 'weighted_loss', 'LovaszLoss', 'DiceLoss' ] diff --git a/mmseg/models/losses/dice_loss.py b/mmseg/models/losses/dice_loss.py new file mode 100644 index 0000000000..27da861f98 --- /dev/null +++ b/mmseg/models/losses/dice_loss.py @@ -0,0 +1,116 @@ +"""Modified from https://github.com/LikeLy-Journey/SegmenTron/blob/master/ +segmentron/solver/loss.py (Apache-2.0 License)""" +import torch +import torch.nn as nn +import torch.nn.functional as F + +from ..builder import LOSSES +from .utils import weighted_loss + + +@weighted_loss +def dice_loss(pred, + target, + valid_mask, + smooth=1, + exponent=2, + class_weight=None, + ignore_index=-1): + assert pred.shape[0] == target.shape[0] + total_loss = 0 + num_classes = pred.shape[1] + for i in range(num_classes): + if i != ignore_index: + dice_loss = binary_dice_loss( + pred[:, i], + target[..., i], + valid_mask=valid_mask, + smooth=smooth, + exponent=exponent) + if class_weight is not None: + dice_loss *= class_weight[i] + total_loss += dice_loss + return total_loss / num_classes + + +@weighted_loss +def binary_dice_loss(pred, target, valid_mask, smooth=1, exponent=2, **kwards): + assert pred.shape[0] == target.shape[0] + pred = pred.contiguous().view(pred.shape[0], -1) + target = target.contiguous().view(target.shape[0], -1) + valid_mask = valid_mask.contiguous().view(valid_mask.shape[0], -1) + + num = torch.sum(torch.mul(pred, target) * valid_mask, dim=1) * 2 + smooth + den = torch.sum(pred.pow(exponent) + target.pow(exponent), dim=1) + smooth + + return 1 - num / den + + +@LOSSES.register_module() +class DiceLoss(nn.Module): + """DiceLoss. + + This loss is proposed in `V-Net: Fully Convolutional Neural Networks for + Volumetric Medical Image Segmentation `_. + + Args: + loss_type (str, optional): Binary or multi-class loss. + Default: 'multi_class'. Options are "binary" and "multi_class". + smooth (float): A float number to smooth loss, and avoid NaN error. + Default: 1 + exponent (float): An float number to calculate denominator + value: \\sum{x^exponent} + \\sum{y^exponent}. Default: 2. + reduction (str, optional): The method used to reduce the loss. Options + are "none", "mean" and "sum". This parameter only works when + per_image is True. Default: 'mean'. + class_weight (list[float], optional): The weight for each class. + Default: None. + loss_weight (float, optional): Weight of the loss. Default to 1.0. + ignore_index (int | None): The label index to be ignored. Default: 255. + """ + + def __init__(self, + loss_type='multi_class', + smooth=1, + exponent=2, + reduction='mean', + class_weight=None, + loss_weight=1.0, + ignore_index=255): + super(DiceLoss, self).__init__() + assert loss_type in ['multi_class', 'binary'] + if loss_type == 'multi_class': + self.cls_criterion = dice_loss + else: + self.cls_criterion = binary_dice_loss + self.smooth = smooth + self.exponent = exponent + self.reduction = reduction + self.class_weight = class_weight + self.loss_weight = loss_weight + self.ignore_index = ignore_index + + def forward(self, pred, target, avg_factor=None, reduction_override=None): + assert reduction_override in (None, 'none', 'mean', 'sum') + reduction = ( + reduction_override if reduction_override else self.reduction) + if self.class_weight is not None: + class_weight = pred.new_tensor(self.class_weight) + else: + class_weight = None + + pred = F.softmax(pred, dim=1) + one_hot_target = F.one_hot(torch.clamp_min(target.long(), 0)) + valid_mask = (target != self.ignore_index).long() + + loss = self.loss_weight * self.cls_criterion( + pred, + one_hot_target, + valid_mask=valid_mask, + reduction=reduction, + avg_factor=avg_factor, + smooth=self.smooth, + exponent=self.exponent, + class_weight=class_weight, + ignore_index=self.ignore_index) + return loss diff --git a/tests/test_models/test_losses.py b/tests/test_models/test_losses.py index 005d939114..481a8e92ce 100644 --- a/tests/test_models/test_losses.py +++ b/tests/test_models/test_losses.py @@ -202,3 +202,43 @@ def test_lovasz_loss(): logits = torch.rand(2, 4, 4) labels = (torch.rand(2, 4, 4)).long() lovasz_loss(logits, labels, ignore_index=None) + + +def test_dice_lose(): + from mmseg.models import build_loss + + # loss_type should be 'binary' or 'multi_class' + with pytest.raises(AssertionError): + loss_cfg = dict( + type='DiceLoss', + loss_type='Binary', + reduction='none', + loss_weight=1.0) + build_loss(loss_cfg) + + # test dice loss with loss_type = 'multi_class' + loss_cfg = dict( + type='DiceLoss', + loss_type='multi_class', + reduction='none', + class_weight=[1.0, 2.0, 3.0], + loss_weight=1.0, + ignore_index=1) + dice_loss = build_loss(loss_cfg) + logits = torch.rand(8, 3, 4, 4) + labels = (torch.rand(8, 4, 4) * 3).long() + dice_loss(logits, labels) + + # test dice loss with loss_type = 'binary' + loss_cfg = dict( + type='DiceLoss', + loss_type='binary', + smooth=2, + exponent=3, + reduction='sum', + loss_weight=1.0, + ignore_index=0) + dice_loss = build_loss(loss_cfg) + logits = torch.rand(16, 4, 4) + labels = (torch.rand(16, 4, 4)).long() + dice_loss(logits, labels) From bac07143473cf717a952483c59cd0c25800bc6e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=98=95=E8=BE=B0?= Date: Sun, 21 Mar 2021 01:32:04 +0800 Subject: [PATCH 102/706] Support fcn dilate 6 (#400) * Support fcn dilate 6 * Support dilate in FCNHead * configs for cityscapse dataset * add configs for pytorch pretrained model * update README * add fps test results * add memory test results and links * modify log names * Update mmseg/models/decode_heads/fcn_head.py Co-authored-by: Jerry Jiarui XU --- configs/fcn/README.md | 12 ++++++++++++ .../fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes.py | 2 ++ .../fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes.py | 2 ++ .../fcn/fcn_d6_r101-d16_769x769_40k_cityscapes.py | 2 ++ .../fcn/fcn_d6_r101-d16_769x769_80k_cityscapes.py | 2 ++ .../fcn/fcn_d6_r101b-d16_512x1024_80k_cityscapes.py | 4 ++++ .../fcn/fcn_d6_r101b-d16_769x769_80k_cityscapes.py | 4 ++++ .../fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes.py | 8 ++++++++ .../fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes.py | 8 ++++++++ configs/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes.py | 10 ++++++++++ configs/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes.py | 10 ++++++++++ .../fcn/fcn_d6_r50b-d16_512x1024_80k_cityscapes.py | 2 ++ .../fcn/fcn_d6_r50b-d16_769x769_80k_cityscapes.py | 2 ++ mmseg/models/decode_heads/fcn_head.py | 11 ++++++++--- 14 files changed, 76 insertions(+), 3 deletions(-) create mode 100644 configs/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes.py create mode 100644 configs/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes.py create mode 100644 configs/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes.py create mode 100644 configs/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes.py create mode 100644 configs/fcn/fcn_d6_r101b-d16_512x1024_80k_cityscapes.py create mode 100644 configs/fcn/fcn_d6_r101b-d16_769x769_80k_cityscapes.py create mode 100644 configs/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes.py create mode 100644 configs/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes.py create mode 100644 configs/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes.py create mode 100644 configs/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes.py create mode 100644 configs/fcn/fcn_d6_r50b-d16_512x1024_80k_cityscapes.py create mode 100644 configs/fcn/fcn_d6_r50b-d16_769x769_80k_cityscapes.py diff --git a/configs/fcn/README.md b/configs/fcn/README.md index 95ca2ac043..f3b6433cda 100644 --- a/configs/fcn/README.md +++ b/configs/fcn/README.md @@ -39,6 +39,18 @@ | FCN | R-18b-D8 | 769x769 | 80000 | 1.7 | 6.70 | 69.66 | 72.07 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_769x769_80k_cityscapes/fcn_r18b-d8_769x769_80k_cityscapes_20201226_004430-32d504e5.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_769x769_80k_cityscapes/fcn_r18b-d8_769x769_80k_cityscapes-20201226_004430.log.json) | | FCN | R-50b-D8 | 769x769 | 80000 | 6.3 | 1.82 | 73.83 | 76.60 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_769x769_80k_cityscapes/fcn_r50b-d8_769x769_80k_cityscapes_20201225_094223-94552d38.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_769x769_80k_cityscapes/fcn_r50b-d8_769x769_80k_cityscapes-20201225_094223.log.json) | | FCN | R-101b-D8| 769x769 | 80000 | 10.3 | 1.15 | 77.02 | 78.67 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_769x769_80k_cityscapes/fcn_r101b-d8_769x769_80k_cityscapes_20201226_170012-82be37e2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_769x769_80k_cityscapes/fcn_r101b-d8_769x769_80k_cityscapes-20201226_170012.log.json) | +|FCN-D6|R-50-D16|512x1024|40000|3.4|10.22|77.06|78.85| [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes/fcn_d6_r50-d16_512x1024_40k_cityscapes-98d5d1bc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes/fcn_d6_r50-d16_512x1024_40k_cityscapes-20210305_130133.log.json)| +|FCN-D6|R-50-D16|512x1024|80000|-|10.35|77.27|78.88| [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes/fcn_d6_r50-d16_512x1024_40k_cityscapes-98d5d1bc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes/fcn_d6_r50-d16_512x1024_80k_cityscapes-20210306_115604.log.json) | +|FCN-D6|R-50-D16|769x769|40000|3.7|4.17|76.82|78.22| [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes/fcn_d6_r50-d16_769x769_40k_cityscapes-1aab18ed.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes/fcn_d6_r50-d16_769x769_40k_cityscapes-20210305_185744.log.json) | +|FCN-D6|R-50-D16|769x769|80000|-|4.15|77.04|78.40| [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes/fcn_d6_r50-d16_769x769_80k_cityscapes-109d88eb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes/fcn_d6_r50-d16_769x769_80k_cityscapes-20210305_200413.log.json) | +|FCN-D6|R-101-D16|512x1024|40000|4.5|8.04|77.36|79.18| [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes/fcn_d6_r101-d16_512x1024_40k_cityscapes-9cf2b450.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes/fcn_d6_r101-d16_512x1024_40k_cityscapes-20210305_130337.log.json) | +|FCN-D6|R-101-D16|512x1024|80000|-|8.26|78.46|80.42| [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes/fcn_d6_r101-d16_512x1024_80k_cityscapes-cb336445.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes/fcn_d6_r101-d16_512x1024_80k_cityscapes-20210308_102747.log.json) | +|FCN-D6|R-101-D16|769x769|40000|5.0|3.12|77.28|78.95| [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes/fcn_d6_r101-d16_769x769_40k_cityscapes-60b114e9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes/fcn_d6_r101-d16_769x769_40k_cityscapes-20210308_102453.log.json) | +|FCN-D6|R-101-D16|769x769|80000|-|3.21|78.06|79.58| [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes/fcn_d6_r101-d16_769x769_80k_cityscapes-e33adc4f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes/fcn_d6_r101-d16_769x769_80k_cityscapes-20210306_120016.log.json) | +|FCN-D6|R-50b-D16|512x1024|80000|3.2|10.16|76.99|79.03| [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_512x1024_80k_cityscapes/fcn_d6_r50b_d16_512x1024_80k_cityscapes-6a0b62e9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_512x1024_80k_cityscapes/fcn_d6_r50b_d16_512x1024_80k_cityscapes-20210311_125550.log.json) | +|FCN-D6|R-50b-D16|769x769|80000|3.6|4.17|76.86|78.52| [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_769x769_80k_cityscapes/fcn_d6_r50b_d16_769x769_80k_cityscapes-d665f231.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_769x769_80k_cityscapes/fcn_d6_r50b_d16_769x769_80k_cityscapes-20210311_131012.log.json) | +|FCN-D6|R-101b-D16|512x1024|80000|4.3|8.46|77.72|79.53| [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_512x1024_80k_cityscapes/fcn_d6_r101b_d16_512x1024_80k_cityscapes-3f2eb5b4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_512x1024_80k_cityscapes/fcn_d6_r101b_d16_512x1024_80k_cityscapes-20210311_144305.log.json) | +|FCN-D6|R-101b-D16|769x769|80000|4.8|3.32|77.34|78.91| [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_769x769_80k_cityscapes/fcn_d6_r101b_d16_769x769_80k_cityscapes-c4d8bfbc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_769x769_80k_cityscapes/fcn_d6_r101b_d16_769x769_80k_cityscapes-20210311_154527.log.json) | ### ADE20K diff --git a/configs/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes.py b/configs/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes.py new file mode 100644 index 0000000000..aec4254c8f --- /dev/null +++ b/configs/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './fcn_d6_r50-d16_512x1024_40k_cityscapes.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes.py b/configs/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..d0bafc52ab --- /dev/null +++ b/configs/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './fcn_d6_r50-d16_512x1024_80k_cityscapes.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes.py b/configs/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes.py new file mode 100644 index 0000000000..29a9f98a93 --- /dev/null +++ b/configs/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './fcn_d6_r50-d16_769x769_40k_cityscapes.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes.py b/configs/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..1f21c6578b --- /dev/null +++ b/configs/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './fcn_d6_r50-d16_769x769_80k_cityscapes.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/fcn/fcn_d6_r101b-d16_512x1024_80k_cityscapes.py b/configs/fcn/fcn_d6_r101b-d16_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..af3f765b76 --- /dev/null +++ b/configs/fcn/fcn_d6_r101b-d16_512x1024_80k_cityscapes.py @@ -0,0 +1,4 @@ +_base_ = './fcn_d6_r50b-d16_512x1024_80k_cityscapes.py' +model = dict( + pretrained='torchvision://resnet101', + backbone=dict(type='ResNet', depth=101)) diff --git a/configs/fcn/fcn_d6_r101b-d16_769x769_80k_cityscapes.py b/configs/fcn/fcn_d6_r101b-d16_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..e3d4d884fd --- /dev/null +++ b/configs/fcn/fcn_d6_r101b-d16_769x769_80k_cityscapes.py @@ -0,0 +1,4 @@ +_base_ = './fcn_d6_r50b-d16_769x769_80k_cityscapes.py' +model = dict( + pretrained='torchvision://resnet101', + backbone=dict(type='ResNet', depth=101)) diff --git a/configs/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes.py b/configs/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes.py new file mode 100644 index 0000000000..f30646ede7 --- /dev/null +++ b/configs/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes.py @@ -0,0 +1,8 @@ +_base_ = [ + '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/cityscapes.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' +] +model = dict( + backbone=dict(dilations=(1, 1, 1, 2), strides=(1, 2, 2, 1)), + decode_head=dict(dilation=6), + auxiliary_head=dict(dilation=6)) diff --git a/configs/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes.py b/configs/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..e4b623aca9 --- /dev/null +++ b/configs/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes.py @@ -0,0 +1,8 @@ +_base_ = [ + '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/cityscapes.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' +] +model = dict( + backbone=dict(dilations=(1, 1, 1, 2), strides=(1, 2, 2, 1)), + decode_head=dict(dilation=6), + auxiliary_head=dict(dilation=6)) diff --git a/configs/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes.py b/configs/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes.py new file mode 100644 index 0000000000..01d8f27c8c --- /dev/null +++ b/configs/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes.py @@ -0,0 +1,10 @@ +_base_ = [ + '../_base_/models/fcn_r50-d8.py', + '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_40k.py' +] +model = dict( + backbone=dict(dilations=(1, 1, 1, 2), strides=(1, 2, 2, 1)), + decode_head=dict(align_corners=True, dilation=6), + auxiliary_head=dict(align_corners=True, dilation=6), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes.py b/configs/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..c5ef3b880e --- /dev/null +++ b/configs/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes.py @@ -0,0 +1,10 @@ +_base_ = [ + '../_base_/models/fcn_r50-d8.py', + '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_80k.py' +] +model = dict( + backbone=dict(dilations=(1, 1, 1, 2), strides=(1, 2, 2, 1)), + decode_head=dict(align_corners=True, dilation=6), + auxiliary_head=dict(align_corners=True, dilation=6), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/fcn/fcn_d6_r50b-d16_512x1024_80k_cityscapes.py b/configs/fcn/fcn_d6_r50b-d16_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..0749ff14a3 --- /dev/null +++ b/configs/fcn/fcn_d6_r50b-d16_512x1024_80k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './fcn_d6_r50-d16_512x1024_80k_cityscapes.py' +model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet')) diff --git a/configs/fcn/fcn_d6_r50b-d16_769x769_80k_cityscapes.py b/configs/fcn/fcn_d6_r50b-d16_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..fba8948a03 --- /dev/null +++ b/configs/fcn/fcn_d6_r50b-d16_769x769_80k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './fcn_d6_r50-d16_769x769_80k_cityscapes.py' +model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet')) diff --git a/mmseg/models/decode_heads/fcn_head.py b/mmseg/models/decode_heads/fcn_head.py index d660847f89..4ea3742f0b 100644 --- a/mmseg/models/decode_heads/fcn_head.py +++ b/mmseg/models/decode_heads/fcn_head.py @@ -17,14 +17,16 @@ class FCNHead(BaseDecodeHead): kernel_size (int): The kernel size for convs in the head. Default: 3. concat_input (bool): Whether concat the input and output of convs before classification layer. + dilation (int): The dilation rate for convs in the head. Default: 1. """ def __init__(self, num_convs=2, kernel_size=3, concat_input=True, + dilation=1, **kwargs): - assert num_convs >= 0 + assert num_convs >= 0 and dilation > 0 and isinstance(dilation, int) self.num_convs = num_convs self.concat_input = concat_input self.kernel_size = kernel_size @@ -32,13 +34,15 @@ def __init__(self, if num_convs == 0: assert self.in_channels == self.channels + conv_padding = (kernel_size // 2) * dilation convs = [] convs.append( ConvModule( self.in_channels, self.channels, kernel_size=kernel_size, - padding=kernel_size // 2, + padding=conv_padding, + dilation=dilation, conv_cfg=self.conv_cfg, norm_cfg=self.norm_cfg, act_cfg=self.act_cfg)) @@ -48,7 +52,8 @@ def __init__(self, self.channels, self.channels, kernel_size=kernel_size, - padding=kernel_size // 2, + padding=conv_padding, + dilation=dilation, conv_cfg=self.conv_cfg, norm_cfg=self.norm_cfg, act_cfg=self.act_cfg)) From 1722010396a3fdabb5fe4c67d80d62b176312c6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=98=95=E8=BE=B0?= Date: Mon, 22 Mar 2021 13:05:32 +0800 Subject: [PATCH 103/706] add plot_logs tool (#426) * Support plot logs * add plot log docs --- docs/useful_tools.md | 22 ++++++++ setup.cfg | 2 +- tools/analyze_logs.py | 123 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 146 insertions(+), 1 deletion(-) create mode 100644 tools/analyze_logs.py diff --git a/docs/useful_tools.md b/docs/useful_tools.md index 514b5680ee..7b2e3fde1e 100644 --- a/docs/useful_tools.md +++ b/docs/useful_tools.md @@ -62,3 +62,25 @@ python tools/pytorch2onnx.py ${CONFIG_FILE} --checkpoint ${CHECKPOINT_FILE} --ou ```shell python tools/print_config.py ${CONFIG} [-h] [--options ${OPTIONS [OPTIONS...]}] ``` + +### Plot training logs + +`tools/analyze_logs.py` plot s loss/mIoU curves given a training log file. `pip install seaborn` first to install the dependency. + +```shell +python tools/analyze_logs.py xxx.log.json [--keys ${KEYS}] [--legend ${LEGEND}] [--backend ${BACKEND}] [--style ${STYLE}] [--out ${OUT_FILE}] +``` + +Examples: + +- Plot the mIoU, mAcc, aAcc metrics. + + ```shell + python tools/analyze_logs.py log.json --keys mIoU mAcc aAcc --legend mIoU mAcc aAcc + ``` + +- Plot loss metric. + + ```shell + python tools/analyze_logs.py log.json --keys loss --legend loss + ``` diff --git a/setup.cfg b/setup.cfg index 708fb4ce33..f4147e0f9a 100644 --- a/setup.cfg +++ b/setup.cfg @@ -8,6 +8,6 @@ line_length = 79 multi_line_output = 0 known_standard_library = setuptools known_first_party = mmseg -known_third_party = PIL,cityscapesscripts,cv2,detail,matplotlib,mmcv,numpy,onnxruntime,oss2,pytest,scipy,terminaltables,torch +known_third_party = PIL,cityscapesscripts,cv2,detail,matplotlib,mmcv,numpy,onnxruntime,oss2,pytest,scipy,seaborn,terminaltables,torch no_lines_before = STDLIB,LOCALFOLDER default_section = THIRDPARTY diff --git a/tools/analyze_logs.py b/tools/analyze_logs.py new file mode 100644 index 0000000000..c3a468b554 --- /dev/null +++ b/tools/analyze_logs.py @@ -0,0 +1,123 @@ +"""Modified from https://github.com/open- +mmlab/mmdetection/blob/master/tools/analysis_tools/analyze_logs.py.""" +import argparse +import json +from collections import defaultdict + +import matplotlib.pyplot as plt +import seaborn as sns + + +def plot_curve(log_dicts, args): + if args.backend is not None: + plt.switch_backend(args.backend) + sns.set_style(args.style) + # if legend is None, use {filename}_{key} as legend + legend = args.legend + if legend is None: + legend = [] + for json_log in args.json_logs: + for metric in args.keys: + legend.append(f'{json_log}_{metric}') + assert len(legend) == (len(args.json_logs) * len(args.keys)) + metrics = args.keys + + num_metrics = len(metrics) + for i, log_dict in enumerate(log_dicts): + epochs = list(log_dict.keys()) + for j, metric in enumerate(metrics): + print(f'plot curve of {args.json_logs[i]}, metric is {metric}') + plot_epochs = [] + plot_iters = [] + plot_values = [] + for epoch in epochs: + epoch_logs = log_dict[epoch] + if metric not in epoch_logs.keys(): + continue + if metric in ['mIoU', 'mAcc', 'aAcc']: + plot_epochs.append(epoch) + plot_values.append(epoch_logs[metric][0]) + else: + for idx in range(len(epoch_logs[metric])): + plot_iters.append(epoch_logs['iter'][idx]) + plot_values.append(epoch_logs[metric][idx]) + ax = plt.gca() + label = legend[i * num_metrics + j] + if metric in ['mIoU', 'mAcc', 'aAcc']: + ax.set_xticks(plot_epochs) + plt.xlabel('epoch') + plt.plot(plot_epochs, plot_values, label=label, marker='o') + else: + plt.xlabel('iter') + plt.plot(plot_iters, plot_values, label=label, linewidth=0.5) + plt.legend() + if args.title is not None: + plt.title(args.title) + if args.out is None: + plt.show() + else: + print(f'save curve to: {args.out}') + plt.savefig(args.out) + plt.cla() + + +def parse_args(): + parser = argparse.ArgumentParser(description='Analyze Json Log') + parser.add_argument( + 'json_logs', + type=str, + nargs='+', + help='path of train log in json format') + parser.add_argument( + '--keys', + type=str, + nargs='+', + default=['mIoU'], + help='the metric that you want to plot') + parser.add_argument('--title', type=str, help='title of figure') + parser.add_argument( + '--legend', + type=str, + nargs='+', + default=None, + help='legend of each plot') + parser.add_argument( + '--backend', type=str, default=None, help='backend of plt') + parser.add_argument( + '--style', type=str, default='dark', help='style of plt') + parser.add_argument('--out', type=str, default=None) + args = parser.parse_args() + return args + + +def load_json_logs(json_logs): + # load and convert json_logs to log_dict, key is epoch, value is a sub dict + # keys of sub dict is different metrics + # value of sub dict is a list of corresponding values of all iterations + log_dicts = [dict() for _ in json_logs] + for json_log, log_dict in zip(json_logs, log_dicts): + with open(json_log, 'r') as log_file: + for line in log_file: + log = json.loads(line.strip()) + # skip lines without `epoch` field + if 'epoch' not in log: + continue + epoch = log.pop('epoch') + if epoch not in log_dict: + log_dict[epoch] = defaultdict(list) + for k, v in log.items(): + log_dict[epoch][k].append(v) + return log_dicts + + +def main(): + args = parse_args() + json_logs = args.json_logs + for json_log in json_logs: + assert json_log.endswith('.json') + log_dicts = load_json_logs(json_logs) + plot_curve(log_dicts, args) + + +if __name__ == '__main__': + main() From 9cbb4b128814fc280ce221d7f7df55121307481d Mon Sep 17 00:00:00 2001 From: David de la Iglesia Castro Date: Tue, 23 Mar 2021 04:34:38 +0100 Subject: [PATCH 104/706] Add opacity option to show_result (#425) --- demo/image_demo.py | 12 +++++++++++- docs/get_started.md | 3 ++- mmseg/apis/inference.py | 13 +++++++++++-- mmseg/apis/test.py | 10 +++++++--- mmseg/models/segmentors/base.py | 10 +++++++--- tools/test.py | 7 ++++++- 6 files changed, 44 insertions(+), 11 deletions(-) diff --git a/demo/image_demo.py b/demo/image_demo.py index 183f23871b..2698e422eb 100644 --- a/demo/image_demo.py +++ b/demo/image_demo.py @@ -15,6 +15,11 @@ def main(): '--palette', default='cityscapes', help='Color palette used for segmentation map') + parser.add_argument( + '--opacity', + type=float, + default=0.5, + help='Opacity of painted segmentation map. In (0, 1] range.') args = parser.parse_args() # build the model from a config file and a checkpoint file @@ -22,7 +27,12 @@ def main(): # test a single image result = inference_segmentor(model, args.img) # show the results - show_result_pyplot(model, args.img, result, get_palette(args.palette)) + show_result_pyplot( + model, + args.img, + result, + get_palette(args.palette), + opacity=args.opacity) if __name__ == '__main__': diff --git a/docs/get_started.md b/docs/get_started.md index 3182c53451..5ef2442ac5 100644 --- a/docs/get_started.md +++ b/docs/get_started.md @@ -166,7 +166,8 @@ result = inference_segmentor(model, img) # visualize the results in a new window model.show_result(img, result, show=True) # or save the visualization results to image files -model.show_result(img, result, out_file='result.jpg') +# you can change the opacity of the painted segmentation map in (0, 1]. +model.show_result(img, result, out_file='result.jpg', opacity=0.5) # test a video and show the results video = mmcv.VideoReader('video.mp4') diff --git a/mmseg/apis/inference.py b/mmseg/apis/inference.py index 20c20dccda..9052cdd32a 100644 --- a/mmseg/apis/inference.py +++ b/mmseg/apis/inference.py @@ -98,7 +98,12 @@ def inference_segmentor(model, img): return result -def show_result_pyplot(model, img, result, palette=None, fig_size=(15, 10)): +def show_result_pyplot(model, + img, + result, + palette=None, + fig_size=(15, 10), + opacity=0.5): """Visualize the segmentation results on the image. Args: @@ -109,10 +114,14 @@ def show_result_pyplot(model, img, result, palette=None, fig_size=(15, 10)): map. If None is given, random palette will be generated. Default: None fig_size (tuple): Figure size of the pyplot figure. + opacity(float): Opacity of painted segmentation map. + Default 0.5. + Must be in (0, 1] range. """ if hasattr(model, 'module'): model = model.module - img = model.show_result(img, result, palette=palette, show=False) + img = model.show_result( + img, result, palette=palette, show=False, opacity=opacity) plt.figure(figsize=fig_size) plt.imshow(mmcv.bgr2rgb(img)) plt.show() diff --git a/mmseg/apis/test.py b/mmseg/apis/test.py index 148df7680e..cbf80e7a8e 100644 --- a/mmseg/apis/test.py +++ b/mmseg/apis/test.py @@ -35,7 +35,8 @@ def single_gpu_test(model, data_loader, show=False, out_dir=None, - efficient_test=False): + efficient_test=False, + opacity=0.5): """Test with single GPU. Args: @@ -46,7 +47,9 @@ def single_gpu_test(model, the directory to save output results. efficient_test (bool): Whether save the results as local numpy files to save CPU memory during evaluation. Default: False. - + opacity(float): Opacity of painted segmentation map. + Default 0.5. + Must be in (0, 1] range. Returns: list: The prediction results. """ @@ -82,7 +85,8 @@ def single_gpu_test(model, result, palette=dataset.PALETTE, show=show, - out_file=out_file) + out_file=out_file, + opacity=opacity) if isinstance(result, list): if efficient_test: diff --git a/mmseg/models/segmentors/base.py b/mmseg/models/segmentors/base.py index 6f59dbc72e..58c31887f3 100644 --- a/mmseg/models/segmentors/base.py +++ b/mmseg/models/segmentors/base.py @@ -212,7 +212,8 @@ def show_result(self, win_name='', show=False, wait_time=0, - out_file=None): + out_file=None, + opacity=0.5): """Draw `result` over `img`. Args: @@ -229,7 +230,9 @@ def show_result(self, Default: False. out_file (str or None): The filename to write the image. Default: None. - + opacity(float): Opacity of painted segmentation map. + Default 0.5. + Must be in (0, 1] range. Returns: img (Tensor): Only if not `show` or `out_file` """ @@ -246,13 +249,14 @@ def show_result(self, assert palette.shape[0] == len(self.CLASSES) assert palette.shape[1] == 3 assert len(palette.shape) == 2 + assert 0 < opacity <= 1.0 color_seg = np.zeros((seg.shape[0], seg.shape[1], 3), dtype=np.uint8) for label, color in enumerate(palette): color_seg[seg == label, :] = color # convert to BGR color_seg = color_seg[..., ::-1] - img = img * 0.5 + color_seg * 0.5 + img = img * (1 - opacity) + color_seg * opacity img = img.astype(np.uint8) # if out_file specified, do not show image in window if out_file is not None: diff --git a/tools/test.py b/tools/test.py index a106f04626..c074fcc4bb 100644 --- a/tools/test.py +++ b/tools/test.py @@ -55,6 +55,11 @@ def parse_args(): choices=['none', 'pytorch', 'slurm', 'mpi'], default='none', help='job launcher') + parser.add_argument( + '--opacity', + type=float, + default=0.5, + help='Opacity of painted segmentation map. In (0, 1] range.') parser.add_argument('--local_rank', type=int, default=0) args = parser.parse_args() if 'LOCAL_RANK' not in os.environ: @@ -123,7 +128,7 @@ def main(): if not distributed: model = MMDataParallel(model, device_ids=[0]) outputs = single_gpu_test(model, data_loader, args.show, args.show_dir, - efficient_test) + efficient_test, args.opacity) else: model = MMDistributedDataParallel( model.cuda(), From 15faf716dea79d2ebd1f7f83556730e446e922fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=9F=E6=99=93=E9=94=AE?= Date: Sun, 28 Mar 2021 12:13:06 +0800 Subject: [PATCH 105/706] correct the script for installing mmcv-full (#399) --- docs/get_started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/get_started.md b/docs/get_started.md index 5ef2442ac5..58626d695e 100644 --- a/docs/get_started.md +++ b/docs/get_started.md @@ -35,7 +35,7 @@ Either `mmcv` or `mmcv-full` is compatible with MMSegmentation, but for methods The pre-build mmcv-full (with PyTorch 1.5 and CUDA 10.1) can be installed by running: (other available versions could be found [here](https://mmcv.readthedocs.io/en/latest/#install-with-pip)) ```shell -pip install mmcv-full==latest+torch1.5.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html +pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.5.0/index.html ``` **Install mmcv for Windows (Experimental):** From d474cfde4be66327473d3171b4ca80de2baaf603 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=98=95=E8=BE=B0?= Date: Tue, 30 Mar 2021 00:49:14 +0800 Subject: [PATCH 106/706] pytorch metrics implementation (#430) * pytorch metrics impl and test * support list[str] input, delete unused test code and delete numpy version * modify input data type * add docstring and unitest of filename inputs * add indents in docstring and use tempfile lib to create dir * using with statement --- mmseg/core/evaluation/metrics.py | 96 ++++++++++++++++++-------------- tests/test_metrics.py | 42 ++++++++++++++ 2 files changed, 97 insertions(+), 41 deletions(-) diff --git a/mmseg/core/evaluation/metrics.py b/mmseg/core/evaluation/metrics.py index 95b096e7a3..0f182b1c0b 100644 --- a/mmseg/core/evaluation/metrics.py +++ b/mmseg/core/evaluation/metrics.py @@ -1,5 +1,6 @@ import mmcv import numpy as np +import torch def intersect_and_union(pred_label, @@ -11,8 +12,10 @@ def intersect_and_union(pred_label, """Calculate intersection and Union. Args: - pred_label (ndarray): Prediction segmentation map. - label (ndarray): Ground truth segmentation map. + pred_label (ndarray | str): Prediction segmentation map + or predict result filename. + label (ndarray | str): Ground truth segmentation map + or label filename. num_classes (int): Number of categories. ignore_index (int): Index that will be ignored in evaluation. label_map (dict): Mapping old labels to new labels. The parameter will @@ -21,25 +24,29 @@ def intersect_and_union(pred_label, work only when label is str. Default: False. Returns: - ndarray: The intersection of prediction and ground truth histogram - on all classes. - ndarray: The union of prediction and ground truth histogram on all - classes. - ndarray: The prediction histogram on all classes. - ndarray: The ground truth histogram on all classes. + torch.Tensor: The intersection of prediction and ground truth + histogram on all classes. + torch.Tensor: The union of prediction and ground truth histogram on + all classes. + torch.Tensor: The prediction histogram on all classes. + torch.Tensor: The ground truth histogram on all classes. """ if isinstance(pred_label, str): - pred_label = np.load(pred_label) + pred_label = torch.from_numpy(np.load(pred_label)) + else: + pred_label = torch.from_numpy((pred_label)) if isinstance(label, str): - label = mmcv.imread(label, flag='unchanged', backend='pillow') - # modify if custom classes + label = torch.from_numpy( + mmcv.imread(label, flag='unchanged', backend='pillow')) + else: + label = torch.from_numpy(label) + if label_map is not None: for old_id, new_id in label_map.items(): label[label == old_id] = new_id if reduce_zero_label: - # avoid using underflow conversion label[label == 0] = 255 label = label - 1 label[label == 254] = 255 @@ -49,13 +56,13 @@ def intersect_and_union(pred_label, label = label[mask] intersect = pred_label[pred_label == label] - area_intersect, _ = np.histogram( - intersect, bins=np.arange(num_classes + 1)) - area_pred_label, _ = np.histogram( - pred_label, bins=np.arange(num_classes + 1)) - area_label, _ = np.histogram(label, bins=np.arange(num_classes + 1)) + area_intersect = torch.histc( + intersect.float(), bins=(num_classes), min=0, max=num_classes) + area_pred_label = torch.histc( + pred_label.float(), bins=(num_classes), min=0, max=num_classes) + area_label = torch.histc( + label.float(), bins=(num_classes), min=0, max=num_classes) area_union = area_pred_label + area_label - area_intersect - return area_intersect, area_union, area_pred_label, area_label @@ -68,8 +75,10 @@ def total_intersect_and_union(results, """Calculate Total Intersection and Union. Args: - results (list[ndarray]): List of prediction segmentation maps. - gt_seg_maps (list[ndarray]): list of ground truth segmentation maps. + results (list[ndarray] | list[str]): List of prediction segmentation + maps or list of prediction result filenames. + gt_seg_maps (list[ndarray] | list[str]): list of ground truth + segmentation maps or list of label filenames. num_classes (int): Number of categories. ignore_index (int): Index that will be ignored in evaluation. label_map (dict): Mapping old labels to new labels. Default: dict(). @@ -83,23 +92,23 @@ def total_intersect_and_union(results, ndarray: The prediction histogram on all classes. ndarray: The ground truth histogram on all classes. """ - num_imgs = len(results) assert len(gt_seg_maps) == num_imgs - total_area_intersect = np.zeros((num_classes, ), dtype=np.float) - total_area_union = np.zeros((num_classes, ), dtype=np.float) - total_area_pred_label = np.zeros((num_classes, ), dtype=np.float) - total_area_label = np.zeros((num_classes, ), dtype=np.float) + total_area_intersect = torch.zeros((num_classes, ), dtype=torch.float64) + total_area_union = torch.zeros((num_classes, ), dtype=torch.float64) + total_area_pred_label = torch.zeros((num_classes, ), dtype=torch.float64) + total_area_label = torch.zeros((num_classes, ), dtype=torch.float64) for i in range(num_imgs): area_intersect, area_union, area_pred_label, area_label = \ - intersect_and_union(results[i], gt_seg_maps[i], num_classes, - ignore_index, label_map, reduce_zero_label) + intersect_and_union( + results[i], gt_seg_maps[i], num_classes, ignore_index, + label_map, reduce_zero_label) total_area_intersect += area_intersect total_area_union += area_union total_area_pred_label += area_pred_label total_area_label += area_label - return total_area_intersect, total_area_union, \ - total_area_pred_label, total_area_label + return total_area_intersect, total_area_union, total_area_pred_label, \ + total_area_label def mean_iou(results, @@ -112,8 +121,10 @@ def mean_iou(results, """Calculate Mean Intersection and Union (mIoU) Args: - results (list[ndarray]): List of prediction segmentation maps. - gt_seg_maps (list[ndarray]): list of ground truth segmentation maps. + results (list[ndarray] | list[str]): List of prediction segmentation + maps or list of prediction result filenames. + gt_seg_maps (list[ndarray] | list[str]): list of ground truth + segmentation maps or list of label filenames. num_classes (int): Number of categories. ignore_index (int): Index that will be ignored in evaluation. nan_to_num (int, optional): If specified, NaN values will be replaced @@ -126,7 +137,6 @@ def mean_iou(results, ndarray: Per category accuracy, shape (num_classes, ). ndarray: Per category IoU, shape (num_classes, ). """ - all_acc, acc, iou = eval_metrics( results=results, gt_seg_maps=gt_seg_maps, @@ -149,8 +159,10 @@ def mean_dice(results, """Calculate Mean Dice (mDice) Args: - results (list[ndarray]): List of prediction segmentation maps. - gt_seg_maps (list[ndarray]): list of ground truth segmentation maps. + results (list[ndarray] | list[str]): List of prediction segmentation + maps or list of prediction result filenames. + gt_seg_maps (list[ndarray] | list[str]): list of ground truth + segmentation maps or list of label filenames. num_classes (int): Number of categories. ignore_index (int): Index that will be ignored in evaluation. nan_to_num (int, optional): If specified, NaN values will be replaced @@ -186,8 +198,10 @@ def eval_metrics(results, reduce_zero_label=False): """Calculate evaluation metrics Args: - results (list[ndarray]): List of prediction segmentation maps. - gt_seg_maps (list[ndarray]): list of ground truth segmentation maps. + results (list[ndarray] | list[str]): List of prediction segmentation + maps or list of prediction result filenames. + gt_seg_maps (list[ndarray] | list[str]): list of ground truth + segmentation maps or list of label filenames. num_classes (int): Number of categories. ignore_index (int): Index that will be ignored in evaluation. metrics (list[str] | str): Metrics to be evaluated, 'mIoU' and 'mDice'. @@ -200,17 +214,16 @@ def eval_metrics(results, ndarray: Per category accuracy, shape (num_classes, ). ndarray: Per category evalution metrics, shape (num_classes, ). """ - if isinstance(metrics, str): metrics = [metrics] allowed_metrics = ['mIoU', 'mDice'] if not set(metrics).issubset(set(allowed_metrics)): raise KeyError('metrics {} is not supported'.format(metrics)) + total_area_intersect, total_area_union, total_area_pred_label, \ - total_area_label = total_intersect_and_union(results, gt_seg_maps, - num_classes, ignore_index, - label_map, - reduce_zero_label) + total_area_label = total_intersect_and_union( + results, gt_seg_maps, num_classes, ignore_index, label_map, + reduce_zero_label) all_acc = total_area_intersect.sum() / total_area_label.sum() acc = total_area_intersect / total_area_label ret_metrics = [all_acc, acc] @@ -222,6 +235,7 @@ def eval_metrics(results, dice = 2 * total_area_intersect / ( total_area_pred_label + total_area_label) ret_metrics.append(dice) + ret_metrics = [metric.numpy() for metric in ret_metrics] if nan_to_num is not None: ret_metrics = [ np.nan_to_num(metric, nan=nan_to_num) for metric in ret_metrics diff --git a/tests/test_metrics.py b/tests/test_metrics.py index 023bbb0a55..2033617c2a 100644 --- a/tests/test_metrics.py +++ b/tests/test_metrics.py @@ -164,3 +164,45 @@ def test_mean_dice(): results, label, num_classes, ignore_index=255, nan_to_num=-1) assert acc[-1] == -1 assert iou[-1] == -1 + + +def test_filename_inputs(): + import cv2 + import tempfile + + def save_arr(input_arrays: list, title: str, is_image: bool, dir: str): + filenames = [] + SUFFIX = '.png' if is_image else '.npy' + for idx, arr in enumerate(input_arrays): + filename = '{}/{}-{}{}'.format(dir, title, idx, SUFFIX) + if is_image: + cv2.imwrite(filename, arr) + else: + np.save(filename, arr) + filenames.append(filename) + return filenames + + pred_size = (10, 512, 1024) + num_classes = 19 + ignore_index = 255 + results = np.random.randint(0, num_classes, size=pred_size) + labels = np.random.randint(0, num_classes, size=pred_size) + labels[:, 2, 5:10] = ignore_index + + with tempfile.TemporaryDirectory() as temp_dir: + + result_files = save_arr(results, 'pred', False, temp_dir) + label_files = save_arr(labels, 'label', True, temp_dir) + + all_acc, acc, iou = eval_metrics( + result_files, + label_files, + num_classes, + ignore_index, + metrics='mIoU') + + all_acc_l, acc_l, iou_l = legacy_mean_iou(results, labels, num_classes, + ignore_index) + assert all_acc == all_acc_l + assert np.allclose(acc, acc_l) + assert np.allclose(iou, iou_l) From 71be1c27934d1b5ab7edb86e780ab3f7240d44a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=98=95=E8=BE=B0?= Date: Tue, 30 Mar 2021 00:49:54 +0800 Subject: [PATCH 107/706] [Bug fixed]Fix dice_loss errors (#417) * fix training bugs * fix unitest error * fix error in num_classes==2 case * delete comments --- mmseg/models/losses/dice_loss.py | 31 +++++++++++++++++-------------- tests/test_models/test_losses.py | 15 ++------------- 2 files changed, 19 insertions(+), 27 deletions(-) diff --git a/mmseg/models/losses/dice_loss.py b/mmseg/models/losses/dice_loss.py index 27da861f98..b94ece3a28 100644 --- a/mmseg/models/losses/dice_loss.py +++ b/mmseg/models/losses/dice_loss.py @@ -15,7 +15,7 @@ def dice_loss(pred, smooth=1, exponent=2, class_weight=None, - ignore_index=-1): + ignore_index=255): assert pred.shape[0] == target.shape[0] total_loss = 0 num_classes = pred.shape[1] @@ -36,9 +36,9 @@ def dice_loss(pred, @weighted_loss def binary_dice_loss(pred, target, valid_mask, smooth=1, exponent=2, **kwards): assert pred.shape[0] == target.shape[0] - pred = pred.contiguous().view(pred.shape[0], -1) - target = target.contiguous().view(target.shape[0], -1) - valid_mask = valid_mask.contiguous().view(valid_mask.shape[0], -1) + pred = pred.reshape(pred.shape[0], -1) + target = target.reshape(target.shape[0], -1) + valid_mask = valid_mask.reshape(valid_mask.shape[0], -1) num = torch.sum(torch.mul(pred, target) * valid_mask, dim=1) * 2 + smooth den = torch.sum(pred.pow(exponent) + target.pow(exponent), dim=1) + smooth @@ -70,19 +70,14 @@ class DiceLoss(nn.Module): """ def __init__(self, - loss_type='multi_class', smooth=1, exponent=2, reduction='mean', class_weight=None, loss_weight=1.0, - ignore_index=255): + ignore_index=255, + **kwards): super(DiceLoss, self).__init__() - assert loss_type in ['multi_class', 'binary'] - if loss_type == 'multi_class': - self.cls_criterion = dice_loss - else: - self.cls_criterion = binary_dice_loss self.smooth = smooth self.exponent = exponent self.reduction = reduction @@ -90,7 +85,12 @@ def __init__(self, self.loss_weight = loss_weight self.ignore_index = ignore_index - def forward(self, pred, target, avg_factor=None, reduction_override=None): + def forward(self, + pred, + target, + avg_factor=None, + reduction_override=None, + **kwards): assert reduction_override in (None, 'none', 'mean', 'sum') reduction = ( reduction_override if reduction_override else self.reduction) @@ -100,10 +100,13 @@ def forward(self, pred, target, avg_factor=None, reduction_override=None): class_weight = None pred = F.softmax(pred, dim=1) - one_hot_target = F.one_hot(torch.clamp_min(target.long(), 0)) + num_classes = pred.shape[1] + one_hot_target = F.one_hot( + torch.clamp(target.long(), 0, num_classes - 1), + num_classes=num_classes) valid_mask = (target != self.ignore_index).long() - loss = self.loss_weight * self.cls_criterion( + loss = self.loss_weight * dice_loss( pred, one_hot_target, valid_mask=valid_mask, diff --git a/tests/test_models/test_losses.py b/tests/test_models/test_losses.py index 481a8e92ce..c58e6a5059 100644 --- a/tests/test_models/test_losses.py +++ b/tests/test_models/test_losses.py @@ -207,19 +207,9 @@ def test_lovasz_loss(): def test_dice_lose(): from mmseg.models import build_loss - # loss_type should be 'binary' or 'multi_class' - with pytest.raises(AssertionError): - loss_cfg = dict( - type='DiceLoss', - loss_type='Binary', - reduction='none', - loss_weight=1.0) - build_loss(loss_cfg) - # test dice loss with loss_type = 'multi_class' loss_cfg = dict( type='DiceLoss', - loss_type='multi_class', reduction='none', class_weight=[1.0, 2.0, 3.0], loss_weight=1.0, @@ -232,13 +222,12 @@ def test_dice_lose(): # test dice loss with loss_type = 'binary' loss_cfg = dict( type='DiceLoss', - loss_type='binary', smooth=2, exponent=3, reduction='sum', loss_weight=1.0, ignore_index=0) dice_loss = build_loss(loss_cfg) - logits = torch.rand(16, 4, 4) - labels = (torch.rand(16, 4, 4)).long() + logits = torch.rand(8, 2, 4, 4) + labels = (torch.rand(8, 4, 4) * 2).long() dice_loss(logits, labels) From 7c329fa77576f43f97461d568efe2e1e252c80cc Mon Sep 17 00:00:00 2001 From: sshuair Date: Tue, 30 Mar 2021 00:53:54 +0800 Subject: [PATCH 108/706] Include each class metrics in logs (#445) * Include each class metrics in logs * format * fix the unitest * fix the custom int class_name * fix the custom int class_name --- mmseg/datasets/custom.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mmseg/datasets/custom.py b/mmseg/datasets/custom.py index dc923fb42d..79a03082d7 100644 --- a/mmseg/datasets/custom.py +++ b/mmseg/datasets/custom.py @@ -374,6 +374,11 @@ def evaluate(self, for i in range(1, len(summary_table_data[0])): eval_results[summary_table_data[0] [i]] = summary_table_data[1][i] / 100.0 + for idx, sub_metric in enumerate(class_table_data[0][1:], 1): + for item in class_table_data[1:]: + eval_results[str(sub_metric) + '.' + + str(item[0])] = item[idx] / 100.0 + if mmcv.is_list_of(results, str): for file_name in results: os.remove(file_name) From bbb9f074f62302adc39bd3c01433d6629758f267 Mon Sep 17 00:00:00 2001 From: lizz Date: Wed, 31 Mar 2021 00:51:38 +0800 Subject: [PATCH 109/706] Fix typo: upsampe_cfg -> upsample_cfg (#449) * Fix typo: upsampe_cfg -> upsample_cfg Signed-off-by: lizz * convoluton -> convolution Signed-off-by: lizz * more Signed-off-by: lizz * ok Signed-off-by: lizz --- mmseg/apis/test.py | 2 +- mmseg/core/evaluation/metrics.py | 2 +- mmseg/core/seg/sampler/base_pixel_sampler.py | 1 - mmseg/datasets/custom.py | 5 ++-- mmseg/datasets/pipelines/transforms.py | 4 +-- mmseg/models/backbones/cgnet.py | 4 +-- mmseg/models/backbones/hrnet.py | 2 +- mmseg/models/backbones/mobilenet_v3.py | 6 ++--- mmseg/models/backbones/unet.py | 28 ++++++++++---------- mmseg/models/decode_heads/apc_head.py | 2 +- mmseg/models/decode_heads/dm_head.py | 8 +++--- mmseg/models/decode_heads/gc_head.py | 2 +- mmseg/models/losses/lovasz_loss.py | 6 ++--- mmseg/models/utils/inverted_residual.py | 6 ++--- mmseg/models/utils/se_layer.py | 6 ++--- mmseg/models/utils/up_conv_block.py | 2 +- mmseg/ops/encoding.py | 10 +++---- tests/test_models/test_unet.py | 19 ++++++------- 18 files changed, 57 insertions(+), 58 deletions(-) diff --git a/mmseg/apis/test.py b/mmseg/apis/test.py index cbf80e7a8e..2b9cc17033 100644 --- a/mmseg/apis/test.py +++ b/mmseg/apis/test.py @@ -42,7 +42,7 @@ def single_gpu_test(model, Args: model (nn.Module): Model to be tested. data_loader (utils.data.Dataloader): Pytorch data loader. - show (bool): Whether show results during infernece. Default: False. + show (bool): Whether show results during inference. Default: False. out_dir (str, optional): If specified, the results will be dumped into the directory to save output results. efficient_test (bool): Whether save the results as local numpy files to diff --git a/mmseg/core/evaluation/metrics.py b/mmseg/core/evaluation/metrics.py index 0f182b1c0b..769e9b3ab4 100644 --- a/mmseg/core/evaluation/metrics.py +++ b/mmseg/core/evaluation/metrics.py @@ -212,7 +212,7 @@ def eval_metrics(results, Returns: float: Overall accuracy on all images. ndarray: Per category accuracy, shape (num_classes, ). - ndarray: Per category evalution metrics, shape (num_classes, ). + ndarray: Per category evaluation metrics, shape (num_classes, ). """ if isinstance(metrics, str): metrics = [metrics] diff --git a/mmseg/core/seg/sampler/base_pixel_sampler.py b/mmseg/core/seg/sampler/base_pixel_sampler.py index db322d199f..b75b1566c9 100644 --- a/mmseg/core/seg/sampler/base_pixel_sampler.py +++ b/mmseg/core/seg/sampler/base_pixel_sampler.py @@ -10,4 +10,3 @@ def __init__(self, **kwargs): @abstractmethod def sample(self, seg_logit, seg_label): """Placeholder for sample function.""" - pass diff --git a/mmseg/datasets/custom.py b/mmseg/datasets/custom.py index 79a03082d7..1456122f87 100644 --- a/mmseg/datasets/custom.py +++ b/mmseg/datasets/custom.py @@ -214,8 +214,8 @@ def prepare_test_img(self, idx): idx (int): Index of data. Returns: - dict: Testing data after pipeline with new keys intorduced by - piepline. + dict: Testing data after pipeline with new keys introduced by + pipeline. """ img_info = self.img_infos[idx] @@ -225,7 +225,6 @@ def prepare_test_img(self, idx): def format_results(self, results, **kwargs): """Place holder to format result to dataset specific output.""" - pass def get_gt_seg_maps(self, efficient_test=False): """Get ground truth segmentation maps for evaluation.""" diff --git a/mmseg/datasets/pipelines/transforms.py b/mmseg/datasets/pipelines/transforms.py index 9231efc8dc..20753bb0fa 100644 --- a/mmseg/datasets/pipelines/transforms.py +++ b/mmseg/datasets/pipelines/transforms.py @@ -14,7 +14,7 @@ class Resize(object): contains the key "scale", then the scale in the input dict is used, otherwise the specified scale in the init method is used. - ``img_scale`` can be Nong, a tuple (single-scale) or a list of tuple + ``img_scale`` can be None, a tuple (single-scale) or a list of tuple (multi-scale). There are 4 multiscale modes: - ``ratio_range is not None``: @@ -89,7 +89,7 @@ def random_sample(img_scales): Args: img_scales (list[tuple]): Images scale range for sampling. There must be two tuples in img_scales, which specify the lower - and uper bound of image scales. + and upper bound of image scales. Returns: (tuple, None): Returns a tuple ``(img_scale, None)``, where diff --git a/mmseg/models/backbones/cgnet.py b/mmseg/models/backbones/cgnet.py index 968d171cd4..032a55d85f 100644 --- a/mmseg/models/backbones/cgnet.py +++ b/mmseg/models/backbones/cgnet.py @@ -13,7 +13,7 @@ class GlobalContextExtractor(nn.Module): """Global Context Extractor for CGNet. - This class is employed to refine the joFint feature of both local feature + This class is employed to refine the joint feature of both local feature and surrounding context. Args: @@ -357,7 +357,7 @@ def init_weights(self, pretrained=None): raise TypeError('pretrained must be a str or None') def train(self, mode=True): - """Convert the model into training mode whill keeping the normalization + """Convert the model into training mode will keeping the normalization layer freezed.""" super(CGNet, self).train(mode) if mode and self.norm_eval: diff --git a/mmseg/models/backbones/hrnet.py b/mmseg/models/backbones/hrnet.py index 33f3ba86d8..5010a2e767 100644 --- a/mmseg/models/backbones/hrnet.py +++ b/mmseg/models/backbones/hrnet.py @@ -545,7 +545,7 @@ def forward(self, x): return y_list def train(self, mode=True): - """Convert the model into training mode whill keeping the normalization + """Convert the model into training mode will keeping the normalization layer freezed.""" super(HRNet, self).train(mode) if mode and self.norm_eval: diff --git a/mmseg/models/backbones/mobilenet_v3.py b/mmseg/models/backbones/mobilenet_v3.py index 104d8328af..f2e9a0cc00 100644 --- a/mmseg/models/backbones/mobilenet_v3.py +++ b/mmseg/models/backbones/mobilenet_v3.py @@ -19,7 +19,7 @@ class MobileNetV3(nn.Module): `_. Args: - arch (str): Architechture of mobilnetv3, from {'small', 'large'}. + arch (str): Architecture of mobilnetv3, from {'small', 'large'}. Default: 'small'. conv_cfg (dict): Config dict for convolution layer. Default: None, which means using conv2d. @@ -28,13 +28,13 @@ class MobileNetV3(nn.Module): out_indices (tuple[int]): Output from which layer. Default: (0, 1, 12). frozen_stages (int): Stages to be frozen (all param fixed). - Defualt: -1, which means not freezing any parameters. + Default: -1, which means not freezing any parameters. norm_eval (bool): Whether to set norm layers to eval mode, namely, freeze running stats (mean and var). Note: Effect on Batch Norm and its variants only. Default: False. with_cp (bool): Use checkpoint or not. Using checkpoint will save some memory while slowing down the training speed. - Defualt: False. + Default: False. """ # Parameters to build each block: # [kernel size, mid channels, out channels, with_se, act type, stride] diff --git a/mmseg/models/backbones/unet.py b/mmseg/models/backbones/unet.py index 0e1b001c82..1172937955 100644 --- a/mmseg/models/backbones/unet.py +++ b/mmseg/models/backbones/unet.py @@ -35,7 +35,7 @@ class BasicConvBlock(nn.Module): Default: dict(type='BN'). act_cfg (dict | None): Config dict for activation layer in ConvModule. Default: dict(type='ReLU'). - dcn (bool): Use deformable convoluton in convolutional layer or not. + dcn (bool): Use deformable convolution in convolutional layer or not. Default: None. plugins (dict): plugins for convolutional layers. Default: None. """ @@ -171,7 +171,7 @@ class InterpConv(nn.Module): kernel_size (int): Kernel size of the convolutional layer. Default: 1. stride (int): Stride of the convolutional layer. Default: 1. padding (int): Padding of the convolutional layer. Default: 1. - upsampe_cfg (dict): Interpolation config of the upsample layer. + upsample_cfg (dict): Interpolation config of the upsample layer. Default: dict( scale_factor=2, mode='bilinear', align_corners=False). """ @@ -188,7 +188,7 @@ def __init__(self, kernel_size=1, stride=1, padding=0, - upsampe_cfg=dict( + upsample_cfg=dict( scale_factor=2, mode='bilinear', align_corners=False)): super(InterpConv, self).__init__() @@ -202,7 +202,7 @@ def __init__(self, conv_cfg=conv_cfg, norm_cfg=norm_cfg, act_cfg=act_cfg) - upsample = nn.Upsample(**upsampe_cfg) + upsample = nn.Upsample(**upsample_cfg) if conv_first: self.interp_upsample = nn.Sequential(conv, upsample) else: @@ -232,17 +232,17 @@ class UNet(nn.Module): strides (Sequence[int 1 | 2]): Strides of each stage in encoder. len(strides) is equal to num_stages. Normally the stride of the first stage in encoder is 1. If strides[i]=2, it uses stride - convolution to downsample in the correspondance encoder stage. + convolution to downsample in the correspondence encoder stage. Default: (1, 1, 1, 1, 1). enc_num_convs (Sequence[int]): Number of convolutional layers in the - convolution block of the correspondance encoder stage. + convolution block of the correspondence encoder stage. Default: (2, 2, 2, 2, 2). dec_num_convs (Sequence[int]): Number of convolutional layers in the - convolution block of the correspondance decoder stage. + convolution block of the correspondence decoder stage. Default: (2, 2, 2, 2). downsamples (Sequence[int]): Whether use MaxPool to downsample the feature map after the first stage of encoder - (stages: [1, num_stages)). If the correspondance encoder stage use + (stages: [1, num_stages)). If the correspondence encoder stage use stride convolution (strides[i]=2), it will never use MaxPool to downsample, even downsamples[i-1]=True. Default: (True, True, True, True). @@ -263,14 +263,14 @@ class UNet(nn.Module): norm_eval (bool): Whether to set norm layers to eval mode, namely, freeze running stats (mean and var). Note: Effect on Batch Norm and its variants only. Default: False. - dcn (bool): Use deformable convoluton in convolutional layer or not. + dcn (bool): Use deformable convolution in convolutional layer or not. Default: None. plugins (dict): plugins for convolutional layers. Default: None. Notice: - The input image size should be devisible by the whole downsample rate + The input image size should be divisible by the whole downsample rate of the encoder. More detail of the whole downsample rate can be found - in UNet._check_input_devisible. + in UNet._check_input_divisible. """ @@ -373,7 +373,7 @@ def __init__(self, in_channels = base_channels * 2**i def forward(self, x): - self._check_input_devisible(x) + self._check_input_divisible(x) enc_outs = [] for enc in self.encoder: x = enc(x) @@ -395,7 +395,7 @@ def train(self, mode=True): if isinstance(m, _BatchNorm): m.eval() - def _check_input_devisible(self, x): + def _check_input_divisible(self, x): h, w = x.shape[-2:] whole_downsample_rate = 1 for i in range(1, self.num_stages): @@ -403,7 +403,7 @@ def _check_input_devisible(self, x): whole_downsample_rate *= 2 assert (h % whole_downsample_rate == 0) \ and (w % whole_downsample_rate == 0),\ - f'The input image size {(h, w)} should be devisible by the whole '\ + f'The input image size {(h, w)} should be divisible by the whole '\ f'downsample rate {whole_downsample_rate}, when num_stages is '\ f'{self.num_stages}, strides is {self.strides}, and downsamples '\ f'is {self.downsamples}.' diff --git a/mmseg/models/decode_heads/apc_head.py b/mmseg/models/decode_heads/apc_head.py index b453db3943..2118232c96 100644 --- a/mmseg/models/decode_heads/apc_head.py +++ b/mmseg/models/decode_heads/apc_head.py @@ -13,7 +13,7 @@ class ACM(nn.Module): Args: pool_scale (int): Pooling scale used in Adaptive Context - Module to extract region fetures. + Module to extract region features. fusion (bool): Add one conv to fuse residual feature. in_channels (int): Input channels. channels (int): Channels after modules, before conv_seg. diff --git a/mmseg/models/decode_heads/dm_head.py b/mmseg/models/decode_heads/dm_head.py index 1c918fc35d..3161b06488 100644 --- a/mmseg/models/decode_heads/dm_head.py +++ b/mmseg/models/decode_heads/dm_head.py @@ -59,15 +59,15 @@ def __init__(self, filter_size, fusion, in_channels, channels, conv_cfg, def forward(self, x): """Forward function.""" - generted_filter = self.filter_gen_conv( + generated_filter = self.filter_gen_conv( F.adaptive_avg_pool2d(x, self.filter_size)) x = self.input_redu_conv(x) b, c, h, w = x.shape # [1, b * c, h, w], c = self.channels x = x.view(1, b * c, h, w) # [b * c, 1, filter_size, filter_size] - generted_filter = generted_filter.view(b * c, 1, self.filter_size, - self.filter_size) + generated_filter = generated_filter.view(b * c, 1, self.filter_size, + self.filter_size) pad = (self.filter_size - 1) // 2 if (self.filter_size - 1) % 2 == 0: p2d = (pad, pad, pad, pad) @@ -75,7 +75,7 @@ def forward(self, x): p2d = (pad + 1, pad, pad + 1, pad) x = F.pad(input=x, pad=p2d, mode='constant', value=0) # [1, b * c, h, w] - output = F.conv2d(input=x, weight=generted_filter, groups=b * c) + output = F.conv2d(input=x, weight=generated_filter, groups=b * c) # [b, c, h, w] output = output.view(b, c, h, w) if self.norm is not None: diff --git a/mmseg/models/decode_heads/gc_head.py b/mmseg/models/decode_heads/gc_head.py index 3368663750..93f60ad61c 100644 --- a/mmseg/models/decode_heads/gc_head.py +++ b/mmseg/models/decode_heads/gc_head.py @@ -17,7 +17,7 @@ class GCHead(FCNHead): pooling_type (str): The pooling type of context aggregation. Options are 'att', 'avg'. Default: 'avg'. fusion_types (tuple[str]): The fusion type for feature fusion. - Options are 'channel_add', 'channel_mul'. Defautl: ('channel_add',) + Options are 'channel_add', 'channel_mul'. Default: ('channel_add',) """ def __init__(self, diff --git a/mmseg/models/losses/lovasz_loss.py b/mmseg/models/losses/lovasz_loss.py index e6e2450cfd..859a656b9f 100644 --- a/mmseg/models/losses/lovasz_loss.py +++ b/mmseg/models/losses/lovasz_loss.py @@ -132,7 +132,7 @@ def lovasz_softmax_flat(probs, labels, classes='present', class_weight=None): probs (torch.Tensor): [P, C], class probabilities at each prediction (between 0 and 1). labels (torch.Tensor): [P], ground truth labels (between 0 and C - 1). - classes (str | list[int], optional): Classes choosed to calculate loss. + classes (str | list[int], optional): Classes chosen to calculate loss. 'all' for all classes, 'present' for classes present in labels, or a list of classes to average. Default: 'present'. class_weight (list[float], optional): The weight for each class. @@ -183,7 +183,7 @@ def lovasz_softmax(probs, prediction (between 0 and 1). labels (torch.Tensor): [B, H, W], ground truth labels (between 0 and C - 1). - classes (str | list[int], optional): Classes choosed to calculate loss. + classes (str | list[int], optional): Classes chosen to calculate loss. 'all' for all classes, 'present' for classes present in labels, or a list of classes to average. Default: 'present'. per_image (bool, optional): If per_image is True, compute the loss per @@ -232,7 +232,7 @@ class LovaszLoss(nn.Module): Args: loss_type (str, optional): Binary or multi-class loss. Default: 'multi_class'. Options are "binary" and "multi_class". - classes (str | list[int], optional): Classes choosed to calculate loss. + classes (str | list[int], optional): Classes chosen to calculate loss. 'all' for all classes, 'present' for classes present in labels, or a list of classes to average. Default: 'present'. per_image (bool, optional): If per_image is True, compute the loss per diff --git a/mmseg/models/utils/inverted_residual.py b/mmseg/models/utils/inverted_residual.py index 093388f564..ede71a2914 100644 --- a/mmseg/models/utils/inverted_residual.py +++ b/mmseg/models/utils/inverted_residual.py @@ -1,5 +1,5 @@ from mmcv.cnn import ConvModule -from torch import nn as nn +from torch import nn from torch.utils import checkpoint as cp from .se_layer import SELayer @@ -101,10 +101,10 @@ class InvertedResidualV3(nn.Module): in_channels (int): The input channels of this Module. out_channels (int): The output channels of this Module. mid_channels (int): The input channels of the depthwise convolution. - kernel_size (int): The kernal size of the depthwise convolution. + kernel_size (int): The kernel size of the depthwise convolution. Default: 3. stride (int): The stride of the depthwise convolution. Default: 1. - se_cfg (dict): Config dict for se layer. Defaul: None, which means no + se_cfg (dict): Config dict for se layer. Default: None, which means no se layer. with_expand_conv (bool): Use expand conv or not. If set False, mid_channels must be the same with in_channels. Default: True. diff --git a/mmseg/models/utils/se_layer.py b/mmseg/models/utils/se_layer.py index d75e712cb4..e08340457b 100644 --- a/mmseg/models/utils/se_layer.py +++ b/mmseg/models/utils/se_layer.py @@ -15,10 +15,10 @@ class SELayer(nn.Module): conv_cfg (None or dict): Config dict for convolution layer. Default: None, which means using conv2d. act_cfg (dict or Sequence[dict]): Config dict for activation layer. - If act_cfg is a dict, two activation layers will be configurated + If act_cfg is a dict, two activation layers will be configured by this dict. If act_cfg is a sequence of dicts, the first - activation layer will be configurated by the first dict and the - second activation layer will be configurated by the second dict. + activation layer will be configured by the first dict and the + second activation layer will be configured by the second dict. Default: (dict(type='ReLU'), dict(type='HSigmoid', bias=3.0, divisor=6.0)). """ diff --git a/mmseg/models/utils/up_conv_block.py b/mmseg/models/utils/up_conv_block.py index df8a2aa7db..6566b749db 100644 --- a/mmseg/models/utils/up_conv_block.py +++ b/mmseg/models/utils/up_conv_block.py @@ -36,7 +36,7 @@ class UpConvBlock(nn.Module): high-level feature map is the same as that of skip feature map (low-level feature map from encoder), it does not need upsample the high-level feature map and the upsample_cfg is None. - dcn (bool): Use deformable convoluton in convolutional layer or not. + dcn (bool): Use deformable convolution in convolutional layer or not. Default: None. plugins (dict): plugins for convolutional layers. Default: None. """ diff --git a/mmseg/ops/encoding.py b/mmseg/ops/encoding.py index d939189657..7eb3629a64 100644 --- a/mmseg/ops/encoding.py +++ b/mmseg/ops/encoding.py @@ -1,5 +1,5 @@ import torch -from torch import nn as nn +from torch import nn from torch.nn import functional as F @@ -43,14 +43,14 @@ def scaled_l2(x, codewords, scale): return scaled_l2_norm @staticmethod - def aggregate(assigment_weights, x, codewords): + def aggregate(assignment_weights, x, codewords): num_codes, channels = codewords.size() reshaped_codewords = codewords.view((1, 1, num_codes, channels)) batch_size = x.size(0) expanded_x = x.unsqueeze(2).expand( (batch_size, x.size(1), num_codes, channels)) - encoded_feat = (assigment_weights.unsqueeze(3) * + encoded_feat = (assignment_weights.unsqueeze(3) * (expanded_x - reshaped_codewords)).sum(dim=1) return encoded_feat @@ -61,10 +61,10 @@ def forward(self, x): # [batch_size, height x width, channels] x = x.view(batch_size, self.channels, -1).transpose(1, 2).contiguous() # assignment_weights: [batch_size, channels, num_codes] - assigment_weights = F.softmax( + assignment_weights = F.softmax( self.scaled_l2(x, self.codewords, self.scale), dim=2) # aggregate - encoded_feat = self.aggregate(assigment_weights, x, self.codewords) + encoded_feat = self.aggregate(assignment_weights, x, self.codewords) return encoded_feat def __repr__(self): diff --git a/tests/test_models/test_unet.py b/tests/test_models/test_unet.py index febe4f0c97..59dbb67d23 100644 --- a/tests/test_models/test_unet.py +++ b/tests/test_models/test_unet.py @@ -171,7 +171,8 @@ def test_interp_conv(): 64, 32, conv_first=False, - upsampe_cfg=dict(scale_factor=2, mode='bilinear', align_corners=False)) + upsample_cfg=dict( + scale_factor=2, mode='bilinear', align_corners=False)) x = torch.randn(1, 64, 128, 128) x_out = block(x) assert isinstance(block.interp_upsample[0], nn.Upsample) @@ -184,7 +185,7 @@ def test_interp_conv(): 64, 32, conv_first=False, - upsampe_cfg=dict(scale_factor=2, mode='nearest')) + upsample_cfg=dict(scale_factor=2, mode='nearest')) x = torch.randn(1, 64, 128, 128) x_out = block(x) assert isinstance(block.interp_upsample[0], nn.Upsample) @@ -255,7 +256,7 @@ def test_up_conv_block(): 32, upsample_cfg=dict( type='InterpConv', - upsampe_cfg=dict( + upsample_cfg=dict( scale_factor=2, mode='bilinear', align_corners=False))) skip_x = torch.randn(1, 32, 256, 256) x = torch.randn(1, 64, 128, 128) @@ -285,7 +286,7 @@ def test_up_conv_block(): dilation=3, upsample_cfg=dict( type='InterpConv', - upsampe_cfg=dict( + upsample_cfg=dict( scale_factor=2, mode='bilinear', align_corners=False))) skip_x = torch.randn(1, 32, 256, 256) x = torch.randn(1, 64, 128, 128) @@ -347,7 +348,7 @@ def test_unet(): UNet(3, 64, 5, plugins=plugins) with pytest.raises(AssertionError): - # Check whether the input image size can be devisible by the whole + # Check whether the input image size can be divisible by the whole # downsample rate of the encoder. The whole downsample rate of this # case is 8. unet = UNet( @@ -364,7 +365,7 @@ def test_unet(): unet(x) with pytest.raises(AssertionError): - # Check whether the input image size can be devisible by the whole + # Check whether the input image size can be divisible by the whole # downsample rate of the encoder. The whole downsample rate of this # case is 16. unet = UNet( @@ -381,7 +382,7 @@ def test_unet(): unet(x) with pytest.raises(AssertionError): - # Check whether the input image size can be devisible by the whole + # Check whether the input image size can be divisible by the whole # downsample rate of the encoder. The whole downsample rate of this # case is 8. unet = UNet( @@ -398,7 +399,7 @@ def test_unet(): unet(x) with pytest.raises(AssertionError): - # Check whether the input image size can be devisible by the whole + # Check whether the input image size can be divisible by the whole # downsample rate of the encoder. The whole downsample rate of this # case is 8. unet = UNet( @@ -415,7 +416,7 @@ def test_unet(): unet(x) with pytest.raises(AssertionError): - # Check whether the input image size can be devisible by the whole + # Check whether the input image size can be divisible by the whole # downsample rate of the encoder. The whole downsample rate of this # case is 32. unet = UNet( From fcad6df7a6b4c7d4dc6941864ca87bac77661735 Mon Sep 17 00:00:00 2001 From: lizz Date: Wed, 31 Mar 2021 00:52:08 +0800 Subject: [PATCH 110/706] Save base_channels for UNet (#450) Signed-off-by: lizz --- mmseg/models/backbones/unet.py | 1 + 1 file changed, 1 insertion(+) diff --git a/mmseg/models/backbones/unet.py b/mmseg/models/backbones/unet.py index 1172937955..6cbda009df 100644 --- a/mmseg/models/backbones/unet.py +++ b/mmseg/models/backbones/unet.py @@ -329,6 +329,7 @@ def __init__(self, self.strides = strides self.downsamples = downsamples self.norm_eval = norm_eval + self.base_channels = base_channels self.encoder = nn.ModuleList() self.decoder = nn.ModuleList() From 3150dd0ce4c2789b69d2c5077de4d03810c29e1f Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Tue, 30 Mar 2021 17:55:09 -0700 Subject: [PATCH 111/706] refactor test organization (#440) * refactor test organization * fixed se layer * update mmcv uper bound --- mmseg/__init__.py | 2 +- mmseg/models/utils/__init__.py | 3 +- tests/__init__.py | 0 tests/test_models/__init__.py | 0 tests/test_models/test_backbones/__init__.py | 3 + .../test_backbones/test_blocks.py} | 51 +- .../test_models/test_backbones/test_cgnet.py | 150 ++++ .../test_backbones/test_fast_scnn.py | 31 + .../test_backbones/test_mobilenet_v3.py | 66 ++ .../test_backbones/test_resnest.py | 43 + .../test_resnet.py} | 370 +------- .../test_backbones/test_resnext.py | 61 ++ .../{ => test_backbones}/test_unet.py | 11 +- tests/test_models/test_backbones/utils.py | 42 + tests/test_models/test_heads.py | 834 ------------------ tests/test_models/test_heads/__init__.py | 0 tests/test_models/test_heads/test_ann_head.py | 19 + tests/test_models/test_heads/test_apc_head.py | 58 ++ .../test_models/test_heads/test_aspp_head.py | 75 ++ tests/test_models/test_heads/test_cc_head.py | 17 + tests/test_models/test_heads/test_da_head.py | 18 + .../test_heads/test_decode_head.py | 75 ++ tests/test_models/test_heads/test_dm_head.py | 58 ++ tests/test_models/test_heads/test_dnl_head.py | 44 + tests/test_models/test_heads/test_ema_head.py | 22 + tests/test_models/test_heads/test_enc_head.py | 47 + tests/test_models/test_heads/test_fcn_head.py | 130 +++ tests/test_models/test_heads/test_gc_head.py | 15 + .../test_heads/test_lraspp_head.py | 67 ++ tests/test_models/test_heads/test_nl_head.py | 15 + tests/test_models/test_heads/test_ocr_head.py | 18 + .../test_models/test_heads/test_point_head.py | 22 + tests/test_models/test_heads/test_psa_head.py | 121 +++ tests/test_models/test_heads/test_psp_head.py | 35 + .../test_models/test_heads/test_uper_head.py | 34 + tests/test_models/test_heads/utils.py | 21 + tests/test_models/test_losses.py | 233 ----- tests/test_models/test_losses/__init__.py | 0 tests/test_models/test_losses/test_ce_loss.py | 48 + .../test_models/test_losses/test_dice_loss.py | 30 + .../test_losses/test_lovasz_loss.py | 62 ++ tests/test_models/test_losses/test_utils.py | 98 ++ tests/test_models/test_necks/__init__.py | 0 .../{test_necks.py => test_necks/test_fpn.py} | 0 tests/test_models/test_segmentors/__init__.py | 0 .../test_cascade_encoder_decoder.py | 56 ++ .../test_segmentors/test_encoder_decoder.py | 46 + .../utils.py} | 97 +- tests/test_utils/test_make_divisible.py | 13 - tests/test_utils/test_se_layer.py | 41 - 50 files changed, 1704 insertions(+), 1598 deletions(-) create mode 100644 tests/__init__.py create mode 100644 tests/test_models/__init__.py create mode 100644 tests/test_models/test_backbones/__init__.py rename tests/{test_utils/test_inverted_residual_module.py => test_models/test_backbones/test_blocks.py} (71%) create mode 100644 tests/test_models/test_backbones/test_cgnet.py create mode 100644 tests/test_models/test_backbones/test_fast_scnn.py create mode 100644 tests/test_models/test_backbones/test_mobilenet_v3.py create mode 100644 tests/test_models/test_backbones/test_resnest.py rename tests/test_models/{test_backbone.py => test_backbones/test_resnet.py} (62%) create mode 100644 tests/test_models/test_backbones/test_resnext.py rename tests/test_models/{ => test_backbones}/test_unet.py (98%) create mode 100644 tests/test_models/test_backbones/utils.py delete mode 100644 tests/test_models/test_heads.py create mode 100644 tests/test_models/test_heads/__init__.py create mode 100644 tests/test_models/test_heads/test_ann_head.py create mode 100644 tests/test_models/test_heads/test_apc_head.py create mode 100644 tests/test_models/test_heads/test_aspp_head.py create mode 100644 tests/test_models/test_heads/test_cc_head.py create mode 100644 tests/test_models/test_heads/test_da_head.py create mode 100644 tests/test_models/test_heads/test_decode_head.py create mode 100644 tests/test_models/test_heads/test_dm_head.py create mode 100644 tests/test_models/test_heads/test_dnl_head.py create mode 100644 tests/test_models/test_heads/test_ema_head.py create mode 100644 tests/test_models/test_heads/test_enc_head.py create mode 100644 tests/test_models/test_heads/test_fcn_head.py create mode 100644 tests/test_models/test_heads/test_gc_head.py create mode 100644 tests/test_models/test_heads/test_lraspp_head.py create mode 100644 tests/test_models/test_heads/test_nl_head.py create mode 100644 tests/test_models/test_heads/test_ocr_head.py create mode 100644 tests/test_models/test_heads/test_point_head.py create mode 100644 tests/test_models/test_heads/test_psa_head.py create mode 100644 tests/test_models/test_heads/test_psp_head.py create mode 100644 tests/test_models/test_heads/test_uper_head.py create mode 100644 tests/test_models/test_heads/utils.py delete mode 100644 tests/test_models/test_losses.py create mode 100644 tests/test_models/test_losses/__init__.py create mode 100644 tests/test_models/test_losses/test_ce_loss.py create mode 100644 tests/test_models/test_losses/test_dice_loss.py create mode 100644 tests/test_models/test_losses/test_lovasz_loss.py create mode 100644 tests/test_models/test_losses/test_utils.py create mode 100644 tests/test_models/test_necks/__init__.py rename tests/test_models/{test_necks.py => test_necks/test_fpn.py} (100%) create mode 100644 tests/test_models/test_segmentors/__init__.py create mode 100644 tests/test_models/test_segmentors/test_cascade_encoder_decoder.py create mode 100644 tests/test_models/test_segmentors/test_encoder_decoder.py rename tests/test_models/{test_segmentor.py => test_segmentors/utils.py} (52%) delete mode 100644 tests/test_utils/test_make_divisible.py delete mode 100644 tests/test_utils/test_se_layer.py diff --git a/mmseg/__init__.py b/mmseg/__init__.py index f301a5dc34..d1f472c044 100644 --- a/mmseg/__init__.py +++ b/mmseg/__init__.py @@ -3,7 +3,7 @@ from .version import __version__, version_info MMCV_MIN = '1.1.4' -MMCV_MAX = '1.3.0' +MMCV_MAX = '1.4.0' def digit_version(version_str): diff --git a/mmseg/models/utils/__init__.py b/mmseg/models/utils/__init__.py index 413228626e..8f0fc16ffc 100644 --- a/mmseg/models/utils/__init__.py +++ b/mmseg/models/utils/__init__.py @@ -1,10 +1,11 @@ from .inverted_residual import InvertedResidual, InvertedResidualV3 from .make_divisible import make_divisible from .res_layer import ResLayer +from .se_layer import SELayer from .self_attention_block import SelfAttentionBlock from .up_conv_block import UpConvBlock __all__ = [ 'ResLayer', 'SelfAttentionBlock', 'make_divisible', 'InvertedResidual', - 'UpConvBlock', 'InvertedResidualV3' + 'UpConvBlock', 'InvertedResidualV3', 'SELayer' ] diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/test_models/__init__.py b/tests/test_models/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/test_models/test_backbones/__init__.py b/tests/test_models/test_backbones/__init__.py new file mode 100644 index 0000000000..78a93a54f2 --- /dev/null +++ b/tests/test_models/test_backbones/__init__.py @@ -0,0 +1,3 @@ +from .utils import all_zeros, check_norm_state, is_block, is_norm + +__all__ = ['is_norm', 'is_block', 'all_zeros', 'check_norm_state'] diff --git a/tests/test_utils/test_inverted_residual_module.py b/tests/test_models/test_backbones/test_blocks.py similarity index 71% rename from tests/test_utils/test_inverted_residual_module.py rename to tests/test_models/test_backbones/test_blocks.py index 8d5eecf15b..f459fbba87 100644 --- a/tests/test_utils/test_inverted_residual_module.py +++ b/tests/test_models/test_backbones/test_blocks.py @@ -2,7 +2,20 @@ import pytest import torch -from mmseg.models.utils import InvertedResidual, InvertedResidualV3 +from mmseg.models.utils import (InvertedResidual, InvertedResidualV3, SELayer, + make_divisible) + + +def test_make_divisible(): + # test with min_value = None + assert make_divisible(10, 4) == 12 + assert make_divisible(9, 4) == 12 + assert make_divisible(1, 4) == 4 + + # test with min_value = 8 + assert make_divisible(10, 4, 8) == 12 + assert make_divisible(9, 4, 8) == 12 + assert make_divisible(1, 4, 8) == 8 def test_inv_residual(): @@ -118,3 +131,39 @@ def test_inv_residualv3(): x = torch.randn(2, 32, 64, 64, requires_grad=True) output = inv_module(x) assert output.shape == (2, 40, 32, 32) + + +def test_se_layer(): + with pytest.raises(AssertionError): + # test act_cfg assertion. + SELayer(32, act_cfg=(dict(type='ReLU'), )) + + # test config with channels = 16. + se_layer = SELayer(16) + assert se_layer.conv1.conv.kernel_size == (1, 1) + assert se_layer.conv1.conv.stride == (1, 1) + assert se_layer.conv1.conv.padding == (0, 0) + assert isinstance(se_layer.conv1.activate, torch.nn.ReLU) + assert se_layer.conv2.conv.kernel_size == (1, 1) + assert se_layer.conv2.conv.stride == (1, 1) + assert se_layer.conv2.conv.padding == (0, 0) + assert isinstance(se_layer.conv2.activate, mmcv.cnn.HSigmoid) + + x = torch.rand(1, 16, 64, 64) + output = se_layer(x) + assert output.shape == (1, 16, 64, 64) + + # test config with channels = 16, act_cfg = dict(type='ReLU'). + se_layer = SELayer(16, act_cfg=dict(type='ReLU')) + assert se_layer.conv1.conv.kernel_size == (1, 1) + assert se_layer.conv1.conv.stride == (1, 1) + assert se_layer.conv1.conv.padding == (0, 0) + assert isinstance(se_layer.conv1.activate, torch.nn.ReLU) + assert se_layer.conv2.conv.kernel_size == (1, 1) + assert se_layer.conv2.conv.stride == (1, 1) + assert se_layer.conv2.conv.padding == (0, 0) + assert isinstance(se_layer.conv2.activate, torch.nn.ReLU) + + x = torch.rand(1, 16, 64, 64) + output = se_layer(x) + assert output.shape == (1, 16, 64, 64) diff --git a/tests/test_models/test_backbones/test_cgnet.py b/tests/test_models/test_backbones/test_cgnet.py new file mode 100644 index 0000000000..dfc4e9adea --- /dev/null +++ b/tests/test_models/test_backbones/test_cgnet.py @@ -0,0 +1,150 @@ +import pytest +import torch + +from mmseg.models.backbones import CGNet +from mmseg.models.backbones.cgnet import (ContextGuidedBlock, + GlobalContextExtractor) + + +def test_cgnet_GlobalContextExtractor(): + block = GlobalContextExtractor(16, 16, with_cp=True) + x = torch.randn(2, 16, 64, 64, requires_grad=True) + x_out = block(x) + assert x_out.shape == torch.Size([2, 16, 64, 64]) + + +def test_cgnet_context_guided_block(): + with pytest.raises(AssertionError): + # cgnet ContextGuidedBlock GlobalContextExtractor channel and reduction + # constraints. + ContextGuidedBlock(8, 8) + + # test cgnet ContextGuidedBlock with checkpoint forward + block = ContextGuidedBlock( + 16, 16, act_cfg=dict(type='PReLU'), with_cp=True) + assert block.with_cp + x = torch.randn(2, 16, 64, 64, requires_grad=True) + x_out = block(x) + assert x_out.shape == torch.Size([2, 16, 64, 64]) + + # test cgnet ContextGuidedBlock without checkpoint forward + block = ContextGuidedBlock(32, 32) + assert not block.with_cp + x = torch.randn(3, 32, 32, 32) + x_out = block(x) + assert x_out.shape == torch.Size([3, 32, 32, 32]) + + # test cgnet ContextGuidedBlock with down sampling + block = ContextGuidedBlock(32, 32, downsample=True) + assert block.conv1x1.conv.in_channels == 32 + assert block.conv1x1.conv.out_channels == 32 + assert block.conv1x1.conv.kernel_size == (3, 3) + assert block.conv1x1.conv.stride == (2, 2) + assert block.conv1x1.conv.padding == (1, 1) + + assert block.f_loc.in_channels == 32 + assert block.f_loc.out_channels == 32 + assert block.f_loc.kernel_size == (3, 3) + assert block.f_loc.stride == (1, 1) + assert block.f_loc.padding == (1, 1) + assert block.f_loc.groups == 32 + assert block.f_loc.dilation == (1, 1) + assert block.f_loc.bias is None + + assert block.f_sur.in_channels == 32 + assert block.f_sur.out_channels == 32 + assert block.f_sur.kernel_size == (3, 3) + assert block.f_sur.stride == (1, 1) + assert block.f_sur.padding == (2, 2) + assert block.f_sur.groups == 32 + assert block.f_sur.dilation == (2, 2) + assert block.f_sur.bias is None + + assert block.bottleneck.in_channels == 64 + assert block.bottleneck.out_channels == 32 + assert block.bottleneck.kernel_size == (1, 1) + assert block.bottleneck.stride == (1, 1) + assert block.bottleneck.bias is None + + x = torch.randn(1, 32, 32, 32) + x_out = block(x) + assert x_out.shape == torch.Size([1, 32, 16, 16]) + + # test cgnet ContextGuidedBlock without down sampling + block = ContextGuidedBlock(32, 32, downsample=False) + assert block.conv1x1.conv.in_channels == 32 + assert block.conv1x1.conv.out_channels == 16 + assert block.conv1x1.conv.kernel_size == (1, 1) + assert block.conv1x1.conv.stride == (1, 1) + assert block.conv1x1.conv.padding == (0, 0) + + assert block.f_loc.in_channels == 16 + assert block.f_loc.out_channels == 16 + assert block.f_loc.kernel_size == (3, 3) + assert block.f_loc.stride == (1, 1) + assert block.f_loc.padding == (1, 1) + assert block.f_loc.groups == 16 + assert block.f_loc.dilation == (1, 1) + assert block.f_loc.bias is None + + assert block.f_sur.in_channels == 16 + assert block.f_sur.out_channels == 16 + assert block.f_sur.kernel_size == (3, 3) + assert block.f_sur.stride == (1, 1) + assert block.f_sur.padding == (2, 2) + assert block.f_sur.groups == 16 + assert block.f_sur.dilation == (2, 2) + assert block.f_sur.bias is None + + x = torch.randn(1, 32, 32, 32) + x_out = block(x) + assert x_out.shape == torch.Size([1, 32, 32, 32]) + + +def test_cgnet_backbone(): + with pytest.raises(AssertionError): + # check invalid num_channels + CGNet(num_channels=(32, 64, 128, 256)) + + with pytest.raises(AssertionError): + # check invalid num_blocks + CGNet(num_blocks=(3, 21, 3)) + + with pytest.raises(AssertionError): + # check invalid dilation + CGNet(num_blocks=2) + + with pytest.raises(AssertionError): + # check invalid reduction + CGNet(reductions=16) + + with pytest.raises(AssertionError): + # check invalid num_channels and reduction + CGNet(num_channels=(32, 64, 128), reductions=(64, 129)) + + # Test CGNet with default settings + model = CGNet() + model.init_weights() + model.train() + + imgs = torch.randn(2, 3, 224, 224) + feat = model(imgs) + assert len(feat) == 3 + assert feat[0].shape == torch.Size([2, 35, 112, 112]) + assert feat[1].shape == torch.Size([2, 131, 56, 56]) + assert feat[2].shape == torch.Size([2, 256, 28, 28]) + + # Test CGNet with norm_eval True and with_cp True + model = CGNet(norm_eval=True, with_cp=True) + with pytest.raises(TypeError): + # check invalid pretrained + model.init_weights(pretrained=8) + model.init_weights() + model.train() + + imgs = torch.randn(2, 3, 224, 224) + feat = model(imgs) + assert len(feat) == 3 + assert feat[0].shape == torch.Size([2, 35, 112, 112]) + assert feat[1].shape == torch.Size([2, 131, 56, 56]) + assert feat[2].shape == torch.Size([2, 256, 28, 28]) diff --git a/tests/test_models/test_backbones/test_fast_scnn.py b/tests/test_models/test_backbones/test_fast_scnn.py new file mode 100644 index 0000000000..f4a580987f --- /dev/null +++ b/tests/test_models/test_backbones/test_fast_scnn.py @@ -0,0 +1,31 @@ +import pytest +import torch + +from mmseg.models.backbones import FastSCNN + + +def test_fastscnn_backbone(): + with pytest.raises(AssertionError): + # Fast-SCNN channel constraints. + FastSCNN( + 3, (32, 48), + 64, (64, 96, 128), (2, 2, 1), + global_out_channels=127, + higher_in_channels=64, + lower_in_channels=128) + + # Test FastSCNN Standard Forward + model = FastSCNN() + model.init_weights() + model.train() + batch_size = 4 + imgs = torch.randn(batch_size, 3, 512, 1024) + feat = model(imgs) + + assert len(feat) == 3 + # higher-res + assert feat[0].shape == torch.Size([batch_size, 64, 64, 128]) + # lower-res + assert feat[1].shape == torch.Size([batch_size, 128, 16, 32]) + # FFM output + assert feat[2].shape == torch.Size([batch_size, 128, 64, 128]) diff --git a/tests/test_models/test_backbones/test_mobilenet_v3.py b/tests/test_models/test_backbones/test_mobilenet_v3.py new file mode 100644 index 0000000000..1ebeac410f --- /dev/null +++ b/tests/test_models/test_backbones/test_mobilenet_v3.py @@ -0,0 +1,66 @@ +import pytest +import torch + +from mmseg.models.backbones import MobileNetV3 + + +def test_mobilenet_v3(): + with pytest.raises(AssertionError): + # check invalid arch + MobileNetV3('big') + + with pytest.raises(AssertionError): + # check invalid reduction_factor + MobileNetV3(reduction_factor=0) + + with pytest.raises(ValueError): + # check invalid out_indices + MobileNetV3(out_indices=(0, 1, 15)) + + with pytest.raises(ValueError): + # check invalid frozen_stages + MobileNetV3(frozen_stages=15) + + with pytest.raises(TypeError): + # check invalid pretrained + model = MobileNetV3() + model.init_weights(pretrained=8) + + # Test MobileNetV3 with default settings + model = MobileNetV3() + model.init_weights() + model.train() + + imgs = torch.randn(2, 3, 224, 224) + feat = model(imgs) + assert len(feat) == 3 + assert feat[0].shape == (2, 16, 112, 112) + assert feat[1].shape == (2, 16, 56, 56) + assert feat[2].shape == (2, 576, 28, 28) + + # Test MobileNetV3 with arch = 'large' + model = MobileNetV3(arch='large', out_indices=(1, 3, 16)) + model.init_weights() + model.train() + + imgs = torch.randn(2, 3, 224, 224) + feat = model(imgs) + assert len(feat) == 3 + assert feat[0].shape == (2, 16, 112, 112) + assert feat[1].shape == (2, 24, 56, 56) + assert feat[2].shape == (2, 960, 28, 28) + + # Test MobileNetV3 with norm_eval True, with_cp True and frozen_stages=5 + model = MobileNetV3(norm_eval=True, with_cp=True, frozen_stages=5) + with pytest.raises(TypeError): + # check invalid pretrained + model.init_weights(pretrained=8) + model.init_weights() + model.train() + + imgs = torch.randn(2, 3, 224, 224) + feat = model(imgs) + assert len(feat) == 3 + assert feat[0].shape == (2, 16, 112, 112) + assert feat[1].shape == (2, 16, 56, 56) + assert feat[2].shape == (2, 576, 28, 28) diff --git a/tests/test_models/test_backbones/test_resnest.py b/tests/test_models/test_backbones/test_resnest.py new file mode 100644 index 0000000000..78d97de0c3 --- /dev/null +++ b/tests/test_models/test_backbones/test_resnest.py @@ -0,0 +1,43 @@ +import pytest +import torch + +from mmseg.models.backbones import ResNeSt +from mmseg.models.backbones.resnest import Bottleneck as BottleneckS + + +def test_resnest_bottleneck(): + with pytest.raises(AssertionError): + # Style must be in ['pytorch', 'caffe'] + BottleneckS(64, 64, radix=2, reduction_factor=4, style='tensorflow') + + # Test ResNeSt Bottleneck structure + block = BottleneckS( + 64, 256, radix=2, reduction_factor=4, stride=2, style='pytorch') + assert block.avd_layer.stride == 2 + assert block.conv2.channels == 256 + + # Test ResNeSt Bottleneck forward + block = BottleneckS(64, 16, radix=2, reduction_factor=4) + x = torch.randn(2, 64, 56, 56) + x_out = block(x) + assert x_out.shape == torch.Size([2, 64, 56, 56]) + + +def test_resnest_backbone(): + with pytest.raises(KeyError): + # ResNeSt depth should be in [50, 101, 152, 200] + ResNeSt(depth=18) + + # Test ResNeSt with radix 2, reduction_factor 4 + model = ResNeSt( + depth=50, radix=2, reduction_factor=4, out_indices=(0, 1, 2, 3)) + model.init_weights() + model.train() + + imgs = torch.randn(2, 3, 224, 224) + feat = model(imgs) + assert len(feat) == 4 + assert feat[0].shape == torch.Size([2, 256, 56, 56]) + assert feat[1].shape == torch.Size([2, 512, 28, 28]) + assert feat[2].shape == torch.Size([2, 1024, 14, 14]) + assert feat[3].shape == torch.Size([2, 2048, 7, 7]) diff --git a/tests/test_models/test_backbone.py b/tests/test_models/test_backbones/test_resnet.py similarity index 62% rename from tests/test_models/test_backbone.py rename to tests/test_models/test_backbones/test_resnet.py index 9ed6ce222f..b95277ee4f 100644 --- a/tests/test_models/test_backbone.py +++ b/tests/test_models/test_backbones/test_resnet.py @@ -4,50 +4,10 @@ from mmcv.utils.parrots_wrapper import _BatchNorm from torch.nn.modules import AvgPool2d, GroupNorm -from mmseg.models.backbones import (CGNet, FastSCNN, MobileNetV3, ResNeSt, - ResNet, ResNetV1d, ResNeXt) -from mmseg.models.backbones.cgnet import (ContextGuidedBlock, - GlobalContextExtractor) -from mmseg.models.backbones.resnest import Bottleneck as BottleneckS +from mmseg.models.backbones import ResNet, ResNetV1d from mmseg.models.backbones.resnet import BasicBlock, Bottleneck -from mmseg.models.backbones.resnext import Bottleneck as BottleneckX from mmseg.models.utils import ResLayer - - -def is_block(modules): - """Check if is ResNet building block.""" - if isinstance(modules, (BasicBlock, Bottleneck, BottleneckX)): - return True - return False - - -def is_norm(modules): - """Check if is one of the norms.""" - if isinstance(modules, (GroupNorm, _BatchNorm)): - return True - return False - - -def all_zeros(modules): - """Check if the weight(and bias) is all zero.""" - weight_zero = torch.allclose(modules.weight.data, - torch.zeros_like(modules.weight.data)) - if hasattr(modules, 'bias'): - bias_zero = torch.allclose(modules.bias.data, - torch.zeros_like(modules.bias.data)) - else: - bias_zero = True - - return weight_zero and bias_zero - - -def check_norm_state(modules, train_state): - """Check if norm layer is in correct train state.""" - for mod in modules: - if isinstance(mod, _BatchNorm): - if mod.training != train_state: - return False - return True +from .utils import all_zeros, check_norm_state, is_block, is_norm def test_resnet_basic_block(): @@ -611,329 +571,3 @@ def test_resnet_backbone(): assert feat[1].shape == torch.Size([1, 512, 28, 28]) assert feat[2].shape == torch.Size([1, 1024, 14, 14]) assert feat[3].shape == torch.Size([1, 2048, 7, 7]) - - -def test_renext_bottleneck(): - with pytest.raises(AssertionError): - # Style must be in ['pytorch', 'caffe'] - BottleneckX(64, 64, groups=32, base_width=4, style='tensorflow') - - # Test ResNeXt Bottleneck structure - block = BottleneckX( - 64, 64, groups=32, base_width=4, stride=2, style='pytorch') - assert block.conv2.stride == (2, 2) - assert block.conv2.groups == 32 - assert block.conv2.out_channels == 128 - - # Test ResNeXt Bottleneck with DCN - dcn = dict(type='DCN', deform_groups=1, fallback_on_stride=False) - with pytest.raises(AssertionError): - # conv_cfg must be None if dcn is not None - BottleneckX( - 64, - 64, - groups=32, - base_width=4, - dcn=dcn, - conv_cfg=dict(type='Conv')) - BottleneckX(64, 64, dcn=dcn) - - # Test ResNeXt Bottleneck forward - block = BottleneckX(64, 16, groups=32, base_width=4) - x = torch.randn(1, 64, 56, 56) - x_out = block(x) - assert x_out.shape == torch.Size([1, 64, 56, 56]) - - -def test_resnext_backbone(): - with pytest.raises(KeyError): - # ResNeXt depth should be in [50, 101, 152] - ResNeXt(depth=18) - - # Test ResNeXt with group 32, base_width 4 - model = ResNeXt(depth=50, groups=32, base_width=4) - print(model) - for m in model.modules(): - if is_block(m): - assert m.conv2.groups == 32 - model.init_weights() - model.train() - - imgs = torch.randn(1, 3, 224, 224) - feat = model(imgs) - assert len(feat) == 4 - assert feat[0].shape == torch.Size([1, 256, 56, 56]) - assert feat[1].shape == torch.Size([1, 512, 28, 28]) - assert feat[2].shape == torch.Size([1, 1024, 14, 14]) - assert feat[3].shape == torch.Size([1, 2048, 7, 7]) - - -def test_fastscnn_backbone(): - with pytest.raises(AssertionError): - # Fast-SCNN channel constraints. - FastSCNN( - 3, (32, 48), - 64, (64, 96, 128), (2, 2, 1), - global_out_channels=127, - higher_in_channels=64, - lower_in_channels=128) - - # Test FastSCNN Standard Forward - model = FastSCNN() - model.init_weights() - model.train() - batch_size = 4 - imgs = torch.randn(batch_size, 3, 512, 1024) - feat = model(imgs) - - assert len(feat) == 3 - # higher-res - assert feat[0].shape == torch.Size([batch_size, 64, 64, 128]) - # lower-res - assert feat[1].shape == torch.Size([batch_size, 128, 16, 32]) - # FFM output - assert feat[2].shape == torch.Size([batch_size, 128, 64, 128]) - - -def test_resnest_bottleneck(): - with pytest.raises(AssertionError): - # Style must be in ['pytorch', 'caffe'] - BottleneckS(64, 64, radix=2, reduction_factor=4, style='tensorflow') - - # Test ResNeSt Bottleneck structure - block = BottleneckS( - 64, 256, radix=2, reduction_factor=4, stride=2, style='pytorch') - assert block.avd_layer.stride == 2 - assert block.conv2.channels == 256 - - # Test ResNeSt Bottleneck forward - block = BottleneckS(64, 16, radix=2, reduction_factor=4) - x = torch.randn(2, 64, 56, 56) - x_out = block(x) - assert x_out.shape == torch.Size([2, 64, 56, 56]) - - -def test_resnest_backbone(): - with pytest.raises(KeyError): - # ResNeSt depth should be in [50, 101, 152, 200] - ResNeSt(depth=18) - - # Test ResNeSt with radix 2, reduction_factor 4 - model = ResNeSt( - depth=50, radix=2, reduction_factor=4, out_indices=(0, 1, 2, 3)) - model.init_weights() - model.train() - - imgs = torch.randn(2, 3, 224, 224) - feat = model(imgs) - assert len(feat) == 4 - assert feat[0].shape == torch.Size([2, 256, 56, 56]) - assert feat[1].shape == torch.Size([2, 512, 28, 28]) - assert feat[2].shape == torch.Size([2, 1024, 14, 14]) - assert feat[3].shape == torch.Size([2, 2048, 7, 7]) - - -def test_cgnet_GlobalContextExtractor(): - block = GlobalContextExtractor(16, 16, with_cp=True) - x = torch.randn(2, 16, 64, 64, requires_grad=True) - x_out = block(x) - assert x_out.shape == torch.Size([2, 16, 64, 64]) - - -def test_cgnet_context_guided_block(): - with pytest.raises(AssertionError): - # cgnet ContextGuidedBlock GlobalContextExtractor channel and reduction - # constraints. - ContextGuidedBlock(8, 8) - - # test cgnet ContextGuidedBlock with checkpoint forward - block = ContextGuidedBlock( - 16, 16, act_cfg=dict(type='PReLU'), with_cp=True) - assert block.with_cp - x = torch.randn(2, 16, 64, 64, requires_grad=True) - x_out = block(x) - assert x_out.shape == torch.Size([2, 16, 64, 64]) - - # test cgnet ContextGuidedBlock without checkpoint forward - block = ContextGuidedBlock(32, 32) - assert not block.with_cp - x = torch.randn(3, 32, 32, 32) - x_out = block(x) - assert x_out.shape == torch.Size([3, 32, 32, 32]) - - # test cgnet ContextGuidedBlock with down sampling - block = ContextGuidedBlock(32, 32, downsample=True) - assert block.conv1x1.conv.in_channels == 32 - assert block.conv1x1.conv.out_channels == 32 - assert block.conv1x1.conv.kernel_size == (3, 3) - assert block.conv1x1.conv.stride == (2, 2) - assert block.conv1x1.conv.padding == (1, 1) - - assert block.f_loc.in_channels == 32 - assert block.f_loc.out_channels == 32 - assert block.f_loc.kernel_size == (3, 3) - assert block.f_loc.stride == (1, 1) - assert block.f_loc.padding == (1, 1) - assert block.f_loc.groups == 32 - assert block.f_loc.dilation == (1, 1) - assert block.f_loc.bias is None - - assert block.f_sur.in_channels == 32 - assert block.f_sur.out_channels == 32 - assert block.f_sur.kernel_size == (3, 3) - assert block.f_sur.stride == (1, 1) - assert block.f_sur.padding == (2, 2) - assert block.f_sur.groups == 32 - assert block.f_sur.dilation == (2, 2) - assert block.f_sur.bias is None - - assert block.bottleneck.in_channels == 64 - assert block.bottleneck.out_channels == 32 - assert block.bottleneck.kernel_size == (1, 1) - assert block.bottleneck.stride == (1, 1) - assert block.bottleneck.bias is None - - x = torch.randn(1, 32, 32, 32) - x_out = block(x) - assert x_out.shape == torch.Size([1, 32, 16, 16]) - - # test cgnet ContextGuidedBlock without down sampling - block = ContextGuidedBlock(32, 32, downsample=False) - assert block.conv1x1.conv.in_channels == 32 - assert block.conv1x1.conv.out_channels == 16 - assert block.conv1x1.conv.kernel_size == (1, 1) - assert block.conv1x1.conv.stride == (1, 1) - assert block.conv1x1.conv.padding == (0, 0) - - assert block.f_loc.in_channels == 16 - assert block.f_loc.out_channels == 16 - assert block.f_loc.kernel_size == (3, 3) - assert block.f_loc.stride == (1, 1) - assert block.f_loc.padding == (1, 1) - assert block.f_loc.groups == 16 - assert block.f_loc.dilation == (1, 1) - assert block.f_loc.bias is None - - assert block.f_sur.in_channels == 16 - assert block.f_sur.out_channels == 16 - assert block.f_sur.kernel_size == (3, 3) - assert block.f_sur.stride == (1, 1) - assert block.f_sur.padding == (2, 2) - assert block.f_sur.groups == 16 - assert block.f_sur.dilation == (2, 2) - assert block.f_sur.bias is None - - x = torch.randn(1, 32, 32, 32) - x_out = block(x) - assert x_out.shape == torch.Size([1, 32, 32, 32]) - - -def test_cgnet_backbone(): - with pytest.raises(AssertionError): - # check invalid num_channels - CGNet(num_channels=(32, 64, 128, 256)) - - with pytest.raises(AssertionError): - # check invalid num_blocks - CGNet(num_blocks=(3, 21, 3)) - - with pytest.raises(AssertionError): - # check invalid dilation - CGNet(num_blocks=2) - - with pytest.raises(AssertionError): - # check invalid reduction - CGNet(reductions=16) - - with pytest.raises(AssertionError): - # check invalid num_channels and reduction - CGNet(num_channels=(32, 64, 128), reductions=(64, 129)) - - # Test CGNet with default settings - model = CGNet() - model.init_weights() - model.train() - - imgs = torch.randn(2, 3, 224, 224) - feat = model(imgs) - assert len(feat) == 3 - assert feat[0].shape == torch.Size([2, 35, 112, 112]) - assert feat[1].shape == torch.Size([2, 131, 56, 56]) - assert feat[2].shape == torch.Size([2, 256, 28, 28]) - - # Test CGNet with norm_eval True and with_cp True - model = CGNet(norm_eval=True, with_cp=True) - with pytest.raises(TypeError): - # check invalid pretrained - model.init_weights(pretrained=8) - model.init_weights() - model.train() - - imgs = torch.randn(2, 3, 224, 224) - feat = model(imgs) - assert len(feat) == 3 - assert feat[0].shape == torch.Size([2, 35, 112, 112]) - assert feat[1].shape == torch.Size([2, 131, 56, 56]) - assert feat[2].shape == torch.Size([2, 256, 28, 28]) - - -def test_mobilenet_v3(): - with pytest.raises(AssertionError): - # check invalid arch - MobileNetV3('big') - - with pytest.raises(AssertionError): - # check invalid reduction_factor - MobileNetV3(reduction_factor=0) - - with pytest.raises(ValueError): - # check invalid out_indices - MobileNetV3(out_indices=(0, 1, 15)) - - with pytest.raises(ValueError): - # check invalid frozen_stages - MobileNetV3(frozen_stages=15) - - with pytest.raises(TypeError): - # check invalid pretrained - model = MobileNetV3() - model.init_weights(pretrained=8) - - # Test MobileNetV3 with default settings - model = MobileNetV3() - model.init_weights() - model.train() - - imgs = torch.randn(2, 3, 224, 224) - feat = model(imgs) - assert len(feat) == 3 - assert feat[0].shape == (2, 16, 112, 112) - assert feat[1].shape == (2, 16, 56, 56) - assert feat[2].shape == (2, 576, 28, 28) - - # Test MobileNetV3 with arch = 'large' - model = MobileNetV3(arch='large', out_indices=(1, 3, 16)) - model.init_weights() - model.train() - - imgs = torch.randn(2, 3, 224, 224) - feat = model(imgs) - assert len(feat) == 3 - assert feat[0].shape == (2, 16, 112, 112) - assert feat[1].shape == (2, 24, 56, 56) - assert feat[2].shape == (2, 960, 28, 28) - - # Test MobileNetV3 with norm_eval True, with_cp True and frozen_stages=5 - model = MobileNetV3(norm_eval=True, with_cp=True, frozen_stages=5) - with pytest.raises(TypeError): - # check invalid pretrained - model.init_weights(pretrained=8) - model.init_weights() - model.train() - - imgs = torch.randn(2, 3, 224, 224) - feat = model(imgs) - assert len(feat) == 3 - assert feat[0].shape == (2, 16, 112, 112) - assert feat[1].shape == (2, 16, 56, 56) - assert feat[2].shape == (2, 576, 28, 28) diff --git a/tests/test_models/test_backbones/test_resnext.py b/tests/test_models/test_backbones/test_resnext.py new file mode 100644 index 0000000000..2ba5f8ec2d --- /dev/null +++ b/tests/test_models/test_backbones/test_resnext.py @@ -0,0 +1,61 @@ +import pytest +import torch + +from mmseg.models.backbones import ResNeXt +from mmseg.models.backbones.resnext import Bottleneck as BottleneckX +from .utils import is_block + + +def test_renext_bottleneck(): + with pytest.raises(AssertionError): + # Style must be in ['pytorch', 'caffe'] + BottleneckX(64, 64, groups=32, base_width=4, style='tensorflow') + + # Test ResNeXt Bottleneck structure + block = BottleneckX( + 64, 64, groups=32, base_width=4, stride=2, style='pytorch') + assert block.conv2.stride == (2, 2) + assert block.conv2.groups == 32 + assert block.conv2.out_channels == 128 + + # Test ResNeXt Bottleneck with DCN + dcn = dict(type='DCN', deform_groups=1, fallback_on_stride=False) + with pytest.raises(AssertionError): + # conv_cfg must be None if dcn is not None + BottleneckX( + 64, + 64, + groups=32, + base_width=4, + dcn=dcn, + conv_cfg=dict(type='Conv')) + BottleneckX(64, 64, dcn=dcn) + + # Test ResNeXt Bottleneck forward + block = BottleneckX(64, 16, groups=32, base_width=4) + x = torch.randn(1, 64, 56, 56) + x_out = block(x) + assert x_out.shape == torch.Size([1, 64, 56, 56]) + + +def test_resnext_backbone(): + with pytest.raises(KeyError): + # ResNeXt depth should be in [50, 101, 152] + ResNeXt(depth=18) + + # Test ResNeXt with group 32, base_width 4 + model = ResNeXt(depth=50, groups=32, base_width=4) + print(model) + for m in model.modules(): + if is_block(m): + assert m.conv2.groups == 32 + model.init_weights() + model.train() + + imgs = torch.randn(1, 3, 224, 224) + feat = model(imgs) + assert len(feat) == 4 + assert feat[0].shape == torch.Size([1, 256, 56, 56]) + assert feat[1].shape == torch.Size([1, 512, 28, 28]) + assert feat[2].shape == torch.Size([1, 1024, 14, 14]) + assert feat[3].shape == torch.Size([1, 2048, 7, 7]) diff --git a/tests/test_models/test_unet.py b/tests/test_models/test_backbones/test_unet.py similarity index 98% rename from tests/test_models/test_unet.py rename to tests/test_models/test_backbones/test_unet.py index 59dbb67d23..b17b22a05d 100644 --- a/tests/test_models/test_unet.py +++ b/tests/test_models/test_backbones/test_unet.py @@ -1,20 +1,11 @@ import pytest import torch from mmcv.cnn import ConvModule -from mmcv.utils.parrots_wrapper import _BatchNorm from torch import nn from mmseg.models.backbones.unet import (BasicConvBlock, DeconvModule, InterpConv, UNet, UpConvBlock) - - -def check_norm_state(modules, train_state): - """Check if norm layer is in correct train state.""" - for mod in modules: - if isinstance(mod, _BatchNorm): - if mod.training != train_state: - return False - return True +from .utils import check_norm_state def test_unet_basic_conv_block(): diff --git a/tests/test_models/test_backbones/utils.py b/tests/test_models/test_backbones/utils.py new file mode 100644 index 0000000000..d50b772c5f --- /dev/null +++ b/tests/test_models/test_backbones/utils.py @@ -0,0 +1,42 @@ +import torch +from torch.nn.modules import GroupNorm +from torch.nn.modules.batchnorm import _BatchNorm + +from mmseg.models.backbones.resnet import BasicBlock, Bottleneck +from mmseg.models.backbones.resnext import Bottleneck as BottleneckX + + +def is_block(modules): + """Check if is ResNet building block.""" + if isinstance(modules, (BasicBlock, Bottleneck, BottleneckX)): + return True + return False + + +def is_norm(modules): + """Check if is one of the norms.""" + if isinstance(modules, (GroupNorm, _BatchNorm)): + return True + return False + + +def all_zeros(modules): + """Check if the weight(and bias) is all zero.""" + weight_zero = torch.allclose(modules.weight.data, + torch.zeros_like(modules.weight.data)) + if hasattr(modules, 'bias'): + bias_zero = torch.allclose(modules.bias.data, + torch.zeros_like(modules.bias.data)) + else: + bias_zero = True + + return weight_zero and bias_zero + + +def check_norm_state(modules, train_state): + """Check if norm layer is in correct train state.""" + for mod in modules: + if isinstance(mod, _BatchNorm): + if mod.training != train_state: + return False + return True diff --git a/tests/test_models/test_heads.py b/tests/test_models/test_heads.py deleted file mode 100644 index e8a8493c16..0000000000 --- a/tests/test_models/test_heads.py +++ /dev/null @@ -1,834 +0,0 @@ -from unittest.mock import patch - -import pytest -import torch -from mmcv.cnn import ConvModule, DepthwiseSeparableConvModule -from mmcv.utils import ConfigDict -from mmcv.utils.parrots_wrapper import SyncBatchNorm - -from mmseg.models.decode_heads import (ANNHead, APCHead, ASPPHead, CCHead, - DAHead, DepthwiseSeparableASPPHead, - DepthwiseSeparableFCNHead, DMHead, - DNLHead, EMAHead, EncHead, FCNHead, - GCHead, LRASPPHead, NLHead, OCRHead, - PointHead, PSAHead, PSPHead, UPerHead) -from mmseg.models.decode_heads.decode_head import BaseDecodeHead - - -def _conv_has_norm(module, sync_bn): - for m in module.modules(): - if isinstance(m, ConvModule): - if not m.with_norm: - return False - if sync_bn: - if not isinstance(m.bn, SyncBatchNorm): - return False - return True - - -def to_cuda(module, data): - module = module.cuda() - if isinstance(data, list): - for i in range(len(data)): - data[i] = data[i].cuda() - return module, data - - -@patch.multiple(BaseDecodeHead, __abstractmethods__=set()) -def test_decode_head(): - - with pytest.raises(AssertionError): - # default input_transform doesn't accept multiple inputs - BaseDecodeHead([32, 16], 16, num_classes=19) - - with pytest.raises(AssertionError): - # default input_transform doesn't accept multiple inputs - BaseDecodeHead(32, 16, num_classes=19, in_index=[-1, -2]) - - with pytest.raises(AssertionError): - # supported mode is resize_concat only - BaseDecodeHead(32, 16, num_classes=19, input_transform='concat') - - with pytest.raises(AssertionError): - # in_channels should be list|tuple - BaseDecodeHead(32, 16, num_classes=19, input_transform='resize_concat') - - with pytest.raises(AssertionError): - # in_index should be list|tuple - BaseDecodeHead([32], - 16, - in_index=-1, - num_classes=19, - input_transform='resize_concat') - - with pytest.raises(AssertionError): - # len(in_index) should equal len(in_channels) - BaseDecodeHead([32, 16], - 16, - num_classes=19, - in_index=[-1], - input_transform='resize_concat') - - # test default dropout - head = BaseDecodeHead(32, 16, num_classes=19) - assert hasattr(head, 'dropout') and head.dropout.p == 0.1 - - # test set dropout - head = BaseDecodeHead(32, 16, num_classes=19, dropout_ratio=0.2) - assert hasattr(head, 'dropout') and head.dropout.p == 0.2 - - # test no input_transform - inputs = [torch.randn(1, 32, 45, 45)] - head = BaseDecodeHead(32, 16, num_classes=19) - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - assert head.in_channels == 32 - assert head.input_transform is None - transformed_inputs = head._transform_inputs(inputs) - assert transformed_inputs.shape == (1, 32, 45, 45) - - # test input_transform = resize_concat - inputs = [torch.randn(1, 32, 45, 45), torch.randn(1, 16, 21, 21)] - head = BaseDecodeHead([32, 16], - 16, - num_classes=19, - in_index=[0, 1], - input_transform='resize_concat') - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - assert head.in_channels == 48 - assert head.input_transform == 'resize_concat' - transformed_inputs = head._transform_inputs(inputs) - assert transformed_inputs.shape == (1, 48, 45, 45) - - -def test_fcn_head(): - - with pytest.raises(AssertionError): - # num_convs must be not less than 0 - FCNHead(num_classes=19, num_convs=-1) - - # test no norm_cfg - head = FCNHead(in_channels=32, channels=16, num_classes=19) - for m in head.modules(): - if isinstance(m, ConvModule): - assert not m.with_norm - - # test with norm_cfg - head = FCNHead( - in_channels=32, - channels=16, - num_classes=19, - norm_cfg=dict(type='SyncBN')) - for m in head.modules(): - if isinstance(m, ConvModule): - assert m.with_norm and isinstance(m.bn, SyncBatchNorm) - - # test concat_input=False - inputs = [torch.randn(1, 32, 45, 45)] - head = FCNHead( - in_channels=32, channels=16, num_classes=19, concat_input=False) - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - assert len(head.convs) == 2 - assert not head.concat_input and not hasattr(head, 'conv_cat') - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) - - # test concat_input=True - inputs = [torch.randn(1, 32, 45, 45)] - head = FCNHead( - in_channels=32, channels=16, num_classes=19, concat_input=True) - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - assert len(head.convs) == 2 - assert head.concat_input - assert head.conv_cat.in_channels == 48 - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) - - # test kernel_size=3 - inputs = [torch.randn(1, 32, 45, 45)] - head = FCNHead(in_channels=32, channels=16, num_classes=19) - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - for i in range(len(head.convs)): - assert head.convs[i].kernel_size == (3, 3) - assert head.convs[i].padding == 1 - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) - - # test kernel_size=1 - inputs = [torch.randn(1, 32, 45, 45)] - head = FCNHead(in_channels=32, channels=16, num_classes=19, kernel_size=1) - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - for i in range(len(head.convs)): - assert head.convs[i].kernel_size == (1, 1) - assert head.convs[i].padding == 0 - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) - - # test num_conv - inputs = [torch.randn(1, 32, 45, 45)] - head = FCNHead(in_channels=32, channels=16, num_classes=19, num_convs=1) - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - assert len(head.convs) == 1 - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) - - # test num_conv = 0 - inputs = [torch.randn(1, 32, 45, 45)] - head = FCNHead( - in_channels=32, - channels=32, - num_classes=19, - num_convs=0, - concat_input=False) - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - assert isinstance(head.convs, torch.nn.Identity) - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) - - -def test_psp_head(): - - with pytest.raises(AssertionError): - # pool_scales must be list|tuple - PSPHead(in_channels=32, channels=16, num_classes=19, pool_scales=1) - - # test no norm_cfg - head = PSPHead(in_channels=32, channels=16, num_classes=19) - assert not _conv_has_norm(head, sync_bn=False) - - # test with norm_cfg - head = PSPHead( - in_channels=32, - channels=16, - num_classes=19, - norm_cfg=dict(type='SyncBN')) - assert _conv_has_norm(head, sync_bn=True) - - inputs = [torch.randn(1, 32, 45, 45)] - head = PSPHead( - in_channels=32, channels=16, num_classes=19, pool_scales=(1, 2, 3)) - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - assert head.psp_modules[0][0].output_size == 1 - assert head.psp_modules[1][0].output_size == 2 - assert head.psp_modules[2][0].output_size == 3 - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) - - -def test_apc_head(): - - with pytest.raises(AssertionError): - # pool_scales must be list|tuple - APCHead(in_channels=32, channels=16, num_classes=19, pool_scales=1) - - # test no norm_cfg - head = APCHead(in_channels=32, channels=16, num_classes=19) - assert not _conv_has_norm(head, sync_bn=False) - - # test with norm_cfg - head = APCHead( - in_channels=32, - channels=16, - num_classes=19, - norm_cfg=dict(type='SyncBN')) - assert _conv_has_norm(head, sync_bn=True) - - # fusion=True - inputs = [torch.randn(1, 32, 45, 45)] - head = APCHead( - in_channels=32, - channels=16, - num_classes=19, - pool_scales=(1, 2, 3), - fusion=True) - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - assert head.fusion is True - assert head.acm_modules[0].pool_scale == 1 - assert head.acm_modules[1].pool_scale == 2 - assert head.acm_modules[2].pool_scale == 3 - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) - - # fusion=False - inputs = [torch.randn(1, 32, 45, 45)] - head = APCHead( - in_channels=32, - channels=16, - num_classes=19, - pool_scales=(1, 2, 3), - fusion=False) - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - assert head.fusion is False - assert head.acm_modules[0].pool_scale == 1 - assert head.acm_modules[1].pool_scale == 2 - assert head.acm_modules[2].pool_scale == 3 - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) - - -def test_dm_head(): - - with pytest.raises(AssertionError): - # filter_sizes must be list|tuple - DMHead(in_channels=32, channels=16, num_classes=19, filter_sizes=1) - - # test no norm_cfg - head = DMHead(in_channels=32, channels=16, num_classes=19) - assert not _conv_has_norm(head, sync_bn=False) - - # test with norm_cfg - head = DMHead( - in_channels=32, - channels=16, - num_classes=19, - norm_cfg=dict(type='SyncBN')) - assert _conv_has_norm(head, sync_bn=True) - - # fusion=True - inputs = [torch.randn(1, 32, 45, 45)] - head = DMHead( - in_channels=32, - channels=16, - num_classes=19, - filter_sizes=(1, 3, 5), - fusion=True) - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - assert head.fusion is True - assert head.dcm_modules[0].filter_size == 1 - assert head.dcm_modules[1].filter_size == 3 - assert head.dcm_modules[2].filter_size == 5 - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) - - # fusion=False - inputs = [torch.randn(1, 32, 45, 45)] - head = DMHead( - in_channels=32, - channels=16, - num_classes=19, - filter_sizes=(1, 3, 5), - fusion=False) - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - assert head.fusion is False - assert head.dcm_modules[0].filter_size == 1 - assert head.dcm_modules[1].filter_size == 3 - assert head.dcm_modules[2].filter_size == 5 - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) - - -def test_aspp_head(): - - with pytest.raises(AssertionError): - # pool_scales must be list|tuple - ASPPHead(in_channels=32, channels=16, num_classes=19, dilations=1) - - # test no norm_cfg - head = ASPPHead(in_channels=32, channels=16, num_classes=19) - assert not _conv_has_norm(head, sync_bn=False) - - # test with norm_cfg - head = ASPPHead( - in_channels=32, - channels=16, - num_classes=19, - norm_cfg=dict(type='SyncBN')) - assert _conv_has_norm(head, sync_bn=True) - - inputs = [torch.randn(1, 32, 45, 45)] - head = ASPPHead( - in_channels=32, channels=16, num_classes=19, dilations=(1, 12, 24)) - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - assert head.aspp_modules[0].conv.dilation == (1, 1) - assert head.aspp_modules[1].conv.dilation == (12, 12) - assert head.aspp_modules[2].conv.dilation == (24, 24) - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) - - -def test_psa_head(): - - with pytest.raises(AssertionError): - # psa_type must be in 'bi-direction', 'collect', 'distribute' - PSAHead( - in_channels=32, - channels=16, - num_classes=19, - mask_size=(39, 39), - psa_type='gather') - - # test no norm_cfg - head = PSAHead( - in_channels=32, channels=16, num_classes=19, mask_size=(39, 39)) - assert not _conv_has_norm(head, sync_bn=False) - - # test with norm_cfg - head = PSAHead( - in_channels=32, - channels=16, - num_classes=19, - mask_size=(39, 39), - norm_cfg=dict(type='SyncBN')) - assert _conv_has_norm(head, sync_bn=True) - - # test 'bi-direction' psa_type - inputs = [torch.randn(1, 32, 39, 39)] - head = PSAHead( - in_channels=32, channels=16, num_classes=19, mask_size=(39, 39)) - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 39, 39) - - # test 'bi-direction' psa_type, shrink_factor=1 - inputs = [torch.randn(1, 32, 39, 39)] - head = PSAHead( - in_channels=32, - channels=16, - num_classes=19, - mask_size=(39, 39), - shrink_factor=1) - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 39, 39) - - # test 'bi-direction' psa_type with soft_max - inputs = [torch.randn(1, 32, 39, 39)] - head = PSAHead( - in_channels=32, - channels=16, - num_classes=19, - mask_size=(39, 39), - psa_softmax=True) - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 39, 39) - - # test 'collect' psa_type - inputs = [torch.randn(1, 32, 39, 39)] - head = PSAHead( - in_channels=32, - channels=16, - num_classes=19, - mask_size=(39, 39), - psa_type='collect') - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 39, 39) - - # test 'collect' psa_type, shrink_factor=1 - inputs = [torch.randn(1, 32, 39, 39)] - head = PSAHead( - in_channels=32, - channels=16, - num_classes=19, - mask_size=(39, 39), - shrink_factor=1, - psa_type='collect') - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 39, 39) - - # test 'collect' psa_type, shrink_factor=1, compact=True - inputs = [torch.randn(1, 32, 39, 39)] - head = PSAHead( - in_channels=32, - channels=16, - num_classes=19, - mask_size=(39, 39), - psa_type='collect', - shrink_factor=1, - compact=True) - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 39, 39) - - # test 'distribute' psa_type - inputs = [torch.randn(1, 32, 39, 39)] - head = PSAHead( - in_channels=32, - channels=16, - num_classes=19, - mask_size=(39, 39), - psa_type='distribute') - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 39, 39) - - -def test_gc_head(): - head = GCHead(in_channels=32, channels=16, num_classes=19) - assert len(head.convs) == 2 - assert hasattr(head, 'gc_block') - inputs = [torch.randn(1, 32, 45, 45)] - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) - - -def test_nl_head(): - head = NLHead(in_channels=32, channels=16, num_classes=19) - assert len(head.convs) == 2 - assert hasattr(head, 'nl_block') - inputs = [torch.randn(1, 32, 45, 45)] - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) - - -def test_cc_head(): - head = CCHead(in_channels=32, channels=16, num_classes=19) - assert len(head.convs) == 2 - assert hasattr(head, 'cca') - if not torch.cuda.is_available(): - pytest.skip('CCHead requires CUDA') - inputs = [torch.randn(1, 32, 45, 45)] - head, inputs = to_cuda(head, inputs) - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) - - -def test_uper_head(): - - with pytest.raises(AssertionError): - # fpn_in_channels must be list|tuple - UPerHead(in_channels=32, channels=16, num_classes=19) - - # test no norm_cfg - head = UPerHead( - in_channels=[32, 16], channels=16, num_classes=19, in_index=[-2, -1]) - assert not _conv_has_norm(head, sync_bn=False) - - # test with norm_cfg - head = UPerHead( - in_channels=[32, 16], - channels=16, - num_classes=19, - norm_cfg=dict(type='SyncBN'), - in_index=[-2, -1]) - assert _conv_has_norm(head, sync_bn=True) - - inputs = [torch.randn(1, 32, 45, 45), torch.randn(1, 16, 21, 21)] - head = UPerHead( - in_channels=[32, 16], channels=16, num_classes=19, in_index=[-2, -1]) - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) - - -def test_ann_head(): - - inputs = [torch.randn(1, 16, 45, 45), torch.randn(1, 32, 21, 21)] - head = ANNHead( - in_channels=[16, 32], - channels=16, - num_classes=19, - in_index=[-2, -1], - project_channels=8) - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 21, 21) - - -def test_da_head(): - - inputs = [torch.randn(1, 32, 45, 45)] - head = DAHead(in_channels=32, channels=16, num_classes=19, pam_channels=8) - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - outputs = head(inputs) - assert isinstance(outputs, tuple) and len(outputs) == 3 - for output in outputs: - assert output.shape == (1, head.num_classes, 45, 45) - test_output = head.forward_test(inputs, None, None) - assert test_output.shape == (1, head.num_classes, 45, 45) - - -def test_ocr_head(): - - inputs = [torch.randn(1, 32, 45, 45)] - ocr_head = OCRHead( - in_channels=32, channels=16, num_classes=19, ocr_channels=8) - fcn_head = FCNHead(in_channels=32, channels=16, num_classes=19) - if torch.cuda.is_available(): - head, inputs = to_cuda(ocr_head, inputs) - head, inputs = to_cuda(fcn_head, inputs) - prev_output = fcn_head(inputs) - output = ocr_head(inputs, prev_output) - assert output.shape == (1, ocr_head.num_classes, 45, 45) - - -def test_enc_head(): - # with se_loss, w.o. lateral - inputs = [torch.randn(1, 32, 21, 21)] - head = EncHead( - in_channels=[32], channels=16, num_classes=19, in_index=[-1]) - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - outputs = head(inputs) - assert isinstance(outputs, tuple) and len(outputs) == 2 - assert outputs[0].shape == (1, head.num_classes, 21, 21) - assert outputs[1].shape == (1, head.num_classes) - - # w.o se_loss, w.o. lateral - inputs = [torch.randn(1, 32, 21, 21)] - head = EncHead( - in_channels=[32], - channels=16, - use_se_loss=False, - num_classes=19, - in_index=[-1]) - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 21, 21) - - # with se_loss, with lateral - inputs = [torch.randn(1, 16, 45, 45), torch.randn(1, 32, 21, 21)] - head = EncHead( - in_channels=[16, 32], - channels=16, - add_lateral=True, - num_classes=19, - in_index=[-2, -1]) - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - outputs = head(inputs) - assert isinstance(outputs, tuple) and len(outputs) == 2 - assert outputs[0].shape == (1, head.num_classes, 21, 21) - assert outputs[1].shape == (1, head.num_classes) - test_output = head.forward_test(inputs, None, None) - assert test_output.shape == (1, head.num_classes, 21, 21) - - -def test_dw_aspp_head(): - - # test w.o. c1 - inputs = [torch.randn(1, 32, 45, 45)] - head = DepthwiseSeparableASPPHead( - c1_in_channels=0, - c1_channels=0, - in_channels=32, - channels=16, - num_classes=19, - dilations=(1, 12, 24)) - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - assert head.c1_bottleneck is None - assert head.aspp_modules[0].conv.dilation == (1, 1) - assert head.aspp_modules[1].depthwise_conv.dilation == (12, 12) - assert head.aspp_modules[2].depthwise_conv.dilation == (24, 24) - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) - - # test with c1 - inputs = [torch.randn(1, 8, 45, 45), torch.randn(1, 32, 21, 21)] - head = DepthwiseSeparableASPPHead( - c1_in_channels=8, - c1_channels=4, - in_channels=32, - channels=16, - num_classes=19, - dilations=(1, 12, 24)) - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - assert head.c1_bottleneck.in_channels == 8 - assert head.c1_bottleneck.out_channels == 4 - assert head.aspp_modules[0].conv.dilation == (1, 1) - assert head.aspp_modules[1].depthwise_conv.dilation == (12, 12) - assert head.aspp_modules[2].depthwise_conv.dilation == (24, 24) - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) - - -def test_sep_fcn_head(): - # test sep_fcn_head with concat_input=False - head = DepthwiseSeparableFCNHead( - in_channels=128, - channels=128, - concat_input=False, - num_classes=19, - in_index=-1, - norm_cfg=dict(type='BN', requires_grad=True, momentum=0.01)) - x = [torch.rand(2, 128, 32, 32)] - output = head(x) - assert output.shape == (2, head.num_classes, 32, 32) - assert not head.concat_input - assert isinstance(head.convs[0], DepthwiseSeparableConvModule) - assert isinstance(head.convs[1], DepthwiseSeparableConvModule) - assert head.conv_seg.kernel_size == (1, 1) - - head = DepthwiseSeparableFCNHead( - in_channels=64, - channels=64, - concat_input=True, - num_classes=19, - in_index=-1, - norm_cfg=dict(type='BN', requires_grad=True, momentum=0.01)) - x = [torch.rand(3, 64, 32, 32)] - output = head(x) - assert output.shape == (3, head.num_classes, 32, 32) - assert head.concat_input - assert isinstance(head.convs[0], DepthwiseSeparableConvModule) - assert isinstance(head.convs[1], DepthwiseSeparableConvModule) - - -def test_dnl_head(): - # DNL with 'embedded_gaussian' mode - head = DNLHead(in_channels=32, channels=16, num_classes=19) - assert len(head.convs) == 2 - assert hasattr(head, 'dnl_block') - assert head.dnl_block.temperature == 0.05 - inputs = [torch.randn(1, 32, 45, 45)] - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) - - # NonLocal2d with 'dot_product' mode - head = DNLHead( - in_channels=32, channels=16, num_classes=19, mode='dot_product') - inputs = [torch.randn(1, 32, 45, 45)] - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) - - # NonLocal2d with 'gaussian' mode - head = DNLHead( - in_channels=32, channels=16, num_classes=19, mode='gaussian') - inputs = [torch.randn(1, 32, 45, 45)] - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) - - # NonLocal2d with 'concatenation' mode - head = DNLHead( - in_channels=32, channels=16, num_classes=19, mode='concatenation') - inputs = [torch.randn(1, 32, 45, 45)] - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) - - -def test_emanet_head(): - head = EMAHead( - in_channels=32, - ema_channels=24, - channels=16, - num_stages=3, - num_bases=16, - num_classes=19) - for param in head.ema_mid_conv.parameters(): - assert not param.requires_grad - assert hasattr(head, 'ema_module') - inputs = [torch.randn(1, 32, 45, 45)] - if torch.cuda.is_available(): - head, inputs = to_cuda(head, inputs) - outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) - - -def test_point_head(): - - inputs = [torch.randn(1, 32, 45, 45)] - point_head = PointHead( - in_channels=[32], in_index=[0], channels=16, num_classes=19) - assert len(point_head.fcs) == 3 - fcn_head = FCNHead(in_channels=32, channels=16, num_classes=19) - if torch.cuda.is_available(): - head, inputs = to_cuda(point_head, inputs) - head, inputs = to_cuda(fcn_head, inputs) - prev_output = fcn_head(inputs) - test_cfg = ConfigDict( - subdivision_steps=2, subdivision_num_points=8196, scale_factor=2) - output = point_head.forward_test(inputs, prev_output, None, test_cfg) - assert output.shape == (1, point_head.num_classes, 180, 180) - - -def test_lraspp_head(): - with pytest.raises(ValueError): - # check invalid input_transform - LRASPPHead( - in_channels=(16, 16, 576), - in_index=(0, 1, 2), - channels=128, - input_transform='resize_concat', - dropout_ratio=0.1, - num_classes=19, - norm_cfg=dict(type='BN'), - act_cfg=dict(type='ReLU'), - align_corners=False, - loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)) - - with pytest.raises(AssertionError): - # check invalid branch_channels - LRASPPHead( - in_channels=(16, 16, 576), - in_index=(0, 1, 2), - channels=128, - branch_channels=64, - input_transform='multiple_select', - dropout_ratio=0.1, - num_classes=19, - norm_cfg=dict(type='BN'), - act_cfg=dict(type='ReLU'), - align_corners=False, - loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)) - - # test with default settings - lraspp_head = LRASPPHead( - in_channels=(16, 16, 576), - in_index=(0, 1, 2), - channels=128, - input_transform='multiple_select', - dropout_ratio=0.1, - num_classes=19, - norm_cfg=dict(type='BN'), - act_cfg=dict(type='ReLU'), - align_corners=False, - loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)) - inputs = [ - torch.randn(2, 16, 45, 45), - torch.randn(2, 16, 28, 28), - torch.randn(2, 576, 14, 14) - ] - with pytest.raises(RuntimeError): - # check invalid inputs - output = lraspp_head(inputs) - - inputs = [ - torch.randn(2, 16, 111, 111), - torch.randn(2, 16, 77, 77), - torch.randn(2, 576, 55, 55) - ] - output = lraspp_head(inputs) - assert output.shape == (2, 19, 111, 111) diff --git a/tests/test_models/test_heads/__init__.py b/tests/test_models/test_heads/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/test_models/test_heads/test_ann_head.py b/tests/test_models/test_heads/test_ann_head.py new file mode 100644 index 0000000000..61556c0a08 --- /dev/null +++ b/tests/test_models/test_heads/test_ann_head.py @@ -0,0 +1,19 @@ +import torch + +from mmseg.models.decode_heads import ANNHead +from .utils import to_cuda + + +def test_ann_head(): + + inputs = [torch.randn(1, 16, 45, 45), torch.randn(1, 32, 21, 21)] + head = ANNHead( + in_channels=[16, 32], + channels=16, + num_classes=19, + in_index=[-2, -1], + project_channels=8) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 21, 21) diff --git a/tests/test_models/test_heads/test_apc_head.py b/tests/test_models/test_heads/test_apc_head.py new file mode 100644 index 0000000000..37f1a559bb --- /dev/null +++ b/tests/test_models/test_heads/test_apc_head.py @@ -0,0 +1,58 @@ +import pytest +import torch + +from mmseg.models.decode_heads import APCHead +from .utils import _conv_has_norm, to_cuda + + +def test_apc_head(): + + with pytest.raises(AssertionError): + # pool_scales must be list|tuple + APCHead(in_channels=32, channels=16, num_classes=19, pool_scales=1) + + # test no norm_cfg + head = APCHead(in_channels=32, channels=16, num_classes=19) + assert not _conv_has_norm(head, sync_bn=False) + + # test with norm_cfg + head = APCHead( + in_channels=32, + channels=16, + num_classes=19, + norm_cfg=dict(type='SyncBN')) + assert _conv_has_norm(head, sync_bn=True) + + # fusion=True + inputs = [torch.randn(1, 32, 45, 45)] + head = APCHead( + in_channels=32, + channels=16, + num_classes=19, + pool_scales=(1, 2, 3), + fusion=True) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + assert head.fusion is True + assert head.acm_modules[0].pool_scale == 1 + assert head.acm_modules[1].pool_scale == 2 + assert head.acm_modules[2].pool_scale == 3 + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) + + # fusion=False + inputs = [torch.randn(1, 32, 45, 45)] + head = APCHead( + in_channels=32, + channels=16, + num_classes=19, + pool_scales=(1, 2, 3), + fusion=False) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + assert head.fusion is False + assert head.acm_modules[0].pool_scale == 1 + assert head.acm_modules[1].pool_scale == 2 + assert head.acm_modules[2].pool_scale == 3 + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) diff --git a/tests/test_models/test_heads/test_aspp_head.py b/tests/test_models/test_heads/test_aspp_head.py new file mode 100644 index 0000000000..bd4ce56a35 --- /dev/null +++ b/tests/test_models/test_heads/test_aspp_head.py @@ -0,0 +1,75 @@ +import pytest +import torch + +from mmseg.models.decode_heads import ASPPHead, DepthwiseSeparableASPPHead +from .utils import _conv_has_norm, to_cuda + + +def test_aspp_head(): + + with pytest.raises(AssertionError): + # pool_scales must be list|tuple + ASPPHead(in_channels=32, channels=16, num_classes=19, dilations=1) + + # test no norm_cfg + head = ASPPHead(in_channels=32, channels=16, num_classes=19) + assert not _conv_has_norm(head, sync_bn=False) + + # test with norm_cfg + head = ASPPHead( + in_channels=32, + channels=16, + num_classes=19, + norm_cfg=dict(type='SyncBN')) + assert _conv_has_norm(head, sync_bn=True) + + inputs = [torch.randn(1, 32, 45, 45)] + head = ASPPHead( + in_channels=32, channels=16, num_classes=19, dilations=(1, 12, 24)) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + assert head.aspp_modules[0].conv.dilation == (1, 1) + assert head.aspp_modules[1].conv.dilation == (12, 12) + assert head.aspp_modules[2].conv.dilation == (24, 24) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) + + +def test_dw_aspp_head(): + + # test w.o. c1 + inputs = [torch.randn(1, 32, 45, 45)] + head = DepthwiseSeparableASPPHead( + c1_in_channels=0, + c1_channels=0, + in_channels=32, + channels=16, + num_classes=19, + dilations=(1, 12, 24)) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + assert head.c1_bottleneck is None + assert head.aspp_modules[0].conv.dilation == (1, 1) + assert head.aspp_modules[1].depthwise_conv.dilation == (12, 12) + assert head.aspp_modules[2].depthwise_conv.dilation == (24, 24) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) + + # test with c1 + inputs = [torch.randn(1, 8, 45, 45), torch.randn(1, 32, 21, 21)] + head = DepthwiseSeparableASPPHead( + c1_in_channels=8, + c1_channels=4, + in_channels=32, + channels=16, + num_classes=19, + dilations=(1, 12, 24)) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + assert head.c1_bottleneck.in_channels == 8 + assert head.c1_bottleneck.out_channels == 4 + assert head.aspp_modules[0].conv.dilation == (1, 1) + assert head.aspp_modules[1].depthwise_conv.dilation == (12, 12) + assert head.aspp_modules[2].depthwise_conv.dilation == (24, 24) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) diff --git a/tests/test_models/test_heads/test_cc_head.py b/tests/test_models/test_heads/test_cc_head.py new file mode 100644 index 0000000000..12a19bf0a4 --- /dev/null +++ b/tests/test_models/test_heads/test_cc_head.py @@ -0,0 +1,17 @@ +import pytest +import torch + +from mmseg.models.decode_heads import CCHead +from .utils import to_cuda + + +def test_cc_head(): + head = CCHead(in_channels=32, channels=16, num_classes=19) + assert len(head.convs) == 2 + assert hasattr(head, 'cca') + if not torch.cuda.is_available(): + pytest.skip('CCHead requires CUDA') + inputs = [torch.randn(1, 32, 45, 45)] + head, inputs = to_cuda(head, inputs) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) diff --git a/tests/test_models/test_heads/test_da_head.py b/tests/test_models/test_heads/test_da_head.py new file mode 100644 index 0000000000..20f3a2181b --- /dev/null +++ b/tests/test_models/test_heads/test_da_head.py @@ -0,0 +1,18 @@ +import torch + +from mmseg.models.decode_heads import DAHead +from .utils import to_cuda + + +def test_da_head(): + + inputs = [torch.randn(1, 32, 45, 45)] + head = DAHead(in_channels=32, channels=16, num_classes=19, pam_channels=8) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + outputs = head(inputs) + assert isinstance(outputs, tuple) and len(outputs) == 3 + for output in outputs: + assert output.shape == (1, head.num_classes, 45, 45) + test_output = head.forward_test(inputs, None, None) + assert test_output.shape == (1, head.num_classes, 45, 45) diff --git a/tests/test_models/test_heads/test_decode_head.py b/tests/test_models/test_heads/test_decode_head.py new file mode 100644 index 0000000000..97262b92c7 --- /dev/null +++ b/tests/test_models/test_heads/test_decode_head.py @@ -0,0 +1,75 @@ +from unittest.mock import patch + +import pytest +import torch + +from mmseg.models.decode_heads.decode_head import BaseDecodeHead +from .utils import to_cuda + + +@patch.multiple(BaseDecodeHead, __abstractmethods__=set()) +def test_decode_head(): + + with pytest.raises(AssertionError): + # default input_transform doesn't accept multiple inputs + BaseDecodeHead([32, 16], 16, num_classes=19) + + with pytest.raises(AssertionError): + # default input_transform doesn't accept multiple inputs + BaseDecodeHead(32, 16, num_classes=19, in_index=[-1, -2]) + + with pytest.raises(AssertionError): + # supported mode is resize_concat only + BaseDecodeHead(32, 16, num_classes=19, input_transform='concat') + + with pytest.raises(AssertionError): + # in_channels should be list|tuple + BaseDecodeHead(32, 16, num_classes=19, input_transform='resize_concat') + + with pytest.raises(AssertionError): + # in_index should be list|tuple + BaseDecodeHead([32], + 16, + in_index=-1, + num_classes=19, + input_transform='resize_concat') + + with pytest.raises(AssertionError): + # len(in_index) should equal len(in_channels) + BaseDecodeHead([32, 16], + 16, + num_classes=19, + in_index=[-1], + input_transform='resize_concat') + + # test default dropout + head = BaseDecodeHead(32, 16, num_classes=19) + assert hasattr(head, 'dropout') and head.dropout.p == 0.1 + + # test set dropout + head = BaseDecodeHead(32, 16, num_classes=19, dropout_ratio=0.2) + assert hasattr(head, 'dropout') and head.dropout.p == 0.2 + + # test no input_transform + inputs = [torch.randn(1, 32, 45, 45)] + head = BaseDecodeHead(32, 16, num_classes=19) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + assert head.in_channels == 32 + assert head.input_transform is None + transformed_inputs = head._transform_inputs(inputs) + assert transformed_inputs.shape == (1, 32, 45, 45) + + # test input_transform = resize_concat + inputs = [torch.randn(1, 32, 45, 45), torch.randn(1, 16, 21, 21)] + head = BaseDecodeHead([32, 16], + 16, + num_classes=19, + in_index=[0, 1], + input_transform='resize_concat') + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + assert head.in_channels == 48 + assert head.input_transform == 'resize_concat' + transformed_inputs = head._transform_inputs(inputs) + assert transformed_inputs.shape == (1, 48, 45, 45) diff --git a/tests/test_models/test_heads/test_dm_head.py b/tests/test_models/test_heads/test_dm_head.py new file mode 100644 index 0000000000..e85127b30c --- /dev/null +++ b/tests/test_models/test_heads/test_dm_head.py @@ -0,0 +1,58 @@ +import pytest +import torch + +from mmseg.models.decode_heads import DMHead +from .utils import _conv_has_norm, to_cuda + + +def test_dm_head(): + + with pytest.raises(AssertionError): + # filter_sizes must be list|tuple + DMHead(in_channels=32, channels=16, num_classes=19, filter_sizes=1) + + # test no norm_cfg + head = DMHead(in_channels=32, channels=16, num_classes=19) + assert not _conv_has_norm(head, sync_bn=False) + + # test with norm_cfg + head = DMHead( + in_channels=32, + channels=16, + num_classes=19, + norm_cfg=dict(type='SyncBN')) + assert _conv_has_norm(head, sync_bn=True) + + # fusion=True + inputs = [torch.randn(1, 32, 45, 45)] + head = DMHead( + in_channels=32, + channels=16, + num_classes=19, + filter_sizes=(1, 3, 5), + fusion=True) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + assert head.fusion is True + assert head.dcm_modules[0].filter_size == 1 + assert head.dcm_modules[1].filter_size == 3 + assert head.dcm_modules[2].filter_size == 5 + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) + + # fusion=False + inputs = [torch.randn(1, 32, 45, 45)] + head = DMHead( + in_channels=32, + channels=16, + num_classes=19, + filter_sizes=(1, 3, 5), + fusion=False) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + assert head.fusion is False + assert head.dcm_modules[0].filter_size == 1 + assert head.dcm_modules[1].filter_size == 3 + assert head.dcm_modules[2].filter_size == 5 + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) diff --git a/tests/test_models/test_heads/test_dnl_head.py b/tests/test_models/test_heads/test_dnl_head.py new file mode 100644 index 0000000000..b3e98aa276 --- /dev/null +++ b/tests/test_models/test_heads/test_dnl_head.py @@ -0,0 +1,44 @@ +import torch + +from mmseg.models.decode_heads import DNLHead +from .utils import to_cuda + + +def test_dnl_head(): + # DNL with 'embedded_gaussian' mode + head = DNLHead(in_channels=32, channels=16, num_classes=19) + assert len(head.convs) == 2 + assert hasattr(head, 'dnl_block') + assert head.dnl_block.temperature == 0.05 + inputs = [torch.randn(1, 32, 45, 45)] + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) + + # NonLocal2d with 'dot_product' mode + head = DNLHead( + in_channels=32, channels=16, num_classes=19, mode='dot_product') + inputs = [torch.randn(1, 32, 45, 45)] + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) + + # NonLocal2d with 'gaussian' mode + head = DNLHead( + in_channels=32, channels=16, num_classes=19, mode='gaussian') + inputs = [torch.randn(1, 32, 45, 45)] + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) + + # NonLocal2d with 'concatenation' mode + head = DNLHead( + in_channels=32, channels=16, num_classes=19, mode='concatenation') + inputs = [torch.randn(1, 32, 45, 45)] + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) diff --git a/tests/test_models/test_heads/test_ema_head.py b/tests/test_models/test_heads/test_ema_head.py new file mode 100644 index 0000000000..4214b0c961 --- /dev/null +++ b/tests/test_models/test_heads/test_ema_head.py @@ -0,0 +1,22 @@ +import torch + +from mmseg.models.decode_heads import EMAHead +from .utils import to_cuda + + +def test_emanet_head(): + head = EMAHead( + in_channels=32, + ema_channels=24, + channels=16, + num_stages=3, + num_bases=16, + num_classes=19) + for param in head.ema_mid_conv.parameters(): + assert not param.requires_grad + assert hasattr(head, 'ema_module') + inputs = [torch.randn(1, 32, 45, 45)] + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) diff --git a/tests/test_models/test_heads/test_enc_head.py b/tests/test_models/test_heads/test_enc_head.py new file mode 100644 index 0000000000..3a293300f4 --- /dev/null +++ b/tests/test_models/test_heads/test_enc_head.py @@ -0,0 +1,47 @@ +import torch + +from mmseg.models.decode_heads import EncHead +from .utils import to_cuda + + +def test_enc_head(): + # with se_loss, w.o. lateral + inputs = [torch.randn(1, 32, 21, 21)] + head = EncHead( + in_channels=[32], channels=16, num_classes=19, in_index=[-1]) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + outputs = head(inputs) + assert isinstance(outputs, tuple) and len(outputs) == 2 + assert outputs[0].shape == (1, head.num_classes, 21, 21) + assert outputs[1].shape == (1, head.num_classes) + + # w.o se_loss, w.o. lateral + inputs = [torch.randn(1, 32, 21, 21)] + head = EncHead( + in_channels=[32], + channels=16, + use_se_loss=False, + num_classes=19, + in_index=[-1]) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 21, 21) + + # with se_loss, with lateral + inputs = [torch.randn(1, 16, 45, 45), torch.randn(1, 32, 21, 21)] + head = EncHead( + in_channels=[16, 32], + channels=16, + add_lateral=True, + num_classes=19, + in_index=[-2, -1]) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + outputs = head(inputs) + assert isinstance(outputs, tuple) and len(outputs) == 2 + assert outputs[0].shape == (1, head.num_classes, 21, 21) + assert outputs[1].shape == (1, head.num_classes) + test_output = head.forward_test(inputs, None, None) + assert test_output.shape == (1, head.num_classes, 21, 21) diff --git a/tests/test_models/test_heads/test_fcn_head.py b/tests/test_models/test_heads/test_fcn_head.py new file mode 100644 index 0000000000..24ae086d65 --- /dev/null +++ b/tests/test_models/test_heads/test_fcn_head.py @@ -0,0 +1,130 @@ +import pytest +import torch +from mmcv.cnn import ConvModule, DepthwiseSeparableConvModule +from mmcv.utils.parrots_wrapper import SyncBatchNorm + +from mmseg.models.decode_heads import DepthwiseSeparableFCNHead, FCNHead +from .utils import to_cuda + + +def test_fcn_head(): + + with pytest.raises(AssertionError): + # num_convs must be not less than 0 + FCNHead(num_classes=19, num_convs=-1) + + # test no norm_cfg + head = FCNHead(in_channels=32, channels=16, num_classes=19) + for m in head.modules(): + if isinstance(m, ConvModule): + assert not m.with_norm + + # test with norm_cfg + head = FCNHead( + in_channels=32, + channels=16, + num_classes=19, + norm_cfg=dict(type='SyncBN')) + for m in head.modules(): + if isinstance(m, ConvModule): + assert m.with_norm and isinstance(m.bn, SyncBatchNorm) + + # test concat_input=False + inputs = [torch.randn(1, 32, 45, 45)] + head = FCNHead( + in_channels=32, channels=16, num_classes=19, concat_input=False) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + assert len(head.convs) == 2 + assert not head.concat_input and not hasattr(head, 'conv_cat') + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) + + # test concat_input=True + inputs = [torch.randn(1, 32, 45, 45)] + head = FCNHead( + in_channels=32, channels=16, num_classes=19, concat_input=True) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + assert len(head.convs) == 2 + assert head.concat_input + assert head.conv_cat.in_channels == 48 + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) + + # test kernel_size=3 + inputs = [torch.randn(1, 32, 45, 45)] + head = FCNHead(in_channels=32, channels=16, num_classes=19) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + for i in range(len(head.convs)): + assert head.convs[i].kernel_size == (3, 3) + assert head.convs[i].padding == 1 + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) + + # test kernel_size=1 + inputs = [torch.randn(1, 32, 45, 45)] + head = FCNHead(in_channels=32, channels=16, num_classes=19, kernel_size=1) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + for i in range(len(head.convs)): + assert head.convs[i].kernel_size == (1, 1) + assert head.convs[i].padding == 0 + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) + + # test num_conv + inputs = [torch.randn(1, 32, 45, 45)] + head = FCNHead(in_channels=32, channels=16, num_classes=19, num_convs=1) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + assert len(head.convs) == 1 + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) + + # test num_conv = 0 + inputs = [torch.randn(1, 32, 45, 45)] + head = FCNHead( + in_channels=32, + channels=32, + num_classes=19, + num_convs=0, + concat_input=False) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + assert isinstance(head.convs, torch.nn.Identity) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) + + +def test_sep_fcn_head(): + # test sep_fcn_head with concat_input=False + head = DepthwiseSeparableFCNHead( + in_channels=128, + channels=128, + concat_input=False, + num_classes=19, + in_index=-1, + norm_cfg=dict(type='BN', requires_grad=True, momentum=0.01)) + x = [torch.rand(2, 128, 32, 32)] + output = head(x) + assert output.shape == (2, head.num_classes, 32, 32) + assert not head.concat_input + assert isinstance(head.convs[0], DepthwiseSeparableConvModule) + assert isinstance(head.convs[1], DepthwiseSeparableConvModule) + assert head.conv_seg.kernel_size == (1, 1) + + head = DepthwiseSeparableFCNHead( + in_channels=64, + channels=64, + concat_input=True, + num_classes=19, + in_index=-1, + norm_cfg=dict(type='BN', requires_grad=True, momentum=0.01)) + x = [torch.rand(3, 64, 32, 32)] + output = head(x) + assert output.shape == (3, head.num_classes, 32, 32) + assert head.concat_input + assert isinstance(head.convs[0], DepthwiseSeparableConvModule) + assert isinstance(head.convs[1], DepthwiseSeparableConvModule) diff --git a/tests/test_models/test_heads/test_gc_head.py b/tests/test_models/test_heads/test_gc_head.py new file mode 100644 index 0000000000..5201730b06 --- /dev/null +++ b/tests/test_models/test_heads/test_gc_head.py @@ -0,0 +1,15 @@ +import torch + +from mmseg.models.decode_heads import GCHead +from .utils import to_cuda + + +def test_gc_head(): + head = GCHead(in_channels=32, channels=16, num_classes=19) + assert len(head.convs) == 2 + assert hasattr(head, 'gc_block') + inputs = [torch.randn(1, 32, 45, 45)] + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) diff --git a/tests/test_models/test_heads/test_lraspp_head.py b/tests/test_models/test_heads/test_lraspp_head.py new file mode 100644 index 0000000000..5031936c78 --- /dev/null +++ b/tests/test_models/test_heads/test_lraspp_head.py @@ -0,0 +1,67 @@ +import pytest +import torch + +from mmseg.models.decode_heads import LRASPPHead + + +def test_lraspp_head(): + with pytest.raises(ValueError): + # check invalid input_transform + LRASPPHead( + in_channels=(16, 16, 576), + in_index=(0, 1, 2), + channels=128, + input_transform='resize_concat', + dropout_ratio=0.1, + num_classes=19, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)) + + with pytest.raises(AssertionError): + # check invalid branch_channels + LRASPPHead( + in_channels=(16, 16, 576), + in_index=(0, 1, 2), + channels=128, + branch_channels=64, + input_transform='multiple_select', + dropout_ratio=0.1, + num_classes=19, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)) + + # test with default settings + lraspp_head = LRASPPHead( + in_channels=(16, 16, 576), + in_index=(0, 1, 2), + channels=128, + input_transform='multiple_select', + dropout_ratio=0.1, + num_classes=19, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)) + inputs = [ + torch.randn(2, 16, 45, 45), + torch.randn(2, 16, 28, 28), + torch.randn(2, 576, 14, 14) + ] + with pytest.raises(RuntimeError): + # check invalid inputs + output = lraspp_head(inputs) + + inputs = [ + torch.randn(2, 16, 111, 111), + torch.randn(2, 16, 77, 77), + torch.randn(2, 576, 55, 55) + ] + output = lraspp_head(inputs) + assert output.shape == (2, 19, 111, 111) diff --git a/tests/test_models/test_heads/test_nl_head.py b/tests/test_models/test_heads/test_nl_head.py new file mode 100644 index 0000000000..6f4bede5e7 --- /dev/null +++ b/tests/test_models/test_heads/test_nl_head.py @@ -0,0 +1,15 @@ +import torch + +from mmseg.models.decode_heads import NLHead +from .utils import to_cuda + + +def test_nl_head(): + head = NLHead(in_channels=32, channels=16, num_classes=19) + assert len(head.convs) == 2 + assert hasattr(head, 'nl_block') + inputs = [torch.randn(1, 32, 45, 45)] + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) diff --git a/tests/test_models/test_heads/test_ocr_head.py b/tests/test_models/test_heads/test_ocr_head.py new file mode 100644 index 0000000000..bc2af75ad5 --- /dev/null +++ b/tests/test_models/test_heads/test_ocr_head.py @@ -0,0 +1,18 @@ +import torch + +from mmseg.models.decode_heads import FCNHead, OCRHead +from .utils import to_cuda + + +def test_ocr_head(): + + inputs = [torch.randn(1, 32, 45, 45)] + ocr_head = OCRHead( + in_channels=32, channels=16, num_classes=19, ocr_channels=8) + fcn_head = FCNHead(in_channels=32, channels=16, num_classes=19) + if torch.cuda.is_available(): + head, inputs = to_cuda(ocr_head, inputs) + head, inputs = to_cuda(fcn_head, inputs) + prev_output = fcn_head(inputs) + output = ocr_head(inputs, prev_output) + assert output.shape == (1, ocr_head.num_classes, 45, 45) diff --git a/tests/test_models/test_heads/test_point_head.py b/tests/test_models/test_heads/test_point_head.py new file mode 100644 index 0000000000..b54b979de9 --- /dev/null +++ b/tests/test_models/test_heads/test_point_head.py @@ -0,0 +1,22 @@ +import torch +from mmcv.utils import ConfigDict + +from mmseg.models.decode_heads import FCNHead, PointHead +from .utils import to_cuda + + +def test_point_head(): + + inputs = [torch.randn(1, 32, 45, 45)] + point_head = PointHead( + in_channels=[32], in_index=[0], channels=16, num_classes=19) + assert len(point_head.fcs) == 3 + fcn_head = FCNHead(in_channels=32, channels=16, num_classes=19) + if torch.cuda.is_available(): + head, inputs = to_cuda(point_head, inputs) + head, inputs = to_cuda(fcn_head, inputs) + prev_output = fcn_head(inputs) + test_cfg = ConfigDict( + subdivision_steps=2, subdivision_num_points=8196, scale_factor=2) + output = point_head.forward_test(inputs, prev_output, None, test_cfg) + assert output.shape == (1, point_head.num_classes, 180, 180) diff --git a/tests/test_models/test_heads/test_psa_head.py b/tests/test_models/test_heads/test_psa_head.py new file mode 100644 index 0000000000..d8f38b6aae --- /dev/null +++ b/tests/test_models/test_heads/test_psa_head.py @@ -0,0 +1,121 @@ +import pytest +import torch + +from mmseg.models.decode_heads import PSAHead +from .utils import _conv_has_norm, to_cuda + + +def test_psa_head(): + + with pytest.raises(AssertionError): + # psa_type must be in 'bi-direction', 'collect', 'distribute' + PSAHead( + in_channels=32, + channels=16, + num_classes=19, + mask_size=(39, 39), + psa_type='gather') + + # test no norm_cfg + head = PSAHead( + in_channels=32, channels=16, num_classes=19, mask_size=(39, 39)) + assert not _conv_has_norm(head, sync_bn=False) + + # test with norm_cfg + head = PSAHead( + in_channels=32, + channels=16, + num_classes=19, + mask_size=(39, 39), + norm_cfg=dict(type='SyncBN')) + assert _conv_has_norm(head, sync_bn=True) + + # test 'bi-direction' psa_type + inputs = [torch.randn(1, 32, 39, 39)] + head = PSAHead( + in_channels=32, channels=16, num_classes=19, mask_size=(39, 39)) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 39, 39) + + # test 'bi-direction' psa_type, shrink_factor=1 + inputs = [torch.randn(1, 32, 39, 39)] + head = PSAHead( + in_channels=32, + channels=16, + num_classes=19, + mask_size=(39, 39), + shrink_factor=1) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 39, 39) + + # test 'bi-direction' psa_type with soft_max + inputs = [torch.randn(1, 32, 39, 39)] + head = PSAHead( + in_channels=32, + channels=16, + num_classes=19, + mask_size=(39, 39), + psa_softmax=True) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 39, 39) + + # test 'collect' psa_type + inputs = [torch.randn(1, 32, 39, 39)] + head = PSAHead( + in_channels=32, + channels=16, + num_classes=19, + mask_size=(39, 39), + psa_type='collect') + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 39, 39) + + # test 'collect' psa_type, shrink_factor=1 + inputs = [torch.randn(1, 32, 39, 39)] + head = PSAHead( + in_channels=32, + channels=16, + num_classes=19, + mask_size=(39, 39), + shrink_factor=1, + psa_type='collect') + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 39, 39) + + # test 'collect' psa_type, shrink_factor=1, compact=True + inputs = [torch.randn(1, 32, 39, 39)] + head = PSAHead( + in_channels=32, + channels=16, + num_classes=19, + mask_size=(39, 39), + psa_type='collect', + shrink_factor=1, + compact=True) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 39, 39) + + # test 'distribute' psa_type + inputs = [torch.randn(1, 32, 39, 39)] + head = PSAHead( + in_channels=32, + channels=16, + num_classes=19, + mask_size=(39, 39), + psa_type='distribute') + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 39, 39) diff --git a/tests/test_models/test_heads/test_psp_head.py b/tests/test_models/test_heads/test_psp_head.py new file mode 100644 index 0000000000..38b39d7ba8 --- /dev/null +++ b/tests/test_models/test_heads/test_psp_head.py @@ -0,0 +1,35 @@ +import pytest +import torch + +from mmseg.models.decode_heads import PSPHead +from .utils import _conv_has_norm, to_cuda + + +def test_psp_head(): + + with pytest.raises(AssertionError): + # pool_scales must be list|tuple + PSPHead(in_channels=32, channels=16, num_classes=19, pool_scales=1) + + # test no norm_cfg + head = PSPHead(in_channels=32, channels=16, num_classes=19) + assert not _conv_has_norm(head, sync_bn=False) + + # test with norm_cfg + head = PSPHead( + in_channels=32, + channels=16, + num_classes=19, + norm_cfg=dict(type='SyncBN')) + assert _conv_has_norm(head, sync_bn=True) + + inputs = [torch.randn(1, 32, 45, 45)] + head = PSPHead( + in_channels=32, channels=16, num_classes=19, pool_scales=(1, 2, 3)) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + assert head.psp_modules[0][0].output_size == 1 + assert head.psp_modules[1][0].output_size == 2 + assert head.psp_modules[2][0].output_size == 3 + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) diff --git a/tests/test_models/test_heads/test_uper_head.py b/tests/test_models/test_heads/test_uper_head.py new file mode 100644 index 0000000000..2c66db8921 --- /dev/null +++ b/tests/test_models/test_heads/test_uper_head.py @@ -0,0 +1,34 @@ +import pytest +import torch + +from mmseg.models.decode_heads import UPerHead +from .utils import _conv_has_norm, to_cuda + + +def test_uper_head(): + + with pytest.raises(AssertionError): + # fpn_in_channels must be list|tuple + UPerHead(in_channels=32, channels=16, num_classes=19) + + # test no norm_cfg + head = UPerHead( + in_channels=[32, 16], channels=16, num_classes=19, in_index=[-2, -1]) + assert not _conv_has_norm(head, sync_bn=False) + + # test with norm_cfg + head = UPerHead( + in_channels=[32, 16], + channels=16, + num_classes=19, + norm_cfg=dict(type='SyncBN'), + in_index=[-2, -1]) + assert _conv_has_norm(head, sync_bn=True) + + inputs = [torch.randn(1, 32, 45, 45), torch.randn(1, 16, 21, 21)] + head = UPerHead( + in_channels=[32, 16], channels=16, num_classes=19, in_index=[-2, -1]) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + outputs = head(inputs) + assert outputs.shape == (1, head.num_classes, 45, 45) diff --git a/tests/test_models/test_heads/utils.py b/tests/test_models/test_heads/utils.py new file mode 100644 index 0000000000..1407f0a916 --- /dev/null +++ b/tests/test_models/test_heads/utils.py @@ -0,0 +1,21 @@ +from mmcv.cnn import ConvModule +from mmcv.utils.parrots_wrapper import SyncBatchNorm + + +def _conv_has_norm(module, sync_bn): + for m in module.modules(): + if isinstance(m, ConvModule): + if not m.with_norm: + return False + if sync_bn: + if not isinstance(m.bn, SyncBatchNorm): + return False + return True + + +def to_cuda(module, data): + module = module.cuda() + if isinstance(data, list): + for i in range(len(data)): + data[i] = data[i].cuda() + return module, data diff --git a/tests/test_models/test_losses.py b/tests/test_models/test_losses.py deleted file mode 100644 index c58e6a5059..0000000000 --- a/tests/test_models/test_losses.py +++ /dev/null @@ -1,233 +0,0 @@ -import numpy as np -import pytest -import torch - -from mmseg.models.losses import Accuracy, reduce_loss, weight_reduce_loss - - -def test_utils(): - loss = torch.rand(1, 3, 4, 4) - weight = torch.zeros(1, 3, 4, 4) - weight[:, :, :2, :2] = 1 - - # test reduce_loss() - reduced = reduce_loss(loss, 'none') - assert reduced is loss - - reduced = reduce_loss(loss, 'mean') - np.testing.assert_almost_equal(reduced.numpy(), loss.mean()) - - reduced = reduce_loss(loss, 'sum') - np.testing.assert_almost_equal(reduced.numpy(), loss.sum()) - - # test weight_reduce_loss() - reduced = weight_reduce_loss(loss, weight=None, reduction='none') - assert reduced is loss - - reduced = weight_reduce_loss(loss, weight=weight, reduction='mean') - target = (loss * weight).mean() - np.testing.assert_almost_equal(reduced.numpy(), target) - - reduced = weight_reduce_loss(loss, weight=weight, reduction='sum') - np.testing.assert_almost_equal(reduced.numpy(), (loss * weight).sum()) - - with pytest.raises(AssertionError): - weight_wrong = weight[0, 0, ...] - weight_reduce_loss(loss, weight=weight_wrong, reduction='mean') - - with pytest.raises(AssertionError): - weight_wrong = weight[:, 0:2, ...] - weight_reduce_loss(loss, weight=weight_wrong, reduction='mean') - - -def test_ce_loss(): - from mmseg.models import build_loss - - # use_mask and use_sigmoid cannot be true at the same time - with pytest.raises(AssertionError): - loss_cfg = dict( - type='CrossEntropyLoss', - use_mask=True, - use_sigmoid=True, - loss_weight=1.0) - build_loss(loss_cfg) - - # test loss with class weights - loss_cls_cfg = dict( - type='CrossEntropyLoss', - use_sigmoid=False, - class_weight=[0.8, 0.2], - loss_weight=1.0) - loss_cls = build_loss(loss_cls_cfg) - fake_pred = torch.Tensor([[100, -100]]) - fake_label = torch.Tensor([1]).long() - assert torch.allclose(loss_cls(fake_pred, fake_label), torch.tensor(40.)) - - loss_cls_cfg = dict( - type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0) - loss_cls = build_loss(loss_cls_cfg) - assert torch.allclose(loss_cls(fake_pred, fake_label), torch.tensor(200.)) - - loss_cls_cfg = dict( - type='CrossEntropyLoss', use_sigmoid=True, loss_weight=1.0) - loss_cls = build_loss(loss_cls_cfg) - assert torch.allclose(loss_cls(fake_pred, fake_label), torch.tensor(100.)) - - fake_pred = torch.full(size=(2, 21, 8, 8), fill_value=0.5) - fake_label = torch.ones(2, 8, 8).long() - assert torch.allclose( - loss_cls(fake_pred, fake_label), torch.tensor(0.9503), atol=1e-4) - fake_label[:, 0, 0] = 255 - assert torch.allclose( - loss_cls(fake_pred, fake_label, ignore_index=255), - torch.tensor(0.9354), - atol=1e-4) - - # TODO test use_mask - - -def test_accuracy(): - # test for empty pred - pred = torch.empty(0, 4) - label = torch.empty(0) - accuracy = Accuracy(topk=1) - acc = accuracy(pred, label) - assert acc.item() == 0 - - pred = torch.Tensor([[0.2, 0.3, 0.6, 0.5], [0.1, 0.1, 0.2, 0.6], - [0.9, 0.0, 0.0, 0.1], [0.4, 0.7, 0.1, 0.1], - [0.0, 0.0, 0.99, 0]]) - # test for top1 - true_label = torch.Tensor([2, 3, 0, 1, 2]).long() - accuracy = Accuracy(topk=1) - acc = accuracy(pred, true_label) - assert acc.item() == 100 - - # test for top1 with score thresh=0.8 - true_label = torch.Tensor([2, 3, 0, 1, 2]).long() - accuracy = Accuracy(topk=1, thresh=0.8) - acc = accuracy(pred, true_label) - assert acc.item() == 40 - - # test for top2 - accuracy = Accuracy(topk=2) - label = torch.Tensor([3, 2, 0, 0, 2]).long() - acc = accuracy(pred, label) - assert acc.item() == 100 - - # test for both top1 and top2 - accuracy = Accuracy(topk=(1, 2)) - true_label = torch.Tensor([2, 3, 0, 1, 2]).long() - acc = accuracy(pred, true_label) - for a in acc: - assert a.item() == 100 - - # topk is larger than pred class number - with pytest.raises(AssertionError): - accuracy = Accuracy(topk=5) - accuracy(pred, true_label) - - # wrong topk type - with pytest.raises(AssertionError): - accuracy = Accuracy(topk='wrong type') - accuracy(pred, true_label) - - # label size is larger than required - with pytest.raises(AssertionError): - label = torch.Tensor([2, 3, 0, 1, 2, 0]).long() # size mismatch - accuracy = Accuracy() - accuracy(pred, label) - - # wrong pred dimension - with pytest.raises(AssertionError): - accuracy = Accuracy() - accuracy(pred[:, :, None], true_label) - - -def test_lovasz_loss(): - from mmseg.models import build_loss - - # loss_type should be 'binary' or 'multi_class' - with pytest.raises(AssertionError): - loss_cfg = dict( - type='LovaszLoss', - loss_type='Binary', - reduction='none', - loss_weight=1.0) - build_loss(loss_cfg) - - # reduction should be 'none' when per_image is False. - with pytest.raises(AssertionError): - loss_cfg = dict(type='LovaszLoss', loss_type='multi_class') - build_loss(loss_cfg) - - # test lovasz loss with loss_type = 'multi_class' and per_image = False - loss_cfg = dict(type='LovaszLoss', reduction='none', loss_weight=1.0) - lovasz_loss = build_loss(loss_cfg) - logits = torch.rand(1, 3, 4, 4) - labels = (torch.rand(1, 4, 4) * 2).long() - lovasz_loss(logits, labels) - - # test lovasz loss with loss_type = 'multi_class' and per_image = True - loss_cfg = dict( - type='LovaszLoss', - per_image=True, - reduction='mean', - class_weight=[1.0, 2.0, 3.0], - loss_weight=1.0) - lovasz_loss = build_loss(loss_cfg) - logits = torch.rand(1, 3, 4, 4) - labels = (torch.rand(1, 4, 4) * 2).long() - lovasz_loss(logits, labels, ignore_index=None) - - # test lovasz loss with loss_type = 'binary' and per_image = False - loss_cfg = dict( - type='LovaszLoss', - loss_type='binary', - reduction='none', - loss_weight=1.0) - lovasz_loss = build_loss(loss_cfg) - logits = torch.rand(2, 4, 4) - labels = (torch.rand(2, 4, 4)).long() - lovasz_loss(logits, labels) - - # test lovasz loss with loss_type = 'binary' and per_image = True - loss_cfg = dict( - type='LovaszLoss', - loss_type='binary', - per_image=True, - reduction='mean', - loss_weight=1.0) - lovasz_loss = build_loss(loss_cfg) - logits = torch.rand(2, 4, 4) - labels = (torch.rand(2, 4, 4)).long() - lovasz_loss(logits, labels, ignore_index=None) - - -def test_dice_lose(): - from mmseg.models import build_loss - - # test dice loss with loss_type = 'multi_class' - loss_cfg = dict( - type='DiceLoss', - reduction='none', - class_weight=[1.0, 2.0, 3.0], - loss_weight=1.0, - ignore_index=1) - dice_loss = build_loss(loss_cfg) - logits = torch.rand(8, 3, 4, 4) - labels = (torch.rand(8, 4, 4) * 3).long() - dice_loss(logits, labels) - - # test dice loss with loss_type = 'binary' - loss_cfg = dict( - type='DiceLoss', - smooth=2, - exponent=3, - reduction='sum', - loss_weight=1.0, - ignore_index=0) - dice_loss = build_loss(loss_cfg) - logits = torch.rand(8, 2, 4, 4) - labels = (torch.rand(8, 4, 4) * 2).long() - dice_loss(logits, labels) diff --git a/tests/test_models/test_losses/__init__.py b/tests/test_models/test_losses/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/test_models/test_losses/test_ce_loss.py b/tests/test_models/test_losses/test_ce_loss.py new file mode 100644 index 0000000000..35ef84348d --- /dev/null +++ b/tests/test_models/test_losses/test_ce_loss.py @@ -0,0 +1,48 @@ +import pytest +import torch + + +def test_ce_loss(): + from mmseg.models import build_loss + + # use_mask and use_sigmoid cannot be true at the same time + with pytest.raises(AssertionError): + loss_cfg = dict( + type='CrossEntropyLoss', + use_mask=True, + use_sigmoid=True, + loss_weight=1.0) + build_loss(loss_cfg) + + # test loss with class weights + loss_cls_cfg = dict( + type='CrossEntropyLoss', + use_sigmoid=False, + class_weight=[0.8, 0.2], + loss_weight=1.0) + loss_cls = build_loss(loss_cls_cfg) + fake_pred = torch.Tensor([[100, -100]]) + fake_label = torch.Tensor([1]).long() + assert torch.allclose(loss_cls(fake_pred, fake_label), torch.tensor(40.)) + + loss_cls_cfg = dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0) + loss_cls = build_loss(loss_cls_cfg) + assert torch.allclose(loss_cls(fake_pred, fake_label), torch.tensor(200.)) + + loss_cls_cfg = dict( + type='CrossEntropyLoss', use_sigmoid=True, loss_weight=1.0) + loss_cls = build_loss(loss_cls_cfg) + assert torch.allclose(loss_cls(fake_pred, fake_label), torch.tensor(100.)) + + fake_pred = torch.full(size=(2, 21, 8, 8), fill_value=0.5) + fake_label = torch.ones(2, 8, 8).long() + assert torch.allclose( + loss_cls(fake_pred, fake_label), torch.tensor(0.9503), atol=1e-4) + fake_label[:, 0, 0] = 255 + assert torch.allclose( + loss_cls(fake_pred, fake_label, ignore_index=255), + torch.tensor(0.9354), + atol=1e-4) + + # TODO test use_mask diff --git a/tests/test_models/test_losses/test_dice_loss.py b/tests/test_models/test_losses/test_dice_loss.py new file mode 100644 index 0000000000..94b9faab71 --- /dev/null +++ b/tests/test_models/test_losses/test_dice_loss.py @@ -0,0 +1,30 @@ +import torch + + +def test_dice_lose(): + from mmseg.models import build_loss + + # test dice loss with loss_type = 'multi_class' + loss_cfg = dict( + type='DiceLoss', + reduction='none', + class_weight=[1.0, 2.0, 3.0], + loss_weight=1.0, + ignore_index=1) + dice_loss = build_loss(loss_cfg) + logits = torch.rand(8, 3, 4, 4) + labels = (torch.rand(8, 4, 4) * 3).long() + dice_loss(logits, labels) + + # test dice loss with loss_type = 'binary' + loss_cfg = dict( + type='DiceLoss', + smooth=2, + exponent=3, + reduction='sum', + loss_weight=1.0, + ignore_index=0) + dice_loss = build_loss(loss_cfg) + logits = torch.rand(8, 2, 4, 4) + labels = (torch.rand(8, 4, 4) * 2).long() + dice_loss(logits, labels) diff --git a/tests/test_models/test_losses/test_lovasz_loss.py b/tests/test_models/test_losses/test_lovasz_loss.py new file mode 100644 index 0000000000..e11dd613fa --- /dev/null +++ b/tests/test_models/test_losses/test_lovasz_loss.py @@ -0,0 +1,62 @@ +import pytest +import torch + + +def test_lovasz_loss(): + from mmseg.models import build_loss + + # loss_type should be 'binary' or 'multi_class' + with pytest.raises(AssertionError): + loss_cfg = dict( + type='LovaszLoss', + loss_type='Binary', + reduction='none', + loss_weight=1.0) + build_loss(loss_cfg) + + # reduction should be 'none' when per_image is False. + with pytest.raises(AssertionError): + loss_cfg = dict(type='LovaszLoss', loss_type='multi_class') + build_loss(loss_cfg) + + # test lovasz loss with loss_type = 'multi_class' and per_image = False + loss_cfg = dict(type='LovaszLoss', reduction='none', loss_weight=1.0) + lovasz_loss = build_loss(loss_cfg) + logits = torch.rand(1, 3, 4, 4) + labels = (torch.rand(1, 4, 4) * 2).long() + lovasz_loss(logits, labels) + + # test lovasz loss with loss_type = 'multi_class' and per_image = True + loss_cfg = dict( + type='LovaszLoss', + per_image=True, + reduction='mean', + class_weight=[1.0, 2.0, 3.0], + loss_weight=1.0) + lovasz_loss = build_loss(loss_cfg) + logits = torch.rand(1, 3, 4, 4) + labels = (torch.rand(1, 4, 4) * 2).long() + lovasz_loss(logits, labels, ignore_index=None) + + # test lovasz loss with loss_type = 'binary' and per_image = False + loss_cfg = dict( + type='LovaszLoss', + loss_type='binary', + reduction='none', + loss_weight=1.0) + lovasz_loss = build_loss(loss_cfg) + logits = torch.rand(2, 4, 4) + labels = (torch.rand(2, 4, 4)).long() + lovasz_loss(logits, labels) + + # test lovasz loss with loss_type = 'binary' and per_image = True + loss_cfg = dict( + type='LovaszLoss', + loss_type='binary', + per_image=True, + reduction='mean', + loss_weight=1.0) + lovasz_loss = build_loss(loss_cfg) + logits = torch.rand(2, 4, 4) + labels = (torch.rand(2, 4, 4)).long() + lovasz_loss(logits, labels, ignore_index=None) diff --git a/tests/test_models/test_losses/test_utils.py b/tests/test_models/test_losses/test_utils.py new file mode 100644 index 0000000000..a5251e49fb --- /dev/null +++ b/tests/test_models/test_losses/test_utils.py @@ -0,0 +1,98 @@ +import numpy as np +import pytest +import torch + +from mmseg.models.losses import Accuracy, reduce_loss, weight_reduce_loss + + +def test_weight_reduce_loss(): + loss = torch.rand(1, 3, 4, 4) + weight = torch.zeros(1, 3, 4, 4) + weight[:, :, :2, :2] = 1 + + # test reduce_loss() + reduced = reduce_loss(loss, 'none') + assert reduced is loss + + reduced = reduce_loss(loss, 'mean') + np.testing.assert_almost_equal(reduced.numpy(), loss.mean()) + + reduced = reduce_loss(loss, 'sum') + np.testing.assert_almost_equal(reduced.numpy(), loss.sum()) + + # test weight_reduce_loss() + reduced = weight_reduce_loss(loss, weight=None, reduction='none') + assert reduced is loss + + reduced = weight_reduce_loss(loss, weight=weight, reduction='mean') + target = (loss * weight).mean() + np.testing.assert_almost_equal(reduced.numpy(), target) + + reduced = weight_reduce_loss(loss, weight=weight, reduction='sum') + np.testing.assert_almost_equal(reduced.numpy(), (loss * weight).sum()) + + with pytest.raises(AssertionError): + weight_wrong = weight[0, 0, ...] + weight_reduce_loss(loss, weight=weight_wrong, reduction='mean') + + with pytest.raises(AssertionError): + weight_wrong = weight[:, 0:2, ...] + weight_reduce_loss(loss, weight=weight_wrong, reduction='mean') + + +def test_accuracy(): + # test for empty pred + pred = torch.empty(0, 4) + label = torch.empty(0) + accuracy = Accuracy(topk=1) + acc = accuracy(pred, label) + assert acc.item() == 0 + + pred = torch.Tensor([[0.2, 0.3, 0.6, 0.5], [0.1, 0.1, 0.2, 0.6], + [0.9, 0.0, 0.0, 0.1], [0.4, 0.7, 0.1, 0.1], + [0.0, 0.0, 0.99, 0]]) + # test for top1 + true_label = torch.Tensor([2, 3, 0, 1, 2]).long() + accuracy = Accuracy(topk=1) + acc = accuracy(pred, true_label) + assert acc.item() == 100 + + # test for top1 with score thresh=0.8 + true_label = torch.Tensor([2, 3, 0, 1, 2]).long() + accuracy = Accuracy(topk=1, thresh=0.8) + acc = accuracy(pred, true_label) + assert acc.item() == 40 + + # test for top2 + accuracy = Accuracy(topk=2) + label = torch.Tensor([3, 2, 0, 0, 2]).long() + acc = accuracy(pred, label) + assert acc.item() == 100 + + # test for both top1 and top2 + accuracy = Accuracy(topk=(1, 2)) + true_label = torch.Tensor([2, 3, 0, 1, 2]).long() + acc = accuracy(pred, true_label) + for a in acc: + assert a.item() == 100 + + # topk is larger than pred class number + with pytest.raises(AssertionError): + accuracy = Accuracy(topk=5) + accuracy(pred, true_label) + + # wrong topk type + with pytest.raises(AssertionError): + accuracy = Accuracy(topk='wrong type') + accuracy(pred, true_label) + + # label size is larger than required + with pytest.raises(AssertionError): + label = torch.Tensor([2, 3, 0, 1, 2, 0]).long() # size mismatch + accuracy = Accuracy() + accuracy(pred, label) + + # wrong pred dimension + with pytest.raises(AssertionError): + accuracy = Accuracy() + accuracy(pred[:, :, None], true_label) diff --git a/tests/test_models/test_necks/__init__.py b/tests/test_models/test_necks/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/test_models/test_necks.py b/tests/test_models/test_necks/test_fpn.py similarity index 100% rename from tests/test_models/test_necks.py rename to tests/test_models/test_necks/test_fpn.py diff --git a/tests/test_models/test_segmentors/__init__.py b/tests/test_models/test_segmentors/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/test_models/test_segmentors/test_cascade_encoder_decoder.py b/tests/test_models/test_segmentors/test_cascade_encoder_decoder.py new file mode 100644 index 0000000000..142e81f122 --- /dev/null +++ b/tests/test_models/test_segmentors/test_cascade_encoder_decoder.py @@ -0,0 +1,56 @@ +from mmcv import ConfigDict + +from mmseg.models import build_segmentor +from .utils import _segmentor_forward_train_test + + +def test_cascade_encoder_decoder(): + + # test 1 decode head, w.o. aux head + cfg = ConfigDict( + type='CascadeEncoderDecoder', + num_stages=2, + backbone=dict(type='ExampleBackbone'), + decode_head=[ + dict(type='ExampleDecodeHead'), + dict(type='ExampleCascadeDecodeHead') + ]) + cfg.test_cfg = ConfigDict(mode='whole') + segmentor = build_segmentor(cfg) + _segmentor_forward_train_test(segmentor) + + # test slide mode + cfg.test_cfg = ConfigDict(mode='slide', crop_size=(3, 3), stride=(2, 2)) + segmentor = build_segmentor(cfg) + _segmentor_forward_train_test(segmentor) + + # test 1 decode head, 1 aux head + cfg = ConfigDict( + type='CascadeEncoderDecoder', + num_stages=2, + backbone=dict(type='ExampleBackbone'), + decode_head=[ + dict(type='ExampleDecodeHead'), + dict(type='ExampleCascadeDecodeHead') + ], + auxiliary_head=dict(type='ExampleDecodeHead')) + cfg.test_cfg = ConfigDict(mode='whole') + segmentor = build_segmentor(cfg) + _segmentor_forward_train_test(segmentor) + + # test 1 decode head, 2 aux head + cfg = ConfigDict( + type='CascadeEncoderDecoder', + num_stages=2, + backbone=dict(type='ExampleBackbone'), + decode_head=[ + dict(type='ExampleDecodeHead'), + dict(type='ExampleCascadeDecodeHead') + ], + auxiliary_head=[ + dict(type='ExampleDecodeHead'), + dict(type='ExampleDecodeHead') + ]) + cfg.test_cfg = ConfigDict(mode='whole') + segmentor = build_segmentor(cfg) + _segmentor_forward_train_test(segmentor) diff --git a/tests/test_models/test_segmentors/test_encoder_decoder.py b/tests/test_models/test_segmentors/test_encoder_decoder.py new file mode 100644 index 0000000000..f40c4ea473 --- /dev/null +++ b/tests/test_models/test_segmentors/test_encoder_decoder.py @@ -0,0 +1,46 @@ +from mmcv import ConfigDict + +from mmseg.models import build_segmentor +from .utils import _segmentor_forward_train_test + + +def test_encoder_decoder(): + + # test 1 decode head, w.o. aux head + + cfg = ConfigDict( + type='EncoderDecoder', + backbone=dict(type='ExampleBackbone'), + decode_head=dict(type='ExampleDecodeHead'), + train_cfg=None, + test_cfg=dict(mode='whole')) + segmentor = build_segmentor(cfg) + _segmentor_forward_train_test(segmentor) + + # test slide mode + cfg.test_cfg = ConfigDict(mode='slide', crop_size=(3, 3), stride=(2, 2)) + segmentor = build_segmentor(cfg) + _segmentor_forward_train_test(segmentor) + + # test 1 decode head, 1 aux head + cfg = ConfigDict( + type='EncoderDecoder', + backbone=dict(type='ExampleBackbone'), + decode_head=dict(type='ExampleDecodeHead'), + auxiliary_head=dict(type='ExampleDecodeHead')) + cfg.test_cfg = ConfigDict(mode='whole') + segmentor = build_segmentor(cfg) + _segmentor_forward_train_test(segmentor) + + # test 1 decode head, 2 aux head + cfg = ConfigDict( + type='EncoderDecoder', + backbone=dict(type='ExampleBackbone'), + decode_head=dict(type='ExampleDecodeHead'), + auxiliary_head=[ + dict(type='ExampleDecodeHead'), + dict(type='ExampleDecodeHead') + ]) + cfg.test_cfg = ConfigDict(mode='whole') + segmentor = build_segmentor(cfg) + _segmentor_forward_train_test(segmentor) diff --git a/tests/test_models/test_segmentor.py b/tests/test_models/test_segmentors/utils.py similarity index 52% rename from tests/test_models/test_segmentor.py rename to tests/test_models/test_segmentors/utils.py index 90d3bf6314..cfe9a17da2 100644 --- a/tests/test_models/test_segmentor.py +++ b/tests/test_models/test_segmentors/utils.py @@ -1,9 +1,8 @@ import numpy as np import torch -from mmcv import ConfigDict from torch import nn -from mmseg.models import BACKBONES, HEADS, build_segmentor +from mmseg.models import BACKBONES, HEADS from mmseg.models.decode_heads.cascade_decode_head import BaseCascadeDecodeHead from mmseg.models.decode_heads.decode_head import BaseDecodeHead @@ -118,97 +117,3 @@ def _segmentor_forward_train_test(segmentor): img_meta_list = [[img_meta] for img_meta in img_metas] img_meta_list = img_meta_list + img_meta_list segmentor.forward(img_list, img_meta_list, return_loss=False) - - -def test_encoder_decoder(): - - # test 1 decode head, w.o. aux head - - cfg = ConfigDict( - type='EncoderDecoder', - backbone=dict(type='ExampleBackbone'), - decode_head=dict(type='ExampleDecodeHead'), - train_cfg=None, - test_cfg=dict(mode='whole')) - segmentor = build_segmentor(cfg) - _segmentor_forward_train_test(segmentor) - - # test slide mode - cfg.test_cfg = ConfigDict(mode='slide', crop_size=(3, 3), stride=(2, 2)) - segmentor = build_segmentor(cfg) - _segmentor_forward_train_test(segmentor) - - # test 1 decode head, 1 aux head - cfg = ConfigDict( - type='EncoderDecoder', - backbone=dict(type='ExampleBackbone'), - decode_head=dict(type='ExampleDecodeHead'), - auxiliary_head=dict(type='ExampleDecodeHead')) - cfg.test_cfg = ConfigDict(mode='whole') - segmentor = build_segmentor(cfg) - _segmentor_forward_train_test(segmentor) - - # test 1 decode head, 2 aux head - cfg = ConfigDict( - type='EncoderDecoder', - backbone=dict(type='ExampleBackbone'), - decode_head=dict(type='ExampleDecodeHead'), - auxiliary_head=[ - dict(type='ExampleDecodeHead'), - dict(type='ExampleDecodeHead') - ]) - cfg.test_cfg = ConfigDict(mode='whole') - segmentor = build_segmentor(cfg) - _segmentor_forward_train_test(segmentor) - - -def test_cascade_encoder_decoder(): - - # test 1 decode head, w.o. aux head - cfg = ConfigDict( - type='CascadeEncoderDecoder', - num_stages=2, - backbone=dict(type='ExampleBackbone'), - decode_head=[ - dict(type='ExampleDecodeHead'), - dict(type='ExampleCascadeDecodeHead') - ]) - cfg.test_cfg = ConfigDict(mode='whole') - segmentor = build_segmentor(cfg) - _segmentor_forward_train_test(segmentor) - - # test slide mode - cfg.test_cfg = ConfigDict(mode='slide', crop_size=(3, 3), stride=(2, 2)) - segmentor = build_segmentor(cfg) - _segmentor_forward_train_test(segmentor) - - # test 1 decode head, 1 aux head - cfg = ConfigDict( - type='CascadeEncoderDecoder', - num_stages=2, - backbone=dict(type='ExampleBackbone'), - decode_head=[ - dict(type='ExampleDecodeHead'), - dict(type='ExampleCascadeDecodeHead') - ], - auxiliary_head=dict(type='ExampleDecodeHead')) - cfg.test_cfg = ConfigDict(mode='whole') - segmentor = build_segmentor(cfg) - _segmentor_forward_train_test(segmentor) - - # test 1 decode head, 2 aux head - cfg = ConfigDict( - type='CascadeEncoderDecoder', - num_stages=2, - backbone=dict(type='ExampleBackbone'), - decode_head=[ - dict(type='ExampleDecodeHead'), - dict(type='ExampleCascadeDecodeHead') - ], - auxiliary_head=[ - dict(type='ExampleDecodeHead'), - dict(type='ExampleDecodeHead') - ]) - cfg.test_cfg = ConfigDict(mode='whole') - segmentor = build_segmentor(cfg) - _segmentor_forward_train_test(segmentor) diff --git a/tests/test_utils/test_make_divisible.py b/tests/test_utils/test_make_divisible.py deleted file mode 100644 index 5e9d1062ff..0000000000 --- a/tests/test_utils/test_make_divisible.py +++ /dev/null @@ -1,13 +0,0 @@ -from mmseg.models.utils import make_divisible - - -def test_make_divisible(): - # test with min_value = None - assert make_divisible(10, 4) == 12 - assert make_divisible(9, 4) == 12 - assert make_divisible(1, 4) == 4 - - # test with min_value = 8 - assert make_divisible(10, 4, 8) == 12 - assert make_divisible(9, 4, 8) == 12 - assert make_divisible(1, 4, 8) == 8 diff --git a/tests/test_utils/test_se_layer.py b/tests/test_utils/test_se_layer.py deleted file mode 100644 index 8bba7b33b9..0000000000 --- a/tests/test_utils/test_se_layer.py +++ /dev/null @@ -1,41 +0,0 @@ -import mmcv -import pytest -import torch - -from mmseg.models.utils.se_layer import SELayer - - -def test_se_layer(): - with pytest.raises(AssertionError): - # test act_cfg assertion. - SELayer(32, act_cfg=(dict(type='ReLU'), )) - - # test config with channels = 16. - se_layer = SELayer(16) - assert se_layer.conv1.conv.kernel_size == (1, 1) - assert se_layer.conv1.conv.stride == (1, 1) - assert se_layer.conv1.conv.padding == (0, 0) - assert isinstance(se_layer.conv1.activate, torch.nn.ReLU) - assert se_layer.conv2.conv.kernel_size == (1, 1) - assert se_layer.conv2.conv.stride == (1, 1) - assert se_layer.conv2.conv.padding == (0, 0) - assert isinstance(se_layer.conv2.activate, mmcv.cnn.HSigmoid) - - x = torch.rand(1, 16, 64, 64) - output = se_layer(x) - assert output.shape == (1, 16, 64, 64) - - # test config with channels = 16, act_cfg = dict(type='ReLU'). - se_layer = SELayer(16, act_cfg=dict(type='ReLU')) - assert se_layer.conv1.conv.kernel_size == (1, 1) - assert se_layer.conv1.conv.stride == (1, 1) - assert se_layer.conv1.conv.padding == (0, 0) - assert isinstance(se_layer.conv1.activate, torch.nn.ReLU) - assert se_layer.conv2.conv.kernel_size == (1, 1) - assert se_layer.conv2.conv.stride == (1, 1) - assert se_layer.conv2.conv.padding == (0, 0) - assert isinstance(se_layer.conv2.activate, torch.nn.ReLU) - - x = torch.rand(1, 16, 64, 64) - output = se_layer(x) - assert output.shape == (1, 16, 64, 64) From ac2aab74e9e0b4e29c23eeec753503893352c1e4 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Sat, 3 Apr 2021 21:02:56 -0700 Subject: [PATCH 112/706] Bump to v0.12 (#455) --- README.md | 2 +- docs/changelog.md | 26 ++++++++++++++++++++++++++ mmseg/version.py | 2 +- 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ba4e76bf17..26f6c0623b 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ This project is released under the [Apache 2.0 license](LICENSE). ## Changelog -v0.11.0 was released in 02/02/2021. +v0.12.0 was released in 04/03/2021. Please refer to [changelog.md](docs/changelog.md) for details and release history. ## Benchmark and model zoo diff --git a/docs/changelog.md b/docs/changelog.md index faf1df3d21..db3d005f93 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,5 +1,31 @@ ## Changelog +### V0.12 (04/03/2021) + +**Highlights** + +- Support FCN-Dilate 6 model. +- Support Dice Loss. + +**Bug Fixes** + +- Fixed PhotoMetricDistortion Doc ([#388](https://github.com/open-mmlab/mmsegmentation/pull/388)) +- Fixed install scripts ([#399](https://github.com/open-mmlab/mmsegmentation/pull/399)) +- Fixed Dice Loss multi-class ([#417](https://github.com/open-mmlab/mmsegmentation/pull/417)) + +**New Features** + +- Support Dice Loss ([#396](https://github.com/open-mmlab/mmsegmentation/pull/396)) +- Add plot logs tool ([#426](https://github.com/open-mmlab/mmsegmentation/pull/426)) +- Add opacity option to show_result ([#425](https://github.com/open-mmlab/mmsegmentation/pull/425)) +- Speed up mIoU metric ([#430](https://github.com/open-mmlab/mmsegmentation/pull/430)) + +**Improvements** + +- Refactor unittest file structure ([#440](https://github.com/open-mmlab/mmsegmentation/pull/440)) +- Fix typos in the repo ([#449](https://github.com/open-mmlab/mmsegmentation/pull/449)) +- Include class-level metrics in the log ([#445](https://github.com/open-mmlab/mmsegmentation/pull/445)) + ### V0.11 (02/02/2021) **Highlights** diff --git a/mmseg/version.py b/mmseg/version.py index 41a08cf155..6a9a6dddab 100644 --- a/mmseg/version.py +++ b/mmseg/version.py @@ -1,6 +1,6 @@ # Copyright (c) Open-MMLab. All rights reserved. -__version__ = '0.11.0' +__version__ = '0.12.0' def parse_version_info(version_str): From fd486cdbc3ad0c04c1ca43a3403402b22a271ac8 Mon Sep 17 00:00:00 2001 From: sshuair Date: Wed, 7 Apr 2021 06:14:54 +0800 Subject: [PATCH 113/706] add print model graph args for tools/print_config.py (#451) * add print model graph for print_config tool * add print model graph for print_config tool * fix double quoted * fix iosort --- tools/print_config.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tools/print_config.py b/tools/print_config.py index 2a0c67780a..88984e420b 100644 --- a/tools/print_config.py +++ b/tools/print_config.py @@ -2,10 +2,14 @@ from mmcv import Config, DictAction +from mmseg.apis import init_segmentor + def parse_args(): parser = argparse.ArgumentParser(description='Print the whole config') parser.add_argument('config', help='config file path') + parser.add_argument( + '--graph', action='store_true', help='print the models graph') parser.add_argument( '--options', nargs='+', action=DictAction, help='arguments in dict') args = parser.parse_args() @@ -22,6 +26,12 @@ def main(): print(f'Config:\n{cfg.pretty_text}') # dump config cfg.dump('example.py') + # dump models graph + if args.graph: + model = init_segmentor(args.config, device='cpu') + print(f'Model graph:\n{str(model)}') + with open('example-graph.txt', 'w') as f: + f.writelines(str(model)) if __name__ == '__main__': From 99ab9bd2d93e9cded0a76a32dcedef29bcaebb1a Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Wed, 7 Apr 2021 15:19:29 -0700 Subject: [PATCH 114/706] Fixed Colaboratory Tutorial --- demo/MMSegmentation_Tutorial.ipynb | 2396 ++++++++++++---------------- 1 file changed, 1040 insertions(+), 1356 deletions(-) diff --git a/demo/MMSegmentation_Tutorial.ipynb b/demo/MMSegmentation_Tutorial.ipynb index 127ad4e6a7..09bf6fa757 100644 --- a/demo/MMSegmentation_Tutorial.ipynb +++ b/demo/MMSegmentation_Tutorial.ipynb @@ -1,1416 +1,1100 @@ { - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "colab": { - "name": "MMSegmentation Tutorial.ipynb", - "provenance": [], - "collapsed_sections": [], - "include_colab_link": true - }, - "kernelspec": { - "name": "python3", - "display_name": "Python 3" + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "MMSegmentation Tutorial.ipynb", + "provenance": [], + "collapsed_sections": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "accelerator": "GPU", + "pycharm": { + "stem_cell": { + "cell_type": "raw", + "source": [], + "metadata": { + "collapsed": false + } + } + } }, - "accelerator": "GPU", - "widgets": { - "application/vnd.jupyter.widget-state+json": { - "40a3c0b2c7a44085b69b9c741df20b3e": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "state": { - "_view_name": "HBoxView", - "_dom_classes": [], - "_model_name": "HBoxModel", - "_view_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_view_count": null, - "_view_module_version": "1.5.0", - "box_style": "", - "layout": "IPY_MODEL_ec96fb4251ea4b8ea268a2bc62b9c75b", - "_model_module": "@jupyter-widgets/controls", - "children": [ - "IPY_MODEL_dae4b284c5a944639991d29f4e79fac5", - "IPY_MODEL_c78567afd0a6418781118ac9f4ecdea9" + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" ] - } }, - "ec96fb4251ea4b8ea268a2bc62b9c75b": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "state": { - "_view_name": "LayoutView", - "grid_template_rows": null, - "right": null, - "justify_content": null, - "_view_module": "@jupyter-widgets/base", - "overflow": null, - "_model_module_version": "1.2.0", - "_view_count": null, - "flex_flow": null, - "width": null, - "min_width": null, - "border": null, - "align_items": null, - "bottom": null, - "_model_module": "@jupyter-widgets/base", - "top": null, - "grid_column": null, - "overflow_y": null, - "overflow_x": null, - "grid_auto_flow": null, - "grid_area": null, - "grid_template_columns": null, - "flex": null, - "_model_name": "LayoutModel", - "justify_items": null, - "grid_row": null, - "max_height": null, - "align_content": null, - "visibility": null, - "align_self": null, - "height": null, - "min_height": null, - "padding": null, - "grid_auto_rows": null, - "grid_gap": null, - "max_width": null, - "order": null, - "_view_module_version": "1.2.0", - "grid_template_areas": null, - "object_position": null, - "object_fit": null, - "grid_auto_columns": null, - "margin": null, - "display": null, - "left": null - } + { + "cell_type": "markdown", + "metadata": { + "id": "FVmnaxFJvsb8" + }, + "source": [ + "# MMSegmentation Tutorial\n", + "Welcome to MMSegmentation! \n", + "\n", + "In this tutorial, we demo\n", + "* How to do inference with MMSeg trained weight\n", + "* How to train on your own dataset and visualize the results. " + ] }, - "dae4b284c5a944639991d29f4e79fac5": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "state": { - "_view_name": "ProgressView", - "style": "IPY_MODEL_32b7d27a143c41b5bb90f1d8e66a1c67", - "_dom_classes": [], - "description": "100%", - "_model_name": "FloatProgressModel", - "bar_style": "success", - "max": 102567401, - "_view_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "value": 102567401, - "_view_count": null, - "_view_module_version": "1.5.0", - "orientation": "horizontal", - "min": 0, - "description_tooltip": null, - "_model_module": "@jupyter-widgets/controls", - "layout": "IPY_MODEL_55d75951f51c4ab89e32045c3d6db8a4" - } + { + "cell_type": "markdown", + "metadata": { + "id": "QS8YHrEhbpas" + }, + "source": [ + "## Install MMSegmentation\n", + "This step may take several minutes. \n", + "\n", + "We use PyTorch 1.5.0 and CUDA 10.1 for this tutorial. You may install other versions by change the version number in pip install command. " + ] }, - "c78567afd0a6418781118ac9f4ecdea9": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "state": { - "_view_name": "HTMLView", - "style": "IPY_MODEL_9d29e2d02731416d9852e9c7c08d1665", - "_dom_classes": [], - "description": "", - "_model_name": "HTMLModel", - "placeholder": "​", - "_view_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "value": " 97.8M/97.8M [00:10<00:00, 9.75MB/s]", - "_view_count": null, - "_view_module_version": "1.5.0", - "description_tooltip": null, - "_model_module": "@jupyter-widgets/controls", - "layout": "IPY_MODEL_1bb2b93526cd421aa5d5b86d678932ab" - } + { + "cell_type": "code", + "metadata": { + "id": "UWyLrLYaNEaL", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "32a47fe3-f10d-47a1-f6b9-b7c235abdab1" + }, + "source": [ + "# Check nvcc version\n", + "!nvcc -V\n", + "# Check GCC version\n", + "!gcc --version" + ], + "execution_count": 1, + "outputs": [ + { + "output_type": "stream", + "text": [ + "nvcc: NVIDIA (R) Cuda compiler driver\n", + "Copyright (c) 2005-2020 NVIDIA Corporation\n", + "Built on Wed_Jul_22_19:09:09_PDT_2020\n", + "Cuda compilation tools, release 11.0, V11.0.221\n", + "Build cuda_11.0_bu.TC445_37.28845127_0\n", + "gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0\n", + "Copyright (C) 2017 Free Software Foundation, Inc.\n", + "This is free software; see the source for copying conditions. There is NO\n", + "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n", + "\n" + ], + "name": "stdout" + } + ] }, - "32b7d27a143c41b5bb90f1d8e66a1c67": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "state": { - "_view_name": "StyleView", - "_model_name": "ProgressStyleModel", - "description_width": "initial", - "_view_module": "@jupyter-widgets/base", - "_model_module_version": "1.5.0", - "_view_count": null, - "_view_module_version": "1.2.0", - "bar_color": null, - "_model_module": "@jupyter-widgets/controls" - } + { + "cell_type": "code", + "metadata": { + "id": "Ki3WUBjKbutg", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "14bd14b0-4d8c-4fa9-e3f9-da35c0efc0d5" + }, + "source": [ + "# Install PyTorch\n", + "!pip install -U torch==1.5.0+cu101 torchvision==0.6.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html\n", + "# Install MMCV\n", + "!pip install mmcv-full==latest+torch1.5.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html" + ], + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Looking in links: https://download.pytorch.org/whl/torch_stable.html\n", + "Requirement already up-to-date: torch==1.5.0+cu101 in /usr/local/lib/python3.7/dist-packages (1.5.0+cu101)\n", + "Requirement already up-to-date: torchvision==0.6.0+cu101 in /usr/local/lib/python3.7/dist-packages (0.6.0+cu101)\n", + "Requirement already satisfied, skipping upgrade: numpy in /usr/local/lib/python3.7/dist-packages (from torch==1.5.0+cu101) (1.19.5)\n", + "Requirement already satisfied, skipping upgrade: future in /usr/local/lib/python3.7/dist-packages (from torch==1.5.0+cu101) (0.16.0)\n", + "Requirement already satisfied, skipping upgrade: pillow>=4.1.1 in /usr/local/lib/python3.7/dist-packages (from torchvision==0.6.0+cu101) (7.1.2)\n", + "Looking in links: https://download.openmmlab.com/mmcv/dist/index.html\n", + "Collecting mmcv-full==latest+torch1.5.0+cu101\n", + " Using cached https://download.openmmlab.com/mmcv/dist/1.3.0/torch1.5.0/cu101/mmcv_full-latest%2Btorch1.5.0%2Bcu101-cp37-cp37m-manylinux1_x86_64.whl\n", + "Requirement already satisfied: Pillow in /usr/local/lib/python3.7/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (7.1.2)\n", + "Requirement already satisfied: addict in /usr/local/lib/python3.7/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (2.4.0)\n", + "Requirement already satisfied: yapf in /usr/local/lib/python3.7/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (0.31.0)\n", + "Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (1.19.5)\n", + "Requirement already satisfied: opencv-python>=3 in /usr/local/lib/python3.7/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (4.1.2.30)\n", + "Requirement already satisfied: pyyaml in /usr/local/lib/python3.7/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (3.13)\n", + "Installing collected packages: mmcv-full\n", + " Found existing installation: mmcv-full 1.3.0\n", + " Uninstalling mmcv-full-1.3.0:\n", + " Successfully uninstalled mmcv-full-1.3.0\n", + "Successfully installed mmcv-full-1.3.0\n" + ], + "name": "stdout" + } + ] }, - "55d75951f51c4ab89e32045c3d6db8a4": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "state": { - "_view_name": "LayoutView", - "grid_template_rows": null, - "right": null, - "justify_content": null, - "_view_module": "@jupyter-widgets/base", - "overflow": null, - "_model_module_version": "1.2.0", - "_view_count": null, - "flex_flow": null, - "width": null, - "min_width": null, - "border": null, - "align_items": null, - "bottom": null, - "_model_module": "@jupyter-widgets/base", - "top": null, - "grid_column": null, - "overflow_y": null, - "overflow_x": null, - "grid_auto_flow": null, - "grid_area": null, - "grid_template_columns": null, - "flex": null, - "_model_name": "LayoutModel", - "justify_items": null, - "grid_row": null, - "max_height": null, - "align_content": null, - "visibility": null, - "align_self": null, - "height": null, - "min_height": null, - "padding": null, - "grid_auto_rows": null, - "grid_gap": null, - "max_width": null, - "order": null, - "_view_module_version": "1.2.0", - "grid_template_areas": null, - "object_position": null, - "object_fit": null, - "grid_auto_columns": null, - "margin": null, - "display": null, - "left": null - } + { + "cell_type": "code", + "metadata": { + "id": "nR-hHRvbNJJZ", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "10c3b131-d4db-458c-fc10-b94b1c6ed546" + }, + "source": [ + "!rm -rf mmsegmentation\n", + "!git clone https://github.com/open-mmlab/mmsegmentation.git \n", + "%cd mmsegmentation\n", + "!pip install -e ." + ], + "execution_count": 3, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Cloning into 'mmsegmentation'...\n", + "remote: Enumerating objects: 64, done.\u001b[K\n", + "remote: Counting objects: 100% (64/64), done.\u001b[K\n", + "remote: Compressing objects: 100% (60/60), done.\u001b[K\n", + "remote: Total 2194 (delta 17), reused 12 (delta 4), pack-reused 2130\u001b[K\n", + "Receiving objects: 100% (2194/2194), 3.35 MiB | 26.82 MiB/s, done.\n", + "Resolving deltas: 100% (1536/1536), done.\n", + "/content/mmsegmentation\n", + "Obtaining file:///content/mmsegmentation\n", + "Requirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from mmsegmentation==0.12.0) (3.2.2)\n", + "Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from mmsegmentation==0.12.0) (1.19.5)\n", + "Requirement already satisfied: terminaltables in /usr/local/lib/python3.7/dist-packages (from mmsegmentation==0.12.0) (3.1.0)\n", + "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmsegmentation==0.12.0) (2.8.1)\n", + "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmsegmentation==0.12.0) (0.10.0)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmsegmentation==0.12.0) (1.3.1)\n", + "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmsegmentation==0.12.0) (2.4.7)\n", + "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.1->matplotlib->mmsegmentation==0.12.0) (1.15.0)\n", + "Installing collected packages: mmsegmentation\n", + " Found existing installation: mmsegmentation 0.12.0\n", + " Can't uninstall 'mmsegmentation'. No files were found to uninstall.\n", + " Running setup.py develop for mmsegmentation\n", + "Successfully installed mmsegmentation\n" + ], + "name": "stdout" + } + ] }, - "9d29e2d02731416d9852e9c7c08d1665": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "state": { - "_view_name": "StyleView", - "_model_name": "DescriptionStyleModel", - "description_width": "", - "_view_module": "@jupyter-widgets/base", - "_model_module_version": "1.5.0", - "_view_count": null, - "_view_module_version": "1.2.0", - "_model_module": "@jupyter-widgets/controls" - } + { + "cell_type": "code", + "metadata": { + "id": "mAE_h7XhPT7d", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "83bf0f8e-fc69-40b1-f9fe-0025724a217c" + }, + "source": [ + "# Check Pytorch installation\n", + "import torch, torchvision\n", + "print(torch.__version__, torch.cuda.is_available())\n", + "\n", + "# Check MMSegmentation installation\n", + "import mmseg\n", + "print(mmseg.__version__)" + ], + "execution_count": 4, + "outputs": [ + { + "output_type": "stream", + "text": [ + "1.5.0+cu101 True\n", + "0.12.0\n" + ], + "name": "stdout" + } + ] }, - "1bb2b93526cd421aa5d5b86d678932ab": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "state": { - "_view_name": "LayoutView", - "grid_template_rows": null, - "right": null, - "justify_content": null, - "_view_module": "@jupyter-widgets/base", - "overflow": null, - "_model_module_version": "1.2.0", - "_view_count": null, - "flex_flow": null, - "width": null, - "min_width": null, - "border": null, - "align_items": null, - "bottom": null, - "_model_module": "@jupyter-widgets/base", - "top": null, - "grid_column": null, - "overflow_y": null, - "overflow_x": null, - "grid_auto_flow": null, - "grid_area": null, - "grid_template_columns": null, - "flex": null, - "_model_name": "LayoutModel", - "justify_items": null, - "grid_row": null, - "max_height": null, - "align_content": null, - "visibility": null, - "align_self": null, - "height": null, - "min_height": null, - "padding": null, - "grid_auto_rows": null, - "grid_gap": null, - "max_width": null, - "order": null, - "_view_module_version": "1.2.0", - "grid_template_areas": null, - "object_position": null, - "object_fit": null, - "grid_auto_columns": null, - "margin": null, - "display": null, - "left": null - } - } - } - }, - "pycharm": { - "stem_cell": { - "cell_type": "raw", - "source": [], - "metadata": { - "collapsed": false - } - } - } - }, - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "view-in-github", - "colab_type": "text" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FVmnaxFJvsb8", - "colab_type": "text" - }, - "source": [ - "# MMSegmentation Tutorial\n", - "Welcome to MMSegmentation! \n", - "\n", - "In this tutorial, we demo\n", - "* How to do inference with MMSeg trained weight\n", - "* How to train on your own dataset and visualize the results. " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QS8YHrEhbpas", - "colab_type": "text" - }, - "source": [ - "## Install MMSegmentation\n", - "This step may take several minutes. \n", - "\n", - "We use PyTorch 1.5.0 and CUDA 10.1 for this tutorial. You may install other versions by change the version number in pip install command. " - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "UWyLrLYaNEaL", - "colab_type": "code", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 170 + { + "cell_type": "markdown", + "metadata": { + "id": "eUcuC3dUv32I" + }, + "source": [ + "## Run Inference with MMSeg trained weight" + ] }, - "outputId": "35b19c63-d6f3-49e1-dcaa-aed3ecd85ed7" - }, - "source": [ - "# Check nvcc version\n", - "!nvcc -V\n", - "# Check GCC version\n", - "!gcc --version" - ], - "execution_count": 1, - "outputs": [ { - "output_type": "stream", - "text": [ - "nvcc: NVIDIA (R) Cuda compiler driver\n", - "Copyright (c) 2005-2019 NVIDIA Corporation\n", - "Built on Sun_Jul_28_19:07:16_PDT_2019\n", - "Cuda compilation tools, release 10.1, V10.1.243\n", - "gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0\n", - "Copyright (C) 2017 Free Software Foundation, Inc.\n", - "This is free software; see the source for copying conditions. There is NO\n", - "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n", - "\n" - ], - "name": "stdout" - } - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "Ki3WUBjKbutg", - "colab_type": "code", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 340 + "cell_type": "code", + "metadata": { + "id": "2hd41IGaiNet", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "b7b2aafc-edf2-43e4-ea43-0b5dd0aa4b4a" + }, + "source": [ + "!mkdir checkpoints\n", + "!wget https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth -P checkpoints" + ], + "execution_count": 5, + "outputs": [ + { + "output_type": "stream", + "text": [ + "--2021-04-07 22:14:41-- https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth\n", + "Resolving open-mmlab.s3.ap-northeast-2.amazonaws.com (open-mmlab.s3.ap-northeast-2.amazonaws.com)... 52.219.58.127\n", + "Connecting to open-mmlab.s3.ap-northeast-2.amazonaws.com (open-mmlab.s3.ap-northeast-2.amazonaws.com)|52.219.58.127|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 196205945 (187M) [application/x-www-form-urlencoded]\n", + "Saving to: ‘checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth’\n", + "\n", + "pspnet_r50-d8_512x1 100%[===================>] 187.12M 15.8MB/s in 13s \n", + "\n", + "2021-04-07 22:14:54 (14.2 MB/s) - ‘checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth’ saved [196205945/196205945]\n", + "\n" + ], + "name": "stdout" + } + ] }, - "outputId": "69f42fab-3f44-44d0-bd62-b73836f90a3d" - }, - "source": [ - "# Install PyTorch\n", - "!pip install -U torch==1.5.0+cu101 torchvision==0.6.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html\n", - "# Install MMCV\n", - "!pip install mmcv-full==latest+torch1.5.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html" - ], - "execution_count": 2, - "outputs": [ { - "output_type": "stream", - "text": [ - "Looking in links: https://download.pytorch.org/whl/torch_stable.html\n", - "Requirement already up-to-date: torch==1.5.0+cu101 in /usr/local/lib/python3.6/dist-packages (1.5.0+cu101)\n", - "Requirement already up-to-date: torchvision==0.6.0+cu101 in /usr/local/lib/python3.6/dist-packages (0.6.0+cu101)\n", - "Requirement already satisfied, skipping upgrade: future in /usr/local/lib/python3.6/dist-packages (from torch==1.5.0+cu101) (0.16.0)\n", - "Requirement already satisfied, skipping upgrade: numpy in /usr/local/lib/python3.6/dist-packages (from torch==1.5.0+cu101) (1.18.5)\n", - "Requirement already satisfied, skipping upgrade: pillow>=4.1.1 in /usr/local/lib/python3.6/dist-packages (from torchvision==0.6.0+cu101) (7.0.0)\n", - "Looking in links: https://download.openmmlab.com/mmcv/dist/index.html\n", - "Collecting mmcv-full==latest+torch1.5.0+cu101\n", - " Using cached https://download.openmmlab.com/mmcv/dist/latest/torch1.5.0/cu101/mmcv_full-latest%2Btorch1.5.0%2Bcu101-cp36-cp36m-manylinux1_x86_64.whl\n", - "Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (1.18.5)\n", - "Requirement already satisfied: addict in /usr/local/lib/python3.6/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (2.2.1)\n", - "Requirement already satisfied: yapf in /usr/local/lib/python3.6/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (0.30.0)\n", - "Requirement already satisfied: pyyaml in /usr/local/lib/python3.6/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (3.13)\n", - "Requirement already satisfied: opencv-python>=3 in /usr/local/lib/python3.6/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (4.1.2.30)\n", - "Installing collected packages: mmcv-full\n", - " Found existing installation: mmcv-full 1.0.0\n", - " Uninstalling mmcv-full-1.0.0:\n", - " Successfully uninstalled mmcv-full-1.0.0\n", - "Successfully installed mmcv-full-1.0.0\n" - ], - "name": "stdout" - } - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "nR-hHRvbNJJZ", - "colab_type": "code", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 374 + "cell_type": "code", + "metadata": { + "id": "H8Fxg8i-wHJE" + }, + "source": [ + "from mmseg.apis import inference_segmentor, init_segmentor, show_result_pyplot\n", + "from mmseg.core.evaluation import get_palette" + ], + "execution_count": 6, + "outputs": [] }, - "outputId": "ca6d9c48-0034-47cf-97b5-f31f529cc31c" - }, - "source": [ - "!rm -rf mmsegmentation\n", - "!git clone https://github.com/open-mmlab/mmsegmentation.git \n", - "%cd mmsegmentation\n", - "!pip install -e ." - ], - "execution_count": 3, - "outputs": [ { - "output_type": "stream", - "text": [ - "Cloning into 'mmsegmentation'...\n", - "remote: Enumerating objects: 485, done.\u001b[K\n", - "remote: Counting objects: 100% (485/485), done.\u001b[K\n", - "remote: Compressing objects: 100% (303/303), done.\u001b[K\n", - "remote: Total 649 (delta 280), reused 317 (delta 171), pack-reused 164\u001b[K\n", - "Receiving objects: 100% (649/649), 1.96 MiB | 3.99 MiB/s, done.\n", - "Resolving deltas: 100% (364/364), done.\n", - "/content/mmsegmentation\n", - "Obtaining file:///content/mmsegmentation\n", - "Requirement already satisfied: matplotlib in /usr/local/lib/python3.6/dist-packages (from mmseg==0.5.0+b2724da) (3.2.2)\n", - "Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from mmseg==0.5.0+b2724da) (1.18.5)\n", - "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib->mmseg==0.5.0+b2724da) (2.4.7)\n", - "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib->mmseg==0.5.0+b2724da) (2.8.1)\n", - "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib->mmseg==0.5.0+b2724da) (1.2.0)\n", - "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.6/dist-packages (from matplotlib->mmseg==0.5.0+b2724da) (0.10.0)\n", - "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.6/dist-packages (from python-dateutil>=2.1->matplotlib->mmseg==0.5.0+b2724da) (1.12.0)\n", - "Installing collected packages: mmseg\n", - " Found existing installation: mmseg 0.5.0+b2724da\n", - " Can't uninstall 'mmseg'. No files were found to uninstall.\n", - " Running setup.py develop for mmseg\n", - "Successfully installed mmseg\n" - ], - "name": "stdout" - } - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "mAE_h7XhPT7d", - "colab_type": "code", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 51 + "cell_type": "code", + "metadata": { + "id": "umk8sJ0Xuace" + }, + "source": [ + "config_file = 'configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py'\n", + "checkpoint_file = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'" + ], + "execution_count": 7, + "outputs": [] }, - "outputId": "912ec9be-4103-40b8-91cc-4d31e9415f60" - }, - "source": [ - "# Check Pytorch installation\n", - "import torch, torchvision\n", - "print(torch.__version__, torch.cuda.is_available())\n", - "\n", - "# Check MMSegmentation installation\n", - "import mmseg\n", - "print(mmseg.__version__)" - ], - "execution_count": 4, - "outputs": [ { - "output_type": "stream", - "text": [ - "1.5.0+cu101 True\n", - "0.5.0+b2724da\n" - ], - "name": "stdout" - } - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eUcuC3dUv32I", - "colab_type": "text" - }, - "source": [ - "## Run Inference with MMSeg trained weight" - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "2hd41IGaiNet", - "colab_type": "code", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 204 + "cell_type": "code", + "metadata": { + "id": "nWlQFuTgudxu", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "5e45f4f6-5bcf-4d04-bb9c-0428ee84a576" + }, + "source": [ + "# build the model from a config file and a checkpoint file\n", + "model = init_segmentor(config_file, checkpoint_file, device='cuda:0')" + ], + "execution_count": 8, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Use load_from_local loader\n" + ], + "name": "stdout" + } + ] }, - "outputId": "2834674e-deef-49d7-cd4c-db8dd1ae9733" - }, - "source": [ - "!mkdir checkpoints\n", - "!wget https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth -P checkpoints" - ], - "execution_count": 5, - "outputs": [ { - "output_type": "stream", - "text": [ - "--2020-07-09 19:13:21-- https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth\n", - "Resolving open-mmlab.s3.ap-northeast-2.amazonaws.com (open-mmlab.s3.ap-northeast-2.amazonaws.com)... 52.219.56.140\n", - "Connecting to open-mmlab.s3.ap-northeast-2.amazonaws.com (open-mmlab.s3.ap-northeast-2.amazonaws.com)|52.219.56.140|:443... connected.\n", - "HTTP request sent, awaiting response... 200 OK\n", - "Length: 196205945 (187M) [application/x-www-form-urlencoded]\n", - "Saving to: ‘checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth’\n", - "\n", - "pspnet_r50-d8_512x1 100%[===================>] 187.12M 11.8MB/s in 18s \n", - "\n", - "2020-07-09 19:13:40 (10.4 MB/s) - ‘checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth’ saved [196205945/196205945]\n", - "\n" - ], - "name": "stdout" - } - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "H8Fxg8i-wHJE", - "colab_type": "code", - "colab": {} - }, - "source": [ - "from mmseg.apis import inference_segmentor, init_segmentor, show_result_pyplot\n", - "from mmseg.core.evaluation import get_palette" - ], - "execution_count": 6, - "outputs": [] - }, - { - "cell_type": "code", - "metadata": { - "id": "umk8sJ0Xuace", - "colab_type": "code", - "colab": {} - }, - "source": [ - "config_file = 'configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py'\n", - "checkpoint_file = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'" - ], - "execution_count": 7, - "outputs": [] - }, - { - "cell_type": "code", - "metadata": { - "id": "nWlQFuTgudxu", - "colab_type": "code", - "colab": {} - }, - "source": [ - "# build the model from a config file and a checkpoint file\n", - "model = init_segmentor(config_file, checkpoint_file, device='cuda:0')" - ], - "execution_count": 8, - "outputs": [] - }, - { - "cell_type": "code", - "metadata": { - "id": "izFv6pSRujk9", - "colab_type": "code", - "colab": {} - }, - "source": [ - "# test a single image\n", - "img = 'demo/demo.png'\n", - "result = inference_segmentor(model, img)" - ], - "execution_count": 9, - "outputs": [] - }, - { - "cell_type": "code", - "metadata": { - "id": "bDcs9udgunQK", - "colab_type": "code", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 504 + "cell_type": "code", + "metadata": { + "id": "izFv6pSRujk9" + }, + "source": [ + "# test a single image\n", + "img = 'demo/demo.png'\n", + "result = inference_segmentor(model, img)" + ], + "execution_count": 9, + "outputs": [] }, - "outputId": "8221fdb1-92af-4d7c-e65b-c7adf0f5a8af" - }, - "source": [ - "# show the results\n", - "show_result_pyplot(model, img, result, get_palette('cityscapes'))" - ], - "execution_count": 10, - "outputs": [ { - "output_type": "stream", - "text": [ - "/content/mmsegmentation/mmseg/models/segmentors/base.py:265: UserWarning: show==False and out_file is not specified, only result image will be returned\n", - " warnings.warn('show==False and out_file is not specified, only '\n" - ], - "name": "stderr" + "cell_type": "code", + "metadata": { + "id": "bDcs9udgunQK", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 504 + }, + "outputId": "7c55f713-4085-47fd-fa06-720a321d0795" + }, + "source": [ + "# show the results\n", + "show_result_pyplot(model, img, result, get_palette('cityscapes'))" + ], + "execution_count": 10, + "outputs": [ + { + "output_type": "stream", + "text": [ + "/content/mmsegmentation/mmseg/models/segmentors/base.py:271: UserWarning: show==False and out_file is not specified, only result image will be returned\n", + " warnings.warn('show==False and out_file is not specified, only '\n" + ], + "name": "stderr" + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] }, { - "output_type": "display_data", - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA20AAAHFCAYAAABhIhFgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOy9W49sS3Lf94vMtVZVdffe+1zmzI0URVKiLJkWDBiGZfhBMiDJ8ovhV9sfQE/+AH7yB5EBPRqG/SLAgAwZfrJhywRhQTKoi6nRcIYzHJ7bPvvS3VW1Lpnhh4jMlVXdvc8h54x4JFUAe3d31Vq5cuUlIv5xS1FVLnShC13oQhe60IUudKELXehC30wKf9IduNCFLnShC13oQhe60IUudKELPU0X0HahC13oQhe60IUudKELXehC32C6gLYLXehCF7rQhS50oQtd6EIX+gbTBbRd6EIXutCFLnShC13oQhe60DeYLqDtQhe60IUudKELXehCF7rQhb7BdAFtF7rQhS50oQtd6EIXutCFLvQNpl8IaBOR/1RE/j8R+YGI/De/iGdc6EIXutCFLnShC13oQhe60L8JJF/3OW0iEoHfBf468FPgt4H/UlX/ydf6oAtd6EIXutCFLnShC13oQhf6N4B+EZ62/wD4gar+UFUn4H8A/vNfwHMudKELXehCF7rQhS50oQtd6F976n4Bbf4S8JPm758Cf+ldN2y2G91dXdHFp7sTY0BEmOf55HNFQUFVyZrJOaNZ7V/rRRRAAREEkCDEGIkxIiKPP1QECQFVZZkXcs7elBJi8EZXCiKIiD3mqRcRARE0Z+Z58U5BCAHrxnpnEAEBQShvUn4rr6aqqGYQIYiQFVJKAKQle/vr3aULD7slSBA0QxAf2TMnrCpkyvfekCoSbG7E+5NzrsNd3qPMhXpDWvrjbdjzbORsPsrz/UoJhBBQzagqomsXCIKcjXh77/qZPVfVR0LWUQlhtV+UngrSrCFB0XWtqPdXhK7rfD3U0azPW+bF77SGFQgx2FoJAgrLsvg82t0xBltr3r74i3Z9t/bTr00pkVLycV+vF7H1jfh68Hka+g6R0Aye36dqbyxCCPh7ln9n45gzS0rklE9euczAOrunc5LVBiB2HcPQ0+2eIbFjeMe+//koE3UmS4++wz51ujv+9aSvN56itKloGtktL31ulWmefV0UBrWuh8dJTvaifRTYbAbnJzAvC5vNhkP/3YZ3Cee32d5WUjJe3XW21h/yuyoMzu4+//5Pnr6eQJinGvny93QW9M7PT8SsfF19/jrosZ39VTv3dXODVV64pCSQkTQxTyMg9MPAPE+klDkeDpWvg8vnZiJUV/1GkJX/NnJYfe+FEBrebN9JMBmUc0ZEGDYD8zQ/OnnqMkJEiF0EIC2JECMxBFJaTvQREaHveyQEqtArdD6s51P0Lmb85NQpKSVyzibLyniFImdX/QRMDom/U+ECdWx9nE/ZjFR5n13fyinZeIRgcvzRDp/pJGijI1lbpg4KXdc7vxJUM8uykJO6itRutNLjd63tP8rabdt7atAf4xPyJd+fX/sYv33quV/Wl6c+excPLzpZ9nlfcYN93cqhx/Rk10mz67e+psq6UCDGSAjxUX65dtf19frc9Xktvfri9eeq+tFjTfyitKUvJRH5m8DfBLi6vuKv/Cd/lfdu3gO0godCXSc8e3ZNP0R+9vHH9fPCuDRl37CJaZ65vz9w3O8Zx4W0ZDSn8kyQwDD0XN/suLm5Yrft6fotnCjdBtRUIt12gyq8/OQlh8M9OWciiefPbpCuByAliBH6rqeLEQmFgwUkONBTUAkQInGzYb+fePnJJ6ac58T1rqff7hBVcGY3xEDXd2XAbKJ9srOa8jzNM9M403WRYeiYcub1qzvmaeF4f0BIaE6oUpX4IAGJAdQArgBD37GoAawhCkGVLCtQQ2FWWJISo9CFQOgiOWWGoaff9IQQmKeF6f4ORJiTEkOgj7YhUs5kVdKSMCgjdDEYqFElJ2dWaveFrgNVA58ixAARtXfXjCA2RtsBkYA6CEEzQaIzx2QAHkgpMy+JOZlg6aIgOdP1kc1mKCuzMs4qGBUIgTkpXTDQmnNmnBL0Gz788AXPb65AOnu+j9u0LLz67HMD2imxAHMOPLu5ZrvrGYaelJRXn37GMi8cFyUI3DzbcdwfyctCFwOx61AJfPTdj7i+vrb3AjQrb9++5e71W5Z54niciTEQ+8g4JYYh8uy9DwghcDzcMY8jsd/y7W9/i6urLV0QpOvICuNxZFkSMUS2uw1dF9yQUIRZB7rY2kuJu9s9b97ecjgcieJrvI8EFVKGUIBbsHnWnE3Jp+Ojjz7iV379T/PBn//LvPfBR+ziOvY8+O2PR6rKPL/lO/KScfNL7PPm3dcDC5mIEH7up//LoafEpDY/v0xFfTegenitizsDRzmxvP4pv/nybzOmkWWa+fjjn3H39h7NxpPTkr5UkQ9BXNiZ5hm7yK/++p8hxsiyzHz++Uu+98u/zA9+9b+ta7IIzKJkwSqA53nm9vYNb29vGbZbXjx7wXYYvP0TdOh9e9i5VuRnbQxVrGszKUSx70/H6bSNcxXrMfWn/aztT6u0n/fzsc/aHqyGIG3uMcPXQ1p7Ye1Sr1sNOKdtnQCHJ/tilKoyfdpSozNVIPhUM2UO2vu+jB6OdwaElBZC6B4AIchu1JJqEC3vv177tHKcc3JDwcPvbDxXo+TzsCe+/jF/8JMfk4h89L3v8vs/+F1+8IMf8fmnnzGNE2hiGDr6YaAIlpwS87yQcyKEQOwiAdzgZtxrnBdyVq6f3bDbDhwPB0SVeV44zInrZ9fsdlvubu+RvuPXf+3X+OSnP2GZJ3DgpQAOLsbjCF3Hiw8/IGrm7ds7uu3A9e6K6f6OeVlIKsxzot8MfOd732W7M56bpslkfXhESdcMzXhpTid/Pxy3dl1nlICQePPmlvu7e+Z5JsaOfrNhs+kJoaPve4bNYAAO5XCYAWWcRhPtIsTYUQyKMUb6PhAEJEYQQVPieJw4Ho/M88Th7pYQIy+e3zD0PYgQKngr7xlO3nfOICSWlDgeRsZpIsTIdrvl/Q+/zfP332MIwv7+ltdv3pKmRBwGgpjOI3m28XK+VaFl2Rf5lOOLBAd9Dd47WetPrePHuJX9DATbQXUucnN/bt65pYcGh4dga32WljGMtgdD1Xsf46Tej8q7AjzG3ySgCuM0Mk0zOS+m0y6LjW0Mph9DBWRRFRUhp8Q0jhz2e8bjwpLh+vkVu+srQlKmeUKi8OzZc3bbG0IMrvdwCroBXUam/QHUMMkp3l+v+x//+7/z44cvYfSLAG1/APyp5u9f9s9OSFX/FvC3AD748AMNUtCt4o4jnxepSkKZjHWdBEJQsootFVX6fuDmJjD0kcM4MR9Hljk5GhZQGIaO6+stV9c7YtfzcNECZMZxZr+/J4RAWmZymjDYwAlajrHsmlS9GNb/dfFotZacCmURaaSRMbAnyZmVoAQRUjXAFM8iiHsUcspUq54EEAPD4szFfo+20bNbxiWQsqJdIBd+IAY4MxigBJAIwRRy8bko9sOq49dRtY2V0dqWBEGTWbyyZEIwJSGEQD90pKSkZUFSInYR7aL10YVoUNBW2VIgBkK/QViYp4mcMkGMhWS3KGrd2kqQYHNRx7AwN2dOwbxd1Vrpc7W+k02bCuRlYcmZGJINtYTKmEQCmhOCCwdZQfzqWgtIEoIUQK51SWZnWrkoEQ52SyNV0Q2CRAO6V1dbYjwyHifevvqC3c0zdtfXSBCm48TnH3/Ms2+9z3vPn9P7nG22G8I8Mx1HpiUQ48aYGY3n1ZezhMDuekfKsGRlGQ8GZJeMhg7I1aqc6xYIEMuWSGz7juvlNVG+y6xlrdr7dwi5WLvqOjIRbZ+d+/BOyUZe2eVbuj6whOCWh6dJgIiQ/N74rwhwg1NwJs3Prw7HGqF39t7noM5mqZkHafa9CDH2iBtWiif2yxTsnLUaugQxPqMZMCB30wckzdVTGyiWf4/vL4DB11zfdbx48T7DsOHzL77g4/0nvHj+jJubG4JEui460Drz2Jd3bvSJshVPAEVzbTp7t3b0VnVnnZ3HwJk2v1tfWgDUzIt/Xr5/CO6M35j35HE50gKxU5C1Ar28btp63en4PJzQP2pu/DnwWj01D68ta7nwowcqoX94+rkBMOfczec2LjH2j/dLFZGzSa7tlXFfPOIhPvV676BW0fTdpDBOC/v7e37vRz/i5WefMU8TaKbvonmtHEgnVTdsZkKI1da8rg8Y04LmzNXNNdc3O5aUiTGiOVuUR/WomfKfkyDSVWVZ6oZmZcAW0oIQkQDD0DP0A1EKwCv6m78iAjmjlUc8wk8fUa5VHprMQghI7MwQlNK6Vproia6LbLcbV7zNIygSCLLOUTg3CIggDeiQErETVjmvKSHdmZp8uolXOXxCZTwCipBVgOTP9NFyHlTkWp6OvDqOjId7lnm2NZ0TyTpnup08WOiNTtkCm1bfbLotuJWplRqPrfeHFNTaliYqqfAZbRhj4VEW+LN6fs/HSMT0wjIOKhYtFqSDYMZ88zanE11y7fM5+LMXfNKAFIwXmL5p4DJIRMXfSRUJDtKBeUkcj0emo+lSy5JM/sRIcJ0LIGbbE0EVlYwQHhifTqP+DIeIv3vxlLdev3fRLwK0/TbwGyLyaxhY+y+A/+pdNwybgW9/9BHH/eSLIDeWt3UhqCrJJ98WvVZhKp15kSRlQt8TBLq+Z+x7E2IK8zKxzJmb6w273ZbQ9TblAloWpEBROnNeePnZS/KyoGqIO3Qm9FNWg2+qvpnEUXNZnMXi0EoaA1dlr8QgLGkpcIdHN04Fs4KKNEzRv8ZBRTArG8kYZS7exeB98YEKIVQFX0IgpbxaSzFwWbeFrn2lgF5rFDBQlEVOLYth3V6rEJCqxIsohMCm6ziOs7mqcybEYj0XYufANyXI5vmQYLwmN2NUvDkKaFY6CQzb58R+5rC/tfnyFyuCI5hsW0MTADz0o4ZlipJyBm0+yxlVnwOKAIU8JZKWkFAlEAwIFsYszR708EUf0EbBfhi+UnmZg2yD1dFn28e10csKGI/Rwihjf42EwPEwsX/7BvSKrhs4piPjkkifvSSnxLc+/MgELzDEgG42HI8JyUd217tV2GpmjcwUui6aQpAX7nJimUeTB8uMR32ereuMJEGJTMcj98c915//iJdvXxE++nMEDNReba5AleX2c7j7mL7rid/7Tfq+Y5zMovW8230JY1Myma3u6bsbxndc2ZIgRPQEuP2rA92MWjF8qpL/0ZTqp9t3XuGbx34ERA3yFi8Fmh4IzuLoii7QU+OiyinX0Ktz4TVc3bAkU2BUwsoD1IF8yiuUrFZ4Ybu74qNvRd7e3fEHn37C7vaW73/0bUQ2zhfXXXgu4wtYk+ivs6yg4bHr1/F5x9i5DGtDsU/et4wrp6Aq50zr6jsf19UjROX7qzft8RX8ZaD+3Hv51b18Dyk3XrZ6b/tZwxbPvZZwqoo+9sSH3VAg8XTKfvnuoRIpYipRSjMhdITQAjNFSOuieIROrz+lVsHNeTHF1AdA8sQf/uQnfPbpF0zH0cJ7+45hs4YZ5pwtTSNZeFYXTfZmFIKZa1POLFNid7Xj6npHWhZ224H7eSIndVBiiqmEM4+gajUrlJCvAjLace66aCkBISCaT2BoI5FdCQ51j2V1mV0mfVkswqkVZI3huoQ4DkPHZrPjcLhnTKkRoQWUG7ALXUd0kBLO5MOJp1xcHonpE1KvCUwZtuuV9piUfA37+DzYfw5+s+GCEnJajSvFMJ/X0bEHrvvscNyzLJN77k1PSW48qLrtktawJ13TNVqvmYhWXfZJIGZhX9a2GjctRnpVyESCrGuhjIU6mCnvrw56RUrEwilXWcH6Y+CK2m91HRIRJHZ0AiqRnJZmFnhwv8MelLLTxdfPw1e29VzCUS0FxfE2khLBwVgWSPPMeH/geLTokZwSKa2hrNAA0KrrBbQB4Ke6nlFA8Vc6eZsyMlLH5N30tYM2VV1E5L8G/h5mivrbqvqP33VPkEDf9xyZmnZsEZgHxt2WQFC3NtidINmVaLOYhBhMge/MOhVDrNYzkWtUMzF2BA9tlOIueUQcaEpkDRzuj+uHU8dmm5nSwpA9vtsXbq890TgGq1uioE8FLcxyFcz2Vosp5I/tscL4iiXZEo7AgahIYCihPwAaWOYM3qcgggYbyxgDsYK2WC0mKUn7OArQMpXIvXi+/VKC2K/DVRayCgYE/bnF8lIWYcxKWvkWXd/RS2Q5HgwALUroLSQPsVjxebKnZm1Uzgb05KYPZqnIpKR0/ZabZ5F5umM8zrBkZ6blHSvUtXUmZf1YOEEU34CtJVCkUT5WYZfTwus3B2KM7HYDUSEE34bSQKzWwkZh/+KeOb9KGjVDTAgHDNxnYF4yKblMi0LUVTiAeV+XJbM/zuy2HdfXV8QIx8PC/vaerpuYjxNKZpkjOb0kp8xH3/oWw2DvvokW6nEc75kPmee7awPNcrpDRIS+Czy73kJO3L5dLBTO/f2hKsXRlqxiRoLsFq60cDwekOOBuz/8PUQCz54/Z+w3oMo4HUjzxNXumv74mtGV8c8+/4zv/Xt/nfeu3ieEJ9iXQs4z8zwxDIPpaF+BfFdW4JYcJn/ToJs+8ftT17y7LX3n3+UzXf9YVbNs6zyTyT7IoRuqBHpKsW/sVifPqECh8jLziB/mkUkVXQ4srDmywY1QtU1vNJT9pCYHPnjxnC4ov/vjHxLzzEff/iU2fVcNHVlN7Be9qvYDkFQ76DzmVGdzLtf8vSpMxeO4KlTe1/y4UbK2UT1bLv/E7inv2gKpFeSdhj2ee+rA5GgBdfnBdY9TO4ft7097Bp9uVyiGN63v/y4P29p++X4BngZMpxQp3qmmV2c/Cz0EcYW3pDQRa/g2ID+fD36N5OiApcr1aRx5+flLpv3BUjBiOAFsmpR5WshpIUiwaBkxA2H0tRskkNJssmOIzKrc7J4Ro6VgKB7donoCjhUY82xrLgQzUGZFHWu4pk5gIeuChC2aFtLQ0VV9xo0Rmlx2FeFM1YXsXcI6L/06rpoTEuIKbHMiDBu2uyu2Q09WZV4sHymEdc0LLtcFYghoEJZGbJsibQzJ+E4ElhNQFxx0iCElurCukOBAJcjZqssKse5sTqCFtN7pAisSQmnYDeoqhBgRFfIyETzMsoToBhTpohljwQ23RcU/1a/KZ1pCh5AT/uCL72yj5TNDiI1DfGAeKWBzhUfliet7N3yv8m8H9A7ICv+0rphUCRIsOqOsI0/dEXwpnRmfss+D+JoUWmBolFKqhu7izTJDS1mTzitFCJLJ0cyzyzyx3x8YDxPzNFXjeT63JElkhU7S8GAhakSjcE6miwdynGE++7IYGt9piF7pF5LTpqp/F/i7X/X643jkDz/+mJvdjSkIuorBat335EEJiuZg4TTSTOiJsFVC7EwJdk3dPCy2HEMItllcE7WFFBA5dddnhXm0+Oe0JM+nmJmnzP2bW6btaLHQbinIcebZ82uieOihFpuweabOY7ULMKJYp0+SJwSkFI2QuqgrkPANGYIQckZKGIAkt7ZYnp0ECy0U3PoUA5T394UdYzJMmdfNKQhRXZy5NqMi1mZVsIq1rhRNEUTdvxKkYuucc93TReEqOWl1s2JCJ3Shuqo1JcxFXhdWGThvy/LUooLkZHH3ofM5jmx27xG6I9PhnjzOJ/wqa7BYadSZW6jPyEoViiVUKAQhqvV98XEKDlLTNPL5pyPXL254dn3N0Ft8tGrjZVRFiwsKCmRbO9R4jX32SRgDVTNR1nUMGRIkcSYXVk/vlJTxcCDnnqvdls32ipyPHA8TyzSZB9HHMGfh7RevWJaFDz/8FrtNT4zKZugQrjmMB+7ynmfXV816XUlCYNhs2KXMtMDd3S1RDbjFoSOGzoVhrMJvmhKqmR///k/phs9QlHm2sIO+sxzSYqQYD/dcDQNXu4EQO2K0HIlP/sHfI/7Kb/D8l/5dpN9yTpuY+VBfsvQDIW5Zlq+uZvmqtjWCupqo3+g8ty+J/HwUiD32+XmI5FMArlDlSXFBsu35LtpoIRGRfApwGv3iHKQEN5xI6NyYovXfkkGmI3/h7n/ifzn8VfoY6YIJQctNDeteku60uJQq+2nP8ThyM9zw4598yn7OfPTBc3abKzPgucehBOGUHJI1h6pY8/F9qrbvWAGWrZDi7Vvfs/1lBVUm41ZQ1+pS2ljqC/9RD+nR2s76e5mL8GBMz8FUSsuTIPHBPH/Fzx77vHoInZ+Vvq/h1l/dS2ftld++qrpSJ+68Jf93DvweesfKOBlgO5/Qd3sxYR2D0/E2D5tqJoSOnH0+xDyPaUkVlAybnlg9bJaLtszJZE4M5ilw+340q6CpENlrAqiy6XtShEOaTUZkS0UQzRT/l6g9bxMNIOqs1bJa3k4Fus3gAGqg8/ZDtpEoYWMWCmmyOxNMAaHaO6p8q1685hlSDPP+Hn1vgC3GjrQsvHz9mvv7A1ebHtPV1MZQ1YF0IAQvEOEuryAdFl1jhpkgQsklym5ADeAFS2zs+pBRLSDYlXEfu9L3lDMJM8Jq84a236TxyHj+mXrchqzaeohC3PQ2XiWlIitL0Qucf5LV5rqksPjzypjS/LauzbBe99g281tE7V+Stq2zix5Z46sasCosp+GZa95d8WQWvugZ0WiIhBjoPEw5CGgwnTT4eOcHj1YP0aw9OXv/YhAxXli2heJG+dDX/lqobAYyaZ652x85Ho6kxSMVTu31/tOcHZ0DaanGflsjqfQtaU27aV286cssUzS5pO+gP7FCJCekLV4vnbbByDkQJQF9vVBCmyBcgrojeIhIiBHUQJg6akeaZ9SiI2XSiwJt4KrkiJWKlWuVPIMzeUkc95lpnCnxqDFG5s2GzXZgGyNSEEtxYyO2EuIqICR0QFd7UL1oTlkzeLiGKQqNcBapK6tUSCtovu9gcoZfkmOT3xMlmHUjCISI5Ozb3K7NyT1rQQ0U2MMpoYugRFk366rIN/3GvUSyKg/1klws5IJohGCueEQIXaDr+2IzYi5WP3Hhos7w3XOTRSz3yN9tGY9MxwO7Z88ZNhtUe0LY0O8COY7k/b0BQYFAtry2MrOeI6D+jNwAs+xFFQpjDoIpkmIewZyVvCRuv3jNeJh57z1L/i4Mq3qptGUwYoVpMItPyVbLeqpUmQfOx5qM+rrqAiwpF1ltAtw3vqoyHyfuU+bqemOJ6mX6vCXLS7sipZm7t/csS+ajjz7gercjdB1DFwg6eDXWbAnZNiK0MCGEwO5qx5IDeZkZj3tSzoQEQx/NQFKspyhdVwSUhfJmlN49nLok0uFI7DsrVnOcOSwW7tv1GJiUwDRN/P6P/jm/KpGb7/8m0u9o6aPNkdd3B+70ijxu2ac/OptzUwkJJRVh8CcM3M6ZufI0YHsqR+38+8eeUbzDj13R5lOpr7UVi5z35vFWnlb+qdzfDB3ZQKHnjP7uP/tn/Oj2e+Shhxi46j0fOXjBIt8Pfd9ZroK/fcoT+8MdLFYZ9fd/+JpPP9nx4Yv36fue0G/IYnErQ7AqbuVdSzRCFztidHd9iGaI0AXbldAFA38KaJvzARZ9Iadh56Vd21sr6FRWUFPCjqCm9FY+v+aQnAPvwivWMFFqy2asKukFpsiuRtKi3J6oRY08Ksq2NJ+fg5PyJGn+le9Ds+oey097as39celhW6e865RKbtNj++VcMX4q7NJC6nPVTaAd/5yTz2sk54VM5jjOLKXKc04EUWIfa1GEnK0CcUqJGGWNlCkai/9XinCZcVHZDgOqwqvPXjFszCMWMENfbNenG3BhVbytSFkB/db33XZLHAbPoTOjRUqZw+HIMk3EEH0nUGVo+aMYOUIxVjS6dlaTw1VPEAOsV7sdIfbc3t/x5ouX3N7tif2AbnoPv/cInIr+OkTMsB4CVecraPF0NgRp51BtnFWELqgV0gr2DiGsqSVVKkjhU22aTkFC5bviFYcasqiCklH1ypMCEqNF9iRlScmAc9EX3L2X5pklJSIlDDw02Zrtujxfp+uOCq4v1dVbDCuCm5vkbE8LNc+hWqLW9qWEpp5sl3YH27VF8ksB1yLuPexNby6FpUIJiVUWzYzTRJ5mNy600Nif5NFQq37djIJqXU+qjYEonVdHDaR54XB7z3GcSEuyeZL2Gqohoes6YtfRb7cMWzdyFEeHFobmoFkBL8BXwf1jnjQ5nS97p4eXtfTNAG0Cd4c9OcHzZ9d1Uz9QUpSqeUqzicydLNXCFGKw+O1w7jj1+1qXhi9WzbICLVYPy7AdyHPPPLmnRmvg8kkSeloSi1dKe/beM55dXzXevCKQM2RbnDEUpKqoJtRLNRbLwPrOuQrZdQwiHhuJOsOJ0RaWeRF7ukHRZcHqbVg1SPPMrVUBxa3V1W7onM6sCGshgfLw1shRXr1uOh/bFEsun/VH1S0f2UI21xE2QGRKvc1VKEcwYApFFFOai9k7BzHZ6qEbrXZgVTCVaZxZli8Ytls2VzdstjtEOrpth3QDevuGtD9g4airtc3GtrXUrMU0ggRyqSaJjVv0vmiwTd5FYV5mjvd3vJwnbl5cs7u+Iqf0QGmzsbT7AmtJcrMI+ZC7hSarWu5PwCpreahqoijta5Wi1v4rQF4WxvtM6Ae6GMiiBK8co9kS2q+f39CNI8f9kY8/ecn7336f969uiAIxdnSRdR17L2MQkkbMamlVPZ9dD0i64q0mDocD8zQhAbabLcn3Z0lkzjmZh3KB2HdI79bZJBBNGQgi1Qq3ZEXnBc0HY5wBOlU+++RHyIvvc/3ero7ti26mY+YwHXmz+T7yxwBsLQVXRZLt3m9UnltRDd7laXNodfL3V3mDp+RGC9hMGVJCgLSANgxCBB4TUqu1vTwnYjGIZ6FsDcNLKUEXefb9v8x/lL/DF8uG+9QTdeZbm8nAf85M88KsgZdjzzwZyokCvzTMTAH66MpZFsb5lvDmjq4zz56QyJpJIRBCR/JKsCWywditkJcZukAMnYcRuZFKhKGPnioiaCdEDUTNxNbAVQBZiIvcBVsAACAASURBVB5+5mF8At0wuNLWKBoi9KFjiEKW4FWO13GNPrt9tFLTwY9G+XgcGCXSZSWJ1XwzILDmC1Ul3XlIdG23VY5Owq3qxJg3okaJ1HzwFfTVXOCmLTnjgUU4F1b+VQBbu3be9VnT/NdAZczsr6/iJDwvBGNH1oBqQCSwLAtv396xfPY50zhSxq8fTDEEB2wpsyTzjIUuunfZlFspVaBR83T73Ids8zKNE8t0RNhgAUE2UCqn75NzYnavX+ul0AqKhLjZVq/BkhKx79gfjszTRH++zUUpHq2i+yMNO9BMSTHQM14Uuo5h2BJCx9vbt3zx8gvub++Y54VOI1yVVAJ5ZHJdmsua+S6exG5GzTJ3az67yVAlEiy3273pmRKavKAysBZrc8jX8jaROif+gqy7yHLhJVju+5IWUjLgFcMp6Cp1BkwPDGg2vWaeZ6Z5ZOgiXQyUgM9yq0iwnP+TNIC1L0HxFJM1xy5Qtu0KiQoMrakfTTSU8edVwzg/Qmfdg0X7WPuQshC6SAyxAjUP2aprvdDxeGR/2DOOE0PXs4ni41va1Qftf5k0a8HoSSs1mqrIxKITi0eHrYwldh3d0BO7aEbBGE6wXaCtcgm4J46GH1a5eTJN2ixlxyuPgbuGvhmgDXOxz6EUzzBQpNoACNRzkoqqYhuCBhSZt60kOa+gBmyZSYxo8QVnkBp76gAjF8Sf6Toh5cjVVY+mrZX+XOaKrO1MLN8l6iGEITDPE+PxSBcj/bBh6NdFLMUfDXY0QH366l9UCt4u9xT7fm6muzAiV8oUBxkO+CTQ98KikRiVJB7H4EqD/fPzRWRlHGV8s2ot4ME6lCfbtG5sogWXiBCcYa6Iu9ksUja6F/ionsOS1yU1Vh+x7/PJdiz99s6cJ/VWUtKijPsD03Fkud5x9eI5gYGu3/D8/Y+Im9fcv7m3q7OSY1FgSj5e6ZeQckb9vBQkOJOnWuFCwKpcihBDzzIvBt5u71jmpXpnsjPLtsNtiKTg4Z6uFGdntOV+y7GjMj3L4QnkvNr8LLTA4sTLyM1LphcXyIX5+TiO93sg8+y9F4QQ2N8fePPJJ/Bd5f3tTV3T7RyCWSItv8R75mOxu9paGfhlZpom8jwzS6AbLM8piwkWCZmYk1kLk7DZ9uSUmZaJ49FmfQiWlxYkkscFFVhcqRGUOW2YXr3h+M9/i1/9i3+N3eYGEWEIiWU68KP7Hd9+/u4y/19GZQzLTk11Jk6F7ddJj+mDjymfevbTfn+3NrkG8xRF/XQPydnPk7Yf1VS9Elfy3IWgxHja2mlOFLRyzSj51vJCTpUXZY9aMx4VCPz7f+6K35n+LNtpR8lLeN7NfH848ofjhvtk3rXva6xnVaoqy3xgs7zhV577mZtLYjweQMyDNi3JK9PNLCkzzs5r1fnrMXl4kikg0zKBTiiweP6PaIYFjvNCyokQO5MZebQ9m5WjK4/qY7FoIHbFWh9QMX4tsOavSb/KgAL+mOvkCOYti8VjInieXqTz0YzSIRIJ243xHM3EENh0wpLNMNJFIQyD83G4myOv8xVsBsK80HWRRQJZhJ0Dxzan0HIIy+8ZNLrCR630WUJO1X8+VnSkXSePflf+02YP6Prd6X54sgUsr6lzmQlPe8+a9r60v8FBylPFSIz/pjRxuN/zyQ9/j+39Szp34PZdR991ZqBUrADCZCF1IUZPu/B9olr3R1EeLSVLXE54DrWC6IRqT8Ll9ql2b4qrZkTT6RmrxeNSQITrGsuSuH97y5wywxCJ52OnoYL9gLAQIAtrjRbnO95+q1T3nelLX7z6mC9evuWwHzmOE8u8sIuDr7NS6r/oguU9OiRMJznMOWf6rq/K+lOFborWpRrp+1X30iysDTYGCV9GJSIAYi1E0ipOxRCeNaAsFXO4r9v1KvF0HvEiTbafFxHmeeTu/hbJif76ijbeo3ADVYWkls5Synk3IZIZq8g8l76zqswnhjUHFbUCes39L0CpzFNTLKZ53fN9m739buit4qIm8HD0FqylnElL5vb2Lct4ZJxni9a5Cmxikzu2Mj3r/4m18jQUNITWuOVvUAv14eNoBucQBZKF3BY5ZB43n/Ng9SCs3oLn3DVG7BWsKtXN24zvGojihmmXwCc5d+W9lAb8P07fGNAW26pLxbrpv6r44YmhhI2UfIfs3rTi3SkHHSqaLO/N2siUajkAImvYYYkBtmIQ3obY9uy7yLOrHZDpgjJNkWlarJok9kh1q1HOhrSHGHm229B1Hd0DORBtsTfueur0xZNPitXU/nZwimAhcsWKtS5MLQLT8+j6boME8/zlcaxjEdxLZB6uVYlX1XUPtMYM/1M9niV0PQmhwxZYF09t/dL8X6gk0atvhvPcKJ8Um8tQIKy6Q9Nz3rRYr0ByhX8WslTXeDOq5oLk7s0dh/2R5x+8oO+vkBC4vn6ffrjmcPua+Tg62LEcxIy58lX9sEQb8dXLKsV7q5V5BXHPmyrSd0QPAWVZmDPEPlKhVShu/eLCZ50HV6hQs9zgpdCrgqMFWJvQCpLZxMBRLPw1IuRgIaddNCC1jDOkkk8ZmsILSlI43Fl54Zv3X3B1c8X+9p6XP/mY/K0P+ODFewb6oZ6ZV2YhpURXPKhQPQTb7Zb0LPPmzRsP+5ms0lnfeZnqcvSC5e4cF0UOE5vtQAiRIS+ukKs/Z/FCRDa+5XBLXUYLU719w6f/+H/jl//i3yAOV2SU28M90g1snlSevjpJ85uY2P2XwjTfxbaL4eD0s3cz+vN2z69/l8K7hurq6RdCtc6TkkcrrCMWhNU73gjVItxFaK53Y8mDDti+6YLthU/SC0r9GQEOMvAv5mvLf+gcpKD1fEtVO85C9X1+5hX2tM/ollrAIDRFPApfD9IWDbL33srCd4YDKS+gtg7naWKp4dOwTKNXm7PS5JoVHVctUlVJmhiXIwUxpGQVARVlXLJXADRlPWta+W/TH8kzWTqCZI+icp7jnGYNZfS5k0jW9bzSQCBKRuNAqUpr8klAE0EnOsmE2JOwMzk3oaPrA3Pc8mn6gDgMDJ1wNViVxdgP9F4BNIfe+4HnHrmcqpzwdC18VSrDEJr7whNtnK/p9VOA7uxIEx9bLWN8Si3IPO2znniYnwajiqqdrXbc3/N7//Qfcv97/4Dvfvs7xK0Zl2IXTwDbPJthrBQQKznsgqkzIsXav4KIqtgWywDr5+WonBBKcKWthQIsiomw6pAhVGVcdEEzzHnh9vaOJWWGIRBbj6IbvNutmytAbHKtSlGIcuZYNPOCLgvznHj99gteffEF8zjZETSzhT0OvR3xpFVXWgfaQOW8gqrapeB6z2NzYhTRqneQLYe290cU3NqCtayZlKm5hBbhVdZFAaKncw+uI/i5b5Z+ES3UVToDBqpITgRV5iVx2O+5vbtlmWaur7Y+t+s5gutaNn1AwQtDFkTj10lmpnj4v9w48TiVXasnf9U/aGWKXdfF3r2HnXkx44a2YqnmzDJN7Pd77o5HlnG0iLV5IQO73VVjLM7NE9sN6FxOqdeuRoBMqe8Alo5SDOcGTk0fi1J4IWsFY8mVPyO2RiWY/jT0HV3oSDnVuRbBwubFKhE8quMGM1yEFNZ9Ia7tFmbZGDmfom8MaCuuy0e+ocSlLsWx5cJwfxzpHAH3/UA5X0UkErpkVv3C3NxDI51aiEJVP8uG02bTFWZmVS2fX18z9j3jOHLYHxgPYodbptXNXxZj30c7v8StllASFv15mszbV+G3C1ptF3x5z5J8GivjyFpghE12WRvFCiYidF1H0oWgVk0zh4C65dly8E6ZWhGlFiREFfq1O1rGSdCc6lko7RyVPjTyY91YYu9SLftna7JsBhCzUgprQZOS9xWEoMESucXCJuNZO+rztoZ12AVpXnj16Uu2Vweubm5gs6HrejbXL0j5DbpMgK7lmsWAZsmRkSqJpT4jeC6bHdxewhqyWc3qLi7Mxt4jdJ0VWlBrqYBTKQy1WtItdLQvB1zjAsHnyax/lttXMq6CiNUgjYEQpZZkzimD5/GJGHhKXjraFoAwTwt3r95wdX2NZmWaJj7/xA78fvH8GSknA8ohkAkcl0QvZuE3IBhJaSaXfbrMRBHmnNBFmQ578mLV+qZloSvxdBIIcWQ/wjRviu3LjBjuXZASmtnw63lZkK5D0sI4L3z2+i3Pf/z/8N73/20Syhf3C8P2g8cZ589B0YWRzfiaPbT+/8enczZ9HuraXnN+7VcBbGuO2xPPO9mURcF+uMFOwisVasBJNiEcmjWMh+XlypepeSghNBMq5SiO0D6qUuFQPx0/JGsmNmC8ZVPrfasy0/Jg/wQp/DSsWrgVjiq5fKbcrPvTPh/p+P1l58/1PJa+KHTGInSrPI8TL+J8krdmY+yjWsOMMs/ibAbJlEg52/gkOxg5eXj6nJR8XOqcTDobyEsLc/aiKckKZuWszCkzLzMpZVLyswqakH8L9U5Mal5SdCnDgBL84Fk/wkQWEGEUk5lZE4nAVfwECT05JLSzc7TC9pqr3YZhs+Fl/JCuHxhiIBK5UysgoZSc5VPw80DH/RJ6UNBNVk9eLe5Svmu+L3QOrgqAO7+ufCbuuWp0KzeQtiAC58WPATdTuOd55sf/5Lf42T/6+wxxYzKkGkVwLJPNw6YmBzovlFHSPXK20uJ9OSNNpIb1tWNZ2F9KAoPx1RKeWXdpVSDU1qmseVrFuFxC0+Zp5G6ayVNiO3TrwDWh/Harpxao5ceFlCzvro5pCe3siH3PdtNzOIwsSyIfDty/ect8HBkPI/O8IEHY7LbcvHiPLsbGYyvrGlLjPSd1KtrRL/p3CVsrvXElv/I1CSuI1+x82FI4rB03GrpR2OavrBEzBK1GqYbHYXzHxn6yitCq5kHtBmJngCJp5njYc393x/FwRDSxG/yg8FrIrj0HzPY2qOestXy1vMda8+B0Wdo4rJVnnfs9CRoaWNboK83XTdPB6hUEq1VQikOpmjFrniYOhyPH/R3jNLPMi/1bLH9TCaScUNaaDiYf1F/86aSAtUjTCt4q5Cw8WGJd+xoCEiMhZ6/m6dFruUSQrLl7MUSCF1hrrZBVA86Bp2zF4sb1amwyAboOW1Ub361NfGNA22l5dU+NLKWbAdRzrNwcO6dsSDebBavrmnKxxTwSHJzJurBL2uXastaN0C6E4gFWNdf1ZrCQxi4Gun7muD8wT77A8gqWNpuNeSVONpC/AELOC+O4ePnWBNXDx4NrRdRCGdrEYVE/X1GrZToEOWEQMUBO5jmKQUjBD3csVoPClULJSzjdzMXytlbHccUqOMMPTdldtNYfKODB5lPdO7cWokDzyTzXipPSCkdqzmBZvCswLd9Zb7OIV1gs0y1+/sZq2V6ZOhzv9yzjyOb6iqvrGwSxs/qWuYLqAp5KbH+xmNcdpVrXoYiFbanXGy+erJUBUnekqnop2kgXxatLekW1s0pEZS6aopGg5jBTpXpNy44XH28JAQl2lEPf2wGVYZrMW1ksqmK5g5sYmCY7Jy8GYR4X3s5vTSFIC5qUt1+8ZpkWpnmE5N5ShCV5MZqqshszCs06Uk+6zz6pR6wIhObM7AaOjK8pVYhW0OTq6hlK5+V5ZNWCzgSJGXEycV6IsWN/+4pnL3+Xw/yMP7zvuPnw5wuNfIoKl0j+7uthJD8/FcFSWjwHaXry+0PBWjyYwmpJf4y7PLjvfGwfa7sqhKfvasV4IoFmv/qitG0jtRoovkYKK24LFLVWfYB8IpSVRMc/vP8LDEN5bunXw/epoOCJ0jHlliDnSgysxpM2h6u0e84ni0W99SIKt3nDbT5ffy2EWGdyZCSKoJ23IWvoeO2PNgkBmvnlfiKKgb8SeohmknuhcaU5pWz5oMn/+bulnEh5Bs2MSzL+58+ak4WJ5pQY52S8YLbOLLowLgt5nplSAp0QlLc+WhL3vInZwqH6j9ntrthsOq6ePSf070G34VW6ck/P46X723ktdRAqBC/KcTOa7YSsyvL6s4COmq/cAKoTW1DTbhGP+kj75Yt13TWFxXh8PZb3GaeFP/jh7/Cz//e3ONze0z0rOsl6UU6ZZVns/aN4lVRqkZusypxS9bypi6VSVc+MyKVAlUfsaF4Bndo8F0/DCijMc7Qo1VRhhYCM54+jVSBGM33vc1e2r3jxlTqODiSxnO3FwYaNvc9ojAybDdvN1uXsHgXikmvlxhADIVk4Wt8P9OX81jo/4XT4vJx/620B6nEgti7MY28BLScraZ2oB2tiBTSmX1k1ZHu/bNX/2zV3Jq7K2bdZzRNTwNPQ94RusPxWEss4cnt3x3g4ojnRd5HtMNB3PX3XOR8Fq3J+tnZ8BJqVeIoGHvymZ588JnHa/bnyrYx4Pm/T2klXXH8NYmfnOWDLOTOPe8Zx5u5uzzLPzPPMMieWZWFZkldQzZRwilPnSj7ZyzZHcvLzpPBdKWZYVAk3spSiOIU3FA+2BtPLyMlDQ0t+YUktwXWs4HJMauSstpOuWMh868JvhuZE3kob9ilP8o+WvjGgLXi+kKpYiFgtg+/gCVcmVKml/jWgJCvUUAdqBV8B9YpYsC66bKHnTbhku/gLH1uPWSsKb0fXeSx/sLKfyzQxz+bSV4XNdmCzGXyBrDlABoBKWBwc7g/c39+T54Xiss6hna1msps2ihKhhtoMv1TFAQcMDm7xU9sBg/6nBU1wy1xoBFcQa0+97ahKllDPoev6jnm05NQCxEr1KmP6ptBTAKdILaQRPVcthlAP1T21yvvAi6la5bBwlbQuZk0e6od/VqyDJqz6zhTEMM/uCX24A+Z5YX7zluP9nn678zFZ47hNUK+hHDUkIuOHjJpHrlphEAvNksJUQhncat0r7aZ54TgmpiEjEXabDfg5gidMvlEX14hyC4kSEmhX0VwxAoUgVsAj9O65jMQYzEIuK6ouDC2IsNn0zOPsc2gFQHJz+qPmzHI82Nt4+ToBhmLxVeh88Qy+9hZ1ZtVUBCteiZAyoetrAE1E6bKFOEdZzSk5JWYHv0GEac5mVa6KvQG+lBbm0KHjxOG4Z8ozr29f84H0xOHXTooff11kwdgrrJlR/MTHd9af+6qkzT8e+Wm/fwWQ1fK0szZPrmsWXhtlUJLQW8/aY88pe7coK6HdR80bVSDn89eazVBqmfuiqNdwQD/Soj2I2wxWUt+rKOLnY1/uKLJT4KR41PnbPOWZfSx/sRbaKEooLeBYFQd1HluOMbDr1nDMV8vDIyvattAyTuvxCUcd6FwBLu8Q/SVVTD4IgoZyTtLpyJTUgiBUr0EQywXv/J2eh4nn0Q55JhfFNzMuE4f7e5Z55Hg/cjzuuR0X5mn0XNZEHBPKyH13z5sewqcvGa63vHj2Hu8//5C3+YZZdvQxUqsjN5NSgbuuc1cAWwvGfHJOi2cU3ikP5zP4Z+UMsRKW3hbeKIpcGXuador8XKNawsmaa3S2E1JV5nnk0x/+U372j/4v9vcHckoc9vfs7++4utqZZpJXD2kMka4anR06ZAufjV1ks9uYZ7sYQnzus2Ll9invSg2fLSt1tZWsOVfrgKqX0acq2lnNMxIxw3Rpq7SXl4wZxu04F6oxsvGcq4XjBzLdYDlNXdeR0sTr2z3j/p7NMJA7K0a22QxV47GCZWsJqKIfnunJJ9Tq7RoaY2zRl4LJzpQ8cqIYSnwMNUHXr8q9Acs13z1K4WpywgtqPpiUESohir5+KblRHSH2pjMtM/f3t+zv9yyTFRwZhp5+sEq2BSisRqLT4z3KbHIyK85nKx4QHw7nurV40GNtrWvhtK0WqK17JGZlaa3L/s4lFFr1yDwK9/f3HA8HK6wyzV68r3jYkjlA1O4seaFt+O46t65bVX6qdUzK9VVeaGOcq5EcRXPzPeygLZef2PFOyd+3HKkk4lFM5dis5JhNVwfKA9SlFria/UiHNgusCE1TK4vxrWGAT9A3BLTZmVHr79SSq6pYOGHvkEtBl2RDriuAUc10IbpCWBRnE4x2ynwpkporiIt10zebC0DFFV0BD0GwwQ700jug6Eh9b4BGYVwWttEry1S2hgFLBStaYjlAyzhxeHvPMo0GZLoetgP9dqCn48RjWDdDyXvLtXzrg0P/fMEoQBoZuo7NbsNCZsoLUrm2eYhMuc/V8qPQMB5nZnktXxxDoOsD6GIKWC6LemWGli8HmoUQ7biErIp4XltuGFs7/9U6JmbxkGJCdIWlXEczs0ENSKVkhWMk2Pk1eFWgZS7llE8GCRSW2azJXRfpYzlsMTB51dE+BiQt1ldXcEqeSNOV0pyXBm7X0/q8mhosIJoYD3uWac/8/MZCEh0MroreKaA1MBiNOWSIIZNzrCEx6uA6xKJciws1s1ZaZT8/aqH0JwSEjmEr5MlCTgtoN+VGG03f/MKqll+RPYwg2FapCkwqB/emYiAoSpGzySrlfQh9UIKABjjs9/TDjtjZelp8GCOJpJmYO3JK9t4pgWaWtEDf8epN4Ob6DR9/8gnzvPBrL/40w/YZ193VWr2Pr4eKn2DOiSiBoy50RLqyfut1f9R2jR4ofXw5MGv/PveuFXEOpyCt/F3XHWuo7nl7xXunFah42yJ0URilMhZvd+28CTRxYKX1vtNZOe1XSquyAEIg8dde/H3+j8N//ACEtmzwEbWi9uWcE6xvvf71FHBTihxpxsU7Ia0mfP4MWcesBXLnQO9JKvq0n3Oiqozac8wrTxQRJFFn68HKK6Ko5BBVoGKN1xGIq7f/FTteZ+c9NZc8kENGNg72vqX8Sn9Hn4/c399zuL1nf3/Pm7s7xvFImo5MUyDGzDLu2b++ZXP1is31jm9/+CHbeMXP0vtmBKOrRU3KbJysYVkBx/kcLSlX0FrkyFOKaFvd8imrfaECBh9MSVXaz0faQ3+lWZO6sMwTn/74d/nhb/893n7xhnkcTU7GYhRxj0CyggyhVBFEDYRbx5nnhRgiz5/fEGNkOh7sTChfhIIZ70LSakQBO56mr0zJC8j43NvZZTbY0ce3rOuS+xwQNt2aRyaynnsmAurrQxHEqzhHWTP1S85OCIL0A5utmbnmaeT17R37N2/oNzuGHpPdbhTX1DEva9GLImsrMKo9aubXdaQKpk8myMFk1vV7sFSMCtQzaECC6XXFyFO9vv7u6qDN7i8gcpXf52spxsCSlRCVhIcNBuVwvOfN2zvmw54Q4GrTs9lsiH0kiBlecTCxtt2Cs2aiT5aqrnpA5T+PrdezXLHmu0IV8InUsMjWkJVCu1uLgLe9k5bM/d1bjuNkx1vMC8sysczZQsKTpWrkE6OcRxWx5vKvcoMK2GpExMnZeBY+XIDaaohpdU6/zvd2EHOaSOwszFsN2pZ07GLcsccFRCJRxc/IXgHbiTqePdIsylpQrxrnK0P295LqqSvb8V30DQFtnMSBtYuyJhLmTDd0LKrs93t2wwDiBUHE47y7shWVIqIr2q+Ta9YTaujl+UZb7wV8w9hDyvllOLDKeWXqz7qdV/Dyw7ZVLZlxXWUGgzxmN6dMStazvIzklNAAV1dX9H1PDNEYdl4FVSkVkiv3OptggYiVf9VsgjVI4P333+e+v+ewP/pIrIplbn63g7rVgRVetAJfTDY2Xd+Tp8XaKHpaPGWi9Q9fpF20Dq2xxhnVeHLtyVlzrOEV6zqgKsRZTCpmByHF/Z40k5Zk4RSbgdhFunlmcq/bqixZP3JWy+moQiczLxZitP3gBtGJ5Ec9FAuMumX6RNirktLiIStUkOLLB6GJgxcrqkBK3L16wzxNa4XIBhS2v0v1QmeyLmh2a2e2AA0RQVOqMf0KJvxiXIWyhEa4GqOKXQcamTw2v85fAdYezirqawLPoFMLlZKm3+mszxnoRKzypq0uC9OdFqTkYvgC1iAwZy9xPZGlh5KvIJnC9jKZeYG0T4h6cRc3riR5y09/8ns+xj2f/Z3/jps/+x/yG3/mz/Ptb/0S0cOLvk7g1ktkxoTOp4dXfHB9w3W3e1Lxf4pOlY7z7x5n4S2geqwdaADaCVh4pK1isXwAY9a/z4EbDl6CBCQMwOwed7GQoUYRKHkg9n5ih9/ie70kpldFwM6KLPHpNRcY6J3ft+qBrWUfO304v+2150rekyDnEWqFchG0qxZ0Cj/b8W6tv+vXD5/3tLVb1h/NJTW/o34vheU+uf5E1vO4zkPI1n6tBa0UCCHW8CITCi4vPNf20/y+9f0Kbp4t/Klwz6+lI/e3b7m/u+X1m1tu7+44jhPoTFpec7x9xdvXn/HivQ/56P1bxu37LPGaMfcgfR2vk7LqDeht+22/r+vpnDefjjEePq8P2jgH1S2gewwESkU3p/cH9MyIoLz95Pf54f/5P3P36g3LtBDEPFZdF09WnqpaOGQQjy7y42AUxsXm49mzK/rBqu0GBMIqG4ryGHxNWq5bcNlj63YpYYFF128U+Sxr1UdE6hmuIrbPSzGyqshinjjTwUKV4/bezQjk4t8RutgxTplxHLl7+5bjYc88J6Tv/fri+QjmYSugJZZwuVNqg5hP9LmSG60tfzGesvgZvut+9r3g6R8GZm16Qxerm1dkadalrAp2LQzS6CotEBKPJPDzGLsuMk8Tr9685ri/J2hmO/QM/cCw6eoRO+ZdVAwA+Rs2xecKaGnBlK0jf67ieq7PQy252DKTNtSyWRAlvK2ZyeDyXRpv0IOd5oOimlmOR6Zxz70fWr1ME7OHQCavuquNXthSDGe9dCPBKtLWlZDVZE7tZyg9s75Yl05lYVkTppev+rRdWzZHqHyvcPggHZ2ns0Sk1tB+oPu6UCrg0YY0uHNqxSTNhK1j+SXi6BsC2hSGdfPYuLpFJwO23dhuN9xcX3N/f18tgqZEeIZYUkSyWyUc7RvXAS+vWhlwUeAFLEHU+wFYJcbCkKGUly7r2dovlpVVAIYYkVijZe27ZqErZrlRtbK5WrxY3Rvy8AAAIABJREFUIZCXxHh3YD5ODNsNu92O7vqKnLOdwUZj3VCtcdLWn1CFlWLWjcPdPX3fs+x6QoDdZmDTd+aWTslC21gXigKST8P0iqKlrqDNSyb0vu1No7YLixWoZVRVySubZS1ef55JUqLDy++mC4V1gxVF0ZuWXObJpZTPZQjC4TCRU6bf9Fb9se/pFWZdHCSvVI6TqO3V9zY+fXX1HstwZDnsScts5yQVQZlMEc2+SKxsstKG3BAEXeyNrTS6D5WYi31JdrBjiHbuU+1Eo+hVJcTXmikFqa5LS3gpZ4vomrkpgWKhrLkEDryCmDDsOjsiY6r7Tr1/oSLPVvGvvMQVt+CKYzkSIeKhorjfujEbVUUsrEIlhkBfAL9Ajh2iwnazsXBUFAkQfWzV96hOkJP3GQcPqpYbEJQ+wHKcef07/zv/4os/oP9Lf4P3P/xOVTS+LhIReg28nkau+g1TSmy6bIeFr6r9V6YHoOvsk6cB3Nnf7/CmnVO1TjbhkE89r55ZJu4hUIHgHtxg3p6TA+vRBrD5iXcSEcmuyPmZfa6gGH/1A5/zVIGbVXft11ZXneHEI92+YSvw302nXv/HRknPvreQoqo6PXpdGaeTcdfHZ1AaZdc33aMVCB8CrSfAxBP0OCg5jXxow6DqGIcWDBWlh7N74D4P3OeeD7qJ+P4Lrl9kXnx3Tz684c3rN7x69Zq727cs80LMiZfHP+T46iXXH36LD997n274kDDsuMtXD6rcnQO2FXiGRysDPjYuhZ+WMDltvntsjE/mhDb8/RSsnYQYs669nBP393t+8H//r9zdHTyNQum7QNcXHxReWdOV+m793AoVOMfSbGdU9j1IYHd1xX6eWZZlfXCZmGZvCBbCXlInoigTrj94EambzRXjeGRKix19IWLeBgcDtUEpsizWvVlBqjS6g+ha9RTznKlihTZS5jgeub2943B/z3QcSTmzub5iDZi2e0LsaiGcoHYYuYUZn871+b5fDdwlpFCds9ncWcp8PC1copzIhiKzLezL3rfWo2gVcbz9xtN2TkVHy2oRPvv9nv3+nmWe2PQ9Q7ehH3ovIhYfeHY0t2GXZe+FOuXhZEBcIhYgRwnbb3Uzf0fxiKazkdRmLQX3xLXQGDk3gJ6vf6lzMM8LeV6Y21SiRq98jOGWo6jKE9tLWt5Vxig66CqvUsr1F+9i9W7pqqGqel0G1wlKlFAQ8YIu6x6vVc1FiF2saRrtsK3BoOtwBDxlqGAAtDphtIzVYwamJw14Rt8Q0OaDg1DP4QJMoIDF84tVFyqVtZYy8eYFSMvCcbaQqd3QE7vOjQVm+y3t1XwIVwBzWlANxCgOEm0TuupLtVCohc1pWgECrAw7xOguzjbOmbriFAsVTNnymWInZA9bK+BtnhMhJdKcyLPF+Hb9huvrDdthUxMbxYtYNJpDtboUQTxPC+NxYZomdrsNu5tr+n4gxsiyZCQncwf7Csv+xu1mqXu3jHN2TxaFqVkfQi3l6wy6WFv85vbcvHWubVRKVabgVrDgG8TerVVk1rXyqJLqmpyEQJ4XxsNopZJ7WwtZIeepAgYRalWgUu7X7GC2eZd5IuUdMW6I1z1LOpLvj1ZMBCil+9cjbwpYM8tRwZIKzqTUN7cznCD00iFgVSqbnMYSalJUXRGrlmn5CoWNuftdjRlkLWErFMllP9qkxeyn2wQrIR1jQPFjMtI624IY0nOAlT1vUMs6E7PY5mCKfnnRBLXyUlkPVcOWtPbcw48FmDClP8ZA30diUJ7dXFULcbVCqed+qtJ3C2lZAM+5yLkaIoxnCJvthmmc+OTHP4Ag/Dt/5T/jevee53fIiar+88A4EeGjmxcc5pGuHxDBi+P80SDbadmNFTB9uaftq9FjQK70/7zNx67RspjLdboKUDugmmq8kRCQ3HiXcaEmUPIrxT01pZgG5FpuGUperj1NJLoSPNteCjaDWvnIOg5t8Yo2D6q95ssA3QPw9cjnj+lnrYJxXsGwvefUWvwojDuBz095eqri8aDN8uTTTrYetvU6edB+20Yxva39b5/XKlBr379YhtrWIFs2N+/RbSf+re+85tWrl7z89GNevb5jSTP7w8z42Rfcv33L9uZzvv+9X+GqH7mTZxz1/2fuTXdlOZI0sc/MPSIy8yz3kpesItlFVnct3QNpRgIGgiDphyQIEKA30APoHWcEQYCkwYymW5oButVbVVfXwmKTxe1uZ8vMCHe3+WFm7h558rLYoz+MKt5zTi4RvpibfbaPJwDtzcpVH2Lef156/tH97ZEErhy6/OyV2X5NmdmMwvrd0nmL+3OiofsCiBZd+OQv/xQvv/pSi0uItqIYxlhDTvWMtHsFU4A1uIdXBOxycxhG/T6kKZIO8sUAvtMakebG1eJezbBIHLC72GHOBc8//wKcVUGqhuaOFjzHlKqoN2xkdJG96BhruGo5pVcUoBDu7+41lPbhHsf9Acu8aOE2fQhgzeard8x+CgTzvCBMEwJ39I4WjwOcgGFiM2ifnoaOdk7OSK1ADgFKAcXYMIw0OY56MrR4TIiekoPuSb7OWuL9fr/H3e0t0nxEJOBis8HU5a0BsGrRjo4UT2o+m+LRHlcKqBUtOmE0NeyuU1ROL1p90aNwtJUQ6m0NaxhmEquoXS0lpDQGDzk1vuD7w1YZnAIj5IAFeX1m+l05U7hD0PHvanxsP70xNq3et+90sJHMmCFoMsKWCiAzDKMZOlCfg9WaE0WAredcd4/V5+AqNdWaC445Uem2+/LvUdJOr++M0hYLwYtjuAtRLRj2d1FvQTFBlUvWUp3QBdCmqAkjMw4Q5OOMKQZM0+SUVK+q4JSM43FRZkuj5UI5WNES5VIUcLbFZXgDaRFzpbPrGCtRC9tl1P5epKGCQ9BGxBDBfJhNIVQmWAoBknE4HDDPM4gjuFxhfCsauA2QtFQCfLTfhrcVwAvSnHBzOOL+9h7TdsL26hIUNLE/nwA/FSKwENBOgBmxlVKQSsLo1VKtxLu3uoSYNzNYeWgvk88MKtYigdULkUuLsSYiFFgzWFPee29cDQyVxkx8hfv9BGSVF5FzgWBBHAYtHJMY50zYJWtCd/HQ2bLg4SaDGZi2F4hhwDBcIFxvMB/ugXlWAczab2ZJqjhoXgXZPbPmWwKgECwH65G62YWHrYGgH/AqmME1P5CtemSRAogmszCohrUSqUXVvWouyYhsL1Rj1VwSEc/IboIfpgRnQLjli7iABghRG8LUfWq9ajoloFO8K98zYc/SrFfRQBFCwOGgxQ9ijBp2eqJclJyR5gVLTmpwgW1pyZViHuaCYSoYw4DMGZ/+8ufI5Yif/PiPMbz3n4LDoG1CpogxTAiw4jeN4DrqWl/nXiUibIcJCwpIlAccJWOiaIBj/d03sWg5+a3PH5PV5/5xTL5+z85yAwXyxsGsvAc96ukREmCggtb3Ii0QpQq/tKfJiXCTx8GdDvaydmG323lYn/NRVeIYLVymV9T0S30eSnuE1HYp7i1+fCzfpPa4/UPOfLZ6hszzEsyDnHLXrNhWnqh50tpe+L2oFhJpz9CFO1W03Yvg4yh2/ryoy1rJehxeeKoEPVbczr/fe7tWStAZYpolYM4BoAEpbLF79y389Nk7ePH8a/zus3/Aq9sH5GMCcsbxeMTxfsEH77+DZ0/fxefyDBnDo3v68/px+Eo1QOefwUop8tdA6jEqRUx+r+faE7vOMz963qkHuyqLIpjnA37zl3+GT/7m3+F4NJ42aIEJ5+0lZSTzvrXVJjB16QmMhoeYEeOAw36P7WZsSpXNh4gQCpA9XNSEigTto5c93NGgOCPjbr/H7etbBCFVJqF56bmcgH07t0qnJocd/BaLKLKzRCBEYlBW76HWETAP+rLH8eEOx/0e85whRTAE7xmrYNfbL7mXo55xy2P2nrT9Fdk9+lXQtPxarPeNbX7c3du/JgIM7GdOFV0BICXZyvUft7Bxi7xq7/SMkpBSwv39A+7uX0OKYIoDNpsB4zC0AiPei7QR4ck5PVUIXTE4LX8llaG5MUPtEzYfaeOCeKqM4z0YhuvuJ6sVrEpoxcMGQsmIoeHnZhjnOGAkRqYFKWckM/yvlKJOLhBpFA76WffgCMpDXZ4AzchQ37c1XBuU9LNu3IUZFbXKZYA7Zuoudh421REYMWrtAEmo+Nm3WrqIBTXmK2/R3H87dQGQxcf4Zvn7Tdd3RmkTq2/uzJODrBqKqk6gRSckZ2QHelUL1w0cB3VfpiXhMC845oxIjM00aVy0EyURgKzMpBJyL5SSKWJszyaIBIByDUdkfy6v7TVKJC0ZU0kggFg73W+nTa3Ux9Dqiupx05/ZQKg26ku4vQ0Yxwnbi63dv4W9MREWaXkd+roSWwxADAQSBQ/3N/d4uNtjmEaMIwHYNWAEdeUKe75Rdwik/RQIUmGMwPqU1D8tudUtfsjKiDlAqGDJWttqjAFZaK1Dnd7PQIc7njs7ps7TfqpAsNy6Wu3CvkFaKMGFSR/G0aLDzUsEuw8TpCTcvHiJYdpjd/0Eo5Xe3VxcoUxHzHd3KFm/xUEVDrFQLyINlS2WAyC2P16tyidHIIRAdf9PmbaWxhZjvoSlkIYWhaBMBg6C25SlwO4HVRax1lOpFCDEylADOlDZ3ciXMXSV2ajSgrTv+M/q1vDcom6RQVYJzi3DGkbJMFDP0N5ttg9ZtHl7zlkrbhbBcb8AMuua9x4g1UI0rMcs1+NQQFkV/WkcQTzj45/9DA9ffwrwvwLFEdvpApsf/5e4enoNgLCNAW9dP8W4vVZIT6yKHMH+9umQS4QTWtVQycWEaKSAY0mYWBU3zxw4IfH1GnbqmEBQrNl738up8SjneSdAHI89J32OmodQn7638uScAJlHr598vpDmg/rA1PAij77qY/TQtGJC3xWekguChUXnVJRXs1mIit+D6/KfCupTVuLevOYVAfpGTs4za8XKdjRrfpw/o+qZ3f3rnGwz3EPO1YqnYdAiyuNr5TpoIRv3jotY4Ybe+kztGUWcD7TiU6cgps5v9R5177Xfz+WQnOZ0re9Lj/kTmhxqfedaCKFU8NeuRQJeY4fXtMMH7z/Bk2ffw4svPsEXX7zA7f0tJAkgt/jlr2/wzrPXePb9B1xfPcM/zFcoWLf0WVm1zZNxWgmvt7q3c2IrbDQaang2wZs9g4wvrZS31WrZGLjRRVXkCpZlj09++Rf45G/+bxxutTlyiIxxGmtBq1R7ZTrg9bBN2zf3nqEPhCNkyRpWN8aOMKkaFBT/9muATvkRIBcUIaRlxvPnr3DYHxBCwDBaLj4EWSySyHi9pxHkJEDgZojxjxA0ioMJ2c5aFtEesTnDE63dFDGOo/U4PaIUsZ6ibozRuRO5QdOMAd35Wu+E/XQjPrWmxSgwAwig+dmWSnJ6F7Kw7hWNN1rT24XaroA6pVhMVuhITiKDXN5JQWDBJg6IISIOATGEqrDV1JGuUlwzuvgtlZ8ImnLAKFXG54IOx56c++4lcQ+zDZMhyNRCSUEEYm0XJCl15N/xHVGg4SjARozmHPHzZRgjKBWjaISPBDW++hxFrFqxe71BEC/5Xxehyb3HgknfF8cmj4wr7fvtu62fLgEt5LejjcYr7FuBMATtFywUrMKltovKMN7sxjuFqkjUvIAAEFkLmBQRy8MzmXgSMfFN13dHaQvOVMVowhMnLSxR37US9mpNhBVfAGDWMCBlqSXJjQUgzTNmCBAGCIDtSM1sCuhmVTrQg1ZKQUqlWsaIAArmXROrXtldawFlzN4r8ClX08MdBwwALrFFCIzD/T0O+yOWJddyrDlbKTArbLE/JMzHI3aXm0a0UqyruofiOSDyqpAqyNiYQhQFS7kUpOMR6SCYjxlhiBqeiXWIVk9oMLBTKwrWOevPBmT9dVOu+t57dg2BLUxUGYzfI9TeI/7I5nGjnnHU0EnSWO9+PDAFqg7HmSzAZiEpmdAOeBPIYvMt0EIILtSX4xG3z7/G9vIS0+7SQvgGLV2frRW5KK1x8N5umvjN2jCvE6ImPL18vluCINUCCqAzYKBj3IL5cMDdnXppmzXfgYV9lqn2U2NhBCareufPqx+v+WsOEg2FaoSyFEjwEyStvLgpZNozxi239EgQZhEFm1JW+W1ujVUUUCy8QwUPBw1BSvOMaRqQUsLrm1uknKBpv3mlwDiwECYIGJfbEdNmwjRtcH9/MKOiYIgRl7sdXr26wzRtIPkW93iNzYt/Cfr+2yCOeCDgbrMDvf8niBxB0xXG6VKL84SoxW1iwNXmEtGBS7eHHCyBHoRFcs3zOJQFA8dWzQpOd76rsjp3rkQVCJJkvL6/xf52DylFK52ODA/74RhAoqXBvcVDCOExxuzuvfKy+eu9u6ofntPKiaayUggDgeKAQMGK0+BRmEujDPfAK6fTQgvSmvqy5pgoD0yV+FVZmbU3WAsaXoEa5Vf+h+6JtsCgajRxJetUMPbTVD4PcG73Pb3I7tOEezvhbiHuB6fhdY/vE9DzWK/A2wGOaizpsn0MQDelsjv73fPqmtTxrtcHQPXInYYO9jnSNphHYGntpQur36XjNTWM7sSl8Q/HHSLv8MEPdnj69Ct89tkX+PrFF5jnGYGAF59/ivv9Hh/8IOG964IbXOCIDQqFVVVHN5KFEOt8Hl8OjPrcPQDgdThtPR1q6HOLfOkOqD83hNj9LVB5p704n//mb/HFv/9XWG4fVGELjGkarZCCoCQ1RgEtJ7PycTcIGx5i6eQymawVQhLqzpWYh//k6NueDQG1oIcaoQXHeYbkghgCxsB1HZVtuYLQnlAKTPErlZdr1L9XFPB/CAWuYAEcyeSA1PnFIWIsugYZlicEsnu1xV4ZIVyB7iFJ2xU9tKrRNCplVOM6KFhYpbiwtw/p94oUMAUUyViSGv8hXnRFxxDYsZaHdvervfZEBwGyyVURxT1htwFgRVaqQur71IqYUeUD7kkncxAICgF9H0cY7vXsit5j3IdGEhHAAipWyM1eq42LSBUXTaeISstmfKIaCtjPt/rnVsaRhqeaksXEVvhczy4LKn/hoPWsqXSmRaYz57gZjtx71htjAKx47DnDFGSNUU65uyuNvYyuPXQBEKz/Mun8smRQaTyZmFBI6c3173omzagtZ9pQifGY87zr8fUdUdqoI9T11eeTMRPGIWAaJ+yPR30fJ6QkGYIAdymHGNUlWwpKOmIcB3PRajJ8KaXbuqa6LJZTNgwaPKVUYmN0b41b/MQsi+z3QFX0ig+ykrhakIZBwy8jK9Pa72cga7hAkmCeOOvBUjIe7u9xcbXDuBkeMTOPN4a4T8qtS/paIECCNjFWL5JYo8MFaV4wWHLlqXWc0Y8favX280u+3k3pcQVJQLUdgH+mt1qSAZQ+yqFtvc6J7cUu4MEfWOdVANM8pDGBDjCy7wMr0H1kbXXrRn/wCc1CCJgRoeD+5gbLfNQQ091uVca1wGP6HaBZz7MiNl5bI3HAabRh4Z51at0cnQHWvDUilJJx8/oO85JwcbXDZhhQ4+xhSbT2s2EBRiEPIaw8x2SghuLUXCRygOiVOVFpvMqIDuyskCKad5YJoNLiw4mpKm61iA1IewyFgBAZwrUjDspxD7ncIcQIETXUbDYRyIwiBYclaRUqIVxsJlxeX2KzvcJuO4JQcJgz6LBYTz8CgTGNBC2/nbAZBzDUY353vzcFOODh4QB5/m+w213i6Qd/CNldIRfB58sWHEdspwHjByMyBewPBzwcj9jGEaVkbLZbLfBCDA7APC+Y5xlDHBFCwhCielWltORvBkhMcHqYm7R8lHme8eWnf4Or8m9QlgWIjBS15LBwAIYBMEVt3F3iQP85ZPPTWk313HWqrNWd7TWXtWxeffaRF0ZTzFC8jlYP/kwRQzV0ldryw2mtf6gUUcu4GzbsuSBWoZayLdpaA3IMFj2x3I16qEPS1x1UmeHnVHwGT5Yppyvl+PfEi3myxt9W6J6GGr7xe37ubOzOaftPO7vzIXkpemCtfLGDDbuPyFrBPKfn12E1FrZS8vS5577Znm/fQh9eCAAhqOfiy3yFy8sJH/34Gm+9/QSffvJbvL57wCER8sMRv/3V3+Pd9+7x3jvfBzZP8UVWzzif0YJ7r3OvdNYQ9P6zrsi5AkuCUNbhb3a3mv6g8uXNfa1KyXjx8iV++f/+H3jx/DnmeQGzetiC5aFLKWqgLaKhVmY081DonAs4Ui0iocUwWj9V7jfFZJqJfr0H9Yp8A84kauDMEFX4shqBYgjVOKwk4kaBdt5rOXZBzf8uXUUFhVrmwenkgsUa2bmpVGEGpogQg/au4tCFCnluWIZUI65050+q0QTibMt4RadcGypS4+Kj81VUOc7Oe/Q1NQhmlJwRwojIoY5bozhc6et5qI9BunPByIzu3lDF1ItnkXnnTsb1WGFrey0eLmhnlXOpPXX7a30ufXBNqSJT8AFBYQIh6H5Y3iMxAxxR0gJkaDuDx+YAX93V4DVE1k+Nry0BHMDFMCgTSMxbZUpbsR5fHp/hRi42z7kXQlrzHsdU673wypHfxJ9c4bMFrXzd8ZtNAG6EcNrT3EPqalvY3oidGxGw+R7E7w2cJFdLowFxj+S3kxt+fUeUNqkFF4DGbE6vGBjTOGKMAXPirupfI94QlCFQkdrsQUDIoi7ZyKM25V3UKpwsrCKnjBBdoOu9nP8oUzQ2bqCVHAGDIaV3kfs3/Tttjh2HAxGg+bdavGCMGv4hAg3rPByQUsZACmiJGQ/7PeI4VoElgHqbIG2sJNUqA0K1AmQjnOBKZ9D8Luqbq0or3U5nSr7GGJCImpm3DkK0bHtnXUGlUfOcorRik7UAyCO+hXrQxQWVWvdqf4ET0tBpMTyE0IVPz6xgnggHLlmakAwQi7tXhhYCY9oMKDlgmZcqsJgI6TiDcsbkSljR+OicBMnAJkq2UA+qUkR826sy60LHwUUDCACQS4EHcXhOWyv/XHC4v0dKC9LVhTYktXDIYqAgcNfIgWjV1qE9hqrwq3qwvykFXEM79dUeBANatyRwC+libsn54ptvaEdEwaSHBlWrrtEbhBVwlwzJGcv+oN7fOCjgAePq6VOQhbvMhyMOxyOIB1w/ucJms0EuwN39HstRywqfchBmxmazw/5wwGERXExaO/X4oMafBEYgwWazwdPrp5jSHrg9oJSM66SN2y/4KZjfAyHieDjg5avXuIU2bAcxFkkYAIhkTGNEzgIeRjx76x1cX12CETFQhJAgG+jJdv6KhfUQCMia15SXA/7k2f+KcvcLyCYjl2RAwgCnEFAYWBbEssU77/4WL/l/QZK32/k0On0kFyoOO2c1OH+demR8XYOhxmoMcdpiaP8wB+xUdVN49Tlgrew4OK6h8WZdLQYeqUZkdOqetN8JjWaZGSnlmpNZTbEGLqh7qACtkpcLcWlgsb9OPT3+k8wg5nOta3oqBmg9Z12Oc+Ci4wo+HvupBSvWiqnfsd/ues7skPdqcg9ZT+dJ1OYitJ6CRyHICljiZE3W89OwVmeEbXEWMF7miAee8OEHG+y2W3z66Wf48uuvsRz2QAj4/LNPcJiP+OD9gj+4IHwyX1ZPF2B8qHRAzf3/b1Cqa5ANNcDGEI/XbmtSh+mArt5pNV9XEI/HA37zp/8S+5cvcLS2ONM01DYD2fJxSyktL4ganpNSrGF2XCs6NXyuhZ09usj82KUp5QCsCMQI9Yaq4hYh4HHQqsX2nDVyaXlt7pmqBk4zotSrhgJLK2hVWiGSkmBRU3W54YZNZraQcYLkgCKkBeSQAYpgWjqeApUPIhXvOeQQsLrGe6VNrOqi57A0IQyQltJv4N9y68YNDocZhIwiA4RQe3yW0rdLaDRMpCkPYejpvs8zc8lqCgsERMHT5UwWnq5+zx/0PmIKRMVkogpxMRoqoFpFstj5ZANcdTRdqUwKDLYQxBgYYRgBUiMBM2EuGWwRZ+5dbfy/dIYQVXS9RU9PSWT/EgmEA8hCIFkMtzLVc6DfNc8es7U9sADCKgrWYdH9eTz15LtydM6+4twLzsPsOx7W3iWDNAUa0LBRinVLramEHWNqdLYeHODeOgEIvZ7Q5oVUgPjmCqT99R1R2mgd5ma5aqs4emeuISDEiMvNBssy16pxDhiZe02gT8hWQtkfFu3/AUFgtTgVgZYkzQGDWalLVQhRAbMSp4WFlQJhLchArKVRc2EQS7dfBYRg4Nf9VhrCJyQoJSBGdUtP40YBdskYpoxxGlFywXY7IsaxegO0elpUIARlfil7YqcRXyBveF8b/EV2hcCUN1bmUpMnpXnh9M+W+yK2/pGB3TBimY9gYiTjkxMqW63/NouFE38LjUoCDH1nePTAyy0bjCLN8lLPIhOCjTGblaS6y4G63zX8ykBuDQUkQoRgbik4Gg4IqCexaMheCAG81dzItORWjpetCI4pHLnof8s+4+lbVxg4YzkcIVALYuvkYTTM1prCtFYKAEq2cFE/DUBaEsj2lUgFKMSUo5yRjgvu8g2W7WalXHtvPZetRM1j2qXaWJlpWxNfRxtDcMsQa283RmeVP7lCx5CiWc8V8KnVtbamqAm+3rzb8tpYq5uBvZJlwcEAerAiKIEmBWnBh5wQglLdw/6Ih4cjJJdGrWcYn1tAN5sNDvt7LEkbxvKoLHAiQjoekHLCy9ev8Gz8PgIKUAp2lIG84HAz4+3bXyOGiPF4j226wS9uBtw/ZJ2nuTlCLPivf/R/4c9++99jt9vhbgNcXzP2B7W4D0OEELAsx5p38fBwh8+fv8b11QWe7C616BAdcbl5gZevMhgZeU6g2IrtuFcVAJYk2MbXeC1J99HTc/q1OCPAxMHLuffOSLyVZdMqY4WgZcjVuKKN1yvvNsHeMEivMtjfVc41QJq9cigxooVvuaCt3gayRsGn4zQazDmfPLdddV3MuHCqlDwGCOcd905lAAAgAElEQVS/f7q+6kEqtfWBoGlQeuZPhmocT1jOrndvMV7xVDesASfRIg0q9hcDFTwUU4q7nazj6zi+8oRHc3cQqjL7tErgm8bvYM9lw+n6zhLx68NTbC+v8NM/vsLF5SU+/d2neLg7gOaE5599hmXJ+OgjwYeXwO/SdV1jQuclBVCYUNLK1r9SSpynOqZoc5eaBwmgenuJWm6vG0NLR7MigsP+Ab/403+Bz3/79zjc7wERbTsT9SyUItXDxkGLL60UMyiPHMZo3jd7jvNsJlRXElm1O1bQ6CHqplKgVTlUYyaHoOfTPjNtRkg2r6FhzarpGZ/uczoBIJlO63tO8MJNihNq7zJAIyikyatcEqwlrb7PauTWnGq7MZuXrhoimoB2WlVM5ikBRoMOmCkAyFrROuv3vYDRCUXCdUsmwWxxbDEG3N3f4eH+Bk+un2qhrZIgHE3JpJWxpg819xDsNYtwHAU8MuifiicBgFYhsi6Ul9uvrFQ3SwQaJsktWoi6sDsPRXXe0wxtyjM4RlAcgFIQA2OcBo12AbAsgnlOOM6pnqdTD/ZjL5aG3PacQM+KecxKazvgXrRi42bj4VpqjTQXcuUZf8x3XbbocsjZ99ApcnXcUPJezElRnJbsfYPEPalUQwMCYYgBYwxAIFDug5OlzuV0rKuraMqID9kdBwBAUc30Cl8e45f++k4obQRgCAE5LeYuV+MWmzVCP9M2R/NHBtPGgXlJyIuWg57N6l3jee1QD4GBMeJwXDBEwhijlqoWYE4Zc84oKSEzY4gaQkliDQDZbRVqVUjLgsOcIVKwmUaM44i2w4AHBsDCNJuFokvcJjLlSoE8TElSog6IMZhFIyBa2fp2ebJ3RvK4chGNuVYKawChavh6yGPkqqh6Iqbz7JL7Q0r10NqgIWBsxggmQRwjsGhhkRZ+w7WXk3vrfN+KFScBlFlCxDyl6xhl8b4oACict5TkLgQydDlORFwZVsVk8DATVbyzH15WJpWJgJJRJCJI0ZC+OOh4c8YwaONghjY+LUUq6Mm5YF4EuZApVgW7y6cI0wGH+3vkJanybOFYZIcSaOGcFYdVClNFJw4ByXtZGSMTaEXMmkqdC9LhCCHGwKqIK8hSZUo06qB6EJoFvmeIHsLmYauwSkcwBmJMUDoGWZmcvl6kQs+6x75tDhQcFBB3Ia/GoNY6OSMVwTLPmKYRgXit+NbLwMWS67kjO/Dn4sZ12BqSMI0b3D/swWHG5cUECREDAbzRSnXbacRblzsgiCrsrGw5pYRf/vVf4vBwxPbiAm+/9QQ/2syYh47mhRAjMNCC//YP/3cgBIxccMUf4m9v/yfkvCg9hoCH+zvQMONw/B1uvvoSz1+8wothC9r8BM+e7PE//LP/B19+eYcAnWMGY3DB7evrYIk8Ib3Lz5UmUE5R/DqsZP3mynvSAXp/r/98doDQWRmlgmkDcSH0VplzG2M/188uUlYRGMeUQZFW1LtCS51Fnaglmj+e0/rZ54TkN73WAxf3Gqv3xIEIr97vv6MxGo/XvnmJHq+33//U0+l9IWvhE5sPd94iSBdO5n8bQJEzpOH8oSrzj1eh/STnAVIrV/ZzavPSSAn3zJ3O2YYNgHFEwMvwLj76wwlXV1v8+uNPcfvqFQSC25sX+OXPH/Djn/wE37smPC9XKFjnYwEAshoppV/ffjwdjZxViu0K4RzoR8UWqkgUzMsRv/7bP8Pnv/kF5v0eKAXD6PhC+XxaFpSUwQREK2vvchfQ9jnDNGLc7YBl0UINZkRV/YfbmJ1vF/fOA16hWsG8nT8O2Ow22Oy2ODzcqyGNVf5zIN/CSgPOh4t5QVypFCIEO1tCZPKneVqrwuhKBpsczxn5kXzzs2lh1eRg15UcXxX/xmrh23tStDiN39yKFimGSfYMW7NGYAbCdV0zMQYGlpzw8vkrSE7YTROGcQRRhLcn8UfwCfNSUjJ1/wR31J3tFCb4elF7X0QQSJWH0p+tOubmF6oyuBbkwXlZ1xXUceSsS6HeVbORgqYR0xDM8Cw4zlq1/OHwAAJjF7zQjp3hXgb0c1yhF1PY7Llq3HBc4WdVUwiKDUz8HPZV1q3OTuhIwHFp8/yZnWGVQ/04hN+Ahho4BGogLgVMBbk7hbCqx/VQkHlBCRDr5VyoIFKAR9EJKc7SSJDUyVv3LrexcWBIOpcf2Mnpb3F9J5Q2v168fIHtdsIu7joQQDAHiF51DRjEevA30wgZB0wpI6cZkGw5UYxGaIxxiJiXBSmppycw40gBBalakNyrkksG298lF0zBinvkgiUVUFE9fTnOWlwjDKqMoAG4Kvx86JVxRNTQFhJos1lSJbGL39XP6tjrnCsTUMHMgDZ97vpGAC0PqWd9evDdM9jGB1NEGsyysbKDMZuPHRYOAy53GywpY56PXS+Kbo8Eq9cq66lCQqwy3Ll8g34mrVBDvW3x8CapjMC/pRUXuftWXXwFNOQhfaKWgaIJt2oF0v1NktSr5rlBNGjiuLSYbUAgWfvWCamSvBweUK4uEOIG26uI5XBAur/Vio3dfvpeKNP3/DV/PbT1Mk5NcOauoQwlC5IxbwbMs6aMyanNb+kWZZRWlKHmCviYPAfUwWDwMQCSBJkaDfu5JGqhkbq2LaTNmaZWzPM1s/eKK6q6B+xKNKCVS0XHmucFmEabCzfAUbxPDDVzt9MuK/U+Do5sxKPK+4DLC8LDfo/yEhhGxiFriXliIB2P2G4iNtstCIyFYLxEtHgKvMl5Qc4JkmwPAEwckVLBZ5/+N9r7UQg3d3dAWhDDvwZB95FEK4eG8SUYv8IFz/jgyR4y3uDTu9/hg/gbvPpaUFLLlXAPZZtzR9vSwqRr7qQp1f38v831TXlKcvLcgA4UEQGkFcKqsYq51mNqgr5TtGxoDqb6IiYOuoagzwhdAaje61Q98atw9AZeT683WTJPFVIfXFUT6w+qv/v3qsX73D26Z0p3PzV8cP29f1avNBUrlNUHxhFRDd2qiolXemWu4e5vmi91Z7LB7naJUC3S0bHt7jv6r2Iyy42FVDDTK0RqiX+TJVrv15pdEx7KiJfhKb7/3ogwXuLj33yMVy+eIx8zjsdbfPKrv8cP/gh4+xp4Ider+xUL3QKJFQl4HIK7er69rLTmc5VH52Ylk4HaiiTnBV9+9lt88Yuf4eHVDXJKGIaAYRx0PYpgWRakpEXBOAbLAe1oqCqR3MJk67h1zR0897JOOp5Nzvv9XiDEEJAC4auvvgJDwZ7iZI+uMdYBrCmgLpWBVvE2GT5cDydW5UyjOCyzjPwfqlZ3kZo6BOVLpYXGFemMHD6SAu3X5p5ZH4/xQghgbT8EAIob7jwPHaiGe0X1pxuvCh4V7A/3eLi/wxACtldXiMOIEAe7X1OuEQIomOfelXZZj0lsvR576dn2cH1GVNmgDqk0xc4Bgv7aRaJRsKbYnScSOGnS3GEUECREBAaYIwLLKsUmF/WsPewPeNjvcdzvkXPBxXYD4bHRwGouOFHjunVwnlTngio7lZ0bryzUeD6o0iyx0+dj3q339/SK9ev9z8ffAxwT13kwNRxkf+teW8Bk7ddn2JAj4hBrLt4p3OU63+LLUXmJY3EGkLxQTh/a7tgYb5ZN/fWdUdqICp48fYJxnExz9Ulp77LIDhhtowNQ46Wg4kP7mOhrwcCVWHEAB68xDlZqFxWAZ1PAFOq0fLFcCo7HGYBg3AzAMEKgTbJj1NCD47JoqfcQUZnVGQ3GbXP+TuuhIdYLzvmdM2+vrOdlgH1Ubq104Sjd6/a8ThjBDonootbD1AOQ2sxaBL3hpncrCwTzcUbCA4Qirq8vtTFkYBwXZZaPlDc7yA2s9cKfDGR2jAq91aQ1Ae3Tkq0UgVaoIkLoSks7g6AzAIdd6YZlJJLz8nZYXfEBoNbIUUsRw5gkQcNp+7wVnwNBy9K/fvEc28unmMYR0+4KHCJKPiIdDvB+a5UqKhhojKUtkjF4mwOzgvwYWN3zKWsOhNagA2BhT25Z16XomIBUUHvK3B7lvPn3bVF7a1cVEjhhMETwElYOeqqS0dEinCkyq+EjBm0W76yPNIZ+WY4QXNh49Tycs4bX+1Jbz25B23VC1xwidtstDocD0uEILhrSlkSw8A0mZrzz7JmWoQ/aPFokA3NCLAJaZi0UFALScVaaGCJkCmAExEwoyCAGBg44Lg9YloIsGpZNWSt45PsN5vmPgXkGU8Jm+zmu5IjnX/4QH33wHCnd4ggB8qKh2N0euqJNBMtjNA+LJ0PL+rStl+w8LZx6QtR4sF73/n0mbZ7KaIKvlulX7NwkvO2Vi6g1EG1sy638pwVHanPjb1DGVnPuwr1/39V7xup8+yWTbs3QlK3Kt4h/r+D9JoHcr/Wpl6vfqzcqhG9USk722eam9Lya3kpPIcCqDVeJsfop3efa62YotDdOR1SHSFSBvEtEPlGu7koAUsAHzzSM+ePfRnz55XMsywPu7vf4+De/woc/LJCLLR7nfJFP4PF61D/Wr1dl2XvkETTqx/fV/u7XUkTw6vmX+NW//Re4+ey3WOYZMWovNl/rnDJy0jznKs+CRgMwaVuR1pePMMSIRTIkCzxkyw02deB1HTWNxKtruwFWiiCXjP3+Aa9fvgIRaZVoB//U1CNHBAJl3x7qqO93VYN9A8VvYB0PTfHIRfnaKZ91QUTIpuz0qRwaaSQMBArd+QqApHWrGma0fo1mDKyg29CbWBIt0IjSfi+lWPSW5l4/3N/j9uY1QISL3RbTMGAYRojlv9v2aSio8xHDpEUE1qa0wxqGkuqhMnr2Y9ftH9Ep/9LIqQK2KKQ27no7PyuCprABVrBmfTU6p+rF4hC0tULQYhq5FCwpYb/fawXzwwHzvCAtCbkIxhiBaXAbQBtQt3cNKTfDs/Mo5mBYsnEIcq+4eEiks3nnU2weWEKvtPVyoueBzfN2KsO6deu8juLKHsE8pHWVTOH2z3fyj0hTcqLms/Vywqevv0qdA4B1RSi7Y3ZnwRuuUxn9pus7obS5kLq62FrujGurAljrZgfOvcCo/wggxQ5JUAIaGHBvC220a/2cEwIK4sCQkmuFQFe3FPAVBCmIABazpE9jQIiDLXwxa551sV80PHOKA1q8tV3meWsFSYwBOuekYjzQNfvQvk0RoBZyA1BX+MEJRkMk/d5FXE41tujveSNlydlJtFnM6lJa2EApWjjCK/oYI1lSQZrvQET4CguunjzBNAwIkbAss1kWlMgLdBsrO6sFOHxIxUqmNwHIzCdJ9Kjv9VcXFFLnB1g4ZlWmTBD539R62WjRKGc8Hiqkh458F0hzDV1pQ9KwWw/prL2famSSfu5wd4/lOOPi6hq7yyvEaQOIWraW+wcce8uoAyhxoW3zsP8xkVnQ3FrTrFIxMIqHmfp73dzbAp4HuI9YxynjcyulZh2syoOvPuc5IEZLRXGD9n9jVgFnm+rZIh5GSQAkFQyTgY6i+RAFhDlr8QR9Wiv/DgdYbiDoj4MZHjZxg8NyAKAV3SBScxv7+XKI2EyjVmZMCmiC0UAUgIs1jXcDCgCOAfOyYH84YP/FF6BhtKgOrQYXl6PyGBOOAKGkGXQ8IMZBGa6oxF9SBuWihW1CABCQjz/Uyq5zwN/97AMcDkdM48d46+nPANKqpL6DAoskzgV5FqQ0o5S8KhxRyKpVii/feU/Q6XWqYDwOeeuUNxuP70+MsRZf0LLgBX16iVhJ6VVtWHJvjN4/chPShVRp1lDs8+NzOlgpaqcA8mQejyeNppzR+hl9+ErvRXIrqjF2BbLfsHbdY85eLdD4vHImBiKrfeeM0v3Gq0NgpQ+htKt3Xvu9O/zYjX6Fh+2nr0cH0di9Bmtl00Re99z1evoD7mXAPyxX+PBtwTiOGAfGJ//wBdLygPtbwae//nv80U83uNq8g8/yE3uqj487wfZ4fU6NeoAailevM60+X7h4IilKSrj51b/DX/3b/xP718+xP85aPn9orQBSykgpgYIaNwJrKwH1gjVeSOLyRj2FpWgkj/N1B7dNzOirTgsVwle6L3i4vbOUCcY0eA+2JucJliqgzF1lP1v4rhnHS9tMA8JS+bzv6ZzUGDyOA7IwcrHoE+fvQftfSWneEd9/j1gQaI9Tkf6cBfSFDogJ025j62ehZ9BcYs+nVUMgTDnwEE/3jKg8XZYFtzevcdw/YBgGXGwn8DAhsuUqUViRjC4Bt8V3cO9rU9ZAXKQZIHSu+r4WSGzymBi1GIenzTi+1cmZSkQMrlWm+ygVqntEZrhrw/BYk6BJOjFgGMc6nnlJeNjvcbi7weEwY5kXLMuCZU5Itnf5YqdyvMuDX596qXNpfTAJjlXUgN/WgakVHlfDusDb6lYjCQgs0Nxwe1RBa42y5nV9z0otuiJYp6T55/wuFROu5Fb7WDshPg9UBXvgiEBaIMeVxYx2HpoS1wnfE97DrJW8dZy0Cret+O1bXN8JpQ0CA2gCSF5tNiAWeoHqScgAgoVLFdK/I/sCO+NtCkGICth2JEAYFBRaSe5cAAqMaHvL6PpssTLbxQBWjEE9MGbBZFIPTipAzBkh9IA5oJGQWFaOeoYgWIUBFVhja8uLKCBNTAcjSLFQwGIxzy2pVV2x6uXR9mTmKyTBGIE5UVM6gK4/iPaCU0tiG0cu1ozbxgoYCLKkSzbXdCnA7as73L66xXY74OLpWyARpJI1NCqnelRg/U/IqwtWLbGFo2jYpSqVgTR3TEyg+Iy1+iChiHpj2mWeSRFIyRiGocvXaB6yYHMBaWioQJkKC0A5YzQPVi6iTF8KhqCHMWcPQdV8shAYGQwu2udGxKsAmnV6WXD78gWO84wnb10h8ASOEygewEvWUr1ozD2lBDPowH2BLijZ5iFSwCiVgTKzlo/3VbD1iZGbhbkYlPJ/yOiMSmVNTMAQ1PMoYmE7ELMiNguvgnD9WZurtuOr97PPq5BUBToQrFCgcqsAVKtjiBFDCCoUi0C82b3RZ066zzk7LXpYZ/fgeojaH66wAaq0zfMB47BBGAblEa6gEyEOE0pQJYMMAEAKXs0JT6ad5TQCKWnKv0hGmAqQCuZlRj7sVXiWor0ge8q0sLYxao6qn0OywY8UgPg4b2a0n8stIciA+fhP8LtXP0HcTVjAmDYv8c73/gLMM0gWFdrMePWScZgShl0HPKUBWeD3KC3d+zVcr6JFu98ZwRJCQIgByTxhu82IZTOhhoD49+1gFmghKCJSOvNwGDY+DKrhZaqoHIE0q6LNbxZuzfjRgfPOOtsrBMpdu9DE7qqKbf04dUJ9rcDVZ9tnHzdOcZDdKzhvvhr3bYpbVUKpkxt2w3+MEi421379XEmuR8qNEw2vv/ES+1wLOa9SA4DKa6fu1TOZUUx2BVnnfZ+W8j9ixGfLE7x3OeFHP/5jhDLhiy8/xcPxAXe3L/HxL/4KP/6Tf4p3rglf5evKd07nfk5JO734xANyGrbkdJBSweuXX+Ov/vzP8fLjj5GKeuO9p6saKwokJTUKckRkrkWbkuWBD8YTtGiYYD4ecX9zhyEwOLrBVFfajXVEZKX6GZkEsy70el8EQMmIMWJgMzQGa7NjZO19JrvJ6p7BFDnznhfWPHERVO8SSGX7/rhgWTK25lkkyViOsxmlzFhGBBI1FLd0lQB0ecoBXDEfd2e0csqgdKHFwGI1tq/zrLgawHWd9NwkmpFRcCEjgAiIIJJguLzEMI4YYgSR4iIwuf5q+6j3I4a2Y7Lztuqv5mHRDIgodiMBai44NUpCB8y1yA21KLl2ABVj6btVkauqhPcirC1iqljpLveBqQkoQMXMcc7YHw64vbvDcpyRDgcsKamyNi9IKVmF3rCKuJLKZ2yoLhdMto+GPF1VFPHWS44bHY8b/8ouW1TWgj0Uu+VJxiDGp/vnNyN3JVsiMwZbzVhq57V9zNQjYXhWMUz5JsOiJNRFcDgPdEODefB7/ouMWmZOgL6Sb+0f7EDUbptFo+pqSkwnU76twgZ8R5Q2ty6lrFb2WvrQTo43cUxZrQCRpMYpc1sTqJsZ8Pwa7xWm4QHaj8QBZyjawDWQKitJDCh6ZcJckHIGcwESIQXGELW89f1xwWC9pXLOmOcFS07YjCOmwRrpsqlXRtwKQbA6Yc3aBDv8Zm3Wd9uH0AvrzgtpHFhEkARahc+0/3kuWFI2pQmre3nyuAA1wR0m1IspckHD0a2sfQtzJDupgYGSCh7uDri/+xwhBkybEeM0YJk9FMLXMneHToFkFg/sozodIh1PzkkPNLfD6GFDmq0mOk0QsuVxBDIB6IDcGawpqa6wkCXtsykWSkCsFi0QhhCU8ZL1sAkRYPVwUGnhEgMRME2QoMpvEEFOqVqYiIBl/4AXy4zLi0sMmxEUAmIWHEXDUKMxjRgDcjb7i4XRKIxV2ohE2sdMpCrdADDAGZj3QRPktCCOkzFFFZaBK2kBfk/Wgj+q7LkSIyagmgUJphDAjA21V41ddZfF7me/O0Csg7WKlMkYFYuAi4CCh5c6QNL5SF5Q8nIWkK5ecvdANTWaoKzlqgUlZxzKA7a0A4cB7ikhIjx9+jbefvYEm6FjhXFCjhd45513QGHQ4jNzquC/WEnr43JAkqS0mDNyTsgpKx9LGVISNnLQNbezKSwgy4mVUqyKma8k1fUSaeeSoGHdyEAYB+Tle5j3f4jLq1+AeVCjCBF+/vk/x+a9K1xvpFrye+j9bQG+fhjGSpoQfNPHpmnCZrMFyhFFBNvdDpvN0BSmnGpKYDUXdCxeLbOszkZL8m5NpAuODw9AGCBlPquA9crUaWhhry01z2Cn+EmbW/NUt59nPTMnqoy84fc3fWb1+u9ZX6AZd0qvBPvwv+1+9s8TsdYv3RsmE1xHP40qPV1SwOJKDPm4TOmv4K/RY0U71FKwWClrzuP6+T7kAb/MEc/igD/8aQAo4/MvP8VhDri5u8fPf/F3+IOfRMSLHTKN9b4aRrcOuzy9Vt7UR8p7P1t7jQk3d7f4m3/9v+Gr3/wcEjTHaJoGqy5YzFOuOdAhNM8NEZBKwXFJ2I6N3/SPcXDIFqUgEGvrgxqO2E9FXKkoYgqVRmF4OfcQ2IqHoPJpIcv5dpkeWA2z3GsAZvA1zz5BYZkUQSoF+72Gh49TxLSd1BBKQBxirfJYclbepA9Wxd75NBkoNp6vZNnmxuRywegRLuXqxkCbYbd1c9omZOQkKDJrqXkQSlQ5GmPEdrfTs80BFKkuPkFTEFzBYtsHqTnpYpEbpdJKMcWuKiqVhtb895T8HodIrqhB9+sMb6jf640kzg+611pCjo759c0D7h/uMT/scVxmpFl7lqak3rW8pPY8aQkTrjDVu4pGNEmdPJC6aKPVGarj99W1eWlVkqqccsdzFf8yqtfLDAUErKp3uhIItPzS9shePvjeNvkAIq/rXvGsVOOE8ysYJrZqrwMQwwCIOjbE9txj/3oZxE7nhhXZcHoWLTjkuN8/fypPft/13VDaSkFZFkjwEENgJdWLlqaXAkh2V3H7yNnLBUVP+GwlygXgaYQUy1UpRWN8lwXLkrAkj+vTxYzM2I6xMrci6pqNPohckMqMuRRIGQBWspvGAWQNBQGYogWsz52XekXHuNvZl+7zfolj25NLCYBRs6yIq8VGgBpy0X+1WmD1BrXaj1vkekWz4nmo8hqifj6VgrwsuJ8XHAeNnQ6kAiWLOqa5gkCdZ+ielwoQRKzfWGOGRYzRiyBrKxDTGtoiSc4oSZUBQBUt9+ixgeuUM6JEJPu8iBl72DyVwpgpI6YEsURfAFhCQKBi80vWq0XAKVu1oGK0UKwVRdCebZbjF5iBnLA83KKkAZILUhEcZ0GKEdOoHgcUzXXKpWhxE2hVzFw0rJdzBiBYUkEMgDeb9PCAItAmzRkarhJmXKSEq6sdSslIVjAlBDbmJ0hZ5zIQUAoZXWtFTHU/K0MrArXUGijw8stkjJFMWCiY5qrcV6uY5Tp40rwansw7Dmk0KpqwH4Mq0CWp9a8vYtLovGNyOvkGDk/zmOz+aV6Qyz22m8va2D4MEeNuwvfefQ/X2x3o+gOAI2jYQrZP6y08DKJYNdlSCnLJGFMriyywPky54JgTaBGMnLELCcWMTSkvmPOMS+wRylG9/ZYTC2Qsx4Cv5wm5JByXAy7LCywpa96mr/d8BBGwm+6wGe4NlABxGCrNrSpunYTH/r4wwUcKj332PIAgzLTBV/GP8eTJHY7zc1BewIUgZGUPClAY8CbbpJ0gAdA6tJibdRmkhroigvu7W9ze3OPqyVvYbHbV0+YKVk8aj5UpecQn1yGyZ+bfAbhvA/T/oy6xsb3x7RYi7X/3z63f7XFhN7bzhg6lYfdkUAeAKtjtlK+a6ySPUsMqSG2K72oA69dOFLa6b93fK+W4+2xfpIVAeJE2KBH46EcfoXDCl59/jSURDjev8Pp3H+N7PxjxMH0PCcGa9mbNZ2d6tFQe7r1+Xmedpw5m+HxByDnh7vUNyjLjagq4iwN2g3r3ShEz3GgEBoWoBjdfMxKIFGy3A7bbLXLKiJGt6q/m4w9RW1yEQBbyRQAXDd32vmZW/o9DQMiioNOU3wxBCIMiAdX+zDhqBdIMCxNFFFZPDhGBo5b/pyIWzgnN5enAs/a6LVjmDBLB9ZMLXFxuISmjLAsWgbYzKUUxjRciASw8UJSflwQmxjAEFA6IQY3ETV8s5ozR9RFopE2pyboWzunubSlgElMACpIIGAUUtAJzShkyDQCs8rX1+Gu+9p7A23zV89bXdNQoEA6k0Vv2mlhuttPQ+csVAXQAzhWh/nPSKUrSDe0cv+h5mam2K51Rz3I6HHB/OGA+zFjmWSPMUlb8kkuN1HDFXtvsGIqsScmtAbuO0c9EU6J65bQz8cNV7lq9PBXFxaTKWzQDjt+JA2OIXYVG9DKo41n1sSenWwCv0O5roPi2KL1LVsWQyQTnX1kAACAASURBVPZUJ8a23kQMBDX4BNJq7sSK69ch0xZZYXxEc0A1tYhIlVOBwikOZoi0KfQ8VSDqNQLcEnZmr9v1nVDaOCbg+neg8n2IXGLd16JdJrqacgMFcGLVg4hCFTj+DTErvJgiVhk4s5bgtAICIRcMw4D5eMQ8zwr+Fq+qCNXOi+nUwfp2Sz8qC5GbZyt4ocRSiBEjYxxjHXszOHWWI1HrO5jM6uRjbRt4Vlmzv4tYPLCtSY0zhlYZ8zWpzZB75c2Ft5/KHqxBvW8Q0Zh3Zi01bEnQ2peaNO9EWjx7sDh6H7IzIgJqb5lwatkEoCEGLTdQBaYXOOlAmH03VDpY36lWcWK7F3l4i6417FmNI7cwS4+FZ269ZBaL1azJ5GJCAhpOoAnOQBgGMAeUpBUoAQ2t5JSx5IIlCYowypIxbbcYtyPm/R3y8QjnigXkhS2tSqF7bS3nz/eQvQWBh6KqYlVSwd3NHdKyYNpsFADD6iCRIINU2dTYNHh2kaaeUUvYbqSve2/MpFhoB9n+rEIXbD9WoWi0Vh38OyEESDBLKExJlYQ4DJBSkJYFYYjqiRcB5dwqevZXJzckG7NmAhUgRMZmmnC/LDjuDwZcLxBCRAhjnQee/AC4fh9uIenFQHBQSYwTHejRMATALAlj7c+oAkRg4RFSMFIGS8ZUsuaAlASRguUooKR8ZF72yPcv8Ku//ltc0AHPhhkegsEMHJYF22VWpVSAr159iBv+EE/HYcX03wTi3+SNWk3ccQM30Hr62VlG/C6/j//i2du4vbvBw11GzosCSbFCFiWjlKYsCtDyN6DAp1jijpihZskZ+4cZx/0Bwzji6Sbi7befgRKfWFzXc/qm3Ls3ztfnik5hOqExMkBy+tTHvOebX/dnnI7Rx+meFfWMn89tOx1X/5lvUsb7d7wHmY+1FWItLcfM+KfTXcOPndnELYy9pbF7fVU0xuRvP3b9/zeDlH6NXucNML6Hjz4CkAd8/uVnuD8e8PyLLxHHLd77g4Bp2uLX+w0Oy4InO0boDHFOI/v9HpvNpr7WlMZujeAQXvlyhhYmuz/scfX0HQzL+3iLJ8zlCCkZh/0DXry8tcJmGiLlcligLSviwNhd7JDM+JOKGcpIK1GWXJBYUDJMaVOekVK23q7Z/isWQq75vnU/K/4hlMBASubZMCohAIcZEmNV9GIp2reUVH5wsSiXlCtxJAH2hyOWeQExYbfb4ur6EiSCGRnJvIFUxAxk2hIJIYCyhvaTyQGVNWbkWgrAAzgvAAYF05ZDXwpp9AqprAvwKBNTVDt1ClAPh4SIzQQ8HGfcvXoFYsLl7kJzZK3IBFu+bRVRVVQJuswrQIK1L2l0LKKG1JK0uriFgdm587C7xkTbcxTHnJzCzhjWzlmj+yY7zp2FUw4jpnR03EBXphSU4wHLnDAfj1jmpJFDEGv/ZOsNN5Awlpqr1+bSQkdlNY82vzbfvoufOmsFMCO0mBwErOn8ykOh+5RyxuA1KaossrVi5+uEGnnWCy5XWF0iV7EltsNqvNbgJjXkA4pzJasSLmRGAmIQhaqUgxkIakgoWb3qxbzPsW5fNoWTECAonRW1wLGAQgm2eZ0UPv7G6zuhtIEEYVoQkrhJBmf5eCmgnFVTr5q41Ka2bnFa3Tpo3DCtzc/toNrrHFUJGbHBMKilKoYjDvOCpWTc7WfsNhsECIYxoqSMglhL93qYWrEy5xQC9sejNmmWgNt5QeCAzaS9MgCAeoIjVIVN31u/5fRXraLdZ0s3aYHqguRM1wpJ6D1dgWvWi/q94tZVdkmlAi7lVkSkuKKi1hiwNvsObCF8wkhcVr5SBwQny1/5Qa1cuXpD/2Xqk03PICZoz7ZApL1OeobmBUPsbiw9OKD2L7fvEXkPGqoWFbKwNgKBoV4wka6HDzMQtOF4iAHJrKcZESQFxWLtNUyhqNereBuLjBgHDE+uwQ8P2N89WL5P3TCQ5fkUW48ay25ro4CiEU0koAQNTTo8HLDfH7VHoS3qm4w4rq/7EpecLWzUvKseJuN0IaosouRH9wHalgoxSLJW/TSDSbEQ1WVesNmMUCaHZlARXfF5TtgEZZoAupy2teDy0Pg2hmJ/qyFnu92AIHj16gb3d/dIacb11VNAtjrQy++DOoVtNZ/zy3V+De3n1DJ5dE1t/G6KEgDJT5vAYLcg7LRRvZgn7+72Cvyr3+H18QG32YU+8O7uc/zonc81V5KBVw9v4+++/O/w/odPNaS3rgOtfq4UlE4ekxl13OtR/SzdZ4MVMlJQ0INz4NP5A7wT/xN89CHj/vVLfP75DV7e7JvxyR6HkjplYQ0I+vUCzCCBCELBZjfg6Yc/wp+m/3FlJDhd/LMKS6d0rh55urHOj9604342pM3fA6n6r1TvVf9V6kDzmet03GowKY/25NFn5WQvfs+1UmI7JUtg5/qEQXgoudiY2udFrWVlbbA5ZS4V6Po8urmc866dVcTb4O0zwE2egOl7+MEPC+blAct8wJKO+OJ3n2AaGN9/9x1cPiR8fbxCAOHyYgcE9dyJaM+0Fy+f4/r6KUJkbDdbBFbzH5/ylm5zGYSL3Q4/+cmPkD/6EPnzn6Ec7wAISjri/v4Of/3//SW++uprjQAppeZSO74PYcRSBFMccJiX2uNJ+35q49+haGakpyUAljYQtMKgCGlE0Jyr4dgrGidRoCgEIGuLjCyk1Wp9VtarjQiQwFgA8xbpHhMBeclV9hUQ0jxjfjhAiHCxu8Tm+gpLEQQBxHKGUtEKrwmo3hsQAcELhFRqA8S86RBIEkj0FdcIEiICBTUsimhES0bBIL4vlRIBEHIJCFH39tXNPY6He4zjhItpwDhNVuCuyc6VsaSntJXhQZWTUsSchmZYtHFnEeXXlQk85h1kfKnJxcd5Wfp6Z0QhAhfN3Fg6LPYffwmIA5gL4jCg5IKcSm3RIEW0v52PEYDWGNAPtPE6D+q9bo/ni0791RoUVM3wXqisFA0zrOkWPXsWoBR9hrY16fEhagGX+nrFj3Iy3nNXw78EaDSYG8sF3Zkz4K16m8LECmL1ZzbHQPGzWlcPAAqCWC0EoBr5pRtHmxedI503Xt8NpU20NG5KGeNKX6M1GkM/6RZ/DzvYVVO3uG+xqml131f82ImU2nsEhIGt0pG6wOOwoOQEh1YhBow54pj22rurlFoUQsvettLyOWcEYoQQNKxgmbEZY8MNBWoFs+IpcnIKOoPNGlS4vO0ADmz+DRQRYOWKq0fQhWT3gJrTVr8llsumi6Y9l1pxFhAsJp4sVyoiJ2tmyW3AnoROgLnaO8IUqfsag3mAWENBijTvWd1v0WIU0V2JPTHUUDgBlebq1nGShoT6s1d5PrYSRazSYVvUvucSAWAEA/QeUoNqAWOOoDhA5gNKKRgGA83WvKvuRj2YAqYFUhj7+z0CA+N2h2G8AF1HyM0eJR3hzAeiDcCdhNmAbfVAVjSp0/YEYmbCGANSzlqQhAitWt8JnVnvY2lLaTmjniunwt0LDmgp8KIVLB3IidJK6WjJP+d9owAtIKSeMLZE/FawR5swt3HNhz2GQfMO+zy0/pjQikUojUuhWtRH+UHEZrvDdl5wePEKh4cC5ltstmppF9KQzPNi9x93uSA4vXpd6fQLPTAkKKgCAeM44u233sWru1vkNKMsR1AAvnr4AX7+5T/HP3n/LzBlwc3xXWTeWRhHazbcK2WrB6ApavoSrcZRz0vHN92K++h+AIQC/vzwTxG2gh/9yQESAuLwHPd3RxQhRC5I5YyLklDjRBiAOudZ82PHAdvdJXgYEK9/gL9+8j8j09TGslowV6Aev+6Lv5pvD9ikvXZaiKL/rN9u5dWqoOHx1E6v36ewef5W3zpAn+veljc869vrbPV5zfDXeZXl8dr4a+556/OFPScFaMpZG1Kn7JDlqHQK2psU4155W4VUdlP1129kh/euvo8PPzrgcJjx+tULzIeMX338G7z8+ktstwHfu/wBXh6AzWZaNcqeU0Le3+CT/QG7iy2eXRU8ubq2HKumDpxCBpCWpr+eriCToFz9V/q5+R75q59hHL/G1cUlXr98bV51sVB257uCLAXjMGrfLPJIlX7dLfWiUyzqfQxwllIs34qsR2eDCAFS5ZdVOEM18hYBBbY8NcUFJWu5ebbKM+zthpg1h65oSCCKgELEOI2YthNKKRgjg+OAbJEXkbU9k3qNXDHUSAChtrJKUz5nm6cZVpQPRwAZan2mCvmbwr/eFAEBsuD+YY/bmztQKbi6uMA4bTAE5SegFgXyJvoiQq3Oqz1BBTywFgDLpYZmr47cSmgq/1pfa3nl+6k/dX16JcN/ZlLDnhqOQ82X7D3kp/d705UtoiZErXheUsayeLVOzYHMaB495r6YTzsFp4pn/3sbg+5p88qR4iuyYmfU4Rf4nhBAnYyvIfCej+kY1oQSrZVcx1U6jtOx+gc6XCLZ9olqJfJznnaCyQXE1XzFvIUksKiw3LCvuFuDTdlXw32ywdQzUPWPf/z1nVDaigjysnTa+3kizCAt126AspKJxo45V19/6RSnn14d4NVQSlQGx6yJq4i6TBzU2jxExrIEHOdZizoMAYek1iwPcYkEHEUs0XMAseZHrQCDKWz98NpZkTafRqsVZjF7Un83VeqS1hHA1MroNouPEqjninmoUa3saJ7O0xAe728CE0ba8BgAWXEMGxsFrtWdvMcPRD2PgFoEq5ApQIwjtlMECDgsfWArjGE7oCxtkqUlKCtINyDCQKvaVBHmGsydXFXxJ5h1mxAQTZkwwWLJo4U8dFX/bon4ln8hpSrtS9FeOWQatoiLHb8K8rLHzcsDpuOM3eU1hnHC1dMB8+FeizesCEJXxY+9Cm6yvD/Uda5V30xIxqACS1NBzWtoDNPJDFAh6vkO2a3qpGfTy+C7FSoVW4/SQpE9x86NBKpAtnWvyp0Sovp/a9UotSwHE1AlLQCAtCxIOauXx3LX+lw+fa7vsy4CeSNYB6RMoBjARXNMXXgf90fc3x/wjtMB/v8rbOeuHvgRUMODqAMhDeRK3TsGYxxHfPCD9/Du8R3ksuDh8ICUZrx69RqfvPwpfrj9Eu/kW9y++kgdvsEsoJ3RAcBZZQRoCgGtFH+q76GOaA2oe09JDxj+/f6f4T/bDrj68Q/xg/f/FstRK8QFAkJJSDy0ZxNrie3QxkaKRA0wBnyS/gjjMOJT/BRFri2k2weKFU9/0+ur+Z5RpntjgM/v3Ge/rW50Cgj7e/b3bh659Z1LD0ZEw2nq/c4M4putyuevyld6Y52HnHbK3GNZSvWz33h12Q2tcXLbmpUB79z4Tj7/pjnsZcSzd97H+3cHyLzg5d0NcGTclTsEusJ7zxJyyFWp9+uKF8ThDr+5EWD4PnLKZ5/BJ4OsZ5b6cREwXoCf/QThcMBmHDBME0padG9qbhc0ZNvD7kkBs0jjl+286p1VN6YmfwGt+pey5uUytBsKGl91/gZR/ip2P7HwY1/fqryThw3WIaqi5R/vcEMNSiHCFAKIg1YcTMmKjOjnSTSPVciqMTtdkQ9E567OErZiDejeNzjv7YC8OBepnMiOY3wLSsLd3R0OD/eYhhGb7QZDDNqTzOjPVhYVb1XvTMfpxIpddHsuWUM8H1XmwSmuoDMK2/nz2YdErsbSPmEyLGghG9Z55LQAKG/kUetntOPLnu5BAgSTE4Fh2jQAaf3kBI+L3XReNrxRCe0lnefOPl6z+h3qjPzU3qse+6DYxeW537c+Z7X0HTLu9AfPsyfux6br3s9IF0kNxl5YpuoiROBIiOTGeHNgQMv3n6jwtqdZ14lZywOwwZPOKFRxdJcjZ6v7jXgV+I4obQRoHCmr4sTRF7mLw4aBTheuuZj7vdemT+7r77Xb6evmPugMYA2MG+dxJc6JqAdCagmesCyzMhNmzOkAt4iWzBoyGAIg2sOMYkTw+qx1qK5gtDFrnxR9T3GoP9cBnX2znaHzwq0KTa2I5EwJQHXlimn+q3CBzuOlzL7rz8UMBqtrvRSwOkHq43yZowl1VdocDnfx21BwcjjMiOOEeDkgxIAwJPOOtjYPIFdAzntcuTvSnuTpZ5iLQMKJZdf2UxVH/g/UvVmTJcl1JvYdd4+4S2ZWb9ULCgQJgENiaBppRlzmTTLJZNJf0F/Tw/wGPci0mYkmyWSSaSRwSGGIoYYEiKW70d1odHVVLneJCHc/ejjnuHvEvZmV1Q3KegLoysx7Izx8Ped8Z5U4gUZQPWftJLZ5EKKfc7XyEiQIWjRzKEW8vfdAcmXOTdMYNDU61HLJzDjudkjThM3FBVbbC6y2G4y7vS5WLvuSYASyCpikHWRlek4JjYEumRPrhJYMAGPVETxVBmBAWoB7mglsc0ssUI9NfXbmYqd7MpU5W+5RBWiz4G3Zdy5IzR7ScQ/DiE23EgvfGS1jbXIudFfaqADbe4R+BXJyDruuA7sA76u7RPPY/a95xH3nvrPxP0SOyxrrPHZdh2fPnsmSsCQ5GKcJv/zol+CU8Yvrf4YPLn6IHLZYu5VkUIVajB6SeJurZNe7h1ksBYOlm/KS4fz18Y+wwvfx/pPvl2QPDoDnhOhCERZranezKHPZQ3KqPD4a328mfN43R24GcGaWNHOHPMEc87621wmIKkIkz87CUit+dn4W95V3KNi1ObB1Lver0nAuNZ4T6r7aZaCs6ewcuBVJ5fz1kJB4MrdUAVuhwC0Ztj4t/m4/O3effUYg3MYeE23x/gcf4Hg8YvfxiGnYIyWPuynicJxwud0jFg8J2btvdyM+zhlP8gHX0zTzDmithPdZBGfj1DXk9Rug1RNwF7BebzDu70rRbAMFABUrRrUmUPkO1IgH6lJpcoi4wmdMw1Gs6cbPuVoEiUiEwMzKx8h0WdID5ecmE5nAyGgTaKj1o6HpAEqiCuecpsln7PYHvHG1lXI/CtwEqLYt6bstu2UzTrsnc80QLTyMJZufut6bdwlyEm6v8RbSbyATEIhxdXmJvu8UrIkAXeqI2hoQney1c6dLFESqVCIAC/kj8zKu6/xeaUH5q+61GRGrWAdyAY4kuQsAxDjdQ9Ir0ZiFvDDq+dM9Z/HZjkjqvJK5xNpMcLW03dPN2VkvdO5Ubqq4mApwLncVer6YH5LPvHcIQSxnplSobXJRMBg1ADe020BBEd6KMDzruwMUeNGczpbxiJVXCmtLCA4rICWg5LicXZyhafZUjs9AlnOTyBTdzVCXjz+CaX8jQBtDBpORVYtVJ01XQ39tNGItsQPmKIaN4DUCXDMXrOj3pBOgxQZS4u2ae9SM2/eduneJ1WPLvcYrCWFJmSWWyHlMMcLFjNAt+rzgSFIlXolkVi2dshHOkup4RnAakGJCN0PiT7zLGKfqKkGgmnabudb7QCWWksRC7vZN8HJ1qZHjQmBJK4y5kOxQXWgASQKRtIxDex+BkFPCNB4wDCM4jbh88wn6rpMg6yT13tAwtaVy13RmrWxGBHERU0Zk9W9mB6EAR7bJKJM4A0QaI1c0Qnr+i3VNQajtMypaVCnI7TzV4qQ6/85J/TcXvICxaSqC1DQMSNOEcThifXk5A0RQupNZbWVsm0cFYCqsVkAVoyTMKMQ36VpmxrjbY5omwAGbVS/zq7ww20Q2VLQkINF90jmaCTrnGJIIHq4IE3OCTYBzGkfSAEb9LKsriHMkcW8ssQThJI1dWdTS16LksH2iE8KqXOl6D8dA6DsEYsSUAY7nGv3/7WpJ/0xoJLXuQ9hA7wNCCHhyeYX83lNM6Sn+cvgdjOst3r5Y46133kHf95Ux2Zls2Rk1gtzDMun9/X1IeAdhxBofTd85/TI140uVdtzX3kzQf4iX2XD1DFsMrlt4DFj/7F4DfS1gXYJXkRHuEZWaflthZmHqp4lSTPEycx1svpu/EGe/n3lpfFUgtwSiDwqQ9zVR+cbpl40igKqnRPP18nb9ORel52fCTvbp/O1zj/dXKzz79gfY727xm88npDRhOuxxc32NN0IHuNi0xfhk3GDYZ/xi12PtRiTzkKHHA7baf6WNqOrJmFmsM5xq8WBU63QFsnPxrUg8JY57TjNdCFitulJkPqfcnA8FakllKCZRvqlFhZzEh5GeDxE6UWLP7F2sPFEUH9YBKoYmAnAcB0zDhDhFvPPuO8hR3unYAj1I+BskDrxa1wBJFpdVzqYiV1d6rV5EusfkeUK/WmG16pFSlFlTF07WuVlvNqqsolmiota7qN1Pdf0w+9zuzwXIzPkJcgUQhbeTuOObkHKqyMEjL4euD4ALktyMJFlX3zvEKQmPbvp/nwXv7FXmwGvIi8krsleSBOqVPVompDZQlQhcE66YlW1pNdRPURuqm3mKERkeoZu7ILdumVJTWD1sVJnVOiFUmQSq4Jc+GKizfavQXr5vgLbszcVVBBGSZCMOcMHD+yDym86/2Ios5njRRAsWWOkAGkV36RrNN9FrXN8I0Aa0jAkibTfJFUxyZc3WUivJSzpxQLdFzshmxqQzmPXc4WlusgLAdjPRmXuSFvHTvJ7kxJWpU//yxFIkMyUpbmkujAkZzq3mB7p5l8ChRlhwQvhsYYmS3aaxcPKnZBC0OTQ3NCpJH8pGpGaegOLikrMBODs0KMGh3ommoQZnKgjUkgfOtxkF6zEtFhbtu/RJg5qzAQ2Co4wpZdzd7HB3c4v1xQbby62kfeegta64zeh+4qbAQAn4lqlsJYR5+nMww/wHHauvt6gP9TkqTEAcRHxp0lEtiupKgWaN1crQOm8Z5DoQmRW4KTZN9ZwSZ/g+oOs9xmFEnBK8E2Y1DQM4TujX6yKsMAyYmb3R3GWEoHEG2M+8kuo9ORVCZMUsmRjjMOLw2YS33n0DmKoyxJFYSGvqWQu+nhPYImDY8bznah2PnGUfVYImtVIagcUaNQ198MhTdYsl70ump7qk8nJPkhhorojQlp0kaJmI0AUPYilQa/14Hfn3dUXcliwvSbQNN88+q6DBNXNjv3Qu4Dvf/g6evf8MAHAYpJD4qu/Q972ksaF6zg3Kz45BIwwuSNBv7brXctf0pHXbtL1kiqKT51RAaJyZGpftKiiZkmLm3r1YtaULaHsVaxh41u7ZMTZ7rbVYnrTZKI7a/tt3+sErr/uEsse4SLaujwxIvUBe7oxmXGf2w/Id5+6bATai5uv7YdDJ+pz83f7bCt+yVn973eMHb1zgW+9/Gzc3e+z3L5GmiNvra/SbC4TSA7kmdvjZ4RJEA47HI4J3D67zYy4HQs5ibRqGQ/nMWAwBmtaeyqAsNrycUnKacbjuCVYwRsGXzLnEwOFwFIuazYideeVvrJmoLUsdJ5FEMokXEDNXeYfV5ZwURBmjKnxcrHwgUU6kwxHTmOCCxNC64OFJEjqQ7XURB1D0lhYzTtVCYvJJO/OZWcNQ5A6/WmGz6nH15InKVVEyQVZmAQIjdD3Mc0j4bm31VWvLQI0VowrbRVnOKgsApmwEGJYd8LSlV++jE1dsJ+WkvAtgIoSug/cOoA7eReyPI6ZhhzTV0i+PfYddZr00QYo0VwEU6Ft8pAqVZbjzNs+PcQ7YToHu/AkGOOl2oJnSva6Zh3cdGB7gWMENtY3JH8WZ9SwNbARjMkW+jDs0TJVMyZ507xJEQc+WDMWDgkPU9mOScbqsMuQZoCHlQyQWslqrgyrT5XxlTeL3utc3A7QxUGJTZNfgxPcYGVJ4tdkYbIoPB6IMLokMuC6uyNZy+3JyFxJVwYfnpCujow06bl2FssZiBNXUIEcwA+MU0XmHmLKkLtfA3qLxLgehmQuIYI+ikVMNLgOZuBTuNv1hNWI1WkiSei8gAoKJf3JjSlKXzrEeFO9K6lJq3MxSqqZgSzKR2d6kwn22OC6Zi6R1TZgzcpSsT+b+RmWOubpCOHV1Sozj3R7D7oB+1WG1WQveXBD1ZpqadVuw+eaPrPNGREIImYGUS00XmRDxUSZi1JlyWtPDlxSvICqZggqm0bs9TKMnKYUpkWw8yoXeAAJcUqJiIVutejiXkJOUCMgpIyXGMv2vjdni12bFlxsN8T2zBOOi8qysie8Yt89flPptQEO4Lb4TAua9awByyQp3vyBpk2OszTRbknTUoQ9+DqitvZzUxdOBvNRFsmKmKaUzo5QJSeyKRVwEVDGnMwDD396RuJyAZ1q9c+z3H+pqGVkrzN4HMk4sRST+9aEXhcKq7x98Tzsua2mZNsL+PQe07gNfD10PgaLTfi5AKhHSmb1fe1tpb055to6tReoxFpOlAq0Aqa+IXpfukicgR8dqXguvamvZ1/vO2utY3YrlgQlMy0RGFVDYz/LeJYA1Nqj0op3nE0sDaBYfds7auASzy+/uWxMG4zdfPse3N5d4+sFT3Oxe4OMP9xiGAdM0YTwe8QQTJhYaD6iL32WP6S5ifXEB33eFz953LfvQ/m2CXgg9CEGACAGAgzOX9EYDbMDIYofsu+12i3feeQdffPGbBrfp2dDHMzOmGDGMEevOlV6zyhPtDDLXkjwC/lD4lI0CnpCmiHGY4Fcd+lDSOKrFSmi3JZPqQsBmvYJzR4yqQJXxOVEsw0AfAM4iqGqtNiIHUpskgzThEp0QX4bEwU5E2FxcYdUH7Hc77Pc7rPtO1otMqb7wIgBmf8/aJbV+NvRiycPKd0CzI5fqUAnLSEzKk6vxYHnNFDuorqOs8wvyUvDWefguIATL2sgYxj2GwxEvbq9BU8TFdotV58++x97VhjsAc3pkSkxnxgYF6tn2IDV7rQHFKDMye9tsX5/SumZlmhAJB0Lwnbi/ljW026j8JL9CFcqpjoXq2EqjqOs1I+mVycJOrMmu1lCr7DNArEcXcKZolhZcCMgxwnuHRA7ZiSXYrGiOaokwS1BSeIILMrGx4b4Nlnid65sB2qBCaDbj7xw5MSvRlxNWH9JFXAYD1kaBssrLvVcWt25Wkmc63gAAIABJREFUAObiO7uHLUUTaXVzR4vnlHSymGC9ZsXjzFiHgJwYY4zgnCSwVdMLM7UvmqPEamzk8p5ckq3oD5uSlmFqOzkTfCexVSVRCDMAqQcn1qs2m6AyEMdSH4YF8CwJ2oyxNZveXDo8iUsh62dUiMg8/kRcGDNcJgQvg83skFLCeBwwHEe44BHu0SrZ0lriAsv9t4QKmvJCCbQSgcLg6lUKe+uZCk4kfQtaNfO4a1IHwyyQhkaBCshLqYDaV+cIaRJLMTRBCBEQ+oBpWMTsGbBt+pkzY0wSF+eDB08TxGKFhnhxYbQn8V02M4RStiGDkLKk9zdwWYLauckaCrPksWYLmx/FatlSgZrnrI6IZolcjGEzACapsSNgFgWkEVEpj2HDkFXxYB5PaIFl45o9wI0bBAOAB0hcWSyx0LmMXP+Q1zlq9RjL1P3t3Qfa6/cAGoXEqeVHpooLg4QBjNcFbDNa1PYBZz9vT61dbQ3Jc/THxuv82aiCr3S1Cjjp7+M02idt3PMZobpjtpfNsVtA6ZP7XsccfE/fTsQuPnXnooXwOQOYtBgj1X1bXf7mgti5cTmcZshc/s6Fq9HJ5+2VOCNmwufHgD98y+GDD76FLz7/EsMo9cyGwwFP4kt87t8oSW9WfY+LzQoxMTZX24am134sz8e56+TMsiVPSKKQKrxBlcuqPRaAU6SGM+2ihi8YLVbN/G5/xDgM6rKlPXZm4ZJRWB1NB1Tlm7Wj1jcT8OOUcDwMQGZ0q1MFEFONrc/CxOC7DjRFuClqfxuFmrabMgFUswk75XW1OlEtVFyShRSgIEp7sf5k3Nxc43C3k5JJ634mmbcKYHn9Ayv2gDKobdNicQFVYi9iaYocUZwV1fOoWOHaJq1frriMknMgJzVKg/cgR+i7gBAcYmIMhwGHwx63hz2mwx7TkOC8w3q1lhS7D1wVRJ35zv4hlLVCM+8Owvsd1cRypwKzfVrjc9uZsfsqSyVx022SG5FzIB9AuSZbkyRU2hdLk69nyOgLc+1VOVsmt7a9aJR3tXtc7sXs87r0ZSxO6Zh38J1YQYOTer3U95JUj/Ynsje3XmCKGGdRrYYjHrgsX8JD1zcDtBEgSFr+ZC0FbBa0JpAHb7/9Np5fv8QUR9gicGMVMNrUtmvFoc2lEWjObyMVFwyjveCksUqym0Xg1PgmS4s7ex+gCy5AU54lOMfwjpEhCTe09RmLKH8QCtApckRBcK0EXwV6Yx3WYgpqTUsTslcQCQFqpJYwMYxRYQaVQcqYnG7cEs/WLhYnSLV4c6eUeyTjFMHDLHhSWwW2V7mukwAZVxg/SFK7uuCRs9OivLn4BNfXNxPO0PTFBPRUvnZUU7mKA0oj1J7gZEEwjkh9/SVDZswOIRjzrgTL3EoINSOivZeUICtymxO15ry293olBnkSt8FSm05pEruaakViEQljBC6eXMGvBoy7A3xusoQCp4e+7BPTJhnNo2I1y0AhNMUFVZUTosUVhm9isikNSM9eAoowAsjntYgpab/kS6+MSt4hW1tc1xOISxJenSurR9ewc8t+Y2tTBgSwFX7X4u8tIWVy8M7iOcR11Ls2tum3f72OqH2/uLFknO03c8DWCpItwHl0H5Szm6ICWDLB09/tb+vhnFq0/ZFrKbRjcX8ZWXOLM5VB84ITa81Mq/xql8GTdzda47btzPlsBs5Xtf9oN6ZHdPO3Ec92FlSesRCcAKRCr+hkbqz/Atb0nBduQufbw0N7/eHvZxau0hfGMOyx2yU47/H0vXfw8vYOyBN2ux0+/OQT/O7vv4lf5ycAAEdeM/M5bLugPEJBTE7iWXAiqN8/5wbIRaE1SYmfHJVGVr5k9F0ER3dCp438UhZvGiFtTpN4ZIxjRJwiVsFrsWhU+UctaRKPVmO6cja5R8eo8gUzY5gihsOIzBmXl5sSow/V3aj4VDmggSpyErdZtXQAs2T2LpQ6q1uFA5LWZyQbZGlQ51Y/51raIDMhpoS73Q2m4wGrrsPFpkcfQnGjOwfY5vOpoRjmGcIW3jCnYwY0i7LI2jdVsIWq8HmvH1fFyvbtOtQMqzMayaHrBHR67+FCQN8JYHWOMIwRv3n+AuN+j2kYMI4TpmlCjIyuC1i6Hz50VTHJeKRYOYF57JiBNkdaWkgEKGuljMWWSB6p5+70snE3EZst7bLPijOd9aO24D1h1Xl4B4ysbsZFfuTmtbY5m/bb4MsyEdVrj0FSBUMbKXKLyWqKAJ0ToLZZrXGxkZIhRISUEvIwIcdRe9C8W7USUsdOUv93qiRRgbH0w7pWzgBzxaGvuL4ZoA1qwWAjxACK3kgu88nvug7eeUwQITvJlyKItcXvyKwcArrY4mE1CLbVyM80Zu2PAuG1vTLJrAJhDT6t90GAhP5NSv2o6woLk7pZDMoqjDvoZ4A4MDSWDGWY5Q/UTSjNNcBRXUB8lP7HCBAyQhfgfCejjAlWWw7Mpe6WCfG2ecSFToVmnf+UsvRNBWIEqoxCx82Qsgyka2rTYgGvZr2p2eOEyTiWcUs/GM5xEdZtKco8L2gFQ+rfOLVESoTbZBtLLDxlulRgNLBnQNJJliD9U4NbzSKomiADp1n2WqmZppog01A5sww3fTbrlaTalRpi3jkEBfGTm4rFp+5FASwpSaFT0aBK3RtyHn13BR9WOOxudV3TiQWx7k1hWsU5QBmoBaizFnhjoMT9ITMyZUmoQ1SYGqERHM3lFMYozE20+d3WyaxnALymlZbtpEwjZ6QY4UKo58f2pI6dgMZCrT3mOl/lsKtW25VzK2vqFUiy9q+UpfgHvlp2a/8tWTA3n8+3+72+BK945/mnatIEmt17auWw6x4rIFXWbY5PLbycC+3L9u93eavKjupS1PbpoWetX1/nOufet/z+VcDJEpOU/Xtff7m2/3Wtaa97lZimIr9V4dcAUQs67DwWPqaXCdHnLGZAXe/Hgre5qHim380pSSkhpYTPXuyQdgOueI93nr6DX3/2Ka5fHhB5xGcff4pn7z7Ft1Y3mGLC3eYDeO+wvrjAe0/fg/ciBr28vcZnL17gg6dP8eb2Umk/N++s42kZka1uCJJAoiiBmvmkpg6VqaQVrcxYmjchOtQU4wCkkPYUse37YqFiVaShsbI5yzrJWucLQi8p6wgU4A1xwnE/As7h6q038cblJcaj1p5VXp6dCrOk/WShRCUEHLWLRGbty5Un5qR8zxaOIDWtqlcHaOmOJ8rJ3X6P29tbODCeXGywXq/hGlfwskepOWMLhRIzw8UM9PP6oSL/c0nvb0PJbErPOSRhVWovyYqJh8Ua3Qjhc2Fcilp7ciAviS363iOxJKxLccCXL69x2B0QxxFxGhGjxJ3HGEHOo1v3MzB+H407pSHLTpu1V+dbx2Dg1QCkPNl6YrWyuMhoZ9s/w9nKGhlAdpJhPPL8Oa81/bwL8E5jJAmoggLOEgVu4jHbLswU7gruqsJ65gdUbnOOsF712F5eYbvZoOukTM0UZd+yC+g8YzgKzSBOhUIATRkDFSTLvktcFB1m9dbpqDPwSLb1jQFtRVMElJSuduXs4CkhwWJ6ZFMQAaRCbSKHkLK4zOiimXWgLOg5TaMSpNlm0MPH+q8kPtEvVItAFi/MQKkR1WgtGxokAm9mKS4IlGBEdjV2j5hLMLO5cXBZVMmgBJjfbAtpz7sGdJ0HJsngaIACAJJaNpi1QCcEUMyKbLP45BI3qZIBdMEh5oyYVaZPwgBkil19R5KNnLSwtYa+VcDgHFJxuzPii0arqNY/EyZke1giLAFGsGoYmNUNIpPbjfBaogKgAFVknWuZUJjgn1OqlLgspQka8lanafLZFnJBRDIF8X5NRRICpQQ4eV9mUv/mIMBvURdmfqm4TjXFsyMGxxF3tzfYXmzRdT0un7yJaThgOByAqWZKI6K5pakZkWjOUZmns6BrFEWI0DJSoFoLhbc8mFgKejNUOKBq4refLYMphedBsDLzOWU7ViLQFAurEWKazXNOXMD0zBxjB79dD1YFV87iZ04o698ynPtY0Ne9qnh5/rtWQKXFZ8v+tH2sv58Kwq+6lvWnattzK0orh7SWz2W/7P3zfp+fyVf1twjJVBVeleK3clGjLW/72+41pThLwfvc3w+CyAXfqHEj9wtQjwJsj71+25sS2med0NaF8+Se0oUmLo3qZ3MA1rZhgu987I+dC27+PTcBKoPh5vYO159+iP7m77H3Ad/57ncxMGOzXeHFlxmEERwZP/6bv8N3nr2LiYE3rkZ8/vmIfr0R7wEFEaPWhYzKv2w859yEWWWGrFQx54RhHMAxgqmDQxQlWdGokrpMZjjOACSN+Ez/RJDSQF0HVg8VU/4RgNV6pbUsqZQjyhqCkIlAmZE1sy+Da1ZGq+Di5J7DMOE4DHDe4/LNK1xebJEsnTyRxBUrnTYnHyaqJiWar7Rk6BV5InGtgZUzC8+GK8pQch4+l4wFIEfoeo/tZi3ZglPCy5cvMA4HrFZrbPuA0PdwPsg7dU+24KScx/pB3bsaA9bSzGqFrFktG2m+ubfGr0PPy2wntmLjUtEzQxAAkxQml6QXPWKKGKcBtzcvsbvdYZoiUhoRJ5FnnfK21WqFqzcu8fTdd0XOSRGzLOoPXg1wYo0rhCma1YPGLU5a48ZYp/gcEGy5Wsu9bCpPfMnK1rE+tLzbeydxbonVg03aC85J+MayG4UREMxNtS3hdZ7h6piaMwly8F7Ca/yTS6y3F1iHHiHIdymJott5D+8IzAljTJJ9O5qHjuIRJDBYkg6CmvAQk+dJRc1cx97I7oDIQue8H9rrmwHaWDaLO+msDYiVmACcIjglpElcIcDAcYg4Dkf0wSP0PUIICF4sLF5PVmUg5xgsTqSlIiuydrCezgIyynfZfG71jjYlDIkmICtBKJFOTYZMAkoykNY03erXiRjMVLRBNTK5dlz8qlEEZtOqZGZwSnC+Q+g7gCPSNAlIsaLazgmRN/DMGRm1sDJo6TIFOLXU5cxSlwzWlBJuBTcVaNdptiDnnFQgsLg9fR8ZoG00aIY/GDUrofALsa0RiWn9jasV7u4y4jiVHpv3uSMBy+aCCEBc/BR/MVvOSK/En0Hk1GW1sRwRodTkkA5DliWB4Ksmy15iWry6M1DqyJAk58hs2ULLDQqss4JiWSfvGOP+DkhHdJtL9KstVptLOCLsbm5LAfNcHctngN56xagaYCgRzToJZbVUqHOuWk6TWkpLeyXQvGqRTpiY/nQ+IHSdZkmzNXGIrXZaNbzU5qZvCHx1byHRPubKxCQGcREfCIiCRDNP8rxrv/VryVuWfOQsP3mgvZY1Lduv93y9QbXxbu1l/V6Kz/P3nfbonNvmfdc5wCRCRbPmTf+M7BLqvm1pU9OIktgqqGRwSbZUcQsVr5vXcat86N6vYu178N3tInyNq571eZtLF7Olq2nbDfvNRPdTaDVf+dn78dhh8MmZ4eZzuw5f/ALjL/4av7r5HBdvXOHq4gJvvfUWbq93JbFWoojj7hbPv/RYrXp8vrsFdg4vjm/iOIzoNgEMQtDkDH6xk85bCAWwMTMSRxzHATc3N7i+PWDTewwRJYlXLsqkFmigFPK1xfDe4+LyEtfX10hxaOLUuCYIwXwCpfizgjhP1WVSV8YZ2IK8izT+jZzHZitKv5wZoetEeUapCO6i3JWD4QywEImVQkM/bCwwCx81FnHLFIzc1IQjZZmSKO1ydYH1ZiOWvZxBzOhzxvrqCr1lUYTyoEaBbLzN6rAt6VSN5272cwvulnuarH/6LEmMtJUeMjaUG3kEUK+k0pxSkzNnn0ESCwXG4XCL/W6P29sdhuMROUZMk7i+5szwwWG93YJihzfffYp3336CfrXG8XBEihHnTxHXcZY5aL4uHigqf6ryvsgkpoAqYTHzuHWi+c/5RWffayYJhih2yx5iyeBc4uDVQEMspSNMluL8KoUXK4G3ztUx1L7MB9BmW69T49CveqxWa7jQqWiXQV4yoxIgxoopIsUJcRwxDuNMWdB6S2hgV+0XGAQJg0kqt5isuUxe5bzKpg9c3wzQphepexkW4M3SrzMzjuOEwzBK5jASwpQzYRpGjEdG8AN85+H7Hn3XYRM82HkhVASxkDUkmcXrSn5fbFD9S/1vxdqWzWxk8Wy5xjgxz5qu71Ctw0zD3arY9OPM4nbXCkZEUkZACEPVOIvLmJJ0c5csB4uqxcnuZdaskwQfeviwkkyFcUAcx5L233iI1zgvw6vV2kLti3TcbXKK6kNuTEv6qP7n9px+Jx46GczSZ/VCLOMoAoHOFzclA5IRGrYDAMSYsN1u0fU99vsjjodjBYxEoJxhBasZbmaJkj61a6THrQU8xQJl+0WBJflK+FD945kzMjkEkiQ2WSmZrZHVknJuWT58vg+zPuO9x2Yttf+mMWIcrzH2B3TrLTZrD8tVI/vFwVxOWxxVmDrJZLdCs5w/qaVjhblt7cW90hhXjQOzLFzOzoftVVtHcFlL59Q92dRQLX3iynTK3mOppZZiBGevcYB2/yk4rG0V6cVmowxemJJ8nPUcfT3I8+rrtyFzP7aNh6xGj73OgbVXtTsXbpfC+tIqc/r9ufaW4M/60vYT7flctkHzp1u3ZdMFG/g7uQ+2RR8Y81cAZ9bRAtJaVnCuvYVUes7a8MrXlcOv43V13O09RQsOVEB3Znbvh2WzR0++r9EwvLjf6M8SBC7VAyb0qCL05hMkiiDy2PYrvHjxEpfbNYKXJFzTNIHIgzBhGDOePXsXm/UaKX2Gf3NgHI8HXG22IACr1QYrf43NatXCq1kv2n5nZsQ84XAc8OHf/xgf/vB/w3B7gzQdSp/nNJ0q7ys1WLmABDDjeNhjGo4zEcjWiXXtbDswq7s9GvqlQqDjXN0o7XNUwdV7KSHgvUfXdQu+R3MNqcoFJ6ebdYAG5MzUYfsTVPgMFe+UqvQM6y26rsPtOCAfRlxdrBBCwPbJRUnWcS5OVZSI8yQ6xoOsW0vX/NkqWJv2TOnvbMjyj4XtaOGGtkUbvr3/QVrAGYfjHrvdHvu7O4zHI8YhIsaEOEkoR0oZm6sneOvNSwTvcLef4MMa6FaybkTIbu49U5o3JebiPM8H7rTUEpp7K4AANJeBWz5rBolX0xtza69K67YVky/kb9ObWziJWf8cieXNOwJyDc+ZxSdmUabbdjN+DjKw18yByWJtjxYgM0POpJRW1tpqGRKbmiJiShjHCYfjAWmawCyeaPO8BnIOMgG1mIf4LjGABAexkqo8lGdJNGbz9ND1jQFtOWewU4JghKKwVQDIyOxwOI64ub2DA+PyYltqiwnzy4hTRpxG0GHA0Tns+oC+X2Gz6hCcB5iK9sYWuPgKi6QLKYJW9doGzERTxU0cG8HKwmmVv9mYBFhBGK1VI9BbLAZEbpTlbQthl/iQwji1jwb2CoWpW3F2zIxg54yYxW3UKbjKVp+HgK7foFtdYBiOiOMB1mG2Q60corpPshwkzQwldE2TWZhFTO/1Tlwm5TDIhi6xccqolI2Uel9FtnBUlsBAg7M10PeY7E46DzklfHm9w3pKuLzcYv3WFVYXW0zHI0CqZfFOAapZ0mp7YNVWNkzHOV9eIltDDmslnFQ1VvqPjSoToQ16Xl5S3NIBnjTI39azXkmzHzrVbHoP+ODhvEMIhGlKGEep7ZbHDsiMKTKSA1xncWgmIBQRtcwrEWT8LSPQTGAyHumjpbN1ypwdiWXQ3Kw8KfjU97VWA0Kd09AFbcNmjyWIv/yNArSqABkxTQMyVihfN2PA7O/G9UAkXLEK671xYoSg+1XLMbRzfgo3MPsOzfePEZnb9kzYeqjNV/Xj6wI/eVcrePC93+Fkx9wPruznQxa2h6xtj+nzrG2qO7r2ts7bV3lXWadGWVQaXlwG6oyGu8Uzy3056z9VIaS8+L6FVUG9WB2be+d1Rc+/96QtqmtlbS9umc1x2//lfbin29Xp//57CvB4aOBnnk+qMMqI+Pc3/wb/5Hu/xL/46QTvnVqNIn76i1/iB3/wj3EcR0zjqLyDMU0DXOhxefkEl09ucOG3uNhsEHMU3qTZq4tL6+IQpkZplTgic8bPfvq3+OjDn2D82Q+xuz6I62Ohe5BYZKNlxYOAQJqZWFy2NawgZ3G7UnrIvuZEzpb4jIu4UKaJ1aWsuvFxKTCdCRjGCZ4ZXd8LHjNxMjh0XYB3ToRQArDck7pXY+LiwTFbM851vux5bSMxI4jPZOHRkmjEiRwVE55/+QLD8Q6X6y0crWX/hK4As3N0sI2Jb8ESq1BsYO1eClCU4KdUgjA/I/N6bCqnPUhaGmVlCyinA25eHnDYHzEctRzFMBZldb/q8ea338b7b76FruswDQP2wzVCYHSNtvUhWeL8d2f6bNZQzQZS+LRzCr4bF1trV5XVs42h+yDDq8tvMwsFRcnlafH4rO9VRnAuwIegYU5W1J0aWXH+DlNAV+S2HHMrL6vMWSCFuD4G7xD6Dt45xHHAmJLUfFa33nEccDjuEYcJnCPgHFb9BssdlrMmrVJfLZFxNUZUC4VX0YQLXFi62f+74R4JY2JmFahB0FwCu0SvkRKQxoj98YAuOHT9Cs4z+lWHNB6btOFJao+liOkwYOcdur7Hqu8FwHWdWLUsdm62kdoNSMWSBtSJlT4Dxc3x7ETTLFvszHICccNg/d3IPDOQ2ww5vgNSKoJ3S6zJE5DrJixaDhBCYEz7VD6PI4MPIzZXV/Dea8wXYYwSA9Wv1litN0jTgONBwFsEw6s2wFzkMpFs9oavZxVJHImmxEBWUrc55IzMAa7RklldOKMHUr+uuiEYUKyWG93QDbJr42vM7YdixN3LG9zd3OHyjSfoVh261UpA3TjNBSsIA2qz07Z0j5khR7dqd+y9zjvklCqYFfQD3whUAeLGKXtb+urYaro0oBgVREtxeIuUEDeUxECnhC0lCV52RPC+h/cZoAiXEihGTCkjZ0JMwOpig/U64Ljfw7FmpyliJjUi8JzAwnvZcwxQtmB2c+214O/7hf+WeSy1fWItFKBrRu5yd7a00R6JWQk9AyljnCJSYoTGmifnYbmiwOzQKROlFECU4J1aqB1kXZWBJ+1Ly5IWrc6u5Vvb+1v92UPy+EPf3wfalgLx173us55R8++5Zx5qDzgvjH8VC6A9Y4DnnLVuZiXGfO7OWeruG8dyP9M997Uva70nljKCg9RAemjIZt2alQOg+p293zIkL+Sl+TPcnLflBibMMmCei2OjxXP3zY+RrSYiaPbg+cIGrz4L9c7TtbTnYor44ovP8M7hX+Hi6Yc4DM/xn//+S/wPf/MWOGccDzuwD8j5iOMoGd5ySsiOsN/f4u/+5kdwnHGMGe+//S5efHGBLvRixRiPuLj9NW6vJMvkarVqyAsjcUJOGfvhgC+++ALPP/0Iv/w//mv4nDHFpIpbV3gRm3I3y7iYWWu1ZniVYmXPSOIkYnPNR41r12UnVTbOEp+pwswE0eL1o3w0Z8Z+d8Q0JWy36ypGQemwM0dQApGAQgMGzoRgMg8JiJWnebUtkBgzLHRDz2TKcDmhiJjlUMr3d9OIm5cv4WLGk60kGrFnfZMxeil3tfGkJ5YkA8xEmMtpza6bCff303mZVg2LKPKYyR42kbx44PSP+m5JQBanCXmK4DGqRUi9Zy4v8M6bb2O1WUvZpBjRed8Aj4YWzEc9U5DedxGp292CtjB8VVrr53Oww2WbLVosY3VN6YNTRHb60exrR1IHV0EaeUIfQqU9VGn+zLUbwuYzS4bwQpS0T+2+mblIKviTswg4PyFgQOd3+Gd/8hGmccIUBYfsd1v81V+9K6FFOYGzZC8NXQc4hynqviigS2LlXQLYMxIYgR0s1KatEQjIeSk2n8Rw/lReOnd9I0Bb0WqxiZL6eUHrrP8XAezZt57h73/6Ewz7I7xaQlJiwPUIjpE5gbO43LG5wqUMjhlpnJDiCpdXDr3r6iZ21JQBaN8PaGQc6g3ceDcSwHQSJ9Mq++W2JuZNP0qoH5iLX71kgyFPzUad2edm1h77KfIoK/1SRpES4pRABOxeRnR9j7BawYeu1KqKUUz03nlsr94AOCEOB0zjAMs4RUTwRIhmqWTWmmytgKMbz5v1DfWQNPdZ8HfK0GBfeQcX9YMREMbMHWBBdGUeZSM7IoSgqVkz4/bLF/Bdh/V2LUBVxyFrYdkjATh3hgmob7KCcvYkCSlZIFUuGYuoAkZds0JbyJJ06D3MpUC5ptmAFS0133zM9og4mHhLX88MzgkpOcCbEKYayZTEfTUm2ffsMY0T6PIK66sOx+MB0+Eo68jquNIwwKrFIxUitL8ETCwLRYTS9wwJp2RdJ0scY5rg6q7BlaGr5oxJmJFjI6+SIpfbtWVzxVXrbEzglECdbwqZnuEIDFRxUrOUMSNS1KZr4pcEhzSMyNMeHAdw6NGKqvfxmuXn7d8tS381+a3PLNt7qI1zn71KGD4HeB62slm7rweylm21/y7fsYwRqrv+1f1q+3+fFUjaun8dTkFabbMFY5lOLY6Sp3f+97Kt8p4lQFp0qlopME9mhQawlrik5hm7b/EdUHkDuWr5bvsCVOtgK4Ke32+n67IQWQHw2fvmdyz/nu/H+ee1LbsrM+P589+Af/bf4DL9CH/58wPWvcfl5QX+9Du3+Itfr8DTiLuXL/CznwSs1tsitHFmUMo47I+iJOSE/S//Fp/+8P/GZrtFcMCUGCNWeHdgfOf7f4SgGn/WJA43ty9wd73DJz//EX7+478CXnyOzFHzFGtssvWcja4qPWwCUo2vacQ5gFborlYRhnqTWKmFJuFWWwaFCMXTx7DFOE04HkfElND3HUIXYCvtyPaMvdOL27oCAgN9JWNyWSMo71iCIpqtUb15bv1hOAxTxG53h+PxiD4EbJ6sseqDeLRQ3YNL9zwDZGZBPLfDiGq2f6ToAAAgAElEQVQpkbKvue6m8vOM1cb4E+szZoUT4E0w+yRQedv85Y28uACYdq/zDqu+RyDC6AjpKEpkH7zmczBZgkChK+c6g+Bx/7W0atln98bWVWIj+1SV7VJImqpM3NCH07basZ3OR5GJ1JKYmxMuoRGVdhOjWIm9d+rVVpuXbKsmFzTtsyRmkzOFRoap3Zn/qTgADMaAyycv8f77n2N7cYdpTHjxRRY5o7xjhz/7k+cgxRg//uv30a06DMctDgeTIasfE5iQOMNzRGYH1gzZDlPNPdGc7YIJjE7YOF5xfSNAW7nMUgPbCg1hKYuSS/IB0/AgM/b7CWma0HUquDuPBluobC7FDIMWnC6CdvuOImRzJbwu19/R4IZmY9032WJib+5t8YdTS6Jqc4rgwhDpFw6gAHAsxFhu0tlRYd/SchhYkP55MdemjJzM7QNIMSGnI4bDEaHvELoeoQ+gfgUiyepoJQFct4ZLCTlPtetFGCet5aZxaWpdk35UAUEYit3TBBCrxoqxmDs+FYJNRSgAkOuBL8KQurRk+cs7VxJnMGfsb3c6V77MGVn2SoJYAvUAOXU5IhXLTiUs+ZutL23XrTI7eQEhbDF6QiYcCcByJZMuofxP9/5i82jwrroxkoDr4yGh6zv0nRBA075ZHRqhJQnjfof9KmC13qBfb9GHgGk4Ih4HBdEEr/7rEvSuLZkQgPrTq6tOcUklYSSmlZ35djdrU9aJJQNT1ybp0csyomYSJQtl0/qK9R3kkXNCTBMC+iaQ+CFAoYxeXUBkjgEXCCnq3OcRh+mIw4tPMRy+RHf5HhxciWFsxRrdxieAYPldQxJm95zsacx31jkS0f69bIfO3D8f/cNWrceCsfuA3EPWtmULr9P2Q+9cfvcYy925TJnn3vHQeM61YZ9ZH0oMXBMYL2T8DDimal0r4JbEBbL92xox4d8sZeaOZtZ5OYP6nb7LhNulgN32YT6O+69l/1uA+iqg9tg2l5+d+z7nhBfPP8c/93+D46RJtNAhpQRwxv7ugONxB86Mzz77Nd7/4BkuL7YYx1HaywpgnYMnjwkd4jhgx8BmvRJ5YbjGdPscOSckTogxYn884ri/w0/+r/8Jd8+/wN2vf4o0CjA2+ZJJRUvNfGuhCS1Nt3OcAXjKaC04LeAoykCbCZ4nsbJkB3ZvaV3B6ZCkYHZOGavNGttNJ9abhrd6QrPXGt5UeEGVm6y4tgjWNg55n7jI17VyVHta6thqnylHDPs7pGnC5WaFvl9J5j4rFE7n9+psAuuPAsgKrGpcI8/R2/Pwoml+Ns8mh3LJ+jeL55+1DAUO57gDYC6QRAQXglqIAB+zJOjQkjoASt1UayslQkS1wJ49NwraiE55a9sT614BpzWHtnxelAKkxpCZH8yZVlsuubxvLsjNlHg065VYASE0y7lOy2ZIEjyLOjqpMFBBAkBnopPOMVQGOGcchj2+//u/xNtvPcc4JOxva9x/ezlHiFOGuZD+4A8/Rug8bneX+Lf/7wdIsa+AC2Z80GeVRjOxWAMpWAeaPipPU5nzNBHj+esbA9rOE32d+QV6XnUeq/UaMSeknBFTBnIEpwmRZQXt8LrgETqv2e6kLpZ3cmrEYmCUQNnvbEPJBk8xITMjuEYL8ApITGVDcdmpBK5SL+Qw13HWMTvnNIufJrVn6d9cdDNukZv2rFuEYNn5Tqa1xlJMw4A4TnBHB+f2CKse/WarxUGbEgBEIE2gHTNKVh9z/yAlWGQ1Y5r/ElOxtpkWyQR8iT/Stg3EKGCwxCbQEgCnE9uOyG7l+h4W/3kHD+c0lm+akIoLi/lzNzFfbPF+7TSfYSTUgBtUoaol4myZIbXLAt5bWyNQ9Pdap6xtQlaYyhraWuTMwJTAKSNPHt06VF/0UlJcLGU5Zdy9eIFhtcfmyRX6fo3OAXGKQNQ80M0alwBMoKBsK6ydAXHLnM9EJd10bq+hWN8kO6YJIFqGQUFucR/NArKSUlCrJy9W8IQ4jsB2K+DLATm3/V9mNuEyJobXs1ZdOwGJIRmPI37293+Ljz/5EHHzBP/Bf/Rf4uryEh5U3Jfb2Ekbb158NnfIvJ+VLU9xs+QnggbjfBvt9dD3jwE1dt/rXI+9/3XbfZ02zQL1VZ9/6Pv72n0IZN5vXZqpHk+em9GWchTrZyX5wuLdM1fHZk5a0LekW1o4pBGgHp6LFig/Zq6XwPoc0H5onnJJZFE/b8+cJLySETiOorgFw7leP3cg36Prhd9fX7/ExcUWIQREDQPIDPRdh3Uf4INDv1qBQSosM4YhYv/8V5h+9SPEzT/H9YvP8dP/53/F7YvnuPvsIxz3GYQMT66x+FvMsZsXfp6tYx1WZuBmd8DxEPHWE64DJAVHS+ChirPcJjybTRCXDF7MwHQckVLGer1C3/eSCMuLNwaxNFfsRs7BeVnflA2AKe231aKavMJW07xKWAVRQuU+s3XNMiYpoemwWvXo+x7eB7XqtHxyuR8bKkg0KwNV4qyAajkzq5rNH9fEFfZM+x6TF9r9RUXZIe8XfbrIYeXT2ZltMlxT+90pVXfOw/sEkEf0kqXTQxJfzCyXIMmi7QI4Ezo85prPXesWaP127SZkIOdJgFHzDEH4bfDmovh63KfyWfte+TIDILE+OUD2jPFiJ+EmgMTGB6JyjszLq1gOTR5oD0GRew2QcvncKE6GQ0wJ3/ndj+D9S2xWL3HYm+xxfnQhSK1jM0YwM8YhYt1f4w//YABjg7/6y2/V+tBNxs2ShR0QZTtHUS6YvM716FqN3KR5G/6diWkzJqO0Sz4DMCfzmtzCE578/i2G24zxbiXBvOpXS1ps2lwKODOC9yAvQcA+hFIRPkMK+TEDGWdqXxCQYsYwRvTBIyUGxyTBtc6VpBVzp8X58+UHywa2IyJAJi/OmiRAIWZddJqDNXWpaGDaWe2OWHXUBTEQiB1SiqKRbDsGZYQxISEhpYhhf0DXd1hfXMKFAHYBoCgETjdiZsJxkkDjVecA5+AJUl9LZe/W+iIau8r6iyBSiCcQWs0yEXwfkKckqYIxx2pFC1U0G65aXbUNi0PMucbRUSBwSpg0tS6IJA2vARSo6wCLhoQhhcDFcudkhzSgymiWWEsXwkb7u6MKSjMDSwKrwpvRVMH6QqwyoaQ6LuPQHZBSRj5M6Lug4RQOwTMm0jT4LPekvRTt7C+ucLmVzGhJCVFx/8nirOscgZICajJAKevVaTraWnyzpv+3dRE3yVOiQ0TogtcSEgJgM9TtK7sCEKFrKudK4w2VsE5R3FKLa8+McJ+J9FLgHocRtOoA8gB1AE1l5nPOOB4m3Fxfo9/u8C//+/8K/+SP/2N88P0/AVOAJ6kptwRl9XcunxWL5+KeWZfO/H3u3leJyKe76PxFs9/PC8+PFcpf51q2+bAl6+E4vaUF5uuAwa/6/GPAnrSPSueASgga74ClG1Vp4x5F4BKA3WuN4PNtVuGt6c9rXI+Z/3a977Oi3bdnmRkxJwxpgCexGnoKIAIiK90jB/IO77/zBt7yT/Gl0o/1dgsXIHScGeMwYXTAkwuPFKXm2na9QoqpCvk5AW4tQrRaFIr7epqQDtf41c9/gp/93d9gd/MlhtvnuL5jIA5CqzmLi7z23xGBk4ytX/UCZooQr94XKtkwM25fPsfxMKHXkkUmvZX9QjWGkXV+SD0divIOqtmPrEJjFZYdEbogyjwGsNms4QkY9ofZyhCJs3icJry8vUOeMlYe4u0wS3LDleE1IguDkZPWjWVxP012f32yZAQkIoTQKTjyNSSA7jtdZ/ZRC7wMIDfzsmwnqycIUM+GZAzOda5NSegcyAVYHTQGS4INIgXT+fT4LGSS+dlWrtBY3x05kDMA57UmGxfqEVMSeUNlO98xJmaEMr7zMW3tu2vH5nKW3gSbqAYDq/KDyp6lLgi75GW7pWm0Baq53StNq/YK52TOpfavQ05KEVyVeySbqUOGlN8wryrRSTS8axYu0763ccdtiQ0zmEd88K1P8c5bH+N4jJjGhyPDvad7SSVnxmZ9gA8D/pP/9IjPP3+Cjz58Vt4r+5HgGYj6GZksk817aLYU0ns9xq+KT/xGgTYAzSKry1hmcOMDmzJjGDOm6YDsRmDNGK6fKLytWR3FWqViuPdwQQ3M3iHrdwzJAlU7AZTI8WbBcsp4fnsHHzw2fYccAhIyVp1sMkuzPsdP5TS3jYMzzTKB+SKCMxwxEgOJaha+QvCtjpk+R5DgxXnRCUJkiGBMsvEYjC4E9AhIKSPGWPx2uRF0jWn5IAk2psO+FBg0d4mYNaibrUo80G83WHWEKUYwEijFGQN3JAWpE4uWoWS1UmIgxBCz+XYErSBPyFoQm0iJbcqldpwvRFuzSypj8KiJJUCEyAZ2BdQ7z2CtZM+cgcRITjVaROg3a3hHiCpSmyVIgARKQK/wsayu4aa79GUdy/Ln6uICoBRNr1vD/OkXVKKgVX0OEAseUUnNyykjx1SZmPdwBITQISdSpiBzEQ877LKUd4hJrKYhOLjOA5MwqCacTd4YJYjfYhBn9B+YMYQlsWFGcaG1B10f9BmnezhCYs9yIV6y2Bm5qffnSPZYzgmdCygsmug8YDMhLDPyYQ/vL0GdLxvNkxNFDWcMU8ZhJAxhjwti/Ov//X9EZuD97/1T9H4NUF3d5VVkrrPf/sNe85Nf+zHvC50FRedA1UPAzb4/K3Q395y7/Nl+1T5/1avt8339/20A0nOulPdb45ZPLPlA06aS9RmYMV5izB98whvPiUXtffddBrjqnq1z99jrXuD1wBy3YG75LuHBGS9eXuOTj3+C760P6DcbXGy22K57fDS9gdSv0YUOwXX40999guHiv8DvvfW/SHyQd/jkV58ILVE6H+OEGD28C/jkk0/w/e/+XkPUVEmZElIu6i8kUxzlhOPtNV785nOMw4jMDkiT1jZzypddVeKQzOgJHST7zl4r7x6ORwCMdSf1oKCAy84HQ3icEs3iNVQmX1fQFFvZUfEOck54tfcezBneO2w2koBEXESlT44EmKWcsdsfcHtzh3gcsNmskZ1YwAw0EqMmwamdgPXEeQdOTsQQ5+AtxAIApwhyPQC17BlYs3lrwNqpN4s7T9cx34PFDZV5xlSNN5XP27XR90OXxeqlwgUQsdT2S0ktUzbb5k1RwaEoozU9V2sNp2Uv22FRifMCoVgbc2Zw5Jl7JBEhTtJq8AEpiqvefVdV0LRcicrps85J1moPHxymMeqzlnRfeLMrfiYN1bE/Z3uB2ukscyHzSnXM5aZKr9peyR8B7Loi15lXVAknaV/ZPFiXWPI3FCWXyjDvvHODP/zBz3F9s8fxEE/qtN1/PczZU8zIaY9n35oArPDpJ+/KvimKbpVVGSAEZNJ4OkY54+22TyAgZpwr6dBe3xDQRqUOlF1WP83MrWgIlwAPsZaE1Z1oRxCkOKavVgsgwFGG9x5ec/Of9fttiKEBKlZiZcuWkrjXxcNRXS47xBAQgpcikEGSlZS0/XZ2SjooLpuoVb5aqURAEpPY+3Ix9eszyy4X3Df/zpP6AAfJSsQqHEimHIeVX4F7qXuVEiNpAgsiktSn3iNa3SoWcEMKlnISYb+1Ko7DhL7faobGhBQjKI6IcSoCt41DLCzqSpCkeCFyTVYyow/MxZ2uEAGbXy5LVn4pyTTASKh7BRArHgNCAFjq+xVsXmKeFBxAND6XV1schwk5Rb1RNEBZtSQWpG0k0TlzPrJ10Z8z0D4Xt4CqgYRz+rt2/YwW0ZHEoHnv0AXxg488lSyM1QtdiIbrAkJwyCmLKw8DlDLGKSEleRmFgPXFFcbjLeLuCNasq9bd7MRdIecqds+Jsq4nSOWi+jcDko6aoBmxksT96bzEzOquY4yQK6PWmFObyX61kpIN04TkvCg/OOkanhEjFwByHCNWXY/iDOIAJC1j4Ai9B1zKOMQBfSb85Id/jo6Ap9//Y3h6mExy+XkqBC+F2XPffV03wqUwf0Ir7n3uDJA4eZZnPyssqW2/qvdLwGsnwZ593WyYr7LgPWZcbTuPvf+xfVq2tXSRnIEwMkognxltLa41TV8cLA6uNFToVttuESCtjSLMLft8bq88PLfL+L4lEHto7y/jAO0apxFffvkcF/EONzd3GL94CccRnQdy6PDL+B62mzUuLy/x9vuMdy6f4r2n/yHc8RP85vNPMUWHz3drEDmE1RqYRLkDAJQJWcv8pCSzm3NGHEekFBFjxBQnjMMg/GscsL+7K/VYyeiariDnJLyAaxwacVbLkVCXWmbFElygLL7QGrEiFlmh+d7WU1Kt6/pY1kbCLNOfgKBGmFCwJfTWYbVeA2C8fHGDoFn57H1EQBwnjOMO43EU5ap0uCihAd2HzqmXzqknQWZY0kzErECOJFZfZi+X/b/kie4c3S5jO00hXwDYAogtPXcKtjhjgeLZ32rlcUGsPEHCDOI4gRFF0awZhh0VX67SDozftWfC+Pn8xJd+ylcelmWUVXKXeRbPlaByG7OwqQCGowzwqT/X8uyXXAFsWb/RWMtsL0uPHFnxc8DiM4ikvA/nCeDOdA2za6ZEuG8J2UBtwzF04xG5EjLvYK6QBO9ZDA0ELQul4RpVi1z7YC6SPF/f1h0WkER3f/iDD3F7e8DxGBHjw4DodS9mYDhO+Pa3P4MPwEe/+h0QQumuJJHJIExwKutIt7kqprMYMRKz1u2LD77zGwLaVDDXTEXiDtYMrjkAolgXSd87Qt8H0NOMww6obmZGFHKxjrhFAgS2fxrGJgedy0a14sRyxSKs5omRpgmDCr196OA7h75fYRWkaCUIUu4NSmPKSVl0ghqxRQ/UWXdL7VP1lrQTMUc8JSBe547IamNBgZoI5L4LcIHhk8c0aWyA91pGQITnEnOXxW87s2gyciPE5iSuky5HAQuhQ+hXcGlCiiOG4yhWLa6WsaTMRtZafOmTkxgimwdC1aDlFqShOcDG6LjGWp1q7PRW5S6eWbN2zs3fhdnkhN3tHeDExYRTApuBRq1ldX8IETdBgFtfa9PSsd5DzVLN+kcAtQHbdUxL7bwjgg+SaMcHL+AzZZkn2Ha2uWXNSmlpnQGLWTP3EAZjvx+xuXRYb64A1yMedxgOx7L7nAFGrSNXsncVZlFBmPMeMaUiWJD22YBwyYZVBBRjg9JzU1TYWEG6bkTYrMX6mTWBDDm+TxE7X3u9KQ8HuIu1MD/IOSeIoohYXINjEkB/BIN2jB//yz/HH4Hx3vf+VDWg5spx6gqWmRFTROdCyWh77rrPdWze7ceDBrrnd2n3t3ctxZDHtH3fOF63ncdej3nfY+7/uu8+v8a1H6beOSfznOvr7B6a97qetCo6tsJr27/XHe1jXUlf1311fj8QnMfVkwvs3e9g/PgvsD8cMBykvlp6+n0M+QhOjDEmfDYcsPpHz3C7eR9Puy9wcXEFpj1+cX2Fro9wzmO96goxJe8R+hWC99jv9/JOBmLOIE2pvt/tMe52gNIq8xCAusVDNeYpCTgzFmRnwhJumBs5WxZHqFLKXPS9pFcXHZ0rHvUm3Mr90jATNM6gZhVmbc/2TtsHq2kGKHhywieGYUSKCd7VyCgiB6aMEDyQA3JvHkmubrbKisGoGYOJUMoFAWJtIHUnDBDeDkg2b5EqSF399QwUvn9uj8jbjL8sBXADZwbelvt9CdTa5Fhlvyl4kfn3cF74vPG143DA8TiJm6gLkpRNhTdTOOaciqLZkfUHi4PanvgK3sg8ZUj6kCzrMubntuA+BYEMoPOECVxCEKoL5hKI1s4QUXGDLCFI9p4yby3gA0K3wnq9AbFlXJ7PowFkK/VUZ3853y2FM3lB4kcntiRJTi1/ajRw6haqSuZxOp9cxcYqBl4FqYvX55zxe9/9TAqaH6bfOmCr7wHGIeLZs8+xuejw859+G+Sy1PTN0g9SgTGmLGWZooWkiNV/Sow4iXzO+UyoVnN9M0DbXAYHQzKuzG7QzcNFiwNQTmB0WF0muABwNjRfQZgh+4L0gcZ0WgVwhqY0TyrUmTuYI/jgsN5sMY0D0hjBOWqmQCAPA6ZhgHcBUz/BXWywulirG1szhHv5mIAop0cnqXRPaN3/VANbDp8AEAaQ2IClEjwIUQ7BoV/1iFNUxRTDhQ7OC/CaJtGchSDCeIpRCUVDDGyOimZFDx5PAjQ4YToMGDrCantRCIdoeh261Ra+W+N4HMBxkExJldLKe4xxadYtO/uWgpcUmKBYd4yhVVDDgNaoaaa60XbammdzS23Mz6SxEdm7InAM+wN2t3foVj1WmxXWm3XJemmWQ2b53XsC2LzS5++z+wHVHEFjLgGAI4B+sTUqkBTQBfjMM+dzYfgEr9pa5whJg73NTceAjg/iipigNWHUlEfQtUbGdNzj+a8/w8UbV+j6Dda9WIyHu72Ilgo+TUudcrFjqiayjtnpPQ4GaPU/IlDO6EJXxqtQUBmzMCImJ5ZdiIDgdMsbmOOcMcaMfjtncieXaea4zi6lCM4ZXuvScDYtp5z1EAK22w3ubl5is73EOA6g0OMv/uf/Fn/2nxGefvePYfGrxuYyxFId44ScE4ZxwsXFJVbUJCR4pODbXq+ydsyGisoaX8U2gVOdUStanG9//v5XxZ895mozbZqV+KE2X+UG+ZCF0O4w9+hzbT72al0RX/+5Fl6dArZ2nyxBGTfPVZm6EYaE4DX74IwrK52bp9NxLMd4n8vpQ9frzI8DoQsdnly+gcvbD4Gn72GcBuzu7nB9/SV6t8f3/70/w7rvkQFcvPy3uFhv8LPnB/yfH7+Nf/r2Nf67fx0KLfahr0k5YgYFh08/+wy/++wZiA5Kj0XRtd1c4q233sbN7S0oWGy70hUFF9l3oBwRc0Z2oc4OWYp/sX4yA5RZBCrV0ppnibmu+0ACojKwWgvH//L5c6w3W/SrtU4eS4mJZN4fDY5SnpNSxjBO6PsOjhiWEF6sgBZuoCncyZJU6Xw7KYcDBZG+I6z0e+edeBpx817rBOuuZRTgCQD73S28yiuRUXmwa5Ka6JwBVGUIA2SNom6mRDUrFBg0RnA3V4SVVhsLm/1tbyvdb+4nlQedD/CrLTqfIAkmJtztD7i7vQFACFeXMi6/sCMTYHkTRA/c8uaHzkWlcK45H8ZPSg+ZJWGMfuIDIxIhkC95FyyUpaUo7WhbAFfBm6ulAxqQaQXlybnimhnjgDge4TvNeLicRGuC2nOu874ozyRnoJ0/au5jje8jrC8usF6t0Qcv85oSKEe4tmYtVWBm77F6gsWzQPuZU0ZKERfbL3EcxtdwifxqV5wSjrsBbzy5QeIPQOzBMWFKY7H6S0mmiGmckJKUMIpRvNME3sgBIvcQUP2mgLZ6AnWPkCayaG8yYiJZpjgxEDxiTMg8wvFaMu5Yc7qARCjZaSpxOH+4ZCNSc8KBOEYM44S72yNWK8lamTkjjoPEUelBdrr56iFphreQimwTe6pHudb9UdGCSBJtEM0AW8FSjmrcl7aAlllzwKrvIZnzJCB7GkeAxV2062rVducZOatVKGYFfqIRkYxdWTRoZUwJKLXrGLubW0lgstmgX63RdR1ijMhRNuv24gLABVI8YtzvkUmJB8nceSIED3CSJCxZi2+bZs0RJMYszQkDmTtIM+GegVQYjSxHYOlxScPiPZAniAXMwSMDOatLrliqOpYEFuPhiF3YiXWrbIvqgmt1ywDShDhCyOciIzSwljQw2pwZbX9wPbT1DWXPWLkEiWXz+p8rcZ+O1P9bBTPREkvaXsFETmI3UwI5qQlDOZfzNA5HpC9GbK+22FxewHVrwB2LIEkQl0xABBMrBh8U8FjMWc55FvRtnzMA9h5+ZdpebdcRus5jtVrjeNhjfxiQpcogPCs4J6DvevzO7zzDp598iimOzTzdc/Fi9nXfTqlJH9DcElPC/nDE7f6IJ29e4fZwAHUe426Hb7//Hg6f/BS3XY/Ve38AOCBQwDhOcM7B+6B+7A5rLeK+FFu/jhvkq0DfUiyyn27xWcsG6J7fH5rVh9nIV7vafrbJpQ3MzcW9VnQ6/c3uPL3XxOxTMPMQWK2tv/6anW+rESwXgGoJ4E77cApcH7r3oXvaqwWDy2dad81zffgqV3m2WWijpRfbC+Tv/QmGX/wQE2dcPbnC9uICb7z7u3BvvwVH6qJ3WCPHjF8/3+FHP/0V/vyz34CnhPUmafkTGVVJ5MGMcRzUomGeEIQ4Rfzms1/j809/jZfPrwHOxbVcaHGeM3FeCKRQoZUq+AAYl9s1vJeaaFK1R5S7TCZg1lh1clSTYum0ZM1yTSpIixAOAZEMTDHhMIjs0a17eJYYeQGbYilz8hoRxH2rMpDLuQomuz6UtShhC8o/2eLJdV4SN0K/7os4jeI+afNbwIfxlwRzqiwxgWotIyLJhNyJj81M6UtU3gEDbI0id3mdZIlsrVY2Av3MdT36VQdHYuW4vTvg9uVLDMOAFBNc34n5xEPivEkzDzCX1PNLGnpCidjWuMnySgRYaQe1tkWyXpabJAxDrWVxIkzHEa4XPiOOI1z4btsL2d+lBzAAt2SXZR4yTLBo5pTBHDGOIzrVoZulz+awtMfmxsuqJzWhuwyltF+6BJGUfC8uqZeXW2y3F3BOAOI0DOj6HhS8ZIeOWhy3nfiWUbSgciZjM/7RH3yCrrvB3b6Wo/o6F5HkAEjptD1m/Yxv8YN//Ev81b96F+NxxDhOsgYFNer+T5ZrlSUW1DuV6dyJhXl5fTNAm110KuwWC0axyjBC8AjsEPrqh1w2xuynst3iytUwJWr2UwPSUSx0shAhSFaqaZKSAqJpIXFPC3KvI4kfC6FT4kqYKZnsnSaIqrAc9RBUBikvNo0WQKrJ4XlbbGPicmDKF8wAZwTKmGwnM1DSkWZGZCm4KTTeiUUjJhRxgqUvxUhLDkQaP+RIrRSVoIMljV0RxswAACAASURBVHycbjH4I8ZNh9Cv4TsBGDEmSGB0gAs9cj4ipVzSthdXN6Ji1XPOIKweCOlGEfbBAiBs3UgBTFSm3NJ18xD2RIhaiBowImMzJyZ2By8xcMGDUkJ2HiknTGOG7ztNypIBFormbH+R/BQ/bLEfENX1zGhgGjOII4BVIfieirhRsjMyxJWTbJ9yJaLeO8msqfvVu7JlAEgKYecF2PksVtX/j7p3a5IkOc7FPveIzKrqntnrAQEKMJA8PBfJ+KB3mclk+usyvRxJL9TlHFEAARDA4rY7uzvT3VWVmRHhenD3iMisqp6eJUitAoad6qq8xNXdP78mf4cFIQNqYS1Z1+fp4Yg0zRjGUfeLA+IYajru5qLS9rRJOQry2xArsWdmjMEztJUVk4i7PcbDAUKMKRXINFudI31IfY+9e57OKKn5fFc3TfYsbdtGoHGApAQp7pazFb4YHAPuDns8PZyxuxuRl4LAEX/445f44je/wUf/9AU++fcP+Onf/C0+/uhTK8khKMtiRFaJiCo4CoJnpOvaSy1oW+H4uft8/8jmb//M3efL9/jzL6/ZzmTprrngmzfuudX6ZwjWz3uuj/Wswy2d7XcGVvl/bwOb69DmJcD6pYDlOXBzDQheCHzd9wR3lW/gffts6a59aWtxRpeuvv1ztjFsH6p42Pa5iGBJC2KICH18OQEpC+Yf/B3K6Wvsl7d4HXcIP/yPnWBI5o4G7CJhlIRAI+Y843h6Uq8YU2pJKTWerEjBP/7iH/GXP/yL9jLJkJKVlpTS0vf3AtZG3ryUpbqda0JlFoDh9fdIFZEOVkqx5GBsQjeqpUNfYrvDC2UTVDlNGpuzzFowm5nw+uM7jCGqYpT09Wzu4/oQc8Fzy5sLlVwNkaowZUIJBqtSNk8WWg18nbERWNKsSlkRBA5VeXlNF84hmiu+Clyt+Lb+rRY0rlabbb1PZ2ps8hiKqBsnsAJ/vbjVF+B2LysHjgrKSbOMThMe3r3D6XTCMi+aK6EIRrDNwZouVUd+6mVJaXihA4tN+e+yp9U5rXPUrqsAM3u5JwGLIAZGISDGgOJhCB2fW8fL4+I7T0rillbuZsnpSlWAm6yiuDJqYWghBOp4cDfmOifSKHNTYjSw2I+vCEGYEULAp/evMYyj7j/RWK5xjLi7v4fkhPl8xtN5QqTSHI0aA0D1KNo2Uhk354JpmjDuM3J2UHl5+XOtDwMBgN2OMe4ipnPCNAmkdLFnUpARMR3PePz2HR6+2Zk1TemQv1xsA4XAlsneC4ozPPlOys+bBb8XoI2gPqx9NXb/pbHm7rADAGkaew7RCjQyJDcHEwVNpjuj9v0lM1WtlgaaehydHXJpQqEUQZaMYPXP5klTrQ+7wcztARzcFYGrpsWtSaBKkwFokesZBQPYUspTlWbYhi5i1grGRa9rOn1aFzb2Jujcynptiv0bQoC7LxSWWlRaQavPg828Ee0QAopk60+urH7Vr7zg/JRApwnDTot37/Z7cIiWbMZmnNWSqt8Z+OW1kNkDgN4K1b9S4VE7FETUshWJNGutCDg3S5ATKM0wKtUVVZ9hgmEIYIudLBbnV+fXJogs9iES1NUUUi12dSVE0JcEKCLNakdNfBLb7+6PH4haWmQbmzjDMMudKzqyAKPNqfNctqyPpSvcqmdNVHAgIIQBKXEraC2C8+nUiEwnYYsRYy/n4IzU+VPda/VfH3Cxs6AMXmx/gYBpmrE73CkgJpMorCg2U5ekxPZtSQvSso74FIgmDaCus92v7WOpinGwgLKtIQQoGWmaNRPqvNh+WMAgLBjx5re/xtPwI9x/8m8wjnuM4w4AgaM+fzpPiMMAArAsM3jcd3N+KewWE+ze79p3u71EfH7fNVXguHHf9rdeOHrJu7f3X3vurXf0/++BTA/2+u++iyXzuXYLyP1zLKfva9d2xK0C4S/9HXh+T32IBe27uIhWUCjAPJ1xmia8un+NsMZs+PbttzhPZ0yF8Pruxzh8+hkABSIFBTlnvPnd7/Fqv7MkIgWSF+RlQZnOSBbv6jtDxNy7QWB+whgjPv3kEzhDDqwugjGagsVqvta42Sp4oyb4AFx47S0YBPLC6KL/shjQNLlGQR9jiB67W1qQWJ0nVB4MYOXGX5aE8/EE4oBXr1/hsN9hWZZ2LhoaWAnuFUR0MkITwq2wdZZai9PZlBZ0Frgrr5BaGSKzlmQIEUAyTyP1ysldYi59u9Jl3wPOr5o8Zud7W5y7R38GNOvJ6K6tPMHfYc9VHmiFwslDLsQyFRdM5xOOT084H484TzOWJVnyB8G43+HTj+4QnL9K61/tlaxpFtd1wzOtWx+bBx+nzoEN1xKRlNLxKkjN4K3rt3YJfa5J3VQ3frf17usL5nnBEiIwhgqQ/LfViDYgroFEPzRyMScijBxNZmdds2jF1SVnnKcJkhOm8wmnKeFujDW5YJW3/F0XWAFV4fLq9RP2hyfkTTnaD239fRoTl7vYuO5HjiBSK1xaNAOkKoLYakgavfBEQYZZ2EBrmTNKmSE5X5Xn+/a9AG2AH8BeQAWUMF5GPORckJYEZjO9CzXB3mPJdBegUDBBk6/XUrOYMoGm38+VTKEeLGa1tokIEFwg1vfEEGvmqFrzC0X7hHYYqZROgyVIueB4OoIEiDFi3I1gYowDW9FqPwB6yOtCimpHmhbDyNnGAuIuEC0VrVuozEJGSth0fGU1Xk9Bz6IaC7XTaL81Q60e5hIC8gL0WT9dy4ICzOcJaVatyW6/w7AbAKirJUGBhoCQs9L2cT8gRiDnZK6nFfe6N6itmFS3xEZQOsCQpc4N4ESRkJi6jGCNwZIBuAjPEKWZlZSouMZWwUque0ypnTPgECLG/Q5Ukj3FE517B1a7HdIlc1EiznX6t8Sx/6sKEkyI1g/n7dvDXplpd6h69sNBNTvjEI1p1Z1Sa6b1Wrbe9bGUXM34TIQIYGmvbtfXs+JWPgL5dhHBPE34+s0bdTv20gjGiB0Q66V6HqQUzPOCYdSCuRpQ3rsQXjnjRKCBQcgocOCrew9VccDY7/cQZJTzgoACjvd4fYggRAzDj3D/1z+xovUK4nNeEArjeHzA6emIEAcQM4YY8IMf/Ah9AeS+9S5nHwIA1u5r299uty0wayBn/e+HgLcteLr1O7COWbvFjnpw1gt02354u9XX59jdc79/6Py/5NprwOY7yg7fuR+33t+SXW1oxjPP3rpPfrCrpFl7eg8Hb6UU5DQj5YzD4YDXd/cQCJYyQ4rg8XTC21//Z/zyH/5P7F/f4ZuvvsSbb7/FvMyQMCKXM86LWPZkQfaU5ZboIZeMh4cHBW0+hhAQY6iWmSUp9e9Tu6txpymqnG/08xncFbAOqwnjfYIQwIROKchF61DqpY2uekK2Gktlz1QlEmMcRwwWFtKepz3x1XRrUuMVjbfAwagrw6CgpJiikEQgrLJQywAmVXnIgVXeoaJhC6FlQWTJKM5jCoCcASu1REKVmV9LMrJqfbr/vphYF35S578DMwQAlgnS54yDyn95meFKx+U84enxiOl8xjTNmsxLgDhGfPLpZ/jsL36EPD11mFqVnKAmK6YiN+RJ75f+h6zPpTJ3l9m2xoR2Y8mWKq3W/ZCuKLNUmcjH71QzGBj0fq09y3Txe6ynif/IgJklQxP10NF4eIsErkpnf8Z1GnGRmd3iswSoSeWYCAMPGHa7Ku+nLJA0Iy0J52XG+XRCmiZQjMAYq/IDYhlVHbgbs9BzY/KcyQ6H/RP2+xOOp9LJMMAwDoCkVdHslzRmQhwHDeMpUFdt9z4K4+paEYBj0DqzlvXTQXdNxlaAPC9mbc/1nDGzevc90743oK01cyfr65N0bF9MyMrZTbBq0l6mGSRR3b6MWGlRR52AggKmgGwpk7fZiwSa+cgVEyJW6ytoys6qFaEGlpi0QGJhttpoBiAs61NAR/dW4EK/K1NCSgsWZhyPR4TAeH13wDAMADEkBMTNOZAiWOYFjkyVZrfNp19r3Y+cNE5rToJADVhpEUmuzKqPkepTsRIRYmQgZ+RipQE4QKsuEoYA7EYFoGleurINBgpccBcB5QWYijFnLW4gonRdxCwsHDHev0LKCWU+IacFRbJaHAHkwoicQcTKKH08ohmd0LkLVkuPEVkt0s1GqNyaxRaonYEiNVEK+SbQ7VhT0rYkJM58VNh4engExwEhEsbIVbtzXfz0dyQwjd2eapuDzR3I94xncIQzVbBVCqK6lz0pSKnvsELcrNbflQ7U6mnkLJp9FRYkW0SZrqSVllcJiwBSzNdeWzYzfoYKNnnDJMTAf4CAYjA3HdS50/cWPH79FnF31r1migQXeIjEhBsNqhdmnKcThvF11bT2wmRBF3fQnTlnOJra2l182/IQaVKRaXrCuLtHSgs4TzieGX/3d3+F/f4e43/1U8zDHUpJmBcg5wWDRIS4x+5QsN/fYRx2iDFiy9gqI73YDTbH/Rm+csUWsPVXCK4/s/+9F2y2wOh9rOva73Lls5Oqsvl96+xxDQjK5rfteK65Z14bcx8bdw1IXvtev1uD5/7va5+/r+05oLjdN+vP5iVgT7jlFtnPxeU+Xb/94vcOQChpbs90QPTR/R5x3CE8/grzH97g6eGIX37xG/z+i98gPh1BgXH86mucHp4QEHC3v8N5OuL87qRa7GGAq0SyELjWfxQUO4VOmlXbrcq1lJLxQnIk4+yj9tOBjCp8WqIxcoGBPEGaCZlMq/lwAIiiViwvEQDAlG/qCdInvyA0N7dgnhNLWjR2nAek6VS9PgQwV/qm5GUyodnlE1E5p/KJQAglIOeEDM00SEVQWC2BZLnuiWAeLKbYY+Cjjz/SZ82Lupp2e4xJNrvB3PSsX15DFwS1AqaisWvP1Gfbtm26e5BmVNb+qXyjmfkKJCUDPh4jDwxMWExOJFblOQW1PiYQtGK67wDfOaRCOAGSBaU0Fa0Ns52RPseBK9CpW9lOq9zTpt7t28fHzFikWWFMxKxAH0ANpdDnyOp+f1GveM3ksmn/MoFnuNQHmex9UVDS16Apxy9aQ5Z1dKzSApY5AzKj5AVzyjifzzidTpBlATEwhIj9EDQZjLlq8srKytVYoPGrUvsmIliWYhjB3YZF6w5LRil21pgwjAQOA+bzjJz7/aqyqbcYgdFC8odRgeEiY5MHASBPAAGlvIKUgiXnmgjQDSrNwJHME0o7PQwRcTcixvje+PHvDWhTILG1HDlYa0IrSLM58mKHLYQWp9Jp8FgYhQQsuQp2AlSNmfsNEwwRd1YF7ZAmtSipoCDUheEOnKmwzYjB65/495YRr3NZaBtYPyrDIFAmrQWWgZQYX08LKBB244j9/gAMQVP2h17/p64KmgQhIaV2cJW+FwT2g1egscaWVMSIpY+jEXgy31+qR4tNstYCyQHCglwEHPR9kRkihCESYowoRTPh5FQqAwyBkK2YM7O7WTJSKkhLQRZ3YQXyMmFZRoQYEQ6vEfKCvMxIy4yyLB7gpivZgwciBZNoDLn6PHdrWkQ0g2LxddJUrCLqihioXa5Ys9PowImnWQj9INpzl9OEN+cvsb/bYdzvEIcB7lYKmFaLsGZjHQODaZ0U7BAsWk5/L11G055x2jjdldfRn7tbsmcx3FBVPw/MtncJ4CXpeyrAWfczxtDOTGUUBoQscQx3zxexQqEEK26vwflNO2bH2c96KcYgUJlb3O1x9+oVjo9PgLNNYqRlUWHsitaWDEi378za2K7QfciNMenaq/9+GPeYl4TBYjFSXvAPv/hH/O1Pfor9J4+IH9+Z66pmqxuHAeMwIsRPdH9cgRK3AFN1Gaq/X+d+1wBbz+Rl8ze6v73dytC4IXkXf19rt2DLLXDm92wBWf++7TO38sH2Wdeuea5v1/r352rPgcF/ybYFaA0EPT93tLm+/217/a13XbcQuz9GU1BsQRyRxn3WeBFybwXBiAnTr/4e355ncCn43R//gK9//wUWIex3I2g3ala4pCVkKGgs6p4Z092E5elonRMwErgj/zllLNPSBGexJFJBEx6UrEKw8jRNTFW4xS1XHVZQwTiY50ypmakb74F5uRj6rYKy17/0Gauu3z4XQOURNcGWKyKF1WWPADaLfoiEslCVkKQ0S0MfgNfHFSntWAu/ZJQ7kAISEUHJLYkURfVSapYUwWBxztN5wjzNiGhlAUAuh1CrwQqj60Z3dW+YqoAI5Nrp9wC2614oquyLHhsEoOSMaZrw9PiA8zTj/u6A/TjArV8xRtCBkFLGAi3XE6p1U4XpnKn3ztR6fKKKazbFvdhGco8m39MX8V/SYgmrQuBqDSCbx44HCwgZhMhA8VANOBZqJ5qIEIQscKWBzH7OiohmPneR2e4jUwgM+wH3hzuEOIAlA55+/gZxa66tHVezve+K6HoFR4yHiJITjtMZS86Yp0ktTiUhDhHDfkQcBnAIFgfvStzWAR83cQNuPfEiStjtTk2+MkVLjAExAEkCgq0XMYHl+bpode7sOaUUk2FVEJQyAzRoJ3hEjBkhzJjOjQA1a5/2mQgIUWX7YTAlbymQxQ0yt9v3A7RdypVVGydeBbldqtYr2xSSE7JYYUha76zKxHqCuElJChTNUmPvIyO0rhUjIhSjJzXdNzuR1s3EvO18cyeone5e6RbtMA5aSDCxjsMGJhk4pwlpXvD69R3iMNg49BkFmi2QI4FDRCyLJpnoTOWecZItw6KOm2q/iDyGkKolxwm6By5nIUvvSyZvM4gFw26nRSBZNZcplxpTNIwD4iCYp7Rat1KkBViKxn0RihIGHlFSRiLTeHZTGcYDwrhHTBPCeUZJblYudRzKJDp9V6VXVIGTwLUdOkfUbSsBNK2uaAbPQoRoewPuBlGBmq+jLaoxVw4MRsH56YT5eELcjXCLkV9PhBpb0D/LrZHVslZT22qGzgpAXFuDTcCzSwLOLHoCxlyDn5tmkkGkNfmCJdoh9mBw+3/Xp17Qgpg1q+5pqa4Pa9/3piQJpPvINcmVyRhwHMYIgWc0E7N+evruqH3UK5SZLjOWnADECzcbB3GCxjhKUR/zbLJMYyLkiwNmwul4RNzvgQGaDABATmec3gFfff0t/urfRhwOe4QwYIyjxaKGOv39vr0Ghj5UqL/lDrn9fF3Ibr+79am/tv+94PZzgGZBuwawbgGWa0Chn6P+vdt+X+vHtX5fm9PtOry03QLMPVhxkH0JYJ6/7xIcNcDzXSx36z75O9q7nmP5z/32kti4a325PXfX3k8oWUtk5JowouDp29/hD//5f8a3X/4Jb958hWVJCAB2w4Bd3GG3HzEvC5bTGcLupmeeJjEgDBExxu7dJrAJICljOp9x2O3XhFeA1/f3OBwOalm3bLtJ1KLfj6p6IdphV27Tu8iRKW30pepNZlZ9o9u9+/oqcQe1f3IuSClj4E3qb1F6FccRQwiYpwWRd6gZ+8TDCdwSaM8k1jpkJmOJhQeY+0G1oImVLfAbIzGSAFwMVFkai1KKFiRfMqZ5wnw8qyVjHOEwrFl7/KU+bz1Psd0vdteNrXcrVMDPud5WlKeZ8nCaZ5yOR5yORyzThEKMw2Ff3ytZNBuyCfJFFCQRMaiWtLHEZKRJSQSqTG21zUyZveW7/vlyJKsEME0+3JweQa33qo/WuqeRNM7wMhnImuJl6ufM+HDHzrVuqlnTcl73gYBxf4dXn3yGyITp+IA0pfaai9a/e80VyOSvYrw/C7AsC5ZlxjTNSGnWfAGBsR8DYhgQLD9Fzb2gKdm7vAWocobv2S0zkiK4v5vw13/zDd6+kwqOmNXYk3LCMmtcGjMwjBE8MIYBICqmIF8Ptuq9rRi5yzcxZIAjRA5ISWVa5Bmff37CT37yiF/+4pM676XWOgYgJvcMWrYJOWv5jaBJWv7/kT1SoLW4SFbAi6CFDSvOMs2PlILX4a9xxC9U20aWiEQC+tNfugxuAtMc2SzWrS/AKtDUpAm3bJvixJUjKzGqj7m50GSLHZkbxKiIqFVqyQAJKEZEAUrKBgKCaoNqPJ0SBdeUaPZGnYseiHotjiyCaUoQKZqp0QRtZwRKcDwjkWmNVi6pNhlWhNkBCIegGXSmhDAMWJYFBC1UKla42835ECNU1LRr2Zgmkbu3as0ckgV5SXh6mxGGPQ6vdohhQM5JnxcGHO4GlDxiCmecjycvOqDZL6nFTfn8+4Fp26dpqTTCSS9yG2YpUrNylozq4kKAZvGCEcQKmCzZh9GOaIk0Si5YpgUUAgbzya/xEEQIxDUDlv9WOkarH2yeBJa5UfsvrtnVhaugVedUk8v0rrpOcLgyk0qB6pwhKIEUKpWIu8az+mJ3c+igsU824n+7y8sqS1YwImyizpbtxDiowsKZjPVxSTNCMp8EEVMgCJAz5mnBsFOQns2PwZME2ayigngC8rSA4w7ISX3Iu8ItRIQsBeCgCUXGARgC5uMJd3cjlpTw5Zdf4dPf/j/46Ac/xrjbgTvaspG92nM34+yXdy10+Pe3BeDtM/tRAtcT+Ny6b/u5v+fa/d7PrevhFsz1z9p+ls11/b+3vn+u3Rpj/75rv7/vGe3axjfW91wHbv2171/DFRf5TsCt3X/5zD9nqwLsM+O+vOdy7lbOckQokrEUYHr4Fn/65d/jj//0M7z7wxc4nycQAfvdiBj32O2iJs3iiGR1IM/TCcfjI86no6ZNl1xTzpeqebf445IxzwuSBfj3PSLrSy2dYq4WHksUuJEJr4bqswAor2Vyzwa/Dg2U9BY3MSAnAohTQl7V7IIIspUAoNCATMM8VHlO8RPWHS4hlaP8PiKATBDUWnLr2PMm8JhiC85HpfJul7lgYGCeZ0zThLRksGRE1qRm7sLuLxZ/Rwe6qh22qJu91+iklC2t//rkVmU7rrcV/ZCC8+mEk5WOmc5aPzcVQbC4NgdWbAloYH0IXMxFkmsBbZ9vsbUjBztwq1rXj42Q10CT81mTKbrx0RXhMCNXxS7BeHZJFSxLffY17tEA+2Vf9PpewctE6n1ihJwIECKEuDPXUqDWN17tUVT+72NsskB/ulQhMy1JSyksE1LSsIvIjHEcMIS4Kl0E8jj45kEjuDLXvi7tW2wNNu4FNezUuhqCDZUYzJq5PETW74URBj3HAYy05Co3afgOVHnMNp82p644KkVphvBY5yCEgGGMWse3oCay8xp0xZL2RG5gjVzBvTUCbdr3A7RZ6wk7oQGsKpp0GrI9fYqHrNoljkowSlLpmckLKa8JKooH2wKleK0wYFVfol97IlDoxUztYwChpt0xwka9L7Y9g6GeeLeWYElJC+uJAQYm7Mexpi4OIajVoVoEWiC05Kxp6alP1ABjKPo554RlNiIeFFS4UC1AS6EP01ia9gkG3ohIwYVrCou6XcYQsHABDxHpfEZekrnahQ5PEDxPP7EAxAgMiycSLOLMpR1+kYI0a0Dqcn5CHEaMd69qLRki0kDjYQ8O6jpZTFuzM2Ls24S6tbwQnsVjjPQAFlJXWM86WWPXqnXSQK1YMhLQinCr+wqs0LYReLfqCZoWzjoW9gcMgRDHqHFgFuR7DeALADBr2RsW22NifUHl2zoU05Ya/+szZa5n2pwvqSUJqXEZKAg5K0E3Qi5Emrq6bvtO6LT9j0pkAbfiEoCBgCEE28Pc4dFcQSNHRl40YNetfpqDVYl2tqB7MYBNgTHNM+K466ynqPXStOua+wzie64AKDhPGefzjDHu6hiYgDEwjtMCogHLUpDSCa9fH/Dw7Vvs719jSQt++Q//BR+9fo3P/5v/HjQ0d9wOx7d56dZvy2Jl9f0aqPV/++f+0VtWfY22XAMnPci6dk0P+giXroRbYLV99vb96523fkYfn+bjKbico/5Z197TP8PveY7dbcn7S9p1y9rzT7kF9F5y70v79Odst8CY7z3p3smVw6wBWd+viz1t9DSLpqdPX/0Sj79/xG9+/wXk+ITT8QHzdMbucI9hfw9GwW43ouSkZXSg0boimhRqOp5wfPeAh3cPcFVCKRrr60K189Q0zapYFEut3QYHsAlea1ZuQExQoAKeYZh6nUl/q9nzz7kIRmpK0H6pKhWuz1lbxQBgiAG7IVa3SPH4OKCmofcEEX4q3G0LgnWtWqAqMmu/sTlLpMrLMA54dTjg8d1brfaSpWW9BJBKQZ4XnJek6ehjxGgeQCpI29y7Yt0JPTNyKqgpFl2mc4XXonKMZyP2/bJKotHtwR7GNRAD5DTh7TdvcZoTprOueckZHAOG3QEhhma9orZbPbsnw+Pv+7cSvPZfKdnyE6zdDbtpvdFuU6XODwcAYVn06mJ8LjBjsUQ6FUAyN5fFK28W8Wvbe+uUc7un31OtAHsASMMlcg3ostn3x1X+38Dadj60FeQ54fR0wrIsCATsYwDvBsRAFr5jzzdZs/a4Z6ZdqIPGXLqc0nWvm+ppSUg0IwswDKSKHvOGSouCNWZNekcGkgVapzgtCV7sm6i5QxJpCJCIYJkWc3MO5gEEaDhShghD8gSiiDAE7Pe7arzIOaMULeRelpbILZiFzeWwluf7dvtegbZ+BRTNM2oApIMSEwhrnaRckESwLFkJs2XBYSEgFkjRNOOBWpUKqhkR/J81cb2UHMyNLJf1hrKLV/VmrDUh6FJUcAsTLFDSNWgOluKgFjaPS/NsUu7mKKVYhkmYhrE7qIbG3Nri9NFDhlzIZpvLOlRmyKLByBoTFGwcpCFg5Mkt1iKmEjaFtVpvQkEwc0YpCTXDDgSgANjGBdwyopa80geBSkHJwJxPmM8nUBhw/9FrZeRey8bipYZAqmEUTU6z6h/RhaDKTCAD985YvNC3uO+CyFrb4WAfaFi92yMVk0Fj3iyGu1t3qXOt2cEW0LBDHEYwFU1Ksom/c2KGItVHnUmQpGl/e4EW3qftVrb6H/2jBTBNLlVi4Sn2AUbmTsUMtWRmEa2z4oy1i6rYVwAAIABJREFUFESL7/P4coJYILy5CoSg36cEigzmqPuegmo0a5C7neksVZjxszowI4dGHHWAbEBuHezuY8mS1RIGT2qk6jKNVcmYz2cs+z3AQA5ksa3AXQw450WLjgbG27cP+IvPP8ebb95hGAdMpyf8+r/83/jkP/x3WuKDNdbDBdlbovQWjFwDJrfb81DkpeL7c9f1FrMtoNre3wt8twDkLeCF7vst2Or70P/+HANb7f3N8/r3bsHin7u9xAL15wBr/5LNx6COcG3ut3tAuuuB6+ANaN4Bxc6oFMHT+RFvv/gZfv6//0/49o/fYLdM2H/6OcIYMYw79RLJCcMwYtztMJ3OWIrgeD5iSTNiAQgZWQrOs1rQAgEpJ+V53JLUC8TioRMggjBoNrwinh3SLSc6qNEsPQSz5tfPbmnqIUOFXzXmyXmDXqAz6X+rt4LObTHezYSqNPbZOx6PePPN17X8TO9B0yvgWjzV+hopBYEISwEKdwrwKrSTeRFRdaUUIhwOd/jB53dYpjNODw+YSkIMWjC7kIALgYtgWRaMzObGFlZhIaKdhJ8yTQii/wukArdbUqSXO4bQzr/IVZdpvU+zgRZQrY8lpZPHhJALUFLSGnJJuWbggGEY1AvGhKGq4HYXReZaC7XYvNQyApYunAg1gyMzq6uidMCrJzYmj7WmX6o7bWvbZHjRjA8ZJg+aT67YehJktd7+Yuk8cYDmvtevvVs1AaCIrotb5mrylkgYBrPymXzVvaZ7x/Xxdculz2bgMFpCkWhz3XldbRPJ9ICtj1f3PRFc2KrMQbr3AUsu4CD4H/+HL/HwOKiHT9I4Vs9QHgIhJUEIGTxEcJCacCREjbfjVssdIkAcg3msqQJZ90ZGySPGnbo5gvS8GMAAhQFhHDSuv2juhMzQWnzB0ioQmUxOFQMIMa7AifU+ef7nf71WY34uTqysPlbTLLfkIICARG0nuQiQtbg0srIgd4lTFzUj2bpD0DQHsnqbgOBFn8n9XGtX6Mbmba34nncB1GmL2P0iVVtHRGZGVQ1W4FgDQzezBEcbOWfNmMnRgEPXD9GEI1LWYorYRvEr2cYfLNCHmMFihFHUsqaH2uYVnmDC+6a1bjQ+zQR/Cw7lwCi5okSArJgjqbuAd1djqSICk6X6v0xnIDnh6dtvcCTC7tVrBGYUO2nZx1sKWFizhUqHXDYSoogBAXM3UHCqSdh7Bl01q6Z17YPa/TATecygvqgPQvbabm5OF5trATCfzjifFtynghAJwzDo3Ph+dkkCOvfsDLdr1aLUrafOJzWNsH93Q2KvxIJZgZS/um5WHWwRwWKxFn2bL553+cU4DBjGAAGjSAbQgofJBIjC6tbJ5PDHBcYMkfbO5hIkkLQg5+Q9rusEcXteUxaIFAxpRpJXIHJfcgVcrg1flgQmYB8CUlaVZwwBX775WhMCQTODklmje6bi89YLsltAswYSLS1zHznzoRaUl4G+9/++vW4L3m69qwdjvUDv12/BGV5wLXV/97/f6uu1598CgM+1567ZWkK37V8LkL3PWrfdP7esZ8+1HrBt2/V1WPfJz2CBCr5zmvF4esLbP/waX/zTL/D1z/8XcMrY7+/A4yvMWXCQUul+IUYqQDqfMZ2OePv2HabjI6yKDna7vRZCPh9RckLKGfM0Y9zvwdGACATLnJBmA2yWrKzRVzJFnI05BOzuDphPU+WlNY5GB1lHWkqLYScisCVvKmiui1v3Ob2WUTwBQZUFjKfaS0KMGHf7mp6+vnsjqDObxwwarW/AEqsyAx4OIYKW0t/4lwDY7wYQRTwdjzg+PmApBY0jAsHKKREThlHjtHve0xK0WScc3JqCjSRXkLsCKZ3AToBpldFcStHJNDxoLb0QkeYFKSeVA+1w1xijccBoiVQmMQf5GCAlI6WMGByuW+08UZdYklBj8rV11E9KDUmQep+Bv22GzA8gA1X+6b6LpLJcILXyFtH3evK4Js1L+4ekhbXQ+oliWaKl5+e+25gsvtFyIwwD7u/vcbfbqSwtsgp32bZt3Nzl+BSgK6Dp+QjVu1YW1yvv8O/a3kLdYyZ0VkygeycgxgH7/YDj0ZQuTChJ93wI6sqYkhbzpjlj2EUwCpbF9nG47EeaF0jKGgcpBnKJQbGNRYExoUiEOpx1e4hUcc5QXACvDAY3MpFf2e55pn1vQBsATPI1dvI5mO/rYvZ7o8+QmJdU/bcLBeQiyMsCDgViAckhRgRuIMAzRzrwIwdsbs0DuvmSatlyACWWPt3jgKSz4xCpP6xr6Z5rDjr9shp3Z0Q/BLJYOYKLIA7yqACpZKS0QGIEh2SWPnOZsx3e0r3n1Xvr4aGOCNTI4bLytVZtnqW1bRK9EubgG62zbtbgaQJxqgylCVgKVtX8Lxbsrc8LHDGIgqmUitXB0Pu8CGrOGTKfsAjUPdT2BTMQzcQspMRbtWWpcSfrh2ozTAvqB56oxm41n2W9o98rxabKA8ttm9QRUi/5idEUA63eDbfYpZTx9PadprcdB8QYVrtGLMSzqpFgDPhKjaO6vqAuSc9W7NW9H42ptug1HVtgrXFUfdMrVyFjpB4PuD0o+uw+XrASW4amgra55ZryuRfR102HqsHyFcBLWd3BxMjQWo0xRP3N/N/VbTSYC0NLapIsSyZZ8hCCBwYzOACn8wIpC+7v7xGC1oCjoGszzZNqenkACODHP4E+/6n1V6pWeb0WLuatARzVeb+9hv9ft35lZfP99m9vWwvdJnrm4tPaqew2ULjVBC2OeHPsVn271uf3AZJbsWn/GuDsOavd1u3wFojrr3vpfvJntHV8edyebFa4SEEqCW/f/BG///n/gT99+RXOX/4cNGfswBg/eo1xHFFSwdPpjKesSYBQiiVh0GQlKJqdsBRTnpKm6M5LRspF64CmpKCpA2FpSVimyQBbK2D79PSktdo+/bjbIIQYAyRllQ8gqMyh/teUk1JD2C+EzLbfOuscoElJ/AIDhEIqvwiAOMTKS/a7PT797DN88+YNSpqrMOjPrt47xliZCV7n113A+tgiKQQOTpNRZZkiWis1Z8HT6YzjwxNOpxNYVIEbmCyWWp8dghUKj6FapFZjr+Cq/VDsfJfKV6kKtgRUvlwsC3CvaWQOuoONpw/jAAFwPs/IKemTS+ctQyrDhcCIMSLHjBwzEjTMRMQSxlB/XpzvBRDlVYIsn69iLvwOJr2uWOXz0kSnnkGtvZ6uA5Ltvmk7zaU+qWUTinmIiHuaoAO2QM2iWPmNuKxnCmd/OgGesEWKprw/7A+4u7/HfndAGMa6l1ye9LFWY8mmv5ef+8GZQrhTljTxWjSTN9zKtDlP9W+3Krsct3kX+eMEQLA0+ppJ1E1oceAa6tIKY2u30pwQAoGr/CVISdTqCU3zP44DYBnks+QqBzkt0DJWBTl7zJy7Xbc1IGa1cnNBEndx1XdURRl5fO316fT2vQJtc3mLzDOGcld9DnSdmp86uemnA3CaojZr7Yqg2noV7qhu2SytpK1ulWAH3gOSrROdTClmKfHJLLRmgR5x0m8493Kj7hB7P/Xwox0Ga+wgAnqouKYRVvCmY9fTQ0TYDVGrxs8zhhAQd1ovou+HAziuaoo1oyWgcYEMR2io8U3aM6h2SWqpaIZASqqudJZpBO7i5mmC3QXDD6ozFCbrRwjgrK4iImrVBBiRGRwEIlEPQkr6LAJSB5iYNH7A0/S7P7DGPEVwGNRVZJ6B5Qw4yEMTTEQ88Uj9oqXldWLj7+xW3ZN6KGHvfuvXXJpgmbqvI2kMQQlWYiBnTKcJC3eunN1zBEBhLSrpmSwJxdLOhj6zs4J0qz9SGb1lMuVunjzQ2c8SeayjZWNS14kujtTN/hdNO8rcGHIDbsZ8fN/rTnI4BnidFauj6NptnziBPYvqoamlPQgFBUBaMsRC03zERQpyn6Y4oGnElwQJ6spQGFrkuxvXNGXcHTJmAUYrYbHkjBgi5pSQTyeUeQGevgQMtPXLdattAdv28/ZvWVGq68+6/msjXzds9DebT0VPBq81Qnd+Nn14Hxjq773Vttdv393LSGVzfd8f6X67Bupe0m6Bt3+J9tzeuOWCeA2s3frt1ve3xlZspVwd8b55c5tDKgnT7/4Bb775A371s5/h4cvfQ1LG4W6HYXfA6XwGDyOGccRSjljmM86nM05Px+o9Id5PF8qrwAbs9jvkpFa0xWqDKt/T3bDMC9I8o+SsNY/c0lQKTscTTscjPv3kYzgv1QQkjCCWBdYFVBdSZeMq7/0T1EQdOk/6uS9l4LuRiJA1LRpEBOdpQZ4TdruhPay3PFVivZ7jjrXUVdK6oy4LudLKC4FvYsNIXQg9duv09Ijz40O1QnGM5jkjmtiNTcFncUVeAsgVdDWBhLWUS1PmGv13ul7Is1saqKnzdoXGmQsmm/J9mRc8HU+YzhOGGDBaivQmM9k6+VpyQPSsg97Hjs+v3kkMojUlIQoVWFYwJMp3gNKAIuhShyoOIC7XDzUWsV/Qxh0ycv3OZa3z8QyBuvcyM8ZeDnb6RNrnq4DGZTrVetjrBBwiPv3hDzFEBaXjuKuJvHJekJYFuWaX3D60G+yN1se5kVmormWY1v5fgra20cUjbC7fK+06ldOlAn5mPUdpWurSX4u9K5YkhIMpcU1+iZEwDITdftT4twKklJBCWiWVK0tWt0nztmKWGrOnCQPXRqIMrTdXoLK+D6NQUUsrcDkXm/a9AW0q6ANcq0krW2YiTdbQEQH0i6xoACDzexa1zMQ4dPWZNNjSgUnVXpBaLkTTOplWwRkEmXaFEGYT/Bhw1773CSgucFcFkvonNP6TUyUkxa73g6gWIxVPsxQM7rpmQx6GQecla3ZNkLoA6MblGsTa3DicULuQ3KF5A4ZkRG5F3OyAV3cAgQVyanxfjIwU2Nww3dXOfNYtZolYNR5eaLJ3oyHSA52zZtFxlxqHeWpm9jgonchiACCXNndkjK+miBWNdQTU2krjPSQVyHQGlhnIpQNrVO3vfQp4bA94xy2doft+bAKytIVHJUn1NzJwQ8bwfY1SNvegXilAqIZQtyCRNNcctvkswuuuClArb9Z1NMhERjixaVXAUKbChFrXzJ9SE5bYPgBQAbp+1nnz10Znlu56a2uloJjMbcaObke8+7GklPDweMK//5u/1aGJRpDp8SzIaYbgrsZfqra5sxCYggTE4I9foSzSnQtluAoj1VIcWTM7HY8zcBiw2+3AIMzzjHGIKAI8LSfkXBAsHfQ2LkFn8rYAfq09d00vqL0EOvTAq2/vE7pv3YfN99vnbPnprfeo6qxXCLVx3brnGijcbvVr77x+XTvvcqUP+pkuvtM7Xwb1eoBzCxx9V2vdd7n/ljXsqqD8zO5aqzvb81bPF8FpOuNPv/h7fPuz/wtPj18hLxn7IWASAQ8jCAWBBFwyMjGeThNKWlCs3I3G+8rqmd0L9Z9qBWixUwXK2nJSIKeJsZQmlKLJS2qcNrlKlyCWGIWYzGWRTIiXlVWrzxjs7+y9LcgUq9rnLgZOxIQ0aFIlERzPM1Ip2N8dsN/vkOe1k3mVcUwxTWapE/++/uv7AVawe2sJQe2zu4mhMLgk5cuSUeYCYsYYGYDSslJUKZmz1qJyzw0x/iowxV7tAtWSLxAT0CnDXccJhIDcpU1Bx1ubXAcKRt8JCBHjbsA8LTgejzgdn3A6Tygp49X9HcYYwCFUntmvD3PQmrYhaNkWzypdmY17zzjvgTJaKgADS5rx+PgOQZbKK7Wos7l7buZYyuZEXixB+6Iv+UDkYSnr/c6mJDUMgDRpFkyOjN1hD46sbnr1Zf3bTY4h1O/99e6FxAaWMgpSDtjtIgbLXrgsGo6QpxPO5zOIgCFGE714865bHKk7F76+/ZyR0ckqY0ndE6twA7HEIy48dK+rawlgSRnzkjAvGcO4R9hbrLk/Wy5FuWvN5UVvITCGXUQcRxQJIEqgIWCMmoayFM3+PheraSgLMgJiZHz51Sv86pcfKRA0Och9hcjlXrfIeTZ3eU8gW9e+N6ANdVB95zXzIBUlBA4MnNACqCAOAMIQMI4BIaorVCFCrwqhYJkTTGiusio6MAXVSmjhTO2NCtiE5KJNtwe3R0b7uN3g0D5GI8QCIESzqikwdZO1WgHaHERSYs/BzfSwYEYNooQIct1wZCmFjYjDiltn1UI4a+7Zt6a+1557CmNNx6+jU1pMteC8FyEnBJCENv8VTLNWsQ9NAA+VwEIPZ9EF4BiwGwc8nTKOpzNCjIijEVsIKKqbWk5igMCyZXZxTspAjBGLoCyzklfWWIV5UQYS44B4eAXaFWA4oZzPyLMGNBfRwqIlC8LQ1pJhJQrqzNkrjYkFaXGSG2XsSuCobtLi39taGEELBhrc7E6mkizOMWEgzSNkob8FzmBqFqjKClfMvduCm+9W8QjBnutMGh3Qsj9a4LklzKFL0l2FFD+nhAriRVzI97tsvB1hF7iRXZnXu2/e4vSjM17dH+wNxYAWzG0qg0OEx7L0x46h8WcMAoYBc04YuOLITuxBDUoXKCMuuSClBSEM2A1AwQIaP8bD4yN+98cv8OOf/LfYDeOLwdS2XXOn7CjIld++23te0q6N4dq7NrzzJmi61q5Z527fd+XM3biyp2cbPXZ37zWot/6Lrvzmp6pRzvXzLq2jvcvnGmT578+5P16OSbo5lot9sb5nTQO293yotfCy/+2/Aeot0D+/iCClBYcf/DUO6RHTwz1SSvjm6zf4+u0JJKqAHMcBUhLy4zukaQJANalFLlRBAWBAwfjt1j2rcjJS9yVmYD7PKGmp7knKEjT+O5B6JTgfa+tkCYvMusImIrgFbwvYvF91NvwarNfNG/scFa1BmnPG3at73L+6B3JqsXPdu6rlCFAXMhFIlo3Hh/WfFG9UrkIaO9x4AePu9SvsxgHvvv4WGZrNkYyXxBAgBAMCUhXVLkSrowO5tq0J3E7XobRTLI15n/Iql86CZcpl31Emviqo4oBAhJwXraeZM96+PeP4+IDT6Yx5mpHSAuIB9691Xd113pWvVIU55ScBgkxQJTsMaJsy05XCRBrDRFnlRAZDlow/fvFbfPbZx9iNLgyYx5bkain013nyLbciPWslqZYu44sVWPnqqTeRqxV8/xYpkCSQlEGDJ1Tx8a4lui119XAet5v7O4cw4G4fTO7JWKYJS0pIacEyTZhzxmHcIToYX2GKnvL7/m/8HB3Aq1ZjoO6b/u8eUPUyAIDVXjLxDiWra++8JJzOs9YMnNX69fqjAfeWhZotdn2/F8yzJhF5aav0Q0wmpAyw731ASNd8WTKWBZq8BAUxEJgHQDQesQ+PIxFLYseqBOgExmZvs1l9D8r8foA2Ut/udN5BBg3w9NUUP/i+0BDsxhFhvENYDJV7LJVoAWchQeACKowhSCOq2WuRdIxTur8FANQtAKQFDau7Y2iWN88gWLXskYFUKmG78Lvq/6rvVpSd7Qc1Aesf7l8tbpZBB9icaHQuojXhhb3JLRw9AykFq3RVbV90hMQARalpJpUIFzAg6qVObH7P0L71QZRE1MAauX+umY6doJEWoXbw5xY098tO54w4RnDwjJQBJXkEllTfZAeWTiaUoelYHh+PKEWLgMdhAMeInBNSMrAx7rVg9zwjLbPVxikokTU7pQgocNXkwTS1PlZN1ELIBHARJBjAqpoA1PVTq67ND2tNN69VJ0LVQuXjdw2u7xEQIZj//hADmK22iRF0B4ECJWhqUHZrZ9t7vuuqa+5qr9lVld5LX+VM94HTGT8P9Ze29oDqJUBaQkE8MyUsdgFiGST9LnNlZtV0duHzdb0///TTLjur7TViBNaznlIx1wa0NMawrFPZ1izoE7lkFBngNQ91LFx1DsZJFUCL4DQtYGTc3+/BYEzTCYfDDr/69S9x9+N/wg9/8u+eZ9I32ksscXTl32vg6p/bmrhwu63FgMvPzz//EuBce/6HPrsXEfzzddfLlzPr0oGQ5nSG+vflk9eW3a0160OsYtt5MvFz1f/+mmuukXT1rpc3X6GC59csX+kTM+PV/WvEOCJO/wb0+oDz+YSnpxOGcFbloYyIXn+MGXh4AgG1lEySrAlHOqFQgCYLiKzmmgOr10kIWKZZ02iHgCGoVSFnjY1m0oQTzTOgCfrOx5V3KfjQ39ZgrCrPRGOy++/rbFGjkeQ5Zb0GLGt8FgdVVLp3Cjq6058Ef7+6a27WoQeJXRxxcaDVPWfY73AfRxyPj5pluYi6xCGixsCbRY/YlLjOI4xvqQWIagkmMf6om0WqTGXhXyvrhodBlwIEat4kFLSkUYgBcdiDpOB0zCh5wXyc8PD2Hc7TCfNkSaHG0ZLNRKyoYFFhuMpFTssdfTv3s8QVLjN4qx4z/fSCVOaptMBOXI3Z930JrKCFy3LS1qT9QPBaf+2b9TiWecbD4yOYA/ZjhO/WJWn84243ABjqOy5jzEw+rVk1ba1YQEKAtJq+TATkBfOiWUHn6YxlmTTZmAjCOMJjst6XzVC7IdXaWrUIdY6u3ePyEXT/OWCT9W7PprxeckZOBdM0Y05ZaxxbuSxi1vwVofOow0X+nhe3UgTLnLEQAGjMWwxkhhIbVtHYNy01QgBHxDGiyIAvv7zf6nlM+YKaO8EHSYB5EmoI0kvEie8FaCsL4/Tla+R5RBkCMKIKjddqqHEA7sY9dvcHLNMMAZmpWbPDcClgCfU4uXFj7X/c3P1WTI4ApwICXZytFWXVbqDifvJ7gcuvDgZUHAhWIu2E3wR2uiKKVOFUnEB0faD2myb0EPcKWPVnvTuo3qqMrBszEdgSQQgFCHsBU65l6dzdzAlyfbbAAobJBCxqbokNbfmgavFCdgZnhCdfaDpLHXuLc5JK5ABBSQlTSpiZEYYBMUbE/aEGpQPAuNshjiOWecZyPNa51Trv5iNPqNnv++76tJXqUmnM1bEWUDVcxYLE/d8eIPXPY4sPbILAep1KyUgFONwdFASJA2TvwsUmh1PcGkNgi+yWpVqnxvecEV/ebBrymDtCtUATESI2dNkYpmJY2/FWf02g6fedyKtrUx+UZ8TWmCQT40c/+pG6lcIBlrk+EEyLniBFGUzg0NWX6QVLtSeXnBFgWcOgwH8pOobm5qpJB5yVn6cFu/0AkGDkgLwsyE9nTG++AH7y7y6Zb52G50AKbf5uvd2eyi2oElzGq72vbcHN9p3YfH7fM17+3sunXlqnrgilL3r2ZTM7zQrU9GLTc2N8H0C7fd/1az/0e29qLdyu1uUzbgE3bdfsbref0/7+sL5efaYIpGiSoMenR0zLAq1HRMhLPdkgaGa/nBYMgRHv9ureaAmYLldPR0XQORrGAeNuByLSIspJY3lD1Ni0UjSjsGMiwErSUPfcTqiutTg3E7H1TAimDF0J5g5ygPXuFnG/8fo9m8fBMI4oy1xT4V+edFqBs75VS88GVBA8PF0HomVwCt68/ROmadGSRdVzw85JZ90jA2xq9ZSqgCvQQsw1cMX4umemBIAszSXfwZNPsUYzU50F4ohht8MQdT1SmnA6nyBJ+0eecEPUuybEiN1uh2EcLzJqi/PfztKlXikMsmQb3gctRdTRQDKe6+h99eAOeULBQzOINXlJ+nV7hkC6Al7lWuqeYZ9FcHp4xJMIOAz47PNPDZ6pMtbXcv2OzX4B1FW1o6i+F/xcioi5vRa8e3jAsszIy2KhF4zdMGCIXuxZroznkkqs2rXxX/muKZy7+em+LwKknLGkgnnWuns5FZsLWMK+YAWuNaszsUa7i3B9JxMQgomhH0TOBGlJ1ULHDBBnCw/S87Ys5qLNASHqvpuniN9+8RGG0f0qFKpXCqBC10quJ6CG+NQYkmfa9wK0SWYsT3tUKxT1m9quMTZUBJjngmArEDwGjjSrlPowBwQm80uzzQCAgtVa659rwK0J26XVovLr3N3x1qKnAgkalOgp8IX6vrd/FWM117iegjSrlSZOIRMsi1TvtTovIPW11tJizspaB73fLVAbraYMWWyV+9OSZccMESTZCJtagpSfiA1f3TQYZFrDNpEN8HlclAnam0kQuGbTugwnjmS4T7UlQQMIQZkq+KnMVbiro+JuR9rPDKi21i1Q2YSIaQKfz4jjiN3dHUKMWofGizeaxrGIlktYkmokYwWiNg/GpHuZyh0u6vJ0kjHJep2LSAW9QGOECVgRsTpbNiYRda+Z04w8T9jfDTgc7lW7WgSxKQbrPLtfd9Vu2nM0EUkDZRrv1gM0D6bTaxwg+z5i0SyUAtR6I6G0QWucYQEhaLkC8T3Z3gcDc4Q+jkV/Dx5gz4wvfvc7/NVP/8p+zagxI3DrYq5bP1vspLsSEVvhUCeQuWiNPI/LYEIg62evoSNCNnlLoJk+52XCq7s9AkVQLshTwrZtXcqutfdZnFzY7mkGXXz+cJDTb8vrgOf2b00s8f9uQcFlf14q8PfP9SetLZG3wcT6rbSaq/XzfQx+3+35u9Xv0r3zQ1wNn7OOXWtrjvX+5z73nAbeLp9/zToIuO37/c09U/xZIoJcMuY//RxP3/wegURL0hjNLrlo7ayoJVmkwJIkAbvDXms0mmX+quxbvyTEcdSMgiKaAj4p33VQlosKXEqA1a0tsgtRqHS5B2/VxR6otbrW7ph6XakgrUs6gka7iwASYC7+aEwXzvOo1nhECM1drwrXbX7VOHLptePn0eOUfCEcIyYRoBQ8vn2Hp4d3gNVvg/GinNWy6bwv54JgBa4hgiwak6yp5HWuCqlMo1HFAFlpnQpemVBSAcLa3X1Fd0QQwoBxv8cwqHL0+PiE89MTpjlhv99jHLQ+7TBElFzAIWhduBgrsG5Z3nxx2onU2r4ag+SL7Ym2xAGatJg2v79vree2JlW+yPXSKhfZglTXP2C1b3wGXAZwDgFI5y2jV2Zzn40jmozRr7ugZp9Ch7OMAAAgAElEQVQm9Ay/Ubnt2S1FrDSB8rElZUzLhDIvyJIwcsQuRsSoCVw4Bng93mat66f6Gf7VGQxaWs1+LtcWQClFvZZIj4ha07LxW4tPzbnKeswMHqImqyO27JqElDLyPGMYF0jYa1I7UotjLoIhqFJ6mtdj+ZBWCiB5AUoChXH1W4ythMT/+r/9Zf1+7XkBwxUK4zI0JMdDcNh+F7pY9ov2vQBtICAOWsuJKMJoWz3wpaIdVOFcU/2KuhpgxLgbsbimJQRk6t27gD4FestACJDjONM0rcofGm1YrhQ01J/bYaGs9ct6FlmNSNtV6BZGnKhvpDMGLFkKgNA7jkHT5gu6NPw6Po3x8YyMze9bRPkD0EACQSxQ1wkhIKJ2j1q8nPRdZIRd7xdNLBLsaWwDpGAxRCbWkLpTSM4ABwvGRj1MILRSAkYUA2uSiqo9IUJmrnFlPhgSNSUnZ7LiyVw0zkrrcbT6fA7gchLktGA6PiHGiPHuDnHcVbO+B3RDgNO5oOwC9p++Qk4LsCSU0tK9woSwKrRst4egvj8Yc9OsVMr4ywaoaPdpIzJRZwFShiQlI+WEt9/MeHh3xhCDxpgUz2pp4quNify5vh494KSLHqzmuf83BEISL0RNKEEL2ZJtZvKMjaQZMikEyxqmxdlLKZrVE6VmHmtxAJ0wWXSz6jbS2n0pLxjF3EIg0AprRYu2pgTJ0qzP1f0j1OsFASOAE2vhepmKZnMjTeTSB/bbrrZDY1XUBJCsNEcDiLXgZilFXTc357vTKeMlTVafBa7bLmZRdndcolDLa2zZ9ZUVvABpAlxl9dd6Sbjubljqb+te94D1paBmCyi8T73Y3v++jVlb39ufQbF9Qpt+Xl55q22tWSTmPknvB19b8L4FYZeW1nZ9uvJsTwTyIWDRn7ehJu8d+YXQt3l3faKodSWXjKUsWM4zztMZ07dvkM4nrXeYFiRLNHJ8elJQlRm7oAL/YbcHiDFPS0v9DlRAVDtUh908UpZ5wjIvkFxa8gnnKVktbBrPXUBxwHjYIy+pjdAEZlQgsBLVlRZ1fCcIdG08G2UH6lZWNwJKMSWYCxmdC59daHRP4x1uKj88NgMKMjJgrvLKdcbQ3IS8/qnKSyrFLNOCwGqV9Ix3Hr+Wc6tN6oWUHQ8VQOusIgOkcT1sAC7UJGnrXU0FmszM2KMUARW1ilC1nunc5ZzxdDzj+PiI43nCfDpDiDGMo1pJoM+KwwDJCZGDKXNJE7Nck6s6wMRECK6oJBU8xORBgsWvUwNTJKtN1j2z8SYiufTUAlXZok6GXbPO8Oj7xE6gabhXYqXJCP5MQUsp729z6x+h1cNd7xu3cLaOKlhLOJ4mTNMZUhYECtiNI4Y4IjoYBtV92ca+3t86lJ5q9+Nr/+rW14Q+1VMOZWXt8+RAKRetAZsL0rxgXtTtETYXHCOGMVreh3ZmUs44zRPKotG1xKGGzkBC7XdKggTCfh8AFkzn/J2BG0AAD5A8AxRAHDAMnqEdOJ8jjk+DVvPavEOYqjVNw0aURuXu0T6/7wu5+H6ANmi6bWKtrSXeLVLiAVhQqxgahQqwrw47hHHEN7+7A0BgLtXlkF08kZbpibqUwkABKHYnvwcG9nISqx7fC2KAqdK6W8wET4QawNQ/qxeOjVk4oKnnoHIKfz11gYyCyjYJWkU9G2CoZ7mJZrmoJSXEgDwn5KIlK5jXTNwFGxfuGZaIwuYkEpk2w4AcrMi2tIgnBRVk4pEYXTYrGVBj69zk7VkTW2ICFcCZAVgdFPVucGe1fo6VsAiaiyPq/FmaYxAOhx12uwHzvGBZsjKonrgCWJYFy9u3atoeBmVIHrRsSlABkIUQxjtgUMCWlwlYFluoy/gRQTuwngJfTARs8oJnckQV0rbuAt2wu4cLYgiAFEQm5FLU5ShsM4J2STVERWoQVVBXze+r/cvY0gr/2eMeuEvnH4oVULcvyOqcuFAvZLX4bD5IVHNbvMSG2FHpa98AStAss6vOE+E3v/41/sN//K+RRdfYM2AFm4OVtls3MnLJVjpDH54jg2I0y7qvHSGwWu9qpk538xEFwcEKEzkhfTxOAD/g/DQh5YQhxLqml3PXucO+oKn1IuFe3mBYHjGdTyi54DEH/CndQeIdPn51j9eHV/Ci3FuW2a/bVhSUzXV05R5va3DUA47boOd97pCXvbruxteLgz1YWJd2v3zi9r3XANv72hZoydXvL+ftUpRZX39DLN+85XrjK3dtQdRLAN16Hbf7dTvi2+9WYKCFs5+ejng8HzEyA2nC6eFblOWMmYD54R3yMuN8Oqm7XSCMQTM4ZiFMSfPDESXzzLgxD7ZpPUujZIt9c6WYZ2izekmAlz2hym+CgZ7+Dc7T94cDjsej8XAAm7UDgMW/8yy/pnhrMm53HskBv/FYM9lXeGbue93QUGmFCauuZKurUzasoBQUCAIRZgAsajVLSa1BEerREqMmOHO3zlJEa+ExWaFtS+9vwBLMiKTyFrMWJvY4HC0po32ECaGVD4vBGGrySKH1OSkAKC94evgWD09nTOcJ86SJw/Z3d/XaDJhLbdH4es/46woyy/atjiBUAU9v3dM1YZv/oLW2rgFz3VgX66ifreeSUTYp9Ylue7G12K5OqOt6VlV6HQEWf3cX114V6r5uFa2iA2x+tz25V3jA1qQswDJhCIz9/g4hqmeJ1hJjvA8kNCDXv2t7jWdQ9bFJ/VdMOe81eCVnzCnjPM3IOev/k2UchWXVNGt0iFqHVbK6XGeLZ1M+rtb1ENWFNoYBlEVlc6K63jkXzLNgGBm7XcA85yo3f0jTeMEESAbHiGjFtT1Xwn/6T3+pIJVIZXTDEGQ5IYRUzqAs3fkWBPMq0vPzfjr+vQFtul+7NEid9opYa4RURwGx/ww77O8P2B8OePz6VJ8DoJnSnVQ2CVS1RjBtfq0Rptf2wAr2uaYJr9Tg0mUBxF3wkyiyQrd5twPuMyvBiUjTMqnGxbpcXDBHmx82gSc742BY7j7ACUrZiC1tSPAATv+6EhIL4tJuB9SoE2piQsoFCdlqF7rAvB6j16Bw3W4RWlkGm2uFBRbXUgpORKmuvb/bmdiK8RJMs9bcRTgOGCNj2I1Y5gWzudDk1FvKYNbIDJnVz5sG2xOlACWhZK0RI4PFGnLAsLvDMKqbXZ7OKGnjJifd3qm0dBsHsRnE5s/ic24/FGq2B48VGwIjglGyMlt1k4Tui8DqDsOtIHY9N6t3d/3ZtGyghnQ71Ayqer1ZC41hepyioFlTfYy+/kyWwEBMMDICX0oBe7rvvluk4eAXxeql1VKhwJpuC67FNWu5bUavZacdCaq5hcUsMtn6S01U4u+mrh9rhqXM8nQ+q0BkGmC9tK3g1r6hJ3ul9lm1XrAZZMby9ku8PT0ChRAYmFLAnAh5JLy6O1QS0PH81bJu347u+v7z9ruXtcvN2+yKdPFd37Yqo5e0l7pZ9td+qEUKaBYlfc61UdpvV9T81962vZe+Y7/0WZfjep9FsyVVuT6DHzKvV/skgjQn5Le/Q3z6Vr0d5ic8fvlbHE9ngAUDM+bpjLTMABgcB43pkVJd9jK51Z0vx9PLutIJqsSqmCRCiGzGLDHrkcc5m9xmwI1jAOZ0oQEHCJ9/9jmWtKy+VRfvpoPtaaSTr2aNRQNbIGgMt9SsJAoomisjiwURELp43cs9RwaMXI/UW8k5iAqf8P5RFfyjATRXDFZxilXRVVJGCEGtHkQWRtOEfbfUFfI46xqcAlfIqvWQ4DXhdNgaMOa8zkupeB8U5Arm84TpdMY0LyAi7Hc73B12dd3UeYdXgndnpgQ8w6gLa5v10a3TrGSBA4YQUSuBit3nfcba+rIWnNnAoSle62asL7JnbgRu6j8IthnFqXsaqPdUAMRyM/QEWkFs6PIZNPm4p0BiRc3EYg6JAA4Rhzu1agemmtnZQd5VJvGCtn339iHF3BNzKpizJhFZ5gU5Lche5qgbm+cyqLw5JcznGbkkS0anHjVjCAhDUMA2DBgCg2NAGAOYgkWQkWZIpaRKlJKRZy1jcTgE5Awsy+2skppkpBuVCCDJlPw7lRdRkLJa1mOkphAnwy0EPbie6RRqGMkU4JZHEGpcpp+f9+G27wdokxYQGqIKQi6GNSHbBD6dEcQYsKSMr/9QgGnE3SvG48MZZEUsa9Com+bQwIq+8jprrgYZgiYh4Qa82lMctGltETV5olNP6zX9gVg9wX17OQBY9Hqn4iKqQawHQplQFXSpEWgXKp2oAFTroQXLVAUsNgasJTzvFPlblLkEm3txVYTLrGSuCSh4WhLSeQGD6uFxxtZKm5vAbsK5CuAK5IqbyTU6rs0OmXaUmxuBEJm7SUYRUXc0aUHXpcgq5NADjymoVjAOQBgG5JSxLDOWOWFZ1Px+7XAonzDr7jLj+O4thv0Bu8MBIp5ZjBHCgGEPTE9Hi1FTBh8tfsE1kKUUY1bcaaOaMBBsPX37MKmVtGci1b3QmL7zqiiEHJTZugtpyRnn4wkSBgz7HZaU6qbu6bM3KWZdxdrS53vCtake3F09eZlq3IafIuniIOpk2m9JOoWIPcXfViAt81kt5L3drP6Sbq1gLrUlIcYAkY1blY/Bz8NuRMnF4jXcatwR2P49/Zvdomp7WTh23WkMt0jBeZqQUkKRBuaZB7y6u69ZMK8J276yzIzDbsTHr3+Iw+6ALBG/OR3wY1EXMA5DFRS3LPMaUOg/O9Wq64W1Re2SGvr3tPn72hsu23OWnZe03j3Rn3fLQrT97n3v21rC/HM/P32rwqlf2yk1pPsOMNdR2vZT//td5qFxqpePa/3ef15br4H9KwI6fgl+91vg6cFckTLmecY3X/2/1L1NrC1Zlh70rbV3RJx773svsyozK6uc1VS52o0lN9hqM2isBgvJIzBSDyxZYgTIkif23J556ikSEpIHyHjCzwwjwcAgIVp2Iyg3YMoN3dXVld31kz+VnS/fuz/nRMTeezFYa+29I865772qtqUiUi/vvedE7Ni/a61v/X4KCgFvPXuC+7s7dd0OZCnUCSmpMoaCAQJX0D3eAQAeC03mNlyMVmvyDEmpJo8SEavTat4X5lbFu0NewTC5haJ9W9O4A/U9/aVslpsFhGyehJUumnWtWoKqKAnjuU5T3C0fdfN5FkagAZ6+n7lkc/RRulkTrlXaS7XfOatC0kGcxuoyRKts17GRdkTxGDT5WBHSGDwHdOJj7Oh+D142NWydJqKCSbZOURwwTrlm/R6GETEEcGj8Qt02A6pDryk+DdWYHNQFwNiRa9jOk3T1cKjfUK0WX+ut/26U3flmXRjs2rjATzfgrUdBe9rRvdnmue+LACikQGaaRpN5I7Z5ELo+V9BtT1N7JzNhGIbat0vWHJVNGhh+zOLj+4CYTCbxz+19orFp65qwrKulxV+RU6rhOzBlfIzRYjsZgdgscQn5tKKUUmVx9pppkTCGATEGnQsLowkE9egKKkVRNRCYD1gBCjO4qDs3scZwxquAnFtJAPeMAoC8c+sIQQu+q6wmECmW6IjhLqDixbFly++4yxtqW1JXxs9eF/P6/x9LG6mzXUYz75IEyzTHZsp0sVZMEB7wpfBL+Pj0h5CjZqiKAWbCpxbQ12XA0X0lhuTVJUCt3lQPSo/liJUQOiXwjUlgBVylfqgp/3fX5shK94E5R28Pt00EEbxux4YsdDTHAadbJ2IAUrKCmCDEAZizCxlioMemgkwYMlCmwNJLJqg7YJOXt2KTGChLa8GaBIGhhNZdII24VcZEmikMxgBdqAlQ5kEoyDnVOmm+cUUIwowYuG5q8vT4gFkDnfEpU8lQi6TyS41zKFFTPedcwCIYeQKHCOCEdfH4BgeJ/VIQND1uQV61LMB8d4vxasLh5gmGGJGz7kkxaVgEWLNmFwtsGTfFYgCMAexBkR/ekBKyWVKre2G9TzQdsyEuM6AhOCgR3w1tT+WcscyafOXqasQwjShFLVQc9E53ewUETGIxAFT7ti+c7QzQrWXkX/R9dVToQktnpfIkAaVIswCb+8rp/gGCghiizueGE1Adp4ZwuIDUCOyyrBiGATArc0Uo7LF0jFQKxvGAeUkg1roqPdcTF6NU8wDJflhs8A4qSQXAIpp4oUis1kWAsKYF//yf/R/46P/8H1Ey4er6Bt/8ha/im3/h1xGvrzHxaMlR+nd3vSDCOE24PlzjMB5wKhGhXG/ic/fiR7+n+p8dKdtce8ca2n1+Joi4gLn7/Jy9SNee/l/p+mVwtW9jf8cl6+WbWoiaU3JLXHN+TwNavXub98utKZefdgFWZ8bfU+PoNme90dQ9AKILP/vvevts/723dQ6o6aeeK+Dc0rjpJNqLe1fkvMxI8wlFBPO84P7+Di9fPMf93RFX1wc8//wLzdg6ThjGSS1qAFJW2uuFo/3Y1VfKrt+EKuC7JW2Ig5b1KKjx7YMl0xBhdde288qg6nnjgpHrI93lvkBj4UtWZUtVrNb5aTuJ0OLFW59hKfG3Y6lrz6Sx4B2VdZFgs6qCWnrHZQ8iWMgDIKXgdDwBAkSLi3HeIh3J8j6FwecBHkBeLQIkVMvErKUlxgistVu1OHhGgHp7BLRt7YrjQpYN0evBStvLgtyEfJ8X0RqzwzDoTaxp/4W4JlxrMdy6ZsxdWZbuFGxkKl/L8wWwSdGENO0+O7XVhR6Vn1EITRasyyLoXRKl9kGqfFMsZABQuZG6HAebLU2bH3Wx6t4kgeQV81JQEBBCafurf76THzeADcCZZc9lpougwAFue8R53aWQjVK0DppYhlYRYC0F66oK8WVJWJcFJXeWYLemmeLG31FKQTqeUFKp86tAjMBDxDgFDGzlIYIZCLglSiEbq9h4yeottjnR2FYRgReOoqxhWDCacjiESvBdCePDDqy0I2dBSjrmZOFHgMrLLiJEXrFgrCIIsxYHL7537WznTaZDqOtzKcDQqxEev34uQFvVlklGtjgROROqUA+ja69GHvHs+hnmNOG0JgUQzkcvEU5vyyNAO+LmmV1aqjt7klEPth7cuuVqA2R+q4W6VejSjrqQWzM9XbBStM71QkLrNNn4xYg5B+1bTlYHDYKSszJGIxjTFLEcW29rPCAa0dFX+g7V2iC1BpndXIlwLmrdgpVWYFQtI9n89ASFzcyth8E2so3D67ysa0bJwBi6zGGVQJtrLFCBmYPN3DGgIh4F2bRIRITj7T3m06zZqqJZuUQzUhE1lwh/JotUzaBqXRqxLVIwP5ywnGZM04ir6ysIR00ZIWJmcgAkePLkSg9yWpBSNiKszKR3kfRtmp1J+N8IICR4YLIL7GzasAItHOoL05Nhgmb+Kqwa2NP9Ax4eTnV+ITsxVHQ/kQk2yO7K2AgNUgaNsRPGpbrHkDFFF5DqGdioPf195JNptxTrL9Tldl7UBdN8gbJQB4iAd997H/f3d3i4v4cDqXVNQBZcX1+rssM3OlCZFJFa2hrD0jEMUf3bm6bfT50xeVipnxqDouOaDhOOyxGneUEIATHEOtYoCXff+y3I/IDjKUOWB5zeeYK77/0mhg/+LPjtr2AapjOB+zIoIHx4vDqjEf7U3kqG3d+XPtvJ4J2A1b/3Ul9ef8nmpzG1R+7t+7LvU8E5GPlZrr4fbiVjI1b78bjlTJ/YCX6vfEcDSA7YLlkInbB1LOHsJ3U/qX/Wrks9+mndHF93v5Lr83vOLJwlIS8POB6P+PzFc9ze3mG5e4nj/T1AgnmeISiIHBEhGMepzZBobLCW/Li81p4cQcTKzzChlIzDdAAHRjB3pLRmAwJsxZ6VL8YYLIadLKGQ1THrxuPKNAoR67wgrcli+EiFwG6TEjS+nXcEVwTVZY32kr4tpNNXD7HQOWa0iMHumaJWCrGY9QZENCbXrQw5Z5SsdLhUeooK3ACn35Zmnkwh6EAZHvNpyjxpvShFE5KJAGzGF18DCweu8hiboOvKRB2gYJPQjXSOCul7iFTZG6JaKTa1Qnsg5ePvZNyaDKQHW/1PG3fLNEmQwBWgeSKMZu5AlV+05jGZfNOnzrekI3VSt1erQdoSYGy3dJMT61890SPzEEIADxGBI9KaEMuCgQsKWU29vkXaDtzVgI3e7s6wdHO5ZyYV/W7nsfdaceVwzgXLuuI4rxZjtpgrp7SyBNDxsFunQqjNSilWMzchrbkqRzgwYhgQI2OIEUMMiDFY6QGfP7W6EZwfQxUcJiOWbjMo0G8zlnIdLAAtQSJJwKweAgRBCNLJR3qV5OBSP00lVqVtP2FEhF/7tR/hf//2v4L7u5s6f8myXDqcEY6AaJZrtOkFTJl+5mZ74fq5AG3SC+G2uZg8SBLQYTUiEDng2dNr5DIh3T9otpas6L+IZoWrJm1Uu5Ra2DYpF7E7XE2gbn1rf1eNFhrx0wQbZuK0zd8UIMoYVJb0g1FPKYBggi9VwOLdIIL6uhYFUT2zca0J7CC7x6xmqHLCsLXsXJj11iJhSwSVOsFfUw8EUY0faM862yETiCxDlVmvNC+J1vwIQWvnFbO0iFhbQt08e/YniwLqGS052CRLJuGfN4AgkAoYybJoHu8fcIIWcB+GWLP9eJtMSqx7//w4aOCyFKmmeiLCEDUV8XKaEcKCkgVpzUjJiqUnIAnhMB6AcQKnhHWZkURjJtitt90KKKNwwRE1gYcziWJgr+ziICshriO3swNziYgMlFyzo7q1TEEMtaybu70i+1+6tRSiWmSVRMAF5t6gRSLZYiUYVkQcpC6WRSxLmahPI1CZJwfGxIRMrUKVykaX9i9151HnMqcF85Jwfa1pwlyIkH3Num7Rcwn1XIl08ZSdJaHeLh1vg+D+7han289x//wTCN7V/V2A65AhP/ldpNM97h9WlDTjlAMebj/H3Yu38HT8PsI7X0OzAPlZPRPdAAAv0vDGAOpVJ/0x0NdTpP3n2+fbPO77fA65LvXtklvj+bu2gKXv2WPvPm+v/8b3UR/Z607Z+znp2wfOgctFILNjrv6eVwGjyzvaaKHRrrPzR6+a3cfec7kPj7//p4N/5fgF7j76XXz88Uf4/PYLxJQ18dOSkNcVKWtijPHJoHEgwVyiRekbh4DjskJrOjrfNQHIUr4LNHW/8m3VoH3w9a8D0IzPOakK0euEBvY4LW3D3f0ArvUbRbaCERGh5AX3L1+C7FkxoAOhVlbH+r2Zyyp02Wkm489V66iCWa0ttjmEYspeVEAgAJYl4fjwoNYoo7saLSGa7jxGtUz5+5hAxQAoOtmFmhAYmC3konNL9/U23hMI1b2ySkwu41dRqjJc9ZawJFtkfNJB+GZj2fiKTyJRjWEqqaCQJRpx7wNRi9Yll1kHUE15369FZxXqvmCYglyAxu20Ha40RqxZqqWaHPCquZIrmOvXvfbL1nq/r7rewSkbWQIVVUwGDOOgsYbkvh9mXYzmxUPqIkp0Tm/6tj2u3T9rfXHvtdLfDreitaQp53RVRJBzRkpagHv2NPzLijVl5GqV0p6HISCaRUwtjha6kdQYU3Kp5xhEmGJAiANiYIRxwBA8BCBYaBhVl1nUuekXCFWe8f2xDWXq18jXrd0bWMCWITWXiLu7bwBScDh8DOYHk68tOQoBCcHowRlw0IsDfuVXPsVv/MafrLIYjDa05G/GCw1ASy5VyeD75o8N2ojoPwfw7wP4VET+NfvsywD+awDfBPAhgL8qIs9J3/afAPj3ADwA+I9E5Lde9w7A3KYMrfdXUwI0NltEE3PMy4qX9/dV8AoxgsytDVAaJcLV3CkC1bqJB2q2ySeCJnKo6qptHxxtC0sFlpVIBpP8k/azpkWwDSQETRjilkDrjMaaUYe6mzBPOinwjQ8DRc0drgM91o9oPrdEapY9W0sf1pkUR0ociNrGlwIRMxurn6jSanu+4p7u0Augrnyd25yUYrHLVFO9EzMoZ2VItoFrHSRrpxjw6pOP6Kt6J0wnv74Q7afWkWtuaAK1RFKMZmlrY5cNAdBfGRoLgKB7RZNm5o3fs3Y0V5ACqF92SStkiMrMecDhekAaV8g6Iy1r13Opa19jCCFAR2B1jjoA0f1CtqY7Rx3tCRkQjQERqjlcszLZUlS7hBAgQQWaXgvt7bvLILG5xkA1rcUzIZFZAY1os5WbABFCVocitdjqqnlwP7o921wOsYlx8bErAw8VWHEr+gZmKDA9zsjHB+QpYBhHkBXghDThNRfFit6Gj22TYAgdgCN7B5rArnSEQHnFi09/gPV/+0fI4YAkmlvuG3/iK3jvyQE5Z0hOJigVfPrJJ7i9u8dXfnHC019ccTW18qriexPV4ab25SfLWPfu/nqdJeoxKEXdT9l9/hiI2Vigdm3q/tz2+1Ibl4Db5bv7Wdi36UC3d8PE5ve9e/FFKCI4q0H/ptce2PVuyXtXy0vvPTvPHUg7B7bWnqDSqMe63a/V3gXzsavtv9dfG6WOKP24e/mAkjLeOlzjxRdf4PRwQlpWPe/MCNMIHgYMw6hKPOPvApi7FCP1iQBMkAlRXczXNVlqc30uGN2WXLTIfRFEA30q4LknwlYNQkSacRIdeyebNSlIJy0urEk6kgItnxVp/N7LlPTd1XvMukC0eacLwgTUmF2nfTWLLrQkTH1S0TssbLZ+ViUV0lACikGTPFSZRU9HHa/3oQMTBM3A6rKD81pVsFkqfMsJkKHlc7LY98WsdU4fBSgoWFed13GIrUyQ75edjNHTHrKQDKrWS5sBn7fuXykqO1HflmX4bbF22mbjWrCxA803U9PQwxKoCTd+LyaDMHHNxuwvZKdeRA04bCjU9lS+Suh2xV+2EJ5oLr2usCHWemlBJXl9P0NBKQEFlmSspxodUKwuhps+OTNtf/qZ8rWqmZbtuzVlzKcZp2XGshSktNZcC37WgGKJ0BR4hxA1o3QRrOtiVk2YfCQqi0yDATsNf9E4PV27ENUbplpeqUfde+EAACAASURBVIXE1BXdgZoaTtWBasB59ZayuezmSnsmQRwiYhzw4x/9Odze/wmEyDjMP0HgW7z91m91B6Xt+3171lWViy2ZCqw/YSOp2j2BasxclX0ugv3L15tY2v4+gP8UwD/oPvvbAP4nEfm7RPS37e+/BeDfBfBL9u9XAfxn9vM1Vydw1wXrhXibEav1IQCODzNuX97i9vkLRCZwZMRxwOHqGtM4QUA4WSV1PRAaEAhRgsmgFtPmhxtQQmCSSNvHJuR1nF7MDFUPc/a+ub5E3QuLD8cAm1FwlJRBZEHEIsZqLaU5qSk/y96y0mIABMbIq0bRtRDq30uylUwubgXef6q5WQua0MzWJ7GiahLYKaR3yeisFUpmMqIC08SRMiVqCScIqAczsMaCocv+BxdkSGOhmKEJO30cVBPyIDiDsnljP+jU+qg0jkAcQJFV+9YdDtdyO/MEqz81mZbIzfs5GSCyRCmlAhDTDhbdAfNdAqQgTlfK/sxUHw9PkMotZF18Adp+6061ZhFKKnxVhtOOhvN+ou267nQNbe3Jp6O5AJ5OCzIIa8o4XI2qOXU8BO+P7ktOQBli9Q1XsMOIuYHLbBoxFp2XlQmDWxQ75UjfpzbiTgtoP4g1y+P8cMRgtfR8itQ1VycgEFuQcQZLwXw8YTyMQKENM2Ly8ei7c8mN4PsZ9rMKMgVHgwhkkg4bkMvrCZ/94Ls4nrT8g3DA+vHvYPnGt7As9yiWjU7TDQPCCfn2U5QXPwK+8i00EUvbzyXXmm9SMrYpnc+vc/fKLTjqv5eLu6Jva3v5dtw/tdmmO1i1B0d78HCp/5fvfRz8nVkkxUGHoIop1PXpgnWsOqR136l7k7e97df+s/MYOBMOLCPpfggbOnNhRs766GewgrQt0+9jz3aP2H3SKbfO98el536ay+cq5wyOAYfDhHWZEeKAEAgIjEIagzUdJsSgdZZcK1qyYM0FgbfFmQGlndEE5j7xRckeX0bKg2zOma10Ckgz5oaAnLMZ86m5S5LHULfNUWOASPlCCKxh6VZyRPK2zLgrmOrf4uCbtrRsJ3TpsG3PsJVEFi1b4smj+vdo2n2y50qVicRkhFIEa844nRas84xxjEBRcdUBrnueaAFf5xfN+iKeBcveTEXqfSANQwi2j0AqmAYTvwQu1Gv8UikFIUZkCCJ54R9tLKUCTKhjNBLqb22osdJm+2MD9lDH3nhYk57ZkkpJ6b2OsKHnvrd8LRyU6rx0rpj2X04rioyAyT4wC6wHydSO+ZqZi9927f33Rkm1KU22kVKCJsow9zkIKATjAdQsTUQAicoQIXSKgUYVpFo2qL3b5nTDR3aPElCzTHo7YkaP+Tjj5e2DJjIjBSJxDNXQkVMyRYQKYyUnzEkLmruqXF1gI6YwmBVOgZ3KdGZRNMX6Boh1BeqEWp1aX9cGoHuLYn3g4vr7Z+MIjNdXGIeIcVDPoADC8uEHJm8GLOv7KPkdLAvhK+/+0zp5Yn0TNz5Y+8xkMqKtc84qJ1O0dbAyRtqJ6lUIKC5QYNuFG73mei1oE5H/hYi+ufv41wH8O/b7fwHgf4aCtl8H8A9E3/y/EtHbRPQ1EfnoVe8IQ8DN0xukZVHNORqiFXFh2TdfgZSAtK6AZFxfjTgcDhjGEfFwwP06Y11X3Nw8weHJE5RlQU7rGUMtEARQK9Le7fdziYU2G1t/Fni5RspZCSY6jRtRxUyV/YppggOBhTU70lk9MmNUUrpjSdZnbO6q/aFtC4yCQmbBs0POwUBeJ/jw2Thh2i9ts8CZPzBYnNEqgstZUl1oR+sPMygn25Tq8+3LUOo8djPUrQOLZopUkZiq4KwFKglEuVptPCaSs1XiiRFMQeOYmEDFg1TPXS4A0kNg37mrYrLA2Bg63+iSLfhdZ4aJkT1lMCJiZDAKci443t4Cd3c4XF8reLNsS1IEKauGNKFAxoCRlY1sxGBBS73VH/Kur4JWu4q4ATL4o84DKxozYccImuSM9Zhxun9Q/3Pu011shXRmjV9guJYNyB4nZ/dGGOGHIIogBbc/ksUYkLkwyzbLpL+jSIulg7omDVWa0M88saq0zQOXBqhkjEQ4PZwQmJGKZpEj00jHEJBtSoMJasuSUKAZPqcnN1jnI7gbeQ8lfOeUIshZkNeEsio4K5Tx/PmKu/vfw7KsVZPp9afieFArQMkqjHZuHO6GchgZXz8c8WLp3/444HrMAtcDOF/FLX3xSdsDsfa9u0Q7bD1//rwfLubKRXjy6uvcQrR9vl8ND10su/urUL4TsPtrX7vNQchF10hrx93u92Cs7ASiKhSjc3/dAag30aT2fdg8azPQi2zU3e97dLv+2zb9/XuguhecHrsIlr2QLCFADMAKjOOAI5nCjpqr/jAMtbakCoUrSlox5xnMhFQSotHXEBhDYcwpa3wQs1rICLU4c8oJY3QXd6ryqScnECZT8LlQpeCjJkWgLUjazE+RJlxJ2ymuCe8VR0Q4W9NNLJMRX1cGlk5B6opLYq4//bkwTJiub4B1Vndze2MBUFLBaX5AyVqvahxiVdj6lvWEId7HUhmBXkyElTyGTaxQUEEAV96Q7WEhtY6KZaISEaRSMC9rzWZ8dXONZ09vsCwLljWheklYxspC3MCUQD0x6oS3n1U86xK8bBQeHNBMHd3OJ9Xo9tavnsMTAKSMZT1hCF3MGQSQUJX2JB2N6xbZ+xUIVVNclXu1P6+6toIlEVlxc+OdHdCuViYThIgAjgHMg7rFBta6oZUKeGd7gNj/3I/H/nRlqoWplFIAS88/p1yTiYC14LmXDpCi7sppTepuLH1YkylROGCYBgyRMcRBLWoxmhxlrsIdmeGutMP+XAqa1a2nTLodG1DeyjdWGkCyyg8jI8QJ4zRgGrUfCK0PLEBaFoR4AperTj5kpHyDzAMgWYErFXDoXDZV1ITvuPs7wT/+jfdBnBEwINj5ckMEACBrTeLSD6gf8x6EXrh+1pi29zsg9jGA9+33DwD8oLvvh/bZGWgjor8O4K8DwPXNNb7ywddQ1oS3v/Y+jl88bA6vPVHBAEHrItwcJozThEUIp5e3+NI44Us3T5GWBXAtexxRWN0myCQ2Z/oA9NB1BLVqxXrkj+7o+SayeCltglRj40zC7nPBUs82o3CpbTihFssOIjXZjzNQ7xCAja5BPxMDLO5r7QwKkrUvVejvwZEKU+w5hTu3TKV9xeKVlBhVzRcECW4LU+vWWYIBak4JTGKBoGSMicCw9LDdIXMi1W9Rgse32Ua32Eam0oFF/cX/JhOONAGrAzzb/D3NBEyI1n6JaXCr777XDqlAWvsSIneN6Prqo0YgiBBI3fgciLvG6nR3DxyPOBxGTNOkdTpKQc5AseyTVzfXKEUBQJkXAGvddALa7E9fZzJrajFiWrXr5Gtg6+3rLgKNHWxZ0QIThhBRcqoaxXoy6isbw3ZRlHIryAqb58Kt0HbMBcnKQIhrKosG+ortVWGuZ7yIWRw7t1pIMU06WeFum3tRSyTZGvsOpZIhq1oLx0DKWNYMvmIghh0h9Fg2tRiq0EBYlhXjqO6NlNzNxLecCmSa+VRUqHP3XdOclyJY5lOnHBD7vkDSjDLcAE+/2k6VCAoKUta0yGVgBZCiSpufDvb0ozsX3HvQ2V/9O5wEKSA6vx7rT1+AefuG1wEx2fT1Td7n+/zSVWfsNRO3Z4yPulBWutKZ+V047kFcN+geuPVt17HuLHVvchXrR9NW2I9Kvi/Pcf8uV6bgFfO3v86sihVIFnjYfymCXGYAGp6wrAtoGCBLQhiiKYMYa8pYlxlrSlqna101bpkJcZoQYsDh+hp3L28BqBLD63XqpVrxP/zDH+BP/eK34Nr2GINaLayffu7IQAeTgjmNO2dQbEWWgVLdIpXVEAoCag0yb0ekgpS6Bc6UfzZnnjlXya0qan3+ilrXBACFCLKU6b0r4XvvfBmSV7x4viDUwsT6/XyatVB2YEzjoEWI7XLXzerlApjXDFpSESYrm2PZlo0/MNRN1ULoW3wbN2BSBDjNK+ZFvUSGw4T333sb11dXmtp9noFuf+eksUKeRVmEQKSZijMxmDKcPQuo3bMTdQgm6JvrvU8V2RrUUBgNOtKxV2W1XqlknOYVYYKFRujaEeUqQwixAn5rFyJWFkGTjVEnjza5r9HW2l/qpUVBnwyDLf5Q5QS3tDUAVmWmEFUJQYSrw2i8iuvZPScdj5/nnhah63cpWrM25YJlTUjLiixAssQiIpoDgEDVMqgxpDqmOAwKqDw/gRVjn65GTMNgSUgC2MoUBLqgGGK3baIC1U3f0azHPS3yf0UItfYeYJkfC0AZwxjx1rNrddskU+aI0lLJBdniJqVoMrz3v/qb+MEP/lLdN8KkCeeuJoCAz35yhZScQ+qclpTUImrj+O3fftfWVt1FhbwW9G5Q/cpJp4t4w+uPnYhERIQei/579XN/D8DfA4Avv/uOQhNLFDGHiFKUCHRPbJ5nIYRhwLxm3N3eYTmdcJwzvvrVdzFd3WBdV4wkWv29AOu6NK0qUYuteQPe6ZmI+gQWtTtiwiOhujrqZTUcHLxRT23QYrX64GCT1JURK8VX5mSktwNyNYOtaY36RVclH6sfuO2aUoAQtjoZD8oHNDHFAqrZnWBgkP3AkFsOO2ZFbOCITZpygtKIpj9bHIiBarzQxvmTHBKiEnPuhQ5Sgq5ZKKXex0AFfsHXyA41qqXN/Z6hTNoCixsTIIhkS0SCmgkR8PocqqHrtT4OgpSAqBWy5KatIxA4RISgVp51XtWFlkgDsIutvTFEjhMiR3AYMU4LTsfZgumzgTLbPPpy0yjZXiCLvSoNkFXBwrI5CjXg5S46qh0DAgWNxbPYPcCAIDVNL9l6lQ5Ekq2ba42qgBBY48oICO5+4XV/un3eNmzZ/O10ru7jDUVrTM73gACQEGq/ci4IAkTRc0Gs2SN7n3d37dB9ofE108DqmgggjoMFoC91/KhMx+demnKJqAIKhjI8zfBWUAphteQMHrxfRAX/LBlrSpiXFfdYccQD1nXFNKqjUaMMlwDXZbJ7WZy8/Gx/7x6obQHX48/L7t43hSOP9fOShehSH36Wy8GLA6hLoLEKOpXGnwM97Ldkx5w3Vj6ycdJuXJtfm0DzJqBuL4Rt+n2B+9c2nb7CacQr7t0JexV8FgEjqFtRDJiPD/jJJ8+thhG01IoIwhARKSBwQC6aiODh7ogiCTmL1X8sLZaGlM6OVweAqMbZBotZq7EjFoNKxrMCE7KfzW7OmVk/J0aIAeM0oph1oI9rcaDRW6sA1ARYTYuv9/MrJCxXNHoM3GZfSEf1WLPlzsuCvFFOi5VrmbVMjdF6iM5XJEIYhybcGyht23RrYxKgAk+VEZymu7XClL0iliC3Jb3yz31PqO5JvQQON1e4eXoNoYCX9w+Y5wV5TcaaCMliiiV3limfDjEQWunpbg6ZNdNyHcFWsNnMfK+syL3jMLWvSUFzNj7fgI+fhWIAbneka2hKQaixMh0YJJj7LXCGNC+eqyagm9NSjb8lWHIWKxQvbLGb8JwGgHqYieZUuEgb9ujA39voWC4FKRfklGsNtZTUalbMYssc1GOIuSpNURIygGEcMNRkOBougVwgOdd6tDEGxGFQudtEBQWglval6/ur+ITv796t18dT6dxesSkFy3rCsiwaGzio+ymRmCJUwWouBdlLdIkX+Q71vS4TTIcBbz8b8fFHT/Dh997DurisTljXjONpBceAadKakCEUDGOCwLNVX6DJO/rR/+mKlX9ZlrZP3O2RiL4G4FP7/EcAfqG77+v22SuvkhOWh3uEOGCdV5SUVCh1t4moliyCasuGEHA4HLBKQRwnAPcopeB0/4DbF3egMCCXjNNxtqLIqp0XKMIOuzxQ/cSdTZh97haUdth18bwdT4zXODftXKBQz7xIJyBJAhC2IMfFIH+34rdqWTGKoaCu8zMvm8QlnRbvfDhnl4imxS0m3BdRMKIEq70DTvy8NdK+iw+unz8/dCakss2Pg6LslAxk4EW1gCJqdanMSKBuIEzqv+/aFulcGoprvknvvSiomGWk9jNX4U1ELSgssLg4gdfxIKtDR5Y32TW4PlSVIwSCoIzNCK6YS56b06t/PBR0MREkF6R1RjDnf45RBZ7DiLKsOB3nbh7cbVYZSM1WJwbKHayKxw+IIyu4RqvUz51diNbhQb/3fe76pdTnN6mFLbNHH0vgwE21uYJioEsTBAU7AyYEkKYA9zFccjfRfeOf+Ub0vSFVEKKUPXAFHFmLegIYpQCFMC8rQhy85+rLb4qU6tJmypmStHAmDwE8DCgoTQizPuVSGteFy2cKBO0UGgHW85FSwXr/EsvzH6Nc/ynNqEeaNS2OEUyMgKQ+/rt049r+qyHLq9zi+usxEHj+uVz8fAvWGgDatnX+2+v63Pfj0lNOR/hMQHr8ciVdzzi9dXdtdJpGnUKuxfycA7BLwKzfG+cd7+aMaDNvj43xUTD7GnXs/vv9uPea7j2Y6+/r27oEojVTMCOlhPm04OpA4KBHMC0J08011IVSQdvD3QOWdcEwDCDOKEk2SlCnSTEGyKCWBvd80Fkr1g9VOxHrmoUQwDmrNavS9eZuFgatCTZNAx4eTshJ40VFLHbOeSvO5ClLqNKE9EtzvZcXGt01cNmRLr+1rCtePP8j5FQQTSFpjcEtPD1oYmtrHIfd+qL1ny0df/UUcYGjKTo9eVQWTx9ve43aONwaEdCy8FY+FxhB2SLSuuBuzRbfrTe5q5xaFJ0y157o2OFZms352s6zvsNkD5ib5saDyQft7yjVo8XHqSDK49/MetoOsp1RG3OL0+hxmH4cAAy10A4yuMblt3XW/a9tei1hP7tbGtrWy2rKSuNb0azR1S3P52H3XCkZp2XFNESMtP2uvWvLNJy2rUmfTSlhmResKVclCBOBOGAIZGn6A4YhYoyq2A5MWA9RE86wWti0zE2AiJWnSAm5eMkpL1vQXB/3Lo5nZ2YHyJoF8vz+vdW/rYfJYZbgp+SiSXq4oKSM1RKpCDRpDtnc5JoBtc6aNagxuVdXB9zdvYNhuMYwtFuOJ81YzYERhmgW7oRQvLyEbdVXZLPsryqSvcH1s4K2fwjgPwTwd+3nf9t9/jeJ6L+CJiB58bp4NkDNmvcvbiEiuJ4OIIoQK9a3vQhk1iUhQggRNzc3OEwj1pRwOi5Yy4IvPv8MgGavuskJcRgh0GB/1TY1SspEymlEWgyY4SZnacwBV09vIJFQTouddwcNBq7MZ1+JUr8IJhCaW5rvtdARE6kwyES/AnCACsW5SYaejlb680kaNLyKxkoVySaP67YPUQsD9oTJL3YLDp8LQu1MdMyJGVS62u7SzNbbqJfuXeQEyUQVsdguoj2JOesgMyMQKyOnYrVrtFyvAhibjyKq9bGJb2DKGblNnh1OZcTSrXF3GwpYTONIClzZanRtNPDkcXlmhbVtlEtz6xPJWFZgHELHMH2sbBa/jPn+DhSOmA5XoKjuEKBg1rHTZj1c7NtMsjHtnigW0VgK8WACVHmmpmauIXMd064CpmXnAoDMGvcnABJhUzuNclHXkdji4Yq1WbXjdZLd7bTLLGnMGVVZ0ZiNBI0RhOWu1NeKCnCNB1s3BZrslEBMGOB6WnO3TSec5qNqCwNhhjMJtcx1s6eaxkAQq3t4NR4wz4vOje2dtM5Y1lWtq+5/ZKSDRMyazFU4CJHVRXK51z1l+4lsLhnA1XSFaVzwwMcqwL9KiO+vN3F521rOmjDfqkU1MLFPi+/f+GeNZr3Zux/rT99Wfddjlgw0JZBTFAdxe3DSz1sfe1bb7oRpUNtzfs8euOyI1flYXgGo6tkqxnvEPuuWdb82b7TmcvmZS89XCixtfvpnuZ7NBnLP7nOgYgq1XAQlrUqfAXgdrJQzrmNUpQcD66LuVSp8Fi3o3I9dTJHHRm8D14LOKJqBLSPVFOPH0xGffvopqmVrIyTrgrp72TAO6hLHWvfJPRdqojMoa6hCbKfpFjZ+TS0ZQt1nzt9NFjG/GmwKMHcgQXZ7KwIYRs0wXMEZNDpaqD68E3Abb3N9JzfGVUUXn2ciU3oxQMWz95p7ZCktSx+rnJGKui9W90nWn5Goxj+BPMRas/8Ra0p6sXqkACGOA/LarGzKL7a8SGCK9JoZUtRbxWQKVQy4tcuFfrU4qmaw0WvdkwyuceGELr8I3FGpkGfIdE+rUsETS9HC3sOIZ1dPMZK6dgIFnozf1169X5vl0sfZrDT1zd1+8LOpb9QSGFyLRddFrIpZPXtrKjgtmqeBmDEGwlZs7wRBNHkspYx5zViXFad5tXpqRhmIDHi1mEqOAWMMGCNXt1uXNYdhwDAdNGFPpxwphTEUrSOHLNUVWUUxrufzfB93vaeO3lCvVLKo6gsgrbe21RPvShqfH0lY5lkNGeJeLdAYd18NQjfnUs+UK/FP81v4zv/9b+KTTz7b9t8MSq5oYGJNQcgt+2Xw7KgkABd0ZEHlL+9/KpbF9Hycj11vkvL/v4QmHXmXiH4I4O9Awdp/Q0R/DcAfAPirdvt/D033/3vQlP//8Wt7AAA5o7y8U0H8yzNopOoLD7hWWwmtQFAyY1kWfPTJJ4bsJ0zTFW6uPUZG44bm+YT725eWLjgq6IBgCgEFhIyi/rc82ITBRL1ugUiZ0U2IeHK4Ui1JWXE8req/D3SE1CwaGx5iAqgFHfdABwBSYUSLa6PQCx8Ambta8SyXRLUIZgVmBOTciEi0A1koAHKsMXq7+M/6Ds+KpJqBlpWFIKbNQs3+J0VN60kApYom2EmxI6Zk0wvYKj+yWC9jxLV9UfDn7qEOijYTDwDmq68mfADganIXn0/ynuioKiHWxzWhQqfxcEHZqRKTao1apiJtwTNRkhEjTUKS25uM8NdHHHiImKAQgZQtZbKgxKZBIgKGQQUJFX4K5vs7CAjjYcIwTtDMkz3hcyuPvjLYHLglVgG4u+nBCIu6CuY6NzrXunpS3SB9CJXXdXvUwX0gQuyEAwFQmDRIHNoHr3WEIhi8TesTo5i7cHuf/iybDJptf7fd4KK6CyU6z/ZdLsAQQIFVIFyKCUcCjfFMYAADZSwPK3S3ulsW2mAAS9NrcR0BCAVYLIOo5FwFHc0ky2DOXTtVMjOGpec3syDkiJQzllWzghZ4odlmQ0giWArXSTCyABf8/mVdl6LnLn22FfTb9bP2rQeC6H6CdpaeDpD1z/bAqsZs+X3WsGpRqf59NqxHPj9jnrJ9/yvvvfB9pW2d8K5Dbda3S/O4cVfs3rOxmGELsPbtnVlHu/7UOXvFfPdAt0hBEXWrKmlFThkxDhDJyqtywXCYEELAYTwghoAV5npXDLSZt4QCpVKFrzofbJYNcOOlCChrRsoqyJOIZtNzd3izumVSRS8zQDE0BWMIoBABKeoNEZoiiNHAmo/Vja2qB5TGL4onG0OH3LDx3akg1Ph1sdhbbzsMI549OSCJ4O7FS4D6cWJH9/o90NbdY9jq1iWl08W9UaRToxpvqLFtwem/gdUiSF7HrgJwtYaFjua6codZZTMOGsNdilo6OQPF5AzN9SAVuGrcfeM1qHKSgpSUCmKIEHMR1Ogp41KlgCP7ZGz2dlOI9EmBqCoKz+iLeB4A5Y9AAWLE1XTA1ZMbjIMJ9SVpAjtsr6Yw9fNcAFkBNKWlu9cp3W4J6mB5K+ti2hz4HEHcfTFhXVesy4wiGSjQLIxDRNiF6HiMeil6Jtekxa9PVk+tKiOCuj0SE2Jw90fGEBgxuvuiJovrx+jhFcTtmeoWCg0xYQBBsoY/WIbLfs57MLZ3M68W3p1yohFkXaONW+TufqEAX/A1Ab/5T97Hn/83fl9lXzt/wRLiMJv8EXTMV0Os/IYJWOYTSi5aP44DjmlAzjsDA5HKypWWq1yzySLJZPybVFbweURTEAFQ763uep1rJPBm2SP/g0e++ksX7hUAf+O1b90/B1TtClIGRv3QbQpMlsRDVJOVMzCfTjg+PCAMA4hH8GCF8MwywkPAGCLIiMKaNSNOSRmnlGvQaSDSQsreE2fw3UVQq14YAkJOIB5BVyMO04ScFog6EYJo5+oFb0sU5HjeevuMYG548HS17qgGAAHu5ogOSpxlnek2MZtbFVFAZNYaFENEKal+70KCP+qKuprdByqIM6nroGb6gxEnTUARASyrT44zf4sz7ARyN3VnoFkfbEMr+Oy81mtqdvuJBlZAyiiKCeIOywiqnfX6MIBUX+zaN/Ff7ZkiBmbaPHimTs+O2AsQIKr39+AJUHcRiJg7pmUzMu1ZGNQ2tVG0dVo4ZsI4BIxTQC6EkjNSzkgp43h/xPH+iGkaK4LxeRJRwiQiePL0Svu/zmqFFCBY56s2EIRkigOGEnfwzqXV9mytoVTnzgQY77tldyyuoaOWbZOy1j30Nc5BBbTo+7+bBsN0VVnqTi1OnH3MrsX2cStxVaLnzwpQa91lqxlE2DFxMISkPuduxArPVp0CbsJXLAreCoudC9NMG0Pn2ifphib13Q4W6tqJIKUVx7uX+KM//H08++ov4vrZl0yJBLgiZy2CT5YDnlRBEZurF77bG7efvcm1b+fxe5RVNRbdz+jjQOOnfWcvWOkHWwF4A0D2Glc+//yscezX6vyex9zd/oVdj7y7B1sbUFiFzgZO93PognUP0vYAbduFHQij8+8uWtc23SqYH074/KPv4+7FF7h7eYtkz6wnTWZwmCaACCEGBSSIADFEUpcby8qpDLF2xc+W8nuztHitUBA49+N36wzVzxqgUVa7rEkTfwyDgsWUNGGS9HOxFRF9zIGB4gWbyfmE1OQLOgJ7dwc62WiUywC5e17XDJCcMa8Jx+Os7mW9orZbX88MQkZj0QGxKmNkr40JrECNGSNT6HqNTp85CU7/9L5UCtaUkFLBOAREispHQMg1QuASmwAAIABJREFUNRFqsjMid9+27Nek8TsaW2g7RARepUHJOFXRqi8tU0rRguw5gUWLsV+Hq26+VH44i3l+5Ii20BVUz5ZOtNf/swFWanM7jiNurm80s2BVEqtywePZq9Du2Ql1Ni/TC9Fz0t5PKuGRe+c40GD1zllXpKzui+u6QqyGbQiMMU4ITIgxauhENWSgkxkKlnVBWrN5p+l8MTHioOcwhIAQVOaJISDG7twY/yQoz+3r7Oq6mezoJQc6Fg2fDdL4oKC+uqZUb3TKXR738/V6urtVMp0BPgFAXbkHZeYa98nG5TlaBmtoaRAOgAC3dwOef3bA175+D5Rv4DBGPDwkVdya5XG+1C0VftDccFVGhGQti+Rz77NIgBSq4ihRkzHdE8i7vge1l64/diKSf9EXVd9C6CYvHQ8nqodlnRc8/NFzUGAtmBwVoAzjCI4RPAxmttT03hQDxsOk7ZUCSaoxHGpmQL3EuUon1CvYyiCKGMcJOWdEFpRsoMZdxIz8e2wMqGeCnUXGrtC73tm4KgvZpLhEFWIZsIyBHWI3sOC1I3RzaPrlcRxBHHF9iFWDVSztPNAxcMcf5O4Pftisd/65adz2uWfqMRfUtL6V3xsggGWQqjopcQJONTXxRvduGkgmQTKiXyOGjFEW6XVcqC5/SkhCzzngXgia/0PtHUa2dlGOXfyHaVDAsOB2ZyLGxEXaoQUQAyEG1fqCgHXJDXQAFpxrLoHMCHFQAbgExCLIZcW6imZ0zLlqqfwcu7k/ZUbhgBgHxHHAkDOOx6MKccbc+Uwc3q6ZWxHrfhdzEXCpp20NCIBUkZJqkiMIhV0wQWsnq8k/iLpTxo5IAZ7Gw11HrPSGZU1sOi0xfUUnQMJospiF0EGPXeu84vY0Y4gB14cJfYpTt4CrEOZ2RmjmSvT3AZn9N0Fzl1LhJ0MwXV+ZJr65b/fwxd1vnKkBmk3t/mHGh7/zHSwQ/Om/8JdxdX1ThQJxpml/VPcbk3aaUN2sYFWAgwv3rY1LQngP9qi7p5+j/vI29+CsiSI/O8CRs7f33+m1cWu0+eg6r5+Xx1pptK1sAHy7LjHHN3FPufQMEW1qHj3WbnWL9C0u5SyezpNtPNYXV3D21rI9+PO4vI3bjc1d/77WqJ8NnL+bYPEguvNePP8cP/7tb+PlTz5BWldkIpSUsaSkSQqYMY2TWaPMMuYk3fqYTclTBa/ufap0Yzv+2mkhdUOOofNkQTsDLhAGZgzThNPDEdnm8nR/xO3tEZJWHN55p3LZ/vwAzk93Z2JDu2zhOoVWxWSymzfqXOM64BYCIc0n3K+zetCI0unS3eN0uZa2MHq+dyUDuljiInWdAFRBvO47EAqhWv5KFqxrwpqUP10/ucbVNFn9LU2UFZhqce0irdSPep5Y/dQa19VkD6091vieCKprsMaHCyAFKWU8PBxB0MRPUs9GN+OVJKrSV3bjb/d17nTUxZy7ezo1DxyfY4SAUDIye6iCJqybTzPyumCaBohwBeL2ZNsPliehCO12je+Hbdy5dkf5Zc4F83JCzitySsZTVXkexwnBZAgPe3CZckkZOWfMS8KyrEgpQzrrtXqoaYmAYQgY2K1kXk5ge7Z9n/Q0tX6HdjRrOItZ5JR/Z5PPbKE6q5FzjG3M3b51nMu53fctGczlq5eLAJdTNHwihIDpMNVYfQIsYYre8c+/8x6O9wNevDjgiy8e8N47fwbTOGNessXmKR1/990HzPMRz59f7d7eeMomzKFLeObSZfUkMHk3W7bvysOMVhRwja991fVzB9o++vGP8f43vglG0EXzStf10uQFBAApoawC0IKF1Mows1o5ZBgwHkaEQf9RCJp5CcVcIxiCgBANnHUB7oJsghMUcEBwPB4RhhNubm7g/qzMWiwQad0UyiyF1bdWBH2RcAjAlr/As0aFEAAWc6FoIIaEUBhAdvAoQCnmzu2Bvqj3wwmm1+JiNXUPMaCAa8p5txqcarYnc93IdiDF/cphrgxiIjXcfIOaTn+LKhVMmqBaSw1K0zipv7POiyeGqaMrbqnqhEPxpB6omQ0LGCxWh85AE4gMxGrfsnSEBI3HbnpLdVaNkME5TnNicIBawfAFIQ82ZrLsnMTqIlCtURYbUFDdBojQgsfNxUeEUVIBFyDEhGL17c5pnhIlKRllXSAckACEEHH99G1gPWE5PsA4ti9NXSPhBuVc491tJFM27BiibMceiyAHxmpCR3OfEni6bIgmzektf3UgfruJmhnSmGL/aj9C8DYMwDIgGjSHXjNIRJhPC+5yxv3DCW8/vcZYa+sIiDXGpllmAXGGS937qQtwByBwAUXHl8oKtR5s2yGIH0Wd637MAEqe8XAi/PC734FIwi//xb+CcZyqCyy5oEc+TcX6IrVr57Gg7VI+ILvPOu18B/b2fJouPNsvxdZdsgmCDr628HnbVi8g+3eyvbn2ney/PRA5Gyg6sLQDN28SH/AoIOrHdkELfFEz7LziNRrSvv+b+LAdQPL39Baxrc2gCYL9c70bY9/OfunqnNp9dQ7JvhNsNogD5lIK5uWI0x98Gw/HI+6PJ6yLxnpm9eLSmBEixGG0fpEBGNQMc727Xx3zBolRFXC9Vlju5t1Gr/FUHMG8AkFjSA7XB9zd3luMnApBZdV4dw7K+8SUPkrrBCjAB7/wC/j97/4ePImVO/z3U8pm+aqZdV1x2K2OVEFStoxHpLqjFSoIVjvUQbSPqwEC1KzBAnO92q+5v9NkFJeMvDC2C5JiEqJbSUiA9ThjTRk8RDx9+y08e/sZ5nlFSnfq78OoJXGSqDweSBOVabMMV4qSfe9KXe1Tc5u31bIO1dWDiGhsVYxanN3d7Cs9tym0CVE5QECRTQCmtm9EvXRkV08R1u8YY7OSsiahUZyr6ehTWnBaV9wfj1juH3A4jBjHQROylQxQ0P1bN6xUHldVWmeEuR1EIkIqgtNpxul0RM7quhhBGC02MAatPxg6Q0I2ASivBSknrOuMZc7VehpYcy6EqMlBhiFiHNjqkG7VamJ0Z6PYuyAc7ek1wRLE+ZyZ5xFbpmWxe9jkN5WtDNp503ZWuCq19ClCQPVA21yNM3kIz15ZdekSEdzdjfjud9/BN7/1GUpKSKsmNwQJvve9b+Dh/hlOD0qfYgA+/+wJ5ocf4p133oOG8xitoud47yvfwdtfWqtnmc/dvK5Y5hUSgrnUCr797a/i7i7gvfeO+OVf/vx8OCZXF2qyGQnwj3/zA6QlGH+/4E23u35uQJu7M51Olur/UYbbtFcxRg3QBBAs0KcUTUGKecHp/gGIAQJSK9xhAA8j2EDcEBg5aRCmFKtxQoBnfAOgG0oESRLub+9xd3ePcZxwNY2IwwQpCUtZ9Hk7BIUASoQwBLBo7JyDKzEt/kABMjLyk1ILFZYSQEV3B5EgFJh2Sl0kNeaqKGAj09o0fxMlhN3+1w2u/6bIGGNAKgpqpshYsgBFGSp15iqtFqXZgDSbvQuKRqjEYpR8ipwwOXOSjExUg8EJVN1R3c9XCT1htYw+IY4bYMQWlB7JXC+YlImVpEGcRaobSG+5U2FLLXchCPbnu8VTEczkpqZ0SwPtgbbVhYId1KOCWL88Rq8WuAZqOuYQ3L3V5pQ6FycHx7nbZqL7BYUR4ox19v4qWcxCGK3fBCBE4Hh3h5RWxPFKtYVs8XkckFOCCGG0dPuGSgETAIrNe8maxKXXiFHJzdzqYzMhxcfpmvwNYNOBGnhTC1uxdc+iAM7BIuUEMNUaRuhn1mVVOyuhJjlxYZUwEGH1zKYCLKVgzBmt/p5mA01EGFCwpqIuOEBVKBBMf1PXT89T6JhIKMDKShuYA0RWDNRlSgNZJirZaNaYpGZtq3JFKViOR0QCfv87/wwC4E//6l/G4ekT1bTVVLAK3oSwSYvuzK8KRva/bYzHmcxSPyjorDO+H6pwv1nuzbnZU+KeqTfgJmf3bPpQP2+29HKBxhevnyPbNvfCah/Ltr/exMXkMSAmJFoiZD+eXZs/i0Xu4nNNNqkTW61tm9s6ELeXqtDO4+a7vm27Zx9bV/vk4K10gpFs5/n+4QE//Kf/Az798YdqHeCAlPX+lJIqSGNEHAbEAOSsqf7X5egaNSu2XCCi5TBilM17NCmGKvXIrP2K6fTEqhXHLT1a6NbPckkZp3Xtkpo0XjJdReSkwu66rAiBIWQxsCSYLERCVMsGMqVZfz48qyMZL3DlVJ1OQQs4FgeY3d6qwrGmxefQlTPp39XTXgOeOZfqql0v74c03hvaVwBUHspFLD6NIWC1tomAYsTh6Q2mMeL+5S1KTgpY3SXTeTwBOYlZVZpFjY2FVj6pptXqfprXhFQU0DnrVPAuBgSgKeSHQYu01z1ncYM2MR7u4LMiBsj7jVzcO6IEECmgieOAm6trXN1cg0Aoy7G2qp4/BQmCZZ7x8uWt7lMIxjBoUWnoPvNcm27pDBWhmaLOQPLmfNU1NUhTEuaHI47HGQRgCgPCGCwhCapiWKCsNxVBXtV1dbUaaZ5cJgTGOETj2wFxCDgMwcI1Wj9V1CDbB3v6bHF3HW7TMWJ3kc21jludVLiuwUphC/7q3rvgh0F+UutK1t97flR5iykyNgCSCK+i7USEkgnf+92n+M7/FXFas/HtAjDpfhg1jq1Xfy6W6GWYRpDN9cP9Le6X58r7LYLKS2RdDYKra+0/IUEI+LV/60PFn6ZYdm6nMoE6HGOzPQSSCv7iv/1dcGQEr+tGwD/67x4d4s8PaPOLw9a9hFkqHQRQT3/ggA8++AAffvihfmxF+NiK9tbUt5aBMqeEMi+QcguKETToZg/DhGEaEWJACQFEUV0uES2rUYAQcH0VMU0jktW3eHl7BNFdFajU310tHr4XQmTtb7bzy4Cr3wsBh0PEdHVALoK8LljTimX1eBlL2W9CINnYCwLIspFU4k7udietzpZZEI6nBcsiuJsCbjiq2XgYICVjLUkTh5hQTzWgUrPeMLMJnxZPaAez1pjbL0v9o6VyB7wem4I9j/8SKAOIgZGKQPIKkcn67g21NtwoX4O2SSqjKkCNp1Ih2mMLt0WVq5manDLsBTPfc+7C5+DOmJIxMgesVTvqphsXJogtQ5C+y0kTwerF2IuK1QsJVk9Oiq9zbEJ4L4GJgoAQde9KycjzjDQvoDDi+uYAgQUzF0HKQKGA68MIyUr4VfjTDUo+2D3wsj3l0yM+d/Yv+/yJ1Nu4SC1qSjZB2X4vtCPgprEkNODfGRVqXIGIgqpvfOOb9qXGBhAR1gpeBJIyxsNoyV8IFNRdujF2dWNGLkAqkBAReavdI9FYjcC58hIhc5V0tbXFXUDMRblbywZipApTLqioddzBEnA8PuBwOODHv/f/gCjil/7cr4KuvoxhiMa0TbtO1MXVtL1wEahU5uf9MDpzBrl2z1z4Wo/G1gLZg6xOVNkxoe55nLNn/6z//LE+9dagjWUIbwaYHgN5jwIv1wTDrazeYRe299bBnbRjf78JYNz3q7oIAhvh/XI/cRmcXZps/3PvQtovxv73Kly3Z0pRxeL984/xxU8+w3x/wrxYUh2BKd4II2tWvCEOOB4fsJxOemaIEIeAOExqzcmE7DUrd2vq3lpMnbWI3cKu2eECB0yHA7KtUxi0RuOynECdhWfjHWC1I6MVV3bwIYABt7aWNe7I/ucz4fooqSfg/CImZKhSyXl2n52yiGA+LRiHAHfKry315FdQaXP1dAE2SaOMAGnffPk6y63Gq2UV+AEcQFo+qWjbbAqu07zovHCElHUzJ0WAyIQUCDk1QN//EyEtz5C18LeqmItagcxP3IEeAFMaAhoXJ+Cg/E55rUA127nOvypgWxy1Sx9kyk9IqZb+Yu8ahwFXN88wHa707OaMYtlNSy5YloTTfMI8Lyh5RQwBV+MBcYyIlqxDvZaKI5UzXiWQroZoO5B9PHIPDGIMuL4+KHS2OESNJfeQlYQ1C9Ka7cwl03WoonUYRrNMaiKYweLUmFsimx589fufO56qe5nrAw62Nzy49tqtQ2ZpNrmJSQGvu3vvY41BXar/DdC6fG6q18TubFH3vbe1p+V7Ws/sWTlja7P2hWurZX+OadtXEdI6qyb3cAz6vI/Fwjc2XtUObEWqNx0TI5cZDqKV1CjxSfOClBMCBlBU63HgLQbaXz93oO1yjMIrmKAzS4snKNUdqjFbJT7tgMm6gnLGMgPACXPUApwq7AUgDhiGwWpoRBRWRjRwwHgIkEOACMwfWeteIKtG5DQvYFar1jBEaLq9fgS24UxNRSEgkiDGaxxEsK4zckpNaDcQWmfCixR3TM6LFuvmdMFKgdbplLDMGZ/nBS/jLWIMGIZR0w1bnRNGQE7r9jCQZ5ii+re6jbh/t0m13RopAfU2bF1gWrEiNQuoZ0AqUiDEFTecr3LLtlR3BQVAMlyHWeWMjYTZCKU06gl36ewTkfhUahsKdsgb9UNcrW1b8LER1G3eNBtQ/4xrjAUgRmRVOmeoRtNr1bHH9KlKd1PDCGigiVgBodbsUe2xa7SPd3eYhoC8ZqRV38c5AeGAEEfEUeNOkBZINuDpA9kfu+5v9wv3eDqgMe6QC3JQt5/EBtjI96wgW2ybvkehN0XWfVwTgmArGEu/Xl1/TIARbOXl+jURhhiQjBg39yJ9/3L/AISozL5zh66WVAioAJnQ3IxscvoajKEAuaYnkw2oqu6WdUM7Q5Tqry4FOJ1OWDPw4//3txCOf4R3f+nPY/rWr0BIkwOEnFBIC8buXQX9TG4YJbo4THRAZ7+srwA8vg2ke57EmYyc3afzYpa2PTCvS6azL3BXxm3vzlwbu3HuwcPZ/XsgBZ/y7dw065LvncYbdo2fz8/ufY9+53/vhIqL7pTYP3auoX8MUAONR25m/Kwrj7+3t9j1gs9lq6Vmo7s/3uPh4+8hz7fIuUDyArGsrwRREDCooiSvM9ZlxnS4VkDl+1cyci5a1HdN5k6ppyxwgJTUTSlVrfN+fsZpxNtf+hI+/+K5JsOIURVXLhQ1ql+vAAIPqngdYqu5yqz7YE0rUs4aR2TPsDEWowAX12JPh6r12JV1VbkEBWEp2dduR6KOidVlsZ/dmnCr/1gJIKx/prAuaIo/tdBoogpixtXNtXoC5WKxYVaHKwQMQTPv5qwKchZUcMiEGte21xGoAcb4IlGVDVxe0Oc7yadbR11bB+OxtryP2RN0MX6uCKtz4O9Seax0ewbMAA+QrPxxXWaQleNJ5gZZcsIYCcN0XZN1EHvoi8UamwU7UFuVV0da2Tib9G77ARV4AspTUy4oadXU/GupLpMuPzAFjKMWsh8CYQiEEGPNw9Doabt8uh+jN+exgGc3+C9oQM5ouDSPK6K2ts7bWybtRpket4z53Jgc62UGuvlqNa7O3SfPQOJubL5XOLCW8CG1FEZPFAINMwGagr6OpZ+KXJRWScFIE9ai56mYIoAtsRFB5Vs2uZ+EKp3OVq6qSEFZ7PmqhVE3b8nFMksz4mG8MF/t+rkDbdv1dUFZIFU3j+3MdpeDm6ph9yxPDtY6gurF9QBBWQrKmgEs+j0TZtIDQoGBUc3l4zSpr35UwT+GQf2QxwwWwVoS0rxgnWcMTZEBwEFl5evWvYJpIEjg2r8ogxKgXKygthYJZLaUvT0w8c3az4E4cVRiZ/WPUXLGkhOWk0DkXomTxVTFGGor1aIlqBYslKYvEtEDNkTNeshGRF2I0y6VSsxFNJjcaWmIGlckIIiZocWCws40Jib0OgZT/+5kGkjT3gGVmTnjKjaXgbuilW1HKVN3xGKDcgczIQsk7dROJKr51WxELqTre4qvhbXlYJCIm/toHVYvKAqWZYbcZkzTqAUfTSsLUuUDh6aJ9XguBwfuLhQHRhwCchYsx1mtWDmhFAZz0uLdKWnCEwqYpogyRqTjCeucLgprwgywWPp+qhusnqusAYQi0NokzNVFNOfG0iKptU18rkl32DAOuLm5xlIEx5cvNQU36mNVW6z/toLpV9//SrWu52rds3fb+rmQSMVSnlDA+197D+vbb+Gjj3+oRJYBYit0TqWujVhAO5MYYGrxkS5IZwZEdO8z/Dt9N4k701iTZNpfcehi9wshrTOODxk//PD7eDiteOvqgPz1fxWSzAU4yNZd0IAgm5C21zT2Ql7zACjdfkH97FKR6kuCiNQzvfsMPcByd0bU+nO9e2Mnj14Ekxc/q/S5+3t/7SRmt5Z4fKw9uGUql8BJ106f9GHz3gCtddXRXKo0TvcO7frTjv2uDxeuqmmu7b8CbD3y+aX4vtdZJV/1vYgqPj67/QKffv93cfrwd7CsSd2yphGBgTVGLKcjRFT7n5YT8iy4fvIEV9dXyGkBQDVOerXaUWlZIaZkrSPtkkkINBtbR1gNQJmgaEqQeVlR1lVBhdGnakVzEGTnT8u20Nabx+YsubXNLpZm3bLbNgLxdq47C4b1bZu91kiUaPblYRwa7648wvbsDqv772QySw9mCMoTWxlosbCBgvk0I4lgHEe8996XwDHidHePObsnQQFIeQ4sBbxIUWuiZ9k1cOjyADMjwGMBfVzS7oHxUaINWFMWInVsDuya+6rR3mrlbuAmGK11yYdFIMJVmV15ElmKEJuwIRAkLXg4rXg4zUBKuLo6YGSNIb+eBgBjrVVWrbk2uPqT90f3Fee43x/cUz3/VeWhJWXMy4p1tXgrDRQDs4bxBOOpwxAxRU+13yVX6eawf8frFEMuG27uffQZ9/qByRz2CbXSD5B9HeVuKl5J71xqe9X32oe+vTODTPddDXupw2IcDhNG0XT/7fyqQNe3UVPLSP9uNNkwJSBoCFVaV32iZPXOE0FKGZCCtGaE6YAY1aWXhbU+JZsyP3kHyXIWWBxgMO9AERC3zNiPXT93oM3dCETM5RCu26hJPc8uP7zOrKsJv/tM14vq/cXqkrjGbcPMPbQkmTB5f8RKhGNgYBi0Avo4YjocMI6DAZEA4gEcNMOkxgWVpksQ6bz9CHnNWJcT7u7v8ezpE7AFcKsNiVHKCpgWjg04qL+9MXRBFSJ5F8jZCLsKVZr9MIDFg6hsrEU33HpSbV3gbfyQAyq3N7hPs04Dg8cRN9fXKHnF4sxgA0yoblJ7nbacM4hY0+8Sg1Nz62xjMIBoBy0LauwQIDVAvWpCHdxLhqwmBGFLYgnKq2r9F2MGKpgWizsrhjkbkPZngwUwE5lGkgkEyxwqdvQrldf7gsUEcpeIhA285AyU46yB8qyFYMdx0ExXHVGlIhB2P3xBKipkxOjpiANCKC5JVitdIC0l8PDyJcZpxNX1DdaiBC6LClJrBsauflw3U23fip2xGscFR5LqxGKFWkMuDfAzwatCNOWCa+Im8DDhaQwYCXj58iWY1c2xWhEcCDXJFwLgcDhUAu6CEFlg2rABmGSZYfR8H26e4t3330eJE370w4/AuTRa00EKrXWkezWQAFJaxjObGscTYmvBxqBJ8o4dkT7v9zt7MHIWSGNb7h8W3H7/D3CY/gn+dRwxPH0LgKDwCuERmZLKr8UmlwAOAYHDBnz1QK7stJMO3vq/91f/fQ+kqqDsbaNZ/tQR2plfAzq0a88/3//d1CWqxDo/sGfdPG/LQNFGUO7BkyefQAe2vA2vsvI6sLPLb9DORmu3ufh0QssFUFStfLSd10va44tjd373UwK0N76nCjH6cygFb18F3B4iyjpiNld+KgBKQWTVW6c1IVLE1dMnePLsmXLspLGljY4KSskN6HZ75lLX1AW3y1RIOl88RE2EtJwQuvi1Ns72e2fvwGc/+QzT9Q2ePH0Kt7CDGWEY1D3Z15Db7vWlqno8avNYLKGJf696FQ0FCMG07X0Yg6hcQuZZsVcqunJGZZ8mpHN9sY9FoGWxjD8Y7SsGZkUE4zThybMbpEJI9w//H3Vv1ivJkpyJfWbuEZlnqaq7994kZ9jCYKZFDShBEkZ60oue5ufph+hZAgYYSBBACSI4IkfsZu/NS/btrv0sGYu7mx7MzN0jMk91c56u4uLWOSczFg93c9vtMwVjsKFES2VXGWYIiaYDFKsJ92dHApKtcRFvsu1yTg2tAutrGriiTG4XoynGzqaJWiqYG6Wqh5W6p1zJ3lzrgtz3fJ0Xsv5uwDIvmN6/R14WMBGujiOiyYkQvGzCI2J0cQ/q0zueKGKlF90+7X5r2VHN6BBRB/ycMubTgtkaZTurCiFgGHTeOUQMgTEEgvcd7Puy9WMk6mnvibHv9sTOp3TZXqt8qTFfnytFn2RzFEgFzNBufk8bcBcegqbPX9Drq7XYdMk+8FLlHLUWWf4qpRRLi5SaCq3IrNzKZnA+VwAsdNzfzTghk/URLMhZ1NkrwBBC3cMAYxg8040MGE+do31qKJmOWd/BHNRsOka21hAfOr52RhsA7GsKAtOmrq1jAe2z0hbvLHogTQGtqX57IY+t0uO/ez2XKs8FlDLWR8FKhMcY1PsUA8arI8bjATweANEwbCoFeU063lw0BROonpNSCu4eHnB/d4fDMCIejziOA3JOyLlUaH1hRkFAZO9J5uNUxSmLIV1B+2hVbxUBHCK8F5Ul7KliyQpJH8W7wet8rVnvkkvBELXxYs6KdlkEViCujTWLIVyO8YCRWdP0kjVZNIIvyrV0jBZeDxwUxSsXq/1h5FSXuwq/XjgQdbUG0uriKgyxnRs5aD8tM3BdKEtWRaHYBCgZiAlZFTY1BYMDPMXB6UVBHPw6rWtyxCwxGnUb32wnOMt3JtE8hqQAViB4V2kpwHSasZzmDQvz6KGDwcD6FD7en8DBDL0h2JrEKvAiO70FFClYpgnLNGMYI47Xt1rTmEw0xgGH4wBeZ3BKwG5fqLFuaJ8uOIt5oi2hu0Yd7aCihebJBaptWoF6nx7u7xCPB7AIhuGAFx89x7KuePfmLbKBC/lenOcJ4+G63851iCSApIyVtS/MDKlxAAAgAElEQVSKGjG57g1vXH3KBR8PAzgOSEWAsmLIGVISUAad5wIIS90nzmc2CiBrI3aY4AwVTMBqV9xcMYPEC5eLEU8wOhaBgQgVFNIGxb/8xc9xvL7Gv/oX/wIpDfg8/iP+9lXELAGP718BadFnDQc8//RbePHiBaLV0Fbld8cZVWip8OjTKy8abdTu0fPPXNTJEqqDC1Ww+Dt6c/RtO4KW2tkffWSQ+nOeMNLOMiW6azdE8cTRO142nwOg3MBP+s/Pb3L+zaXzHBypKj9PKFR1zLR9h43Bd2kYXRTxUlrQxbTQ/4RDav834JOPP8W1nHC7fB/P7u/x+KMfKa9fk8lQUzwCA8OIq9tniOMISQnJDWZxXqnpXhSCGtNkmRLVIdcfxi9Ja+U8vUzT3RZQXjFE3hhT23ewX1jRjGtj72pcGy9mxkCaBZKsBt7lT6cy2/1lM+/9Um/mne16doOiWluIALIjJAJYlgXD8Wh/tVRD1WX0PHWUoBXWdU4EzwyRbDzXwBBAhHVJQPEaKgaxwv0XMfHIVCM7JAlFNG2/kLfSkQr/n9xqMiC0ftIDa0uYXLqMqM06Kl92cDIxxlrIlFDnJ1Web5lBjV6R36u0k0Xrx+fpEafTYtGrhCFEHK+uEIeAIcaWzunrL4Q94I83xW40pPgIDizm/L1+X7TuCeJOJzXUS1FwnmlZsS4J67pomwtSehvHqFlODIQhYrB60ODOGNrWQfPOeHPD7dKh9Lh/rxbM8GtVbFHTV2jzZvW6uiI7YmeBdSjOG15IbRCXB0hAS3l8gi9u1kB2Y/e940GRrmUTewfR7p2hzyNHF7Wf+9E56A6q48T2cBwwRrG2VFo4oejghFxUF2Am5FRqv+M2p7qupYg2j2ftURyjt6ew3UH6BgWCeCELpj++lkbbXpC13/UfEVTUuUspIR869mkovkB+r81Cw42By9IgpAwgoywrTo8THoMKpBCD5qUStQafRUBBa91ijIgGlHB9PGJdV6zLjHle8GgeRaImULTnxgAaByXPYgRmHjbPdj97n46YA5mHz9ooeL0OERA8x1ZEQVGKGQtC7VlBhaOUglQIWBMcc6UaC6WgQu6Spo8FeDqXDlGKFrAWZ8Kgs22rOdOWnOaKj2xFgQvU4Loede9fdOxnSgu50WjWnGuatslrDVSTHN2hsLyeRuJfBfLoqD+CWrEpKUMprtQ7nDs0JK85+OrlpMiQpO1MtfRPW60TUGsxnT7ZTZGivcnSmsxwU3ND0dWgBi8TIqwAW7QBdT49YF0TStZJzWkF8xF0vEEoCXldAAHysgDU7TUAQaz+jhkJUI+0eXezeY5gc5lFEAQKdFPMk25F3sMwoCwL1mVBQUDKwPHqGmld8O7Ne6h5p3T4D3//Jf74T3+g982lWfV1afyZ5gXtFYBOuHkfuCEyloWAUgzFTaOPj6cFgQXHo+J0qvOBu76F2DqUxASKew6rYl/g0dwaXFfJq6elYu5/qbJrlRU4Cf7+l7/CVTzgeMUYhhF/+5Of405ucf+7X4HmRxylID//HH/0w/8G1z/8c9DVrU1HQYixRt56A6yiUtqRkUFG+ympgRtjQKaMVtBp75YL5nXFOIxNoegO3z0aTdyLfLF5b0bR3lisBiK1v5803HrjjVEdK9JO2r77xsizddh9fgnB0mVMu+Jp/WNvOG1Uuv29q6b0gffrFRPpZ9FuYWtwNh/7+1+Qixdl2YV3gWwjYP7z5W9/h1evX4JDRAwBJa0G9qiK6nA84Pb2FkOMIBEsOWM6TQqoIIAgKKjEptDeUmlLsZVs89jS1DU65zDny7LgzavXHXx4P8XbcXsEpxo4xaM4rSqazVHHTPD0PjLeXRP/fH3NANWplvaZyVIyg4RtHlutp9V+2v1DZ5N8+Y+/wQ+ePatGIaNFUqoGaIq4y6hSClLRaALY2IkZiMU0cIZGcrT9ghoRrqjXXpJQh6UiD7YUwQAokiqMb2ZpNdBgF26V2KvLvCOvRmrGE6U5jWFivY8mOj2oMtvPvmeo+Hq7vtMZdSVjnR9QMnAYAoZ40J5lQVNAa0pst0cub4XtfhfTwZwOSTSW10eGRYA1FytFUGj+edb+a+5kYQ44HAZdD/aG14zI1BlkjYZ63eXSOJ9yyOx8RRePyqtqCqeuyrkm5nNQpwUEQ0m/MK596u6Th5z/cckBdXHM5C2LnDLONchie/o8hdKMuQsOSwDmsCjIklGy8iQFNSGjvYIDOYa3HiEqUCEJQIc2siKq7/t9jYA1wk6kdaSmI9byGQJe/fYGp4fhQ7P39THaXHhG6qbEXtaJQNA2nL/pmcK/N8ouHD24x1lEjjzast3kZwpAZ/17igNlTYnMy4J0mtRIIPVCCzMCItY1YSkn9QgQrEdJRBzHWrekBoRG21LOFmYllCGqIu88xJk5M2BtA7R/CcN1xMBAYPXT6f25Kr0ES6sQy+tVHRVMQMoKOxsCqoCRnBXpKCfMk0bvTqcJQwwYxgHDOCiUssCMvBbZhBnCFaDDhFA25udeMDFB4sKiKpD7lSb1nOplncFmZ1s1Ure97LXb5fWeRYBgBrBms0jLyXevkgn06pLaMASnWa8lZHgvP5B6pHpflKKSUhVYPFgRNEhTWOq5AhAbPHUlXoBKFbaVxxliJEdrsu4pLpZGQqwComT3fJeKNpqWgul0QhwVnSqMVxAxo03QQf0rLXuTbTLFQFN3FMCjzYtdY7Rb50nRAkCkArWEosW+ecHyuGqdmtFLIWWWn33jGxut273BhPY8ASp6pSsPxFxpDVBjPYZgESOPgamwIhKcloQBGSFGpckQDD5cB99EknS0VqnL2RXwhKfMo+s6L1q4XOmkCPKScLp/wP39HU4nxrKs+PIXv1RFsyiKVQIh3r9H+d1PkH/3DNPnP8Dbt2/x+PAen3/re7i9ftaKuo2fKOx3MboTzMuKIehefZwnTGnFJze3IA4oksEgXMcfQ+SE0/QAygWH4Qa5/DmIhouC9RI37iNqTxtiulwVgOpptq33cV5U/NczznBhbbbPdB7rc+SHo+bvTDz7n3dq4n5sevDmftv6uDPvs/HhM1nljgAC6sZ3g66mg7kxoeeRMHqe1FkWmzH2srE37N3ZdR5xFJR1wpsvf4x3b94gLwtIMmokThRQIQbC1TjgeDyCCVjXFW9evwHWFcTAuiZQEBwPBzAJ5nlRntjrjRtVT+fdXyOOBwxrsu19juTnyu7+8D3n593c3iIOA0ybaM2aIwOeAWMykXra6lKrdrYxap+1D+kcdrFQvYvNfE9VW0Xdo7YMAOyyCViWpC0XjD8G0zGU9jQlXyH4GSGoo5GgfDjBFO+q2FPVU9S4aGjPAFU+W6ARPAddcH3M6ZtFjUw2IC5vC1RE+p7L+hk6w4Sgwr+uke61noMyWxooaZSV4FF/Xwx9j+PxBodRatudAjJI/So8a6rq01Ho7RqSG5xQ51fKCqYjVS4w5mXFsswG5NJqwdjSbmNgxMBWRsOG9N0ba72xRWaU+zifGqt/9hTNXeBWnQw7v+f+PtvrK2lv+hl/YAQfshp/71EVW7jT1ZuH+7cfPKQ5Cs+cOHV4bb+KKHLn6XHGdJqQVm2XlFLCuiYFJYyEGAa8u7vCz37+HP/sT17jMD5WA2yZF6R9er7LYVtPsUUehoj376/w619qGYS3NiIAr18fcTr9/8Roc9EYei+DckRTPD3FETvefk4yv89gq/VslxitCdEzEnYPZ1/82j1vX8PQp3vo2dl6kWiqoSwrIIJVBGuMKEEVyWGICAdTnmPEYJt8GEIL3+oDzPkjVREUEVXKo0a8pIjm4MK4PQfnAttxErRpNXeF1OKlHlJ7UhVTGnIuyIUACsinGbNvEPMaxRgQD0eFmM9Fi4lhNWS2iIwW+bg6HnD/sKixEQg5m8dzq1ZXEVo9jtBEOIhVCzlog20QJqk6j+dl+8L2UVX1tJoRolYXXJ/QiSggr/Wrll9jIF5v4NHR5hUyQWrGoPaB03o0r7UKVnAcovYSydmBMNr7llJq3RYz9HcB4sAgazau06pGrBo9FpFyUI9SrCkZtXFBNGqXBdP9HSiMGMeI49UI72uyKTZkApXeiNPUXZ/XKKKZ7fbOQhZ9K4LoU1ekRl8ZwMoBLIwhHiAE3J8eddiidBgPEd/57rdx9/5R58Lml0W0B5xAo3gpAbk1a4eo04EtPQuAGUkwPcXuwwwHFXHnxLokzPOCm5ujotsRI1DVsQGoM8QZ7T7CtBEqhKqA5FJQkvMep5l2nhTdv6WoN/enP/kplnlBqyoFVggwPeDN65d4+euf4PGnf4Wf/fSXYCp49dnn+PZ//W/x+WffVmXNBOw0L5jXCcKE62HEsi6IV0pPx0PENf8lDvk9UICcMqZ5xnxIiIFwmh9BuWC8/gQP+CHYRcaZPrAVjvujulN6z0k3aZeu6yM/bba7e+3O700svfZMWACwiHdnnvWruFWfPYGuKdhnkbWdctJH7i4pFx4l426+Nin5PnbXW6RzIu0NMf+9Csazh23GK0CXV7wrD3CFseORxRBe59MDfvPzv8VpeoTryWxpekIMjsDx+oirm2udJym4f/sGyzTj+fPnEMl4d/caxBm3t7d1IzFZ8ahs14lIzChvPDAGxkrGbXcOs0vrAKgx5SUDKSVEZhwPR7Cl5xPU0MilgGRFzgVhHCzC1anFT6gTVeQTbShNyxk6gAMzTsjJbhMoEhCTGTy2Ls7TyI0GvXMqBfO8YF0zhiHg6uqqKrW+hkWUJwYo+2YDHCPpeo8WwNO8AIPlhzp0vU4qlYIgWl9jYgQMQSaY480faWngbHVONVonyGJ1w6yuPZEEJkNorDK0KdN9baI7dMeoCXilAPO6QErGtTkGVIS1+RmGUVMVSfdQrVCqpOHnXjBo0M7xKJpHXFNKmKcZp9MDpmmCFE01LUVQStJaToODH6KhPbL2EXb4+UtGmv+8ZN+0Ne2Vvi132l0BNcaeMvL8jMY71Tzu37z/TNDP00VwDCdvbGezN4yekguX0jfP7+96TW9kdqVBtvbKo1vbDtIb1vtu9PMnjof7E25uZ6xLNr4HzNOC6XHG3335BdL8mWak5YDTFPEf3lzjYTqhcMTNMWKeHzHPCaBQeaM6VVpatmfbDWNEWBnzHGrwph/fhQSCzfG1MdpciPXNdp3JNBn1hOFmxx4e/9LRf39JUXCDbO/RhI+lv8dOcD/1/H6oEZ1iYd+VnEFZU+PyPGOeJgWvCIw4RoRhwLpGhLBqmiQp6iOb0tpqBkQjc7Na9ot5EPMcFH1S9H+vqQncIoqOlkUm6LPV0HFgBDMQNVc7q9eIgSRAMLhdn8+cFEVHHmdwYByGoMaaMdKUHXYVQAggIQyHiLEQPv3kI0yp4HRSrxVQQFZ753MYmCuHCNQida70qnFiOfr7ZqSb1bjk4S4oKGDp0yebYh1C97cIhMkcsB1BiqP/mJHMjFKyGsQuvOHpkVzTX4lZwWxkRX1BMyYKMyBF2wO40cXAMAxgZuR1rU1dtYaCrUbXegfGUNOPNJLVDEYBIacVJQtYJiSJOOW1Gay2B3yuinkOmAiUMrIUCDOGXLR+zQ8H+WCgBLYItq2VzZmnPzEJKEREhhYRu2ApogZVHBS9CZruE0RbCTj9g4BxiMawBYELiAKCoaEBAKcF8QI3VK+sRaItYi1QZa7kgmnNGIYIHrWGUwCMQli1SWCn6rvytKM3Adg8+8uyWm++DGLtsQNChwztKHvK59Z1rnOhBrZGAVLOePXVV3j3/gFLSoh5QimCl9M93v32f8LrP/qX+OyH/wM++uQzAIK3795jmk54fhNA+e8Qp5/j2fU3MIYRc5nxPj/i7n4CScHNsxd4/+4f8Ks3r/Di+XMUYXzyyceY1wlD/l+Rxn9ba0V7pVp1/Q8ZXudTA5uuJw22zhO6scjapa2GzM7rlZLt4zx20Oaz3WV3YwAtOcvHsL3mLFol/X17A6RX1KR+61E4V0r8qOiUVpdUz9s9zwdFFyf1/KjP7pyLAgEYoEK6fiy1MLV0z1umB5R1BZUMDkH7aoqYwkGInuQh2htpWlYsxLi5vdaeqGKRD6utcuV1zQXHOsBS23CINHAbL+wHVDcIUCVav7s8x3XumZFzwem0oGSpjgqIApFVJboUSCHkVSNYGklBfcbeTvaf+8/8YM9uqBcbK+3OcXAiXwsyA03EHGECeH2VAlAR8rwizSuG4wE3N1cQSSjZVXFWQKyenqthhZqyHwlYSJucA1tl3JXdXARsa8DmfCOooc65OYv95WuPXLJdZnsyiPU7gyAZYUkpiNTqhQBgCBEcvIceqh9CRKO4p9OEtMwACW6OVxUR+9KhyMNGE51zRod62WhC56gQlOr8TkUwzQum04x1XczfQaAAzVLJBRwjDoM62GPU0pjBZFNfk7Yfb09H/c/9OH1UnSl04TP9+zxKjupw6h/stHh+dqMe2n0Ocmdox6uo+04a9/fr9+9x2Xjam3y750rLaNs7uPRnOdv/l/jBh0uoBOu81gCD4ytAVA+Y5ojHhyscIts+AJZlxP19QmZFIV0nxuk0Iw5R36iYY94MuJRzdSgM44ADZINMui/R+tDxtTDaBMAMINQNVKCZs7xTHKnjdrRtEwZsCOo/eSx7o+sSQZiX0oWpiGhh9RO5sgAM3YnAhwHj4YCcM2SakdekBb9OXEBVwJES8rwgAShR07pCDMAwgIeIIUTEIXYogp77rWkTJBmOoxLIGbQqp/us8Gp7wMEUrLYtJeSulsWBD3IWcDavgJCplKbIdp4qEUIqjjRENdVPsqIuUgwYY8AjZTAKhsA4vLg1JikIkk3Z0OvFR2uDZ9tF5HTitOJw73UZt+oNW31adiQTT0eAeiW1l42/j93D/tGaOc3zV/VOuWDgNqPehLHmVpN6g/TEYKexoXZqn5xLaXXF9kSwWq76HjwgBCuuzoxk0WOpiFIMsbSSGANK1pQmN+Q8MqppiuZ1t0iUo+25Ip6h8P0sUiPImbmmSUIaPPZepIinaJYCbXausNE6N7Z/rMAXYMTQ1omsqLikZDmsjNtnz3Hz6SfA+/dYFjVwiRlrsf5/piCCyNJdLb1C+ihIJ8hdPSdShp1dQdHvp0VTJK7pqN7kwFjrTmtCGZVGt4enXuRcFObcJWYpoBDNCWSKV9Fm6yULiI3fdSzNo8oigmlZwektQghYRRXF6QGYJ0L6yV/jzf09vvuDP8d4dQu6eoGr4dd4Rj9BmgXLuuDu7h1ub58jrTNCLnicZ0QGlmVCWjNIGBxGMEdVfB9OGI+EML5Clk/boDrjjUCbFgWVEOpkAAWa3oS6p6ilRl44Srf5nPWTzXkFZ6i3J1tRN7ZqSbo+s1Mr+jqwnZnVD3f3ClSf0qtFmxfcXG9j2MmlvXLz++/UXdelCZ3VbDxhSF66lz6PtuhBm84bmsExLzP+4f/5d3j36iuE4y3G7pn6fgFhCDgcjpX9DsOA4/EaLNrImAN3mRUwOtHsiGacs8n9ltpb64ZcsRV1Gv79l38PVxW2Nmzj1aZxIa0rJGccr64024p0D3sKHcHAMKJGrh4fHk12bVECL0UwNoo2UJGoNYblb9rdxXi3RgA7Rc2noBKGOVbdmCAyMCgCWQQ9ras6+aieAggQIJrdUHlUmz+PFNc68Mq3lRdnOMSHOR4NvMjKb9WRtRloM0zYjHKKtkNEIKRp2ZEZRazO2vYhszldecTxeIUYgJJXlLQiF3XcLvOMXBKYdW3GyIjmqGxz30scV3pVmQe5w9V+2rz0k+2OnpIzUspWj5awzBNSKSjZZWUAB81E8IRLDgFXxxFXx4MiMFcnPupY/Bn+d//7Hv3x8rE3ap7ilReMn42nwInANb8+3d/GjXO3W13pDQ/Te2jZB9C35SFCrf/c871LNahPv4/fr5UM9QZc/32f8n4OJHM5yraVUdt97mONY8Qw6B4jQxWvHvPuXPVTCEJkhMHKL8xeoUAoKevzWOvHB3PC92Ppf/6+42thtBURzFmVbGXuCnhQBW9vUfhBlnrVHWebo3eH/ROPzT3QjLnNZ2fezwsbxz7yJs5xGDBe3wAgpGXG47s7wEAESslIy4qQsmLyiNZaERroSVpWlGFVkFUi8GHEs49uQTxUBhCYEYeIEZZO5zNJ1FL5bHgRqFDy/k6B2Rr7Ato7pb2IojYq12eDEuQaUG9eLiJRwwGaJiHFPXKWNmJRkpILHu5PWKaCackYDrHWSa3FcBM75UMAdNkZBl7Y4MxFxNJVGgNiIvRpSzAByExIZrT1LQTq387kuUtjq+st1Qgmmw8HVuk3Idkmr30n0VISpDOemge60ZCmS+nvhRkjs3pIc0ZgRWtjZhRKWwMVaqyVJJpWG6Mqp2nVZxBrdIvUOA1W/Fih0bup8oiDiNQ5lG5f+T5xA86VsP2uq8IUgkSC0VCcmFnpo1cgmCBZaYsM3IfIlDwIDscjIIL51RsIlIa4J5CeXmwgKVtdF/OmT5MIoQgDUIREH2cVBh4VWBJyzri6Phg8r9Nfoxl9z45vGTP3foQAagNX4YDb51cbg0UEOB4OdQ3VGNa2DZV+ew1fBIEzhsNQlUBKCad7IP3q5/jJV79GOD7H9/7Vv8b3/vjvkTPh7uEBgYHTuuKQVkzThPd37/Gbl7/FMUZcPTzg4f4BEEFOJ4zHW5SckEDgtOCW/hIT/nOs+QvlJz6XAhSDtPtQqiOBL35+iU9vvKQZcC9xcxC4grY3JHwX7c0hQqWyXuKi0UqL7PQ/sfmsg+mAbLz525J4rfnS7xX5TiB5K5w/pI55umS7325edp/3111Svqj7bvv2m4srLRUB3n75Y/zyxz+FrILDkCE1TVx5QwEhhoCrmxuNIueC0+Mj3r97i8+/+ByOpQEiK1HpleumNrZ01p4eOsXaLJNcPHWfKiCC30/cQQOt+4psTszAKldKxvRwj2X5CFfXXd1IVfigtWO5HyecMPYzdXY0I6zAsRe7R7RXq+/XDBxXmwEo0nERrUE1Hi1ozjYvQWAOWoIgAKPA8T6LeGmDqeekNW06N3pOMOVaSGVo9PUQQQAhS4GnnEm3hnAjo7N/vN6WAyO5zHLl17KjFDgNRgP2ZWDcXh1BnHGa1GAbo5XD5BUxBhyHUUEbmNUR7eymKuO9k3i/Ij2Vu9Gie9bHvKaMaVqwLAuWJaGUBE+yIg4I0WvMDJxCBEGCAmoNEcfjiNHryPfOkp6GLhx9uuTlg3zisfFe2Pu0zK5u3/Rvvnlwt+901rpZke11uztpVFQAh+in0JyPekbFdOvXYSMHan3a0zr77zvUiYuz8/33fVbC/hn7zzaGG9xB2PoIN9my651mekFg0myzGPDs9gYCMR2iGY5EhJwXpFSAkkGw7LDUovn/lDkAviZGmxOnQGXzl19+iT/64z82RsWbULqfLjBAAgB7+/1DisDFp+8WD0DdEE4ET1rm3KXgXXqefaQQ6WR+K0bgCBwY4zONJByvrwEihYadJ6AITqcZyFlTObLWGDERkIpGZkRQphllPSIcVAgV0Tq2nLOhxgmYvN+aDsfR5vdDrszPdnMwIeYRGpPUzrsBWHSpeMG9ErvYu9bUtCECIC1kRjNcUilYUsE0LShC+Oo3v7W+JVrjRcyI41B7cgW0iA42hqZOdBZBhKaAojgy1TbCJrYWvi7sMPZW6B1M+aRuayjbFIO917t4MXGdN6cjQNN8TAg2SGH36Ms2QkxUvb5PUisZ/YgZwHDhzYp8SG1tdXT6XWAF1QiG5pazGmz7m4eo4y2rNuPOm7spNz4bn9gcWpV5LFrvwKVbI79Dv042b6H3Sop70NgM/a2qSmxRdyUwnOYFyzxXOuTAXe2d1LlnW5vSrffGKCUHmDFhVr3v9p85QByAZ10zxlTwkBaMMW4E3wc9pg4+Yo3sOTBSCRiG0Zp1tuNwPFQFTqDRtxohpyaeCWTtNQTLqgpqcGeFCJZZ05Tp9Aa/+g//J/Ljc3z+RxrxTKngzevX4JLweD8j5Ql5nvD2viCtBWldcDge8f7hEc8Q8XZd8Y1PP8P19TVIHiD5Nzgtz3F1PKrB/IEk/A+npfTLfJmHbh1xzWzS/yx1vlOO9kZOo4qmMbsh4fMJvw8MTMH7WmwMN591qeveK1EeeTX1ofvOoys4S6V+ynDysRDtd2H7ff9Zm6NLSarnz6nz0hlHfle/QykF+dWvEIcBU1ossqMRgiUVpCwgShiuDxBD1ZvmE968eqlRBA6gXKxmmGufRyKNdmXLDqjvKv2MFLfm6pyUIuYYkNbk2Y7S3fv0OEEgiPEASQnEQeG2ATxOE5Z1xRUMpCRvZfu+9UBVfi/s7Trf7vCrYynmzKAKbiP1Z0NyZSKLnqMaQUTak7SIIBrPC7Rd8xCCInhaOrejU+9r65wP1t+tECyXxntpRyxap1UQmJGpuUdEsKn7hRTkdcFSBMjq0DL3RCVMkqYXmBQx+0NlRAgBy7pY+mPCMI4Y4kFRtW+u6o7TF2JzqPQOt2a4EdXV6ia0M0tsXUWAJWnN8nyarMm18mCXw15OUFNldQYQY8DhcEAMA5a0ok3tljYuRdj23334aGv2tMNAqsFGlk77oUyvp7nNU+e6Max8VpGgrSZcttGsAm6I1jBdifjs/Z+Kev0hx1NX+Ri5M+gunoMtSJR/bgNU2yMrFoSC5QlKKjVY43jhxRwyIWhWkDopSHUsPgerEgGCRBROlfY5C/LZmX/4/HxNjLbOWi6Cx9NUlTsA2syuaOAegAreIliK4GTABsrMGNE0QyfgP2QSnjLY3OtoN2rE19W0XQy9BlZocjvHHlI9UE3FJoRhMGheTY8jOiKTEk0SwvFqREkJy2lCiIx1zlZ3o9DrSmyiefQ2N35/ghci25glAtDaKDKBobNKEAoI5NFEnc8sWkMQiUGGJJFUetbIkQhq/4WgXLsAACAASURBVJw2oQZXb4I4qNsKlnmvDFGsALwq2dF6h82YT1NdO2LdEAxtKC/uK+SAYsnHwZAdHQ9Qe+cxSiRgGMFp7fr8NWNDBMgS1EhLpSpxFdGvex8gVENJcmNoDvyhKGVNqexVts6cwF7VYkM4JLYCbQZYCIkY0Ws4s9ZwjUSIHJBBVgNnDgMmiwx2YopaSggHRiluDBltGMANAMQ4AKyNnrMAlHPtw+ag9TmX6hkciiAHrz/p3ooIxVMtpb2pkCNZ6ghU+bK0UFqQS0bOC2JhBempc9d+MvmcBozDEWU+uZ7TKdjY7MksZnqL4PHxHvfvjwp7XVRZ1PQUjR4TdQ/sHm7ia2OAz0tBIPWaWctZFOng8LsUbgAdGh3MUPSalfbAdVU0uBBaFC8ASAyQkDbDDQ31spSsvbJyAXJBYcYwBAVygmpjpQBSEu7fvMOP/+oRb14FfOc/O+L+/h4vXrzA+3dqjD5OC9ZpRhhGzI93yDkjkOBwdY2UE24OA9b5hHfv3uL29gbr+tcgjMj4UwTEDbLXB400VwKCgCVURarnkWI/+2WQs/vK7uf5N9vFNH5rBlvN6t2My67qLrv02aXDTbX2GhcuyO08P7x/3qXDU+P6aNRW7TKV1g0Oke67C/fb1ff4yNv3nRImGo24n0/46rcvcX+aEarSLEjrgmWZwBwh6wrCDUrJWOYVb9++w+k0q9ONutSm+lbm/Crb9RS7fykCqTu7GLojME0T1mXV/m+7BdGEW68V1TqSOBxwdYiYSqqOBXVGZnApCEF7ZQEAZa01Xde1yj4W0Zpl44DcKVQbunHnULcOvr8FGrIRJzrjCUTqaNJG2FINHL23QfAPUXs67taH2WRiCIrUODfgBWZAksn9qmd0s1xUT0hQ3kheAy6CdVVHWMoN5zjAAFWC1sspq1Gj7vFxwrrMCBzw0UfPAClY89ZoyGDlwZ1joBSt75nnGWmekQowjhFXh9jqgaD95DRSvafojVl64Tv/6SnQSsspZSxrwnw64bSsWJcGRhdjNE6ubRHysla2FJhxOA44Hq8wHgbEOGga5V0DuNor233ao+sJxeDj/zCjxd5DunclQp/aWGWeuEH6ofs1zvEhniZiYHPCSGlBLgXjMEIgWKYZMgriMGrtOdr7ewdQ592lWBYWehknm/nw393ht5f5eivTDTsjEiAFP2pPrOd+SPZ8aNbFnLq5mC4dGGN8xDe++RcocEAvnXcCIJINWI7BQjVN2d/DI9b21lUXK7b/maB69IXF6GXpU8fXxmjzg5z5FGXggZ4myAztkZXcgkhZDQRD0SMAo8lEAgy16MOeBiJqICR2TX/UJt68RbHanLPpBN4JwyLVmp+XCYEjIgckzhDirrbHxhoGjEPEQgERjKurI1BWUDxASsF8OuHh7gGyZ852jyJUOwHsoVo9iphNORfRKKfnzvsdfUv1kKUwhb8kG6srY90wOgefpZBliNWKxWEAS4YsiqYjAEpGbXBduPWWkiLIawIFBosy9Gb4tjlWkBr1AIkxpwMFfPHxLR6uR+0XNC/2bp6IBzVUVce1WkADZRHdcEKMsvPueZ1UnUtL/wRa8pdHbLR+0LztolE2S8aDsxIKpigA8DyD4Cb15jXN8LHebr4+LB1SVv1H1zzYWtWUFjvL08BIREFtiFDY6IWg8PnF0gOLbFI5sjeJNyTExISV0JDgdkpxhvVs696jJ5acVrx8+RrDeEBgqhD3zvz8VAFpPSAxhGNHZAACY8lZlSRShTFQ0XReSUjzjF//4meQeKzXuUcZRvN1PWyqWgoIbaI4kTzl1iI0FDaOmF6oqtcR1aBHsRo+o4lcVKHIKYGH46aNQzZ6UAVeFFGz7iv9JcZQ+8ssqyCyIpjp0z1TgCHzgq9+Rri7e4/rF4/I0wmffec7WNcFb16+RMkZ4zBgXjMCA+PhiDgOIGEEKrh7/xb3D494f3ePMQgS/y84FMF49c9xiMPvh7xyeiBS4ItKozsBJS162cRy/0lb8kpCZzKOumtg69AMtrZ324X6WUuz2rpa2rPd8bFV37fOu2bAls011cjqxrmXIL5/ewOvN9bq753i048E3fcfnhN/36bgahTNgXgKyv0bLI93kHUBotbhnqYFDw8nBIE5PwRDDFiWjHfv7jCfZo2CbQxCl7+mqEGjFhXNtY1Gx9cp+SLaS9CNi+072i8lY04ZKSXcPrvGn3zCGMeA7z6f8DAX/O7hiOFQ8PlNxg8/e8BPTvfA8QqBFpRC+CL+ElfyGr863GASxrtkymuBOnXgw+oVMZtJacBegMowgQJ98D7nwJQ3Jm29knNRo8gcfiFs11dLaPSTvKMvdSwGFK9dJzXClNc4Oil16dvq3S8AIkQbZYOQc8bDwwNOpxmSM4bAoBCQUcBFN0vOGYNHMkz2RUsNq3WkRVMsU6eHEsxxVHUAM/geHpBFcHUccBtil7LeHIGbkhNLpa/lCugMAkv9bAZUqXrWuq5YUsayrFofZ85WGDaAG4U5F+SkQCNkqafjEHE8RAzjAXEYEeKgafrMIFp0DW0tzyNtODueNti2fO3yd91c+FGjar5fnrh3ZZQ+d+6YNz7WOdtENz5KWZFXjRZnCxCUQmDOCLHpgeqL7CvhnrYIe37Vl49so129i9tfs1SgG71PzzO6fbi/n558zsV7h2DV8QlEBYfxHjkTQlzxrW/+HyCstdGLYhQ4Dw/opYfA0o5rhN3mwBifZ4m4gV27/Pq6UBv770+Z/RoabYC+iwg6A2vLsIS6BBRjYL4YnnDhP1MFmACoZAVUoEbCtc6rPts1xCY0ziJs9n1FmrQB7w28s4O64k8pyCUhxEGJMiusrOQVgRh8dQVwAHFECGKMGFgRMbDms49XwDzNBjLhjMyND/Xaa38TVgHbMxh7lRCoRUD6V1cNE7lYJIss1cMM2t6DAA61mSigCIXFvD8FCo+uhcqwqF/e9KARYpB5ooUJQQoiFJVSDcpiiqk+whklk9Y4ZNg727ZnMtRLJlCMuOaA43hAzivmZdX5SqUqVQQFJqkw+ag7DM6W2hrqx55xx3BUSKpgMzaL+h1r3QeshoyMifppLTqoHpsQA0oCStJ0UGKCeNi9Gi92rT+up7uOIbodQjauXiFQQ0XnmGtNnZuTur6eytOENVVAARGDfwbpORb13aZ+ohbZ96kJW2Vc/81rwnSaMI4HBKM7Oqhhdprn6qlclxklJ5CbgM7/UkaQAqGAaHMNCpW1lrzg8WFCCLOO17eBaPTX16TITuFlhtAuat+tsc+nt87wT7Wm0yaku58KR03qJku3GQdzBDAbmM1WTHt6SskFwWilRqGHCCTd/7pORRtnVwXHBZkK5YevIso6YownvH31GgjRUqJ0TWNUVVMs43QYIg6HK9y/f8S6nDBNJ6RlRhbC8fp/xu23/kd88cm/PkPUbeTYlIJuEqpXdjMvdcTYXaOzsBfA/rsn68jFM7u55L1q4woD4FKAqXsm+TlbRWILavL0QdVR1lfB9d+3td6pPfXzi6n7/jIffHbLNunuVr/zWmBPoS8WfU6WDiYlg99/CSozlHY0XWyeTvZeBeM4YFkT1pTxcP+AdZpwdRwAk8cKdZ01qjVEbdFBnmonOBxi44mboxlv/n1x/rI/UzT1fwwLfvBFwUefEP6r754AZOR1tfYqE0IkpLXgYU74Qn6EuPxMHY9FASjucsa/+fY93k4j/vLLF/hq2dLKdglks2a6HB2dOy+ogRFfe71iWTPWZUUWwWEcVFLUSJwphgZWIARFEt3IIAdTURoVtEfWtYe7kUrdFwytk2dRXcJdCvO0qGOUYJFD3VU+/GD8JwTSDIkYMI4D1pRRQJjXbKi2Rfllp78RWcsgaXNzczUCZGBpFdTB6VNMnPXywmnE6df1rgJIS7FNKWFZVyzzimlesSwrxJzF6sRTWSoimlpelK6ZGeM4IMaIwxgxjoNC9zMbAEkAOKqeQzAEZaeLFgHaO9T2v2+PrQzp17YRmxtHPe9wJWBPgWc7Y/dxz2v7x+jnnl4MwLKbVACQZOSskdmUC2JOyGL9+EQDA43nurTa6s1AAyF5sqYN+/0mm+va2Lgb9/ad987gtuOotkzpZUc/ISFM+OKL/wvLesD11e8QmJBFM39Un/W8NLuPaFZSKTZ2Uef3drCqW1eE405vcNvFny82N4qw/WHD7WtitDVP32bhsCE1VcgZtW/Y3pjr/tArzFtVGQaABNkAWTDpJDjRRNptun6Y1AQJgE3Ptqo0ffA1W95vCKF6Xd0AESlYp0Vhkq8Jw6ACkFgQO/CEmmZp8+V56GINKpkZ4zDqpuuV5SIobMaR79xuzisNdZLAa48YGi0pRZ2uqt5rzWGFBbYFo67xOTNVRCpVbgkQqn3WNtuOujSUbjMLPKzeMwdP7WwMX0Q9xPOakN+8xzivOBwPGMexesmEAuaT9fzy6CFE00U6dc+N0BZFNIHhBlfpfEz+HbCJyvmcCkoNjUcrxN4zKa3zMIU8MMKg54YQzPsllhrD8FID1wdcSNO+QAG61sQBRHnDpAHrGVeNNjIjyxmfnVeRBFD73/ldztVQ1D0SxKKV6kU414CqoLO1DAHBInXJ6DjEAXEYkFftoRQjQCgoaYFHSwu1mSRTp0MgDIza3sKPIUgFBQkcqmer1B5GXWmcHSzqFHAFGt3P/p2k2ydMWpfSHl3NYL8TjmNAjAOuj1dN+coKhhLiOVuu/V4IqrAbPTk/ikHrMEJs7nqnbfUL6joKBI+vD5DMeLx7xO0XCrU9rwX3j4+IISDlgpubGxwOR6AkTGvCadJoy930iEOIeHFzi2fPbnAz/Byl/Bk8Fa5qBOjGIOd0eclgA3rqPP+r7Zq2Aba7drsszkH6hLunz5Pd38Znu3v0xldVri8oZXsZ5imQPcx/f5e9IrFROy7NHTYnuBW3+3hf37Kdbx2P8sB5esCrV6/x7u4dUtJ70ukl8qufYZpXTYcnIOWs+zHNOBxGKOR/wP39A9I8YTxEEDGyACCF208lQ5gwXB1RRGuY07xoZok5G8VkTaOBPsHfvdxlQ1ffuJ3x/Y8ekYUwBEagBd9+vuL6JqNk7aHlKZi5FFBmLNOM+/tHlCIYQsDNYQBIgYzWVdONn4/AF89W/Pb98GF9+oNLUjZOHFVA9I9lmjEvCRwCxuNopQPb6z3jw9Fj+3qs/cGkZQOaxdEGKFXnaQ4eJuVPNTJIwOEwgqCoiCCVLxnaV9Mjo374upr6oSmeydLmhWrKp79QqfyyfqQGGcX2QU27vTy/54bQdqfkXLCmjGWetb/ktFrZBSl9sraCkVKwVlRkAXPAYYyI46CGWozaTiZw5WVkRiURWUYQdTIAtezysuPhDzn2C+oTdb7QzSl/qa3U5Wu2n1N1flc9jNDKXJwLmtwmA/FRkMCkkdQYrF5za5woynuuz7poGO3epdahbdb1ghEGNNnin0kbL7qryJ2T8AIVqsTXtM3z0YkAKY149+6fIxfBOMwI4529UzPUAKXpYP0rU1a90evcdKxbGt7QjAOsgeot9/Mk8vszVr4eRpuYQmjT7+AAukA1qxsCQ8O3PBc3Xp9ipM1D4QtlREVNHBe0qJwq6RVbwSBDBGPvWbHzAGzCtsRcowHAljAvvC5iPIC4ICcVKjwOuHr+HGEYkecZEEEMBKYAoVTDKo58dDpNkHmCLAtyjBARpOxQwQQaBpQlacQpMlIS68vVBHrJWjNAZli5J66UhhDpMiWJkW/0+rW2GUpO+kxuUTudD6kgHwCsv4oyw8wFSG70KNSzXmdznXUhKEsVbJlgKWlqOCUT9C6IMhROPqeEZU14eHgEQIjjgPEwYDweFCafXBkwA5MMsVBQDWGPRvlmd/S/ymRMODFXnAlTiqkp+Lvi2CItHbURaSNeZsI4RgzmWAjW2HmZA3LJatSFiJyBIRLYjLxxYOA4QOa19Uuxefb37BkYquAhkOQqnAC0aKFsFVIRMxyg6TVZAHHErC5iwKYQVE+ueZC3Ueqi+bBW10TQGg24M6G4kWxK1zIbaIHe+/39HdI8aWsG6edPU3ukZI3UEcAxoBRgiEAoOsosqoAKsbVa2Do3+nWunxLqePpzyN/PjKde9b/oSIIZAyXj9ctXnYKgStX19Q1evPgERMD3v/99/OKnP4Mn9KpRpPu2ja1xfiLjSc7f2JQ5ZqAfF4DpIWI5CR7eFtx+c8Zw0DGlJYGJ8OrVa7x+fYcQBPFwQADj84+fIcSA+/sJ7x8e8eLFCzy/JhT6G5zKv7RUU/q9KehV4BJUecC5yJb66WYVfCa6sxtvv6woPDWWdg/anNfHxKg7u+0ZAGfeUEI/ku3I3Vjrz90+8WxIT6phZ8/r9+iHz4Tun6acQYB1XfDq1z/Gl3/zF7h7uEfKmupL6RGQFYPVd1fAvxC0V2hoqehpWvDRpx8j54TH+xNyyhgOBzw+3OH+7g4hRIyDwmevD/dY5kWjuTAZ1BkRyg/M2WK05Gzrv/3+Hb7xMQEkGClhDBnDOKoDBkess2ZeUAFg6f+1Lh6k0a1cMDLh27dHzQIhwh3rfporr8QlO/jDBttO1nsLGgIMqMQUYpPRx+NBHbdSWpElGZ25M9bvAzOQcvc8oooMrSxAao1641VqnADKcpNNemCuPTVD0B5jrkB7fV5F8Db9igEEC1XzEPX/JdkopaIxEmlqtoIy61swMRLcQb2rF7/gTNjPuU5lZ1SUoq1YlgXzNGFeUjU6tS2LqrUpJeSal67rczxGHIYR42G0VNCIwFTTM13f2WRNEUPAm/UV01khrX7t/NjuYuIAj9JsdqvxdRMkZxMg/edmWMuGGLbz19eR+b/iqchGh1I1lXbkpFHZJRXMy6oZUSVjXjR1/ngY4DK6iNWVEc7u1BtZ/dj2+nApqn8ytbq1Om+2Dnua6P+WznhTDhsQWevlBZrWm1YF5DvEgFg3h+pmPey+SMDDw3exrMDDwxeIccY4vkfOP8HL393g5toyMVwjlMZDC1AxBSC9g7zNt79vP0fWBlj3pBDyXmd44vh6GG3YhmelW7sinudqcZVu0VxJgTF6nSAXuVtvRFVc8dQGczaHLTw8gMWKvhhADIxoG4xybuiRtIsSdlG4/h3VGaDKTeagBZ+WkjIwIxxHnCwFUaHFixluxRhFM7jWadaUqYEwDCMQBoTR6vpAiEFRGLmmizWFqgKUmHARi+bUwxqMrt4LppQaSdM5cqLtim1BNUJVshJ31CI5sIgZWQVJAAKDgmAwQ0AbvIrBJQMS9BpXFrJsGRFgCmouhgau7xwspUHvq/VwaZmxzjPu3t6Zos2domAeNRu3FO0RyMy4vhohHIBiEZgizchiroA1YtdeVFatiFVrm2zu0TkNiuDAC771fMZ/+Y2X2svLipcCEWIcMS8rrq6PGCKjQHuTlayGDwXgr39zjZ//7oAlB5zuHnHSAjN40T9ZbVu1N+1fJgazpT0Sb1gvs6dQQR0kvhZkwh+wlEhll1wKcgzVobISYRBgVeLZyCJVpoCaPkYtDaKkbE4UqYxxzZ4FbgMogKzZCuS30bRxiOCiSI+UNEYmB4fBVgGbSQBYLZgUEEVdFbamAmJMVVCdCIQLfMMFN0zuukLsX5uQ2hdJZ0Oj1JNabQITMLC2/uAQMI6j8UA7gwxwwWrCQrCqmdIEVy6aukImoYUVfXcDE2dKmWRCPgUsv4hgNi+qCWGBIA7As++8xzBMiGPAeHXE/fu3oFJQiPHq7WvcvngOpr/CKhPk6s/APFhj9+a8aLWBaOHxfqK6XzdGz2a+qRr4Tx87Jan7tzMVd3d46n477y6267/Pxtgbar0Bh/77gD6jq37nFxKwbbz8xLG//2WVUd9hHz1elhnzMkOkYLl7i9/+zf+Od69eKlqaedrhCkQgrDkjiCjSaThgGAes8wKBoKyroUMq/RAzwFoj9HCfja8IDldXNVukAOCiCMee2i0w77+9EZOPgxBJ8MNvvceffLHi+vYaLEApwdIvBcuyoIj2ZDuwAlJVYBCoQTPdP2CZV0CA58cRAuAmBkTWSB3njOS13BtB3pTlszXYzasqZS1K6FeoXDSZHgiUVWcYhoiSUj3fZWsjJLOYVHtFqQ4Oqnd3vS+LptOrgu6MW+uFc1oxLwtSygYKYvzdZKZHkrzelgkQQ9ZkptoWAAMhiANmaXomhwDF8kw2Jxla82OrWgIyVB+gy9PoLwtAEAshb4IbGo1dlwXLmjDNK+ZlRk4JVlJt/WtVlc05I6+TzjmrPjCOA64O0VIgtbREW6+0dF0tsUENBLR1s7HtDJFiJR5PW/J7buC62/58f1HCdkfvv/f53BtrJoGl1eOeGzpuNGmAQMeiuozWYBpCOxPKuuD9m/d4PM12rWIFxI/U4a1Grel8AAIKgLIdtTssaOtUvcQ/q95FTbcno/d2O6u3rQ4nf2+Gp2Jr0CJhygXLsiCntYJ1MUfw82cIA5k+JhuDjZhwdT3i5mqEyIKUAtZyi5Se4fH0ApEfDCiwdtpVhzkJhqhAfQyL7FPeLKEHBfydt/PRlrjYvP4hx9fGaPNjv6mZpVlTfoJtllwExXauWDi31S14XY5NXBWET2+yNomdsJaWHlWgKHqLfc9ALf4lRm08Sjrwdg8bn8CMU7uvFCBLg+bP0n0nWqytEQ8gxoiUk3rAYsD1zRUWEjzcP1YLfhwGjMMAAWm6BwkON9eIgbDMWZXnYullRYENSucNLCRapGsekGyeBBKFbW6xUNg4lZkHatE6MENSBnkfMAFyStVjVkgBRYCsQoJaLSAxG0w/qicW3Bv0O23GN0Bxg8IjEIJ4GDGMg6aO5oKUEtKaUHLGmlKtA6zRCyjjLtQav0Yi8DhqbnxJHXyJ/ptyQSDDs5TOm+6REzQnqtfbuUtBAKBkfHG14L/75mscBoIsAYchIhY1WnPJmO7vseaMZZoUFdMipzEENYiF8GdfPOKH3zhhTQVfvVzwv/3sFndpqAYIerpES+FrGd+9nkCVKTbLUlQRr5FlZUSeIisCZEdngwl4Eax2m+2Wo7rW7hn156o3uXRj1CtOp3scDzcb5blwUJCi3cFFMCBgHCMWma3gXp8bRFMMuQgkEBIiBpCGSoMJ7R3jLNTQHJ0/eBRR931Tn/T7qoKhbxRc375azp26bbJaxR+qkVMdEc7yCICw9T7S9YnEyIwKLBRjRIiE6hqwa9X94w4wVNoUq3+rhqq9AnNAWgre/uIFrl6seP7NBev0AOrQrab7R/zoR/8vnj/7GB+/eG+gSh9hyp9rZCUOCO7pd1rLbb33VLEnlb0K04TeJR7ezm41zu3cbYLk9vo/xLvpZtLeQJMLf29Nzd3T8lOjAHZ+xhol6p0SfXr4hhX6z6fO9eyKUvAwLfjtr/4O92++wvLVTxQ5lBRFtz8354KHxxlSMsabI8ZxwGEYME8TYMYRMxAPR0yPj1AQCO0xVoi0GXKMIEh1HBIHBM7wgq9Ohdm8i+8gAfDNZyv+2cf3mE6AlPv2nqaIOkhJKQWHQR0w9X5mwCynGVkEz48DUARHZhxjwPdePAMA/MeXb3CfChaTF/2xMY67xd1vZeebRbytjvIbBFb1n5Q2KUgFtnDIfjbDAOaY0IgXmq9FRPtClW6ehBxqyKJjXa2dKerrPGOaZk0JHaIas1ZKAY+ukdU/M9U0bDZQjlrzC9VzObhhwwjDiJuD0SgsHZ36ubconBnRrUUObfSD/kgsCAVYRBXuZVkxTQvWZcFaijmD1RjzipHs75MzEAKGw4hhCDiMB/3d69vNEe6OWsBrJp0n+X7RZ2gESHnoPmOKydI/nySIdi/9qkMXvsgB9pwD23Osz5nefjtpnnlUH21Dcb3Jo2qaDaXAaIVUx8yFFRdgTVjWBdPDCafHBXGMiCGCpGBaVttS3hLHx2MozPDEdZVlT73J2ZvJdvfXbBXpyxSM50vRVMTiUV1Fi01ZAYiKAfzlnGvAwOVFCLlWdhIuyR7Cs2c3uL291vpM20ccAsbDAVIWeHW8A5NI8VH3b3B+9J+K6ZUts6+dsK8B/NDxtTPaNvQoW8Kvh2lz4zDg6uoa9/d3GqkBTAfytC1TUFjzpjW/1AoZSWq9juItnD9rUzzYhSlcYdP0fxUeXPRvBaXQ2w+uMLGiSSlhKppdKVGVLg4oWJWR5ox5msBJc955DMiiodYQAqg4FGRAGAkHusE0zVjnBaf7e2UsIYJDwGApD4c4gG5HXN+qkic5I6UVKSeI5fGntKIkM0rEhavRkyl2ZHNQsinT1BRAN1JINNpUuveua9h7UYC6K7UeL1uqGzdBZXNP0LRKVQQMEl5kkxrHHUM2PVejKN5jJTBGHjCO2oTY+6/ktCp8bypW6C6oDSRKwWlOOJDODURLuqW04ngnOGcErpgWcxaIz43PnTQjzifjv/j2I1BWfP7sE3z39gqffPJxFRB3a8KPfvsSr16/wXKarZHnYFFS96IL0pogIpjWgo+uEv77P53xuxNjVYsaP3tz0FeycXt01Ui1zbXn76MT/vaLCKoC5MpFZT5OKGSomJ0BS7ILrBgpFPF9ahE+sgf5+NDqPe/uH3B7+6JOW2tELiY425QKQ1sylGZik5lDSawusPCeozTapDodcIARX192IdgpG0193gnSblB9lFU6mpF2cv1J3b2ozoJ9Lf6Z3qGAkAzdh0NQ+H+01FJnc+KCwl2x9q0uqRgrdKGh92XLChAQ5vcj7okAfoA36RUA87yAY0TOBfN6wqfp34P4iJf338SL2xt88ulnWOlPIRjAHAF4eswWZbX99Lod58ZbI8nZQpN0rpC0xetr6BoQiCsF+/V+un6gqVVtXnZLdXb0n7Htzb0wFivP2j7j8j2AnRHWGaKuIO2VBfdptmuKKWeaJibphMPDl/hE3uAob/EyRjzMb5HWdZO+U4rCfOeUcHt9DFiamAAAIABJREFUhZubKwQmxEB4WBPioPWm66w9ruZp1vcsAioFx5ub2q5Fa3VDe2dr/0KWxbB9920qaf1MBGWdMZdYU5IhnqrU0AOLlE5ZVcOnlAKOAWEHp70KcJ8Ft0FBFrwm/DLwi8/ndq73c6+nbpU5b0nUPmlgQqKTjVpo7zTNZJkMRneiaXVqRFiGg/UDdadMFnU01qcR4eo4ICV1WipYFyErMIDNkZZh3D67QYgB6+OMZV6QLW0ebgySrltVriWDx4hIWh+wmswr1UDXUYTQv4MPTerf5IYtLFunZDwsCdM0YZ5WJJO9YgaDljEUlFSQrX8ssaKFDtdHDGPEOAwIMSCEwUDLAO/xpr93XLTbL82IbCBeAFlzc51Pz6bRVMe832xbQqgCtF1/zjg+tPubZNk4hYEzXuZtBqqDpx8WFEAmi+pRmt2VsWbdVylnrPOKtNh8k8HYM0AUEXOBp7W685Dg0S8C1dwYVP3R9+bmXXa8TKN1pns4eBapYZbNwaoGmfYBlKI9RnPOcJRQ3y99bazPQXUS1JHQdox+qPe1OjACGUbDGXBVk8fSzfHedt8ffs0eq2G3THVOfp/x9rUz2ojQZqBuLsGZGxLAMIy4ur7G3d0dmsAHfCochcibM/visG1GJkVtMt608dq52rhPLZF+P6IpHQKtjctGOAzTccm8QsagvbGzpxZSsFxpY8p5XZCFwCIYSJlZLgUxOuPrGgD6/Kwr5vf32og3BhAHzIFBwwCKETEO4BgUrCAGDDFgFEIx2IxSFBmsiGCZZ0XomxakOVXm6+FwIihQBlBRlHrF1ueEDDZQTCms8ycKSy4uCdkEPWmdVJXHQFXsqqrSe7B8c/mGcKbWa1V1k0hnqFDN46fjAQKFlH58OGnKj2gPugTG9O4ed+/vQQSEqGmXuRQtzM8CihHO4IkZYTxYTr1lPitmdMc0duldxAAzvv3px/jhZy/wve99B+PHzThJIvjW5x/j//7Rz/B3X71B4FINNoXoj4AUsORKdwXAx88SPnuh9XxCCd/9SCOfKa14fEz4d/9xqEoxbBm0bxvVKE5vcsAiORxV/XDlTLw5rjFOMGOQVluRyOlYxyalGS8la82EON0QmXqTqmBwBUrA3d6GRWbPvbQ6WgYFVKNN+n9Z6z43dXCElnZE/X2pesbqOIy+q6pv/ETXtdG5pjpwSykFay+4jjzbjVo2gGItWN8+UEVJrftOJ7quG5MD+iiCHnNzJtT1I+MzEMu7bwqUp8HB18AEcV8B55+f3g1YVsHzb951OiGBU8bMgOSCQIzbFxFD/hvM7wvu+FPE+FMAAYfjFTD8AGv5LoYYzV/WpbC5wl/XoTu69SJWJxvBeLF41FHTfQW2z/eGMXrBSm3+OwNqrz4ZVcB7nF0Spn6ddH9r2lRBtwp6BIBKu/cF8t0cWlvcRtI/Ud+5rVn/fXXM+LuIYDo94u39A/Cbv0F5eINTWg0oJEFyqaBMDpaTc0IyYJvDza32abTa18M4IFiPMxBwmmZNlSNBGBTAg6vBxtVAuTRvun2kKlJax4Xm9ILgd3cRv4gjvnMzI1kvte3RZH+rpfJvdJrG4wFLLpjXjBc3BxBpXetv7+7xlqj2DfX7sBuBRE+uUx2HuJOri9rYPLpzqVfymFxGqkyhnHcKuTMSczoaCbiRA5OTTue9MZENIAtmoIVhQAgrsvfpJFiGTaUWXN3cIA4HMAFv0htgWUFgiGjbZCHVFfwdSy5IOSvgUp4xTROWJYEJlhWgO0LbJUjnCFSpXh1YRdPEl5SR1gXzvGBZEtY1VZ4HslTXYq0f7N5MhHGIOHi9egwavWQy4K2WxeF74tKua7XTF3akCEBcdb69UXae6GHaew8C1POyXn/5A7iAG2JVvhIu0H6jF033RzWEIIKUC9ZlxZq0rIKYEYLqggAwzzPWacbidYFGO2lNGMYjmBglhDOjUeusdW2UF7f3Jljk9dI7ubyDAIZenYug5IxSkjnRc82O0ihqNoNe6jy67KgGout39pnXlOr5sPIIshTiupk28wegRmKrh4EurBGRRR430sUyrno5o/Iql+0zbEhbpO1/wvG1Mdq0/oOqtXx+dBJ2o3Q1bwlt16J9VprBAeQaIaiZBpWBmgc4hEqgQaR54PSuegl6Zt5Etof9YytEAUJAIQvNC9TLFYFcVs1rDwOICEM8gp6x1g6YYA4MpDXD0WlcwVvnFcvjA2Rd1BAk0Sa7uQBY9R2t/8nqxDlEcIyIg6YOclA42xADohkgx+MVihTMy4y3L1+j5FyZtdc7VGRA25nEXQ57t4H8ILJUglSqMHClmKACfs2MgTQVrJQCyUV7hbWFBudSPdgE9Sz2wrD3YnifmoqkTJUAqpEA86wMI2NMGWlNlQ6U6SszySJIiQBZwUFTx6p3h7wWA5aCAVwdIlJu0Tu13zIEmpqgKF5UtZYxBvzR976D4RufA9efAMs95OpTyHqPT04zfnB9wJtPPsHj+1fwywABlWyGBNUI3rIkhGyeWmKAF9zyowr3ATiOC/7N9xh/8Y+fbBRNZTmWwtl5hJzwKSo6IRUBmddamJEBq3c0+rO1Sn5fURCb2N1LPbctpaOI9kvzJAtfYxcCUkqlK6cZMmOowQgJZF0hw9DqTLFXd6nWVvafNjp1A9yU/oIaGnUHjD9/c7l4LYxyBa7CWeoUblm/VdyWxkXqFX1xNPrIpdT7+LBcaJFPLVnNgkWDQVTnyp/SnFDnnlB9nzbu6nwh5cv/H3Vv1mPLkp2HfSsiMnPvXVX33LGb3W2yu0VaBmRTsGQLkDw8GDb84if9S/0GwQIIQbANkDQkkQbNqdlkz3c495xTw96ZMSw/rCEid9Xppt+uEjinqvaQGcOKNa9vrfcRb8oRH3z30Y1t6znFjfF4f8bh8IC6rcghYnv7Dh/fVsQYcX5g1PrXuDl9CKQT+PS/IdA0HN2XlZfrFBrYGmhj6tHAY8CRGkf1yDyvzwyHhv1nXUEajFbAFa9xD0djbdwHu8KQVuvpS607GnigjRdm/Rtee65IjPME2Ju0mrLz9PAOP/nf/xWeSgFQwLUipAmtZFwuZ1gWCtR4TjEiHFTqsNSuYUoojRCWGUTWw4nAtWJeFpD2e6ytIKSAKZE6WEZ6UsMhRkllauwAVdcTsjYiaw24XxPChzNoy96e4DlCpjzKwKG872kFpnnCkivuH5583wIErKLoV4tm3vz+d57w5X3E5w9J0hTV6csqTFxJHR9rxp06X5nSno9iOHFmcBG5gv3jH/0IP/jd33uuyXFXkMF2HvpngvK/ytwbdLPVpQHQCElUhNrmglsM3AogzgkBjPO2CfJybSIPQvC0R1DQ9ggNVArKKsAuJUu+7zwlcCREiqgk+kJjAX2yfnVSqi+8vOSMyyXjsq7Y8oZS2OWxya6aC6qWhIQgZ2paJiyz6C8pRalH1HY15GBinS+QMY2RsMa/BCkNcMfMXirKggb/y/bY7tpPHNxQ3+9fr1nebapRxAsMwEtqdiKYd9MYCy2YGaWR62SlZmSLnIeAKUYcjydMkwB/bTnjcnnC48Oq0TWLTtt4hKbilHBzcwTzhDhFVCJ03E+JBO9nM86S3cnAbCOVMdZaUHKWVMSyoVYxyO07TQMnJQvSs9UOMksNnjSWH6K+GPiH8eHhpy3i6D63AZuD2mUEnvN5sk0wvfHZfj5/ZX/0Oy1du24jE2opkI7l1Hnkr7m+MUabCBr9zTaZTeAFBBqK9+Xt7ugG9VZVpsy4d2Vv+e6eOCj7jApqlmnfBYwpJqBOrK6IK5nKuEUwJ3Rh40RjikSp4FRE2JCgLmIS5oMAxCkiTLcIqSBvZzFwKALYgGYHlYHWUGrD+fEsPZquFAa7qLU9Yk2pqO2MCmCLUsQZlhlxnpEmASOgKSGGiHma8dFnn+Lx4QHnt/dg3ntOJBVRc5pNSAzKkS9tM2W7udIrgtWALlhzx9GRL0ng7+1ejRmhivelez4Go5mgKSiqqCosseTpW9Nyfn7wuKcZWVNEyZeOYlQEQkREaCbkRDO2vjMpEKR+m1BqRdsKlkmiQq02gBtaVrq1QmelHXHWNCRipGkSRK/lBpSOqBQBzr7eEUC4/wqRodD/QG2EGJqP39in9Z8ZFaTOTqTG4Vt3CT9cL/jRm7nTBgk9WGuGiKvYNvc1rwYWQkBkoXnxBMr3bV8TBIjElIkoCyNrTT19wRma6oxVlQtmSzeWPd8JuNHDxgNNhiBeuyvnQa2Sux80OkgxwOpFgwQ8UUvFzWkWRTRLmq/1RZNmqsMp0z0uW+6AOTSyfPUu6/orvip2lyo3g9noRoAI4wZw7coB6Z6QqGpB5+fp9Sz7T8xI8zSsXV+ycfymVNJ4dp0+Lb0Pnbe2hrIC22NAWBqidFhGWTe0yjgcCl5/0TAvMy6PT4hpxeePj3j14QnvHt6i8oTf+rRhXs748PR/4bH9CwQHLeh89/qSNREjzfeagkIt9/V2h87gQe33G+jJ7rnfin6OeK+AXI/ofSJ1vJ+NY1TAmK2W9NpYu1bc6Op1G82oJA0GP+/fAbB7dmsZ5Rd/ipgKyuMT5lnQ//K2oZSyu3PXMQNSIkwpodaCFCEaoddfA/ePG7baMC8TKEQcDieRaQtwOp4EFZl078baVaXZQIriGqXeR0DFxEQB7+P9f/rLE5YJ+NbNhlcniQw0BeQxBMpxNRnQGj09xwRQlM///PGC2xjx8WlBZcbDmnHWfnNpEgS6QFBHeuelysYdfEjmI58z1yYbqBVkvYQHRZDhw1/tMEjTwaBK6zPa6NKu+V535bMhgLl0eogi76hJlCwSkOYJ07KAWsW6ZtSqZ5wb8prx5suvcT5fUHJV4DAB/oqtCcAMqyOqVuStutM0hqDJAkGd5wHF4Dvc4BCwp1IkgtZaxfl8Rs5bHwcF6fsFyYqqmu5vWTGHOeGwzJiXBSmS1tCrobbLYQt43iqr82TTK0l7srJtqG0kCJr7p5tgNXp9H0Y/sv1q7Xj69+zd63P9spG2A4BzKoDLtmd3YUhbnMbIiutQ6wZmBWFLEcfjEdM0qZ4liNpPjxc8Pjzgclm1pAI7/dBXUZ39REC1XoFEjgxdKxCiZMC4Vnp1/kZe3kDSjuEstYm1Vcl4GUoYHGG3KWgYS7mQg55RX6sYu8zc1YsDu7YXtoayE+aSHsc4rCwzammwxgXMANem6qIqCbt76yz9wBoHJY+k2377My2LbxhfRXOD7e97fSOMNr76baxLsKPBLqSkpF7rehFiRJoSPCSPYdG5p3v4ZQs/CHYbgIU2k3mp1XsVYLZXGIwx+Y8BsAKdSMG1Ao5wBxUg1XzM67mtF0xNcnQzCXgAOCrCH4GQUEsU71gIyBRdYNgqHQ4zwkcfYn18xNPjk6BxYT/NFCNy6a+ODXBZeieIJ+t8EdAIgqRUxghKEYEClhCA44K8ad2dOPJhnekDyZpXRs/3JmGsTQ8gQY0w7uN3pVoXS+4jBhGrx9MYpBeoJjGgLELao24afRgK0sW0tvQRdoPx+miwjjfAGjA2j9IRIKmBEG9RJEnTsObhxep+SNIQynnDJSbkddV+a9GhdnmYO6A1iohATKAidSGhFTBXhHJGymdQnHZFq601MXxYZtdad1ZU9UhZTrqxp+6BUgHaGl5fEv7qyyPC5NSixq4Z5iRe5dYVjdYYIan2o145UmO4kaQab3YviNFXr5hn1XEF+1tbZJCSRjAz1VOINeUjZzFEd8NVyOsUUTY1JpVvxJQQmJFz1tsxIjHSFKV+y4y6VgF0wJaUAsqaJV06Bim6DxGQ0+HCNAaNYKCnKZlTwNw1wqUkCktaBi06Q/N9MQNhpMWas0CmTxNaqWhZa02VJoWGKxBIAQwG45rlvAVIdHOakkbQ9yq/q/utnwujd0uvsTQThgjx1ppEdreI+5/cIH2QcfPZGTQTahPkvuMScLk84rKekVJCYsa6Vbx7W1EKcLw9Ik4zzucHNP4ZwunnSPN3d/16dumS+lOEsQI5cP9cj7J1Q0ze695tHu4Fxs6ow+7bwMuBG10v8bg8N7xtL68MRN2O/QZjLLC/HgFj3KWXFL7+6ZeUPFIFj/d3YUZ9eot3b94CYcY8Z8zHEwIxas6Y5hnMjJzL7p6m6CzHBdvlgmVZJDNDddtLzih58/kfDgcQJIIyHQ5IU/K0v9YsAtL3sw0ORZabKN8yKrUsih6R/+Of3WFZEv7p9+7lbNSK5eaIms/47vGtp9y2sfEwQ82d6G0zSqn4Ohc8akPpTY0+cc4EfPmQ8JiDIkATEEzOX++zPiJo+rHt985RIpklLAcJ5kfr9fLKN1rD/f09bm9vYQarUURrAGGvvRprHf1yBq5hgEZEDIoTPvzwiJgmPNy/k7YH5uhhxsObN7Aa7UABrdnvkoYsstloHCqXpYcogkWT9b1aQalnKZWccT6fUbYN57MY2tDyDngtM6RFi8LNG9pjSlH7p00Ik+hCUdMeR75klNpYylC6Mqd8Q7ObRAVow95YCQc8QtfPYD8EgfcZP/K5FxRsVwr7+d0baJ0n7A2coR5r90lIHX+T3sKSwtwzvlidJ0RS6nE4HDBN0WtHW2vIuWBdV5zPF1yeLija73TPY19IXVY6L+sGrlXk6dECGNq6iSXLCGTyp+t3urr+e0AD54yyruLwZa07s7Il4OVUU9sjwJG67dxc7VRvvzXoeLIlwzkzjfBK1tjvgiRt72vbK7n5fmh++Drwg5wNkxXjLirP08wik7T+7hXQwW+KsgHfEKMN6N6GfqY0JK0J3T33uPluMbMSdutnxr7ui6nC39QmZv/uNaEZI6tmNOgtpyC5qqE2IAbEgTBMEITQPZugDk/aa97YhVXdBAQEAKgxclSPUS2eYhJqRsuM6RDd8x4VuolZ0leWmxNCSjivGTFvO6NNPCIvaCH2pv8+KjkA11XnoP8pw56ZkYWLgYPUBYYo+fGsksU8TtwYVaxYgTg2pqQRSFYDjkLwvmKk30MwkApZseAROjtY0IO3U1evVJ1Bedoxzq487P7W55sH2DyJgKbfBqkHaFqXFIlQ2HYVAnxRRXC0ynh8PPd7AtrweKAPSN3bHCJSBO7fvsPXX73Gx7c3QiMGSzsQZz3cIN+/1WbPEhKmGLWGoUcQ5Bxd73tfD/NeXvOGziy0+mBwZuyuEYwEmqDIjBa7dxVEAgBgyvTombZzomsJllowY9rmiWcvbGkqKAYUR/seBr5hrxMpzK+0OdBewZLqymIkWhRRcuWTI0GFQEgpunOFIsDUsByPghJaa/egwQz2gLsP7yTVK2cZg0Kfj2q4fUslrpAmMbh2emQiLMuMaUoIMWA5zDgelx1NC7/Z76pdtSjcMQOoBVk9/SnFriS5MmwkYanj7M8h+5976onYpTLvQITybsZTI5x+sGlajnjxp8MMcEUp6pUtFU+PGfPdHW5Dw+XxNUqVuqTj9Edo6X8Ahc/GE6vDukp7sdev0YRfvEYlS4rog0aBr9ds3B+YoapgIa6QYlj0Z+McXtulQr00SNq9ZqMZRnv18+93dQkDN9zc4dEqHr/8Cd58/jPkbZM2KLUiLROWwwmlZtSSkDdzTAzqFvfaoePNLfK2omgj+hCkQfy2KZz/NEndayBpMxO1qTGbt3oYrDo5ekqWvkV91cQd0RVdm2NtwB//9M4dOaePPgBdHpE/YvzuJ4/e0NuMqCbFvt2Tb8MgQr7qmyTPYvzd1xMe1giKXV9jxq6li4x1iKTqa92wV+VSLC43eggdRdGWgwG0UvH111/j7vYWlqremECsDh+TSYMjzQeiaiBDeK2AdMnvIQTMy4KtZOTaJNuApZa9UvC6fxuMsDc5ESH21jhE4mhMPm5yh5HNXVKCyZnx4+Mjnp6eulNI1wxawyTRVUIKActhESfTFDVCFJB2ja5lcPu0916rZo7WPjoa/+y/8Hgu98qyBe7dMGCjxP0JbbzfPyMQpwHdL2bj+e9JRdfP1Wq1aHI1FsdiKRXZ6vhIHN/TlDDFyRuBG2iZGVrrtuHydMZ6WXFZN+Q1q7HX97F/x4zIZ+wNQmoNVAlylPfRbLs8JduW384qjWcjKI6A9Ey1Wvhm+t+VJ0v0maF/8jg4deIQeuZX1weoQ+crLZOCdEnk/GqiatiD5ZykpLp3JIkmEjly/PgdW5/rK6jextd0ZXxskAu+ljE8u89vur4RRhsBe6MHALThMhrtDN1R7BFpOF2jSWG0WBW5UA7jsJA7b2i3fv0lewjYPQimGAMAWsUUusJKMWgkTgjAUuksIGEKQWvSJNqYnL1ec0HihIaGrTwgTpP0biFCOQOXywW1NESawEEiCOZxIWv4GKIaEXLNKWIr1Q/UlPYRt7/X1TUAN2AmADmK8mOgAc1CPUSSfqL7IGmR6kk1hqSIWB7NsTepp9AFIoRE7tVkVXKdqfnrDCaSyJNtm42Few2Uz4V70eqOu9pOqEcVFT0iGbUZeVPFDxDwFeN0CFo7QEiBABJvWAymAChjbE0iBbB0P6CUhmkRT9pDCvjDn32J/+XuTjyKhwUA0O7f4vUvfom/ff0GWFep82NI+m0DWtAocOiRtZcURQrkiIu1RvzRT26V8Y2fZauQH7+6v52lmerk2DyU2i8sgYUOWT21LGmDkbpvKTSWpulmhPj+dWHq3mPdm8yMwoQ4fNLP9SiEWSKNMUaUnJFrBafO4qhACrKZEeZJ70UWcBr4kNQzitLXwE1yztMyS+1IE6O5tYZWCh4fzvjk4w/wqNDTMUZJXyQBS6IgChCpIDRENJuMe+CIcDhIH6wYAtLxiNPNSVaGJD3FC3aGvTJ5uW4FRIRL3tCKCMO8bmgtIqXJlZ4xtz/ogjutsqU6q8PFnzAuMwPEKI8J734x4+a3HsDMOG/F00iWZRKjuFXcffSJ1IFWRowLHjMBlbHk1zjcXNQEvjKKWDy5gYIDj4ihi64YYG807Q2lTrzMLEhzg4l2bQzuenM2Yxn7FEd5gkUqJdJnfPzl6/oAXV9XykokcQBdOfxqs9rt5/diwNPzvX6XLZOh4emrn+IXP/p/NB1tA1jBIlqTXkON9hMwBZMkp4Uo4HRzA6aAyoS8rZij8JP5IOmFOCbNeuiQ6ilG5FaEDke2oWe2tooYJMXV5IQY1qNy0xdX6NOUbqF4k9ClEr54nPB7n8nZCOrZkHR6Bipj3fZRBlvf0Vizf//o22d88Tjj9ePAO6422SNlg9MIuKpZUQWTyZoh28kbnotrGlajwPTLJul8xNDsmL7XlpLI+rnOSqs73R4fz3j79mtcztKjLpE590nr8hoiwaNvAT2DhZukrDZ1FFpGil8hSAsQnQPHXprQlRwCWIBtuBav6U4p4rAIovOkJRkhRu39Nta6dPqU7Tcjbjx5Jl8sKiuRPLChQMqeOEz7jt4bmOOwyZYBxA54ZSnBXWHvxn6zs9ZMfwnDe6b/9A0WJwKczpsiIhqEfW0FtbACmkXMyyStUwzUh3QOSkfSi4zxdDnj8nAWYJFcOxCXyTZ1vD2PqgFd7pL7VAjQfnyaXlktta+JMyFEB+vxB+nZvOaJBAbHKHgKeiZaq2hWjhS683UkHRvgWK/mzmJSHcLTrs1Yk5Y4vQestEmScxIGBwhpWVF/LoW+RhZhDyytc3ardn1gyYwz+YMGsB04XyEYlgO4n9VnxvLf4/pGGG12WWhX8oMVvj10gd7nd70gWnM02iVWdKOCx4EP+IqkghkMBJAs7niNer79nc2DwACaIj+R1h6hewAYmpo1eOMqFFUPYtEzKWaeGiCsHk8Ye3+SyFfeMjgGxNpQ3mWU5SLpdwyEWsBRwSEYyKVimRIaM7J6a2S8e4H1//cKMYgSGTQPvwr8Kmr1fm/E4tWMgVC1gJdDABoQWh3ajUh0yoRfIN6tMyDraXU1dnC8lx0A6d0htWUAPNxuIn00+nwjbf7Yv0S6b42l2DVREK8NkRsg1QSn8kxDwBShKUwuoonwgTDyyoDIa4nyNNWyai14umz45RePwOkRaA3/+k9X/NP/7Du4PR4BAA/nM/7k736Gv339FpfaBJWSG9jyQ5nd6IhuO4u3h4jAtODudkI63IFDwL/+jwFfvpVIckqy7iyV9l3BsOadNIB8uDYoi2YR6dAYRRUG6KddnDAjWcSJG5i7y5rUiGVo1A8AEbsdIrZzV76XacYUjX51j7UGz9AkWHQzaR7LkiI5tYYx6YtIUpEFPlhJxox5+4DRBQKiMv8QtH4NJKnYOrZiFfK14vXXb9WDqKi0qlDO84yb02ycCJe14PLwJMAOejaMZgEghoS8bginI5bDhPm4gCSs2gUWS61FGIrmGQFhyl5feqGMqgUBZZPeWdM8IVByQeGqrwpp659kuhZxE9qKGvVyh4UKHjCeXlfkdcLtd85CA8x4dXuHwsBlXXG7TLg5HUBxxmkOqK3go9sbLPMRH338Hay0IPOeN/nFouR4PZFttK6lqlhuRomyOXx58GyOCp7chnt9m0bj7PfdEMwKGr+r9xMI9r16sn/e+PP6Ls+NPa6DcegGI3Sf+xyujTp75s7BxYzzZcVP/u7HePv5z1EqI6UJCfB6FSjgUhzAW+x+knI1Y1lmMEWU9QK0iqhKXkDTtGPC9tVbfPBb30OGwP632qQXZuu9k5hF4ZTonypVGkUaQVz2TnebpxwzjW8jBOAwi1PyQCsOdw3/3Q8vKCsjThKB6C1cRKhEkvPa3NGj8whBamQouOJ4mBqmgL2iPqy3fTsAXvBp94xgRakbp9GG7aNuVOlLYqN1qHJqDetlA6UgezS8Z+NmlnrAljOgkRQznFkVw/XpjPXp7BGHaUrC81VmCbR5RIPIa2o2O0Ve5F7zRCRREfMZQRXeUeEmlnTCqmBjAnDREBigJCAih3nGYZkRU5CIbIjdQFCDqjtKVHn29R9pXg1WyeF0PcKNe6AkGUafAAAgAElEQVQ7+wcNmVTwC69m7CICYNkrdTw4lTQghHFXO/1U1YOsBr/yPjbDLK2Hqp9d4bPSammTVhsVQAyY5gmH+SQ1pyEq6upIX/Ks1qS+f90yzk8XrOeLGGqDXjr40n293nf5+TO1wn5llqhokfYPNMiqAEhf32E1dk+6oldSWc/M4FDARZCHofpiRxs32SOyMfgZ1KBIFPsgJEvVtoi8Au5YGr3LcnMkvTDvwT3kkVp3hJLv97MiK/Oy+mz3dOr8ntVyEcXqvevfb9tlxa+7vhlGG5F3WwfgxOFaPNmCBVh9iBxaGohyf+0iLajDgbf8Uj1Ela/uMT5QmcigGHRvC4+/Aix92nxnjU/UhsrZGUapBTklQeeqcjC3wI5YaIwrATvGT2CQ9h1rDNB5E09/ziANoRf1xM0pYs3al0UNLJ+dKtK2RrL8Ly/iLk9Yc4qljiZoWkPEPE9Ow5aqWmsTzj4g/zQ0BwaBrmWt8j418/x1hi38woqFR2HeCTtoDrukbaGnpBGMO7rS9dIM/ZZaWwWrKWSgqYJBKvANLIU1fY65oejnCJAayybzixb5sgairixA10LqkZgZ/+5Ht/iX/+gRj+cVP23Az9/+JT4IskIrBTwCyFpwHNRwcb9CqaAk3iCuMr4YCVNMeKg3eFcP+OrxgL/46aeoYDw+fY3KRWbOjNCaggUK06RAirx4xWA0FEWBwLUNkPfw9kKNyI1ekFSBJavjVG8Zhb6R5M6U0GvBRzQh3bHGDZenC3Iu3mdPlpvdeJIzDU8XobyhUOhMU+mgkDXOZYkKN6EhHtKIWfobAGTcxmR4lPOXMyo3pGXBFAtmSPoFIDV0tVRM8yznrlSkGJDiZESJVEUpqKy1uf5s7RGTpM8iEWGaZq1J0ygtGliIQIAVBmHSAERKWJO09VhikPqVok3sa0O+bGhTkzSQIHWyrF4UInYk0p0xpHKs6z3kirAodYynNwTQjJtvb1p7kRHijFe3d5gi4+n+HabjEaf5DjFOaApGs/LvYG2fdEMRA19WsTnyJiVV/8ujFma0oPOPneI0UNX4inEFATWxu+3TrvdC9Pr3UciSG1ndiJKfPaXrNwtkk1vGe7sIHNaG+zNfumOtBU9Pj3j45V/h3V/8IUptSHFCitQVHWbPQBE8CHLFP6SE480RU1S497IhxYDChCZeHgUIUKUyaO0Xi0K1rgXgsyAXny8OxNQ0VbC1im3b0GoGhcm1kL3BPCQTsZxLZuA7dxteHQr+8XfuJXLWtL/pky7UAtHsWt5tmYEhXDsHxLAkiW4TK3KdvwmKqWvAMPp3VQ2WtigyUNYjxCiOKuX9ZN97wQC0mnmGlBp0OmgI7uiSe4E0ZbE1PDw8uMNXrGFJ3w8EFI1GJeOrUdKDoVGTQFb/zogwBGB1g7ABG0mUW3g6BqRAEXj6SASLhKn8ro2RS8a2ZRBJq4Wb2yOWeUYMwBSjZoaoIRgs9Xqvz/Wz9LIyO9azmiEGwJXnrix3nc1Pi9847A1zLcXo0bOqDgfgEE7PQE6apqEKrDv7EA1J1FopVW0ILk4KdWDEiHk54Hg6CRqi1jv2/RcaqK14zV+tFVsu2NaM7XKRHmYNzifsspTXnX7qq6Wv7afiZVWke8wk84jK/+n6Dk63SktkUdZu0NqKuypNpCm0oizVGECqT1hz+MisYIDa15a5nxuxrjzqKIb6VZ2ojZKGlFoDrMHzz3VDt/Nsr1/W3hgd6K/vsSAXkzqj2XEYbP19T1TlEd1J5cHV2o/ZHBQauP36lMlvhNEWAuHm7igKFElBaZqi9qmxhR7zfjuFxZQENr8BlnfbvS0vWbeWrrEnW7fwX2QQxhhw5UG4uobd6HTGPXqhJmfZClblfFGNNUHsEYYWg8HY9rS2QHBAFE/nIoCjKHFUJcLDrSFrVEZC2vLkFANKbSDlPJJrPxCv/k0vvHa1GLYQkOhT9yYQST1DTFHtAoW9byYM+wGpVoeoe2UHm83qYqtAYfUckerSvXdR41G916myMHQ76F3Hu1bdOgNvdriHg27XrpKKOvAJAN8TZ0xsO27hcatuEIMoN2Nilqopn4+BsNWG/HRGJGCFAEmMCIj2+cos6VvcBNgji5EVAnnNFQXCn/3qDn/3cId5irg5kY+SyNKpoAXrZsAHsDa43O04+X+yLh5t0ZeY1dBlVGOeDHDoiIkMQZm01huBIWk/41a84DhglrrM7SLAFnb8xhPYFdm+pTVNAsZRFXlxENIJrAiXsh6RJMo90oXIepmP0IDcOsWIAkZoghYaVRkShZWAlBwg4bAcsIlEB1sBPViMJYb2IhpSWECY5gRKSXoIEoFo8EQDHUbc6a3Toihvaoyx5egnpBBQW0Uulo0gvGiaxJustfjqoRcFtLl6wwPLG/2S9rfsZ2Hg7VcJW2GE72+4LAuOtweEwNi2VfowtYrjHHE6fYB5XmR9a5Ua1iYNXluTNZ3S5IYcc0/Z6amwnf90OtAaDPe8+jtu1Nnf/VzCjTVfUyj/4JeSNq+vKyOOr1/rwnsnV8wBxPs5yFvk3+u6qNCX1YDZaNvueZayScjbBe/evsGbv/wjMGtzYq6IcRZHRAjIecN6PuNyEXAAB9ggq3klnJ/OIG6Yplmj4EEjK1XS4mIEus6uKxiBdkHNEZdVgEkOywGXpzNKrTieDjidTsjnFSU3pEmcKIxR8RwVKWU7U0QrFf/kW1/iMDPKNsw8BOEvw5qbtWeyfls35PxyiYDtkUToeq82TEna4RwOokTWKqizACzBe6QRSS80VVYzTpTQbEiGzltKQakFLWdxxFzVn7cQELlBellJtKrFhAhGjFGBmcQpa+UbTRFVg3iw4Iqz7lEAJOsFkqbOJPIkKBMw2RaH+nJJEfOF8npjZjHYjI8Ks9ZMoiLoj8sy44MP7nBzc9D69QHky9Mbyfe461+ysvszr0MgeP0zD0aeXbs/x7M1Kuf2OgNQZ0DTiHAtBduWsW4CS19yxuF0g3k+AmRoqPL9kCT6VDgoSFtFqQU9qgyAKyhEpBgQ44IYh3Q9NvpRJ7XqSZI6KLpTKRV527DlirJtIjdeQDPqa/eiKO2feeH1MLxhWsvY485oyOSN7wkFr1v3tXenxpUeAd9gkW3RonaqkBCQqpwQS9lv1NBM/pGsT6AO+W99TF1ncYvfdEoT4OSPd1oY9dzxF93bNCXc3B5xuTDWp5cXTsYlRr2lFgOdPgC40+bXmQ3Oe3/D5+z6RhhtzOKhYXRvvyOWMWAZwNdXCBHzsmA5HYXgtbjVa11YwAfYw/4YDLZhYXWlxEbhFxfOwEZU1EMYz2jkdCXc9fFrAwGuBskfrYOe2Mc84kaaN0z9NempFpCCemYQQFE9vMg7xs/MbqhNUeDO92vO+/Hrz2ZRp3FzgB08q03B1MfxMPTcZF0rkkLWwCZE5JrUu1CLeLPQrO7EjAuNAJj8BYEDI7r4gRqF3UsU2NJhroqHuXvhZcQW9eq7AohhKJWUFlkdlC3R8Jy+2rhnwxIyC3JgALlC2oi0ftxwzIApinBvTMiVEUlSPCzt3uUKA9D0rdIawlY1qgKkSZSmoB4s8c7LDf7x98748sd3OlfrmiaM1pwZRJZ2BJin7BlvUm/WLmt4ICUrJgaggCLigSt+HlRhUAW1BUKyNWxNcvxHD9nuMZLbfzgcsOWKw2Iu+XF4/RuVOyJd1GL2pnNgCNoku/NgVIr1yaR7x9ilVdrRaXq2pxhB3FBZeFWMkjIZYtCms1JYXxUIwKK08oywG/M4WyKJBrx7eIdPPvrYAVierQ11D2Y/x2J4hSSIkQ2ECqmvS8sk/a1YjGuy6Htgv6t4O7s8I1vnMEZzOj8TmpFYZAgRuRQ8fh1x+uwJTPeSckUBhzliXTckJmy5YcoXpJhEKcVPUfm3sOZb/OqL1zgcF7y6u4ODmvqzCOCr9iXKPzzqp0bx87qv9/ythtnzz3X+73v2gux56eL3fq5H/G3sAHBtsI2vuVQhEoXQ/t6N5hr4RK40LXj16hXmb38bJT/hcs563wAQo5SMbSviTEgRsQlgCQC0WlAykPMGag2n40FljaTdRjAqRcRkSpjR85CWxEDNG2JMiPOM080RXAvyY0EM0YF2LK1PhbLzaF8rYaggkhq5UiWLwzFT7atgGEJjbYzMvEOAZkD7QL3/qqVAeojyAK5BQIiY58X3gVQBLE0g7//Zf/NLUCyIFPAXf/kx3ryWeuRai6DXsjhBgqWCghyWfF2lx6rUz/QoRQO6IqiOH3eOhYA0JQdYUfMGZMBOJreCps0DuwbhwpvhvYGZFXE2CDtwKgpW/2P3sOf4LIYTA1nrKWImbbkCIMTkoDRBQ3M00OzoH7WoiaOBDGdlzAjaOVUtFZEGgfkeg2X8jEfCKmPbLljXDet68QbTNRdPrwUDaT5gyxtSlRqynIvoZi2LU2rLDgwyTTNCiO74kOEGc6kAMMOsiKOsSc0016KOwoiaC7Ztw7pmlFw0nf/9POjaWPOl2Kt2LjeCygDfg92H5LKyFHEYsAdQmuo2hocsdEqDc1u/DwsyyP5FUvRoAQGQIIMqbo3EoHejDkLnpTUBhNJBmi4cYkCKUctXLEK5T/EE4EadOSNeIg2rk2X7rur5aZpwezoAZR3qCAGjy3268j7YcX3x8L9ZD8AL+xR4R8rvu74RRhuYUbYMQDa1bEKs9p7VxZBO2VTyECM++OBW8oiZsVUh8FYLmoaTrbs62PpHNQfJaINx15Vkg2i/Nt664DUP6Qh8YteYSys/lXB1LsJk5D7yvwom/d0OJ1EDl+oHH3B2rLJSvJ4xJcRAupHszD3FgE09i7kOBbG6nmOKpDHD0eJ/6TIvo40Ghuw5GMSunppG7MrKTtN2g4hScsS+cUy1FBG0Bg3d2Mle7CiFZw1iKDSbnw7NjDe4P6erYM7o0fcBbAZN96C2BoTAPiY7+AKHLwZAQZDmoZreUC1dAdhHAnW5GEBh6XtDDEzRBwUA7mRwb94Ahw6SOkhwf50AJMs31yhDrhVLfML/+sOfIc3qLQ4R/+bPFnx1T9iaLxNqC57C6hxjUCDk0FQBYMFVfgjbWgMGMtNUyafGiK2hJIUgdgcBCYAJGrhlwGGYu/I99kMjIgEAGep9AGhNXEDTNCgiScdM04RaCi7ns0Tu0QuEeQdEsE9BEJWWUBDABh1YtBIhRfeUE6ymlVBbxbZubrSZEXX7wUlrEvapGwzsHSJ26kfDs1SUTY1sQs/r332nC9rusRaGH1Uwpii1ewGMkCYcIOvaak8vH2cv42RFRhv241oZcukmz22skRf9+Fd/fcJHP7wHt4ZlnkA4YJkSbm5vULYNX64bTseCj17d4Q5PuI1/hLKd8WH8GnfLHWL6Z6j8fQSYM2rgLUTIJePduzeIacLNSeDR3z7c4+Gy4buffQsz8TM+Zr9bw2nhdWNk4/08r+/6bzbcrtPN9x7U4T3lD53r7580KqrveZB/w2l7+DwRy5lPE+b5BjWfcSnSOqJsK87rBjGyAkJYUCMDJifRpDEvNxzmWdq/AFAVDA1B3AGGlKYZEabKW69EtIbDYZbMmTR5+4lpSqLQhggE/alcMpC1CRFislVndcj+j//gHhNllPUl+SyX1PsIJKsZbCBBZS2loJT2/EsQuS/4QDy+qGdM9y1IfWvNGb/7w1/i+z94wjQVoBYcb2/x8Ue/RKnAH/zB76BVjWLzy8Z5XCZBZF7FODb+wrrSSwpwlke2AyqjWFAEK1dwzkAQ+yWQAoq0KhqSGsDim2EIGII6bUi4eaIg/Eznar0dmZqjZ0u+gjpdSdr5AMrTIXI7ThOmKP1mQ4o4qTgxOeUozFeK6n4TDEDEKfnqnBrs+8DBXMtlN0rGc2QPrAxwI4kwXy44X87SNywXtGrgbs1P5OiqqqXg/v6dlLq0jEoRU4hY5gUpJTfYXDcZyEd+anugVjyw0BqDFUW3MaG0ipI3nJ827aHGXXXSq2l2yvt0NN59YTi1pBYPLJ3zSpbqvXmIMjclSFlC60U83lm+aXJD5iE0avvC6HoTqHd+DRQEQbyyI/UCARwbYCnBQenM8zZJgNdCkChdDOKYGRSrYMBo1usREogxZ6RioEnIhdn57MA5JY2YAjhMWtfJfSNHZW64iNidoe+7SB2Mxo+elS2Zl4bs1L3/+kYYbQxJo/D0jJBwuaw4HJYulrSmStZPEnhqEW/V5fwEAAgpYZ5nxHD0vOmmXsSq4A/crBmhhcPlsIrHQyNzmlZlhCxjhCtlve5Kfh/bFTxn0HsrPIQeNu44ipbCwP6s7sbqB2mnunEA54a8Sq+cFAIipE4oEaOszZ+7U0+vFIJRsRjHaVG63T7Voa8GRnXDFMlhHeTm/RPDvT3aSGYgyRqYUgWQFM0r8p+lDYgRLgZ5q5L/XNQYN2+LeLFCh3fVH7t6xL4UcIXHmDu0PkijbtYLK3iNyXDEQ8AcxZgpzGIUNBGcVVNbDIlLwAF0bETaxLHhf/7dN0ikXuL63BssawIt4pVBx0FNYoILYBOMBHF8EMRrXomQA+G//+2ASwb+zf97h7VJj7hlnhFTVJhsXK0RwYoaYtcT3UBz+gkBiRklaq0M911OVdI43Y1LQG4NMzMOWp+h+Lp6DlmL2W0E3L2MosENA5HXZwJWBlrVWhkGlmVRT3dTuq1AiIipF9ePhrvwTEaHKtSnB7K47t5pABEqZStYWRoUx0C4++BG0CtbQ0xJZIoyaWfY5nFsnfYBuJE3GrFX8lVGonJqjEp4uq2eKavvi4GQUsKWC2JMKGVDr7XSPVbZdJ3QYkah8bXWLL1prDdirfuQ75Yc8PYnN4g/eEIIAU9PGyhVZJxxmAPmANw/RByWIy6XJ4SY8fjuHktqAK9o5Stw/C5amLVuT1deH3jZCt49rgj8hIU3LKHitD6gHT9BGhSnl+p1X1Z29orhtWffOPIV53BF4dnevOD4crCbK/7h3xnHcvWsUd70+/UxyW175JxZok21CJLovBylmfFWkNcVRNKT7Xy+oG1FazaDIvaJIxM143A6YllmBx7ZTZYiIld1gvZIr9EU63aFECVrhsQ7LracJhEGkTESRdTIh/JINXN3hgxAuLQJr6IgMTbej8nXp7GgOzN2NWTTknCsCx4eLy/vAQ/rOL447JLMreJ3vv8F/sHvvsHhsKC1iK015C2DYkUIwD//5z/Fv/2D7/k3Yz8sXXuE8ATSqD3qvh8Y0iT9O90ekQhdq1WanatCWUuV1EnSljQsSiexZKVUiEIZ1XtkdXAM+U6EZL1AlcoQAihJg+aUBAFW0tJoqBcTPS1EM/x7lIMAHA7Wp1IzhPS4AF2+C72aDDHFfNyRgOegQAPIxw5SnDopqBIuNePiBJe6soKnywWP7+6xXrLLkdHQsRqqpsZmjKFHC0PAPM9I6fZZ/RkAtDY4MZRuJJOkoDbRN7k2EFethWsolZHLhvVSBGjuBX6yWxGfsqVcj4tmzzRjGXujB/2MCAnK4bII9Whg9vvJXomBo6fQvjfosXZeLc3W5JdxsoaIxupcxRCjDdHB6dCkBYWIPZbyHsv8GfRYKx9y3Zb6fEoRgWo9IFlTTBnA6Q5Y4tL1+OHnjo+40Qmczxd8/vnnO53Iv0vSHqjUujPY1J9r5ZG+BqNrLoDdITPSkYEt7dOanl/fCKNNFlp+IWK0uuEXP/85fvDDH+j7Ft1y7icL1xpOpxNef/Ua9w8PUh9mnh1liCEGRM2DndMsAuYAQBVDNpSpJiAFgsi0oVZVRqrAE7fG3YBiMQTNixaHfiZ2oMbJieCVv7peThAm1pUJ+V1SWPxQDt6iZ5xieK+oATN0t5BaOEg9EQEOAhggRkDga2WkX9cGGwCvh/Phq7bnxE/DQeDxc8NYyVVU/5BAZzNIEYD6GTJlltRwIU0NUQMuZ9Rc+6KSpMGxaQD63d7LS2++c4fpD1c0LJ7br6qMgJwOVf6CUTWNRBpuy62lTkaL0J2xstcnmjICQ0DEyCyfX2bQRVt/dW5UAGn8mhaPm3e4Gxg6gtYQW8Y/+S7h//yppBQzScSv5bKHxDaGz9zja7ZItrakHkxuyL7mSgRE8Ii4DqJxQ2Lxtj49PKI0mVMDQUM2LkRcwaWAVgrgtYzAqw9f4atf/QpmrCgOGIrWADxuGcsq/X/i0OyVitQs+HLFhI6SKTGENhAgRwMAgTNZl0lmVIWAlIIDutQqyG+sfet6yqnSAEF5lL3UN8jSOYTZj8LTR2ycr78yKEGg3hMQZP1pWKG0AxAt8kd7BWnYNtnmrhDvn9bHIkanKbnCd8GS4sxg5NLATyvagREwgc8PmOcPcffxJ2BmXJ7u8fXrhuX0AbhkXGpGY+Du8A41FDCWjqbnLgrg5nDA/K1PUUrBJ9MZSwiot9/CG74buiDQMA/sfn9uuD2PzI3X80/L/0R4MWXJnDv2LPc07zy6ux189kSL0Nvlj9F7DHg+u88an4uBwNb2Im96rjO4iZNzWy/qYOJdkb9BcB8PUncWtNjfoN/7CJXReWQCSJGkBb0p06wGwAC9zYLwIPRCpI4NkwOdpwh/VPmILgf/+Gd3+K++lfFffPwgIFZVnLEdEZK60Ud7XR4AYrK2J+/ntfYsY2d2X0AiLsfbDf/wH34FUEApGUXXMa/SJ7WWgvNatdxDznFjchS8BijyK4HShFjZyxpsH29ub/H0xRf+GoNRmRBaRd2ypIBuYgxwbZiSodwFV5w7ncpzmXp/OGY1wlT3oBilDyYB8zQhTAIWpKkmeqdRrxFiqR4h5J1YNS7FDCynIybIc4LJZv3bdAIDsbFv+zNs9u89u0p9Si/buqGCJVNlkCUMdcDXhlZEeBtvuUYLR4w4LhOmecbhdMTxuCDF5M4qm1evfTR9QFKQ2Y0FLdVRsDUBJWnIpaLUilwkFbO9QIvvm283MMd1HJZr/Fvv06qOuT1PvXu/yiHPeIknMsjTdnfv+lbw0A9N74OezWXtiaSfoNyPCKha+jKWnohM6TJG6KxJyuhIG9xRYcfMMSspCmp8j7Mb13k3bzs72nKMiYb59Iw5yWYjxKrZPDvnFZ6xdQNhY9aQ09WjRVYQJOz4fv4EfFOMNnSdvnsQhoGromGbbO8yATVXRdNZuwFEln4Xeo2cE41C/BrYhyk0ISgqTQRmhcZV5JPSqgMMWISu1Sb/moVhq6a1tWcb8ryGrs/Pfu/GWx0Oi6U/yQKRGX9u5NH+lNJVFA2i0BawGldqBBEUtUcFaKtqyImCGV84rAA06kiuhOB6n4a/rlN/bHz7T3ZN8Woa/ROkIX018giQ/lFBDnGsAmLQv2sCdzjAdlPjIy9xK32fxoc784TXbfEAdEBQecttl+MsSFL07OgRJComyyfjK7mAw8uNK8fLHAR2QIRxQuGim6aHth6tI/IdGMmkVRG2ovAwKlUETKIQar2X7a81vrQqgzE5kiERvN1a2t9q8Upri752RB2br2wbtnWVcVJAmicEEi/y9VKkecIy96d/67NP8dWvfuWG8bj2zA3buuFcG45LwjGd4JiTiYAWNErYKdWHDmXMw74zS3pQ0/EboE7ORXohNqBtEoGylgylFlCT5t5j9MrYvthUtiEsii6pwnw64YMP7nb77nWVQD9773G32KsCYiSiTgxFk6NjKriOSc9YG+et94peM2BOCaUrhp+Z4GmpGcwBLSdsDzPoLmNbC45zEmWdG7b1go8/+Qx5mXE+P4KZ8LSu2M5nvPrwIxz5O2A+dr7HQt/G20IgzPOCaZrxdV2QuOEYIqj17AentV0qqi73kCLpazby0+HnuAfueDMeexUUv87A2O3JwJfJ/7cVtlNqajZ2PwdVwVmS2EujQj3Or+JyWfHmx/8Rbz7/Fc7v3mErBTkXrJdVskhUkQRB07psoSuOhwMOxyPilFyG4mpOFg+kEIepaGKU1nyZ8SaNzeVnbdKqQvizuu12DjU4janmrfy2Gxh/8stXeCpHfPt0wQ8/OquHXRRkaXExrDAD1Iazw3DUw/eKAJMXz94n1FKR1xm/+NVn+J3ffgtmRmxAQwWlBC4N85Rw/2bFuq5Sj8rQLIIu6Eida9PNAgqE7bH0fSTChx99hNdffSl6hiE4Erru0Zrw1iCo243ZpaNkhqjzklS5HgSA8eI4RUzzBIqT1LOFiMqShlq3jK1k7VHZDR+nA7a6LDjKous4DHUGADFN+OSwOKn3NeD9EXBdwq5uNLhh1OB9YPtiWbSM0Ljisq4S3YPSD6wkRnnIcIZ7UEj47zwnHA4LlsOCeVkwORiUyJTiuh27o9+NP2ZvIWDyoTZx9tfSUHJFrhU1VxQ7e+81RF+6BqwAhnUkcJo1GaGVE+5wrsye1jjq135X7udlP5a/z5jsHuxbKN/sqdJdZrU9DdoeUR9XcKEj32lmALuu3BS3glHr2ZGWDbQvTaS8hnp0wgzq9xhBI0fz/6kvoK+Cj1vjcDbZXGUmhGENOmZA/84LlymPgRASAxwBktTfZ46Eq+ubYbSZsqyr1v2q/QOSzztG2+Sy9BxrsO06N/ccV4eYVVesNaW05wrQR3BEmmDQ4UYABKQ5gZBg7SWZGZUVirVIlKKUilaKejd6qNYUwdE7cm3IjdcYou6HbFQ0rnKb9ac1HFQw8Z0Cw8Pn+qEmdHHJQG09lQPiXZ1U0Y5kQCwDw+Erghz1d/DAWfqr+zkb51Tjo9EYzd/dy7Zds8rgy2dzc+YuB2ErFevDkyjOKtxC6qAQO2bJvHutMaS3XutRUoNcJlsbthRk0u4GXbFxQ3xHw+rxoqs1cE7xMi3sLhOaqqyJABalxvLka614yQD0ejJuviYGSfxUNlg8f9KG4kHThYFeVAwiGPLLxBDk0qDPtOcwvNB+lBChijg1XVdQDS3K3ZAvF5RSUVlTecYzTiS9cEL0CINtv9HmCkmPhEEBgwDt+2i3ilT2aFIAACAASURBVEFqLioX6b1DGQKtYEFCU9qvhJs9S2tjc6nYLis2BVEhIiAqaJD+nZsA8Iz3gEYexGgTNSsEmV9rQIWANBwOhx0PsP9Hhf86ZY6oRzAIQNAoPpQP2jgtqg3AbEVYauVorJEdMOpCVt4bacvGIs1yAwFoG0qLQJmxLIwtV2znDYdXMwI3rE9P+Dx/jqfLE/K24rjMyAx8+um38erVhwgxav3jnn/5PlxtzNoaqM2+Ol1RwHAeu/fVv2rKrN7fjdbdmo4KTVdQdpLJDPmr1+z+tbYRMR77epmBz9u6X71jY7XXGjfcXy5orWJmcWjEMIFZeilxK3jzN/8en//lf8B6fkQuGefzilYKqFakGHHecm9xEKKPb9LebCkJkAIrwi8pKBggdCXrawqR7FUpDcvhgBgJT4/3DpMt9CXnsORi9p07SYzf7yQ+X60G9fVoDPzNVwf87HXEn39+AgAcp4r/6ffeYds2bFXKH6B18B0JldzQtNi7bHcbjAPdz4GGnOcSkOYZl0vG5z8P+J3fBlKaME0R21qQizSSD8uE2w8z/vPf+wJ//aNvCzCTGiljGn5TgyIrvw52zlhpNwRwkT/GsoGYBEFS0hKFl3hqJKAtPLR2R4S+t9OJKWCKERwFMj2lhEYBedtQLytq1QwidYTt5q9AYczi+BvTAHcXS8ZSAzBNk9A2mwQRju36He2/1zmtrb4ajBq1bCDNdiHVXAmhyTsxCPqxOS0J8Mg7Q2REGQwHhuzn6faI4zwjWa2lnt1apTXOzino0RyAWI00tWilbk0cdjlLXXJTecaNHQjOnC6/7hr1PENFHxfLz6ID40m7Jy8puErfvJZnMo4rPQy/oY5WvyM8UHWjoUZRnwQ51XbPYdRafuGtQUhSBK3+FQywpWA2iJMvAmSTYgMikblN04Q0zdoCQ85V44asjcr3YoIQpwhOBHcmoVPauFCSoSefczlIV7RqVwwgbefAqnmD+j5fr12/SdsRQmvGKwkIL9fcjtc3w2jTq282edYQA+DK0oi68W6xx+yUlzwJ7p2oY9jUoh39aUL7phIFR4jqId2wM+S8R0QAiAKWRZQGG0PT+rlaKqxvWTPCaoO3hrsH5aXrum/NPt2nz8EWr+kYpG+GYPz0uoznK61cGWYQNmYU0Yy85qZAIx1LAGLqRchjHZ/ezFSLLnz97sOzfPAqDMmFlU+Jrw6Ua5PUmQY6c7NUD8eMlE1AzlWUOgPtCPJ+StZeIShgBFSZhR5AGXUIwYutGUCpEi0IujfWOwg6R/a1HBbg2brv02eftoAP59/AxYe7sf4naH/Bz0OgIfXyJcVT93StM7YmaktTDSoGSC2E7w0JQ1ZDniloHTr7IAoAthonjSixCUxmJCgCowqWFoM3niWW3i40eMQIhHlKYngWaRZgy2fpvAA8zaNprZqhXPn6NKvL6GA7zhxZ+hqCGaw1dq2yz3nYIiR9vFVROLtVJxETIaWA0hhJGvkJEEsDqFacDjNuTkdMicAhIgXSInrCaZmRAqGU0uGrmcDWT8nWWcfe3Flwtaeu6joRSlNgjJ+FnjH5vVatB7Kzo9+zcyqKXzfkzJgj55n97PHgxiWS9iV1ioiVEUJCSow0FYR5QQgJh5s7oGVc7r/EthZMy4ySM9YY8Hh5xKfhYwAZgnbaFShZn/1ZMn61l459H6XAvKfmvO8+u+uF90bjzrys/vfVOXtmZDIPvEAXFq1Hk2xxnS88vx+jyzlRRANmIjyeL/j6/ACkA+5ub3BcJuTtgjd/+yf44s//EOenFefzBdu2Sd1TiNpcvdN5StHrQ6Z5kvrHSWqJQ5jAQ2XpS0u15YzW1HiJYlBY+nEpkr5naUkxECIqghoXgUgcCyHpE1iVN6sqYadbeX8/hrVG5It8r3LAH//0Fr//7TcAF2SuCLk6P2jcgFzce1+tV6M7ska5avrHtdxkX6fpcEAIPVV9XibEFLE+nVFKwZQCjidxgnlEXc+01AQ1vP3qKzGuUlJ0TjgyI3TcchaFv3KrGrnvmR6gnlJt/DIBaCT11DGKs9L6RpIOA0EQCh8vT57Z4Ijb7qiT3xtLex5H+nzPJfwlSBSzaZ2ogYrobcUhrDzD+hBwRXc8Ahb58qIgRzoWhEFmQq4F+ZzBreHmdEQISY1viURa42XT6BStDABhmiPmw4zjQQy1oH0vW2soWVIcBdiMgFZ1LBVNHQ/E1QGtGgvol8DyF0V6NOeGlQ50Jd746Kiremsg5bnWexa1R/f6+Xt5/RMRGoUeaevs3Z+92yvj7yAfx/Bp39HRWdTf84HvXE9CW10/H2WmLEgEai9NYAoCiNL0WX43LZVJjMgT4iRlSCU3oSu9e87FEWHdsc7k8s7nrdgC7g9Q/n19tgFISmwDmDbQC5aRf8cMTYKjtsrzWz9jVxepYwWQcpOmzn4K5E4hgMA1Pv/y1fWNMdrM8+bbNygzMZoyoYYI9gZb93DDPSHPL3u9h9ztskaTcvWibh1ZL8B1b7UstnRaD55iYn1sBIJdBCA5UwXAzeuGzIPCgzHnofbdvz52dmWuvz9MT2nSjoxV+mid1lWqkClh3aAaAtp6AFRNQQyEaT547V6pFecnKeg271R0bz4g/aUsbGzjtHo1E8rDoPWZwsCsvs1fNnvNCAJX2+fzDiQ56yGGvl46pjAoVSVXtHXTehBStD1x/7YmCg5DkBoFAESN/sBgDuBaERAs5upjI1gUY1C+1CDGe2jz3/3oFv/yv7xgzPx43zXwIy8iN6SK/nX1BOq8U4xY24T7dUYIAf/H377Cmhum1MP6Kcr+MYtS7wa01a6BYemeImvVeFYkwjEhwHK3C0SYCNIiY6qCuiheX3JksmL6B3WDwRRZSUGpKCrXXUgMtQrMDE4R2KTQ2dDrHEIY6IqCXhXS5J7i5EIAEBqpRiNXgs++Z2MFpBA5oqfENRBqKZjThHlWZ4DCP8eYJGJxuWA+LJjmGR7qkm0DwJjnhFqbn1dzaPTnDvQwNJj1e5Csm6yPjDMMqWpSy3oNvAHZQXOKqFJhW9FrEQDzmI92JRhy5sCYYkJIhO0+oZyB4wdiFGx5w+PjI9a8oSpYDK8ZecuIhxtMrxK+eP0a3w7/Abx8Cg6f7hC+hkc5/QWlLxmrRSNeEMfDfV4y4GwNOiVg976BZ3TghIFD2We6Hv2MN3fDT+iWDOUMqqjrOWz+fRk599v7XAIBh+WIZT6g1A/RasblcsabX/0S7778Bb76q/8bT+/ucd42lE2At1hrV0MISDFhniek44Kb0wnr+YJcxCAIUdpXSJuKgBZEJlG02hLyyFWrDSlGxFCxHE+S3sxw73u5rMCrD1R2ivH2re99D/OyiGFHhMPtCa09U+/g7j8jxGGtiQhzavjWafX9/hfffwtiASJgsPdxQinQ0L+uMTvP6PuiQCzm8B/5BvY0brTSqqRgxxRRuSCw1bZGZEW9nuYEcJN0uCoyVJD8BG1YUtsV5Ijh6aqKMKQ5cEGQJYc2IfvSCavhU8MkiuNO5PWMoL0tTQaXKoAplk7qNMrQOixN7WOrEWova6DoxqLQlPAVEGOrjJU3tcXIz4OhV7q6TNzP3aBrQVtxSOplA7RPI7eG+4cnbOcLcisohTHNM47HAwIECCm6Hii1fX2lxIA8HBIOi6See6pd2UCtOl0zCJErmEQHsMyIwBINyrli3aR5eMmKTt46NoHppmUw1pyEeP/TdaZAPXCg6gPv9toI8Dl/s0+kqMBYjXv0+oW9u0Y8Hw3I/p29kSiALvv7NBg9U1fQVMcJ6K8Zvw3cMz9k3IOhFoKWcnWDl5TX1CL6Wi3iXKBoMm2f+SEqZsDhuCCGgLxlXC6r8Iy0bxfjmSa6nrbWFAJiSJhiQwvoodphH8YdYG5Ik+K2N3a+Pq5xT2u91tNs7a/28z+V5tpiGA0F+1e0ZqjWciC6te0K8+C+GI2362cAPRr2665nqYxXxaKdb465uaO3REKl1kONFIDC5hlCwKTROk/bsUnqg2uznN7mdUjW20oidYZ2KSeuKVPpB7CPuSnIgxhS+qzhoIG7Iurec6iiYd8ZJ0+CYpW3PCymzVWJP143CA8O1zr29PADpAaUc4erg7Kf0bMNE0WCAU49uuIM1z0v7Id3NIhbg6fXxkDAIjWNMSVMy6yf6ZFRTyHRouPa2MFQxuQnG700DJa0r/WyoefiD3vwG67dFtj4d8hQ8lOeJQpEA+HPfnWD+23GL95J/yDx3Ept0ATeRXCAnuZJIE1x0r/bcKZUwYistRbcp9BaF5ZjI3K3n0bmNSjQblj30JO/lyjIGYz2DCCvmwXxdoQh+g4hXLE2HsaYiLBuGTQRmBeMke9Sini0mT0lVnQOlrPAsp+NI0KMOBwWPF1W5MuKGKWYekoJzCxRDm16D2wASKITJUsKFwxqwQYoUN6+VrZQRM/2yeel/7wy6coxoLfdfdr5A9k67xdSWImkWCdIdMfoeox0A7pnU9LaGn0tRHArIAgS23FKaK3hzZuvQbCGwA2MimmKaDXj8d0bfHL4DNvlCSn8OWq6QwjLzpnhxhKxIrIymjbyJer05gruCxyjjfR3tWbm8ezzlE/VVgY6thTXbqyNct0MrVzyAGAwXH7cn9c69M9ej3HYGx4/D1y2Da9/8hd4/aN/j4d3b3B5OgsSndZbW7pYTBHL8YBlnnE4LpgOBxCCtoDI/nwiLR+IQKjKk5smDBIDtfT5KpDS7e1JlPYGBFZIcwoKXV5RKntARZpcb8jrhhaiyqWwm63LJOyOtu5Jw+9/+x1++PEFzGJQX1aJujPYZS8b31J6pUDIdaj5He5ZawWRRKZqVfAhc3Sy1S8R3KEbzKgCWA1FxIC4zAjTBBDhk1rx4aszfvYzAsWAwyw8QaDKk/aCM51FiGhbVzw8POJ0POpztf+V1S/uFBfRF+I0aV2+pn4m+b0ywKVga03QlkvxOm+Tly7PtNWD6RQvsxqjC6nVnZKi06akaWsRtTWUdRODn660/J0TQ/5jTRdn5bGtFdQsSIqbphmmlHB3muVzpXgrIDmzFv3rewNmN976MrHOjz0zw6LYwVNoqZfJgMAUXb8T/hgEdXXNeHp40jHoObTkiGu98UouyU8pv4mDjlRrlfRapWGrvRT1IAxzvDbc9rxl3zvsavd+jY6x15m7weDzcwTh8cmsqlp/5nU03GQNA1LLygofQgN/pUEe2bpdGWR2b0ZTtHe4YOsqECFOhDhPmKOA1cm99i2TQCbJjAv3ycoZUUe0Zh3c3t3h4eFBn7Bf0PlwREVwHXmUtc8d9NTPHbqePu6LRLr/E4q02cXN0gr0by1GFiXP6toAQDwKbMYAWAt+4cbbeF17LWzBxp/jZ39dKoC/ZQz96pJHiXQ2QbxL0QtChAKQgoHpWk1dlPorhYwPIXomOCAIdbVVcJHDbsLZjAj3rrKoXtyuCMgOHw9BactkGJRo8S5T/6ztDbMbn24EmWeuScG01wxCGE+IpDC6EafjjDhNIjQY4FYkXdGK1m2RR48nv0+YqGdDK9vN+0OQeiFL0WCd9PW+Mro3JGio2gW9PtcYLaB2A1uuvgi9UgoaJA2JTMAP/HVOAYd5wtoa1uENm2IIQMDzlgIjPdk+7BRyKFo+mzeJ1VtEWOaEf/s3H+CnX08aER6/tU99IGdsatg3dEh/kJcjODJeFToY6yaB57bnKLYLgBn9HJqzoZ9BMRJNCbaocmPCdr5IaqGmSJJGDchy1wdFTIZDyqyvFV2t42tN9io2MO/hw+8fV6A1zPOEwyxNgM3AlD3o9VFpmnDzwS0qS2QhMgNbRkqSqlLyhvX8hPkgLUhKZZRccToumE6S6uQoZnrfm5tb3NyccFm3/tz3s6K+7gRYzc7xKI4GRxk0byhMaQC40e4G3XeghrOuP8WAkALIItheXyOfDzHi7u4OKUVcHp8AbqAY0BAwzQtOR4nQ5CJF2zF0iPAA4DgnbA24XM746svXeHp8wu3NV1in7+DTz34bRJPzK+ENQ60oS1SjaQq0TfWlq0fHBrqHOhlsnSBNkR8fH4Fpxs286P0rvnz7DpGBjz78ADFOIEj0qbaCEKQg3ustmbGtK+IhonnGQafPqnRP7xnvdXrltTLmkX8iPD7c4+u/+ws8vLnH5fwkYByunApdU5DI0zQfcDgeYE7PLmuDn0UxSHodVGOAWnFQgGbyqFVN94HyRhYFTGfawDg/PiCkJP8AkAxN0WAB7OqixjRn449GtDCdB//tb32J3/4gI2fuNUZGw9aQyUdh9CzPvVzeD6veWtMm0EYcwo+gshSu1MoNkjpdp2nWPQuCEqlFabe3G25vz6BwwjxFSARJ21qnhLZl1VfknkwBuRQ8PT3idDyooQYFkmhAC5LSrSAmaZoQUwLHKA3LY0RrDXnbsNaMWhlcqrSeYUu13WfxiDPXeOTzWhrJEum6SyCAtOee1RdJpo18WoITndjttPnziDTKL/Ko1IaSN3Fu5Q25FI2qCG1xYxxujmiHCSkCcUqIZRLwF2YxaJQ4RH4EHVuX9Vyb8jPshGdvRxEcrEP9EyiQVH/Tqwx4pNWGmrM7Lex2BrPv60Z49hk70zEGHE4HLbFRa29lZC5d99LImyFLdn2U+kBV/ffzNvAe+86o317X5wLdPFO8PYyZCsw9YiS6eNtbbXpj1Zy0xg/OW4wMbNTkbUnkVQt2dIyKHntzw0eNZtO/WhEHy2gZS4ZH7wMomQLxGQjYeI1oA+NnBJG8oLaGxAlTmnB7e+tGG9CnL3OXMxd1kjsLg6+/YPvYda7WrnE4ntstL13fCKNtZLCW8tN1TB4gN/dKotPxIP16KhpgXpZOiuTCyT4rv/ecWP/kYDn/GvvtxcuMSkfeI3JYX2B/iIwpWm0QYOkaZsCR9HKhgJAIKUSAEuI0YT4cQCEORpUw6bpJX5JSWwdGUYRDQ7x8ZhwQXBFxZVGZhyUO+PpB+4ZNQIJ48hCFMdfa5D0bE3eBYOiElWckU4KZcbkUlHxxxDvx6FlaWYTVpcgtNf3ravAG6ihGmEXrOrqasTjb0HH6IXQjRgy1hsIBVNt1O+m+gSAQsdSDBUIuDcfjATc3C9at4OHtI0ounlpbWvVic1ZvjtPhwISfM/pBmWFtxaA1GSkGsNJM3OD59Lau//V3H/DLtx85HTd0AWOpHJL6qAKwqVIfgkdKyAxrQ5mztW2SRpMBh3QG0FNdxg0iwHqmBGJtiilX9jmaImpf75+R/mAdSv1vf/xjSdVt0j+uDN5hF5i1gGlCacLkdMt83gxgiuapCFK3p06IkjO2bcMjEdI84fZ0kF5GwZwYvUjfI+tEmOcJE2u0Fox8WYEt4/+j7s2fJEuS87DPPeK9zKyju2d6ZmdnscBosYAEA0EQpCSaLjPKTCaZ/leZJDP9JjNK1GGUSIEEIEIUAewusDM7uzvX9lWVme+ICNcP7h4RL6u6F/pFNnpjPVWVxzsiPDz8+PzzkgTx6S0IGbUVCaux06CPCjKNMYJiBOb1wThunBKXCeIK3dHAFWN3fQNJCYQZ05Sr0QmBsb6JTWGnG6lJIgGbHlfeuF3lQmWvv68QgzYvnieUpJ+XYkbolKqTz9GiyqvWAV5dHzCMEZQLXt1rPdDpGPDq1YDv//CPkctvAlCnyEQORM6it+B8OuGAGe8HwjeLwplCGBtcHVr35lHrTYDBnCERIKelCupxOeNHP/4xPvrgCQ4f/yYAfY4v/vrfYH/9FE+fHFQ6acC6TljXFYfDdTWqHLJW17idORtsaYtOokpQ0K97JmshUlLd2DmMm6ydXodwdX2D733vuyjPDrg/nvH6zWss04TT+QjJBSmvuL65hawJ46BNgH3+sxsNPse27wRS5yMDgCh9+bQkoCRdA6LvqQxv9xIpBUNk7IaIYRjBISBaTRWjaAYI6rgGWH25GPHFxmDZImb853u7M0qJ8F1AgEqY5JnSlJO2EiCyRiGkULjysA+mH94LVARWj55QEiGFgNPdfdNGRPjJjwlDHPD111d4c7fH02cT/t1/8CWI23r64ucH/M1fW687qF4kg93rOGVrqcAIUKZdd85/8fNfIK0rYgxG0CUorL0nh2EwGdL9OYmiDqaUakDKs2nK0SFwg7vAmzqXykQZLThcx5wbEoaCE3dVg0nv2QIUkTw71QW0LNBcBasKhgClYEoZ63rCPGlj62StG6Q0Aoka6DY7oF7enMSwy6CMGjSe11Rr8xTmP6NIgGTSwAAFg8w2+KLOc8FqTMowJ9bHz2apBgFhcuZyAhD4kSaa7sB2D17lCwBCbGgrf6ZhPygE2RzflLQ+bruJ+rne4og8YqRuArzS21D2GreAfH+v/hz+LO2K0n3GMlYC9OHZxz8t1QZ04pbOKNdvMGkgUaBtiPxc7nwSo29aKrBAd3VaPcPayqX8Gh7QUwgJV2dzq23UXl+XBfOq9t9AR3z11VdVFi7HPueEdS0IV9HGXxuI/y38rs2YAW1+NLP6bjKSb4XTpkdb6ASNiC/LisN+hCaww4UMu4Js3vjmXFLUU++iwpfXImpetwg6YgT7lLPZPDIJphf/VselB63f7b6ctx43dffdZ0lciQVqkEttW6ARdo66KfM4INCoVNhiMIIiSKKtCiTnFkEyp4oALClDZs2WKTmHCqrg4bMyEQID6yrVqCbS+kP/jrdIqIqM9D7dSPejiFLfOzRS6v9QDWI2titXeL6h+5gVoUZnzAwUzZZpn41Si9B9/P1Q5dQyhj7OkUMrIvf7qSIq9SVX6u4IrXYaDgysquhT0dYU0kenRH3K27HUh3WI6qW8PfybjGI+VC3FDEhiyLwiM6GAcTUW/Of/zkv8rz95huMaqjNeU/cigFCFKxS7Nyltziq8Wtqc9bczdhhFsk0nAw/CeAXWCoEEhVq2CnJprLXhVqdCcP3kpkImalsDU/6516Xmm5AHO0SdxG4rqr8Fr7fQbbwWFCuhS7Aa0wJZk5JlWGAgmr4RqAO9TBOQVzVa2Pq6eASVAzJnBGmwPSbr2YQmN+1grEV7RcKcWXhBP3S/qbJTv1E2G2BwuQhaa0JBI8/qMFgmlQklA9FRafJIcbZ18GYOlXiJmeE9CPv7VlEJChWJweZVs/6UEwDSDXFazVhhZBDe3B1Bw6ioAREcwmB1TEDkFQFvALy31Z+i4zhNMzDf4fn4EvvphPl8hTcp4vmTW4Swt80fNdvYVLtn0Ak5JxAx1nXG/ZvPNcO+/gmG45+j7N7DafcHwPh7gAiupv8O43iLofwXEP4Bcir41a8SptMLfPSdW1xdHZALIHhmzr/D7pqOcBgY+2v+SDWIpHfoBATrumKeFQZIY8LNTh1GZq+zLRh3I+arG1wPGkg7H+8Q9iOGw06zOZIQOOJcTJeLO3yCIhF5TdssdikozJA1o2R1BOZ5QlqTZswsc9jbq0SamdDgooBDxDAO2F9fWY2wG/UBkGxtQKAOIHsQQIVa/D0P5AB1bNw5W5elfucShhQCgRxKLejWkSCGgDW93XFziDxiMERFAWWvr9I5ZAbKLPizf3ljLuOMV78C8nyNP/i7LzEOGTkLXr68AoLWEaPuO1JtjqpPTSb6NewQTrYsd4gHxBjrxiUCy0rNyNmEyQLEArEMZJMthfNrM+dSWm8wNjhgsJ/wn9C9XTNVqmvDOGodE7WsbOBgNcQEyVtSNa9aDp1Wmc5nvHpzj2VeKiqoZDHiIwtYRyUK2Y0K+xzGAdGzeQTwELGP3oOSsK5LI1FxB5MOCCwQFpSitkDKCWWVavdsoKLue5gT4jaRy19JOgZkinccB6RV9bTPqWeO1Juget62RnzN275HDCJz/kLE3lo3lFzAJaPSZKO3Ff0CvueavKCtaQ/Q9oe/JiJtLQpwSYLnNm3vsKGJZbVP7NPQDBec/LE6u+RDWW9E7RF45SBTzV76vtPQJP2zVm8dzAIuVD+vUyXVfu/vzHujkn612oXdk8KtOP9OsfnTirxWolOKFzC0z/vPYRgwp1n1Evt8bu3SfuyciISwnae+XvXXOWzAt8pp64SRtPbn1auX2H30kerf0vUL6b7h89EMMDMsa41c9/lupKofYX/5gpRqkunG/jaHrQn2xfn7e/rbudyb87bz6B8P6aQTVrtxZ00ENQeu1aFxazbOBI5K88vECGPEzl4nexAmwrwsePPyFeZzizw/OgBkDJo86H4klr3L7nQRgjk9LM1BZnJnqz+ZKq4QAkq2Taf7gBK3AFgzFlqrsT8MEcNuaNFYU7C5bvQWVXQse3m4GHTstgpQ0KKuVB0S6r5z+QBiCh2YTmdM09xghAaDTSlvVFEIrW7pP/nhPYbQEH6P9flr9ZIwAhz9oxJ62Lm8NKTkjGnS7MaOCf/g+6/w2asDPn+9x5Idhulz1TYup5tuxcU6PYS+uLZlmurnGAC4Re6yWjnCVhfHDHCo8Mf6XB3bkmfTy8XY6suMOASjmu4nrzd47fOlwMGtTHbeuplR29zNCVGkfDtlDRKQbTSsGb2SC5Y11c8EDmAhzOcZKSksdbDvidEvl3VVcpNSKnyk5Eey3FXyCNPphNcvX+H6+vqB7KHWC5L7VO2r6D5qxAscIg4H1r+vBbMTgBSxdh20/W5nRNZovs0TxAqtfZsk17jUiB9yMuNdXVtdgwCReJtke/YMosFgzdoDMzBjLepISgEoHRHSn2KN/6itF2l2+M3NE3zy5ITj8QrDboendIV9OIB5aOPb7Rcud2q0JpQimOczkD/Dm9df4Otf/GNQEkhJKDnhxdcLXr9+hZurf47duMM5zcjniOnuz3E4/AjrnPDZjwMkf4UnccRBbjCfF5zl7yBDAApY19/F4XCFYRihtPe6QPs6Rt+xWo2OwnMAdUCur68gIljXbLTuYuQdmgE7H+/w1Re/QDi90sbuy6qBB1LmuxBHGwSCSDBD4z3bawAAIABJREFUzVgB84pkwSwKAV5xITmZjhNM04y8prreAwcUYhAtdWyr0Zy17QDZ9YLDJjdH21PI9o2KFjEkRrXVNrqWIUi6p0mxbMlDna6MbBEshELai1RMhx0OO8h5rqxzl8fGyBZtPSI2Xg4TlyyovaAoAFIQA+HrL5/i1fdnfPfjE87nAZ9+9jFi3LAn+WDp9+watcm16dTzecK6JlAMONzeKiOg9axLRZEz2cabheHpBTKHXKRD0ljmCKLsgjEIJJD2BYXCDSObswYtTdCMoCF/jDWSoCyXqZQawPHMFaw3VqbS6YRuHDsDmmPEMETteQsNuBVkQNS4dobT3X6PIdp1iIx5uzTCk+I1rbC+Xd7btvWP89Y3dT/dOGdmT1ogwFEgUoO7/sFm6D15eg0YLBVpxf3rOyTrzQsAwQjosu+n9fl728Hk3+Wh1gBBIfslW+Z9+50+oHN5ENB6n0r7ztuOOETEQTuXSkraLqurYydynX3xRWkwbbF713ltNh8Z62fNVPZ7iNvl3R6vMyZ+ehuPYlw8piMsAN8/f0XB2bl1r/a9gdyIacMMbJhZLx6rOXjuUPuxIS95eOTcbN63H22v9JP0NCPVft289m6/4dvhtPnkuqcpeEiA0ZYbHht8FwH/6ULTxoPqwkZ9rwlS3Ro2dXFoq6b7SW7g1FOTUZE3B+Xx4y0L4m2f3vov9lrn0NVXWzTT70VlpTlymqXzRqeWqQsWsQqOAYYuxir4/vzdte1zITACCOtqGzW3BU0w54K8kLud6sHQiWhfOaulsmF6MB/vqjHsa0BgDpdmdjSq6HWQDxSoL9JuettAWyrd3+zfataxnawpIzJYk4ixmFHDlotN6qVz78fb2j/0mQaH9/nY1XpPeL06d0a1Hs+vFjy/WvGdmzP+lx/fohTBuB/bI9QT+oZSTE/KxpAHYNityxs3oJIADGW11OgfQ0jUONjtGzwlZ3MejNWp5LbGQGaQSZ33vK5aIxRiG7t6y7T52+W1jpI9QykKx2LWZrWzG27kkbVW00NmvfSwXJcXJb8okADsdyNunt5inhfkV29aBo0AUMB4fdCsXVrNUL/0svzD7VCzXseyrXU3cvV3esxh87NZ1NsXsOq2gnG3x5K81lQAbwfiu1pd43pSP4Nm6ahBTvz+6iGAaC2niLZrKEKIVzNoWJCKILDAtyqVCUAJKhwKIoAQ1vMEGQaEqMZrGM4It75eqDpsviS/yQdc4Q4hjhhpjznp/bV1JJDaT0mfR2vWvsaLL/8n5PMZkn6OtE7I51N16BlAXmYgLbg7A8cQlcL+dMTPfvpTUFQZCvOvUAT48pdPcHodsTsccDz9Y8zLjDiOoPgXePb+J3j64X8MZkHOCt/Meamj1+pV2viv84pUcm3wKyLIxIglG0NZRsoJyzzh53/1Z/jl3/wFaJoxXF1hiCPGwRzv0EEMbW/NxQgfUsZ0vMdyPgFQ0iXJRWF7Bt1qulzJYugC8slbNVPvP+VVs5vcsfheHNVedadNTOrIqxa3EHiH9P3rb57hP/jkiJIT1kXbCpSOEEFUlMyRkdZzzWCfIYa3Om2dRFfHWiwAF4D6sAJtlxBjRAwFf/B3fwVm4MOPAq6ur3F1YPz+30n4m59cYVmV5ANF90lfbBwCAsEYOwMiB0zTjOP9vUK9dtqrMRclIoPoulJQWFHYp6WPmVlhk1abWIrR0K8rSH0iSECDWoZsTOjBIJrWSMDWiDsUxJo5Bwg8RAzQXn4ggFjZMatGsA3uYR2R1xyqzRFDRBrcXtHZKSIIkRGj1qQNQ6hNk4kYa1an1RklvY2SQzxT1sYs3MJvNRDietTRRu7MeduHZk51uhvNJoAAHAc8ffq03us6SS1l8aPA9uPOdnlUtsQCwqbzHI5acsY8r/DsU/v82yRU77Pu/ZAHa9EPf90zfI7eEgRdxEkhot5pARewz8s1rOrE9yIPOqDZevWF3mZum0y1q00eK/cYPdx3WzunaqQAjzwrYSt7FbLrMlD6Uet3OEC0dxc4DiDM7dxdeU2/e/tr6zzXut5mv2x+rb5CP4/Vbi/lcSX6a45vh9MGM5bsvw2skVghdRZlFHi0XhUY1QjP5YPTxWbxyMZRv/cIRKv/u5uBPlrfTi0VSud9pB47pK71v+0kvc2Ib7fV34obeZUBkAhhAPbjgEyEZUnK9OdfsPqx5qCyFeb3Etefu3kfHHTB0+xpY9tQWMxgUGeiOASAZHOfDj3wvnjMQHokGwbabgNuWKMzdmp7AiLHdepC8YwZuePD7RyXjlhntPaRpI0+v3Ts+vsyRViyGolir1UmJCZEtvYVnTI43IwIZUFKaXu+i2uVIg1Db+fUTFuDCNT7h+K7/XP2Dr73ZME/+sEr/JMfP2mZx6KOn4pO6c5vgsVQUhJv7VAE2TJq1DmZZA+kuU07rOn2KityKdqraYjgELXFAgIkJ2vqSjVCbL53ZTZLWLu6i20tlogAMQJrqvPNZHUZxP3SVYjeulqPvlaLEVi3+damAgardWPG4JwGWXHsOZmB6Sxg9WIZCIeAwTMrMSKLIGW5LGrCY1tCP5eV1p90jT0M4uj6qlnPjRPW12RI1V0CQUYAS+42WNTzENwY1Ih6MFhyoKI8g7YRuY5dlhU8JECAnAXIC+LNAo4CrUFViOUuMtacsCS97zgou2Ky3mVh0P5RgODl6yNubgXT+YRxHMF0QB88kFzwJgUMRlqwpgXLyhhiF/mxuTufTnh9f4/IjPfGf4kvP/sJjm8+A6V1S9IkAqVuU/nJ2eBRRZtC55Tx6uWLGpX1gMDp/g3WE3Dz7BnmecG6LFimM4bxL7EMLxGff4Dz+tuQIohDhpisMVE1PO/vXiGEAVc3NzieTvjs8y9w2A9ISWnjd/sdfut7HyEExpoy0jLh7quf4cWP/k/kJeFmP9SgkHotVk7AbpUKpCxYZsE8zThPE+bThJRWRA6Q3R5CZSsP1Z7oYYoKyS0Uqg5NItjZuhRbE/vDCI4DBKsRNHn9XIM0EgdQeGRfdkO/TQw8KPTpqyvcpSt88uSM333/NeLuGiyCaVkVrpZz5+65nhS4oUegWsP8mC5nc4R6A6/qQ/udmfD3/j3g935vBTNwe6s08lrfHJBzwfvfERAS/vIvnSDH7BnWa4xPbjDEAQWMP/x7X+H2dsE0TRUaWYTxz/7372MfqJI4FMsEAaob16zMxcMAjEZMAgCclRW0zItm+YuADW4oZC2TWKrTxkRNn1p9cBy0bpCszU9gNgiZ6wiFu2fJVoMJ31g39bBOOuJ7NQdGDAGFAApAoYghBByudgqJ7PR8SgU5r1pmUbLaNUWqznMbwGenlNaqQElWMmD9L0NUeyVbSwad5kZg5w4HXO7csfCXnCRNBMnYdLtiAA1WmL71XmuPyZeUjOk0qaPM2htsMHbdytzJD7/3riOjqqIHNuHmkdz+gkCSknFJdbylJpa0vEC5BLzmtu0R29q4/jLbx71wc8jzge3tIg5nbXtJc3z8Og5n96958M7et39VZW1sV3P4mDb3plsXdY/VyjXIyiksVmG2cfus79YFXDkaHnMi/V4ufQUNHtrfJsb+5/+viEgAj8qpoaVoK9bmkFEHsxTfKIG6IRtSltRfqH2zlC2p1TNsh7t9/+Hvevy6gXtg8AM2ubxZcNS9V6MNb7P6H9wRVb0h3TNfXp/o4VKpZyGFpY17pXh++eJNbX4qEFAWUNSi4iGQ1jJIbiPl9w3v/dHuX3uxaZQw+aZmDinZxsZMKCVYtqs92yZqA1TWH8HanV/fZ8sM1Gbexo7oz6l46lKVbi1N7Td86SJCF3PnrzWl0I5VBJQymK1vlphz1o+1yeQ4DtjtBnVd3alBewZb2vCwUjFYRowjKD1mjOPB4Q3amyGv12FFwKgyybq55e5Zm94gXA8ZHvjQmj/vi2ObeWk1VPW65PuaILkcXuLhuzHp3yEjHxlCgEgBFwHK2pJ1kRDCgBAIKSs0TGl3NSq6rAuuhmvEGGuUNGWFhvkg1fgqa+YYxYMoHmnTTzDT5jz+r591bpYqXOlrk3UGF0ExneO+FxFVmKcfa8ngXFDciVcLR1VT6eW/mkoXI6dnC5HxySef4NNPP9XvdpvN9hzt1xY53uqNFrmEQZ68/kCbxNfAhp2PUYyUQqrsVIhss25Qcsbr12+wzrPplnZx7Z2m0Lc1ZTO+xHoiakuK/WGPURJKEjz/6DmyDLpeSHB69Slw/ScI8R/CezZtnx3mNM746suX+MXdhCf7Hfb7AeMw1tv84pe/RFn+Erf7L/DTNy9xvLuHSK5y0ctycSYdY78tIhDTmST6dwEgpCQibg7MknF+8QpMQGRGoICcMu7vXuLnP/3vMTDj9fz3cS7XGHd77COBSbMv19dP8PmnP8Xt7sd49skO+/WI3flThAlKqJMKUniOf/PqP0TJK5bzivTZn4EZWJYF+/0BFAJKSqCovQcJhMDWF7QUSFrw4tUZkjKmedGMaFd/K2hQMu8+A6M9ZyZomaU3/yWQJJzmFcva+oGWkrEu2htpHEZrUK/uGoOQmzuGSpbRB6M6ad7u1A0eXgrw6hzx5niFP/t8xO5qj5uQ8J/+4CvsBsJizlgq0pobF61v14AOEGOspCP1el6rFxgiUbk70PZfhxIXAB995w6/9f17pHwACuHFC83olopxV/31O78NfPnlb+D1i51m1IaIOIx1b3z+/AV+69/61DLPjN3Ox0Z1/d//ox/h//7XP0SaskIJRWvAtLGwNnJmJsQnt3A4uJhsEhEigFAEKQZjENW2M4C2a+EYKuFZHe2gsu81dCIrPBsvBchFA7ClLLavKNzX9YcpmzqfIBijpGobDozdYQeQ1j+KtGDdsiR10qzGte75vdlkcqMtQ9QhVbIsrckuAgzjAMqC3dXB7Avtw5pT1iBRSsiZOhsHaiPYXtHXYtXHIEIMCtW8tA43j+tG+NvMPBENYjChFMIwND2tRruApKEK2rO/5aQEYy+kmlV+7NiYPUWq/HS3tXHsKtt5yWjexeXnBKn0Do1tPnVd0eakl+Yv+bpyRnj7QLWr/BykMqdlIRfD4Htc76yxs7Er6qxvMbW5n+4ky7Lg889/jtubpwCsXMVgcf3urDY51VISM2jf6TBv5MjvAQBir+XsCu92PfRrv/4j/18cLerdXiLsDwfcPLnBvCSsk1gSpZEleL3E9rtunBQ4SQnMnG9ztx0ZsVaBVejQhE7esRB8oD3tfHnmynr5YFVDNxL7+4Ejga0C3LoAfs+PvG7nYilagFtf1gwPB0bJ/mSkQTCLLgDWf6oSh3RGvylDB3fU61irAnXOLkbGMw9kxeZETeDJWd10OTExEL1hojtn5ngzQaCwD68t14XcrsUGzyRgwzylcrXNrhFfKIZuCJX7x0gzckJJwHSeQUwYHErCQRulRiOE8dYGNVKjTqZHIwUNaqN3zjZ7sI2W4RmhX+fP6yNRjciQZXV1mDtICBq00K8KWOYkcos0w5y9ENToywUUGaEIMES4/LNozRZyUkVr5710PR4YXKQyxkNEHAeNhBuUUki0PXkBAMfyFzAUxuuyt8wLgsHTiLR59XyezQnS87QapmI49DbGtfRX1IhTp1C/k4pgNJkr0iKBKkcK2fUxZfIIqh4bII7DwCzKKylhXVXfLMtaa0nFNqBaA4Rc5bOdremgUp3PptSFuCus1ter/riYkC3MRmtCdmOEiK4k7YHWdFeFTpPK7DgOGMf41iCWy1CeE44pW/a0yUMughDU2fJm5wzR/o4hYGSGlKy9nZhwur/DR9/9Pq6uDphSxu31eyjjb0DCYIE7hXeKaI+knDLW5YRlfYX51f+GYb7H3aszTjtgR4ycGO89f4ZxfY11mXA8J5yOZy0rktbHpx/fYG5GLgJiheNa+2KF/EJqppeg5B9uqMCghUUasdR0OmGeziqr5edY0gphQjEkQgoD0uGAcL7H/THjL94wUi6Yl4xzyfBm9KF8gbD8twgQTF9eYZ1inXsmwpIykAsGGCmRZKSi62eaZ/05LchrMsNTTPeo3heBEaUUeJbOMzwCwrjbYxgU8VIESkxisFi2oM80zVgXJTZxo8mdoSzcdBMsEFCcqKXJPDa/9RaajTi1e9KAHeOUR/zPf/0Mv//REc+vApZpNqZRG4uiDuW4G3E47FAIWGaFsCc6YJZrW9QJO9zjz375BF+fFWzHru9srTAUzJGL1gNxHA2OGVAkITIjUjG4GuPq5gqCm27RaOZ0nTOWJUGdGuD2yQ0gKwgBS8o4nc549izhh7/zJf70j58irasS9pQCr7VXh9fboNheC13OxAG0G8GDOafRaszRdBWRM1Tzxm5sCtxrneykKErsJFKnxZmufebSmhAgyIZe6PWb2zs5C3JejDXS69BcNrp9SyyzRrbuPGipbyGMETe3V9p3MDDO5xn3pxm7ccCyroiD9+vyOu52brc1BBflLpW8TR7Yfp75Cf3n0Qz1Pvj7tqNtVVLRSvUcTOpwAkjLWjNoFSHhDko9F1W7yhE37yoj6c1fJgJMB+Xc3L029O6clofe1luOB6BmGxi3drqK7K2YuS0rLWvabGM9b6ne8OaC7kXpnw+csXYb6uJ337k4QggYxwGbOtnufL3Dpq+Vdk1HTknbP/tr906j2/b6jwAShCgoSXUVh4KS392r7dvhtJHbz22QHL7kVLnjGHG4OoBDhEAjLdP5hDSvVXG0GjXdfuv8dEZmM6Vhe62ow+ZGzoVj51Ch6ky81ZGTzXe8+L7fdnz6dZ677Et9twN21DALjAWtGdr17gRmCKG1Fuivgyp38MapWx/PHKmOfpaYQFqQ1Izw+gDtSfx8fp8dSVZ1nihwY+R8xPCrz8KEYAaE4/71fFJr44rYHPHFmPmU+Up3wxNSC6vrs/a/1+u333xRe0S5iEDWgpwECam7prIThhAwjCN2+x1C8IhhroxaZIK9HXaxmTajcfM07z7UttmqOzHH12ygzUFEiFHpjmMM+JvXT3BMA26eHOBNwXOxzBs8o8aQLmEsIuCo46GflZrCvnTUNoqN1AhkcyyZBJFVJnzicymauRKryyuAWJRVqaMBFmU79eswE8bdiGW2Zpi2szFQqZyb4Dsdvz9LCxyIaBasd0DdQN6MoX2erFjfQ40Ec9JK1g1TBJkZ2eogg72X1wSSAB64boQFDvHsN0OXRjHqawFKxssXL8xJ1/VZa3Qe28TgBqb1qKsLw8aCNKPeIrfdJsRel6tDF6AZsR6u5J9vASWtSdMxuwhaielKM3iHoEYtWWsFRkFOK9JMGlnnHYQPKGBM0z2W6YQ7+ggUP8aeizE9EkqxBqilYJ/f4P71He7lF1jKPShPmM9HYAIWZsQ44u7NHY73R6RF+yhKKeao6dg7DFgogFGUzr44lFRraUikwWHsKNKyBN4cGaWgsJiTIJrRNN1aWchEWUdzykYGs+DF8aSZgiKYyVWl3l8WAQdnX9PvXz+/A+OA+dUeLr0sWh9BkrGuQMkrpmXF+TRhWRYjyGkNgZ2aXffOUGWvyYPunxxWxFEzRZIT1lnr8Rju8Bbc3d9Brm8xT7Puz1LQowGadrh0wAiERi702A7RTHnTlY8YjwLBN8cB//Sz9/E7HybEcsYQVvzuBxM+f7XHi3vCnDK+8yzit9+fjPRB8HX5bZxwgzf5Pc3GlAV0/jk+f72AyZpR+x3bMhrGjI+/d48YogY0jEBDM/SD7uEWoQ+DGoJ3RTPSJVvzaMu0JMt0OBTtzd0EZsbV9RWYGEkKUso4nydIl813O0aniutwNuQAQCFgvLpSWn9b16V4qxlCXQLo+Rb0BYYgpQySAs5KGgK5qKsOJh+RwaysolqfOFeIrO905olhXmZMp7nqXUd4eG9ZD6a5c8IxYIgR+92gmbIiNYsoonX1tzfXGKIGTuY1g3iFB5VdVxGjEkD5XlztuX4D2+jj3jLAQ6flLYGs7cuegXnLZ7nbP1kDz8y+P7Z1U0nDHnOcitSL9vLx6GHj6vsZGzatbIXAPtv2RSV+2Zyk+1yr6dreBep9iX/OgjOeqVJq/86+Jg3Q++9v2+P6edkmevxH9Twf+eZjZ9TzPH/2DG/uz+hiEpenbo/tj0e+j/Rn72SIUNdPHQvLYjrKp1gttkhLqrzr+FY4bbpeqD60iECyRu5Od0p5PAyKS+aoG0wQwbJGYE5wS6M+LpH1nzKBJGoTCcA/qREcu6o04W/GsZ/O2M8E5gx4XZ2ppX5h1t+baiA7h4OPRNo7lyaiJoJs4rnPEz7ESKunrkQK7A8EQmP08M/5rqjv1+imeEZINZluBFTHE76o6qBczBsRKHY1N9RFG4AuC0ft+nVs2hgRvP8LVS9Lo4ClMnVVeKY/Rv+7iBWEEtiUD7FlFh9TdNTq8PxcynqmmBg10mDP4AZwQfEmpSLISY2zyAnADgQglxX3b6buURkUCOOgrFkhRCBwzVjWQv+3q9nL267jXsSyXyJNju2aMRJ2+xGD1Tl88Trir355jRfLAWsChqFTICZgUgrSagZxytbAXaV0GAPCOLZNwTS4O3bO3CT2ezCtV1ymxPDrBAyD05UDVDyLqht+ZgFntk08w4EZcV2RU7KajYAf/OAH+Oxnn2JeE5Az0pJaX7PeFSflTKnoK9KIGotgFM2kAZZhqmNMtQ7xYvThG46vaZGMu/v7asxTKdq7KBesSCgp6XNMSaEdrHCzaVpwdzyDS9k4ic4mBwrYjQdAIl69eqVPJbB13pS934/fffFJKasazcRQMh09OCgRA2c0aAZZphuojKm1h1Bn+ABQ57l32lyjEWPYjbpGrMF8lRUBGBmFInKSaiyGELCLQZ1QCih5wTyfcTxP+PjD93B7+yG+Pv8+nhDpOLLCdnNOOE0zxvwv8OLVT5Hv7xHGjPPxiGmeEQJr36ZUUAohl3vkdTHyG4HA+tpZtId8wzXCErGMaGB1yCCCJOrASRELOniwy+ZBNJMDGIwQgKBoawvbJ8SUo2v0LT26NP2aS93UETSr6OyKYlEJZsL+2YLp5a7qsnG3Q8kZ5/MZaxEs84JlnpXGXgTjbqeywxa8YCelaoQlVc5Y+4B6PTAHXbMlq7yGrH3DGLov3b8+4upws9kjlnVVuLg5vr6nkjgBRN+bbbvaNqZV990HAY5qnLMLOD57NWBdIpgyXixP8fLIeHW3YllWfPaK8bMXOzx//gHiuMO9PLf+XgkcGJlHnORDgH5Rr6O95Bo8c38QfPydI66vPsCz95/peuAAKqUFMS1QMU0T1nnFMiuZEmDwWhFEtHrbkrPCkFkJYSr9vSFfqt4pYpBlHZ3cGesEQErGkhJQpLIuE1nwSNRxcfIDTzBrYLRlDZQxV1szEJGWqdgYxwAwRzg6RxE8XO834yHDt6snImWCDKzN2SEqI+u6asYwaNlDIIUxFgrY7fe4vt7jej+CiDF73aI7p5XYRf9xdRwsq2aEJUSkstvtDe68ZadEuLD5fF3Vo3OIO+l8cPTS7CL7uM/Wnf/X2umu6x85nwfF0Wq9Lw//TrObSIMy7hyzQphLDdq95Ya6Aan1V0RdtHT73ToWvobd1rD10T6nk+H6TW+T6vncRvXkRYFsB9nXJ7bnrGtx43C2/bJ/RU9VaumEuhnbcZCLV8I4gOZWTqS3XB793mPnaHPyjjF/5PhWOG2Aw9q2lN/JOpSHqI1/U1JjDtCUbkrYTG49esGpM3IpUI+50zaKD1xtskjEhbG7cSKwEbb+ngjd+/CV55FpdQYMtafvuyNh3/BiYe6EsyPMAiAV764R+u3C9rFFFzWv2SaBZbPEspsdoQLag8kmakTqSDnumdXQrgvelD2BLHOj97UlXNJYnLO66bkcoKh010m6+3E6WHI2TD+NZuWqw8qNYjgEtkWIR49+jES8PtIcIovMZYsCdn64ftecwho10ZPohmNRJRFVpJOTXjDjsBuwvzqAmJFLwv/wV3v8Z594VOmhY76ZL9/kPYpvLxQx/kNjYou7HfbXV/gff/I+TgsjZWAtbDTN1qvH4CgOkaKgzF0gDULknJVQYVlt3rlGKiFa7zfa9TMaoSTBm/LC1jJhKQnn9YTrXUCM+zr2zE2BFo5gYRQuiKLrW/sLiTGEJZUzKZB1xfHuDnEYMAwDhjhgSglY1zpObA55pba3e1rWFcEIYuIwIIsZ1gKwQWzdaZcikNCtGa+xsOckESznBcuSEK0RvF9n2A2QMWKaFpRl1f47YQCBkEtGWtaqajYWM4B50dq+rSI3OEX3N3DhQJFubMfjC+zGW3AYTGds6zBddVEmYGh6Jlp7A7Zei8xK367jo30zHxoGagqFIWpWlBhlXW0OtAWHy2wRAlKy5uKMVIqS0NgmXpYZ12PEfn8F5gNux98EQDif73A+n5GWbzDgn+KbN3f43vtPcTp+g9P9PYgE05qAlLXH0xAwTatS++ekKWhfP+S63G/fjQ9ohkwM2ie6xrwuSgSKsJdmPKnuEYNDmhBJMCPVMgceHrKIdEBo2VLDnAuoW99qvCozYAFzxGrjT1IapHVYcf3RCcdf3UKK9qGazhPOxzOWNdeGwSDr2ycG7y3ajkIj7bBMoAWjmBHiAGJG8sAMsTkVQOGgsP7dYP27iglTB7EwMZ7u73G4utIWLCXBy2eULEIHsBgsK4TQ7S2dY1b3QanbYqkYJ/+cZQ06gh8RbY77zbRHKQnAqgECGvD1iXH90YcgjLpm+kAhHDJ8sco6w4qJcLjZY3/YaebbMv0CgmQncskIQYMYOWcU9aPMSWaEQSGQiylNla0Bz55co0jAeZo6UiYHjwkU/JrBwwBCQYTSvPuK5BCxZ627UnIny9BwUFmM1hvNZLoPzugvDIJR7UczkEnHJQ6m38hJNqQGe3xec3ZYIape6oMTwzAA0CyeFCU38ZYKHIBAmr1bbD8PTpIB5R2hAAAgAElEQVTi+78b7xCLDvqZ9f6FFPqvWesCKdWoquUYzWbzYDsqoYRmMw0Sb6FyPXEPYXnLBo1mNgZY0PcRO7yq+i6w5aZorZN+y/n79dH0hcP7t6vibfcpxTOOvZ1qdarUvW7zWA2Szgb0l3sn0I3JYmNYs5z1HvsnMyfP/BsPuLt+bhDW/iksO9efxwfNjWKzaUOFZfv1StW/29FpOsSLo4gJkdjM81I/Vc/U7X/EUZmRq/dFmi1jqckDHd9urO0nM1fSoXpPvt5/jQP3rXHaYMayiOKYS86VgjgnWI8OQhh1pRYESJkxLWjYec9QmSAVdJkM6uO/QBUSAJBixbTqvKiABnurg8Qo9aLi5E3wKhwBjfYewIaK3T9R7f6OSAMwBkd08IPNXRYtAIbzFOmhEDw2djeFByRrBOzBD5VlV+juOJA5sGgrz2S+TzlcRi62U0W2MJ1FyYx6U+Zkgq3ZBYK1DOpGoduY7brs91EtIhixhCpsZe7ztgTdgvSNXVzVmrIxR4p63GY3qvr4rqi0IXcpBQ4UYjNSyGBugDqBxUyuYAXcfQPuIopRZ6/fKFKplJ3lalkzDrYw16Xg1XHC1+8JPrxquOh6f3WoLMIaTM5Za0RWh5UUh8ISrq9GYH+Df/H1byDtr7DfKVvcAOD26TUCB0gRHE9n3N1plkipvDulmbVvVjzssdvvsawrnDXRld1g419hLmLOzgOFI7p5loIyhkoMxGbYShMBm1dtbB0ogC1Dy8wIlqUSAf7yr34EWF3Eepo0MsZBswOisBpnQWVodF9sHCkycipYimCXM0KIKFAynvCIxPclZy5F7OeFwupyWUFUkChqVLp+oQBJs2wclY0NZviOu521Z/BRsisI1HmuDlm/ZTTd5k6C/5/tbcoF53kEyYo1K1ztar8zVjwPNOh5eOjxOXpe8gjjpS6qDKMP6xH8vjgwBg6gIYDkDM3Uw1KuLatfcsaUi0HzgBiH6sS/+PIXICR8+NEPQKLQ0F35E9zd/wWm+3ttZrqs+Hx+gzKro0bB5KsITqej3gvYYKaoWS41Flxuu2ebGNgbdEwEwQIUnp0Qq1P1b2RbbyEAIDes9XqqT6yGpgBisGov7C9kRpPJtq8nslpFgdZfsAACRsoJKRmzKaBw4qDjuHs6Q8A4/koDmvO8WGZGH1ANGAZbPROsOS2bPiERzXy06d5ImdrGbG6mzpUbP77HVCPORV6aRC7Tiul0j3lRJySvBTxE7HZ7gLR/pcPfKcKCf4/T8dNG7k3vEMHLGwioTih5rXSMSLmAhqjOpumqu/sjbm+Hbu/QLG6olHHdQHTw6qv3nuL994DbZxOGnRHdiFZBMxMKCSCMECMCAyUpjftxUue2ZLHsp5LAPL09t0sJcP/mDkUIKQvWeTWH59BGgEwXxoAYBs3Me6/LOlABQFJntXPQKskbszrcvr7JA6YqGyFov02GEpFoE2totlcEkKT2dhEsedV5tfYC66oENzmZbdTVx6vdFCCiCBoEHa9gWVzPtoAZAwBJuZ+JrSwQAQHVUXcUk9tZ27Ik08e24GvgxhwKhii7oAAiisIovZ4AkItluqU5o+86SovGPeq4+XxeLrraB81eDkTwvET1nWhrQfWnY1ANtrgfUR1T0XHKOSOnjBBV92+JsbrbEVT9qRcsF0HDduMb//mR89S67Ef6KraoiNtKbrW356o+4eVg9sPncg4gb+ooPUvH9XLofxNYQIQw7na4DRHrklB4e/7LW9bLi+r7Xvoom263JAOwcRjdvvXH7p1b4gIp765nA74lTpuIKjhdGGKKxqN3WkmcU8Hx/owQZgC64NOaUItifZ1JM6SrSWSfMR3dzZfDVRpxOvk1/XvsGYZmpAKEYRyRFo3m6rksmgszZGpPGzOGTPhE3NSC1eH5N8zJuDCWpKOjrP5BFw0pKdkmUCqWXmuy+kiDHiEI1u7rJil2bdsUqpJDsw/7ufJxqefkuujaAoQ9szFTsSsNe9bNZ2xuelZGd+Dc0WPA0+Pt8akpsDr3buxYNE7QOd12TnInExtDTPvFNedKp1nhasKEQNoUG8hNHvhyZes1i9VgMQdjwlLFFczRTgLEqgyBf/KjW/xHnwDff7YgBqpU6EKoLJMAIY4RwRxrD2qAtL+qEIHCiJf0Xdyv38U63ODJTg1JEEPyiuurawjpJslxwPF4wuk81SbswtazjMwhJ1X0gQjZjdPSCoVVl5uTbrvEk5sFRQjH4w6N/F+N0pwz8mrMWURVnn1D6aG5BKl1n2GIusn4dQOhJCW48PUvizYKDrsRwdYemwPtJC0MgIsHaaUaKs0c7JwYkKsexd5f2HJwg9GhkdDsIFgzG2QGf8kF+6u9rnWiajyCdMz12h53VT2kRpRe5/b2Fnd39xcrsN1MvXepIg4tG9To8fl0xhAZORfsBssKZzHIajHSF9dTqPqjZnG3W2jHNGd/A0bS4muLMYwDCgeFxFogq7ihSACJR0L1vVwW7OIOYRiQhXB3dwTHL3BO/xU+ePoMwxhxNY6YiUEcAazIpwkAgbEDckTOL0EQBES4jqkQ8Dp0giAFSSLW46gylgXTiz2G5xMEwO56VWZIj4ISVaPQNbcHAHRZ2pp3pjEx2nGTGx8vW4Y2ZrRVG65wSY2AkgWIrGyMq/alYo7QyEmTgiLA7tmElAvS1zs4dB+AepRSQMYQqIauNtAmg3BqG49tZNcNaEdUMFoUXMSMe6+57B3f7J8zuUkrjm9eQAS4uX2KnBJSLgqL3WmPyJyNwr5ujt6epT2jdHr7sYO6a+q+x1bb58gcM6ZyMec14Ksvv8L19S1AZEiKAsq6FlxOuBSErLyXYusxLSvO54LT/RFMjKvdHnGnRlZO2mNrHLhCT9dlxf3dEfdvwsZ6rkQEUNgeWVY1VSizYNgN9Zn8+QKpELl+KMWYCBW8oHJiOjfGaE4bVTZGt63cTokx1j0JHMHWDsCDYyAVuVwK8johp6yoh5R1PqvdIXWOqK4XD0ds4DWWme6yMP2ebjpSA6JaP/3QnegMOAAaNNlC0kpHNqU2VzH0C9dgjVyez/SEa/MqbnWjawH6arQ/IpKm4jb3vXG6/JTUnE7A3i9qd3hfzNJ9V0tyvGcmbdsjMdXO2v05VQ82x8CDbqVkIKEibqrDI/4dsozZ44fbPw/061uOIlI5J2ofZiLrTS8X1TydDhFczP+vd5gvj0pMJ5eyeDlL+pLv7VyN4Hbly2+UvGrLDWnv29fbN+rG3Bk7/RO5TAkA6UiF3nF8S5w27fXTjBeDApFG2FUJFMzzZNFLZ0MMhqmmDelEC6N2GoG2C6Y6VOZMhBbKAPUftvcd/ucHEzSib3UelUKYyepOzCk0D6FXULIqvjrEYEa+RQEJqPUSPtGEqqT9IRQ9oO8zTBFnv9d+ZC+MAzToYB9t8ntksW46vWPjwyD+W9Nm7hy3cW2pba+N8c2/d9Rk8xNoSpKq0iNwJZGoGcLSjNQqO3YWzfRAsxtmtG90e4XiPb7w+7osj3V4jZFwgNo8HT2+UyXLxSmZQcbcqRS1wdjUuGaE+/sGlDb3jz+/wedvVvzeRzM+jA2aIAX45fpbSDLg+/LXKIEQo0Zz/4/PbquBICAkDJiGj7A/HBBYc7Mpr8irNsZd14wwOPwlIhfB6V4zIt6+IY4DDp6ZISCUAjHDXsYBeVma0eePDCBCcHOT8Ud/9DWSEE6nEX/+rz5EyQKOWtNHKMoC6VkHLZ3QYn6D3TwWSdTsgEJAmTTrTlGzUWwGpCyrrQeVgSgAkjYoYIMtCghJBJQdLmfzRABRxwaFtllSdUb6KfbM7qV8bcdEYlQIZsrgEKv8SU6Y12Rrii6CMYKb6+v69/MPPrxw2h6MTvvb9B6Tk4pYBrtkrGvGEAI0+GFZtu55XRargqxrX/BogBUNKsLk5xGDKGkgpxp0KJuMt9chuTOU1wzIgnIWrCDkknB3f8RqTv7HH3+MdZ6wzGfAHGEBEEmz4yTJ5KNAkBFJswO5PouBqogRdyNoHTF99VRrgM4zuBQcv7oCAKSbDAoJhw+NiKI+uxkzhkuv2WV3uz14YPyzBj7UmhkmvbuiuiSSCkjjbKNWrE7aVkJy0qizn9dsneAbHRn8TRjD0wny9U6DBWYI6f1xJRup0Vxj82UOmrErWoMIsdMSgSTrePr6YCWbQGlQc2eGJSagMhKrESekLRuIo9bWjqPOf8oIgc0o1/YcUmnyvTa3P8yMFuDSNKywxn7tMCMBEGYs84zlbsUQo+rzQWvFCKgIjpSKlXjp/p468UcI1XgrpFHH+f6II2ecjifsDgewGWRLynjxq19hXQs++OA9XB320P6EHnBzyKw+h0gjqAEBec24Px4VQs0NWlYP1rY5DIW8pjUjw1gXReu22sQIxJwTdTgFMHIkDc2WWi7RO4RaQ2wlAVn1dDHnTJtZm+NXtGRAe3x5yQSMmVj1nWQjj/LAjOtPzz7ZXi6mO7K0IIEOlAezO2dH3P5yy63z7N1iMJy7+L4tUnW8twoShhF2uZ638zhBVnX0UDGtzOVBNkrIA0/4tcfmq253bWwiU1OW8u5r79o9OamTO2y0uYBDF6v8vsOVqvXq1h7ocu+CXfdv4yI5zPTSGXnnIWpbSc2UUs2SPXQBu/XQ2QZ08Tnmx5/YxaPPxW4+WZ06wXxeMK1KJOfIrwfn6g7vIwt0cvoOedAt8rFAhO4bgRVe+euOb4XTBlNu5nPWxaAKr/XIku6BScyIBmFdM86nczUGhkGVZMmKURfXmDWC3U+5OYr2Qst0mZCYlJRu8yeD/cQYa28WT+2W0hYNQaPp3OFuCWy9c/QumKkWyZNYyrq7txgCxv1oDF/b6S6i40ZFUNghbnQh0NRJEjdrVB8W4kYjoTmK2Aqf/+oKepOhMNiaswG5k+vfZ/L+PC2K589WM3yo07NRZhzYsjhe7Jy76/ePKFXJCCyCq1geNEjf5dNs/yrY7Hu1AJsjIYpG7yiwOQlUZWNr9Cq8JBuWPkTWSKVIdVR8bkTaOAKEOQd8+jLiq/sR+8FHCHj//ee4evIRhBhfH0d88/VXGOKA4WqPN/NQM52lCKZF8L3vRggKEhhBBOucMc1J2ThXRhiqoCtdddGanIIMHgQ5BJynGSyq2CGi3Agk6sDE0GWX3SBVE3W/S3j+YVKTlTKef/CFNthmxhAC/tk//w2cp2wQZAJbxoeIINzBg21cihfNqyDVjT4Qt6wBKa1zNgeFCaBSkIkRxeql/J8Zy15cqag3M2bhsLYLYX/00DkLrDWNYANLktXSAbVoWnWUrYVOp6R12ycH3bNrZBWAFHz+s59fXFs2/3d5cp0j4iaNZ4u331SK73at7buq7JTB0zKUb9vU/dREGOJgzqm2hGB4jrWDj3ukP4s1k9WxKOKR3oJlnpW11WozpQhevvgKx/WM9Poe03lCg4IKEgoECyDKOcZe78qa2TCUKbxTjwCgwNiNBHy04vUXCnvKIHOzCpZjhBTGtAhuPzpWfUxAJZ9yFapGoVTnvuR+Q5ZmqBZUtj0pGRIDlHxHDNNnxr3AnCm9WW3bogGGgW5wG36Is3yKlV5BiupUsf51xVpdsEG4USybfGFYus6KVgagxCr6XUAz4LVdiy5wFNJGCFKysfcxUFL9yOappb8Qax2nO0vkCxBV81f57USwmVae/dAIvWxkWf+IHFHSCgFwmmYMpI5tgNalMMzpYiWqcEdBTCczMSIXrIsSwMRxRNztgZCs7yBVuD+JgFhAISpaIM1AGBEZGAdWB3HcAayBOgKBLGAUos5/Ngp6giAwEAMhI6DkFbuh1XC5vIagjd4rWgVQYh5bYcyh1e+IqD4yP7hczI/qpAApGYUI67pgtbW3rkkzaaVlAitJj404B4XaOvy/EiJV+Lk6bgXafoI59LOre4gb+YTa62qzj1p9WYOUtf2q2mRiTpNLiVCFD4shU7yeXcnANLur458B6mrOq0Q2feYSJi7Q0su3/q5ZoAqSN91vxFd43DAHAGLGMMY6z96CCBbgSmtC6BasOzJ+3Vbr3Cl3UpKXJK3cwE/hwfbLrcwdNosT1drDd2572zPAV6j4BaXtR0VKq3kUbQuSxe3DNn+tBGR7ZgC257c3bYvTEfd95dIWfOQ+eyyN/7wYQXhpVEkJmRgMVvutG5B6q5sASUGWgvgWgKigZW/9bh51h0XlmDhDunZdjx3fEqfNDxXiEAKurq/w8cff1fEijU71KoQCKSPZmlGyMt8RMZgLBmsWyqvVE3RXEKgDVmqVo2LjQxw0UlkloHvf4GN1sy7WZDEqZC6tCygwJHXZuD5yaILllOL+GjMe7z/RxRLiOCiMwe/NhLaHcqScsb6+R+0ZxmRNhZpAb/qlUFPyJL743AD3lHKLovkG4kZYU9g6Tqnoxu/mafbKMHKDnHQHwXahVOH1++EBJOYQMLWMF3ULnbZKxeGcwTxPgtfSOWKnLVmvsRFzjnt3LjBVtkQqGinMMQClKTQlVVFKfJdLFZO+NovUKCtuFABSLBscuuia6AYWY4TIqpFnJpwTYUptc9ulA/ZWbXXOB7yZtOfZaL2rarsG357LCpHo5rf2EgoBQyCsUTNiEL3P/W6/kRWXhzcv79Djz/35d7sBh/2APhJc5Tkwbp7d4oMPn2vNJwc8/4gAb+bOwH/54Qv81//NBxYZ9snVqGgga+AeA2I15AUshJKl1pPq/NUJRX8U0ShwHAaMNsbsUUigZsD7uslVGDuXcY/mGSsnirQ6N9IgQrZaC72PAqZwARls7hREGd6GEKpjx8xq9KHJgf/U+KmRAdhba0oPtUMLP6NWc+sIwCa3tuloTh3V78paQKPVkvT6rjOXAWjtX0oYY9jU9l5GnT2rXlQMqiXGzNaLSWux3OrO2Vq0B81gSylISTMvOs8JJBkDR6TTGel0gog6IYuRPQSrk1hMvrI9Iwmwr82i1RFfc1ZDFQU5D4BMWI4TltMBIto4XUSdoyz63HI34J6vcfXBSWGyze2rYyQWiRdzepizBTi4wos4+DzlOropib2uU1aQwaT1nqlonVkqMBZVIPAB7w1/CAIwZW3arXNqc1U0AxICIxIhE+nVSEm9vY+mquGgjkdFSbhcQPs+Wh0yfF+qoqUszVQKwFLrwKpRy16L1ow/NRb1XD4fcAOd+u5FsjGefU30Uhaj9gRd5rm+wxDcvX4FjhEBhAFSHfbATeYJRQOi3ZFT0kwkF5QMxHFEIMJiBmE25EwxArJiuiTNCeeT4MnTYsy0ilJ479n7dbyKN2O3daFtV3xNt70CEOwGxnjt9WO2z1vaIOeMMfo4qbMXrLY/DiPioC0HAm+rcTmoAYgiyFK0Hli0vUsWZTktOeN8POu9EWE6z6pvTaaItA43Rr0mwFVmypqwrsnKMXpH3Uo+uJvnrVSY3NrrWoRY9+GqgULEeNAa5RCC1lUawQWzwpLJnMRa91v1W6nrPo5sbJvmCFtgxLwMEBWweGC+2WvFl7ntc82k6/Z5iJHxOGRa4FV4hfpBeeSwYF0JjCABQmI92QRiAQjerA9sxm0IjDW32lKVjs6pof47l9/v5sTtO3no1G2u++hrqgOKGNrFz3kRjPELSa2Js1kubbw3jhuh7l2VXM7+9aVDve6gaqtv9ztyR1/cTts+P9C7cUAMAUMAUkqAjPAMjL9fEEAds4SuC4UKNbvOaWja2GmQ8ZF6vssxJQEhvNXh9+Pb5bSRRcmiZst2+1GNWiLM01xre/xgJtAYcHVzg5cvvtG1CxWowAo5iSYYjgkGgARggBp5SylIYinwjr4WeEygTRhJazQ4NNpe3SPNgBYX3cucLdVnMPdC75f1s60fmkEDa/rYcex2sqCRRPEHdueENJpV9KRtUKECGwfG3L3aF3LXbKP9q4yJaM5hfVAfHPsR2VmpfDNNAEbDkMJY99qC88hcLSx9i5Sq8ew9f3o1YPVN3eZesrE/smY3duOAORSILLoZVXikH1KNSK/V4jq8zZBxQoJQjfnWyLtmIMwJCszY7Ufd0IzMAwIUy7Z6JsD2DBCgzKiiFhwHBpJuPF5TpvVCVA2dLvDUOU8OUSiQtALDCBR15qMSQoKYkOcJc1YDIsSIcReMxciHQ51IJkHKDyel5AzBzjEtWzOfFPolIWhQxHePONr7gjhmfOfDFb/6ZlRWtZxBRTc5d4RpKUg216Q9FcBlUIICDsY+Z4GDclH/CjNgRKw9AJAWzcRIKZDqNLvcNIhSf/ROiWfQCJrFSzyArDBOaza1NiCSGjYoRZuW6nRhHJUxkrg1F64XlNb/hnz5US1fRq71dy7lerNbRwubc9b3SBVDBZ148IIADKFu2J0wbe7La1NAjJSVdOByoTZTS7+Tk2ZsYxghwRxvmxop7RuttZA50VbbVxvOQirEUUxXBEKtfxIiLAJj+RQ4W6465owlKYxP67cUblgjwCWBhDDcTBiOjPnuCpqR1+uWlCv0fH6zw3DI2D9ZdF4669Sh79r7r7UH8EFlDiAqULdfNjLKRlihgSjRzAWKsSRbHVIuNmiC94c/NN0BlFWQUlGCCNubis+xR7o744aZDE4PgBgDezDOrT2/Z6mBBhSgsLEVFwEbk5SqGqo9Bqs8CQElAFjh5EupFMtU+Yhx3ZJq5secuMcOAtU6ZUCvmXLb/91MZNLgnhLtODKDbD5dtJ2YCDX4en11hTkVPHn/PQxBHZE3d9rPb50XpHVtJQ/k1wSOxwH/1796D0/fO8J73BXDrpai8kis8rCcJ4zxGuNuUNlm7c3GpAQh0zlimUfc3o4gaP1iloLBeuhBBMPI2O3VeRnMgdJstMIjUxIUThhFEKxGuxiSp46vOdfnOWE+T9iPsSI0OIaauXaII0GRAIAgxqi6y1lnqK3jx7IyyjjpYad+Pt1o9jlpATS9Ra77nNs7LmulFEMvutPX11+hsmB61odj0H2smnKKuul9AA0W9VkaN85F90K/Y9NTvVviD9+rWiYviXFdRG913DgGq01vdt04AqtoXz7p5HtzTTvWitBoa9hu0y7Z7w/9XLWauAxdM5u9bmPa9d97uEgdvaDtsAxG3elZ/W4XtOkdNiKDpgFtVm0PNCcYnoAgt322o/Eo+oMIPaMp7K7URpYaZNt4iHYHJIIyrUjnGYUI4zjW+ZV6Jgu8uY4nwhCNfwCtzKKZyqrDfEqkPC4PLaBK7/T1/fh2OW3V+NAtIeWClGaQQ2YAXXwCSC7gkpFLwfvvPcWXv4imaNoRaGMiIQkUPmF/K1EB1QhfLVrs5GFDdV5fs18qdIhq1AnonBG7uq8Boe0iccMdAnh/VvHwgzltJvMtcmCWPJmjJvX1AOLUxs/37moE+r03ZeIbg9Qx75QrudLaxEz0qcz2dKOgZnws6rrBaqMZVPV5u5NcKgWvq0D9nt5LZb3cuAq+j3gFCZQliAOubm5xYMb9m/tKgtDjlEvOWOa1krdIp2OLCAZmUAwKbUwOoVOlUFA6I7spfoHVG+Ss88kKUSxMG4hsf3gtmYgxWLKADO7hSq/i8ju5q8/fRYRzypjWFYcxIa8FKFL7R5EI0jIhr/ocYRyQ2aNdLYtMUjDsRqQ04fLIWZscK1VzqTLgSvF0POPNXWNEIxRk8VYVgrSs+N3fOeGrLz5GKWp8UhHNGucGn2WLSkMEWDJSSMhFo+cAFAZijZKbDOhcKMxY24WQfbauRtfZZuhdzp8LrL8uvXK36QtO3NDvNP2kkrKkDYM22h0Gr89QQommJqR9He0eNM7h/dserr13H1asblBS+JiUjgUDUIc7ErabsbtgHeEPczWWmJQAxF8HAH8YnStlTlwmNXbH2wtd1x/9mpcuE0pigTCVhdX6gnmUnIkR4A3hjVK/SK09AQFJsrEI67MUHwi3tSwyxgLsbzOwEJak+iuvWkdmhYyqy7rRIfH4mGjNl2hbCpcV1/vFvFVd82UbrS9AoWK2g8HMSJ+51jbDgjt2625ooXTtRHLGKmreudEKgjnApTZsZjNlAzXyh35PlEeMHw8eNnRLN35ek8stP0IMZU4kpXWfJ0Y6Z9Sm3caw2KzahmjR7M6WRfVhRL3fJxxY6brRa6ffvlrU2RcgRLAFcxACghDWNaFkoCQLSlhWoMHl9Z7dMAOAN29G/OkfryCs+N1/+2uwke0kC07GMSKlghcvnuA4DaqfxYw2gTFVAy9eXuPP//wa//4/vMNhr+PHApR1RSHCeWJ8880zPH16UJ0rwLIsWKYFc0pIawITYdzvoDWMSpjl6BYSox43nUc5IU8Tsgzgw95QKgSy3rdsdV/onG0dgn6/uXQh2ry4LlUZs8BanUFY2tltFB0rDgHwjFXRIgqqOscZwJsDLjaOjoqot2frhkNAjAYzhe5vQo7Ros156qbXP4td30x51FIIt1fqB7mTYR+H7twiD1+zsfKssY+Zjz2HABhai1Fj8XjY6qX9LmI2WJbKHAlo8qNvn9Xuo7WC6N/bdkGRzbBI93r3l+ko06cNEG+rs0El4TYkyXa83XiQ9lnXoT495MksvO0wfWDnzpIRH3NrRNDAnD3GqslnFg12ZHiJQKj2bP/k9ZtkdcHi5w0axHNmFeoRaf0Y1rerXfz/5viWOW2mrI1FKKdkxbmokUaIRrRSIcg06QbKTWHUjYRoS7/dHYEUTsMilf3s4Z248DRHst1iW4kcrI7gQeNZ/0g7gzoG0j4nLXor9X+9IanXVUiLNmq+3DxBvqG0pHQlu6j7LW3EFORpY3uXA0BSjR0vW26GFXw/86eC1EXQXiNslaMb4SBV9pshBCotuxv/IQaUlKqjWJe+G26PzKZnEtzIhTWOHcYRCAFxmJE7h9f9pkQMrAkbSkqCFcjqnF5dXyHljPNp0ns02Fnv/FXnorsjH1ryfh/JHCfycbIxqspAlQ4H0t5Z1JxVDjrvYhNQSiAoNAkAACAASURBVFFcuznIAnXclNVrxYsXb7CbC6JBQVfp14AuoGIsh2vOKKmx5BUAeV2x2+8xnaatfjXRK7lg3I21DxSTkviUQBjsX9shCLFTeojU1u+aMMSAw/UIEGFdElZjQs25k22OlW3Mj5wyypo2BkW030UEIQ7Invk1Y0c3IoXA+rqvReguhxTQK3SdZtcoui5D19ajEnEwofVA1Ixr4IB1XVACg4rmDotnBiEIkRDZiq7MwBLRTSpEkxMtNkDPUurQ5EuWMDeC1Ghi609luqW48yZaG4MCWgg0OEMoNQ3hhpw7LeSGTNtMma1uGEoiEGKwhA1hGALWlMA5IRgNv97+du363G2zj6LwaCIUcUilTzEbtGtbL1Kz7UURA8gZmjoBhD1ooZfwBiUSFK093q7YXZ/x+ufPkJKRK3TrdLheMFwvdfNtrSNs/ZdmnOqrrgGbzLgyyB1KhEAoKYP/H+repdeSJEkP+8zdI+Kcc+/NzMp6ZFV1V0/3aERJwACkFgSHBChwQQkQIYA7rbniH+BC/AnaciVAO3GnPyBIIggIkChxJE6PhB71TE/PsB+aqaqurqqsvI9zTkS4m2lhZu4e596qHu1KAVRl5r3nRHi4m5vb47PPgrMlisEXrc5GvPm22KNUFpyspNZp+qx1fyegRvG32QCy8ZNGnR0+6A6vKK0/YHquMpu2vUjQzJsE2Pc6NEck7McrpJRwetAGzPDAk7Q5ckPeQ4XwFbXzzgNHVWd0M3tZnVyNdtSpevIiGy6KQ1RFHXQA+XyGDEooFq0+bBy1Dm/hWUkyRBQyb3bJ7d2I27sRAYIvvtwhWvby7Xffw+GwBwP4xc9/geNxwvmszjhDoZggUYbgccA4Dvjy9YQ/+Dd7/O3f+8sGmSXC//mH7+HhOOD16wksGafjCXlWxkbxuiYRhfQ7I62ogU+SteZR2Oj7AZGCBME+AGS1eiA9A0JU45RLAQeFo4dilehFyUU0IMYNYuhrVwMSKpPKkkxVLsn2ip+dj9aGDXFBMFp2cwKslyOC94bjajfVHVbPBDtFXUahiClCaxvg8On2aVTPwAPmatd09fcuYmZ7eA0Yuqf6Z1qjeIMhuza4fGfzRKpK71oLVL2LCnTv5ro+rX4a0LPXHZ3oDI1oTh+69653cYe37snNPx+NWS7Wu/+ZwJED9qwskNTpDfuwQxWfEAF7K2utItvP1Lu4/da9R0OVOERV/xkevUCVEHTuYdXGJgaWAQ1giPWO22JcHl0hViBalXc7K/ogT+eY1JW7vG8NVP3/raaNbHPbDOjPrEmZkCpNANW4KKUgpYCU7DCWFhHbmDQilRmqhoKCHfC2RZP/XJ/anrMdnEUU9Al+VMYYIUU24+4vsx3V6K0Mat0hVqMy3ca0lxAWoyfXMQSxzUhtCzQ7omXLaoamg0kSpQoTZXQNSc1wU/uRgIvNgWYztnfye3YHd9NBYtAdag5l/271DtubElHXK6s3Fppj+tQl4g6gzlUpDHABnPyDLrMKbpBjE7FT5RIs8h2wP+whIlhWQVkXAGqgF3IxUkfH6x30A953T38vti7+jOjOpQ/HyTVCsGibOlWBgOubZ1orIc2ornNqWsojZ6LCheO9Ntj1Fenx1f28VqiJOQo+P4UZ+yFhDEEhaDUSCBAFI5VBpf5nCKyABPurK7z1thdKB4CKQmNtsk/zik8+eaMQNGbMixoBz9++wcuXzyAQrA8LZi6YzwvKmrEyI88zlmXVlgsR+Oi3fgv/9s//rCpdzz4Mtt6lo+F340/nbZsx17nLEIu+B+JGBCBbaRN4xF7lTYJCsQYRXB12mOesgSAizCIQgxfleUEpBbtJDcFIgkKEm2fPDcLjT1EqTYFgmnabyCygeoN6uerEtr+cftsPsY3cm6LwmhmtbXOdajqtDypBj7ZwsfO8DjakZIaaZVRCwJDI3tNbiUgzxGOo427seQ3S4oyloW9zYvLGwiie1eozzTbOQLFaY04OhWJqwHrPqdPDCCVAovZbA444nQYwq0EeghtCgjAwQuQqRyDP6Ktxl8UaFFvwztsEaPZHZ897XOvc82bR9HBPFeJboOeLZ88hXrtn0DtR+KaxHZhjag5NoJqA19rpAFlXIHl/QyXy0PYgnUiQBmIoJTtDNWPh3VBtYXXYbkWKZkDdWRj3Iw7TDkMMBtnLKMtSzygrZ1ZKehJIcaglKimI/9vFtDfHq9UFglv+inqwr1xsBmf2jEH1b0xJg0cdzDwQkLmgLBlyMn0RR8RhQBpHEK1YlwXR5qg8QaHKIHz+xR4pBrz97rsgehunk2AtBZ9//pmNsoBIMATCMI0YhogIMlKPARDGV19E/Mt/8R0UAKuxMs5zBHMGr+dKre9BaAFhzaUGPQVmz1TbMNTzlgTgdcZyewfOBTQMCPs94hARFj3vQrQMW4z67iMBUmomgHO2vd70qXS13m46iWgwDtwFAuu8EVpdT/seTKf2SIBK0nEx31Llr/9Z+0fo5BWAZkKMERPGeulD8W4/NQjT7oiayfWfkJ1zRB3J0uW10ZDoe5A+fgdAJJgMiwW0tzbKU4Z9+2k7BzwUZOahtufBtqfvdgB4MkshpoOAx7aSsNpUTyEnyDPo/llLLEi3T1twbjsH/g8SKLHYk/DBTik8ehWBk/r0OuNRcMd/R/Y7s0n6Lc0gxDEh7SfQvHy9o9aPTErTPe6UitV1eu9b+Hmpl9MJSgh1n1TiHyLgNzhswLfMaXtSygE1vnuHzf8U87s28LGWAvXPMfSw8i8zeUoTABr+um6J5i9o5IravfvifTd845AsStuUkQa+esfkYiP45q1FLe1jvgGbawQTCjdqLjDPFJCCbv5q7PXPE4VOuMPfGyEQODq5G8c3iezFJuo3uEWt+lv1H5PNqB4rh8v7yGb6yJmuuxurc0BkBzSgxooIzvOiDmC3XjWDSdCsYuegSvefX16vMIwBECNN8MLlNrn6/26wlXWP7JmRmuMZGlZbP4sKdfWIojvOMQYMY2tq7HPmRmxt4m1fD9FZvTqVLReHB7mR17WR6NYla0QAL997CeaitOmiNW4eba1YChuTFLZslb17YXiBrvoQUg/iUopCF0kN0iUXfPH5Hc6HBS+eX2N3s8f1kCr7Ws5a9/b82TWyPWOIAct51ueHiBQDOCWFQrLOCwFAKYgioOQRSHN2uDee2+HsvX36WkmQN0o2Y8FkqLBmXvKalXCAWBmnSNdmFSWRGMcRsi7IhTGNCasRmeTzSWGe/dLY+lztd8reaQfCBlJh1nPVHyFYnxs9cL0dgUZ+m0B7g9MKhnbCCZddETXO/d/d3vAARxMpje5ztqyYMeJy0QglBcI4JFBUYBOrN+tK0Q4nNmY9+46tR141UpuCuw26HiVbsMwGUopm8OrQo8FzQmfgm6FFtYAiQEghhsSEEhhUBM8++goPn70NXqMyYBIw3azYvXus7y9QuGPslOhaijqBkQAUhKhZCt8X3h6g1nVYXZDaqRa9p6JpP7DVR1KVN9/383qLQG+bMUQNQh7NCDEmypCaI4wONh09C9zJk5KeqEPKLBii6ZCQQChY1lLbDsDG6tBRgZK1MKtTysx4/dUbPLu+QsmM4/0JSy5IoWBdVggXzaQvKygE5MKY5xk5FzAX1Q2i2eNqt/ne8D3pxvSww82LBXlNOB8DohtOdTe35CECIQ5j1fvuCAh0/w5prPJeWGvUZbagpsCaqpvtYPfdPMl0tMKhk/YnFEYYIg6HSQmghgGRDOIaA9IwIKSIIVg/xxgNebDi9RevcX8/a0bL9opHfD0YXYoyPEbf8U15tQ0aghIwiSMcEsYXzyAAlnlBGlId/5gIg5GlcKwmper4FLWthmhtWymKfNJJcyNe9xXgel7q3y/tuWrEwiGi+m6ozp/J/oVZUI1we9xFrl0/EzpjVxigiFaJprqnZ0i0bXNxqXSEi58RYE3MzaJ7Cpp1cUnn0NZnbkat68tm0wlg8hq1BQqAi6907+tngP3dnqXohG++njK5yII6m6d0dsUjJ66zqapuMI3WHxQeBFLbLQKc61x45k1/pwP3IEFvN/r4qtnph5q0cXVWcr3CE+PejH3zO4F3ahYAmQhRqEMSPB5T/V4nC77GNTEDanW5dgN3si+d/xYo/Qa72K5vldMmolE/DYyqk8IUQBRbQR/MaCgGvRmon1u4VU4hIO5GCAjBDqfgBhkp/S+jebvb7/sktrUNQftjoY+K2ESnGLtIK5lt0QTNjbHqFVRj+XITuUdhAucGvkcIXchhEWjSuYhBM0NCxnYjBgTurkCC2NMxBtqOkboxuNdZF+aJxerWw50N/bFbiW0eqd6vOTaXN9WziYxNs93/Ub8M6v+sIIKmZMygFXj2iqqP4QpIqiXquQCDhMGdIX1IKVoYvi4ZUhg0ehatTVpl2rR3ilZAXUpnRMMcZmrmo+9j2IFONlday2aR2KCOWKCokWtX1CKb6E2Fk7oV263fozhItwQiXbTa3seVhxZzBxQBTucF5+NJacJDqPCsIqIZamg244P37nSsAFphTFtLV74C3edsZB5SCu7ujjidF9xc7XHz/Ar73Q4pJOziBBojrm8OuL07IYaAd14+w4cfvAvOBcu6orAWcJe1YM0FKUY1tFKyegmH69g8MaOELp/jGlkUhh1IWQR9Tf1s7LOd6pgT9ld7xCHh7s29rWHAAIWJFmhkdj8OdieVnZQSdgc1JvU5emc3Dq9uritVuGf8+mzxJhtW3AFtG2MYBhApmYBYrZEbQ4+2Ul0fNZx73QRRch7xViGdCDELIEVrg4wZU6P/Vq8FH6PZZW7EQHdtiC0LB9FMFaB7tmbpTF9zkeqkOYKKSB031xs+H5UPxOYppZY1FZRGluRlfoGQIvDhXyPkhz2++PiM3f6EwzsnzIsdoiCDJaPW+EkxU8VIktiZZ6H3ZVFCLYIYaQQUqttxCAgEwsFq86xEkLw5t2eFCa/LnwDl38cUXpo/2ltGuvZO2IAUTI/p/VmAaHPMLJBSlCTEtmgyx8PNn5JXuF5VB0gdhFI0Oy5FSTTAGghkEcx5xfLlLc6nGZGAdVk06CIZ8+mEsxGqqGIQzMcH5MI1wEaxZQxcvi8vCgElAx9++Bq/+7uf48svd/j0V8+QAvDJL6/qcaJipvN9c33CO+/fIQiQc8DHHz9DMgr9weCmIg1uGohQ1oz5eAazIPn5CyM1c3n1XSAAzGGbxkGDMqIkaC+e3yhMMCbElLSvbIhGUKNny7LMWE4zzqcFp+MDci6IQ1J69DW7EBsrru1jFiSvhyrsxxhyXlFKqS1GPHtZxAJq/p4sWOZFHe41Q8ahwVihaBWFew8aRBDNsgS737oWpYt/dJ4b7L00p2fj3FQHhSB9mLw3oi/tDvhZuc1Q+972cxTwIIeNqY9WQfUXS6lBk4CW0BBsPtrsLNc/aC6pv2uwd4tBWxTqkbudi6eN/Et7b3tFg4TOPGtGfTMX/RebzeMQ/ctn6VReBpjbOxK0DrXvO9nu3en6Ry9h9o6beXUlZeOI9JaVK2S3ktRM6ewXr78rm0c8GoCaDxeZznpmXc5O9wzqPvvkGpFBc7UGPhdGiLJ59lNrKVBUD4VtYLyasAaV5IsbNLn1z5G1JvkG4eiub5XTtimWR7fIxsbGzBeTp5Tm7JE406NCiokeplGdKY9EaDWwbTCtQ8u3D9soVT+cbg5TTBivBtUJ0ZLnVpXrkTyNNjtBQoMawYgoWKQpMi9WNONRrIYhGDuUU/xTcOEHtJOQc4W1DVNEgBA1g/CkeD1x2SFQU+UbQ6B3yAB3FB2z68q2fd6iWtLuU0eyvS2qMWcP6X3ZEEKF0rgxUueBmkLd7EH7d2V8hH5uGLRVQl8fyNIIS9xf7UlaQncP/9Odsto3pn68KQCxwZClzbiY0keDevh7t8nVv0vHd1uheTbIh+MJb27vcHP9DIuT7Ihn8LaKL1BHdvJ1DpuP1h3qztCvIzKZi86+xQKipRp9wfCcua4RzKAp+J0fvAbwDmIKWEvGeZ4RQ8I+7UBB2c1SVKcoi2etuR4iec24vb3HeV6wP0y4ubnG1W6PKwzVLyECxmnE1bU2Q3bWUnVg1InJXHC8P3YRU43gezAIUQlmUo289vNf1XibHRfSejfPnAaMY0JKEbdQ1ra1LIi7CVOHDvAvX13PGNIJv/pkBwqjsnhezL9AdY2uo5FO+BjqWN2h8YMB3ZqK0nhbtkub7xoExWjoxWvFsuqjMFxyvdlnQ8QGauIESHZ5go+XVQkDuI23sJpmXjflYR0BQEL6aq5LzOGKMdQecuzELcZiGqOn1brhODmReSnbfkMGK0eoRASQliR2sgHPSIYx4+p6xjkfkYYHX3g7T1pQxs8aZlTSG/Ji/FocowZMLp5ZMN0gqL0sq/agVpMUjJpdiRBN5xnpz5E/xi6+Xfe+vmMdZpOzOkVqbCuiQOHiEqyZNZmsi5YcOJGHGONjTM04BQTLumJZNUOeqv4G5sz43ve+wuHqjB/93x/gdDzjMEXEIWqN22GH/X5XnQ/XTcuasczOzuiQrOZo9NBk5ZkRvPrghOcv7vD++3cgAl69WvHuu79GKYLnVy/wkx+/ZQEtzdBPuzN+93c/w3uvBGsuOD1kXI87TCnhZz97C1Q+goQtYoC4oBxPWB+O6rD6GtmVBjtPTBRDJExTwnTY4+rmGtPhAFpX7A973Lx43sHklS6/lILjecb54Yg8rzjPswadrOZ5GCNevHiGdcm4u71DXlcUEWNVNa0TLKthZENBgHVZ1ZlirnZGII3nKLmN1YN5ptfOxCiCaRqrXUUi4CVDPNBptZEkQF5X5DVrywVn4nOZgwZnmBnrvKizC8+yXECdLw8lChDJlRTt4pfdZt1C21k6NE7nWqmdohEZss1RitYCEnkHNd2VZIRi/SI7y2E9waWJSD+6QIQUIlbkJy0uDfw9/g1d/GnUK9XJcXvma2vS6i01SLOKGItpyyL3l0gL/tTvOyN3d95txmif9715eb/tz7bB+gqJvxwJl2r3qK1O2BQ5Mjo28b7edTtfl7f1uerHUN+z+7vWI2oGttpHF06SnnfaAqbaUY+VbPsZC9ZlQYiX7XN0zbyucRNwsNd+DF992sF+6vp2OW3oJ5vgRA4UdFNSb2hHTatz13vDf982OwxaoAYnRVIWNDtESs6PBPPRxHVSo48RxNp4L8C315ACBjFHU1wetwvBYEjRw3RdlYkthVYE3BwTqkaGKkirm7LIxVoySlblGKM1+ObWz6nWBT4hBBvZAywl3TI3lZSgq0HzM7fzFgFRnR47auXNc3qHpi5Gu6cGSJ7YEN2wm7FKdVxPO6X6cz+M1HLZVPz5U1sk7YJBqW5S37B2V7I2EMUi6nADx5W5Pw5UqZP79Dh8TLJ9lBpkVKng9Tldxq8wcmbMxxn7cdl+GUDzQvzHVOf8N15m5JMzIdo+ab9XrII4AYhHNYPNdGFlpyoMDgr5LCXgD//wPfzd/0SNwmVdcfurX2O8ucGQRqs342ogavYFSIGQuyxFLgCfZqzLitNxxu4w4YP33sFbRVRJQvDm7oR5zTiMI2JIWMngls4aKEAcBzALHo4nCBHGSqRBVsOqDJOIBsEkMhY+gmc8SYBCQR12Nzr9QCI1jooAQzDImCnqtTDi8Qixniueab46POCwP4FlZ7TyFskXg2bY5wJpT7LL1i49dLNb+UfLS4A5jMFqS3WzcsmQsjYxSvr8mgUL2z2mEf4GNaFAraCfYEYQIKIQtzQOKrelgDs94XNHFrRSRJQYQYr1wDISCIfCcWHbUWwkI+ryMbznmBrPoPYYEm1WzEWqwS2kcE22FhVOVud1qNqnUPBw9wYhJCCtWAojrNqHK7OAVjYmYmV3DUQKTRQjZ0Dbe+RENRTtfJKaSQ9atujbT+e4m3uBtIbAYJQC08uMLHc4lr/cGDGqe+phU2UhF0YuOv5oY9AzSTqj3nQPqfPrJteldHER3M9HkBGCIWodZhEBl4y3337Ay5f3+NEfvQIBmHPBNE1gYYzTDsM4grnUfmcg6jIXLkNuREOdS6coJGCeC+ZV8IObGb/1/YeqhIZhQAwB87zgt77/FSIKfvzjdwAhxFjwt37vU7x4ASTrNUYs+N5375EC4S9+eQUaU6XOp6BTGFKwNjhbY1CgJRBTUhnFfsThcI3dOGAYB4SUcHV9jd2QUHLGznqr6j6MeLh7gy9vH1BOZ+RStJTCHCiCBRyJMO72ePWdDzHFhB/96MdY17XLBFKth1Y/SOePiUA5azaaUPVyDAHZapH6S7pUr8SAdVmA5Ps7VsEUa5BdbO3kBIPGl6oKxyFtAt4UA8bd0KDk1YjRP3X4AZeKzVEEPaGOvrIb/653++9sLQHZHMgqycWyisuqgf3dNIIogKmgkqS4leD2o5/t4iOx/U3bUTCr7tfzojkyT53AT9n97Zf+pfY2gbRuvq5FHVD7d0/sozrS5hb+Hts57edJCiz93r83dffs5rN77pOX23FuIzxhnzHFFjjoHaFucrTxOxq7sic6ykUdel34utBdRrGz2+p3GiqFLVjov6NutGI2eK699552BC6s2E68pVsvfy7MzqJHd7qUXQm9nHyzHfctc9q01iZAYWfTpEpxWZXeVsSwMU+nEFDDJh4WoWCFsKQRfUHtAyRcEFKqNKt1BNImrX+MJ6SkOnvR6KQTQKwGY9RDTgyuRQTDrTdDn5mx5rUaikMIoBiUNW8tGPcThmHQ4nyyaEdQ2EprIKsECFEYy3xCzqVlzkSjb42A4evdHHh0gEWZ/eoqwM/XjTBeOoLaJ6vNXfV7tk/ZaqtOMXf/AwCkEODEgTV6QvSk4PeXqxW2WqWSNVIZT422vjnE9o/QcPhCRiiiL4XAmiLnUixW0hy50I0pdE5Pryj9vm7YbubCNrNH08chQVLnMAWCwvlEeySFgHGI4EK4q2QU27kgo2rWoTTY7JOXj7NTP/Vu/l4hWNTfMifSviwgUAxa1O4/Ltrj8KuvYP0LI/bjDtMH74DSYOyqgpwjfv/3vwPgBNhBmDtGrho1JYClILNgWVbkuWDcPdfs6Tjg7uGIjz/5HC9fXOHZzTWCRVAzCZLVHk7TiCgBYYg4r8UcJ0Immx8QwjIDYUU+qYyfTFmPU7LxaLYJnCtZhtaGtgxKMhkW3ewWGCKtCfIopBlEv/psj08+nTAMVDPDDV7idoLVOuFiD3R/3xZ1Sx0Pnvg8YI6MfS7bRCsYyprLBg2iiBmw3c21/pB1LyQipN1kRDICEINCAK8ZHAOGQfU1rZqFhEV5RQv9lP0WzWnxWgp3lovp4RgDhjSgSEEkzcoWAWLHnuvdop0Om8UNEo0iBwjgtYxFAxAkioYQsoADC8ZR16yUrNmErPVuagORZc+U2CEwIEWJNarWE9exghSTOu+FoaQyOs7K9CsBgTSrwcKI1jeQC2p/JrcD2p7Q+fHv2PaotrIHG2Js9a3CbKgLbGXL9/sTutRVsbVIr98qRUDOpiLmWIpnUgU//IP3UMrbADJiStjvRsQYsc7zk88RW3wy3ejkMgBAXDBOI/K8YIwBJQS8fnMLFgbnGSWzNbQF1nVFMfjimgf85Cfv1DcJMeLFy4CRAJy1ZdD+MGIOhOWhgBGVHr0/E4qytnEvYtB6thgiYorYPbvCi5cvkcahkWW4wzUOiOOEoQievXiOw5cvscxnnE73uL+9x/GrO5VFw0p56aMIIzlBTyC8eXOHh9tbO8t8rozoqqIKqM6Dks5obWQ/2z3LYwtMb0xFZZ4EIKzw33yazWwK1TljY4DdyIqNKw6psQ+bXJXMGMYRu13EUvT8aM2SzTDvbheDINckDNl50yCrXIoxyjou2hEGdtbZfGxMDNZm1afTWXumijJTV3tKLhBbW5+ovaP9jIyB2K/iPR2tBUdDALUbPFVbJnIB6iKgFUx092fGWrgFOi7W7fLzvj5e/lLnopfv7r1U16OPT+Mp+fimq9rI1r8xfD31Sb2b66/6uO53wV7rchSeUe6/Uh1ruBzoXTYOo/0iQCoZjjy10P5xEaxLrnO5qTeD1HOmltZczEVDdPm+Rg2Buc6zv0DckexmgCKD2BqqP0F61F/fMqdNr8rUEyK86IaLwhrFTzRpVP+Xl9TwK4MQaxYrs2CEwSwZT3jT7Q5yMXHCAgFjzbk+X8Sa+JK2k+4XT+EuwQ5+UhgXa4bteHfUaFgMWE6qSFwRreuKmKJm0EQhN8M4Yp1nCAuGKSEmjV5O04gYB8RxQOYMWANc8aLZ7h208LcZit7rsNYweZbCp27jgHksVP/e76KIbaZtazxeKo12B988jnsWwMHi+ls/2E0Wvt5ps8wUVLkG0Z5Eu2kEjYMVwguc0tqhbp5ZFGNG0+ClGpqqiBjn4z0kJsRY82jWa09fRZQ/vc2Nv+/lUOu8myxJqxVgLpWSPQyXc2WGRVBmpY8/+dSc7a73k81Ndb82Gm07FP2xHTBfQ1JEpJT1u90O83xGLmu7H4uy4psD4HVIXhsyl4z72zuEmOrzwzoDtCCEgI8/PaDkBiN4KhLoQQYuAuICCYRlVTr2NCQ90FkV7O3rO+yGEdeHgxoz1ZkiDIhgEowpIUVtEJ2LIBo0MpDCdTYF7FDIEOx9RARrXgBSGmCiiCHF5iiUgtUgmdHaRMSodP8hAGQGd7T+UAztSTUN2jj6MvhUs90Xa9KKwjeraT/b0Ag9+qzPcXeOa7YnmCHXGyrhQv6EtfYnFJCwOjgUcb9mQJyJkIAYtK63OhCx3qvKXGj6ZfNuQEdZbqncvjEPWVa2eNRVjViBBgK8d58H6pyq3k/EnLs5jTq+YvqWC2OeBcPgfcOokXYENXajzZFYJoNgxE2iRB6+/4g00OBy0wAcBtGEGt1e/yAiKIXqzzeiIFy3v/ebmsIz3KTvYc5/ZDVvxxIhRQAAIABJREFUqJl6n8geJuRqiAi1VYHoa6m+t7VTRKcjO3ReG6TKbux7AtoyQ8oKATCOCXkFmAlXV9pLzKe+iGz2kut7tnOQCMqkmAUZUftrEWMMBCoF9+cZd5mwZsGHH57x2z94g4CAvGatsbJnjWPEl59fm2GmZwWTWA1cBrjVyIch4Y//7AYffz7gxfsaiPH96sESigkyJAwhYBwHjIc9Ds+ucX3Y2x5P0Mw1ILDa2TCC4oCcV8zzGZ/85Sf4i1/+TFuTMFtmV/dhEVgbDMtyF0ExBAKzOaPGag2QwfKp6XqbT22+jsqUKuYQSWmna6s76zbExTXuJlzdXOF8PGvdIjQYDFAlXnF5aKgX/VlecrWhiIAUdR4pBlBKkDx3Mv3Y2fi6q7BgLauuTUqAtW12m7sa9q5/ukuEtUl5ychrqfqw1o2jtQLQEo3mVPaOwGXMs4cRBluvcUjWu5TrueWj6VkF+vs5WyrX/cuajDBHUlhb2jhbY39mA1pnuZYnwHU1EEKbtXJ/AfW8qSeFIhZlq5OJvA1M60NX7+/fY65s0iJAkEbCp6NtOSyBIEhRyKFs7yV2ZjfaW0CYLg6JruzJf9IHLdECAVtbx0iWNkzEF5+5+EvwIJqgsZ5WG0W6iayT0sZT19ic98627nXo0xeB83a+v+n6ljhthtG+MFeYlehARVbaTiUDpPik2Y/dy6gCUxgU2MgcoA3zuBgznW6+yqombdP1guyTzlAFKVYg7IrXP6sMVMYgF0khEKUgr+q952WpB7o7nD1Uwe+hAVLbtCbM3jQ8iGA9MdaY1SEEsNsZAUAulUjA6cE1EqUvpO/bV/n45QLlktsJz6V8kteitSgBBUKIAsmEbhvUddluL4JHWeuS2Rxrvd/2eR5Jq/ZbB0NoGOKtxhWz8sZpxLDb414eUJZcN9JmND4Qqyd0peFY/DgMoJSQT6U+xg/PzbuaEUbQurxhHOphSmTRUO8zA1jtCCpBwcYBCwQq6lSTk5oIIZux46j8WjgeYjVg2rw+Xos2VjFDb7vfLhUeM2utxLJWuCfIawAv+oRZTcTta8Gf/vGCd957reyKUKKDzz/f4+H4Aukne/zOmxNkVYKEUhh/fEUmV4473+49sUikvnO/gIIlMx5OZ4z7CTtKFvHr30SdtxICBhIsoUCmhLMYq11IkJJrsKU+x+4PkDqg0orSSzFDQLTW9rxkzGtGCFQP8pAihpQQLWDDNXIqGHeDZTGNtKjuP+rkSuryeX2Kv08tPBfRe1BUp743kL2m48IhNYmBU8+FtIX6bk/wpnuc2piCtkYJnbOtSeKgtYpGdUwE8DKC14TmgJE5Bb632+t71sKSzPp0J14Q3yN6/HqvSicUYVYCF6eyL74XSacn2hyCCGKGUIhKHELiBjCQBv17ACpDo8PS3V7z2jUOLTou0nHBmEHje1nVe9PzWvfXwcAINbvYxNrJD/roLW1q9aq+YbGxBiuIb02Si9PrA81ElaZXYd8Tg096gEyZC/sxNqi+8hARQhwQLKN8gkIV3331CmVdcbx7g2VdzWF0J03lW/eP9pRkBIAShl2CLAuGIKBlwfHujPOScZ+B2cp4h4GwmyJIlK3yXDSqTsL42Z/f4M9++o6O3+C95/OKn/50h7/2O2ckg28vWfDrXwOf/XpCAWFeC8ZQMO4m7HY7kGg2+abs8N7772KaJhwOB0y7HShEMBesyxllmRECYcmC83xGPs/IhXF8+Tbee/8VhBmvv3iN11981RniUh0xzQpprzaAIBxqIGqZZ9y/eaPOJvR8cwp3h077ZvVazMxeG+x156j1TU6o5GevG/M9UUgaFAkR/f4ENMZsAiEAQfV9GgZ1iguDlxWAtw0ikztgmpRIZTmerObVWRe/2SDtbbn5dEYpjDQmTBNQJsZArh+pGseNnE7/X4lkrN2K3pHs3a3Ozv/d7zkfg+BRkoOs6YjXstbvmD1EhC2DoD3xqbyTT/E6LyavUZEJJCjrqnuDNeBBBGRjzG3Gv9oBvf0fvazC7AWqjep11rX3H1V96lB9Rxr4vGs9fKo9ADVxEGowIKVU5785F41Dobl023mqM92XIbmxbY6Qw+KridiOv/ad7d3qvkIIj2pPN9/8RrHr3Uu/r9og7I1uth4tOmnp9DMMpdJQOE6IVJ3ui0jAZo465++v4rh9K5w2gsEWnZvD3VZyoW0RvDYRaBGFarCg/ikiyMcTiM7VgWHhdoCFAO4hJag6y+7RQSbbqVyjqGLU1pCuwzyzwQWD9pgquRtTO6i9+aRuwnY42iehvVOiwor0xvocH1ApWmBcNJJHhs2P5CxmrXeVGva9ce6WfXOItL4mtpe3jdPseqpz2pwfM7C9RoWaMq2LCtSIYqWuk/bLTeAHm6/VOVGGwy38of2uWptWZ+GGh0WMQaieYGcA6T87ZUcAvBmpaEYFANIwIg0JR4tCJutlVN/HRuyGfg/r6F/I1Vr9vDupMCXBYlanO2/qYKchYJpGTLsRgNWD9fUAxnSoB7bUejGPkH7d9lc5r/nN+hbiY2MNQBRz5nulFkzRZhEkl31zYOZzwI/+r5c43DwDC/C9j76L+XzCL37+Bj/4csRHxyPKbDVVUGKYayH88AYVnurrUQ8T2s4vgNqstxStb0spID57tqmvJFDNAXt96ZAI0z5iSgPOyxm3p8XgnIMZ9JrRI3NMWhChKWOVHctUSxfphqBk4GRZ/eBF/FHh3iko/XioghyqzqmOZnXkYE5sd0SYvAe33QAIQtOV9XPAmrNCuqoz3+9/uycDktm9rnpVA74GNNzpAWQtlXXN21gUM0gDKbQsGiNgnhNCHoCk0fZ3vlzx2//2pHVVpI5PChF/8oMRr9/Sfm/KkNccaKJuPFGhV1S83smDK0Dn1SKIGp3uzAUBKCkZFbuBy7aePVJD08XWVkTrPsjgoh48U/ZXsZYWTrsu1dmthCJWmO6VddLRdlaEkBic2wJEvRMIas66rrVglXsc+dP6ngJ1UK1wTWWFUPdKIGW2iykgpdQV4pM6nyIoJSMEhYLHEDsIsGij6ZQQ84pB9hhSREpGCmUkMZ6ZoTg1fZsGaxq/gIgwW5/CabfTmlQzTk9LAcuKMRH2YwFRwXzKKEsxOKyeaSl5QIcRisJlD6MatqUwfvmLazCrI6TtRID1nPGnP0n47kcLDvsdKBC++vyI/+N/f4U3bwY47JnI2Dxt+8Qh4cXLdyBhxLJklHXG8f4WQhE5FyzLjHWeUbISf+RcUIrC5FIacH1zA+aCX/zs5zgdT5p1TpoRLsxV32sD3+Y8icFOxWtqQDgMCcciWLzxtDSjm8wWKLVmrdlILs+My0ybPwvgdoSrFrGzUJETLXA2poR1XVWKBarPSAOQ1a5hq5kFNPgRowYySjbD1+VxawBfZnGa8AOSs7aDMCgjH3bKBCxS7TLNUHu5QruPmFKtAV1rZzAMCTGqjVNr30WaDdJMiUcX+dCaMt58BWhtIaT/zuNbKeIKgIAQImn/QJvHdSnVyK/kWpu79qUKaHJh9pkiO1w90sYWaVm7fnD63YoyMBQKBapoCTLH3CH021mxUXmvtN7+u5xDCooyqLoUF/drCbeq16uthnr+9nbf1mauhtbmvnZU+KewBbH2n1N9O6aIUhiRrEDBN8OT3/FTHE1IiDbPJN9omzN6a339VZ01v74VTptuQDNkRbtrHE8nfP7rz/HhRx9CgqbIRQqEqa2nWJ1DUHgFBctIQTf3mgviBeEEQ6NTkcgKH/XwrVhnc9uZRVmdeu9YpMOKKwsWlSf8/Kw1CoCRdcRoiq9hqZNYBDdo9ASAMUfaZglO+Q14LZ8XfJaijTVZoL2oYM4KO1627UmNJOu4A7jlkl3Aq3nfftZnpZoJuVW0Zru3LWoOotTPmSJB3NyvMtdd4NAJqEZmvR8BHqMLG8d963BwN1ixnkWn01nHUrj73sYvtS938iFKWuNkAoXdQe/G2U2uR00deKGHlRaag1rNmzc030QbbWfvpklnpXA93Ji0ZmGaJuwPe+wPe1CwSE5xBRhqJg51BO2//up1I7mR64q7I+hwhyKbTMc0QGTutSkAApeCaNF8VVwKNQsp4nhKuD+PEBG89+4rPNy9watf3eLDNyfMQM1yuxL+4Aj8/Znwp3vCn++o6kh3sEPU3OKnv/oM3//eR+jlVKDMaZ999hqv39zj5nqPt54/xxSTsebVt0YmRmRCIcFhmDCMCfsD43w+4+E0Y2VGSslw7cWYCbmRNkBJkUKMZiDpKU7Uw8kMGieeGWHQIkgp4Oqt5x0dd/FZg1cRmYsKSGkHthso/soidV+7gZqS1oL2BxgA0x8CP+h1L3aWR2r3DI8OZHQODoNW1qyOCMQalHt7CQ12Rs1KC1SHuuMlAUMW/Ef/6xukAqSFNfJOJm8h4G++XvA//51nOB9athAQ5CwVMRA6veCHfjBjR6EsQEikxB3UHfI6nQrrJVL6c5PBISWM46iBtg5u1Eh9jZ1CBAxtb8HY0k0Hotp8WVxwRQDviWn1S2y942qU2xfUN2sfIESDOfZX4YIsx/odZ9sjEkSKeOu7b3D/8Uvt4UWE/Tjg778hTBKBlbCuBf/jTcACQQna68uNB2J1bIP1DEMaUEg19+H6GW7GHQKAN/MJp9sHsLXJWTMjrwyZ7/Hpp4zDfsR8WiCUwEwIGUBROOO4U2O/FMGyMNbzDEojCghxp3o0DgNKFqRScBUKJEXkzPjLXxL+6GbAf/DvrZbR1bM7CJDPM06nqAEED2KCcPtmwv/w332I/W5CEcF6XnB7LxBRopCbw4g1S4NVi+qwh9MZX37+GXIWY2VcNKDja3M6q14o5oTFWLNdQEGKAQ/394rKsbO6C/coUYjCdlB8n8FsAzFhJoWoS4D2cSsMloJEAQgEEnXcSmfYV+PQnhZDQAlAXh1q6YZ7+3wIAQ/HI3aHfbUbmqFMiMNgNa1aX7wez0hDssySIOfSWiHZ/fNaQB4oKFu57s+ljS1xYbD6q2gddGtSXJ0HQ6hQVfHNRWp7X1ESaUwYUzLHdPuoFnzbwsfbYG3emCq7d/9ClSwWGjuphjq28MjtyxEQtJ9nP5gQAoR1XzpBTn2UtGzeZX2hD8bPnerUijvWWhKgP7N3eOIWyollDLZO8GR6Wg0rwCut2/nns6/ts4ge37uGfB2tQdt6XPFxMarDuYlL955Y53zpnaX+a/PM4GP0NaJN4qJ5cb1hF5CGhCELhGJD6vd6vf9uP3f+f/vd5Vl6efWEL35LMrtT+BLE+fj6VjhtgBcpCjy8zSyqVFlrW2IkcAmQKG39TMdpDdNO677gRrxi2IMVdHoz4cKMEYwsgrWPZNth6sZJydqbKw0JFG0FmbHOipduE94krN9Q7oBx0YicMnW1Pl8esQ4ApmpAw5SRMr2VXCCk2Z2U3LgWq8soRoNtjkJR1RZiQEhGrmLpMt84Wq9BJslQw7ZG8MxheEo2qzC2Wodt/iUBVOA0rq4c9LW6+hRpDiFdeBdOlND8R2rwB1euHuG63BSi6+qOJIs2D/W0e1/LZ3+pP5OqFgTk7h8TpBQsS9bMwcXj3FjcOK02PwHKImgv+xsvb1mhDW5D/Q4XxrJmzEtGLhmFBdMwYF4WSAwWPOjhhF0E6XJypf6v13327z6jZDYhM7hk8LpsiGYEDUkqzNakHlrDYAcH3MgmhVgkIUxLqSxmzWiQ2qh4B+CvHwPuBuDXA20+x0Uw7ZISHdp7imVIxCKvMQasc8aXyz2WpeDZzQFDCIjjBKfbJmasBuJfiTCQRl6vrq6w3+9wOs2Yl4w5eE2SGKwpo0AdE20fAjCv8LqhSG1fK2uryvCQAoZk9W1xsCivEi+wReeJAO4ajurECg7zgpR2IDSW2Uu5y7kgL2fQ/oA0DvB6TGalYpfAGBC6w8ozqd3qZ1HyJBfiPiPvcx0TAEJeFjAII8QgKcacaMbB+XxSx5akOranz67xn/3ZJ9gvgrKsyNJtGlFjIgF4ds/qtNWJcFISqS0AHh2a0gxuCYScXSMRulgGYBk6lpYd8J0P60nFWecmDoM6eJYlFS7Ia0HubBECah0N234PIoo0QINCazpDHXMRVKKQOkry/dhZetKWQFxX2j+oa1vg89fDd9JOHeedAH/zHvheiKAEBNGekUkE/+CLjC+D4Ic7xm2KWO0cIWZMMSINA+acrf5aMO0OiGPAcv8GFALOX97ii9dv1GGJEcNuZ/Bh4OH+hBgThJSMhUKCIxd0PxWQFJRlwTwX5AxEWbBixO0D8OwKSAeClIT5mJEADMiQIMg54M1rwjwzaEfG6glMZsTnRUsWyAJPKSWEGDBOE0JMiCFiOd+D5QFjGvD2ey/x8Scf491XH5oDwFY+ITje3+PzX32pwYUYqzsgpEy3+5c3EMwombT+Zs0YJOL9999HjAOQDSpdWTE72QlaM5sgKDF2jrPaPRWsJcDdXBR2G6MGFliz027sEzTw6/EGtyuHadQ2CxDM58WcNkLvsLXtJBbooArH9S0ah1TPSaIEIENgsLriMmzZdoW4IATCaV4wyljrNKk7YfvLz+Wnofyk9emxg18aA6FDHAy42WWQCAXq1KYhIQzRmEMHv6NBNe35NRCp/9UYnw+lHxJZRn0zxBbk7K+a+ZMWlqvvbP8TC3ZpPZvqU0ffaPZ6a1i0x7Qymn6exhitVRJpjXxxeeImg1V5tPMghog4pOboESE0RvyWESKz97pg/HbyAKDV9V1evTVo07n9nNm+1barw2x2jMI+lazJZb3xB5DNjRtPenYwTFxsjLIZr95ouydabe8YIzZp3GZoPfl+/vvex+t9vUff6X8hqLwGZKzd33R9a5w2P6xBUFhK1Oji6f5UDzttlNwtuQkJM+M73/0u/uTHb/xmuoAhIh72Gi02oU05Q+YVIefq9Tv2GtkLxVsat3ghs2WoFJ5vG8I2Jjx6hs6INiWpGbenFGaTgRACvIm0Rq41pS8ikLKocVKCRs/F4RAqhDmXpgBDIwAgI9MQUsdAB6v1L4YjtME0AxiARtADodFobaNQfVap1bUIOlJ6eKbNN1JbMWkO02V0TajVWnW/8jtVGKAdBJvvktT5IxAiAdMwIA1JiWNqNk1QFZ/PP2nU0kksIAr0CaS9roZImGNSo6MNBlQjfZ2hC6q1B+TKwecVW2dJjTmyTIJDVanOts9bIL1XRMB7r17hlz//OWq9EnWKysZVn+9r2kURO5+1KRZtkGIEKzrWnAuOD0fknJW0pwqAva05TUWU1UycIc+gbBINrhMC3joXvLwvtWdNLzfF5Hgkr//SxwwxoJBCipgL5vMMPhy2is7miFkUnhHUkVzmBXk3QaQgZT+MALBS/DsMlMakxh0RKAjGMSkDXAg4ns44n2d1jNur65i9po2V5p4isNp7pxBAMWIaIw6HvVJiEyFa37Uigrv7E073D7X2iU0OXFxUTiKGYQ8i4Nefv0bdg9VYd6MHSGnAbprqnhMwHo4z7u4f8PzqgGm/Q/SoI8TaC9gLDbYvC4MKICloD8pumuMYkVcBrwrlXg3eikBa7yhSD5wUA9KYNLMPrbHVABRjMYq4/gxk0XYJf+OHt/jv/+MX9UjfZAQ94OLjrnLkUGK9fx9YKsUyJ5AGR0R3gpI1N54XxBghMWqArv0a4v02RfvNsenwdkCHqtfYxtcTeuhgHEFhRiisho18UL4htR2GB1QY5rwJVwIGN2aEL2BO3m8JAVNh/PVzwqtMOJUZw0jgVVvEKNQw4HkR/N2Hgv/tsOLnoaAIYb8fqh4JIsjram0eCjgMABOWZUHm4vE+RBg0SARrZiAohDCao1PX2JwihRzpz4eBUIo7HCtWIby50yb0gbXxtxRGFF+/gDe3e5zPZww7DeQMAYjCeP/9e3zx+gYQhb4FIhyur5TEIgaEFIztVNdiyQVfvr7DOE149z1ARGGe0fSHrrs6OpqJcSdBETqvX9832YSSRux3e5Q1g5M6FlwPFzdVldGyErXYmVO7ropmdcl6WIKV/VCDqL3h2uDi9axxUTDx5sKYFw0EeUYUwJPZ9BAI4zSqvREIaRgN7eSBFw0+EzOGkNQhsDNFSUIGjGZOiO2HGB0dQVoLW0fbLj+b3GZBye0liEApYowBwxgRjX24vmO9h+rxYvvFyblijIiD2k8UYoVrb17ebU27z4WP1P2D2j+l+6r9s3SBIP+0f9b38eYSdSXIWsE4OYre13o/siCEpx1sJd4LFqjUeriYNBBPpIiuklfwsmLJjEjR5gZgMr1YZUZtG4IGnBztoTpVTK9oHamT6G2dtSaX4msKuDLs1sktxu1sUDeXXmYEQc2MAQbx7mTfTcOtw0PN4e48brXNqatTdAuUutZQPhLAg2BKOGj7r4qJVNncLmd3mPmfRBcy0eUF5ethkAFqc/fHwtdd3wqnzTNEvSAQBIEEOWdoc8lQgcNSax9U0ZZLpkf7M0KMOSpY2YAonMFglFkuvmOCKY7/t80iRer3uTYJ1EtRUF4v0b+UOREujxcKE2g/K4VrKl376ABIevh5poO5VFRb3TTixcbNkNG5kToEN9fABWEYkFLAtvbd7lUKaIj90Pv/NdlGQwW7kdE9pTe37F6hTkKvoHqjq16t/OzxnJFtZnOw+siHoGHUfYzcFb7WQm1p9+5fqje0vMQhwrMlEUMioISNs9jYpPwQ1X/HQJAY9fnuHV1c/TGWM7csI1qknYjw/PkzvPXyLaRhwLIWM96k/ge0wy9QU5Bw1+TCiKzGqzl7ZPiOYEeJzxVDqfZbf6e6cPrdEGqvNnHyOlZ8w0BU577KkV2Ttb9Y1hVrpYpWeDBxwO88CL54FszA5crgVHLBsqxoWQqqzLG19pRgGaCAnDOQolbZsAAxeJxY15aNGGhZIaHB7yhoduzZ9QFDijifF8ync609atFZ0ahtCBWqHEIAi0bsSybc3R6rXDx7doWr62tt3rvMOB7PT+gD3TlEDjtVfbIuK0oxECWhyrHvH4cPBbVYARaIBJS14OHhWI2gXdJG2xwIkIiSc4U1KZJAny9Z1Ck3QQwWCHAYVy5GCEKxwvgKASFFhKTHidJgO8EC2/J4ncbFG/c9jvzdAKuVDZuAUn+5CuudOSJyjhUQxDIA9lyD/IYUWusAc5YpQIMOBCy3B3CO2L99b6XEgg6AXR1m/Xg1u+tYmjDC9plCjoagTb61UwGBixpg7N66f40sg8DuDPs+7+ZNzBE0pIStHA6r4MNZwGCEELEujLwsyjYnQAgjCIQUAvaJsBfGMRB2hx3G3VT1aLZm6TkzzssdeF1r5h8pIXCDwI5DwJQGMEVlEDXYdD9Y5oKSMzgQ1nXFWowkRYC8MpiDIk94wUCEGRqIda0VwHj13i32+xN2cQc2ZwIM/Du//QV+/CfPOuIaYJ7PVW4CKSmYknuojM3n2YIGDMqC9XhC3I1VB9cMZg2o+cu4+YV6QBERVs64vbvDu4c9yMnNzFokm6eYkuojUgbOkCLAwVoNuMR6zY3Y3lMGy5MoodnusMM0aTsgEeB4d4fzsm7GFs3ZEQFyafuKCBuYsYkn9rsJkUibrIPgdB1FtPYOQRETZEgnZ71GYcRpAElRmKqdaMOQEAmYa62v6Srfp/7vuq+7M9X+C4YgCgYD5VKQSftf5lJ0L4vWhuXCWM6z6l1mdTZjsCypnkVuuG9O4s5eaDMu3e/agNxuF5szZjszWaoudgesicrG0Kg/unBfq31Q3OYEmnPcXWIPJyLsxr0ShSRDJ5DCboWVXVLGAVLmqg9BwNLiWgDMwWNGIgYobsZOjtrwNG512EzTSINrAupYKRh/+3aXl+r2PgmgyrfiDy7svTaep+1nuyt6QHlDIDUbuN7SbcftSjW7BqxnQe5aWZkcNN2ATm66AX7N+5KgBowEGhS7fBUKVOv5H43ties3Om1E9BGAfw7gld3tvxaRf0ZELwH8twC+D+DnAP5zEXlN+nb/DMA/AHAE8I9E5Ie/6Tle9+OvXw9lw/pq7w1Pb9hhZU7LJX15JWtYM9bsHet1MrQR9bY2QUQ9a/K0KqNJCbNSCLP/kx/Nac8CeTF3CqnKT6Kbn7yYBTHqBu43bo1YBKrR46oQXQEa8xfxVjHEGIGobEDjbgAhG047W98pAJDaWNQe2O2UjasI1OPFjVivYWnjrdGtzpnwWXqaWCRo9Vu/yWBKzuRY7IdkI+i+3Ir6oZGh4/GE86oMVzFcCggqbhvQiHGxMfs7sgDn0xlCyva0rhmRBu1JKbACbGpKvc6LYvwVX96mpM2d22ZWlxGC1rhwi8oSdD73hx12u52Rf7R53cAQ/biRNs+9vPv8uNLtS3Hru1anzxWrH/TOZtqtq/8rBsT+N6QwLA6kBj0F/MUvfo4Xr094NwYciPD8+Q0YwOv7B+RyriQT/k4vz4zfy4w/+GhST6CDVNb1la5BsL+3GBmPGWIP5wXJ5D0GQuBoA2dIVoIVGZKxVhA4s/bggjkRIzANEWUJWIBKFONNeIkIbPAnd0SYGWFQGOSaGUC2eQAk503T3keX1c7tDjvrASkVak3C2uTWpzno2sYUq+HZ79JAGuEWFpyXgmFdcb4/gW72yFl7gwm0l2GMLcPi2VOXGkc3MBPuHmYsa0FKscLIfM8H27MpJQzjACnZ2jqgspntdiNIBHPXBwfQgz9Caz+qYWUy6AamG3xFNju+yqhZUQBQ6w8FSsdPphfEo1TBZQ3YTSPGYUJeVmRoNm3+asL5yx1AhP3bOicMGGmE6Uc2J8p3qjkwVR9D4Zlwxy4oM18khcSPkxIqcNDP8lp8BnRu0RxbXxo/FwlAGgYMg8LP1GnQoFjKwN+4A+IUwDkj54zjeQExW9ZBz6EYA8IQIEF7i/r66b3U4Wcj5Dmf77Dm1bJPYrWuUIeN2YwRW2tY+xJfH9Hm24ULlvOM04On7tIlAAAgAElEQVQiZoojQ4LCAbUPGmFIGgRYi+A8Zzj0ub9CiojTWJkERYC4uDMmlVF5Oc91AlNK6rSx61wl3nDUnYhgLRmDDEjGxKcQcEEypdjqmNn6fklF7iCoI3P/cMRbBmVm0+U9oiTZ+xERkDMQAogLhhQx7faKthkG5HmpNe61TtKDGjFi2E1IMYEIWOYZdJzhpjBRUB1c2Mia2lpcRvhrQC1EEOkeg82fGpqacdwRsEaru40RQ4wYk9oTaVTzcc2MzDY3RroiOUNibOf2hS3Tr+kIgkElIBK24yPC6XTG0XqiVSZSy+BWWbIAWkoRY5yq7STcIZHMwapzUkfRgfcIVg8tzR0gsz39hCaBhMeOXiCqevpxpVV9+3qfzVxwCwo+Xbem3x2GAdM0mDOdFEVFuvZk8B8aR2DNCCZH+eJ2ZDaZmkB+zktbK+iZtTmthqGr66NHMlWDDXY+XepqdrCouM0kNYtdr7B1zho6sVlG7qT2tmknWXCYqT6zmoTN5pL2DpsJgZLnLPOCNWtPUoxh84xvckj7+/SXy1R7i+bM+TrofBCIGIEJ5Tc86a+SacsA/omI/JCIbgD8ARH9CwD/CMC/FJH/koj+KYB/CuC/APCfAvh37b+/BeC/sj+/4WXVaNdGeP62aqARgBSD9RmzMzqQZr/so5X+WRxWov95IbA3quZSsDyxIVyp6IHJzSCHb6BivZjdOXr07Ro1UgdKN6Yyqulmqj3m/krX5TPau6BY1CyGuugCQlnWasTFpCLWR5A4F8RDwIvra8jVVXVQtB5OD2knCSEbu9S6C5O7Krnki4YhAOMugjmCIuqm6edGzx3vV/fYiwlEGBIgQSGJIlKpuz1jBFMycAfVHfeqDPRnfhAN44RxPyGvq0Houk0nqDTggMfRm2EkFLSfTik4nZQ5kq0fi0ADAR41DbHNBbPYfBaFflm21A+ganwZvDHGiGVZUUruFJJ9TrSe6eF00sh1FmXs+4aojk6mHn41GlQjmv7q1AxDXwM3mH2tQBgCIR0OWJYzloWBJSvlN+khUN1FUiZJgcIaxd6z5ILz6YxlWTBOA54d9khRmZl2MUCmAQ/nxbJUQIgJ4z7h/SHi+TjgOM9a91EKxnHAd7/7HbBo5n1DwWfrRaYfAtToqo1jiRBYI4sxJOT1AcfTDD4TKCYzRBymqsoUM4Eoo+RV220Q6RoUi6zCHAVjRg1E2F3t4QXPKbW5FRYUUoiRQ7a3h45urv1+RM7ZevS4rrBsUb/Oln3hXBDHAdRHrNTWsPeQCmv1rCWzsgQq+5saCRStjma1gMXghqvgeF51/kKw6Le9VDBD36BNMSUcpgQhwlqaHGmTdlJa86BtAYrVvIUUMe0npCHh/HDG3/nXd/hXf/tZFWaFPLYp8mhsq0+1WjLpIOkme+6YsTTSmwolK9bHcRwx7CYN4h0Jt5+8hSENYKxAIOyvXuJ8vsXqUDPA9qiNxGA5TFT3mI5DKtW/N0AGGUuwMMDaGiFFAsVoAT3viguD5rXDHABiYaSkhlkgQgqxBgwq1AzAM2P3W2atZVLo3ohxGrGuubI/AgDHCI6EsGbklXE8KRyYggY7NOgB8Lpi1fAznKVLYVUBKBmnh4IsEfsparsbK4qR5YjT+YyyrHaOq8KJMWi2xDJppIoRtQ9mPUdVT/q8/vSnL/HBd17jxVsJDosmAtY16b0vswUmR+rcsgV3g8lJje3XwJrXkRRzRkNKaD2r7DOFahP0QAp3pcKgZJmXons8l9LVuKojVEqBkGZ5RQS8aK+7uNvj8Ow5UoCyUp7O1QYKMUKYDYoYdS95X7fLc6AGeQW8rhcGpMBJs/ydHa2ga0OgISEyAGbkwihrwWI6aH+9x7Dfq20VmiFb9+eaEQujLAqnr80TO9XFcMRE1vPODFXVp9peBhZ00cbirjsIpaxasx/IHFbqyDJU5td1hZCe0cua9Zxasjpyg0LffTxWaeo3qEa9H4c+T81eaEiiqn/IZalJXY8ecpunZt/Jp4TVKbRZcbKlbLXtX3c5smQckuo+CkjDoP18zXlFtPKZEJCmEfDghSiTbu5sgiDKkuz/ARrs9mAI4QKiybZrpH9vG1uVNanPq3aayYnawl0QptpvbXoEMFh7J2bdLQEgVAb49sVgY5WarDAYqd/CIzQAmAJiZy/WP5mRVw1MlSIYeuISG0A9Q+pZwta+p9m5j5aQTAdQAHc1eT5UEUFMBZwTak3db7h+o9MmIp8A+MT+fkdEfwzgOwD+IYC/Zx/7bwD8T1Cn7R8C+OeiK/aviegFEX1g93nyCkSYhog1Z+QlgzkixUFT3OSF8s3YJI+uUJ9s7Yq4obCpNQYM06gYa1ZlFnMxRaGOUV+30hS43sXvBrSatd7Dx4Vg95dniBRCphLoZAxfd10EEC5+154XjA1IDV51RmtvNqNf7ZV2ILJ+HuqIiTWBrbAvYYALCqFJUz+E3tvxGSZFq4YYcXM44Hq/19oFFqylqGIWd1So7kqyCNVlNDlEpZTmqytwKcbcWOBpVHWmqNaOENCi7y2kaGuvTu04jgCRMpX1LyJkinirEWqUTNQVHMcB++sDTucTbt+cNJI4a23bMEXMs8MASTNwAAiMZPuY84rlJABp9lSDV5pZi8KQ4nBbhbhx8aywOj2n04L1vGo7A27GoIpCWwsxOFq/XG54f5189leteOpkL6aIaZoAAUqZK7xFBMa2KuAQQCIYTEEzSGG4ISBzwenENSqdhcGZAbZ6iagNqVWJhVqEHQT4e58Cnw7AvxkJ91X4WpajtgARoHF2G5zODrfqKdv3M+teRFSmWYggs/ZwzAhKJ88FUjLmOSM52YvOsDlBoYNheSZFaZJXgyn5FEZNo+qhakEcgjQ5z56V0MJ5jZCrfHjgpFkZmqnRwIVFfEMACbBmDRKkoNldCgGHw0HJWdZiwTCysVGVb7hR6bM7kEIjTTcWC2GoDaABBs4F5BmDShCgztp5WZV90FnEYGywar0gxoQUrLZnGLHfj5h2O4QQcZ8mnJc7HF6vuH2WjOreivV1FNXIc/9GAMuOd3IsDS3gLL9iskyA9Q4kjLsJCAllGbA8jLj9+ACKAQ7oCkg4f/YWZH+y+WvwoFAdQG8Xo8GxAELhYu1TLEuZVcaJnBk3aAJZBFE0y9TXIDNzvV+lPuh9+6Cvv4uEFdEcAXPaImEYUm3MG5MSSQwxIpmBR7ZH427E83eucZoCZqv5HcwYHKe9NbFXPfNw+xXmlZFLxrIs4PPZltTg+6VgQAbYW9kISFaUvGCMAbKfAOgZlUsBZzbmY91bg5HorLbWec3Yqiyq5+Lnnw1474OMIaiBe/tmxL/6X95HCLEzdtq+ISLbf+jOR7UNDvsrNUStRvX+9lZ1ge1j/2ytlbZUcARhFQHAKKLG9PVuh5dvvVRj02QiDBMOhwnTkJAL4+7NHTIKKDSSDjVmtO4rpIRlWbGsxYINlv0SC+cJawPs7E2LBGVZ9Oz2M8FnwGSUgs+dvjNzOyNEUMtMgsPaI4AQEczGCCEgHXYYrw9a/1uZYYHazByEyeqs1pP22CMLmDG7bgYgeg7f3z3UVhGuiygotDYGsT5lWpsb7IwuResmhRlnrPAszziNqktFsJ5nnOcVwtrfzUna1ChO1W4ELAPjdlK1lUTbg3RnRj07u7n1n4VWLAvPxPaBYf9qJSzbmGQGDc4C5hkBjW38m64YA+KQ9D3MnqPgGUe299S9EIcBZc2QUiqo6NKpiLA5YdWXVSaxzV6ZkdU5tA2d5VdtsC0CFFTCQIHbF54RRw3E9FetPbPAaU3AVCdZxyIUNlDb9jutoacuOKMcCV7Hrm/wyC0KoeM80GcoORVD3JC7nDgPfHXtpAD3JWhje/tfL1EDvUyVNYKCZiHlYi8/df1/qmkjou8D+A8B/D6AV50j9ikUPgmoQ/f/dF/7C/vZxmkjon8M4B8DwDiOOFsT32Y4djVPIiDrm9Aivm0h1RfK3c/0EIwRGKahPXRI2kTTa9BKwXI8d6OSR579NoOmAgvf7Nv3ga+EZr801S9QowHZhbWndN2IHtwZArw3WTNQyQxEYaOUd+EqXKOSISgUMg3al4e9h4tBLwDRQuFgPU/0t0jMWIYVsmoRq2e49DKiBDJjoq8fdDgFqRHppA5q+ETkYlFL0tqPWmvn02hT7kZwTBGHw5VCkpghJWMpuauLgY3Do9pbBqd2jOi/pK4HLi6tl/SF1q3tBmK3KjGBYoJR0Sgxx7pW0oplUdgQurUUK7ofdwnnU8a6ZOwOA26uBzw8ZCyrRrOYyepGCmIQpBgwnxUyqBAvxanHFLUfnzfrhlQyAFRonEDIs2tex9ZPsP/0Yk7sI0xdw1VXkiBtP+FyGAhSqDnOLbphxc7WcDtqJikFAocIWrU+Zl0yhkENqFUUpuwU+ACMIpu1CBuCV0j/L3Nv8nPLlp55/VYTEXvvrznt7fJm2pl22WVjZbkaXJSqVBQlBKhmTEBigBBiABIMGPMXMOIPsMQQCSGBVCCVagADoHBJYMumXG7TTabz3rzNab9mNxGx1noZvO9aEfs7NxsPkDKuzrnn29/esSNWrLXe7nmel78h8Ju9aDIBhzMFx1JqEFKDm3bxbU4sGcQ6N2y2V1hZKbjQdO/1fDbHXeuXZCvdYGQAVNK0Ve+7GN6RZ9bEnY20ZdbFK2z54mJHzoXD/mAOi423OLo+KsSv9kuCFoSqaIoZQVPE9NYW5DSOxifSaxs2WzabDSKZKZX2Pl8NbRGtvGVtvuoMOibRIVYtUHqcMM+pZXIFrVhWKK1yR1ROe0rqOHhnfB3UofUY5DsGnChcdbsd2Gw3GtjkxGYIfOh2/J0/nfjNX/DcXHvL9tYZbNBUM8hSlmp+TWbVeXx2OOWwSZsb6vjsdlecbnfMxw23r3qKiaZIUocTlzntJ8rYES6XPcFbOxrvgzWANYUyamWvVgr0udWY2Nt+ngVqn8PK2es6awrvHSnpsy6lIGUx3mJtL1K5o+QZ74RgyqRzMQhzEcQEN7oYW7KsiDburRQAEWE7dAx9T8ofInQ6T2ZdSykXnjx5aw6Q5/rJM62S5JnT8cTNq9ekaaL2vwol6K4SAs/HE986vaaUwnF/5K33/NF2R8r6nH3QfllCNI5qYLi4wjvHeDzofiY0CG9LxthA/MEfXDOnW7797QNv3vT89m9fcn+vc6qt9+aA6QanQ7Mk+upu+LWvfWzcdWmbofcRMTGvmuhcTaZm26SIeRs6N4vtHfoZx9WjS0ueOkuqWPIqhNXpbA/LpkZd1EEMwRNQiGuDh9mcSrMqe9ZZXtfAAlXTORH7DhEhzWt/ZTWfzCGuStb1HDlrhavmbYeh4+Lyks7WkCZEfEtg1MC++jMhdsisAafm19aVFF0p8zgyG0S2BUAx4ja9jpkLWpEX8+EM4TSXrD6EgAuOzWZgiJrMTKlAiFzf7Rk9pC7a85ZFiv9BlKDDuvTpVWe7RWE6Xiz+aJ0rNQheV8JXJ1R9gVJMwr8+n2XcHaZbYH5CSTSV6x93VMSDN+5eaHxLbevUdWqfUy7QBRg6mB2+CMzpbA68Mxirrz/jGpq9Z8WzW+zq8sEznYG43PSadtHOvQ6E6jow21WKFVF9tb2r59Ou76tuYO33cRakayxpvrCUM7/gQTSt1yALcmL5incibxWJs5ff8UV+6LW+e6iNN17rT/D+nzhoc85dAv8j8F+KyO0ZnlVE3KLM8BMdIvLrwK8D7HY7mab0YDDte2t/NgHnlHyKLcLaL+Q8flrDHAvF1M7EoEy5io2InAUDesofXpl49/UaZC0TuJKWW1ZA1lwr5X1UYy2g/JWycB8qrEzvwrXrqRDIgL5vblCIhTelm6deU7IGwYAqUaXE8XRintNivFYlY3WeMpK16lMbA9e1K2653zoK60mt/ASPixpA9w5mHxBmkmHRYVl2bRmuojfvPV4K750yP3eEf/GoY99pFj+lWTfm1Tnceo+1F+rCEb1tcirtebe54Tg7DyzOXg1IqBmjohndNCvMophoSEqFu9uJIg7v1YFcUJ+eac4ICeUOZU6nhBNn/XwMVx3sekohp4IfHJPBBWPXKQk9eDZdZJ9mfMkGA7DnVco5nMLgmzXRs2ywFgBUiyGa/HCOM/WxNkLtoaoT0P7pPJXYKe2Zr8ZQNHhbuSUG6VHOTjT+UhFhHCdm63Ok8D8NRIM5mXX8P8qBv1c8v3Gt17s4GitD52j3c5aZ46uCNrQ66LS5Q5vWVIc+NthW/VVtoOwsYMKtVsJKEKm+39veVIfszO/znhiEi4sdThJzWhrnSqzX6um60O7NOc+w6Y2fpwqytaWCuFp1d8xJ4W+hbcPqdA+D4IaBXDI+JUqawT0wXM7ucaYOsiqoAlKyJX/qxNJ9RqDtEziDWvkIORMdBrVz/D8ffcTf/95f6NQRVQzM+yP700wfoN8M1usp8uEsvH90vL12Wol0FRpt1UdfYS+VIC9LUAYmRS5Lb54zR12D3WHoCXSkmw3ZlIgdKrogokCDUgqH/T0OR+c7wmZi6YumY/AQdgyLM+ODU8XO+mwdmsxIheOLHZcfHnFOK3+x67UvkAjRZzoPp5TIxStkLgs5jTjviX5DwjGVE7sO5rrwgNsfbCiiVZgFRgxlTsxB21Jg/SP/aL7md19+zFEesybx6yEcj7u2Nzx//jk+ZILzbIaBQ99r7zGnfd3i0ONy4l//5BM248yj8UTJhTkljs4xPX+P7+wuybnQ9T1PnlxzPI3cvt2TCsRelU97yfRDx+HuwOl4XHiTK16ZZOHP/uwJz57/Cq9fHbm/e9ue7sPeVm3J2ZhUp7ImPqpTWL1K77wmIRwtSbWG4gJNsTf4FQ3DqX11QNd1BCf87Le+xWeff46k3KqnKlhWDNJr3y2FNM7cvr2lXF1DKU1FNztVnI1dt/SEKwUJviEFmt7/6tkJxRK4NP6gzk1MpY+WgCmrwEOKtgjAL02Z55RVNRU4HE+kOdH1GzaDtvQ4HQ/0m00L/rqhI1pgWYPhltuzrwrek4NCl1WdT/0hbU1Q2Gx7YtzANCEILnQMcUPhyOF40oErtYrvKaI82UdvDsT7kW1J7DvPFDUp5INvY/eQttH2NFh53qsIo71L9/oWHDtDDISAc3P7aF69J6XM2pSuk6GY7yRWPPDy44M25zSBGzzgg4nDePPZFkg4WGII8D6QglBkXeWyqSP6vrC63wo5fmdOPQxgWPu5dfiWZEK93uZj+9Dsb7uQOhoiZ35I8xFlQc69Oxi0eVzXIJZMaLbY6bXbLeh5f6II6isgigYb5ew6V3B9m9s1wfLjvmbtp9YXlir4j7/Gnyhoc851aMD234nI/2Qvf1Fhj865j4Av7fVPgW+sPv51e+1HHjVjsMC8zmF0+ls0oxwc06yVOf9gkOv7SxFIucEd1u8pqHwvrCBxZ+c457S9G2QvAgr1qBlS/bzDBwFrwlmdQnXizCB4T4yePBeThF6yrDmV1ULXzwezEqU5DEuQWVXWnLOmlmLQBKcBVwHGw4mDZYHaNa8EOtq9rQeiZZyW51H/mufEmzc37Tr9arU0jodtlEpQ9S371TKEmiKmFOF0PHFxe+Cvvspc9B3DdsNtdLq7WKXJ1SDZLbfhvN5HMLhCa6ArqFPrtVm1TgxvLRpqcL52XF0L3qsjqlXNWcUeSrHg02uVYrLviZodrc5AEd3AppGWnUtT4X4ewTu6GJfeU3bkIuTjXN1k3cydZlZzmnECsVOilP7n7PoM2mrfW43tVx6rlNB6P1tP7Jps0A3Rmeyza4ZGqxCNRdgqlILyTMP6fLm0DL/uZZ4uRnKekKSBdC7VuDhiH+iGHikwTxP5pJn5Z27gHxw6vvdwndu6dKHydHRcvK2D5dGun7Oj4Jmcx3Umu8zi3Hd9z2zy01XoZF29aT//iF1Zs6i0c9dGwK4s8zLGwKMnT/DRMx2Vd3AyhTvvVM0vxkgqmc1uw2a3Nd4jhBhbtjYL7DY75awZ9zZLMOddK9wmtaf94rrAjHI4JU8mrKHDo5L/dhOpgFHvgnea+c+12qbV/JQLcy4ENADMKeFjpwK/JTdu4auLS1tHpSU2Ys7gJm0Tsj8w9D27iwu8j/z1TxIvd5kXG8Ay4ZVP7EOHmIpmybKQykXFJZCCiwobxOYcaPNpsT07Z8cnfxxxMpqxFBN6cU3AJTvdNH0BP3n8AIj2T3LQoDzRB5Io1E+hvg7lTy0w3VwKOTvGm0fIqWeeMm++v+WN31IePeXZe+8pPyVBkpG7FzeICO99EPnWzx4AePvmhtu3r4llw2X4Fm/l9/DDQHmTuf2sYzyO/P1PJyaX6KLy5EoR5fGUog6kc02B+ZbIi7se5w44F82GZkLs6ILj9q6nlAQi3L39kH4z8tGHnxKiCiGMpxMhWlCaEv/osx8wvHlDGhN3tid1zjF4x9958YL9B4Hvx0hKibt7U1X1yquBmVIcaZ5bYiTECLOqxQYTGBIxfltxnI5PmeYbvL9BMlwGjwTHQWr1xxm3VxahLe9VqRFn3GAY+g6kEDqVlZ+OI9fX1zx7+pS7+zuzbYszJdnhQjAOriYZS8r0MdAPvforLtD5yDxOaKVToaWgfMaapC1SofxCmhKH+3t2u406/4q7NMSJNOVWFS3ZgAlHNDjtSsm4VJvwwPt2zhunONs+pQIkNAij/tEcs9qgKS09ROcpMZ2OVkXXoNEZP7ELCo90lnSuKr1YEq6eXRd/YOg65nHUQL62ZcjKaxSiVr6d0i8cmSJKdYiVFpImSsmKEkC/881u4NmXb5RyMCbyNmtgZzz7NE8KGw6Ly3suICfNYXf2vIGz4L3t8c3VWUctNkcEqn6BtKrOUrkRSeS8+JbacoIfezjv6Xrj8xHavFz7ACJFk23BM8+JdBotKA7gc3N2W8KoqrGLrNQrfZs60hxwha2K+QUP6Rh1rB54VIsveP5qO/ead73c5/L76uvWo6mfrpK11efyribnNQlgAOPV1Z1fbXG+tSBZVH/tZxzFx/O7eRClPvxEVcF84KRQUNrC6p3vfP4nqbKuj59EPdIB/y3wByLy36x+9T8D/xHwX9v///Hq9f/COfffowIkNz+Kz6Zf8iAbUeXS37kWddA2mw39bmB/c6DqQHoHwzAwmiCH8mNUdWzN5X84PFUiOp2943z61TGtgWV93/lYr5q3OkEbDsjZZ7SprhA7Z0RHrzhyC0K0J5fCMlrlxvWEIEZgrpj/81JqKUVJqV0wKWExWKKeq/PQbXpAVdVK65m0brWw3GyVyK6Taf23q069bZZnFdfV2KySHMuQrWMk1kGjMO1P/OqnR4rznLY9f+P7iX/8PHCqwhP2qbZBVfWoxstzLbOmZIWCdwEhr5xs81BrwHcWyeuLWU9OEI93nr4b6OLMMERm55ZqjtD6KbUcmm1SXaeCGwUo2dQkWbJPzUhgcBMUGlh/VUTwJVuftFol87QMnRnVRa2tns++Y3kgbX2ss3FK6l7Bj1fHko2zql3jLtEanCM1vFweqbf5mARCKbjg6UJAJGsfMAS8BnfdEKHANM6WzAg4F7RS4lQhb54m5nFmnmZk7OiOE2w3qwyeZtBzLkQHPoYzTkFlBjkzmG1v8ZZRlxVsyjmwtee9JkjSrL3nahxbx9W72oLdqhfrpeNqiqOeV4OedUW02kGVAHe40Cmsfs4t6HaS8UErRj44U03T59gDU1YDrLBHMQNVjANauaBa6dfnlZWk7ZRzmmxOVShkXdNtLsS6t6gx8pEGxcbU46TCr0P9nOAk2Z6iaoWI0A1RuW6ptGCzIQpEA6lpTOz3R7bbrVbsshnMB4kFrfA4qjKrC1E5Ds4cJAskQlAnMATH1dUlm+2G01E47meOnz/i6vLaklqO25s7cnH4nFQwhhoManB7eHXJRVeIMePi3OYCzuG7jt7mgHdOFRIJ9BttcFzmwJtXiddfXrHdXbDddLy4vGj75OXVY+6OBVKiHNWBznJJ9IUvXgY+f3mJC4B8wN//5hXz/l4rFBPIGJnePIJyoGTPxnl83xO6QHGFznV0wZOmxJRVWGO4uKD0PYfTlrvbO6Z5bmNccGy2lzx9csFhf+L29hYkt638u999zDe/CVeXEMIJ72E7z/zdTz9lezhxvx+RnFsL0GzPoXeOJ9PIn+cdGUfKnuggF+W6jW9rtfgSKR3eF4ZeKF6rRCF4Dqcdr189Q0rGOyHPG1Ka6OIjYu/pho5pnClFE7Tb7QYExvGeEAuhQMEzW/WXFux45aOeTpZ4VMRI7Dpi3zV4eE3B1Oy/whmdBvchEHdbto+vyVNiqn1ki5DFRKmyUHcGbA1EczhrMrDt/zgNhlJiHCetONvenYuKU4Ha/FpZXufqShFOJ5V7b6JfD13M1Z5VaQKCoZDMjkkR49kmXAxcXe1w1ypgpglKoe86Sk62b5vdyemd5KFZEEDRDDE4XAkcc8H1G7ogTEXTSSKF4DdsLnsO+xM5ezZDYNsPZ/eQSmKeJso46Z7dCT6ogrGnnFVcglMulMTQhH6aE14zBfUK3erfq+1HHoyhlKLVbB463UvD87XdWX/d8swWleB6rT/Mfw9B7ZL3QRE+zmk/Y6fwx8WO0vh9ataselYWf1VkLfRR/YLqU9pc9cvFtM+5QKUpnbkNsjTxfsCGsxGp7Xuk+QyCrN6wen0VRzdbXsesOW4Oivow9YOyMv7q+6ppyqsAtJhvG9q11ftrjrvarbzybB74R8vPjsqnV4XSpT9lfY+g8N6zFijtPs9fq8WnH4X2q8dPUmn7e8B/CPyuc+537LX/Cg3W/gfn3H8CfA/49+13/wSV+/8TVPL/P/7xX7Hgx2sVwX4ASivr45QnlqsSFxWWptH1xx9/zJ9/97vtrGIZqujqtospIp0fazf64QL8YQvp4WvvvOcrPiRiwYbLRmZ2Vi20SUJw2gcAACAASURBVMVyITWg8SQQp05XW1w0p7AGC8EyOs5pfzHvQtskcsnk/REwZ9HgTSEEtpcXTV0TyxpPaWY8HJtUdoNYoM5tDcSaQauOr9RnZk4+smrm++6Yr6RC+Wiv2P856mYUS+HrJ/jTzulmQX2eDoprRq5+Zanfleu4ZqTM5JQZx4mKR68PQuGT6ew5nUnYA3MujXu12Wzo+0WQoDm1LDBdbwGb945QilUnWHEubBQr0Bt9f/G0zbMezmkANM0q3z0MvbZucPW92Hf6lWKemIJlafK8602gnn6TEx8fCyFqdWAOji+24ey79fHUqp5uKtktjkddK8GqCb5u7H4R3qmwUW8VRvqMO2GVH0coSw5Oe9OUJvSxtp3dlHn+Z5/z5sl1e45r/PhioCunDRr01i2vY4IaXezI03SeKLLnUzOIvfHt9I9bpnb13Jpx8fjaL8AZj8tI/Ej95GL4U0qM04yfPV5gnmec96RpavLNk/VCC86R5tSgVQCHYgkpVFV3dCpA4b1nThrszdPMOM4E74ghUIoqqKWsmH5f1KnxQR1EQNVJ0cRHXed4DOZoga5XsajjaEGza0OgYiXOacItdFrZoTAMA8OwIRlMPedatbY9xcYtp8J+vyfGjmc/KLz6KwPFWZBt87itm5W9q0gDQTmDDml75xADfTcgp2vCacP8asSjynVVjc0Z767KTxdWkB2Doe8/v8IFYfvsqHPBUAxD3xP73nhphXTw+BhI0rGfIze3TzkWx+trFZrhJAzdpBBMccTTxM3bN6TjxHSraoKVqzJNierk+LhhyM/56x9t2Gy2zG+3pPEx/QDjqNyy7XbLtuvJORGjtp7wOVfMMCEENpuBl5vn/P74HiXft/00WDY+Z7U1WqXVoKaLgXHOUDKvXlxwe3PFbquO8bdefZfHb2+RqLDYbBkJo9jhvTrpf/f2ln/O3yRdPEZcR27rMCA+UpwqamoGP1jj6UQpmTwLffR88L4GLV2BP/p9IbOD8oHy57KQEeZSEBc47rWvY9ffcn19Yh5NWdlP7DZ3On1yJk2jiYksHFIs8Rcqn5easKl9A6u9sTy/CJcXF/i8SKvXPVdSVpRIDcbMifYhmEqeM7vl2r7tHGw2G8bjkVF0v6jrLMRAqYm8uqmsDhV9UhvoQq2IgKXUmqOoQZmJ2NR9tCIEmiOKCvsUaddee1K6rtOf00yek+7/Uas/zlsrmJUISavQx1UAXIxr7wTfdZrEzgnJM6AQ5hA0kRc7XafBa/9TQYguEqrNOo6Iiwq99EI/C/GYOF0MeK8NukUKMXimcUZSbkm9d700HY+YEt1pZtwOK+i6jfNXcdXMh3tob2vgtvj+ts+Uc3v/8HHWqlIphdpUW5UKdY3QEsA1AHIatNUKrChn25WiMNdV8NF82rNr0jMFa3tBmxuloZp0bsSl4vXghB5Z7PfqnivFoKy/sppnWX6sl6JV+HM023kSwsa5QIyuWqx2DotRzf9cmYvV+Grj9wdOqa1n/b2tcKmu2vLeJaFpwZlzXzGP9PgqyLbYmLVY0f7Iyh/5UcdPoh75z3j37urxb37F+wX4z3/sN3/F0WB2qxqpSCXcG9QsJ8rhoLjp1QSRB+dx3hN6R2eOfS4FqgiBva+IMGZdzD/8mjwP52j9jorZPSe0Vq7HQmYudVEXofbEEFlq4rk6ldAmlsPpRlhqtsYMuCllLYV8m2TeLd8RoauNsr0z4r5KmWYR5dY568dTCb7OHB6T0P2qR75c4xJstQVTg7hV+UqrHNUxWz77MDAG+MV9wUeTsY09eM+39wW3dfzJsJrdsgRKInXrte+WBjBkOp0QyZSCZizzuuKm17PI8X7V9BbGcUZu76hzb7Wmz0a/GGywGkXvFH9ejKfo7DsqhFSHQ+dMjAGiclrqb2tQ7INvTaVbw037/lwyMilkJsZANnEGhdcaL/KhYhEQi/DtG+GjYsIxDkoX+H0cn+40B+XEKr4mbuMecEcF3lVw8otICZbRjiEQY4Eg2qYjwVyy9mYKjpxdq64hynNABCsU2Uat6yt20RBP5assbZub3sHQR6Awr2AnxRoRV3htiN4CfKhOSUtBumVdgQaifrU+26ZrG/dut8WFoP24YqgPGOxa55TUaBVtWr6/u9fnmU1FT2pQp8e8UygPAmmckSrdTDW2ej0pBoL3Cs81GBm5ME8T+7t7Yuy42PZM40S82pFSYdOHljBAQJJoNSdWlP5yeKmkcIU6uhiVF2eKexp8jfis84+kFeLWpkAKv3Z7x3bTs7+lVcYrrKvNdrdAcFNO/NyfJ/7kWwNS4Tv23pyEENR5rAksX02YQKHQO+1fRCq8+SwwvnRI8Wx3nnmcVPHW1z5dgavLK3LJpHliOh41QGHZu6QUiIGc4PazjTrvAB7GGOk3G4btAEUY74PCWg3+/mLYQB+4jB3H48jpcIC+B4om2XJiPo4cT3pduj4Ks9Sx0okR8SQ3czwISKHsr+l618RufnkKbPtgXD5VCM5FA8/Qd1xtNgpdDVUu36Ctfcfjqwt2Fzvw+rvNENntItePr3AUuhjYH1SOPUZ1HFP6Ba6n13zj8C8ZTyOh04p/daoq97TzntgFdpc7fv6Dn0cun5DzbPZaWwrMc+F0PDKdTkzjkXnMkGZS0d5fLoshD0oTJComxhHdKpkCYImWKpSUypa79JgxFVwphJjYhs94/33fOOT1giWLwumdfl8qmd4qxs4WnvfKK41OxU/EOUIXef7smSac0D5wa7TbCiPS9qiiWTATlLLkQMnkkkzIJqkQUiln9IxgqryLq752Yu17vLahaQmp5qHToI4impxQ0adlLzBLqn9c3YsNgZJF1Wi9XwIR23NOhxOui2z6wYLQekHn+4nyEjMSoqIDREwp0iMEvK8boY5730VySWfnWNtAna8biniGL490XUcWx+WUCDdHDlOi73tCGNlfDcxDxzxPJsBkMPo2g5Y0YMiZqxe3DMkxJ8frx5u6xbSxXviB77oP9bUlmfhuQOYcq0rd+eedJeKKSKNhxM4UMes88m4RkDIfUXl+gdD3hCJtPeSULPhrLvD5NTefzDWBvErBqde3+CdLIFp/WZVZYUUncrTE6xm33PzmKsC1dD+Q6trp60aQb76oQT/tlM3nfzjWZ8+heslOzpL2ta5XAbmrDywJhqBUiNqjswmvNS2IunaWwLL5zFJtWl2pX30sASHaDOCHvfHB8ZdSj/z/6/AO+qFrzuoCZXL0fSRG7UuTrcn2POc2OfRPzcIufViqkzUbvyI61S+K7rzZYPcgIlsTzOvi6bq4Cjr0gp0zvLYpBenvDLJnD3V3sdPFV3+XC3NOzKepKbKpA6Sn947WcwqAsmyaVOfGtalRrxhQydjoHF3nKcUab5rCF6gz2QfNhPhSTIjEW98mM4x8xex/uKEoIL8O1pn4Sl1g68m6BCrr30lTWhOBXz04nl0OdEElmut4Bu/42widS/yhn1uz5aWypONcqysEb0BodWKHoWdMGTfS5LCbetE66KjnYzW2osqAw26rDXgnhW/4Kq2OnC3WmkCoO5XYWEXbsGvVV7+rOqvnY6zjVeFeqOHabBARptqSwcb5b305MmQNzj95/5JPN97UzR7uXucBSBB4b8wU38CixCI8Pnk+2apBDs5bw+118O7BZbPvBhXEnBJfq+SLrEG9fodKnN8cTg02U5vgSsvs2oZvcJ8WHLvK3czsXt8zfvKC09efMx2PegV1bmkUxfuT8O19YtfBP3seUBp9DYgLiOLOnUOrgQ0mtVxvndewuvMirUdecbSqV5VbLzkxnU7E6LnYbTGmnEGYNDiTbC2cvRrgedKKu8MhTgOkZVktVT7nXGViLo/TazCtkNAVgVkEJNseoRtKdhp0aoBTcLIyU84SKjYfK1RSclEoq2Vtu+Lpvef+cNBstvUtHKfZ9ja9VoVie/I4N3L51w93lDRbki23QKOwjCOoMXRo4FvA5rJOEhd0PL0rSPEq8mEYF+/EGlc7fOiRUgj9wN1Lx+lNoNtE/FZhasFrheF4mlvPMu+jSTwnpimRilhPP08uhYJjsEbm85wUrhaVWF9EVV9Pp5npdCSlbPB14c3miteHG3y/4/33tgwbrare3e9xCP0wUEqv7VpypngPHUjtIVQf0gSews088ccvD3z74/eQoIqluRRiCHyUCgFHltzsj8fmk6xgRSjEdJoTIUQ+/vgjnj99rBV8HPv9nuPhHpFCyAoRn/NEdBZoF08oQsTxQSx8I068ygUpE+tj6IJymCtEth+4un7E1G/Z72cO9wemcWR/f8/pOJPSrCqK0twsXDQlQWsxEYLy6UKIVLh4cAYTnCeStb6QogFryRmZBUTRFt57QhfI6X2+8bPa9mOxT+YwmqOb58Q8TvRdf74XSN1frSWG7ZXRWhOBJodqa5Y1ZMwbF1VzORkfIsX4s5ITs4E+hk2PzEmTNt7TBW9CSA6KoiO8+QXiPc5lltBQTF3SFDDFg2ilbvGtaLoKury0GteHwHbTI5Yg18SQJplzmhmT7mOx7bk1SanJk2gBRUnGfa3mrXF56z1YaxjbO1VBsWg/TAo+RELO2joE5f+mBJ0r1uerJiV0fm7uR65v9sz7mWQ3Kujz39wlhD056bjFvuP4waOV2ZV3ko9Pv3yLmzNhzogPxP3E4/HE7cfPDBVl4lw10Uf1eywwXtgIrULWEtosv3PWu2udvF8f2hPW/FATasJ8jsWTknoXjR/unLP1DGmcmkbC+qiXkkX94ZpkWXpeVoXQOl8qLNGfP8tVELWIgmGJoVpkcMZ7N2+h1EiXpQpWT9WCRGl1m9ZbELcEeizfox83X3DlouPcUgGTauOXNjIVbXbu3lbHA03k2Loptp/WW26P0vZptdGrc7SnU/eLlU/WgtMV8usvefxUBG0CZ6qJ4PBipFMpzGmZkBUhs/QYWnFzHlQWvLMG18GTgOwdYV4gcQIcU2LXRZNkXjZloBnqhdheCby+GcJSlgpLWS+cGDjc788mhbN+JmsIWGgZP2kwQNASeG18XYMDFTmQBu2p2QPvaxNSq/RYKrikwlwU7iGoulWMS4ZMihhJWt3M0ibag6ezxCY60fwCG2lGza0/ce701kBTYwA15B6Fam5D4Pks9CLa0oBFoALUmPztFPlb0vO/XWZej0dO0J6JglSUq1NrkBSTxO0HupC5f6Ok8m7oVK1xFRzUB+1YnHABI8lrYKm95Qw+9mCO6FcuvIKa5axGsjoGxdMC9XXVps2NagRsAxXncF1UhaiUETzPTsIvfz7TxdI2OZczf+3lif2HW15YE/f1Wc//LfyDlwXvI84JfYya0fWOIIWINoIGjNdjXIuCBfmrPY0V7GCdSlwlXELX0W89IRaOY5X0XwjUDfpW6vhVmKEF43bKUoR8GHF3J+TtPf2c2BShDJHBWnpcJOHX3maCwDBN/Fu548sIv/G0OlRmVHMhGX9smZ9LouGr4AnSiPawHXrG5JhLUaK8c9omIyXG2Rp5e79UJwFxnnHOeK9jGbwKoRxXEFrdEiqaIKNCoNJ4jXV8g3MQPX0ctHm7Bba1V0+Vy/DeM/Qd2+2WsB1MXl5alarOv4xZTlkCBm9BEt5RnCeJME+qoJiyNt+dk+7LtVG3A3L2TDbfa2/Mzz97yeU8U/ICiazJLkEWaLZOCkSqVL63vV57E3XxOb1LuLjB9Rd0Q2CeCve3Nwy7yPXFBXGY+PLzL5nuLhhvHP3W011tyXOmlExKmWl0lDHy8tU3lmRbmPn4g78g9le4+UhCuUPO9umcrd1Hzm0uuSKErspuC6cKW3MqEHMSTy6ZYLywaRqNkwey6oVJ5f9R2/2aoEpda1ul+KVSOJkj57KQnAbBv3Qz8WQqZA9pnttcaBlz27R3secogf9l+lli2DMM2rbkeNzz+WdfcJwyzCP39wdEFttifvaZkxqcg/CGm8NbRApplXDA6dqOHrrgQRzdsGXOwvF04HicePv6rbb4EYXGDcMAUedB9AvjBBRRELwnemfVBl3vXjVVAOXNJqtMLg6lJlpzmpmmkel0IM+qQvxbvwX/8B86fFQPzJmIjQE7WXY4NMNuytPVI09F8Dnhu86QLwbH9eoUHgGp2RCE3pvYlAjeKUy5pNEgxDb1redeToGCBjDOe/qLjb1BJfW982y3A944b2/mdCZk4VNhsw18OGwJP3jBzdt7wm7g7hvPudsfqFWEuuNl9JpL9Djr7edqix+3rFcvOja6T1coZCDLDD7w6LMbuD/QnUYOu4H76x3UjirU79PvTMYx1JMrHFJKpQFogmkcCx6t2ntxHEoBk1jHglGRQDiOXEwTswgSIsFPxkdW+xK8x/XaY44kfPDinlfPdsaxMsEgS2Q/erNnGDOPn1wTnOPzz14wTnu881wJlF/cIUETSjXJvrgCOl5ViKoFNO7cpug/tb2LD47xVAPf5RlqMJsU4uzVh43WM0yruWpvxZAL8zQxi/IzO4O0e6DMqek5VBPdaEgiTYijJkcfBhhrU+hdWRIq6wBUZ2qzn2D9MDUyWoK3lfK7ttbhzNd0nnMoI9VMLZ5GaWW5c5+zJnhrSLf+v1QhMK96yEtyRSzhqZW02Xqp1k+n5KzfrpxX41aDk8WCZbH+l6trWz7xbmi4vr/1GP8k0Ej4KQnaFul2W9jGGQAagb2Lhnt3ji6C8wpD0l5gKoe+4BjNubYHWQMy7z0lBFzRJsZTLmv/ZQml61napKgGLDAMvWW49dzzNDON4wO5VA2gSiUlG8wsehAXmKfU+qv5EAw7vgRn7eG5VRXAXvJ+ea0GbzF6MMWylEoL4nAGaypCQXl0YbvRZr7TAjtY6l9ClbbVzXkJbsE2bzyx4p7ttZoBqlmG9omWlavfo89a4UmOD8bCR4fE5TFzBOUR+KUPVAKiVd6cc/zbd5FXfss/7U8mJFDa10Rz9MTRJLSXDJFmmPNhpOs7HS+0aadetjROSzth64+33MMZL64dy4a7PDdMDWv1+UoErkPEMrZLwFYDPpu/uTBPiTRNOIGuQPS+EUa8Bc+SqwkM7Vw1u9eIxfbv6CBGfYZDHynSkXPhZyZ4exK+v1NOWipaSdGmn9KeW6gODBBsQ64ZrSCi4h323jIlrpNnlspB1HmSpc4xhVUUFkjnesIsmTXlKL736Sv8Jy9Jp5Enm8i/fN8jlxe6X9xrA/BcCkfJdKMj+8iZ0tUD46kJ++WZreOH9j60qFMTJlmUY0PRLHjnob+4xOHoNhuGPmggLIIna+bd7qIqqQbv8a5jfHu/NOVerfFpTBTV/GCa5lZtd86Rg8eL0PXOKkLLBZeixegKe8U5k6XWpBS+kFNiTkm5HqvPeuA0zUhOdH2vqpw1UIxeK43AIdUg23RDz3IXS3+mGDxP00wnWm0sq/1NM55VZRHqDqQo44LH8/6bxIuPVE1v6Af+/Ld/lTx6fOiY6RFXeYCFGKHrBn7+V/6I4C9INx2b+MKy9cZjuU3c3sH3vvgQ311wcSmEKDgXcKnj+9//Jof7A7/w5BPeH/aMRXgdl8FRxVfPPEXSaSA4R0/P3m9IqVDkgEMdrbtuyxgiLtWEmSBZq1UXVxdMJ4MIiuP6+pLLywvaomp7qa6ZlDM+KMcjRt8y4uM889g5LpLajjlpYFqSqkWqgKruaSFqoNOFwnscuAteoYWlMB4nZMoEH5FY2Ox2hnao/NC6djSB6oomFfzhFZJmLU6FoKR/W8PFKvVzKXRDx+5yp3yiUyadTpY00X06dp011a0Q2WVNlsZbL0xZnX3nstk87eclZBWccpHQq9ukIlqJoq2p2nwuOS/VXn/AUhbNAa4IGliqD76JgqkzXnBE8Ty+PZA2gvedJSW1pUtJykV0ttZ3pwk3zsxotSR0EObMuO2Ut+M9rgjdJpiAj84zijq6nfVYxHv606xKii4SPn1BuN0zPr8izVOr8Dx9fU//5S3z0DEVoQuejfeUL+9w28DBw+xcE+fwVvHBKRxfiwerUMt5c/SjwuBWe0ZOidNpZDY7cT1s2J8mhrsT2/3I4YPHygu3al5xei+d1wFOWPJOkrLuipBLxkmmFFW3lKJVNynKLffR44NQSqQ/zlzeHskinE6TCqk4DeJzFi42fbP9mKpoSJn3P3vL4WrHfLnBiRDnzKP7o/K5Li/ptzvefvkZDqHzDvEwbnokFzrRpIIPwVBRZx6j+YmLzV1TIvQxxuYz1X6iuref859CUEpATllbawQNgAqWNLE8Xi5CVVIWEy9L86TBSgxILs1mp5SpvTzX4nxg7o68GzgU81uKUWxAFnv6IInd/CCbRxQLeGo2+mwk6hmWsKbBI7WguvhB9b0PbLPymauPLxS8JqzQuR37Dh8jodPm7bHrEJwicASFH9u1dU6aorwDKJl5Ek3eRW/rxa2/XDUYCnQCrl70OpK0AsU6EK4jsA7SK+e++kc/Lnj7qQjacMqfEQSMAAhwOBy5ujgx9IMZeZM8dergBwXFM0+5OcTN+XHubEMWZ8IHIswGfRnOpNqlfW+TUxVa9UoHczVp7TryChJTDw0yTD0qpcXIbDcG71wgG9ttxHeR8TSS56QiFsGro+A1u+K98eTQxVOzJedNfZfxcd4TO98yQDhnPbO8VY00G+uEFfxSb1hp6MWCSFpGaYk1dDKK9yzKjStirSzE2zrJa2BUnchvHTKbSfjmvZLNj6XCOux6azbHKf8uxmhVQs9u6PgZN/AnPkOqgaeRUesCWWLeJrsuWatl8zSTg8Ju+yGqw5Wr8VjGoaa61xh6qX+Z0uCSiaRdebvf5a2WddVXVkOxOqRd/8LP1B5vJc+t0uK9I4ao/EwRitMm1nqKcsa9XOJ+15IGP3Nw7IbA1eVOoaImgpNtXjgfjLMQ+OLFI16+7cil001RnpgQiqOLHRUe3LZjKY3bh1O56mmEcByBk1Y3S0a8aDsMsKrn0gdsnbRYwy+wikHXRQ0Mx4nLWfilFyPf3QyMlxuKG60HmTnqwJ/FwjjODENn8JI2Xd5lJwtodcevnsH6ueq8SrkY9LZjtxkY5w+Y82NC7OjDBdvLPafjl+Q0Qu3JR02AFAgOZ1lRVjAUUEOds2W0SzaBhtCqcbrB6Yh77+3P4iRokspaiITQDIF3dQQ1CNwfTvRDz27omxEnOnrXo9wShaZNSVrQ6Y1jd7jLvHy502s1tEvfn7i6uNMssCU2vpZmfu3FCza5tLYQIrQKm2sZW9fWhS45haD+yu+f+N8/3hFC4MWnT7h9e8TTEToBb+IoFDovuDJTpsSf/s7Xcc6x254ITjgl2E2X3NwIX//ic74xj/zJPDF78AH6oSd4DQLKPPHe9IZvv7rheZfZD57/44lvMua4yP7+CeO+534/4ELk4mKj2eSU6TrILrHdZniisFdviZXCov6JcUscQp4nNputOsxnvGi1MdM8cnd/QnImBMcwdHRdT9f3DAK//OrI1e1Edl6z6ga1xHukQK49ykjklOkk86/5z/mu+xpjtnU6jsROBY5y2PD0+pLtZkMMERcCXWciUHitjpTEOE08erXHnwKbPrLZbhgPI0erJKqqrae/uOTJ06dc7C44nU7Mh1n/XxZKQDVR3iDtVfm4BvZ16a1IA80BzUmTr87lliBTPrmNpy2ZhaejsLN5nhnHiX4TjJfZls9q0a9dca34HQ5Hhtf3XM2Z4TDCMTHMS0UyRk+SgD+duHp9S0mZ7c0emTOnLM3JjDFyd70j9IGL7YY8ZWbnmcicrjZNUl6A0HXs5kI/ZnY3J+ZxwntPnmeKc1x/8ZZs/ketHGdXcHNq4iZzygy7Cy7nzGtfeHU1IDXp14KGoNUfZ022cSowZHDU+/sDKWkblsvLC4beq7y802TW6WrD01FpKjIrRPXyxQ2l74jiSddbpmkGZ7DLWtOwgNHVBGQRiosEp+0EiiiFRWPXguSECs+qamIRrZTklHUc0MRV1+l553k2IaZOESwp4WPg8jQTsxCsEbnfbDVBTObVFy84HjTxdrzaMneB/PSC66465V/Bh0IhvGqanf28wGbXRt85dJ1aQJxNxTfG2t9tcfSdo/luaZpQCSr1ZVTlW8Vu6DzzNFJmDdy6vqPbbZhm7ddY+8Y5zISgfMLomsdlSYvK86sXXjm+7x51vdXkd2v0YL7ceXCyGqtqxnDtDSs3qy2/6l/V9bX4WQsi7IwfJ4s9cQ6uiyOeEnJM+gnzV7Jou5Hqv4gIues4Pf9AE1OIQXY16XqcErteE5+lBqw5M40T05gIXQDpaKpaiLkL9TqXOytnY1Knxppqc+7Xf9XxUxG0qdCCwUOca5vW8XjgaNjybA5QzqVt2I18z8P4nbZIMjSeBEnlaNf43z6Exq8q1ZA8ONkyiNqf7McN6lJ1Wn6epkRKB1uwFU5ZGMcRRppyVCkKxYoRw5urA7a73BH7jv3NHXlOi/BIzW7bPVdBjtB1IJo9cybr7+xevChHp8yZ0/74zugpJnzhQSx/r4bWSvPZGnicNXpeZV/c6uE45/jmPvOL+wJz4TjNzKexcWcWsuuq8mTwAO+1yfDV9QXfTh33neeT5YK1+CTnk2GdtVhiAEdJhVMaiX2kGwZCiNo3plamalbFeQ2SfF7uZTVKS57o4Wt1wdbrsPetxqERfWtPHdvIzJ3FeRUp2W4GRp+YTlP9sFZSLbj3zhGBX7nJ/J9Pwipb7Oj6wHY7qOMtwi/uZ7oO5lwrZJX7F/leueSPjs8o9PRdjw9XhDDQ96E1hQ+hx5FNDdIqTzb5QoBc1OjpZQqnKfOb+YZf5p6PZG/zu5zBiWtVd03ZX4I2G1MRrSyGgE+J4BXq+74PPL4p/M4Wct8TO21M7pxjcvDicWQwZ8Z7T4gGpZqFYs22XPs+g7zYZNdm7yagEiOXVxfEzYbjYeaTv3gKOdFvOrr+OfitVScid7dPePrkJW290pHLTgAAIABJREFUNc9UidRFqogOzdhUzoI6nKX1x6sLL6wCzmDZ+Bi8rm0bK4dC0rLvQVITDDjsjyCZy6trPIXoHLsYm2Ji9pEYgnJlQqfj7HRedduZ4WLi9uaSN3cXOApzgmHbs9v1zNJB7Ilu5vISnj35nPsXf87f/M6f8Ajh4nQildyeuUKPF+7c+WFrrxSCD/RZ+Ct/uOe3nn2Lv/jjn8FLT3HC0A08efpI+1GWwv3tHYe7ERcypTimaeJwFLrwnOwHTuWKTCL2L/lFueX/mj80+GMhDsp1ds5xmhLvl1su84lJPFed55v7wp9uHXlOvL35WfJ4QSeCYyKnxP40EZxjFwNu/oDbw4n7uwzcwjPl0Tocp+OJUjJOhNNpVrXJUkjzSDcMWol0S2sI75RrNx2PzH8R6eSCKXi+CIH/+3OhTM/4R/57XN7O1qTeYLS59ourwltZnQRLFO4PRzYy8a0c+U78gDKrwE2eE4eUSeLpt9eErqPrO2okU5NIVfVzx8y/Id9BRBj6QRUEU2q8G92PHRdX12yvrpjSzP3Na6T0TKeJOWmFS4VEROF4ttSddwalpc2XWtQNtaGxJRbLnBGEXDyQ2jpvQaDREVRxUFekC4F8GplzIYo/42er4wnPnj0j5VoBt2DrB68YXt0wnDKbITI6hehPx4nDd77P43/lW8xTJk8j/N53eP52z2lKHMvSW7UlWbzn8WkmFs+ORMBxf79nnBO744S3gAXg8bOOrThidkwU5jTj+o7gtTdintPCpzbb0oWg9tlVmGtg6HV/uTocuHm8M7TDMjbeewKOEEygxGynonZUECkXbTPQKv9BxUL8xQYZetyX96Y+aBsXjqubE2F8xeZuyzxOHJ9c4732qE3BEweDbkeYfRX/SXgfkWzBTWeVbuPjeqdms4uZPgjTqEGrCnss+8pswWyMqizprTdn10c6U2OepTCdRtIMIwdtI5ALYx+5v7xk6iPiHRsRVYGuExULNCwp4P2SpAELvMyHOS+rCDEEai895wI+KGTeh0CIWl3LuTQ/M8YIYloO2gxVg9uUrLKrY6LIA6EfIn3UIMIFxzhlVTK1y3HiyNT9po6XUV5spdR5vw4m6r9KqWiuYrztJfHv6xsdLfFaRP0asbkmInhR+2PIfKOjrLwsEUrlV2JB/kOTITQ7osJLRmmZMrsvX5PuTjBO+r3V/ojyx2tfQVd9183A/Muz7V069vl+T/r0JenZJX0X6USxG+IccyqMY2JKM0Pul7TjqmdB8wGtqKFQSnubnFfVighpzswpG7rphx8/FUHbOtfqvEIrwur3qagEMSlrZgEhFWDO5mAtS6lmpOt09KAKjFZhyqsM/lnp1f5fq2vnzQOXtbdUA5b3v3t8ddSc87sP490HVCuNC0QxOG1UXGFGpYj1WMII9dX2GMzD1c0vU5LDR+uVVCfPPOP7zq6/Bl3n99nuZL2u4Ux+XCwArlmzd8IXqUtOF/BHx8LPvZoYZxX2GMfac+5HH/VZTJM2VL9+dMVVHxS6kjPOq+pXzdpZ+uQsu4VllOq6kiLMUybNR4ZNz8XljsPhSJ4VmqZyzgrTreV+11YcWj2rX4HCaLy3zVhKG4slo7wmpqrISsqLCMf5yFU+pgZGVWWqlEytU3gzFi54snc8nnUDCCGQfeTi+pJXL3+Oz75MFiQ5flBUZMElFTDZbgY2G4XLEno617eU1q5Xx0vFGwo5OXKY2vUdzy/XbiO3F/qgG1v2W9LFM+L4JTnNVFhki6/b5oU5XIuoyRK4LYtNQqD0PX7Y8ufDR/xe+Ih4ukJw/NMPbAu3z03Zgv8EY4Lb+0IXHYfjkd3mj/FhT/HRpMcDzne4oePySST4wBcvPmIeO3yaEf+Mi/iE1AnPvqHzQ0nc5tiKJh4Op8zps5/lww++A5RmjIoY7t0pKKsaeBVb6un6TmVTctEqhzl4mpiy/c/XSoKzRIwnF697oUFVs0wK7UggORmS1tMNWbOL2bMZdtDv+PLNXyX0A7vtFp9CXWzgI65kcjpwOk5MkyAeUh455pHYQfAdswyUAmNwcOgo09f4z6Y/4O14YkyZybLGa2jkWmSqPn9dIHUtKPyuc45HN4n7GNjfCU8eR0KANE+8ffUK3ES3eUrKyv/tNleE0HP3xQ8IXc+zxx+y3ezYPdqSUuLrl694ensgfhbo4wYfe7bbHSE4yEJJdwaRM57h6LgIAdnApz/4GsIGJ5mxZGarzpR5ZkyFMHRc7rYa5EsPL5/TX94j/cSYCofDDUMX2DiQaIqy3rO52BFiwGXlbWiCy+NcwbvC5s0lh9cK45+joi+mvfb9Gro9hynRhdrAW/ec4J06uiU3Z6mUwnS0nqbO8+9+7cQ/32z5o1cq116SCm9sLh5xsdlxOsyMhxFtbLzimLkC4vDTay7ffp/bVGCcmWdNpCx2w5Fy4tWLL8AlfIj8B+P/yq9v/h3mcSQlg0W7wjRlQtR1EbrVHNR256pwnAsUTWz2XcBFsQAyk7LHk8jo3punURO8YeHvkJUl5lEAeTHpelW8cc02mKYim80G7yOJTHeY2H7/S/Y3d/RFGLYDKReK6DPL08j85g1z+hlO00xAOL14TRJITiGTsSZJBFwM7HYDgmO/PzGOiT6CzIkggrs7qIhLAXxgOKndH3NmTGr/x4NCTNd890W9r6jQjHF5fAjELhisUOFjjz97w4sPHlNSMZ6m8WpzggLOKAliCZcQva1PUbSEfWeIHcPWQUp03vP6gyt2b27oYlYOX4a72zu6Y+QxDp9mnh5f8vbrzzHHDSQjpiDpQNEfKfHR5284bDo+j5By5sJQSgDOyFiDTEQf2E/TKvmnLRXC0LO96GDOzLPO0YgKqxxPJ6Z5Voffwemk1bi+74ndQNkFTh88InjH1vanruvRYKYmVqk5jbMjAMWxcMnA2odU2+/atToURZVnpRXU5EjsIs6nltzUPVFRKRroFCQVplm51BK8Jmu9Z4i1BYz2pAs+qACV91b5cxSpAdySkHec9xN7WJjQoCIxVvuDockMKaOIpEL0Dh86nH2nJkI0uJumRNV0UL/Q/l6Vn9YhYoiefrM1P9LhVtdXg0IRIU/ZFF8DKRXEz8S7A9NhPPe5pSKdZPnZ7BPHE3f/7x9y+dd+yV4v5NPE8MUbum2PXGz1XpzCeOeUyTnhSu2fmEghEr1jnCeDNVeOujCNs46V+eWanFSaipioV7w58Ojtvml4/LDjpyJoExy+KTU565GgTXa3uy2XV5ekrBkRFTOwlbIi+z84YYvgAXCOKEIaOvoiTL6QZ3WE93Ni28UlaPEOyqLg10754Gu+Olj7y7/n4fsV5qD96LyHlIpOxIOVgUXlakWcQY1qdqI2Z9ZMvG6aYhl4AZM9TeNIcrAzQrfdNY15szK8y99LYF2kIHmphtTP1aBR3+yXf1pWocwJ3pw4vtWFtPBbVlexGnPnlk2lBnY5CYf7vTrLjx4pr5Fkn9ENuOHuRYzv2MKntsPWbGwNbhWaOrO9uiAPhek4qohLFuZxVCeo3Z2009VamnOaKQvRI6Iy/TarDdZsuHPLvokUcqnVtoqFXu7fmbBJMaU3h9k3WLiTAvOUmchED30XeZw6snR8On3Mm0+fk6YJHzbEPpr8fqQfevChZVAPpSCzUOaM49Sed5GsWUDLF4l39KWz+63GpxgUSshS8GWpkE2AOHUi/0X/da42X/Ds+BLvC5Q6P1dNxakZyzqPl1rMAr8FJ4XXu/f5J+GX6fue3eWlZsq85/Z4VDhIwZI0TuFozmAfnUOk53gS3r79Jk8eP+b6egcENpsNzilPrR80I/9zjxcYslbiHOM48vn9S3IpJOebcl4VGZqS4/Hjx3zyg2/y4fvfo4vWq86BF1NtFcPhW9UAXb1q/LLCG6vAhfbcoRnlUgriOsax5/Xrn+H2LlhFPoBBwrwJGWl7EeMEfxnVWRS4evSYwUWGrZDSxGF/QCRTcmzr0nuPj4U0BQ7HIzZxceKYszCGoFBXmTkdJ+4Pb/j3Nr/D8fClhh/tmdUKek2sLeunChq1faDu53YNuxC5dh0udJxSYethPI70sdMWC12hiwNhp7CllGa2ux3X15c8enrJ5ePnfPMbX0Nm4fFf3PHEvebibkscHnH9aMujq0eEGDne33PxxWv+1fjS4ketTHXF4aaBnDvmLPRDR5mTOe26ZpDCy3HikAq7iy2XFwOXg0f2V7z95DVfPH2B6xMSHPFyp4iLXPlDRZOQzuNctL1A94acE9NBKCUgXvulddHjSuapnMjTTG9l4cqXC6aIeLanmkjTODskJJ48f4+td7hXP+BwuCC9vWfEU1zg8mrH8XBQTrEyOW3f1L0MoHjhP3W/wdt5UhimrcmUdEut1XPnHcf7Iy/mL+i7Dhc7prTXKltRaHcQ1BFLkIrHl5nQdzhURThLRtIyXTRZpkqLlCoF5shSUB5TwVC8hFTIBvmm7jNeIZ7zNGtmXqTZsQZJc+C8ENLM8fUNm++/5NaSw8NGURmU2Ro1O+URjRMUweXM4TSzLzpyGmxmprkQYtCAMc0c9hm8Vv3n08gpC5tNT+cdfRcRcRyP2lj7/v5Inidcmhm2W6akz7PrO2QsYOq4a0U/QfB9Tz8MdKUg88Th7W0LamIXTVUafFS1EH12We2581rdjxFTceDy8TUlJVwI9JbwLUWTyTInZu8p5oQq1FHI04gPgc1WHV7vHX5/4uKTN7x9ftmQRlVFmjnz5NWeR8OEbC+4HA98cDxx++EzuNrggxrBqoD95PNbDqcTh5NC/2IXta+lcRddCRQnFO9JvdJjRKCkmpA1SGZKbfz6GDjtBrwhNirb3zlhtNYrIoXT/nSmkKjjoXazmNiZJFkKCtWu+0LzJiwAKKWQx/GsULDWCHCnUWGhc6aLHTjPNJ2Y5oQv2hojCkt/0NV5nPcMXWQ+nnBOOeneBKvEDFNNWKzbS6wPZ3Z8HkfE6D51vIpRHFSFsyav9T3V3xILatb9ORuqqn7fV/jKPgdiZ9y/+pbVh1QxUmzcpQWDCjXtoRyZTycKqjxbkzNrzQhEZYS897gVukxS4f43f5cQOqaUmU4jJ+fxTHq9p4ltSjx7eWAaM4dr7b86HUcEYXuxYzCBw5IKMk1IzqqGOxWuPn9jhQ2FL1+GoInbGJE08aOOn4qgzTlwQZ2OIg4nCZw6P5cXF8bF8vikzT8RCK4ad4v8/z/m3uzHsiw77/vt4Qx3iIiMzKrMrKpmd3MwB0GiZZuUAPPFgmFYgATYguF/wK/+8wzLAgw/kDAsywJEk1aLk9jNHqqrsiqHiLjDGfbkh7X2OTeyhqb01AfozqyMG/fes88e1vrW932rVOMHHh1ctT9bKUU8mRTlWBxukIe4eNSU91Bg+MpE/rqJ/U339R97lcKCklf6oFVMxFArFKKpqzo3Q6F4SQJW+wOWBZG0Uaf1jegFrIGUv7JevvV7FyjmMVVwGYvleVQK1Prv7Wnm+68HFXuWrx2/rybJj0WZskEYpilwcwq0GwhIEJz1l+rnxhgx08Sadtb0o6571cHpJpBS4Xh/pN907K/2DOeRQmGepAmzU5SyojXrLiNUr5zFnapmVGZ5zfq3Uup3RB2oLrVbSpkz670W1R1SNziEOoQxQqfKckAnK5Wi33ud+aP5BSPP8Y3n5skTNn2HdV43PhEgxyjBtDxLSbxqWX+5q+pkWmTJVRGvq8J4lNakwaa1cvg7Jz3ScszEJJXR7W7HefNb/E7scWkijBPn88T9/UFgyeVTZQOuh2V5NElkDfxN85Q/9L8JiBgcLKkE2RjthTC8ZOkBVAquiBFPHBP+uuGDZ08ZzrL5Cr3DMI8jGMuYooIB8tkhgzGe/X7D4XSkWK8JdcBYT4qyLk3VOeZEComuu+XnPx/54NmneD9KoKGs/5Sh6Hev86UkSa5SraarzsEYs7ys5EzKlvP5BafTd2m6ln5boLBYo8cimHU1n8gqTqcImjePEwZD2G4Y5gjW4a1nPg2EPOiaExvzzXarVD1xi3POcZ4mfNtRTKGkifM4QCl8FL6gjF9wmh7kgF56qa2rxVqrdJS8LnJ1EBXDh7KAKSln+s+OfPDZW6L9kN3TK6ZxQnxxIr2zQJJ2C5OALiGJrmgcJuYx8NHtLXvXs28i339iGV8n2qblycsP+ei2w1rPMRiOpUhPMe+VqSDr5KPo2bx+jndXGJIYb2TRwC33JtA7KUVymnnRBn7lRn42bwp/9u4Wtxvom5YyGz6zhZJEY3Y6jWp+oxXyAiWJPms6F+a7hpIMWEuMkZIEyf9v2r8hxUjbi+ueon0ydIU1gDKC8soWkolz4Pj2Nee7t/yOd/yb+T9hwHEOiauba5yBKQTEjlx1TRpcGj1Yf4vPSXMgxUzTOC2QVmZI5RMUkW8qhdqkhE2ZX/c/5V+XD3R9Su/J5SxImSFamgKYFR3PKUvZwtiFmiemNUZaaaAJWSranLasRg1CCxETqlLUOCkKqLY40a1TUYAUy37f8f2YOZ5m3tVYIBemYSTPk8QSFUQyIquoeqCq84kha+Bv6ZyhayTUmqYg59M8U4pZ0Pa+9cK6KVoRsdIGYTgeySLiYlRphrUO13hMCJBlrKwmUzEECRST9Cp1RjVhRft4qnayOhSvmj7Zg4pBKvQGjLPYLIYWXdeSmurcucZHKQlol7MktqeXt7R//RneqzzDWqKyhJrWy3x6947NcGS83ZOc4RwjLmb2bw40EUrbE+O8gLA3r94yd56w61UuAd1pZAoz52kWBgKWEKMCp5BjYjxPlMbwcLtj2na8+PweMycFP1M9VhbtfQyRYddxuN5ADMvpXVhdbkspmJKZ5lmTHEMto4rb92NAOl04ftREWfblsn4H6hLOXxNbCm2utivyfSaOM+MwCQPDqw46JNoW9Vdw9F0rVTkF9je7zUIXdY3HlYh26GUVz3x9XGatwyulO8Ga7JayaOPlm0o1rGol1+pv1UlevL/Gd+VyHV4GQBpnZWQ9VyD3K6jUxe86K3tg7S8rJlCGqC1OjJXnYaxQrdf3McveJRMC1R3Lw2jPM+ddJ5KB0yR+GO9ONCkTjcG8fmD75QNunPCzmEy1bSNAjXe0OdJneb7VnCTEpBRoQ9s1oq92Fpx9rL//muuXIml7/3osyssLDcw1LaRI5dIuz9g8AhceBfq2FKIeaBLUXLwO6Nxq1HmpQ3r/Mu/Nrb/dffztXveNn5dXB8RS5FCw1pJSpDZU1E9aqgF1UFZ9lNxTRaCaxot4PiV83ypFTzYm2YQlwfWLFfW6VuoGVhMR5yw3p4k8hYVqcbzeYFqvfsxrAodR5PHRPT5Ojv82V86JaZ754N1A17Sc9Ns/OoKNIKx914G1gpDlS6fQCyMERcAwEiBMp0ESAKBtPdvdVjjO50GqGTU4ySu1sSDBkS1Gk2cdrwtQwBizUCplL9CnUx7PV9EZaLU5r8Ft0cZUKQsVNMGS60ica/mj8iv89OZXeN53NE2jPX7kSrmI9iRLYJiXCoi8QXWJK2XVJ9Z7qA2jJYBnqfBiHLa5GHlFr7M6ukZF4Ixx/FXzCf/V7cSNC9zfPRDil9osdkWIWT91GdtadaxAy/9nX3KaIjGclVvvaLseYwpjSKQs37FpHFYROIMETg/ziRhn2u6GgiWEwN27d2IjLhEbKUehBalWE+PZXj3h2dNrYuqJCT64veLtXSGEWcABnXONbzHWcDzP3N5syfman/74wPMPj1gz1SGStek7cd6zVaOhQnHVoi2jYFbROcby5s0LYnzCk1v73j4pQWvJhViymtWgPY2S9GfT5/P27Wua8w7fdXjf024lAVrBAw1AQgTVTc5xZiyZrmmErjWNxJQ4nU58Uu75b8Mfs5neEZR6Vg1H6vz3TbMEcNI/an3c9dyuFXKZQ0IFQvu1eeeIzoGRoHc8j/S7PU1tLO4c3ipYE2fOxwN/+dd/Trvd8fdvDObLf8fpdOIf2MSfTi946QZSnumzpTcP/L2Xid25ZThJP0HnG6bdDU9vNtycWx7uB4oF6y0hZjZ9K420U+J0mnHO859/r+fFfm002/eFf3CVMeYaY4QOvWfkB+aeeZ6Z5lnBNau6UxkWbzPpriW9ayglAAZTGoqVICaYQL9phUZVELv0VDP7stCxcrlAoIsEcEMRR8Gm9ULtCQHnG7ZboZHKdxAapOhA9DnqXvn75c9I4xlpGSIodIkGqr5F96zF8CpKUuW8578Mf8G/Ks8WIDHrHJE+hAlDJkxZzx090C2QJbjMOfPd9CO8hbtyzRf56WJ7vsTGxmGsDKTonFf9LEYSuJiS7KeqC7fOYp0hxyTTLUdSHrEp6feXYK4o4IWuR8Ec3LI/SqIsiUrbCh3RezGe6dtWaFGlsN3vyMYviWtBXCgZz0zngahni3WWvmvIzlC8MJHCPEMUvZ0YI8h3aPpupX0ayNqo27Ue33cY3adMzjS5sD9OHPYdKWWmEJmDJBwYI1XDkrFJqmfOu8XQBAON97T20qxtraRbK3QvtPH8dDoxpEzXOKwXnWTB0I6BZo6kTYOJmZs3D7ghgiaG5Eg0UjVyvqH9+Vummw3T9RZj4MnrA6Uk+sYJRRhHaDzzFHQaGLrWErYtPL2mK4Xxwxu2P38ne1uMy35Y9VZhmnn34R7GUZJcLc1YI03UK3BK1fKj4ECN9S/+93XX45zkFwPXsndKTFDHOYbIOZ6Yp1kMhIrIKEzOlBiJIZCSJPU2yzngvaPdbyghcj6PhBCwzgkTaf2kr//S+qMldlL5TU1g6xkkVOyCwyz9fut4mdq0/puUMF9XFfnKYJT3ozxgjcEk1qz06tXa/+vu61FlOq+tDGRPkn2mBk6VRVS9G7rP3jHPMyEX5nJh1qdyh7Zt9L+Fhh2D9iiVRpAr+yQXjHV0mw6vjdTRJO6reu/H1y9N0iZNqgveOumhXAPALL3EnPEIqq4buoW2qV3ldSBYNxFyBudIxqihgFCHjBOL25wyxIhvxRZ1fbgX09jUhfbY2e6bEIn194TKtHCwzbpg6++tAb0iX4pOpAVhr4iWXfjF8jMrqIFJODUvyEkW59q/7fGt5JR4+uqe0jqOz2+W15j8+N5syux/8iXDtiN++IQLddE6PrpDXc+J/cNEPgykmHC+JUwBczzjGoe52vJwu5ekCLi+P/NXdlpoqa7Ab7Z7KsT5TdP0fRqlzO3Mn9iZh1LpO+h7mIVOZozqtxrP4gaog762mFj/r+jkyUZpANrYdZmDMVMt6tfNSMeuJj9F6A6Veli1WsDKJ8+Xc40loa2XiNAjcQ70250EUFp5cu5y7kmwV3Ub/1v4Fe5vv8vNzX69TyCn1aSg6CYdMqKTLBZLJn1Dg08Q/ZVU19QASF8q3mGJgsxJgzT3XRC0pIBDkqDKec//On+H/+n2FfM2ELOCCkvirhvdI/0Til7Lhj3PgcN04DTPdFdbhnGmaSNtW7i5vqZxZyY/choHpiDfpVJbaRu6RpBoSmG/3/HZF2/pd3tC0qap1mCKY54ncnZgsqLUmXma2LQth/PEpu+5ucq8uzsQCIRYsCaRM/R9wzBMwIa2a7l7t+GnP3mB8YHnz38GmvjaHLm56jkRGYdZ0PmUF+pR1Xpdrs/PP39JCE/YbltA9sUCmCLVzcs1k1UnYK08Kwl6NXlPmfHhSNfN7PdgGukj9nCa6DpHv9nhnaeQiMkQi+F0PjPHia1vhfpjDU3bcGWvuL3/lNvwTqtNF5U0pALQdZ0mLWubkeo2ZRRtLYpwGsF5FEQSPQS2MiRkLrYaoArFyeObVqnMA433hJgZxyP3P74Tw4VN4ln4KWGe+F458i/ffkZ8IkdfXwzYE2dX2I3z4mLrvGHylv2V43e3Z/6fsWEaZ2m6bUS74duW1onhyO9+lPnOrVVgp67TmgyzuOB9nx27KfNn42s+LRMlF5wD6/QoLhBipsyQYydjZFG7fcOcEoFI0KSg8Q3WZjWAWOdK1oSg7oepQDaF1hj8pqdtW/rSM04zTdfhnWeaRX5AgVgyRE2IxElD9ZiRXLI8g1IocwWxyuXRuQBi9Tkqh+kR6JdLwZX1O4cMLatRkbWe33U/ADvJZ9nCLg5gYF88LxADgJGGH6Tf1N/JS2PmoiCXnKJVz1118doeQPd+by3WS/Ipz06qG5a199ZSCWalh7V9Qzmcefi//g3TIAGx13lPKZLwxMQwBTnTvWeeJsYwaNImumlr/eL8WSuFSQM73zlZtzFCEtdpSsZ3W77/mx8zjANvvviSMMZlXEHogo5CVPS/ArMGaKcA+x4QQ5NpGEnF4DpPTpmQMq0x4iOQNe6wQuWtNvbGGDa7jSSL9YDW7xBDZLPdLDb+JWem8CBnmAKb13cn9vdy5jWpiN+AAesNtun1LM0452kJNIczB29wYybO4h49hSCGM7YsGmHrRG7gvCPV9kTGMO069qaQYxJnwJw12FZgsMZOKWszCAUejMH5mnHpfNdmzku1HZbA4qvVsjX5QsHX+l6Pf85XrsukIGeRCIFKCVRI2iBrO6vhRhojR62EN9bi9lu6xpF1bI7HM+E8XoYd33pVfX0N1KojtSEvawMUZhEh9qPWEEb7UpZ6Q/Xe6jeoieDlzxXBuiB6yhO5cC1/ZFZ2cTOxcRxudpiHg8ZxdT8RydECLMEjG//w7p7508/wHz2nGMP27/024w/+itC3GC+mh28+ekLz5oHNacTYRjSDTs27XC1yXHwZpUDPSZ69y9IKLGpV1bnaQuviTs23P5lfmqRtdRS7iKjrIW5kwlovgv2UEo6Ma1vMNBCmoK81GmhrGRIwbbNQw8TAQaxOTV7t4nWbXl0Y9ZL5o9v/ewP5TZW31cZaERrnpDpRk0nqIbVmVpelZFd7XGB0Ia+v897hnCBV+6stbdtKIkDh/s29IqKCuJpc8Eq1unl1ZkOhS54nnx98XTgoAAAgAElEQVSAwusPr8llFgevIij/zc/vmIeZm5hpZvm82cLd8+sl+y8x8cGrdzQqVp6nQM6RFGZSzLhS8AX8w8CL04QI4YvQdq432CzJwzDM/HF4WHLCWjk0Bj62HbdWewstFZd1rGPOHGq1CaP9ni6SS7NSVZx1jx6W0Tf7umVh1H43F/BWbKujSIuXmbkE06yIDVnqYE+/uKPJhXHT8HCzldd4qyJg6VtUClhTsCEDSsVrG7X+TRhr6HzH1dU1H3/8iSS5Oi6JgulazKwiamuwbccfxo94tX3JrfZ7SqmIxW9MRJNQyB2AmJNW+AyUQEI3MSO0HlfXTZEDsDgjwVuRgCvnIu05qu6uZApxnc4XA5sSmCw92HzjeTAbDqlhu92zu7ricH+gZoFWtRPWmTXRqhu1sdKfDknC4hzYNq2sqSzIat82eLfnXgW+796+w7WN2DAXoR0aZ5nnxDDO+KZhv2mFYpJk0w9xJk7zEoSWUgjGYhi4O/TcXm/oXOHLd/c8udrReEu0hlAkfSVFxikzh8wYIsVYMp7z6ITWG17yySevKSXhMDTWsPENownLnMpKk6x9zPptTwyRMEPJvRgLtA3xQgsIMynWoVdHRIkEZY4YQ0mJVKL04NNmwrJapO3Dbtvjug1Pbp6w3+8w7UbWTU6M40DOgfRupuvEhh8g55n+/m/4x8d/RdAqjVgmy27rmo6uayRgKJmSzSOBvu5+y7qGi/1Ok//WRjxpCW4rTdkuAIbM9eE8EueZ3IoRwTwVpiniN3tsOUGYmM4jyVj+6fav+CL82hKIO+8YYsuYDSlK0+zbJ9fMm424dFr4/Y9G/uRVw3Ae6RwYEi6PlFL4nQ8LL66cNsT1ut0YrfjIEWsR2qWj8GJzxbO2J9TqBiz914omDZ/3kX+3sxjfUHCEFIkh8o/MT7guE9PoKDGRulYHT6neRahvOKmOrCeqBpTSI4Ku7+jMhl3p6NoWMaNYKbpGdXsL8FQrD8jaSBimcSaniCmq8SsVMFuTMsMKEj0rD/wT++f8L/yOJlIarKaMJ9KQ2ZUzv2X+gmwcpRjcOEvVNYg7ZdSA35hIUwaMMTQZ/gv+NZ+Vl/w8fULJjlXisE6udV2jzAvRfpacCSmSEzSNAbTa01iM8xiyMB+0KtN4MQCqmuQ4z7hDIQ6jVC63G0AMCpwV592s+26/ERfFfD5LgtI07Dc9Q0jELA6YsiqlOjEOAwWL9S1d2/DJ974rxiK24PsdeTjz+U++YDrPazCq4x9TwitaY4xZXP6KF3dJWwrTOEPSPbHr5Pi0Rns4miVqdk7cg+u1MIAuPlOSXLBOALZER7fpOQ8DvunwxmglPuMMWNV5u6aR5KiASZmSwPhCjqMm2JBpyDmxf3Mix0BCwLQwTAyT7D1N1y7P3VnHlDOvn2xBK4SUwqtne67PIwUF/AuUIkCa3E9hNRKrG6z+8Jsyq+VnhsVb4L2rgpLy2q++3bcVAer4VlDmUQGhQPEer+60LbKXkCImRWzfid5eK0G+8XTG8I/eZY7HkT98Uj/g2z9/yTPXOwJTWxy8d6/rj9cbpZotVQeGelpdJE51QDTGuoySNdzh64zr1M8GYSUUQk54a+jblv0OYm4evf5xUnUR28dEmYXJgbW47YZshN1Qk2d2HWH7IbPO3eevHpZ7fv38GmMtT794kDlUkP3fRmwWUyU0VvXeqKlcqds3p+ue081WPugH3/wofnmSNlA02FKy9j0zkIslhUzTWA3mkh6MXntLNWAipRi6ruP5ixe8+vxzpX850jyTm0YW/yXdUD/TpFTl1ljDVxK3b/3OC+L0+N+tffwPUvhbk5KaXFwmb7Wa9ljDVR69plIXm7Yl58I0z3SzbMxtSKTO0YaIm6Ephd3rg4iuYyK1LcFGvNr/3352J8Gjq1QlQ8iV8mFpWou3DkLkxWd3FfgQhMdU10sVVlpP2zWch8RwPIr2ZA6LY2VBbGv7TnRRxVi6rjCVvLpnKgpkDHyaZn4WJxyG77segJ1xeAyJwmdp5hwd/dSAMQytBW3MPQ2zzKUswVwys9xj0yiymS7MSeTq5kjfNtim5XQcxDp302AoNFYClIRZ+qjVxK8bRSzeniauRhHfppzxD5EPThMWuPvwinHbUTlg2xDxMbF/fRTXNe8ZPnnKsGlXR0EqgidjLvxoz4Th4fsvePrDzzHGEIzn/04v+ff+JU93ezEumaPOl6TVlkqvlQDZIQ3q0wU4VRu6OuMxS8NyB0Yr36kQSw0uV0RfAnCLkSNUPkfnfyoZYQ2J+2GMidHCP5+e88/832jList1Ypb1UfLqnlqbVgqlQNaH8w7vG23/oVS+nIhYjNop99sdx9NAKxG2VJ+QIHkcz2y3nu225e7uhG8s4yxBT1I616IhbZWumCJfvn3L8HBH0+0IfUfXbwhhpkkzMTrp+QWC0s+zuEs5R7e/YhrODKctX3z+jJvbV6TpxEdfZPbZ8sebVctWDSpkH7G8fP6SH/3oR3z5+iUh9RRjOJ5GOm9IxVJKWoJfa9WEyJhFB6xLa7FQr8mNAXLbsb9+wsuPX3KOhTxN3FxtaJpW9YKSJB/JnBrH1LYM0xnNlzgfHvif7/4PpcOu+5dzooHo+l4aIiP6R++dVH0X1m/N4IzSbuqGiQYJln9ofsZPzUteTbfELIfqXOee8TROrMiNRZo6F0MKiU1TeHFj8T5wePOOYxxlJpWMKxnrezatJgDWMG22vDkeeX73OSlnHrLl0+0TpcVk2qbwe58EnBEQLhdDLnHZz0NIpDLTt1LhMBcVCUl+K7VaAvPe92x7cxGnyHwXWmtmvy38xsfw128dP74znM8DPp65KhOUREmFaCCPI945xHDGKD1WxPWNt4RkFgpQNkLfE3DT4m3D85uOlCLjNFBSoe02ZBdVnyPrIGmA/bwcsNOJcZ6ZBzFCqDTiy4RtWddFtr1UpN5oc8aahDGFtm246j1X5Y7DeeRl+CFbN2NyJruGppWqwqAOeWCIISFN3a0aHqjNunM0tvA98ykmW35ePpY4AqGZF52XsmdlruwBa55gLnD86n9cCpjsMMXiEvjGkYExSCuO7W6Ht4XxPDCHQI5gcGK2srxZkfPMWq2cO4bToHujZbPbUoDxPOC6nqsPP6C8fkNtiCrGDkoYTQk04T8dTvz4/NcY6/nwo4+4yfDTH/5wsbyvlSNjhZ3grJX+sI1Ud0oWCUPKhXYM3Lw7MUyRuWRS12IvtLS5iObNGiNNi2PGINT9altvK5W7ggYVNC2yb4zHge1uhxmDmGY0Ts5U5+SMyEIzNVloYc7UdiiFnGbmkLRxuFTqwjxhSiYZi3ROL8uYlSIavlLkfHDO4hrRpNvGa6sIWauyJ1atrgJlphZ8FLxfHubjAF9A4q/PcGQPNo90bJfXJSBVY4g65/5DL2OsVMhbDzGRQzXEMmvTbgNd34r21BiK6s//08Hx8XbPW9/Q9cJ+Mt8S+Jbl/+BxdieZ3KVu2ZT3ftGsvyMJmjqRXiRmOjiPA2mNex9hwabaMNTYSKiXNba5/ODTpmG83rIJArvXr1JKAWdVG50vwPd6O0YBdChkzruWcdsqjHORdFuJbV59cqsg0nKHfPHxk/UTU2b/sy+xNc5VIAtnQffP7AupdRxuto+KPt90/dIkbbXZnliFmnWQ1WK2FA/FiJ1vq4FtBtdYzGyx9rG153LjuWCiiLXTxcS0wJwSjdVGt9YuG/d732x9qBdXrYL9olImXKBSWlZ/VNZ99Gf9fPkz5wtKnurZjJG+QW6O9MNMexhoMXhribdbdnPGjJKoWE3ukrrfpJRo2mbp5RNDYkqTDlc9IOSeYkhkdZz0Kjh3GJpGUMOchMfuVIBNMbSdJ4WGcUjStHqWKlHbSlUu6MQteph32w1dNVGxFoyIbnMSJ7RE5sfjTAyRW+PpjSVQeGcT28OIGwK29fhtK1x2Y9g4RaSOE/48s725wh0GcipLcCi9siRBjCHxZE682FxzGiIPx0AYBw4h4fHk26TPoqARKPtU6GJke3cmR6GmZmdonAc18LA6xk/eHLjPhWHX0Z0mrt8exUVQJ1Epme2rO47feSp29kkPQLVcds4uVJuC4W1n6RrDLln+z/lD/tw+5Wa/wVrPHJI2GIekzy4XizNZkuVKQ1MK4iMLmpKkkmekcpkpdI3HtY1oPXQzsbWK4wy+umfRsCBvyFry2YArRE1Wcyk8HA7czZE39i3j+SwaD9ZAz2iWKq0c1mRTuOCGT801R9vhvF+qPSFGhmHk7u0bmral9Q3jNNFvew7HIzFU11XRvzkjWi1hIon2M2eDMY4wjcSYqUrATMHmQjHiRta2nrfDzLv7M/M8sr99RiqZtusoaDuEkvE2Yawjx8A8jUCmbTumVLh72DOHyAc3P+dXvxj59KqBrZe+WCktbSAW37JiGIeWeWoxQNvUoMzQOgvGXTTjlTWEaouEDitr1HqLweGso9n0uq9lxuFIzonWOUYS05yYw4g1QpksSRqTxmxFfwc0zkoSPkzkVGicoVhJHNq+Y7MROqS1jjRJNbcojWYNjssSDSz6t4vpaJGgvOsafvVZw6afKEYgggz87OD5ZCdNtFNKlF5McJyTQPXFleV6YygxMRyOlOyoNYx6+bbTykahiSe6MNDvdozTzHAaSEko1jiLNw1Lv0VNQivBjhooOUfjvRpIZVAHYDAUq1RJ1Ray0KuMNDGuwWQROrxVauO2lQD5o53j990bnp1H1VH5BYkuun5yEc1vKQKAWmskYCuqeVZ9+DhMvKNwcA9Mdss8zxzOZxKWGw1uc5J+QSmLTiqnzN9Jf8F1PjCOs8xTrQyuz5KvxhsFAoWcCnYYOZqBUznxtH/Ds1z4qHzKHDM5R0JCXSNlXGJUTayTpKNpPDFI/60QpRdh2wpwVwG17/JjTJ75cfzO46AQ6NKBl/kVL5ov2TS/hzVqPVBjaW0bEwkUk0k54YDeO4Iv7K73WIquadXu1LxP45dSxPAL4+g2G0lunGccxKZ/GEa6rmF/tWM8j9pAuuBSEmdSpS9LX6eMyUKHnIcBZ6UHW4iJuzdvONwbzspmqfvoYvGP9Kf1zmJzITlLt99h5pnjMEEubIaZzWkkZjjfbOHGEFtpT1DNKRbaVsnicFsyphiKW5OQWpGFIo7FMWGdNoPe7mlaTwzSUzBnaWlSkjgsUgrWC5BYEXOxpHekGKX3XcxYAlOQ6lE2TvXeaoSxzLWMygbJKZBSYZ4DnVfAhDUvkGK0ppniYIMxme1h5HS7XSZyoTxORC6uR7Prb5F4Pdbur7HmtxXwllebFXgQjbCn2/ZK+Y9EZykxYW1ZYoDa+kCKppW6p1Q8a4U+6yI5Jo3jvvl7VBrxZdEBvrrcH//OOoqXA1Rqa6Z1YB4/mPJNm0n93KIJ1jcNmuzH531Hc2fxMVGJ2TXBF6aRJpulSAxgV9OUUsBuWroXz5jM4+pejd3W0+DR/13kngKUHa633Jwm3vshIHtF0Z6Ya8L27ZPhlyZpW7Viemg5WTB1oqdsRVSrDnHSy8ep6BoenxoXD4SvGmDUa07SkDbmQlM3cFAu9Tq431Tu1r99JXH7emONle74SHf2+Dc1qavmC2XdNFkttF3K7N4caYIIhwMyF9pXgWjE7Wk4nLH+wiFHEaUwzQTjkP4osmmuYvUiv4M0XJ1TlsaUXg5y13qaxjOMIzlGkY9nsCYxnGc5TGehqvrWkZIkLrnAPM9LQE7WviHe4hptKqnucSkHTIk0fUtjDKaI+8+7IlQGQfHVGa8U0hBojme18xV0UVyxYP/kihfXT7mfEg8PpyX5ds6y3W2gZMZxZpojb8wd4zjjnWGz6Wliprw7wfWJ4arnw/szZg7kkukyNCVTkAamzjl1d4uSYOlzLkCJkc2XD7QPHh+ilOCl9qD2yBZyYff2yPHpfhGTv/zoYyrNN6fV9vZtZ/j8iefu8xf8MD1l13e0XUcuanNcNzoNpDIWwYoTBTUuuKBYvD9vbW0rYbM0Rg5lobzVqqnVlg5VGmydI5u1gS26jow2iY1RAo/TcebN6Z639i2H+4cF4VyA+QXukv0g59VxyjvHF/4Jo9uwu+5VyyfV5hhn7g+Jvp3ZX1+TZkF1MeLW1rZutZU2hhhmvnz1OWbbsXE9YQ4YL/uItVad54XymBJ0jdxH73tc09Jbx7MPn2N8izOOKQV8M4rjVE4YcwXOc7qPDOcZm2fa3Z7Nfsvx/sDhYUccXlL4EcYYur4RpN4YUilcPblWi2LD1e01ff8BOW7BQte2OlYC6FCqagogrXuRQb+fx9hEykr/jFH0O84Qg5jCvH71in675Xw6cpfvxTXOWA7TATuJac0UDV3JhDBzmBNTjFSb+cYbjJN923uvDc7FxWucMxgxMJkKWBsXk5SLXW+dt+t2iXGe+bu/za/+6m/wHeeXyk8uhe8OsG91JZlOXeWUyWDWYDOkxNWVxUxyMkjhQqqpVs8SSsGPZ67jwO7JDf12w+eHgb5r2e22hBhXowuKhusG6Vu23oh3DuMcMUSqzhPWBuiigwnoboqzSkHMQqUUIwuHcUn6NoXAj15NPNw/8F+3P+ZZeiAZcY6t9tSukcbBOKTZbkpqZCROgdZmTSarW6kF7RNUcuQ+HAnTLE5mxnL39h2iBcuroYxWcc55ZLK199HKHLnESC8e6vrXXAgqR7iyr/kd/2fcphOboRCtobUW03iYAtZC1ztCqBVOLw5yRWl3eLS1HqIHZ3EqNTnj24ZfMz9jYyM/TN/jO+4zbuwDJSYaO7FtjvKsitCCVwMTpZWaGt7LfZ2nKIYgfYN1hfEkujVSpmk8m03HeV5pqDkXwhyxvrbzECOmbreF8yAGNOOEb7ysgxiFomgMrmmI57O0QrBaldtf09rC6TwxDhPBSjI5HA9SHYKlf2tdN/WsMFbOTmuMWMIXSRBLTHre6vllCleHMyZEHgzk/UYddPX9ZZGQoybqVs5XHEv/rlwSNkP72RtNouXrzNMgvbsUxKkgslDt5X2Tah1Tylqq0YQs1cbNaosfM5cUxDhLhTEl0e5iHMbkBSghZ67uToRdv2wqRvd2Y4xoB60l5yjMj1K4Ok2atF3uRebRnxKXvTfp6zn2DWYba7KD7k+PTci+zYxtCeGsWd4/pUIMmb41WOdprSHbsKwFqPHehGs9rojWs5TMv98Ubo6J82lkSkLxtvCtucJi8mguCgtl1Uiu22NZkrCvS+jWfCZL8lbHowjA+H7mWMetXP7212aX6/MwBmr7mMPtTuiKWgBJqrF/lDwZNUvRyrE4dIPre/oXH3B4/fq9j1pj6gVcXT99ea4VcH40TfRzqwynRNHOmm8b/PeuX5qkTazroYYgCxqJAesgR3K0yzf22uNonoI0hTR2HZsFeV4Tt/evOtkM0KvL3uXke6w7++arJlfLRxu4FBVevHL5YqsZxcUCeDTpzFcWs/wpVTdnDV0BvASmKaTqMiBfIEhl0aJiVQ2As46rRQ0MrAQSJiUBYozTw6Pj6smOGALjaWAeRkqBeZpxzuCduGXNMdB4R0boQTFK80Dfqtug2to7VyuFsijnOZCCImgGNYcxxCR26c4awmKqUlbxqY5DVJ2XTUZRtaSVM6sJhrjy9H1LSpH99TXjHDg9HImzBFRhChduZ4bRDtqb24MR969hnOFvPqNzDl9YyuwY0THlFCWZMcLnD1mamjqljlQahc8ZN8yChCMIkWFdwJRMMwZIsnk++/KBq7+7laQ0ZoqZpUeXug69c4afxB7vJcHE28V9MGJxqDsk0gA6q+akEB4BITIZJVhDxzqp/sEVu1CK61XvJxcJHOp4x7xWUGswJy0LqvFFohQ1AbGJbBMphEfrq1BU16gboVIU6xC5xmGbhlIc2TodR4MpaXEaPByOUDLn00jG0xiYwwS+xzSi/SlaGZlC4PjpnfRS8T05jIRs6Tce14oBhNN1YazB5BlvtvhuB/NISjOHhwfevrljOj3w3e99D2McOLHHFmrjM0wKjONMJ93KdbgdIeyw255d37O1zSLWNhZEwCbW/cPR8Nln14SUgUZoSznomOpzqU5uS/IjQU7bFnxbmIaZeZqYVXxfGodTcGwcRl69+pz91bVU4rueq90TAQucYY4PPLw7EebAMQfyHJhm2T8cmcY7XOv185V+Oow0jafZ9JgSCbMkdyHE1XWtRnVlTfQfaw2kN9Dge05ZwJsKEBgMz67q68SZqxiLXVqRSHJibSG5lvHFJ7DfsP3yM3zTMvU9X1hLThLQTvNIuD/wzHm8t7gCOxLl7SuOzXe+cgpIwKbBilnrd957ghpjGS7F9RJ21LVX9/KUDUWbNOcslDaMUAEpojcaj0f++/iX3KSZpLS3HBKzkX24qQ6/S/xjLyqXoiN01RbfSlW2aRu2zhFOE/MIxUkrBpsTcxInxqJ7bVEdbkH6olVDJqrhE7U9wOOramCrvlH2D8tVk/j+dsQWOa+9d6rBBNMURpBzwULXimOfNfL9hpTIcxQb+1ap9jkzxyT9qgqYGGlL4SU/5Rmf41PELgZMhQqwrw7ATqbLAkpVwLQ+bGj6jQDFwwQ5SbW3FPl+MYoOuJ7Xuh5zSJwejqxGU4YUZuY5LkGhAbrOcLi7w1pHv2lxphBilmS80equc2BFbrDZNMxDZgraEHs5wxToUrpVbQ/UNuJSSUrMD2eMs/Rtw4SYa1XdozEFhonrz94xfL8hWNF3liDV5tbJesLWtgYSr1gjPbBKcjz5/B2H84T1jpLEZdJZo/R1MXepc3vF1g0x10WiYxgzxUvvvdqNTwAESfiq5jkEBS7cum8IYIF+R8/GiBkdCmQ8/fKBucYVyIOuv2+902SjxoNr8v54/VcARieI7mVfI7e6WA9yj7mgFOWLdfILw8zylT1ILqeVM9H0CVtpndvPx8zf/WziT78L8wd7nEnkmHmbE/fTyP/ezQxBWDTO/uK0Yd2e61+++humvrBkFqHg8pPL8/4i8VoAVR4nbPUjlr989X1gHdv6c2ed7DyuIWwFZDAai8Rwsf5sZa/VPLAshiIiV1qyAS5T06Q/c3atGJqLV8p/67/kslBPq+t2pc9udhvaVk3F9Bbe4z997fVLkrQZzXLTYiTziEKYI67T5nhGeptYYxjGkTTNULJShi5+xQjFyFoR5tdr1sNmTpleq0rFrHTM9wGUb0NAVgDGXLyu5tuWou46cjBfvpYF6a2UG/lYs7ruXCzqellrub69pgP824HhdF5+vurlgFLwbcMHH31I37WCsqfI6TgSRqFrLUgPBed62r6Rzu3DROMMm36Lv2q47+45vX4nATUQxkBgAmNJOSuFISyVuksHTOesHK5azUuzCIKttSSEp+69NBUEtH/OKkwGcYDqNr04OtbJr6dqTOXRGFknTUF9I5/57u0db17fEWOQe1UEyCm3fh03o0kEFBuxSrPabUXvYV2DdeJCGUJUnr3q/yiUqA2MG3GIrBqjWjkh10NqRcpW1ok8+XaOPP/Jl7St5cmTPbdP9zwcR45REmaTZXONwfLzT18SUst+2+GblhxFS5VKxpik5u0eUxKJx7Th9/V8ZqEFy5WTVLnje46S3rrVbGB9MYtoW7gFMpfNqnUwJSlXy7BtC/8k/IXMAxl8/T5l0XQuTqrW4hBEylpDmCOn+cTRjlx7T+slEEilukoZhmFcGkGXIlVcELChKWZ5X+8952FiOAVO8biYr6QC89Dyne/9ilBEiyQlm77DuULbeuIceP36DYd3b5bK4wdPN1hrGc4DTd8SrWPX9jgX6LYbsnG0Do7nB9rWaqGj4V+6P+B/KN/j77yVtWsNfOnf8JdPf7QeFzkzjRIkbzd2SYpSlIp2LtC0Hu+90LJYKTTOeXKMhDAzngfdRGRscpKkO8TI4XBmOE9gDJvNlvNpoKjL2jicpU+Q6gadMarZEoqg0eReAnrpZZaiJUfp0xS1j+Th4Szat+WcrvTPqjF+DFplhALrvQGs9uCyy95ZFNCr7qJGXUzlPQTA8baQPHSbnpy3zJsddB1/8/QTXJG5lYxWtz74gLfblps4cMqZ4eqa11dP8UmorjX2Nkh1oWorloTTOYyzazPosu7HNXWBql0WGrHROWmNmDXlLMFwpTIba/jvup/Qp0hKEgjZXO3mCziPb8RBeJ5XpggGpYNLVbAkSEWovtlIovMQAg/DyJg8Rk01rBGjrhCCuE0q4IKR8/lfuN/m15t7XpY7xjlClrVJto/2hcvKqbFSl+y9Y2sNZ2tpjLgo5ihU+Lmuy8azK4UpCGOkUfbFOYrjY9Kec40zFOM0XpazIFWwImaK5lAtovOJueCM0AWdauGarpUYwUigplItSiiM58x0KJznIOfbcMa3QsFPChC3Xce263k4nSWKeoSDJcYQ5exHNe5FqFAL66eAb9XZOCW8s9L3yTqSOlfG88iTJ9dsOs/D20jOiTAnbNPQ+0ZA1yy6rRjiomlb+ofJE8A1jtIaSJkwToQCU87SM/Ui3vGNZ9M07L448OWLa2bnFvfHaBwhyv7e+mr0IsFvmCb6v/5cwLIs2j9yIWa5j6bxAqgYme8la5+9CkgjYF0tkIGAA1JZg2meZN0lSdgsUk32NixBmHR79Bpv1SQv4N9Ftg6m2ys+eHOUaqExkBLegM+RVAoTMgdTKtx+dsebj54sSZmhnmWPk6eaptfc7RfmXlwmPn/7awHwv0Z3VnvHJnWHlqRa22aUTBsS4f7AnYv0alyXYuZfbALzoO5Vvyhh08ppZYGtwcvFa0q5cIy8ZIiBLSsb5CsAWP23NXNaBsnohitzGmrwZC7GRNpe6PdjnfPWeQUTIq8/uuHpj19rm4cLOndJsg9fAJ1hnrHqcJ6zUQ12WcwE610scfflECyfLnPbx4wJke2rezlrqqlOKbRdw+Zqu3xHN0eu7s48PLq/3XsAACAASURBVNnyi6bIL0XStqCPpVS+nfJyhQ4YYwHjaDqHt4WcozSaDBFDZCnZ1pKsHvA4h99tLipXhjZFiFlsUvVzi34HkzJc6GxKEZSpivLrYGZFMmqi5Bt/MZFXml7bb5VysQYoOWemSWgsXeuX966X8455ClJNoppKrNd4OmP7noMxy8Mzprqqrd8rp8SbL17T9h0KKK0BT5ZqmHMGcqbrN+yur4gxckh3TPPMZz/7VIxBqAFFpqQoG3cpQFySJFh1ewCmZt7Oif5CbbGPx5lpONN4SeYE5bIUCiEIN923zTImq/Wz6BlCSIthQeMFTQlzWNCSuphSkH4lgmbqpps1YfNuoUU5qxvhRWJcFAJNKdEUT9s0bHdbNtstzkkD1Ddv3nI6DaohERpPKUIjMUii5pwBr3uDt4ybVl3ECpvDSC22LpQuBJxqsKQ0EvOg3H5FbfRFh+MTxrnQ9B2b3U4sd6nU2bJoLEoO68Fdd8YaMOvBKbuf2mPrRlYK2gJD5/oSbFYNyzoXK51Ifg5OUdhKp0wpYorox0rKkviltCT5IDzyWmFb0Mism76x1B6Y1lqurq74oH8KdnXas6YeptLzLYXAPM2Qy+Uts72+5eOXT8EIReR8HmlMwu/3WCcOciVFbj/4kI8//gTXNFKVcFYPAM/9/T3WWzZdx/X1Ts0QwPuW0xjwTcd+t2W76fFNyxwM282GXBL3d2dyCEInSom+6fhnT75P10viLcE77M0NT8Mz/jz8kImJzbbHOBHgh2kkTZPShpKitoY4B2nAewEeWWsZT2dmxQm8AiExSu8p03gBWlIm5ixBvnWUciI9PFAbt9fpIzodgzWRp7yRhDFFPs2Zj3IQTXAuOO+1KozoeKrzqG5AuQichZHnXvRzrLFrolMK1kTm9gnHza1G02tVXIKCokEaiI5Uom45NgrWFXzTMMyBmDKv2z3l41/X5NgsZ4IgvIa27Ti2H/LFfOKu3zMX8NU86iIJWZLpUqvlQmm3mHV/QgGxAhhJMDNmTVAVLJPG0IVcxKEWEmubAHF8q41lC7WJ+xoEFSPBWoqy59XepZeGB7UVji2QdC/OpfDjdKUaMifJsdp0l5yZQ1Tmi1AkXWPxXU/btXTNjisidhiJITJNswAERgyA8sUGUXs/+sZzu+1pDGxMy6ZpsQiDIoOwFkqR88yI/i+lRLKGOUSpBtT9BiipEIZBrNiN+YXuYb4Gpc6RG49rW5pNz1SkAbk1UIzDGNFkjePEcZjIKUuPwnFWYLfq4jOmt4ylULRHW50ZdX7FFElx/beK6juztqVxTio7vmkEdEmRMFXjFaHyuq6n61thn1AI04zve9q2YbvfYkrh7RevpQqra6zkLK6/JRONo7+6kp6YhyMjszI20P3XLFbl1ago9x3Xn91xutkyeUvedDyczgynAUqm6Vqur/ds+pb57YH8+o54GmiiVld0by65UFsyWmup7MfVKXwF6WSOFzWFM4wh6TPJQjdFYjPRoTnISbR1yO/JI4gU7dPpnJinhDnRvD5wO0StpLEySKyA+1nH2tZgPBWacSZstP1K3QHqsioXz9U8xmR/0fUfkbOtScZ7/5bTTAgyPug+VhBdo82ZsfP85MpwNnB+GJjbiK8995StVH8vw8UZfPF9dT+uIYiEWWW5+cv7X6tlsBQi4ZGtvn75NSRZKx+P/6Qu6/W/63jL31f65VrkWefxKrcStlKYZ5XuaB/c+sspsRgWlUIMAR/FLMp6aX8h+6pdPtMuX+T9pynPyaVMO85s7k6U88g4SzxvkGStUR31eDoT2wZvJSZxc8DFRPJfx9Rbr1+KpI1S+5UIVeTyMhgokRxnii2EbBVxEdRH32CpBOl/ylx0Dtc2zHNg07XYxutBVpZ+QiVlQQlDIk+zaI5qsm/sggDWjQU9YIxWCeRBtBjrBbnK0qvIKJq3WOcacdSTEqkhJ0fbSTuCAos9MsiGEyPae0fHwdQqnFjHx33Lk3FaEA5jDUXpT3JAODCWGMsy8byz+MaJO5W+cc6Zw8MDx4eDbnw1EBD7eeeqXawlFnCuIEi2TN62a+h2vThGTlrRsmYxr9huOrbbnrbvOE+vYRDzDzTA817Gt2kadrsNKWc1IxFudh0b9P5Lroe30bzQLcEKGVJJZFZaXaW7XCbuthRc18pz0blXdNzaxuMaT5wnod6WzOk80nZH0RMZw6CmLrL5iDkOIPo7NRCYppmmbej7jtA2HD64olpORwu7u7MivLK75Zwl2XVmGd9GEVyj5ipN2/Lsg44P7xtNbg0mF+lDWO9XqYIlCRXIKBfDLL2wJFCvldGYRe9kSxb6XEp4r3TJXHsfKmUIo20s7EIDdd4JpcCWZUM3SNVPKLm1B4mK4q0DJMg3ijzV7yiHvTyjookfVoAD5xusFxOdVKQCsKjojCXFIOY3uTBPURDxuo6tZ5PFObUA4zhDjtw+/4DNdsswiqMiuaXbSNLVKHhQgZkQE6/fviNOZ1zriSli1cxkHGbRDl5dEaaRh/EExjLFxNs3rxnPAykL7cYrvXijQTBGhPe2WB0CS/+q46M3HzA0E//i/KXoOVIFr8Ql0lqLs26hHtdxLFkO5JzSaq9/mbvnog5eMnbWWbq+wzkntOWYlr5+lSp7SVfd2CPfNX9J23qKN/zQ3tIS+L7TNWeE/jyNkyQxpdLQdG7oWq5JYU0MZd9aD0LnHOb2KW/3z0EpXNbWhM2sGjYc0stQzGpAA7dcKMXTNo4U52X/WE6V2lNJqwVZ1/AX7W4FFCoYWBNF1uCgVpZqsCa9qKR6aa3odUqpiVpZAB6922X8U45gai/ES8ZG5tXR8m+n5/xBOeG1llSPPBlGpedUe/56d+Yiga3vViQoRSsc/zbfMmaHLUka81KDpILPmVDyGsjlgnpq80f8Bv8j/y9t52i8siOs0BxzEpfY99kp0oJALdr9LT/yv8b3zM/YpZME9MaQdU76FHHGMOVM9pYmO+m5iASCVdtGAaPn7yV93jtDtzRClivo+IwpY+JEmQPxdKa0LUU1yMYoHZuCt5beWebGkzHENItZiOpO65yepllpgqvuvK436ywxiOaqacSIyzcNlIsG3xpLpCIeV41vYA4Sd+h3maOAPACu3bDddzSu0dYnkc2mw3vPHJU9o3FUyUVEEDkzHI5aeSkatBtIa5skzAXglhLTMOBiw3acyU+2hP2Gzln6u5NIMayhP03s93vsF2/Jd0dwDrdpKYn1PNYhqT38SsniQrkEvGaNoy4eWFYaa9s2xFl1SMbQbQWALxrg5RSZBunhVylnteq+ZBlaLZ7ngLNWTeflvAzGcf30mhwT091hgah8Nly/PXJ4tmfum2VPKhff8X1NWwViflFathaS/sPTt3oWC9usEMaBHNbKatO1+EbOSW9gNPCDm0AYR0ySympWcNw6J8BPiuqYvO4X1c8hX4IhCzChsY65vJc1+SrfeFuaSF0ydUyNm3Tv+rqsV2MYi9RTnBOmiCT7Vs8Ph1mlfOhkwzqD9R58ENAyFwWMH4NLAjTLf0v8Kj4LS1zy/kNY/qrjcQlU5czV6wP2OEgFfA7KFpKeur719H1D1xjmkIlxFjdUY/CnM9clk/23p2W/FElbQZpeusa/N0grEuRqSb5OLmPISXRTsvlBrWhlKkVNSt6C4EriUQOGGkDkAjar61r9VM2EJUYQCmBWytdXIA8M0xgwVnjFSwUDyzhOULK+tW42iogJ7WlcnncNZqp5AwtacIHQJknAQowYb/CdY3OaBHY1kuBaa2katzReTDHohFFURDfUpO5btbqSoh4kmtAtzcFLwu5a+k1HypnhcFaxqyRT0zDh+5Z+s8FsOs6nEYqgrAXZWNuu5cs3R84PZwm0qmObt1gvlvKSpFha3wg1LTtilI7yUDcsFjvjnCQp9N4yz6vejVIXUw2w5LLWiP6uiFZGKndRDmNtwi3PXuyIc2ERcRsrFLswB/l3LZnLc5P3zrkoPdEuz66a5pSLcacUTl3DthRSSUuwZEAqXGsrnHV9KAgRY+R4zhwezutGUysievDWDdzpJmGtGrxoeV5cI6XhKzkKImo8TZmZkxCbaj+XlAo5BrWLF9qr1cbCfd8t/UuwlqaRqmTdSEuBYmUMnBcakNUkPercjDE9AiWWZO2irQBFAiCZz5m59lEDff4e4z3j6cRwOpOj2LDvNi2u8fi2JcTMftczh4jzDafjiZyl39vD/I4YZlKQYOeJUq2Xam+Rjf48BamgmkLnLWGaaJpG3O5iELfIXDgcT+Q4Y53l7ZdvGaZZDoBSlGYLbduybT2brtGgyeouKGNnreNFeE6ZM38w7viR/Yul3YcxGqAYR9vrs9KqMyhyPMwUKg1EkzOl+BU542Sv1AR7miSpSVphWXblVMhotcUaTIn8Vv9jOt/RNp6uEyfPVxZu08DzMHI8nTkdB+nRVxJZaboCdtVE5xI9vUxU1ixzs99gdxsJypd1rG6MC8payEX2XWEDxeW95lmSnH67kaBsFiqV031AAAvRv1oFfsIcvrq7axNZRQF1TlxQAXX9r1yMKkSvAEQN6o3+mx70ekvWNGy3LdYKEDBNQRIkCndD5s/OW/6hg6ZS7EpZDQs1oU7m0mBBDGASRg1X9LUaiFV6sMkNyRriFLAG7dcpL46Fi/NTgDnnHTnO/Em+5h+XxJPeCs3ciCuat0ZcXfuG0zgzR9HVWiMAT7/Z8JYd/zz9fR7KhodyzX/m/xRXEm2KlK6hWGnRY4Gb/R7rDfPhxDjNarZlMGpAJACXULKdJpgJoUA2CrbUy7nCoMGac45t49h6z8kZrViucYHBYHPGURTkMWqk5Og6j+kk8ZpDIswz/abD+bUXaB1vZy0XreT1/JJkwjmvIIFIN0oMBAxF1xpoDGMK8+GeU2zY77ZEpIIX4khKWWUFrTJiVrZClkCEnKRJ+jAfcboXeytrp+saiWk0ABAjDtF1pZiI0wRtS39/5ioWdtse028ITs6QJhrsYQDjmLb9YipCjovRiGzpsld773DGSy/FvHT8YyWnmf+fuTf7tSU7zvx+sdbKYe99hjsUWRyKpChSA1uCpW61BQ9oNGC0bdgvDRgw0H73/+U3+9lPNmDYhmHADcPdUtsSW2qRlDiqyJruPefsIYc1+CFiZeY+VSSlt0oO995z9pC5poj44osvqPk3oeBDq+txhhCcnbWeOWk2O8219UNj9NJIsV3oxLqAOWdCI5nxPKhNtjktAKHl1TtfJE8XLsczs1GhyZkQE7cfPvHmi3ekNiznqNY9bTI1mxl+fnZ81lWroz7tR/76SzPC1hZItFaw3kYBLRVqG3a7G/pOtQaiTHp0bcAUbeIuCt6W6/NM11AFujc+1JVbrgtNC4A2P2brRut41XkGCziRBWDevtJeYP7S9QvEiarqOs/+5mAgoli8pL50KsruarvGBG/Uj/WhwzUqqJdzJiZVpH0uxlafc9sUfH0u4dkdreOx+YwXHz7BZSAeL1Z7qUBmV+18KUzDxK7XUq/D3nMZC10jzJMwlkhzHhEX+VXX5yJoA1FRBylLIGG7VzNWTdCJWpBKNjSUDaIo6+fVsVfVokoBw4I+Td+Ti/VDyWgnrqIoV13cdUFsiv63qfF1YV+nM50Tfus7v8M4Rn7wgx9c/dwHT3/Y4YLn/HhUBTbn2O96CIFxmInTRNN4o6cYDzZvF5j+OVPoDA2v/bMwQ+6D3xjsVaTFif7fwpNGMyeK7AmlaRX5tAykOEeaZx5N8arb9YuM9HgZmebIeJ6sP1qxXjrrvX7y8cTx6UTMBTEHSwzdb5qG0DVMU+aw76gtDZqivYYYB1LSInMQCBoELgCH1bhUasmKFNliqCieMwfVxnqKhQbNWKSkgiTaf8kxxxkIpDkzm1BK1xlNokDjA13bMg4jKUZVZgrCNEWiOf7iHZINRbS5q/eWS8YVFhXHKqih8yTM80xfKuVG7L+ZgiPGmcspczoaXmjZM9nUdMa5WH8dPcTEeVtLxZwWt6iLee9ALKCSfkO3lQVpEnbL+osp0oSwzFOll9Ws49oD0a3F3c5oXh5eeogPSYNlExlZ1VSvN/FaCKz/9iFwOOy5Dy+Wn4kUxEOKhY/PZwTh/p3X3N/udN+iConpeNIDO87M88Tp6QwpkeeZeZ7VERR15ufpwvF4ZJ96pRiOEx9+8oZUZl7dvWAfPO+//3OmlMko9W6aJxrfEscL86AKcRdrtJtzYZoyXedx5pQVMv/t3bcRa5ZXpJ4vRgdGLGh0fKk/0AXHYL9TpTSl5E7nmameRTYq6zC6ZTR1fCu6qGDXdDHRoOCJWUUSvGMJ9kUcyeqrugB/sP9rXjSDqmWOQZvtBnWOI/Bdt2e+PMLDqCBZSRQ8wrw4qyJrDzrdT1ugTBbxnv3tnubL7/FnX/7DJfvhfdCsRg2cKOS4vj/VWoXFQYBpGpSitwEvYsqb1i8FJ2EddydUZnBVEd3Wo1fgCFN1rT0VNTNe93j9U1grOeq810/ZugCZYRhxzvosrZATOSajutV3lo2Y0ebcEKMJhrA4I+IKJVsgsgGDBdRxnRNzCsxFRSuCrTsNYsC1DXc3e17cNrzz6pa+D8QhMl4Gvs/X+FLIfPmj9ym7lnJR5sGr+3uarsE9nHj7eFpsVmgCza6la15wfLqBGLnQ86/TH/IPm+8S3IgM6lTT74gx0nWtUngHFeAgpsW+ZaogjY5VdNoiJAPR+yt3WOpoL2MFst9BG2hKMfaLOq4q0mW2f06IUe9vbrShfC7auN0LeDfb/oauC8t3iuga8k5LAKoC7lZcrJ6TOWurGGJGmCjFE9B7yqidbHcd2TnGaWQcRgWlwD47kJ3QdB3uMuoqNhZFytc1ySkXJhRw67oG8YHGShNElAFQAYfSZKZxJKasYMFlYBwm5hgX4OUiNZtdtJWPUT8XyCdf+0jOC9lAwd3tjbUSEbqupW1bnFOf4nw6QckEyap027Z0uwPzPHEZRqWBL99REJLt02J9MjfBelDbNw0TKSUuxzNN45f9L/PM8c0bJCtYUxD6xjOMBhzOSelz+dM1XNv6KdnsbCygK9tFuL3Ksw/6e11CG/R71XRsKoGL+gg1oeHbhjYJQRJPLiCNW33JogJ1batnQ0pW0lPPZqnPZAkT7zZtZdCgR67Bt/Wp7MAs12Nk1mkN8rYDVBfJs5G5+nQnlCbQtg2NCSpls3HOVFCh9uLTOmpyofEwi4mNOEfwQQO8TY9GH5T1Jve3dN98z+ZwhRDq84g8u6lS8LnQPV3YfXJksv7EAE3X0HSNahqkzGiAf86Z82UGaczvUp0haQslOaZSno3qp6/PSdDG4nl471c00q44J22oW/nSa+i2oO5shtiRycWrUEaKiMtM8wyzDVylRWalANW/51Trk2oqd43Gn2/CNYi7Rir0cgvdJoTAOCoaWWOPeVQhi5QrTS0zjBPFCp+3MM5ibM1IrwehULoWGSI+FwtOteh6jokiukm1fYGp5Ng6zUULs5egwNLAobFFZps6eBX0iHZfcU6Ml1GbPTdhOX8qelQFC67HSUjTjARtwO29Z9cG2q7FNw3dfkfTdvjQkrxnmkfG8xEfhSaAPzilHqVMISBoAfxkaec6VMWyRyoNbMihWCbCCqNiVupELhDHCWm1IWpt1DrPs3KbvbPeR5U2AnPOSBYSiXEaKdQ6wkwaykIBWY4qEe35FfJ6qNe1xEqxtSHkUwCPgpbLwVidQ++hCea85myCoSsdqO2Fw95x/yLgQseHHylS6URT87tWabMlZ1VgdZWWV52aCpoIRQwHtXWbyVShuJoRqpScqhaXTVZ62b8mJQ6O/5K/4oPjZSkI1u+7OgWv1nz9jFKK0nztvmqNn/NO1f5kIiXY7Vpu9x3jNHF6PAGmXJkL8zRRdh2Pjycuw4h3qiBZCovzMQ4jw/nMz37yY/r9juADj6cT8zhy2O8ph2TS9trXLKZCmrU/W2Lm/Djx9PC09F6igj4E7u72NI1nHIwukSE7zfRshBTt/KqP7xQd9425BtetSNbx0b8WfYsig4rOLCIIuSSy7Yu6aXKMJBGatqEJLX3jePdFY3Vp3hzZzFe6N7ycCuRAiolxOOH61uZPjWHOmXmYaawNgdOufxgpzwK2ssk2rVMuTmjajsPtnnz3inJzz3e/8gekNDM9fkweJ5rO7qu/I+xvqNUs9cpUAZb1x6lonaMPDZPUInTrwWPZTc3UFRM9aSgLVciCu9rXyC5nQMgVcFDPoLLS+9c9tbVRlWKpdExF7JUJohQarvei98tzKfqzPm8pMFwuzJMqyy4Ndc2+Yd+5Cr4oWBCzICnpOU/Rvp1Ns5wzrRN8cNzeH3j33vOP9n/D/a4Qmp7YD6TbiWHe8fPHM3/T7XnrHd8siUPJNA9HGicM0QACWe+VVMg+Q0qquEhhCC1/Pn6L33PfY89MdJ5wORNCQ+h6pPFc2qAN52ejcdv+SwYSOQtQimgdfIyJuTpd3uEsM+mco3MZ6Tu63/8tVXHUA37xyzb603quzxG372n7luA9o9mc0DiatqXbFQWgsLnZOHYisNtpdj/HSNM2umZzBUOD1WlZBaNTdVUvgm8CgsO3DafzRW1VRuvvSiHUQM17ctTazQW5+SXXkmURT8xlobM3zlOsDKIOhDivjKBxot/1C3gRU9JowZxfF9R/KGNcQYSs/dy0e7Es+zHFTJwjTdfShAbftvjW04SGcY6UpLRsUKDB+0DftQq25WitmSKocL1m0AxcVHvTrvu0QIoz8xxxbdCehkXtxzwnXPC2XzKPH3+sgEexsgHWOvumCRyK49y2BmBydeoIm7rYzXUNQn7mbKxByt8hflNTYiJvG3CzJiGwe8iC1TWCT4XfPha+8lHk/22FH+xDNet4ExeSEGgQvEsWyFqm0sptauP6Oq/PbzUbiPTs6dUnlBpUXoU+y5/ACpCsA/epZ/fiNLFSRTyyV9q/6S0Up9TyskRUQo7qqyTQ84bqA5soT2lAVkpot9ux27XkvjfFVruXuqbXxzJbXWjGiIuJ+w/eMk2RyziZXZHldSkl5mgiXmm1e8NpYNdr32nTQmROWodN+vUh/eciaHNO6Pe9OdnOHNrVUJacibOpayGaSlEFg81hZepwgmaSgJyy0k3QWqdFdMSctGKF1mv2TZfVYvzr9/89gZH7+3ut9+mF169e8f7Pf05FYOfp0xziUgqTOZAi2mDUWcDhvaIn1VkTYcmUjHc96TLRjOp4ZMs7l6xCBXXRiZe1gXXJWge1qCxliknNixMwGWDnNNsW51nHxTnLDsEcMwUVk0hzMk/zesPVnhdgQYlR7prgcSFoc9YAXd/Sdh0ffPjWArEZrKFo1zZ0t/d6OMSEk4aUJ85PJ1yM+LZV7r6hG/WSzVgBpv6j+aoSk9IIU2bXqAz7PM0q2281Ei4XKFmDuaA1blJUpWueJ6AKmqg107owpWtoLZaOV2FtlLqIlaTC3XEwp6oG4VrXcDWEDlxTF6AsQVGKSWsCK6YpshTG5lK4PTj+6B/v+Na3X9B3Pd/988KPfmzrwMEij1pYs5BGV8lO9LBNBoyYY1f3jBbxYk6i0W9L1J+Zs1ipmZXsUiQgwZFy4c3bB6WxeUdOG4e2rKCEPfCydpY6jaKFvFpLYLWmQalt0zgvhvJ0PmtdnhNrVFtMfSpzOl0Yp0kfv+iamGNexGiKCMM4M8c3PD090TTtInhyPl94+3Dkxz/6CXke6Xed1S1l49lrz7gpRhpX6zSEZJn7pmloGqc94WBBMkVYWAOUNZNSpdRmU20stqcak9dX6rBSgvaHllokXQ2jWEDgg2ZFU0ocH08IcLg54L3j8eFIobDf93zrHcfd3vPVOzsTcgLJzHPG+xekjz4mDY/MkyrVXYCYioJpweO88Leh5Rsc9YwWCz/F4aXFSSHO4xqAUG9Uga2bmz3Nl97j+1/8Dqf+DqEwf/hjju//iJIzreg+Trt7ulfv0t6+pt/f4JwVfm5EPq7dqkRtpFodn2DZ5myGtZQqZZ/WEZTVsZI6T/Vfyz6tlPPnzoauh8y1syMVJLPMmH7OClRcgxU1A535f8ZXtA4g8y33xCsZ7FUOVd/PqFSHgY6skGcF1Ip9SS6JEkxK3zmyeGtWHxZb8c4+87tfOPK1mxO3TUtKEzGOzNPEcDnycB5h1nYvTRv4rt/T5MQ4D3wxTwZYrI+SC9D6pVn7WFu05MRT2vFT/5pvu7MKXYng2w7XtGoLZGNH7AyMVRzgymO0jGJMHI3ivzBbQlAKXc7svvouzasXpHEkO6PEb24X1onIOePrOFnwl+eJlB1i4i1zisRhVPqfK3SN9tW0fs2ayS5Z5zulRaQrCRScypGbrxNLgaCiSMMwko8n7alIIWAy/qUgXtkwKSUtwagAmAXKK+WQBVCr+7TbdQSvpQclF7JXerVzta+gXt5DNODzy93vsJNbYqONmIsAzlt5SaE0dc/AWE68P/2lqm5ai4+SEnNiKXOp+7BrGl23c2KKEXlxS3k8UsZJ/Y4si21wRcsncl5tpjO/L8eoNtKEfSoTpOIcImpcG+9JpgzoncNbg2opWds5zNrM2wcxFWXPy+PI9OpmDc6qvVpWzFquoyP/WYHM9tLZec7Y+rtfstnbZnNxywKu3/27p8I3zzA64TuPM3/tVZm0CX5Zb1W8bLn96i+KsmPEK50cUSElubpRfV4nZq82vyuy3mMN2p3YO1Zjr+dj2YTBtje2WbeUE3FWgZyUEr5tVJU8NFqv5oToHd7q3b3pYpScFJSMmZu3TwuoLgb21rpIVZINSKNnmXix+sjqJ5UlUBc7f9rLzOGDB8owcZpmbTlUVA22845xTlpysBnj7ZVS5nSyOmsR2qKKuKdBe9cJv3pBfC6CNrEsT13AYbuQ7WCQagS9WyTVl+iXKie7Kjgiq/GqtR3FR4b7lAAAIABJREFU/l4LEWuWq9YFlcJVgeLyUVvE8O9w3d/f4b2Qs+fFy3tO5xNPT088j6F1fRpHXyqVRTNmxcal8YoWX9VnoRslmOEvUizgWB3fKjZSC31x2HdsnifX4mtMsUvRsLV3y/XhogGC9gSLs35uFT4p8bpfjCZF1eDGXJBJ68DEORyi8vjB83Q8M33yoHWBaBPu2Zqsjt7hH0+4UJUxC1OciVPEB0frGibLYu72O0Oey4Kce79yv3N2hspBzJkQo9YqJm2GKqLyrl6UildsnFNKjFOm69rFsdLAWdXWgnPEZDVcJdOEKktuTkRKC2qfVfOA/vGyIu+1hsEWa/LuV2/ZZ/7h0qOrFJoG/tE/dNzfJU7HM9Mw8PKF8P0fdIS2RVJBFsEGE7/JrIfKKs63XDVoKaAOaIEgSlee06xiFU7wOFJJtE3Dru/p+h2q7OoRF/iD6a9xHyrJr6RPixXUMVv3xadBADEnCTKtdCZLnhEfuDnsOD0dGc6DFv3Lutedc6SYGMq4jNVWaa9iP1obpqiXdwWXEnkaKU7pqsfHN1o3lzNt22gtidVAqEpVIqWML8Lt3YFxnImXSZ2CWbOB05xpGuF/fPgh/+LmN9ZzJ8M4R6P/2GJwwjEP2vurqIjAze0BEMZx4ulpRNAmv6/3hfdu4xWfrxbtlwKnWfh3U4t4rXfdtY7f/7YW2TcdvN5ngtcA5Pnc5NPHlHjBOWGcIl3fstvt1IGeI8NZHfW32fE1EULJKpO/LKoamNdwdf185zxd3/H9V+/ib77IZfcCAeKHf83lg5+QhlH7N4agxfWPHzM8vaF/8Zr2239kQhBsFm1FXCFIsbKnqGAVBdmwILI5fdUu1DFbMrk18ERR+epKlOI+nRUT3f/1XrKBNLLZTwWtuXJOndfgnQF20bRJqkCKZX7HkRQT/yq+sncX7toLL7z+3fu1gL6KIdWWVQtVVKoLsDpCJWf+sf+QH+Uv8xgjaa51z47fv/kZX9vv+WoT6Qh6zpfEPEWOD4+M4xlK5nLJeKdCHQhM4vgLeiiZd8p1TUZJicv5Qmr26uznaUHXb+TIK/mQUYz2CLSHnpwTl0EVeg93t+Sns47T8hAYS0CATGeKitU5pChgE6dRHahSbavlrJuwiJ/8qvM2mVqyiJDHEZcTjsI86FnSlQLjCMnTiIBzpKS2bp4mPf9E7Ui7oTa2Xcc0zZSkrJFpUFaAbwIOVaBrBBopBoip45tDwLUKJs3jhAuRw90Lmr6nTAOPj09M00zNArku0IRGwZ6SwVVGip2N3uHEMvnmbOtj6NoX5/hS+9u8dF+Bzta/rKBUhQV0zBNTmflq/C1yKfzF6f/gND1o1ivqObXUWntv/kCh2++YHh4Jr+8VgB0no9zrZDpr9F1FfupeVcxUQeiqiFkoWsssQvZZSxWSIEXogiei4i65FPIc8X3HThSQ9WKKxy4s53kuCv57p+NTy1uXtV3KAgqvwM4vvzanM58ytr/kEsGEl9wCwgCL+m4uGjS4NQvAN85ZW4qIrqt5iiSfaHy3+MPzPC/sMrDMtLN6+OAWhlZhpfQuN/SZD1fASjlqn0DDEZYnvqpXu0aqNp+xBnclZaY4cTmdufnwgcNux83tAe8nW7Mwdw1P9ztKKbz44AmfVGq/sfrH5jIxVzaQ3ZDWuyn92DVqq0IIFKuHqxPVnmde/uKRtq37OJNPA9NlAhOeahtrBxUTg4H0Ipoomab1LNz6NPM4E7tA0wamWZ97NgHDX7ciPhdB2yY+W5B3qJN9vUBKwVDgWoxYeb2VerP50JyJaVYlveoZGRKSN9+zdbLXoP/693/fSw+xTAgNX/vae/zN3/yQYRiXwLSiRZoB0UPJbwrV63pe72ETPKEB3v7hQhiiCUVU3nxZEKEqM0zBmorq5zv7DJzDI/RdwxTjlcTq80LNFWEuSyAsbpUZ3m5kWeZmHU/NJgRSylzOFybvETea4EVFTlV9TKXiRVW14kgedI5dKRYg6cYbzgPzOCtNMWS6XU9K5yWo0gPIglhDpCsSFlPm6e0jiFtS7yVnSlAJ7JQzxKgGetQBDCGYMEp19ATvjE5gVJxsY1/QtH0uEC6RL/zkjaE1WtOWy7pBMyZmUpTzfb4UwlOynj7G167OoRnjLRq1zlLh7k4NUEqJxgvnS4AkSm0rqwONGbiMHWJli+HBsqsq3bFmg5wgOGJSulljzaTzPHC4f0nXd7RNR9v2DMMFiDjX8s5wVqpgLvZcq5O83FP97mLrzJx8EaFrG1KKjOOIbxpa3ygFYVLFOLFsl1iGs96uDx7falZUe5yNpFmdmsvpQujaRSXVeesVWRyvX7zk/v6GxzefMAwD45zIwwWSOl6aRMmLccpGN931Hbte6V3TlJb9Ps/RMn6JOMP30gMnN5Ite6lAkray2N/tleY1q+PSNgF3u9MaMnPE+76l6xqCgz9+T5u6N65dzgcAnJjCpCLr3/pydeJVdr/x3dWZtdRDAXOMxPFE/OQHNF4WSeRpnrk57Lm9PyxnWJ2vlAqvngrnjx+UAouQilIJvUSV8NbdaHOvdT//ur2jbTp612qG9KMfkIY3jJPWPoZSll5K6qxDuhyZPvwe8uV/gNgYYqhzsf3UGDVqOp8NDXdr9mG7f8oKiq11ajV0rrVIVZYf3ZNFyLXWhW3AxuKoiGwZjdWoCd1O9wjAeD4pCCfb897Oae8p0hjQou//38Yv8cX+wr2bV0VIQGUv9L42J/GzWNaC1Zx5J1zomXnInpxm3vM/4yvhkS92O16ERNfdE0LHPJ9JMfH4ySOPx5MKGhngMTMzj9PCXBnFcRFnSc/qmgouNHRtyxfLE/9J+rf8T+U36HY7/L5jXybunMM5bakyjIlmt+NyOvH49kjoeu0L6B1lUklu7z2h69j1gRAjs3jaXWd98iLFe0qc8a2KhpRRVZabL7yi/8ZXka6jd8JljOS4Ebpa5mBzqlrNeBVBW4YyZ5J3BO9VNRQoUenTwVqI4BwR7QPYhQZJxoiJCd+p3Rkvk4kmaPY3JK07Dk5W0RnRap3kHK5tcaFhmiatb3Mt0+UCGNDkA2KAddN4Drd7Gh8QgWEcOV8GFX1zjs7KFYr5AsIqckNJCJmvd3/IffiyZnPqjlD0wcZtk1Uh0BJ4x/8GQuFl+y7/1/G/53IZyIz0u15LFQxMFlF6+2LbxHHzh9/h6f/+NwqkF/1Zzot0CAavg8DcNgxNR/OLT0xNXGsxdc9aMJ6LqXGvNGifKx1Qa9xDo30uRSar5S/LPvHCOu8bRzVba4H1qsyZ6xrST12l2NKqmXR+9evrLhKvKtIFZKFgy1IzCaiqei788UcXZHezfF1OUf2MUgxQSMaSitfBWErat9JZXb6BHDV4W2yy1fTqGF3fadUHqqUVao7Ul9PHfhb1bsdl8/e6unJM7D56ov/oAYkZFyHN2gvQWe31vgnsHs/6uVFr12Wa8Uml/s/J2qUvYAQggf2+o5TM5eHC7n6nDeS9Ixq1Fxx+jnTDRJgd0zwRx7jsLXGe1jkyZSl7KKXYetI9DDBNq0BWvWJMjEPEB89h57g8qAJ1cNvz+7Ovz0fQlgvDZVijbNRRMTt8jViWQjXNa5C2dWC3wUYmz3GxnDFpIa5W2GidUg1GaiPMxXGp6e5fu6H02gZj+lmqSKlKSA3f+ta3+OEPf6j1UGb0coZmiiQnlMZv0F0WYY363FWYwTmHTJH9ZeLwcMa5q1IH3UTOLbvJ+dUZXzeoXCvpuBYXAmWKGkBu6tKWZpmo2+KMvlGKoli+8dpTLiuStogemOHWLJk5SjkynvWg0CbYfjGQtelsETU64mWp+dNDstYxmLiFCClGGlMcHS8jBeX7rzx39PlSXpqa1uyjeEecE+JsjrM6ScHaLCjVROfQO5jGmW6nKmopK1Lnismwl2KUS2u5YIjlnBJijUadrYXq0VU0WJxgK11rWMSRsgdpKWjLgW2txZpmvs6ymR0ww6FzMM1w2Avf+Q58969mdQ7KFquz4KysAZLlIjYuV1V0uq4XKGg2xYknRbh78Zrb21umOKH0hEjbNszR4c5vmIcHbcIc0+Lg/mre/7JU8SGws9rHRpQSMaeRmB2h1YN3HCaarkWDh6RUIzSDr/tRTEm2LN89jpMpWmoT2TEZIu8Cc5x588knzOMA4gkeLucL/a7jdFHj7oy6XL9zzgXX79i/uCXPM9EMqqvEdVQEIqdIxnFuB1UuFa+94ER4ao589/A9u0d9z3/+lYBIY8Oxybov0v2tNQm1vV6D+krFQunO/adQvGugRdZ/MAxnzj/+c9oA/e0NIo7z6WjNuhMplkWgZ302CHcv+VLX8faTN5yOF1yJZGnsPjWoziVoc2pX+P/cgdTvObQtwkyZz8TpTMqR/f0tp6PuxyCOedSspfhA2wZSHIiXI0UcyQyobSzAgwTmmIiVNv4M+KrPvf5Z6UJi+1XYVFywouNV0bdQSi3uN3W3zbypCqS7CgxTKpzOI4OocNM1OHa9L3ed4+XLnqfHwjxP5FQYreebvihbICoGZCodVVgduSvQUwKUSM7qwP2L3Y/4H/Irfjd8Hx8CTd/Rtp75fOEtsL/pEIHj2yPH8xPTrOd0SsWanqOB0sZm/ruw5zbP3OZVFOJyPvHwETQ549kzl8L4+ER7OXPPB5waC1y94/W771Jy5ng8M0wJ5gs3h4Z2v6fpOihFhT+8J8XIVFSNtbVzIDfCFAvBBUqKxBiJudB6rRGj7xCjhyJpGR/ZaOEtc1iKNsSOUW3KrLVb1Tq62mqhFDBZ72q0w35HaDvmGHHBIdO0qEmmmDg/PWmj51JovKfdiIPVGjKx7I6yUyA7T9P3+kwxKrV3mpmniV3XgHdqv3ad/i6ppyQWkLVNS0pwiRdjGmj23qFZKlfrXYtmmZz3tK7FS0BPFhsft1LlNris3ntFLBBav+OuecVw/gnOeRO3UlXqYg8q4ojjhfDFl7Rf+xIlw/1/9I84/8l3kaGexyw10OtaFmLryW3QGvRUJbTF/tBsUaEoNRVTfjRaZJ4UfI0pk4JmWXzjEQMVBfW5vIM2JRKByjhZ8A/z9arQFwI18/7LrtVfLc9+9tnXgoWXslQ2VDeivm+pjbcfNlOmtJmENkTXYELIMTMacL2I+ollnm291Qq0bQ/txblYQmfZBFZ2S7buaz9DKabIvjjGNl7I1TNtEbJFHqQOjwj+6czt2xPZWhTErCq/EWVmVQbZUpEq6hcFpy2qnPc0kqFYv+GUccFzc9NTSEq7nDPzSTi+faI7ncEk9+PDW05/+T0o2i6kAgOhVREfctFyijkukIL3KsLmRPt2LgmBJamyMlnGYaLtAmeBOWPKuL8+3vicBG2rJCsYh7zWJbnNvK8A8vLwFU1JpVxTG209BOfU0KMSvtur0qEyxidfoFFboJuP+6zgrd5P3UDOCbv9XhGloEVJtV6oUPjNb32T733ve7jTjBs10Ll9c2ZsPcO+Q0Q433Sf/pIY2Z3HxbzcvTktwV09y5Q+prSFUvu6OJVmjykb7cqEOdqgyF6MzOPEOKgcdinZxluWk6kJqmIppSBWa9fuew6HHd1uz5wyl8uF8XzR+sGszbpd45mq2pNXdTdFyd0ykCGoClDKUHs0dX6jYBkTOWpWJMaivWgsKOv6hhjXxqYRPWy7rllr8rJKHtdM1jpXKyXGiaqTDlPcOFyCC956yigal0vUFhN+bcgqdZEtgY2JRYhYKh3KnGi7GnZZwOS0V9xakyHmZ1vrAOuVpZmW1TcXBMnWzsJUnYpFgIKQ0sjHH8O7X/RQtFm05MQ8T4yjOgiLYEFd0HZwGiSgIIkrLJzBZ5cidibeQiGbQWz7HVOMDMOFUjJdf8PNfg9l5jfHn/I6PvFBvD7E6nx81lXnqcob4z1t23F/eIFzup5TUmrZnCbuXtziRTidzpxPFw32rPhYfSpDF5Ol4ESN8tJ2oOj8OafS928++gTxqDCFrZM4J+5vd+RsKmppHZOUVX21847j20fmeV56wtQmujXTu9vvCE3ge+/+iOtKtM0gw6c9omWlbQaprmM2BmFr0YvWfpRnH7XYStH1hBlsESjzif7yU/xdv8gjd63nHDWjMA0X3r71vHx5SwirvHqh8KfhwO+L8OI1SAgcHwYVepJg2SAhSMQd9vy13/FmKtzGiThNlPKGcnxDjLP2VfKOu9sbYpo5n0dSVuGM3WFP17ZISpx/+l1y2NO883Vyt8N7lJorMI7Doga5PHcNTktdB6uzXIfbmdO3XjXoXkexFE8hGlCiP6tA1TpHVneNft4SbJtwRj1v1iAyL+9zUvjtd1v6vuPh1PHJ2zM//XjmS/EtO1/W4LyGRrVeeetcLUFq3ev1nFen7ZHIP7z7Ca3fq2yMdwzDxCXNcHzi/nxDCMLxfOJyyVZLZopz0ULaOS3f0XatUuDePllBvf5njoW3jyf2jUfkkYYn9nKmTyNf9j8mzroO+5f3hMZzPh65PB1JU8Z3Pf1+x33bcjmdmIaR4TIu1PyYsta2TPozBFyxsHbj6Df7He3Le8J+t+z9OqMONmp4QtzYh1K0T5o3p6vd9ziEIZ8pJnyFzaVGw5ph8zct+33H5aLsEMSr8FUpyJzwJStFtmawxBG6FkqhdYJLCbwnTvOShZWuI+NUIMXObN8IpThjpWRC05CnibZrmKdIjGkBNn3w7HYdaZ60ps2e33u/HA51FcY50e56PUOFBWhjA+4s6/m5o7Rcju90/4xflP+Opa+i6LqYp1lZNTkSh5m2bfEG0hYv7L/zLcZ/85d2T2LgxHquXW57Hu73el/7jtbqCIEly9lY7XwRnV98wAVPsJp/bTKdmXxU0MuyTFpaoqsjFXj50ZGP3muX8UHkSjG0FLQ36Cbr9cvA/s8wqb/yqqCg/seZX1tWoSsLtmqNY86JOUeGy2WhB+cUiRNE8mL/y+Y+pSYYlrocPZRUdKlaKDsjNw+13SNXace6qTaXN3/FRkHHIZerMbT2i9ZqS3/Tny4kEQPK9buSgSfXd2FndsE0HML6azsnXRBC4+jalhS1hCQaiHx6milPJ5ph4vAPvoXvOsa//YA0K6Oo1kKLVx97nKyXac2MB2919NYOpMSrejbnHF3fEoJjHmZmA/jP55ED6qO3rVvP6l9xfS6CtnptaSpl63jUS1hUAa/eVxHLa+FCgCWpf/UxthgrFei6oHm9F/jVFMlqcNdxFu7v7tnt99brSZRDnguOjAsN7+xviT/5GD9Vgw/dGGkuWrjoh956Uq33Skx05/FqfD7rfhW5Y/HICihFCqfBU0UhmgYvKgxSsqrmlVJofNCGzYbuBSteTikzjxOUjBdH3wTu7u7Y3x7IGU7nnqe2IT88Mp5Gck44O2BqfzBQdNd78C6orLmo9P8wRi06L5liaobVOVh2p6jyT7aebjkmQtMwWKsBnANr7prySjmrnPPn8+9ETIksG7K21jRqfZinmGBBss2p4i6rk1pFRkrRhqwuOMbLpIGCAKlo7Uupgbsumupw1XyWcx6xjGids2zIzpobMQRLTEK7a8wR1GyothyAH/5N4b2vekgQZ23YHceROBldwYvWaImqka0RC1Bbj2Zb3FXYZ7PGKhUqGVInknj9+iUiwuVy4enpzDyPiDtxc9gvbQymYVDK3K8J1j7zEqHtdhwOe9rSAInoWkqMDE9vOJ+OhOAVDSsJyBsQIy9zPE+q5AayrHMVOalZbhbQJsdo9X66k7I4pjkzjfOqClcS4mDXdaTSMF4G8jxyOl3MgK9iP/MUmcaRpm2RAL/5atLvFkWbqzOwGe1qUW3218Di+djwWefCs3+v/yrmI1pW1Ryp/PAzKhXXxxM7n2l7fc5CoQme3e0N2anTeD6d8a5w//JeM/FFax8z8ENp+SM/8uL+Di+Ot588rucpHnGFE45Pmp7eZULb8vDwyG6/02XnldLpnDc1zILIqMIhWaklh72jbRukXEj5SDi+T760hNffwAukHEm10N6ioy2t+FOBso1ZdSs0cyZW6G/9F69C37R87ooRLy6I/bG4RgayrdnQug9y0Tq3aytlgR6Fr98Xyp0wvHPg619IvJsykr7Fi8cPENv3ixjFYjs3zY1ZBU0yAS/rWvlFGemLkOeZJCi1t+uYJs/D45Hx/BbnUTYB1TnTfVMVmCv1R0TY7XccDjt+Opz4rfTmysEbTBhrF97yTf99DjLQSFzO3BwCN3e3kDPD+UKMEXHCzauD0oyKZkzO54uCIcsQFx4/ebCelDa6YoSEUhbWiOx69r/xHiBM47Q4XJRC2UxdZSo4p73uStGaJoeAV8e4KkZVVgV2jhQgiRBKYRpHQt8R+o54ujAk2N/c6L67jASjrInV0zvvaZqwUtFT0ixfsV6yTaBpW6ZpVhXHnGm7wMt3XlEQnh6OnC8DhJbabFxZOKpWGQz9LiXTdi0pjxas2XlguXpxjjRGXAi87L/M6+brtjVWv6tsgAq1AesAlmpLFoUKWdAQwUTUvDanT3FeqPKSEsHsw5yFaRwZL4MuaZvXOuY5Fz7pbkhGez3ddDTDjKRaYlEQayOQp5lqzqpP6ZyzNkETw+nEfC4mlNYwTdalueIrMVJmz+7xwvl2Z+cE6KKxESiaDXyuQPLc//7sQEMH59fZw5LzCumYXd4mH9fwR7SOs2wCixj5rYfCn935RSysPoeavLWUJtfs7AIAbh5kMUfP/fIKChXTr7cBF7c+l/kqmwFcozTWk9gZeCIivHhzJDye1Z9LqpRdFmprpc9e3chSwwiRWp8sXv9s2sDhZkecIoOdIznl5SwGSH/7C9I047qG+f0PUbzY0wZ9rtnOjRLNFwue0Ho8QkyJebpWUPfemWq6ZsFDG/BOiMcBKMzjzCkr40qmGR/CM4XoT1+fo6BtY0QXNBS4MkC6FlKpdVnrz0CDr5ubW+5uTzwdnxajuc2sPP/KGrgFILJBlJb7+fXe5daArB9tKjSlLEElFG67nscpLRmA6iA7C1Zuh3iF/jopiDhy15BivqIJbKk1S+BpUJk4YZ5mTo9KgaiGJYkqI7Wdon6VYif12NZoh5zQGijLdrRGiUhZZY6HYWBOmTnOjPNMHEdtxpu1sLoWua5NgevGRmtSkhqJvmsZ50IcRpzUol6TpHeiAUwpSONpxTEO2ldtGjK+6HwlQ11z1HqhxXBsrtoDyokK3QRRQziMk9JETWBFHcTaN0uVLjNKc0zTjFjvo1KRKZGNw6ABmPfqbOZUTE544+5t1rarB6MUkyDXIVIU0gKcdUvoPXlncryaAa1N0edZVfK2alDeAkQpxZ7L3MaK0En9/GIHY9nGCc/BMgpKMRYsc4oagOEy8lH8kGm8kOwe5vHM6XTkt/eJb4cPOJ0uxhVf1+xiC34NuJRTZDifOLsTT+lomTdR1aYceXo8k4sqt21KTxa6KpgSqjVFV1q1uwIHVztWFnWpkmpZNRSrK0rikIzJor+g6wLn44npMpOK9fQ7DxunvJCmmcnUpELTkBG+sL/uKfSZEGyN26SeS5Wsun2N7ddSA2wzqzUgBKUAV7pKzdAIyHgkP/5MjWscLCso3L68Z7d/h8sYefvRz5mmibePjwzRcXNzgwaxj5xOZwpw//Le9rfe0iOeH/merzNwc3vD09ORZAXZuWgvpz+dHJd44ebuhqbvefroLaXA/vaANJ4cE5fLhWkamcYZcmGelV6bcySPI3f3e/aHA+JbxjhQ5oH49sec+dqKUC9OQx2f1Z6IZChu3ReAiLY6WPwOvWsWp7RsnAU701WhrgIza+3PMv6LMfvMUHFzr9fB96JYB/SN4+uvAF4xAR+8fsXNcOILbz/k4e0T59N5AbquHUVZgjjn9PND0HtMlm0oIty+fsX9qzvicOHtw4U4R+IcF8BL1+GKvNe+ZeK80sZ9MIEAz5vdATk/IGy8SlQt3jvHq3C2n1TbA7cvbun7jvPpzHy60AfP4fUrbl7c8sHPP4Jc2B92tMEhSenxHoiiNPqMBlcxJS07cNp7Ljg9Z10baF6/YJrjwjyp9eNSDBqTvOy5UqxXqO2lhDDnQmtBHGI0/JTIJo2eAEmJKEI8nThPiVev73HOE6cBdgel4LeFOAuNQzPMzms2+nwhWjmArysmZ1Wq7HrLsDgO93cc9h03hz3DZeCjj94wnM7McyK0La5oNiLGyDDonzeHndqbnGmbRs8jr6UNswVH/f2ttk2YRvrdgb2/4eBeL15QBqPX12BjCwWJni9L2eeyyUC0blJLCvTnwTnwGRFtL1BLMKiA8e2B7ptfJf/sF4vISLa6Wg2SVASsiJBCwD+N+JitZZId7BW0rY55ySBh+Q7nBFJkmCLOi9XX67rYdi5KKfOVp1u+mf/Js40LGLX0LAP/++7/1Hh1Q8P/rKsGQwoa1iBl84LNOa5/k6sMjNbTGQhkNeY6dIXfPWb8MDLtTBXbsv9fneC7Xij52ddsvkP9t6QME7QWuWTzQR3YIXIVLElZBb0Eo8cWrdF1eRMgKjRhj7bWQVcffD2fhcPjhf40wMV6A8Zo6r7rmhKxfqJVNNc2btM2zOO89I4FEK992PaHHfM4M54v5i+t9ZFbvG3+8BPrY6c0SLEzZprSch42XaPAr1Eu55jNZ9OPUVXKhr5vTOxHGC8z4rOKDZnwn/oypuwumGLnc8/r+vocBW161c1VUEpTep49exZe16OjOqqn4xNPT49X6MBnfk9FYe29kZrdqQ1gPztge24Ur/9eNxV4V4zvv7mPlBaFI3GeJoRlUdcaM03/rgsubRCUT31Pyle3WbOQ22Auzur8N01jCy4tDl3MtshKjfRYlKU0HjFZ99mQjgKuqKDC6XgmlTPjMJhwR1IDlDO4sNzWdfa0opZay3a5XBRty1obIJr+sYBgfWZ9FFXM0y7zhTmjUvtpdXbqYRmsBsCJugVTYTETfEjUAAAgAElEQVQ0db2McwJfaPsGZ9mzpvF0bUNBuAyDZqKKBg21xjAZrSQVaFt0U1eJ4ZKNR29BYm1kLbq2XNNw+8f/Hk9/8mfkcbI1AfOUcJ09dyn8efkD/niGpq0AltEnqQ3U4XS+6AhVNGyzWtM0IoZMAVzmonUQxdE2jsM+KFWhCMMwMk4qYiD1EN24lurQ1swcm+ylZrBC8JyOT7puo9ZqiW+0xibN4GfS+Q2X88UAmE+jir/MvlVnN6fEeD4R+4lSJu3TkkQdy5jQ6KowjiqDvxSWb84+VYtV2qzzDsFRzElTZwJ7dgHnydN0ZSSc6NqnQHYOT+Ty+MAJx3kYGU9n8C2d0ZF13y1PuNxHnCOvQqJrAy6UjcGtReWbd9SxstooluDts67KmV9/4uzeBWdvt8xsAaYj80ffZ5onhmEkjrNRveDDDz6mbVrariG4zDBmjk9H7l6/MEq5cP/injcfP3A8juTyqK072kATAkmEvw57OhHelYHDzZ7HN49aNyozJxpO6NkyTRMpdsQUOV8KBEc+FcbLoCqx3quSWevZtyrrHFNmiolffPhEeHvi/uU973zhC7Qh8HQ8Mn3yI+T+PWpGe+s41DneBkdXNZ6lZs2WCguqJ1rB5BUU0pC+Khiu76tntFKpa72FuRCLP6uYlADOMsRrGL8VMFnEVerclcLQ7Bh8R5My+ylyuQxKu6xnQVkzbOprrfdYAZqYCq5r6PuW4oSf/eR9hvOggLlTKfj1WfS7q9R+LhDahiaoSNBh3zOcjoS2o+v7enBsABq1S20TuO1bYi7sgwrTpBBoX7xUMO58om0bDi/u6G7v+Nv3f87TwxN918FBxUrI41Ie0Nj/xDtoOxJwHiZySvRdy94oWc67tf4M9d8XjuFmJRSK1dFvKPROe4INU1RwhMKuVcdryIF+1yoN3gnxMjI7debSOPDxB0qlbja1f9g6wIm27phGpWXDEtRkgSSO4rTtTBZhvKhw0le/8R6dD/zoRz/i4aM3dgaqY901iupfMmqkcmK6DJxKoeu7RVHZeVW9dUGQ3nqlApfxQrPfc/A3NNLrGWRjLbD0w1v2ygIs/DLkLROCY5qsWbZT4Secp6liFoALzbJGpLYGOOxJQdWHC5qRLqXw8cu9UknNGROBh6+9wxd/+ma5XzGK465rGKfENM/We1Lf5pyjC54xZbzH6o+usy7byxfHXdrjaTfLpVCt5YtU+G+O/5X6ONtFZYfGpz61tgAqZfFJypXNBW1jkJe1Xtfo/3z/v6qgCIIUR5sd/+nTPyOXpOunK1zG/4Wc3QL6vWz/M/7rN4FC5k93f8b7zc/tu9yVD+ldDzjIwuBHC2rs4MNZcmAFkwqCXIkwWVBd3yIs1Ps6DgvDbTmrgJJwWdhdJnafHJe+wDnNRiIQ66Xpl8DRaQmvBrXO07Za0141F3JSVVEnPTe3B0qKnE+aYVv1Ej491zVgC1azPpgglgg0jdMWKXacjlNUf4Tr5R+awP7QIakQx4jftQQHp6dhAYWarqFpW9qu5eb2oL5wzKsK/i+5PmdB2+osUjJv3rxhv9/TtR1rqsIOtWfRmAI/bnmZfMZkrN+imY0aQetyhOsa0rI4QL8sSPtln10f5eq1JavRzdq0M8dEdDPOBz3vLFtUnWJxz43eaviy1YctQ4YFJNvNXdZ7ySmTnQaEMcExnpRSg8naJutd4rVfi0ed2JQyc7I+R3WcLcMznC5EYBhngsPQqTVL6ZxXNUVZBUCwMa7c75IyQ9Q0drUxxQ7h0DZMWWcmm4R4znkxqvW5SsEcO0+/7xkMcY5FXxecIMETAAmawZuiPneJCUZomsD+sCOEwDDOjOO4ZC5Tmq0Hj6dIlZw2KqWJtDjRrE8NDOom9t4tGWEP9L/3Lcq+5/aP/4Djn/xb0tNpybCmohSZczkwxpZ/+S8T//SfhmXuMUQopcw4KpJRGzlWwyAUxiHzdGy4v29omszp7PnuX0Sm+UKcM+7+ntP5TNe1zNNMaBrmaVicvCXYrqakZGCmiCNsgyAr6D0cOoo4xlGRVKRQkjpVCQ3MT6ZAtzWIWnO4rm0fVDBknqbrwxwd63GKtOcHYu45Z1X3HIaBaRg3NFWl4oYmLL36bNWiymHOqBWCOGhDQ0xVIGbdW23jdf3YnKrzr2uz23XEeeL4OJKLKXVGPdCDBALVIG2cM9aaRUfh974ws+865gxePC44y2pUp+HZ4VGDgs8ocnd27tU9VgO3pebJ9p2+TiAO5OnC8W//QmloozZnbpqWpm2W7GOh8PR0IudEjpm2a7i9OeCdZ5omgvfcv7zl7cdvuRxPDKcT/a7l/uULM57wF2HPyxLZ9T0nfyTmxFscf+r25mTqehuGC9575mni8RN1rkQ83W7H/tDTeKWNFVFApipxxpRIMfHwyRseH0986ctfJMfCmI60hwkfan2wOZmLU3R9Vi6CYqZUV0hL891qrNXhVnVRDXw12FpZBDY99TymhgDW31I+PXfL1Jo1cyKrgNPG9pTnHs4CSApD03G765Val/Im8K/gyPX3lsKipuxDy+HVS0qceHjzYJRzb86ireMq4OQqAFXIybJ0c0Tahn7fk1LizdsjN7fCzaFXRd+8Fn1WtsmcMlO2nmdm7t2uw3cd59OJOCe6/QFpe37+/i+Yjid6U4HMaabb9aqcOEfmlKzfnfbgCqAtgQ49x8vEeYr4RsWl0jhzOg0qRpDzojYLm/HNmgsoThZKnQhKEbYm6MMU2fcB3wbiFBdwUyRpLblAI9YTtBSmQRWSb1/fKJBkdiOVjMtu3Z82/wgUr3QrQTOJoWuJ80zfH/it3/4NRDx/81ff4+HxCecc/a4hzgq65KIiX+KgawM5qdjGOE5aN9M0hKDKrpRC3/b4JjCNA5dYeNl8gZ2/5fd2/wwnfg0qqmu2mcvr1fXsvLL3OQNDnROmOWrtWn2NAa1Cxm2Niw18Dp54d+DpnVtyVQU2Z371h6yowHvmvsXNWlvmfc12OYSoAKpbFR9FoIQAacKHhjmOgMrA59pbdXM/D+V9fjb/Gd9o/2jd306ztLmA+IIr1U7UcTBAORdtCf78CHiupLg5P66uDebkBP758b+4SmQC0Lir13ftP9c9vKGuVuTnP87/ATKur5XN+ypwVIB/dfhTzlwoaf3dL5pfPLtljZ6WRkUi17ZXllN3fQglOCzgV8kZeTzz6u0FEVEl86jlKAqm1x7DKnSiJeKroqVz3lqGCfNotN8WUox437K/2VFy4ul4Yhwtw2a+5HKbIps1omfDNM5L4rgJToNGpzWvY8ykqOus75TyOI+RadL1F2dlP/VdQxlnzqdxOZ8LmtVVMb7A7vaAE8dlnJhMIOdXXZ+zoE2vYgeo/uPqF/qnoZNLLl5YKQ7PXv6Zj1801W5vXWh/n2VYf12Q9lmXVAepSqOWtbZiWbpFVbhynq/vx4yQ1lOoI18bXV/xb2UNhBaxBmTj+GG/c0tjzdnU+ygwj9o2oTYGVIddle7mqTDntCBymq41oRIL9LRySCBnslh3egu64rw2EK9j4e0+VFFQs3K51HozCy6rA4RmUfSqAUpemkjXk6Y2aPZBA6cUoxnQlZJZRGgbNfqh1Sayl5OqZ5E1sNrtOnxomGY1wsF7ppRQxobSXLuuxXnHPM+Q9Xlcq9mIUrQAmKKb0TnNDlSHohQtaO76Ftd5XH9D851vc/qzv6zLkVLgId/w/fQbzNLhSzJpciilFqhW570YwmnNLTfz/fAIP3tfePlOi1CQCeZ5YDhdKAjnp0dEhEvjtR+eV1W+ugb0ftbPK/XmRAje05hMtGalG3adouqtDzwez+p05qhrQmTNaJftAbkG5yJi6zNQKNpWIcarvVdKYRwGvpx/QJ4SH8WdBWgVwCiLMqTFr9TG4fV5xHn6feB8Ui65F+F23/N4Htc5MrpYE7Vua57nDXCictEp6doeh2mlsNq9atY4PTs0FOHuugZxgXdu4LBTakSOibFEGLcB3ub8WEfs6mzY1v3WPXH1Fikg3vaN/kJEKPOZ4YMf8PjmI4bTmeADh5sDbdcSmnY5d6oy4kM+Mk+6Bodh5IMPPuLly9d0bcM8z4QQuHt5x8PbJ6Zx5nS8gDhevX6p0t4UfuJafnPX0/Y9MZ74K9crjcyQ05QSp9O8ZjdyhlzodoHdrqPrVKCJOS5tWpxzuODZ9T0lRuZGBTTe/8lP2R8OeCfktz/BvfwGElpA1jYnn+EV5RoH5XoG271QqbR1DaxZtIoWV0DAvI/lO8SecRX0ubYtNU6owdES6NtZmhf0Wq72zvPrze6WF5dHQhNUCMrW3PpFqmScSzJF3EwSR9f3vL7rebwcVdijmBqqKeMKaB+4pU7M2RpXMajqJPVdC0V7DFJgmka43fHB/o53Hj6mMgO8cypBT6KdR87imWLENw23fU/KiePTkVTgdr/j4e1bLqez5ihzwjcN8xjp9x1jMatg53spKPXZOQXiRNi1gRF4nGeaWXD9hJvm1W7WOavzIlClmCVnYi5EIJTCZZisxlvXXb/rSKUgoaGpnxKCqjV6rzTNcaKAUVGhbXsocLlovzlnTcO9yasns4+UgqTMnPR5mr7TszQ4vvGN92jbnh9+/3scL2f6fU8QMfBC5yll2PtAahp1pIsyUrTRtVKOVWDCkQVOOYMXQtvysnmX3+n/CTfupVLlRMWVsmzc7o3fsV1j25+smTmhcR3vdt9mHP9CWR1hYtd3uq+oAasGS2HXLwIbucCwa3j7+obglAnjRYiuIO5ZyQwKJjy+2vP6PJCS0umcBc8xJWsgb2ei02BPWwkI2u7AgLymZRqGpY6uZpaFFbjYfnNtoq58QAtWpa4sC+IEawS+sauANii/FgVZn2tdmzUZlms7Dyn4hX2znQcb9avgqyz3svifcn0SLtV59oH1/f/h9O8vd1LPoH+b/4oslf6mD6qPvp57Ja93pUClfX7KZDv4SoGjP/Gj9kf4pwvd+28ZwRTF9Sx2JsFfNRbE7HztV1eKDlrOmThNJsRiZ7NztH3Hrtfs29PjWWn29iw18VEp3wrMmxCcBe3OaZsn75TOm3JhnJMx4tR37A8t5LV5veTCZdbPHy8zlEJMmTla32RTKEfWGQjOkaaJaZyZpvhrQrbPVdBWH6JcZXau0Amp2lju6j0VXb4ybfZxDUZ9fP5tcm0My+b/l5/VoIO/W/C2OFVAqZ2Kn9GZnifKrxzaGo9ZENb2QYvv57QGY6IbMDSeftfa71Xhphber0OwOnsxKXWsZM041PGqDkl1mELbUhrNVDmrn8Kcb+xwzNmaeVe0rLAgi1s6TC2YXWlbQknZ1A+90Xmug9XFIbVNU7NJpb5moz7pgseLHqZKUXSEtlGExjnaviVmQXIiTok0JwTHzd0Nj49PxFkPcxcCKSeapkGcmAoXNk5rA9uu62gbr+he8ErDc56cI17c4lQqiLCum1zAv/OScnOAop934At8rdHC+DrxfzqOHPPFUveZUvSAqj2C1MytbSEy5ar2uZiDF2Mm4eg8CFoYO88rz9iJYx4x1DmpwIqtmNVYXFOFRQSaQmgV0S9okfbxoqqmS/BEDeYLe4n8UfiANF4DCVvsJTSBptUmz6UUpG3+f+rerVeS7DoT+9a+RERmnlOnqrq6+sL7TSIpkSONRVAyBraswTzYMAYG/GLA/8zwi9/9Yhsw/OCxDcxIA3vG0hiCSFkSRUqUmuzqrsu5ZWZE7L2XH9Zae+/MU00ZfmoHwa5zTkbGZV/W9VvfOsGGi78ouPFlXjDPC5YcZIdZVpocHEq3djKYvSoqroLcmrSWwijeKKBRxywlrWnUegEz4lkVbikFd9e3QoBBsgeTYeNZYLQ3N3uMmxHPnm7x688KSpE1FoIwtE2hIEIKlsm5tj/Qou6w8ewO2xv9/qr7pds3RKhMrPV3ACUdMb/4CW4++RiHecE0RVxcXCIOY1W4vTwtDIVTORz2M8ZJIM0vP/kEF492GGIUIqFxwOXVBW5e32JZFhwPR9zd3uLRo0fw3uGjMOGbaY9hiPgLN2LvAsgrLC41aIk9rNOIekpc4Xn2WQ0MESHEAdvNBiVnHJ2DCxGH+wPub+8QhgjQK/hHH6rTZjdhGMzUTCUiD+qCf10MSfdc21tUu883Y6maXJqprVFmMpOJqhw+P4iaw2gHK1FAg0IWGKib7cYneku+7MNnqHIuZ9eX5sOP33mCX/A9DvevpW64MDYOoDFqo+5WHycsuR4M6VmZcwEcsN1tMI4R16+lznS7mzSYUfDy8jE+uHsDhhI/eImM34JwlwqOqsu2G4HmHfYHHPcHPHryGI6A5TgLGUeWIGOIA5aUMGICDQHrcRa4vkby06Jz6IWQimLAOAQccsIhF2wUVi91vy1rbRBqB9JSBJK2KzpeRdvnFABxs8E0DfDKMCiEYQVrlkAfISN6af3ilhWTk1qaeV5xf30DFyPmRcg3huhkNWn7GscsDqcTuJmwNXuQD0gFePe9d/H02Tv46G/+Bne3d8JA6wR267NkiCOU6IMZwzhU9FDIQt+f1lWcNa2lCdEhThHkPLbuMb6z+X1s/ZMaRIAZy2j6zJy2mmE+FR3d4pYsSKQJz4dv4pPNT1HAUnbgXJWhnLM8YxgRLy8kiDsfkeZV5GouKCSQMUlCn96MCJodF8dI7A6PZVmltYoGeQaFjVZ3igAOHrSIE+c9ae2TZDVRitSNZ9TsCHS+zPExNE4BoBUEVU83vmg52UN7onbjKDnGdm4v8d8mNWxuudpT3GRDDXjbekaVF3XE+jmETXKbt9N62naC/dUB+M30nRaIOn0duRS3mkc2B9JkiMlT1VlLnnFxTPjo1R9jVbhoWoQNNgyhOsrGGVCdOedqUEvek2sbJmjQ0WlAiblgnlfkdFZn1dna0TedU0rr0+dDQByk3vS4CqO3D1JCk0uBj5LQSMuKpTCmzYAQPUgTFusitXXOSZaOvHV1NXtWggUpZ/CakNdUmc9/1fG5cNrIES52I+ZFIiSAeO++aik5zIM2d4SIq5Ilb1quO985ZJQHDpuDwrNAraiYzrDI3fH/xmGz56vRYjV6+wwad969nW+foXvVGAM2FxsQGHe3BymuBWrUQYxNIQXwY8TLT15r35HuQXV1CHOdQPwiEdgTWLMSvWFozsmq+F2YwrboOwkjGxdIHZl+z5OQMuS1sYh5T9XxNuIHed8VXDRyAhIYB1FnfHc1OSSR2eiE7nWxHhlOIvRrkqwIeQ8fBPNu+GZmh2ka8fjpE8QYcH884PrlNUpKKDljWYCrq0vs9wcUJVYJmy02u0GcpZKRUkEMvvbimucVuSShfdXM55ql9w53i6QKLdYJ0FDcsNnAjaNkTwkY3A7vxA9hW5gBbNInIJrhKOP3/v2AE9oJjdqXIoYMw53UbHF3/6JZozkXpGytMGRvSHNwU7yof7eASf+ZOUQAYE02iboiay7Y7w8n0cfqJJWCggWP+QYHI6Eoll1ra2sYhqp4iSSD2ZzF/t0KcpZsai4J7aC6N0IMoDVVK5iL4Do4Z6nJ9G1N5lRwe5yRllRhdoAI6gLZgzFGHPaH2haglILDYcG0GbG92MCHgP3tHsejZO+YgXVZ8PvfvsR2IgQu4CpihYSl6cm+NgS1vq45W+3fE2VsRoOeavPTs+oKbKSryeKC9eM/x+2r11iWFZeXO1xc7NQAacaFZYzMGIkxIq1Js9Eb+EC4vzvg7uYO0zhid7GFDw677QRi4M3ra5RccH93hHMel5c7XTOS7T76hJUBKucSWe4dYsA4jaI4c8LxMOMiGHEACUyHWVqZjAGDBw5JICcxRGAr+/K4nxFDxPDyJ3Affk/H5bxOwBwjc/a59loDDOihv3T91upgnf1oxkirJVOlLIqqO4vq+iagtq+p89vtQ3tOrk6ls42jYyaS42eP3sOXr69VTrd6k3qdjq7dvnj96hVeLm9k55cMD6nP5Zxxd5jruzcDSTYuax3rMI4YxgFHjV6vy4zddkKJASVnbC/EwVlSQugMyj0cJH8msmV79QilsGTZCrC7uMT+7gbrKv3VnDas5pLgfMA6Lxi2Wxzu9mDt2MsAMkkPxKSQ+ZgLOEld2/1hPp22Xu6RjbHuRZsvIqTCIGQQeQQ1/GMIzQ5hnTGr7SKn13TwPmLUfmkoGfNKcLlVC6/riui99BhUuedKRpbwE+Ac4jgiMxDjgPffexeH/TU+/eQThHFEDF7avWvAcmRgTRnTFCQj46QpuyOpEYsxYE2DEG8ti5D6wCPEASF4XPhHuJre1fGU4OypndI5PACcb7XJ3I2luBE6liAQA+/Gr+DLm+/j5/hTlHKHw/09gC2GGKUVCxwCF1g/OQnqSKsfsUMssybzxJ190jZiq5d2JHbCfpZ1H4eIIXqd1lNqepluUui8GOzROZFTjuCgJRXHGT/Nf4LH8UO8E74o3/elc65Ud7LJdULpRQ6TQkwtmK/BFmrbktrWfnhU09actO57MDhz70Gro0Sup0Y6Oarl0byIGuSzmlw7sTpuBGEGB5SC//QBJbBeJNvW2bUnNcT67BtMeDxv8FHnUJljBu/hY9ASE7kWMZAoa2se6a1KJEFoAqF4uXDhIIRgBWqHJsQxgFZhAufc7ldKwdJHke3/CnE0dFvOBeN2xGYzVPhkmRNAkP5+SZFwqtusIXkcogxeKbXNi9m5RmKUEytJkPkPn7EG9PhcOG3OEYbtgDBGHPazRK/rSvGnRhwBIIsethRwwyD3GrVUR6xis0nx6gaf0tqIh37ZaRjCDM1/8F2YEUpRo73An30mTk5AzukkwuG1+HbaTvDOY54XHPdH7RliXelRizIBgYxdTQPCsAEnidznvFTjty4uRm2qXAgSvVIiCahw8l4WVE6NThkuCwkJkRamB8Efd0o4F679aiy7pjwnsqEqSw6E1ngQBysrnKb2sMpSR6J2tTQkhWRzQggo7CpRBxEhjgN4FohaLloDErwI6GFACBHLKn2JhjjCB99kiJPI5MWjS2Qu8JD2AxbpAEyIs8BUFCLhiCQL1K+OXATT7cQYc+QQ3Ihvjr+L5+GbGqkGXkwv8ffulzD5RCMBEyFor7m/Sff4o/QSIXgsc4ancrbeRCh752BEWxYRsueRhvMejgooL2AizMdUI6sPs13yuzPmIrLsqFdogKT8gza6F/iVRqE0cs6FkZQ4qGgBsPUKDOWAJRxRSgeVRXPYpnHA4AlrEfx6GKJSL3uB5XHv4MnzPqYFH2HTYfrJZKwEAL3XHngGLdVmqU7qHkkfgBwhOod7JeCo9ymMZS0IziPlpM5Qm4WSM/b3RwTKiJhxOQJTCFiLx3YgfPs5Y+tWUBKDqo+aiciy+rP6F5lbse7rO9XvUMvewxy46tC196+OgsxEPR/MKMs99nf3OBxmbLZbddiUZKJ3JJnRDzoXUUQxBoQhgiDZlfs7ae3ADFxeXcIRYXexBZeM6zd3SOuKu9t7hOCw22zqnDrvQNkMpSZPSynqlBUE57B9fAkw4/b6FoeDxzQpRJKhzo70gLQAk8muOAiDocDAZkybFXE9gsYtLOgBNbOqg0teIvkaTGnGD9AJQhg5Vj9r52uwjiFasOMcSibZnoLejHob/LGGUojAxcyyBo12xDLLDGTnEaLsU9uDD68mTy6Zloybg9D8k5emu7soe+P+sNR3KAUgH7rWI2JQx3HE5cUWh3nB8X4PQGD0+8OCOI04LivcxVYgsfd7JDBCzqAgRphneYZhM2K73WCeZ6zHGZvdBOcK7u73ggjRWmvkgrysmC5GLMcDxu0GYRzBR3HGMrM0u4UwRlYjqQjsL7i1Gwa16gugxYayC7oieNsTnoDMAt0bN4PUZgUHTgUFhKz63BFrr0NgLQUpLQiD6Ju0LNjstiAiyf4UNQRByCljGAJQGAUFvrAECJjhhwgmh7RmPH33CpvtDn/3058gFWCMrjJBkwY8nfOIAZoR40o0Ys42CAjRYes9jiT6YM0Z83HGsHuE39r8p7LufXM62pqtha6VdEKM8rb+TfKcODEK4fPw+Ob4e2Bk/L37MZZlRi5FA3AFXJI6b6dETFllN5cC9mIHVk+BDP3DVZcxASk4OHbt2dRwFpNJvsuVAEUzdGbLKDu39CCFslJztTnIF7U9Zc048hJSYXEcSlNU0OVQHR6CyYtmERoaq8qbB16VBt5Y12qVCmSAAbmO6lPRbZ2H1a5sVmxzp+tpVB3tNu2ETm1VDVEDUt1VrQ4Tal+KXKdO77W/E/pz7DOZD++dsK2TkuRASk2GYAkGAE7sw1KkBQdTezYiwJOwiW40i5s4IWWGj1Gh+DPKmmqT7Pp+GoQZv/whNr/2NYCAu3/7p0ivr0GsMGbvsN0OKLngcMyYNgO890jHJCUvzmM5LlhSVhh1QIgRefRK+iTwdKfIHO+kXnRZFsS8YNCSGteRSX3W8blw2rgog54zT72l5EnhD2cOPYBmyDFphRvhJOpfiCDbKiOVgtG3aCmzFlSz4FSJzBAFSnH1nOaEt8X2q2oM7Djff4DoiaTCyjkpeJZsQ5B6Jx+wrEkLstd2rS6yakIqZ8bhMMP5exAEZmaQRSJC1E2jZV9CJdwNpNRkkPSwICvolQ1o88B6T3IawVUrxSsTpWUU1zV1DhvXn0P0ADmUo9Cd5yQNjuMQ4GNAXsXA8MFJWpks/Q81GmWTO+8QiOGK/OyDx7oKnBHDoAWnAcMYEEKEj16iS6oQSgHGcRA6WxJigJwz1uOCzAwr/ezhnUIsAjH0dc4NntH34cipwAcSaCWJEnjiv4Dn4Zui5EhFFZEa7PLdm8e3eP3sGu/84gkajE8caSkqFyfQVxkv85GU1hpo5Dm9Yz5uCZeXwKL1auNAeP+DEZ9+EgQWmE8hqd5rNEvH1TJdp0QeKiidEGb44GsNmdWBGYmO9W/iUhCRkNCgkQUo1pcAACAASURBVCfRQRJI0LqKEyzCOnSMet1e6pTQPx1/ib/aX+ColMR22LPU+k71DErJtfF180dkvNKZIwldMzkxEq/Iy4L3LzLS6PDqKPBF5zw8ZXznfYcPHxUwPDICXuwDvnRl4+pAWrlvWfEWicTJc8vvLYN+nlkzZUwSUpSf7V9CJ8/sCwK6sT/mwxscX/wE97f3GGLAbrep7FS1ELw+iBoG5kzpvI7TKHubARcCtrstUkrY7w8YpxGbzQQiwqNHFygM3FzfYl1WXL++xYecwFG+9ywSfkm+lfDpvPngsbvYgcDYXGwRYgQKY9pscdwfQRCopmXbHAkhT01AUQMjheix2U64vd1jPs4YX/8M+OA3TxbSCQybuRqiLbvWBzdKtwCrOYomHN/ieFUjy+oD231PhloNvmY8vf0wiDhpGoFZ7XFl/IUTQyfEgGWe0bLhTVlWZ1+Nq7/HArcdMI5RnAmCBBKHAbGZcQIpG4IEYyB7dNqOWNaEw/1emlsrTPZwkGbmxEDKGZvNhON+LyRTJBmkaz/AwcNFj6fPn8E54Hg4oHDBdrfFuqxY50X6yXkPIgkaMgjrukjN67Iibib5e0oSKA0CY6ryhRsKJ47CjmkbRvZSq4mR0ac2WmwGpiJJvMMQB8kaqz4Mtb2KwPgtcJzXGX4Y4AqQFqn7HIZYSbOsj5PB/420B+uKhTU/HgPIB2QNWF5dXSKvC968vpFWPbLgdAk2p4VsX5cC5/X9qck4kyWbzRZEM8pxxvG4YAgJuLThsfXSHH3WzUGE6vDYQrfAsNkTbQPYOm+Igm9N/wQMwkf4M4G5L6uc6R3o6pEECWogUha5lDoos6aSmslnaBm4ItDDQsDN5YirTxcwE2IMyKXgsD+ilAGDUavr86V1lT52lvlnQaYE7zUXLHs3JcY4TXg8PMfGXdY6YVlerq4Vg/Dp9JwE+/ogTA0Qwp/atyp6m/y3zG2TEXacjjTaeWcMfL0mZaBCMSUL1xxtZvuu7pPqXPX1uXxyreoUUntGcyDbvZvMMzldETcQkpHdbsJyXHCYV9HfTslr9DnELtcgkhO971QHZi2F8ZqACUqml4xTAVJPW2HvFkXXl6h6dxyqw0ZEuPjt72L/r/4tps0gLXtWY1V3CK5U2/e4rCjHRYeMxFkLQoS27ga8eXqJzBlJ23/trve4vD0CRAhe+BLWpSDuImIMYi+/BYnSH58Lp41ICnZLYQSl5qW6EErnpMnCqTU9pcPIfqbKk6U/ah1FfxZB4h6jl7BFgUURTusAWtNOW8hn7EI4u+g/cFjkwGn/iGEckYzWfBEst9CSkxQDq8I1HdM7VXd3e6G4jxEpN0cvqXL23msvjW7DlYe0olbYKUpJnBU4Qkncfoc4A4QiG0Hpo51mFGoRqEWeVXk7L/UQNfsByWwNozDRcWH4EDBEISohVcz3d3s4jc4IsYdDYsZikKgYsdlMAttUIhqBDnIVIMsi9M9ZncwGSZXJsgarwQmmHRD6X2MxHKdBm54SCjt4KsqMpjVmnqqAiDHCh4Cb9AJ/fvyX+FL8PjZ0Vee8d15KMRihXCeXUp0fMZY7QpU2cQBbvVtz2NBde7fzeO89iUo6R7h4FPHVrzrc3Gg9FxeBFamSr3VVrOOlVPWkWqeSeTBjXVfktQnDUjJyEshmYak/qE/LRSB/VYGfZqyIJMOGIo2LSSOpKa3IuatTPQuQ9AGM3uFyJA3RpaG21ZhJAX7JBc4V5BTaHOQELipgSQ0p05x5xThFfO09h28+J5Af8eKepOE2EYYAvHdhiphRmPDVSWC51fERVddFLOns3/6d2rudQyHrO1PnsNkYfKbMs4ALI9++wP3tLbhkTBdbzVoDpM2hz+NPdQwArEoGZPV4Yvd6hNFh2kzS0PfuXohMvEd49AEeP3Io/Oe4vb7FPC94+uk19k8eIa0F76YFUxlw4P69gGEccfX4UXtPNV7GcUBOK477g8BdQCpPnMSrW0QNIHNuBLrn9zMOhyN2jxLc3Sdwu2ed8XPe+1PNrmowUpWHAMlarnVe6vh03vL5GjUjty14VoOlu+ZZEOGz1QabtVdntt6NpDj/2f0bcJaC93Ozqi2Jrr6ExBmL2w0uLjYoKWFJ0j7Dp6LGPVf0hMDtCJmBaRQEw/3tAYOXLEApGcRe2srkFTF63B6O+GjaYRtuQCnDO8LBBfwijMKm+PgSu8tL7O/vcfvmDsdlwaPCuLvbg3PBIUmtrdXwABm0JuwutyCIk0pB+ozlwgJlUhQIgzFp/ciyrELmUfuAKUsnAacFlW0+AUayj5w0Yhb9RwrJEgORihhjjoQZcVmTOAZKNV6YJUus18opSWPwCqES5mjyDpZUBIkeWpUF8dHTHcbNhP3+gJQLovNdhMlM7mYwF2atKzE5V1Bsv0FLQRxJEDMXLMuCu/s7/PTiT/CN7T+GIx1vFoiksXRbPSCcZnmLXrEGaU2vNTIfk1DFQgCF8Y34Q2z4CV6kn+Kj5f8W2T0NCB+8i3UVWyCnDBTRkSllzQgLRJUISpZTquMKACga7K1EFJJ591r+cLw/YA1O5b3MY0oZLgbNpHiQy8jrCj9IDy5mIFktOAHv+C9h5552oRDUz87371tZ28n2uzkxaFfiPvtlsqPpjHMnsN2XTlUObJ8/dN7a7eqKAdV/1WqyAEAX4KrXoJb0EFIQC+30z8gPvmdELoCsIRkDte8pSJaySOLEkTheMYaOeA5qz3ALUrDYLwLfZhQSJz2Q2GNik0htWz9s5BQuqnLCnrWfCkADNUNEiEJQktMR82HBZjchDEI6dDyqrR681LR6wuR2+Nr4A/w8/h1+dvka2exqiMN+/3gHOIfHNwcwqc08H1GmET5GML0N9Xd6fD6cNifeNKEAwWNyXvqHKGuQHZbGtNqDk5cjangVQD7UE0v3JzvmlBHUQx+8Uc4LY9SpcQmI8UUPbvEZb/MrP+nfxyj293f3tZ+aQSWHaYQfJ+Rlroo26+K3iE4z+kVYl5wRnEAHQZLZCkMUNirNduHMMLRebyFGjJsJTB5lOYpg32xAIOz3e6RlQYyyiPOaKw0/OamDaPTtvUOdUTJjHALiNICKLHCJJgCBCobdhPuDNLh2juBKweCdMGPFAQbwZb2mU0OcNCKSc1HEhGLaASCt6sygRrJzKUhLQikZ4zRovylozYFQQI9DQM5Q1qJQG26aoWZKj8iDWFh+vHdg75SqVZjLDv4WiX+C+/UFuDg8Cs/x1P9GNRZkHbRsrrM50WkRxWf9n5rhxxDjxJg1xehuDg6RwE4dokSqtAYyZWEqRcnayBGoxBcaIbXMYq3JLLkxqrLc3RhBmbUnm2IST5MMp2Zjcwy03sAJW2SMEeuy4rZ4/A/zl/Bb8TW+u94oicipIdzWq9UstP4zuqTred47zGvCui5nbQasZYRdR6Nw2ni+sMRMnRMY0TfedfjWM4cYxfn9UmRxpAF5Z6sUIKNFMqXbM0P1Cu9ULpwrxZNMm73UWxy1+uIsjsBpEELXT7XpJBhwPCxaVB01IAbdr/YlNc67AJ8YTKuwxyqE2Vd7kTBtJhz3B8zzgnVeELYb8PgIftjhyZcdyk//FHe391jmFW9eX2OYxtbsPEhGVSDHrmbqqI6bHM47bLZb3N/f4/b2HrvdDuZb2Zry3ohF1AhQyvMhBhyOC/K6IBxvgN0z+S49dFQ1XI8K/akwymaQtFP5M+KD1Zyp55EaUHx2Rv8ba+2rZeNFwTfn0Q4ZGa6BO3lOxrv3r/Hkzce4fnODtCzdUzcn0wIZBRGeREYF7xEGCVogeNDq4X2C90XlqzLqkUIOnccQAkpOONzciYHkCaXIPXMpGIaI+/sD3Dhgf5zxevcI711tsaaC4ANiHPDuo+eYpgHOSXOM25tbHOYZqTAO84r5/l4aZcMwCYKIAQAqwM3tARcXO+SUMASPWUdyTVozyoxAUkPJuWC/Fow736xoGxqNJ/WZUJNzgKLwSIw8CShpYlen35uRqn39lnmRDDGRkhqtmKZRSUukgXNW6KqhFkTOSRDQsBsM4Kg9w3YXogNzKji+eqWBXDuvM0bbH5ELIzjZ9zVYWxq81Q7HQAwehQPWOeEvXv8hHAFf2/zjU9nb3c/kWgvsqH7STBfZ4tTxo7ONVpiBzHjP/xoebz/AF+P3JFA4JPxteY3jYZbsWhEd+KXjF/CPXn8XRIS9u8cfPvo/xLmy2p+6hyB7lgmP6Qt46o74mP8a07QBsRBMzccZKSXMaVWZQfjO7g9wFZ/hJr/AXy1/BCLJvlkvT6Nt9N7LvLE4i+qPiqy3oIq9+meYf3W0ehnHpGWqBqfmzp2ya5leeKhD6hzJhU8shV4h9DVvp9rZoJmSVbRnI2VntOdpLlfTU9WOtNfvdF4DyMrdnOvufPYODCmByUWJVpSZ1kjgqv+pexFcQIWUMESQU2CBGwZFAond0eQvgRCCw2aKIKfB3CXhbUfVx0ZatmY4TSYc5gV3N3tldgfIOzy7/DJ+8+IPJLFDBAePLT3CM3wd31mOgHIP1DgLgHm4wY/j/1i5HErKahtJS5nyQEGdHp8Lp+1qKfhPPi7InIFVNtnNZsAfvxsAaPaBW5G4RFikdqfXoRVHy9DMclsggYCkRunoCC545D77gSaUa72Ds15SrPex650aF9BbbfcLLm4OwPPPftdKf8qMZZ4VziIZsTgNGgUqUsDoHOB9ZffzWvDlQCjENSLN5FCKU1YqbZwsODNROrrIXce8aIdt5pIz0poRIqsSLIg513vmVEBIcFF6SyRlrIxDQC4OnOVnwGE+HMU4ZILzAtW8cg48BKylYAUjxKiFmh7DZmMBTjE0F4GzZu4EBzcqVmOHLKVgnmeA5DNLp6d1RVqTQNkGwRazMpEFT4hKb55LhoOAIHJmpCVhGKOwUjqB/JAj6QsVfK0NkwkXKC2RwxA9pmlASrkWdjvnsJQ75JKxX1/j9eEOPn8BtQ2EwQZZ7QfWmhri0zqoTjMzuLZJOK1Paw5z0QhYCA6smVAiiTxCafiXJYGch4OwJ2IIABM8Oc04iSROte9Tb6hSXY8GTznXJfZohc6dL90DRAhDwLquuC0BL/KI/zk/xwUf8QV3f3IN8U/4RGH9l9Nf478+fOPkfsyMZU0IRXq9GaFRP0apdM9WGPOyYAgOm8nD7aSlw9XO4x+9l9p45lMmx2YQt4DOCWLIIp1nxBfmlPTv0jujgBYvE9XsJyrMEuhlTlOS1dzvHPi2HlAyluOMkhOGcVP3/2ldAQDyYM7mDQBAhWdP06AMXgRrzg1A69wGLHd7HJcFm/e+BjddyLNdvounX/4uyk//DIc3t5iOC1gZ2cgLFNqo2Z1zGCtJgCIQqphi+EAYpwk3b25BuIMLDj4L/be3gEq3DiTYIcEhLgXZYObdPqrMjDr2Mhaurns7r0ICCeIxwJ/M38MssBnT5gSf1iqeWNdqiTh36mSby2amzykhgEyaOXaP7l5j9+Lv8Pr2Hqux7T14JkNl6DoBgyD1E6Uw5nkRaKUP8M6BedW9n+WV64pnxEC4vdtju9vCU8GyiIGUC4MhjLsWAFmXjI8z8OzqOb6Wj/o0HillvLq+x9PHV1gP97i5vhWkAjlspoDlXomCstVJO/jQ1p1zhGVZpHVMLhg3EfNR5lgCl9InMxLhrjBSWtDMYR3KnkFBa9tqdrXX6ySsl1HJEBhtrhKAXICUGGk9aFBDdPWyrvAaiJ6XBakwhhiR5hUrCKo4AEiQzcdgqwKpCD14iAM2mw0oJ8zHGTf397KeIYatQfahawUgRYBoDXaSoKIFR4QPyxxXhX56j1gKSizYHw/4i9t/jYk3eC9+E8rxXBnvAILjXO0NMdpb4IEUJkm6b6hb7nX1E0AhwAEI/grbKCQ0h7jHL8I1llUye0K9H3EZd3gHT0BMeFae4MPX74Ocwx/t/g1e0ktYs/RSxDG9yDv84PYHcBH4Zvwn+JPlvwNRQWSGG0ZgYOzcY3xv+x/r2Ai9fKEVQx7AMSOlBWtKGNyA4AluGkAgPPdfx5fC9wHOqC14CNWpYHVajAKqyqVON5t4bTbE6R7tqdKpbffO0XuoQ3qZdeqmtdCPuJc1lybOon2/6hTXTRJqC61emrwt+3biHJ4HJk+p39vpTCDr34tSbQ5SZzkEW1/2fvo2OpZes6AlM5wXAqthiIICAmoCpLkDMkZh8NgEqT0rOSPntoeYGbwkYAiaFCk4HmapZ6VB17ckOdg7xDHi8fY5fnjxnyO40L2frMed/g9AhfHLfYA9PMa4w5L2cLxg1ZKX0Vlrp/8fOG3EQs1PDMzHBcuSMO0XfIFH3D8vgG8sW00AtAzM+WFqjiUsD3aEVf94VOIIJgu2Ce1qNYm6TSby9dSAJki6v8cvA8BmP+PxqzvQu+8KdMO+r1/35ISNyp8ac0HZ0aTXGGC1Tfv7A8jNku4vBc5BYYYagWRWKlGpP0rLjKgKhpiF4r4wlrLWWrLMjdSkN/ShY5XWBVyEu3YYB2w3A2bFnQ8bIfNIa8IQg/RzOy4Vpjhsg2ByAbgwAGWVptfeI0aH5AB2ArOKqnBkY5xmVsRPa78TGK7rWVSUHdAYpEgxwKUULLMorDBGhEEyObzKddZlBZFAsYT9MUtjYSJIT6uieH2PaQyYSWCgpOyPfZLdB2G29Jqet4xGCMpAtRhEpIDYwWPARJfIRMgsBoAjwTSPg6yVjfOIwaCssoqthYApwN78a6u87QIJqgoDqBjEVIWAMCapUoTACT1Y4SRB/TKBeGbvMB9mnEMv+3t1W+WtMqZ9x2oq6OQzgVkC/+3hS2AU5VZ8+/XOHUN/htuv9TulNGPDIoJAi4CywGCc7rcPn0S8cxXx1cdJGg6DQZRxwjBW79s5n1X9nRvjp4rtfI+dKjVp6UCdoyY90iDKy7lOHvXqmDtF3ozROlf6HWYg3fwS8/0bOCLEnj5fHbcaLQVg0JeUpAY0pVXlS9A1jpNoL5FXDL7WqqpONaNkePw+Hn9wgx+lhN+9+ViZcxnDFBSWZgpYxjrnVq9ScptvqdNlOA8JNqxCzBHicDpHDMl6ECRYozCo1BWdN0OoPqjMRBeQgDp+8qt4j6X+TV/yZP21NSDTXTTS267fhr2tR4O3F7ZZPDWy7CecsLXKv5vjHm4+4PGLn+P2bkZ+a9RYAmMxhioPjGGPvAS4LLsj0GIHZoc1M5AlM7dwxjKvCMEhRpL6tFywrLM4BrkFVDkXzMcZnLPIDgDXN3f45QBsjzfAuuIWAbcXT/DoybsAM968vlaIkQ59FmoI60sl3Ati0FTDlRx8Ye0pJ7JymQVyKKQRQHaEu2XFcV5l/XgSdmkd1Aor7+ZcHA6DX7V9653oMJsvFZRgSHDtuN9jTgXDEJD3BxBL0132Hnd3B6BkxGnEssxgYvggAc6gLJQpZYxDVGcXWFkyHRcXW1iLkjcvX+D1mxsMw4DYNaHOde3o5uRca8yMrY5MVugzW/yN7P2Cx0DSKnJeVqw6hsaQLPTp6tSSGZVZnTOG8Z3a3tIVBetv2C1HzVi168vfAI4TLpdLvPY3FQkwTiM204hplLZGXCQITCD8/v531Tlv+8Lkj4u6lxzh98b/QiF8VNeUzLg5JGLNPeMv4tv+P8RfHf4QqVxr4Ehk8jvxA2z8Jb49/UfWuu3UHiBSNnK7LqkG0lyo66noekmO+v26Ad5Wj0Ynv+nfOplvf+P6H1iG6cH3Ou/u1D2EboNWywoSlkjuril3MNn94E3Onr3dpL+GXbvKWEabR1LEna6zprfP7mYBkpIBctI3dEmY51kCQFpi0p5F30yZYSTo7JoPwQyeF+x/9JfYfOurKMuKcZDkRM4Fx/0i0+4chsFrv+EBP7j4z+ApqM0uSQFCAbnWE9De0eD3hYERO3wj/i7+bPkXVVekJSFuQi3F+lXH58JpK8xVAM9ZGlsyF2xvZix3C/jJdHJ+Lcx+cCVCo1mWQS7OA6M0A3ZcBOKBxiYJJjircSg2iYr97nc6mrIV+0+EzrhfENeEi5sDSBljwmYE+QAyp08X6QggvrqGCwFgKeAOQ5RFo1BHK5gkGRgAQlkbR2FFlAaABakUpGWVqGQRGtM4BjgvTbQzszArZmGIDNE/qMNr0DqqRp+wsTlcXl6AopcFPA5C3LEklJSxMmEYA9xmFCd7XpDWFTEEqTdxDnEYVbgwUmasqYBZHTR0BpTWdskmk/HPWeq7CFLjGLyyQk4T7m73lRXLoD+ukLCAKitYXhPiNCFuPY6HWXr+MDAOEpEBEdYsMKA4BMlKsbAlmiwJMSjTUEbKBTllNdO5wj5Sag1/zQlNqxj9MXqFvxKu3FN8OH4bP/cf1+bLwUt/EGdKBZI9KEoKgrq+O+Oim7cqzepnunD0ObhoB5hqa+pnhAazIVEteRbnO3iPzAXzslYoG+tYn2e73nZU50mf6Pvh5YNziASa1eryQjVX7XPgVOGf3zaA8d1wgx+lqxPniFnrRL3QAR8PxxODl0vGtJ3w/pXDs4uAb77rAGKsCWeNQU73yen4s8qG9vdzp/T0XU6dtUqy4jTAoVF3p0qOyPR4B9tCP8NOx+dhtrXJMF2TRdetM0YunMxj73ISiRGcVqm7WdcVw2ZXg0m9oUIQUy1onU/OBXn/BmH3VAI2+qzj1XNc7a8RD58qKYOvjmFzOkVpl2WtRqXchMEKkypa+ygJEgI5qVPMqryJZB57HMopTFuemtGPWctYWWTE6tZOxt0CRN1Ris3rgylHncTuHqhOgjnJ9Jadq5/rz3yyv+VaRMDl/gZPXvw95tt73B3FWbEcUffQGMcRu8udtCZZs86ZZpCdyJiiDqHA+RZhdtQenigFKwSxsNns4IiwJqVlVwiPPbe090CltE5pBTmP/f0BPzoQwpLwLM84RmC72eFiO+Dm+gZvXt9UUidiqWeblwSTfkHJb0q31p2TPSPwJsvIdftAR+5aWTCJZO3Hr3yhOwcA9xkhc95P147pF7j2WZ073WspZ6lvOUg/Jmh9L5TMyQE4zhL4DDHA+QAPOcdrjICJ4KcR67wCOWOj/e+IWAlI7jGvwjSZi1MQkTA6m9Nv+keyQDpehVC86JUm71H3CEgdKQAhiA7+ZPlrvBu+iIBt3QaF+/Us+0XsoIKCooHTzhg3R6QKM80+M4NrsJt0XxQMacD7v3iGN1+61e1HmNYRj26vEIJQppdcAHZdDy1gpFMHjGHOUq8Z217t/Jr6uQVFPwy/jhADbjevAJY1Ro7wYfw2Jrezx6rXrC687uf+M7t+Lx+qzdP9bsFZlejdHu5qausXuDrcOhPdPNLJefI90xNtrG0N9P/2IqxLiTz4Ww+67t/kRO701zgXXw/ObUiCWhcJHfcqQu1Zz+xW1Qu5FHh4rOuK+bhiTVpiBGgPReUK0PZQ5/ryXD/z4Yjjj3+CfHOHtBmlIXuQ4LnX2laof1F7+OaMxVpolALvCHFycM7DuQxp4KcWHikRDDMiBwTvsDoHUEFeF/Ck556RwJ0fnwunjRk4aFQsp9aT48ki2ZO9YmZ6wfO2Ok8ANbICiM/jzSju61DQKWMVKqYUmWRRQB3JXiGYQrt6eQdXhKzELwU+GfqeMX/0AukrH2J88liEdl2B3IzK6DGEiKxRKqkrK9pU2CIBskXiEPT/UQycLPRpw+BRknj3ac2IwWGIQYRILkipVBhdVMikNViWReGAnHWROIEuaWbGETAMAxYIvnyZFy2gFjhdzoRlZoRhwDAEHPZHrEmiNIEIKJLZM2NFnFEWpyRnrV+zpolCG79q4TkXrrVkKWUsSZ2PAgw+YBgjlsOM6asfYnz3Kfb/14/BEHiVD+2dCzPGUYreb29nOCStX5J5jIqbDkpDzVqbwCyEG8yoPTqsfwZpNNQ8a9aIo2gVOXeeF3gGBjcprMdo+kXJWkDh8uYCj68fSdbNEXzRf1kgG3/6pwW/9VttlTPbGmv/1RV/8vubNwU//3nG174eWhQnZRz2RzVSOjpkmO2R656ACtFzCKYd1nfr/HhIMw58P7w+O4frPioA/rflvaZE6hOdX/ctThsxvhuu8aN0dXJfi7YKTJeEOCWl+szeE96/8vj1ZxmbOON4PM/I0Zm2tb+3e5vR/TZH7e0ZNTl64h8zJKuiP4ucnh5NOXJhKUYpXTbHDgs46XUYrfk4ujE8yQSevYGtXy4Z02aDURsJt/UiF7L7Wt++kgvW/TWGvIBDy4DRdIU4TfjL8RLfyG/gY4D1zrP75ZRwe3sPYxYLMWDcThJcKwXruqrTGbDO0j/M+whnGQdqMC15f2oLgRpsS2+o9zaH2Pa1fVfNPvt+m7CzwdYh5w6y383Hg8qRk3NOgx/NPTM40Nna0Wce1wXP33yMdHOLw+2tMN9lMdTREWMRAdN2wsWjLYKP2N/vUbhzEk8g8g1aa8QjzlOtLRFVUnB7fSvQXZXLUxyxUUN6WRd1YgX2vS6rMOo6qXPzYcS7Tza4Ot7icDdjmY+4fnONTz+RnoHCRCuK9/7ugJyTOjcOJQsyJZJkaJyTfmMp5c6INESBA7zNtRm4VtPnMX7xfcxa94bO4YRe423zCzTocy4sLVV0tgqz1EzWPq/6d13bIUjtfckFcZTArCMNyJESejkhYNjvj3Be5HUcRmy2kwQ4mCVbBlJEhMxZ6xEnTb1lryv5SWFl2uMK658GBynjkjmt9azc3j+EgCXP+Hj5Gb4+/QAXtH0wGg+MXpizoeUbBGQbI9Vzzgh4SLL1nFYwBbCWd8iwsdRbQ4KE5DziccDjmwtYDwep+/a1hr/WeUH6uFJtIq9ytZNvVc7x2Tt0wbfCjA/9r4GnU/nda1cTH0ZkAaqgQmEC5+47nV4Bmr16srsVLcSuBQKMSMdx0ZYeJpxOSxFO1U8nydWpYNi1xGFuTi3Q2HbbOFSP0PSDrj1bI7ZSHh7U3u8k3NxycAAAIABJREFU4PoWr61+o9dppRKHyfpstWyfZedIqYyU7uS8Yl3ls6EmQFrtumMnvQyzkKaJfdNl2LjZdulWSjOICMf9AdZrLcQghCTe1zIjBwlO5X3CmpK8lTZot2A9kdcgiqoQUC1psvvYWi0lV+eV6DQ7e358Ppw2AuY5Y10lwt+K0oF3fvR3mK8ukDdjfcnKnsj9trSLQaMK6n3Z5qKOkEQtHrnGQ2OTuYAzndSyAAAXxtWrW0z75aSY2NK73jvk+3uUeUWBkjhVWEZjA1yTLFQ/UIVAQOEeORcgQzujC2HH8TjLazjt9ZKyLAzvqmP65OklQE4gKtoQ0vqwiZA2Eg3ptcQgHO727eVIU/uOhKCFCGkuig9uQso2dcoFaX+E95I5ycTot1oSwDCKZp+MsdIcYVfJDaTuLTBjLQWMAmTGODlMU8Td3YwlZTDPAjWJQTbHxQ7uncf12RiCUQ/enCltiDhGXD4VFikfAggKuXJi/LG+i8x7rguEiJBzQkkaMCCp1Yg6pQzLWPmaPTN4jtEIW688r3C3PoIyrAHTMpxIc9J16sjh1atm3AKo7I5NQDcB1iuH45Fxd8fSR0co9rTwdv0Mp+BkCbzddumO0xq1Xoi3Z+obQJ9DBAExBJ33+OHwKf4sXSEz8IP4Eh/6fbW3T+8p73HuDFl2qQV2M1JqTug4BPjNWFsa/PCLK8a4IDhI76u3RbQIqNTHFlek7sOT3x86aJ/luJH+jRR2YxaAKChdv1poXaoCeyiDxGFrjoUMjdUd0qmaM6UA1HYd/QM5cy/UwGEGpmkSOOUwKM2/7GtvhpD5P7q/gKK1IUUf7xSWAgDXThjCci5I3DlGEEU2DBHjNGEcPB49usAwbVGytBQ4HmUeRA4uYEjmPqWEIQ5nDpGtBYGrGMmDfSh1rHJ/AUBwfe9mmL1lA5w4AqSGJXWyFSpb5WEs6UDdmMnprO+ixBDkzuq0z9ejjGDIK778yd/ieHuL5e4grJ6m29ByC847XF5uMV1cCPzOgmAQHUXNcq0v3faW1qYpHNwHj+1uQiZGOkrv1LQw8rKCna/rGSTZr7DZYApR1sWy4v5wRD6uuHp0gatLhwkLpgTcvbmTmrQxYrN9KpBwVGmG169v4Mjh4slODVPr+aT3Yq7EnAw0GFQVXuo8Fcb+7l5JRKjNk851Qx5Q2z9vO0hqZMjWjAYxGEBWQ0uY77SXKgHkBTLFWVAXznvEIMgbq7122h6mlIJ1WeDcCmbC9mKUiD6A4CKSZTW5IBfG0Efc0PYbEbRvmGTbuCSsy4yIESU4OHi0Ju06ELC9IAZn8kEzEm8fCvmgoG8pbQEQmSNWeL8sCmICArQ9jM1RUMlK7TmIarsCAGJ0W0uGLqgijnnvNMl+lJ6mpPIT2vrJlnrbVVYuY4E3T+b8UXWgbM2dLIFaQ6gmUP/mKoOJ29+JLBDStLX9XOWekzH3zGBihfWrIwmA4eA1OymjFNT5Jdn6bXnKtewdAUDtG4K0PjoRcCjCBVFBnKj2ckuoml5RG5mgZSKo72XjKfGWrlSoCdLuAan+KKfoqHD31zr9nRS0Td6/LUPIygpAviCEQdiLg/Rmy2nFrEgOrzKhZEWjFUF7LUvC/v54wiZ+XifImSuHQU4Zy7JiHAVunrng6/QfYL5NYDiEcRBEWCA4H7vAdqd/2a4twYVn4av4cPgufnr8EwBGAmfS/C12SXd8Ppw2FlIOoxiuTgJQU4auX5Vi4QCczwxNrhtOomy+7hpWo1j6e5wanm9T1OfOnGPG5atbDHdzLTRtEVxIhDIEpYttGT0zlsjL4g6Dh/dOGQAZxQsEEETIRChpbfUdZpAza38syQyl0jDcaV1RUsL1zR7b3QYpy1jmnGU4nC0W1OcpuWCcJuTNKE6ZZu84Z6G990GiCMtRCT1aNs7gXEI9n4XcoTprDrSd4L3Hcn0jhaJO6gJSLjVzBUDgg8FDy/tFpThCyRIXWteMYYjYXm5wuDtKPyB9lgrhgThvfHuv6WsAHAXS5a0nCOA0OreuqUJtLBpjDobBsKTWzCuVbIBzCduLCcc1SwGrijtHJhKlTqo4h1RWDENAWqU3mDASOmQkzLxXZX0q9NR26wwo7Q3nkn5gGstKnG0T/Kr1K5JVuRNOzv9Vxz/ksJHtofoMnVNpilCDFOcNLOt5qhnJO1z4hKduwUveYPL6qCfRumaLWSTOjoiCC0q45dDWNjMAaab6dAf89vsJ5Eqt+yeEbm92kBZqcBcztO1p0f9qb0AGF/1spw1k1Q12fajz3xSEXafpuWI/VIPOHDdrwdAc987w7J61H2dmicrnE+fCvq6RV3M0tDXHpHApM0LtONGdehi0bdqOCEFqDFx1IZpDGMcBfA/8uAS8gRixbMXnBIQQsdmMuNhtME0jckk4HI6Y57VGHR3JvojTKKx8XjI0pSj7avPNYJFYAErxLc6lDKHD6as02I8ZKp+9DzRybRAv5l8JZRFjrukk6u5WczZiZaGadp2xE3ICLQu+/OJnuLu5FUMjKxlEsf5gcpFhHLB7fAl38Qh/f/kO7uMG3/n4Jwons+yMRpq5SHCDC1xRGQKppRJDTNgXaRwQQ8S9u8fNzV3tD5lXaRLdBwL8/QHLZoM1JVkDakB/4XCNkRxSLrgoGV9fFvzNNGCzHeDJYeueYCl7LDiAWPpdLvMMLlxrpOsCUP/K2z5gbT3D3GpAIe8TuGAdIsbNRlu+tLpo1iCbGElSy0wQ2Ge/J+Rsh2UR5mWnHiqZD0mkgdOi2WB6YLAxS7+2ZV4R4oAYxOFx3ldDLucCJoHuT9OAkS4x0ga/vfnn+DT9Lf7d/f8kwVhuRFi902NrYF0WMMQOEfkByRh4BzdUaaTDadlGDQ6BEAcZ+315gws8rcZj1TFEgDkC3VgDTp1frT0kmytx4JM60QzR9RYkImrs4DmLvCSFtTEV5DEhrlGetwA9etnGGKBWgmpOhTkKdBoGIV+9MtucVRD0df7nB6m8FPS11ArCSIbUYSK9H/fyQ5/THDrLnIIZyAz2BOP1lEfW8a6O5ml5TtG5Io8HzJz2nKJnmuxt82RDpxlPavBI6s9lQxRZ+ZCMUXUMq4jiqitP/27yBDVbR4S+cLh74E6/8glfR3eOXVzuCRJTKKeEPGekKH2PyQnHgI8BwQvTrdMSJYIEWHIRhy/Oi7TpmBVSacmStxymS6gUzKVgOa5gFJTJIWzFYfQhVHZ51Erh/gXMaZFxRGF4FxBcVL+GRbBpMTfT29ehHZ8Lpw0MhfLIL7XoGMDLb7yPNAS4zoorIIUnNoPVKLsrK40ZYmzwNtRV1dYydZEqWb7OERCCCnU9nxkXb/bY7pezjWCbSBsAei+bifkhfFM3tfce42bEStJzKJJi9rVPVCnddXUcnPMw7C9IGRtzkUhfFsd1nhchDVEHr72hMJSBgJIUwndcJKKj0EQxtn0tbGYw9oeDQi26KCXQosy6e6qQYvne7nu/DreZsPyLf42ckgg1a2rZ1ek0CBIhgwDvNEKk64GFCtXHgIvLDQ4HaWC4FsBtR/jtBuQIT3/4fdz8y3+j35HnKKVI9kyjfowCFNYxK7XWxzknBuDgJetW5DvOBBIAOHHipuCxzEkcLwjk0ZlEUGFpLRxC1KwiERIDb8pL8Ou/gnvnQxQvzGbVEWHGWoC/XG5hmeMYlVu9ZlDqsL3F/+KTwMWZD3ESGfv/cvSKsN+XNoeWQaxujq6Nb9IN3Nm5zPJ5dB4+RqQ14Z9vf4H/5vCN2vagyYH2/O291OBlxnM/498b3+BfrQqxJJmTdx4FXO0cfv1ZhnexRulbBgwAN1jCybtxe34bW/vZggRtXNo17feTzzqDx57PDHxXx7F6m2cWR3OyzLHnqrhQa6z6ZVHv3T25I8IYA444NjkHNTQI1Uhn1r6QJHu0dybPG53387kuovzGcYBBbuTNqD03M8ZR58GSxyyBKgrCersoDTeBsRwXHOe5yjK1UDBupEa2lILoSTMX7W25UB3DlFYsx0Vh4R6NNMbAbZ1s1/+f2xRvG1uxN7k5K50TLc+iWQbqIPydHLf7nY4ro9GPyprwYDw+3GF78xL88iVe3x9rzzx7ByO0cs5j2gzYXe7w6slzfLp7ap4r3gxbEG7qdWVeCN5pU/uUMQynwK3CQFoWHA6HGvmdD0eJOiuqAmsWO0rZm4mVpp2loB4sE80M7O9XpGGSwN26ghVunwtjQ1v89u6f4dP1b/BXyx/hWO6Rk8D9Zw08ppQrskYylKQkJNZXUcfaVBJkXRcAcAHjOOL+7g5eoeG2rln1ha9ypa0B8zss0JvWLL3DCEoY1NgTx2lAyBIcJu8wDoPWTUP1jLDjpWwsvg7W5sG5Tm6UIr2pvMe3pt/Fs/AVMAjPwlfwfPg6rumPkZNk3UJXKmL6gSHIj6y12ikJ+YxXJmOuTl6b51M7QxAh6wz8ePlf8Xz6GpwGTB5AyE+OHsrVuYXiXYN1zA1QZDqhBnX0mtaexmbjfrvHiw9e4sOfvafPy7WvHtszyScncgfUWrCYY9Jv7f6ebENoOtxZ1rpzZrh0GSiBexZ7VVsvpqKrSO+vApUTEhQRMVGaIDB7qNeVnX3aXUUdOxtHQ0dw0wuwdUtVBlTdA5MCVB2Zh6YEV+eR+vcj1PXTZujc0ND/2L6xz+uAd+/TJkECCs6BUtEMql39fJ2pLc/iYA9jxLJoy6ey6OVMzwr7qPdBanCdQahlEcYhwjmPcZOR1kWct2XBPLc+x9LmBsq50LgWgKIQ/hGb7Sj30HeTfwOsF50O6ckicxpI7Z/XQexAcabfNjGnx+fDaTs7Chgv8oz3/Sh/sAJb+UV+B4G5iQDbdI5c7b0EKOGIDoID4Xf2vwXURqfNMOrBKXd0wI82fw4ujIvrA/yaMM4JxSAnbEZo+34pBVgTohJ+2IYii/BxQUnAvJ8x74UgwUg4iCT75YUiU6LeJEYNs/SN6sWAFeOyNoYm32CHFZ5k4xFMhDUjsiiJyTBN1SkjUrKSbBhjoVJNi0cpVs9G8DECcBLd6LI//Tojko0BQGpSFOrpvIMPsqhrpNPkmjLzxCgKT5gnXTW6p2msdPf+yRXc40fioKaEZUn1egx5t5zlHXyQBuY5ZRyPsxgfqvScl/ooB03zewJxy7wxC6xzmRf4SeG5zBLBqUaTsmeVgqiCNKrMzJkBKqBUcP+LFxjeuQC/E2H2JSACcuGM//34aRV8zgOcq3kJg4LUwdW1ZfPZZ21MgMiaLiLcqQmRbpbqdyrLJJkxqYahrkdZ7xKNOiVlMC3VzoGSNPxgeFHV8nkErjDDSHI3WPFPh1/gOR361zv5nn23vy+Rw3ceMV5gxOZRwOAFNv14A1yMAMHXd3zw8k2XdgKX0OuJFsl9eJw6aO2CLQoOwPXkIk7/bepXnMRSDXywRcz1vBrUOFXK59Fg+649TDEDBIDbPEbcvAFd78WIs2ekFtCyvxm86WSuWPsv2Vqxvc7C5LiuSdsBBPjdU8CPlZCAGUi3L7AeD1iWjB/HHV4qbHWYBmw2I5z3OBwW5FWM2yUV5HXGugi8HETaBwvwzmGaBtzd3GE+SnbOB989rxAEFWbMxxUpZVxcXgDOg7bvVsIGeQExoJmpGeqWQ2fjEu7qo/q5P+nr1RladY82g6bODXNDenR6hu1UM5YgRsIXXv0c76wH7O+PeL0/IueOHbJbe+MUsdlucPP0PdwNG1xvLuuaKQB+uXuCD/gXFV0gDKEeQBYSJSVi6mMHaV1xd3+P42EGkavo/kF7W65rgtd6w2wBllzgh0H0EivEUo+UClCAeZ2xLAueMGF3PODVvOLL4+/gng/Y4Dm+kH4HPz7+L0gsBth8WOB2DrOSJBEZLNXVn0XGqayqbIVU9cfFo8dwjqQWklXPCtQGDTZn8tQIfOSaPgQUXcdxGAC3ahcdc9i0tYQPkrVSQjAjaPHkgeDgA9W9nZPVv6jNkE/hWeuyIOexylxzPJz2q5VSBam91hiTLgkh4olDhGcppyhcEKLAMr2NGQnpmtgQWg5BUs9NziEGjwMJFNksK5NZ1qT44Y7oNweq7IEPcEGaHRfVHdYqxk6tq6QPULYt0wxmPnUcUd+92zfV2jdZ3F2acMJ1II4JP3gR7n+qzkPbx718r06w/r2NC50qrs5Zrvu+u07p5HtzOHVNkpQw24uYM9OybMZiXq3gk6Pe72y8z4bqVI5Bxv1E8xGdzFUduqrOZP2dO1qdpJPPzEZB2xPkzMaDsLqbfXHucJ/obO2f6zwKF0UfmP6SjHdNKJQiz5sBhrTBWOZVSeSgfAMOJQQ4JROpffqgaATnql3tnPRQHieDMZsTrP4GUFvWnIxRN2dVQ5i9RVRh1s6FhxN5dnxunLZ+nRcA1yXhPTecnqCSqkYbqG0usDpozuE3lm/jy8sXH9hcxMDjfIVesXY7pp6XXcbFTcbP5j+BX4QyP2XWTMzZg5uBZd8tEDjF4QhyDwsKje3Keo2ZcWAEFzF45JQgxcWl4uFTzlhTFmIANZJrXd1biCPIEcYhgoKvlP9mnBkkkEtGGAes8yKBsSDF36WwMDZuJ6Q1acG9wzgFOB9FKZSC4KXI0yJg/Ti44DCNG9C91Nl5B2HOCgExRBQn28xXgxeqiFsETu0BcJHNVEA1G0alAM4jF9YIrm4uCLTSMmnjNIqiDbLhSu7rHJ0WlYoBbaxcogRMuQPLmoF8kOhuDIBzovRKAZVcX11S6QVG/+rJ1T5XK64Rwx5EV+qIdUsbDQrHDKDQqdxHM9bPjXbLhprjReQ0SmTwFxGKw1irIVpW4YFwsOeSuiokbvTYZ0EK6FgZs99brnTye+87pZwRNbKc1iO+61+Lk8sBwHLigNZtX5Vmy+69G1f88FnCfjuCHkAKmpR/6PC18e0/ehhF/uy/V2dNBXbvHFa2xWpANPXTHAHSjI383eAosvbQlNeZQkVtNv+WZ21egPwbt3BhwLQZMB+FTMhvFB4DPnl35taT0sB7pZsD06uyVhmH/REpZWy3G5VDIwo7IJdag3P38pc4vnkD7wgfIaKMAVfbCeM0wUcP7wM22x1effIpbu/2gJOaBHtlW3fFnDeW/pXWo5GV/IjBanzK/tsfjiI3hwCGA8cLYaOtorrbAB1stNa0woz4k9FscwB+8DcxivTsOkf6OZnzDjXy9AqnVqGcXAr4449xF1WuFj7ZXrk4xAhcXO4wbQa8uniKl5dPkdh1xlyPfugDEAxHRZrXpiOO84xpkog0M1BSwu31He73e4CFNCuDMY7aM8wRvA+1RjoXNYocYxo3ePXqBi54hOCrkbalGTkn7PdHMAOPPOGdKWING3xl9xtwmqnZ8rdwdfkY/+7w32ugTBzvy0db5C7LaPuNlSRLanRc3TeADNswTXj8eIfXr66RCxB8UCdTBAo51LrEXnKw1u7EISA7h8IO201ELqHqDNZ1w1zgvDBBF8cIlf6bkYpCFZ2wKZPuT9L5CN5rQ/AuQKI6pAXfxMSzHnprFmc7hFCdVRgNv/3ODJpGxCj12qHqBZNF0jTdLBNbH95Lv1GnWfga6LMlzacSvfkZcpKQXLUMPZWCkhNWiFNo42KyvD9E5+rN9LNiRT4MSG80AEbQ0K3t0wud/b2zDcFA6XQEgWqLJVYPhk7ezC4h8MZaEmnyu0tFFS0yI3cKOT8VGr0VT9VxpJMYqAraWpP2cKxsfFqmsf33xDGjLtvffW4/v5XITwUkUzu3H5F2bTv93IbufrKgSBf8fOBcqk73Vbk0Mh2qLDWn1+8wPZJEIEJxktF1BLWDxf4TUnHfrX2Zq3VdcTzMwnkwjfDBCZKBpNWVkCCVyqB9OkSEL0/fw1V4D+awnXyOJofUjURPdGhjkc0F9y0IJfWuGZ9lh9jxuXHagOZFewDfClu8KAtukCA5G4miOuZu4vovS6T9q+uX8KXjB+hjFjblhc+XuUbV7PqQ+x/TNT7a/5+gvGJeUjNKuw1ktTui3aygQvqapFwQCsNRE7793nNak2WtDgSVVFDAGKYRQxGIg9VdHQ9HNGx0ATtxxKBOak4FpzBPcVAM226DG2LAZhqwLhLxy+sKF7WAMxfwKoX7uWQc5gVhGBBDEIcvBkzbEey9EKNAlJYnh6QL0mnPOQ0hAMzYXE4Yp6HC3+rzQQz+zOdUrGL0GeGCd6IQcs6SvmYAi7Q0CGrU5VVgixRIjYAVRISo/YWILQLS3d9JHSJ5L9lIRkcFR3AuYPCyRkouWJZVp1igRSZ6nbOSXhlj8g73y4L5sGA3xcrI6fXypJRzxRUkV+CLw3/15i/qtRkAnBTC2sIReCdEmKNB58xPaDU8Ag/OiQAO7fsZWBeL0n720duORF0dFFps4jRGYY5I27sA8Af/D3Vv2qNbcpyJPZGZZ3mXqrpr39srm91UkxQXiZJIjSQSnNFiSoLgGQsayPYP8M/wXzH8wRjAhgEJMDwwxtBIMAWMpJE0kkiRFFex99t9t6p6t3NOZvhDRGTmeasuNR9bh+xbVe9yTi6RsccTzbu4TYf8un1GonqGdCYpecv1Aof9oMX+V/tN1d8/sr2QIqN1Cbss+ejoe3OmaoXT9X1hBtdVFeCasRQjLH/dUh242hM3F4mihHFeA1MsZil5hggJM46LoKsjPvV7V8an/KzWGRI59IsOu90Bh/0BLiNbVWvlHMBTMcar2rtcjF3NRYTeHmCg61qkZM6Vqvk8BMxknxKmJLzh9PQU/f034LoFQvAI4zn44j3sV0tcXu5ABHRtm1NUTcZZQbknSYHNCnpCdkXbOm0vN4jThNVqhaZbwD/3ybwulU1TGU8AEQusebajGMcUUf9+VZWwszM3hPNhMeXTATlLBMUdK98R+ggxIsWEi/0BXdsgeMIwaryTCIuFw/rsBNPyFN+6+TygBsuczmUOn3j0Ni6MftjSbwQFktjjsB9w6Eb0vYEkSWopJ0vjk0hwv+glEtN4rBctUpyksTQDh3HCol9gt9mBmbE+WaIJHi0twZywjo/B4x6Ik8poh8+HiM/c/F14X6DUHRGW/DJ+efX7+NvNv8c5zrHfDwjBY7lcZnQ1cVIWKG1R9AzYQ6OyXY/Tsxu4eHKB/WGP/qzX+QgAVmis9+CE/dZaTZQaLyRR9qQ1SUTbLtSRipyeyCT9mMRxJan9hhjJKWVFNCZBhRZ+FTMNxpREIERRXJtG+nQ659AE6RElPJiwXKzRLxYYLi5wOEzoOgach2UHWVRafjgBy3I04y/1ea8NC1lCAjmH0DSAOmv+av8H+OLi387Q7sBRcjeyU02NNHNSVK/pJHMrlZKhQfPPlFevKKukdauOXan9oiqr5DpWmOWF1hybzEKlN2ZnECqLhPOpJyHIbDi6GkFXmVLi8jCpdSsARTl9uhaoswEystNGjbT6MrCRDJREFl2T7yZCyeA6WrMrBtbR35gZZCVFtDb2qPrOFamY9TdcwyXnz6Xq39kAhUHp7axti/QHJScO7KJfV/PLxf9qDJE4qZ2uvzivAWb5XFRkypgkuuycpVMWQ90F4QfTGLF6+T7C2Sl23/0hUoW+Xst95z36cIJAbaaFPK38l7mV9PdratSctsYgBS+KED2WY8pRvmddHzGjzaYsk9hDmKzTtMR8JQYM9dboJmt3lA02oCIpkqiOEGU58Fmu6q0ICU+mdzBOg+bnX6/MlTMjFC/Ghc/FoMIwKqI1D5R6CCKTaDqkFbZEWC56nNxY4/x8C2z3Mk7nCqiFE2MiKnoaqUHBKYl302mUjrWua4qZWRGksLtbdNLIeBRPJk9JkZYY0lvGgRJj3A+4xCW81vdFZkzDhLDws55PZlsQOSw/9RqaszWICKc/+xns/+ZbAlrp6hS7YiwnLYRg7W0j3gaBAU9J0j77vtUImTwoaSSLbE0ZYEiIu3EOhynlvWyCR+MEWGFMku5p29k00koB3mkfGimEFiWAYRC7iQUqNqYk+qFL8OblqdIKkXUzniHTmVKWjBbUu/vk9gVOLp/i7rs3xetCIiwtBVQMGyX1WgagRD+ukiZXgk9XgcW7ZN7O68j5OsfClTtz+WnpDGZI1SjiJzTilIZiAFQGEVcLkgvTHSE0jbb6sFQD8zSqkEpzZTgllrQjFcbAPDXUjFmdXTFiKq/fNatQreFVpnmsUGQGbfVl5qVkSEFx9SlxvszFZ63s1Os7N4qfPU5RXBJmSpDWlWUAEQKa2x8HDRusVgvsdns07Yi2a1Xg1feq1+/IoLMxJnGe7Hd7TT9cIYQG7uw+/Pp28SxClPB2scaN+y+pokDwJ8/BLdbwbYOTxQIh3ERa9JimhO1uh8PuACKgaZorHlKL/7GBC1R7HJnBacJhe8B+f0DbdeiXPcLt10HQul1jyjMHEfTcQfmz8WtdiyM0znrvr9uVrKNpqhBzFHmkA7WehzOGkVdMzuprT97B1DY47A9I+4NOVIRdt1ji9GyBYXmKH954vjybGOb+Lgq2prgZTepZBY8APG4tVng8DdhsBKjCGqWTpqRbNsBi0UuxvXNI44TN5gAXI2LXo1kscNovJaXycoO2bdE2Lc78PXy2+xp8/ADx0R/gcvMIcVJIdpaSgcYHIDhF33Mqn4EbeA6fXf0qvuO+jsf+ITaXWzgPdH2P4BVtkx3Me51r2Z1ElUIr4ADb86d4en6Jvgu48ytfRApeoq3eo+86hOAwTQHDPmbQmnpjQ/AIyw6Hw4RIDq5pgBThVI47b7Vi6oxz4vB0rLAyjsTgQEDTSjbLfj+o7JQNMYhvEGF9uhawrpRwnj7AbbwEJA8C47Xui3iw/BF2l5cYhwnDOKHX/oRX40260UTaHaTmMYUnZ2U08/AK9ArICLxFfyKAQkYjzJGe/wqhURtzchRr2VDen8+CZ7W7IEuDrc4T5jZLmVO5n6QPzpGYK3trzheq8Vr5CutakI5ByhFgxnpOAAAgAElEQVQVBM94Y86YUMcQKWiNPYvLOK84TtPszZkBV/NlMkOFoVFezjXSti4Z6p6s4o0Ku8k10mUN5jlNZoTNDS/7u95lk8tUUR8ffTLfSVlvTg+vDB0A6N0Zlv0ZDocPMaQETlDwO4eQgWOqMbHSMaujiSA8PnNvZHTm4Ansjc0m7TUseq9ksUnJjiNgsWzhTtdoXrmPw2YLPDoHHj6egXEBwKo/wyqcVTRIhZ7rbbXVML2foPqNWQGMpbuBNiywc3s4illvj+kYzGR+fWSMtlqxIniE8AZOEbE6v49H9wccSMxwU/zk8M6dFKZs0xFhlIeU9ASQHU59SxXxt6dv4NvbP8V4GGdMToqGvXjI2IpKLbwpSkpisZat7qFuuWPIT1wxa28RHiZ1uCQs2gY4OxUGPgm0c9Jc/qYJ8MFjHA/5gNp9u64FvMdhpw11yQ6WrG2j9WQxAaHt4PaC0GVC3YpkvfxTwDq0f0yKEdMgPYBCG0AbVRpj1D2IszSelKbc74zNGFGmZDzSEDRnTNI+nyRd8bAXkAIBT3BiweSzL784L8IzQnoDEbP2zDA0KlEEqZHwt4TkrT+QCVCoss3VIRS4VwFFKKH2JvgMJc6Z4elwbH4g7bNSaKw0aJV6tykm/OftQ+zjhFFTjaZkjcWL8Di+7CXrnVS/tloS7t4VTsWJEV3C2Rnhxg2Hx4/jzLAxA8yMr/pR1xkPV2u5MBsfEeG1sMUrYVsZedUZ0++kmAT1NDFG9boRAcElOOcz+qelIg2HIRsM2YBj7XtEJYJLNB9j5gHlkNtOHc2jfq0oNMUjbGeEBJlLz68h82Uxdq0CU0Rf7WGWcbrq7+O1nys2tm9c0SYpuqilYxaDqxiuBIDO7mGFKKiM+x3IERaLXpRN0sbb1GS6B/mCaoXMRbDfH7C53GAcRpzdOMPp6Qm62y+BTu4JD6yWnUDA2UkZez4gWq9KhGmasA9niP1tLNYX2F5upJ/gIqFtFSGyWphyi0oZYcZ0GHDYH3A4DGj7Dqv1Es3qFuCbekHntGD3NEXHDDXda+Fl8z2opqfy4+ouq81WqRAVXeh4Ue3tzKDSq2lCTgF1JGd0seqxWi2xWZ3hndO7mZZEHF4j6wBwFB4+V7mAOEW8tD7BB3GP890eu+0ObrWQ2kQfwBCni/cOy+VC0q1VLWLvwG0rhf4hwFHC44ePkWLCYtHibvsxfKL9FXgEJL6Hyf0UpvEtdRqJERHagM45TS1U/mBpfACea16DCx7fCX+CR/QIm8s9xjFhuezR9B2CQeqniMQJPrRau+0wHiZ8+MEj7Pd7PLd+Gc8vXseuWeAC0i5C1lPT4p0icObU4LKT7Yv3wD8YsNtLts1q0YGdKtV27NUBh1SlNKkXq9ZBmIFhnLTVidBu13dYLsXbLuBjojxyYvzj/q/BiHit+ZIYKwR0TUDXt9jsBhz2A5qmQQimGluUSPV+dXCAWOp+ksq07Fg6omsG4JpKnzhW0u1jdpArfpnPYzkQWdHVlEkzTAv/qwyvbAAWo4JsjXVsbAAe9hLzEUWXM5YbpOvr5ixFPpO4MrkctUP+qJ5JXS8g16GJ/qLGZEyVQg6Q9ioEYV4zZwAnzELnNd9Qfcf0GWO7DORIzTxkWnSfkiKJwlNsenav4/nakMrtqntfI/Rnn1Mmn7jeHv1lLlM5j0lpsyYZ43sAnmtexwfj97Bpn2DcDeq0Fp2XvczBUt/zzVFkm/1h7ov8GF0IEY3yalK8i1w44qWGeRoiphCwfvE+hsOI5uMvwb+SsP/2DzC8/T4kQ8ih71b46bOv4n73OohURzDdoFqLHLM1IVxlRqEa4/PNJ/H+8B1cuieaRszwjb8WGbS+PkJGm8zIOcJ68RWE8BLuEMGdE55O39fVr3aeK6IGF0IqVAQptKXZITe5Wf6SzxIRfjT8Jd5P3xCCwbFiKlDilJKk4xnjt1CmWu6cvDaSTKDk58nDrN4mra8wT5mlFY1DxIcfPkG3khST3eGQidaMxBQj4jRW47LHlxQsW09TxgFC2waEfoEURzjv4bsl0mGnvXmEKH2QOToWhMmkGohzBHZOC0UZbdPAeZ9h3bNHzDwEamjGUVJKWKN+k9aTea15kAJ7DSWLxJiN3weP0HgQiwGcyJRVypvjSQpPU0zgKSKEIP25VPlnMlh+oRNSxSHGCIpGMFrjoAXewjRFkHjv0TbSwwhqVNpYZaplD4y2qjIZnb+E6P04iUAiMS7HKeI/bx9jO4yIMSJOEn1JnNCZvlmx1eqx8EFQNW2fzcC7c5dw/3mJYiYGiBlnp8DZGeHRI2TjBpgbB7VOSyRKa11HVu+L8fbagdI44Le7t7Dmw+x+eW2onPGUzLFgyE4OrlHnh3diHDuHD1c3cGO/waptkKaI7eUWKSnNEHLqaTFEqRovz8Z9vJZHo5spWfWnSqSQ8lo7zdIQOtTorNKPy4eu5i2VYK/e85qLL7RH2QC1mj1HvtzG0Erz3L1Cl88HnOdo0h8A3biLdPcuTh98Hw8/eIjLzRZAwtnJGk3j4JtOzx5B8nIcyCDyIWlw0zTh8nKDzWaH5WqN9ckC7e2XQavbgEZxY73vRh+VoAbUSNJ6oCmKIovlHSxuA4QfYbfdYrfdI04JfduAgjiq7B5Z+UmMcRoxTqPU600Jy0WH5XqNZnkD7uxFkBltuh6iVOnwNFIjyPRz550MvxBOMeJRnZ0KLIKNhioKO9K1CjPmoqQVIsu/vn36HF457BGaBmkcxDhiYL1eY7M+w7snd5G8L/R3zUUa2Z3iJOesMvYBsTUa73B6doLUeGwvN9hugdV6ibYNOASPaZzQtQ36JsB55dJeWmaQb9H1DcZhwoePH+EwDGjaBjfoRbze/go6twYnOd9N8IqUrBH/BExTxOryP4Bv/D4SN2ASPl63T7jTvIrGdfgv9H8jtFvsNls8fTJg1zbouh5t28ATMCVGSiPiPmG/P2A4HEBEuLO8h8+vfx1rfxP/gB+C1BA1j7yBpjiS1N85X2N0L97H8ON30bcBaRyAZQ8ki2AUBGVJ9y4MlYCcLi+Q58Lv9rsD4hQ1I8bh5DM/Bfzj2wIUxYzNdgekBApiIL81fBOvNl/K6sPr/S/hyfoB9odHOBwOEo1eSJ2yAGuVHU5GZwnZgSyRGC4Npamk8ZHz8OQwKGKrI4c3ui/LWoBnjZPFKe4qtlMMhxk96nNzrS4L4FdBnC7RN6dngu1cGfMwA1ONGDEGqnNJagAdGaFZL2KUptc24CODLf8o7Bq1DXrFYXONA8cicrISEZKep7dzBEqcx+10LnWcys5nbewQisF4fFkvt6NRFBj/Ssm1J5S5XHdH7WHMLE5nV+0pbLx6t+MaPFmUGdcsn1fLSktCjmaRh8IAmq5DGEaMkZEcY5wmkJPaT4OGyqMtIll001Qlv2a5R9V+S7RVSjI8fObZjGmISFEyu2qnsPMO3SsvYHzvQzTB4TMn/xKn3V3c6V/WfSLlwYVWynqXOdqY8tqzpfcXmg0hAKOURznv0RxF946vj5DRJukGq/4r6PqXoWxP/p9IO1VTJXR1wSpCATOe3D7HyeVT3HxwBlRKKXBVabNcU+aEf9z/Db57+ecgL9GYFKWBnxg0QtTjFCVVxDsgSUG3pflNGhly2nON2c0NtirlKhfYq7JjClrTBIwxYfvoqUbGPFJkGIrhNEZYf5w6GpCSFFeS9pyon2NM3YUW1HjEaURH0mB7m0bEw1Br4IjG5B0hpohxmCSypIicw2FAu+zRtAHDXhCfzHDN/Ew9QFNMUiiq47UccR6jlgLZHpPARnN1D1ViJfLnpSCfYjF2VYENjcdy0WfGURcWAyT93QCwooYN44jDbgAngSJfLju4IMqdJ8GQKwZMgncsqGlTqWuLIvUBIljmlXmRpzghjrIuKTGGUfsqMaFhhuMkvdtSwh89fRs/Ot/joE1wC+MHwqJIlMyjOOHjrzo8eEB4/ITQkB3fhAhC4ghE1hRUvZd6wByA/379Ku41i5mxBYjB//fDU/zJ7j2deNkDcEHIlCdJym7fNmBH8Jzw681beMFt0U4C0808p4U5wy19jkLr4Z1H07yAvv2iOCcUAfZB9wgPl+/hyekdfPrhj3BAEeomHBIDL20eYVyuMYZKQa8ug1Y3tMBcg1bRa25ZQC4LAYmslzPrNV3TadoTQYB1DEwI3uMnsVo7lVLWVKPGAdM0YooRnqM6cUTZngBEphz1KZEwy+1XZ4fmx8sNFZwoGxSsRljA5M4Q2ku4w4jzJxc4HEacnJygbYE4DcpDq4URVQKb3R6Hyy2GYcBitcBi2YKX97DnHths5Bwk5c8G924qHZFCMButCuIskUT+gxnM/YtYLnuMj97E4bDH44ePMQ0DvKJEejVkkwETKTDTNI1wPuD0bI31yQkWL3xOYGHN4K3FRvZGJzB57SlnfM/UU4m6j8NYlCqNsPdtgCcWRxBHJHZw2mzYlAanKkaCy6XOJWon0mo8jPMaZKNR75EWZ1jtlxjjhP15RNN4nC6XWK4XGNcrtKvFkQpjzyhyLsaIV97/kaAN1luqLR1caOCbBt3d13CWBqQf/h02F5eYhhHLkx437tzAOA5SdxHEYRgUzTdRAHHExfklnj69RPCEmzdOcNLcxWfDr8FxK8qUD3A+gbteHHyjOhoB7LcHTOM3cbH5Ayy6X0fXd1itFgjkUZKNgDN3Hz+3/G/x1/yHaEPAYThgvz1gtz3XuswKlxyS/h8ah1Vzgp8/+TdaV8d49e9ewn/57N/PFCuOCdM0AiRp+JRlKuDI45W/v4+1+x38hfs/sN8NSDGi71rs9wc9g4DTVgdzY4UA4io9irDVs5N7uHmP7sXn8cLJZ/Dij58DAFx2F/j6g3+H7XaPcb/HyIw/T3+IXzz91yAQzsJ9/MLJ7+JPdv8OF5eX2O32CMGhbUKWeZq4CUAif6SOGAZjSlBjQGqBGQp8AoZvO/TLBR59uEFk6Wm1pucwxSiIrKaUZmNBAVQq5EKL+pQSl3L+oWfPDAOuziGY6i6FeT+Z08w+0K+WS42BGjSjNtbyi+bMzymD1U3qzwGldEbfq7f1utZZc90SFQ/mrAOZYewQEdmJQZ3va8l1OmczotXYz/edj9qmVbO3WjXOb9SzLWsr/DfLB1R7pntcP2v23PqhtRFmtGeK0OyhBGs3VxuQ9fWpxVfxV/wE4yIibbYaDGAcUgT6HsE5WATTbsyuXpvrDNGyKJwipilhHKXVCBha50ZonKRpr375C+Dgs/7S9i26sxN8wv93eP7N59D5lQZPasP3qhFcVkV0r7JUhU/ZsohT1MM1Lfz+gEmR2xH+GRhtzjVYn/wM+ubzWbioDxoJwCv/8AK+9dPfB3BEmPZTtGIAAHtGcnUMzqohZk/MB+wyPsTj8R185/JPMQ0TiIBu0aHtWkwGPW2Fttpkr23bqkhVhAcnl71CgBgJksNaECQZAIUA1zVI+wGWBkgsiuJIJJ44ClifLhHagPOnexx2G2loCihRaXqllwPgtcYsHkEIk3rNGVEg+uOo4waa3iM9KYwwxYhRoXnF0yC4juMwIEWfa9swRbSLDqENGPaHLAhEu1cjgAlxYkxT0ggEtG4MeWzeBzCRAqqU/awjhJZK6hzDBYeGHaht0XRN7sUCVsQgZfFJ6wIYkCbZ1geENA3mMElapjEqcSPDgaS2rGbE5Eqag/bYccseFC2fnOE8gRUxLyrARoGtlfHfb97AzfAC3nUPc8pkHCN+0d9GpAs8oJ00DCIxMpx3+KV/4bGjbSHZJEqlbxzutB2WTYf/af2G6u4GqZxw6bZ4c/8OYif7GJJDs+nwO/09nC3W9Qkqaw7gy/0CXz69n40sS//LRo8aLX96eIBvD08xjhM2aY+vth/gDX8u6bx5/1gjUlKvtlj2aP0ppBowArgEa+F3jlxhRGJg0bboVz0uVmucdqcgACfjGunx+UwxTTEhHg44u3OG2zdPMDadKteu2sJsfaOk9pjhVSl8VXMUA3SZfR/C+M1fyhCHBMchRw0BS+1NGqW07xfVwzzylqok6V3VRsiDZIyaGpgdS7ZlDFDF3/J75gACIZry6QwSOmGcGFjchRsnnIQO2/YJdudbHPYPEUJA2zVo2zbzksM0YtztMQyDRGucw+17d7HoO7iT+8Dqrsw3St2vpLQUNcE8u945EANDLHWOQs5mEBEMIp5oBW5vguNjrE7WOBwGDPsROAwFFhoVXwgNlicn6NoWoV2Abr2B/cggTABJo1Ikg4lHdnbJdRX0BlVtWJ1mJS1YCLtdzPJJsiOQ53rlclZ/ZSopACQk+FIHWbxDogykiMMh4nxieLgMnrGfItKQcD4k7PYDamUhkxnUGGU5tz5GVa01skEelCLIB4AEut8dRnC3xMmLn0Z48F1cPj3H+ZMtnN9jueyxXPVoQitZCszY7/bYbHbYHaS5dr9YYrFai/F965OIuwZTGhEOQCAnaW2rXwZWH8KPf4Hkbori7z02i7tYLX4d3jfSc08dRFFTDc0ZucItfK7/TXz/8J+wc+do24P2PpuKcq1p4otwgpaW+PzitxDIoseAH3yW1ykx2o1HYIcmBXRpAaCkVpMj3H3nBm5tboHDhFVzC8P0IZ4+eYr+/nNSnzYOUi/DANS5K4IIqEI0ABjD4YDdTlr8NF2LsFpi+QufRbNt8NIPXs6672lo8dnF1/BXF/8XJmhvuPOEaRFzFmZPN/HFs3+NPzv8IS735wABy+USwVepcoqASuDs2NSMtqxUs4K6gAguNFj0DeI0Yr/dAAws6UyygVCML2jP01QrqtlgJW2oXsuWmqcpcIxSbKlvo5pFZz1tzvHmZkfR95D3/1h3rnVkyv+k+fevuejY4BCrqzhWnvE9G8Isw+aI1yU1eIuOqNLEdB2ivNa2FqCrRnH9zDLU+cB4SjMjzpyk8j3bwco5rfefW6ZWFVf4IB9bh1TGa5+xxZjr6XImKvZavQcE9PiF1e/h6+l/QYoRu90hl4Uf9gdwa03pkfUTs/TTNcxXRCoLXARLsOMwSFoxp4S277BoF/hY/3N4bfHz+G78Y4x3bmK7GwRkT/e8DT1O/A0sm5MyX4vu6ryZ5wQ1q3Ej5HIKIZArQ8XnFr+Fr4//K4LfYtIshKb5yWbZR8RoO8Oi+1mQETYpGpTO9R8/9c5c17QDRIVg6iJUu2qBVpSJsnrvjz/ENzb/L4bxkJkUK8PsuhZ+IU2tx3HUlEaHlCJa1yF0CqUfI6T5tRg4UGWJ6u6LeQiM5uYp+pdfwPa7P9K5W5SKiqEyDRj2AW3bYLVsMOxJw7dj/qzVIgHIqFXH8KR2pZiw2+zQaEPSEVI7Z7D2tmycBPnSaaNw8YooKIR3mA6jrPk4om0C9t5L75XszTelNGWhJW1lNDqRKibknEJDF6ZBjQlOp+mavnhUGQCsaXZeToxT1LQORQqaptwaoVkvpRGpQi4nJEX0lHFETVsMzhU44JmwMbKTNfKLDos3XsX4rR8Aea4yP0nxkEhAylFQB0oBr4dfAQCcxw5PcS4RWefQNA1+99ZrsKNeCmMdtj/e4e8/+93cN8/2vW0Dfuf2i7gRzvSsAGCHQAQEh1vDKcKPPd567T1MIeK5t+7g/lt3xJt8UsZs9Vnyt6aHKmeuvf/2vi3Ib+I1/EZKeLK9xF9d/B0+gQ8xTiiR1IqWiQhN26Dv72PRfgmOThDjBvvxP2GMH2TjbhjfwX7/ltCgO0Va3sC5fw5EHc52l4gxSl3bDLgjYZxGXG62OL/YYAwDDBI6qWC0FEnx8orn2QRKrq8gBtjyHY0/lGfIMhTUquQIrRo2c3ZtBpYq62QmnoMZ1o7K+oAUcVHp2owcu4JGt+XJdfRXUO9QvWavA0kVIUmVTtlFzjndlVfPgZZ30fs30bQ77C8eIY4jDts9Dgp8YfWl0Bl0fYe2bTG5FS65h0sL4GJTZp7Zbp16K7+MCuFv9yvcV73aWaNQ/tzcBNobAL+Frmc0iy3SYZPp0TzTzhH86o7WmQK8vosxAcRTVvqzkC9WdKbjq6oOnmF9yWXtD0RTMGCfck5yShf0/KSEUk5ee1ev59HMDKdRge+dvYCX0rvwhwGH4YDWR2xcwIP+FLPQ/pUx2tzkZ2iC1j0pL1aEu+EwYOwCXnn0Nt68cQ9P+zXaW6/ipHuK3eN3MBxGbDZ7bC73otjr4C2FKwSPxeoE7e1XQIubSARc8iX+evG3AIAX3fNoRg8aPW5Mp3A3/ht0oUdafCXzuZWnDOaRI/6xGLP2PwLhzN3HF/p/g7emb2LPT4AWlZ+lZAzcDq/iZngZlY4qZ48sNU/25qXv3cPp5VpkFhVFy2QxA0BgEDp8bvk1fBP/EQ8u38TDDz7E3bu3AddiOgyIueeaUWWCI2mFQADiNOLycodxnND1HbquxfJTr8G1klp6vr7EycUqK/nrZoUTdwsX0wNQJLzRflWycWCKIuNm8zxeP/sCvvHw/8OwP8A5h8Wik1ZAtXFRRQQsopbB15yD10yXpuuxWi7w5OFjDIcRvgn4VP9rOE7AQ5bBNc3a+ivtaQSPiHL/KeG14n4nNRlKna6mR87FjYB1QbiuU2PCyB6o9/7ouu71IrqAojaWK6fuiUVxJTPLsi2ueV6OLpbFKB9lhnA6w1nU1gdHkci8kFyiszLHYog7hji/aTZyHcM1Q9NafYuOHr9vbOLY3Jj/du2Es46cP8mZM8jvbv48o+2s4xFQG6L5c0y407yKB/33EWPC/iDOKWZgGCQzoWmk9QUfG5hcRkvquLSSlBiF3w2HATFKY+yXVj+Ns/YmXmm/AOc8frr9Nfz48bvYLd6bGaKLbYe7b9/J6wwg81+T2/VMGYVcBJqU5COmhqCmPdEXCIDXrDo3RXBkbeL97OsjYbSJV7gwiVK7YYbbnIHM0IaOCIDp6DDIuzPiZTDe3X0H3778OvbjttzPhL2e1dC24kV3Dkk9ys47xBjRBg/fBAyqrBqUaNMENaq42sF6sph5jfPLTmq4yBEwRkzjBO8cpqqBrM2zLuS09XA+ANoGoP6saVQJLEoZA2kcxfszTWJwqFfT0oO8l0bXRB5TarHoW/i2xeV0jpQidvuD1JsFjyF7nMn045lSYd4kRwR4SbfxPqDtgnj427Y6xPkfRRWD5uEnZULi0R8fPES4dxvd7RtInDAMg6CLkqZiJkZoFdrZW2+XORMyTy5Y01+PlaBKAWIdfzSur6fQjAMThI6twTmjaTy6RY/e91gsFwAS+kWHc0U2attGvdkLgXxN9YOllk4akY/5wDtHuHV5AzfiqXhjzM5U682W/s62Q/92h6EdcevBDVAnghOg7LUVQVmUFAKycZszxCsnCANVo+OAu6en+NXlz2Cz32MY3kRS1M4pJgWYUeVseQ/r/ksgOlHyXCC4L2Ca/gLT9ACzBqrOYbPZYpwmLJ9cgF1Atz3Hg90Wh/3VyIgYfJMwZDiQKynDNnzKKQ0Vu9Qznor7We5Hcs7jFDNNXmHOmpIDokp5cGKkcanBECVZ+FdpOsy6l5WAPKIz+/1wGADLxKp4mnNVUTYq4zNL4SPvrL53bIjRyYsIywMWixtq10XEp29X42KQC3Cnz8MUY7e8lc9n/XwR42VWFp0tKdH500Vw5X+OTF+tFWpuviLkN+7B4272MSkCd3DL21ma2rrYbc1gKze2UVepm8BsLbMqdawcVXKk/HpcVUJXv3d8cV3zVo0hP0ONF+fxZHWG53ebjBJ8xPCrB8/loL3z/uoWnh8OCMFjynJBIxmK0ouUcPvpB3jSLuAWNxC6UyzbJRbaF3O6+AA87GyCICKEs/ug0IF8C3SnaqCwlgLI3r3ZvQN0QBMDHh/WuLe7jX79VXhCNrIBi7YU9McypQoYhDR7ghkvtZ/NtJXnWimfzCnD6gv+lFgTEyfAObRtwM1HpwjbIDXNZOBg8iCrv8pj4IQeJ/hU/xVM0x/h4eYtPPzwA6zPTtA0AQ6SMl9nkSQ9a9M0Yrs9CGhIG3Dn5Hm83H4e/P4K754+wdhOeHzvKU4uVjDAjtP+Hp5f/hQuNo/QeIe2bzMoQXWEcH/xOt5f/wAPLt7GfrMDmMVw877QecXaWJ045dzK2odAWC9bbLcbXJyfgwG82H8avVsqPZfvX3dl1Z2rh+nfUbxQufGSOFFscKWnm8jRq/e2fq2ad4Caa5a6t5oQys9iJCCHGM3RPzuh5hzQUtd8lIAMJnSdoVTTSaVhzteGLN26pg15pslY26ycaVBPxPDvISUbSPoukSBTEj2T3YgYuP79wr6O+E9++tXNyPpBfpdn716ZO65uTX0fAFdCGp4c3ui/DI+At/nbSJw0jXx+h+ikRUBxCuhqGnouSzlRSiw4CuMoiJExoe1avH72C/jU+pcQ6h7QAJ7/8R28+6n38yo458AzEMfZrunP8uwC619F4uxfRzmKyzBWaWeF8PHuF/Ct4Y/hxwkxcnZePev6SBhtwNFG66G7zpuovEAOnCkESglGiNaAGeSywiQfoPzjaXoPA++lT5c+E0QKNSow8WmK0pMlMUKrufokNTcE2dhu2WN7scM4DPAaIXqm6FYiY0bp58GmRApsvfce0UfNJ5f6FIMknnkmSDyVXS/NAPe7w9Gjao+WVF6YlBvGiOlyB0unIi9RMo4R3hXPqvcecJIi17YBoQ3gScafpggfAmgYNYKhDAjqIXOEpg3qTWV47WljY8vk76C9amTcyfpoQASvnVkBfiFBXbzYYLrcor11AwTJ0U+xALEQkQhVrbWzQup8sMFotRfOOIxoulbaQUCEbq10G7uylW/u3IR/6XnEBx+qC7PKC2fkHm5t26IJHp9f/haCF2SzoI0UiYDTpye49fgmQghKSyYkhBZX0eHFd+7jzXtvwxpvOwDrwwprrIBGPHPWD8gYrynR3a4FtgCywWaKJQIpvWkAACAASURBVCoFFnm9Zq9B0kWLeNFidJRUX8AjNDfR9V9FihvsDn8CxoApRhwOA8bDCOeWWHRfRkqrnNabEoPjEi79PNL4R2Bs8oCclyavzhHCuEd/scE+CiO7olyrZ8XQpqYpAlQcCNmRoJ93Oc2wKOYlumXGDP0EJUVpITFGjkXgZEVh3m+wKNG18Kzonwu4xbFTphb0c3ALujK28vfRd6pnyHqI44bqe/glXLPI306rs2rsJII/9GWSs+fW4y182OqMrG7Xe3/FyKyvIgDzDWyqOsY10K9Ax0ZSxUuuvHbN5xg0n/vx+7Vy/Awltb53+YTN/SrXP34lc5PM/2p6rJRBYly2S1ye3MCSE+Ad/vH07hXHElVjPR7xk26FF/QEE7RnETXwNMF5YNF5LLqAFsALm0d4a3ETAMGvbsNG165vKrhU2RNqetQRRptP/kA179gkPG3PsVvs4SePT52/hhQneAU0cVR4TIrW19QjpgmHYZDXnAdrA20wY6qfcbT39d5GTVnkxCBmvPGN1wBitENAmJqcpsVlByRtEJTR6kgj1z3O8NnVb+Cv4x/g6fZDHMaItu+xWrRYLBcYI4OjKIjDJLDiw/6AYZzQNAFn65v4/Opr6HCK8XxE/3dr/MPP/EgcpWyueMlG+dj6c7gZXkHwHl3bFMJBGe/a38YXbvwW/iz9n3h88QH22z1SSugXvcoaWw/7kkbrbLWZQX2LxXqFcRzx9OFT7A8D+mWPm83zaLiZox+iPu81AdYpdFw+lzVbbQlkMOcZvVuly7OsDgUqqvVB+6Ouo6uYhw1IdEBLYWCLdM15+uwrlWwvtXa20nT0vWKgpNk3r+OQFmFTJHG2TnPmKC21c+Wq1oNc9ZbKJUjJC4ME7M6+UUP/Z7ODZA+Pruu479wcuf79+Sv1C+V51+QulIshdOhKBLFedwbQUI/Xu3+ByBPex/ew9zscdgOmcQQnSVMPjUecWPQFa7lkd9K9iiliHCPiOGYHbL/s8fGTL+CTKzHYjmUq52WWd1zyePl7z2s5gupJ16+AyHCbP6npQUfzM/Gmnt6alT8XXsO33dcFdCVOmOI1qfvV9ZEx2mzhGJh502aCSldOlKuKqZjiFDkbRYkBSilbwHUEjhno/AKLvkdME8ZBFomIEIKgJKYEKcYmQtd3iNOEtm2QWIoYY0pwCvl62O3hScKcMUbExPBmXJaZ6MEjlMQPSzmxrvDVvFPCdrPBQA5Je6+RGpUZEpUZ+52EfKejKBugxZZE4t1UxiGGqR1SaKNvUR6dpqy0iw4hBIzDIAajpkw2XcAhpgzMQo7hgkccOSPfyUJK6t9yudBtklSivMdqhDJH8Y4mBWWJglJHnNB3LfrgEZzD4KVOKTIwjRHNC/fQvSgF3MQWHS0M1nuHrmsQtEebfBAAXC5EtXqrcRBvTtBaBSMoZmSUT2itFDmH8eETTO+8j6Cpm8waFWTGYZwwTQneaoT8EutwWxROZq2vE2O9iQFtbEzrAVLd+FmMvCY1pQUMGEkh7g1d0CtncHnURZAIE5olYRh3UbqsaMU59QQZ6zYjj3PUG5CzaIXtSIJyCbRgbtA2vwOkhMYltD4hthM4AeMhABCwm2h0mxjRtQiLX8Mw/j/wjUStnXP4/q0XMZDDcBixb3Z49dHbWKa91A6ypNNav0JqA3584z521MBp2kKZW2GuRJTz8aXWo0zfDOKyguWy92oDK6Oh4fgrR/egsobHwrCuOy1bc9X4OP69vmoDpQRp9UwT5RTd8hzKEf7je+Zz063/yXFmKqscJHJvmXNJky38wFXC8Hg6zDVYzD897+M1mH3nGZ873oF6/54VRbj6sKKe2l1nZ+0Zzy3vVp81JUFfqb9v0fvIwI9Xt/HKNKGdDthL19lMi9elGOU7sih3MZb+noA2hIY4MM7PL3G58SBO2K8YY3OqWSKuGPtugXL6jXHMlbOsN+dx0IzuiAhDM4GaiL/pvoWbuxM8f3kfPAHLIPJBfKxivMQkKIvDMIKI0DZBlBmXMOnYrS5YlD8FtfFWkjA3xCRdi7HeL4qBkRXNqtI1GwksCLXZ2JdXW17hi+t/iz/H/46L3Qab80vst4L0xjrXpOUFk+SLY7VYY708wZdOfg8N9ZI1khjdtsHq6QIv/eg+LMwj2SRA5xa4s1jgcJB+UtL2QkfOxbm5cKf48q3/AV93/xuenD/GYT9gmiIWixZNI3WIRLauMm9Wudcului6HoftDudPpIn5sl/i1cXP4F54HXWpg83fnInIFCGCyeSGpT2SRjVnBGJ3YtPdYr6PI+VXhkJGBEYEsyCkmmO5pu0rB65ixin3aZ1jDtZn/tjW46PXzFSx10oGpXJzmq/CdT/LiDR7hRQ50nidGWGZKmtjRjR/+V7hG06fyqoPyLpDgPrys0kjO8eYiyj3n3kJ6zWpeAoz+MqKXc/rZqusVnuJYFfff4bcKYvHCNTh04t/hUQjLpuH2LRPsdvuMQ4Txomlvtr7bLDZWOU+kpo8jRHWYiQ0DU6Xt3B/+Qo+tfgKHPlSezlbBtONZI0njnjrtffwyW+9ivrDZk9UnfCqBXCgWZCMZz8yT+FiADKAQB1+dvXb+MvpDzGOMfckftb1kTHagML4az3IqbJkxGD53XZ4rrsEil+iAhONGClimTq5ty7Ya/0v4nF6F08O76mCq8qgD1kopikhskDch7ZRhU0eGqN492OUxouhVSRJAwo5HpR5J7lEroZhyvURU2T4KA1ODXr38RNpJF0LaHKk1rpcKaZc5F8L9MzcsqIGgeyHeDMJADyXBoUEdF2HpmsAlp5Mg4KlCJoeSbohSX8lC1E3Icg6KVyqrTGzNvcmCw2LwjHFCeMotYCSFVfVEmiqnFcABbFYkqBiajPRDI6hSrHzDv2iwTi63Fuv6wQdbcaVk4SdU4wAQdM7HabJ43Kzx5kPENAYtZIIii4ntGH1IiacJeqkyiuk99F+twcAdF2Dpmnw2eVvIFCbU75mChZVijeR9MYzNsCMsd/jndfeAzaiwDmIJ5qdKasu38eUpqI2yb8lxaVivqK/5SbwUucyG9aMPYu3Ub2F+XWjR03VIwDJKQgLAYlAaABK0jQ7pZyHft6eg5zHe8sHuGguQfS65OyrUuCipsN6h261wDvLT+DVp++jSyP6aYRzhMtuieQ8LhdrbFc3UFKby+zzul7zs76uRH6uUYiPvfhsysQ1kZu5elCP5+prc6OKcRxN+knXLEVcytnyrdOsOuKZd4DJ/hnPuOaq16h43NWTTNBoCGdUTHcsFOm67AO24erezRV9e27+3jXTqQ1XU1h+sq0nz6mzL2Z7mG8k58Q7U16LwSLKEwDiqqzCvPJX51eUIsogSXmrrqM9WQQAkmL2gxNzTtnTOcuXHAmonlHT2a5fYZWkJrtWMMzxAyJ4AsbVEstljxKRv7JsZf2AfM6MH+Tt5iJL7EvMCu7DDPKEx+tLPF59B1Oc8PrT1xBigzVOZGaWeaI8XvoHEqaUFLJX064JQlMKMEOksoddlpEyLprTEEpqbDHK5HnFaNDPJUKpNZVPUgr40vJ/xOP2Lfxg85d4uHsXl2kv7ysIFQCEJuC0P8OnVl/Fc82rQAISaePcmJAmxsf+9iXwMiFZTTsn5GQYPVfDMKJtFTjJGrZXaaMOHb50+nv4G/r3+HDzLsZhwmaa4JsRXd+izTXhcl5dCGhCgzhFfHj+IYb9DtOU0LUdXuk/g9faL0LqslNZt4oYsrFQmSjGe606na/hYVxERmUIGI0LFuUYo9TycI5ZzMoPys2u/lq/XZT4AjZHNlpmM49mJ8XaQtWcuuYtuZpFf5rjrjYY6o9kHlONzMHk9lweMPzMWLR7zCJpCh5in7IIWn7NZDkg70Wpr7S7ZTfL8URyo+f58804P3Y4Xifp5PU53zkGHLkuk6e+Z+mXC2W1Dp9b/BZGPuDb/j9i0zzG+eGhRLDHSUsYMNNrJArJgofhHIJvcHNxD6fdDXxu9TV4l3soZZrK2W4AKBGWmx77cAARENMEwW+29MfjyastwPV8rJyrnJUZrZl+DFROEBlU61ZYN7cx+PeQpn8uzbWvSyvUvXSelAoKo9W3j4NLapzoQQSwbfZ4s30Hr+9exSJ15swBWJhhhl4G5aa+RBCEqpSykbLsGkSIIScIj4TDMGEaJrReDJ6Y5ilSM2biSjykvXsL8YOHcOMGEVJbI1DgEZzU45ISxrFEAEUYqaHiSAwMIkSNwj3Ta68eGZ00wIzEUefrpLATANRzPg4R4zRJlMmJ8JL84EkVNMI4JEjLg5CbTAtgRon2xWmSSJ2mpwTIgToMkyCXaY+7oE2uJdqmeGchAE76c0hTbokajkhXCJqI4JsG06QKI0HTSqjkyqvXKEbxYtheh+DR9YTd7oDdZov16TpHMSXl0xWGozfzJ0vg5hmw2eXDOMWI3XaPaZzQNg0Wix532pexcGuBsIdFqUxRrP+rpSI04jhhiiNimiSaxSUKHaeIaRwkNTV7RAt7tZo1ud2xr1EvYx5GE3ORU/1uHKlmymLEG0qmRXwNvZLBs6ajQzfgYfNIaNcR3unfy0a6RwDAICaEo2r0el3eW7yKPh5w47ABgfBgdTPn7BvX+Inpcj9Bk6+NBDtHV5wfNu+jtShKTH0/e/Z1BtBcuNl9Z6BrR7t2PMb6e/bp3H6MKkWqehLNHlvzCRUrqqBFc4xdM3Qicdo0oQU0YmNKrim9uZVBpRcTJM1S+JoJZn2O3jsxFIHzmHdpI+5QvzbTBgAADhIRT1zT0LUqnZ6hCdNUpwXp53V/iaQe02u/QLqmjYGaTGU3jOBBQJXyZtzKoQBtZAWrUv6kX6E0Hc9gJWyCvd6QSonK79m4ymAYHu/ceRE3L5+I0aaf7VLEzd1FXr/oPTarMzRNm1fIVUyEbT5qwNZ0zXm9AGTPflFwiCA1GilplEXH6gIa5/GjW2+hnVrcHm/jbHOKxRQAdhijOggzSIlG+PW8JVZZmWnGxqFNrjMcuNKH6RZkq2VeevuynvlUr3Sho8TQ6IQgHp7R8/jZ1W/jneY72PMldvEC7w3fEdgJcvh4/3M48bdxAy9inKZ8LwP+AokqN41TpdDqeebChT2R1tKr3K+dJzruntb4zOpX8W33J3i4F8MtjhN204SDytiyjsIvUlT57j3arsNry5/Da+0Xsy6U97VaW1uOQnJmOMh8LJmvUGRmhEWG6DzndCMTNvZvdGJIr7LlarT81zq1jow1uyxr5PjcXL1+wntceF8e3zWfNkMQKDx9dtcMcDI3eY4lhPxu6boybsq/FRlfHL5Gz3Y/kcXOeUDT+pNmJznntdxH7mVlKfnJVOnXx7KOZtyvjJtQoon1+4QcbCm3qAwa3ZtSxgC01OFzi9/Ek+ZdPGnfwZuHv8FhEkeD1Lla9pr850j07FVzgpcWn8Hd5uM48bfzSMRwqsbLnB2wYfC49+ZtPPr4U4Ak+DJEacUTFFei7E11no2pQAZQEt+NlvNy5cvN3pO7rvxNvNh/Ghf7B5jiPxejDZjPTF+9Lk+2kk35IJjMtPOYU/ES4yJcYu8PWPLCvimfTaXozzlC8C4TcFZA1BqP0wTfNkhOFFT7DBHA3gOc4EMDjEnh2VkO5DVz6u7exLBawl1sMY1m6OkhZ2mwZ7/PomxEVX8zVzHZ+Wfq15jFYPBO0ItS3RYAovhDIdCnKBEwjiJkncH1x4g4CJEmBuI4YrL7Bi9w/BRyk0+owTSME1j7pIXGz1oSAIJC1jQNyAH73VApvAQXgrRvUP2HU8K4GzQlrygyzIzhMOJwkKhgaAKmmBD3A5rGq0dZ1mGcJkwRCI7Qtp00MtRG6MNuj80lYbFaSl1hjIoCKo8y9Ca/WoLOThA3OzAxppiwV2h0R4ST9QL3Fy/jk4uvoMEJMlslZE+XbG0RIMwAUkTihKg9RXgi3H7zBt6996HQhHNYbHucvXeCKUrNo6/SBBwJgigbmh5JulBJxE0Vy4cdEqVIE7NGq3XnHBWemg7JqRig0hA86t8JlCRdNrQNfrh6E4MfEH3EBW3yvnryoKxVVcr40TGZCy/C0PR40PRFQQOunK0r6XK1klMZY/XFprDh+NxcH3l6dlqaKc41KzYvt75CAMF4DFXGGmlRo91bDZmYrh0zPCH4gCZUiq0qgs7g7ZUHOo2IxRgBjdqLd1ccQuIskb5kRBUAxDUXJ8YUxxLBIFIFukL945LCVRRuVZUJsFqhrGOgRKhM0ckjIFMyUTH3+e4BEqUV3fBI6RAmfeW7FhFhlLHWqKFgRpoiavzHaqfmdFW9/pOuBMzoKZO/yaoEpDRdnWZej+pM5vEDxSFXT1MWd2Lg3cUZsCg0HTjhYnmqnyck57Btl4D2oLxODh87Nq6sSd7nanJc1omoZBHUkQbnPGIX8X73Pi66czTJI8WEcRjx3P4uzsZT2UIWimUqq4BkqIjIQt9o3pxS1k7DUawHJccNgETryp5mpVIbSOf9IdMvGBnQgwgvdJ8GEWHkPe73r6ti53C7ebHQA0vElFjqpckTvPNwoiWLQ0PHw9XzAJHJbFvMnAHp8uYrGuGSbuGT3Vex7y7wjcv/gDFOmKYJ0yh9DG0PiGzdHXwT4EPAJ/pfwCvh83KGZ0YRl2crKm71YG0SbdEgjesQZQAx0vnY2hpwhMnvrN9APljbUVa/KG10kir8jFLDVMhs9gfPX+ej1+dC5Rmyghl41mm2Q8vXvHx8H/19xs+OhnL8+fL8Sqed/SzGEF0ZS45Pwsy7FCfEBHhP6IOHM33A+ezI4CR1xylFDArm5kwWGS/Je1WPdc7LjI7nke35xxlXli6vT+Yh1SbZ2T9z93HW3scp3UPChIfTm3h7/OZsGMyMj7U/j1N/Bw4tbjb38+tCb4VH2jJn3QvA6Ee8//JD3WLBl8CUME7CC4hQmtIfPTfvoXh3ROc2Tasi7LxnOnCbsRHqnfBx3Ox/gHH6x+tWMF8fGaMNwFwYQQ2GIyK295X3zqggq5waCSBVZEhz5pmjKLLMiJwwTlNlCROk+NPgsas0EkeyeU5qu6TQcRJDLkja3hgZLg1I0byaKMK0nhMhb+a1EP1EaLsGIwGTpkmW9MGEmCQlUGrB0jNh/mU55akOCcxOBVEFf60KVpykDi8Ej7bxoDaIN2PS8DAkmgRmbY0gQngcIlJM0jzVPEZk3hKboxhS0TmM4zRTSFISIwURGWzF1qwNAS4oCIsiAcU4lT3RZ00xYhwGMQ4dwTdBjIhphHOSBqnHFnFKAEc0bcBZdw+fW34NPzj8GR647yMlYLuV5tDL9UK+J2cQoubOmXNKCSNHHDa7bHCenqzQdR06f4Len2o9mik0VDiGUnGpvWBYHUEIXpoRc8Ir770I1zd4+tw5mhTwUz98FQ0C0AlVEYDkSTGqaAYTQoDihpBECS1N1sBYSHPsMzOulVb15HHMNZpWHJ44qaEGWESAPOAbj2+efSs3mx5oNFEOp8kzMPOwMlbqpEtjbFnp53LW6y9aGlk2tYgzOJD9Ewnw+RiW75nj10QLuRwfkAhDvon8PcWI3W5C7TxyjtD3LdquE+Urz4EyQpgpiFafSCSpUVzVyclHiyMjsSs9/rJ3+aqyTFHbVUwTPEmua0q6lmR+XY2Ac8rACjDj2vnKKDVlN83OZlEVkJ8/TRNcVIAilPEDpAaiVpKQwPowi5I6jxDM98n2LwSv9zOpGgGqKRo5qj+/GA4JcB4MlwWswP+GDEpAGo2L0ZqPlzTOet4GuQPKVABy4rRwJDwH7HTe9fiiAh+pYaCOOyKHGuY/d6vS9Td4gtkgKuFu9HJV3ZPRms3G8KjreEw+WiN4o3GY488FGFjXcg6TBkPu8648jdkkQfmMsRXb3mNQ5Dw2/a4oOOacEJ6XYsIUR+y2e2yS1OKhJ7xz9h7eTYYuK87EcUpIkfAzF58G+bIijovDg1n4WmRTbo2OU65zB6QnquOo/bOUI1g/ViLAmqMrvc5YdxUNCEho0OKWf1mNthItsyi2J4AowbPPiqhAk3PmGbXiavtv9JM3NMOJ67kz7w4xVu4MPZ/hi6vfBwC8Ofwd3tp/Q3iQko3VzXduhZ9d/g5AjBYLOIRCMLpcOZJeUV023Yyf6BvlV9MrbA0lakwoCJEZWyDTeznTbHODSQapdXfsxHBOU+blTvcoj/X4eHAlN2YPKPKgeqmcqivOuOPvl0gyUzlbMqUqOlg9Z2bs6L6XmHu5rui49diOdMkc0am+ZNoe9H3nlE/HpGA1QltN26BvOySOiClhu9+X6BsByVpW0bwG7qpjzAZDpccdVZn6JW96Nh9OmslStwdg04b0CcZczCEI4IZ/HgBw5p/Hx9qfqeYs56GhBaC8gBUNXbUvzAnBFo3t/5h8xHa1E8TmlIAgsiROE6KCJpGTsc/2k1DxHgVbY5GBTuW/0UFK4vSx7ycSViLTlKj551dfwyHs8Adv/s941vWRMdrmNSOcN1pfmHkgZwdldhdllaZ7MeN0OsHH9x8ThsmAdcP43v5PcTF+kL/lFC7X5Il4ICR9kLQWbBhHtE4g6of9AE4xW98pJUy50a6OhsoBzweLURl9pVG2aasE8YxE9SqVqI+lRtr62LpQVkCsxiinfJqnR/vIEEmqBOexWdqlHA5OLPVkjVNDTcfgAHJOG13LTx+sUBhwOh5LI2G40l8NkmYaJ1NiaGaEDodRD5msd99L4/Jhilh2LWICxvGg7QoYTdtmVEhSTwknoG0bLFatgIWMMcPi2qZOg6RrEhht1+HE30TnVvjU4leRDgkf4ocAWBr6PjrHYrlAqzV8IMm7t6M/xgn7/Rbb7YA4RnhPWJ8usOg63Ayv4PXmK9JPLtOv8rNYFeiyyn6nKX6qfDMILjAAjyY1eP3tV8BvKztjBuUTK4TlTV5xiaXlx05Wm8AgK25VUBdi5GbIWZFQxSpq81WjpZQsxUnWex/2cIEQQsAHi4d40D7MzJE5wnxIjhysFxKpkmbiOGvFmU51zMQZYSmBS2FvDVmtNOsqIdy1ASFIjztRDBOiCp5sQKgQk3qV4jlmJE3HIQDiWEgpYRylF9xxtJ8TY787aCNOHF2V5mPqh57DbIxSeTblfytiUcvyOk+wnG3KHx0RMa/QsJ8RUHCFUkVlb1kzcPN0z1Mi53UXxQhwzsM7QtN1WK1Wggyr25hYFG5SoCRyXmuUoghPqpSYJM26hX/UzWuVfo68omVcBpJR7x2QO7E6M4nKehj6oTSqxk+8crrMNe95JzRqNbVEEGdG+YT8SIr85YXGIgNBHRmcUlFkNEzUmKGnyk9ul6DzuDbTRA1BMb4FKTnBegeqGUDaZxMyJ5dNA5NxUosdo/Ffa9lxTEeQqpsKzY5B8M5Svoyfs6b1mONFeppyvpWcWSlTM9njQEGiXWMY4aYJ7IIa/Ql2Mjy8/MuMcZzwjfW3ME1TBpX63OYNeAoAM8IQ4NiDNNWrNHwnpVXKMisBOTJUoxVKSYHUXIOSRvlkRI7JOBMAYDLDNtOs0LJFxZyDpAYDIMTMoZ2HaG0wQ8hIwBwfgDOjhGUcMkCVE6xRv6RpzVqT19ISLjF+qvkSPtF8yRA04CEyDApmVbsbGJwRoBPVr6lOUhkMZprNHTHFkEB+b64UQx0lKad+2X2tXquiu8RILuKD+4+wvuhx48MTpFzOArVVGeBJWu2oc17vimdex0bcP/V69fKMQx8xEj76vTa2akkwf6A41Mr5LjV4dmUk69ow09+56gFX68kmP7INToREwvsSItKUMEwHXG4P8HoG7Ax7bcfkmOGcykQg9wgk1XWhETug6Jh2nvNY1JhhG39Vz5V/cjU5dXJleQS2ElZ1gpixSyAmNOhVV4GugQRiGKlaxoT5yhfLQfbQdBpCokn0Hp0rW8/IFDEOB4lGKqaC1Jc6QV1n03sInCS4IbKSAHWoW99G6Z3q8phMF4wozrdAHbyhxj7j+sgYbeaeSlylCujrtW1fvTz/O/9ruffGXIB7wx2AitKUvT4mFJwr6I1kJKBs2ZUHJmbs9wcFtJhEmdWc19A0mEZJPwQV5lF71ctcATtVZsRIHZsaXE6UXYmoMRyTeodTPti1YSaNmsUojTHN3jOF2JRGp+7TJoiR6h2B4eBIIlWiTDkRWgrcQSGgb7VxMUiMVe/zesaYEC3N0/RxkpRIIundRTEheH+lcSCn4uH3Xnu/jQnj4YDmbAVGwMX5pbRdaALIO42YFYJo2qANgAU+v2uLcg9IEfjhMCBOEU3wWPRrfLL/l/keP939Gr7Nf4z3Ft+F8w6H/YDtZoctE0IjoXICgL4FkvTm2VzswQx0XcBytUTbtbjbvI5P9/8qK91CBSZ1WRlQtUbZTV0LL2hxrAjnLIpo3q7dFFsDVUhsTJazMmxXUs+uI8oeULURZ15w4fl6L07g7K52SCHhafcUznm81b+Pwe1hCpptOJE6OYCMcCn6XlXzQNZ82tKPLG1OTySbcs+YJo2Gq6EyM2Ls/KujY4qiNJq3CxVi6Vz0lnS961K9dHV1jZ/xtm5vWWKu1uKq0lueQ7O/swGfXyvZASUyUYSifcc+T0pn5gw5vjfI5RTuZ02kMm+O5l/eMYOLiNG0Hdq2QZwGHAZJp/Qk621rloweqhrX2Qoor680etR7YyfB/wT9q16zogTpWVMhL/K8Ui7z3tv+m2bDmRatzqw000YWqAC0b6Qqpmyfm6l0Qs81m7MzYnszAwQo45/LMr1XVuvmn+Mj+rJ02xmtVUJS5IsaGzrfen5XRBQX58DVFK6Uowy1Kn/lvOTpKW3CUrXnAIMgiWq5IEiRPhvYpgxqHTcDQzNhnCKa2GTe98OT7wNoEWPEnYtb6CZR6DglnIwr9LGDpYX1TcCggAZyiE1WKK/NNUtlByTiAzuVArZhixb1NplnVOcvz4+qfmu2piyyxOJ+gwAAIABJREFUlqg0vTYnr8kP1rpy05yVVi2qYUAdxAUExWVSVmedrq+duxIJkNfB0Fo8JQSq6Z5AWk8nPJpyFreZrUmtCIIon86cLyLSitLPE2bsESJnjAeGbUB32WAIBzBHIBKacw+3cRijcISULGposkCzSExR1wh/psvKwWNy12SSvqinq9SXzfjUEd3PAgv2L1cJfcfppXz0WRmxymjLEzH6Q5bdc/7LkJrGIpMsQltJD/2o7F1SHZiJ4TwLJgQ8wCF/3zZ15qwDl0ionTvda/ELJCARYhqgeG7woRHEdRuv0jMZDaDihfaRrKMAIHMMR2QjVPUX6aVY6jHNwZI06yGqo8n4XopsOYxljsxHzAazweSMlxFYPV5hWJ3PdOxpjKCYwC2pnFNnDyFH5u1plprNJCnRnKD9Y2s9KWXbgJFA2dkOCZzU6sozro+O0UammM4VHGFmigrFRxE3KgIwxUp4Ui0r7OCWg0D5gPDxuSyHxm6QGHApvxwnxjQOwhpIhHjUhp7JDk59O74qzA7vPMDw5DyHiZ0q7wkATxG+UsgsuuUcgUkAUGrDJ0fCdC0szF0rfICME66kWraNR980GMBIWs9ijJuZK0Zvh4zzkpA1rNbFmxSEIis/ukfmqam91IlLnY6loQLIDa6HUby1UwQuL3cIbcjzBKT2JpgHl6Sv13LZIwRB3iSQHpJy8MZhwmE/gAD0ix6vLb90hZH+VPcrOKP7+MD9EA/8j5GmCeMwYhwnHA5ymG5++nWAgO7+XcT/n7p3+7ktSe6EfpG51t7f951Tpy5d3dXV1d12t5tu3/C0B2MxmvE8WFykMRIvg2Y0EuJhpPkD+AfggReeeAGBRpqHgRcLDUIgEBJGjASMACEb1L7IHrsv7q6+uauqq87t+/ZeKzN4iIiMyFxrf+e0x0g1S1Xn23uvtfISGRn3jHjvfaRTwWs3b+Knr/4yAOCT0xdBIRlsz8xHPDNFiZ0fQzayPBpPxZt/uJFxIVKV5UB+E7qsmLESQrbC1RzaMuFAY9AVj42mgDVrXiLkOeHPrt/D7XTGmgven37c8IAra/0SVyZJ8UcUe1ZPS2AsOu5GUq3/F1x7Z9esLQDt7AM6yEufvWLGw984rr2eB1q0GZc+xXv3aXju/nk2xjTKx8ybvykwoT7Ucpxv38YuXQi0dHw1qeeKkmS7PUwT7s4rbj/6COb59ffJ8XlQMHs4tG9N4ebu1xEmOv5xgOSs7xJsx/Mk4c6979gdDv272iGvlzDaLnSV/FwgeUPdLFsGwF189EvFioCF+/MxRbQg4kN4Ugdt7dlvTajcxZmI37y9B6NDxossFDTAIjxr7UR6aDhvnm5MhGkyw6EKRQQ5TwsxrM7ThGmaxQK+ytnedfX+33vlQ1h4VWXGo+UhjlWiN6aUcDzM+MTj1zBhUv5T9XmFWyuPo3uNAGYLkSSfV1BWbT4AXGkZANZWWr3CTAQUKy0QI3K4KWqNJ2ufVVUjW0UaFsoUoBWQ8+XZMxAWpbuUWD14esdkLjuLa5ERrMqc4U0oXiwKKJmZBpHOmqO2FRNuOOSKkCVkISZwEv53/OiABx9c4/GnnmirFdfvH3D4cEah2mznJgBLmDJpSQddG63TKUZ/4cMZEgLcpL+2N7f7P0C1ebloeHa7U4yXDQqeLDacuYb9u7/dVezkhlOCZxKt5FjXmW5hqp+Ngdvv1gL0PVIZu0FCWgulTALH8rnJa1LHtnmTJ5cVwZptNMgVPhlvkfx9wGmzGFdE4ZJSD278M5kGhm/sCY1MpCmlYlX6nMZ1MvmDAk3vyKITQSqEz37906ifr/jo9WeYKOPN77zR3qmltkQjpMeo2tajwJ+tTZZT48RFs9yS5nwIsRNqIKnF5sRb2rFzfWyUNlvA9n1QfgDfF3F/cOUWVy/WKxcG+ohj+8x4f/1TvLd8s91LOSFNqRFqy1xEGtYjfQqBWBYNy6i1nT+pldRSAPcuXBBHmRnLR09R786dYgHdjqVUSWeqYUayiE6YIuGJ40oargizXrFY8tjaMIEKAqNyXoGccUyEfJxxnjMIGXMWd3op3PqpDCxa88cKiOdJQs1KYZSlYMvYuaXwNdjoje6ZlOQcFzSssZ4XTZ4APH78FIk0QyYY6yIb5fT997C8/T7yZ96ChXyiERGBD0GUwHUtePb4GarW2ZsPE96kn0Yp7tkSJpXwqfRlvHZ4B5+fb/G7t/8DpnzCfMWtttjNZ98Cg3D1idfwlbd+A9ePrzGnCVf0SHCpACtWx5kgZrGOZV0qEsnn5bw29LSUIfIeB7+bEUM0XKlVQndMOLS6XGad4lCM2ohxR9gtxkS0LAmJnbIU+ibg9x/+kaTgB3CX7sAZW4JiwobO0cItaxNALig6cD92hE9rcnhv9FT34RgDo2zj6xWH+xQZ7/flryjQbt9/kQLXC/oSNtqtUP9mGP/4bj+m7f671M7WkBQ9nD5iZrHSThPhvFYkWvHg+oDzPOHu9oQSioBe9lrGMQ0CUMCnUYGz/i+2v6OM94JHEG12x3Z5vO3O5j0b4SXchgtqcDx5EWy2OIGGVC5ihZ7J1k/5F1HztGz78vFeGsV9eOVt7ICjayPt4KB90OQI4b6d/TRPSIUoMXe3UofpMM+4OhwAFFR9XuQmDXPU7L+1Fqyl4nQWemo0jkiefXq8xWN+1kSlRAkfvPoR+JUs/Qf6/AuPvwLR90rLHm1HC5glAzJNSWp0IuHu9g5rISBxq5VFqGDyM5+kckxtylxQ0BqNQhuDgIsbbzThtFb27NS+aTwKROe8VomiSLUCVZSVBFLlVDxlicTwIx5jFTItpZ0K6rbuNm4bn5uLY7hcVEwCyijiMtmeMI+Mh0aCPe/km99/A09efYa7V+5wfHyFT/3gTTmPC1dDDKao1EIum9Jh41Otk21fsCjHmRh2TlbgWJuh0UYfemnTaFEQ4OGZPeUvKOjWCvdvWaIZmYvyxM3xBu6+7cqScV8PtDv0YLOAQnyQTF3miBKL/WUmgAk16a8sETXT5DQ3jsg/6ujNMBPkeUvSYRIEJyClqTVhRpzKLvvYyGo1I4J+NuVd5f8WyQO4cYC0Xi8rwE0iYgtRlSvXCV989/NY/mxFAuHq2ZUkcdItZ+UzYskpm5HZximRRCjBulBcV4XZ97rKb7UiTUmU1n+elDbbGE7UGWAjHowv/c7n8Ud/+RtYD2vHMkkFSzAwEZDThE/88A28+aPX9fhMgJBtG05Y+A5nPmkbAtQcCMAa6r3QNCGTeMOKejYQigQDEDe0ecOMyELiyCMfI2gSg+sZeOVGwjRuT425l1XORwFALUWLO+vGrJK5T/YCN0TwnWBCvzKnlubXYKXhlyTM4EyEelpwkwjz8YA8H8RKlkgSf5SimZ6EfKyagGQpBSlZ0WnCcj6Jl4NjgW05mzEfJmE0CzqPUBSop8OMwzwJUy4SblpYSx1IAp9mZCcS5k7LGbwsbW2LJslo4QUKhrVI7bT1vCDnhIfXD/FLN7+Bia7D2lEgqowDXeNA1/hXHvwdWLwzVM34WvojrFXOEF2nV/GAHkpyGOs7CucNswGQMP93/vBTOP3iHYgJn//mZ4RgaIhWUYLSxMIYllvXZhUWO4EyYQXoUnSj7ySloYbjaEyboIrugZAmCa997/BjfPv4XQBA4T5hDBjNiNEiu/QghgkMvq5bodbWj9tZFbeKRc9Me43vV7Yu3XM2dkl43b+2+gA3PLbxx3vy9wXKaZzTTtdtX3csdIRb//2SUB2Vusuwkd6Y41+EeQb6y+IRP1xf4dHDB1KLUffY6bzg7nS+mJbYh2xet73QlN1JeGgOepBtRYwo2uzNMjb7IhY4vrm/nqMwd/mZcc1erud+54RPvlAA0BI+jf02C3f7x/bJ5fFuxjDsScelEer9O/fD2A0p3a/s9+3S5HWgWvB8WfH89hbNs8AsusGF4TB70jJjA/KO9S5iYmXGU7obYm/lhd/+xO8FocIUNol4qGD8/Ec/g5s0YZoqllXooSTrkjNyTGLcBEut0ZkzwEnyGoDBmpCIiaT4tQwajATm0hnqwIw5SaKW03nd7Dfjh+uifDSUK7LASNJwWC9lXcFF1OAl7MsEKXEhEes1ZKD1sjls5XhSbjzFBmImuKSlezzzpt1LrQ1C8vN1CIZyMA7nGV/+/S9CzmgCqYazsBtLGUxwlLFR1rA1QiEGyI0n8rhwHkqlncO18FBXLmzYirM7tLv7StBWU1NEennPcM8VMBFp+wDHqJ6ZoyDuZTNnOa9Ispbuf2wtxfNm9teCRsWkqkdxOELH1T9R7KQd6FtN8YqwN3jF/AkbS2boganJk67nG8wDrySAkIGEVvtPlDKZv5ylbYJkkzuo65d9odrX+Bu1x2IJcmbgyEepc8cAjjbNni/E8HijTYqKqowtkrUziUxr8CH4uWoike0LgGAJkczxZSvHxetjobSZUGhfWswryXZPmPGV3/si3v3SD9orLvRY1qqE43LAO996CyZLNX2Ggs+NJAvZmOkqFvNkFOAs79SyYjlLxsFlrViLH1iW/kVZyVncnxNRS5QBvRd4CXJKmKcZa85YybMhmQ6WkhAf1NIYp22yKJxJhJRkumxHtlN/mNUtDYSbB9cSfqiJP1JKKABuVdsnlrodoKQFsOUU6GFOmI9z8zRb/bvKjLpIenpYhjMFMBFwdZyBVx5gWST98HlZcb49w4SJNGWgSoX729Vc4tw2VM7ChMoq5wdbbH+VkJmEJPHWulMs7hqAutslJPJ0d9YC3Ef89INfwWv5bTmnp4RHPJEm5nj4QufGVmJcSoGFA6xLwbp4OmVjUvo4zPUtYxbsIwZ+5ms/1SkEiqH6VZhdrQyUVft0YdrSRouVqWpIgStmjdonUiHC8SclwpzlnOSzq+dIifCd4/fwJEs6fks84tzCvWAJpEk8/BoVlqajNMGvf44ag+uv3VC6HSUpXp1xZxjDvvzI3Xg6xkq4cM8figqO7cVxDvcJrtE7GH+LnCXej5+t0O3L9BfPIcV5S8he6dqP/cZnAaFBx+MRr776ihizqtCZZal49vy5MNEOQnE+tp4pYFCEHYfnfSwmZO+FLTn8muzeZhnHYcLWxlhlfbbx7Cky3MHjksLc/x7xr8fFS9dorY+JR7xth28fkmdj2Y4PZpgkauFrl4wKo+HjPvzt90fkLfvrGNuP+Odt9f14KGefRdAEdUsRT0AXVhrb7Q0fwzrqv6wKnAwr7jN/a9XkLA2c1jpJH7//2p+08Vro8GY+WlYj54y310/htbtXnLYq/q0FuDpkPTbAOC0Lrp9dIRuPT0BiuZ+yhmIt0CQeAd4EPS8kkRtYC+bjAVOmluUUTbRPBjmFttFklbhqRS1Co1ey5FhC9xuUlRYgrGPl0mBYqsom1qcabQzkpKn9a/J+TR1gzZ5MOtZkPBSsJXr93JkrcIrHNAFUW2IXNzT065tIDNetdmLWogUkvJXIhOqqb7scF1ZYoahGgB3NjmH4b2e0Im+L4cuNCtgq6N+YwbbfpwSjc+6xldsDjwC1PaQrJS23PWyJTACnR6zn4cwIbbhv+9PoSjjvqr+OxcTj2Iz3m8zlV8hYTCT4AZOFZexZo8Xa2eFQc1EUdtvnJOGLCl85eqSNVa2DTKosq1GBWZIsOb3pRtaKdYu33AScCGvxRJMldNPnKhImlvHpqZ3horaHPGtzabCou2fw/Pp4KG3ollsXQGGom3U+z/jpP/hcB4CouAF6IBFirhMhVqwKlq7dZOWJzSol71vI3yhALuuKepbzWutaFPkU4EBLpzzPU8tqOOWM+TCJZaFWCV+IihuLF+t8PqMs6yBAAbVKmv12li2MkxvBUjgRWpryFkppoZ2mkAA4TAnzlLCsRdtWgp3EklaIME9SP2tdK86nM+pakAAcr46YDjMqV9RVEGxVeBT1Btaqaf9NJCFNjnKYcF7FIuTjkpSzAiPWgsy+FyTc0dOKr1PF+aQMi4V5Hw52+BUwN7lckulwWQsWTTwiGSmPePXqk3g1v+VhRDVgTmCoRoZ6QQBomS/0oKkpWt1TcV+zC2YmkG6eab2Zl7c2j4Y5zYzhc1hbsI+0tWO427KOknp/BdcfHx/j2XSHQhXfP/5ARqWZIZudjW20FmK8DUHshbQ9QdYFNH8ngHnzvN0TnG05se5RgpyJyXgvKWpxPP7u2FY/RhN0LwnvLgw7nLq7e0rozvd+Dtvfbc1HgTp+3wrKvSC636aREO46t99zJlzfXOGVVx4gG/OgirLe4fb2znEwjCcqG/2k0/jL5qk9oX/vIsSTHReeIT3TOzzRGHnXc6/ImzDkty+FqbBpFds7F3EGbdTBlw4geIfG8e723bft4opTmqQTsiiBPXjtj2/oP+zv1t+uoaBXpMKdQF7H9+Le3OI7gObtMQOXeWOM6pG5S9h5e2o/ROFRPSwMWGZS2SeWoMf6I4w4YWP0PaV9YyuktitNrdbr9+b38L35PQOCwoRg4a1J6Uhl4O3DpyUzpR5vIDKeJ7A5r0VC+hUezZjDEuKVsoZ7JsKURdEy3nHAjLfOb/oQIF6Aw5T1LDmwrqWVwFhLBUrF8eoAEGFZF6yVJawSGqYGBqrWkqzc1iOlBE4Fq0jyoCTJVDIlVEvI1XiEtFZVAPcaLwCQ1PitiRsMnZKG6Nn+JKPHCaTeU2Lo2X7Htb09VbVOnqRdJ2Pc0tZmacO4G93fEcfJVU8PyVUcDmOxjIw9TYo0Id4h751r/zv7oQprsY2XI7zdXyePmxJsHjgSWEJhGYDVTtFRAjXPtbTLKSrTQO8KD3CjLSUysY30/aprmiiWQvGotjTNApfmIbV10L457N9QbkCycrvS2cbe1RTyJSAipHZUlxts7H4TwaHrmEjEQSVEiQVOMiTZ6KmNJfJcHRcDgJXhAXJvH99cHw+lrRHn8BNRsAP0f+W+/a9pxJNtJruv1osgUMjy2nmeHJQFQXA7vCrJGwl11U2nodiyxaJFmjAfDpjnCdM8t9THgkzGjICoxBOCxUcZlSgpGrutcfSA35MwAmEyFh4HIklJnzNub0+t4HcUAowxHADg7gTSdxhotbcoJ02jO2FZV0l5fzqDa8V8nJH1nBOYsNaCWrTwLDM4ZKq0uZES4NN5Qb0743jIWM4LVlVQU06t6HVKCXQQIlm1fo6XChCmk5N43aqVR9CJBVlBzniVKmmglbkxS1mCq+sjHhwe4eevfx0P85u+Dhvhx7IQ2UwYzW/Nlp5cNyEDLZU9xedjg9QYbhMwAjFnlCYYMkOLVgNErLWL5MdoiWpEWK0/NmDWcEc5HzhJqYqc8a1H38aaCoiBJ/QMzyFlE1hrejkMbRzumTMDxb7w6L/2Xo3+qe2e9t9HQa7zKFwQ4LdW+svj8jXZayvuRm+rVzTHeY0MmroxXVLW9q5eUbnfSzd66MZ29uo0WrujN89oyvZZEfCnQ8aD6ytc3zzENKlRZV3w7PYOd7d3WkvRhd4Ig5eZd+sT0W5rfPPCHGHMDVrQ9/7LFNcXXz1sRuVpbGFjeAj/tk87eH2579h2/16E5wgVq68o93pBcLwscsH2d/R4jcLKnnEARm8D/l/2zlGDfYPV3sybEuYJB/q25K8pJa64OU8HCJQTrm6OOOYJbqA0K7oo74nkexN/uaKsC57fnVCWsPpN8DMi0M81JTtxHATSNjmDISOAO+BhlF6oyTomExh/+P7Nj7r5u3WFXPjr+vNv5nVTKRf+RfAj14Rn5Ta0L21OSQx7ldkVL/3MBFxfH/F2fQuvPn9FShkpr11rkVTrqYocxZASBiw1Dc26wllr42E0TpBmGTYVIaN5m1iUOKLUKo4JflCbj0QNeP08OUvNsLNNVWHCDElrT+o18d0CU/FRqwbCSLmYpLjusqFFKwF+EktkQW4KFEOzcrUQQX/Kcc94Lqu8Co5eI50dpfa2DLb6mrJH0plh00YkqldP6yPe6a4K9Muf8ZMYITLCZkoU3qmtvd63bcd14Dho7xC17JGsbVDD6ZHnOuztsrIeslRaYxNWK9hn6PAaYGAiAPnK+6E3XSt7T+XyXvG08h2s5YeolbhItSITUJHEmGBLFTGNqJULIR9GTxv1SNLL8tCPhdImm6+hv/7VuHpEYU83VbK0/kM7lBrRNNGAiAciqinJQ0aZWiPmaNYhrc92vDqicsVaCspSNFOkjO1wmHC4OoJIiBDIMkgGJg9FeiWsImBnTIcZp7OERyadp1lJ17DgU0qtHhAlc7dX5CRp+/NhQmHG6e6kGZt65p+JMCVhammeMR8PqGCczyuW0wqgYqlnVI2RXs7iUZymhOlwEAWveO03LlLLolg5ABXypynhcJw185cUsn7y9BaHqwllXdr5vGkWRTApwzDrWqKM/pizXKVIGGITTnPGUhlrLZjBKFxwe3unXkt5JCXC8eogXsJ8wJyu8DC/qbimVlvqFXBXBDnsrJCljwlf/P2fwh///Dfwye+8gZuPrmQ9K5pVxdqHWiSJoNmtLLxSGIAp6w1/GcKsih5+r7ULXrD8UYbjIAtvISATKBPmeUbOGc/mZ/j6g2+DACy0YGWvr2aTjWQxhm6YpdXXoCeLL/IqxTC2rbgZ2t0RbJug2mBD3d84qr22e4FTR9918zLCdHy/++UFz7+Y2Mb5XHrvPkUWMCGvwpI+jAL0OF//bs+6Iif4UNtvec547dVXcTwehJZxwboWPH78BHencweBKIyOa/WycDDbU1yWOM/x+/Dotl27z0HI2b1UaB3o5O5zjIYM9sie19MiKWy/bNcxyhO+ZjLufU9xa2OAaZcpf5BLpD3lfAM/7daG74elPeSkocfZ+xRT72f/mah8GO/olNTQvuG4ed1McLVyJKe7E6brjAfXB61ZJ16iUhYJ2U8SYeLnKjNwPGK+OuLpkye4Oy0asmf9yT8ie/Rjbut/EXI78sgFKPTg24ZbG4XWHQuThxVAQ2MIJSQCfPWsNEE8Ch/mJ8Cws7p2d0b8uD7BB/gI+VpreyZLyBd4ZZhURsZfevYLneC+uxNDWnYRi+wpC19z2iK/UfCcyLhbZBRXiSoJqdNTOIuYKGuNQm+fubbazRlRSapa90vPXqWEKQHTNHfJ1CpXVNazYyGaoAveGWUZreFbagFlqSkK1uQWyA5JFkW4jXVYEw9WHVbLwlC17A0lC91EyxBJLfQxKCRcu2pvbelI18VoBTOoFhRIZJrI4ErLOGQNJTTcs+ggGIRVmGc1qFRI2H0ynBi0OIrftQyI1b+VhDoabeVWqPau8TZOABXrX/d6q90IRGmIoUYDpeVtfkp3lAG7csluIID+9XJbgG8a5wFWIsOe59YXmtI8xHhtro+F0gYYwCxDi3hb2mebRMdEOBCsHhC2QUUGjACQzxNd4ZhvcDedwOLHR6kshxyZARKCzyQei+PhiHU9Y52rZDhcFmUIWRGbsei5rFIZU1k1RjrMj/VAcyLcnU84nc7tLFiaJhA0S6ESspahMWckjSGe5oxSC853K+Z5xnSYAUqYZ8a6rFiXtTsDM+WE49UBdJhUscySdpQZ00xYzlprDkA5Lc2SmbLUJgMqlrOMSbJaasV3PeDWFLZ5wvXNUUMadb4kCtezp15EfJoyrq5m5CkHIcgtOtQijKHFjRec7yTMkQiqiF1h+sxbOH7+Hc28JEw5TxNyIuR5wjRNOOZrXOeH+Nnjv4oreqW35DJCbD4giUKSxrcTwNtNwwBueMbxcMAxHUX1V1TrjYhC8VgVv3VV975TV4C5ncUzj2t3kZxJs/oiosB5OOwpL1imink+4MnVE7x7/T0oh9aENRwIQBSk3Gpr9ND2iAnzo8JlazMMsFPw9hQRGuDyMmFwMSRrL0zQCS2Hd/baudhFu/+SRi1cEv79fbo4tz0ld6vcxLn06fwbDLrv94Vu9u3Zd5mvKhZBaE5Ems5/xsNXHuJwOAIQI826nPH4yRMsa90wkTF8bm+dbbz3KnK8/3UfOr2QMgrEGyHmwmXFULdjiVKHt+qwi96vft73GSF6b0t/38Z9adSd93kcZnwO2/l3LRJdvjf01ylV7WkVJS4oWPtrLGdfIv9t49zZL5c81bL/axP0JMJBQonKueDJ8hR3z5/jeHWFq6sDQOK3WcuKZSWs66rFzQHKCSlNmNKER49ex4N1xfl0i9N5AdWKUq0I8dYjfR/cLkDzBc9fwmy5tzV87WE3oYtj4xBSR7o+QOMnDHox4WNZ+VpXCVFLUg6olabrxa0ef3nB//Xod4bxRnrlKTR8bqZcov1D6PllDCK0ZG8EK26vD1qoo9I5w3lTwqX/MHcSo/FXb38OmSalhbnjlQCwcMXCC9bzGbUybnDEhEnqnkLqnlnmZhllMJJan+qRq4kgKWkIEvkqCQmm5MxYxqxZyQMMiNRbSZrQo1oooXsxmSWkVo7BAHme5XiNwc6ba+OsHIs72+LWlgRXitA73ERVVeOzKt4NOXQMBM38aLTP1leXq7KFxFpvABdJUuNxhsr34Sjr8op5V6uMp8kupPhmqRwJvFrH/VEGkwGYWaOW7DyjFdg22mvvBJqgClmsPxfb25IO1vqG28gYazNnavO6JHPY9bFR2uYpN2VtjwlQAEybVHusF+IkNNHOCRlBceC/Of0UPjl9AY/xYVOSaq1ILMWgE2XkXLEujOV8xvE4g+YjUiqYJgYfD2iIAGjxYAjyrHKmjtlDJMMsZKOskoADQAsXJEDOYi1y7oyIcHU8IM8T1rVIVsUiSmMfemmfa9s4TWmbM+bjjJQnGZO0LOGYLN60WmorM0BJ3e0E1FV+N+JgikCtXmct5YT5MOPq6iBKniKzrReIUNaiBcclU+Q8zwInI7i2udqmlxTOy3nBcnIl9Hh1wOce/hymfMRyOOIuJ/BakecJjz73aazvf4g3ps/hmB4AAF7Pn8Ynpy81QbUthRJFOiKZAAAgAElEQVQM8UJC1zCFDR9wSf+1MJu0ZrzxZ6/h+rmlFaJOWmK4UFjaGT4O59LQCqFK6lpnRxYyAxY8irXmUs6gTHj/+AGmnPHDq/fwfLoNY2ANq+3bg9mLxJwj5NbKBITwFFjfoH5/Xbguedjibw0H4IrX+OzeNd6KynavHMRnLxM6fy4wniEu/+UVuK1QGcfZPAdG4Ll/x63gfbhaVA5ie3t/Lyu/OwJdG3P864I25YTj9RGv3Nwg5RlJz1Te3d3h6bNnkmSIHZf6NuPnhM5zfGE9OiG9G7nOLagJWzH2/tn2v11e0Et5uRyVoiKRuu8mRCCs20gzur5qvRffL91zXqce1PA8EGBjeBR/uwT7vf6xhfU4Jm8t0PXQwrj3+/mkHicuKLB7eB/vEVTQA0Aq1IkAJ3h3XgqW9Tlub+9wdXXA4TDjcDzqEQAN5WeAyxnreivnnRKJ14IIx6Oc3TqfFizLAjBZxFIYX6/IRTjsL+9lGmew6/fMzhPRUNUE6svtYdyn5G9s+MKwFqJQMZCyZigVQ7JHQFGPX61hb4e6SI0trWhKvmGU4Xbkoa1gcd+U0ct5zqKUV4CLll0i8/xEGdEaFroSeZD1yVzwO1d/gKyer5ySlkPIgXkVSB5w4Rtvnz6Jq/UGUsYCjZeXVaKxWjkdwM/dtT3MTRliEOz4Q+P9MNgYzadBITBYcTefCHEGGo+/4iNeWx81ZbbRvsYPCad8hw/z40DnfT0+sbwO4uwrzzLCVQ3eHpKpEVe2rmYkCky690KOn7nHLaiizc4ZkpquPXGHPFcgyQJbJAmCEmuzJIYf/eCQZDs+5/tLvmvSH52XZSdv9J+DTKdgkzyGblQw3YKZUVb3m1aIxzSmNLQxyfv/HGSPlPA6OWQYyYzebb+bpu2/ownLPVOh9pr8sdj/QAqINFNjVc9R2KfQ7IUpYdU09GmeUFZN0JjcUwS4hg+wnidKSHbwoLnmEQbvlqTr6yOOVwep4VVkA0D7z6rI2kastYArY8oZhRnLsiBNCae7M6p6dKL1szJwOq9IicXDpmnacyKpQ6NFsWvR8wCcAkOkViDZCETVkJOUM/KUcJgnTPMEIjkX19LoM1odsVqcCHNlnM8L8pTQDsmzWG64iLezllWKdet8QIT5OOOnHnwVX7r6VSRMeD9/iD/l74LBSFPG6z/1C3jlMfCJ/Fkc6UFbF8mAKQqXZR8iQGPmgWLmnkEw6/gtQePlGViBt/7wTRBpPTYN0eDq+MlEEk7KZiF2AZ4BAUwKSpJ2kpSZVpLPeSLcHk740dUHmo6Z8KPD+zbI1pYRwJH5mxKvAXCtv2ShKc7Xw5a4X3u5ZA0fr/s8QTF8YM8i5aO6X+jZf9fWUz8ixOO3/iK12La3HfK+oDlee8pU720Zxd/Q7zCYkSHH9zvlkN0D2Xk0aCv86h0ArAmTEo5X17i5vkJOaqEtjOd3t+2M7FbI3oNF753pYbJ9x0M5A47s4e/QyyXFoFMed97bu0bv0CVP2fh8814rHvHOs5cUsVHgN2Zu4/YPdq6Cwl7plSMDlmKEC+TD/MeVG5+pl5E+tBHfMG66D+dLymmD3wueTWT8YFgbcmUDQIOP8V6DTSkVz549x+ku43B1xGGaAQDruggfr6VZsokYq/YzTROur68kq/Nywu3dWbIxSm+BNox7DI1XmhCHtk602Yd9tIDBc/y8t5fivXGPjeGVEXa459oqVQw7qkFaWw0dbm3HNc7JZbW9/jbjpL0nQ3udZgwwKk4LkJXnGv4S92NtLwzjJK6o5ModM8u5/HLGujhDzClbkEsbc85Sn+/d+c+AqW6BG/arnUujWprsVoombqseWioqGg/jvnBx/8XFz7AXbF4Kw2s+4vX1kcg+WZLOoGr9XO33Lt3ho+lxgL1fH56fYOoDsttApiwOjloZq2bgtkcSeZTbyLucP9PwuwHbkSIq2YniLgj7gVJLuAcAP333WXG+RGgxOodEykLXUkpqHE8uopueYXhMyUM3GaL0QXiW7Hn1zKkBhqsrleLJVNmPa8NXM5eT0baOr7scfel6odJGRFcA/lcAR33+HzHzv09EXwDwmwA+AeC3Afw7zHwmoiOA/wLAvwTgfQB/i5m/dX8fYQ3tNE8jRpeFpm3oCcebDXH23k8ETFOWtO1kKdQrKNuZN1Hq1mXB7e0JN3PGNE9yGL+1HQm5LE7SkMpi4Rw7fQvu1vAFWnh5BVgUv+vrgxQPZWiWx6p9QyrA14K6rkgpaZijI66kCSasi3joLIumIIh4x0qpWM8xeyXABOREuLm5wjxPWNczTqfVCWTVRCEpt9DVUhigovAwxKwAF7DCKiXZaMv5jFJKqAPj6+iKIbdNmDLheHXE529+CV84/Ap4TSgoePiDazx8cIPHbzwFV2Dma7yVPgMwvMabMiDWDdMsI8bk26oZg1U8sYxCDD3tS2pyrc2CYrBiiMdqnjLmaQIoSYmI9axZtTRxA1iS3BDUlR/Oaqo1nxJJyG2e8MePvoUyLSi54o5O3qcSg4A2JucFmlmNvoAotTBdI+sbZW2XcTq/7HF8fMhguL32LIH9/f7N/tE9oXf4fXfrm+0qKgLbcAUXlffGN851fMY73gvlcm8IBWHThYRRWRhhtPVKesa46HUzYdW+x7FHPOnHLXQrTRmvPXqlhRSLUaHi9nTG8+d3zdDSz2uA0kZYjPcio+89ynvztc32IsUsztcMMPFc3t61URC7fi/h9h7+xfCYsMYQohBp2XZ+27a0IfQCmOGkCQhbBdAVAadZ4zbYSxgdWu6+j2PaKIj2dHuBNg28yHser63n2NtkWDKmfq80uRRWB2yLH/4sYVkLyvM7nNJZU4YXlHB2TUKqLAoBYF7B9RnIzlW3efKAy1q7zXBPx5mSinidUue4mrQGLPmE29yj8u6A3YVc126ja2ENbJ/te29daN7QwyAc17K/jtsmd6l+116/tfboaFzbbrQ9gpoIx6KsrUNb+0qP7U0BsvE/yxvQQjTHATBUwfL1AYBSJWO2hRsSCFOWoyEpSXkGuyx3RkKWAD7mJkOJ4qbRTcuKYnjBMWg77mIdp2Xe5Mi/ENCFGqW165ROeO/qPaSckfRIingEV5iXSBqIaaH8ev/wwQamRslTSs3I4lFFKmPgEmftw+qhawF2RbanL2FtLtKXHlGezs8bRWyz2U4NRBSOYsUjWZq9PAHQ75KkRhUq0cDU+KNRetZ9kGPlfCRjKQCXBXaOso2n/9BfLyClL+NpOwH4dWZ+SkQzgP+diP5HAP8egP+YmX+TiP5zAH8XwH+mf3/MzF8ior8N4D8C8Lfu60AIlw3WBGeDcmT2OzH0UZiLChSAGBIpBJhgFukvHf8KPlx/iNPd98C1YC0FqWSJfyfxqM2HjKI1xg6nBdPVEXaC3lPYO0EWuiKfEjkiCbEW166mDYJ5X87LivNS2mYGAcfjjPkwN4S+mmfkRDjdnlxBq5AaEVRhHh0iOZ9yuJrBkHCPsq6iPIWrltIOUMrZOTk/ty6SCON0d8Lx6oBXH76O2/MZp+d3LZzT4NkpqyDJfliBaE+tEAXyeHUAQUsFLGtrq1vGwLwsm+b18RHeyO/gC+lfBhUpQAoQckmYFklxLKVovE+L4G4b0TJ/hc4SSZFTQtJCiRoCOpxl02OI4pkrFZzTZvOnRksZpZyxLqxMgjVxjOBhM+ZoDT8i8XyuqYpX7XiHrz/4U8HR5JnVUCU+vPGxEEhtyhmgIZfsBNUEC9NFe0/MJbJq99snV/KCELIRTInE+hmJ1sUrWq7vocXYEawjEzfu1azE7ca98+l/vwwTv7cviJlCaMJzT5cqiML5zmEeo/IRn9t6M/ef7du+LOhVJJApfgTMc8Zrrz6SSAJFjlorfvzREwkN20hKlxSb7e/7z+3j2hZH+J57/e9NAB0F2AvXZpzQMxfUK8J7/Y1r1StvLni6ZNAh6WaOe8YJ3wccDCwewranQNkzUfA0r9Q4kt257Ywuzrv1tjEM9Cw3PrfnnQSgWQn79iL/MFHQwrpG48RIU/yzeJhjxmE7l12KRNAUKkFAlX5LwCNrr6wtjQW2+9r6pTaXtsqjwsrVnwnjd7gNa7nXRgdp91r4nPtnmtBvRp6OC/fv3Gvo7i7CPg7H+y+QLq2HDa7s39+SDwsvpMbH9p+/RAN1jGZgorBucTCDccBhFUZSGQXcGcfPCyGdpYZsYgApnkMT75zwYFVMrF+yYuYTZkjmWgvHrcxAqR7SOwj6GjHZz3HAR/udwVjlwBhoLeBOOfOQTOa4FyJMAwzDxZCImRq+u7GyG1n3JoNNSA4/cqNn48w8EyftpRmID7ZXn+fb9nPXf0AaspvWvpaJ4QqgmAKnjw95NcygxIymuFFyr509I4IYoc4EhBqpm6tI7eeqwqbIoffvqxcqbSwtPNWvs/7PAH4dwN/R3/8hgP8AorT9W/oZAP4RgP+EiIhfMJLO+jhq43aHPEaUwi72NwOzUeWPW4ixe+7ECzMhU8Z8yDjdrahVzl9Nk8YzM2Ga5EzY+XTG3d0ZN1myPnKtLVvhWqQgp9U0sjGYMmfjG+NUEyXkWeLHa1FvVq2YDrNaRWTHumAOTLNkZyx6xi1aS6T8gCh7RITX0zvga+BZ+QDPl8coEr9o0EZCAs2aoCSLZ3OaE7CIRemjD59gXVYcr6+luHatmKeMlVlSBdmG12BlGW6VVMsA0jzj+OgBcHdSa4WkGM45oRYNBW2uZFnPaRLvJuWEV/Nb+Es3vwHCBIaGfrJQRvEmqaK6Jtw8u9Z0vaSw9UQZVYmEbT5mlmKITJJZiC2UMQFcxYPGtjEDZiVX1AGPZ16YkdaEqzrLJmVRvLvsbST4QCRE4MPpsZwHnCZ8+8F3cZtPugcgY1hrwCTnNhz2h1l80NoHMuWtIkSGb/33ywrO9vc9wc0nZ4eTsfPM3pYfz5BFATH8yuNYDOdo+3Dbc6MSEYWdPaEgEFk3uyDC5hI8LiksrDjqNKqtWiPI0VM2fr+vz0vep0sKkPDDqnIJIR8OuHlwlIL3RQoATznhdD4HYaSNFHGttorpy197lvCfpJ091mHei8YDdsa2J+iLl93X5bLyuIfzUYDfCqMR7iPuj/vSbeK9x9KmRPASIPZ7WwOQZr+1luCNswhHUZAarx5X2eSmC/AY57e3lltY+PrgnnAf+b3uwmtU1nx+cSMza01TTVLS+s9aCJp9tfcUy3hVFptaWz+T5zeKjsCYOgE0eC5eOn13xBefd5TCa1Mae6HafuoMjW0dfby97+USbd4K5pfWuh8nwh7cp+Ndi+zRT05X9vZRaGjcG32DQ4eXcbff1ZbobWo4UcqKUqJCzAEEEd/8PoFRCoCVm6Ruj6cpi1I2JaQ8YVKZgJJGkbl1xs6S6G8k8qUmFFnWBbxWlRNV7sGw7oEWdGNvtMHwv1+jaMjoeWj0wvXzH7muz3ofn7Zcuh8m7H1SXAoENkC9e8VFGJWL4ryGCW4wW40bBAp0SY8XkECsMnsOhCC2x76N5gq3FyN5gsivKSVkjUgjoiZ72T4ukFBdofEVddWkPyDUsg4Oku31UmfaSMzGvw3gSwD+UwBfB/Ahs8aiAe8CeEc/vwPgOzInXonoI0gI5Xsv05cjj37r9mWME/dDgDtsxO8PaGMIRgDenr+Cx+t7Wt9LNN5UCmbNUEUQy/S6JixLwd3zOzyaJ+AgSkzS+vHeIzoMaZ6WOCHohrPNUauf+yJZzPPdGSWrdq6vFXWpg7nFRdv87fzb68dP4xPT50CU8Nn5qwCAH6/v4vH8A3xn+RoqShgDmss+kvg8TaL9rxVPHz/Fs2e3Wv9rljAASdSqSib8DFqpyKcVxyrer/zqI7z1hV/G8etnWOAGmIEEfB9/BKLnqihJ/5+dfxFzOrSt/vb8s1CtKlBcPdhOktmTGcjnhLe+/abya3mw6NyM7hAAVEnmwaznvAgq/Dg+VKVuEk1pOKYbWt3bUREnXTOuLMXXp6QGgQROrGmFxar2/Pgcj+enoET43vUPYBYfCZ3Qvx0OBxLBFpRgkqKzIIEHNTjab+0gPQ+8jztUfMlrywxfJADZ+Mb7pkCMz+/v93sY+tDP3px6YWh/XPacWR23bXAngMbfX0a5irYoiZdXxR4RJrRpI97f9tFaH0crHe28drw64HA44HR7h9NpwYOHD5DzhOfPn0tIZC3ocC6M32jufYLopbn8RVwRd/aVqcv9jt65Pa9nNKht5ECXeJSfcLeXhocv46vRjfAONfXK52WXyRNRjolzSmpYHKnG+NyLfje+1Z+scdj018ut7UsJ5F17+/tubEM5ZrdGJmTK2RENq1ceYePvPXj78LbQ8abwtnFp2Jnif1RAe+W8F1pHL63RbX9FFpZiwWL93WEW5JgLsLQ9wR3iUreWNAjhY6SSd2c8yZuKgn30Ovbz7WHa0+54lGQ7/s14Nsr7/jsvd420wuWpyox6XgY06OmffNsOgKsc8RBZTJStFPCHWMSWcj5hPQtu5URiJJsknBJJ/aEiuesxFsUHVcwSEY7zjJprC88sK2DF7xpcYank/1mufu4uZ4+8KUSKyS/hb6Qr9v3yHjee2O7Gxd4gvCpVQf4SIdYe971i/Y0QiSNme5d7OdHG0WF3UP649RXaqoyFV6yrzjxJqa6Us0R1ZcncnrOElFKYN0GyxycmCe+bMkpetrAK10spbSxxaV8lotcA/DcAfvZl3rvvIqK/B+DvAcAbh9d3NqcK0+Sf46JEhU1UMXOp+YFxIMS6NwJs/QPvHH8OmWb8v+tvoa5nMFcsy4oEySYkGyfhcDzgVE84nRc8efocDx89wHyYsSwreF1ASC6IDQTbCVYyWCJlcfcuS2mISYmQpyzFq5dVMrftMCg/2GjeqQTKE27ya/jy8dfwIL/e+mEAr+V38Hp+B6+kt1CD2cBSubIlF4F8f1Y/wDdP/7fIflqbDsxYkxTe9kLzfv7MmWJFS7xChNfSp/GpwyddINa5vD69g1JPLfabEuG19BlMSVLoWqy0ual9DdEUYYtH/tw334ZqTzArutX3SCkK86TCTlIrtQg8VYuZSxpdfVTP5nGtbYwNvcJa2MVEWAtjSnImkLJ69tKErz/4JjgzTvmMu3wnWUBb7RITQ7aXk0BS2uKlA7K64kPpGsR6Me23ob2Riu0pI+35XYVkEPh2+MSeQjZ+TynpXLbCsuP8DrNsQsCLGVQvcHR3dp+Pwvx9StPlUKb+mb3P1mYUBEavW+zXwnq38AQsK+kYXtkETQ21lsxoGQmMu2dPcV7kjOvp9g7n01nLhJQggDqjJT2Tex8cYomCl1LYTMp4SQXg/na3AvgIwwaP3TW7L6zyEg7v7NcLbXR97kyB1RgTqYDjbcAhhpzBUiGKiH6ivdAPdE9ZMRoTlJXAr8SnkDSD2948fI69kGs8vN9PMWywC5MMfXrb4fOFOfkjmiodCVSrKLbKB1o7vF0/2zdEJCH+ymeTTQH7OCj8xMRD6mhOm2cHc6XqDf8p/rq715PyNm8/Cq0Og8jn2qcG9+7h9ltnzKMgRnYeGZe9torjHl3wufe/j/CLQv4OT7Ext4LqezT9Po7X9727/8PrjS6H/Xff1opRTh5Ox82gQpqgImnf55UBLLDs6J1co2NLUw4Fvq1tvUcJ85w0YZ8n5jC51jxztVQvZ4QxULZXrLwPYFsaq5//lq5K29TlbYj41t709kYYDkqeS+16vyGTPwOTDeNM2gu7DD/0gB5lbC822kDtu426YSj3Izaa2ZpkS+zEICacSwUWTXVEpN63hDRpRF4jR6z9OeK/QLz4ybJHMvOHRPSPAfwVAK8R0aTets8C+K4+9l0AnwPwLhFNAF6FJCQZ2/r7AP4+APzUg8+zM6T41GVmbcSswbsJ6yLmMosyYAs8Wg6MaL2WP4PjdEA9FKznVYo5a9d2NmjKCXw84Hx3wt3tHUqtuLm5xvH6CjgesawL6p2FuHHrc1yMlmQFZFUqAYinbJrFlVpRJWkFMxjiTWItGGup42ut4l3LCVOaMdERv3T4GzjyNepqjMs2tiiIr+fPKkS5bWoQyaGslJC4ooLwRnobwIpvr7+LOqnyWERhKOdgAYgYTZD6aMdZOxUlsB1WHTbj6/nT4GkkH+RMkjSbohK2nCWCQBQWgAvjc995G+989y3M5wlIdk5NN2YrxmqEMW4I+b+sax8nrZtSEr7InA2vmuBh7RM1uCYQUiYgE9KUMU0ZPz48xreuvwMAONEiQnFhUKWWOSimZ+hIqwrkopv7ehdNApOzEf3x3IIzAWNoRB1ZCQaEy0rFVgnw37feFto8x5bTeEdAtAmWsu7+vne1vUSRFgfGsREkENa++3V4ph/7GJo4KlL3wewnuUb4mtJjmV91VF7E9oLy4DKoh1cyQz3MkrVsThL+U4qE29SitYSY9fzayMTjHP17VGQvzaXBDU7zdr1vQ7v3GQ3uU45b2xeMHvbMvQrfjjA7Pt5D6DJOS38RbsE6q6ReLOvyflS4eaff2LYPkwDaMnXBm95X1k0gvn/hin4/whCKa/x2/J3G5/r2LylfMRyrw109e2lH4LbL3yTVC4aV+JucXfPabmwzafJBnJ+JBhR4jymxZIlGbH4t+kMiQQxeUmWqb7utSdsfmzsBruMZShGmKSyiw47CMxH30N13ePDQ1wayu8rdHn3t3+qvfhxd6zvvdMjZteHwYf+RXLRvIZZtzKGPTvPred/+XJpWsLnf1kUfoCZ3KkYEWcMaKSwyCkNygbtCZzjez9/WsYKR5xlznpGSlmYiOZfcz0+8cUnpciWPIqilYl0XLEuVCDJNBscDnPdoyGhwsN/j3w5eg6IXjYZxfnG2MbJgz4tpre9TWQ5oRM2Y5XR0oD/D+50SGsdHO9OxrgYWaZQgRm004qHPx/1lWctrrVgB0EKhrZ0xgpBUMb90vUz2yE8CWFRhuwbwr0GSi/xjAH8TkkHy3wXw3+or/51+/z/0/v/CLzJNQ0fftPaREEeCLxvWiaggCgcebBYkrkrUwm4cEzkc6Bpfvfkb+F38Fp6UD6VGGDMqLzjMGWmaADByllph52XVei4rru7OuHlwg2maQFeQw89nEUglc6DEu9oBYRhZrwWdlwGy2YgATqkdF5WYfD2gyBYmIbVKUs445Af4F6//DbySPyku9lpFUcoET4MQSKMyITPTkKoMlQFOplDM+EL+FXzh+Cv4vbv/Cbf5KVY+4W59IkojEbh4Ae+H0+vIeUL6zKuYPv8ZmSNrH5FIWFYq0gO3NgxVPnIK1qdOGARqdcJRmZEmYK4JXDJSjkLDFp+ihVxKEAgQGGgxSDV4Cw1OVvfFRVE0AZvIXOCE83FBmjK+ff1dfDg9bkSpqpdOpuIKpeBCYLzaYQ0HyLkyUpVgVhHoUqhjiOHqzwdEgXiP9PXK7PaKVvD4mzHj+4VsPzO5JwDoVHXUvXDvQ+/n2JTFYc5RUL587c9xVDY2wucAm/uF/3FEP9llxL9jAnIHvRA6js3wrBfMjEnM09QphEIYfZBR2dvMZcCjSzPf9T4gnB3dVbxe7Klsvb9AcQtPXrziHDsPj/zQN8EmVDgOduLuIHj764rNTaew0HwNrW7Nm9TY53d0Y8o4J1cm7DttMxHYnUsQGNp88cWbb+PuYyCc2d7ayPW5Ae722VoxD5jvf7LWd5Ux+9zTBx3lrrJgIeJV94J5pBqHVblBVu36+ojDYUZufImxLlqvyTzKJHwShFbyRYp5F9ydzljWBWV1GYN0LowoGDt9JIr14Hq6KLKMe1gTWZp7KzROXpS3jF7QYd0j/W4oFHhHWMWulZfYq9t3Qr/t2sc/SyJjBmkExbUXA/cVAX9IZaWUEWmMKUw7DepPrUBWh5syD8n2aB7TbOFuYJSWVI46umFvc4ODr5/DJ8q5GidWIefayhnP6AxKhHmaMc8TskbuJKXFlvnSDXtexJ5oUo9cBfMB67ridFo80d1wXWJr97G7RveGhwg9HdrIEdjymxeiV5QjmtzU9zkQyd022ptxiTf0NvZ56dqJfNF/DdVGijvKUs1juDNOJkZdTvcN4KU8bW8D+Ick59oSgP+Kmf97IvoDAL9JRP8hgP8HwD/Q5/8BgP+SiP4EwAcA/vZL9BHPEA+LP260eBh8tDraZvMNsVfkmhsxFOR8NL2Fr1z9Gv6w/m94fPtjzSYpi5MraziaEJh5FpCty4rnz29xd3eLeZqQ50nSC2tqYasGz2B4NszamFPL8EdCcKUGGrWCjATbFJLEgzSjSqKET8//AgiET85fxCv0iVavS8L5GMypMRSDExG3bHEd01OAiG5YkXNqBOcXrv51AMDj8kN8P/2RIJrSKoPdF4+/isxXeF6e493nP8Dp5iy2TKvbZgyb5HlLEMJEDUakgb5Jx2ohoOIpNSGBYJbY2io1cqudh1YMsU8AY0QRRBrKKeEDJZjdGjiUsbfjcYnaBkskdVpO04Inh6ciBGRWj5qfM7Ri5HGuDe8M+dofYQaVoe+LlyolQk0keGeCDA/KhnFh+x40t3vFs47u3af4jBbjMPYIMxhx7hnC/RZaF5SasQpNxNkM1DwJrWG9v7UWXu5v7D3C86VsSoPlse9Y/xmJ+aBsdZbCnWfGRi95t/aUOAmfFdo4WX1HdkFInunbT6F2dFTUxrb3xnDpSjQE5ITMgTKGlxMCC/t54UtjMGF4r+0NoxzW2qGCwPS3vAaByfrv6J8NrzbjYVNjRg/YiOO+Br4WQQAkDIvk7+4pRT42Y5IvsSmUmG9FIh9jvMMDru8pjK7Q9U3EMdu4SYmFJd3YKmxxv8Z11SeUt4zCsuFIDAO3/gVPg+CcCKfTgloZh+MBc86yX5NYyUmPERAscZeeWYFmO55nHI5XWJc7Ud6W0s6gy76/3zBkVzV+BxVyA6+Lxb7nLEK7JIFirUyzs5pIyo4AACAASURBVHoKG24wj2tgcJP2XZWNsN+2Z/D9i7jM6EThX2X6O92rHNHtvSjMZG9pl//YEQk0cs2hZ+vW+iXSowjke0xPTer4NJw3zmDAUYR7l76bvCDjYamYVBmncsLpdNYacVMzPAiIuK2nJCdxammeY+M3+9EiofeeHPVfuPvT5NfdK/Jpfcv5lY/bdqrJv3v4xP0/O+OKNA4AbRa7f2MkweO1BwMKf3ea38gPutE6VrGzJz0ofqf/l7heJnvk1wD88s7v3wDwqzu/3wH4t19+CHb1549aoJAuXFzYaF3TT+29biyICIzNPR0vAMYnps/jZ6//On6v/s+4PT/VkCLx7FQtJJjkHxWKgLIU1LXgVBakpTRlM5/OmCs3RdSUBus354TDnIGUdA6rhkdJ3CvpuESXSSiV8Xr+LN6avwgG4TOHrzhymBJUGClnhY/UmjBoiFerj+n1+fcyZ7/lBH6P0ifx6vFTpncCeUA4Ah48ucHDxzc43ZxRwUiqOKashSZzkDnYiz6bVVp+EwWueQkTQNXlDks20hJ3KMEvVWkoQYqCkgn6AndWBY01gWZncRoIkCUOsVj6SYusv3v9fdQD45wX8agZ0azc1ks4YBoIl0LSiKjCXOYsHpCibYiinYKy1zOC3sJM4b4/23bCDgFugi5xECVtUWjzXmR845wCydwVxC/K5kHQjsLV+F5vaDEhhjYbecs/XiykjpZPb+uSELx9vwudxGZYLdzxZYa0F6p5XxiaN9oLtym5Mcjb4wvP786sPdutiTTWwWXPGwm0E63bJsNc7u/flDFuZxosfMjoa2zrRUrgHizuM1J0nsym4InQLbcutUH2pLdoNIH9mW4VRikx/tyFQfp5I2OD9xsowhyG/b13+VP7z3km3D2P2Utc96DuVpHZ7nu5d7lPpxnbCIHYTgtpI4l4GWkeM3A+r1jXgjxlHA4z5vmAo/IdQgJlyVIsBZT9/JEUbiYcr24wH66wLCuWkyhwtejKGd0JHTL6PRGVdCLPy9sgo3xk0Zxia8Nr6lbdPsnesRA+CvyfrTHh/ZWHZaJxqBHiG/hv+c3L4QcZHLq1t3GNuHiZz+zxgbhf7Znm7Qw4QwQc5gnzlMFQD1YtUlfWjKeKL0WN2yBqMB3ptv1OO6HMPpaRdhmNC3tNEw2VdW3F3g1MhjdJE5zk5JFA+7wNaBZ3fUbOMksStbVWKWu0A9sO3vvTeYnLsTOasZpyuXtdokixPYIpbE7pou/foiCoG8HYUpeMk8zUFmh6oNPjeDqeNorGTYgiH+DefF8strTrJzrT9v/31QuIsa7E5WeHX9EJr8YYmtAXnhsPXhLwiflz+Oor/yZ+5+l/jfNSsJxXUGGr36qKW/+aFNa0s2fiqi6lSl0E49nm+dNBHz/3NtYf/RjrR0+0HdlIpTLARQtYJ3z5+FfxaP4UmCWM8yo/aHPv5MHKwOTCmonzzcOF7ELwQOSYuSlGHhDIPbGOCkKXEDNQdZhnia2xFnNNms2jksEojJ2lE1LlDkRtkyT2jI6JhOZUX+K2GKnq+yShhwQ5k1agRTS5SuQEqVePxctntbMBamckKWUcDhNyznieb/FHD74JAHhOz1FQxJO59EQgKmscsl3GcAsTGrnK2cFaGQnCUOWcWmqCqcO0F1Bf9Hl4o31qa9iUDOreFe9lrxRGgWYUfvoF3BOcGwAGIdvuRWGJvI+N9Sy2+DJU7QJ596kPym5/Tu8+JeA+YTUqn7vvs6T2vRR2GUMjXxSG2Qul2sbmvW14ar+G41z8jIaMwVvaUyiBcAZvR4nzNOUABlwzg8kWb4MZoVN04qx8LpeUxt4AcGktfc7R67ARRneUqf4HK80R96vD1PDO50Yui5rArv9EG3VrzaWQ8Ovl+e7M1CayuzVGD6TRgA1su/n3tECCSPaExLh5t+sQ9+Q4pxdevBXzElHwNO170o3G1BDxQqQGupZESzOwnyuWZcE8nXE8zDgej433VY1sqcon5yRKHGkYMhFhnmfMkyQxW84n3N4tWNdi7M7hAGNjasDssMDW2CNA7KhFrKJAmoTKlvkSXCkAvQuHbEip7TF76St28dfpSr8WPt72I8Yr7ozoZcUgQ+hAd8dvfNpu+5EGi0QZ+x/abQrCtv11XVuIpoGp6vxqLb0AD4dNU97Y+L5Fd23XwcKKe5iEdbY2h1mY9NpYZJuzyBSUEnKS5Hk5Z4WrG4/7qDUZWNIxF5Z2a5UzcMtasa5ncHem3+HUlP92mfFjK7OocDd8bxwhwGE/NLfjp0T7z3F/z0SMPjoiNqr9DcYii3iy9yjOh0O0xQ7t2Vy7hDz+RpefvUCr4/WxUtrsknm4JWxLhPzzxpPGkh3NkndwfFIppqxzJF7e6KP0Bn7tlb+LH5z/BH/y/P/E89NTTYetzZNtXkt9CjB7FkjZx6FfZrSzepYJ6OqIX3z0G/jjZ7+Fpd4BxKiZceY7UGV8+vhlfOnqryLR1Kycca3tc9vwWWujjavdCgP6yw1HrC3VFJplQZvkboPpBgoZFBHeF2YiCkhlgLjilQ9v8PZ33xRvotKppOtkiUWM2di4XGnxKWQoE9U0uO0B3WiZCJwZtUDjtgUqcl6i4nQ6Yz2vAFkGpgn5kEFs1e6BNRdgysg54/tXP8QPjz8SQRuEigKupRXjTUlCVBsQgnwZK967V43tBzBbQhHoGTWv59XzrnHNTZg1/BIiWRGLuL9I6PFwYLu2Me6RMffU5D5lxe47ozLM3BN644obYZbfR/I+Evfx2jKQ/d/8961A+uLvYzu0+dwJhRfuxWv0BlwK67PvlxQUgMOeoZ379r19Cj9WIAh7e+MeFSDz4u2FG25hsQ+DPcW2MczI2+4xTHibdg6U2nPNOMLxOe/J4GAKp48/3rfPSq+lxa3wEy1Y2xG6yMIAun3aTbS1OLzey0JGn/XW6O21+W+acUC07pqy381/Pxy3a6O75Fkxil3yTIddHITYPm1+hP/9Eotx3igY9+8aX+n7784rh34ZQEoFxHbmmNtALbRsWVYsS8HpfMaD6yOm6aA6XmnG3BOzJPMCUEkMgqT8JueMfPMA01xwOp9wOp/1nBxEeOYqpXSyGBzPq9Nkx0Cn3X0Y+ojb8bnYgu9Jb9FbGFe3ebhHisz9u+KR2F5mSGq4zc7fN/QiLNhIx3ZaVvninkc2IwoUzkSwgIs2lsqQtPvDu3ZEI3petmOkhrZkcubuVMYfHE7217NzqxF/dz5+1QrwsmBdVpySZBOfpoOGU1IIqYwrjnYezmWPhGk64shArQeUsuLuvGA5ycl6k2u3+7mngT09in8Zfu4uzMaOKY2ygmJfossZriM4Ysghtyy3frxlb3zSf5R5DD5bmWDb8g7NHsb057rubViuj6XS1jIs7l6BAtjTqiRZhkFL2d7eaBYCva+AYbZ3LT5YBSgGPkU/g08++CL+afoneLZ+gA+W72kCEUNgt5oRCK9Nn5VwwETA9FCUhIgAqvGQTm9KE3714d/s1uiPT/8ElVd85eqvKwoOthJjrDoJ6pi6X91cL9yTz43SNAG5CWVRG1GBhrKNhdq5NhO2uVYcn82Y35hR54rpcEBKEzosZGpW+BwzpTC1c94dY6m2Niq/hHARW6tFk4hYzTmDEyvDLY1BysYutWKmGXnKWA8Fp+mEb9y8iyV79k+pQ16V8Uq4ZO5XM4hkjWr4dDp8UpgRIeWMPPmiCbGU72Nx2M0abdaPuyjVS14eF9oUiwJ8Lz67IWL71yWBfZ/udMjU/jYG11b20lmuvRHs/bhPN+7zpr2Ut0JGu2H2UWF7UejY+OyLPAvbMEwrBO/9R3zovGXd0F1oc6PLaOKJQrBbiq1vOxf0orBRHwt2n99T4Bi0Wd/7YNkJDPqlX1+f884ouzHG5zrFIsJcP8X7Eb7WzmaoJq0CMNeFr4EJC/2+oIHsmgAsMIpC0/2SwQsV5d099hISw948YVzAdvFO2wEUezjhSsZOjzu0aFTMbCntvFIc79iWwFjXszJABUxSELdbXxUSagVOpWA5LzgcDzgcr3DUBBHMrII9ScOlCAwIqElkg8oSwXFzdY2rwxHLcofnpxXrsmKpDKwV2XQXNn/faDY1o2CcnAucUzbjgtwvzJoA2TlWpAM9DAdQRb4SIUjUrX1csxEn+OKPaPiMqACJhL4/njCgDZ3Y6aZvQBDCxSbtfeyqo+t7bZH+N/AtwgZ395TT/X1lgij06IlW0r0g2PVRAdKmzF/XvDBqWbGciyQuyRmTZhk3OaPh2FBux8dMMAyccwYdtDSVLFA3lZFe7K+DRRH0fD3CLcIrQmbTUgt5i88FHowmKIbeX0TPwriZu/B+gqBkIqn9W6uZ7mSv95JBf70Mf7943U/aP0ZKW0fULzPcSFQtHBEGIO7E6PZce77rS76V2iOvIa3gI+HL138NKy949/w1Z7qOtfoi4fOHX1avGOMb87v4EE/0+FejFoFj69kTy0ao/3/l+q+1R1uoIsWuRoGsF2xccOmJs32ObYyQIk2WIpEYg/JAe1+4CRFEBKSEtz94C4fDFcqx4Hh3ACU9YxeUNmqCSm1p+jX1h3jTtB5ZFJBstMLcq/zVGHyXeUiUGPteJZFBnjJS1gPkU8Y0T/jRg/fBmfFseo4Ppo8cQPCNiiyH8HoFeLM1e6VIvYGdwJSksGJHsBzo4fd+p9paRcH9PgH4vuea0v0CZWKE+fDU5XtBsGz9RSYYvnaKQ9d6wO3wa2uBg3Bmvxr+dU/rcztC68sqWbseC2Ou+ndsa2xnX9mgzd/LhL2fR8N7o3Ej06jcDFXdQXvFWwu/9ZTT1CiAK2vBqjkoE0A8M7Ez9ghvmIXa9pT1NAoyl69LBoio8MSxgEPo0s4+Gcfb7ecggSlGOC7D+tujoZfH7nu8Fwqatd76H9qL+4NZHqlAUzT25hW/v3DeO+OlruMd3L9H+Gh7qG+t+0yELpxv9/2LffjZIObWYnd/86qeD68K45RIswY7PW9lBeA8vaq7163zFDtFZeDu7ozzsmI5HnB9PGI6TJIhWo0P0CzMXFdwQcuizLYLCDgcrpBywXlZPLMfM1BDoO2gILU9anMOCgnAWAtLHb22HsZbRoX4HkFyWHoxWBLKWjv7Q/dKxx+9maYAtG4ZXApqAub5CEJFKZGn9CHaNkuDxXagf06B2IfTzSHOIyw5VD4PtLR/b0snub/fjXm4NtNw2hD89C4/BlmwH0sYg2xmyZRd5Tyc3WtKVmvPjovY1qehNQIhYZ7D2Lk2OsRsmbct5N2Ga7zL6Fa/rm1KG5mC/R7F36Khsgdh73l+MV/x0PueJnJIBGd5ZhgabdXh9ugT9AkZX459udHtL+76+ChtZAL95Ud62hMFur3mKH5p8cmG14ZYVtCTAM8oqmnVTAzIOOJnpl+FhQPYptldDGbNKsW64NyUOWi/mSQ0L+cUkDESKwTs9FCQ2F97hlnj3NGeMQLoxKhNbGzB/xIcHQesjHhuw6p6dixaLQmEN//sjSiC6L8kyUsYoAo4MyEpjUAVtWqsvloHTTgWmJk3rbZmLYTDaI14B8QbVmsBmHC4yjjSAXUGvnHzpy1L5UfTEznXEBVqm32Ds7RfgwWUFQC7wnqwZHmoUb9ubY1N2NqBszMvvy4JNGMo255CIjgbGMDFdnrBeosnI75vCbGP19vltueoyaq7itsIk0YE2yB9DIPwHEcyKtcW9rR3Ju4+z9FFIZL7Z7YWVXTf9xRru297dGRckUFZuJ+ft/BQWlHkqMEKzIrjod8Gc25txrNLcV/3wv0+vMYrWpIj7dmVONF71O5TBvYU6T780WvcdUpS18YmLUq8uzM+ezww5oZPRgQMvv7A3jSaoExKzUJ4N7XMSgPO2E6NYUSdcu6YHnFnT3EjIoePCYIqeW9DIXUOF3B579o+09OD+72yih96vtjbi3ul663dMzoaZYXG+wJv6t7V/ZEMR5VftnqlOt4S2iH4PrOEEDaSWipOtycs5xVXVzOujlfizeACi/KR82uScdL4A7GF7RfUKkaQ43FGKQmn04rKpRvzHu5y+NdlCoGJzNv3WtzzDlPbgxHAvofjVZnBa+/B7ylD+BT3hOFXUDYYwFoZvCxg89ykjDxNO8wgzpQ02VfgR8P2ufx6XN9wa9ivW37kfd0nj+51yhrSSBRKNw1t2iV7VOUMZvekskVUuEfQ4nyEZtsaUmix5zO2Z2rLHhdxw8PqiZKUkEp5k+3az76jtQeOvFTKTC3LilLM4M5NiRujCPrxDTKO/WN8395TGpgaF7fZunxIehzKDUgvWDQCYHs60DxzMkRS1klFHS1ugPH9LcMHg3S9/DmXT4axXUb9i9fHQmkjsrTtGi7DNCysLWFkrrZowfpuhLsJr+4OboF1BkDKneJjDLLF2w+qPbW4i8DgmENEm5+ZSynJUWfJyYuqCGLFrgnAu1/+AX72a19AOtvBUQ8V8m6F1dgmcxhsEaIjxMaYm2VcasSZIjFAv1uHMBv/klLgE2JpyUEpsbm7581+47AJVYDJpPXSEpYiTM4uI1qWz6RWV9Ys9NHm2hEUUqafJZRxognvH3+M7159r03qRCtM2PMQh448tN/cNuIW3qQ8qFbz9IkQlluGzOT4ZyvVmIptaCUQITtkr1TrGJwvXRR8XjYUL35nZCSqXV82DnnIlGLnYjHkrY1ZBtCeNUEzKQ7GUIguPCTMa2dCHVH2LqiDaezaxkdko9u+G0e+G5q3I6iOv3eZINszdRAETEi93/DUvx/p2/a91ocK20kzywbkiNtHU5K3b0FJcAOUw7A/07W3MpdC6Aw+/X3afa6NZYC9z7GHv3nhgfvPMozrYl7G0ZvWiioPsI7jHj3NA8rqR24cfE+haBTDFEgyFmHpbxWzGSLMG+Fi2y+2RtYShdZ9PsILqH03ZXu738LvO2B0eFj90O09N3b4M/vrv9MB9YLVeJO162Y8YFsn8ZKFWftbvWYga8u2SA6TpH07DTD4UuMhjLDOAZ62Zk2gNsNGa1/ofmGgVAlxfPbsLmRrplayhmFK2njGt/cYC1/hNgavzQa9ryOmDfcPbXDjmU6HzJiHBifDB6MHUUK4z6DSc0WEdvv3wiR8/bSp6TADPLnxNazbCJ/Ys0JsoObRM+f7BW0eTg9YeXZKfo59Q/e0CUGx/bN63YMwVIxQcRpigXTcxuHTdcOT5qRschm3CaSG66J4iUzQ40QP9wCHDkkiLYm0Uer/lkWyu6VUwVoWilKW0MjkfGIvKoS5ApRxlVPD31Kq1ios+pvL8xGvJwrrqkNeTLfk/SMSyXDuAv1u9KYB2xckivObJv5c14YRtPYp8Apgu5f+Wa+PhdLGLPG4bs0y7oiNLGEEqdYLwhg7LAnq5SJC0TpaZqmObbuCw+ptq6DELRuiZCQkUFICSgCnJAWjQ7FuIxbU9o10ojkMtU/ZhJ/7p29hKpNk2rBNpXVguJ1/M5IaGST5H0XOiKNGGQgaU8+EhNz2sh0eM6JgJeTM6m7on4xI5pBTUidRFeZk/SbqY4HjBme0RB6lVqzL6spYh9s6FpbClZWBuCnauulE5JDthLv5DtOUwInxrZvv4KP0VNfMMruZkq1MNIph7PgUXf694sVoVlh4mF2e57bmTiM9dt4Vtvi3R+Ze6AkMHf2z+wTz/u/OtEJ/KBcUiiEhiVE2iryXxuE702JWHH+JQ8ltZEN3PMCjCaH21vhOvO/P7Cu5e79tn72kWESvWM+w+6sXtHxu8floPfU2to0JU2U9MK696hrYyMQL3DCvtcTVBaWmKegujuOICpML/2Ph5588Nt/hZYaofVyNHh/3IhKYXUHYwuUy3vdz8r3dNr+uX9yf0ThowrHQREkL36V96PhREIaUOJJ9aXMWvtGSBwfBzsZk9KlTJzqYKxx13C1Dr7S0gfcejCIst/d6ZSzMtoUXOm/bvy7hsVHWscsoBMY1s75cqJXxSrkajxdoVML4eUT3wP98vqqA6cJbG+qkVoNumKP2K96wEFYGAigD3d6sICasq44F/Vj6XE+BU1CPhxGCHS3UNWD4+AH3ljfcdg7UYBcXxx6RyBYTOAkltFG7dbb3Ot9Gg5OtTVPehjkQu7rfTbHJWgoPijAJPKV7hdveo6Z6jLS2p6uu9osSQsZXN+20VtBlQwr0Ynv1/Lqj9UEBq2Fd4FJt+96o0w7f4bbW1B31sznZPL01G0R8bjvq+IblOWFenXaBQSlhnTLmLGUQcjYaEdpim4PRB2k9TwlEE9Y0af1gKVC+rmIsTspnKjQZihkZWuNpsyf6PsM8ovjUzdIxth0JifReYbt9nbo/MmfqAO2kzouyb7q+j112OBH6fdF74fpYKG12eSy5EcAkNaWM8AUiP1q6gcaetS2Fg4ZApERd3R8DtrmEJdzCiJARL3GXWvy7pAfWlNZVLQdKTJtMS4RXHz/E04dPUbDqPPSmCkcpZUyHA/JpcuEzQEEYg4wxURoNoU4ojSBX1kLQoYlIdMhr7exBvaXBCnXlItNj+OHodn/Ab3NfAwBqRa0FpQClFollr86cozdVFCJuSmCPuQzLeNLCSWfGR8cnmKcJKSd84+bbqLDi4tJGrawHbS38lds6xqaFcKkHjxgtT5ymbuamvAg8kp5PM2LKAdkife+6YWdGnWB0jxTU3xnDU7oJ7Pzu9+6Xtfc8Oz60nvHFZrnBpLdWuqU5tm0Khz1pZSBGT7rR7bH0wJ5gI7+78HP/1S8S1/2wrUuC7qV+7ldmfMa9skab3/oxtMjsNl4/1+HMzAQm60lmOXCMxge2uGMKTTsZQ/0+ifMdlbuth217RQXMxjbCqwnCHMQv5nvbN5zpzt7tzM8A0MMoeCxgMGZEsGmlSFQIf/H3tmtnilrrWuFHphi0ealgY1nSYh1H4w1xl+makzOdADO0Z/e8lSOs9p5JMdlGWJMIe1+/LVRfRoGPyk8bK/eYGPu9rw8zJo5tR+OH0efRIOL3dYl3zmxGJa8TBlW241pDdhMrzCxyQGLWMjQBj5yNboTk0PQF2rwjuQUlYjQk+Q1v38hqU6y0CTc4ashs4FX+TIj0adgf5MzQpXuQ9uim/LUEPtFL51FF9nQwdgzfI55GuMi222EMyidFXnE6iGEuXWsdHdH1DkdmIoHy7WgwcoXR5IFOwden+giMS2ecwjv38hVto9vbCOu2//x+G/H9cKdUcKkotOKcpJh8Sl7rj1kzTzN35V1cCQw8Y5gpGx+G4pyVegohnC4bqAOjDX0QDIYZO58KuNJa1e9mLCoFcalaaGRo1ekBXV6Tkf1shzXcM57ncl2XQZP2X43Xx0JpI0I7b8SACO/MYIhbu5rlmEKYQZOEtY2gaHiYkCE3oeWJbUCW91PKaDYklkUlZHm+WlijEoIkaevJiIb1bMisjPyd997CR194gvVgpQAUBRTpXvvxIzwsD5CnHJCKmnBDPikndiYMBJg1ZpOpD6kDwCkhD5s7BsI4EwegdeYioa9t0w1bXhWZSOpEiKyodUUpBWW1kEYnEA1fuc/2aMSsEwj/P+bevMmS3LgT/Dki3sus6m5SpDSSRqZzZDOzspk17ff/AGu2a7Y2u2MzuiVSw1MkRfZVVZn5AvD9w28EXnbrvwqyK19EIACHw+EXHA4Sz+jl0tDahs8vX+GLx69w2Tf0feA3189dcR1joI+hG0mzIZL2u7j3CxWe9NT6gLTKKaurUwjjSYlKAnTm19MVBtv85t4Mn7nBeZ+CC5tv1qVKXbm84D8JE303ZnDVoXGvwQqbMaRzr3ByuFSPbVa4qsA2f6kZ2me8vbbKsIaV/G9WdFcrE7OS+22ubLCv3lm//J6NqYdq0FrgUaJaAh+xZ9Y7VsaLeOYZqSgi9CUgmZWhM57WHQVQaCrfwHnb8v3i2fw+VmfmcgFj5VTpt/P70pgrDtWIQdA4+QtXSErDRMnRZPxZKsxKqc6EKIdJrSODLSuwIcA5l6udOj2f6Xo23iyMaTaiV7RPsDP3JlXwzjhmJTBDyIkmLYTJnIEm+eK7mF8u40y++h60IpEKbDNfcxgnxT+XocnK8t6TrLZBYSFquhqVcNL0fDaSYDjf8+j11bbDkMorP/ZBCsMugAVwxv0sNDSeKuxWqaHKKS3zBSS+UPn0a2zNDD+hS6td1+IWvHE2T1arrl6H6UmU9B2HJ9Fbgib0EJ7epV4noSIOgIkvJZnf2uY03wiaQEz2yB/dTE/FZWYnTM4rMq8PfWSS2TavJ76TOhQgJuPkzHrjXZS/V8Z+OmG8Wpa1QO+M3j1uMbiY6m62kEHU4niqRmjTtp490UK4b8KB2y2hiTbFKaok7OqgkbNudO8OzuSFrgJ+00OJCG1PsjDp2XflfCaAhQF5VjCN91XexWBfjScFrk3RLvP1URhtpphADZ9W+kagTYNHlMERxcGHIVfzYAbxcwOareq0xVlmAGAeuMG+8sYAuDE2yckkhxAQgM5olmud7GEwCIuH/vO/+RMQOoalpTahzozLy46H2+WU4jbCGMWgsVOUhG+dQ4mSbYfwE0j6/IHN92GJEqEHglIwREDOAiEYPlO39H1hvKRhl3o/CBhHR+839EP3oGXNW6/BGleOoSGlNWCK8mRvDdfrBT/87o9xe7gBIBzbDcd2OLx8DIxu4QejnMOzuixEa7Ugno8JkDBZw6QpMPKbjJFkuKNYqdZ4+F0HDSMx4LMCEgY0J6U/GKWUWdDxqiH7lYalMn8u7w0MF9BaxsNzEqSG0Tn8bVakylOO0LECxVT3qg92n5VBICuR53pPVVHAO4fxZVhW4WZ15S3jNMFOOL2vY1hBCsjT6mSab82JzMKJjQaa06QJWGGPupJjK2fkOklyPlj1wVPG6Mm5Ma8wVtzE84zbwP03rUreN3jXBkI+T3AVSgRUZTCMjhF4QOB/ZRBa2Ew2WE4h065BYRjewAAAIABJREFUmAKoJGVKQarD9zXUlnJXE7XGeDMAnuRQ6rwT2GolbV6JmWmbmf3ohvquzps5GmA26O7RQEarBJemDpAQolHTyoZy40wznM6rCSj9w+kqsHn1Nhasv/V5bt+7H2F4sAgfUydYgmUlLN8mdAMRY9skOyVbZWlOQuWtyMUG3VIFU9iS5l/+nEefXZE1gFazyHGY6jP5ZoeCp7Xeonx61Y6SpF6TydHE1xCrUmDOrWoZS9Ge11sYyUz3wnEf2oe1F6WdepZ9h89tk5t1/nsxnmWG8kJAnfYaXaTz2SPhkGiIkxwC3BgIOQ1jNk6HEsHFiuPoS+FfRUbM45/n6WtJls56zoyn5eN7bPlEEYYHmQvbvuOyX9C2ppE09WvnZan+Wb72IWGU3A8cfeA4uvM7dpwkjkkZg+TjMXfBxir3hIhA2ybHcxCjj45xG5JAcNuK/ltwHIpHrt3rDYmh71bDMPEwd34kPfSbro/EaIMfTgkGsNWBL3an0kxjBm/kyrELmMGSnYvSJKIU957pPskmIgJvIbAJEiwDIuwMsIYfZiM4ppzvDMBQL9z+9OZ+V4lAW6x8sRLdgHgazNvtQscYgSY0yawtE8lQQhEl53AClU9FaM6bbGcSSbvoHA9WpjPjppOr29400TLAaKqwGK+yTEJmsGndLvwhBtIOtIsYa0/7M/72u/+Itm1iuYN1LyKDb+x1+t4TAFl0rSZsvLSQSZ3kJH3bbC9j2vy6mjc59OasrGQlZvYc37tqGaJ4Zs9zM1EuGODasLCeTyGKXlesbGaBtWozrpWGhDQBcl25i+cKQ6XK/V4zqjnUxARrVH9/xOcQvShh6lAOtT7j0X7n+2o8RG/WMPBUdtnD6bf6ctWBZXwtQpsUX648pfmWxpxaHX/z78hwqJg7KeQUCuuEg5XCPl/3aKeWX3vaHQMevja3D1TGffoSlf4yjc9tGEzTCqPTIXkdgbNagc3w8s6UvqySJ4U42h5J9bN+adssdJlXnYmSinrqT3ybx2hlzNk4RHrumfbO172VuPxsbdyThKyXzJB5fA3mGN9E/RM8ud5AwT06MgO66Eyc6/EBC1wjmnDlXa0dM9YJ8H3WvZvOMHTrhO6bsuRCrvhXfuWgZV5fUBqd88WbKsSsaz5XV3KCMrypTgNgsEbYJLz4qKhRWQ8pj+1e0rZ9EzRbFdZFp3MfkPitP7W62cfPasx7w/wrrXfWZSpZa/I1K5tp1XnABibL3sjFj+5hr4aY3L4RhfFUxeXsBDHQM1+KHs/PYs6dnQ/35uw9npj1I6pFC97ufW8wZiJMvAq6J60PjHFDvx1oe8O+XbBfGvZt9/2gVcfJJCGIYQZaY1z2DcwXALoPrjOO46YGXPCbURHmZDzzhGbn+uYXJLy3kURPNGqgbXLcv4YOmh+ssSirx+mptnvXOf0tjDW7Pg6jjXTDLxPYs1ssi+ngsIetTQ4TzCtQSZ9E8/AKFc5pP6xPLJuPmg3P6jsNCod4diap36089OVb/W9MHqbmsFNpgyAE5se8Kg5McUAW7ElZkXmhBYa1lUMwAhZDxIB5Q22zqIY6HkNW1AY0FFGYlTBu8Y6aZ2oMTXjhsxXYQKDW8GF/Rr907JcN+w785vFz/Orh1wApvhlg7uK5HAPdU8jGQNqED2amEigzIzaspkO3EUpNM2mcxlBlkI9rvVYMMyvGhnNN97pgIvm6b5RFB+bVtOppm+nKcCN4ygYmUU3zbjQyw+chO6GJwhFZS07CJJUt31R4GdbuWQE8tVBgiP7PqwnzN3nOfVM43qqOua7V+6x4Stl7fVg/r+90vPQhkezdvGwN+9bQ9otuBFclF4ynp2c8Pz3jOJIhByD24q5XQ6jcz32oeJ1XF7/tatk9A3h2EswKlNHGvLIWBuU4fZsaXd7OBqOJ49ZaWZ2vcAYfBarSFDVB60mwsCkgylEpOQq1j4L/pnx78sp6+zj9VvVS/7Uwrdzt84ra2ShH+httGs7n1eKV0TvX42No++8S52Q0EFnmzHMdGTY2Jd34emk7eMprBpvBLIpdCmJxnKQ6TTao3EzSwf+Q9yXWFkLK6upLY01YoyOk2zLc7qBojCgSSlQZ5aPpCkhRk7l8AXBdY0k2ScJr6c2Ev9BXWOE7nVlHMQ/MQZHUqsL3zYgM3KZkV46b6KWbxGzSeZK0Sa8pNKBwGVQo8wfwkVJgDZPMAOWkEZxw5fQUyKtRO5IpO8vSgF3H2eekVZj1Cj6P+XTZVGRPzR9YArpEW7Xmapx9E2CeMDi1Nq806oDNugSACPGcZS+nepKGlGTPYMa4dfRbx8uzZvHeN2zb5lk75T/91o/VMh40fMwJjG3bsA/GuGwanhnHC7wcXSK2vD8xASj9Dt4X4yVfpLK0CkdUqqe0wOEf2/gaJwhMTWSF7JzAVI4A8YzwkH12Hl76itKg18dhtDH0sGQOmiL5j0ZCgmWeZ5aDKFuimhXdJtqjphvS/L0qQZQ+UMFDYPAcnlIUltSkEa01mZhbttqF3KsKsGUBBptLmQFoVycNwspKLHnsucuX18WQZC7peW7TOKTws9gbNgBw77j1Ae7dBVGeAO75GEMzBaXxIRVUW8O2N/z87a+w7Rs+f/gSHy4fRBE1XLEwyz5SwhLOmMpMJEQocnsIDww5468eFNlM+/qkqPgJwfVaeS735wQ5s1D1+r/ls/Vlyo1BMcNILnjzKmHAk7+Py/buFKPCO1nxXr+1MRtJ0OfDmOPz+4bSN3TZ+5KEzaSsrsp/20vz+VSYcKK2E6zrJvKXszBMPCQrUkS4Plzw9vENrhfZTyHhulJX7wNPL094er6hHyLgR9JHIrMgp7pXV3CD141Sq5tO7++v5ry2mpaiBhZtzYZi0PiZvmkiaNKyvormimJwyzwOxeBSnEQ764BfZZWLuRRlmp49VkR6KjA7ebIC5Hx/0sPMadc0rCQU3zPeZpyenQ+8fF/L5FWwaZwNo6fnVZbJ1RDqOkr5dIP5OtMk3yuajLXgMZq7CnmVxfsDFCPTZ+jMs/XvyPXm3ui8DWeY9Ndgkm+kfKbEPO+5tBQ0vwrjt1unK6LTapgXy/x+5meFrqq+4fCZA6JUofMxGzEQx/e+73h8uGLfdtxenvD0fKD7WV1RQ+hLLcbCawoaXvfejDLReRbYKXjKypmP2fwBn5Xq+CbzJZv/Y6pCIzXAmLPuppF69WLAczik5tG2hquG6m17k7T/zO7E5m7ZsWt7te5ZO5EGgkdm2X7voul3joKrvN5pmgeOQ84qdCf53rC3zXWwlVMpH1dhlxyxFP3btg0XBg4+ZGuPJujKtJojHBjGM/0OptFJeG/IF3YmEiA4LVqdiTi9TeMxqHAsJ6fBwgPAwOgdHYRtY3BrCzo6Xx+H0YaMAP0LuFHibgXzJKtlRNmNkSq4a7AWV51a+dx0dS8I+CRmCqflKJf5N3KGxvC9uCFB5Ik3/BsXmNqGZ7I09qg40JltQqgc3JdYqkPCjI5gig0pLnhSCKzQ6Br22Lsk9mDo+SbR78Gs8fnDE4k489W+NwJo27FtDV+8+RK/fvO5/H74CqDmfRrMQJdVuT5sxW5MTED30OmkXRk/InhGCB8r25p4UCgU4jA8J2UrMfhgdYHR8LTlcqEovGbUWbl/y1VDHfPcDxhDQa1XrLiyT5sZbzKkZ2Yu/TZmCr2ralfg5rxSJ1s9CLFrIX6NEbDNqz1rBnemcX/DQQtLHCSB8G1W9WorVUE0gZy9q/lvhmlu27qVfbFzv1zBIsK+73jz8Ih939UT6WlzwaPjw4dnvP/6a/TOPo/r2J5Xfs90Pqlik0G/wnXAfY4isLZyOE+uooT5cGDhNWNxfnXfyIsV+LMxZDt3gid7N/x75TGFN1o/Ueo1w3ACrNTjbRBXhSgpHUW5ANzAyGGVppQWp8dkYOa+znPhdXrPc68arjl0clas5nqr4WXzZL2Pjjn20uWr0AzOBr2UOdNDXtmIxCpwWbUKMbMeM2JaRabWeU6Y/FUhn9on5XEnGh0MtFF4mTkGxoRn71euM+Fhxo8pehE1pFL0xMOlLy6n/D0vadA5Mos8KJEdanBujbDRwMbAbYjZIpiRUXh8uOK3vvsWj28fcHvqOG7PHmoYOKVoO8NRdJFgVAY/efk0BjovzxLE9s9x9MsK0PJG0JIHIl0RiZLHOgzrMWTP1RgDaBv2LU/2rHjn5/E78+SRo2NY+rzpfBldEnTYKlVrDR3Qw9ttTqbQz4yrbFmg/Ey4xNT/Fe+4x08Wz5nTmXJK/4PBPNBZDlUfLEbnAGIFrig77Lh3+aTnA4d8EX5s/Nv7bqXS3PCItuQQMIPdTp/wlcs7CiIpnQT5TjzAePEdTMG/M+2JMNBkO5W230ymv1YHPiKjzc4Lw9C9AJa/AwTsCSHzRIcSLkM2JybZXOaqDYCvzhkDyyws/eMCHD4gNvAe3UwSDNfBaMiMqk4Pmj2vDpIZPNFG7Vm+p+ktl2yQZhDSMJKQtoZ53205mQDuCgMzeIhHpGsSEfa8rYodVm+HHlCJMUq7BIjx3IB923B5uOB//tbfYdDAaAOd7FwYaB1aFyS1NnGESsxXVvKkj6b8wWEc+pcaYZsOF651JezdmRVZ8GeBakBkBSJS0ychGzsb1w1843VWaohif0FVvgOmWXTld37GTfQSWWhkwTTvHVCKKv1mlwO8kIFJ8TKhl3kx4O9PqxonGjiHeNWVmDsoxNzfsyLomChKqHmGV4ZJVjgWLS6MioA5f5+VkgRHa7her3j79g0um6VWFhwendFvz/jw9ISnp0PChnU8JjZYDfNk2JoieX8OBE2s54byFHcynUPu5t+1v2bCR131fQjpeJ6VvTVvmDs9O1/yu6wyrfu2ehkPLVxGFLbKs5vGQXpITQkvkgEwGdUcC6JcmJJlOM3GX55zYr/Fu5OMSfzhNUdF0Ookb2hlWJxX2k5yqtzH6orTByLqIbefjeWY/2vYoh1O/CdwZAbr7KXPyjYc3yIr7JzQ1ILDWmSICRwdF4G78gObYxV/hJ7w15odBi8gekJsYoxBeHzcse97GLcKyGsGeAl5N52gdxy943br1QhLuA1YQxFmZBqKjvUObDthu+y4Pb8AgzHUwCMCnp9f8PkXjO3Lr8GaQKKPwLhJEeCsAzlk3qYRPBUSELO3GkJWo0d1YKbfNOONt5yVqjTm5E2Hvki1OvuIgUYbmIboHBQRPKdkZZSfpTGYeF7gQa7jOHAo7XEXFZ8SPTgXKTwfQAlJlgGVsc1wUZT32vLcC53sxFMR8y3mYCw+kCry7GXlr54Q4M+YdesLMzaWVSZAnDu0NezNdClJ9mN9F3DkrETW8lJ/nAFHrYGZ0HvHrR+grrorZyec/OPrQQ1AT866hK2z4J/41KSYEQF7a+K8SHzGIgkN2wzSSBoT6FRqv3d9PEab/1AmMuArYMWh5Mqf/LDVHp9kmYitPCNW5YAwBhiAC1wlPAqW4BKCIg48gQlmApPuARt14ILp2mCxKy/OFJTZssePJ7ihhlETtmR+Y2G1UdKXjxvFkQWMSJyiFQ4jxCEZH4/exWPvTC3jJY5aOCm8rWEj4Ng6ju2GbdtwXAf+8Ts/FAbWdGWFk+94iDARdLIaX5mRJ2JdoFGB8/vZY78Ke6T1fCoKfzUkBIyW3nvmPkNiRQMqRSCMNQrS8nuOXhblOVWzMgqywRaKT1VO7LIn9w2aKBUiVJl0PlgUSW7drdPK6zgm+IrTLF1EpNm5ytMJ+igLfPP+N4Ofpqe1brkGmuaCDUGzDFPzudpAeuyI4OCsGFbBR17Oy9u7Ux+Up2wbHh+v+PTxDbDtCOYHEWwdePf+hqcPz4iVJackmLIZI5qFI7BtBD+bidfOhDAYlq8LHu+tkBXjDRFhsFakUs2ucI5kOJz3WOXypU6axz+NPeX2qxBxw4JTjBmd6yjsXPvZaI5Lo+Dz6Zyn6F+aG9P+L5N3oTDHnLLfM41W2BZ7/BbXfccFXJnJXZoN89fnobnxms8fr+ekKZfWMTuVXPGbFELnW97nXEu0U3RMnG6mvqVx1jpyad/rxfD9JhE5s27GEnNV/gUUZ5BxLdUviICjD1wuhMtlV8cNoUfavDjWJje3ww19VV0xcAEx8HK74flFkjiEsR0OuNJTfWjGE9HmxszoA08vB56PG9og1UfI9SlmxvPTi+Jd9t56cs3MJ5Wmy/EkNpaBkdCb9Cv53ewuj2Lid9XY5mKE2JdUz5KFtU2phJWOiB8zFErbWrChoYaLYkVuSbc12os9ytKGwmIKmn/FkOgkiv5yVJajJHIkSMyfiqNX5agnl7Fkbfa8NGpP01/C4JFmEFTxSdEpgK5uJ57eNux2LrDrV7IKt0ESmWybGDWyztLwlt94zogsYwDk9Ol4195BomMGHsYFzOJMOG4dt9FF12G4eg8gjhpQUBxzr/HWiUYMca01UGvYADD3wr/y1VQfuqev3Ls+GqPNhVeDr7hRRt7EJSO1PJA4UZS1dxBDzPbM2bEBvmzj50Iog2CKush9oQjyQxlUHwoXxnYFYfgTd8lJG64gMsp+bT/vItXPYGdOsLTeqd/GMELv0MyLo6MfQ407gh1KzlrG4JQkIqMYauSbR4Ox/OvDb9D2hq8ev8bnj1/KOTUg7LSLoadGtC2JY0SYHud/zHM60wFy2TMxW4joRub5t+czxowjTgrYLGy9XkfbHXgsz6d/cQdyqKzR/iXOYKQa7SlzZfYQiVxzhCoGQ/Y3ZAqhvbP24HQVcAYTj5hepXObI6CarYzjJhTKCe50ZVjiN53eW5hXVrQCzvP12oqBMMu0edtpoCqy5o+l6fv8t8JhYb/nMq8ZASe1gm2/A0XaaOdREp//+HjFm8dHtE33/4xos/cD79494en5WbAZ8VwFN+b1zvwy4y3C3qx/33zlfQZ2X1c6z33NjrS5HnJagyqIK7zHN/eUjGoEzfSzrtPpkcMzr1ALTkGpvpnn5D02OpfdCE6rwVZyIaPsQOtiAGYHCef5XHGR4ThfNNFjrdP6vhqv0v6prbhKHxdjEkpo1HYeNsVOguO84mb3C6gok71xjio7XLSikFnIOP32zLnm1qI+czBF+1zUjAIBK1SMCV/AnArSVuvUNyPqSB94//4Jzy83vLle8PD4kMqKscOtY3ADcxd8JghE7jZxKIDwcL3icrngdrvh+XagH8f9o3HSgLUW9EbM2DZJjMTMHl4T/ddy9pBrXYVX+RfKn7Pib+gB3TmZPL4zbm615rkcK3vWfKYpOTdWZMZa73AH4HxMSIFjbm/CiRtSymmIEly0zD8QdGEZV6v8nPlMgXkx/zKuKl+oMuv+HJv7W3l/boUhORUaSY6GTQ/j7izO+lsfOIYlpqBareGYRbv6nZff1nMhJVxS8iFs2PYd+7bhz17+GA+4Fh3FVu2IxMAbGPi7t/+EX++fi05FG7Ym5/1eLgPXLrkTeh+4HV0OEudEjbMHacJg6bsJdRYn/mXbsO0NtF/BYBwvR+0nkLdklrHI06Y4NhbXx2G0ZRqzWxN0gMpbToemT5Ml7W0TA22EcWbKVJosJK4zsxt0dS1CVawuU4LcSeBCAAAnRXA1odKcGSkT04l2FcSWuIMZP3XoKCTT6GGhW9sjjKXRJQSxa+xwnXAR4iQp9IcbtE0FxH7ZdZl6w48+/Yl71YgIv3z4Vx8DghxM7m3pYYWMWGmL+XlfyQtkxCTBJGBkRY30HL+s4GWEn69gfxaQNL0oQE23PDPtDE8ihYmhybMRsPHE4P2slsKaF2DcEbLlfXiiM4qrgm7Mv/YNDnfCkwJk8DYb66RYmQIWINR2Kh7WymgRHycmtR6YNS+j8ttwUWmLtS8ZX+vL5sZr70+tU7wTOmvTN6m80tNl3/DmzVs8XmX/p6X5h5731PsN799/wIcPz/6trLrSst5QhLIHdw4jfU0Y8KnMiq6jH+dnNcQvNpYXQX/HIFsp9Kv61leezEaDOYRZn5sBmbusRB81LHgLTwr6nSt/H2IqFPlwBGQveRbYdfxWRvIpXLHgIN0RfQMtB+epRt1ZUQtP8VmJPN/XlTGpv6V6znAwV2X3PP8jbEnqyf3PPKXSgNQLFZPKH9OgWnMzWLZCHis4IWuZJ53TBEFBPwMa1sVKO618InM9bIPAc78deNc7nm8db9484Hq5Supyza7dGG582LcMOY6n2X5ijZQhanh8fMTDA+N2e8GHpxe8vByxBcLnRJI4/ir4OxkxqxwzY9i/zPSrDwg5JVWmx9RfH606jkAuY3WkkeC0mu16UvpecePZrRf1mq7nKh0FTs/Uh3JWGDOrYh11ObTL5mJulZgAW6FKQuTMs9e8Np6/PoctI7SfLZjalu9yqC58vG1O5jo49SCys5KH9JNvMWBwZ3STxRNU0mWB93u37+B7t++C0PB7t98pKCNTTBpho4an7YZxGdi3TfMVmEzQZHy6b/5PvvpDfOf6GX55/Vd8tX/tfRkshiC1hn0b2PcLxugaUixJQYb3e75mXqN1dllJu4HR9x0X3rATYdOsz5Jo5NtfTQ3f166Pw2hTHAUNCokY4wzGgdAwYVMYwTSVsiRJZPIOaYx0Y6ixJlQpIVDmsZ/ggNF4xLCXl3miYdJd7anet8wI1HgkD3tTYaD7vNx74MUnkre6jLB6R2dgHAdGH3qu2XTwonrox1iEPWpbjQjbvuFyveI3bz7Hvzz+CtQa3m3vy77aMQZIFUsx1rjOxpVykz1uCbezd3ueLK3VMII04ovrnnJiqZZtlYdeL57ANUVByKsKmvV39e2YQwImpUN6XhOGzO2/Yj9UAZjqnBlMoC8cITO98lS4tbwmEcKmKqJRSYHVX85z4l4/Ys9aFkSvXfeMhm9qZ3qyaKsqj6sqy/joA59OU722n8HCaVsjXK47Pn3ziG2/Yttjcg0GBkta4w/v38v5NDjjMKG3vKu8ghJO787M6bvcBpd3YaSfD3W9p8Bng2tVfjZK7q0GZePtvkDNv+vK1qo/ANC2Db1300ZQ4pmxmntr4ynTicOY5EOhI808Eopq5YGV5iqe5j5Xh0iC8tW5Ye2FI2Y2ulwZzXNyMqhzW2Hc5dCuOq+jbWm/mbI4KUnzilvmcVGHfZfxl4q5Jp4fZxoFYl9a4pOUHCMm1yi+J+akZKfmilMi4TCBnaWH0WYZZ06O2sEY/QXHccPD4wPePL7BZsmJBoFIlH1qsrrGRNhGd/k2hpk5jK6keL1c0dqG1p7w4fnmTlGaeJygTsOznUYMn+EYKrLY9BWu/TTc2L4j0ReKCuc6luPSDEPDeUDpg1RDLONsR3a4uDjiHWJK2UCttxTwlJA4tnBtieUIw0X+HT5nolWX4zakCT+ZJLQGxZQ8pARP7nlWcb/pCmNLMep0qmNsS7uqUEdEl+ggZgvzyNwpKysUc4KBP3n6Q3z3+CzJBim7EaMP4F+u/4qfX38BJDzZtY8df/H+P+Oh77iMDSDLkmzw6V8mcGcc6KA+0G83EGQ1zwywRg1tsxVUxk4bfvf5+/ju7RO8oON/fPI3kvuAdEFDt0kQJA+CfN8xjg1HP9A1+UuikmlAba4Ttm1LRiHwfDCO/gJqB0xeeFcU7673e0U2x4DRkI4zWF8fh9FmV2aGdnp8ImTYRNTz3CTcUWZd9oSKV0pnyIBzyeKZmNf6gdhb5iFkatDotGRUTy8jLWVyique09ISgao8k/qMMNxIE+9Es2ILbc3m3BhDkoccHZ059tSdIAT4GBjcPT14a8DWNtAG3OhAA7DtF/zVb/0teIfHB+f++HEAQzMnwTw0OeSowuAT32XrHLYm/1pfG6UkDHnQz13Sn1JuUiGRUVcEY1HiUMqVGqZyiyKFiYYQzgp/hcegLd/pX3Os3ItemVrWNpNAnd4aRrLi6hgN0nboahVVYS2jxSa7s/LxDQhEUlB8/xCdxmflJfSWvR1Gxe18n968qtxX2splrZ1l+N/UvXkv2dxWxo0pLw+PF3zy5lHnnyKGGgYPNDCenp/x7v0HHMeAcysT9lkhrMAVnJ8N3xpGlPuf+1JXg8+4Aep+rRk/udy8Id/KfFNoZa4rPxeecw6xqwqD9bMaln7mlI2tYrb3jntGwmwAz3ivhob852cQEUIeJAFtWUgDt9ZuzCdYLyi1lxSt4jCY6Pb+Kly+cpl0NlIynOcxyiska7rIZWb+KQaqKMxBl3MIbf4+48IQkI3i6G9KQKAoEnkdQMiqiNZC1QE4Y8jLkugUY1jiGKEZzvJOBHvMm9RnyvBbRuTW0vsI1XO+Qupf5lh5HEzo755wvNzwyaef4nrZk7Tjoliy49qR6oTJAIbynzdv3uB6veLD0xNuN8mASIZjh5tc18o8szhZkw6b8Rg8Uf4Ohp9LErJ0nlvsv7n0sIZClk8w0+DZoctcP7PiflwvJGmHON8m+UJZp3GqAjDi0Gbk+rh+n7DDanwUnmSUYynrU1deFakrEQgusDqdcszpwxGSqiHRk8dIRxkoPI0IAzl5DmMbGx75gv/67i9AtGGLlHy1Xm3zj55/H3+A3wUT4//57L+DNxt9wl9+/V9wYVmJOhhoW+hBmSJ8Uiv8fQz0EWtX27Zhv+zi1AB87tjoNRD+41d/hv/+6V+j06FPp+0MoaD493mMUsnKM5wXWVn5O5jj7KTJOEsKT1pEUfZAEr32TdfHYbRlniej7uciSFy5TqlhU4CDWJ0TyFAPMiMrIZNyO2qPL9Ll5hW3YFVBiMaoSMuCq3IXLI4rP7K2OTHphapHALYUT23iwpl4H+iHZmDkLowfDOYQQOKpMoIQZtlI4n2vlw23/Ybnyw3bNtAvHf/w5p+jP0mBGwOR2n+wrgQalBnmSfgl4W4rhvIohVPMwkXryYo5AxoKeUJTyCNtUOLEQ4oUR1xSxuZVy/ru3M7qxUoxKYrAvbom2PM17nxjjKWs1c2cAAAgAElEQVTWabHyXgrzmMyVmFIhRqFk4uL8aZZuk+BygZ7LKr3NMM99CwUwCoSBa49mIfct+4V745ZnboJ9Ae981fezslLLCV8Ox5KQLoWyzaFYikeu4c3jFQ8Pj9i3Bnc0KU8YfeDl5QXv333Q5AFIOFZK56hvBfiZtjh9P3de5oxl3GKcDaJSU1LY5HDqdUIXKdfKFl+iODB7vapyP/wvr76evuVTQJwSxdmwLOG8YBBlb3ngaEZtEe7pWR6H0I/Z+bvVI/1W6GxvhzovCLZHMdp2pRkxYqzyTYS78ketd2VkrZW+s7FrcHLC9Wp8at/rmMnfmrjBV3f1tyi192hU8LteRQ26zaI091H2W8H5XN72SYj9hEUp9n/gOKzGSm4jyVZCwRkonZOYYGan1dBC3aHHUgLJYPPxMuBTwhFm4Pml4/b5l3h8vOLx4Ypt21ThHjiSXDPNYUD9rmSrROS8nIZkPNz3HcfthqfnHDIZ8JPSpc9rx4tpAaGkApzGpo6XcLnmZShhNCvFcPnNGW1Afu+4hc8hJDiz+9h64tWluZWNfHse0VQyNnbWq+BNoLZs4QBh89DXuBZmozwnct6diYkA7A24XHYMiIxwI5cZt0MMlMINVN7IuMZjqDPdEn6EYRp9NV2ZtH1xMjU1Qm31Vlafttbwye0zgAfaJt/8ycsf4814A7qSD3Cs4gkybP2wMUDYsEGOifgMn+EL/hq2KvoVfYXv9e+CaHOj0KoJPq7wK54bgH4cOPpwQ9v2aY5uuM5qjdR5pQv+81d/jr978094omdwoddAkOM56VZlRLPOZ/TozCDz3cwN1vqN3YWeDRBtaDQWdFSvj8Nos8t7ooJM5kkw2RyXyygZIeWSBBVZR+EJo9NwBc0D5SycUDSN8RDANuE5Mjkp8RYl3p+T/RECKmGW537LfJMl7DEkKYj8HSFU7QOHT7w+lpbf2CBDJt++bfj12y9wXA40anh3fY/PL186M2oarjOY5ewMa2vUs1Zy/zJuzg9CMWB9FwJIfvmyPFn4QmKYWscspOtFLkClXgqJhVCqjNfC+HsC2RyfS8WfTCaEwcHEaQPpPeNMj2G4k91x1V5RJhYKjQn/bHgwUJP0ZNDndNTIxjAQScfPsEd/5z1hXjvyr7Vn/6xcm5AI+ojQrvVKR+2L10MBTJQLmim9mepNtZ6+q22bMmzjMfGLZX3scibYuVRIjbDvG96+fYOHy8XrNKEyxsBxHHh+fsKHl45+697GLATOYYW5P4GPVXbRc13K1+5PsvRtbTcbCmeDLeCwtoynrOjl24S53st6mdsZbMrpokSZc9aHeWVK3lXjJuqwuRk4Y5g30LhVjhwdEy1522Ygg1xRUmJwYS0HaWudpvxTHJ5OgLimp/GofQncWBm7l76MUFPo/nisowcyLYw731n/y1PkhEkZr2t+SfG3DG3m5AqDzr1ioNnULPiX5zFXuTSd4bJumzIXLiwYA4ZtRY0XE+i+GmHcOgFl+h4DblRBZBmx4Utej9Hx4f0TXl5ueHy44vrwgH1rqGs+0bStkFjW6SyHrcz1csG+73i+3PDy/Cz7eiwfwKJOhsn1OCvWNZLyjZUxR2+k5mN7SyJkE0Wnr+dW8x2HPp9loFqVuS4Lwc0DpOaO1zUfLxAQkNchTk8d6EQgRGmcEoxAtOtrjk7K2qbi4ugHGgEPD1cAjOOQ5BV7E8NwJAxE3YLFy/WKy2VXWQwctxe8PN9wO2KlyR0xOv5bk8Qc277hoT3g399+F7RV3YMHwH3gD55/DxfewV11tQuljngnEYsoIfeExGOB5X87/hz/7ZP/6XrhP+8/wu98+X2wHjU1Bov25HpBzaJJpFnTW8PWJLSTIHvB7TzEIBdSffaQM+72Dd/lt/iPT3+Cf3j8AZ7aS50zBPAgAEP0wrZpfgfnEHUEjMerjo6imycqKhOOTryU2oatMTa22XR2Gq6uj8toA0wbdH371Auic5Y7msqVn/cYAjzMEhxTnVM9bkR7uTSd01z3JAKmvKmCPy+tlgnvnhxlRIMllrbbeWlmqEVbQQSkxB5hilCCYOip8Zcd7x8+4EdvfoZ31w842g2EpnyHNasjq+IYXtZ1WE0I2Sx67lKpAhvZ05obaKvLWOjgWCKX8YlxWF9prPgMDlgYEBrMIi5042uek8AJcqL8uN57NUYRhqBqpNpqi+OvKLm5Hm9ElUxTsEzJcbGJUAGq8lLrmmG8d6lCiIq/akCmcMbU19yX2qcU/8+c5GJ4G1djOhty1YDMH5wIDzEGdHpfjeTEgk/aCZdx8PO44i081jcp2a5EUPWmEgGXywWfvn3E/nBV9pDcFEw4+oEPH57w/Pzi9J+FvK0UrK4Ma+31mi7qtxkPtHw2GwP52zmkbr5s9fheyN29Nkyw1aJGY/HeH5Q+rBEVRvm8ag0YrnJf5nlrij0VHEUImNBNnCWVOGQqafW1kqHP/pJH69tqanRHIUy1oSBoNkhVC4HN7fVYxzdlVejfeJWV9PNbmMIVsOU59m9ps66jzLRfZH6es7Z3S2V00KRg0lXDmc4VvGJcmnwvbRpn0/K+eho0K69y/YnenToUW6ooFnYWSeoweseHD0+43Q5crzsu1yuYB47OLgPZHb0Sd9UseochGfma6AG2Yvd43bHvm2SafH6RfT8ceLLWTTE1XSTzG+ZwxppTYuAAj5YWvknnSdCkzp4J/5QqT4qWD0gta/QlctskmZTJOZ/rPm0Z8+H1zRxUEO+a4UTkY6hhtHCWhIQmVB3D6kir79jwfDBu/RmA6IAgwFbCjTJcF3X5QehHR4Os1tHlgsu242gHmDvMoWS4Duev/P4P7/8En7ZP8FvjO0XfcacHh7noodf2MkcyMMsZhIY1F14Mag0/vv4MX21fo1PHvm8+fxoI//RbP8Bvv3wPv/38fYwh2Rx77xiKA1l40DFlCY0kQiTM81V2OEFagr5xHBi3G26943hp2PcNn94e8WfPf4S//c4/YjRJaCJjKSuanYG2XXB5uOKiRw6g0LmuRpJGgqnO3vsRiUzSKvl8FRp3o58ylQWeX7k+DqMtM8Kkd8nWsIQEYwrGCF1bQsosqe+iai0rhpcxHCQm7NUjTXglBElSowbHnJCEAcZwz0dGtiusxmgUNtZ6bTWrj4He7dBpdgNsxs/QCTM4rHvDxXZpaO0CIsb/evsTfP3ma7S2YRDjaAfMS8RmDOp+OE5454zLE/bs2UItZKCQqRnAJB4RF1ZEKdzxjrAuwjzFtrvgpLmww8bz0Cg/pS0zUcD32ixXByjVZdwgCeVpOmaBZvdZOHODZvKqeYwtZGq9ciJ/RYHPAiW3GYbMHJ562pxfsaRQWGgUn0bUmKLPm5NCGLfUclumpKiBabLW4MzKYg4pdEES45sNZr5DL2tDPmg0133vmo31XK/hORRaFfxpn60LOP3QuUcj7I3w+HjF2zdvsV8uUxdI0yF3fP3uCcftllTaBZDehvxz4uvMGkZu+KtzdUVr/mZC5L1VtWgqDjQ9raguvl0ZfvfCIXOX77W9vs7PaxgfYNlcMz3zkJXQRG6F3uS5Mcm8ggqffx490OJsq5iTpPgyQ0vCj2x4XL9xvKSkCiH0FtR/5n2Z52WOTOWburJd+urOodrOeXwqbzkbYNbz86isDPH8rBjk82VyJjlwXC4UHj1hJ41r6J3aVy+zxnB2GtaVfgo6cJ5asTDzkVI3137U/kzzExTJ1BJs/ej40A88P99wvUqSkj6APg494sfGuaO1DdsmdR1HRydZ/QdklcIy1tH1Aft+we3lGS+3A8cYINOrHNdyldDinMecyFefLExaeKPqPJOOESt1Sda6TmEroaokO5az3CLXj4gAwgSwQOu6ylDGTYlYXCr6xExOR2cMDljBw6RCLsZPx6G1dOQCTX9jj6cctmyYqfw1AQIw1MBhPBODng+IYSMJlsxZwSwhxFGPfPeP7YfYaAPtYlQ3Ilzpgr/88F/cMKH0EQOywrXJ5qMGxnFIYpl8fCgT8P+9/R/oJKbIjW5gzZ9ofJYgJwr+5vIFvti+wtYJnz59B6YXdw23bmAMbn70FJHIzbYDl10Or+4jR31A9ReWObPvkomRgYMZR+94y5/gL7/633E8PuOvH/8et9sNx3HIQd+toV0vfnRBI6Nrkr13Ly+gXVan960BG7BfAB4XMTpvB176gX7IWXDlDMqJGVbnbvBej0x65fo4jDYg06IQt+KLiOLsTi86q6qEuafCN6Yyrm+R7kE1JmDfDBA3MLGmSKVQMmlSGkwxydkjwjUb9drAWcZGhhpqckZEtz0PJH2ysZS9AAwehzo9gil+2D9IpsfLjh9++hN8uH6QzFLmHQZAsDMiSA+3ToahYzFNOITykpd6DZ6CXmXKUcZ9yWk3aVJyDIWhVZRhkTplKpeBng+wS8ZRRjnA9SRU67dVyQFP6QYj9ZlSfbmNs0IyE1sVtvHOA2NUEROlkTCva7mhEyIxDvaGeCctk+Z9FJ5DWM8Kb8aBteciy+9WCVF8P5WOe7Oze7xO9jqrbR1zxz12rqQITlpr4BN3M6XDcDSHXZ7xEDCEJ315ZfqmGOuV0hceIoUBJqXgfXc2q7yFiPDpZ5/izeO1CGH7M3rH0+3A09MHHLfDj+twYkzX0CWr1UoSAR4WmFeGViFtUn8+f+j+ylfFZeV7K4PNvj0bhjn0dG3U3TMmZ4Mw97leXKZopbN8f/4EgO4zM5okSJa4wFVWIHP7hfZdB6Oom2PcbIZlmVTmoZb1MCblF3IepwI89z71eQ6NnMd+9VGIk/urpbUOnn7PsyXmP8AnHuIOjRN/Ta3RVKfiUkXx1E6W2/VdoSur15W6s9PjNQeCGQ0eFsscso5krxIbnTOqYzj/TX0vdYNc3znFJVJEHPkef0VKV64zjgNH77hcLrg+XHG5PGJcJOTaQs6a8SXdq7Tve50TRCDNlijJkt7g+jBwu93wcjt85c35HjM2aprtUh1G7qgLfo8U2TNg8sN6bngV7JijT+98VOPooOBpjl8vLw8iMQu5LuQhx9aybx+YVxGTrHEpRz7eSMNTZ3DAivTLIypCwVA6RNTnvfWBQK6ISxv5RTZpdQycH4kWKWIn8dkkDUVu6DFNzOAufWxE+D/f/F/4d8fv4Peffs9T+O/Y8YgHCUUkMRlufeDlONBHx4f2jM+vX+N/Pf4kxibRv4SpqgMv8YYGoA/G/7v/Df4T/wfsY8cA48ePP8XvHN/D7/TfFtQNxnBFjtEPju0riReYU04SDu3YiLGpiaOcAU3l8fbygD/FH+Mfrz8AYcf36C2oNfCuK7LE6EfXlWdZ0ZTnDQcP9EN4e9s2tCYredu+46qLIrfjwHHrOPoBZtsiEPhfsttveX08RpsiG9DVGJmJoRBHtIczhqSuykRYyRgjHk3fWDJWm6KUqNmYbnBLE7YIWBzhVP74cw2xl+QdtqLGeg6E9SnF4QOAxvZ6iI4yoMF6eOG24evrO9yuHf/82Y/QNg17IBLFkHK3GLEnLuoKXE+x/7n/6dbeCT7OrEqqMq8M5U8SfhKl+uhVJheJY+ohka4GuDK6UtRNALCspiIYdTp3+XTVSTMpPVP2uShzVpyh8JWx9C/I5MdCmaIEaQNSGBxzSwYeAI15NuUljMQwtNx4TdIsH6Zq5WLc4DQTisVK0Yu2rEw2pOIrcv2z4Kb0K5hrFpgNwKB4XyGev12vns2GQoQZmOAqhb1XprOHcp2L0EQG0tfO1s6ZRohkf8LD9YJBDWBJgcxdVnWOMfD0rAlHek0AMLsVWOd+0q5KO2ALCSKHeWnckc0vIFJkn5XUeWXstfDIVR1zuOw87qurthF0luvN9JIpUfCQwgV1fr1mAMaKOxLfShpgfBVwUDYEgv4TtIn2g7aQ+jaGeKpHor3S69kIbi1N5bam+zVDDLinvpwF5Fxnxr81Mc/JeQ5megtnyRyGaaw4PMmVbnKbM9QRWmpPQwbPo2dKPlm9zKn3jKwMrzDkPfX+h45hBoo1H20HDqLmxE3TXPAv2SRcrPDkvahhdLoU1DwlFP1PY3O7Hei943rZ8fDwgMubR4BldcGMmW2bHEgI2c3JQSBRYYTWHrDvO263G24vhx+YXELk7XfWP/JzWGgdOT2b8SIObasnjelkvM8BZzlMMw+YZN5LZTmpADnjsVMISvliyLu0jK0INsIRdcW1isyzTBfgWePRh5x11ntOk/NlbO7k4Dj3BmV2GK9zh5CNfZWRA8Avr7/Gv+y/0j4PfKd/B//+9u/APPD9999Ds3zqRPjNw+f4q/3v0ZnQP4w6h7WNTfec9XRmsPFR0uQ7f/PpPwQtMPA5f4nvf/l9bLpvjYgkUf9m+vmkayVHnQ0tg9xoJOWjRlG3ARxdsmq2bcP/8f4vcdku+HH7KX52+RcMlv3lYwwM6NYdBqjfgC4JA9vlisYMScREkIO8CWhiwI0rox83HEfHrR8YPfTye9c9DSxfH4/RxpiSPUxc2a6zfL+bCdL0rjIbKf+0iRMch3Sp35Nw8MShZ6ABz9jDkBWtMeLQPZEbHEwpef2ASPvJmjFIYBa2sm0NP377U2AH9n3D19f3eN6fsdMG8cKmzgw5LmCY8ecTZFY8Kz6S6KzeUedHPOFfJxtFulcPQYJFs1ccL0RiGReL6S3rQIoDOxpkdWXPWOafWZex3/dyGSxUZVUSqtKR4To/53oYfH5j5LVQ8KU+oxHzxASBZxIUsrExMhjigExTLmw195ykZ4ZrFnu1fDWsIitbO9Vb6Wv2YhtznlfJ8tWTQrxW4CqsGS/5aikrgCRaiHJZ4cuidbVnjJ2IUNqNKUxWlXY/4Ltcdrx98yjHV8BOHJG6+tHx4fkZ799/kBCK0u6djIdmMBRQjPCnFaQ7lxkcrxu7p9ZL3XVFJo/len/ba0b2bFBUA+DbXone/ZZcOTMQ6xmIOk6sSpxJdNTwIQCxwpYMZut54S/RjRhPDh5idCceZoM55rg5cioGGGU+z5crunbW0moM85z5t+A1mshz+ZvCVCufm/u3qCfLoCLTbSWFa3m9ROGhCf9cZrUodJyU4qlJ25+uoU/yfEDi2QNO4xt2xmI2vLKBXt/VcFXvT8YV5hGvCg4bsEl+2zA7n1QY7KBsIsLRZXXgOA5crldcLzs2XQlg/zbkjYT0Gj7YlWyBUZKutX3H1houlwu6Zrg9bsdZV6BsmqRVf6h8VvhNHzJzKlgaA2iFrwZGEAiwMc3zrRasjzg/D2opZRKdC682HhZf+AOKcmR1ca6ERTei+M5LJl7kq7WYokKSUyDgS3yEGvwoLJ57kvkyTfdnxHo9CoeJNd86w0Cjhi+3d/hy+xoEwu+2d+Ahuum+EX65/yta3zA4Mp+fwt/VONwvTWWE6T6h58H0T44R+vlnv8CfPv2h0+4gxg8ffwQw43dvv41P+2fBadJ0sfUQItvOAEyhenhpz/jl9dcQJybw95cfgED4ur/H09OLnPtGhO16xYVkYaE1gh2JYPPQI44Uv50lAY+NxrZtEhU3dt3/xuhdz1TuPdFY4OOb7PePx2gDioR1DyU12ddGhJY4BQPybCWwXI6nZW7YvCddTQuDjZCW4RWLhSfbZF0wCWbLIjP8cGtw9SgYUAwC964KOnuGRiNaUMOx3/B3n/4Ql13On/iwP+mB4KKIt9RjS1ZiiUvyfrgayqlgZG0D5af3M+q2kC3L1KPj0iQUwp1lkFWS0JXUcKsuFxEyWi742TlkMX+Wx2ClnAp4SYiTblIdWYlACD3/LjMvY6ZKI6jDvtpnEcrprGhzmXBVucnn9AAWNttzJ6PXLlizkWjDm2Ol7XM3YLMDwgR0NDqRMVejhcN8XjGOUHyT/JqQE0LZGJBmhLIQyHRWm5VfXbZhXSpKB1BPq8b3Vu8yHPV9mFjrsDLro08aZFqxflloRlbeHh6u+OTtIy77rmewQUJMGOjHC94/v+Dp+cVXvrMxn22PFUoYrmumsU7f3e1L4MmEaf67uuJdhJTVi9x4lyx1xl9r/VZXHBHA03hn3kxefn4HNcak7ro/FAjW5mli7SHI9yDmlbJQrCzkLc79ga6OwsLcRp6D+q0imRF70CRslF1+5KCBRgS2uaDfkoY7m/LpvEq+KLg2gRTCXfvBEXI0r5JXWnaETM/OtC3g2Rjm9nAa1/ma6W411jG82nYxOms/5+/MCWr876yjx1zK+3LljQDnuqvD59ygyBtLIW7f+Fl/8qjmxcxZsBLuQm0IZn3CWuJLjolcXR7ZyuQElkZxSLm2f7sduB0dT23Dp5++0UO1AzfbRsDoyuXYFVIbEh6yJ2fQ5vt7iDZct4aHywW349CzJLvCSDWzso+bdyJwkDgc5fGm9BoMpLDT/IWNV7X9K07sSchC7emMfA6aWDkVI5wxysoQsIEoLU5TSODOhlZCRNZFDWaiVAUp76m9njwb8paCaq67rKJ2Flj7yHpN7rj8bgTfckEE9C75EjiXY89/C0B05J/tv3K9hEDgw/BuY0I6rSmaSwOc6TDrMARCax1jKH6Y8LPrL8Bg/OnTHwEA/ubtP+Dz/QsQgC8uX2EfG/7r+79A4zM9bLpPj5S2iQi3QxY0/vqTf8Bze8G79sGB+JfLr/R7Bt0AHOKolj2hEv7Y0EA0JPKNhMlLfgio8+QG9mOA5PLQZ30kyXB2DJK5E2eFmrxdMYl6fRxGG0HDn5OQhljWFjZCdYSFMJxzo8imMNa0zlTGY84x1CAcnr7fp0NDGJDGyJyjKQFb5pjRhcn59FGiREQR57T98lIptjXwpQPU8KNPfoYvH7/Ctm9AAw7qONpA47RXjVkP1DYFaMGIDBWz9ZOFpTGjjDudsPJTcUfQOOY0Lk6UcfZKxrvIxrUyeFL9ksDmAnI8H9SwZaas4xf2fVbSAPSocYykcAATvqoxVj32NbRwJHxw7nBK6e2ZMpMQtn4hMRXva2qTnGYBcxO5UpAMIOt/nHuUItW5rhB621RVQBcbickRQc+AitXbKsSqd2y+Zhpc7pPx36E4xz3SPXvIojlUzqs38V2hIWXY65UdEaS9Swaomuk5YKnG8EAJ2TVPhQmmBM/18Yq3n7zBvl/k+84Asca3d7x79wEvt1tRMqqgmbDi/Up06kPNixXPPEdSz5JxtlK0763AGUQB49noszJ9ALbX/V44Ze5nrn8uM/elhFwCCMdC1BErKrHKYfVkfEe4XIZfObXI4Gg9NDcDJOiRIuzGrK2i6BWFLHpjWc96F4dd21K/0q+ygd2fsv4/UlzHqkjGWcZNxaPDd5pz9l3Q28qwz+Gz4rTgUk126lQYDAn5cPa0Ps2odZGidUGWbU5zm+ZshmHouBuGPaKi8HB5kM07Ln9jfxrrBmmeRstlQprEzBkmGzeTcVxhZusDK5rq2Bh+LPEHxXkArtvYyElZc0RIsoevv36Pbd+wtX3i3Qzws/zioLuu++eHnudmefO9ftT9SYVfTlic+Wt1UIVxF9EuUZnRA7tikCGI30UWWA0FuVneEPyYDQ55cSLbxPPkR+yzCGdBneeVp3fvo3/TuxAvxfiAMM1hcnhsJTXOu8zzW015rWMDcByHZA3f5Pw90nnsSfJyx3QsxKgZ6ExyxlvuChl8EzoRsmmcxkTfp33gQJrboNgVVGS2jVubnjF+evkFfm4GFcUK1lOT89b+78/+G5iBP7j9Hn7/6XcBAt7R1/jrx7/Dnz79Ib5/fA/7Tnj38B7//J0fyTYlPUqBekDN4LTwILJ9dCnUxxAHRRpypwEk3gqAeaRQ48WV5Ikt3NTx/ebr4zDaUImXIWkwxYMzysS0GSZ/KmosQ2RkEjKkhl/MLXyWVuwZpbrRS7US8gjWxCEa+ujAGBWqMgAbDFnuyfvUJLa24eXhkHPTrhv+4dN/EmWAGjbaVVgpQ/O0/LKUGkqIdQYhD4uyklCFMp3SA554G6kSSmh7K8L6/KvFLcu5ZBaOcl47s6KEPIweepQsR7FjyRkeQTMIIa+okoELRoSxMrMzi8xomBk47k+JWZHkCY85HCzeGV0F7JS+9/5Zv2etW7915Ve4hKJTGHsEn/Lp27i3/hIStZ/76GVyJ4Lh2OKV7++avg5lbH6TVS/rxzQnZ8F2lrvF8AIsFDNCx0w5yHicDbgYcx942F4Y6xugKyKTEeh+jIK6GuhbvIjazNBzGx8eLvjk7Rtctl32vOhB9DwGXm4v+PD0jJebhkLccbRokylFDSeUBu/LdKb2Qq3g7iVz1Bwwtjl8tUpm9xlHq1WW+CZa4bRpeDbwVnXm+/gm+iLjMqUGPvU4FMAgpVijyM6gLAvcG072Tuc613Bn5qwkZbhkEKJK8u9X3o2hiRfa5prYBB/XTxmy8DfgWS6JqDiRMhZc9XP8VUI7491wNpd9PZTWx2hBx9nWtTkVoWQ0QRoIEEV6xG5iDrlmMBYd4Q5bdFmu/UCm29TnTE8hy72WNM+kbOFzqfrg9ymMOdOA9UM1m9gj56/BrOYgn0etyG6VEw6tG/f5UHEKRX2IEdaPDqLbfbrI/U/47l2dw4ZYxYKfIQgKueUym1Odlab8vc83KE+r/H/uuQ2qfJbm6dQXW7HqinOZl7FSDoyUgC6a8RxgEy35o9lxd7oYG0Tna1uTc1obAZcdG2nmQQxw7+jeaXXgIJw5NUWcQpxkmjtMYA4TobODrezA7XiexjOHULKjrY9I3GIqSEF7iNETbk6r+onfGw/eN3GUHINPeK2NJF7o+oDcGAcfSFE3rJRHguOuURI/vv4UP7r+VL5ngfEHn/wEP2w/BSwb5S302hCp0TkHk0LniMg7Y2z6j9sY03xlBmhMPBburInIVq2XVhrzgrGm66Mx2gB4Dw0ZsYoAwD1UYZmS8cVMcco8wEAvg53qQipP5EcvWWg3q6E01BKWpeZRkgbYX5tTEqY4PGTR+9IatomTqg0AACAASURBVK3hl4+/Bl8Gtm3DV4/v8PX1vQhw2hxeMzgtKcnwUMsCcVxU/iQmiOmD8JSxEX0mN9JDtiloErBVo0mJ0/+1YnDJR5TK+WqLLvVn0qzm3SRAkiKtoFVxOgtpiLE2k/5MF7PBNdeVpy5PzoDXLp7gLy2kyR42U9COK0saqhVaCqdayO/tdUv3ohylFSLOdVcGJb+Tgpven1bocnk2FjrjNeHB2uUEfciNE+4zUKuVsbzSdO/Kym5R1SaNyJh8wdMkMARGXtS96Kv+3TbC9eGKT95ISCQAkJ6PxMy4HTd8eHrBy8sRq/mTLlLaMnpJyumrcMzfl3fSZ8v2WIQjdPRNO/Y+0+n7fL96Z3WEUU3L7wP/7Pf3Vv7udrY4P4If5W6k3pRfbHWoymP7Ttgz+3AqG6vnjar7hFnCY1gVg3vajpB7pcvSnQpsrYOzggqRAYMixBj3aJ/qPJsamZ1H2aiKMvmb9fiT/8vLslI+ShPlB3OnOT1KK7uYi3HiXZkPZR1B6uAYcVeOoiRP86187AZpPMl1RRsVbnnJcx+5SodoV56bcVXD47gkS3O5OxjQI1okw7U4eBwnzgyUwjnOPWXrl8v+6SJCPtcPub7aRVWvXpF5URo226IfecWOY/5l/N7l9yFMSGV04khI2mKC/Q5NGhAz0K/wWjeUFlOaGThYxoi4Q+0J0AuDNfSmHwPH7SbJOCBRLZd9BzbZAUUF5MqLHGi2GbfYoG/zuPCFqb+cy5Zpd6/Tr4nfxadiCBKAQw2bgRYyyNtXgMic/XFcTvA+73L0mGtbM5wrjUFQIvvQhnfaIgaaz8mmimZemSRFFDWjt9CFVNk9gbTtW41Oaw2k6f8lZJsQ67aARySZl+uE0/P1kRhtCUyGhJ+AZQ9bkTMLAZRGaRCDRjAHZ5rGhHN1/kyYmRlcXbMtRpZH+yALATHQAGWmqR2BDcBO+MF3foRta2jbhq8e3okBQ6HAEKDG2SgrcxiJ2XPAb00s51FFYSrLbqgZKRruxGCEcX9gZEU+K2WGM8WVCsyzfjWZThRPqkde25lxfPcK0WrL2E7nC2NN2pvgmgRNDRvTsBdVLvIqmU1wqTuJ1pRVzL4LSIPx5DCyiZgBWIyzYqTJamdONhJ9KeK//D4pXmmMjQc5FEUpq3XE+4ynRAv+74yPDJcx5PRFwkMYERXm1GIRujyVq3R5FvgBL89EkFtw2ILhJxUjGRiZzn1MseFyaXh4uODxesW+7ciMaIyOp5cXPD+94KYJRxKJRH00gZgm95n3GCDfxNLPva2GfKX91yTzvbDJvOoxl5+Nu3v1VQX3tT6punSnCN/5fNJRDPCgG1WyrMSsIEkYYssUJquTQw8msQE1ZZTT10m25HngKZCdfwXgQgtm4Cg1MUTEm0A/8TT43K+eXQvb5mk+p3mlPy2cu+hTqfw8zrMhPmP7HjXN9ds45NCi/H2MU+KrPFIdHKVNgS8yaQVJDpdVw33itfecVyYV8hYODbICZerh2Cece2YKWkCWZJo/13pamh9KY+z6BkDUXWHM4bgiixoIsr+dTU6Zw9t7kvpr9Jjg9JJZaGg9lMbsfEWfaMZ/mqjscnbm3zon6TwOlnCl4i+Fr2psVnYWCC4nGiPjUyG789iYMn+Pp9jkZMUL6RgwANKkL02zxPbeQdwAlkOjb7dDj3hSnOoRDEXH4sCHPLeELRY6mBO43GOK6Y8zpUq9CUWnaeL6jzFdjufktVAqm8adSHToY7gRyVCjiCc2phPd5aHxPXDdDqU/Mo/2eXyqMGGHavdsj2IfktWRIQd0U9P/ADQ9B1nsAbELaGuStMeMNEqY5+BX1k7bxCCX4wVk7jZ93ojB6nbnIUdzyHaHTbK7Jnzcuz4So40TNwdoqIfCMQIdfD09fAR3LklykmQYlPYXcSKxRAudB/iw1PixomWZ/EyBM2PKwx4BeEyZldkY+77jF5/8Gr98/BWwNfRLxFkSElFqff3WT+n4T+zwJHtin81YMM9QFqpXkugccEcJh5r3Z6mMUcIjIOGQgicxlNsiLNEZbHpmfHtA0qcuhfvMQPK9yp8qz2oBC2c5G1r2XcRFh9EYYVzBmCNcYQ2b1Z9CReMxjHBbCyVN2smFFWavPzMd9jrqN1FGBIYhwhGygDW1dkf5y99UxWp+eH5XxyhWPc/hdpye3RP8NcAmVVvLcMZlwgklwVfuXwndzfjVfo2kK+dWCEDbGG8fr3h4eFCPWl0N//B0w/sPT2Vf5NzbeaUqVJEYn1iJTfB9y2sOz5DffPrtDqSFQXdfOVu/e20V7X5dGbPlCyXrNcy2B9eFg+IxlLi4ZL8mdDHBJiOl78NNEyud8tz3ziLxW2Y9pBeoikLtB2tzBp7hZSD4xskpIB0ElL6Zs4oUr7MsK1grxrDVb0p/Xm2299VbnPl1dlI1PeDWDPMcZjrDMs/uOZQ5X5n3nPCQ6gfbmYRWX+KLNk2yJlW/dsiKc4bDVAmOAf+V4X4t+oK1kPNj6LxyHCclxuGxca1hvAFPlT+zEdMo6DliVhhgMegaWW8yHwiKt5qSNEy0Ee3YCp2zbMrhkvMGwxj5cDtneRwRPpUGY8Lauosbb1MLKprjNjXjM5EynnPZLFli5axKBuHndsxONMtIxOGN295oUnyPIRkCQ5c4pMxGuDw8oGkklrEYArA3xCJB5l0sTt3LvuPoA0cPfbLoE5TGlBvcOYSYzB79pUQm9J9533wFX3OeYtU5DURpqZYk3M/S8id+OZcvirj+ydwz+DBLzgiGrFoRFYhDRpy4ZIwN7Jw++a61BuySDfX2ciASq0D2cWpmTGKNtDs6eAO2ndCQHTKcuyjtHJLjYtwObJq9lSCHexM3SeoDViOwYd8a+mDdE65J2xaZpPP1kRhtqCNGZpjpKxtRcLAJlaYaNTBVBA8FkLLyZhBjHB1gSSJiGc1WDBU8JP5Y97MZIE6cO+HlckPbNuwb8Fff/XtA04TKXOgBDovwH6NrnPgdVneaPVkhsCdUJRyzbow3ZQRC3Gkm+8oLCU7aJICazcmJB8eeFL1XfuaO38xd7iiVs4fSVsrO38yezBkOAcAUpzAMzq3RAm9AKA2sY8LG9NBcdNbwxfTcG4sELFK7GNGy+Tx7tmdh6WuY3ifn0JPHPb67Z7Bl3Nj7oImTbLH+QPetTaipin0Bx8ffVRBOQnHSGldK2Wykrb+pSsXMgM+OhAzwmEbbcJphl0evHI9ygntukhWOh8uOx0/e4Hq5wNZhmEXovhwHnj4843a7pVWc9bVeBZEV4bMCfF9hrGrfeh7eC3PM99XJwejD4vojtHT+/l4o4yrc9Z7RFvsgZrpJfwmYP8+KbhaeLkIKAFBBy34oKyEdFD7SuoCWs8xjgERdxL4WlTuD3XscbWRuJ0yyBqLHyvHMK9wQYYgjyti8tjmcvwRfWaGfkqe20NHE3AtNjDz2QYMGI+nZfr13/872hgaZWx0Z/0q9Wu9rToDcKRNljbLRrHTYCBvPK/DZOx3zv2i/wRQStC7tA18UOM/7r1y99Smme4s415aVOMOHdEZIKNEsn6W7OxwVXkIT45g4vnVkEajZ3DWQkoFPgQLBpynyXNtNylOEhtqXIY0tT0BOp24reg6PKgfVeRMtlhBDBbywfZfBI+kLr1ypI2GOT3gtLJF9jDGV9RXJNGfX7U081rqTDPOzHGSgScbBRvvEzAiHxf7ZAeUJZ2MAL7cj6cDeTPA8R6kY+qH76flhGedgn1/FKZvgAQBqsiokB7QbURtjSbRVcBN1+J4trdGySINW+Kl6gFMfM7h33I6OwcC+E7YtmWxUx8mqDRVOabgRGsfCi1XQGoH2ht7hUXZ9DFAnDCJcLzvaptuXKDLMG08j7484SazxwZpJvr+AgTh8ewPGod9ujH3bQLThsgMgW32r0Sqr6+Mw2owL6A2nML0Q2qzheVQHxumIHYnW6Qg9tEPtIi1+YvfwZdyUQt8oW6q0tKEN7x7fo186bpcDP3nz81BoVMFnsKacF+SPwf67KKZ3FJ56vaIUuYYRMEaMLi0/dQXNXruAgeO02vgRbuYYi3lb5mn2MBaP/tSdORzejD9j7vO+CyQ6MGNxyTz1myzUos+hOBjkbqwxAzx0v8hIZRSeXBslRUafBvzzRKvwxZkogafzJeEs1SDGdO9iOX2TYSWHc26nQhgKxHl1JRREV0JSXTmEw+rIddoXxZxIjZ/DuRK81tqSDioObSO17dvIK8+TyFzgMGDP/VgpxkTKeC873r55wH59kHmiHx5j4Pn5Rc4wOnpdYVvwX+MDBPjZXU7bQJkDZ9irgLP9APk6zcHUp9cMKCsr7PBMP6uy956vwuqyQ8T4St4Hl8fX++iKP/wbrxOZfhRPp5rSrDey0vli6fyjbMbZUOUt7TdSXsJsKZ/TfOBozVZZOMmqYUdfLLwBmfKzkSBTnVzhMRjXqz7sbceVs97NToLAXRxXUMd0FQbrziZEuvD6br7OylktZitU0S9pN7ASa1bzPHAzoM6JExhUKGyGzTmMAhdsIhm6bsSz/t+8l8Gzgx4NL0pZ+Xe5OBRs11k8vZ4o4M72ooPmHHBZz6zHHyXZ7jAr/kgS2LgjpuWd0TG33ADMmKkg6qu8Ehh4nKhFWw9DtKK/EgP53qckdKL6aKAwbPh8xlRs7gZDzjgzWFy6c+1HrWNyOq/mUfrlZrOd9ebfyhgsrwVajGRY2yy6ltVr4xKUCR/RzGuK7LVHdaJwfkkE6pKPz2fOnT6fOXd6QeQLAgAlx4MZzxNv8H9Uz4fQ9bY1CS+0sGHXuZF0/tyHcJAzQQ/1Vueuhg8TSEIit4ZtG46z0NEZQ+lxllFm4AEkZ7A9bLjuF+ybjnM/8Hw78KIhorZARHRgaw3bvqER0AnYWvxW8CIs9c71cRhtOAsLZg6Zo4xEskP6fJhpXQ2k7kk8OBlMaeb6JPDQxGSFZ3SJoraBd+Ann/wMrTV88fAVXrYbAELDVqjWDrbWw7fC+Cvux/OA5AnDWAiPKFQUc1cQkkKW+5jL1tryFDO86CSxTwiuDjKShyIJDxuT+coC1AWYM9cQwTP/JZgQ1Pq9XwluR6ezLjdaArthZLoxwBqrnjBBijPGhJ9kSdbsPoZLu4tjBSwEydPVJzzXew6S4FRXUtSjjjm+Od+EsM1vcj3ZEPB9H9OVld545iqS17ySNyY0IlrZxoO1fTrBVRU7W3GwrE7nFZOiqKdxzl52nstNfTPFhlKljFCsSDsj+CIfFzPWAODhesGbN2/EO5ZgP/qBl5cXPD29oB8HjB7X8nkKvzrBGjDO3mp7Nu+DWo9qvLfx+MZVjgRjhum1UMmYZZPw9fkwjxXS/TTeKhidn7Eco1KdCLVvlUYM9jpHJDJhqMKW+DBHeeO3VTNSAXyCe+6tyRbC7PKSKuRdQ4oS8I4oBnX5W3AmfCREhdLuxMeNLuw8eaOfKkcnfFGmzVDzosw81nXVt77L++aCR8zOhRxiWPmgl1L4qSC2tjvx8tSxCIHO9VVZRYnR5i/t+/w8jyY4rTKkdm21SIyf6CezSTdh4DUUsPJ3xw9imKWEpfRn5AjUoH9OglM7Tg6V6CFc+YbJOc3er3Uz8vExzKzHLiUea30+zV/AskZanXVE4DzZ8Lxkh4YEG58sx7M8qCKj/M6reIYFQqKRE9vKBo71N9NAjVuwDseMCAWAqFbveCwdDh6U9UAZwknHA8OOB/K6dZhJXmHzFbB8LNDUTdclrb3ocQYvB9YuwPA3GTsx9RIWMz4yzenDYYYWbLxC9uZxsEoIDdTEHUn75ostQVOJPrx9lRNQd5KdbQzBE5dw13TWMQOwFP0E3VrUXB8t+obCMMZAP9RhvMsq2vW647JJH59fBvglvsm4P0bH0TuIGtpG2Lcd+6VhaxpKmQXbneujMdpWukc20HI5wYMw1N4Zo8uekjHs4OrqTXYmklJx50N6GwCz3rdG2PYdXzx+iZ+//QW2bQM34P3+wRmBnBzGsJCR0Ydmekyraa6wJs688pjYpEwokKQk8tuPOzYhQFVoeV0LxTYQOylVtictTVuBh+pniSGaEpZLry9jGLKv0HHgma+sp3asAzxmfphygvOKm2RyU0UqKR5usKXZX/ZbpO77YdVaQV49DIXMPsj4rIrOjINwChCIanpyhq1cJDIAYIeHmjFRjCaI08GW4Kunp15nmRp7V+yrLPey4kSL58wV0lC+YzxOypmVn4RuMFh7X889M5+G1XluE15XDmWugqfCv9AxEKJCy/g+Q3naWinqSo8IzobH6463bx+wNcJxSHKR3mUF/xgDvR84jkVGr4JvgdjJz/FkPXllRq2UpmX9tXxWmr7tNRucr63SFV42v3vFSIzwnVhRyXXU8MHKv7jMl6yyhVrlOQs0zLDM+cSfS7+NG5IqWJm6/Kf+IIDahlhhS3MDNoeUVwfViROAQnH2QKx05h4tYCOiEtprCouwhcqNynxw5wSX3UeCA0toUCTPhOs0dxdyJJSR9VhXelgWga9IvnqdJ3WBWvnr3YhkJ2oOsAnIm6P8U6JIguBwc8jokWkz7QHzYWMr7rXOCmDpvekMrHxpKsMmfKycgtzUWs9qr8nnofiqSftEBjs1SvY1lQ3k04ULLbQ0wzJkE43kd85zzjDbHDCclApmGfiqk6nqBlVG6/tJjMuYhGwWmDMP1h+1I+n5LPtjJd1hoLRix7kWbSfVfQ55Dw7Wmeue/wTKGDydMToXKsw74Leeuy4x6zGKsMKzqtPG2JT3iaN3rMdTWXyC8dAGSfxBRICulHFrurWYJQQSejSyTqLLZcdl22RFS+VsH9A8Fwqt6oOSt4KdV8m7jp02XB8esBGh9wNt28G94+l2Q9czIQz6fSfs+wMASRZj6mMYbGWYJEHVbtQkDpCXW8cxCG0wnp5f8Pxy+OHrMT+0ogEwdYwBHLcD9CIJafZ9x+WyFR1pdX00Rpt7r4wgdbYH4bIPDkPS+Y9b9zPT2BQtZY9E0CXMWAGbk340AMc+QJsYav/82Y/x9fVrtLZhEMt5Hvzi7kzWhjoOjEOWXK2Nu1JpYizLogxAswgOOxslSV8/SHeloXmdquzOzAZngTH/Loab8ptB8Ill6UtXxuIgRj5K8KRQKhOfmTdUOYcKCuHd5EpPIXIb1cSDqtFgfUpC1NuoYnAwuyHkxpYLGiQcZ2UFMC96YWiOu9y5UI8m1csFeTLnlXWe8do8NKey1gCRfPNyKP5WI/kHJ1KbBEcWnnEfiqa0l5QLaCy4MUvAz7QKkiUtZ8I3vm+m3aTECAZXGI5VPcjzlsDaXuAQiDYCrxV+/z7RTl7xmNiq4GfIfpLbbeDzL24Aa5bZCamzgrGapisYKBXmeLAsX+jAvi9lZkM3cD/DUVfxZtjnduvzutpHJxi8L+lZdpBlT6LAGPNpHVaa8cGlX5zGPJiNriiIFgzhPax8rKUZy4XmbBWeCJH1a9g5VQJz5XNB8EShBIQjSHlb8rBXXmSKWyg/Tfc12D+xMmh8McYz/+u/XHZi+g7opqSFYHH+kFhAwkfMWSIbR14+j2pX86CGxRZ6ZNaQserYyv3xuknD/xRdOcFf5j25bxMgcCOtzKfzHMkyQLhqKqvOHBBpindA9pwBsgcNaL7XzNqzMZYexoHJaS4br1zpEcx+Xh8gOgKrwpqlEYE9BI9ZjiralKZsrATdshVAdC2Gr+wW/BnOAj15fHDCOTtFK8gZ/GrQqj4jBnCtY0mMiSrkV+x5MzgsFL/0I9M6bDR1lnJSps2YzWQ6tRt4sY4HcUr7VIvy+evaU/b5aTpQdvCcDfz0nUWcgZeOCqOBusJMp3Gs3STftnvSB5V/dmbQGLpyVaM+mvfBKwQz48bs3pTepUIaQyNYLEqG9Whk8rwPL42wGXhNj2dJWaFszrfWNKQ48abBOI6O9x9ecL02XC9XPG4H2pUA7Hg/DvgAEaOhYcPAfr3iYdvwoqGNo9gLpP9nyRnRgE31pefnZxBuiOiDAU44nFmj8WQwO90e/cBxdDw/p+MC7lwfh9FWhFn6rRkdB0EOtu7d94iBOYVlQe8z0cihhlVhEOF82264XW/YLjv+/rN/kk2iyTDqpCtdNul7HAHAmhLUQyy/YVKY98uX4BO82cE4eplGAg/lKQDPCllQt1C85uu0CM8WupaWf62MeZSm89kyDov3hSuMLoDNO4hQaJDAZw4Du4ieLAz8I1kqByQNKyfFD0jMaUptXHGQWiEguVOUF2cFiFQE8RIHAueEN5jRHEwvIDh/73hczE9b2axiMvs847kJ42qIZFpzqVYMtvwtVBBUL2jUEQ4Ro/kU+ugKqXmgw0uUDwG28nZ2UFbmVs4AUwJtpcD7TbVvzFZXwGww1rrsdxoVSkbHNJ9lrhPAHTeN/2k2vlTrjTlufUVRQjNPkvLjZHRZfWt+Pc/FMF5mI8zgWTk4anuzwvT6ZasLBWeprjyer9RS+i1GQB2fMMrW33o5V3ryfM+hclnRSiOgEpMA3ceqb6Y5IorsmoYsDMr5uq9OSyGjE/uOeXjijswfZvjyvBN70Qy+ebVbD+q2qat0E6paZqKpHQA121RSLNK4LJ1zC+3QcUe2ZhgcyuaSraS60yYnz0h98zmVFit8BGd4fHw5jVe8rIZkkkUun9mrIC9oNFKV50KgOqczo0wYjH+NJ6VXVPoZEiZrdJTp1Mbcno2ISrEjBYrs5Ay5EgUThh30m+ZVI8GRrUgLLO00FwG4gWXV2iHe4SDLMgpwx196TPZMvxkW67bkdYjpyNPDwlFtDDKtFymPqnl5j/TfNAfYJVt6E99JEhYz7KqMMT40YE6dUMSl+qDFxL1LPxeTNfA4D4h3scz21DfWKXnmKzO668hN1Wu/t9awbYxD7RxsDbsSylC+13uXA75zZapTE4B2iXDDtjVHRiPZY1giCUx2uf64kreRp6JtBOIN1sMxeqyAMf5/5t51SZIlOQ/7PDKrunvmHC0XC2IBGLgAIQAkQJA/pPd/CRkkmUiClABiAS5tAe7lzHRXZYbrR/jl88isnrOimWxyz/ZUVcbFw8Pv4RGBbVfsukH7gr139H2PUygBO+hl2/B223DdbljbYnvQPGg7aC3NqsxgcnxprMIa7ajxEs6fmIci2+GMhe1BPX++DqfNJLx7ybCDPHxv2t73encZbHwYRhUAoI9IwBziaW3ct7MsC3728t+gq+Dz5RX//ekXGJNBR7Y7HH0+QETr8fomaJP5TCF49EYOYHglg9k+uyC2/gViubgn0uyEeVN3ZPnijBnhpyhnQYv4PP8u0uIeurl8guOKJsF7GCAg6cDGh7pTN4+PGdYa8GgK6DevV+mCnC3/jccg9JuWAhXkCG1KDM4jkmfMGCsBRWQzBPVJZ7/OS8pjN8hPOvM+2TAo7VYxHv/GUOZVPLFIb601K/FUMDVVtipwho8V7fibdz1PpqscaWqC/tRRqfUZEWYwPghqJN0mj5dVv4DcLp2fDMHoJhwkMrCsTAkqEU6GInIBbw7wicF0/tRCFW7WnK4QzsfLv1XH7xyOOV15xtcMlwjixMOzMbw/Vinwnr0fgbs8qnnuu/Q2N8EF2JoC4wTD/nH5QtaDDgVltnlSSh4iRLQAHOiVAz3+Tzp6bnRpyG61E9zc+Mr0VzLKSA7WVVEEfIy/M/yw8zSjiVNXCyqjgffMv6PhxQ4qt9beyQyqOlVPPk/ZDOJ2UOIZqMHSYvALMkWQDMcsZmPSikvFUBXuDEFtW0PYCdQmAFpcRgEtxqDwE0R53GzsTex4sBmElvN4VZj7igCMGeBOY4/oaNguQB7Yxbii1hXFaYCjkpSvsw3r6oJVgm3gWHBmiQgFG6OfmcYCf1zQy3nPlSgmaWf/eQCR8GOkn+nu1c4YtOAtWYo0xGQIaPTc+6Cji93rBYWdPt6xB22NjJOw9kjWzjof1H8OnwCU/F7qdIVIx/P1ivYy0vZaGxkIr5/f8PZ2x2YOePGdm4zTEltDW0bqX06Iw2s4NnwF21uAIc6tMAcN5Nj5/cIHzaCK3hc4VYUN3/uAUwTaFjuAinE0Zu/trePmZ8W7XmC0KeltOVKNY/HU/iRe7tO73/T5Opw2wI7I7OPywV4dJR9gc8UB2N0Nmsa8E41hZ1kWrEvD2/Mdf/fxp5Cl4ZeXX6HHhZjHI5zVTppUHcxxml4EkIJUmg2kfFAUwZ4qRVOAijlo/k6Iac6eo/V3QjT5+A3vGkCNUYsIuh9D7PA7g7RcOQv1Nxk1RxvK54TmwOuNPKVTwlSkAZAHyxwNcgXGCiMbJY5fN6zI+FEakuOnMA8eMAohUynCnRVSc2ashdnPcaMhBMJAn7oZzXCM0v96NJWMvwLxMZ0w6QdRJlZFylhTaQh4ThVaVlXZMDszumm8OegZCITDS1pA2EuOap6HnuXSiGSMebRfsCxzfDe7P4mtxON3F7Hx243fTx1kx1UcyFOFbwQRBMNg1xOYclgBTN7RVUuznXPmq8xGdR3pjBFebWMuIMOi9C2F3ub0lwrrY1WTq7H+52z1K42cUISq05grXx1xkxFakbq69aied3ieRkoq1+6/YmfGIYpUXZb7QDjeUESKf3eDw+W8FzD5ERflhgNvTcbBJC0MhKH7jnPs8AkQhyIVrnd5qDMeHBe1Dqcda4ydaaGuliYczuP+U+VlII3rs8BAdTBnMFmaJ+2UvR+qKHeW+XiD15GBKaXWhHE0S8u8TiRpYHLi/ZTLUBdDtrbYkJ+nEoejMjl9VUHYPX7WfuAzSOehBqNymmUj6EBZECxrzdH0i+NjLAqyVZLn5pXQkBnsKQUNMD6TeZMXGI+G20lhJq6n8Z/QD1xW+8SeEVpFFFyfR/AOvMVUDHKJcgSVDdfpzbOEqLwi9niNcWU4V/2Yfy9IOBQA11VwvbRxumATdN1wvwOvbxoBZvlU/QAAIABJREFUdb++pyYlJuSMOrYhuNCZzgqZ1hr63vF6u+N6BS6LQnfgvu24bXtkPI20XBRbT5qg2WXjfGpk7wMjmkxn+9qcDsehTX6S6Hbv2Lc9Li4vgYB5pGKn+sLmdNG472/MkZ04rZk551laft5FvULM52rQlsKDzhZEEMBtvXGf3gJRNefa6EELxkerJHiYm2X699HzVThtvXe8vd2DaN1ZC0FpEzgO/dgPl0r7ClVbFqyXBcvS8B+/+c/4fH0DmuLe9iCKQVg2UXZvW6RcIlTXCa/rmaxwAEi65G9JMMk2gkHQQ/6cTA85b2d9CZVLohgtn6aRkCApjpKrHzZgFCWKdiw3KWawsHQU5ErCexdjcfQvZDHI8CJKnuc7N7seh5vtpYMfETE3GrzsGcekuVIcyGw7c467suslNUpJeIvfpDob8yqjr5IeravZYJrGTfoSULvQ24wH+DRUYZ31OFI5nWymGils53OfRgpcEIcKqWlaxXGg8TL8PLaib4nvxqWyll4Y43Re8P7ZEDqqstFu0vn7G38pTYUUNLceQXFWKGSTIKr6CYK+unY0Ah7aGGfvvyDded4Kn2p957/P6Zc5xprwOzszXFIPY0gjP1eIDOd+DHOhX4crZVNrdaApK/J3P6lXaKnm3MH1CH4P+TCMiLGKLmGE+hgHLM14q+xvdr6ntuOob99n0egaFpdH8JSrlnSiiac4veyAM8cNMktDfEwuPV13OV/XOXvk9M9yJViv8OqkdwN2bvSMpjMNtgRH3Gk1meqJZQywOwU5VkNztEsCAwPvIkwbru8cJzZHbmBWlV2ll+PR2necN95MBtJf5nA1GSsyHjCNvYosm9QdFBduSTsJzGM7pPZu6GoS2+cSV2JBT6NJEajQzmsDXmxccZdVHV2xI+K7kAwPPKHwBsNb9OPUh2uHXXvQ/7xC6M7Nqf4OytG4Fgp+x1j0JfBR+Deud3gkupxKcP25bgZgUuPldgL1eeC6U3qmQMeZCV2xXxRoDU06mgDNlh2GLrE+zjwvzUUPD1SGDjBnawQWbN5CNtWES8i4x+zz5zs+21yqOSViGWyqY/Vtlz7mtbdxIbUC69LGPZik7/q+oeuO1ta4bgT7qOupgYqxB3nfd9y3DdIWrNdLOG7nurMGBMQMoCgpvl95KfvkVRWtK7Ztw7Ztdvj72FOnAwUxlxoKbs/eZawoPq0rlnbBvm+43TZsupszK/Bdox7T0AM1zaN5/HwVThuQdy4JgL03NGyhVPdtMwYm5pORStFXoF8Vyyq4XW74qw9/jbGaZIJJTbroiAaMU2563Fmyx2lQHGlngkiuLUGeE+03iEZIcHl1Vy5JbLHZsPJ7tvUATyx+4iykEJzsnM31JmEs/I9M77UyrzJGDJ+VtaMt9eiepqmXsnsS5Cx0p6NCayCOETp1GHUxjCTCIadOlZQUrivcGfWhKGk0AimnNg2HpQwgy+k4FzP3EtBYomuei2yHdMT0sFBHpTGG6UzZEZyeSuHC3uV4jfkgjFV26ADaSyG5gjIlOuKI9GlkJHCHsSpn7BTtu1EkyBSJVEInytMQ5ClmLi/8FV8ILIWps27gWoBymiCLhImUz+CvTyqVagz/f3vUEm0m4E/g4FU0hEMgMg4JUcIH1aJPxz14aTCfG5ZF1Ej2GypLZ6ydE0CsftlUeqRzvJvSbCgwMAeW0nHqlraJJCwA5Y7LUangxPdvjCKsL0zqapbl8XPqrf+v926Ltx7ttUNQ3LjqNR3fYeudLh1WXxXwFZyGxS+jVjV5Pq/YJ8/4SMMQSWwR3vzQIceJHAJocCPmLKARSOhxH2GOSQBK0+7+m+HR9+w57Qp4HhGGaOCQfp/HOlbYUxa4/E/aSploE4KyBGF6RJYqIwGul2/8GP2U6enAqfYx7Bi7K1cNPRaBAw8AeCDNT2JhCBjMjlg5G/VSxpQAGlw0a+BpzvSJXnxOxNL6Zr0Sw/QsEXpr/FQM1FmXS+LMB+kiOeFMnYNpHD7dou1036XDONN56GD11j3wQeOPfnicBWz4i6OJ4s5hpQNug7R5abz3jk3tcI77PWUGACwCaIOGIxEICtxXveyygMZicPTxJ9Wyz1U2WcYYK/2tDYfGGr2sDX0f5bqd3r53xb7fsWEEp1oTuy5HsW8b9l2hckdbVixrw6U13KG4bxv6Xq/gEsFYVtx3tH0f/Nhc90mBtC3NUw7yDdH2kPv9oHeXRSBygTRzOHsfAQQFREd2D6RhWcROnx9z0owm7287fr19xrIuWG134yqDJnc+eYhnmkE4I90Hz1fjtPmz9w7tGzY/9p4G1myyfvH8a+hFsSwNv3z6Ff7x+gu4ERkKAKkw3eHb1ZZLdbw7KCB6whgAUA64EKWjcdOgCHlSpOhgBDlEiun7OzbbnCo4f4/4nYjlH/t+KoFKpjJkMHKCI0SXK1f7I1XQxqsifH1jvTtnD6KC0yC93cRt6NIy36Wt4NwHDwmd6adjW6Ts6ZdRjoGKjxOOor3Z6LRSBySkQ5Ij16mEl6sCyA2uNErqBtdDsInBkfqKGw17ZFYyp9Ik1BKVnAX6+08oDDn+zvu53IkczsTciNk0VlaVjiAOo0PSDmpGo3SpY0lzm2EnHnEejgW4E6Tz5b+818GVRE5NGkbnxH3AFmYaSABnutFD+ZkqD/tdPdrZe0Zei+FQNUmJY5Dzwzx0nFc3uI+8Nz9cJj8fRlEMdF95U9U4+vy9J+Wmz4XvMunM9GTY+Oidzgxn6mnH7khkhLwEymaCVyfLnuPYTc4qxp1EQgUJW4pKt0xCTpZjOJ7Sfc6pGZeiwEHgowZNQhSbY0yIzBuOonxqwuN8e72GekNmwpbzDdMnox0PwKvDqkc6czxUxQHEaYAG0GBnFzJZfjjClY81Tib0wxN8fm3ewbJKpjHPXM96UVMuBMysgwbcvEKYHG9/SxaEf659PNLF6seuuz3UWtEbfJeWNBl34kaB/Lfu+zW8y2PdW+v4vORUzCosWnB5rEo4Txxk0Sh4sG8CFslV0giMDMIKeIico1k35R5JF16zY2enjD04SOdBRncCwp8Asow9W3HPb+/YrWzTPODD56uK2JwTYx7qxWi5nLycDVT+5NVt5vkcsQfFh5NlRSRtFB2DAGQsjvTexyK3dui2j9U62bBeVuhlhUjDsqzmIBlM6uvvQ3e9yAU/3H4LUOAf1/+OO24Fl0qLP7MSOhNNI5uo26GHwz9oGNdVLaqxH7HvApGOjgWtLRYsyyBG147traPd9rGPj3StGhyRBo9Khw7dYOH3bIPxfBVOm6piu48jtTmPWkwTtEXwt9/8dNyMvjT809MvsbUem5bZ594x7m3LjYwaxM8R9seGdyrJ+RUrfhCyxzsSRByyQVU4xxRGkpyT4uQJzGi1ZGf+TBEmRaYInEU+T53Gok+1EDtrS470Hh6SIDl8CWVcikz9htDTOidR7BxNk8Ci9ljJUx1nZt4vqbMmeOQgsncOxIbWGRPOnDN1pWFDg5eMs8/dz9Psv52BmX0ZfI5HFrrgvhFGSRg0h/4lYKzzQEL/BFVHej/TVlWBzHuoqtGSdk6Rwx6o0Wguf6M2AMTulDwc5HyOy94qw6HP54iAd/g9XJ4ayiqw6wiGNkHktYPef/n5Urn33rshOeDmlXMf23n9M0qdZIrm6tKRPeoPjH+u/32e0fNEo+F0zf3kd56zHk53KtbYc1J4/SjjLDmpyDE2kBWm5BXw1ZJZthQWRNKQ44EPaZBCrwgabkFVvcAPw0fyo6/kAbB0bXUng4wKH1AzIcSyheUNgWCfB46cIlgEJo+PkqEDjb9YhTg8Tpe81yTnMDdMncnD+D7BMr6zLMlLxwFJ4xcurCXgLTKnZ/pfigibB7dN4hmnGR8Cn6iyjNPrxeaQ99alFRGjwgExpDQrzv11rqgyDvMwEg/oZnl3Zh0PkfkjLRyl6NjmcWRXsiaPkeXYGeSJRtSyaZhGyhDZVgEq8YBoWfLngLUoxtzTnyvPFb7yTSUuY/b9rC4JQgeq/SLRBfIkSa1zPmEkZIjQVHp7AfMkc/19GwsVqyq1mwhwXg1UFQD9o5Txl1VXyXlMUSEJK8t7zbGNNnocGrgD4yRHLElrqsDSTBeOkyNXGfcp3xdBv42tSds2TnlXaViXcRWADFKxFXg/MVXwLz79Pn60/RZUBB+vH/DWbvibl5/mHJOMHGNPxPuBTk77aun50hW6b+g6rglrgpGSaniMVX0Zp076VTCBZsFIFfVxC9BFYg996E4mOcyBFcUP7t/iR/cf4kvPV+G0AbDIIwDtkGXBuq5Yryv+yzd/j19dfo3P62uuWIkdr2oyzpXU1neoXcbHuopFwamvIckKHj3JYkUDHxA9dOWkeKfvcvKptpKAMuPHB5kVxrElYeAko2SP/A9X7jW1bXBoxG/cSJvKHlfhcoVJREqKxCNjLQQQITuMHhpKChtnknTQj3ioEa8h1GtBTws5pCWc6SL+MQwbTSkpTgHWZnxnrLLDau/iXifH9EQhMejjHJ7NZ9KKMYSQ0ZMkEQ6/YzKjPOcP2Z+nPeqEfRbwB4MIlRbcpkoF4rxJjlgZ88SVwRPpnLQmFVaTDb1u0wxjpcJqtAuPrmX9MdVqqb+uX9MwzoZHR3E9iPML2xOhUKpDx6lfM04DGBr3WVTZ4eTytd05vQkFMQMPzAjcxnl/A6Yz5skZHmXIOCCarP34HNQ+fZ6LYapET+yc2Hg9FV5pjpEzS7JG4PvPPCIgcamwYlyFQVFnX5VqmbYn0DhGmjHQiZBGf34QhBtgmQZI2zNtPM6lwzFsswPmx75LrjhLoxQxZUeRdByT60H+07sTHimyUtJJevxwemauTMXbQpds9I6x5fbEutJqNcYMUXoioHkHGIGbNUimndxQfLonnLDkGY3HFfv8NtsHh48imW3N1rbzgrUvQB5gQyc7DuMTdm+bB1KqwwCMPYIO35kKDtnvMtJYtjXXn7w/SAD0JFJERRo3C39/JfH5EQ3mM2WkkGz01JAQF8ELuTLr6acOtwdWNGwYckTDRCDdDWAx4hi3L+XesQKO1c30Ugl8Dxw4Z0uuLpNDwfRSUkWZDqKcfZDJpmAhA5/LTK+en9leq2SZsjeaFv4hce1NdwWaKjSuwjJetL1dcGjHBnS0RXBtCy6XdexxU2DfO97uN7zdN2gnGoLL+EEvkRaqAumKv9f/hm9u30DQ8O39Wzy1Ddv1b3FZGq7LwPhy6dC9QVVx2/ZxmbalKqoC2Hd0KPquETTTbRyC2A2XfpChifqh+5sfSKaBHz+fotG8RXDK5bLplTIFzEcAPu4f8Sef/ghPeqUJPn++CqdNoejXjmVtWNcLdBX81Q/+ryGQFlf6djFq79Bdx+XXm6L3ncwUBeHz2I/mRdDBzM58ClQdRFFrE6QVzRm1dAEgfnoVT1Zt8viQkXL6PJo/NhAe1S3NSAj4eEzwWyPRWWHyScnPBtzc95zO6dHFs3GEyJP63YZX9MM0NSnLwEI+lSn3UfyXULixxhRlGJ9i8HudKVEogMy+Dr366GiMaURxmYozb8Gti6z3yAHPXkcFmeCdAwqVQSbTo/BFimr/Pqqnk8EOE7fBTwpfUircj2nBXDHwjnJkx6cK+lGK9xoB2z5FxNwoIjQEDKrw4/3dNim9TnibU54dVx6x5rp+t9FhBI7j8pL48MRZevQbg8jzV+xC8flVglBKG0kPGmm07zrfB0viOI6Qse88zB8ofWZUlB0IXjHjxbN0pGgsZrRNjBC0J7pM4Jus7DrSzE2ptNYgFgn2A3pc3jenccmeRxrTMBhC7kiu/AHpHkpb8jxj1XKgytjK1MOikkkODzklEBkHFqh16RKgyOscIjxp0X8ffDrzc66MhH1Jf8Z4HpyiWx6eWwSeyFfOMtQf6yxO1/R0qQRe6VTho/wJmpYW+HFcz0GVatQmP+eeIYl3ldvndMmpXUJFdVizCeXxcfksMEbiNB90kHJu2CrHVf5TiSUUpLX2wnKndn3lau+Kvu9YpjGq2Mqen9qgORo3jDP9/5GMG3Pt6X864bv0p34KYeImg3jWVvQ/vkcrR0UOdMV2u+PWRwBnkYZ2WQAZ+6hV6VTJYpuoq5VAMK9p+r8uf+ZMpXbgTY00bG6Dg9ZeuNhL8SPR6wFrVnaa7hkVQv3N2VmO1a479m0f25isr6aKiwLd9WhLB+0uN7zdRyqjdEAbsPdxHVdb2nF8NoplWcJOQ9vxj/IL/Kf2X/DHbz/BgoYXueIvXv8Y//cP/w7P1xVLG/2yHr693dEV+Px2x9vbDd1tCxlhvGaO57b3oFftHT0c0CGDxfA7YGlwTHFqa6zO0QTEQoZg+AgCqLbICLnuz/i33/0rNLXMjUcTZ89X4bR9vrzh//i9/4BlWcZpLzbIoTDt6SOlwnNjte+Hzc1ffvIQ36E3JoOFjBs+slgmyk4hmek3RTB8CetnkAVTlJjQiamTK02n6Y72zO8Ck5J9SKe89VnRsRImhfEoMusoKeanC2QjzvMoEA1S5hf0m9+BpyfwcqcskMJYlKmcFiELLkbwPsYNQgAnPaUTmGlAPXunPQJlfgMBLipdsVmrwfg4PLPAdYcqWiyCX6ncGb0co3ThlMW8Vsujpt5OdUrJVNwccY23pMDIfiFnKvmrTv8DGMAnjkoYe71ED2qAxcM5edjDGZ07HqtBVJyJAw7lgI80BedAgNHAAyfu7Lfa9DyHJ9bj3JLSzJLxBGRKabQuDh/LwGonpxHm8sfaC2OQfkOlBcdVrMzEPt0xlrLPsayUJD48LU6kFXhn/BQcUzucwjdWbgftjP2RgmVZAVGsBm/f1RzK8V7VTj2z4/4X358CxWUZx79vezfDQtE3RW8jWHlZG273ewRFHLFDho4AGMygKEawpFz2/UhH8s2V7PQSBO65evHDSZ1Rl50k2w9ZjO1HMsr15LHVpJ/c6zTKnmfEHPhIfQXDxmMOGczAHsZ2R7O5CRyJjcFgYWiYtk9h8DLQcuJlOA+ub201jFdTQta7zeCGfNl/njaJ/5aiTIe1G3w5cFuujmBTxqeY5BZCT7HDKfDzJLsqsA36VKO90EE+X7vivm/weR3yuaFd1hiTmoF7uax4fr5gaWveQcu6tTzjcDmSHoWogtokd4Ts+4777Ybb7Y5d9xi3Z9w0zESp1HeV53vv2O/72J8kghWKdV3h213mlekMkjKevQ8/5Zp0FWGcy9WAugX/eVXe+NahbWEjJkRp2rCCDHfHISVUHzU6Dr8QZ2iKXNVB3+qy0nrvCtztgD8RjKulYM486Ton4Vidsn9Z/SgQcqwFLgSLKH6+/hP+mfwAP779NgDgsj3h6VdPg76WBU2At2XDZ/k0aHEf8mo3Q2KkWvYIjGnv6G3BsqZsXS8r1stlZFBYwEwt/bymGrt2GnzOB+c0AdZLwyKLneKtuG87YBfeiwIf7t/gz7/7MzQVvMkNn5fXgwyen6/CaWsixhywgx5NuNjJjnsfx4F2VUp9fBzVev85J1NnH8DvbBtMIQPAEPopQ+rR0hz1483eX+j6AYSe5ne2CqegA3vHL4KSkvh+2ykw2ZGLpuOjJhwOgys0H2OxDaQ2EA3pYZ6iDhm0Va1MLZIBzsLjMDbrx20THxK3x8N0ccai1OfYV239AsucDxbMWr7RkKdfjqt0k6g15egK+zi2ahSZCCa8RtBgEsbumNS9bGkYVMwc+4xTJNWVMxkfxIP+LxvWByPODQrNtAT60ZQA8ZIbEcRr81NxNuRFp/Yz5cL5yp88hjt+EYEd7WZGAam54vAd8ZU4qCsgdTxnOLf5mkWFHPthZ+iIh+jBWneDJ+kk9z9JtB1zoEe64O8cDT9Ph6xwjRUNjXmRUn6GeZTJfWcaTos6HNyFZF1/n3Q4nQIZs+58kLLMLQUPFhQnnmD3WHIDsG0b1jbuA7pvI4VKMQz4bVf0/T5ORtOxWvZme7fa0tAvVygUl8sK0Y7bvUffr2+vuL/ZvYGBnwXL2nC/97hfaDglOvZ+iIxT1FqLUx5Vx6Z4uP5qLe5Lapbf1/ce+s7vkvMACcuqlClTqE6WYcjYzEoc/FHlEcuFo1OXNKbk0APZxvjccSYXz1aMS98BnSLvSXMAtQILwLNk3lOjwzkLq4z/GfRSFF06fcG1zL42ZhHYyXuGE1Je7IAJ/OCQNP1HkIgCQGoaKXDpey+nPdsKjPRW12mxJhVFutMtXe3G4nrXQUfjmgEFmmKRcT9uyAoZTtXbTfDyvOB6uWBpHuzMJ3S/0Ui1brxvDmgqFjee1xXP1ytu9xveXm+43e/Y930YCaeTGdgbzoXt+9PeoW1BW9TO9DFe6t1S/qTIhySATJNOF0pKT16eV0tj3DaHIY8wVsydPti2S7vtMJngWWScImA61gRmnrIyHOBweoxAhmQwqynamvfGCRCOkBC+wn4i2mY+FEGktwQNa1Kki+ujDhkY/Wb/Bn/x3b8avxi9/rp9h5+v/wQA2KTjH64/C804htOCntXmt+kO7S5Xh2y9rg1tWQHtGIuwHlimIBhPhY2ttQHL2lY7NbPjft8gXbFDAdkBafjYP+C/Pv8MqopfLr/GP62/KKuvZ89X4bQpkBFqu+R6h4bT5pkhc+T3fYctI8KPVqR0ErDqEUSMaIbnorrhXmi/CO0z42o2y94ZPBVWcMrC+bPIdHeZkoIgQ/GxifcABhCDGSxVsaXAs24RaHEFoCk4Zt1IdhKygeiYoqMElDJ42a9ALcU1U1697ZxWrVg0hIRBW+bTjLpJ7BEmjsjKIRLeXLj5Mne2I6VeiJAHzpoefstl+Kx7Pr8cHa12AmxOlcrE/DDe36E/xrH/27sbPogJznka7ek0p8XRQfLj+D2N+IPTLzQuNsLo8RUztUDPiHovgyaKHEh+GaB5Z/P4E6FiMMRKP801O0YM/0H20HgPToZwqfztPC2R2qT2PJ076ODEIVPGXbR/HPtxZVZKOX7PJzsWB9b+uJxNp85XqmiVIMiEglZk9YcxIGkIqdY9ULPUcDqAyde2LFGmd6Dvd6s67h4SiN3HJSMCb5fC9r5jl0Gf4wCDZo5iw+UqWORieygoyyBw485Vg6rgyR3MDui6kHNhPCHNLqftECj2fRjh3TbU54pQx753bNsOwXDEBGOVb7GTG/dtw9030KtA7QjuRQSyLpBlBDHu2wbZ+0wC09wD9RAWCSY9rqDYXChC5tSVNTe9UhgzbToPe3oeAzbakpSHk2c4nLdIOqWpkPqvjPGkWjpKVYnRJk9yYKekSyvSgZNJRofIoHFKfnfDtfZa077hUKTaCxxKoJtxkbgNGcsNhSqcDFG1ezqDz60PW82QJflbgVy5IJmnXXG/beh239bHjx+x+HH1Yid9s7eN3FMsGIG0OO6A0SiuUcaKxuVywdoEl3vD623Ddt+CXyjMX+cIOlKEBePAD2m40J5IpTpOepUC/Pc82EzLvllana5GVuA4g09K5aRWmQZ/2JISsCQvUEeV/qjNR7ZD8GfBlwepJWlGBIKGpjUA6lJZAcuYY5U69zoCV60tUW+sJI5rA/IQoYGj5/6EP3r9Q3zTX2hI1K8twX7sH/Dh/gJA0Ns45CPKi+Lfv/x18pACbQGA1cY+4Ni3DW9dcLksuCwL1iZQGSnkDJsSjYWJhXFIC/oNW7Nsi94NF7bSrop/uPxsQC6++v7enbHj+SqcNsAuuYYZWKgXbJtcs5Lfs8UwANgwSgUPFl7myosM4evHeZ5aRgAJORL69C5H9T2egz1UJcOZAjmmiZw3nYI5hWIchkSeFCucwgD+7YzhfOix7KUVrmKAKf2WaQCPcZVzE4LR33A1ndQof9FJSD+on+OhaBUbFe6ECovvntWFF8irwUCqFIxha3ZympxOTQWbIChjn0bEd5Y9IoKYOko58guefQUrjXXCuGohxUBr9FmNCFf4sRqkaUrkH08zU0DdqUo4VT3g1p0lCz7PnFrHS9ljNGoAImiyPHCOSKXZRHTldk/wKQBURtq2MRJHxc6uCYpIdQE+FXYxkk46lIevsz0WU807dCI7lK2GhNNeXUmrKZ3nKZ613Sqhj22EMiOYVPPI9SingF8exPaOH+2vOM7jKKvlNz8GPy+xFiyxH23Htg1DUkSGwXe9ADpSpLb7K1Qbet8BWaAAliZY1guuVzuSGkBTM/bU6RpAV7RlvIsoFDBFzAWLH1wiCt/n0LEc5JNi3IPURIDWbeO7YFfNvZdxnDlw3zuWtqD3Edn17QS7KF4uTwBsjPuO1/sbdN/jwtqn52dc1wuWq1j9ezjZkyl2bkCHjGR+Q3GsMpiV4zsGBSLxrMhloiRyDMb8V7piOWwQ2dHjICcOREZsePErl+2pY9LaTX0jqPrP1oWEyqGyY7HltUoll+cpTw2CojJb4A/ql3pjyKe4ypcGmMOKtgNyY85ZfhV9Kh64Hqd5lxQuDlCx1qLx7nvH50+v2HvHtx8/YFlWNBxzKHy2u7W0FwfW4OyaaZQ60t4UgCwrrtJwuVxx3zZ89/kV+323BUet4zbe6d33yjZLrbY9VDwnxU455tqMAM8YZz/UUwB9pJwuC3bALjtXaOyLQsxtWD5GZvW+de45ASvzxAAzjcUrVzoU8KJiEm+0VnTW8MBsTAvRpR5XqllaFPsgaHW8e1oWXK+A4AmQcV/b6+0O3REyv2HBv/3uz3HVCzy7ogcPAIhAr2Nn6OrWgd/qPyCYFP/L/S+Dd3zcY5FiIO2vPv57/Jvv/tSCgUNee+BITY8Nm0Xxs+vP8bdPPyWcpwzau10YH9ajy7QJSTY3ohPeT56vwmlTVdxu90F8c0S6ylEcv8nJ7/NvElZhh6aFyAyzyGTQ2KspQj1BPvVVKoYSD5Denwtr8p02o9faUF22n5tLAg6Qi7NCfRbhREpoksGAGX/vMPejH1LcjHlI3qecZ7hPPGQKAAAgAElEQVTwCACn8SLhZSMAqBdgH8BwIZUpXtl/TT5ghZl9akRy3NiYoSv72CTxnqos96voVIbpKQ61saezgxodmki0htIJ4Khy5RWPgE6IISfJjrwlw8zbGgdqaPltfjKtjBRKPENF955C0mk39jHpMCDj/iQBmrCS0oC17mcbR/G7wSO+hEFmgfKARGIO/Td/TSdlM+rAuez+dBprKUxjzwASTnAS0KHOYfn1UO8oj46rcTM8x7pHZ6e+d/ri71Ofs+LXXGVm55BF4ShnvzujFACINoCQpRzoKA4BKk2P/kccfV2GJFmWBfu+4fPnz9DesVwueHp5xrKu2LY79m3Hvu/Y/Rg9CJbLBc/Xp5HS1YREZOVRP77e7BBcRNCFcCJmfCnGpbja48Rh1RFIWxqAbiO2Q3vG4Q5jT4UCENuUDwgWQ4YAwDr01tPzM3rfxh6NXfHd6yv2+4bPtxsEwF1uWNaGZWlY1guenz/ivt1wf9ug24ZPv/4Oy7rg+fkZT09XPD1d8Xq/4+3T64A1JP4JzRCNstM0r57D8QUFXYRIFJRG3Rx0Y6PvjMydV0S4rL2RnLPZDyguYVV59NsUMgsyofa0wu7Gf+80VIw6ubfLevOmZ6fQ3rN2NG5CYMhoSYA4bc9l26zDGU/8+FUooa90Hu9w6kZsYvCHNERLBI0FE4o2Defj7fMN2+2OZVnw8eMHPF8vpEfDtcqahSwo80Ux7i7j4NIQ0lAILpcrvhHg7e2O29sd2x45qKGceatH2DiTOTPzvNO+lvnQbIfw2+34+HGAkaDvdnG0zeBYRc9V7uPjgsPHX0ZqH5nmxrsy5a57uId4MdpnSpgtAy86cWd9T98BYgNJfArTqI5hPe/PQ2/fgD/7xz/Dy3LFIoK/vfw9frb+HCuuaKJ4lTc86xMuesGlX8CB9XDaAIulM92Q4pWUUQCw4DKoWHhlX+Ar7v/rp3+XMAeKhZrMfv/w9vt4XV7x88s/GpIauiRIIYWCxwynocySrjsj+8HzVThtANKIOnl13GNRqnkpIta6AuP7XKC5giIWqjnu7/B2Ty2rnIBD/wegg1i94rlBdVb1nXLHJYdq4Dxq8x1icIJpyFN8DGSwQom9ICRAizAIx+J9WB7BJwXEM1GSLcvhg5eU1Hv6zphNTqfR6FbV1Lu9qsoDWZbmI3AsJwLNOvQ9LJMUjs9p2HNaj6WAurMR/HDOMfMepOzBo6GV3nNPEDMACz42hAyt9q5JvjuiOuFzoy32vFklBcIR9g3fUL43CHEseuKZgASA2PcyzAcBRTDhThjhKsbtX1gNGR7k+KqO7yAJpn+znMgRM46T2kZdJchymQr3qI+T1qn/NMSOlDnTYa6SeUQ75WOmnzjx6ISHWXSl0ZgOdT8o18rG3WglDe2k0WGUaNBioCWME1h0tOHpehlkJg377Y7Xz68QKJbLBZfLBU9PT7aX7I6mim27Q6VhaeMuIVmuSQcgkugaCrfDabMPOm0CNw81BqbQcVkR1MdnVnITl3u+dNDtOH+r130TvMlIMX4x+TXE88DJdr/D85GkKf6nbz/ift/x6fOr3UHW0TFSM3G/YxPBhw8veMUbboKx182Ye7uPgyZerlfst23sEyoUk3Ihf3c+Zt1L82eyDELpQEVOJX1GeiQ7Hk5Pqtke0Zqv3M/BkpMY1cQxUt7Nb6TJOHgBlA7o+mMYEYNHmzlUToQxrDEnM6sVOYOz92dBDUeu89/4G26dtRFBPg+gaNpXJdhoc5CZxanPIsWbevOMhmYpvj7XIbsLnIoyIQCgHfs25Mh3333Ctq14fnrGZV0DpnRQLeNEFTuGjB/xkT6sFZMnfm/Wbqh2EbUsK56fR5DifrvhZqtuRL2B+7KSO4vEmJvcuza9DXzFMAG6dkGAJthuHbf7NlDSBJdVsCxFxKRN4Xhg/IdtIdRfysLD1YchE1nmZ+jFPx/HC8OOB+AyyyjG7zRDvBbBTkJZpC4L8Nyf8IP9m1G2N/zL158UfdFten58/z38Dn4PAuDT8hk/ffoH/N7bj/Fxf0FHr/LA/g1aAAFhcxuk6dkQ8Sr5YFb3ogl3dtYDawgnD/jU3vAmN8Dk60FPe9FJljniFMS/c58nz9fjtNFTjcOjJOXoOEdf7G3UiTQwl2amLDwdsEZnkcg9gan0iZz0dwcAMriMUdm4OBVqX3xO8FG45RHcVek4bLXlojGsgVq2tbyHKgXckYlG32TUleaUGGUee7aQapzdwBQyB8PBiOZ8cdPnbV7RO+JekDoWPlYzjlxbR0TSJSUPXPOD0jvt40Slo4Kz94ow8GeDRhnaQOkZ9K7oeRUrxwXUE+LSSZDSdxo8+d4VRLRFDig7rEdDI8dXn4kPNTc1D3iMbwQlsuXjzPY4KScAYMgKm9WV6fOovcNVgh0zIpmZpe5rc4PDrwyZwEonjOTO+ZMvRVIhnBqkDNP8a7lUurYxt5MGc34Pp97p6cSgrDBVwDgtrjVOrXXl6PSVUegj6kk2TOOeqcPx35ZlrDz1HSIN69qw7WN/2P2+4bpeoF2x7TuajM/Yu/HIuPhVlwFLW2Tc5aQws1EA7BlNVbU7uMT6tzcKoCV95jQOJ328Pkn1hpizRfpEGiDdq5ts0qA5R4t2xae3Vzu8q49DIwRYlzEXy/UKWVfc7zv2fcOuwHq9YJWxujfM4I7bba9BIOv4UVDzMAskf8bltDyHcizzoMUStLE5yEPLmqOc5sDwV+RGSgkFJhp0zUD6hO2PkvkgJJM0AwpuZ2A49cK4cifTyg2nasIhBTNmfLp5GavVxE/jq+2tM/tGrGC3d3l/WKrsMIuQK8mh5z1o6JNjcHuAIKSSi9LJIGXHvc5B4v5223C/33B7u+Pl+RnXpyfbR9oiyJ62BiwNeeAgzj1QxWzHOF11c+audj/Ysox9ddv9bnd2aSnveA68cBQ55tbL5cxg+szfAKDvg4f2MCQsZXnvkNXmkuszXZKKSV3ge8tMTmeB0MfvPWeyMhqIefZRplD3ftjZjb/C48hmfafopa/4nz//IX6wfRv2xZHlmdfHLx/2F/zJpz8iDHSDJZQ54puMu/Zi1SwwNtm9Vj5kkfM5BzOE6zvWKOhNAfN/Wn+JX67f4ZDsG/IKlslFgoUMs6QaGtc7z1fntDnBsgGQTpyW3wCaGs1pZUZebDM5R22LYOaHbLnckOiIdSL5MlIfO3MGMIdEfgOH7WyviQtRRtgcg6xGqoFyIrAKnP7PwbFLBREGyWkD836mJH0pJVnMENPQv1JasHdUkGESLud0A1c2R3BneEqHJr2C3nwZW6dpU67jOK2EHApulmr8mQ0a+pQ8kFg6TXvRLD9oZdobRIVzWvvh3dmTbmPFoRvTIwpqGf7iZK52QIkQ/9LIbFy5AgQcZ9p/y/fsrFU1aXQXRqZQXRbaaifmtVIP0zdO0SQLJMoWftShDOr+OR+f0SWJkEzHOBtvPm5E1JUHkBN07LMOJ/F15uidbpSnd1w3V3aV2kunIp01PW2vjEq00LQ/TWCnefHey9EXp+fmHJy0bvNyv2/Ytg1La1iWC55exj4gacMZe/30Ca0tWNYFT5crpAm2+zDqhlF5g0iDtJHqtIhgvYwN6QDs+H8Erbne8VMa0QYNiWqmf7Ps7xhpU2orrDL2YPh8LIIwFFyAqJ9gpmp7wBHyv62CfduwbyMavW1bGuGLANKwrOMktLf7De3tFTsEbV3x8nS1A1iSGu63O/a+uxVDaCfn0OU6zVU/oTMvc6Zvzhw2Xh2eazi96UQDtR0WjChK5NxBrGmfpYymPvP00DQUTyLr0VdVOLVbK6T1+9jNNejpEGBlQUTzwNB5CpeI0R4jaAIk59B0J10XU5SnQyi5Ohq2gQ4cZPiObCaXwbaH2a8xTJk96P5227Dvn/HcFc/PT1gsC6qHbhA0GbrM9x2njcfCLrHgZQBz8lTQloZLG6eU4z74hMc/PoeyRbkG50AzVROmrIxwbpRptlJ7uV6xrmb8W86s2DiHz+yyrhv6s3+yIrJPHbJXFWNvLc0nz+6XdHshdh6n2IoqjXciiVNshHOjwE/e/gA/2L6FqODD/mE6TPARXNU+D8qScU3KwE0LPer0yDYTKtQhBxVE1p4THHj3BRalfr1Jz34YjQrGeu+n9hk/vf79XLrUTzFgf6W8BTvgWsnq9PnqnLb6VANtNhaGzGCjJKNNcUxr4JmVzvGpzPE/9hzwboIn89j1/Y6E4PUola+miYy77PwOl5DA6ayVSEo0o9nWF54ZPhZqnYnfWWWKwuawj6KmMvex5/KZOPHUuSTFTkDZb9lMCpoTAaY4XiEw6UeWaTUqbIVcgVq+gHqjVsTnJV2MjLI6bhOyVGkFb4fxT4YCwaYxD7XOHPzonVIfaFxnkW//WjaruzFj/YkJI+dLQMLQZoctjSyOdjY79U7ImapwA2qOlFD6pEcAc7JG382EuRtAiFlw5YoyD0camL86ntJxGj84uOnkzXPlof+GNCbS0HjvKcLeU+YMH3M/wzlkJuDmj9rgcQDhkZTw+Zv3uU3G5YNRJU2dtc9yzMfCfSbM3Q4Z8Rl81JanUYbh14YDtq7AelmgfdDTvt2xS0fvw6l5en6GwO5t2nfsveN6WYJHOuxghW3Dgg7d9/GiLePAkmUcw78sYz/argD6SPPVvmO1nCjF2JumZsn64ShNO7rkBbEAoGInrIngdrtD+47b7QZPWY87sHqHrCtkfUK7rHh6apBu91ndbxj3EwFP1+ehShRx+/tIid3JyJllDMl2p6fQKUr7qSRoRHDkNM52qM8ZjZ7LvSx1lH8ZQCD5arxa5RqPL+l4DF3jt8KD0ZZGNU9cyPuulWCh9v076ZuyHxKk989Qojxq4nTVMAQd50VngewE/yUCgBmIVDca7U3nzXiu0uK9ydKuaLIHEuZ5TVnRIHbxe1qxEsJ933d8+u7XeNs3fHx+wmX1wyYW4+OhH1hfeOCnNZerA4KuQN8VrTn/D9jG4vmC62WcEHu73bFv2ylNSP0apldgniplSp7PyIl8b5ZO2GwfFusmJK00GatT3Vux35kMGnZIH7hz/G73Pk6CtStAZrk8f3JqVigWAKKKXcoEz5gAUQsWbWhYYtw/uv8z/OT1D+yQFcRBMk3HWpuoQqXjwM6Ff1PIh+xTBYT2/NkGYYn5Tp0Tc8T6NXA35k1iYEn3yU2mMyBlo5Aa/N7OGKJbdR2bbPOgDk/hvjI1jzN9Hj1fj9MWWrrOKht4tbiGcA1ijhO5kgAeRffee06N5QeIPctTnYsGSYWOcEatRl4aPBOXAhEVcKJj0ZDEVVcHYXpH5Qj8ASMHhy4VWmVbMvKtXhFs3AEZXmcrWmWIk5KHz6/hIi845yXs/D2Z2htW5+Awdt9DgI+ljPaMbNggcIUb9CU53gnnZ/PtNTihIlNueKSngBx+KQEzH/6DmsOwitIpvE7rUKRK57S4Cl9xoMHpQ4I0oqlfqjf2AGjo8jrS3K/igtXhzhVIk+kOjybP+L6UgN0dRpKgnKRCmETvucdOpNUVOK97ovgD8skJPaHGyVFWmj+GxmnZ8fGINuw98dxxX1xt+1EaeqGR03K5oj5HR38T2euQlXm3NEo2kkoikQI0qVAde8S8/7IHWrud4jVqO38ty4JlWdD7jmZHM2vfY0KWpY07RDFSLQXDmUPrWLrJqMUMS1pKkDYMjdv9DsUyTqq0sW1v93G/lZ1IiSZ4ul7R72Nl7G3fcb+9YZHh+O22h25ZRkBDliuWi+BpGVcCjP1mgosdtuKCf9/vuH9WWxFseHp6wtKW1BdqKVu2l6064qnbyhQaYdZ0W5sRMvA9C4RNP9ZTZ7ImgykJX+GBCHoiaJnb9f1WKc8m/mBnAVSRLqEUTIc+gdOE2UBMJzT23Ma4GsqJm2wjGEjF8UPKM41aWZ51Eu/1RZmzBFKRYwm9Jo1LnUgBsx6829gnTMaG+vg4zdIOKHFel1lu8chqj0NeG25kyGe83fFp73h56bher+OSb5ubpZm5qjsUDao7/GTY1A3j4Kq2rlCM65EAp+8Viw1jxbg37nbfcLvdzHlTgC+RD7wwfmn+Ys5R8MHCXAjhYbPIuHKkXtuUGBO4Dyxx8akyP+1j9xR0rLSPwNOOvQmWy4q1tXF1VvhuNIbx30iftdW5pQG665B7dvQ+D0oAvPQnPOkToCNl9Ue3H+LHt3+eMyoImgcsGET2SwYVkgb8IKc8vXyWCRrHL7dFcG0Ldh1ZEug+p36x/Kjv6eYhdwLpdQ6VS81iArNkSXuKrTUF8M3+EX/6+Y/xn57/H9zaVurI1CZZMtVerYW++Hw1TtuEovgnkJuaJr8IjJkFPOEs5H5zh42X9ycAT56aHpXK7rRsjCWN09KG9T+O7xVgEgCRKkKEqS5YrYn5LjuHjQCerCsm3qpg5lEY+yEiS/lPNbhMoZzXzyIQIWds6m8yGB0irq80NOFyPetxexUPCAHK6aUsi7UA6x85ZRYhD2I+gjGn1bXZQUfFD68EC/zaCQJ5mtaHB+WQQRAbxe17igxyPMmWiK4YbTT+NIqqkK2OGIIX3AAJQjlCi7j7x50604iZbmLtTMd4OxghCtw5E6RzCLVTviUUf3U65hSk8srIeKJD23dS0woZNsfPLPYRjunhxdw3/SZljEf8HerQLHMb5/04BzFA1WCJ1L8+reA/eKrziWJ4z++4TplMaufYXkJe4DVa4S2mie8BufrKsqgdLNHzKFOMPTDrsgCX6zgKvKsdWKXQbUeXcbeZiKCpjHTEfVQep1PuADTSDPd9x7peIXYEPwCsy4LtfoPCnEAdBpnuO9Z1wb4LrsuKpW0DljZW1ha7G2u3i7HHeMZKyLIssQqxrBd4etWyXhFGvOFj27cDXh8FeDhQ40gWHCdR+AOxw0F2Sa0RQYfhmRc4GDZvIOSh87bYReLD9HO1E52GvgpZmilVKbETvirH/TeHNZCSe8gDYAogawapRnlzcKcAS0oIAsL4YJJQ53xHco9QGHQfKYzRrn8LiWwVDBIZ+yoVeSJfJI/TXAyZ6g5alZ0jw0RH8DwUrB764UEMJ8tGLQLtHfdbx77tuD7dcblcwnnzul3NkBcfj8J3meY9iIBfLi4Aukg4eMA4aEhF8bI+4fl5HEj09vkN2141V2A+4O5EC0ixpR1otj6jUxX6Mut8niOXUT6vIrBjZRllQ8btvUP3Ho7fuLqgBV2O4XdzetJaEsU4j6ONaxuaAOvaxmbXtzs2pDz+3dtv44ILoIofbj/At/u3ZS/gBBb87k2eX4SzOSNDop9SnuTLwGUGP/agQzY4GtcMmpQJjmPgXvIv60e3LZR4/0C3FeofbT+Evir++uVvsMtGci/lTMzBrGr5+5fVK4CvyGnTEH4UwVM9jhvIkx/J+JxXL6KJot4fCEDUCaLKZ3bRwydWyB6+tyaJUsSiHDEGG6/6MXtMqABZMw6jhvLwfXjZ2WMq8P1HB3xoOhrejuM5c8zZNZmqAyfbdDRAKnXCOXSD3cZuZVkhZX2NjegPx+e05F9dCEu2n2AdGTnq+WRFPUUFMOvE2ONz5cQ8RCJXQMZUnom00fiY1jml5+yhkU5a5ihgXchzhxJNzJHbgSKiz7m10rxGG6pqFw/nqoYAdvqTd+tIlPhe9ykotazg0zL9FM6CH6l14l1pk/lwMh79s+HjkZNUVlaZPl1hGF0MB8IUcpy0Nq3mHjF6gkspbRenmr7PgYEZfsZtCRRJnfMsP+AYcuVYhh3ULF/fldUbZh8Cbr6rzfuRMDYfOHzEP1pohSE1hW1jV7vzlFPVE5Q8dGOkCnaIHWagELQ+DiVZlwW33rFveQ/cvu8Yp4sJts2Tm8ZgRffAww4M4673WKnvXeMAEzdIFruBuO97pEUqhu4TdIiOu4NGHzIuCQbQ9y3mDSqV1sOBk9hfBMDgqLpr5nWXVaxNc54T8ceZpCCXB2WIXkQ8na8GJHmVNulwJoKUkxoJZdmn7xP0C36rtV2phAMzGchLfg27RJAnqHJvRzVSHM4SgWN9Ng2J9/A5/Re7Tt2lKEAbDn3VweZa2JnNq2jUKqTNMxygpdlF1t1tMYLJFJZh3Opp/PVGBQi6ZjuVbZ6Yz2ilOZHCbZveFa+vt5EKDMX1coHvY0pC9dVDBWScfe1oHqt/G9AugLThrJC8H/p4ODqtCT68vKCJ4PXTK7bIc6U5PaFt140h/5Wsm3dEvE7figQzh3+JQAPtTfSU8CboOvZU+aowbGVfMZy6FgsZEj0sS8NlXQDt2LpisXJNgZ/c/gDX+9MIColg78APtm/HxdnqNMirWs6/NBKi9wxckO4q46/f/Om9w1fs8qRtxb6P/wfPWPnS9gnO0zZgfvdW020GvQXAu1viMJUITFgLOe+K37r9EH/z9HfYlvvUyzRCPX72YIdnKnzpeu2vw2lTEyos5JgZLKpT03Vm44GbY9UiYPFw9si7bx89Q8AtfI/GWSkTnBr70HTMim0grz4qkbMef7cvCXX53f9xBenmzihbnVGNMVczNxvLuswgSH1HStC/sl6SByxa2naYg0FMRUrOSY6gtuJK5cDEjIOAm3ufRsqDe4cAwtjmiKkMwXK2l+kYOEhjvawEIzESK0j/Q49HwohXpjG6fix9BTkJtcOCOUt37Zamwx0MyyjIozWwc5NrwAegxrcpfDk7nwyoOz+qaaiMNlhReGmNMfjn3aLB2S/RmStLHzuDkdYSwglweGJTc2VLFJk1vSvjjuKHsQ9QNcbI8Na6RHOnmqKOc35/5hiF4eaUOhnTrMD5A881+cEJiWrFc4BjMCqrxzFuXiGRoBFS5DpokI3mwQpJayl93Ni01TkZOQ6+Z9IbGfssrb0ObNsOkeGg+cl2YSwPkwkh4En6eiRr753ocKQ1hkMWBKfjvji7KBkQ7LsiTklUmDIRG78i3eo0Q/KIjOGkIeZBgcCNS1q/KqPOT36vfJur7j7PSUP+vlzA7CUm7ybFKc8JTE7R6ZugebTuOjspEHA0vQQyQrYnrx/pdcgol3vuoCi0OmkHtnNjG2nccnGmRRe+/Pt0qGvquYon/4nd3qCXB3rLqTj0gUEbNommDt07LKXfAUu9pAZ/o/nO4JPRj+8zsv5ELf2N9iPNB0YE6IG07Nt/63vHr371CR8+POPpuqK1JYMYIZvcYRmj3LYNt23HZRFcljYO9BG6i0673aNV9xhfr1cAwP22Ydv3ceKqzrZTxW/oGjmuKPG0NLGDuZRXYh3imCk7tKgPbblLrHqO+xoHxHsfGQTr01hJ33a/SkDGiZTSAVksA22MeVlWPC1jpb/vDbfXz/jLX/w5BGNb0XW5YsUKEcGmKTtPg2GSadPBXm67Sj1LIgDgrzjqvWL70v2NUmguSYM4vcxGtjEzaupAi8fAr5XhVbmD/isaoz4+hUrleJQ1UMHjyz5DmwlnG73/fBVOmwJx90wcpdyap7MGg1anzZnQFeT3f3gfWjFe5hkLgXtSFmr50u+3X/eS2O87tavHOnMUuoBIsE5kiuqg0pDElXQaOJgEKD+uXNWJiwQkdT90SRAgGSgV0iKPk8hJV5MhForeaEFonKGwOilIi6QmgxBz0FgEEhupZ8VawI2KxqyaP3pUPld4PR//BIneHAnzOr9VGM5zWds4gbeWKJ/5SPWgCBHbI6QVNwHEkRqqIe399BMIR1TbFblHiJ1nfZ8ew1jSC6P5NIJjD4aM6FvsbbCVOsZJRjcrXsecj4Ic60iloQHLiQ8z5pr50vdYyTDyxAgp58bbc9ic57PRYiwRfsd+LIQRVZJndaaWagzW+TkqsSyfjupxv9n3WdEdhlhAQjLu0K8O2jtTdg6zGm8J48YK8OXTEoZVlgn5A4kUOUS7E4XHBdwOX4eqKxeEL6BIXg3lbjC2BiyXNfe1bTt0z9MZ08QdjlYYF06a8NUfg4vQ5TI+XilfCs8XUPs7mnf11YZup1wGlsf1AF7WCKuQi8NRjAuird7JOM6UO6YdPhTGMyMA2N7CpK+Y6zO61YGoznehSc5beST/jVTlSf6xRGVZyzB49zHbZ1e3CCB2f17dO8P6D0Fvbq/w9BbnkZ7ZsUvYkjDSaHba58DfqJjUBmBCl8s5z/JIZ931mOHR6CPWU0imHWzfAn/lGF+9Lo6q9pCjASDRm68KuuxmTREjVeDzp1fc3hqenp/w/PRkKZjmDAUxjD5aa+OwERH0vpmtk7wgMUEO0+ixNb9YXtH3HbfbHW+3O/Z9H3McZHXQZvRL7h90nnP8jFRtl3FZk+cr3ocWyNVyBXAP77lBZay2ydpwWVbDvaAtdJCHtfSyP2HdFP98+2387uffwdvbHbvRwaoLdBdsUkd2wg5pT5Hj5qt6OMhmkj02tpT7xhNhh9o7t/UdEp8v4lv1tkJ8JG2HHCpIrQMJ8WJj4TE6THX1nALOEcxJWhYo/uPLf8bb8hadVhpOHyD6jXlW0j/HLUVnz1fhtMUjwCJtIIYQrxC0drQohn1fHbbKQKP2/JxtkD93zKbqMwXz72xjZQgIgEUET4R3NdyO/XRqJwRh6b4CcRwpgphZYXJDZ3rR34cCpXENQ1iDOWg0p/0DxF9sq5ggn5VZHlNcWnCWdv0ev5USLv+pU2caLpOFUObuhL8D8UFXk5Fz5pSdjd8fLpKyTMLAe2Q4H8iyCKEqDGfl7yMaqwhE5zT2SHglA4J6KJ/juPYgTF8dTeFNZ6nVNszA5/12KUAThjBXLId+5OwXjARNRC8lmpWD8378l+NR/3rg2YGfjq4NByfb+bNnfyIscjWNEbbuAGQkrU6o2zSh6N55JJpLB5DHeeQflzXuiMwdnAiGAz0kPqsMO6axDbisuPpR3bOgSWDDFBXAV2tFU2mnysx5iLRiGcZW777KZWVGI3VIaT4VRHl6CqdMshBQo9f77RY4T3gIwS5kO6QAACAASURBVBbxP9O8vbwgSWODZMffHQV/X+iKGk/KH+a8r9q4g9HN6SoRi2ICAoKOEXAZ9O4BumEXtsDjWOlE1k1BHKfQNmITD06M7qtu5WDlMF405oPldTw+hGh7ltH8g9YfNHd5cxE2nsY/JgOMBgeciMAMwGhMWVYcK86pOqqKwIGWxryfmqjFkXn/va6FWv9lYIQrABonrKaN1EToAIxMkOzIK1t4iPVzzqNfYzFoZqzWhGSTlnIeOARRSO0Y31adjajp4nPg9t533PfPuPeOl6cnXJYFfmw+46n50fAYPOkrqCEvc7cePIAFILIvmghkXfG8LFjWhtfXV9zvVJZVmVklYR8439pcuDxRgOQLP16IsWJz0/IqhSa2JUCHLOnWrjvkKyRPkLU2RQTf7B/wYXvBv/z8E6w65nhXoK1ryRgsKoFAyTFaUQkJRUEc0klaptERANZ6OVeSf8N+IPyxbjegeJ7ThElHb85iymBEHV7SWf4V5mvuw050KXdMprAyGSBlTN66WcokdSnIAcbTNAfvPF+N0yat1e8+ohMF+N5TIgWmsA5C/kttTEomjf1j2W6RYLcRz4StARa/ZPTBKklNVTg77fEUgKDxLy+phlDMKl+sMMlqeiVmbOFECE1T5jg861BzbxxH2HzaXV8K1LKeNJjjbLUKyDkDYAdQaOjTUMBFafM8j5aG/BzOWLQ3of/R6muSrCt+SpMSXoXxz0e88OENjxz7+tvcxqQWyrynQQJgvkrIIH8U8wm1GI4Vwzy3Mge86nobRdxAwncWfWIbzrXOS3F+c/Z9wAgCLo4cw3L83NX52CcpDUoPYNTYqDci8AhcxZZM9IHTckkrU309DiX1ytHRnIMsXm526s/2JkYL0QevNDmUvRhhDIt/z0OWWDUZNmQchw+MFKaQMayrA+8mu4dAnIyfUbw7LzN9kHIvuKUZT7w55TEG0rAKI0sVuZ1Kqc3E73jVY34bQcDlAqQwZNiMERRkFBmj4fD7gdTuLMG51fWdcBtE68qYmCLG/rtqSX1OtZWrfyknpcw9cJSLSU9yoFdmhOIICxfTACLSnw1dvgroepN5OfGdvzIP+fzmXj8PdJluU+86A64+jnM1zIOZPmjWiTGFnklqzb9kG1CjlabdVUjYlAGPsUoEQnObCcFiePJDSCAYzpjrJnKmhfim9T5WahR2MbeYLq1oGDBYWmAc6iTBTzP38UfDEjxFUQBgV9w+v2Lfdnx8ecb1cg2nrU7DSBEcoqyF3G5uE4QOOdPjidPr5YLWFry93eyUyR4BqFlb+Yy5fSeSJXhMzqtKq4Pu+DMNl+HYN5fNzQGEAHYAyZhegUjD2lf8i9ffxcfbB3zcP5oNNXrpE+JPVDeO2TFellaqc1hjnu3KHgRPodg/UB0HwhB+jzL1GAQM+MhhRuhhtrmY9di+OGFYsh99znxVOPbCwnkGpGd41C7PU8/X+atQHTWRzx9vvZnn/Ph8FU6bE9t4SBSZQJP8Es+jVY3xLhX5aX9hJJ0RpZ5+PtAvC3I9li9ErSe/nbWDo6jOIimIbRBHbjtRhg8NtOSj+tNUnCNLPC9e+bGAQRB+kKIkq1WwT7UgvSeFVsboysvbPQBfGwyrFcfJMMPMn3ZyTDt/CphPSIQhmVcqZ8M5Ve9sACU/1BMMHwwxoHM6EWorDRwRjUpKs+ECibuubbNBz+/7KY1FuoK0mKXanv1KRmaucHCkqx340K6VKqIwle+ACfB6joA06l0xjDZSacdViNaQwxa0pYA0hWodb6wcBPJkkmlV4MeY1U0RjZPQHK9HPLticXk5/u8HhMXc2WEYp0/AeCZl8uFDKrKurVgIR6mZLtMQcIpWHzjU7tdV7Mj0PvINAj+zBPUAxywjFOMuJpGRUO9R7tg0DkBAaWHRp59Glu1m6mJiToR6dbyTcWWlrN103CJ7wE9FDWiSfzxjoUZrBX7MevbpKbg+aC6Pw1N41+g1Dl0BMBwQwiWlIPvKmI8nnFfdwxATb5dmYaZz52va4glOgJ0VaTj6hjde7eF9dR5Ac9yEvCLZwQHTDCpV+ZvZADYSZchojLzZbHKCk0imCQjxVYMnY0zH4MnBnmFbgmAbP3Q7gI10oFOv/RQyxME0I70ZQniFUw9/nQZGausIvlj6nVXT3fYy237OPvJZx0mqEMjShjNmObrz+UKuqQWw02jz+llmK1+7ao6CuFDZ5npX7HrHp96BD4rL5ZIOt8mLseq7Q9DouvIOYDE6yfn1YKqncw8YjE5kXLXx8vKMy7rg9XbHdr+hjxOFUAjC7SF1fk/dwqtIY0iJnOQvk0feJNskahkHdnCK84y482f6y32Mv3z9U3y4v2Dfu10D4un3vYzSdWI49+EwEXxtSSdRNU5P5el1edpVI626Ulaiieuy65XqqQaNvS7bTy46j7b1BFi8VfBeufhZAMAPNlTEHnlFsQd9G05MDdV3CcQrfRU3xvcnUBUsFHv58fNVOG0AGwmPjYnfpK3Z8OHHFfVZel4pR6+CBqc2PY3nUSuPmvf85krAx3b8tzDWprYLMziIJ0oB009RZOq0Cq0ccJmeInCQCoHbhcRx65HqJIAf/RtwzvgUE+iSwrRAJ9Vs4CXtigQaFuMtwqwJbRjuQ9NZkWOqiEduI000RA2KUjnABqA6ZPnUAz0I4BjIcXiP6HrUkDKf1VEgw0X4oIJ8/FCG4vCc9UMKqcI8G4G0ghrOjadYTnPmAKeURuSYE6GPZvgUylYMvWbz5wopHSItbaQxmQQT1KmeeuJ1UQg2Vk0j5dRTNMaR7CJLwcdwuHg+K+Z9Va4oS6JbN4DcQfM3nDauplCdRavz71qux+c5K4DiM0V+iik2lhmqtVDu07O5rRYpPECgtn8r+8m0RMnOIGCjT8NBZfUnflut9+YDcLmq7FS4IZXoQNAAq3wN2nXsSAONhmschXus7JPjRm8BS0VU+CqiBr6jiNVi9R/GlZ0al1Pr/JyOEcu6ysGNJRbSkfBuiBvUVzVbjslrNkFbF+C+j4NaiqE3oHdZExCSAhkZXZT0etD93kYGTny+tO92KiIH1dzhrrOUIyIssDNtMGop70SfsjLox3HgOoQ+jnH53DMMo8WOcUpfgkLZCgq6q0otfbEwCRDH2E92guaetvm8lKKltVBGHojh7SNx4fpXqZ0mY5Vq3/cxnt6x2anXDcBF9sFrkSYpdHBJzChUkTQjTr22CuQ6dABh+1qdUTmoKdCu2O4bfvXLX6O1hrY0rMuK63VBWxq0LUN+R1+jnd53mgTbQ68A0AN/JVgg6Rxdn55xuT7hfr/h86dXbPs++Nl505sSABRwccfTeVpsP56nOIaulXGeg69CkonowGAEFyXkXGg1ARoW/MnnP8QP7z9A04Z917jmRNVXCFkimLOqElePOM9pjD1PgHYYmMbKDCuGU6iKWOVkiW2AlkAZfM6Nh5uid4muWC6WD+Uk2/y9rtLxI/BAjOva0MsspyVzJNKWOkr7sB3izxj/+f5Sx/tRX0yDe1iCn6/GaZuf2eOP5cd3HC3OF2fDNgXy90HJWbsoAjPbTWPHy53V9ccjuaEYZtn8Tv/ls6Z9UgsilP4Ma3z3aMnhxUSUQi9yBAawMRmV4HkRLjsZSUAaIKwsGT6/bqRyLVyuUdkDwCHA6vCmzp2WlGimqLh0yNipYkMkUaLlva/gEEipjAjUbEbznxP6YYUQmKX23xMFMyUk/YHohJQGEIeYeOSXI/A5ljqeAYtHLusKpadHKEPjxo8PwswaAnV8bDNCHGIB0MwoUPieG2+gT3PUzZgM45ZSNuISWdXYe6riKzYzkwnRF68cSuBqNDqlbzLCTxjvGJyYR1xpaXbs/F+FhFxweilpeW5lItOxEwx2phIur1cwqu52JDyxr8lhtpMRI91lxofRXK5kOrzUn+NLXS1aHR2CoPCXy6XAo1dOxDpu1CY51ui705rvBct59wtgC03xXJd581Q6oxPDzdhrAnDoNh3JqtCDJ0FOC5VwI09p1e0R7RC4geEaJOopMD1FBy6c1P4T4nkMg74Duu0HfZpJbDL167RGczHNy/hXgx9dRjqvxSqAkJNuONQ4El0D92Nlahkw+XQaovywsxK0CDvDBICnYroa46Eqw5ID8CsJahrsGEsrPMsUn0K8GqjcjgQOefXXGb0h71aT2gQg7qDVmSoZBDF+dZCTN6y1fR/yUYFxP1hnXTImSkXHOEkXB3p4zISelNrOzKgIz30nLCUC34pxwiS2Hfe2YdsWXJ+uWFdBa3scMLMsSwYgCLfMG55yvohCtRXGGuAM2rxer1jXFff7js+fX+1ibqZXiUVxv1S6rqpTQMiAiFRdwwHP17p4AJBmVzXufhQB1t7wk7ffx49uP4SqYtu63d3orcwHybtGFkubZDpweHgbRM5Uzou11Ic+2O3Caz9MjsMo7hCLyxUKvqc+y6tIuuOzwEyyZebJoIlZtmL613S86xJrxzM1ahCPeA1EJ1JCmIaOsxyybCXWWjVJfCr0vZ+v1mn7TQYBpIFxnMzH7X/JiTs4S8cmHr47lI2ZKubH9+6/9mnpA2S0uJz7Iij6PmqZ1L/fb3JeABZ16BnZj8ck1Sw2M9WFRGlMqBRqjzG84zEztk/xYnVGsK0KtXbSnk4giQnnhCppcK4zdZnvQ2knNx8PEfHIVKXvR3R+LtCGwEuaTUOAy+SdWQkoG49zl2k4n98uEg6Liy2/l+kAJOOOnIqJdBxWTrkS8MqdgDnriKIqrGP11BW5zUWuvg6Y60XlNHbhefNxpFPjyjoNMg1nlOwbwtN78kS/OPdIEMJYG9FPdgxrP2xsMI7m/kLBOe2bMBEhZz+Am6SbweSGojpNyTRHaWEjzjOwEjVlOZNO5oAIbF47a1zqxWnHDbGoBKmnCIZCJ5QgYTpyin/RODRgwJScM+CNkAAPPD91IJ1S3jlD0emGwL1BHpDEHARgCeGBf02u6kkJlpuxDwiAoEO7HAiVZWjwliLmOQ0rgkdnLJph5hPE/B8OUaMxH6EezTiPZfssowNbIQcQdOP1fbW0BmdsDHFMp8kbOVKEAEDTmmkJymJwerI/sz1SAy4SOGS9U8YWdJsCR2wsTIHZftIPlaarBFJADdm4BDW2ZimwCqDZ5dUddpQ+jYPgIbYKmcp0HmxiMjJFZtIhy4vsygIZXbHvrjtGKuSyCmCrP6J7UHQuCnSj27HqdubkM57jkzRcLgD0ittdcHu7Q3WHaoPYipnXGGmLenIY00hXdjgQJ2JKwXtKZZJlMgKL7hB86C/43dvvoNuF23uvs+pyrNi0U64NOzK5EkxzUOQY/fErCjAOc2H4E1yDx3UlUoeRaMXQ/Yxt11WpM/lfHo1T8uHeT2Fd1DIApYkXn6NMIZ7mSgh8dTpH/Nihj6pYqXP76bTwF56vx2ljpQg/Kel4lP+jVbbDJufSNBHv9Nv/X0/SsMSG8GLMAUcZ8U5jJN+KUJspp44ZmBEk5V0+pwZJKHiPp9IqlSk8N7a5vTa1l4LblcRZvzXNR48FDkBz+VH2aKLMVc8UppeqSnPu5TH9xJyYVsn9ZXIAKXXj2eSn4PV0P45CP4aGFY+V4zqzcDHHJVuajDHqTCbKcAEZWSYFqqHcPN1wNDbPpUY00k+LOfLmPMoatc272qojcZSirpQGBfjfksbaFU3aSHIMB4tvvALph0loTfwcKXKWayS2FwEo9hCVn5UqdWNj5esczmjJ6U2t4lDUExcTe3ifQZtijgvy2oXAc+9l2Nwf02o4RVG3JT/YnHuf0JEO5hepKtxotGg3GZ8PZRJI/vGcgPsTk5ta8JnHc1ddHYp9QlqmGyVPpF8ggdBwNiWN9FwhoHUMtl5QEJvGh9OWCUo3jHxl4JRmCAsPNCahh9KhAMO9yz5BPSMs+cXvL/O76WJfERJHs8zjNO0KYZ238YsiT9LkEY4SbFzXEIFO/6aeEpHUN8Kw8rhDVED8DrBYfc05ZoLk1FDXJsVvprEDEot0Yu25M54HTDiuKXBygoXguSqGIgAV/hdyJdX5jWUtyzV1+0J8rkZbDnuzsQdZMP2JUJ+YD9QkfBm0MXcumyeZCoU0v1riOH4lJAuAbd/x+vkV0hqWRbCuF6zrgnVdTulE0QLmTO2T0oePi+s53VyfrrhcL7hc7nh9e8Vu96VxMKkJsIhgl1ZW8ceEt2iL0xFdIA1bKq8QKQ64AKKCBQ0/efsD9J7XNcS8+QzHSjph0Og8L/EZfVddPs0eiSiFy7LUqyJJP6UFox13qHNPnqOjSiuyIMYYSIic2lHSwNdylAAX3nkk2+/7uItL2jKV4TGctXHym044JJwm6ddCKT3ef74ep61YQw8A/9JovvCcVT9Hkjx0GqMtNya+h6d1MOS83qPxzBMOIpjgnWrCxN8JnC+hrBC1Zssles2lXfCpQifkzfvaQO1M4uLQnzXglQ7wZYorHyTg5poaPL4EPXGCdcopt96rG4v+5LG6LjykNhLjQqQnQNIRUJof37+TdfXQRjrcbBn5SW0uDL28w5+nTp1ZZg7D2ETOZpz3YyaRugLPqNoQ9H5gQT4BAxiHBLFLohmYOth8xxH2KfJcUxTO2psV+7Fo5U/fByRRj2eVo4hjhcYMt7ZA5z07bPSxtRBDyrGUOOZBTHxRnVgz5/QXrWjeD6Wc7Sa11rkSHqksvLrqePPjr2NlDMTLRI+xAqsWqSZ+PzgrXJmwAJzRmtEAAe9xZZYXTHFh64x8R1KKSU+qefGz+njZUPO+OUXSDYDIqk2+52nktDe3XGP+4iCXKtt8iEZ98/REgbLiAo5G5+/ZpgfVyHkIom0Ayb8xhDQwR33qy1fGNUN17CzlSPzuO9vDpbv1S/djTeM4e6o+Ffi9jHmwkKdGjj9+R9+YewWvjAkZ6czrIQOINlw8zcagFtlpE+P85bKmcxkt5RxXPHYeYgnIGMx5mbdO8Gj55Jx2DGTrgZbYjGYHL1oxIGmWC51FXXg5/u6ivZd+xX/zA29ozGkDaOjadBbcBjG9Yu1kMCQ7UCBPTjK67b2PVbdt7HtbloaXlxcs61pk1KAbxkvD2CudAYvEFI/Ydb2lhLcFT0+Cy/WCfdvw9nrDfdssyCV2RL+O8y5crkrqqLws3HnNj06h+VYE/fM9posCf/Hdn+Njf7G7jt1mcBhnfooWD7SVafqVTlXnulnHrzIRslOgPoNHfvI+Zif8UTaUy8XEV82oIUICGAYAvslBrE46dQ0eZBpuO0bmj+1DH/NKSxM09UwRAZ/Tsx7fnT3N5uT3P/8YP779Nva24X/75v90q+zUfOLnq3HahrEkgeSFT/eZBFBZFSEJ9N7qWSje1M9e7fB8yT8PPV9gOtgj53BMZcrXL8xXGoU4UIaf1nVK+JOW4KAhNxUNyvSdMUuR77kOnStX4Z5aO4My7XaNA0EetxKFq1RwI+5kIoSjimFYVmi0CASjGRIUsSkXwO4GPClrNeXYqZ+MMDnN6AE+bmU8ecqRTASiyoZTiZMenkzxFKL7KsgjyexwjHH2CaTgTt44E035mypybpgwac6GApMQphCmHafzGaKZ1k7w53Mj6WyUI9gJLom7vdKgy5QUduaS/+aYZZJgt/ltBqdkqhHhKMqTEMnoaO4JiBFLGmYH+4x+81O9cnbMiHG4NduKSGy0S8EBjL0FTexKk5i7Ub7skZsUPIJfyACT3AFQ4zKRrMRNxTUqiYAY0ERTDk+O1fEVFb2ur3B6Q5bC1Hvyse/fArTsp5zlQgVoeihwFXvvYEYBtcjtjGAAr+ZWx+OgJBgxRjPpGLvsaYfAymioF9pAyDU3bFg8jUkcHNIo7qLTCoorQYMhnJPzlGnGlfOnO9wBVgl4DVhSlrpRm++Sp3isiTuJ+cv4e8WkmM7p5JwjZZWRqCmY8V8zmeG/Icty3xwACGkVK+6kKwr8x+e4foET2MhOICexOnZSVrdzqJ7WLSggIx2qpJ2kc6jTaSP68ZRRN5yzD9ftTtoe/FRyaFIDk/xXCzRCsYyNfJMstVXTHVAZd8+NIE3Htn3C9fmKp+sFy7JiWRYAuS8s5Zg7PBNBpiCxsWWgs6GjS8MiwHJtWNcV27bhdt+w3Xe7nFvH3XZNSl+OxNgzK4RXJC6XwKmAtyL8m09/hm/0Zayy9dSj/iHuVD3YRJKHDZFW9/qkpmPozGMelHZnmh/XyQl//u5vl0hw8MZtp2mKJRpLthVZHEqvC65mSJilnP9Ni5tM0NDxEg35IUR6aI1kf0Ha8ZktpGu/YNUL/t2v/jV84QNQ9LeGf73/Mf73b/+D0fjjNoGvxmkbw2pxGaor2PG3mEmTvjxPYZtar6GlQHZJc5mgkbNVNrYj5ojp/EW47Nz61CxLXBBBMhdx+1Ib/dL4M43ljLDfBS1eeCSzjjXbbZbGkqk/FdwHkHnrIayO6TAMnJaaMs3HewfUfK8nxueap3QQDhyE1afQ/01xUDpkMSiQND3QOeo92HE3gWZRIYo2djOqQq0Ilx2dxb5H6oNTqtgA70p7WIqUdi3aQ2+1lmZi/FX+wKxgVKAp0GPPAiFnKJFUkmFsTDwl0aLaZbGJp4wYV9wN+sgIZdKlGctRJg06SkIGICU1Mdr2duLPNJfFwcnxquGgtKVOx25oWUn7PDt0ciLDkmyn1DRjmFmBk9t0eMLZ69aAK01e6QXKat1QqJn2IjbvvWda3EivkrTOgmZM7pszO8s/V7aA5oFEkvCn/Wb1ee9UYsiubagR23kfxBw8EMBz18LwzEbV5EMvMDtkcS9SGRPgFxO7PAkMcvPkzTh3nBthDHOmJrphAJ5nN0pDTjC1171audIkpZ9maYNxyA/xXMX6ZLw5Oxth+kl4vsLttOA1m6cqqaVVeTMxfxrtjpNTxYdGcu4xbCEb7GVmLE1CRYSOZ3SZzsGwEw5iEUq4CwmjdU7nJk6zeWxsM2ULxj4b0kT1fcsVvKraSgjc+Dcx4OLGcz8O6a4JLCBip9smp07oCP53dPpx9VAN9NJ1eYM3FGO/l44xNq1ZLEHm/y9z7/OrXZadBz3rnHvv96Oq+kfabtppt93EjhQkIiSQMmESwQwiYABKJIQYIGXKBIEyZ8IIGIEiMghMLIFA8AegzJgQAUIyEBzHxm5sd+xut7uqvu+773v2YrDXs9az9jm3qp0wqFOq777ve87Ze+31e6299t7xwwjcwiZ/bqGz3r/7gNvzHU+vHvHq6REPDw+TpxwShC36+jSKPnJ34ADgfmDKwUyWjDFncDYzDCs+4Cx/C2aGT7mL5M2UfQYNqeig0JkZPjre4smfktf1OSTtWCZooJyqWvXg0U22yK2mKhFN345Dz1JS1CybB1yrFUw+PmGPvGow2zNppHqy5MubjFy5dIYQUavv1Z/Oqo48ciLdNoXL622yBP/SH3GFD8Anx8f40eNPcNhxOvvWAbw9XuNX330fnxwf169mcWzG3EznuE8e+oICPwBfmaDNE1ZDrWfzMPg09jUbdxYkVREV4lVAl7N4yYjChD87iD/LYwBK8Xzp8yJwtjBbMaxcLVir5/i9K+zl3lmuLweQ71vBYkArP7yiALym+KsJArWysX4r19HXx6kMSOH0YM/tlEOuBhcpceQJVcgkkx7USwS5vNVKN7wcYgZSORYxxAyC1NFgcNCJMJqCXg2jzgy2ACQVUZSYZClkbVJTO4fVbFrOOJ+4pcasJqKm7Eu1jWDOHMVLsiS411p34i5tEt3DdiaPIwnUeLdmcopSa6ekcwUQp4yg9/U16gjVow7O6zHw0NIZ036ij3IoCbMFHDZnnSTRVI8Fl4u+41imXr/Gr5ZvEg9Z2mvaFrFVs758hkH+XAuvM5tljAl/9y6DDqM+lzNT77a1PBbte63jSD7wohfbWK/u/HOGiePy0E2NOYSyXla28TO6YR4Q+qh7wXGKExIBKB3/iYL5qa/t8PYniRPP52bUoX+azuDj0tY1O5TUFhwyftpYo52ty7PM8GRwULgtTqcunLCV3jmXPwYhKO9yjwHMBk0udEuuwT7yuc4n8C22jPeYveeMUfRFerh+9Tweg7rRWV8MYK39r/y80KHZurQkMj7BYcDNtYi1+bg+s9QxNB3EH5or3zAdqnG2Ib6BS4LBgTwjTNeD5cPWt+qf7Qq1nXTrHZHfMslGYVqw4xrcGwDu6GjLs9mGyBrIu0HvIbbUD/BQZOXLhiufs1Ef3j/juN+xbTse9nlcwL7vMfu2XrM9sYSJu16uF7+PA8cYc6btw21ZQrFgg7txhl6a6kuOQxB9mno1xmdm+OaHb+Dp+Sk3H4E8rxU/+X7cd8LihjhwLvyu8ggqgD3rmuk/zHHNYI84OtObdBijaKI0bTpB2zHkcvCiJ++qPBRwqc+oK3BxGQDn+lsmMQPa6POiabgZdiAO9FnuAfgnPnwbv/f0Q7zbjxN0r45X+HPvfhkfj48l9ojAMdbRvT5e4Zsfvo4/evjRFdTt+ooEbfMq5bC177xOAcHJsGo76z1RoWdf4HStxmFVku27vXxvbTMdg+WhaqM4hzX3mlFS5bvqXCSTR0ZnHaj0u+hUbWL5ztp2v7zPZk4GoAF19fv1s4WX8lJObkAG4rqFtSMRoM5aGq9O/7XNXNsmz+fC2gb/mdg6c3UeUTlNdFLcHbuVytIpfw3Ycoa51euw1X6pgrxymCx7l5DMGFiqi7MEj/DcKW3LcsbCEWFO5pKu1dCmQ6M6mhDmqx3ZczaqZhdzcxCTQ5MdQiPeu8ANjZQaAFd+Y1BLeZs3xgGYjXDwwhgsOiUzkcD5sKSJKKFv6a2CI3A9PDYrUVoicE99hvZuyp66f1azwnlQ9tKnGTe6kHJQWzlrSOAkSmixWjozlmV5TCKEMzCfIZwUnNUl897X6Ttf05Kp4O1UkiVv/MHVsUp5NaybHpyl6kxLvlG6nBpjJgAAIABJREFUYhI118YpiogbIdq2Wewid9a0LyjQEy4cDotZ49LKfDdoFgRN2Uh5lBLQbNWTR3PTGFD/IHmncX00WrjuAd9aAVN0TuZe6FSGiXCmVm+o8pN8GHks9QOqhdRVfD9KxqL1DLY9dvLj+dXeKF26Tdpp1QjkJyHFdDrLCfWBCo6xXtTPCF0XO9qJLFCuKK9i0YqOaZOQfgRhpP4/neeW8mxRzi19dhCl9H+rFq2StTN2cKm8Uf1MO1szlR2SM05Kh2zJj554Lvpv+45j1JEbKZvN0nvOaj0fBxw3bLbh8XHH06tHAJ4zu9vG0szCb6lzxYrMlrjjuA8c9xvuURJZZ4QSnIWv4HH4+U7rks+z2mugEo8uNtIjONTjP0otnrUZQDae+J/mPLWC2A0d79muGAzbtmUSJO9xZC4jifZnqT2afDpRYmc+oD3S1ZDF0vI8ZYGxQfyzzjw29KT8MHhFsQxhy9+qfYc8c2kvcPnjKzzia8cnAnbo2+PAGFPuH8YD/ty7X8L9zQ0/2X961XJeP3PQZvO02P8ZwA/c/a+Y2T8J4NcAfAvA3wXwb7n7s5m9AvBfAvjnAPwRgL/q7r/1Ze0rk+1xHkYFAoaBDRuORVn1L71UqGPvJMNfYCOHlBGsj4hvcH1dvLOCe9VmOnTxgwsj8VyrUKu9D6/PdBZyBuFL4ICjMarCopeeUUSns2WXCOsLHa5jXtXWom9SH6vRtvXBNNQCMwflgSeptGQpIXvs+OlGoHVFBeR0YjTD282vOguVja/ZsN0M3NnvpFSao4BUJsyIaeaUzkaOrAUb1hSjyRlmzCq9VC6aqjHA6I7o+o6feOclxq9+2Vw3YslKhlwHVDxuOAadw8KlzYgTts9GddOB0eg5zxhKnObuXCxlC+fDEwQCBndgf9iSVjnzDwBGHbUaOD/jwegMoTleLYiLUrk26xcPkDfWGbXUFVIq5CIwDAZXmc72UEF3yl7rh7OGQOe5MDrsrwlgLap3Ol25rX7HiYcTtW3UabSG51wqYXVdQxHsOf3HK21S1FSNk0kU1pM1zbNcdIJOgXG0GcHoxKEFXjRjTRgmjU7rC8dowXffqS8AWAQt4XfJ+m7Fs+GOpL2oIkevYD15P9qMtTbjGHFOpkeuyBa+a/OWJ2SVWrs61qCPo7+q835SqhZMtjqhE2d9/mvq3XFiBUOVisGiDDNZiLohgoLV+BGGVYhEYWTSbTispgfiducZ6uqtHSVQz65VN91OJDPGLK4mLxzFeQuimFSRZScqjqFRZWih76zgt5Nem7qJoRt1EcDtH2JEIl8ur7bSVlgeTE6YU43JrodVfdEMMDYz7HBg2+Jg8NJ5hR/ObQIsQYQDAwPPzwPHcNye79gfH/AYC65s2/Dw8BgByhzlLH0csdkJ4McNx3HH/QDGOHAMxx44rbWa5EuHQTdIItdSNsPGgXp18qTuKMr1/t+4fR3fef/tCQeQJadUSeo/IvnKk76bQ6qzZ0g87vfYMGWbY8Z6sWKmxqRLQCycqqmCvB3bkOMVHvLWsur66ytniJM3YmwJmzoSIqJrYBe8m78tHTaYreycA1UvTFlb/eCOrn6usF7bDtsBs4FxTBo+jgf8hc/+PAYc/y3+uxew8Kebaft3AfwfAL4W3/8jAP+xu/+amf3nAP4dAP9Z/P2xu/+qmf21eO6v/in6Odt3zECuhejyV2dURFpPykkZon12nJWkdv6nuWiUT6bNTuPSTnRofQt8T0NPZrT+aulyvpPjoQFgJn0tbOlNpLKoYUggiXLG5CG+pyU42rZr+2JEv/SiYUpFvd7vDWXpVjiDiqfMAiovtGU5K1JRONVb0WffWZLUtpy1mvBs5yY93jLMnaUs1gLmGCp7CSdwVEBUujNQKLpswrPEtKM2ltBZUuLxTIE0HT6NomX3G/piY+cGdKU9RQmeUOhAZQ9Di3ndpBFKSyNymIZAnBNNyqgfEwhsGTdvjmDOk0U7pNO8txkPqJ2Gdd5jGcj8vm2IzFg/M8ykB5nkqCGFLI4IPlsZieoyJmvyazVS/gyD/oHDa4ZM2D/f7cF7YWIcIR/Co9wsYTCI4KY7DDrcYyYw2ts22Zq/gJi8vZrePjNQn407XsfjvfglbySPAZvtyBkOszSq9W7NtpKdUvf4fCrxhThuoO3cGnKw7uzkotWNsloBAku8Sg/FO2ntZfwx1tygwgqulA11OloQSx1HoApG3qur7KDqj3S0YiFC0jfGyAq/XHOZ/HfWGzXbPducKBOGbCPvbeSOlm6hZ4DZ+dyJMkedDBMUDgc6dY4YsDVrn88mwDWPobDl5iYUINFrxPM5KKrsu9U/Mm50egROSg+fLy0f4zt0/Mey6YPk/uU3wQH12SJ8tBtGWMh6Xu9XOWwFZDnboLo+5Wqenlczl5UUSsiaHJBfLHG8zs7GEMAAoAbgortmEHXQJm8lzVNPs2zZoh3O3RjyhLZInhw2gPuk/74bdhhux4HdHfARm304jmPgdrtVkOMDmwPbw4YHmzDsm+G4T/0wz/TilvQODC4vKLty4ptigEkD0obY8w0+uAFd2G3b8uw2YthQsl92eMOBOUuH4dnmFgkN2zfg4RG62QqynaLLtAkj9V7NAhdNS3QrjUTqGIpXabev6K++sa94usQZ9Vwq5+w5RZvPKB8uLcC9zUoTp/XXWxX1J+MjvN/fv/yCijU8ph/7TN5uG66KdPX6ku2dogOzXwTwLwP4L+K7AfgXAPw38cjfBvCvxed/Nb4j7v+L9lJqvw3hTCyP353/acAwX6v/IYbnxFwcR3/16urR+YWR8t7m/FGYOEWGRvIa3C/DSDYcsGw5Q1D9JTx8cuHl9n/8eIZqeQdn3Jgaw8X+ps4FZOz9XVy8SkEvpU1Tav1wxiSIdog0NBsNiDj8OR50Os3n+WXBhND9fHFkYVhKZKch9eo+ecDr/zGOmRFL/p3GY5Md4yoKWnpuPK8alGqv0yDh9WkYuFFA40ofrd35vfaLt61oQwf+pCgHDYVk4q3/nzA1OV2EMJ9pmhmc0Tz5oF5tkKeXVrNhhYul97Uua7nyUZklWunhFyXHAtxwT8M+uK7cyBNSbmOEj+M7Z/ta7X8aRb1X+oAOF2GEz/KebduShvUe+2Twp+8GrWHtN2CW8GTAxjYZPCw6uDSSZ1/6UHKzif7ymWgYrljfksensa7ynSpvDLjZJs6zFSmtoiQrDrTFElfv6a87SrNRLoCciWIDG183Ga8bj+nr4zc9IqErSNvq2bM2ZiIhHKRN4MT5Ks1hoW9mf+7Sb8pLlEBb8Q7SCUwrHOs6mIbRmbjoySIYN1r2dLdmO9wtkDAY+WYU0CIzi6LAvu+1mYMhdauOFm6yMyDhH9WH6HMPplP9XHqZ32TtaPC+QXalXc2Jc1aVfOC1EQjxEH8Hg+JEY7VZsk0mZ1LPO1ZsTQdVU6pL16fqmwmGy64aSm8UdrsTwDdVdomqjTIVBjIm1UsXG+1PoXHlZAfSllXAW8HGnDnbUkGp3WdLm21za33Bvp5Htj9seHp6jVevX+P161d4enqa57tthnHc8O7dB3z22ed49+4dbrdb8afZLAzZLBOQavfm2qXJn9u2T/natpn0Cp1aEnJiI8E1ebjbcID6SZMv5G3SxIUfi0APDw94eHzA9rDDHnbgYcf2+IBtfwDl8mTUCV/QbxwjZ/t4c5XYhZLJb1d31W9afaL0RzY77bAMTMmuN87acCSu2EeuUBMMdxydzL0YzLWHX333fXzn+efbb+Ybvv38Z04+BzWBbTZ9wX3yBHnji66fdabtPwHw7wP4JL5/C8Afu/s9vv8ugO/G5+8C+J05Pr+b2U/i+T/8WToa2LDlLlGVoX3JVYp+xKFxYe/OHhq8qY9Y8cEFYq8sYeu7PS0wiwHh2L6kLSo2TsNz5G3NBttWwNHHuK71W0vx9BK3L//wUe6wo/lvx0uR/pWjZGV10tDp0+yrspgVLJdwaPaOkkV9QgO24sbB7En3ZqbP153kpLNZtG15kK0JLbrxRA/gvBwZRaRL9zSA/TlCbTnW7jEb2k/yfBn09bICIXA/cUuZkDU4IlyJ3y04eAgfOyKrxBmjVYY6DwWam0NQo5qftnVcjTkEa/JQBvpew+SkSBo2rtWSA2ybdBou6FTw0xWLObX87AJDp125PBtx58Ef+mykS9fflb6nEkiDtC6o0uckwRExDY6DjjHXZ3Q8n527akNho8FnW4nnxtee/87fhbu9jy+TFsbAoa5rUziVtXt3siaOC39AbBTDsQYuqsSr8NTwTZjj4YxrHO38rbl+luNzidXm2LdtC+csWw1c8pEz0hNfmfGZThwPdE7ZlFdLFJZZ0JDduSZS7UPpUA5cZ1cIrYRUmSAoHSl4Fp2cPOIDW6yvs4BnJnWYdYeUCUUQmImROt6kSsoXHGV/7ZdMiGTiiLSRcVxdqcdX3SN83nk7eChthKtyQ27AlaWRJiW7HvfLNmkZXOI1Hs+kUPACP1PHarJtXaagWDOgDslme43gJQA1NiScaYvVNnD4EB0mBxrT3miQl0eHQXhByOL5DmSr41SG8lzodgfMtpp5ChhnVX3paJf3Jror8VhsHTzjs/rg5jfc7wf2fcrzvu8wAB+en3G7Hbjf7zAA+8MOs1kGPnwGIWOMuXunV1ogkwmbwfYHlNFaeXmGXEM4X3k3yRY42Mcj/uz776QNd4syVfLYxVXJM2RPkyw8xshh274c7n7ZEqi/bdv02O9FnLy90e+TGQ3pW0bwS0viAcfJ7n3Zt0VH9dgAye9VLcZ6gwlDqdyyRiYoIQdVhW6Xo+9/+B6+fv86/uHTH+JHj3+MP//u+/jW8zfjUTU6c+3OTK7ucaafzky/fH1p0GZmfwXAD93975rZX/7yJn+2y8z+OoC/DgBvX300yWeGTVIklo7z9UXjlIczXkTf0ZQY4CKJ6GngBWbH6b4qkjaibO/lll66Y0vT2pcXY8ctmrorh5c8q8o86/kdbdwlxyJg6yAc0K0wqbSXbutzGjUtoTC0nR29C/VqrCubJspgQV06YzKmaKxgDedktPel7RgsX2nLEYwzI4KMhb2YwaQRY7tN4QZBtlgzMv2zznk6i6IobOO6uFrZIxR/qAxBaTJJXDmqrKz5Hul0uQDAXmxYa7KMMFuog3vb+kYPV2phltVp11kuy7Ivh2jzjjPUBuV07JloUCM15UWxc41Vk5lPYtQUOYLndBgF+i39gnqWDiJlow45Luy3d9QIiNOVjqbCxJZ5qK0MjU53c2x95nQvKv/ynQo2C1UV5IQjbux5Bl7l6HdDXUdIrPc0371y4ezMNsMxRpr1enNIGbLSiiicTown0iw3g6BDzNnnibr6fO2rFM8rHKpOKFuieiZ+2owZgryecjNJpoIPsAyvBfESjCufZAmntDGGZrIdCqjLKNTuqfYwfbvp3JDJhqii3WjOOmebD8DmDF/aII7p5JAtiSxlwP7Y3Fc69Af16WRxkyFbfymDjEWfh7LgrA8kYcyzo2BT/Dfb6uBrlTX+54BZlZymfcpt7XHuO38qXqZzqQGpoZIU2q/+5c2ipOog1SErVqdMV9m/tO3FGdvSL2mWXCB84WjoTXs2Ui49B8r1U/3twnNixq0fk0L7EBqFScW8RduUwlnjL16c37hODQBu0da2kX7Tfu/7JricCRofmDPHY+qlO3dytA1Pe82g7eYABmzbwbJRExwNgYU6sLCYWnQG9mPDm+fXE+bUsQ3jy1ibIMtzvDdnv4cbtod9eV/48vR2BBzeZ33XqwdOldyjHUmKxZmWamsJgfado0i+KtnOFRGGhOvqqsTUKP0auxC5O8oTYFu0mRE7MEHAf+LhzTd8y7+Brx+f4P7+wKvxWBo3/oxY+2osk/BZeaXp/C+6fpaZtn8ewL9iZv8SgNeYa9r+UwDfMLOHmG37RQA/iOd/AOB7AH7XzB4AfB1zQ5J2ufvfBPA3AeBbX/uWx2+CVH32/Fs9WGrKfX1mbY8lQYux1+as+uvwvmTUeRMN4QWzCtN12+VccRwuv8tGCEH3y9g0nAE9/mgo18l4m7h6ZZD5aKqKZmc8f0jDgo7DVEJ8rtnN1P4nHBWIMgMkhLDFWKnREr2d42GgNGjI+U4a7EXwCiKkhKoSMa6VCkSJMVWq6/a07cqsNM3hWckJ54AlYBwjnOGj1qu7yIs8q5bywunxOF5AwXSngRInQJInaT9tZJPJUa7lhBqor6goxVa2XYTKHSuZaTD7FfRr69XmInAadXatzoXOTFaXbdNz0HmZ9yKbaHO74vpeCn91atffzKpd/lv3KeMrfXT2tpBR+os7QlrqjTEsd2Vj0wWnzPoRmiD1usGQosLbb5SDEiNdu5dyS2dEdNAUe+2nZEAdknJU4pfIYJPPaOwNXH+oVKsxtLOoDLJ9f7m4Na/vyJ16ufB+MHNfssVt2isw1V05E/QzArPXUqTJE+QVM9SuqlFKKc5G6gKrpvn7ySaJLUynqLHXKpQFJxuqbrrdMsFawq90JUzxbeKrynNzRBpB2JTBok8Ba8lPA5xyKlmxJp/kGziDOS9eyoPuL7Ag6wFzbBFMzmdkM4YYL2e/POjVggTQXgv+wwHdtq1t/z4vmaVCzaK50ISbkFUSaln7Y4nKaacKXOEja7Savwgdx5hlWYmnPjuRVoGyTdhAW1FjSmy4x5p0b3gug2Lrn5JlsyhZFR1plcwwGTO12mk5i5ROT3Y4wkkuOHRjljYOi319nHp2S53GdzNJsBkOp+5wxL7wgA/cMflzsy2n6vN8sGVDftJ6tj0xUcevlO4eDhzPN4z70RMliStd0SdwNssSHJAiGTPDo47YuPLvVNeSzJloDTm99pG1yie+z47lt+Sy/mbarRjnRfs6qi3GmvtAZILIz+8ZwE2P3CGzlepnUc4oE37i2TmUFHjADcMGhh14tw+8vb+ulow7h8uoEwXnmcWr60uDNnf/GwD+xhyk/WUA/567/5tm9l8D+Ncxd5D8twH89/HK/xDf/6e4/z/69Rz+z3ytyZIUcDJWEIVOAuJvOg7trZf7OJeFAKqs1nstwBP+Ez+0X84+xNgJz9a4bIGBRorjQLfjXkqaTW/1mLxb7V2OwZa7NGBWD1L/luHr75bhRs2W0CF3NKbUoLD0YeGmoy+9nHpZhtOVSynxmrUjkLba8A6Q/G14WbVY4mKhhzqeIO63/EVdE7qusuS+OWwm/678q4YdzYHrSjCVoTBvvWqy86Cl05uzoVROphBDZiStYkPeYMAetGo86uJwCAHS4PAZ3faeuF3kpmS6Ltt64LJZwQl4bKOt7oE6omXWLNpKvCqDOsp5UFh8cTrZ72LpmqG8MkCpxMLQhlZnJYI3YzvHukVJXMLcRENwQpuStmzVAz2wA0FJpBefVom0ox0SjDkjEEVDEwI67lcKYx18IDbXA02hKtozuFjZPOAw88zGDylvnGOhk0xn2MAylXJ8AwxuxhF49jFyh8U0rnxp3dRowff6eSbXSi/pGgY6WRmA5jPUM+KIKW1MKa2yLtzNQCe/Cx0YlIpsEFrnNnMB39x8IEZCHWhoB1MbIEksCXrlPnljjmdL3k91osSwktf5njin2TdHO5F9LjVOLyF5NUnjBtc1ddJasdjqUgZdZKf5RH0NIgNLCzqxkzWrXrMQDiSdJv7LhBmUSkLBHFfxRiUZyuallJavwONEintKDxT28lPrO3lG7H4HajnyzgQHQLUZMhuBKwPwCiT5eG3oNHWhSzMFQVJYzt5zeG7qowGYfjI4dttK1uPZa7d/8u3+kMptOtQ+133mWjdTeWLfe7Spx/lMCDa3XJ/Fe+SBcR+4HSOfnYd1z/JO27esJqgqFk/5UpyfJwY22DYiuN3RA21itX+u80DJZyNsgSZTSt4K28ExjqLfCa8rvoPrvHhQqUI2J7tUzFCz5SddLEPcXuCHMPiXV9nG0GOhPz5sz/jNN/8PfvzwE+zY8Cuf/zLejNf4+PhowWD/1y9guLr+cc5p+w8A/JqZ/YcA/hcAfyt+/1sA/isz+w0APwLw1/5RGs9MSu7SVQbH9Rmby9XdeUSxbPkLIa4BY+DyUqdC68Xr/uq8ePKP/p6MmUqHRl44CmTyviDzikzp6FrBeAk/QizC6FXssTJ5593sR2Bff1ND85K75SgnjgEkh579BbFa3xng0Emvue2VDuW8Ln1rZGX1fHdqlEhqTfg8lYiULulDGXGuirdUUZpSxdUXyF45sNXfhUugUNQH60qtyQNh4B/h6XNGgrN+XLRfqnB23QNIDRgMqPUzVpRRxzydF4hDRCNPLyffv8AXA2O3Foiss2w923jFzfN6eRMRJB4muSfNyQ+GMg8cXkdjzOrGDY0Lyd/aU+kG5IMVKIjQ5F/vOKtuKzkjCQeTfjS4TH7XTWcENDpgpEXKBGWqaQB+K3g94SiuOQdr2ma4SY5lvZrBGoIpXTW74sPz3J9EY7g62Tt3Y02wba61Iq0h74Y8O53C6COVIFnVRB3kltbKdzJO8cc0QeVbczdawoXzidqciXBU7FpylCjnjLwj1lRZtju4S1wESaR91+mN6ZAaSeWLMqZO4bLNPUiFBCTaCoe8bAp1taN0qMLDYXGW3Be+oC6QTRhAnNWxAelL+No6qLXzm2FuA19yZ4m33jGVFmf9HVeObtpfcU4pY0y20GYmZBKgXjm1yYfifBC8ocmy1NVqRxjY8YHkwlM/s71zX/U8GUjTXk0CTjq9S4gMhl9jZ0WT5NMGmamxbnvLT9RWywZkgkR4pJ4o/i4dOTcXe7B9GXPXuxVy68ZpDh/AQbnMjaBUf2riQpMHojetnq3uN/jhOO4Hfun9LwEWqV6nXCBm81SWi67dHxLZTd0sMu8O2AxwX1oX2jES8GGWmNq2F9+v/mf6Chq4vdhFrtfLNvyqxLbUiSc2aZcsX6YtMmlrMakN62qhxUR8wbXhZjf8/Te/jT9++BMAwLCB//ujf4C39zf45P4xDIbvv/9FWa5Rffzk4U/wo4cff1EHAP6UQZu7/x0Afyc+/yaAv3TxzHsA/8afpt0vvobQxlrd8uywPvbyozNDnIIv9GdPiqllI+TG0s4Xt1skT8ODZp7ZpDgAyEyJOjNlsDvcemUmNW2vnZlPfmj1xm2IXZE1pVWjkfeqUZMHu4I+fYhvHmOdgjbL0agHJYPXFI8OvgRT+1q3fCdAqfTtTLuZjZO2xGFCe470lOw9DW0q36RcgCsUNsDafIUXgU47vSyKL8dLTUT8FG11fUmbbWm09MQ5lA+MFD4HhsVbVv4bSCvDvs3F2c1R9mitlRZVgwZtHPF8KVbQICW9LN9LufXYkh+xfi0I29wSRzNCjjq4mzgdPsJYAbUOs4wu50ZrDHVY7ohtw53GzskXlRRICopsZHAN5PJR22S2JcY8YoyqlxJHpIHit5O6nrFtzkIJIbbN8rDt0jfVUAVjDnJV9yvoRF1lxgrea5llQFYz0rWToIl/vzW5TtMf5T1M7LRS5uiT8NvOw78HINyh4y0nlTqYC+6jvQHkdvlJuMAcHQOzbEM/g+dOidfgEbVuVvZNZ2EyX928h1La+ZMJvry6mPSrMZZuN22wXUoqbps+/+qB61P/VAsrsxFUznjM8Y8xd+vrvSHLvVro5tRfI/GSyUgzrMpy0mBLFOnsUfkDhPisP4UsUS7lot9QD8rVSx/r9wqe6121AT1cvJh5A2oNXQ1o4opbree9mGWe9bVnCxs8yaNKSk5Vt0U7wFwHWqyd41K7r3NrK/T5VPBA6upAX2oSqqEokzWbNsQlw56JwWQvL/URDV7Dyo7LFiY+BnDkM1OxeuDbfGDYlqdQTH4fqZsZtLkz8BbdC8z1YWNgHMeEIxiLZXEezDTGMa3HwwP2bUPjK9/KfwieOe533I+Bbx8/h8ryMWFoMB/AMDzse54tt7nV7KXSO5BT/imv2HiLfK+0bNTF6Rf3DcCBcRxiP8tm0G5mgiqqBtSvLb6o/lttknd4chsRl/c9+BeLCbxWddGOfDD9Xi/R1ly/OX8/7MiATXXoZ/vn+Gz/HIDh0/0zwIBf+PBt/Nztz8T9d/iNt7+FD/Z8DaBc/zgzbf+/X+pcpvPJfyK9WZkBIlL+pQ4WDrv67Xy5/KXzocYc58xvy+yss2CWwj3HUhK9mLX8lhAIA/N3VZNNE8a9wUxLYy79fj3kNGQNdFPboCOqoEkVeBuQN+U1z0CCEPF86evlZJSyaG86q41NhIe4rlmyqzWLxrEByUOpuM6okT7VGMgdZgITX1dYlraDHuqQqJOdAd+SdUTUmgcBGl+o9tKxqOJbr4rzODCP9SNaNhWqsk1/eI2HiQezLO3yzbBHffjmU1nbFxw4ctwP+DFKIdNhVt5WJRAD9thVpmZqOHjH8CibMs6YlCNQjoXM4ooB4+YWOvNaDkrnRHdPYw1ZsjwNZeHrnFuy/r0lJLSLmu3JzORyKLp7nDGmmUa2yV0VUfRmyalT6BO/8/M4Jr25M6jitV8lQ30mst4pw+ryVgXHc3ZwOmUVflnDl8n343DYVruN9gRE/zjRZ3LAeuGrXWprQ/nQwZ6lppvc5sxbtWe6KUU8OfmLayTSOwFLtCz5YyJow4RT02rpSxMWVElX6caSAyFJwDAy2XAqLTGSNGa9mNgoI9vtjQQFFbys/AYJSkWnKPbYBxvbpDyLtDHSfJzgmd+2lrAlnGobeXYXtyDvZacX+jkWgHOmTx/ZFvp3nZFKNMY2/5+ipRZN9WeXJGEDTN3l+U5f99mv9GUkGUs+0XNCkXBrv/rF0vinrvPokwnIiIRyfRD1VREzWnIZqvByimkzUu2aAa/Xa5SvrfRqwpq2X5qjjGSSEqmTfOGh5B2liSMCtSNjpDEcN9zxwG3Yk+e8Zt85ttQJBGZgM2B/eAgWEfsWeKRsOGYNKveUAAAgAElEQVQyyA6dmEjMFC4A+HHHuD1j3/bcIKWOtXB4BH1jOA4beHjY09aVHVNbdiEP8Ttna/mOo9aqlf9dzwuUoRdHJE8XmxV/j7Rb3W8ePHoIwEy80Be4gDVtU9E9VE91ZiIvSJENHl4w0fQ1f/eVLRGLLK6Hv0hsg1qe++n+KQDg09efYR87Xvtr/O8f/Z8Y9kIp4HJ9pYK29WqOOEr405ejEV+E8Kqd5ReoA6bR/xfCYp3hqRjOa8ZoyGqxg65VagpXFOmESlglwZSSK5QhN0OrF+cQRqyF0HOVfOGm5CEr9Ua4ct2aWcO5Zyf1rkEUB38vFJVBUE3r6M8mXOxLnhc0NPeQgMp7cxxbwqrT8FOA5d0aRSStxHD4+gztm4lzEW06+VONOpvx9tlao5Uhm+2P7JrGkWsNOJejZtLi1w6qQx3WPoRYGyGGlBBTgTIoTadbgzmhm20b3rx5hddPj9j3PY14oTeYb3FYLMZ8v9/w+efvcBueGVWTfyuonoZ7klq0L1AbTnA9xhLQpIwK3emY4IJWWxi8LL9z0uGKJ2dg1PgmdZIE1mItOp8Hb0RZmeqz5PTF1vdEQ9FtBpD1btN0ZhHoiAyThkb4675zhptr5NIxRTpGlfmfu6kdBzP+3SlY9ctsh2PeUmcWihwSqcTZZqTxbLdE1PLso3TM2RAPS6vsRI49HWMvOCEJCiYzdDOJZBkRKJ43X+MGYC5HZLiigkINH0cGVC68RcXNM5XqaAHRWUV2QLLIKF8j5bVlz/NBK34mbOLEGvTgZpP21hlqZsiL0yhXOlHaxqnyB8/zKR26yW21n+WG6jKFTcrkiuCw7EIUYVv1f74If6wTq31OEmWz+oAKPniIMsvnpFxPtYlaQdpP6oMGhcoiu1da6itGGpGUlWDTPxr8w6x8BEkO5cyjsh76M9kZDFscbTDGxIW75xpsjoFuLOlzRrmdfiLVhg6aY8ggSZSg1QhzNroGlTqDNKjDtxmUGwad7QwMQgGKKsh1z+64H44dTOaxrXhY2Gun7nDAHqf/sds8LuDwgfvhcGfwJ2Pdqkiu1PrZ8XB3HEf4C5vhT/ZP8fXjaxMP3JWJaPSBcR8YpmctMpGnbesUcFNU7blJHr7fFu9evM9xIcrQDZXA6QWBnjRVvp9J19ShvLfatezR+vfUa+UX9HHVs77cmfIm4yMPmr7TcThBVkl07L7h7fEGn+/vFoBXugIHBn797d8TeT7LydX1lQnalIgAF5EjlTWg4+5O0LqDzs/Y44t37Avv1s2+zmZ5Px1eyTiBzCUlF8HY1aGMTYIMloCxITfts2ZHTnBah+1qnGS+pkBUkVovmcpAeojjASw0uWbBdBApqD2Fg8qwdxMIflMHOMcm5ipLp9qc1syc+rzf14N5IUiDFNFfaSji93xn0GiX9WVWNkmrCvBFrvL+jOvzduLvBnNgqgLz6vvc3VS8FDXiIQOQeGJbG2Bgb8C+73j79jXevH6Nh70sF7ce1kx850/HMRwfPjzj3fv3uN+OFzhHFfKESP1vrtW5wk1vxeXw4o7paq8CaQNk9oxYXg0d4au1KPwOsFyGKNuwZ2m/lwMHzDU6pQD6qIm3IJKu0Uy44+/8zPELdFeLu+mU8Z9goTKP84NlWyY7ndV7zay7y7bYdaO2Bled7AmDboFucFlzEjNAHmVe4vRSG+jINMZom+U058gbb1OPmmyak7PF7m02LfG67ACsnTuVkIhK/pbP5j/kaMiX+Ctyy7FIgCxNyCyb6BY1Mtp4I26VJHXd4LluTC87HbVROlodLm5U0pzoOpit9dPWPOZOn/P7nHERrXCRvJuvyS4xK8zxe7Y5sxLt95JdHVy0J7uGzvEF/0QQ1ARA+Sy3NC2YWwmiMGHZL09ZSzk6jbfL6pYKoB5qozDDLEO7ytpbJmJ0DQDtWyskyY+x2UXwpc7il80+X375TXXV2RpemiztI/6xgF9FrJ0X5o4jdovcIgkHmxt8wOesFGfCfdNFCvO8Lo7QfWAcPhOTC7+RDPu24eFhw+PD9C+2fYftM1jabPL0h/fPeL7d++Hjy99slGNWZJhN/tt32Ab8/be/hX/2p38RucdD6K9ZcTWDo+N+ALtUDCwqKWlvqqMXesS9CqrWREglOMsWhYxHGf845sz/psef6KDJymK/aFFpnbrOX6uXLtBXRgypmOgfiQin+Hr1K0MrW3kCul+isfDkj/jeh1/A33v7m1cgJlyeY7NZ1gog8XuR5NDrKxO08UpHaAHcQrNwyMMdl/t/Xrz7cjBXDo6u2SgYFCZ1OgqeWkza30lmlGzv/LlZagWl3MdwXEpRqoN4vlyYK9uI4XBXrWmwW3fSlrquAeGSFZr90DHw9CeACye/jc7ab9lj4lYypxdjW6+5W5Jk6dZ+WuZjVgjpbIMH/AmgFU+1d8UutnU1zeHxbE/lO0ejuBdMOArjvjgqORQnny1KCwxHjUzYHNa8vPN9DlfOxNHZO2/PlUkxUYD2sOGjj97gzetXc2bKfa4/8PMmHypy7sDtuOOzT9/h3YdbO0vqcqGzI+WGZ2y1UjR6GagxpqEFnwfWZLvuJNaJad3RTgcJDRueztWoyjOzNFhbOyJCe5Z1D+7Zfjn6MpbgNZ34rRdE93DECfaqt0yeZ7nofKAcxOq/Eg3npFHDcTybPM/3MWmSRl7OOCpoBCMZiCwJuOBraqIay6Ihwomo+2I6r+QhnjGYJJlL5nU8XZk3RNWGHqlcrT2XTXI2jg1a4ClmM9chlcTJv5F1Nqu2vMGDdq+UDJlCSnkMAjf77YbuvGkAS7TCwSCfKcoFlrY5ifuS7Ra9yjZNpUtgT7ojg4w2E1TaA/2y5W+tb80ZJh5iy7aBRo8sRQXSN8iYPIM/k25EMJfRalKoEjEhPzq+xYfo6KASG320ghNF/Zx53xqJe0JD2g8dPvuyhGkkH/SZ/Wl5rjZ6K3ii4TaeTBIsJd7VSPSXQXokocM+9568+ETlYMVe+FBjE7Hgs2Y1Gt8rwDXDphuWhDyPODyes7fJZTZxxLPZDMDTtmEbjtvtGdh32JiHctc5cPH21mtnFA/rT0wED59r1HIgi0Q4yN9R2gqPEsVtlu4Pj4QH2rv9uyV+NeE2P2/X9GvX4jtwcxI5/oPjok+1+ttJ8TY7WDqIQbiOIUxSbwAy8zsqmb/65HzFob2VPNjy0BkD5Uc82w0/ePp9cMfbNifuXN4zB2spm1+G0359NYK2xOuilkWpcmyGl3eBZGM90xq/Ujmd8KN9dOekGExK1xTmdkBxdz1wmdGs/l4i1Opo16Hg8x3XMeSYSkla8pqF2fAaixe/ZgafgWi018Rk2U53GWH2p6Zen1l/t2JZgd/SMb8yWxo0ZPuuRmq+tYUyrpkuS6cmhZ1wi/6vrKWlgWswikOzJGE7nNGgGjEAESSJ0yMotY2wXRgzq7Hm97TCaDdJu/Sm2otdGSn47QkPs1znPdb/cDzsOz756C1ev3qsdVT5b80k6TUzno7n5xs+/exz3J5vAGpjg3w/ZAkI/rWNGIsZFw0Qei0TUQLBzXSaNdvsGVhQPjiPlkYAcqiuIY235T/TIB6HZfnUxJeV7vACY9U3xKWo8OQ3Psezv3RdGYNVh+42J+U46bB4wq7XmqhxQIzopZ9Qch0MuxRjFRwwkf849BhIXshqA+onm6VViC2qYZMXuGZNEyNnl2IpL26w672QXzKYUfNQT8RYpMQvN8kgklIXAHPWwpNfGia7lZdn5r9bHsarMy46MoNtXg4H+x5SajgULpfNEMhYDUmt7VJC9bloqRtneH9f7Z5jWV/EwRKu0OFjNF6rdgP3GnRuSpEF/qQZTvfMEDOCJVR9LRM18JmxnTKpwWQqj8CMKe/ULBht3zQXrkPrcLMjFLZzzGpzoGbH9bX+kFyVxhBet6mLLODiRi6rTHtCI0mtuLeh428mwzmTWXQYdDil7c2AY9TAMllDmEVHMSGlgeDsRmyfTHNXwo2YJ02Vb0rf5Vo36+9N2d3meV9hW+qROcvmUcpflSfU3ZRNSxtTpfZBjeCrwbPZjnvMhgLALfTt7EvP3J0sce3IKo61HNjGgB8D/9T7v5g4T76UoY+wm8MduA/YHpMTFjzQ/OPCZV/m0/UUWy7no9O5X5Y0N7OYZSveTRR4vWsLeZvdsjnS8tsG4DWDmCCKjKWtT1Vggtsq/V99y5JetSf626JXasRwzI1IPt0/wwm/0S9hsVXPteYvjLJcX42gDWel1eRvuW9itDJji9rudml5+X5hEKDEpb3Rw5kbJC1IKnipWPhMtZtgpEPg/TfVQWd70yGvf7qwiNKp562B3szuhVFbn5l8xcy6gL8I1iIv59/yWW+sXKsRLPwZdVC0sYnX3HDFvd3iO2mcBDElnBDcqROmCKfRDkcEuA7ULgwsFVTijE68Z+is3RerRPe1YBhlixo/liJqXdMgLuOu6KRw3ktGC1/F91UeRojNDI8Pj/ja197i6fGpcJbN96x4OcIzq/f84RmfvvuA59sNJhA02yo8neuewLIWkoNBlp6lJOMkLI6s/QfohMz2tk2n3jr/9/WF874BVcooUDtE73gZboDJAwgeSlanGBWNnEeZHAYmVrqMNhBPMst+PPblbvIqtE3HacV9Bvqtl/ifUcPklLkzJs/SQvAjmRI59iIGWoDNx8qpmxHqoVvwS+mVmePIZVaOWbjkAZmnvkPrIeQ2+TmQTh7y2OFznQUrgFELeis4Vs+onGfpX3gyZ1GEB5KzrMoTy5ld9GvAobNnSSIqDCx6j7qHwTKzyrreLzwYb2NeUEDsSsLBc3yW7Vis30tiMXha1M+c7Q6Zz/0caqZx3pcgItd4Bo6d27RU2zo/wTWAFbhRb7vI49ZpxXuZdBD9wfPnZAMmC56mfvaFHrpxkV6arMlSaB/iJ1BmiyaaLCsb4tJe10+l0WMDqA4B4F4zae5wDGDbaybNi2RkrVmuXIA4tkiy9YANmOusps8yZ1H8qAfIOxM9JjPPTF4SQZyl7+NMGT6VeheNy0guinMx1uadR7qdhKxLr7fNbG5dD+AYA8dxx2aPeNDZ45TH7v8dqfNdjy4NWaj3NxgSZRo8iNPBdMm2b4A/AAa8ev/UxiqLBWRMxR0e5UZ7BFA+aoY1R0Db5LLMQfU5n2lwSgUJysbV/cTmHIWPqNDaTnReXXdtpz4T16WQJw9fr18t2Ejf6szDpqSdzDbz7Q5Q8BFEXntN8YTnf/vk16WZUHJO6yT+z1WV4MkWX19fmaCtX3ZigJeuLBG4wEFr0VaiXD1D5qWyuW5n9XWaM2zyaygVKtmN502pQleFL8qY99lW3VHjw1tq1MQ1W4QuM1/S3fJIe1av8FmwvYBChYul/Tqz1kQgANlO/QYtdfc7vswnFkdIFW03pgV3v+9pgCoe70rfWPPuQHp7thoX0qg7cFXuwrEXsyi+/UJpUr8lWjIjXLMWmo06DTAckqSxFZ74zoryMtYdm3RQtscHfPT2LV49Pi5O8g6zIXJaMI4xcDsOvH//Hp+/f8a4H9058BrCJsaUuO2zYCKLjtp4pLi8oYHf+kyXykDx1iQN2+l44gL5CYf0lXQnzNV8JhRc+eOE7cIxM69JO6tYO52A4i9Nfpx1Y/Co8EqqhuVAZs1jNIiSFlaJhCDAZnPm0p31RmHgrTb44AxqtTqy3wyIc7OTyvF7GMCqrovZZwDMcvvGwG6UfhHFn/JKXlH5jxfaFtMcw6iAo+lwF0fVe5VB6RniXGaoB2EnIQMjhmn0RcxYyjY/S+mUEqW815XgQceayeT7aoOSw5WH2UHAUuOO7LVXwGArTMGPaH3UAxy3x86trawxO3JMx212PriHKPlSaEIVnet1jDIR1S9xDgYTGOVrCneJPJZcdHwaEPpW+GnVMkLSdQ0t3/c4SoPHfpACJvpkjrnwobrvJRfl9HNkHoZjbhaSCPSmONMttSlL1qLtpV2fPMDlBNwqPrfGly4KIYWFfbOcO6IGkvQq8qw1AGt+tmiILm/UpxsXomjryN9sK12Z8q96B5BKFUu+Lx9gscMyRoPh8AG/32B4yA3CAPW2Fh3C+yb3l4sllWnkEv7ObxYw2+MD4HPHTWOibpsDWY+pS71Hnj0Gxr7Vbt7dFE0SBI4cReNNxlD2qBIMTDx90dUDNK9y09MzCf51OwpsfK5nLwYk45i/Eq9iILA1Hl0pVa9vi6w4eJg4mNSA4Ru3r+NHDz+S9gn1bLcOCPqC6yUExPWVDNquSq2KSc73gNU5Ov9ujVDtiXguHKZ06rw3cIIRLQBag7VyZOv30nHW70sgkEpIU3UoOtKR0r7PsNWdpvz6L/2d+KeNCUBzWNEKfZqdMVnPs+XNwl0zlM3gCTxmkc2odpWBWyaffS1j8OWRl9o6K4AyBKdrocX8WBk7ne1degSNVdL74llDOX1dEa3P9XEUWFPTHrGjHmDz3BcdZ9K/y4GoN1Fqs/Gnxx0fvX2D16+e9C4AYLORu8J5ZJANc93U8+2Oz9+9w/PzXc7bCegdcqZWlOrBAPNWCqKy02YRGJCsBycTbN1MxNSYrlit/GRhoFyZVn8vd0/Oi9X3WoOK0+XJmC4yzDINpY1AaFo94NmOJSqrzEKdKV1bUv65OksFA+V2Suvsq8oBZf1NwF94odM06TccOJx6FmhEQOG/5M4T7jnTSH6OtXfGXU05YCFSeEe54FyFwvX54BvBXRJQcSQ63zk2mRk4eznSxWqnxKFL/zBgTv71eo5DyMy2y496uXSausfLPlB3rjupNJwswX7yRkhvBD0OyOwQh+NkSMG36AsAbc1PrIczZ3Ix+kdxThqdgJGBjualEyUSnJvINaxm5vq4i2bG8nvraM03FnvKdW8AwuCN8h+ir+JqKxomS5VD6gHzfKh0ytW6Sy1b8wy8ZuNzMxCxWl4zDldl6YLZwoghZ5WiiYIh26vRZdAptrwWUBhJXE2kjNcYFLJavhDjl92Mq6zTq0H9k2WYJa81YOKLvHm27mzKtC2za67pXcM2w4659u24H/B97zuMIvSgyOfVzOTVxUSUfCv6BIydYI4fvP49fPfz76Re0QmJk9ogTodjYNrsuUHX9WY1rgBAj2SJdniod1oMO2PbOh4h980MG8akfcIutjBHXvrghDNBx/nul1/etp7hWJR2HENPZWsLlOd5FZZ+9fPv47ffbPiDxz8sg5NKddlDc7GtTf9/wfWVDNquAjb+7dOzfP78/pcvmMxW5L1yOrTJ5XzMRWesWL7Kgov98xKuUvxltI2f81FRhdbbm7zDVti7ONfe+8yVeRL4Xqk3jmgs48gspjyoTF3GPt8on8gre35Sutqx0gP1POFcUSuqPGCMWaJ2eG5/KmFI5bIENG1XM8epUxmDpREraFqgrsPyWK+0CK/YUXD2ps4Nq3Gln3OFAK9+N9borQ95uuXlwBgdDmbQ5rtPDw/4+KM3ePX0iH3bar2EjJaLsIbPnSF9HLjd73j//oYPz7cTA5WPkOaz3UveF2PvEOWZZZOFXz1oOR3hkDWdy1k5XB0KS7nfTnJhYeQ4gzl1i8NdHTOrXtyEz6mzqucsWUlHqM9OaSwBqDMzf9isj4a+XcHGgBYNT3Sq6AzqTplFl9I2G6zR6+HhoQfP48DhdexEvp8DUH1Bx2T+OOnD2Tx2UcFjlcVK4L5NGhFXFfBSEQrf5D3dxp44FASnwip93GQj8CE+EZqGFcJqrJiJRUPwZ2UptNwc4E6IRN6iR0rzA5g7t+77PAfpfj+kpLccKJjFTBWRKShInqvNSebvffbp7MjoIAWdSTybM6c25XGOnX1w5n++O/dHoKx4yYipJcuUATSYpG2dZK1g0JIqskmG2krouX1CzBHrf2Jmz4cBIPydFh0XkYgDeY70WvVu/Gpip5PPWo3NBMerMrNbdRmL8FbJFntSmpFWmmyz4ocYIs969KS6S9GYmuQXbDYUrRMfIxI5J7vIkZOWyRCLjObRM17AEpAy9CVHhm5TksTn3ahU71fx9jK2Kx43g8WunOO4A9s+SxblmaqOUHvGf7Cc6wh5p3B0iWerpwccP3z8I3wX3wmURGAzmDiNVr1WoDksN4IYAZ9tewuYrnitg+LLjSkrCFnXnFOOpPmx9T2PVFnltSUtIK11/rjyr1/iz9Z8B0bul5Fmv/NcyPWIA23UFj6Zfx5sxy+9/x6+/fxt/Obr38ZnXN9GPmjOQPgNJj6DyPNL11cjaDPAbYupexE+cIxnRcgXi7hipQBxYF5SNp0ZrgJAkw9pzhrHaOlH/Z6LxYsMwgz17zRlVnSqfy5Gmi2d1L3mO8ImngLfdZwqZGtnto5HGVSfubi60yuG0mQWLZSx5SN9zqOPjbCoF3LuL2H18n3UMZbBgPNzNB5NUEgDZnxFxpWe8iZ0E4rK4i39W/7csp2FJnHGU/PVb8nGasM8X05Dvu7wdMr4eeHadNx8ZzO8ev2Ej9++wdPjY4K5Wf8LzOzvMQaO4RjjwO12w7sPN9zv92agNMvt8X3aeBP0GJEmPB/f3es8wtR70n44DEppBkd1mRgRj7HQMahqcy1/VgPYdX3AJXhe2568s2r1iYcsCW3OcmUbWZrEyQ2dyXWhWRkigUv6Ut+zG9JSdgzU+ayW2ZT+26ajclo1QxyPDPbXiZ7EJ0U/+jPIuWnxPDeiyplYlklvNf4KoJVIdpZ1QywnYOndVmKYTFKwpW9IRgu9xZ7nIcDL5h0iC8h2ehCLOBQ69a2jHVpfM5psU7LtPHQsSr/GOOB+5FEMTIj5UKPPdifsusaR8MlD+Tu/c3MkyJ+merNMVslc9KB8l7BGeOKhO7bitZLjXiqFkEknEWM8WVPY1JboTeqTIkbpZQZ+ou/mbKrLcOdmRCx/Y1B4ulqEDuRZf83uoJJInDEwxA5+c2lAaazZXtuBN/nbOHqxhRcgxSBSr56uTnfai+zTyrppDxY2ZerhftRCT2aE8lh5DPqMChrfEh2aj3Zln7mZhElkPCBW/eYXLbrAUGWr1HdkZtHHXjjVJRAWJTFtVoiNiV2qVNxWM7Cya29DHdYvcmk32wbco3olN7xU/E0aMA+U2tpjm61Ysnl3YPMD27an3ahqIMG9Ik7xTxn0DTPwOqZ8b/tpXCJu0hz7Y6MaHPkyrkQs1G++4vDeI9pz/sL9Pl4XcR8v0+RycKUsH/0Rj8cj/unP/gIOO/C/fvzrcBs49CxMdSgoM968wBevr0bQBiy11mdsqVNCZb86b7zfHZirq7PVmnHQzECxr9VvS134qhjcBzhLsoZYTaEYyklKopXS13HR12pJEWPWvoyXBk1NOTizz9G1rRkLGta+lgOGOHhW4NPxpg6mgSoB4/hfpETqbpNWv+BhgXMOX6evLZ+yFwwbs16JX1cYgJb9PBnmej8NKqGWxfOE65S9Shusrs4FjGJQ+8t2/q0wAhiwI2ssm/CXQ6oK+GwsbTO8fvWETz7+GA/7dKT6uhTH5oBb7JY17rgfB+4H8Px8x+12w3FMp/IsxXHQM+GS4TDrRjnTkrYyHisi41n14PhY7koWv0ltPwBo4FLruAotzDwndl2fUAe5BKBtKJFnRE9jlGsghLU6Beom254GWLBoce8UnJavUBUGFYR6ISTfaDNYfF6ct7kuKxatI7YAyRktgjspNM8/nOsCRhwerXZpfqw1S5MesVPnSTHMPsYRhrnIlHJGod12LXGxPLeSpWkOj3VkFttrx5uykwQD4tyGP/ZeOQf8MfO9GRSdlYizpI/SEoKyhIBKM++pN2RC0HL0VVfHuvbCCwPdJEvpoJVJ1hJM6ni2MEe3NRDXS2e2q+25tqOSMEQmy8S8cJg1dSntHX5pljhJWmyo+nxSOTYzcXnRUkY588fH0/hlb5oMMz3rdFHB3v+pX2VDtErYXMjnRF7xZpoXLUOW+anUgZGJl9/TWq6gxO+n41fKOiccqTPAI3Qsfqc+EzQ1W4OCkej04gvVWaoHanyCoxOchaf8TJ5lEnBTjKqklkZO/pZGLbEQ4xR/xkh7BYc8KnAbMAOnTLoRxECCwjxaSN6atIV0Je/998Y70c++P2A/gk8M0BlnRaKh478057QhM0F2xAHc0r8oF6FkbxckR9kVPw4cY85sblucdrcOQGASLio+94Hc/An1txoJu8BvTMScNJWffks+aUG9+CkGVJg7hHn4vxij9VJ/Uz7vtmP3DX/pT/4Z/OHjj/EHr/4hfvrw2VzD24JtysTV/Pv5+moEbS9CaZ3x2oGKtvzt733x1U3ES7NSyiovPXPdPA871FZEaIFSbmFMKkg6m68MFuK7bE6ef92pyD0ZMxlaapfLflX7OrY2xQ4pMfPCVZMTAdmBtqHOhGluL15ICGU5/KS0f5bryqivQdrJ4VchXgxdGvn47yyA8R6z4xds4PlsN94Z4CU0S+ZHdQHPHaOdyPeRvoEFLdvZOvJ3grHiAumnpN8yCQtm+Kfh3vD6zSt88tEbPMRBodT8yZp+YMAxBteAzLVz92Pgfr/jfj/SMYH050AtxC/r0aHMMapiFufh9F7HbSJPPArnOYrCZjorLRgqgImj5fDW9VqdJhq8dBhtQ1/ZYuoDLI3VOM1YQrtYPEdvS5U7cSw6wuXZ6z4Jkgao08F1ZpLpILpnIsFc2y/6kh+qz/nO3ANkyyqlFtgoc2Lq9zZU1DvzkQgOAEl2IZMKa4KBOLfeWOHvbNur9+AlTeipzoQ6+BzCFyzId8WbL90aZ31Lj1eQJ3aIQY93ZyM/R2AJWCbfgCjnhaojfvD+bCqlZKjG57rxS43LJVCP8Vm1DUB4+aynihrxTc5fdMzDi5kEgmGeXk8alxGIsY0EPXWyXTh5khRrNsjQdnVrAbA+I3o5+Z23l6M/uC5TSy5Zwo/EAHlOZ+8l6QZE4FZ2RYP1NstGuCV5Y7DcsvG43gMAACAASURBVB+hY2u9GtIWp+VXAeQ9A7BotCSBYVnsDiV13RA9VcNclGjaYR2dCLHqDyrMpL/n/ZZQkbYpy6a/0fbk39nfBoPHLPd0DRx+BA9tWyu/R5E3rrkoNmVZd1x94Wq+7Yo/ZYZ9j0BTAlEtF95qp+1M9mg/mFUcI9Zrbts25SyaL7/VlpiZGmW9DLbvGOPIaoSZzFNZKvw0/gobNPX6zEgNGIsLqHSgEqPjYVzQEWSn5yav8wh2PnPWIwWXXQ30hcsppNKrIB8DP3f7On7u9g384NUf4Ldf/W6AKXrYC66Xrci8vhpBW14nc42u6H/2li4Z5LKPc1+rw1RtfAEA663eRJwHYvlo2g4T9bw6atBsQyiNpZ+0H+7JO+yDiotK4AoVV3E9TYCZL76JZDZMS+Xk3dwm+2zcayQG3co3lTQNoj6vQRBotyl04UyV19I5ZkHntNV+/r0ZPZPPHr/IGpAMyPinxlmlQwsc8i2D2mgj6WU6ZsGfxSZQY2CYAVnupdlXCC21ULZDqDaB391mwPb2zWt89PYNHh9yuqH4KoDaYrfDDfP4KMOO4+447scM2JrM9DKUqX+v5UfJoc9RoabuhsqL0qGUX+ZeuY2zWRywi1KMQhxTIkzAE6rutOnamkLiZmXQNs5Ip7BJRjscxdxcQ2S6Wpz0zXJIKnVhEl9/zq68gkXb2vEnkr+fOCIKJMiZcG/Zf83aMSsYFQaio2qWLlsWSp51Xd2yxPsM7Aa22J3LNuvbIedAt3ZmJWdwcm1e2sj5wXRXRm9dR5a5zy5OQZsPXLFpznY5HVxplANt2fqaoc2zBuXMvXIm4x9DOfwD4MYGdLCkVWhSjjJaenny4JaOdukMOrU6t0bvaIuz2IhjJ0KTeFbDc7UtE5CJ01lhklUG6/luYsvm/ZKBVc+Tb+gEFr9brgPk96RF4wPRD0xCeK0t5DgnnwhMwnoam01cda2eOoU5yVxLWrZYrR7xSB1F6fTsV21P6SzPd0k7mW3jO/G+IY4qov610orlH1qTCcBhQwNGuei1Q8YjOskHn1kQhws6YDrzLbEoqCFvFWCebbXzOV1eLASJTlEc1mxcwp/qMAKprIyYz9VkXvE3MT6YYBsO53mDqYAUb54Ds1hjrnTUwSdVpZKghhnwG0tUHTe74Xdf/T5+4d23F8KkONdOvi/Y3LQZoWtGyIht26ym8SnPRM7L/nThyWyfm4yMEbukT9lKSi3vrm2aWXTnyIThyXvp8tfrTjouLiAEvE5kPW1s1xpZ7wU+bEdjUt0O3oQXGhyl5/7s+2/j9fEkCDAcOPAbb//B5RCvrq9M0HZam/QlgF+0oG+fEzjoTLPeJ44vRBylJLWHpXSSSkAeYjXHFR+pA9jrd010lSjui4BNp7LbQBNGGYHJr6egAuUoJiSlMNvM0dKN8plhhftcn5sZQislucI6bRjLNDVbVso41V1o6BZ8XhiQNNaiBEqQyylZx6VttalrQWD9Vl5DJmoSdV7GJHEdpYCxBe7wo8GkZZzsLndNzDFYbctbj59KZEZYK9nVGgDw9LDj7cdv8OrpFR72PZV5VpmbSXBugA8cY/Y8jjs+f/+M2/Nz23Et5UgRAGuBacJHK6qbjAi7pYtC+YqX+tqFeK4xdKeTBjmBETgPe5VtNxR2zVQicJHw5wHTSRkZj8ANjtkBp8NpXR7BeV5DzqSQfwRPbaZH2nB4OjX7BoxFUais94yntydYtphynBuNeAZ3ura/cESZnkC39Yyq24QAbMvbLwbE9vnnxfFeKHb2Fbvq5SYYlBnS1cT5QX0mXKGjKkBFOrpj8MBtZcaSOhXuxucZ2QRdHeHE1+89ccRA39twE74o9ZUIjUpkyvlmgG3YN2B/esSbV6/w+PSEbdvnO/sD/LgDkQV//vCMDx/e43aLcqaW/VdnJThyhQkApCwqaSOsmX5Lk+1lrEpHsYPuDmzzcHsGyYDFDCJlb+7kl1duf77Bx3Hh/HCWo1tw2lrlrRxOC1hR9FLTEnppknW2l2stHVMnt3JOYnUBTz4XhGUvqmtTtoNYEQW9rTtmWXOpG75T/oTTflzAA8ud4xvOeQZf4kh9BdKfCSwTq+tLiWj4GZVA6QFp01WiZxyebFggkEBTSVnSQQIAR85Gr3RnO2JlQg92febu8HFgyAY81QDaszFCGNuibsjhcDY0fl5ma0gtiAoZNvCDt7+PzTd8+/nbqm4E8rjamZQCYuBzbBtsAAPHDNhskzXEW6iczhu9NV6laKduH3I8T7elVxVWOWcoCYBti2UYV8J3HhGK30ntZvmCz6iOkknRiKbjMtQ9tusHwGUoq27QdvKjrNeLd755+2ad5hQMvH1m+L/e/CbapgwvXF+ZoO3la1Vx/sLn64G2RcUn4iCNiLovcjd/9aWPdNZMabbOIC1QhhYuBwMVLJkIF20JpN59GfX1OOZTunZp0TnyRfKtwZxOhebV3nQM5HXZLlc+LlcxXiqIBLQ9VXqztPr1GE3eGef5QdNPwhZiolAWVuRNBY9/05hBnKT6qPdchJfOHHdanM2llpBAzlOAHR7ZMR7Q61LlV7M71UOZaFV+M7taCOWMpw7PULRyAI+PD/jkk7d43Le5hi1kYdgGGwObGlNMB9ndcRwH7seB5w/PePfhVjMgHcVQQhAWNUKJRyVY41WOmQZcYaHHLww1IDtMFiHHpTycCe68l8qaRN9zDCRfD+aK3ixt5KxUPSezcFd6CJadp+ESuU/VkHwl8ArGj6UER2cxNFA0010NC9550pJXQJv4jGIgOXeoVKqjdiQMvmsHUamiKFw5IGtJSg9ZGLgRQeSmGUwi34BtL91OHZKzjN7HrviIEYneMWw7JIhHBo4MSt0Lfo5LZ2k53r7AHovjULqplbdRfyz2Id8p6OPvBphj3ze8evWIV28/xts3b7DvO9w2bD4dFo/Dge/bPkubx8DDwwOeHne8e/8Bt9uB+/2O4xgYRyUTuh+zKOxATtm8ZbdIUBFZvZBDqaCaPDfP/V0PbkHxUQveLQ7ADjlSZ5q4ZvnkiISD1+O5s+uGTDAQrvQ5C7x5i0ensDvayLQvcVBxzlB6BS5qLQIQM559JVzBL77AoWTIz21+DesVEiZCscxVjOmcrxsZanrV2j9q26L6Jm7lbKXQT+0LW6y9uTzZwSPQzqCSSTjqKW7S5H3ExZxqaCg/bQQhS8h7yU+swgi5znv0t8RrYD8efW/5PY4m8epjMX6Fh/oH1Jydc4UKaXu0ukcfC/uwA7/z8f+Lj376Bl+7fQK6XIQz/aqgXZYb6kWbhblWHT5PTNw81qXFb2VjKIuqIES3MXEcSoSyO/FePEId65oUCzrPHM4GnsO4bcDQ2Sziu8Gks4qWNqrzNGECFgUX7aqNaiRZrpxWL3xc6Urob8JPS/tznbrjW+Ob+BX7Zfzg6fcv2ujXVyZoOzv+K2KVcxfNClGqyzXG2sZVf9rOitR105H+jvsFXQV2izYbFKn1vPMeqBwLltVopXKHOrGzAWauSukuY6IxP0HJvusf9+ks5XEHXs4Fec/k3kXyJInCtgr22bvBS9GscMgQzPqNnLERAc6s7TJ2wqCzHoL+eiw7F/xkdpsP8F2xTN5MSr3HodqqOiY+ho/g4C1nXzxTmhD25gBnt9OlXltEo/lqLHWQE/4NT08PePPmNfZ9h+17ZRiD5ogMYu6YFwO+RcD27v0znj885wGhlRUuOrdingvZPGHuQpfq00m4in7LfqsiPhk6RWg5CUDxdKO5IItsW7/50mYYjYTbU1YqmLALWSYMgTWDyBedkL4uQYNW4vVllIX+yTUBLI9ywPYwjMnRZfq8+DagDBkeuUHLJkGl5wHabMGbASYOmxlNhcGbE8npyMU62BmAjT4ki/IyygrhSH3EDGvxuuK0yi8Fx3q232LUBzf+CJhs60GgoPryaut542HOUpxcH/5jVUZWpVPZIrbd8OrpCa/evp0za49P4A6f9/szxnHHcRwYBzCOI4JYx/awT14wx7bt2HbHNraZjCF0bWwiC0FD3TjLnKf0lf3VhNWKHHWxJppljsgaJspOUf6Cp+YMi8xWZ5RpiauyjdQZXnyAAR9MENBuki8LwqY6lOZ0/AIeJhSq4qOQ0V0MKRW1jkfyBKCz5DmSZgdYOsw1S3xW56f4du1i3eEw6iOWnuL6Ur2OCBQAW0rVL94S32A+J3yE2ej5p4I885cctxuyTDsDktIonjSmToIkY0PHLokbdjDRX7v78OzHZh+Mlq2cAQM3akL9o/Y6+p4JrFGzgvQFm4h44zpdoiEoFZxEFxvwk8dP8cnzWwweQUP9aNU2A5/GIeK0uU/w9sDlTM4ObJvNsmkLP1ppFIA12wgtkBdb5Q6Am1TFjpPLGEse2dosuTZsMis1Q7meFKtxTq6YFRKtbkxwse87DI7jKAfBG0HEcbgKKDhA9+Wdmrnu+s9kgGe9sKUPAHzn9vP4zu3nAQB/+9xzXl+ZoK1fisx51blCdvnGvLrir9/shd/1b4hlKpSX3aHLPqVrvt/LlBQOlBMRn81qg5EyJr3hlVVz3ZBd8BcdJ7F6OmORAnx6bzIgcZEgWJUqrOWKZyhLMaTehUdGtcqt1uuLKAtQ1I0ygoYeGfg0NOFojFp8WgqiFEYpMs9flPwvcoEr3xQS6PNVa/qKGCt5wN1i9tDToWxKjbgvmw8Gw6TtLGuYswxOBWsr18wyo8fXr/HRmyc8xdlbyD7CLInBG9LfGAPHMfD8fMPt+VaB8qDjznVEZRRnOwS0uRSkVsEo7NhdENKsnksZjb9tFy0v2ah3+VedHVWw1wq6lR65l4zmTGaZWranMzwusOoYqowonA8vvGkAVzmjTkeWF12AHNAQmZwxM3EORpbLXgw4HA2XwEFMslMOa2wvy23dNExH82zsy3ng48TF3NVuK/2WLHSWozUbn3pnSTqUbij97CMmaAJnHntjV/Zfi9yDhswqJ91MYBLZy9dCM7qjByiqOcnflv3P9ifGt23D/rDj8fUTPnrzGg8PTxjD8elPP50yeXvG/X6Ekzhwu91m+eg+M+dz90vOps3ZUwbkjkokUf/XullPVBftFv2ymlPqT9LGqI8Z4GxJo1KchT8nHZegiDLUkhzRDmfsxnBOfEWbW1WIUA5Vn1K/0nevDNQETRzW+W4pYhc89LWFynXWZzpE1jNBc2HQck5G5MyTNiVTPXjKOfBsPu1etF4bcYjOWXgRZnW0RA2kbmubix5Kea2Ir9vRNZDiGR+nhEH5CUWSWdY+C4IWzZO7iRTpfXjOjHYwQyeaYZ3Vos4jOUxABlC8qDBaBbNUrXlky7ZhjKNVFVsg7rSOs5AXKCKM6zVH+Htvf4j78Yxf/Px72FY8Cy7NKiFgAHzrySQP+77lWuAuBnmWX9it7GdljqYT+tjaLsJ+HlY9Xoym+xVsrYS37Fkf8YoBa0IwjgFWxtC/XqsjILCerobcxSbQY7lKXF3Y6n/U6ysXtGmgss56nYOTbizP2ewXe2nt8P3UqQmDME9zqHprKtB9HApnwbtAIr9MwtMZnL+QGSS7bp0xdTZRbeZ5vCVM5NE6MqgrybYjj+C3YOo9lkKe/2hte7vUWC4wnzOUZVwLg/UlYXdvMJWhh8DgtSU1nSz0sRvQ17XRYU2reFZGa4aTA0qeiP55WHYpimjPUbtWxff5yEjFUqVonnXiibg0MCMOhy0noJtvALvh44/m+Wt7zKRxwbI6nJplnAZ+4D6A2/Mdn797j9vtlsGEKZmTHgsyVjgWju/P8pPesWteEtlv4upoa2DqxfNanDUxQmNu8l43AWcDOkaUXPEtZoPNslwzF3VXFNecgs3Q114g8B9rA06Zw8y4Dyi0Tu/zBLuVc4py2vgcwTzGnD2wbW7j35ym1XFxTIcrA8+STROlmk5M4GXLtrv0mCpXE71mdVzEqg9qgxCAnnf5wxVAA8ETsplJw/WItqiRU6eyz5o5zWAKesV4BMdFgKInTM7jqqxLBn7bvoVzEjUTdiB20pbga8PtduDTn/5xBGYjNhTopae3+1wj+7BZlSD67Hb4gGPu9jp5qAJ0qt19J8+Rv2TEiw5PZ80QON9KTQq+ikeJAi/mUh7jODLoFliyRE+kdEhChQmowGnBsfClnuHHhiRhNZ9ZqCyVN0pmAHIOl1Rr6Dij3QxcITRzbfWsM8uBFtwJvUtAy2ZVEqJgIcyDjBA3lAyB4lCppQ8zdeF6CDjnRDmDDNmcZD6zIUELmCRV19S8lNTRNuYtwQfFM4BZkzqrdWm+mwyWAe8M3mTxl9qU0IHzCBSDehpJ5UBqljzPAwmhu5232S8dckzX5RpK9OqKggM1OC0XxMAP3/4YNwN+5d0vFzwqexMJNfHhArtcczZtZrAyXWOIsQg+k6kC6aGvci7Z8ql4rHRSW0spSQ5Rk12xqj3I9ZmO2k6kI7U0ApEgtgndPrRyztTXZKIrYHovp3tmMcNbCWRrz/fLY3xXa/y+6PoKBW0xPG7YcDGQXucvghjPD2yA3y8TEyUILxNBTVQtyT+/k2r11BGNhLCTMHuVhZSzEGqxZcQgcK49z7GquiRjEn9so5x2sYHqJ/ShGZpgNmss75eBKci6jC019DQ2oZDnmp/CXcPVFXCL0Sn8ab+m2h10sFIe+Z7Xoup2KGsIqdfHaWy2MiIvCZ6Ov8PUb3Rnv0xzLcwuI8Z7M8E7oo5+y+wqgHDwAy53HI5UGAh8WwkH9n3HJ598hFevnrA3p2nuBLl76tbcM2qMAYwDtwE8357x4cMNz8/94OxhQpN0RAAG39WVGI0FJ9fSxc8iQuQP3XTF+c/sbM06178Ip5o8pcHpKsvX9J6b4RkO7gIoBmW+NanIktEyrTT8BzjqdUYu+TwNiMqhSlSHawvBHeOAI4+Nb/CkEQ1neoy58U1DMw1veG2ZMCARlxkrEp082Mu6TOi1gG5zLZO7ZQJiQ61fqzW+lo6Mkr6c17Os5Xg1AztFB/0tLzDpLVg9nzjJ/kvw2lq91TzYfL4qOuU54dOrxCNlaIvdXCk4Bzc7CFyNMfD5n3yK4xgl44G3nK2HNb2ZsXSKieVzM5CdwfpcLwbYCP2y8dkYmgSEfa0er/mOHy6DNMArgIin8lZIQ9EyN78JnGdZ4VkvcHBjjJJfCwIovE20mQ03IVuUay07UZVl8vNQ87FV27BDrZVY5IBwQo7UoeFBf/xaR6KsfzjjI/hLaQSgZqT87Ka3Z8Umzx+pYKcNmkcOWKOEp8yFHdPpxHhwQ8h7ufTI2d5oaepiSMxkKbOqYnXpB+eE1ShyucUJYb7yTQWYzVnU6K/RyYPPSh/2at4Yh5B6BifBB9ShpFGDJXAPrZwpsFTiTuMitnbgj9/+GL9jG773+Xdhvukb0V7YG/QVdes13IHjwEZ/2gyGIb6htX0i3Ies5w0A43tL2kDkPj2lvqwgLE/OcVWwLXQJpV3+bE1IdHe8Y+CMdVWQ+Y88Qd4MxjRAj7zoz8q3TJaUjbyGyS9oee13rNdXKGjjtSK/ZKl8sxocA7GBDRh3+U0Zf5lpQjHxvDz7dVysBQpGTQc+9YS85/35s6IolaVn0fAOA7nrCe4yzsUMFZhcGU/I+NL5gtWmIl5CZVJ6elXARLDXUrKXWEz8k3x2rqsQB6NuXTa0KhbFitqF2R7HXD/alO32HIybGlwALc9M+F9+KA2p1XOlhgTeYAP6jJOHvbKgQDOEjcTpgKEcWeVfkF8g+87XtH+1adgfHvDRR6/x9PTYDDPb3wHURhOGYwzc3CPIBp6fP+Dduw847geOY5ZTzcCbjr/KFYLFLZyILXE1JFV7NVsLR1bKcHTlhka9ur3Ec9XmdAC8EcNJNzd5tkrFWvIAVyxyVUJRijpxD+GPxMlU/Opkr8kAj+c4c0a4LDZBme8g4ifJztH523bkTEnCRiFgqaYDfsAQ8khcOnExZ7SOeFYPGefMWwUEdK6n4S4kU4BKHFP/KKOHLMC9J44DqSkhzrKe0rV8eDfRE/l7p1wcES/BvZ+fS55Vkpx5ogaRKjjp677wn7RDl4Hrd5M/nLMYVRVwHGMmBdwFhrn+6H4MHMcdsHk+IgEzQBIpsy2uBaQuq9VngRcrnOzbDrNJ0eO4T4d4OMZt4PHhIYLI4i0PmnF3bkVIyoOR/wTvsvtGyaPg2KY2MjJP/gYp1fPWfs1Q1LPJW8kvEKwXzWtX9gmbHiXDsWSw6bSTgmfubLcoDW5GlvC5p/yU8RLHU+DsBV9qUc5GMvVB4GBucMIZwMWCKilaD50nZBioIHC1PnEPZb8aQMITHnaCstzzOKXdXcbeeophUz+mk066K0qTJ3CiyQSPvLPBNtnVDy50tSbn5dsRCA1GAPNZTTHPk1fdfgWCo0qtKbej0WlFYU+OXFm+gN+AP3jzh9h9wy+8+w427O0pld0vupj4nf70wMO24NMAsx2t2ivkbU7UefqYpNUWwTF5ACBeq9LFjAeG1I7FZ76jTgTaJiZthLZ8jm8a/S+4q896U/XS3BilDpCviplripCHrvbDkJn65k9X/19Go69Q0HZWSkAR9uUpxBjgOACUYF88gZXIGgya+VysafSBy4lxIA/49BNhPZPQmWloI7pQtmEIOttZ3cux08eRNgJoHSLHYWIYW5aitbkoFKOgWipi6ukT74jB/Vku9jzKzp7xIPjAAutsY8H30rmheGN9eyZ8PA3uashagCzK5IvGeMWFbRdNdQRMevA5zpbMlDFNyGoHNjPLWRRVcKU7pbQsy8AIR4YkeHx6xEcfvcHT02Ot+QhLZ3AMC+cr5Gc4cD+O6fiNA88fbnh+nmtl6DwbuLEMDd4cCzdVSxmk9k7L54JucXJRMqvrKCpGorxsFSBYGbc53sIdbazF31pMzue3wp3Sli+wJa/giMZllYmkIY1J/ELaVbt6MC1lkzvTvaTbBLZ4To2vrlM7PZ+0IQwbamZ+vQh/v8vxmHxm2wzYWxxE/oudF9PXYUBjEnTpLrvBu7MJbpACcM9uMy5K57olr3VLaybTOcMcZTC1ih1JLXc5W4u8WU7ZFY9KI6i7wbtfoi00w6wnl7WAwrz0ejoYDFzn7o6zVHYehKs9UCZW/qBjsZaqqxOjNN33HTDgCFk3B+63Ox6eDJtA3pNkMvbshrPJMhTKLNfMjNJ7qcmG57lpupayYJYf2Ibg130ssjT5nzseOtDoyeNTKolQx5ZUqVfprsxNqO29sO+9lylzI531SEEZNSn1FB2N3pImmIpvOhCULXePA5c59nyg+pZXyfZ1W/AkusuSHkWrIizHIvptQUdCutiylMeTbxC2sNmMsjcapVWSGdImYdcZ3pVOSqGpL+bPPHLlWie3ZGDqsRIsUthDl7R1zAie80h8xvNDiFJrrQpnV9hcfWKLBNvvvvkh7nD80rvvovPhbGvb1s351kveGPN4n+nHWA5wHJ60rHWBAAb5qzYawWYh12g+aVY85WAmKjmBkDLi3Q53GElnFZyuo/lU7oeQv9vyzhXTCi8tfkFVQNn53ROcJSs5wy/+2np9EXWAr0jQRjvVZ9DOoL/s2zBXw+eUIC8ZXd4791NKLbIH8q61TzjzyKWM+YWyf6F7AbuxmDie87aXYIiymN/PO67ppSWOlQ3tQ7L1Nb+mSW3niwawZqhUrqs9UT4TqBZwE6SsO1/7SCNU73Gr796XzC62X6EYFFp0Z6QZIm9vpJEjuxE+jx95wC0DkSuj4T43DWD5Y6CvkaTQPn9Zy/KAOkxTcbQ/PODt21d49fQwD8YOB9ZcM1qhZGN9EQ8PHePA/XbDh+db7iA5x2NlR90zUOP3Sa8q7/LspWEz/i0lrjNQ+ZSXg1NYM3oSL6jczhf8XD5G4V0LUzVg4yyYoxwWOi9ArYVoY6IjEoxaitmaPlntcdE2HG+EAx8DowPlUKdW9CTxJFk7U5roxSTC4vBdlXjRSQPxzU0q0s+1nG1hxWC244gzs3xmoYUWgLVZIaWJarU5bk+9Q+M+wtpbHPROvGeQuui03CL+pID4QA9kdXa+ZrgbuIEfZD/ZH8rJADxLLxvVGYiCfKH9i2MQ9J7qYe6QsT/uc8Mh6asRBROWAa9xi/7PWQ05U3FdE7VtO+zBZuA25nb+99sdD48PpacD3BFliAW6FS6Mzk3x6rbv2HfL8QyschTOF3XM0Puq2CkYShNv9KlZ78Uv8PAVzBJHV25FBTTaQvWX0JK1XN6DZ6Jo7n7HwM1rNo/bkvKw6RQ10U+JitBE2WlBRL9plv6fOan0UIefdi7hVPRl7SAqWRM7LPq2Jx/w+YxjGh5W2Ra4zMCF3IEuAUuUosks9EJfDmYNYOdrk9P9KjhhW6uVpfPtsQX+VGLhB1G+z9UWHskN//+oe9cmS5LkOux43Krqqu7BAksQIAiQBCiJFE0ymun//wWZSTKJpgck0URJxGMJLIHdmemuR4brQ/hxPx6Z1TuC9KGRu9NVdW/Gy8P9+CM8Iob2FWkHrCne9Evw3owx5WXxHAt/aECprdr4icaU/jEG/vLjX+GwiX/+4z/rdCdNB2AS8NDV3dxbH9/NmPfC5Dj90R0eNg7xXQ8L9GYYBu3WwY4A1g1wiYRmsMCSpJ/IQ2Wl8AnezENprBeq0ZzHT3A6MdMZg/ffa1vSWtQp2WK779Vr8usV3mg5O8nM/nwTThuAxtRX3+lmUn02XwZ94jYD5aL68uarbFedYlA0Y/k66r4fDKZ/nsbYHIPe79U3GiLSnxNTS6pLjpeiWMbEbmQ661eliFS7AHqaqGmbrUQbbjphJ9oUDqeSUpEyUMlHeat6N6Jk4zSqMqosbbK9IZF2Gt/sZ0K36fysL06in8C1KQj0cbBw0kuevD4huMqn45gTtyF54hyz1VywmrbfCNKAyAbjSbfbwP39HYCBYwI2HCP3FvR+O+R0FKV55AAAIABJREFUM5/weeD15RXPzy+RDukpZ31InK9V2+Hs867YzjxTDpAo/PxmB3xspfmrJ8HWKubY3lUZTQ6FEAtAj5VX0KDSjKrGKXQfrT7f+ka+qn1r9XUaLkqgZhyGAjAs5T6XwzTi8uBKNyqlnX2PtseNBgZ5BKUwQsC6qhOk8qprGRBx3D2/t4jAwtsl7pW+5PDjyOAQDfnFB5Eq1vbI5VrJ+n+LXlgt1XvsXxoL3UZLu6JkJYWLtOCirxW+LGtJ+uAxdK5r5KDA4IxSa9XN3Z8d9D2CGSphrLefaoitLFDXf4RhNNclH+PuTpCbh3yEc5Dp0dLiVExejZaBJqOReeZc2RjAHeBvnicnzuNYK3FKhxQlUTJSffFf0GU6jgjscGqzD1qtl/NN3GHfHSZpjUDzslHyVhTVf+vFJVOc25IFog+rzhM1BZ/q3sBtJYUpqRxf61jpRVtLChxsYcpOz5wjSFvrd99GV3hTXR1meZqw3UybyAXoQw6wWWP2mhPymAwjnfvQcTMd616/pRFQQdWmK11+brYJ+T9pe5KVeKtOQ6k5jH9W87EXy6w7W97b0nl0OAYdJV0xKjAEHVZiJrMAOAc1z8Ff82COIHJ1d6yzHuc8MPaNeJzDNG7VGe80WK+ltATtDX/9+EsAhn/+4z89qdFlN3HcwOVGQEnbLNty6cBUs0cEXm7haIxabR23OtiI20QEkKruTENeYeQbdaF7+Kkz5g8ia7Ot1J2zyk6GQ9l2G952OqpkbSoaFWRjW4mt3PcRDnFBqkufok3VJRIcURvuOoxUzzfhtHVY7c6QEjAN/yBuV6RXte6f78S4KufdWZHjQdt+oN0r+crT4FXtKCPjCbwTdOKni0GSo2rIJ4cAuFLRwqEbkmOsCiV+5v660rl7XcRNdkMVLsfjOW9WONv1aQFaNMjVIbaf5ZJxvaVOnBz07HSZIiPpF8qHSsX3OnrqU097kCaKBCdxP4s/aYpQJGWcmNDFZ6R3TcdtjOWwUTEP5QgxHqQhXqKdbQGZ/glz3N3f49PHD7i/vwcB8PC4n+hmsNgv57HC53C8HQcmgNeXV3x5ecPb6yuOuKl5OuLwEm+KmQOigs8DTozTIhLqnJeiZn6bc9gl+moVeNk5PdWIVfDF3NxPAzjBdvHoyAt2qgxCIemMFt/WDFs2JqdQnbR1fZyGj2yhSP4HDYVS8OwjyT3MMFkfLfEMi0tUrqxbcP+SS0Wc73zNGNbpTnZdaRDyBCweCQOmDqTw7DvvHeMcrnnzOjGVJ5tayBmOpYgnVx66YWjxnbtj3JYTUSmA5AHHkRvkq7AJ8Z1GSbZbj66grIPjeuK7CnyZ4PWzvq5/04BwbxHrqiXNDDBSTd1gKJw4jlnOkjvu7+8jWj+i7CwjaE1asEDNiZBz0S54NJ3meOGYEyoOiaQGjLs7vL28rr6+rUN07u7EcVMwbsaJ6ihixOqH7gMsOu7U5C8ugUVDOW4QR77qo1ypiVs6rACEunx9VCuXy4iuQxf6ivsQvl/0sbxktNo8B5dVI9fYNACczmnSJUbLAnItSPG5VJ24vL6b8d6gbOeplnx9LXnMMDIpV6vOUXJMms7SS3zqBgXib+mHGrdLXYt3c5V2UVjmTafTCyfbs219SSHQ4KZgNbEvpgw6J6pgeSqkL7wYGOuArSxHHUFA8G4QgNkYsv9LGHlB3gpijRF3lYWuyIAbNntk+9nHHG2aNqUBq9W///C49rj9k89/gBsvt+Z8DQaQGmEu26Ray+81kYvO1eBx+rTBeDp1cL7r+5WmO1BXEcCYNumZvTGibOONpFRaWDCpR+UIUuZM2bPuAXrKLbbf9hp5l+Ci5QE/RvD1kIMou+yo45ZBktRI/O/955tw2tZTHW26AAXG/PzyBoVG15okdfb6d9ft4fTtXh4NOPay2kyXXddZRiqkeDcNAwEJddZar7c2dyfX5fNlkJMOQhcne3gaDAp+JRTR5w1EFSrPBoq8tHWXOMH0qvxQfqZC8l5mRa10Tn05IIYECK3IoO2hDaCgT7BY+77PufZnH5fLZy5txpd50qPUOYbhdquVoRLdqFkAiGkU6dxkGzRqKj3hw+M9nh4f8XB/DzOsDcU5Vsu2Fityf9Bq+TgOvLy+4Xh9xetbns8VBw6ok7UBeU6INQMjadDmxXJ405GrjBkQmGLMNpZSAicaLnCkEUtlv6+gsHhEGD3agZViZ3LisjNmgnFGry3mknNrljK1HJazQWHGJBDLk/hS6rzjCLtYsks8EJwQo+MUvMgy63few+YSHDGkTbbRR6Q+2l2rKp6KPVdphI5LHkWSDBhuefjAGIZ5HNVHKrBMRyiFmwEfcHVptbOcoEhjM/IhsT1wUuYE8K36DbiEZmu1zooETbEKbXP+Kw2JHyo65xHy7YoG0xIc1t5IlI8VtjnjgltfaYliMK/u7BoKSce9Zr6abY/YsxMdGbexAVbN580A3N1wxNUBx3HAxlpp0kCTKgeHzHO2X33d0/GSL63LjzprCQ4hrwxi1QqurMxJ8KMR2z2syYWoPdgj9DzNzcUT43bepwelhbxjiRi9Lxd11ffEdwlIUfYoL1arwZTPRff6Pu0Hk2aiCbMh+7Atsdj03QgqLOy66Lc8a4q3oAeAWk0MemkfcgS45D31tCr4MrKtnYhp9Hr1P+dm71a2ZcETHnp11XLwawfqLOVqiz889M+aNrlmhXNiaHenua9A7RgcT1oIfcHY67stuToxl5ig2VTVOHLsf/70lzAA/+TzP8ZwrdugjrYikRApquz03lNfc3/qWPRbvLVwf8TVQuymAUlz2gjsb+oxq7R7Sqo7llMNgBfgeVTF/uz2X1XcsZiyoRlLqQKg9nCVqVWzeJ96KPTW+uomeFI/y37g67ID30XS86Tcrz/fkNO2nnK6ScLzo8T7zRVtSpJS8RUcUmxN52C3+rf35NPWt97V6Eyb8P6u6puq76r9cFIE6NPxcq7wiFGRwVYCIccgwCnKY9kyooy9Gx7s2WRRocXujEogpX66YDX7ry+xjJdipxL0XG9fz8URDyU2rV9S9Vf4C9ImlZyHoHLc/d0eJeM8amw9X58Ehd6xpXB62gWVT4sYSsNlFznGuOHTpyc8fniIk+XqYuwaSxbAnGFkBi++HRNfvjzj5fllRcxIA1EsajDkOFEGoNrHTEUVHbcUkNc4C7jm5sT4NnE6d9F+RLn94sJNDlr1QRE0xpJsr3JaK6NUbGksnRglwLzRJwwFubvsepWO89mEAOlUsj0xXHIIYUNo4ILvEPjpdDKNK9cKxsgLVPdVGSqyxbcrHbIRzdhCV1zrC48py6TsU79r6FWHUaHDYmCrzhkHSvBagjSCkgdzwpJWdCJbqij0903mEKnT+d5iMs6Jbfynv2oAI536HGA468LL6Rc6MsiwyCZyHpXPWGVbq4wDt9stzT5RabJK16YkfhZWkX7TI+2L6XBRaO1TFad8WUdYTAbc7m6Yx4y74CbmGLDbiL2FgQfGPSwlJxoBV+eB/TvpX4v5UQunUydhYdc3OU6RYVbT9G8eTW5JF2dAABQ5Dab61sBJGrGfoqErfm2cQ7InRGdk5osoRR1fYupSWo0vU/6TF1qS81pBkiGoQZn7ZjetXoGHcQl7mfLXKOP5GVO3i4SLPrkKYpXyWuNiPaWfMsBIQ130qQwGgOfK4uVjTM1U3kTy7mqD/2xTvgSt+p39SCpKM2PrwWYTVIWYkeKeuGCSaicyLOTIZ1aXCo1Pig7ZyYGBP3/6BSYm/vjHPwo6VN889PZ+ZHoGP7RP7OP2JN5PdTE9xro+WZkCxdTrLtDqJ6b3FeHmfFaNiYNRzr3oWn0rHbvkY9dlRCfVfsJ/28iKAJLh02wMMoWta1cMac9NRGBw3S9xqt/C9it9tb9zfr4Jp01kZvv0SnH+5kF9rZq06zZAKn6yKreDtgLeqb8d/E4CFL90xtoEJZqoVLqKCKgyM0MHnOj3es3zHW3cWwOeP0q5EySkXhMlqRSgPKuIloyhUiuu6NR7VftVvQAku1F1WAJoDhgExgKxpRBGFHBUXj9Lqli0rgkdHJyDrrzVAKCM5rtswZQW1srwztECJukL63RRTTEna+hScdTOsY0x8PT0iIeHB4zbDR6nzcEGzA+4DdzibpNj1iWa7hNzAm/HG748v+Ll+WXd10RFCY3W1kA8J8jbWKd7Xboq/N/2zUQdVBp5fH0YmrV3SidI0k62mdP2L0SKX5K4NR6v+cprCaYnoPN6UR15/mUV2c9PJUBy5bhk1+ofGcu2ysA3rP4yxP01W2rk2vcE2KjADftyHEcFHTxSTk58RJpU5DUVOhk2hxmHJ9gtlQyN9masJvvO2neSQowGLoJOILMPXvQcTdO5ezveQtI41qJB2RgB7olESPnXyeQBAggZ3fy5jV0tsTC/27Bo8QzAC71TzxDDyJ/FdilH6ZTF/kWO5+4ujr+/0HnpZnTrgTMqc+wkTI4bG80KxSL9UDaamgG3+zvM5xdMXzzFDAFjGV1tjY7MOPrbj04jo35DNgE6Ks1R1ioNdT/erI8VfzgmUitPt1XQ961ufjk5X34mtYpK236SCrQFCPZH1VlzVqLPVhVmF7W2IkPpQk/9ppixnO/GBzpO7bPq+B1LhVX3jCZCgcV+Je7lgi/9NMa6/N2B3JPJOd5XC084rX21QCFiWZ505HI9iAMmezujrHBWFHEkJtNR0oOQzl5tEYONJa4ICVO3B36fhkPeKylv388pK7/F+7zy5Yo0hsI8fi5rjDUE7UzQ8BdPfw33A3/y+Z+e+wkUTnuNKFfxLuzdTOPVu/mUc4NGdNabYz0Wv5D/uUVnYT0Cs/v4VTYAi7TKtZ4XB/Ln+zymBM4MmpVqFkeooEZoK5hi2gZxUrNZLojKnliBi1nRc2W4OJynIbeghVc1RNE8AdPjEvH3n2/Caft6F/dHp3CvZRfAM7O1Vy5qSRDodI3vzsq/mnCZ5L3Wi/avIl2+5Y6nYt2/R1MU7HPfuKsOIvGookU6BL5Qwb5yXE7RShnjeZSWOOU7DbOZJeSiKrJsXTS6Is5jSBpNKhOCm/SH72g3vYTwSqf2AJIYgTEKG2vgvC+NZKXu4y/Mv24buMHUOAEbGkuoNM50eoWHai6lnxEJ7yACwAz393f47tPTctjGgGOlWdkw3MwwcR9HJThe3qYQbd3H9uXzM97e3vD69orjKGJm+ipZL+jSDdEi5oE4znyLBDt4/L10W4RHadqM8CbmQZ2ZTKBsWI8KqwU3NiYVZjGg3ZdoaJcwe7RnQ1VojDr3pylwE5BLsWSfbQUkhm90Q4+cVxvrvbG1vBxjuceGAR3qzYEySEbs3cO6wsHMcl+iRhRpgFrSwWrPZJCLKxMRkl3OWA7xgGPd2+PHWrUYJsa/0t6BOpadjFXztQxg3lPXDSiH4+52WycPkk94Ah/TUDNqqWUjcMNenPhB+1dYVEjU3yUuahrwooWuaoQMye/rxmr6B5Z0z0654zjecOShM7c8eEiRbX1kGcG2dsJizFukGKejhv4Y5/bqWxsda5zpkAPTj3Wq5P0d7sYtx+/xS+65Q9FmCI7MOfNagU20o6tc4S367vqo6Q1eXiwReguZOKUU9w1A8RVnSHiG16fwpF3ZY6wObtceq++lyqptOmqpjSiejP5nwKOCYT0bkfoyNUTQS1ZHkzocY8clhA5R3Vzpp8j6sj9oyLzFWjy9uRFpwJTZ6cj90gFPURP7ZYGpgUHNYeIEVmMeOLACUtscCNO3IED+wvo7f7tEThnLoF2X/Ywnj+1KWWJgQ+kG0Uf1TQbRUXbIbp9xQjTNru7GPK/7OGpOF+6wdu32prTZfQN+8fGX+MXDL/HHP/wT/N7L7wZWrzrOW44s50S5fddXujrYbNX2zpZieiyt0dImh8GmZWBg2MhsgrY1Q2hxQZwVLBhLGTr7F/N3YOGD03ESXgbCTuGVJEn/M3pC8SJ0zmqC/S/+3BMeSZ9kY0y4jdSxNa/vP9+E00aD7UpJXn92UcE7TxGn13ZmwgLDc9VXfXnvkyqokSYK5fslFDD8mlf4rRoH+bOMhqtWNJKpjFMY6dnHxXRDcbE7YHx3J4uAVxqDJfsxLC5veyqsbIMMH33NTf1ACMdZjFw6ot3RSLJu7i61d364aVZTM6ShKpf9tFo9qyFVf1zukmJUFbJHrVkQYqBdTGApi1AwA7j/cI+PT094fLjL8mbAuBVN77Bw6Qgv1+ARMX/Dcxw6Mo8j0iW9OemDDgGA4aRrjF95AyuKVSMQIM+xEQjPsqrvkJC6r+1CD2xlhe7GlgBdIUnjxqoMNnlQDKITxNrYhbV9je/oWEopNxpEOxUpFzBK1dCIiWbogNcwrEM7xuiXpu79ZuRwJv87btz/kPsuNP0RKWMpRaGAuLcsjQ4M2LiV8RYOU/ZjWB1lrRPUbYiCCwfcj+SprJaKvI8yDVXiyAkTUrnHWKlXMdb+rByJZ5pgCW+NFaZZArLyHg11/JXPdaC8aBojB5X3HNYlYCCbxeJ3kut2f5f81NKGYXVoijiZ2SOyeXPYYjXsJnSOeebuChrDeXBA1QiztffN4qoAn74MI7Nywi3CV4Z1pYjIF+sZDIDMOEEy9D5n0TDaMf856qajBEO2KyHSEaEDzaBGYq1dY6scbz954uD0FFWLi8xtynzLvBjpl/SsYFytwMuYSlHIdzKm/bMsUkEtmZ0cUuJvfKCrMOpsBBcVJgHll6D6LKos2yiniRUV6ht4B5joWN9XUV2GL/RDdvpC+BlQVn1cbiz7vA0wB0Vcm94DYWsYEqDY2uCfpvvaiLUuNg4bbHzGz8r5dOHHyi6hvcXqh3Sj05F4scRNRr/xc6GCpPoGb867iX/7s/8L4/sbfvfl50l9OLOSyoshxJO3W+V7Y0Wxk4j1U52BS7uq7TFf4xtmcUjMeqfS/Xv902ScgzIR+mF7mQ5yBs5ELxxw8NLlFYCOsTOAs1pD6W2I31eWjdqA3Sa/wGsYeJ3OMqu71rt6vg2nLR4FjXreG8RvHtwVQu+Oy1dLZxNNbV8Kyv6cPWpsoCNdlDZ6mlShSXMGAvA8gYP41FcudBwundZx6OdseTSDrg+VQNWxr9crw0n/ro97U1Wt4DJy9JSxlfohxTkmKch6CDJLCMoYzXRNKV9jMtzSQN/mzKQ+lk1pd5kh0pkGXwe/1lFvJGqP6LLs6K7exwAenj7gu6enOCGy6tqyt/PI6nV89eqx+7pq4PX1DcdxpGKj8aU9Iy248X87RGwD0E2xpCLbB9V5pjt5TDMA6vJUKsJy5JIH35FDC9qxtRYcANaYlfipXMcFNli+XwZIJpDUaJqRWH23jLeZrApo1F1oYpaGa5O7kPe1aiQpjOnQxelsQRMqJa4UlxkmWqQzWjhdZXDebjfMSLFcaX8TZjes7eGI1RwL8ggQBS3WQNe8FTbFwHjnjRoVVJC+9ctU4QG5L0z41CJJpvbVhbL3tZ2dnlKyLw18oQpr4j6nHEaxwMYbxGNrKZjLaLYTjWvlo6fe0sFQJ4Cn4HJOGSAgvhSm0UGn69MlcmHChHu/3w8oPkwp3McW1WUwB+v34zhwdxcpsiJEwypFcRWXUWbggp+Thy3+X0GFHSmQzWwTBsuTP7nCr6tnLF5VdYeh5rbjRMGLyLXI29a7rIPYlZ+nqO08vZVtTtjq+36VRvr5wmcwvHNRaqINdrKxL0xXE/EDCU1MIQhxXuGyqpkr+p6pkFzZByBZ3JmslmNJcuy3apvYORfTt3jexdgmb+yOsYfIW9LFzNaeTo0Q7c8WHOFnbmiHsVC8k2oy2UnHPJjKs0+7w00OIxwqdklLbVyJoZdvIL89h6YpZ2urxL/97t9hfv+G3/vyDxfPu5ziKL1ufEvwFIjRMZXNqzjTn6/a3d7rmAaeZ4JhwJGB6cKdJa9DtsGUIWeLeVNuTr1S0wIVxlhplLKtZtbLKUNR0dwCMBs7V7BBFYnoSJYpZ9nwHu34fBtO21fm8eqhYJdQXA3Szzhp9d258c7+guPxgRf4XQDKub6Ltq+AyH3rl06oy0f7GMm0nv11eb2AhIwO7ALIjywZySPaqAAkisCZuAUQCKlE+iwIGOf4THjVUJHodx7O8dfeOZMDNK4zFWEqyF8ILUSZQRS1vGM14hRwPkNL0GDxVjx/oxOzcVqWXW85ylGTloKkwwaenj7g46ePuN1uCVa9NQ/j7twHGl1fvjzj9eX1pBWTTRhYDJ6q+PE2a46ieeMYMdRd0zs7fWmkZKriWY9fxjoAplBuK6Oc03dOPKNR5rA6PIE1eqwgiELKVhkgGUsxqEJmH3a5y3RJcRCbuJ/Ua3CGldPGZm5xYXnU3Pq8c8vErBROYEU6Rbm0FWfTPlEuLUFu3G45vx0LSBnP+6zGuKUSL1T1NPCm1kDnY2gUOr4bhmM6bE7YGCtVJiOxRabOjsFJrrSPgEVOTDCXFQU9y5RJ1Mym6Ns6wEVAxHvzHVdWqiBXHstgCknyfiXD6sPE9LVGebuNNNq9/3NuS/7OtYcmYBE6kADfqnvWuwrXUu7Uii26zqMuA86FB+HXxRN0zbzJ0TJMR8d/RxzUUUd+FxqzdWt7thikZBCR9JQwXQ/M0R5wB1NAc88lENef1Dg55LyTTcwEnu4JiyPcURdb32QPU6YkNjoKzqs8oXI8FEc7QlU50nT5SRWkQOrzerv71qWrEPi0uIFYnedBJA+kYWqthgo2YOFtHupCJ8pnHqqY8GE1s40GyQNRf4+qgtLmKUt8DxxATVC0LTnAleqfCiUwjrZOV8PZJT0gpvB9SyaUOrV/iRBtKF3fVHAG5Sg3W7NjEvH2FFRic2CTQkvVOBbEGMD/+enP8Td3v8LvPf8ufv76O9h1cx9jYWEFVd97u1o+oxX7sUlFzHGteq/5I/2XvEXowqqOMQyI4/VT52sAzKpOvRor+WZ9AU97wcBwILDkmzoSkWmQVyUk02hGioVMhHwG03jSlnZgv2BoBUC5itdXJvfnm3DaqFTsYn5zSbl9xlJaQ9FRDZAmhA6YdUYr2u9OnjLe9j7f2AR9D0q8w6+lBMzqyNn+wrmiUGYQ5ajOayrkLH0hzbYDOHH0vAJwJY4U+NRjXisNuW9J6n1PpnX9JOlRpS7pFlNUjK5t2d6egpTlmLSJ/cnDA7SPqqs3q6bmfp7GmcAa7QlMb4ojPtPoY1PZfTTrwJEP+PjxCbfb3brglNFQAMCBw2utrd1f7AfmPPD2duDz8wveXt4abaibmNpWKa3VP9PlTpEtghX5scmFAenkeOpmIaYFtZGKMQMI0Y+dsZQ91Pwu+8rrpOasc0vRIAdaV6RDAHPtv9gmITvl7fOUd0cZUPmZQ3P6S5HOMnJBpbi+P3j5Lwecxo72H3kSZBqsvlYLIf3OI/RlLsUOSkeoHB7FWJlzhDJlvQ1ieMcVBUxcnzi/2TgNyVuWe/7WZ1YYg4pMc59XDA+a2mVjJB0jNyZkjkqb2rkLZK7CNwwPZys7iKxDMVbIUbNpVhcxA2vAPnJOOQAGyFomBmIVPKDvdncXfVLQKmFWjDqBz46dY8APzysEyhmkcbGDvTC6gJ838nGDvwtOBM9b8L+LXRR8152R7pDpODyMHjMxVd0zGm3raFS5GxCgE7hOFuZKKccqDhuQh0CY9GmG0VRBHeF9wSeOY6BW92CyyuhskcCvOrsk/zRnF4cP5OEXl3rU5YdJcc+LhxfWktrSsthAqmWUF7Hxe3aTnxvi+hDyYIIIWu16WvUEzCJYkMCDgplZV62kjJDmxiBbzKmSa+voIqcSzuXgv1RKbfTSyxyLBa0Wf87qc3mAyiLt4Uzb9pPf1NTuBSc89pFqXco/K6U8sFLeS9uXU+LLGSF71WJDCO3N8TdPv8av7r/Hf/79DZ9eP51oon+knoqhvOuzCUl4EjDrPe/h7q1VCn/JvfJW7f1aBDymw24OHyNX5VrnJ8AvSD8eMtb2vYbi5Z2oXN2evvZSr3bHOqhtzutAOXGamGiGI7+uttw9t5N4dHG4M38FG+VPzzfhtPHpDkWBxtlx68LFd1hHV4fy6oWOO7fbP2fR9rlW+TX6Ku63iiyNpX0lIWtnJC0kJKPXm46tsuuXSWky3n/l0Gh8laGxXkb2FKDeI+urn0vyl2ITcH6HplVRqGink6ARlSo8LgIMms66N5MsHnSmoJzmRZWnS6qJ1LMOExFB8gXi48R31nRNOvFmaRz3ussESNqqgWJx/G3oAk0PyFSdME4fPz7i49PTisSj5pR3lRxycsg6zGNFbqbHoSPPL/jy+bkMdkBWAkLx54A68y+QK94xJnxHv9UoqCiXVkFnwJMqajGv8e8O67aquxneBEDVnRh1+iAcrZyjVn30MRo9jvV9ndgPOmBMP6yxKf96KEWNblKJWrZe3GVZR8re1Phe5fGbvA9EtDCr8jowgYb1iS6WdF48Qd4SdeOeq1l0UmkgcTWiVo3CKCRtJRKdrIPiExq563wvB+aIu75qlaQcpgiUpGM4ejpujC8oDq70F9HTKtmwIvAm6JKrvkKvXKnhnqYN9XmNQ0kkdVJh+ZicCwdzEkSdATBM3jykwL/pJXXeLQtLZgl1QmKRCpoBtq51OJzBgEXPtzlxZxGYMHmfPNG4F1Wnezuym31iGv1+uAv5K/8OvkuAl1SVkVizaBJxlihp6yLw48AxDwxu2CfNOAdzOZEjjPs5rQ7DguAQZZYbJ1MX0ZAraq9fikejgvo55NiszGqgVuy8w4AK9W2PAC4X0Kz0m7vXxWkOsX9K/5xskxxvn0PSiEEqQ2ECdepQfU754ol+u052oA5dsRxP2tqeHFD4l+OOHgvfJ1mt+kTatzb5TgFAPU2Yo0hOlSprvpJCL5igj53+FZCpO9La3BCLuozwh1s4+vlBaDfvRM6VJamX/MFj7EX6AAAgAElEQVS6pyPnrnjQ4bwjk/qD/JPt9Ye0Pm4T/+N3fwqbA//V9/8F7o4HeUfJXPo6hKbgSPin9C0psdsFndrrs6DOyaC2VqalnNLwO9aptnn4VtqKMSdapU8cVk7bqS98N65NMvd1BdJtrc7fRtwdN0uuES5YYoAe4hDjF0sGQF+rXQG/vQPvP9+E06ZkK77XiH2B6/Y2VJgu6xY+2z+/+qzXLb/JJCREfK18fnfBoHCUc9Er0ajEii4S1LS9At+VlkAFFHWMkVGXVAQXtFo4uQR7zpmMfPk4SwsIu1Z0XYzjSJCMskP3z4DzIc5lYeqJRuzPNkAWS0PjEuyNEY3q8ulo4xwso+SL+GvIS0mLTbL4M08SaFudm7CmU8Tu66W58U870MgdGIb7uzs8Pj3i6fHDsnvmxJHyccCwIukTZQCrBT3psH35guPohKO6ZuRd6VLcriQOw5qrTUELy7HV/JV+9UavYIIYYgVkrLWDc2pNOqVOwtfnGeSwrDP5a3f4ojyVmQHtVGO216WF5tDO6J48Xas3HBvpFZQ84VdVkXenUUbyywD5uNun2qSRkxcwpnHmkVYIcCWl5tqGiTx6HGqxUt7Yv8Rgwzqy3ekscjfdFuWl7KWzISuHQAYzeKok2+hPjAXLUC+5v8B76gIXbAjncP3fy7lVk2Lmb4V9OiU55xaKv9on21IhqzPNo8+bYQ3lB+TvqegnecKqco5SAlQyhJOqK7YmXYBjrqiyjYFb6s2gwTFxuMOHY9xuWZ4n1vEUwKQrdRQEp7H2tVYin0MdANNuhpJU316PQO8UljEK6rD/Y9zOkjelZw7aTjUPlCOr+TQoH7IfTPesVVtt36OiUefNp7zDPfeYLv/R0xhUvXWSmRpFUo37NFmMwbhNzGKhv/he20iyS/UTVYdcAZ04JxxbmSxyWA4rSlzwiGpl29YyEvT0aA0aMWV5fypgoNjpwTtLPhhsWzqY76qU1Nw0lKZONvI0QKOe1+s4IGfMW1WjdZOleJ+YvqFOHzE/ZaT6qEe5e1IdougKPxq9LSUNTK0eJu21QMB6NDB9ZT7RRsjvhsGH43/67n/HH335R/ju9RMe5oPATdDcPQMWyW2ck6nj6kGI91fYonaeRDr7nKatqe8SfZuzbiujIE823sAyfx3ZhqNkm0Nkz8d0vEX2mdkBmzzNN6Q97QVef6J7eo3xlqx7yD1+J3uW9oo7DPt9f+fnm3Dazk8x7vV3X/v7pz6hniXq1aMKifXxtWex39jiV15Y9Y4GRKtaa/s7eApTCiU2Bo0umTC3Rno0VQNUGFiH45ycYlQz+5gJkjqk5HF5NxXdJptqqFKYysBHo3/1FqFsEKtF8Z4KYk1HgFkpIdv7a8BpHx1xWHWf9/YdctqU1YrJ7uQkvVokWIwwZIXLtrC+osRpIn2YMWsAHj484NPTB9w/PACwOJ0P2UYa2jmsmXPpAHxOvL2+4fXlFfPQyRFYFQOD860qsOmxkyEXSpWU474G6jqH0I2mgTfg0jkQ1QkhvTAa35EzmzbjuOlwh3ReBiQzU8tLXLkqXqQyd0OuNvSIIR0TNQgcXH6cPmO+tRMhm6SREYu2ecFSZrPtFakBpZFGhgUNyZmReot8/zU26cEufz7X/aa68UyVrTj0aWR5cYEjFLrMPedOHV1jXVmtroLF3jtI3/apUnxSSAyByeh04majelF2dRhcraOpkcaMGk1ZGn1VqfFw8A6PjLf9NQY3aj4D9XMwhoqidzAWc1wxW+pdAb6Qq1EulZnFBdkHpjNNcjn6XEFlLU1tmQlfVsYGLE6SjIGJpCjbFDrEHK4VMAYYutwmUAjvZXph7PPb2ADloF9Ohw5EyZZ/s7LNPYYeROTsP+VVVsPYftMZIeekjY2RnVJ29Jq89bfJMpXynNe8rG4UoDVDNos62iRa+5F0KJ0e7VEy1LnZiSuVZoqzu9ChAM0NdSmpFYdnmnbTC5wTDeAGT2dfevtK947vnkqkHMGQoebYWOpJDTXICLahR8COWJEpf2cSJUfTeCcPtH5StlcqJMdEMlq7S6/kaPVhrbq1G6Nq9MJWQl3hp/w0D2YKKoRD+eXuGf/bx/8Dv/3yMzy8PeCP5x9FzqAUVjtzC05Un0zOa7AcA0B+2ygs46QT3CFcbYayXSkX2bVcoS6HX3UNtq5qeu/Sr+tQnQMW2UTRzvTMvmTwRWXQlM/lX7JkswA0pUz1T9pWX3++Cadt7yQZd3eicBrSDuUXdV98teqSCOTFS03OHaeUc5W/nB+VGmHQeqlWQhoDGdJhY3+6UaW0UAdsGWce1lge0V5eV4K0jpORQDqGLUVy1mAS3KPc2CJMneyVS19mAFLxwH2lnRGM1PlAMba3asVQMgIthdpa+1tXVJNKhFBq9W6kiE8OndS1Z1eMi6jffer0ySXCaJGlNAB2BUriwPJ4WWohg60Vtod1B9vd7S75YMEK98p4KIeg3XyFx4Wj0yfe3g68vLzi7e3A27GiuOkYKTCm4q75UZqWAeyNx1W54mo+RFdlGs21XbE5Q13PTZeUtvaQ2zyUqUwd7Q65d6UmT8ZGOd2DB9GB2odiyd+sz0V+vIrWPNrA8CEyzLRgg6ZDJRY1hqqWVNW1kTPaveFkv8OQSqnays6yLJVQ0lywSFKh0rhwRjStygLCF9LJoK3HSn69ayJODI64HO/eZbZjYFTujjwZMtJ1K2XFZNzVlnAc6DzWXdJ1B15P07KU776/TeQckUaTvCBOuMyFWZzOmwyjy8ky5vjI0+En73AFg92jsxYGoOiGAcPTd4+4u7vhzYEvX77g9fk1y9jhsGnw26jVM5WhpFcZidxHmwZ/08u14sbBDJMA44h9j255bUYCUGaL9KDejp/7UzB/1feYo8BTymuexJncUI607jVBjBVCb304PyMmpOrLyWntLAzp8uj5Xk06dSEA6GXL+q+HTJmh9hpzruq1rcOWTpnKEnlnjBhoOhMu5WpeysQxqL3R2xWkFFwsh0/KWfSajE3h1xNYc35rFYcpdeurAC9nSFUESfR2mx7pZRr4O1aS3jwlNwZp0rfkb61xp41pnRySSYBG4N/zn8TVxM7FdOvgjE3p1OKnaIzEbpftBzpF3UIFABsDf/vhV/D7idfxiv/s+z+J8VlfZRTnjfVdBa1bkyf5RNlzMfimCxFBpupww55zM6Jn2TWu0p6bbuUSq/nJlHXpo68QL3lQ54v/FeYl77uDKeoA0ibJERkdxvj7YguHPt+E0/bTHwL5+ovOlz7XE7nV4tdl33sXWAybABsgo8ZJa1MVcKvHy6iq15DKTsFNCvfxLKVTRqUFo5NJm/h1udY+7zTcSZFKyPKdXUZ1DBxf3o0Fwlm8ZXkj0AJsQ7tPUyO9bQ69NmoWgCLAugMGHz39csh3dSy3psRsIGORKkTlh8xkyr4niCLlVAwGVeDl+K6p4acoQ6DNB/vtePr4hI9Pj+syWgA3ON4ccMjhBl40nnmB5erMdMPzyxuev7wWPYLmbEkOqao+0nYQfUn6FBtZ9l3poL/vMuGogID4t6mMfX9Z6G/5jvZrm3tvv0S5/QIEKWKizEmBptuFj63odZ2v3mpe/+qq1nS4efJ/IbwHXbkKQwdCQV8MgY1EKy13Yt2fpmhCnvQ2xLYKKUoypFy65eIo00QqxuFfM4zGMW7Jh+laem+/7y2M96bnRnWX1U6GSdZeu+CbOSNCWXRbgS7eGxete/WzU6uwJrFK3m8XNItUNOVrNXZYvZeKNwiYsyftLD6qVTg6Y2XE81QyHhojrVtW1h6urOml8w7A3w4YgDmAt9c33N/f4bc+PuFn333E85cv+P77H/H88gYcE29z4uYO3G7tIvlyHNbYjzjWfdEqTvQUc2/GXKVhL7ySVEi9JnJKXqxoEpJpgOS/XHHq3LjaMqH5RM6DMkHuPeVsmLZCR9oa3U1z/vI3HVH81ECEthn9WyeJIu/Xq3vUqlZD6aLNPBSKFFZcK5BtUBvLmOTUMVBixn3wRf5y2HqgjHyeByglMPIFWU8YlEMKVenurEz3frCihhmXbJ/9ajCGmrfEYME4Ryi/BAHVfNGmDdlvroRMwtRxUtbf4SLDurwZ/cqBMiIBlB40rNMJk59DwXEeyjk90yEd9UbXksfdZtSfTVNoWoR+jBtwu+FXt1/jv3n47/GHP/4Bfv/ld3HndwuHN2MwOV+mdG7yUP00+duzvyN1xJ4pZVt5Las8KnNnQAsmKA63usnvQE/dVbqcmXDZ60cbC3XckV2o+efprACQp5Ok3OyVn5przzfntO1OwfpMFP5vGFAGaS7e+ykO3V5X/q7lL/i8NQIdx/biRZ3VVuzpkIiIbrw8KzOkvlugEgrOxHjJNno/SvVZr14Ua3c63xswjRgBfopJSDHryRPSgqFzfwhpJnWmMFmAVzoePZLBjutcpR2AuhaTh6wozXXQCXdeAJyD0Ena5e0idNS+a1EjS4Mmo4tpEK5St9vA09Mjvvv0qa1sppwbeoTOJWVOuvn2+oq31zcAnumWba9M0J3dL8UxZWWtq0K2vz9kv+rg+tS2ax1qOGIctja8+qXaGJw3cSJUH76j2FMBpEKrjqyVSW80YzELZaYBm73qq8+UJxlM6Zu1VQlY+y1Xf5U/hN/2ckoch+eC0zo5svaOZJqqxco6o5A7bdxzHxygfDZldvhusTWPRFeDH4Ac9pA9bEqscK72r/F4ZqbvOdaq8hgDBzRIsyg2eRGze62ExffaZ/IngwVqGtQqVsjjlFSV4GMe515O2SxHMXWKVTCFvUwcdnlRV3q4KmIYGBhjwg+sCO+tvH4XR46d52oZgEzpzfuExsLIMQaO48APP3zG6+uBDx/u8fjhAz48fsTzyzM+//A9fvzxFfM4gOOA+cgj7Jf4Bw1j71heL2IisfNIUDj7y6Syfm7tJe4zSmfOyWKMmBtqVgHYiMNIPctzXnQ1Pec99bHlWNgeea1wQM1+WeGEzjN7IquxKJ7RqOj6Lfh5jmI84TklVTcylQdXsRm6KYVPVZP0uzCtaOgxQVZfh2zHOEeVyVHue7fqC7ADVgbIhk6i2zYsT5V5U91YLTAwuhkgkrq+JqNO8Ou4YPJ7VRuyN4OGRHAGBeKdVXpudRQfM7PZhPj8dwwJyJOfmu4PyNBAZei0ZRd46uLUJxk8I2FCHuQo+6zeHfN4i+wrIasceEV6GBzTxNYUPTgyTRbAzTGH48/u/gJ/Zn+Bf/Xrf4Hvvnx3mh/VwzXnpf9ddLtySm4xyEBPlMvIrslUBvE3W7T0wnbyc00E6r7A0m+k9Xt7LTfmLHtA5Auil2quOY81RtXr71T/k59vzmkDdPAKMO+8aBefb4/gaGPQv9NzZbXmx1ffvT8z5wiBlBKFsN4lc2t5ASaWMd1TsTO31q/tmESQ7PTuXhVXBXtOL8oee2fM3QnudeRIvKvOPoA+l80AC1owmJb4BmQ0u29olXisKhYU7Vsv0jArxXKa7Use1RZLcGvldn03DLi7u+Hp6RGPj0/vBC/675XuQyW0ovUvLy/48fOXZYzxvqQ8kc/aCht7JWRdfXSAqXGFnSZAV1QM9dz4pHFm1+aNKGmYbcq7IsqrprHf6p3fzVYKXinjmuKmunPwOwtAzQuoix7Fhbp/oPpZPLe1RaqIHDLyqtWkXIthpDe3lCwgHTgq96bQcoJWSpPOizIMU6HXieizjDfKmzsw5yYji3ZN1vg7Vw1AxS8zbppqicCkqI57XYJmNGKIBzqfZj0tcX8U/mjo7Y5dnxsxFNpnlUXQg8PkiBxpGEfiFPN/pLttZamwWb8IRaJMEGpB/DrpdczuCGfbswewOD5mFHDe6XQDayXu5fkVry+v+PLjZ9w93OP+/g6fPv0W7u6f8fnHzzhe3zDnWnkbvCfOyPIe91362s+WvG2ArGZ3+AuqiXHX9BJ5mTotDsTBnGFMFkJvdh6AOO3R1XDtAaLkx9SJ69MxgtcmAOPeQpf+IBlB96n25z2druBoSZVFmUgLFcWh2Jd4lHgsl/tyfEG7ndcrGBd18OTHNBYD3ajXPDDtdDSkjOMdO6cITAyS4JbI8cJVvnuhK/lF+71jaFfAWt/2XnvKoax+JgWlvzpGS513oayAOI3YQ3lkGKKxAbdtkPd6Sl/2IWWUdgqdFd/e1b6pfqxVUqhOD+ywMZoDUtMkmDGs7BdHpXyWWJYuj7vSbCX84E+/+7f4x/aP8OnlET87fnYhGzVsEwfrvMZ1pnPbVsJTnCHZEAjn8yqBxhA0UZy5klQXvbfqXvbCRZBMK39X5nvdV3/vJMoDtxRHpZmr7Vr6fJNOG593nZpmVNv2bilwOIpB9+//zn3h3/ygM2JtZL6eMAKYeuc979n7aWQpdbuhw8/6Xhckw444fQotItVS0wLI2Yzgur7R6s59a/LFSUA2MONPNVa1XAFHawpmXDUs1K/DhcIIDYJeKYWd+fMdq3S0fmCBZ/e6kajao5yUU464GH9psAAn3tFBLhZ1fHh8xIcP9/jw8IC73KLTeeg26IDVqiESYBeff3l5xvPnz5hHRfR3gBSVhjJ2vMlTOa7d4J2ku+seymqhq5soA8/UKG8tF526k+GymtqpX70Uw6RxdMlV/hLzTHrpRvvaA5WdyQEUXVVJc05HB1wxVs6ZAaUh1ztx4pTgW0uD5JyMAV62l6uM6gDMUtpXm6wBGsU14xmJJ38ZzZyeknKTtppuFHqo0uGqV65tm6YJkkFEUGm8qKHZZHzVu1Z3lpIbZkljTioVIPfMjU0ml/kkeyYgvGFLgSblOX8gn4lu2YS4VrsXAs/ofzuynvdYxZMrgyolHig2whlKuk8M3HLONH2+9odussSLokVf1JjXitLL4Xh5fcMYA7e7exgm7u9uGGPg9eXA8fa2TpmM+tZBCoF3AG5jrACKF71mGjlF2H0OkmY0naXvrafFnj0DenNQ9jRLn3tQrlEGVDK1gseVr5lGrQ1btrbq721/CXmhqZawdHPlxKm32LJd9q0SHT15FxCsYi9q4pMGpNveDZYpw9XB1Wwtq5g6RZ6bXdN0Y39kTZ7KGtlVT+ZIpzTnwYhuCiwVENHh1gA3XZyfqX5DzoO0FjrW6307G/SdVy/Gy4wRr7fKLtP3pGJi/Lk2COUEt4s+Tb6Dnm7YeKp0FtXWglKD3W6dNHbRj3fm1VEnUxpcth6HXTsc//d3f47Htw94evsl/Jj4T3/4kxrpdbXRZPHIZrVey+4Eur3gedhVzbVHuibK1+XcpI45t5N86aHHA5nqnjhvZdQRrM9375HlNr5Mm0Fd1woepI2g/PWV55t22rrNLYRJ2nQDqT0X405xXpe6/LQO5Ho4Da29XJ8gpiTg4mhYOlqW5RQsq0mZ1tV8HlurS+naujUghzBHY3rPnVwCjEw5I4CsL9j9VYc1IXOoMCxlmAJiSWXaY8RvoRLadLJYHaRU40l90DD+DLfeXtiArXWolEypTI4nQD0ja72dlr6wqNhoq0/qLqgxH9/NAoBhho9PH/Dpu0+45emEB6bfVAcBWBdJFs31aOpFrx8/f8HnHz8LiTxfb7ozXuiGwU6LUi0VIPAMGuiEcsZXdlbxk7ah9elfZeAWx5bRDylhSa88JU+VUdDYyY/SL10+6Xwr9SuBRDY6COvn1XCJjUT+fSvnaHtKgOVofBXDlF8pgQ0nRAFh7CVjKGFAhlFbONOlmHeQsTkGk/ICYxGFAYurAwAaq1V2tZWrnQAqhVfpy8lTmgTNYm4X/PYrRz0vU/TIlolTCcF9SaF8Uc5BOfKbwabwMJfjNMbAnEfdOxVvc/Ui8Z20dKbqOQZGHoBosfS1VjXbDU3FUoJxw1b/j0Bonw7cumxZzjVKDoFMayWd1t6ySP2L+a8ZWHw+p8NfX5sDHr/gcM8rWcwnIPM7jLLF1aAp9RIbdO0+2SYJP1MLWfG/eroyMdQfdLY4isFDWaT2nBfOWRi5tdrH4Ihj617J2NoUxwmqfggWnNTPhv2LFMXxI8eI6vNWlt8vx72+tqTJ2re820SpW8LA17Lru76TlnTP1XUjrchDDBz0IfbxKa6Vcum2xq7zY66d91FaBDXYCjGuSrTB7srwCi8TV1x04/aC1ZaJG+JS9U1HnNoK4jUHIL9ex6P1TCXVIVsBRwZ7veG7NlS4niuzHq2wrGB7bkuT7mlwThpufeldTMTMOvKuuGQei0Aa8HL/iuf7F7gD/8OH/xk/f/5t/NPPf1j7a12r4h/9ZNbkN/RHHSddBCm7AiU3q6OgLBDHS52oNohaC+o2RxgwFwewegRstOmf/7RnNwlQPbqo9/3nm3PadvyrL8B5x8la2540Mq0b/6Ex3qHzScqivSGflcXk2k7rQ/y+HQyQSv6sLVrdTea9TgEjJK4ozLms1u1kVkfLJPAUAi0v+z9yY/CqZKKiLjyKurdTSjoNsyBMi+6L4ijsotBZApDuwC4qbWBDJWU9f9yz3gvaXMyPeYxJGixl5zkW0luGU/3bhLB4oiswgmeezBmYNm6Gxw+P+O63PuGml2dGhD2LZ/usk9taVyvHnHh5fsXnH790g5sGTE6pt88z5UPmVfWxKvnVKi+ZlsEH3Tx4rXwWl3pCkaaRATFAdW5KfUAUxuLb9d50y/u2+G8aGKkQMiEo37sMtsj8tf0z3vtkOdlSju179USTBNNhjw+YQli2WxjU0JW86GumuCiDlYxZTYwWWw7McchR43SuttX5NBRXtesQCUvjK9YjUECE4iW2awaCaV6Q7KuP9WcFAeac6XDfxq3RPJ3eaIOb81nHanIpXz0cwqMvtRpU3/QUSJVNAzHBNvoFbGamAz/kmZLSavxua39kM/DWCnxOT/L4podc5CuCDXZ3gx0H4I7DJyyOyDdbqdPulYWRqzJWznJ22JEOW1gyy1C0wujFo7V30GAYNwPshjGP5RO77Btyx+02cjy5Mu4eF1Oj5iNBodilzuU8wWbJzPZtzqfZ2jsXRqOlDCqdl9MxxXHTmVJeMHoLVryw6OFFo+0hja4fByJ1S6ZXJbf22KCwl3I0oPNSzKhrRAiqD1m99TnjFEnBb8Em/mZC4+5NrW95STr1sDqlV1stTPTjoqesChEb8h3LdpKZAyAXDUJ2t2hK4xHF2+raxRyQcKbJbjnDnEHSYjZ6LA6tQ88unl1dRf2jfgUnnxra9hSi7OIF/aI/bYx68gnnfXOalxMaunjTcy0AG3IxPQ4um1MObQu5NitdAFTQiz+tpG45+I7X+wO/uPtr/OLjX8En8K+//5fwY2DOiQe/x81vCoGihy7I+S6he2ZBBq/in7ZVQY5PXuP1pDGnelJHGDBi//DIvi1SMxho5NXtIZZX095/ig5K3O81QDnZcxzv8F8835zT9u7TnJX+7AGZBjCK1wIq7wVuKvqDvO8GmyB0njozVxp5LryaRuFpYADIFEY9ktXSSK5l3VVG92lYSPfOWJlmRDGznmZTAFkNcvnZUyj2PvdUjwTmfvFK6PYl/NqrHEeRSPpyFleNTuzRv3Jmgiatt9Yq1AikdtKEGMwdV2Wb8yidaqZF/GI0VuIN03fivbzU1Qy3MfDw4R4fPz6ucdgIw7QDkMHlMkiAeezLiZ6Yx4Hnl1c8P3+JO/jEmJORVVpd5+lyAhSQaxIcRTs6HWsurM2dGt1CXp0CSDNIA0MsHQ0mpBEaBdWQQP/qgkPrt+L92oyddyCSwsID1vhVma/92Hik2tuP9M4qnK4kaUPjjYa5gncZOU2hk5BpXBbPG5BBF16nYfCKbOg+BmknP0tmRtF7hzbJ/cvUTBTOwC0Pz6EBPmzkCZHAwjMT4pUy8xXlBOo4eB3zGk3tWBGGmLmKaGn02Nb3om8hTLXNVTPH9CPS5Gp87dTbVVka3iY80pxv2cOovM/ZSpPDc6ZhAO5uN7y+vS3n8ZiwYesEWcVtK+VOXknHW+XYsYx6GXl1aiOQS73h9A/HWnUDoXxs2JSdwYBh4kBf7Sq6D9hawXRUUMEczahEBZXcAGupiRe6s+F30D/Kj9stjS5dj2vG3nZYXOFVueihEupUQMh8skw6erIygk73XZQ0GJiosEURGNAh/vJ0vXQ6x5A93Nz3K4C56zwvOnY7SZQYsAJkXgE9bNhEnZ++L1CZEoHpiuU7eHLLw6qnLnT/KY/JLx3LNo0rRM/0fHbC6l0Xemv9ah/uuLlpdiGjZ5tjfwedhkny7OYFf9NwgfIky2j9PL31vT2KDXHCMRtA2BzUv6a0AzKYoOPPFoNAGYg0IO5Hwr/57T9dsz4n/uD59/Hx9WM6Up9eP+JpPqKC+udx9zRCkdl3HKe2kkbnbKghX23ME17EZ3E4mfoZ6uxfMeg7vb989/2ndDx58dJNkOfvj9OGhh1NoM6PX3+uDsPFd++IzSUh3ydsGQRpTLU+f31CW7oKFWBDJzLpXi42NwIywFSFSO2zDSIVXbRJJST2Wym9+L6PnQJFp0TKCbCWUkYanK2eAFIeNU5Aa0q20WjXSGynnOPQPaBRVsBXzNMFr9Cp7hKyE5N1xXHFCLLCqzxnADBwdxt4fHzA4+MH3G4K/qNdV2CYOAJUfB4NmI458fb2hucvL3h9fU3DtdOixqj02sEmI5BNty7joFNfeWgBXuofq8Vlnbe9PxesU38KqTPwoc0ZypAz5fXqOFf1TE/VbCqH8un59x7oUa7VNLQ1/tpH1t+saHlVR6PSYMPhmaPfVNIZS5TdDC1FMRNraDzFvDZOtvKv8tNThgGVLpq8d51jqAE58sZCV7p6/uuI1LJomPuGBmqvVu6DvLyLpuRNU2Gyay4pO3y7vUQXSmbM9PMziZfRoQhQfdcUt4jZpqwopif5tnoWKWQFFzTmSDUTkAp+ug2MOdYqypyAG2Y4IeVKlHPgWNjvvhwsOq+Kg4t3vCLOgcN9fzNS+JK+kftCc3IAACAASURBVK3hAG63Wx5CUo/BrPiQEfkk0IY3ievx2qKNrnLFXKUxqNi4Ia2CMDxoUPpuitN9CnTyZ6SAep5K5zGX1mbZOYZdN7MqceIJVBaeboZqAr+KOy3nxeANT4q3NhnR4A1rGguTzKVe1jE9Vli1aIV5KvWOvCL8pYTehMcIMFfYBaz+ZJu7TjK5Q0dwmbgBoB+9L99XJSHynI+9A4LfhZjgQGp0tfqZhnleS9lxijqudYIkIwa1LtBpKLxXjC7HTRArowYiODKSzmfYpiaCV3qKb2Boj6eLrDJoYtrfalftvuRXpe/GM2vOfQWgHfCb4RdPf435+Fe5Ovvdy3f4+Pa4ZPQAfvvtt/Dz198+kc9PE17t7qtRa0SC1Ly+hbqX6bJGvldlGIGvg/ScaBN9paaI5Xb1guh3CbR9zRHjfP6UHVvA3zOnDSi+2j6FSvX1O7+5nivZy2/2pRo1Ji5Aoz7rqyfluOmqhZSMKBWNlr3ubfF863OtFv2mhwGF2jESIBXlGx5lS5ZgqZA7KRAJvAGCvhSiprlx3MMZ6Nw7G4pdgJoAp31yd7lipECvaGkXV3l5DWNVkv2m/DkKXpuiv3o2xZGxquiocGQasHcGPD19wIcPDxjjlip8d+gXTVea3Jwzv59z4u2Y8Am8vb3i9e0tVo4sFXVjLCu6JRg3JCmHlqCc73KFROi4H+oAEGxKAW86XtTlRr441cYB2SofdamicZ0fccqt2iuDqQqWzeBZNvmG80JOXsKAVNHCrxWwK2XflFco1MbK1JZWSoZKZIxO0zKeRA8m7k8RvdnwA9gvvCd/70ZQJ239vua8TtsMpZu8S0e0B4N0NZL7yFZ3R35+FdgpGdUVxPWfJi4Ve9pJLkomV4mDBn4cVV88AkhuqlxCvyGodeVuUIOBBp6BKeAmZT3GUzZED6cVT3Ja9hUInY+a09vdDW9HyAcdrkgvhdVpuDyef5GIl4wnBydOFy0ZFNMJUsncjBVi5BjLYWvvB11Nr2zYg3EVJHNgXUXAbwZXW5D80/Vm0VPN7tyft9MRWCtPOeYdt89YyMNrkt+D93Vv9eJq6sbrmHvumUueKzxPfA8D+Wp/HZ3EwjEkFgfZOqalvAlIWqFSwyVHo0hDb52nvFAbgFwEnDqVuiTockrf3pz56u0OakAdAnNBTJCMVNLIskWGDQ9k3PyeWRyZMm+2TijV1d3UFZ4nFU4r7G+pjcRzkpWwcDL+gmeJw5xj/h0DVAotmqiSVctIZNOkjMISRx7tZaA4bbGiK/WUbzTE1j9gscFe9mK6Wi9dPiBPDyBXYn94/BHfz+/Xuw78zduv8OfHX4bumfj56+/gj778gczqYjpxq6W9okmlOM/gz/VpZRY5ui0n/DhGXqStdmEF3H7zk/yw02VzMH/TI7cQvfv8vXPa9kc3l189zWlW4PvpLSxjzmoCz3b8iWW3v62YQD5VB0P7eLlK0WRMUt+IicmoNEBEGW39TjvcCzstQEpTQNoIpU9lHK0/aDjW6Wj1os+61Lrd+xINN+VmNV80FmXIzbxQPHcrJ1IN+UY/VfQOMeLW33q8cu3Vw+Wzq8YagcuYYvxiON8/3OG7pw+4u3uIQ0fQjJwelfGF3bbSo+aceH09cBwTb28HXl5ewgirMqShqjr203SuzTZ83tIRosIcXxAq9VZe/uXlbOX87GqVE42aoDRWNpqmvdII0anMgwoyiiX1JECrjq1WWpppdjo0335oFOm59aeidXQMyiiiEk3l6uSKkMlMHURnkobrIoANLDg+X8ZuGNNpxpAW7hixZ0y6tQyJpB21PT+jAUMHRCk0+kyZ1WZvbO/ycBJ1YNu532WI0UFMugLISbC1t+QmONUGhKWcuaHfYrXBU0l7GBgOOA8nWWVWW1yNqjlKwyqpJf1DM3WVFDWWLMV0Sgsfytq+sH3tjiDKFRczpsENHPMNgOF4O3C7M3hudQ3ngqjjAGzkPjfPtthPy5+UjxJhMknNzZzr8JEZPHa7u2XgLfnZHe6HnKCrSKLKBwocJ/rlGFBG1RjMONiRDKV3hN7J3zn2Pu72YZTg0S46x7ux4LkKIhiColOtdG+rgrHq13WmZZnkOQN4cFO2mQ4sy9VYZg6+aClw2gsA2I/0V1zPFfM0xIspOj5KnS0gUN9lECGVZuFK4nE7BCPoajEPDnArhX7fHwlBXAXIrp6GY/GR8QRthmNKTjI4bDVXbE7BmDCRMjhiZVBUncPzfnH2xaMyHstwRpWYk5r185CSuautkq+xldgUkgp/O3hFRueozI6hewMhdHb50ZRXYkztZ0akaHP1HLDbbbGeT8yHN/zob6vwdPzZw1/gz57+Eu6Oe7/Dv/71vyobN5q687vkhTUkz74seejZDYC1ftrN4Ae5fo3VbmO71T5mMWHhzL+N0pdOSKfN/l1l1b3zyjvPt+W0iYF7xbDbywVWXxl1Eb3ppZ/0pAOgm0HRYW0xvL8zNaHCwtCZ6WBWPd6Yob4DfNMhnOAu0DTwy2HT6tTI2cbUmwLTONSAUYUBK1Dr6i8EXMBO4l0JAKQDmy2DIj7ZQbgsGijFVUH3sVKB1u/6jmDqSVhanrN8kadnFqpnikuOP+2CHofNcYVj8/Bwj49Pj7i/v4tI46INL/7WhweWmB/Cs47bDbHC9rZOktR+x/Az0sReedFcI4+doBKdk+EpkOuAT86K0ogA7RTNTTZE8ffVWfRyjcq9M3U4hUhiZ6jTnTvF//W35srbCSToVKMuyN70Hx0PM2t3ua0Ajdx5piCkYwllmzzNSClZ2evd2gdU9TUR4Riznaq3pEGUUABAyrQB8ANqXLKrxRNeByrsQCrYWv2umbT+qhjEHdNIzxFjW2lBqEuRk8wDPGyp+KEkv9IvK/UN1eLaZ3cymha/ZqqxAFU/kKHwTkI/UV7nhILSwLfRmMaF3nZmxn1sa1+bu+M43gC7w20dDQm7VT25kptMifr8QuG14E4IHPGBexXd5zrR8jZqNZc6QEAiD22RVYiOu8Sy/mWTW0PKTOJHN8uCZwA6NukoBY/xNEnj3O6GffSF8QrWaaNWfRKZPDQh8aYTL2nLlbKWpaD0tvNgV/+WVI6oJ/nWkP3mKlrhr+ecGdvRIIjQ82tGYNs60A5L884qCvw8HTruyuSWiiorcuBZW9J8n+z81yCyH/pTgnINbHsV748PEgBwxEXzyN8NVnd+HhOzNbH4Y23NWvMyT10gCAk+uo5dDiZRS4W6V7DO8txZ8hrR9iyzZ2VcaMd2DHHqt7QOWPnu5Bd219l/FHCFjHOIDuqasuXO87BPEMC149VlSnT0avYxpLN/A3CL7CI3TLzhv/vwbzCnp030eDzgP/n8Jyv1N2q59zt8mk9gACtX41uPiteWw+baBfgR5UwXVwoY6HAikEn35NVqGlegsbUsn3j/bpfVn5Ii+W05bXzeEUwFFdKsGRAZUbzUVfJKKV4p9vUyIjDttXeZt75OcLftnYxK7OXLuHLvxNDVOjUKu6iXoFVTEZ1N3CjhWoLaYOmEl1k2CdIJtADDO+0LryKyIqAlEuXaF++wlZCUZOhtJxDw/bR4z/CWAwHh8ZzKZzI8RtKaiygGs9efaGtVaYSsn3f3d3h6ekiHbdAsidWBK77LSJWv1bS3SIP88vyC4ziSFBntAy9j7Wtd1is9M7sQoCl+LawOHfq7BOVFbzFeCHZqPEn7pbqQ+50AKsyYm6hX+VgjeFrP1PYA8NhnHSB/M/7TlKA8NIJDkZ6iaEL8kqVK9VL5W/2d3anju4xsuwO+p85Zu4g1ma2Nm0rRypYgU8T3Vl/keN1F7uUEMWidUoTBizz9NN5iPWkL+ESuzMlF34ssVFKS+GKl8EiDtaFeRhm4s06U9BxfrUjwX9axaN/S9XK8G3YIneoz4RORJa5Ou/d7L9F6gToYAoy0u6SwFia3wEMY8QHqKSbjdlt1HXH40LHoy8AJ5wCG5K+R1wt41xHRyXIK6sMxALOxZGgiU4XG3Yj0VzQQZb0Guc+PxNvmelfmysYphylPnO+ewpmBEYRBTpFIGkqFXod35SqOmcwU6VXOQz/hz0RhIfvDPnJvzgosjOS5SZqELs1h7fBixTUbPMk75JPtkl+vV9ku7+/an3Iq92dNvtZMXi96kwyFJao/idkoqIuxilykUbv+LiwVFaSp/KmENFy09TsnxKQImTkT5GRQu321nhnXcJSO9JQr1rfmuKfmZurr1kPqmT4NHSuBwr4K2gRNsr3zPJ4fBXMRSh1fXt6MnKMRacxTHMyKs3j+3ELdqxX3tjDX9SN1ONsSW0z+qTo2vdBGFf/ayD3ZaxodccAj3u7e8L/c/6+xCLJ6+HR8wO+//ENQlz74Pf7R6z+IPl7QVPR3tdFxOWADdeCa9lTQ04Lzkqlt2doo/f+1ufq7PN+M00YAf89xOr+fyL0+SPD7TcR5XzCKmUp4W5ELgL0WtI0VY/L373MVRICepZi+U5vFu/JNBXoi2AaC0d5uwMo3J3Jpyp4Oh+S9GnIz/E7GkQhlUxhqIFqNSdrs/VJFXSmN7Q0F8uiwF7GiewJoe0PRDQLp/p2dnNs0JaruqHYMx+PjIx6fHnF/d5dGqnntpYAfsHGDzyPvxmPXaCS/HhOvL294fV3/1arJGmTOuPK/Tod8zHcnIPx2kate+jrRnU7olXSxF3VRa4lncV0zVzrv0lDIP72mJ42nzsFu3qbQBA860DI1g8C8A68aKy5gbrDBRi2IRqOh5lssmhZISeOaTpWmK1HTZZ8d69hwSdsjAMTfpVrXM6xfDZDpx94NlbJFii9o0Krc7qtLq5smdUiqI6wipEsYu4EDF3hWAwZprC3arMM2KrBlqHvdipfYF+cHTIfU1nQ/ygVOr3TiKWmEceJa8pe0Z5DxhGPiG96nY7h6tyLE5eC1Ex2VI73wIk8b3XCVmHl3GziCZsQEM9TVN5wjQ+5xwyJP4gFb1/2P8zhwu7vD/Yd74Jg4psOPA0cUHKMfOkL+G4hVTK6U8kRJrpJJUIXtamisnHtreqaMVq6kDaWYCD0x35Nga2VNU8PEOE5x9PqsRiUYdw7gpbgY5331rwdDUcGy6IdGyznfdMSu0TMCgyErpVes6jCTK03KaV+8VKi5BjS6LJvJG6ILdyXPdxtwW/6uq83VPtvgu0IYdn6rc3LV3GrM9ZQcZ31XfdX3Q7F1nc35LEwqOF1XkNBnFCrncEmiDP7t/TR20QpzNmskNIj0uvgEQKV378X2cdL5zH8uCmUfgiSiOH0Cc0jgcNOOLKLonf3fdHLqcSvu7CYoHeXCtJQdcdxYF/leNYSf5sVyTMu5BtwmuFXg9faKf//hLyIACdzmDf/x9W+qxsDSf/j6c/z85XeQeyrNcl+rBjoXlkd7eh1GC0Sg1U/8qswykcmL5yf55+8834zT9p6zpkJ0+bl4Omq0XdVtZGZhErWx2jvaUIBCKsl2eeMJ6tvfuhGRvxUGKYPo+9HNSPMwItI2nlyKVTrIS2UA1pi6Y7o+91Zsi/h43zfFz/qI8uXmfF6BXPv8nTnnl7rKsI9jL6p4lODjivt1tPpl/+TRGTupCvlAo5l6ciawAPnp6QM+Pj3hdrvD3Vjfr+jQAORSWp/lgNGITgfJJ/yYeH058Pp2xFxHukAC53lMPBym2LbzkLXRhTGhCkuKJV1TfjqveXxOY6KAfX3fs4tLXnKO0Nn3fC89Vw2kCijOuuwXq1TckqumecQoiG/FvoA7DtmbaRpYQSmAxBsZkTq0y7cTmfMwLvPiQ6i9AT0NRKVK9+wueBOedGCMdX9XGllgJLn6XZVtFE3aM//Tsn19M42s3eCN/qm5rGj4XqBfA27B9YLzSzHup8hqxsEqb2mIqbFRcs/1Wt5FtjDAPY6xN71frnCGF+/SCNohzrHzFso8tD43mvo11eEVZVNGcPCvhK91j5ePShFiFY6Jh/t73N0G3g45AREGu0V/jM4kgEh1fLy/xzEnHu7vYGPg8+dnvL2+4nhbK/jrpMr9WZ8oPi1Zm53vaWDG7FRKvCUEeaxQaYDL4BLw0XfzF8C8pTc2Y174o1Yay4BMY1GK5Gw1u0AMtfh9TwH1AALlA49LyKfVHXrNQnCuENLhwXZCIhiLwAommGQgeONN48uIPWEyRySDBjetvSHXXCbp6ChDcF7S3FXvRjnFYWh9kkOe+lGVyeC4dw7TDslHX7MViulkfGfO5bgdHumDEpQTeyLT04X3agYDi6W9fqCVjkFWeHgWQsx9wzEdAsuHLHhgXDrM+6DzHh4TpaS04Zyu97iHCwBuY+D8BIYlkrI/FcxQHa08uCjr7SWjsow5ZHqkXsXiWllOMzExZNi9vbCCVwsrEipvA7cx4MNww4Bj4m8fvs8sJZ4w9uv7X+PfPf37iC+V/gIMD/MB/+UP/6KEMBVSI/7at633xIrBtDBtoILCgSXmeem4KQH+js8347S997znsP3Ud/8/Pck8YriVvo1G45/mDGifurhdpyzwXf2+M8UZnzbArxLSVhkO+164rENAukFDOn3BaAQ5w9pPFeX3dnfHOJNQvJhYacjtylzqXp8PwSFdbmbV0laXqQUfE+3oW6tBdtJdRATsVN9GLkddIE26Ci844tLsxw/4+PSI2+1urZ5ZAXk16UgKGC8cpjU/4/CRN3yJY/2pNGYrf1WnGA4yt6l8A2s9SSCGbdCrotRWZban3mVTBP4qtveBn9kAeIg5FTsvX+Z4fKszVWxd1kUmbw3uhyO0h2VFgHMlLOTvJkqW1eQ+muhc0rJptFKgboAfsq9N69l7poEaROoVjXhd3OI7ul9uM8kmmPpTT05DHHG+HMchSlXqRsm5GnOcgaBYnMRWRk+mA0ubloYKpB55yajENcWuRrWMRpMYQUV6294f0h1ldpB3pnulAflabWqrLnGIAPex3VB9TQMk5kij+GnsybiU5Sfq0mnyLg/XYB/yW5NVHit6WHwXpsy6NsLLoR23G7gCeP/hHr/16Qkf7u/xesy4JmQ5YLdheDkOPH14wMP9PQ53vLy84PXzD/jh8zO+fP6SuoKGpR40UysqXEWs1GUHYM4V0o6lmYolzNX0UYDpjPThNBnF8dMagJCLgUwZpZOaczEnfFiTgdV/zo4VjyndUb8kBtsAV+hrHts/BY824OaFu1f0cuQpkslT3nFZg08gC1JvzAMz5qj2Fyl1IPeuGCooUnRobSX/hWS5r8BGnsQasidKsa2jkqSha3u6I7KfM9Jta2/VSF26KYkOIO0RIz23vS154r11lHmPl2gvNBVWrAz4ke+uvcWla5bjVsH5TFUP2iY+sc4khzTIMY6OSyRdDVeQI05VXUMmETZiKNBQ9trHQYmTrlkdOuIgqeLDXrlJHRxRsU3wSY6h963ru8JoTcXs8947MOSzmRRefRlj4HaLDIa5sgMGEAFPjxR6Q6D4qs8d7mvV3odj2hF7SpdupY57wSv+64f/FtyusuTO8bvP/wB/9PKPAV9p+9OBe7vDnV+7Tn1PW/wdx9G+n7L8/+755p22/dl5Yvu2GPXEja6vYS+qTpjgZH74LsFbOyKsW93qkGUky6/yoE+DijKimKrhHFfl3WvXvDFgT3skIAnIyBicyCY6IDfw4mjjX9UzWpxoDNbO3080F1DIT1LBeRjfAaRF2k6jANc26uZUAXCDZI7lz6u7onaY5IjzzaYTvYApgOzudoePHz/EHWx3+e5k1CeMNU1p2fXUOubf8fZ24Pn5Fa+vb1lPdoNkltMq0rA2ncOaheKuriBbfK05Qaxa53H1P43mYJGUt+yjQTZybUT0/llTeBcSEMaJSxQXVKIif8lhrnVF39PA2akf9MkVtQ0IzJJPutnOmev0MlhGA3UsXU+JceNah8yhGHNZNh1xzjMAnyVucNgGipVWGb2z6nmNqHDJqWTDsKp5FbnOOlMTnwI/6bDVCJB2JudTDQ6LVWVXrDvXq0mYJatzYyc1OyxOtfTEkLbCXCAhJxb2VbMdcRtmbWVZ6lYWKhArica+cYw5gDo1s1YXNYWITbFfHne4xUqQO2w6zG6wuwd8uF/pcfd3dxh3y7F7e33B8faGt2Piy+fP+OHHz/jy+RnH8ZZ0zkDJJoBq6HsSQvA+R1n6ROfAZVbanlTyInVjykSPgie3eewPnHZ6N+dqjNJTTr4budKZuB3jOmVIEDMH4pJ1F9pom4X9HCv3E5LHHY6BSjMlXOeqhLBQpt8KI+e9es7sgVF6nhPBg4w2VaZ8UwEnk7kQRM9VgI0QnGeWG30fX7xYMpQdIZ2WAw2ruTTt2NbjZdwLH/SZQc7pRF4aT3kinyUGNFurdJ/e0BXXeuf+qfQ596GU6mjzlZ8J4crZtqzH0AfNzyrXhpVi012dPqcn4VfTtKUpu6iPDu5xrPvUhrXgkryYdfXes9Eul6vq4pXi+U7EFQRZvL5OqV0TcAvC6xxeXxYegZvbwLh1RhKYWm1mNlPInS3cuMU2Xb9ZrsYljQiCAHxO/PXH/4i/fvollOV//+3n+J2X314jiusCyj9YPz8dH/FxPrXe/f/grwH4e+i0qYIBzgpmexs7y52f7fuTcxYmwlcpzsnirWe74XTV172+pnrydzWmF89ZKY2r/hfLZl3Zfg0RZC7XDopAiU6MMmGcTO2PGD8nzWFnWmyTpcfsVxsCYpegI1TyRqH2fQpp0CDvWhWjVQ2HudNIxpInK5pBtY4aIQBwN274+PSQd7Ctdyamc+WQ+48cuc4k5T0UtXs4bC8veH17LSAzOx1jjzD2+JFFGiZ0hUbG1u6uE9oyeniahzAM1InoStWLmqkoLce1Xg0gFNq1Db+Jk6SrZfcdtB9SRbeh5+EF2S+PLspcbYbdMojmMu6SBpUWtd4xLVF6bOM5wFYKZe1rzysoijrNGorx978lwUzoqPJDGjb7Ie/oi6NYcgycg2IDk/r5Q8HUggd0fmaq0Lqs3JNXMnVLGIu9UZdnKeAaMzFnep2gl/MmlLIwiHQWyE/kxdXjMgoQ8rOmX64riD5W+qFl+R6UCJmedaWArjaaWUZqOQ/liNaHNN7VSF1/U1esetVgSh7VLrusCiptYiXsOCo98Vd/+z1uP/yI2+0ODx/ucXd3DwPw/OULjuPA29uBY64rQ9aplDywQPBV5q5rFktILszqs5wU3VVqCHnKssimGsb7ninSzB0R2Y8V0ZgHmGYdKP2IJn1c5P0KDKTk579kQg/DNrEEWI5y432pW+2GlN81RzwYQueRvMFTYT343wMMBw9jAHJ+N9O6Br2Nn/Klw8ZVWX6duegDLTBluu7BKhyIO93q6woQloL2dQfsZGlPx3TdO24lk3AMq0ASgH7wRfZnES1xY2j/LNvvoaIuOTzuH+5bNo4leSz6nrg0WL9nUKtdrwHRmdRls/SfC/1FAwq1fdEzgQKls4z/yPxtdKHsLAiXIKXYUAL7VCxrHudIxxraPt9rNodyh2TYWFH5FNbc7WnKN5jaH6f4EtcjPTh5WfKhDQzcBhanTO3c7akH8k/qzZinYUWzm4UOCV2oh6aIuQuba+3vl3d/i18+/q1Mgzhkc/3+s+M7fDw+Nlr83vM/wKfjkxL4YjJ/8/PNOm20JdRBu3paYIZiKmWY2of2Wbay/Yw69F1oA70jvX8EirZukUqoT5T2Idlb2jiLwD7Wtkn83LXW217/RbtplOTwy3CIr5lu0zbk6xhinB4Sot3JSKVE51QxZ5vJ/JUitv6Miz8TVEvRVhtsBAlQrI9GlU57CXk4oo5yeIALarFh1hwgEG3fbgOPjw94+PCA2xBTzCIlLa0Qmbeo6xDLw90xjwPPz894eVmHkzSyYavGamzOqdydlHivUcx9myPSblv/POEtDRhv1x9kvj+Vlnul+mx8m/scqrpoqlZEqSC3oDmyydZ5po16vZN81GlA68I4hniVF+i2d3dt0IRR3jGOW82EboTo3xmJbA57qqlTN7K0oe8HqckEYH0vTZs3K/nOg1RIjnJy0gez7U4omRMWJI8wGroONvH8MkXReJx9RyMP+abBupR4pRDCKgJcGQqRanUKFi36sL02SRHBJd9w9SKxwQCfR9Qf8xMOJQNlpGHtwyoGbH0LGlUqVBHVIAe39MlDrQbXihtpPaUPKtW20WYeE1+OF4yXdUz/8/MdPjw+wN3xw69/SLlWh/MCJRI3LTC/8KD3upzmjik1x/JbU3Yu/FMCRqONe47rsJpydYqugTcKUWkwoJw8J9UWTfV6iKI8264LdtdQZq1A5RnqhRertJiMc8dTahehVRPszgdkjZwbBf0NitdQuz4jfwKU6aXP1NZRrLFAvazg1BfRU3HwTOL2dplr2T8yCCDm2gJCiuMmfDuxk9BhqR/OqX2im1skBNmGx1sNAdJ56u31/d6JEKywvps1JwHAYFBxSDmlAcuqbNDFYImFFbEtwYC+10l4B6j046CgSm1zSRt/CzP1V4qGoj9O9QQtYSYHoHgr0wPy0RjxT5wrnSsPbEk514M+QGworKqAMfFgv4tOZSz6RZ3Gz23pltS57piSLObmdfDSJoi3Iix8lCZjH6b2ZjowlmP3w92P+MF+LPsTwK8evs+0yp+9fod/9vyHRUMZxNf8HeBbctq693XZ8ZNCfuddFSDfAGZ7E7vSun7jXPjUPxre46qpq3ZE8SP2IFHhNIN6S1uIopVuQNQp46HtRWEEKPu9L9N2gdKepXnQ2tcoKEFIIqZRgWbGZcld7mkIYX9HU2nEiAnHragm7XSVmQ25fnQeMsAl+o1OyOjm+w+PWx5j4MOHB3z4sFIiWyqrY0F8pI/WHtVDORjDJw4MHMeBz5+f8fL6Fndi6byWWpDD40TxrLpcZnLfo5dgKAokZ33tHq52LPUW2qSm9lelJPIbvMdfV50VzKATnVG8xsLrj2Frf1b2p9k3/wAAIABJREFU2mQunJ9Wus+u5Bm5prlHMOejqVwyDfUJDYGglQZVmgMJpNOTxpZZwypvZDv311GHr6iRUqch6rilXvYzi5RSytP9GuFEqXtSRWws9jBGG6dTVuy6y8N1dDWpFPy/Povz0kAjuRw2oZF1I0Tna73e78DRudUnZYV8KEbHCgQx3cySV82rmkqZu8J9UkH4KRzQGxD7MDwNj5IygAe+uLTDlbuiRRkcFegRbA78U9dLcXQCcRrkKw7ccDcGjjljvwd51ZIpLVYUAZlfh5zM6ul452m9xhWLkgsexFH6QdDIkXRX0CL/yczFvAXiuLSVzqbFcfPRehJEJNSQNac5mphWMlKBYeuyzzm9Wd6vyqKxYbr0qq2PSJsRF8z71FwBIPdxRWfMsS4uv411RUGkxB+8gqMgNOaBq1vVrtERTemkKuspauC8x/is8XfpPeepfpvSW3EPKl7KVCriqIl7d9hu8W6JaEpezEzOer67cUP9qzzLf5se2mW1+KL3tztrZxmXDKQ+AamDHJ7OHJkrV5iziCWeT/msp7vKPBRURje08T4htv/B/sGhu8LOTxFYr4ooe9lqrimtYtgVuSW4zr6GY6/ZDa1rrQsUNuGRNvQKKUz3sK0leMMoCvWFA4cf5aCz7VRLVsE2GqFjMp4W73vwCOXLUfYt1r45sXf53JxUcPhtldf5mRF1NwDPtxc8+wvMHF8+fMZ/+PRL/Msf/wTfHZ/iZcPNxxZYOj/fkNOGnTfzacLwm9xQPgyaWeL015vfDIRzH8b2TogbP9puxevyR2G9MkSiu2WRt3JsI3O98/4pMrzWx9SokKHoCSNzuYdri/KJphJBk+V5qSPLSVULD+UdFvQu3DQgebqOGrPaJcXabpPtyObtT62nFSMotnbOMF90LLL25f1e6zDDw4cHPD5+wP3thnG7xWoHTWHeyLYosObxwKwzwAB3jHBPeOjI2+tr0q3m8bKnOVcUIHXWczYJTjmHolTB9ICmA5NQPU0lakxP8ErFcrW1i7TF3JF11QnNdwRTEf0nH+RF58pLMiM0LDmr/QTKbaZDnmhbZLpVOi2ippocePYTIcvFo7GZPb03dtpzDpqe8kp5XWlyiLZiXOmVi3zLAEqXCh00rLfPVRrNUn7oSsPeSqdZOmHWKZ8KGMSr1TEa6ZSdEXOyVrbq3p0YtijEy+ZBDJqxAjK4Kk5MNcAQTmZGTAOXZGO/OpgJqVDarIeXNScvZx+VillTOd2L6CfaBZdFAY++eqTcbeRPDKRzYck4PZxXmO9AHcATvHy8/T/tvWvMbtt3F/Qbcz3vu885raEUsMEWBWOjISYIaQpGYhAMAhLrB4IYjRUxfMGIRqPVL0QTEkyMiNEQCReLUS6pII0xaIMY/QLhlihCCU3l0qZQoKU2Qs9+nzWHH8btN+Zaz7vPof+evf1njWTv93nWM9ecY4457vP2gu0meHq6pV4a7nzs846pAxjmWLj2oPHwNoLvfbkexLYB8BxbOjyS7k/SpNCJMQpZ2LFqtginlQSlbJjPgGK5Gy6KOm+JkdfsjIgfJhEzpFG+L1W0iurqjCgDBWQTDF4JwYZqau6TyYSHwg8JIW6mMUWMK2ABsyoEe94tJ268Vz9BZMuxV7XgcNtGBoimSykg57+FMbKC6KsQHfw3Gyu/rJx4D8nbbC1CDzitg9d971RXLn4dQuiRsK2rEYdLSwSzoa+zyKIr0ibYm+oCa34Xb3BfCcHABaJO6c4Av+u+WJLCDxrLJAxsSwbrcVWx/U+8LNP1z6Q+tX3VCdIeGXvq0pfFU2jmI14seteNMzTn3QIptn1VJ+dug2qZ+ImES9Cu8UrBel3TSHtv5XNe0pMmeTDM3DGHBYdht+2g4A0TO3YP8ti3BNRXBg2K3Uf1izuYrF66TNu4kKLxd0XQgvhgcfWDUmJFUuoFr2aOie/8yu9O1fkT3v54fM2nP+n0rAWGDydok/PHPdh6vTPlECE9trMA7NgGOTty9t6yLheNI87xSB3gg0+OjUi/qPZQb7iM4ZmlgdLijIZdf1ZZfHu3LqC37wI3LIlXn30LtNuCrjwB5zhTtwZsVuXRtSG3oP22ZnwyU+fjUq5BzTylYQjcW9BbucdV/XUKRz31m9Dv0vpRn8MpfH7zjE8+sTvYaulTuANk6Il/1mWdCmDqwP3up0Te7410lWEuvJrjwIalOezWDgd9yYP53XEKnidnh6Gx8/KLRG8lFHW1ULOBNaf1ujhWkBa1Gz8cS5qd7E54vBMu5autyfqhc4izYnP2yiEo2nF/Ezd2mvTIQuc6qQycyKAES3eqKsvZeaJXI9kHrWr8e9BT2iEL3I8MtMxSATCHbGwjf1eADgpiR6P6n6qKdF8NMIcfnuJwHuL9jqqasW+bbdKavRHGPdsvfptxdUrY3EIpJTbwqyVmvldsdh5TJeOd/QVEfA9PHshExG8OTPU59R/KD4ggWqvi5HVmnKgtZusUasuy811LGO27DW4cgjRnzPB74kgsiTzzBFltbbROBm1LMtOZMceP36isfV5I7e21WXGpumfof29P6N65IFCMaWKh1kaflbbldxLTp07+5C2SEStttfVDSTT/yKjDN3jsp/NxKVkaHx+I1CNrvVLPVBX3fU+K5ux+ONMKYGzI5IK3VSuFYzRwqDvtp/LIooKqwogNfykF4XeCNyX391kFnjATRRyWN9Cd8m72aoawDQXLS9oVsRMAk7qFc9Cq61Oag9Yq760eTMK5f6n5W/Bw1tuqCNlzy9AMdydfynXzdVbwmpKXcw4nyVLeRSTuumXuiZeiZw5tyFjKh8H0YLwCzaqRaZWcJro2nTY38aVOss0qHyiIRP6By5R4QkRF7YRfZFHkVhkF+NorGcMCmqGYc/pVSkh/rfz8ZLjEKDTSOv+/au14LxJLJXOllbh/lRR0fzVWwAjAa4kA4G88/yD++tMPLrHGET6goE3eXebV11lhlmE4BCP9rVfaD+Ei47oo5kdQ9pWySYTnnEe3oavdYqHXhw8piMHsHByWkHL54HxixqbNu8IzZ6kE/LS+dyEYeNIrddn4YmzJLPdwxSrpsxtMx74chFoGL13I0iJUzxFrumYFa7ExBB+9ecbHn3yEp20DxoY4qUhSpZa6ZiOc9YejMhX3/Y63P/IW95e73bEV9OIgsahlBljEFRs7UQu50mh1Gha9ACS+vYTy6+g/ikZmkJdLnfCBrK2T6WX2h+DwtlKAfvAfSrGaIemzRV1Mw4kmPjva7gwK2MhClO5oqhkmdvKbwPC0ZBqHkOXCqRzzUOxC9dm7GXjSlGHhRn3jelNWi2zctqEZGWFvfXJdgWuNU7yTDnJyOVoj3VGyJ7lsOlqgKtL5JJKZ0yzZJtCXM3JFEgZbkNn0OAgqjpoXRigcPzoeHNG38hYIyjBj+jUKYYBTLol28Vue5qcuKyDeWR3ncj7GYiegmg6JOUmCQYJQNRb99kkuwCK3h6CadGwOg8t2zVZrrlgRVBDFdlCo/kVLFY6CDGKCVsFF7JAaDYquIYM9GVQyw11kBz2d2RPdwLTJ/Y1lNDvnR4KSfo/6k28I4QxetXi96fyg1ah9OZl0SDbtmvgYrpRMAoq2Yhh+Ih/6ReoNgVNazECsa6xEstOHacGZENvbDShG+mCxxL/4r5InKYc8Btm0tPsmi1rcDZePCRo7TbxbYo3H0dvkfWJBi5ADOA9ViFRjIPmtZvWCxzMpkBhnZdF70gJNQxsZmW+pRM1gshUg/Rr6JvZuzYmZsguiW0/LSLyb1cQy3IFarWMY0FlbjgvRN2tj+xA6hsq47ibNhvD0Mih0ZEUU27YhPAHJdwonaNzZZjwWKwokrgEIusgwfGO1D/d5n0XfLQ6IA8GDVBaNV/CLPa8TnTMhnnqIjXMltvKZKFY/doUPJ2h7F6gT50wZWQGAB/MMyieyr4dZo26QUn2lQNqzysCQ+7JksgKdNWrmIJDbOMW4yXv1+2xMD/3w/6uPpCBcyWQD0mrPNfyHznDtCw5LkuwEwcJhNWO1rMO/Le2zgQNiEy87cifWKIwaPINaXW0qk7+vNioe1oEophSfP3qDjz/+CNu2paCmUo+ssu8H6ih1B92yQROfvtzx8rKbox6K35ELh6pTjKgRfBY90eJrcSfsQKP00KyzWml+cKKAFXx3Pr14KPWux9pn0XC8gFzio7qwCb0VdwNpBe1lAHr5vEKhvDxTE3E5dmTgpZuT01lz+ihu/ACBaNtqjNLQhJLWbHM47wAvO1tpq/X66ij6byOGU4KL7ffVMUhe9vvXRKXxXTmEVlk60hl4xBlmORfSaE2suFKrOzhRp5TRzedRPj90nWlLhracaQmIQ07CkMfR7XFoTM7spzE2ZEYmpmpA295ZIVzAeqB4KV4dAqifBMvOScxudWoQt0aw2ZQ1a1miNwuV2omQOnfnw410wMC2SdI47b3a1lwT/3XGq/fy4DDGGDS6e2k3cjOW383pOg+pS1d6hv1MWWu9ji+h65f+x/sS+J31pWabcqWXxnBL0YTkI3CbofKor8m+0ab6HXtu7zmoH24bmzz7bzXuVk8cINXsC9mRlBPmvhJmHxrXQWPVWfxefA159tcX2WN5yARvViPtjswwPE0WBDkz31BAdNSJ7vYn97ctWAePBo8ALIulZSJREWPD+53F9X4eTCn8ZvzeaR9uY9yLbDPXmqd3pq4lEsDbSfshCvFAaHJwxjqWia5dXwJaK+vCRgfOXI8nc2QJk0oeFt1iyjHpn5ZOXDeSHY1/0xgdt82WPU8RT/pYHbr76bljIFIMScv8zEJWcsWycJBghV8zoMWP/CMEiLt8aV92dbXzlabs8d5r08+y9eQe2/c628EHYdrhMlsUyPFffLhmwVGnjE8qodMPKKlEWyzvJCcBmCVjNb7vhg8iaEtEl4xWQRwP/XqXyimWHJhs4+TV84DN2lufHZXmUqGID0q9Tjn5Vufp+8tvpWNLOXMfKlu64lz9t6dr22HWSVSSl0LpumJoGZjKyBZW0po9BIcLaPtEOMRYLTqPDXo58F1oMjhbBjgc2N7uY8h+UXbOHPwqMIbgK77yY3z85g22sdW+Gi8QAZt9nvR8IqbHY9nVPif2XfEjf/st3r68bf2v+LXwZ31eSr6slea4UWdQCi7/z2xDBcfN3siylZmIJzzcUjwW2UOlcuv437YNYxvYd8W+73m6VLRRh2KXUfaRzQ3dglj6WD0Sv2tGdVaAOmo52OYWXd3op9JVoqG3Y8kMGydo0SeWR0UWO5Y52CQYG55aHnQ2S4pqiQazxqCcOq0tuS2zWv2oyAjJJ4FzmelyEPiQACVvItpYEsRe3WKg/P/maDRd03VAOBbS+lozYFmeTwTjQAtAuf1BzzCDpeO5zVyulHRb3SbvwepJZA8Dx3r/MNNNfB+4Rn94uNcT8gDa5phyRlZCBfd9x9x3jG1gu2217NqFL+QjKeLLMe3i7QlMYNdZS1spqTGGYGJg7nu3jfDMeshUnJLmjDRE8PJyt8viAWy3W15wnHRcyB3BpPCPwZCBk6B4d4HV2Ut7J+mWkQMcdOAaQkdoNpGkDLvlNGpOqPQuxfN24IfA7isLPDSsKpxvdWmvxnBAXZf03lYiRlDE/eyggJ/yaFX0U1ZJHnSpWVjGoibQdyBO8DSyWUJSdNapgiL1hlAwtsoZG5C0lIl94csDtmRQYyYt01gsb/4uJ2iE+5zBV+h7lPMDXu7nWNWa8pL7Yop853SkijHzUQzxhKaNjeAkVFjjeeajNkbn0JZGJm1qPIbzoEDt+mkV3PdpS99dDiZfXTPV9pCBZm6F7GmyTM348kE5SgqxlvszwkI0R+Mb8YFKmWN3wevlhYixVSbGOHjRCG42Y9BewhnJT0+4js30cZwiGXuNdcbqj45AjYk/EkvSlj/g84Ma1zhZ0mjIsDsgY+Yv6Mx24B3j/EEEbasSAWjQ/eHpdP9ZXYfgCosyP6qnszJc8rgp+HGbJPOkE45OwYrfCdoLtvV+zcSQE44urOtSSzaffBQ7KxaeCao9d6vTQ+UXDLkfLehUHIMqyZ/QNl41jJBKtbIojItjtB4DG4YZfVx4tq21577AYc1zjqPi+XbDJ598hOfnZ1cQE5Hd7wF0b5c0oBk0Vez7Hft9x4+8fcHLy26Kw5mFOeSkFsf3yDDS/0u8+xAbr8SwnBmBtd2oc00YcDDRVU3Huk6pUuz7zKXB3TgVlJivSQMgZuyyNdHSy/578IpA8+ALztKqqmeMJfshUd8mGZyJ85D4O+3gA7Y/ZJhAz1tShPuAKK8LHR3c+MWhD8cRIlmJfonf+RNJA0X2K3sRW1gi+TJqFutk1Bvt42Rb7nsEuNVjNmqOVmRBhVBNZyta7sTk7GwdNc3lo8nqZ9HU69Coy3VjOmaE6yIT0fYxiKgEGq8GaOMmRSfWjOsMcKBpTzlksyf3l90PlVCMbcM2xqKnKuBO1Sqa77BUTYXdMyYCxMmOCshtywSd4TK4gaBglg/8Zdgeqvt9x9i2CrqIpka+I8c2wch2gqi9CA/Pw3qIa4OCXaGsup9/jNkbSkJSMCFUzsWGcOZlwlQvif+5HYrfKfFTnI+Y58a0EytDn/GKidLZ9aFkNGQkymnrk5GaeJ7kM4o3pPmbIGc3rKK+ZJOLmyoUSOpKRUsBKpWjV9N+9E4afzefhlcc8JtnNovf83cQs1vUeiRbQP1y1h4YOVMl6RoY3xoLU8shLkTjdM1oHOKk2BlJz4XRi24dP3tds/3WV4XLwGovzmfda7WPH54tgjzLeka/CDf1a5Ei+aNMbymbAFTiIPibk4suO3VYiespajJHh8Yt7G8Xf+bCSFzF3jfC32Vhqq1EiT3At2FJl7CbcYqUwE+u3ve8My78s/Y5Epo03gPqh6DMbj/zHZd1D+5kG7mqYdcdtXXhXPsFfBBBW0Iw8uOfO7+m83P2HOkUHWbcUgGfttLaeTzDRizTyqP1QZxJjssiCx4FbCvuDQdPUdjPdb9MvYukS2Rc1j479RAap+0L9D52s1B4IRzE6NViyBreJg8pQxHoSPud+lrdS+NWWYu4jNEqzaCJFZbGVcOE70L7NUOWp3d6vXkBKBS3pxs+/vhjPD3dsq59Ku5qR2kXrXzG5xCg2vc5J/Z94uW+4+2nb3G/c8a7gtIjtqkHi765j8dKDioYSiUpRzyQreUY5oMzzu6+ENFM6b8e0BWBzfDZWO17G5GTHnYTE8uSsqT6r6Swgx8a71IAHc6pR3TQuFUllsTEK2TWC0LxV72ZHSUrReaV7Wz1kgVIG/VaDYLFsRIpvm2itMqXZpEH2gU5s658oTLj2l0FjX6zDBej2Behfqfwe/aTjmSOLmW3ohdyrC++8Xz6qwbs1OFBkxNDa8U0gkI9/G5ljs5OOFghR8eZZiDvWWvIRJngWdas9k/VZHTGaYJkv8oTdLyWYYnfI0i35eA+m+0OVNw5JmPgaZSj0JINFPQ2BvZHJnbcMI3o6sAA6He+LHzMsnBqYDrtVtvUmkcfa10Jf2LlWc8F+7OeaYWacjuvKLrDM3ZHjoIvFacpSlIO4aTmXkiBO3BVX/YtxivKRrsRUIzwOZiHgn9Kr7XfaC9NJQY0UW2rTlJRkMU6G592/1HpiAr8enVhS7rL05MRTd9yvanzT351PPuR+vF7BHM0++vQLRaljT15InE3X7wzakwa7l6txLU3kdzJzhx1bQZo/puqZgIyyR96brHdjNLhidaVP6Qh6Q05q4SJuSRmFOG3R/KaV3JENcay9jCWwTc1lnqMT5YMrnAdFmVQ4xzJ2iGCbQw7jMn3s8W+f0D90CCpmUCvQ1D3ZyrZXI3Dh9wfFJ3Yp/rhJqUjK2hzjT4rwFNo7W8N/T4ndl+jO31Vjvg45pa4RwGBw4cVtIF05omtPgvMzusIYwwcNW3WADOYvb2D7nnYDInFoQm2Xnry+4MaQ66SJ7Q9631ZHS9yKEC6gwMxV+TJcN3LKWdfTqjmhuKMHqUwKmvVaWAfNRwf1ZZhOS7r680ag2vbT0BUSPE/KnS666Njs/SPHQpJug0BttsTPvnkDZ49YDsL4hVKSoV+ofJz3zHnxMvbF3z69m4BG2h5xcO+M29K9reyhl521dqOG7RmkyJjJcKXJ6MH4RLzS71tXas+UJsNT/wmqcge9Q3hWKD4IOPndBjATEYOg5T/g+J58RfjcAdpDF2zOM3ZCycFoUSrzba5XAuvbJNtHhm8OZegI+jMS0W0z6aE8o+Ae/g9W7WfRFpdVXXM1lJdVL5SLFK0dbDlOpVpzuVS5GBm/b7UsrmlgRLxk9J7SbfmHJC/csb8CIdk6VPS7aw8OsPSD+kEB35zVh9St/k4a/DL0eHJ/G6Mk/g1BFEvZZH5vXRmFpgpNxEIhgxQsP0uYN50vrbseci8oTCkLmDPWjmhdaCrRKcxPekiQxa6gWjuwqH02+LAFT2OzxZqvw56/Fp9WjrDFbMeOPRXU9+cpyvX5mPs2P4I/c58UNYxaui2tOuiIGsl4Lho6DDJrpYd6fzPqk8QweEyft4o6x30ahYDwJVXr5odT9Jr0+/JLsrzZqmVWxITWWchKhC78m52mleTiw3SMhU566+2Ny2SsjbsFVjzftWsN2Y96zq6gykCf09Q8EDXSc3ay6DLaecUQGNpXx5OVNcGqdcXOoieAjibbSubwHxHt2QtxaPDpvsj+K8katfVWh9C9Vl78X2R3bIDRTyzq6UUavljyRiPwZwK1R37mKbn/CRdkQGMgS06lUJlX8cgvnW5m0MwxgaoXUsyRWx/tQJzo1m0ZcnnBPziNudll8siRwV0+33HvJtPmBZjyDuP+wc+wKCN4Zh1Cf5/NAPVoQd59l7VeR5MtYRHc4rs/fps8PrR/Su8Zo5O8FnsXWXeOq681CL5L7Os9TxObKwAsJR+oqdHmqcTHQqueamkJk/tHBkxNpghIfli1MkDYP8Fs5NWI8UfTZTJ4ZYnsF7adQ7edClKxdPtCW/ePOG2bY5mGR8LBugIdAXymHDSVHPu2Hc7IfL+suOtnxCZVAilp8elkWmQGx012wvjLeBTp4+8F45cKJJQ5HmCIGVsocgT8GqcKbmBarcd86+RmXTtq5XZXBKYTG60PGpZV6OdWv0jaEzRUuY9X03exEL7UphpjsN7IPkg032gX/BWBNpA3UWWKDgNJHBc5CoMbu67Sjz1SCAF3feUJEWcpifR9zXJIotM05jwshjWGSPNYP2l3udfY4cmJL1snSJOjoK3U1sOsFRwqhVTpAP9lUTOgCaCxfMRRGfNLUHln5cT99LByP7o+muWCf5MOWUdTQowZtJaAuRUCqovYwzM3Z2yfZqjtvB3QzG9HSX1aZ6C7R+NZZGGV9wFtjBIMmrwlPVLs8F97vb+NrDdbjU4pHe7sUWN3QphYwTNoamfOPG39LvJajyvASDzct72iX3tqJGtemjDqwmELoHQiJ/xTn+yJorPvnd7afUOtb04/NNarkuW4xZr+/hgHy6M5QsL0aga85aA5cSOPkOlNPY+q8/4uL6y1Q5rB040gcAsANOCdGM01zW3IPUO64b8xTASslGxHLXEnHYytXFAH7DKjqP5I22AWneom7XiKOSOgznm5xwF39OrqrnAOsSe6RdWNe+bPDBi1/FFKz/zn+U36g4+UvJb2vvSaYiyW4megsaJ+tn0tj/X6ImYXaNtPer6h22oQoEd2CEY2O3324ZnbJBtlJ4bdYKwwmf2cim64qaKiQ0QQZykMSHAphj7gIrpVaUgS0RyS0PgGLNsEAEGqUUZuN0U2Hfc73e83HffZ+xbEd4R23wwQZvwqNZTUtCa3x8FbK8GdM22dCauNojpD3WUw5M6LRymE2NyfK+U31nbSnP3WeeJA95+T3UVdZThi+8seRl0oISaBeicrLaf8Oz0KqNDKa7Q3Www1vHM5XwCIC8sVypaS0FCQarW7IRNYYOyXWUkxKWk3mN0Faxku1MgNQsogrENvPnoGW+ebhhj8+UmdXG5/U0vqTLkKhBM7Aqo2kEjc+62HPLtHbvPtqW/Q5k+RdGPnZPaoKp+HDfxm/9nil9SiaWS9A/2zixjF2MfSlF4v6D6Mh60AJSVcepwksc4LW3E2DTq1v/JO3AZ0zp4qd2TFAosbXMZ/+Rx5z/JPvqPXUh9o68VmE5Yiz2I+zMDWnnbNCJkwGLcrOplOVwo7hNrq9GGtz3npFMponjnSp0z+fxsZYHUQJSB6ETnxoOoWSCdZmea3PuXhCb6+Md1L5cuK7ONpdmiH5dBHxE89Cx5Pml/Vjx1Z/ao9FH+XjLWvq+qKaHrK+4TXW3V0WiMUvyeS2Re7StSdiGC7Taw36etDtinnYC2Dmzq21BaSCeED5xrkxRqQZeMpa4sUA52/qLTMsG77cfdtoFtlE1+SMKTHmbJNFbxV6nMqpdXUPrf32FZyzb05C37VLUv+w8btpIlWx85O9OwLsxXDPVQbv3yWUHs9Es558GCSP4twrF8z+0FeXgJ6YVkoBK83DNJNouJ46UquZp1gfSavRQmvxm7k/5Sl6L2+s3bkVB+yoknpQOraIbbdVoug/M6NOjhOrz2Ovd3ZZhqk7gazB334gqpvfHUxXaqbvSAIxRSuZkQRdFRIFlH6Ld4P2a9kL0tbNLGBt1R9XWRjPpiFcaiA5vujOrDQ4sDNSSTgSK+Vy55sdSj9FoWsV30sre5ylD4JT3JoU3vKdRs09s7fmTsuN023J5uuN1uVsCvogj/Y7j9021gAnaDGq33tr1v87gkdSD90wzQYMGyah0GFHRB0EMEIhvGbcP2Yiuv9vsd+1Q6ifIcPpigDaCg4lSplfKIMufK62xddLEteSkn9ZcwhMPcy0UgIO9QnCdYnbwQmPBk3aN+1Rp17tHxvTq2Vxvzr+/xUoHe3qIspT+48MZ1AAAgAElEQVTNWS+UQuLhUip5hJqViEAhS1JxPvQhh2C5q4p/yj7ayyUoFAWFMelzHFSXK4ixDXz80Ru8efO03FXigQt4LDtv2P/mNd33if1+x31O7C82y7ZmhYXHyB9m37Pd1alYHJLI9EBRQRaV1PrLCjOXSDovN7pK8JvTSspwhO62dzRPaSwaUl1BfsSSTsKJDdsSrAjgJ3NS/xdR1LU/De8qZAeL2D6PqG7tK5/SmU1m/2n5D5AHMlj7FUSv+PEglBhWy9sY1d5CtLSP2mV4BREpuyJnBVmxVIcTD3bKhHWPelK+6NJ1Mo3L6N8jpVgzqO0sUiq3OAZLR8VxLf2jSBvIY5M+Cck6yXjysRBlRj17YAbOvjzW+Ym6tDxbc/peeY1bG9sGFTvhETqx78C2DQDDV6sS3gdGJjxgQdo+d0oqhvZbmUlz3PPJ1FwlAFgwObYtxyVr4KTb2pnEcVVKXLy/+Aq7n7D2Uf8e+rW8GCityx+V/u9Cu2ByEhCuuqvqfLTw9/HQHXlswXP5XbgVXeixBpm6fiZEWqBBvXLlJjGO+Xo5FWHH8hl70wfZXvyL076e4Jn91yR6jmOzqdypKJcGC2m8ogJKuDT9AHomQCzPU6drzURrW+0RM0AQ9KsHTtXzOhZSAVMTmbCB57TT6niD4sL1NUUEuWUqYwWHLAg/qFyj7zviEJBS1oJts8M/1LO5j7UgOouc8oT3ZKr7BZoTCQd5cEPc/KCpeHm5A5A8IbLZNrVD0oYMyJx+NYj7277KYHpiOnjGfAGfvcsDn0oPBp9kB0kWFXWvraraKcHbhvl0w363659egw8maFuDGp4FOFfI7GTwO0c9+1o7pV8i2HtkCPpn1k3n7UT9q3PidZncQJdpCQvMjjjqI8kMMWz1KOmodUklz2aUAlzrY4TyQBcygS2fJ13qOm1q5qxJZ+hNchTZVq7SaEJCSj/KTiwzFuWsVY/KoWuGg+2SAk/Pgo/evMHz81MGEkModQ3PthBukeVJBelHDu/3O172HS8+w8aB0bpuH/T8NaflsPRGeybrcMJSjn3QxEYjxpKzdVTK+2nP+8xR7dHKq4CU30VrjzFv1UQJiQNfOm1qGXDMkJFt9XqiHaW68kqaBnXyrDn8XkjteTt6O1hzvcSLkF4D3CzEpzDER/aZhDu60FtB754rsUwiZYDcHZN+NGpIHcms65ozh71wiWY7z9dvLAcrDZgTmUYs90Kfe6lOrCOUDDdEG51LR3obWtgcdPXJrEn2IssSnnxy0aneJ51CxDnQm9nkYNqs9DaAgS0vjd2nAtghzrOR6a1+Klow7gIzZGCHOQDiy9GWxWpEDsmDUNT3D0MntjF8hi6WVkrSVdbxOEYURcZXbOXZK+fPeRFc6BRtv9Xns7qEPp05kmTZTsl0zpvHUsl1h1Ye0R84kq81+4AwZ25BZynnk8puPKg0+Fv6Xi/ROs6ddNdDZFhRAzgQMz9SoeSdx7QBje1S+eGp9wKKOuY+1KxqHM3ux68j9H3xT9pywFadWEWtO+zV9Kw7UrBbj6T3Tqm8latljpx/Kx7i3lshFfgEeavhQAksT1XVrmyAQDMZTo2eDcHKaGHndfo2BltWKQK/+mrYKYzZP8KC/5zZ06SVNDWtAJ1i2XqE1RyerYB/eXnBnDu2seF2syuIANN9I/py9+sNPPk7VaG7rTaYvqxk3Oz9vNJFfJREMkhF3JkaoyeaNFapOxEF4vykpmtvt1rG/gA+qKDt/AhaPHz2uK7P/vyQGAI7REdDzbNMj+rq7RxFlZMYx8DvcUfP99i5wEr9fhYTrH1vdZ22Rk6S5mJFsHif4XyWKdS1nALT10eHc5lGxTVrLpnz388C5KyXG118OSYFiY1ntGrJ49ObJ3zlR2+wudBY4OCC1fauxbPg1bm4CBP7vttG0323UxNPlSBOCZ9LBNMHPCritjn74CBWoFOv8ho2bTcsaCi8lT9gwXdc+D1VT7cFxvJEy3y5kpo030q+bKCl8Z7/UOao9hGsdt94gPu2uMMKUoT1X0+a2LOg7yExTTgmRgfEe2fKiBK2zcDRASKChVfZQL7isAhRaO039bfcmsWZSdvSe7jOzK7mdW1JnXDnyaoz3B/1KZ4fR/n4eZXt4JP+7HFSa9WVK2aSZdoMfzQtVHhFq5Hz3DC0hEiMd+vqiXxDgE2web2RjFFYADdkgPNXyX5kA7LqAQiGbcwf3FbX2RmwRTeGYMhmy8PRKN7e6/QgI/k57PUZlA3TE4fxqPPqczyP/x/bufq115dNy1pO0I7v4zpPlUbhtI7wGYEEWlcqpmzKEfH2Us3OKNMfQKxdDvaMJZHdZpDM9yjcdQqyz5awqs9FgEUwuI2jMWJmXfj/hGkWUslJ+RKDM144Uj5mOaZP3deNe9234e8aYwOYP+SsENu/cru1+y/RWAZ4QyxQaiTgoJ5CM1aPLNuo8eDdiZFI1LjyJsbJyxwSBymeEzKHB27OA4Rg0/9nM84CIH2joHUgP0FbypdR4TD0HaDtTz5cJzuqpdBVR15SBfb7hG7Wz7HbgSPrxJAdIEY7vbeBTQTYFXO/Y3+xvt82uxbCfJFh8ia6yAaAGWuavL6QV/viLpoJlQL//wnaAuF27LwAwZSfB/qJQxrVv9b08n092emkDEhZyHn9Z8lcPfv9FRbmGatytux7m03Ss3es7jWIfLRUcxUMQOjOlRVNzZceuWbI4iebglul9Sz3r0nxAieV8/AMppeiJgdo7FhQVtUd37dt4PnNMz756A22bbQ2+0luahcuAog9bHPWynnAjnCdE/j07R0vb1/6/jUQnUSa41Fo9YCtukXGeHXy8lSp8JuYGVft4TNkMUOntR+vTeezfRUpeViSKnXfpl9mncqp2mL3JTiJVVIlSogPCOtYrlGOo+bYcL8/D+SIsQGtH9v3Ej+naxjSsnNH2Q/EUIxbw0LEjURV+i99/f6Zo7w+OcX1BGpculvSHSAerZKD6t9i2A+4nMvaETteyrvqvrMe8qLrs4y7lxR55ffjLPbjJeLcCQmhxSmznZGC9H5zfM5JTe2EsoiEhmswkaaLAPiF8tTOetCLAhgbbhtwh13WXaekzYb2sKyLZ7HhdxkxjoLmboU8pmP5Cued2MB3QXMyz6a8aBj6WPenK6e3CpL3D+7ggg3ZoMBHjrzEPuRq9/n03qLdEWdb7qzHehg/PXkunQp2AT0xWfBHtsiDe5T5Kqf0nBd7ciKK+TbZ91AHt2Wt+8yEAHmgkFYrmiWrLSX5qNnl0skr8P2cCJPLS8Lhd2v5k0gUhxYpFXAc3BKz2k+eSyMbEj7uuy3RN7n1qz1St5SKUYkl1lpUz+9lQ7k8UPzX78grqjd+deEW1LYRUH8TN7qdQsSW9N82u5B7r6U2ZddUM3BsWykIi1f9cMYxxkHbA+Nl5XqZ1FH+sT5S2Em4M04PljvpRbNLccE2VO3zZss/N9gZB3kauSqm+tLIuPppu0F8/4QCsPNQnDYugwMDCvMNbb+9n4zuKxzGa/oUH1DQJkt0ucrJa4N9SDCFM/SuNqne8xmy+POaZ3gMgg5Bk3/ii4N7uWYhaTYH7Xn61BTF9GCtTsU5QnH/Mag9sawhkKdkJIUwYq+dKde8A+hY42Mgf0gBzw67ozA4f+ZhgNJnnv5xL6JlKB+xgQjGtuGjj97g44+eXFDHwnd1UMp6FGvw2HD6qeP09uXFl0SWY8QodIN0+kMlc90QtO3zafiPjgnzw+qSiJOH95KFMra/NHAenOQ2sEPqqOoruekG6yivpejYaGa3oy7wsBVRVlOefE7rSZrcNZxKuNP5zVqXcXjIsF02jhM70QbRIRyLoxd3rtBW/+bdKizp2XVFoyz4l1Xm297F0/oft13vrm7C+ttRhxXOrUbq0/F5jFe7oqLptJCLlZCPOqHFu3kSkX8X4DRgWHE+UZ35PV8vHi0Zo+asA80RsecjsMyn5lQIbrfN97rB7/7RdpJxyKYMwZhbNhH7OfLwAjHHwdYJE78cxoZdLyzONY3xWXbzDF4Zlv4TKYYzjdpkXvitBY3lgA5Q6CJlw49SEM+tdPCcDZdn/MUd6wxgJFmq6X7SPRIKFOu4H2fSG1XC3hH/lE4PvKx88Ha2l01qrug4S5zkJAon6VqARDho2JCutTO4SVulnT6wmadG+2Upx6qXZMUx6FyNZnn1H9isWcK3KCzLIffDX7D+xziTgPuJklNqRCpgs89GXm+HbS1iBqdsZ94TiVI/gXt0h2fw2i5vqb8sL9nXvAsv6E10TXUk5mt54IAcx8Ki+6i+PNGLzmhwQSC2XjSRTTxeMShUNPhtlcqu9Y+vWd/DzvrzM5WktWoKjUctoApev+87ZA5stw0bBmQbuIlAZRj/qtb1Mds4rqIXk8toEwrMMZEHqE3j83nfobpDINjfYfg/mKCNoQcnrFhK7hlO/Z9D4MPf+3vvju8eM9txyaI/pxvk8xnXuDpy/rlfIUAKy/vBjnc4HcEAzbwf6PSok+EETSr3ijUF6d1TD0aXJ9LwKifJv7NWzRq74Sq5l3KW5WQKecWJZi5WeH7zhI+en/D0fIPkFLm3TVntcjzZIeqfp2/af3m54+3bF+z7+UbSg7IJJaZgkkBB7hoZ3tM69XwxAB8BPKhsPI1PU2F3mARfSTf+dccdzbq2BqUbxvhJ2Bymvsoe1i7AhUD+7hoIHkfymLVL2lKQyfTpnMiYvKIAXrMzTVRPLIMT4KGZovHPpTjhMTERsdJ3YRZR0pELwrK8x/XwVM2hw+c0Mb1y0s5Z2fifgix17yT0Ve/ZRD9FN5VEme94z6+lYIX3aK8ocNT1Qa8IXvoyWOlVPCbHgQRZDZNH+pA2Gq/2KR15ooP/zjYgll+LDIzNT3b02bQ1xplQmwWPunXmfjm73yhWEBAJAiuuKHuoRcMSulVNvg7JwmfyJ9x4EjP7DxK3FYegWCd44p3/L+b38X6g6GutSmgdzdnQZdwEoB0tB5E01KQ9E380BssIvZNJRZfmVBWKmCUoW8ljlwbb9AwlWmzvIi1JV14ur9U4YZn2SUKPx/aMRtJ6Q9zfEYFgQzj1qSGcruKfCzTbU6qcRN7Hxm21oC689h9W61j+B1tZVrK1p68vj5TUzWP17XQmX43op7IvFrZOewdIPwyRvHTacPAfIwsuqCWZ0IOKWoHDnRpKbcvrw470SV9thGVa7grc3Q+IFI+PPiUTNN9bJ06Mh5sCJny7/W6qRLXxV9mO1IzNtylP1v0Y1yXNtabPdWy/wpZ1itNJLKilq1Ly9PNNIOope9XGD3barp+HMIDco++ITbXrO0IuBAPbtvmpwcBjr9XggwzaIhCpcV2F7nVoCkRtMOJZDbwpWn7G7xM2p202h2HBnd9l0To6Dg+4qOHgQtx+XsW1ynA/1wD10C4raIklHAsqmj+3IDromvSb05c7hCJeeuaKdfUra/rfexXCf3bs6SPl0sngBnNdnx4fBG+en/DJV7zB5sFaW4YJ9f0d2VBHQeLUIjMIc1e8vLzg07dv7cLsUHQh3Evg6C4AYgX9qaFrSrOU0zksM71p1OvrJMaTHGRvx8dkXdqhnWg9SbrgycFAks0Ls33iPpA7hHBvsgR7g2FsggnzvS5X0W3tiFN5Yhv+UdDaPkiWFq6vGcmDJ1EMXi+umRQlh2FpvKu+qKsvn6qOkUBloHM0ik3w2KyTA1BPadaW+KCh/0AZJ/9mKrFp8GrJx8r0SGWho1SNayznldQ72Rd2fIV5YsXtbASPI9pySE0xLe+sAaLwQukuj+uwnye8OhIsHzHLw1ScmQVRyH5Og44u6Rq6L7Dqr2Xl6aRoXeXRxy1on49W9B7CWZHHiZPCi+Wal7WGro/iZzzdkWRUxcYtGU+wLVci5AmtVjSDi9I1XjvZDHMi7chwo/GOuZ/1j/sEGquOc9pfaOpgEaHl6f0uCl2VNdmk2s/FsyGaQTx1CKp+nLvWWRu8r9sSeV31rWKnCuzhZ0ABxF2mMWu+yoNg0Mm1cY0P0z0DIwFE43S/LQdWwTh1+8inXbfnhEFbjZIyoMiLrTPAij77oRsanOw4o/uwYwzbYiGlKYKOgNSl4dIDxmJk7Tzu/2soS1qVVCsP4k0bRBX02VovtG6RYBlL8fZg7cDJTT94helTSKerZO0HXXCweQcnMurxVqQoeA6c2FiAfJ/4XPJbOAyxgOo2Nm/P+V+rb8n3s9ZFzanYxZJqtiILfvDgpJMjow1Ab+aLxtXpr8EHGbQBjx0C/7FruQP0YXpc1SNLQ6y+/MxjfYZWKwgSnhAAUn7Rxhl0B5mt4mpUlOqTnKnj5W7B2ErO3RrUYkHnzA6f+UEp92PUezQ2LYihcdMFD57pAgCME+3PPT+T50RYM0PFtcoQPL95xscffYRbZqWrRNxLVHsaOaCLYI2M81Ts9xd8+ulbvNzvhSYJdTMAgchEOt9r/8OIdfbwzBrjGn1S7RykqGPYPQIvJzqUcbmBGQhplcvam3J0r4Wd5Woi33M3y6qVuvS7WEKaLxyZJYXRpFixnIrXRP3In2SJ2l/+ZS0Tv68MLstTaX/sczhPNfOrqjkG64mgeXkxYbTuTWVjlEY5yp8JZkmTn2hVeiJosprJ9VNlQEHj6k5CbZg4dL+DZp9XR7sv8g0IHJ3OSnKgkW2VQ1/72DYlh8pCLS21YKb0Jj2hL53uXGORae2NNMyqe8FtJd/rAEaCMtgochY9z59SBHKj4AedJUxNqgE0MxPJmp02vMce3eDh7K9Oc05mtYawE36lg7iTGcxS+vxctjocxyfsxtHKSemteDJCp/gypdAVITspA9FP58tsei5WlMyfKyx3vayfbk6su3ZRby6y4+0BOQbwJVNW69wBvRXP5OqFufgXLt7alKqykcjPvLz1LFpiO7wu/Xzk06zvA0pr4Og5Zzaka9i885pkpz4Vj5gPpXm/pJKvJTtyJknWWhYBq6BvTbR2/ltQJtwtMJ1EAPFTJaMvm9gzYEsaxJhP1ZzFHhL+V40XJ7wAtIQI8ggUKhF7o+K5lm4W7fvEhdpZqJL1qVb2W8Yof4EHiH3U1B1d79o7LutDjmPzQC0DZyNybmmz7InqOGoMJM3PfuTDRVh3dx+d/rDdID6a+8TLp2+B5ydbyQBLGmwurLPRXj15o7W/f6vhEQFA28Bi5tSuMhiYm3PYWWcJPlPQJiJ/AcAPA9gB3FX1G0TkqwH8HgA/FcBfAPDLVfUHxaj1mwD8EgB/C8C/rKp/8t1teEdeRVjTSUzb9xjnKn/aVim/NUB8fY/aZwdeAqkn8nXWDjPWOhNXeD9GKN9XzWnv5vRFOyjeWBWsLn+j2dg8nAEMHryngMRGSwVtNTjmogcLPYB+DJP0ykkpHJ0mrTJLlklEMmD75KNnWkYkYFpmMNaWcJWCtt9CKQvmvuPTty+43/eHghbdqCjcJTV+i7HmfnrZuAiaj3tcZ+iAmM3j2SiiTWS62uDEKBTdQg0Xb0jWXXrRyuT+ZDdmoe+U6o8kBYhP2FhnUIAatrRBRT0Y1wV2PYBilnj0mWsKcjoDNVjszPJWtbcNJO/kAQPEb0Gn4XyYBmHJrinsQs9cJhq0CZoQn9V31gnFQ22mM267pgA7nZlVkcVzFWCEk0BMHwMvVK5apgCmaHgcid5c/qJnT1edd9RzcV8S13pM/FS95cQzPu+wit42G/4Q4Qgs40Ak7k/lRmpWoHsG1rbVFTMotRd4SAQhcNVnL8V9R5HlDcdw87uK9rn2J990h7SWxL28vEB3P1UwnPkxcHvaKHCr8tP5Mve8yfD7KwGZA2PE3lcP5sZIZ7I5wuwMYpAuKFoLlQXQZ5WBtDmiQX+pADPxtr+1xNCJi5IvVfjBiiGnNoA61S5ImBEEhr0U3HM4FXgJMxPy27VHBOAhXvXbuvy3ePa4/1PzTy7xo8DQUPP6JC5Gj36G3kxJRYdl0aDylxwE/nOQ15xTEqHLmPsyZuXu1Eh7UaIX0SN5QhktQq7hGTRa5n9cdtIeLXRIPeX6rbUR5+infxB1dQK1JAIRaTgtZtwF6Z0xfpIq73rM1PSgeumTKjKB5NifnSsopIsRPlML7jWD7zhevr8ftRRtYiY2khZzYRINXNL2W19jhi4LES6RsJQg84kNZoIetPRJtmFq5+7U8MrnWii/QrraKWGnqIFOs2vN7PvE/rc/xW2z609uTzcM2eCqxiQhtiiIWDVie4cnFOLLJXkFSq1uSGth+xBPzPQKn2em7Z9Q1b9O378FwB9S1d8gIt/i3/9dAL8YwNf7v58N4Df733fC6wEbUumO1LQPSx7q68HS+fN3QT/xbGkvBuwz4PIup+ERrqXdWBuesay9eJbbrkZO0JDHY9CEgXHU896EriyD6jj7kpFxkA9WmtQ/iih7FpeFsr8i/JrYhbUfvbnh+c1znQxELxpf1ZHXtiHaDEH5QxEsaWbY3r7c8faFlkRyP1arxREgOSih7NIgU7nEkpbsBGYMGYjQ6+UQVCDGQQSj106xzjIgfMjAHRwHJP68B1Dj9wzMjjTPDkUdqVGZ5iDDEOj4vgop9ol7h+MdZm92CqixRsPI+gZOYagTHZe5mZnnB4IiNB5a4yBMVKfjpMGKNmI57Rg25SJuFCppIE5rcoonkS+oHeLUevxI7yha1qCEfSEglWvyGMVWa93IsnxjGrqD8QDDs8RatdHOV2Vkq94w0GFlDzh2oz58nHhW2s7qUIjf8yfUao235hDHLPFImxFiMpMvEk81mbYAqe8vo2PhUk/ZnUEKHRvGJtS3eE/bEEab+5zY/eJWzsDnch34sj5oneDreE2foRub2vHXAtjl336cg0R9wWmKuU9y0nx2U2wPR9nFml3ns2ez/+zJeyd3Afb8OeTU33P+VX83l4BKyRCqZOpSJVmzroXwwgNWXybZ9NmZcX4kafV7cLuxyxlfP/5UT8rhY10a/WYxcJY4wfbI/6/Bik/otZbEpaok9aj9wJ8fQRML/YwYLstDEbgc/LHguWjgWHPKH0Byu1qSw/wYlXMOWs4myOWUWRsFvTw4rkukoZepPZi+q6sD+tkNLj95gVtUWEwgjbBSPQnZCJ8BaMF46jsyLMwPwcv9DYQCCoqCDCQN7pEr8jMrNg3KSw2QVEUHHvkMEZAI/MqDzXGlxMNSbp/TqJoHiYglrsQLDMHY/XJuiaSBjYUC/ZwLATaSG4lGPoMs/miWR34TgJ/nn78VwP8KC9q+CcDvVOOmPyIiXyUiP1lVv++1yk6C6JNnlf0IB7EvcTuv69GzqOezwucp6288/OWsf8GDYTxWZ6JXR8bnxKHRqDBenpqnMj7C5VCNv6OLUKQyCWNKa9BP++r/pyMcWHCfmCAk20rLM8qkxxdFzPSEDGdyy6u8bTc8v3nC8/MTNg/Y1lmL3JAvkhcmDhFMWKZkeF9VJ/Y5cd8n7i8vuN/tAJIKxGjhnSzmODvDARtRlTrX9zlJ13FiF0Ean0Sme6SRy7dVk9aBz0Eras18QWvphRZ5KzMXdGUHQZsqflXdtLFrnxcFntlNaic/Ljy24LKC9CL2Nwz267r8pAZrkHEJGWMDK+AlyjUmHQs9+VqzB/zT2u6JZUKnrvTyh7oIMXeqZMTsOdIwPs6gdUN5xClkihp34ayZ7fO6tX3ima51J4W07+k8utPBszYlU83f8KVpQYNxZBZSdplF5uBRigcyGHDlo65vFcBOFaWs8GyhhkknZHEkv5FwYr/b3Y+mb3bI2BoBy904swlK+FYbA67/pmE7BJAxUq/s8yXfmfvELvdMKkCBHeS8Axhqjst+v9fyaK/TxmZmV/lOonJv0BI+wXJdBsj+1UOzMO1ySDpenSrr9O30lxqpbDhYl3cSRD0DQrPts3yULCb9SoDm3h7B2Kfv88uZrdXus1on51eyzFI3Tl3Sg5I4C69WzbTO6J116djaa1YCYDPFieF3wprARac/GNNoZFkGDUirZrVapWmbpV8ROaBrbWjaZPhYThlJ+lxErfarLnZQgH7pOaIcfD1ukEDzGgUv0YkCIGZoFb6kU2kpr+aam9QVkZSSEOQGVb+R1H2KOLtDa3UVB0RhQw6S8GjMT50Nr/Ps+qSgVwtqcfjcvpMNNFq47xd9g0CnbaGZ2GDpJ0ueZTA8BoZvoREfCxE7fMcSrRNjn9BtYPc73gbCNumRnU7gswZtCuB/Fksz/peq+lsAfA0FYn8FwNf4568F8Jfp3e/xZy1oE5FfDeBXA8Anbz6hjIEP8alSzbcBCKYKtjZgjwTps0BXT+xePApmWKTGJnTyo3PWieH9TFi4QlmSR1YHOQ6VXeFCgozwVOkyrRJELLRVRrvVU13JAoricv6N0mKZtGEDLGF4GMgKxh893lNRyrL4I7IiEK29AUEbBTAET7cNT89PePP8jG0Lx7Q7gArxWGpABc5PEwo70jUzmaqYO/D2Zcfbt2/NcQIoVQtTHmEwhDZ6ExHCocw8dyQdxJciDtvUnHcloZzwTFSgaDUnMBHZ88p21tBVZi9pzozVxliq/sVAHCxpdbXVfoSj8Tk4CY/sAEB8fyyfDvSy5KhJ8tn7pzhqMFg7CLK/1y1K2MaWhDjtUIiNtmE4l8M+Wmf1nLUQY/S6n1NjIcOXvgzBTQDZtrKDYBvpM6jTN+STkT504RFHkF5hf5pLj8jwCtCu3jhZR3NcQkmukMuIuh4cKLmxMnEhVDgZJu12+ngtszu3OTOTtzlWFIhGbqxHrEyGsG2dTuEQrG2WqrOg6v6y28lkAFQn7rst3TF6KbbNj/bPdpB6H/D7hyDYw37otD02qtD7DhXBdtvsmgBIrtq6bTeM4SsRpjl8+66ATl+2acFXBnbhcMrAEDUc4auGnGY2X0BDTJiLI5/Lw4MylcVDLTXroQ0kF9yn3k5n04+YR+DB5ZjmgtT/0Xn+B3MAACAASURBVLaqbbOOcwLD/ADGP9L2fpWcVdW8PqLdVOn/+j4qHbS8z5GqEwMJ96aLSvk91Mfs8J6xOaL/hN5r8CC5s6YmXZNgtQdrE6e1neD5CHX7kei/KH6XVNTyBJBAn8m8Hp4cexDJ2LC40RN7384eCatv41lLXq3YBOgeeS0F7FDY8UoYxU0B3UgC1PZFzSVpnJ6XApa9p5UlWr+XKLoO9TXTCoXuix6WWhorsSQw9E2wbVBDC4u06SwG6dSURjyAGVEibQgElX/wavX9+Dv7GOFzxYRQHPgU23mhgv2+Y8DurZubB16x0dY7Jq6zLUVlkwvbEAwVTImTfH3PrAyo3839jvVxAD570PZzVfV7ReTvBvAdIvKdvdOqsu7sfgd44PdbAOCr/66foKGc1uANQL+eC0Xc2wY0N6X0H05HaGq/16sh5MZUKuOt8U4IdkCdAJrPZ2zqpmZLbO2HCCyYcR+g0hwdpgcb/OPyJBY66TivMz/Z6fXl8Eq4mC5lUEpFwogV/TlTr2RIS3FYNpSd2FruEfjSeGinNU0JmPOAUBSWMRp+YfabN0/Ythu20WdjFYpdBZtnnEK53FAKKhWsbyzdpzkfLy+0h431ILAsr4sh8GVuvowpgrHAZ3g/JmrviWVyPNzSPhREHh7FLjuEU/y2WmGOuwPfWB++GmxdWOkRrBKXrEKVtoMOH9W52MqzYskPjGPnsiy4fl8bKQ3S5/KOxvkMo5PfuQ1BjmOXn6Wsnryvx59OG2tyYc+Y9iaq3bDnMtepdu/QvZwq8WWaY4RBEmCT3CTNJ80pNI9MZgdpEOGHG8L4eYajn3znsy8wvWD4Vja4G36h4CqIVRTKpTP+jC/fiJP8yvWqevoonlFcSd9K9p0V+YO3QKEIiudKSo578QYab/rM3HbbMjl4v3uiZp/w8Ab3lz3rkjEwXO/lLJjaPviNbB0Au+MNO56en7BtUrNf4XiIzyZBzBnc90xIiUcZu1o4PGfNG27bhu3pBsiO/b7bXrrb5vrfeHN3nC3/Zjck8eFKw08BGeLHa4/h+nKiK7HFbklRcU5AZZrTBJRujaJEf5HhNtpkIbdjKPmVSTof/3DY8lRNfzeKCDB0ZJt8rk/pHEsU3sPW7TbrqRzrJY45POlkhizJGB40Gw5D1Zd/Gc/FDF7pNqV6XHvS9xVonUzpixqEJH77JkW/rEcXumf9OHwqTPsDwet+FNfL3/J/H8MK6h+3n++FDm+qwJVs1twLmQvgfIKZZSzJVHWoEz7oyTTJYpmQIp2orLsl0wPWJUm8445X40taghk+6UK0dM9SpwglrIAimx+nP0MmtQ45QuzVpb3wvi/cghQK9FLHLqPtj2K2KlonNW/vStmYlYF7nnrVt0crniecJl9oqZipePvWLuW+3TY8AZDbrdcrAp5giZcteBsY+54+84xk4Ctyx/CZgjZV/V7/+/0i8vsBfCOAvxrLHkXkJwP4fi/+vQB+Cr3+df7s9TYQQhhOJTkZwUSv9CjWi0pmBtwx4XcfBGzMiM2xAo6jSQ/VPBhjqNj/nwiRgMQHBT0Dcf/qdGF5jhToplnSssV+C0Hnm+M6/vabT6uXIC/LSJabtePyy3RCXWvyDI8Fr7Gp04xgqDLexlYKV7MrrbVZv5wt6TRN6EFP4AS7MPvNmyc8Pz9jG1se4cwOl0CxwYKkdJKm+jT7TIUSGU47UdKWJt336bMU3f0K3R20pVwaMqBSWxMdGVEOutn/SCrr8iPR6DiiFKxIlVoSdvn76++3ojip4RSXDpQD1vPC7CzET+kLneByYrqL5r3Fqo8chr4Q4xiiHY3ySXtL291wsNHuHfksyvhxMx37g4HJD7z4qfYrHGe3ep+Mz2pHkaot69v3fVGOKL/UDe0Ygu3mszWKPPY6AxoV3LE6ev6J6XZQwPb3OCtFQY47K7W3hxyw+mNtZ3LJ/oqv/U0dsxBVnHBK+PSDi17hC8L3OOzkETUnMsgwCucFH5tJG1AFbj4zuu+2ZNuIP0sX7zvmXpgKkAFPtBkBEtsfmRP3XRGn5E7VXPJkRTQDmXRsAEjY39B1InnK4pCBObTG3lc1mKNVSyX3qbZ8SPwgESn3N07FxK4lmo1SsWJBsM/dgky1WY5amiYZsM1YHrvA2IzOobfFHS3DKeykJB2yT/FdfTVHkHWELFaZmOEG8ee6V9jaxOIvpFRY/nnU7LyvmIXMHYo6gTAOVilG8n4CGXin7RRfKificWgFeYqQiWKg9C1Cx5bz02haNoj0WL6PNs6Hd5FFHlihDqscPwzqUq+RTAt85ojnO1z22dAE/oyrCI6Xp5FcCTK5FT0Tv8crvlcUVYkSQPKo+OqPVlPDfRU3Rup/JR0tzWepF0P3CpZeLkSM14IanvipZfwu5xDfQkJ1bVto63wWSWE70yiCutpDaGraWlzzMWHbAo+aNZfS05TsyXInEKutpHX6CLJ+XpxUnRP3u8n0kypu22ZZsVmzuNGEQmrSaAIiW840zlTUn81ZeGfQJiJfAWCo6g/7518I4D8E8O0AvhnAb/C/f8Bf+XYA/5qI/G7YASQ/9K79bN7OQ0KnQmseHnUwLQoaUdc7sk7fja+yZjzRyhze79xhwqHsnNj/lflFcG4KEActhz1H3k46YeEtcbY3BFE17y5B/ZrGqj3MqrU/i36wlmR8XKBEgP3eXb/8m+M0yiFXrQsdQ2loiHy5RNKktBRiZvRDEcHNNOEWBnYbA89vnvDm+cmP1nUa0yW9whmqMJ6+NMqC0uHLLXfoDKfIMsUv+4xQNBVIyb1moMnLJEF9JOJjBVaiRZPeR/6NIRSKHkrLu+S/1SJsSL3icDbYGV5Zp6zyAyXp/53+uirCk98r6NClssftpSnWHJ0Gp4mAeD/71yl62mJZuof1HcaAky+L39CeZbX6mH4HVIQcnJKTVFOMK3dKjxQx/6UyppltRDl7ugv4LvnSe9UZU5fFwTE70/Dyk4l0xkxcESL3qoUbI3EnEtKhzj64OYhDhexeJMW23RDL9dIhk+CDkmIeq34C8XFGTJexFx+kKP8IrEU+7vtEHzSHp80LOQ0tgrhtwLb5aYwzAgcLuiJgyT2WuldPhVZ8uK6e+463c8ee+/0k7VJLMPl9U+kgepAVjuUQwbj58eiexNuGYGw3L6c283a/W+DoM2lxYt3Uibnb2PKYCMLn8YSjU2VzJooTOfd9h26bBbm6AxGAPgjUGOZeyYtx28xW+ezhvhdNqnU022uBnNuQaasmIkEQ4zq24iXRGGlNvhVPPofNzDdJZkbe1mDPa2tgfGAM4y1JfRp6PZYRq2oumzW5DtmIIMsjVlUoZi4TBdCuCxmZKI5ZTWcu1nlk5wrX1Y8gv2mBsyF8V7C25J5eh6B52lS2vAflXH/TRgrNOiH7LlsgUXUpgmbSq0SEMx3pvGbDf4t9ja3jzWZGyV4kngn7VfleT3+29TeuM9eDrrKioJn47HzaC80Z/KBtXesSfCypu4L347AtXnrax7rLSR54FH5C4JY279DZogUWkIV6SqWCzlNxn3fMObE/3XAbNzuJedoMd+3ZVejIMDxTpJHUUo17jt9t5z/LTNvXAPj9rmRuAP5bVf2DIvLHAPxeEflVAP4igF/u5f9H2HH/3wU78v9XfoY2oG1YOqxLA6cOV9R6KONfDmL1eaEb7EeF0DgoPs0wxip9do85g7IusrKMy8jk/vE56wTqJ1tJHJ/nVamgli0hBE0JHy1eJKcgMBFd8EE5AJndlpiti/W7SMGBG588QRwh02UYEHh1DV59U98Mms4VE7LvEnjaNrz56AnPT0+4baMuA0UsBjH1MKeYIXfY39rG0n2WkxPBbhytHcvBWGaZdkfETz+eQjcHNbPQh7qyndWqLO9We23zLP3YcKHM7gF53jDMvByZrJBHrifGNjPt3r+I3lWdFxa8k64nfOD11Mlw1Y+mc8mZAT8K5+Ds95Mjp9cyIL4pA0almr3sIx3fUk1xp88ujs8XpCPMdmLFkX432jE2rBtP2uOGY4YAyLbXjfDRoM1SmPyMsYHPweDySgFUZZk124sFd/mOy9i+2z6rp63ufWy5J/Xlw15+8zPn41CeaNDeM9nd7xPQHeMplr4dHaSHm+38HqcjkEYiR/U8KKhBNJNx2H6/vKvLW+X4HJCke8roCNWkj/X9TpcB26BMLdkMPaGZta/9uDGrk9g279f1/hi+okGyf9u2YX+5w29P8XvOFJsMbE83vNw2vPwIgN0Cye02oPe6Jsb60AVFgFzql3edqdZJkkS9Oe+MNHCg90GanAdttnLbNnvLA7bYv3O6n5L2s2Ty2WfSxi7Y94kxwgqHb1H8prvxdOw5VAAb7+v0YR3BzzP2VvpM4CD/R4br//RCClcSSJOpmVwpiz9VnpjTTptG6fTT+jxzz/jEnoprdv6JVUHRt2mOduaJnSGZ1N0eHiFV5lIm48lTEZbDO41mUrrpwEPiIxWBb0Omb5WRQbIt7py5Loy9UCI+vp6cylncZhe8UkFLYIetC5wbMaIeCqyFyse7yZ3+vpmTroFAJ6qKWIINzocteIzmDiKnOf7cdm0VMfrzSootfA2hQFEVnEosDMsPDdpEwiBi3Uw+p9Irgjz09bM8ctIlZg0zpeK2C3LHhg1jG3XFwVZGcgNyFvseJ/QOgahvo0kkH8M7gzZV/W4AP+Pk+d8A8AtOniuAX/OuelcwXuGBr8+5tjQ+Y0+n9ZG0zumb/M6WRDrjTI0yIEURnAFAtJYd5oAqf6zdB8pMb3XZxXkzP+fFqdpNttARreGkRL/a6ZgC2qyYVuJ0jDWZciFNZAi8J8OZJE+v4aLhDLhiakY0PCll9967P2v5TPYRFYRW8JbEAgeOTIixMLG7fb6p3Wi+PW/4+KM3eLrdXHCnj+Ud866Yu+K+75j7bg5IBLdw4x/BwaylG6z7FqIcPi4mrMHr4odGu7XBHmwEPxTFmB6s3Jk/WhDYKl6dwI5VLonx31tZ5dnDk3Ej5JWN+sJjZci9nuiMMK5VMqvOrK2W7DWD70OqvQ3lvup53xt27I+00rrgvtSjJ31MfVVvs/Fkg9frLCaQ5XczrNzkiqzkexLfgUxMxP5JiB0ksQ3bG2OJmZDffnS0qtaBB2IO6dx3iAw7xCIcSTL4mWybE7rvrkdqF7pNvBmxxzay1yK0pNpnFKb6fi53YLfnQYon+mjca/gP3O979vfhEnvptM7HXDcNUf24vnKUpSI9S3L9ykuIWADCV6y7vbycZ6VNNc9e2VKXat2wZD4HyVI4S8lPAtkAnRvy6H+1WbQZRiPq9frEFSWvsjDda0vKY8JBRDDn3WbXXgTj+RlvPnrG/eWOeZ8+W7hhv9fpi5kQSue6bN0m5djG4pXA6Wkb2HXivu/YRPLs0ag3uI+uv0ya2D4jjeYxthtCN/HJ8tMPYQHEZuJyQ0osZyteGjHjBxvL+9t7NeqzjFBgbHQyAyE25wSm4sXXQA7er4hu/0sN0IEsXmHub/OAUDGg+048FEqmK74WYKU8MOXOef4UwhSETvBn4X/EdofZAgZCb41kJWZzFrT15Hs97j6FIlf/pJ3gLiQh17a9HjYSlR1Jpmz7tEhHhT7NV73e1T7ktz6giC0/I/wnJZoshMvrb1HvHrURbIbIdaFM5H52Rrv8p2mHAWISbbzelm8hvcpOTSimkLc0VKgGQzcpvU92IXYJhtYXGg9F1b0vvqqtwtsRs9rRnD13mYqtT+kzFN6Jviq2zWzfdtvcjm6QbeCNv3lHLUcGBHed2GAJRz5sqZn9V+BHc+T/lxSCzTJSJiNsY6XunFVGPu5NkXwQlUk7SvgUhq3DTZ5Rw6Ed5uBGsK03Z5ylMrr8DmfbYm3x2WWC1Pm0CGlsKVgL/aDKDnK0aRJlM1JdDA90abh3ZyECKj5AQF3hlBtFMuWarY4394yfxoEFemC+kMk8aCuWKsZXVNaKN6OzOjBM6LcheBob9rd3vP30LcWSms5EZZw6Lo0s2j8vuv5Ujlaz9Wh4X6vjs0BDTZfnh0pjycFxJq3M4PGXHI504LhPvWfloD3Ctr8dsBZP/cpG99jcyVgd5ylC7vpdSjxD2VunFbMH/NgvMBy7TKwo0tzNoYJ1+copL3gSKWTg0H+JVhZfCYJwSftqhFgyUgtbwjFRePAUOmsbeXIjYIeC5EpsRPBPy7mExlbtBN85p5+mavvb7DTD2P8ACzLEAsSXnLapvQy7xpIwe2+fdEAQJcwsm7nnIGzbRoZd3VaUA5PZT/X9I3Iy2MTzKzR6RxsxQ6i8a1XTo1l3i5a8rlxsvw8pae2z6RH44pC1buwR9DkRHAuoi87MC9Z21wlR9va0AXLzkyK9LGxVhS0v9UM12F6p7ReLGTW9z7z0WxQYww+0cZtx//QFz2+e8PR0w4475j7x9HSDjIn95SVt78AExpbJ1w3APvfcawep8D+GKvZhbe4rjEUG07ZQ8odBvY7Ijxsb0oykKuZ95p7PYFMRyS0ZoYbUEx/5PQNCb3faaXLbRpo5x9SWUd3vO+a05WXjNrxf3frkbLA3LlKneXoJYiSTj20MPH38EV5e3uLtp3te/WH7hbCAvZvJh5SHDnoyY81XXMS4Hmr22fPYSp5xO5XWQbYn+pR36HUni8yAF66Im7daOII2TsLvBPJUkfgRf68UMX5IhVV/Qj8IJ/09o+H2JX+JbRyLM6+BfHwnO8eRa8yxVjvaDwBL+1DJelsm2+UEbjNiuNkftXGJFW9WmJMgQrivfpaNN/GmoM+kNWUVhfzzENs/S1BzLu57yrJiCX6iLScBiaaWuLDve9Al7R3Tyetzvz7sw75PO4lXFeN286SQIlIzqoo5Rm4BAIB7WlZ0RlU9X4lD8MEEbQDcGWfB40xE5BNcKAZJmI8CyY0/T63RAqsmnOwAJt+XA6TBmNqXK0Zd5Zj4EMwwAp1dc8N2OkErM5MAOi6aAiPJOE3dkdHNY/KjWQkDc0LoLKOdboyx9gCuLZd0gkfANjzjk/i7cFW/SsmnzhYqH48yPNT0KKg7YFe9DKPi07cv+Szq6qQ9MS5n5U7ItP7WnnGKz/sayuOM7K/BGT6fpTzzPJmr/CHiDTm8fVJhgtCnPk7RFrdeZuq81wdcl9+ZhCm6bLD0GIAeQJbPGnLDvaAigzK0KPpVSUkBjwSHuzsN58p0L/KXtVAmXJa+a5WqE2ljUzUyQWVVxgB3nXImx4mlEh9ozA5MYEjeWRhOZ9Z8iEpLdsG08edDbCZh7i+473eM8ZQbrNPuqiXj4iTCqH/lljEE2za6wQy6+/4gQPwkVg4EkIdX5IZvWCA554TcNpvtCDp6++/iKfXWeSkyeT4oDi1FrD2qXpxrrrnezaA8FHbShojVDBfNGCoqGx6mx4Pb/V7LwIfbqNCj4bjEzGjtRSqWAuwqm9AAuA3cbpuh4SdYZlDo788ZB5iAbBqgfsBI9lsV+6cvGE83bE9P2OcOmRO3MYDbExTA3O+QORJ/SC3HT3rB93O5bGTbYPtHBxXQbxJ4+3vplALZl23w0kevK+xyJG39vTnV1wChlkZV642+zTirQqfpo7gWYcICiUkB2+YJloNd8n7l2CoyOLD6WFcXW6lO3F/e4unpGfv+KfY9DklZZ+lA9VMFXCB+Ydu32B5NGhakxR8AdqORyjA+aBq5ZKaSu4oIRKPPDE2fR3bQZTUW2OVBVaS3c/xaNxc93zDi4YzKyIYmAbTeVOpPinLZEAV8GSm9WkanD0wiJETT6Afq8KhV4xIOtNus/h9Hqz6B8r1ZT3lxorI34W/zyit/5uG28ZxW19Y2AVSiRXs9eYGT0JJF6WPDdSlq32Xx6TjwZfZ3KgSTJhrE755T10fWxn3afZb7fYfcNtw2m3VLXOeO4ZdyR9vSZJnu7nxH1PbBBG2B7qDs8MqcpmhrCDi7XIwiqcQUNvuk6/qJLr9JSFCRzKAhmLM7jl0++wWhVr22QKcdtCFVf/QNSid1DaslgzUAcTxlGNxg9HXOIZ3EtI9WF8/EJaIkIu1EtrAlWZ+UriADcRgH/48PZAFM4HZVX7O/uiMZxrY+2NJM/0ZtZ7foMINVwNfv7wIW8PX9M6GvL4umefB+lcXRaq3lHrT72kvlCpV5DscgWKEvR+2K1YpW9m0NcnnEzDiFpJEBEVP9mRzx73b/TDgyUbb4pbGkHMcif2C5P5qfVNZWsYDvSx6NmnIsz7/kf5yNLxiewQ7e5OPR4Yaes7W1qT6oGDM0UXUqhKRJHxxa+kI/6MJPB17R/lERyxjFlm+EUGXPOV2mTc5FkCcdBI90upXDNsbWBs9O2LqnM3/bbth9iWQUizu+dM7coxtH58XqB9s7JbaEzB2QWNoCmMO775ZjHn4o1FTbJ3S73RK/U2CHaCVgHMAgNUJGl0q8pRoQem+hkL0nTX6q9KqHfRSU3yfMFHYRttOMrwdVeHBOwdRZr1XrygVbumPtTFVMv/sNUOhuOD0/Dzw9v8HT08R93mymZr/jfp91aqUfOrLfyekQ298WB96XrvJ9dy93QBW3262WvkJw2wQ6njzwtHGeu/GHiPj+LqspAlK4nOX+SZVmm5PPG0HMsjed7f7Eft8hmy9b9GGJMR9+n6b5HrUaKA8SATDFdaQCqjROAV5H7tG8734oi+kvG8uQK7eD0a1cuoVkwtD7SqtfdCt+arMFCqjYRhPIjm274b6/NZ9pAjoo6FR3sJcETyWyUKs0qEzQpL4dYVNgDoHsVlsunHb7wV4B4Lcs0h198dvq2jQVGuPWdCjbBCVZIx0YNXDAF9/TeIUT6DU6H1YSnShGeJPIus+lqVNWO01N1NPTbPwRalaN7f/RHj7yNtZSKU3BjPGr2mxnu4HQeczIpO26CVv6HttvavwSw2JsrLzT/f2OqC6fj36CNjmUpYzxSdnC0CureVAgV8fkGE3FlB2473gRIFacmM7xhEskXkTatSxxEQkZmofwwQRtZ9BYq+ne1duSuuQPcOPFQxEqhspTiTUDAH6e9Uoi1Oo+cQSObPaOcaB2lJ/xe6dembRPvd1QEDi96wVr3x418xjpVpopGooIityEO16hwJlb0Z4FLUgiS0F+Xky/NBBC3JSaHIOJz1WnHFiwN6j0MZRB/swjXwqVf2+GYlHWgT//corgWkC4jQd0znqZX16HDOCyz++gLaOWCEXCg94PfHngHlS8OvlcF6RonrSTrg7yLsIzRPnjUoSTSB0XnikI2e+jmW3H0yBiztBYVlHk7C17xHsBc9aPCHZKMpf1Y5V2cMmc9rsMgexrGS9ZUzTIvVGOuwVpm/NFODg9+63eRwtyTRva/p9xpGd+eMSJJzpJjpvVj2SUQ5Ux21N+XHeFNJyy8FbkSOW1XdWZSxBL68ahIasVOEJqfgmnIfgr9LaV2FWxjQlgc8fj7rMg8FnVaRdzK3C/321PjNcWPLptA2P6PnTp2w1ELBgbm2Jsmzk++445xQM5r0uRe45L31h/b/vETpv9jYya/BhBdh1kFvg1YiS9cuZMFVN393ftYJLY1x33bWJsNgaxj9uDSds65vphV7wsNjh0htDA6px4UeA2hp12CgsY517LFSdirZGCD2hqpznCZCFnT318VTQmT7ycQhR42e2KhHA8I3Gnqnn5ehGr2/nyV5a+5RdWiAsNpDBWsD/m4+N9jUAuDjh73a81/OpGtEKIl/dlfSlpJ0aAx0aRyTpTM55gJ13NvtYOhYiCg9baexW2vny0rjS6nVxXRIgA2JBjZOcNaMM3TzTVHlhUpmmloDy0hSF1CrQzb6Mvxjj1LVVZ8ip1Rq3pOriuxqT3PMozYxG90kywjcdBzx/7koQ4tneCR3F74WFXY+CcD0ecPm4zdJGI4NmzsFk1gSEZvI0tllE+BnlXJ78IEJEfBvDn3jceF1zg8BMB/PX3jcQFF+DixQs+LLj48YIPBS5evOBDgi8lP/59qvqTzn74UGba/pyqfsP7RuKCCwBARP74xY8XfAhw8eIFHxJc/HjBhwIXL17wIcEXxY/vOGLxggsuuOCCCy644IILLrjggvcJV9B2wQUXXHDBBRdccMEFF1zwAcOHErT9lveNwAUXEFz8eMGHAhcvXvAhwcWPF3wocPHiBR8SfCH8+EEcRHLBBRdccMEFF1xwwQUXXHDBOXwoM20XXHDBBRdccMEFF1xwwQUXnMB7D9pE5BeJyJ8Tke8SkW953/hc8OUNIvJTROQPi8ifEZH/S0R+rT//ahH5DhH58/73x/tzEZH/zPnz/xCRn/V+e3DBlxuIyCYif0pE/gf//tNE5I86z/0eEXn252/8+3f57z/1feJ9wZcfiMhXici3ich3isifFZF/9NKNF7wvEJF/0+30nxaR3yUiH1368YIvAkTkt4vI94vIn6Znn1sXisg3e/k/LyLf/KPF670GbSKyAfgvAPxiAD8dwD8vIj/9feJ0wZc93AH8W6r60wH8HAC/xnnuWwD8IVX9egB/yL8Dxptf7/9+NYDf/MWjfMGXOfxaAH+Wvv9HAH6jqv4DAH4QwK/y578KwA/689/o5S644EsJvwnAH1TVfwjAz4Dx5aUbL/jCQUS+FsC/DuAbVPUfBrAB+BW49OMFXwz8VwB+0fLsc+lCEflqAL8OwM8G8I0Afl0Een+n8L5n2r4RwHep6ner6lsAvxvAN71nnC74MgZV/T5V/ZP++YdhTsnXwvjuW73YtwL4Z/3zNwH4nWrwRwB8lYj85C8Y7Qu+TEFEvg7APw3gt/p3AfDzAXybF1l5MXj02wD8Ai9/wQU/ahCRHwfgHwfw2wBAVd+q6t/EpRsveH9wA/CxiNwAfALg+3Dpxwu+AFDV/w3ADyyPP68u/KcAfIeq/oCq/iCA78AxEPxc8L6Dtq8F8Jfp+/f4swsu+DEHXz7xMwH8UQBfo6rf5z/9Tn1jIwAAA1lJREFUFQBf458vHr3gxxL+UwD/DoDp338CgL+pqnf/zvyWvOi//5CXv+CCLwX8NAB/DcDv8OW6v1VEvgKXbrzgPYCqfi+A/xjAX4IFaz8E4E/g0o8XvD/4vLrwS64j33fQdsEF7wVE5CsB/HcA/g1V/X/4N7UjVa9jVS/4MQUR+aUAvl9V/8T7xuWCC2CzGj8LwG9W1Z8J4P9FLf8BcOnGC7448GVk3wRLJvw9AL4CP8pZigsu+FLB+9KF7zto+14AP4W+f50/u+CCHzMQkSdYwPbfqOrv88d/NZb2+N/v9+cXj17wYwX/GIB/RkT+Amxp+M+H7Sn6Kl8OBHR+S170338cgL/xRSJ8wZc1fA+A71HVP+rfvw0WxF268YL3Af8kgP9bVf+aqr4A+H0wnXnpxwveF3xeXfgl15HvO2j7YwC+3k8DeoZtMv3294zTBV/G4GvcfxuAP6uq/wn99O0A4mSfbwbwB+j5v+SnA/0cAD9E0+MXXPB3DKr676nq16nqT4Xpvv9FVf8FAH8YwC/zYisvBo/+Mi9/zXpc8CUBVf0rAP6yiPyD/ugXAPgzuHTjBe8H/hKAnyMin7jdDn689OMF7ws+ry78nwD8QhH58T5z/Av92d8xvPfLtUXkl8D2dWwAfruq/vr3itAFX9YgIj8XwP8O4P9E7SP692H72n4vgL8XwF8E8MtV9QfcWPznsGUZfwvAr1TVP/6FI37BlzWIyM8D8G+r6i8Vkb8fNvP21QD+FIB/UVU/FZGPAPzXsH2YPwDgV6jqd78vnC/48gMR+Udgh+I8A/huAL8Slty9dOMFXziIyH8A4J+Dnfr8pwD8q7A9QZd+vODHFETkdwH4eQB+IoC/CjsF8r/H59SFIvKvwHxMAPj1qvo7flR4ve+g7YILLrjgggsuuOCCCy644ILH8L6XR15wwQUXXHDBBRdccMEFF1zwClxB2wUXXHDBBRdccMEFF1xwwQcMV9B2wQUXXHDBBRdccMEFF1zwAcMVtF1wwQUXXHDBBRdccMEFF3zAcAVtF1xwwQUXXHDBBRdccMEFHzBcQdsFF1xwwQUXXHDBBRdccMEHDFfQdsEFF1xwwQUXXHDBBRdc8AHDFbRdcMEFF1xwwQUXXHDBBRd8wPD/AUOn/iZV7TrRAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" + "cell_type": "markdown", + "metadata": { + "id": "Ta51clKX4cwM" + }, + "source": [ + "## Train a semantic segmentation model on a new dataset\n", + "\n", + "To train on a customized dataset, the following steps are neccessary. \n", + "1. Add a new dataset class. \n", + "2. Create a config file accordingly. \n", + "3. Perform training and evaluation. " ] - }, - "metadata": { - "tags": [], - "needs_background": "light" - } - } - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Ta51clKX4cwM", - "colab_type": "text" - }, - "source": [ - "## Train a semantic segmentation model on a new dataset\n", - "\n", - "To train on a customized dataset, the following steps are neccessary. \n", - "1. Add a new dataset class. \n", - "2. Create a config file accordingly. \n", - "3. Perform training and evaluation. " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "AcZg6x_K5Zs3", - "colab_type": "text" - }, - "source": [ - "### Add a new dataset\n", - "\n", - "Datasets in MMSegmentation require image and semantic segmentation maps to be placed in folders with the same perfix. To support a new dataset, we may need to modify the original file structure. \n", - "\n", - "In this tutorial, we give an example of converting the dataset. You may refer to [docs](https://github.com/open-mmlab/mmsegmentation/docs/tutorials/new_dataset.md) for details about dataset reorganization. \n", - "\n", - "We use [Standord Background Dataset](http://dags.stanford.edu/projects/scenedataset.html) as an example. The dataset contains 715 images chosen from existing public datasets [LabelMe](http://labelme.csail.mit.edu), [MSRC](http://research.microsoft.com/en-us/projects/objectclassrecognition), [PASCAL VOC](http://pascallin.ecs.soton.ac.uk/challenges/VOC) and [Geometric Context](http://www.cs.illinois.edu/homes/dhoiem/). Images from these datasets are mainly outdoor scenes, each containing approximately 320-by-240 pixels. \n", - "In this tutorial, we use the region annotations as labels. There are 8 classes in total, i.e. sky, tree, road, grass, water, building, mountain, and foreground object. " - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "TFIt7MHq5Wls", - "colab_type": "code", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 204 }, - "outputId": "5e56d5dc-4f1c-4d7c-f833-51cfdbf8d481" - }, - "source": [ - "# download and unzip\n", - "!wget http://dags.stanford.edu/data/iccv09Data.tar.gz -O standford_background.tar.gz\n", - "!tar xf standford_background.tar.gz" - ], - "execution_count": 11, - "outputs": [ { - "output_type": "stream", - "text": [ - "--2020-07-09 19:13:50-- http://dags.stanford.edu/data/iccv09Data.tar.gz\n", - "Resolving dags.stanford.edu (dags.stanford.edu)... 171.64.68.10\n", - "Connecting to dags.stanford.edu (dags.stanford.edu)|171.64.68.10|:80... connected.\n", - "HTTP request sent, awaiting response... 200 OK\n", - "Length: 14727974 (14M) [application/x-gzip]\n", - "Saving to: ‘standford_background.tar.gz’\n", - "\n", - "standford_backgroun 100%[===================>] 14.04M 3.22MB/s in 4.4s \n", - "\n", - "2020-07-09 19:13:55 (3.22 MB/s) - ‘standford_background.tar.gz’ saved [14727974/14727974]\n", - "\n" - ], - "name": "stdout" - } - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "78LIci7F9WWI", - "colab_type": "code", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 377 + "cell_type": "markdown", + "metadata": { + "id": "AcZg6x_K5Zs3" + }, + "source": [ + "### Add a new dataset\n", + "\n", + "Datasets in MMSegmentation require image and semantic segmentation maps to be placed in folders with the same perfix. To support a new dataset, we may need to modify the original file structure. \n", + "\n", + "In this tutorial, we give an example of converting the dataset. You may refer to [docs](https://github.com/open-mmlab/mmsegmentation/docs/tutorials/new_dataset.md) for details about dataset reorganization. \n", + "\n", + "We use [Standord Background Dataset](http://dags.stanford.edu/projects/scenedataset.html) as an example. The dataset contains 715 images chosen from existing public datasets [LabelMe](http://labelme.csail.mit.edu), [MSRC](http://research.microsoft.com/en-us/projects/objectclassrecognition), [PASCAL VOC](http://pascallin.ecs.soton.ac.uk/challenges/VOC) and [Geometric Context](http://www.cs.illinois.edu/homes/dhoiem/). Images from these datasets are mainly outdoor scenes, each containing approximately 320-by-240 pixels. \n", + "In this tutorial, we use the region annotations as labels. There are 8 classes in total, i.e. sky, tree, road, grass, water, building, mountain, and foreground object. " + ] }, - "outputId": "a7f339c7-a071-40db-f30d-44028dd2ce1c" - }, - "source": [ - "# Let's take a look at the dataset\n", - "import mmcv\n", - "import matplotlib.pyplot as plt\n", - "\n", - "img = mmcv.imread('iccv09Data/images/6000124.jpg')\n", - "plt.figure(figsize=(8, 6))\n", - "plt.imshow(mmcv.bgr2rgb(img))\n", - "plt.show()" - ], - "execution_count": 12, - "outputs": [ { - "output_type": "display_data", - "data": { - "image/png": "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\n", - "text/plain": [ - "
" + "cell_type": "code", + "metadata": { + "id": "TFIt7MHq5Wls", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "74a126e4-c8a4-4d2f-a910-b58b71843a23" + }, + "source": [ + "# download and unzip\n", + "!wget http://dags.stanford.edu/data/iccv09Data.tar.gz -O standford_background.tar.gz\n", + "!tar xf standford_background.tar.gz" + ], + "execution_count": 11, + "outputs": [ + { + "output_type": "stream", + "text": [ + "--2021-04-07 22:15:00-- http://dags.stanford.edu/data/iccv09Data.tar.gz\n", + "Resolving dags.stanford.edu (dags.stanford.edu)... 171.64.68.10\n", + "Connecting to dags.stanford.edu (dags.stanford.edu)|171.64.68.10|:80... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 14727974 (14M) [application/x-gzip]\n", + "Saving to: ‘standford_background.tar.gz’\n", + "\n", + "standford_backgroun 100%[===================>] 14.04M 23.4MB/s in 0.6s \n", + "\n", + "2021-04-07 22:15:00 (23.4 MB/s) - ‘standford_background.tar.gz’ saved [14727974/14727974]\n", + "\n" + ], + "name": "stdout" + } ] - }, - "metadata": { - "tags": [], - "needs_background": "light" - } - } - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "L5mNQuc2GsVE", - "colab_type": "text" - }, - "source": [ - "We need to convert the annotation into semantic map format as an image." - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "WnGZfribFHCx", - "colab_type": "code", - "colab": {} - }, - "source": [ - "import os.path as osp\n", - "import numpy as np\n", - "from PIL import Image\n", - "# convert dataset annotation to semantic segmentation map\n", - "data_root = 'iccv09Data'\n", - "img_dir = 'images'\n", - "ann_dir = 'labels'\n", - "# define class and plaette for better visualization\n", - "classes = ('sky', 'tree', 'road', 'grass', 'water', 'bldg', 'mntn', 'fg obj')\n", - "palette = [[128, 128, 128], [129, 127, 38], [120, 69, 125], [53, 125, 34], \n", - " [0, 11, 123], [118, 20, 12], [122, 81, 25], [241, 134, 51]]\n", - "for file in mmcv.scandir(osp.join(data_root, ann_dir), suffix='.regions.txt'):\n", - " seg_map = np.loadtxt(osp.join(data_root, ann_dir, file)).astype(np.uint8)\n", - " seg_img = Image.fromarray(seg_map).convert('P')\n", - " seg_img.putpalette(np.array(palette, dtype=np.uint8))\n", - " seg_img.save(osp.join(data_root, ann_dir, file.replace('.regions.txt', \n", - " '.png')))" - ], - "execution_count": 13, - "outputs": [] - }, - { - "cell_type": "code", - "metadata": { - "id": "5MCSS9ABfSks", - "colab_type": "code", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 377 }, - "outputId": "d093e054-8db3-40e5-a800-061de844597f" - }, - "source": [ - "# Let's take a look at the segmentation map we got\n", - "import matplotlib.patches as mpatches\n", - "img = Image.open('iccv09Data/labels/6000124.png')\n", - "plt.figure(figsize=(8, 6))\n", - "im = plt.imshow(np.array(img.convert('RGB')))\n", - "\n", - "# create a patch (proxy artist) for every color \n", - "patches = [mpatches.Patch(color=np.array(palette[i])/255., \n", - " label=classes[i]) for i in range(8)]\n", - "# put those patched as legend-handles into the legend\n", - "plt.legend(handles=patches, bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0., \n", - " fontsize='large')\n", - "\n", - "plt.show()" - ], - "execution_count": 14, - "outputs": [ { - "output_type": "display_data", - "data": { - "image/png": "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\n", - "text/plain": [ - "
" + "cell_type": "code", + "metadata": { + "id": "78LIci7F9WWI", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 377 + }, + "outputId": "c432ddac-5a50-47b1-daac-5a26b07afea2" + }, + "source": [ + "# Let's take a look at the dataset\n", + "import mmcv\n", + "import matplotlib.pyplot as plt\n", + "\n", + "img = mmcv.imread('iccv09Data/images/6000124.jpg')\n", + "plt.figure(figsize=(8, 6))\n", + "plt.imshow(mmcv.bgr2rgb(img))\n", + "plt.show()" + ], + "execution_count": 12, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } ] - }, - "metadata": { - "tags": [], - "needs_background": "light" - } - } - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "WbeLYCp2k5hl", - "colab_type": "code", - "colab": {} - }, - "source": [ - "# split train/val set randomly\n", - "split_dir = 'splits'\n", - "mmcv.mkdir_or_exist(osp.join(data_root, split_dir))\n", - "filename_list = [osp.splitext(filename)[0] for filename in mmcv.scandir(\n", - " osp.join(data_root, ann_dir), suffix='.png')]\n", - "with open(osp.join(data_root, split_dir, 'train.txt'), 'w') as f:\n", - " # select first 4/5 as train set\n", - " train_length = int(len(filename_list)*4/5)\n", - " f.writelines(line + '\\n' for line in filename_list[:train_length])\n", - "with open(osp.join(data_root, split_dir, 'val.txt'), 'w') as f:\n", - " # select last 1/5 as train set\n", - " f.writelines(line + '\\n' for line in filename_list[train_length:])" - ], - "execution_count": 15, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "HchvmGYB_rrO", - "colab_type": "text" - }, - "source": [ - "After downloading the data, we need to implement `load_annotations` function in the new dataset class `StandfordBackgroundDataset`." - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "LbsWOw62_o-X", - "colab_type": "code", - "colab": {} - }, - "source": [ - "from mmseg.datasets.builder import DATASETS\n", - "from mmseg.datasets.custom import CustomDataset\n", - "\n", - "@DATASETS.register_module()\n", - "class StandfordBackgroundDataset(CustomDataset):\n", - " CLASSES = classes\n", - " PALETTE = palette\n", - " def __init__(self, split, **kwargs):\n", - " super().__init__(img_suffix='.jpg', seg_map_suffix='.png', \n", - " split=split, **kwargs)\n", - " assert osp.exists(self.img_dir) and self.split is not None\n", - "\n", - " " - ], - "execution_count": 16, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "yUVtmn3Iq3WA", - "colab_type": "text" - }, - "source": [ - "### Create a config file\n", - "In the next step, we need to modify the config for the training. To accelerate the process, we finetune the model from trained weights." - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "Wwnj9tRzqX_A", - "colab_type": "code", - "colab": {} - }, - "source": [ - "from mmcv import Config\n", - "cfg = Config.fromfile('configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py')" - ], - "execution_count": 17, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "1y2oV5w97jQo", - "colab_type": "text" - }, - "source": [ - "Since the given config is used to train PSPNet on cityscapes dataset, we need to modify it accordingly for our new dataset. " - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "eyKnYC1Z7iCV", - "colab_type": "code", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 1000 }, - "outputId": "a25241e2-431c-4944-b0b8-b9c792d5aadd" - }, - "source": [ - "from mmseg.apis import set_random_seed\n", - "\n", - "# Since we use ony one GPU, BN is used instead of SyncBN\n", - "cfg.norm_cfg = dict(type='BN', requires_grad=True)\n", - "cfg.model.backbone.norm_cfg = cfg.norm_cfg\n", - "cfg.model.decode_head.norm_cfg = cfg.norm_cfg\n", - "cfg.model.auxiliary_head.norm_cfg = cfg.norm_cfg\n", - "# modify num classes of the model in decode/auxiliary head\n", - "cfg.model.decode_head.num_classes = 8\n", - "cfg.model.auxiliary_head.num_classes = 8\n", - "\n", - "# Modify dataset type and path\n", - "cfg.dataset_type = 'StandfordBackgroundDataset'\n", - "cfg.data_root = data_root\n", - "\n", - "cfg.data.samples_per_gpu = 8\n", - "cfg.data.workers_per_gpu=8\n", - "\n", - "cfg.img_norm_cfg = dict(\n", - " mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)\n", - "cfg.crop_size = (256, 256)\n", - "cfg.train_pipeline = [\n", - " dict(type='LoadImageFromFile'),\n", - " dict(type='LoadAnnotations'),\n", - " dict(type='Resize', img_scale=(320, 240), ratio_range=(0.5, 2.0)),\n", - " dict(type='RandomCrop', crop_size=cfg.crop_size, cat_max_ratio=0.75),\n", - " dict(type='RandomFlip', flip_ratio=0.5),\n", - " dict(type='PhotoMetricDistortion'),\n", - " dict(type='Normalize', **cfg.img_norm_cfg),\n", - " dict(type='Pad', size=cfg.crop_size, pad_val=0, seg_pad_val=255),\n", - " dict(type='DefaultFormatBundle'),\n", - " dict(type='Collect', keys=['img', 'gt_semantic_seg']),\n", - "]\n", - "\n", - "cfg.test_pipeline = [\n", - " dict(type='LoadImageFromFile'),\n", - " dict(\n", - " type='MultiScaleFlipAug',\n", - " img_scale=(320, 240),\n", - " # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],\n", - " flip=False,\n", - " transforms=[\n", - " dict(type='Resize', keep_ratio=True),\n", - " dict(type='RandomFlip'),\n", - " dict(type='Normalize', **cfg.img_norm_cfg),\n", - " dict(type='ImageToTensor', keys=['img']),\n", - " dict(type='Collect', keys=['img']),\n", - " ])\n", - "]\n", - "\n", - "\n", - "cfg.data.train.type = cfg.dataset_type\n", - "cfg.data.train.data_root = cfg.data_root\n", - "cfg.data.train.img_dir = img_dir\n", - "cfg.data.train.ann_dir = ann_dir\n", - "cfg.data.train.pipeline = cfg.train_pipeline\n", - "cfg.data.train.split = 'splits/train.txt'\n", - "\n", - "cfg.data.val.type = cfg.dataset_type\n", - "cfg.data.val.data_root = cfg.data_root\n", - "cfg.data.val.img_dir = img_dir\n", - "cfg.data.val.ann_dir = ann_dir\n", - "cfg.data.val.pipeline = cfg.test_pipeline\n", - "cfg.data.val.split = 'splits/val.txt'\n", - "\n", - "cfg.data.test.type = cfg.dataset_type\n", - "cfg.data.test.data_root = cfg.data_root\n", - "cfg.data.test.img_dir = img_dir\n", - "cfg.data.test.ann_dir = ann_dir\n", - "cfg.data.test.pipeline = cfg.test_pipeline\n", - "cfg.data.test.split = 'splits/val.txt'\n", - "\n", - "# We can still use the pre-trained Mask RCNN model though we do not need to\n", - "# use the mask branch\n", - "cfg.load_from = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'\n", - "\n", - "# Set up working dir to save files and logs.\n", - "cfg.work_dir = './work_dirs/tutorial'\n", - "\n", - "cfg.total_iters = 200\n", - "cfg.log_config.interval = 10\n", - "cfg.evaluation.interval = 200\n", - "cfg.checkpoint_config.interval = 200\n", - "\n", - "# Set seed to facitate reproducing the result\n", - "cfg.seed = 0\n", - "set_random_seed(0, deterministic=False)\n", - "cfg.gpu_ids = range(1)\n", - "\n", - "# Let's have a look at the final config used for training\n", - "print(f'Config:\\n{cfg.pretty_text}')" - ], - "execution_count": 18, - "outputs": [ { - "output_type": "stream", - "text": [ - "Config:\n", - "norm_cfg = dict(type='BN', requires_grad=True)\n", - "model = dict(\n", - " type='EncoderDecoder',\n", - " pretrained='open-mmlab://resnet50_v1c',\n", - " backbone=dict(\n", - " type='ResNetV1c',\n", - " depth=50,\n", - " num_stages=4,\n", - " out_indices=(0, 1, 2, 3),\n", - " dilations=(1, 1, 2, 4),\n", - " strides=(1, 2, 1, 1),\n", - " norm_cfg=dict(type='BN', requires_grad=True),\n", - " norm_eval=False,\n", - " style='pytorch',\n", - " contract_dilation=True),\n", - " decode_head=dict(\n", - " type='PSPHead',\n", - " in_channels=2048,\n", - " in_index=3,\n", - " channels=512,\n", - " pool_scales=(1, 2, 3, 6),\n", - " dropout_ratio=0.1,\n", - " num_classes=8,\n", - " norm_cfg=dict(type='BN', requires_grad=True),\n", - " align_corners=False,\n", - " loss_decode=dict(\n", - " type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),\n", - " auxiliary_head=dict(\n", - " type='FCNHead',\n", - " in_channels=1024,\n", - " in_index=2,\n", - " channels=256,\n", - " num_convs=1,\n", - " concat_input=False,\n", - " dropout_ratio=0.1,\n", - " num_classes=8,\n", - " norm_cfg=dict(type='BN', requires_grad=True),\n", - " align_corners=False,\n", - " loss_decode=dict(\n", - " type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)))\n", - "train_cfg = dict()\n", - "test_cfg = dict(mode='whole')\n", - "dataset_type = 'StandfordBackgroundDataset'\n", - "data_root = 'iccv09Data'\n", - "img_norm_cfg = dict(\n", - " mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)\n", - "crop_size = (256, 256)\n", - "train_pipeline = [\n", - " dict(type='LoadImageFromFile'),\n", - " dict(type='LoadAnnotations'),\n", - " dict(type='Resize', img_scale=(320, 240), ratio_range=(0.5, 2.0)),\n", - " dict(type='RandomCrop', crop_size=(256, 256), cat_max_ratio=0.75),\n", - " dict(type='RandomFlip', flip_ratio=0.5),\n", - " dict(type='PhotoMetricDistortion'),\n", - " dict(\n", - " type='Normalize',\n", - " mean=[123.675, 116.28, 103.53],\n", - " std=[58.395, 57.12, 57.375],\n", - " to_rgb=True),\n", - " dict(type='Pad', size=(256, 256), pad_val=0, seg_pad_val=255),\n", - " dict(type='DefaultFormatBundle'),\n", - " dict(type='Collect', keys=['img', 'gt_semantic_seg'])\n", - "]\n", - "test_pipeline = [\n", - " dict(type='LoadImageFromFile'),\n", - " dict(\n", - " type='MultiScaleFlipAug',\n", - " img_scale=(320, 240),\n", - " flip=False,\n", - " transforms=[\n", - " dict(type='Resize', keep_ratio=True),\n", - " dict(type='RandomFlip'),\n", - " dict(\n", - " type='Normalize',\n", - " mean=[123.675, 116.28, 103.53],\n", - " std=[58.395, 57.12, 57.375],\n", - " to_rgb=True),\n", - " dict(type='ImageToTensor', keys=['img']),\n", - " dict(type='Collect', keys=['img'])\n", - " ])\n", - "]\n", - "data = dict(\n", - " samples_per_gpu=8,\n", - " workers_per_gpu=8,\n", - " train=dict(\n", - " type='StandfordBackgroundDataset',\n", - " data_root='iccv09Data',\n", - " img_dir='images',\n", - " ann_dir='labels',\n", - " pipeline=[\n", - " dict(type='LoadImageFromFile'),\n", - " dict(type='LoadAnnotations'),\n", - " dict(type='Resize', img_scale=(320, 240), ratio_range=(0.5, 2.0)),\n", - " dict(type='RandomCrop', crop_size=(256, 256), cat_max_ratio=0.75),\n", - " dict(type='RandomFlip', flip_ratio=0.5),\n", - " dict(type='PhotoMetricDistortion'),\n", - " dict(\n", - " type='Normalize',\n", - " mean=[123.675, 116.28, 103.53],\n", - " std=[58.395, 57.12, 57.375],\n", - " to_rgb=True),\n", - " dict(type='Pad', size=(256, 256), pad_val=0, seg_pad_val=255),\n", - " dict(type='DefaultFormatBundle'),\n", - " dict(type='Collect', keys=['img', 'gt_semantic_seg'])\n", - " ],\n", - " split='splits/train.txt'),\n", - " val=dict(\n", - " type='StandfordBackgroundDataset',\n", - " data_root='iccv09Data',\n", - " img_dir='images',\n", - " ann_dir='labels',\n", - " pipeline=[\n", - " dict(type='LoadImageFromFile'),\n", - " dict(\n", - " type='MultiScaleFlipAug',\n", - " img_scale=(320, 240),\n", - " flip=False,\n", - " transforms=[\n", - " dict(type='Resize', keep_ratio=True),\n", - " dict(type='RandomFlip'),\n", - " dict(\n", - " type='Normalize',\n", - " mean=[123.675, 116.28, 103.53],\n", - " std=[58.395, 57.12, 57.375],\n", - " to_rgb=True),\n", - " dict(type='ImageToTensor', keys=['img']),\n", - " dict(type='Collect', keys=['img'])\n", - " ])\n", - " ],\n", - " split='splits/val.txt'),\n", - " test=dict(\n", - " type='StandfordBackgroundDataset',\n", - " data_root='iccv09Data',\n", - " img_dir='images',\n", - " ann_dir='labels',\n", - " pipeline=[\n", - " dict(type='LoadImageFromFile'),\n", - " dict(\n", - " type='MultiScaleFlipAug',\n", - " img_scale=(320, 240),\n", - " flip=False,\n", - " transforms=[\n", - " dict(type='Resize', keep_ratio=True),\n", - " dict(type='RandomFlip'),\n", - " dict(\n", - " type='Normalize',\n", - " mean=[123.675, 116.28, 103.53],\n", - " std=[58.395, 57.12, 57.375],\n", - " to_rgb=True),\n", - " dict(type='ImageToTensor', keys=['img']),\n", - " dict(type='Collect', keys=['img'])\n", - " ])\n", - " ],\n", - " split='splits/val.txt'))\n", - "log_config = dict(\n", - " interval=10, hooks=[dict(type='TextLoggerHook', by_epoch=False)])\n", - "dist_params = dict(backend='nccl')\n", - "log_level = 'INFO'\n", - "load_from = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'\n", - "resume_from = None\n", - "workflow = [('train', 1)]\n", - "cudnn_benchmark = True\n", - "optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)\n", - "optimizer_config = dict()\n", - "lr_config = dict(policy='poly', power=0.9, min_lr=0.0001, by_epoch=False)\n", - "total_iters = 200\n", - "checkpoint_config = dict(by_epoch=False, interval=200)\n", - "evaluation = dict(interval=200, metric='mIoU')\n", - "work_dir = './work_dirs/tutorial'\n", - "seed = 0\n", - "gpu_ids = range(0, 1)\n", - "\n" - ], - "name": "stdout" - } - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QWuH14LYF2gQ", - "colab_type": "text" - }, - "source": [ - "### Train and Evaluation" - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "jYKoSfdMF12B", - "colab_type": "code", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 953, - "referenced_widgets": [ - "40a3c0b2c7a44085b69b9c741df20b3e", - "ec96fb4251ea4b8ea268a2bc62b9c75b", - "dae4b284c5a944639991d29f4e79fac5", - "c78567afd0a6418781118ac9f4ecdea9", - "32b7d27a143c41b5bb90f1d8e66a1c67", - "55d75951f51c4ab89e32045c3d6db8a4", - "9d29e2d02731416d9852e9c7c08d1665", - "1bb2b93526cd421aa5d5b86d678932ab" - ] + "cell_type": "markdown", + "metadata": { + "id": "L5mNQuc2GsVE" + }, + "source": [ + "We need to convert the annotation into semantic map format as an image." + ] }, - "outputId": "1c0b5a11-434b-4c96-a4aa-9d685fff0856" - }, - "source": [ - "from mmseg.datasets import build_dataset\n", - "from mmseg.models import build_segmentor\n", - "from mmseg.apis import train_segmentor\n", - "\n", - "\n", - "# Build the dataset\n", - "datasets = [build_dataset(cfg.data.train)]\n", - "\n", - "# Build the detector\n", - "model = build_segmentor(\n", - " cfg.model, train_cfg=cfg.train_cfg, test_cfg=cfg.test_cfg)\n", - "# Add an attribute for visualization convenience\n", - "model.CLASSES = datasets[0].CLASSES\n", - "\n", - "# Create work_dir\n", - "mmcv.mkdir_or_exist(osp.abspath(cfg.work_dir))\n", - "train_segmentor(model, datasets, cfg, distributed=False, validate=True, \n", - " meta=dict())" - ], - "execution_count": 19, - "outputs": [ { - "output_type": "stream", - "text": [ - "2020-07-09 19:14:27,264 - mmseg - INFO - Loaded 572 images\n", - "Downloading: \"https://open-mmlab.s3.ap-northeast-2.amazonaws.com/pretrain/third_party/resnet50_v1c-2cccc1ad.pth\" to /root/.cache/torch/checkpoints/resnet50_v1c-2cccc1ad.pth\n" - ], - "name": "stderr" + "cell_type": "code", + "metadata": { + "id": "WnGZfribFHCx" + }, + "source": [ + "import os.path as osp\n", + "import numpy as np\n", + "from PIL import Image\n", + "# convert dataset annotation to semantic segmentation map\n", + "data_root = 'iccv09Data'\n", + "img_dir = 'images'\n", + "ann_dir = 'labels'\n", + "# define class and plaette for better visualization\n", + "classes = ('sky', 'tree', 'road', 'grass', 'water', 'bldg', 'mntn', 'fg obj')\n", + "palette = [[128, 128, 128], [129, 127, 38], [120, 69, 125], [53, 125, 34], \n", + " [0, 11, 123], [118, 20, 12], [122, 81, 25], [241, 134, 51]]\n", + "for file in mmcv.scandir(osp.join(data_root, ann_dir), suffix='.regions.txt'):\n", + " seg_map = np.loadtxt(osp.join(data_root, ann_dir, file)).astype(np.uint8)\n", + " seg_img = Image.fromarray(seg_map).convert('P')\n", + " seg_img.putpalette(np.array(palette, dtype=np.uint8))\n", + " seg_img.save(osp.join(data_root, ann_dir, file.replace('.regions.txt', \n", + " '.png')))" + ], + "execution_count": 13, + "outputs": [] }, { - "output_type": "display_data", - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "40a3c0b2c7a44085b69b9c741df20b3e", - "version_minor": 0, - "version_major": 2 + "cell_type": "code", + "metadata": { + "id": "5MCSS9ABfSks", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 377 + }, + "outputId": "92b9bafc-589e-48fc-c9e9-476f125d6522" }, - "text/plain": [ - "HBox(children=(FloatProgress(value=0.0, max=102567401.0), HTML(value='')))" + "source": [ + "# Let's take a look at the segmentation map we got\n", + "import matplotlib.patches as mpatches\n", + "img = Image.open('iccv09Data/labels/6000124.png')\n", + "plt.figure(figsize=(8, 6))\n", + "im = plt.imshow(np.array(img.convert('RGB')))\n", + "\n", + "# create a patch (proxy artist) for every color \n", + "patches = [mpatches.Patch(color=np.array(palette[i])/255., \n", + " label=classes[i]) for i in range(8)]\n", + "# put those patched as legend-handles into the legend\n", + "plt.legend(handles=patches, bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0., \n", + " fontsize='large')\n", + "\n", + "plt.show()" + ], + "execution_count": 14, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } ] - }, - "metadata": { - "tags": [] - } }, { - "output_type": "stream", - "text": [ - "2020-07-09 19:14:39,770 - mmseg - WARNING - The model and loaded state dict do not match exactly\n", - "\n", - "unexpected key in source state_dict: fc.weight, fc.bias\n", - "\n", - "2020-07-09 19:14:39,836 - mmseg - INFO - Loaded 143 images\n", - "2020-07-09 19:14:39,837 - mmseg - INFO - load checkpoint from checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth\n" - ], - "name": "stderr" + "cell_type": "code", + "metadata": { + "id": "WbeLYCp2k5hl" + }, + "source": [ + "# split train/val set randomly\n", + "split_dir = 'splits'\n", + "mmcv.mkdir_or_exist(osp.join(data_root, split_dir))\n", + "filename_list = [osp.splitext(filename)[0] for filename in mmcv.scandir(\n", + " osp.join(data_root, ann_dir), suffix='.png')]\n", + "with open(osp.join(data_root, split_dir, 'train.txt'), 'w') as f:\n", + " # select first 4/5 as train set\n", + " train_length = int(len(filename_list)*4/5)\n", + " f.writelines(line + '\\n' for line in filename_list[:train_length])\n", + "with open(osp.join(data_root, split_dir, 'val.txt'), 'w') as f:\n", + " # select last 1/5 as train set\n", + " f.writelines(line + '\\n' for line in filename_list[train_length:])" + ], + "execution_count": 15, + "outputs": [] }, { - "output_type": "stream", - "text": [ - "\n" - ], - "name": "stdout" + "cell_type": "markdown", + "metadata": { + "id": "HchvmGYB_rrO" + }, + "source": [ + "After downloading the data, we need to implement `load_annotations` function in the new dataset class `StandfordBackgroundDataset`." + ] }, { - "output_type": "stream", - "text": [ - "2020-07-09 19:14:39,990 - mmseg - WARNING - The model and loaded state dict do not match exactly\n", - "\n", - "size mismatch for decode_head.conv_seg.weight: copying a param with shape torch.Size([19, 512, 1, 1]) from checkpoint, the shape in current model is torch.Size([8, 512, 1, 1]).\n", - "size mismatch for decode_head.conv_seg.bias: copying a param with shape torch.Size([19]) from checkpoint, the shape in current model is torch.Size([8]).\n", - "size mismatch for auxiliary_head.conv_seg.weight: copying a param with shape torch.Size([19, 256, 1, 1]) from checkpoint, the shape in current model is torch.Size([8, 256, 1, 1]).\n", - "size mismatch for auxiliary_head.conv_seg.bias: copying a param with shape torch.Size([19]) from checkpoint, the shape in current model is torch.Size([8]).\n", - "2020-07-09 19:14:39,994 - mmseg - INFO - Start running, host: root@71c6cf9b06c5, work_dir: /content/mmsegmentation/work_dirs/tutorial\n", - "2020-07-09 19:14:39,995 - mmseg - INFO - workflow: [('train', 1)], max: 200 iters\n", - "2020-07-09 19:14:54,192 - mmseg - INFO - Iter [10/200]\tlr: 9.598e-03, eta: 0:04:21, time: 1.379, data_time: 0.002, memory: 3772, decode.loss_seg: 1.5616, decode.acc_seg: 46.9241, aux.loss_seg: 0.6853, aux.acc_seg: 38.7292, loss: 2.2469\n", - "2020-07-09 19:15:07,556 - mmseg - INFO - Iter [20/200]\tlr: 9.149e-03, eta: 0:04:04, time: 1.336, data_time: 0.016, memory: 3772, decode.loss_seg: 0.8215, decode.acc_seg: 68.8879, aux.loss_seg: 0.5371, aux.acc_seg: 67.9098, loss: 1.3586\n", - "2020-07-09 19:15:20,914 - mmseg - INFO - Iter [30/200]\tlr: 8.698e-03, eta: 0:03:49, time: 1.336, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5890, decode.acc_seg: 66.6747, aux.loss_seg: 0.3591, aux.acc_seg: 65.8590, loss: 0.9481\n", - "2020-07-09 19:15:34,235 - mmseg - INFO - Iter [40/200]\tlr: 8.244e-03, eta: 0:03:35, time: 1.332, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5888, decode.acc_seg: 71.6006, aux.loss_seg: 0.3192, aux.acc_seg: 66.5800, loss: 0.9079\n", - "2020-07-09 19:15:47,580 - mmseg - INFO - Iter [50/200]\tlr: 7.788e-03, eta: 0:03:21, time: 1.335, data_time: 0.016, memory: 3772, decode.loss_seg: 0.7011, decode.acc_seg: 65.8105, aux.loss_seg: 0.3223, aux.acc_seg: 62.9866, loss: 1.0235\n", - "2020-07-09 19:16:00,900 - mmseg - INFO - Iter [60/200]\tlr: 7.328e-03, eta: 0:03:07, time: 1.332, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5531, decode.acc_seg: 66.3968, aux.loss_seg: 0.2624, aux.acc_seg: 63.4624, loss: 0.8156\n", - "2020-07-09 19:16:14,199 - mmseg - INFO - Iter [70/200]\tlr: 6.865e-03, eta: 0:02:54, time: 1.330, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5888, decode.acc_seg: 66.5814, aux.loss_seg: 0.2905, aux.acc_seg: 62.6161, loss: 0.8792\n", - "2020-07-09 19:16:28,148 - mmseg - INFO - Iter [80/200]\tlr: 6.398e-03, eta: 0:02:41, time: 1.395, data_time: 0.016, memory: 3772, decode.loss_seg: 0.4988, decode.acc_seg: 69.7736, aux.loss_seg: 0.2388, aux.acc_seg: 68.5068, loss: 0.7376\n", - "2020-07-09 19:16:41,440 - mmseg - INFO - Iter [90/200]\tlr: 5.928e-03, eta: 0:02:27, time: 1.330, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5177, decode.acc_seg: 72.9874, aux.loss_seg: 0.2512, aux.acc_seg: 71.1549, loss: 0.7690\n", - "2020-07-09 19:16:54,703 - mmseg - INFO - Iter [100/200]\tlr: 5.453e-03, eta: 0:02:14, time: 1.326, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5794, decode.acc_seg: 65.9114, aux.loss_seg: 0.2557, aux.acc_seg: 65.2695, loss: 0.8351\n", - "2020-07-09 19:17:07,972 - mmseg - INFO - Iter [110/200]\tlr: 4.974e-03, eta: 0:02:00, time: 1.327, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5395, decode.acc_seg: 69.2955, aux.loss_seg: 0.2443, aux.acc_seg: 68.5840, loss: 0.7838\n", - "2020-07-09 19:17:21,227 - mmseg - INFO - Iter [120/200]\tlr: 4.489e-03, eta: 0:01:47, time: 1.326, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5568, decode.acc_seg: 70.1717, aux.loss_seg: 0.2490, aux.acc_seg: 69.4707, loss: 0.8058\n", - "2020-07-09 19:17:34,513 - mmseg - INFO - Iter [130/200]\tlr: 3.998e-03, eta: 0:01:33, time: 1.328, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5222, decode.acc_seg: 72.1791, aux.loss_seg: 0.2446, aux.acc_seg: 71.0046, loss: 0.7668\n", - "2020-07-09 19:17:47,812 - mmseg - INFO - Iter [140/200]\tlr: 3.500e-03, eta: 0:01:20, time: 1.330, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5178, decode.acc_seg: 72.7657, aux.loss_seg: 0.2552, aux.acc_seg: 70.8837, loss: 0.7730\n", - "2020-07-09 19:18:01,667 - mmseg - INFO - Iter [150/200]\tlr: 2.994e-03, eta: 0:01:07, time: 1.386, data_time: 0.016, memory: 3772, decode.loss_seg: 0.4719, decode.acc_seg: 72.4819, aux.loss_seg: 0.2263, aux.acc_seg: 69.9169, loss: 0.6982\n", - "2020-07-09 19:18:14,904 - mmseg - INFO - Iter [160/200]\tlr: 2.478e-03, eta: 0:00:53, time: 1.324, data_time: 0.016, memory: 3772, decode.loss_seg: 0.4494, decode.acc_seg: 75.4808, aux.loss_seg: 0.2228, aux.acc_seg: 73.2249, loss: 0.6723\n", - "2020-07-09 19:18:28,151 - mmseg - INFO - Iter [170/200]\tlr: 1.949e-03, eta: 0:00:40, time: 1.325, data_time: 0.016, memory: 3772, decode.loss_seg: 0.4412, decode.acc_seg: 72.4503, aux.loss_seg: 0.2177, aux.acc_seg: 69.9681, loss: 0.6589\n", - "2020-07-09 19:18:41,413 - mmseg - INFO - Iter [180/200]\tlr: 1.402e-03, eta: 0:00:26, time: 1.326, data_time: 0.016, memory: 3772, decode.loss_seg: 0.4127, decode.acc_seg: 74.4395, aux.loss_seg: 0.1955, aux.acc_seg: 72.5129, loss: 0.6082\n", - "2020-07-09 19:18:54,678 - mmseg - INFO - Iter [190/200]\tlr: 8.277e-04, eta: 0:00:13, time: 1.326, data_time: 0.016, memory: 3772, decode.loss_seg: 0.4733, decode.acc_seg: 74.7937, aux.loss_seg: 0.2285, aux.acc_seg: 72.0337, loss: 0.7019\n", - "2020-07-09 19:19:07,808 - mmseg - INFO - Saving checkpoint at 200 iterations\n" - ], - "name": "stderr" + "cell_type": "code", + "metadata": { + "id": "LbsWOw62_o-X" + }, + "source": [ + "from mmseg.datasets.builder import DATASETS\n", + "from mmseg.datasets.custom import CustomDataset\n", + "\n", + "@DATASETS.register_module()\n", + "class StandfordBackgroundDataset(CustomDataset):\n", + " CLASSES = classes\n", + " PALETTE = palette\n", + " def __init__(self, split, **kwargs):\n", + " super().__init__(img_suffix='.jpg', seg_map_suffix='.png', \n", + " split=split, **kwargs)\n", + " assert osp.exists(self.img_dir) and self.split is not None\n", + "\n", + " " + ], + "execution_count": 16, + "outputs": [] }, { - "output_type": "stream", - "text": [ - "[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 143/143, 10.9 task/s, elapsed: 13s, ETA: 0s" - ], - "name": "stdout" + "cell_type": "markdown", + "metadata": { + "id": "yUVtmn3Iq3WA" + }, + "source": [ + "### Create a config file\n", + "In the next step, we need to modify the config for the training. To accelerate the process, we finetune the model from trained weights." + ] }, { - "output_type": "stream", - "text": [ - "2020-07-09 19:19:22,647 - mmseg - INFO - per class results:\n", - "Class IoU Acc\n", - "sky 88.67 94.28\n", - "tree 68.95 86.73\n", - "road 86.23 94.42\n", - "grass 70.01 91.35\n", - "water 62.08 68.32\n", - "bldg 81.11 88.89\n", - "mntn 0.00 0.00\n", - "fg obj 70.39 82.49\n", - "Summary:\n", - "Scope mIoU mAcc aAcc\n", - "global 65.93 75.81 87.48\n", - "\n", - "2020-07-09 19:19:22,660 - mmseg - INFO - Iter [200/200]\tlr: 1.841e-04, mIoU: 0.6593, mAcc: 0.7581, aAcc: 0.8748\n" - ], - "name": "stderr" - } - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "DEkWOP-NMbc_", - "colab_type": "text" - }, - "source": [ - "Inference with trained model" - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "ekG__UfaH_OU", - "colab_type": "code", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 645 + "cell_type": "code", + "metadata": { + "id": "Wwnj9tRzqX_A" + }, + "source": [ + "from mmcv import Config\n", + "cfg = Config.fromfile('configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py')" + ], + "execution_count": 17, + "outputs": [] }, - "outputId": "ac1eb835-19ed-48e6-8f77-e6d325b915c4" - }, - "source": [ - "img = mmcv.imread('iccv09Data/images/6000124.jpg')\n", - "\n", - "model.cfg = cfg\n", - "result = inference_segmentor(model, img)\n", - "plt.figure(figsize=(8, 6))\n", - "show_result_pyplot(model, img, result, palette)" - ], - "execution_count": 20, - "outputs": [ { - "output_type": "stream", - "text": [ - "/content/mmsegmentation/mmseg/models/segmentors/base.py:265: UserWarning: show==False and out_file is not specified, only result image will be returned\n", - " warnings.warn('show==False and out_file is not specified, only '\n" - ], - "name": "stderr" + "cell_type": "markdown", + "metadata": { + "id": "1y2oV5w97jQo" + }, + "source": [ + "Since the given config is used to train PSPNet on cityscapes dataset, we need to modify it accordingly for our new dataset. " + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "eyKnYC1Z7iCV", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "6195217b-187f-4675-994b-ba90d8bb3078" + }, + "source": [ + "from mmseg.apis import set_random_seed\n", + "\n", + "# Since we use ony one GPU, BN is used instead of SyncBN\n", + "cfg.norm_cfg = dict(type='BN', requires_grad=True)\n", + "cfg.model.backbone.norm_cfg = cfg.norm_cfg\n", + "cfg.model.decode_head.norm_cfg = cfg.norm_cfg\n", + "cfg.model.auxiliary_head.norm_cfg = cfg.norm_cfg\n", + "# modify num classes of the model in decode/auxiliary head\n", + "cfg.model.decode_head.num_classes = 8\n", + "cfg.model.auxiliary_head.num_classes = 8\n", + "\n", + "# Modify dataset type and path\n", + "cfg.dataset_type = 'StandfordBackgroundDataset'\n", + "cfg.data_root = data_root\n", + "\n", + "cfg.data.samples_per_gpu = 8\n", + "cfg.data.workers_per_gpu=8\n", + "\n", + "cfg.img_norm_cfg = dict(\n", + " mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)\n", + "cfg.crop_size = (256, 256)\n", + "cfg.train_pipeline = [\n", + " dict(type='LoadImageFromFile'),\n", + " dict(type='LoadAnnotations'),\n", + " dict(type='Resize', img_scale=(320, 240), ratio_range=(0.5, 2.0)),\n", + " dict(type='RandomCrop', crop_size=cfg.crop_size, cat_max_ratio=0.75),\n", + " dict(type='RandomFlip', flip_ratio=0.5),\n", + " dict(type='PhotoMetricDistortion'),\n", + " dict(type='Normalize', **cfg.img_norm_cfg),\n", + " dict(type='Pad', size=cfg.crop_size, pad_val=0, seg_pad_val=255),\n", + " dict(type='DefaultFormatBundle'),\n", + " dict(type='Collect', keys=['img', 'gt_semantic_seg']),\n", + "]\n", + "\n", + "cfg.test_pipeline = [\n", + " dict(type='LoadImageFromFile'),\n", + " dict(\n", + " type='MultiScaleFlipAug',\n", + " img_scale=(320, 240),\n", + " # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],\n", + " flip=False,\n", + " transforms=[\n", + " dict(type='Resize', keep_ratio=True),\n", + " dict(type='RandomFlip'),\n", + " dict(type='Normalize', **cfg.img_norm_cfg),\n", + " dict(type='ImageToTensor', keys=['img']),\n", + " dict(type='Collect', keys=['img']),\n", + " ])\n", + "]\n", + "\n", + "\n", + "cfg.data.train.type = cfg.dataset_type\n", + "cfg.data.train.data_root = cfg.data_root\n", + "cfg.data.train.img_dir = img_dir\n", + "cfg.data.train.ann_dir = ann_dir\n", + "cfg.data.train.pipeline = cfg.train_pipeline\n", + "cfg.data.train.split = 'splits/train.txt'\n", + "\n", + "cfg.data.val.type = cfg.dataset_type\n", + "cfg.data.val.data_root = cfg.data_root\n", + "cfg.data.val.img_dir = img_dir\n", + "cfg.data.val.ann_dir = ann_dir\n", + "cfg.data.val.pipeline = cfg.test_pipeline\n", + "cfg.data.val.split = 'splits/val.txt'\n", + "\n", + "cfg.data.test.type = cfg.dataset_type\n", + "cfg.data.test.data_root = cfg.data_root\n", + "cfg.data.test.img_dir = img_dir\n", + "cfg.data.test.ann_dir = ann_dir\n", + "cfg.data.test.pipeline = cfg.test_pipeline\n", + "cfg.data.test.split = 'splits/val.txt'\n", + "\n", + "# We can still use the pre-trained Mask RCNN model though we do not need to\n", + "# use the mask branch\n", + "cfg.load_from = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'\n", + "\n", + "# Set up working dir to save files and logs.\n", + "cfg.work_dir = './work_dirs/tutorial'\n", + "\n", + "cfg.runner.max_iters = 200\n", + "cfg.log_config.interval = 10\n", + "cfg.evaluation.interval = 200\n", + "cfg.checkpoint_config.interval = 200\n", + "\n", + "# Set seed to facitate reproducing the result\n", + "cfg.seed = 0\n", + "set_random_seed(0, deterministic=False)\n", + "cfg.gpu_ids = range(1)\n", + "\n", + "# Let's have a look at the final config used for training\n", + "print(f'Config:\\n{cfg.pretty_text}')" + ], + "execution_count": 18, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Config:\n", + "norm_cfg = dict(type='BN', requires_grad=True)\n", + "model = dict(\n", + " type='EncoderDecoder',\n", + " pretrained='open-mmlab://resnet50_v1c',\n", + " backbone=dict(\n", + " type='ResNetV1c',\n", + " depth=50,\n", + " num_stages=4,\n", + " out_indices=(0, 1, 2, 3),\n", + " dilations=(1, 1, 2, 4),\n", + " strides=(1, 2, 1, 1),\n", + " norm_cfg=dict(type='BN', requires_grad=True),\n", + " norm_eval=False,\n", + " style='pytorch',\n", + " contract_dilation=True),\n", + " decode_head=dict(\n", + " type='PSPHead',\n", + " in_channels=2048,\n", + " in_index=3,\n", + " channels=512,\n", + " pool_scales=(1, 2, 3, 6),\n", + " dropout_ratio=0.1,\n", + " num_classes=8,\n", + " norm_cfg=dict(type='BN', requires_grad=True),\n", + " align_corners=False,\n", + " loss_decode=dict(\n", + " type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),\n", + " auxiliary_head=dict(\n", + " type='FCNHead',\n", + " in_channels=1024,\n", + " in_index=2,\n", + " channels=256,\n", + " num_convs=1,\n", + " concat_input=False,\n", + " dropout_ratio=0.1,\n", + " num_classes=8,\n", + " norm_cfg=dict(type='BN', requires_grad=True),\n", + " align_corners=False,\n", + " loss_decode=dict(\n", + " type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),\n", + " train_cfg=dict(),\n", + " test_cfg=dict(mode='whole'))\n", + "dataset_type = 'StandfordBackgroundDataset'\n", + "data_root = 'iccv09Data'\n", + "img_norm_cfg = dict(\n", + " mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)\n", + "crop_size = (256, 256)\n", + "train_pipeline = [\n", + " dict(type='LoadImageFromFile'),\n", + " dict(type='LoadAnnotations'),\n", + " dict(type='Resize', img_scale=(320, 240), ratio_range=(0.5, 2.0)),\n", + " dict(type='RandomCrop', crop_size=(256, 256), cat_max_ratio=0.75),\n", + " dict(type='RandomFlip', flip_ratio=0.5),\n", + " dict(type='PhotoMetricDistortion'),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[123.675, 116.28, 103.53],\n", + " std=[58.395, 57.12, 57.375],\n", + " to_rgb=True),\n", + " dict(type='Pad', size=(256, 256), pad_val=0, seg_pad_val=255),\n", + " dict(type='DefaultFormatBundle'),\n", + " dict(type='Collect', keys=['img', 'gt_semantic_seg'])\n", + "]\n", + "test_pipeline = [\n", + " dict(type='LoadImageFromFile'),\n", + " dict(\n", + " type='MultiScaleFlipAug',\n", + " img_scale=(320, 240),\n", + " flip=False,\n", + " transforms=[\n", + " dict(type='Resize', keep_ratio=True),\n", + " dict(type='RandomFlip'),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[123.675, 116.28, 103.53],\n", + " std=[58.395, 57.12, 57.375],\n", + " to_rgb=True),\n", + " dict(type='ImageToTensor', keys=['img']),\n", + " dict(type='Collect', keys=['img'])\n", + " ])\n", + "]\n", + "data = dict(\n", + " samples_per_gpu=8,\n", + " workers_per_gpu=8,\n", + " train=dict(\n", + " type='StandfordBackgroundDataset',\n", + " data_root='iccv09Data',\n", + " img_dir='images',\n", + " ann_dir='labels',\n", + " pipeline=[\n", + " dict(type='LoadImageFromFile'),\n", + " dict(type='LoadAnnotations'),\n", + " dict(type='Resize', img_scale=(320, 240), ratio_range=(0.5, 2.0)),\n", + " dict(type='RandomCrop', crop_size=(256, 256), cat_max_ratio=0.75),\n", + " dict(type='RandomFlip', flip_ratio=0.5),\n", + " dict(type='PhotoMetricDistortion'),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[123.675, 116.28, 103.53],\n", + " std=[58.395, 57.12, 57.375],\n", + " to_rgb=True),\n", + " dict(type='Pad', size=(256, 256), pad_val=0, seg_pad_val=255),\n", + " dict(type='DefaultFormatBundle'),\n", + " dict(type='Collect', keys=['img', 'gt_semantic_seg'])\n", + " ],\n", + " split='splits/train.txt'),\n", + " val=dict(\n", + " type='StandfordBackgroundDataset',\n", + " data_root='iccv09Data',\n", + " img_dir='images',\n", + " ann_dir='labels',\n", + " pipeline=[\n", + " dict(type='LoadImageFromFile'),\n", + " dict(\n", + " type='MultiScaleFlipAug',\n", + " img_scale=(320, 240),\n", + " flip=False,\n", + " transforms=[\n", + " dict(type='Resize', keep_ratio=True),\n", + " dict(type='RandomFlip'),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[123.675, 116.28, 103.53],\n", + " std=[58.395, 57.12, 57.375],\n", + " to_rgb=True),\n", + " dict(type='ImageToTensor', keys=['img']),\n", + " dict(type='Collect', keys=['img'])\n", + " ])\n", + " ],\n", + " split='splits/val.txt'),\n", + " test=dict(\n", + " type='StandfordBackgroundDataset',\n", + " data_root='iccv09Data',\n", + " img_dir='images',\n", + " ann_dir='labels',\n", + " pipeline=[\n", + " dict(type='LoadImageFromFile'),\n", + " dict(\n", + " type='MultiScaleFlipAug',\n", + " img_scale=(320, 240),\n", + " flip=False,\n", + " transforms=[\n", + " dict(type='Resize', keep_ratio=True),\n", + " dict(type='RandomFlip'),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[123.675, 116.28, 103.53],\n", + " std=[58.395, 57.12, 57.375],\n", + " to_rgb=True),\n", + " dict(type='ImageToTensor', keys=['img']),\n", + " dict(type='Collect', keys=['img'])\n", + " ])\n", + " ],\n", + " split='splits/val.txt'))\n", + "log_config = dict(\n", + " interval=10, hooks=[dict(type='TextLoggerHook', by_epoch=False)])\n", + "dist_params = dict(backend='nccl')\n", + "log_level = 'INFO'\n", + "load_from = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'\n", + "resume_from = None\n", + "workflow = [('train', 1)]\n", + "cudnn_benchmark = True\n", + "optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)\n", + "optimizer_config = dict()\n", + "lr_config = dict(policy='poly', power=0.9, min_lr=0.0001, by_epoch=False)\n", + "runner = dict(type='IterBasedRunner', max_iters=200)\n", + "checkpoint_config = dict(by_epoch=False, interval=200)\n", + "evaluation = dict(interval=200, metric='mIoU')\n", + "work_dir = './work_dirs/tutorial'\n", + "seed = 0\n", + "gpu_ids = range(0, 1)\n", + "\n" + ], + "name": "stdout" + } + ] }, { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" + "cell_type": "markdown", + "metadata": { + "id": "QWuH14LYF2gQ" + }, + "source": [ + "### Train and Evaluation" ] - }, - "metadata": { - "tags": [] - } }, { - "output_type": "display_data", - "data": { - "image/png": "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\n", - "text/plain": [ - "
" + "cell_type": "code", + "metadata": { + "id": "jYKoSfdMF12B", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "422219ca-d7a5-4890-f09f-88c959942e64" + }, + "source": [ + "from mmseg.datasets import build_dataset\n", + "from mmseg.models import build_segmentor\n", + "from mmseg.apis import train_segmentor\n", + "\n", + "\n", + "# Build the dataset\n", + "datasets = [build_dataset(cfg.data.train)]\n", + "\n", + "# Build the detector\n", + "model = build_segmentor(\n", + " cfg.model, train_cfg=cfg.get('train_cfg'), test_cfg=cfg.get('test_cfg'))\n", + "# Add an attribute for visualization convenience\n", + "model.CLASSES = datasets[0].CLASSES\n", + "\n", + "# Create work_dir\n", + "mmcv.mkdir_or_exist(osp.abspath(cfg.work_dir))\n", + "train_segmentor(model, datasets, cfg, distributed=False, validate=True, \n", + " meta=dict())" + ], + "execution_count": 19, + "outputs": [ + { + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.7/dist-packages/mmcv/utils/misc.py:304: UserWarning: \"flip_ratio\" is deprecated in `RandomFlip.__init__`, please use \"prob\" instead\n", + " f'\"{src_arg_name}\" is deprecated in '\n", + "2021-04-07 22:15:26,312 - mmseg - INFO - Loaded 572 images\n", + "2021-04-07 22:15:26,915 - mmseg - INFO - Use load_from_openmmlab loader\n", + "2021-04-07 22:15:26,999 - mmseg - WARNING - The model and loaded state dict do not match exactly\n", + "\n", + "unexpected key in source state_dict: fc.weight, fc.bias\n", + "\n", + "2021-04-07 22:15:27,070 - mmseg - INFO - Loaded 143 images\n", + "2021-04-07 22:15:27,072 - mmseg - INFO - load checkpoint from checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth\n", + "2021-04-07 22:15:27,073 - mmseg - INFO - Use load_from_local loader\n", + "2021-04-07 22:15:27,228 - mmseg - WARNING - The model and loaded state dict do not match exactly\n", + "\n", + "size mismatch for decode_head.conv_seg.weight: copying a param with shape torch.Size([19, 512, 1, 1]) from checkpoint, the shape in current model is torch.Size([8, 512, 1, 1]).\n", + "size mismatch for decode_head.conv_seg.bias: copying a param with shape torch.Size([19]) from checkpoint, the shape in current model is torch.Size([8]).\n", + "size mismatch for auxiliary_head.conv_seg.weight: copying a param with shape torch.Size([19, 256, 1, 1]) from checkpoint, the shape in current model is torch.Size([8, 256, 1, 1]).\n", + "size mismatch for auxiliary_head.conv_seg.bias: copying a param with shape torch.Size([19]) from checkpoint, the shape in current model is torch.Size([8]).\n", + "2021-04-07 22:15:27,232 - mmseg - INFO - Start running, host: root@c8cc0e0b80dc, work_dir: /content/mmsegmentation/work_dirs/tutorial\n", + "2021-04-07 22:15:27,237 - mmseg - INFO - workflow: [('train', 1)], max: 200 iters\n", + "2021-04-07 22:15:33,883 - mmseg - INFO - Iter [10/200]\tlr: 9.598e-03, eta: 0:01:58, time: 0.626, data_time: 0.039, memory: 3772, decode.loss_seg: 1.5570, decode.acc_seg: 44.2138, aux.loss_seg: 0.6808, aux.acc_seg: 40.7060, loss: 2.2378\n", + "2021-04-07 22:15:39,777 - mmseg - INFO - Iter [20/200]\tlr: 9.149e-03, eta: 0:01:49, time: 0.589, data_time: 0.008, memory: 3772, decode.loss_seg: 0.8328, decode.acc_seg: 67.4587, aux.loss_seg: 0.5270, aux.acc_seg: 65.5612, loss: 1.3598\n", + "2021-04-07 22:15:45,723 - mmseg - INFO - Iter [30/200]\tlr: 8.698e-03, eta: 0:01:42, time: 0.595, data_time: 0.008, memory: 3772, decode.loss_seg: 0.6151, decode.acc_seg: 65.5550, aux.loss_seg: 0.3798, aux.acc_seg: 64.0860, loss: 0.9949\n", + "2021-04-07 22:15:51,759 - mmseg - INFO - Iter [40/200]\tlr: 8.244e-03, eta: 0:01:36, time: 0.603, data_time: 0.008, memory: 3772, decode.loss_seg: 0.5840, decode.acc_seg: 68.8598, aux.loss_seg: 0.3035, aux.acc_seg: 66.3350, loss: 0.8875\n", + "2021-04-07 22:15:57,851 - mmseg - INFO - Iter [50/200]\tlr: 7.788e-03, eta: 0:01:30, time: 0.609, data_time: 0.008, memory: 3772, decode.loss_seg: 0.5198, decode.acc_seg: 69.1188, aux.loss_seg: 0.2708, aux.acc_seg: 66.1400, loss: 0.7906\n", + "2021-04-07 22:16:04,047 - mmseg - INFO - Iter [60/200]\tlr: 7.328e-03, eta: 0:01:24, time: 0.620, data_time: 0.008, memory: 3772, decode.loss_seg: 0.7124, decode.acc_seg: 66.1938, aux.loss_seg: 0.3291, aux.acc_seg: 63.7193, loss: 1.0415\n", + "2021-04-07 22:16:10,183 - mmseg - INFO - Iter [70/200]\tlr: 6.865e-03, eta: 0:01:19, time: 0.614, data_time: 0.008, memory: 3772, decode.loss_seg: 0.6217, decode.acc_seg: 67.6348, aux.loss_seg: 0.2921, aux.acc_seg: 65.4327, loss: 0.9138\n", + "2021-04-07 22:16:16,975 - mmseg - INFO - Iter [80/200]\tlr: 6.398e-03, eta: 0:01:14, time: 0.679, data_time: 0.083, memory: 3772, decode.loss_seg: 0.5825, decode.acc_seg: 67.3635, aux.loss_seg: 0.2740, aux.acc_seg: 66.0855, loss: 0.8565\n", + "2021-04-07 22:16:22,951 - mmseg - INFO - Iter [90/200]\tlr: 5.928e-03, eta: 0:01:07, time: 0.598, data_time: 0.008, memory: 3772, decode.loss_seg: 0.5509, decode.acc_seg: 71.3504, aux.loss_seg: 0.2507, aux.acc_seg: 70.5064, loss: 0.8016\n", + "2021-04-07 22:16:28,880 - mmseg - INFO - Iter [100/200]\tlr: 5.453e-03, eta: 0:01:01, time: 0.593, data_time: 0.008, memory: 3772, decode.loss_seg: 0.6903, decode.acc_seg: 62.3287, aux.loss_seg: 0.3010, aux.acc_seg: 62.1792, loss: 0.9913\n", + "2021-04-07 22:16:34,786 - mmseg - INFO - Iter [110/200]\tlr: 4.974e-03, eta: 0:00:54, time: 0.591, data_time: 0.008, memory: 3772, decode.loss_seg: 0.5627, decode.acc_seg: 68.7782, aux.loss_seg: 0.2505, aux.acc_seg: 68.3666, loss: 0.8132\n", + "2021-04-07 22:16:40,679 - mmseg - INFO - Iter [120/200]\tlr: 4.489e-03, eta: 0:00:48, time: 0.589, data_time: 0.008, memory: 3772, decode.loss_seg: 0.5006, decode.acc_seg: 70.7204, aux.loss_seg: 0.2400, aux.acc_seg: 69.5582, loss: 0.7406\n", + "2021-04-07 22:16:46,554 - mmseg - INFO - Iter [130/200]\tlr: 3.998e-03, eta: 0:00:42, time: 0.588, data_time: 0.008, memory: 3772, decode.loss_seg: 0.4775, decode.acc_seg: 70.6324, aux.loss_seg: 0.2211, aux.acc_seg: 69.0519, loss: 0.6986\n", + "2021-04-07 22:16:52,442 - mmseg - INFO - Iter [140/200]\tlr: 3.500e-03, eta: 0:00:36, time: 0.589, data_time: 0.008, memory: 3772, decode.loss_seg: 0.4812, decode.acc_seg: 71.5263, aux.loss_seg: 0.2262, aux.acc_seg: 68.9376, loss: 0.7074\n", + "2021-04-07 22:16:59,045 - mmseg - INFO - Iter [150/200]\tlr: 2.994e-03, eta: 0:00:30, time: 0.660, data_time: 0.075, memory: 3772, decode.loss_seg: 0.4366, decode.acc_seg: 73.8778, aux.loss_seg: 0.2085, aux.acc_seg: 71.9269, loss: 0.6452\n", + "2021-04-07 22:17:04,994 - mmseg - INFO - Iter [160/200]\tlr: 2.478e-03, eta: 0:00:24, time: 0.595, data_time: 0.008, memory: 3772, decode.loss_seg: 0.4244, decode.acc_seg: 73.4474, aux.loss_seg: 0.1975, aux.acc_seg: 72.5327, loss: 0.6219\n", + "2021-04-07 22:17:10,945 - mmseg - INFO - Iter [170/200]\tlr: 1.949e-03, eta: 0:00:18, time: 0.595, data_time: 0.008, memory: 3772, decode.loss_seg: 0.4268, decode.acc_seg: 71.7624, aux.loss_seg: 0.2042, aux.acc_seg: 70.3237, loss: 0.6311\n", + "2021-04-07 22:17:16,919 - mmseg - INFO - Iter [180/200]\tlr: 1.402e-03, eta: 0:00:12, time: 0.597, data_time: 0.008, memory: 3772, decode.loss_seg: 0.4488, decode.acc_seg: 72.1597, aux.loss_seg: 0.2177, aux.acc_seg: 70.9026, loss: 0.6665\n", + "2021-04-07 22:17:22,916 - mmseg - INFO - Iter [190/200]\tlr: 8.277e-04, eta: 0:00:06, time: 0.600, data_time: 0.008, memory: 3772, decode.loss_seg: 0.4651, decode.acc_seg: 75.1950, aux.loss_seg: 0.2244, aux.acc_seg: 73.2528, loss: 0.6894\n", + "2021-04-07 22:17:28,838 - mmseg - INFO - Saving checkpoint at 200 iterations\n" + ], + "name": "stderr" + }, + { + "output_type": "stream", + "text": [ + "[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 143/143, 27.5 task/s, elapsed: 5s, ETA: 0s" + ], + "name": "stdout" + }, + { + "output_type": "stream", + "text": [ + "2021-04-07 22:17:35,967 - mmseg - INFO - per class results:\n", + "2021-04-07 22:17:35,969 - mmseg - INFO - \n", + "+--------+-------+-------+\n", + "| Class | IoU | Acc |\n", + "+--------+-------+-------+\n", + "| sky | 87.18 | 91.91 |\n", + "| tree | 69.54 | 90.08 |\n", + "| road | 84.38 | 92.03 |\n", + "| grass | 72.91 | 90.34 |\n", + "| water | 57.42 | 62.66 |\n", + "| bldg | 78.36 | 87.32 |\n", + "| mntn | 0.0 | 0.0 |\n", + "| fg obj | 67.42 | 82.39 |\n", + "+--------+-------+-------+\n", + "2021-04-07 22:17:35,974 - mmseg - INFO - Summary:\n", + "2021-04-07 22:17:35,976 - mmseg - INFO - \n", + "+--------+-------+-------+-------+\n", + "| Scope | mIoU | mAcc | aAcc |\n", + "+--------+-------+-------+-------+\n", + "| global | 64.65 | 74.59 | 85.92 |\n", + "+--------+-------+-------+-------+\n", + "2021-04-07 22:17:35,986 - mmseg - INFO - Iter(val) [200]\tmIoU: 0.6465, mAcc: 0.7459, aAcc: 0.8592, IoU.sky: 0.8718, IoU.tree: 0.6954, IoU.road: 0.8438, IoU.grass: 0.7291, IoU.water: 0.5742, IoU.bldg: 0.7836, IoU.mntn: 0.0000, IoU.fg obj: 0.6742, Acc.sky: 0.9191, Acc.tree: 0.9008, Acc.road: 0.9203, Acc.grass: 0.9034, Acc.water: 0.6266, Acc.bldg: 0.8732, Acc.mntn: 0.0000, Acc.fg obj: 0.8239\n" + ], + "name": "stderr" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "DEkWOP-NMbc_" + }, + "source": [ + "Inference with trained model" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ekG__UfaH_OU", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 645 + }, + "outputId": "1437419c-869a-4902-df86-d4f6f8b2597a" + }, + "source": [ + "img = mmcv.imread('iccv09Data/images/6000124.jpg')\n", + "\n", + "model.cfg = cfg\n", + "result = inference_segmentor(model, img)\n", + "plt.figure(figsize=(8, 6))\n", + "show_result_pyplot(model, img, result, palette)" + ], + "execution_count": 20, + "outputs": [ + { + "output_type": "stream", + "text": [ + "/content/mmsegmentation/mmseg/models/segmentors/base.py:271: UserWarning: show==False and out_file is not specified, only result image will be returned\n", + " warnings.warn('show==False and out_file is not specified, only '\n" + ], + "name": "stderr" + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } ] - }, - "metadata": { - "tags": [], - "needs_background": "light" - } } - ] - } - ] -} + ] +} \ No newline at end of file From d283ca6fea574ca415b1c834dc328158d58fe659 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Thu, 8 Apr 2021 19:29:00 -0700 Subject: [PATCH 115/706] [Improvement] Add more CI (#460) * add more CI * fix missing * remove python-version * fixed acc --- .github/workflows/build.yml | 23 +- demo/MMSegmentation_Tutorial.ipynb | 2110 ++++++++++++++-------------- mmseg/models/losses/accuracy.py | 2 +- 3 files changed, 1068 insertions(+), 1067 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9a30054bfe..ac30118321 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,6 +1,6 @@ name: build -on: [push, pull_request] +on: [ push, pull_request ] jobs: lint: @@ -29,25 +29,26 @@ jobs: UBUNTU_VERSION: ubuntu1804 FORCE_CUDA: 1 MMCV_CUDA_ARGS: -gencode=arch=compute_61,code=sm_61 - runs-on: ubuntu-latest + runs-on: ubuntu-18.04 strategy: matrix: - python-version: [3.6, 3.7] - torch: [1.3.0+cpu, 1.5.0+cpu] + python-version: [ 3.6, 3.7 ] + torch: [ 1.3.0+cpu, 1.5.0+cpu, 1.5.0+cu101, 1.6.0+cu101, 1.7.0+cu101, 1.8.0+cu101 ] include: - torch: 1.3.0+cpu torchvision: 0.4.1+cpu - torch: 1.5.0+cpu torchvision: 0.6.0+cpu - - torch: 1.5.0+cpu - torchvision: 0.6.0+cpu - python-version: 3.8 - torch: 1.5.0+cu101 torchvision: 0.6.0+cu101 - python-version: 3.7 - torch: 1.6.0+cu101 torchvision: 0.7.0+cu101 - python-version: 3.7 + - torch: 1.7.0+cu101 + torchvision: 0.8.1+cu101 + - torch: 1.8.0+cu101 + torchvision: 0.9.0+cu101 + - torch: 1.8.0+cu101 + torchvision: 0.9.0+cu101 steps: - uses: actions/checkout@v2 @@ -56,7 +57,7 @@ jobs: with: python-version: ${{ matrix.python-version }} - name: Install CUDA - if: ${{matrix.torch == '1.5.0+cu101'}} + if: ${{matrix.torch == '1.5.0+cu101' || matrix.torch == '1.6.0+cu101' || matrix.torch == '1.7.0+cu101' || matrix.torch == '1.8.0+cu101'}} run: | export INSTALLER=cuda-repo-${UBUNTU_VERSION}_${CUDA}_amd64.deb wget http://developer.download.nvidia.com/compute/cuda/repos/${UBUNTU_VERSION}/x86_64/${INSTALLER} @@ -88,7 +89,7 @@ jobs: coverage report -m # Only upload coverage report for python3.7 && pytorch1.5 - name: Upload coverage to Codecov - if: ${{matrix.torch == '1.5.0+cu101' && matrix.python-version == '3.7'}} + if: ${{matrix.torch == '1.8.0+cu101' && matrix.python-version == '3.7'}} uses: codecov/codecov-action@v1.0.10 with: file: ./coverage.xml diff --git a/demo/MMSegmentation_Tutorial.ipynb b/demo/MMSegmentation_Tutorial.ipynb index 09bf6fa757..0291911707 100644 --- a/demo/MMSegmentation_Tutorial.ipynb +++ b/demo/MMSegmentation_Tutorial.ipynb @@ -1,1100 +1,1100 @@ { - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "colab": { - "name": "MMSegmentation Tutorial.ipynb", - "provenance": [], - "collapsed_sections": [], - "include_colab_link": true - }, - "kernelspec": { - "name": "python3", - "display_name": "Python 3" - }, - "accelerator": "GPU", - "pycharm": { - "stem_cell": { - "cell_type": "raw", - "source": [], - "metadata": { - "collapsed": false - } - } + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "MMSegmentation Tutorial.ipynb", + "provenance": [], + "collapsed_sections": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "accelerator": "GPU", + "pycharm": { + "stem_cell": { + "cell_type": "raw", + "source": [], + "metadata": { + "collapsed": false } + } + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] }, - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "view-in-github", - "colab_type": "text" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FVmnaxFJvsb8" - }, - "source": [ - "# MMSegmentation Tutorial\n", - "Welcome to MMSegmentation! \n", - "\n", - "In this tutorial, we demo\n", - "* How to do inference with MMSeg trained weight\n", - "* How to train on your own dataset and visualize the results. " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QS8YHrEhbpas" - }, - "source": [ - "## Install MMSegmentation\n", - "This step may take several minutes. \n", - "\n", - "We use PyTorch 1.5.0 and CUDA 10.1 for this tutorial. You may install other versions by change the version number in pip install command. " - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "UWyLrLYaNEaL", - "colab": { - "base_uri": "https://localhost:8080/" - }, - "outputId": "32a47fe3-f10d-47a1-f6b9-b7c235abdab1" - }, - "source": [ - "# Check nvcc version\n", - "!nvcc -V\n", - "# Check GCC version\n", - "!gcc --version" - ], - "execution_count": 1, - "outputs": [ - { - "output_type": "stream", - "text": [ - "nvcc: NVIDIA (R) Cuda compiler driver\n", - "Copyright (c) 2005-2020 NVIDIA Corporation\n", - "Built on Wed_Jul_22_19:09:09_PDT_2020\n", - "Cuda compilation tools, release 11.0, V11.0.221\n", - "Build cuda_11.0_bu.TC445_37.28845127_0\n", - "gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0\n", - "Copyright (C) 2017 Free Software Foundation, Inc.\n", - "This is free software; see the source for copying conditions. There is NO\n", - "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n", - "\n" - ], - "name": "stdout" - } - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "Ki3WUBjKbutg", - "colab": { - "base_uri": "https://localhost:8080/" - }, - "outputId": "14bd14b0-4d8c-4fa9-e3f9-da35c0efc0d5" - }, - "source": [ - "# Install PyTorch\n", - "!pip install -U torch==1.5.0+cu101 torchvision==0.6.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html\n", - "# Install MMCV\n", - "!pip install mmcv-full==latest+torch1.5.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html" - ], - "execution_count": 2, - "outputs": [ - { - "output_type": "stream", - "text": [ - "Looking in links: https://download.pytorch.org/whl/torch_stable.html\n", - "Requirement already up-to-date: torch==1.5.0+cu101 in /usr/local/lib/python3.7/dist-packages (1.5.0+cu101)\n", - "Requirement already up-to-date: torchvision==0.6.0+cu101 in /usr/local/lib/python3.7/dist-packages (0.6.0+cu101)\n", - "Requirement already satisfied, skipping upgrade: numpy in /usr/local/lib/python3.7/dist-packages (from torch==1.5.0+cu101) (1.19.5)\n", - "Requirement already satisfied, skipping upgrade: future in /usr/local/lib/python3.7/dist-packages (from torch==1.5.0+cu101) (0.16.0)\n", - "Requirement already satisfied, skipping upgrade: pillow>=4.1.1 in /usr/local/lib/python3.7/dist-packages (from torchvision==0.6.0+cu101) (7.1.2)\n", - "Looking in links: https://download.openmmlab.com/mmcv/dist/index.html\n", - "Collecting mmcv-full==latest+torch1.5.0+cu101\n", - " Using cached https://download.openmmlab.com/mmcv/dist/1.3.0/torch1.5.0/cu101/mmcv_full-latest%2Btorch1.5.0%2Bcu101-cp37-cp37m-manylinux1_x86_64.whl\n", - "Requirement already satisfied: Pillow in /usr/local/lib/python3.7/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (7.1.2)\n", - "Requirement already satisfied: addict in /usr/local/lib/python3.7/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (2.4.0)\n", - "Requirement already satisfied: yapf in /usr/local/lib/python3.7/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (0.31.0)\n", - "Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (1.19.5)\n", - "Requirement already satisfied: opencv-python>=3 in /usr/local/lib/python3.7/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (4.1.2.30)\n", - "Requirement already satisfied: pyyaml in /usr/local/lib/python3.7/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (3.13)\n", - "Installing collected packages: mmcv-full\n", - " Found existing installation: mmcv-full 1.3.0\n", - " Uninstalling mmcv-full-1.3.0:\n", - " Successfully uninstalled mmcv-full-1.3.0\n", - "Successfully installed mmcv-full-1.3.0\n" - ], - "name": "stdout" - } - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "nR-hHRvbNJJZ", - "colab": { - "base_uri": "https://localhost:8080/" - }, - "outputId": "10c3b131-d4db-458c-fc10-b94b1c6ed546" - }, - "source": [ - "!rm -rf mmsegmentation\n", - "!git clone https://github.com/open-mmlab/mmsegmentation.git \n", - "%cd mmsegmentation\n", - "!pip install -e ." - ], - "execution_count": 3, - "outputs": [ - { - "output_type": "stream", - "text": [ - "Cloning into 'mmsegmentation'...\n", - "remote: Enumerating objects: 64, done.\u001b[K\n", - "remote: Counting objects: 100% (64/64), done.\u001b[K\n", - "remote: Compressing objects: 100% (60/60), done.\u001b[K\n", - "remote: Total 2194 (delta 17), reused 12 (delta 4), pack-reused 2130\u001b[K\n", - "Receiving objects: 100% (2194/2194), 3.35 MiB | 26.82 MiB/s, done.\n", - "Resolving deltas: 100% (1536/1536), done.\n", - "/content/mmsegmentation\n", - "Obtaining file:///content/mmsegmentation\n", - "Requirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from mmsegmentation==0.12.0) (3.2.2)\n", - "Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from mmsegmentation==0.12.0) (1.19.5)\n", - "Requirement already satisfied: terminaltables in /usr/local/lib/python3.7/dist-packages (from mmsegmentation==0.12.0) (3.1.0)\n", - "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmsegmentation==0.12.0) (2.8.1)\n", - "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmsegmentation==0.12.0) (0.10.0)\n", - "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmsegmentation==0.12.0) (1.3.1)\n", - "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmsegmentation==0.12.0) (2.4.7)\n", - "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.1->matplotlib->mmsegmentation==0.12.0) (1.15.0)\n", - "Installing collected packages: mmsegmentation\n", - " Found existing installation: mmsegmentation 0.12.0\n", - " Can't uninstall 'mmsegmentation'. No files were found to uninstall.\n", - " Running setup.py develop for mmsegmentation\n", - "Successfully installed mmsegmentation\n" - ], - "name": "stdout" - } - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "mAE_h7XhPT7d", - "colab": { - "base_uri": "https://localhost:8080/" - }, - "outputId": "83bf0f8e-fc69-40b1-f9fe-0025724a217c" - }, - "source": [ - "# Check Pytorch installation\n", - "import torch, torchvision\n", - "print(torch.__version__, torch.cuda.is_available())\n", - "\n", - "# Check MMSegmentation installation\n", - "import mmseg\n", - "print(mmseg.__version__)" - ], - "execution_count": 4, - "outputs": [ - { - "output_type": "stream", - "text": [ - "1.5.0+cu101 True\n", - "0.12.0\n" - ], - "name": "stdout" - } - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eUcuC3dUv32I" - }, - "source": [ - "## Run Inference with MMSeg trained weight" - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "2hd41IGaiNet", - "colab": { - "base_uri": "https://localhost:8080/" - }, - "outputId": "b7b2aafc-edf2-43e4-ea43-0b5dd0aa4b4a" - }, - "source": [ - "!mkdir checkpoints\n", - "!wget https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth -P checkpoints" - ], - "execution_count": 5, - "outputs": [ - { - "output_type": "stream", - "text": [ - "--2021-04-07 22:14:41-- https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth\n", - "Resolving open-mmlab.s3.ap-northeast-2.amazonaws.com (open-mmlab.s3.ap-northeast-2.amazonaws.com)... 52.219.58.127\n", - "Connecting to open-mmlab.s3.ap-northeast-2.amazonaws.com (open-mmlab.s3.ap-northeast-2.amazonaws.com)|52.219.58.127|:443... connected.\n", - "HTTP request sent, awaiting response... 200 OK\n", - "Length: 196205945 (187M) [application/x-www-form-urlencoded]\n", - "Saving to: ‘checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth’\n", - "\n", - "pspnet_r50-d8_512x1 100%[===================>] 187.12M 15.8MB/s in 13s \n", - "\n", - "2021-04-07 22:14:54 (14.2 MB/s) - ‘checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth’ saved [196205945/196205945]\n", - "\n" - ], - "name": "stdout" - } - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "H8Fxg8i-wHJE" - }, - "source": [ - "from mmseg.apis import inference_segmentor, init_segmentor, show_result_pyplot\n", - "from mmseg.core.evaluation import get_palette" - ], - "execution_count": 6, - "outputs": [] - }, - { - "cell_type": "code", - "metadata": { - "id": "umk8sJ0Xuace" - }, - "source": [ - "config_file = 'configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py'\n", - "checkpoint_file = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'" - ], - "execution_count": 7, - "outputs": [] - }, - { - "cell_type": "code", - "metadata": { - "id": "nWlQFuTgudxu", - "colab": { - "base_uri": "https://localhost:8080/" - }, - "outputId": "5e45f4f6-5bcf-4d04-bb9c-0428ee84a576" - }, - "source": [ - "# build the model from a config file and a checkpoint file\n", - "model = init_segmentor(config_file, checkpoint_file, device='cuda:0')" - ], - "execution_count": 8, - "outputs": [ - { - "output_type": "stream", - "text": [ - "Use load_from_local loader\n" - ], - "name": "stdout" - } - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "izFv6pSRujk9" - }, - "source": [ - "# test a single image\n", - "img = 'demo/demo.png'\n", - "result = inference_segmentor(model, img)" - ], - "execution_count": 9, - "outputs": [] + { + "cell_type": "markdown", + "metadata": { + "id": "FVmnaxFJvsb8" + }, + "source": [ + "# MMSegmentation Tutorial\n", + "Welcome to MMSegmentation! \n", + "\n", + "In this tutorial, we demo\n", + "* How to do inference with MMSeg trained weight\n", + "* How to train on your own dataset and visualize the results. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QS8YHrEhbpas" + }, + "source": [ + "## Install MMSegmentation\n", + "This step may take several minutes. \n", + "\n", + "We use PyTorch 1.5.0 and CUDA 10.1 for this tutorial. You may install other versions by change the version number in pip install command. " + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "UWyLrLYaNEaL", + "colab": { + "base_uri": "https://localhost:8080/" }, + "outputId": "32a47fe3-f10d-47a1-f6b9-b7c235abdab1" + }, + "source": [ + "# Check nvcc version\n", + "!nvcc -V\n", + "# Check GCC version\n", + "!gcc --version" + ], + "execution_count": 1, + "outputs": [ { - "cell_type": "code", - "metadata": { - "id": "bDcs9udgunQK", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 504 - }, - "outputId": "7c55f713-4085-47fd-fa06-720a321d0795" - }, - "source": [ - "# show the results\n", - "show_result_pyplot(model, img, result, get_palette('cityscapes'))" - ], - "execution_count": 10, - "outputs": [ - { - "output_type": "stream", - "text": [ - "/content/mmsegmentation/mmseg/models/segmentors/base.py:271: UserWarning: show==False and out_file is not specified, only result image will be returned\n", - " warnings.warn('show==False and out_file is not specified, only '\n" - ], - "name": "stderr" - }, - { - "output_type": "display_data", - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "tags": [], - "needs_background": "light" - } - } - ] + "output_type": "stream", + "text": [ + "nvcc: NVIDIA (R) Cuda compiler driver\n", + "Copyright (c) 2005-2020 NVIDIA Corporation\n", + "Built on Wed_Jul_22_19:09:09_PDT_2020\n", + "Cuda compilation tools, release 11.0, V11.0.221\n", + "Build cuda_11.0_bu.TC445_37.28845127_0\n", + "gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0\n", + "Copyright (C) 2017 Free Software Foundation, Inc.\n", + "This is free software; see the source for copying conditions. There is NO\n", + "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n", + "\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Ki3WUBjKbutg", + "colab": { + "base_uri": "https://localhost:8080/" }, + "outputId": "14bd14b0-4d8c-4fa9-e3f9-da35c0efc0d5" + }, + "source": [ + "# Install PyTorch\n", + "!pip install -U torch==1.5.0+cu101 torchvision==0.6.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html\n", + "# Install MMCV\n", + "!pip install mmcv-full==latest+torch1.5.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html" + ], + "execution_count": 2, + "outputs": [ { - "cell_type": "markdown", - "metadata": { - "id": "Ta51clKX4cwM" - }, - "source": [ - "## Train a semantic segmentation model on a new dataset\n", - "\n", - "To train on a customized dataset, the following steps are neccessary. \n", - "1. Add a new dataset class. \n", - "2. Create a config file accordingly. \n", - "3. Perform training and evaluation. " - ] + "output_type": "stream", + "text": [ + "Looking in links: https://download.pytorch.org/whl/torch_stable.html\n", + "Requirement already up-to-date: torch==1.5.0+cu101 in /usr/local/lib/python3.7/dist-packages (1.5.0+cu101)\n", + "Requirement already up-to-date: torchvision==0.6.0+cu101 in /usr/local/lib/python3.7/dist-packages (0.6.0+cu101)\n", + "Requirement already satisfied, skipping upgrade: numpy in /usr/local/lib/python3.7/dist-packages (from torch==1.5.0+cu101) (1.19.5)\n", + "Requirement already satisfied, skipping upgrade: future in /usr/local/lib/python3.7/dist-packages (from torch==1.5.0+cu101) (0.16.0)\n", + "Requirement already satisfied, skipping upgrade: pillow>=4.1.1 in /usr/local/lib/python3.7/dist-packages (from torchvision==0.6.0+cu101) (7.1.2)\n", + "Looking in links: https://download.openmmlab.com/mmcv/dist/index.html\n", + "Collecting mmcv-full==latest+torch1.5.0+cu101\n", + " Using cached https://download.openmmlab.com/mmcv/dist/1.3.0/torch1.5.0/cu101/mmcv_full-latest%2Btorch1.5.0%2Bcu101-cp37-cp37m-manylinux1_x86_64.whl\n", + "Requirement already satisfied: Pillow in /usr/local/lib/python3.7/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (7.1.2)\n", + "Requirement already satisfied: addict in /usr/local/lib/python3.7/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (2.4.0)\n", + "Requirement already satisfied: yapf in /usr/local/lib/python3.7/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (0.31.0)\n", + "Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (1.19.5)\n", + "Requirement already satisfied: opencv-python>=3 in /usr/local/lib/python3.7/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (4.1.2.30)\n", + "Requirement already satisfied: pyyaml in /usr/local/lib/python3.7/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (3.13)\n", + "Installing collected packages: mmcv-full\n", + " Found existing installation: mmcv-full 1.3.0\n", + " Uninstalling mmcv-full-1.3.0:\n", + " Successfully uninstalled mmcv-full-1.3.0\n", + "Successfully installed mmcv-full-1.3.0\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "nR-hHRvbNJJZ", + "colab": { + "base_uri": "https://localhost:8080/" }, + "outputId": "10c3b131-d4db-458c-fc10-b94b1c6ed546" + }, + "source": [ + "!rm -rf mmsegmentation\n", + "!git clone https://github.com/open-mmlab/mmsegmentation.git \n", + "%cd mmsegmentation\n", + "!pip install -e ." + ], + "execution_count": 3, + "outputs": [ { - "cell_type": "markdown", - "metadata": { - "id": "AcZg6x_K5Zs3" - }, - "source": [ - "### Add a new dataset\n", - "\n", - "Datasets in MMSegmentation require image and semantic segmentation maps to be placed in folders with the same perfix. To support a new dataset, we may need to modify the original file structure. \n", - "\n", - "In this tutorial, we give an example of converting the dataset. You may refer to [docs](https://github.com/open-mmlab/mmsegmentation/docs/tutorials/new_dataset.md) for details about dataset reorganization. \n", - "\n", - "We use [Standord Background Dataset](http://dags.stanford.edu/projects/scenedataset.html) as an example. The dataset contains 715 images chosen from existing public datasets [LabelMe](http://labelme.csail.mit.edu), [MSRC](http://research.microsoft.com/en-us/projects/objectclassrecognition), [PASCAL VOC](http://pascallin.ecs.soton.ac.uk/challenges/VOC) and [Geometric Context](http://www.cs.illinois.edu/homes/dhoiem/). Images from these datasets are mainly outdoor scenes, each containing approximately 320-by-240 pixels. \n", - "In this tutorial, we use the region annotations as labels. There are 8 classes in total, i.e. sky, tree, road, grass, water, building, mountain, and foreground object. " - ] + "output_type": "stream", + "text": [ + "Cloning into 'mmsegmentation'...\n", + "remote: Enumerating objects: 64, done.\u001B[K\n", + "remote: Counting objects: 100% (64/64), done.\u001B[K\n", + "remote: Compressing objects: 100% (60/60), done.\u001B[K\n", + "remote: Total 2194 (delta 17), reused 12 (delta 4), pack-reused 2130\u001B[K\n", + "Receiving objects: 100% (2194/2194), 3.35 MiB | 26.82 MiB/s, done.\n", + "Resolving deltas: 100% (1536/1536), done.\n", + "/content/mmsegmentation\n", + "Obtaining file:///content/mmsegmentation\n", + "Requirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from mmsegmentation==0.12.0) (3.2.2)\n", + "Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from mmsegmentation==0.12.0) (1.19.5)\n", + "Requirement already satisfied: terminaltables in /usr/local/lib/python3.7/dist-packages (from mmsegmentation==0.12.0) (3.1.0)\n", + "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmsegmentation==0.12.0) (2.8.1)\n", + "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmsegmentation==0.12.0) (0.10.0)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmsegmentation==0.12.0) (1.3.1)\n", + "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmsegmentation==0.12.0) (2.4.7)\n", + "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.1->matplotlib->mmsegmentation==0.12.0) (1.15.0)\n", + "Installing collected packages: mmsegmentation\n", + " Found existing installation: mmsegmentation 0.12.0\n", + " Can't uninstall 'mmsegmentation'. No files were found to uninstall.\n", + " Running setup.py develop for mmsegmentation\n", + "Successfully installed mmsegmentation\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "mAE_h7XhPT7d", + "colab": { + "base_uri": "https://localhost:8080/" }, + "outputId": "83bf0f8e-fc69-40b1-f9fe-0025724a217c" + }, + "source": [ + "# Check Pytorch installation\n", + "import torch, torchvision\n", + "print(torch.__version__, torch.cuda.is_available())\n", + "\n", + "# Check MMSegmentation installation\n", + "import mmseg\n", + "print(mmseg.__version__)" + ], + "execution_count": 4, + "outputs": [ { - "cell_type": "code", - "metadata": { - "id": "TFIt7MHq5Wls", - "colab": { - "base_uri": "https://localhost:8080/" - }, - "outputId": "74a126e4-c8a4-4d2f-a910-b58b71843a23" - }, - "source": [ - "# download and unzip\n", - "!wget http://dags.stanford.edu/data/iccv09Data.tar.gz -O standford_background.tar.gz\n", - "!tar xf standford_background.tar.gz" - ], - "execution_count": 11, - "outputs": [ - { - "output_type": "stream", - "text": [ - "--2021-04-07 22:15:00-- http://dags.stanford.edu/data/iccv09Data.tar.gz\n", - "Resolving dags.stanford.edu (dags.stanford.edu)... 171.64.68.10\n", - "Connecting to dags.stanford.edu (dags.stanford.edu)|171.64.68.10|:80... connected.\n", - "HTTP request sent, awaiting response... 200 OK\n", - "Length: 14727974 (14M) [application/x-gzip]\n", - "Saving to: ‘standford_background.tar.gz’\n", - "\n", - "standford_backgroun 100%[===================>] 14.04M 23.4MB/s in 0.6s \n", - "\n", - "2021-04-07 22:15:00 (23.4 MB/s) - ‘standford_background.tar.gz’ saved [14727974/14727974]\n", - "\n" - ], - "name": "stdout" - } - ] + "output_type": "stream", + "text": [ + "1.5.0+cu101 True\n", + "0.12.0\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "eUcuC3dUv32I" + }, + "source": [ + "## Run Inference with MMSeg trained weight" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "2hd41IGaiNet", + "colab": { + "base_uri": "https://localhost:8080/" }, + "outputId": "b7b2aafc-edf2-43e4-ea43-0b5dd0aa4b4a" + }, + "source": [ + "!mkdir checkpoints\n", + "!wget https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth -P checkpoints" + ], + "execution_count": 5, + "outputs": [ { - "cell_type": "code", - "metadata": { - "id": "78LIci7F9WWI", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 377 - }, - "outputId": "c432ddac-5a50-47b1-daac-5a26b07afea2" - }, - "source": [ - "# Let's take a look at the dataset\n", - "import mmcv\n", - "import matplotlib.pyplot as plt\n", - "\n", - "img = mmcv.imread('iccv09Data/images/6000124.jpg')\n", - "plt.figure(figsize=(8, 6))\n", - "plt.imshow(mmcv.bgr2rgb(img))\n", - "plt.show()" - ], - "execution_count": 12, - "outputs": [ - { - "output_type": "display_data", - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdsAAAFoCAYAAAAfJFHvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOy9yY4023bf99tdNJlZ9XWnuSIPKV4YMic0bMC2PDPggQDPPLX9ABr5AfwsGnjsJxDgZ9BUMm2KtsXbUTzna6oqM6PZrQdr78iouudSguEDXgq1gcT3VVVkNDsi1n+t//qvtVUphdfxOl7H63gdr+N1/HRD/12fwOt4Ha/jdbyO1/Ef+ngF29fxOl7H63gdr+MnHq9g+zpex+t4Ha/jdfzE4xVsX8freB2v43W8jp94vILt63gdr+N1vI7X8ROPV7B9Ha/jdbyO1/E6fuLxk4GtUuq/VUr9n0qpv1RK/c8/1XFex+t4Ha/jdbyO3/ehfoo6W6WUAf4C+CfAr4B/AfwPpZT//f/3g72O1/E6XsfreB2/5+Onimz/MfCXpZT/u5Tigf8V+O9+omO9jtfxOl7H63gdv9fD/kT7/UPgl7uffwX8V/sNlFL/FPinAMaY//zudGy/37YppVBKQSn17PPy7xQoSISuUHDbhJeR+35/KEXJuZ1Q2+B2jlqhlJbtgULdtVLbftvPlELOmVIKuZTbKSiFrvtu39daP7uO7VraRkApebs+Ywxa6+04pRTZh1bbtWul0NpgjCbnTM6ZlDMlZ7TWaCXbb3O2HbjOXYFcMlrpbf5ijOScUUphrcVoQ0yRnGUOjTHbdZW6Xdv/do51rl/ex5TSNj+q3odcCqVkYoz0fY+1DucsKcn1oMAaizGGGJP8DlBKyzVqjbEWs82vopRMSpEYIyH47fa2a1JKEVMCCn3X0/X9s/Nf1xUKaKNx1pFS2ua3FLbjWme3G6yVxlq77SeXQkoRCqSUiCkxjsP2DJRSsNaitaYU8N7LfdcGbWT/3q+kes3WGnkm6jMMZbtXpR6r1HMxWrMsC0qpep6Okm/PQN93WOvqPcq3ua4XE2Mk5UTJBWMNnXOoOr8lF7wPAFhrAcU8z6SUMEZzPB6fvYPGGAp1TrLcF4VCaYXRhpTS9tx3zm3Xo5R8V95Deb8Vt/c1pSTnxN5+KGR66rtZyvact3NIORNDIMb47N3UWt4la4ycn9rtrx5Xteva3qWye/bbNd/es70VKvU5b+9Re2ba/9sLuLcxarvX207aVXKbCjkfpfR2xFKef21/Lu2ay8u/ltvvtFKbbZUv3Cyhqued27k0G7Ub8lw3GyC/k/chi73RYttUtSXyngbmZX12vimneky13dN2jts1VLvbTtE5S+ccfd/X77X7l5/ZvXbc9m577+s7Ls9WjKnaZ7nucRyr/a02p9pnrTV//ud//rGU8jU/Mn4qsP13jlLKPwP+GcD7d2/LP/lv/uvtRZELvF28c277dF33bD/NyLTPtn9kMmOMzwx+ruDjnNuMaYxxA7X9xLVjtt814BHj57ftrbWEEDifz6zruv2tAcwwDAAbQJ1OJ5xz1TCmul9NyXK+MUaWZSFUQ3B3d8d4GLFWDJJzthpJS0oJrTXH44H7+zvGceTx8ZGnpyceHx9RKTMMA33f45yAhRi1ss1Jm+8QAs45AHLOfPz4kRACwzDwzTffMI4jHz9/YpoXOjdy//YNXddtwJJSYl1X5nlmmqbt2u/v7+t5i1HPOfP4+CjG31rGcSRGj4+B1a88Pj7w3Xd/xLff/oxvv/2Wh4czT09PoBR3d3e8f/+ej5++ME+L3KNuoO8GxvHA2w8feP/u/Wb81/lKDiufP37PX/3Vv+HL45lCYTwc+NnPfsZwGHl4fCTlzHfffcfP/uAPxPHImfvTHX/xr/81KUSGruN4OvH0+MS6eEIIfDlf+O677/jw1Ve8efMGv3qGYWAcR46nI8s8b8/lXO/n4+Mjnz9/5k//9E9l3nIhxMDXX33F8XRHzolf/NWvSClxPJ04HU8cDyO//vWv+PTxI49fPvP27T3fffcdw9BTSsaHhY/ff8/T+YlpnvDLQi6JQsFozb/5xS/o+577N294+/adPO+5oJXmj//4j/j6629wzuH9ysPDI/P1SowRbQyfPn/i6ekJv3revnvLH//Df8g4jiitOT9d+PWv/hpjLB8+fIVRmn/5r/4lDw+PHMaR//If/xfyzqWEMvDVh69Y14XrfMXPC2tcscbSdx3owtPjEyVnhs7x7v6OdZ7JOdJ1Pe/fv8Mai0Zt7zBATpnr+Ym+6zHWYLUh54LWans3VYEQIzFFQopk5H5crhf++jd/zZeHL+ScMdpwd3ei73rGceT+eCLHiEFjjWHse3rXoYo4lyUmyIWSI6UkCpkYEjFFYvSkWFCmOROWogo5F2JKrGHBrxGUOHWu63HOoLQBLWCZYxZA0wprOwEtgKJAZRQahUJrUGhSjJQUMdqhVHNqQBswqjrGCpYUwGi00RilydTraQCWC7mi0Nj3xOp8afHeIGWU1riu4zAM+JhIBXTXoa0j5UQuGaM179++pR8GrHOEEMilsIbAZV6YlpXhcGQ4HBiOJ7JS/M0PH/nNX/8N/8df/CWpFDIQS+bpcsFYAc+u6zeHRiuFqbaZnNGl4KzBlMK3X3/gD372DT//kz/BWoVTcr2FADGKY5czoPn+h+85P525nq/84he/YJoWlmXl6enM9z98xIdIKgWU4c/+0/+Eu7s3uH7g7v6O+7dvGY8HxvHAf/Znf/ZXvwvzfiqw/TXwR7ufv6u/+51jb4i9F2PWgGQf0YrX/BwQ99FGA5KcMz6GZxGVRA7lGfA2kAgh0Pf9tu/mSW/RSd22gXsDj/35vYy+W/QWQtiAxRizfW/vUPSd3R7wdj7ee2KMAt7WkLMhxoi1+pmTsXdAvPfM88w8zyzLwmAlQmgORfsesDkQ+/NYlmU75jzPm8PR973Mi745GKUUnHMcDgecczw9PYmRrtfaHI8QgkSQ9djzPHM+n7HW0vc9Xddt97NFqRKVyrznlFiXRSL1esywevFerWOojoR1hq5zjIcBayWCi35h7I6sy4lhGEifH0g5Yevz1Zys5qWu83xzulAYFD5GriFwuVyYr5MYc2OZlyvH04F3798AipgDxh1wvWX1C5fpXCMLxeplXmMKFDIherSRqCFEz3W+oq0YT2MkCkgx4P3KoXeMg8NZRUqB6/UKJaMo8pwsK+syM18vfHn4jFVaHM0UuZzPXB4fSYcDRmvIGescRkuUuswTl/NjBVvPl88fma+T3EdrOD89cr1cCCEwDh0lJwGWlJguZ+Iyo5yjhIWMQuWAKQGdLclPFQ4K1hgskTWt5HWixMBoNa4zdE6c3k6B6zvevrkjrgslrKhScF1HrxRaASUT/ELlReQZCZ5IIQdFKBC8p0BlezSUgm8sjTEUYFoWzpcz58cn1mmRZ7Y3GGUFmFJhnhfm6xWVwRlLPB4JfU+OqX4ixugbIDpDVpqEnEcCnNZoY9HOgSqQBNStVmQCmSSRm9LozXYIy1C07LtotTFkihoF13elhmuEINemjCaVGr2hwSiyKihlQclvC+CGHts5nLGgVQVbsJ1DNfZHC5zHnATU6twJW2YYxoGh64kps6yeh/MZTSSlLOdvIRXIBQoKbSy5ZAG6nClyqZstMkrTWUffdfR9L8fSqtrFgjEW5zphn6p9UPU+l1IIywI5M/QOA/Q1EKgPijAa7eLkCmmZVFWUeCLo+tmd3I4qzUocgCx7I5VMzJmYMqGxdb9j/FRg+y+Af6SU+jkCsv898D/+ro33ANXAr4Fi13XPgLht00DRWourlNM+uk0pEa/pGdi27zZwUUptlEEzsA1gG9i137fjtWhz86xz3sCk3di23z1da62lqw9Ri0hfRuMt8t2fSwNeFyyNqrper1uU3yLoZVnIWSLUeZ6JMQq4xEjKGV3ndFmWbX7311BKoe975nlmXVfWdcU5x/F45Hg8bud0urunH4+YSj12Xcc4jvR9z+Vy2a6j7/ttrs7n8wbsLfpNKW3z5b2X+5UjIQoILsvM5XKp+71uQD4vYhiXxVNynTPb0XV99Xq7zcC2iJ0sNGLXdXRdx7JKlPnw8MD5emH1HmPtRoEeDgcOhwPeey6XC5fLhVQj/xTF2ev6npQi03Lh85dPsk2KxLiyrEe89yzLut3fFjnOy4VlnXg6f+G9+4C1Fus0MXlCWLDaMHQWnxNxmTmvMyp5rFL0zmI0/PD9v6WzisNhxGiNprDOE2FdWKcJuk4iXr/y9PCFQ99xOhw4jSNGKUyGkgLTuvJXlyufT9/TVdr+er2wzAuxOqrLspJjwADkgl9mrFJopSlhpdOF3ig6EikkelU4dobj6OiURDcAisTl8w9cp4lpuhL8Qq6OkzhyhuIXSrGE1TI/PbEuk5jDnJgHC0WRYmKarpWSlPdhnVe6ThwIrTQpB1TRGKNxVr6XU6wGsRBS4jpNXC4XlssMRdF1PcfxxHE8CvWpNLoonO1RBazWlKKIMVcWUoEyFAWpZErMZGvIShGVIqDJKqOUIWtNLIUUE6ECjTYGPRhKkvczAzkBWUx5SFEiQmtqaGrIzUZos6UdVI2CT2/6DVy89+SSa9Srt6i9FImq+5Lp+wFtbk77uq6kkrHGEWIUajhKBOt9RCuFdUqi51KwtlBc5uqvrD4wzQsfP3+Rd7pkFIgjPYwUY1DVhmtlKEoTc2XYctlshut6hmHgcBi5Px7AWkJKrDHQhYDWYkMlxSBpgC21V22LzF+H0cIoyKjUvi6V5TYUMpTmeiBAW/bg2lJ/kprSLT1DpcFLIeaEj5HVe5Q1ZH0D5R8bPwnYllKiUup/Av43wAD/SynlX/17fG8z/C1ibHm1BsJ7QGtR7j4CBTYQadHXHmz3ANeirT3ItePtt2vn1cY+smv0a/tdA/65Uoj7fOUterudb7vGLUeiNV3X4b3fzkNAy6GNrudzi0wbza2UJqW0RcONaltCQivJdxgDMRdSzdnZmgszWubQdj2sHqUN2liGYeB4OtENAymLi9r3A/2gKDWfZ63drrvNb6Oq13Xd5hl45mAcj0eGYdjodDEQiZwTZAhrYJ0Xpst1i7ZDjCjv8avkL0ERggcyzlnGceA4DpjmqVePfF0W/HrL11KpyHVdScuMDwFbI/NhGLBWrj1GTwgrIXhSjKzLQkmZZDSlJIKf+fL5IzFIBD+OI+s6oXQmhljnxNTnJ+D9zDRdeHr8zK91JufAOB4oORO8I8cVZxzJZ1QplCTOykRhGHsoCa0K8/XMD9/DYRwZxoH74xGjFJ2zDJ2rzEdCUeis4f27d3z46ivevntPTgkfqjNzPfP4cGadrgzjyN3pDmcUxTk04MNK3zl6Z1Fa4bQmzDNLlnxyiRGnwKmMLhHvF4lsSTiVyUHufy41P4dini5M1yspeIqSY6nkSaWwTDPWGkr09NZiq/FSpZBCQIKiSIoeSnuHMsGvaCV8adGGnCOgKVmjciJn8EEAxLiBNQaij0SfUEXTO8vQDQzdgDGSfogxsoQozoxSxFyYlhWtPKbmjjWKnLLk1Z2hGFPpa401kss0RuYOpShKnC5rDcMwYqwhJgHglOKWay2Vau26ftMotHdf9ABmcyqVUuRSuFwuFGvptWbOGUpBG43VmlQKqeZeQ8nYfkANAwWFjwL0XmmK1tjjCUJlv5Ti/u5OHFylcM6xetEwWGc5jAeu05WgFgiJkAs5CTWrKCibCdXepJqfbplspXS9h2yUcNMLyLtboP4/V7uhVcuRK7S+5ao1ilKj/qaXubGMLfett5+RswMUlKYRVruPfraNuD/Nwaq5WmPQzmG6Tj7OYasN/F3jJ8vZllL+OfDP//22vkWdDaD2AAhsBtwYswEy8AxsW7TaxAQipInPoto91dzAbBPX7CLYtt1+7HO21toN1Lz3W9TUzqUdb5+X3Ue6e8B3zhFjenY9+/OINd9kkqm0ldrOt4GdFo5tJ94plYpMJJPRuqC0zLWIvsBYt1Ha7VyU0ihtMNZxOJ44HE9Ya+V8U+ZwEICMuTDP8zMnpjkejS1oDkPXdZvTAOIEnU5C6xpjmKapzpF8FIoYAuuyMF2vrD5WLziTYiKGuAGneJsFYzVd3zH0PZoabVSwDSEQQti+0zQcDeR9CKScuV6vmwNGkVxqyiLaUSAvfYzkpMg5EdaZxy+fiGHBGMvxMJCixy9yH06nEaMNuWSuFwEYv0xcrxK19Z3l7u5OjCaK5drhrMPiGFxH8qucd/RodSRHjyITw8r5KQmdmk7cjQPWaAbnGPs61zlTUsQZw5v7E1+9e8f79+8JMTBNC6ok5quqEfFMDB6rDW/enHDWCF0bCp21WCsgQpHtS4xY7Ujeo3JEFU2JnrBMED26JExJZL9KFJAlj6lKYb5eWKYrJSVs5ySPqTLLunK9XOQdpHB4/wFXWRuthFLPWaLDUjIqK6j3OMVAMorKlNY8nOw3oYkh4X2koHDuQAqJ6CUS19rQdwNDP9C5HqUMpWRSLoSUca7bosIQAiVnrDaYSnvGnCWC1oZsNMZYtC04a0kV8DZJkWoMV8/x7kTX9YQY8EG0CiL8EecE7zHGYYzFWHGIQahdYyx26KtoEkiZ+eERDVhjCABay/x1HTlGlNYiCMsZ1w3QDfL8zytZQVByj93hDtUod624//A1ZrqilKbrHGqaoBSsdQzHA3PKEAvFeoo2pA2kIBZFqp9bqAKl3ICtIPiZcxbHKKUNsCX4zJWHvgnCJHfdMtbyu6JqJJtqcKVvlHx7539LFFs2mR3PwXb3UZUyrlQ4KAlGrMVYh+06bCdAu1HWv2P8nQmk9qN5H43224MJsBnLlBJd122gugewPdg2ANkDFjyPuvaCqH302QCsbf8yZ7sfe/Bu+WVXJ/14PHK5XMSYe1+v8+YA7I83DAPXyyTUT732vQPR6NgWxXad245zA92bErkdM8b5WQRtjBFxSz3GOI5bvjfGyPfff79R4sMw8PbtWw6HAwDzPG9U83g4EJMcZ11vVOnnz5+FmluWjd5u9Hmbg3bc9+/fbyC8rmudl7ABcgiBaZpkzrWt52w2MDTWbT+rUuTl282ZCM0CKMmttOvPOWNqJH48HlFG8l65FNZ15c2bN7iqaA4hYLXhMI5YrclhZU4SheQcWdeZ8+MDmsy3337L/XGsOcRVRGu9UOwA18cHASEyOiceHx+4vr3H1Hv+9PREjhL9HfoDX717/+wZzHFm9Z6SI4MTZbguhRIjnTNko6A4Dn3P+XxmOj8xTVes0lgg+ZXlehHHkoLThsHJ9ssys04TF6UZeiN0rQ+EecaOB6wScJmmhSe/0FmHs47gF2JYybHDlMz56ZHoV8jinMR1BTIpp/oOr1zOZ+Z5pus63tzfbUrRp8cHpssF5zrujiesNijbbc/WugjQUQpWWTAgrGFjS5qyVKH1zazlLfefSFkxzyvn85XrdWb1Ees6DuNJ9BquIxdFKYquH7l/857T6YjWhhQj0/WKn1fJZdboluiJWhFLJqbC4GoaqNdCPRZR2Sul6PqBZVnwPmArgzmHxDSvTNP0rEphDR6tE9pYUdgrtdHI1lr6dGPNfAyUrme4f8vd27fkToC47/sqPpS0V0qJeV6gKGw/kHOiTLMASSpgNP39PX3K4qwCuI5kvVQp2I61TJSUsSqjc+E8r1znhclHtOvFLqYqPgKK0hRtYHdPitJkdAWxsgNUub+qlJZJlffONntXRbJWIsh6u0W4lTNWa9AKa/WNRtZqR7ffAoPty8/ysrcc7t4ZoOh6Le1rCtXwpbIOqn7+tvF7AbYtwmiRUYu0mje5L0FpwAbPS2haZNV+NlYm4iUdvKeaGxWzjz4bELft22h/a5Fz+7nle1WNoBrANAVuo5qbOtcYw+FweCamasC0j4D3QqbmDTdFMRU89nOXswDufk5TSnSu34B5T/m2XNlejNVypH0vuZPT6cQ4jts2TfCEUvgQeXp6ehb9n8/nLVftnOPu7m4D231uu93f5kS13Hib1zYfbftxPDJ0Xc2X3GT6SmmiMzw+PlBKZlkmrtOVvh/q9UfJ51VhWsv3oBWu5ppjTrUEINNZzdv7OzpnKpA+EfxK5xzHceTxc6GkJKIdZyAESlgooYPoefz0fXVsRB3+9PkH4nig6zuOvWOwd/RG4VTm1zny9jhydxwpJXP+4lkuV6JPLOZMXJYagYtC9HoZSSWx+oWcAkYL1RaDIoSZZZ5Z5oV1mXj68plP3/8N03Tl7d09T58/M1+vWCtiNiEpJCK8Px1RRQRx58cvaCOq0xQT83wVQ1aEIZgvE8YosuuIxnI5P0LO5HHEGbM5Ss2JlXt5KxH7/Pkz6+oBTdcNlKIIob0jkt/U2qK1ZQ23UqaYMimvkEV9OowDupahLT5S0Gjj0K7HVR2DM1ZEWc6SU2YNkct14Te/+YGHpzNrCBQUd4cD/fEopVtGgzZYKw7YHCPxegVUTdEsrKuXSDonciykEjHOYvuOboikVumwEwju3wd3kJzwcHcnrEeMBGCuzrStc+eM5XA8yfU4h6lCpVLn11UnOaVEWVc+PXzhmAtHbVgBoyTKTl1HQCLeqBRBa8bhxFBBWJ0n/DLzMM2kmDh8fsCvnpSFRewPJ0JRovK2HUvM+NVjTCYZxzVE1gJBaUKNNHNWlKyITpPQFAwoU3GtiCDrR9KbrezKGC3KbGvkOUiBHLy8+1rhg6LkBpqlHvNmn39s3FJ4sq3m5XYVjDdEvY0tIq7+XEbU2olbCVlKiZDijx67jd8bsG2g2iLETYlaP1t+4sWk7tXFz0Cy3Pa9/9temdwixS162AHCrcbvubiqRct7kVEDjxbRNSDrum67pgYs+6h2f/37vPAeyFuk3hR6zjnWdd6uBdjqEyXiutXFKqUwyj5zXvasQXMQpmkShSswjuMmEGpirnasBsh6mpiWlYeHh21Omlir5WDb8V/WFDenqFHN67qyLMszCqZ9t33PWiPqYiCmvaBMclgppS0K1lpzd38vjEbKLMuMHkZRpxqDqflxpZTQm02wUj3gvu8opTBPM58/fWK+XtCHA2Xoq0PoMVrjjGN0lsEYOqVQMXCdpy3fOxhDXleS1hQFnXCIJGsZjKX4lexXCF5UsymhUkTlhHEdfpluLAyZsM6kkvHBM10nrNV0zpLGkel64XK+sC4LMQSWaWKZJvy8oO7vibE6sAX8uuJ92J4Z2/VVxFQkNx2CRB71WdRiycTIxIDVTgCWyDLPOGtFTFMNkm71sFoTU5KCESW5NK0N4+GIswI87fpSSljXMwxUsJRyLuFfxdkI/gbkh9NJ3kM7k7WhL4VxHDdnMudMQpFzIQZx4Jc1MC0rIWdiKZSqEh7GA90woIxEWiiF6hxbXj+nzZborsMpDUHy1ZiE1k5KdaoISHc9tusw1rCmRKzOqTOW/ngg58r2jKPUOytNyBmfMsqWmpMVcMVYEUdpswlzWm2obu9SSiwhEFImAVmLGhqlyFrysLFGaaGATwV8kCg+FRFuFYipOjVFkZUCbVDGkpWu/5eyJDnfQiaTipy/th3WFZSxojXQtzKiUqPDXM+5kcE3uyDnKvR/qaVUWXLhWt1yuDW5KyyW5G2bfWhSJomSbyVPueSqb6nCKCWuaylNVvW7BE3Pf192OMROBKWUqNCNljIq/fclsm2gtAfHFp3BjYJ9SR3v/322T27U755K3edDGzg02nEfUb4E0+adN+o2xridV/t5XdctR9nqT7uu26jWZlj20RuwHQtuYLSv/W3R5kuwbecmFHvecpF7OjvH2xy14vP2oKeUmaaJ8/nMdZpu6uPTiUOlmJsAQwBNSopyKVzr/9s1djtnoJ33S0elXWeLktucLcsilO4LR6AVvLf7JPmSRIy3CNkaQ6nUeYsg+r7DWEepUXCbywLiANVnKlZBWSkJaLlyTU6Jebry+fNncgw4a4jBi5I7ipiqs4ZD33PsOgatIUTmx0cOxyOm/i74QK70n1VVtFcKNmfiPLNernhjcc6iY8LW523sOrxf8asXACyJGCX/GWKsueXW+CHy9PTI+fGMX1dKzizzJEY+FxE3VSNlgBwj6zJv75XruioC0pSSt5rYll+0Rm9grGrdrjVVNBQjwzjiegEY1/Xomi6g1m+qqogJMeP6gcPhwOkojMnnL5/xcWYNEet6lBawVMZinNTNqkrXarNCPafD/RvJYVpHMVby3E1ISSEuKzGKcrw1NFnWgA8R03V044gFrHMc7u9x4yhGOCcyYPpeaMfqJDc70HUdPbCuQgXnELGdk8gmZ0zX4YYR13eS1okZ1pVCQXcd3XiowYTBdB0pZrJSpAIhZUwpuAZ09blJBXQFwEQi50IpiWyaEx+5ehGYJSAWoc5F/10/kqcj5kLIBT/NaGOrLiGTiwiA8uYwVUfdWkKSv6faAyDlQoiJpOXfojTGaWwpksssoHTeaOSbwKgFQDcbtJVN0oJe+V4r9yuaW/1vyltOXpX6/Z3dL+VW8tmaqpRcboCrCqhMeQYV5cXPPw6+udyEW6hWPipAq42wqNYa7N8HsM1V/r0X67yMRtvvlFIcDodtu1Y20l6IUspG2dpOuP2t01H1gPcg0IxO3/ebUd5Hq3sgN5UqaznGl/to4GSMYZ7nZ2VCTQwkeZN5y1WVUnh4eKBzHcb0z5TEDWgPhwP90G+irCbQaoroRgeLejZspVJS5iOeq0WhLYzV0GmteXh44MvjU6WGNR++/loUyUqTUfiYuF4vPD2d+fTp00Ybt+u5v7/fKOc2f+2alZLyn1JzoQ1Yc85bvXFzerz3MudKo1Fcns6cTrd9S5ciifCHznHx61Y6AKB1pOt7tHF0vSVGTwwiqGkOiPeex8czHz58YJpnqR00+pljtSwLP3z/PV3n6rWsfHj3js455nliOp8Zh4HOWVTJHJ3FtrrB1eMUHKyjQ/P9b37N0B9YteJsFG/ffiCEhek6EZeFu6FneXriMQSOpwPFB079IGUGRrFcF3pnOIxH5lXKnbpBaNKPH6kNVBYxaiUJTeg9Xz5/4fLwyPFw4M3dPdIuImgAACAASURBVD/7ShpWLKvnfD4DcDqdUH0nBjpFDscR4wy5JB4vT1I3bSVdgSrcv7njMI70zpFj4nR3x+l4JJfCH/3JzxkOBwqa07uZy1/+XyzLwsn1fPUPviNncej+5le/4sOHD3zzzTe8ffOGh4cH+tNbplA4P14xRldqWBOnwJf/55fc399zOh45HI8k3VVHVJGeZskJp0TOBudGPtfSsKZZmOaJaZbysZ///OfoseP+vuOrr77F9QM+BkKMuL7ncr2ScsIhZUHvvvkaYw0+RsZx5Hq9bnX1xhi+fPmCP58p2mPGkRwCJXiWnDnWxhM+RGzXCVCljA+JLw+Pkq+1ln4YcNXBUNoAmpRgWQOrFxvxB9/9IcPxyLG+s5frhetVWCidQRuHQVOWhcPdPSFmHh6fMLYjFqHO1bzSj4M4fihs35HXxOqDgBpSoaCtg1z4mx8+Pgskfvj4adO9tMY9LVgYvzyIHSuQ6nekrDGSIput2GxVTBvelpTlU24Mot5q+M1mD5yBZCzrsnA8HKAk5ulC54SNaLZ8WZZqu9VmExuebCxpEhCXagVqpHsbrZbYWisMzRbFSobZUEQwlYKknYwm+HVTn1P+bups/z+PPRC2n/f/7ptWAM8i3R/bx55i3m/XwGwfUe4jzOcR1q2bVAMU+G2Kel/7+5IKbTRyzvkZKDeP2daSg00gUQGqNZfQWm3fH8dhA9p9iVC7hvaAldIenluOtgmMGghuEU5tTtHObVkWHh4euFwu27k0sY8xZqu9vamhbwzAvta53YNGqzfxVhPJNIFYm7dUu3E1cBaB1I0Wb+d5nWekU5AIroZhYBiHbZ8AOheUMrhKCx6PiX7sWIMnrHFruBGj3+5VjFFenCyRnNUaqw0FxfEwUAp4v1Ki52DFkze5YEthsA6nNaZkUVCXpdYYGuI0AQWLYjAWnSGtnmIdvXG8u7uj5WcTqpb+JGKtly1FxEAlJbRWHI8HGj02zzMpBKKXBhfH45H3b97y5u6eoe8JPtB3HeN4IFM4HI/iaJRC0ULKmWVm9iuRwvF0pO8HovccT6cN9FSBFCJv7u958+YN3TCA7aritPB4kfRCygXbDZwnaayyzAvadkyL5/F8JRX48vAoHXuuF9aQ6LThNBwFhLqeh6cHotJkY3GHI+9Ox40tUkpVlmXC+8DbDx+YU+L8+TOffvjID58+ijq1vmNvvvqat2/f0vW9MD1ao1rIbQ1JwZojawXgYZlBK6Zl5q0Cn2MFm8x6Wfn0+RPn8xMlZU45bu1YeyfiQaX19v48XSe6zvHh7sTX337LdZLa4fF4kooJ59Cuw/Y9h+OBoe/pXIePgT/4B3/I6XRH17kN8HKWd97WVp4oRWcsT5ez0OWL1C9779E1veOGDu8D0XvC6ikhc6xd7FKMpBjxy8K8iCp9Xep7p9ia2BSEmVrmWWxW32O1omv1vtWe2FHKa0zNv0r02Gx0qTn8XSOgolBVjWxLkQC0KKwRxS+5YAu3vgLV7g39uImT2jleL2dyijhncJ3d2prKR9eyWsn7v8zL7seWhpQpYOyltWqIEapYzWqFs5au7+itNClJfx/Adp9jfNkxaj9+jD5+mavdl7G03+3p5Pa3/f/3QLunm/cA0oRFezr0JXi/LB/aX1Nrv7hvjdhym7YW3rf9bN5VBU3vPdaaSokU7u5ONLFYExft52N/vUpLUbZtdWBKSQlATPgQai7T0vU9b968JSYBues0cb5cJKpUimEcNyBtRgxutHf7/9552Y+XzUdaBN7yvTcn6qYsbnNorMFZt5U/lFLqy4w88LXxiTWiGhW6pxpb3Z4LhetE0aiUyP8bxdycJ0kpREpxNR/c2nwmUoxYK8xGTpkQC7FYTJEaxlRb0aUQiCjC6tHVSGSl8OsqxqEgBgr5TgoBVWCo9HYupdZROlo3Vmet9KQuWUrAjMa5oc6jOC/LdSKGgMqFu8OBcRAHRNf8a+eE5o9F2p8qLfWXGAFbm5J0lqr1r7kUYo18Wu5townq/T8dT5zXgI+RkDPn65VpXVE1V3hdVqZJGJ5+HKWWNkaYFy7TwuPlyrp6IgqLxvYj/Xig63u64NHOUbQmFVDWYbpeejuXQmLGp8wcAp8eH3m8TjxerzxcLjxOM8fjUXpdDz1uHBnv7oQlWQKpZEKRSEV3Dowi+sIaA6v3rEmaYqwxklRB1UirFKl/nf3CvK5oFCEJq2Dq+9+ES8DGbjV26ng6bc//zSm9GX55XmuHOWuwFcRykucvrCthXYnB1xS5FfmR1rXvt1DhIUo+HaWEYu8cPgTpA+0Dukj9ra4Ml60KdVIi5oxfbpqQYgxFixo350yO0sZTZakFNwqph9YKU5XAGnFgjC5oXTW9RWRFSpnt3aqP0s7As6mEldJoZbC24ErGWYOzFmsdKGEitbmBacoZvy6EUlt5bpU7t6BLaRFutWOVUtnSZ4cv+xORUqwaEeeUZB8pSmtI5F12tZ5ZvbB5L8fvBdhqLaUme/B6mevbBBs/QjP/9v52D8dO/NT22wC9AWQDjJd53X1u96UTsD/+HmTbtsAGpH3fM03Ts/NpANXOSVqcPRcw7btI+eBprbdNzQ206E868LzMjbLlKUUY5LCuAyX1diFGfIhQm+YP44H3X33Fx48fWdYzj09nltU/UydDpe0rSL2sid5H2O1zEzndVMn7iLqxBs0J8asXz9a5TRHdIhqqktB7ESlZa6XpQs2RlVKYrlcBV6OrZ99jtEOrCtjGApqUnyvgoXUDi+Q+b/tXqhBjYFlmMXClbA0zfEpoJy+dN17Kh7QmB7kvhhs15ZcVVyOUvutw1rLOM8F7ckoMzpFTqo7NwKGWERWlsL3jOk/1ORaw7YeeECPrurAsi9Qqh0hXlevbnNH0DiK8yTECAqa5FDRaIj0rkYS2Du8D3gvwjIcD87pijGVeVuKy0rmOeTigrCOkhTkE5hD4cjlzWRecEwXsOs9MsxjuN199xTxN+JxJ3nNZPA+XqToXlqgMdhjojxLBnqrRzEoze0+3rCSlsDWP+uXpSbQG1yuX6xVfhX7nZQFrePP+PcfTUWh51wlYu46D61hDICJRfTf26IslL9LScQmeWAVzaIk8nb5VLJSnUucuS95Tq63JQWNemtPfdAStFHAYBpZpErFXLpVKFbYix0jygWgcyUTQStpkeo8ympIzT+cz0zQxTRPD8QCthaqCUjvFhZzwq2e6XiSKM0b6EvsgDltK9K6nxCOmDHTGoKxlNqJiLimhqgDVVsA3zZ4iwjJrDJ3WOKXoapSnrWLoDePgKMmQUxRmyKjajCIhhbNacq6bLb05cWKvaklVURil0UaBAmeMVBU4K9F8121ga60l5cTlSRNaAFZzrDehK1CdeEqp7RahwesmPqupE5qDUATE12UhpogrHWH11UmW97avtegp/i3hMr8nYKvUjdJ9Car7CKkJYNrvX+Z0n40iYpL2vbbdvjb1xyLofRS7L8nZ17s2YG7nuUVgO8BpIqEm7hnH8Znaeb/PrhNl4D6yborrW2crt+ViG3XcnBBbb7ZStxVjbgKz2yo9+yi+gV0DQWstnz9/5pe//CUPDw/M88yHDx+4v7/HGMO6rpviV3oV37zfPdj+LvHa3vFo97blnxuAxhApKdMPA3enE3eVrpRuTpFlXblcL0zTtNX/NuoMhLa+VrDth55DzXctk6dzPeN4xKnuGbXfhtaacehQRcCzt5bjOKBKZp6uPD48bBGoNYbOaK5PTxzvTtwdTxyPJ2L0WOPQxjAej7sclOXNm7eUcmsL+rOf/YxPn75s9wRt0a7UQgnFcRjR1kpJijV8rAsCnK9XYk70QebrermIQXdS6tJbh9Gi0I6rx/Y9x+MdRSlmvzIvC9O6kJAGB91hZBhHMgXTOXoGLtcrwUttpTKilp39yrTMxGXd6pJNP7CiWILnfL2y+HX7/PW//Q1SyqOro6ZR2hKiUOzTsjIt0hJ07MQJtF0v6ui6uIT3C+s88XS+8vnLFxEJJdERPD6epT7Yr4SY+Pbbbzje3fH23Xvu39zxH/2j/5jxMHK9Xuj7QRTGznDoR2ylWEOKDIeaC52lWQNK4QZxMLu+5+7ubmNxUkr4ZcF7LxFjAwBttkiNLJFm7zqOxyOnw5F3b99ydziyTjPTZSJ4LwsaKEX0Em0ulyvrddroUqU1n+z39f2SdMjqF2KQ3sP38R51qAuapIBJBVMKVougqa+rd1nthPasyuJiEk5rOjI6BfB1ta11Bi/vUa/keWoVEFt5ZM742izCGoUrieIXUjKUnLCq4HQVRBUBzc4ZOquxRhETqJKhSH9to5R8KsCWojY1chN0quqU5JSIPgoDqBTRBIoSW2qsYV4m5mViXWeMheCNiAzDgo8rfRLHWeB8AwkB1qIqwLYS0VsbR0XGGsXQWwqW0/0dd2PPsXcc+473b9/w7s0dtrJ2f9v4vQBb6ePqnwHYPsKDG7i2vsLNYO6bVvyu8WPRagOGBpwtCtir5OTcflzV/JLKfnms/ff217MH0n0eWui+stHLLxtv7M99qf2Bn+eTpXfy3kEQD09yJnsl9P7/7ed1XfnlL3+5iWiOxyOn0wmQkqbz+bytAGSdIwb/Ww7LPp/e5qnNUSv12Xv9cFukoQlQ3ElyuM5KQ/Sw+k3tHUMgpyRR4bKwVMBv+eNcCpdr7UJkNSWnLZekMByPN9HZ4AdWv9D3vXjhlZq6MQm35hqtT3DXOXrnJF+GCPts3zOcjvSHA6xSq6eMYRwHcq4qSa0Z7+44nx+lk1LOYC3FaEKMPFwuRDRdJ53Ani4XfPC4UlBaYZ0883PNA/oYMNYgob50KzJKIganpVm7ViK60cpwPByYvaipfZBOTk0h6lBStoIWNa1ShMcz8xo4jCOuG2oD+apILbD6wPk6YWJkePMGW+TZG4YepeB6vfKrX/+Su9M9d/f39KXj6elhY0Ni7W8cY8C5tqjI7Z1JKTFdL4To63NaWNbKxvjA5XLmOs0ylwq+/vprfvazb+kHUREPQ8/xdGAYBnKOdP3AYTwwdN1G0+aSMckw9PI8NwfQKEVvLWPXERs9LHdVHDLXc384bivI+NXLghW1BI264pAzluN4wCjFcTzSdx3Bh1q6UtvdK8lNWm1QBWIIEu1WB7q30gtbUitZFjWwhlQblegsPc9tSpiUMYDNskCBshbVyoiMItVyHEWhM4aDtTgKJQSUgo7CYDTWWFJN20japdpLxBeJtSOW1iJkckpoYp8T6+XMVRXI0u3NGkNJAUWPUZKu0FXVXlpnNiWd7bRSv2VzRQEsndxEX7EKFa01MZi6Co9CB1nIIqdUz01aWja2ASR+VVWdJfZaADarLOzORh3XUqEijq9GWp4aDUpr7o5HXKXRk/eQYq0BbpHx7x6/J2D727TqPsJ9KXh6KaBqnlfbl/zhFh3vt9sD6b5mt+UTfwxk99/fEvv1HPfb789vL0TaC4WaMd83mLDWompd4Eva/Mei7xDilvxv1yTXWnbOR+uKVScDnoFri9IbuDd6t0XKzaPdN7PY57LbvdkzEC/nbD/aHDTnZH+s1sXKaCnE73up/SxZ1htVtWF6WwhAK42PKz74KghTW9QvZUHVO21zWWtzm8PS970sg5YDIXhi8JRaxN86SQUv5SOxgoNWassbKWobTERsU7Q0ml+jtJG0wLGurFNKFqPad/jH6lRmMU6Rgk+JOM9gLPf2Dqs18yJ9tZtVVs5uEfw0TfgKMsYYOtcx2AE06CIlRqayLPK8ys+EQIyJlCVypi7LJivFGBS1TjJLxOtjpC9CGyYK5La6iTSPz7ngKByMxiL5877vhF0JK9N03dIbxmqWZd6ej6b0lohN2u9pLQIwsQO15jdJ84iUam66NkDx6wwlS47QWe7uTtzfn3B9V+t55Xy0Bm1kNR7n6vq0pQKn0mhdHeEqTJTpVrKkXl3UQJfbGjCg6ayV6BhRzj/52jq0thRsXa6MUvSuQyvJuWtV1fbqRmVSiuxfSa1m4lbaYpRm6BxaK6RvsqEYRc6GnAq9MVgFuhR0LjjAKllGrhiwrqug49Aakq7HU9BZQ28NRiliiWhtGKyBrsN1ktKxlU1ra/tugbuVRT5A7pspAogqRVJYSd4JkOaMdpaSI5RcQVZo5PZustnMxk7+dtCybVeqcqCW3Ii4qq7kU/enayvLruskX+/crnys3cS6Pq8qsgKQ1BzV0qDbMVDiFChZT1EocaXojIEUiX7FLzPJr7Kkpf3bG1rA7wnYwnOw2iuN299eRkp7o76Xd9/GDRT2ILHfR6OEWyOCfSvHPdjBTeBzo2fTMzp5fy6Ngm4q3uZINHBqUdzxeNyWp5PeyOsW8e2HnFckRrXRxW1/+/lpYCvnXZ2VXUTcaOy9IljEV7cyomPNmTnnmKZpy6/uG1c8K/Ku42XDjsZItHnfi8raykRNIb3PLb7M/3rvSZRNzd3Krpo4zHu/OQbWuVpCUh2AkmvDjOHZKknH4xHnLK6zQM3JrNJi0a8rcy0doiRKkB44ztUIBIghcrlcyMCaEpdl4ek6c74+QVGMw8Dp3Rvuq7rbdZaiDZdl4XK5ENaAj6usQJOzeOzKcDgdscqyLB6QnsIhRmKRPtTzsrD4FbTaHAicAE6JBWre3xoRkrR7mpMsCp+yFOXbzqGsAaPoBqFtyUkCZairmQTW4FljwHhTFyaQPC65sOqVu87S+gJbpxlwaCOLLizLgnOG0+nI6XTc+k4rQGlxhrrO0XUWY+S+h7CyrooY5XeFVuPtmefrJjC01nA8HjDO4jrH0FtcZ7BGtA8xB6JfiBpSClAiqiRUSZvzlWpdfwqB0iLSKqcpKaGy9IXewFYJEPfGooaRaB0axTrJKlkxS749x0TRhlLp5H1OtrcWZ6wszxcSqURSiHIsY9Cu2+rEh77jzelIq0JQtU6bkslR+jFbbTZKf+zcJhYERU5Wok8jnZtSlOYcRit5ll11sGKh7yzmMHBwoq5dV3GsdVXlt6UfFTVvmxrNmyBE0XbGgNNgVSHViFG1lXVq7rPkTGKXR6U5MZXBr/StVhpj2vMri1h01jFUwZuxjqHWLBdE16CrSCznxPF45O50YhwHxrqwiDJqY4xba+Ythmmgq9QG/A1woeDXRc7ZOVSO0vZUFYxWzJf3qJQr0/T3ILIFnhnnZpD3gqK9Ed9Tkv+u5s97mncfje5BsnnbL6PJfWQMz/PHWkvv0Tb2INE+zdg1Q97AugH84XDg/v5+i9j257kvSxKq9bbPu7vTdt3X65XL5UJrFr8XeeWcOdYa2H1JTwPaJtpq19P22aLI9vd27o3ObRFp27YBX7uPLU+5H61FZUppo6Rbnrs1/pASlriBYnOODIo1JsK6siyS1+qHHussDw8PO8er6glLIqWAXxemuPDhqwPGOQpqW53neDzw7sNbxrFnnYWeBZjmmWW6EoPn3dt71rhglPTbvU4Tp8O4qcK78UAymilKW8hcVwRJxsgqK9bSHY+Mh4HLeSIAvhTWnDF9z/14JKfEtEzkkMH14KRTlqr3fQ2BUGSx85ikofx4OEgdp7OMxyNv3rwTcY0PhNVjTCvHMqRUF66PUYyJttiul3VdtfxckGbxsUjZ0fH+Dcq2MrdEdEUcDSNNDsiyms0333yDdZoUE0Nv8ctMjgENvLm/4+uv3vPmXoRBpa3EU6Qb1JN+ZBgPsiycqctT1oUFjNM4Kw50LJF1uTJdnyStYi3HozRdUVV1ukwXLucHuq6vtLtDVpNNGJUpKbAssjpNSZnoI8uy1hWETuTgsQpGZyFFSggU79GAK7IWb6NSlywlKlZLyd7FOfwysc5TFTU9EStTo1VhXhfOOfG9kRK16+WJdVnx03WruV/mGY1i6Dqcs3TWYdGEeaEUEUcaZbGu5oaLopC35ekIgZPrcZ0TBzIrkqpaGG3kfVAapYU9WpcraRXbF7xH5yjCuZzBKPArRUmTCwWk0BS8pdYNR3LK4mDkTFEKjObtm3uOd6ctEGmrTmlKVfBKQw/dhErcGkbkLAyjVtJMo+/7KhLMuGA5Hkfu7k4M4wHXdwzjcVuMvlStivdS8SHv95Fh6BmGrtrl2pil2ectQK/lRqqgmnpaSUTbANUZTa6qa404cDF4sveYkoVGjoqU/560a2x07q1G9PkH2KjZPc3aZPT7XGnd629FXy/p6H1OuHV/2oua9urafbMGuAl+9lRq2+/LfKj3ftvfPsprozUnf6nw/THltdaa4/GE1re5aB1TBLykOUD7nqzx6jZhWbuml87Fy5KlFsm3aKLljw9jXckmV5BdPd7f1MV7cdmeWm5F5k1B3ejj5gjM80ys15LqC5hyItdoPaW0LR5vjKHv+pqzUzdFsYIQ0m3eqPR1yeQc8X4FlRmGnq4bGIaeGAKHg7Q8bIurtx6893f3PPhqhIpimRdOBylNAcXD5cK6Ss/WohR3d/dQhE2YF8+6fs/T5cJ4GEkxc6ltLoMPDHagd45iLSZGrtcnLvOVmBw+BYxShBiIORHIrN7XdUZvKQKjDIfxwLu370he6iOn8wVnhLbcl5VopdBWozM1VBMKLpVUO/GU7d6Poyihnx4eZVF3a1HWkpOon1UudFr6P+dqINu9FUc4cTodt1Iq7xdSimht6/lkUg5oPaK05Mn6ztJZTecMQ+94/PKREOXZil5WKeqspesdd2OPUoXgF0IMdH1PmK7E2hlLac2p7xgPIyEGTqcTwTiMsjjlCKtnncUBcVajUqRTMDhLDhqbE6rWtOMcpoA1Qn+meSLXfL7SyLYxUrwnA8vlQun7KqIzzEnqdx8+FWbnWGt3K4+SvsghkGPEqabcBXIkJI8qkt7wfsUaR4m2ViJUp65GuzkGWfw8A7Euc9fK8SrY5lTrS63GZIkgU87iWKT/l7r36o4kSe/3nrCZWQamzc5wSe6KMtQdv//nkI7uRNEvZ6Yb3QDKpAmnizciKwHO7v/oSsM8B6dngKqsrDTxup9p1X1GF6ETtXZta982zmlR0p7PiElAQVfBf5El7Yx4+iYl9DqjqjuPapx/vwI220Pa7PQwdS3SGudtFeuJxCS4DlMrdWcs1oqFYvO01bCCq3SpIymtb7PgyuelztdL/UJFg8rUyl1K3tbFWP/fGBkRFGEDxClgFMzesYwCGhSGxw1w+WvbbybYxhowVPWpbB6Y7aQoYWvJApRkuA4KU2QsrZQMsMtmNrgNatvAuQUXNS3V96jnFvTeA4rWQPguMG1nret8EsQYugVLJTQBVYPHspEtLOv8odyUtOqsos3vtJLjdtaur00xiWi4NtKKUa5WwTL/9M7VhZd1hilSdqKYap20n0yV5WtEbe9vM1sxQhc7vb4Tk+pcZJ5qjTjkxBhXJ4x2Trat9m0AXilVm4SFeq5iTkJ1oCoExYhRVbd2/V6Vi1j/FWBZXOlepQioJMVbUpFiYF5GnLO1lVb9b+eBvuuwVrNME2GRFq63nt4PWGOJRdSockGE6utnL9+/i7B+9Ri9O97VGWNimWemeeJ0ueA7aQ+eanAuFLoCGIFmGGcJOXIer4RomZO0HBNF3GTmmWlZSDmv3987x3634+PjBx7v7wnzwmiupGkRykStShpoRNX5paqBFtWyfGqLTzJ8ow1D31NS5lSexVIwRjKFME/EecIoDWScMyyrYEFL/uQY+35Yn60Qwjony0UCrbSRhU9srWU3yDjBW40zinE8r3PzHBY6K4nesBs4DIMEqbAQU8JSSNO4ylkCvD71LNeBVCqIyDmc9hTTkZZAquORZdSUGDBFAELFGEyKME8iY6gVxXcUrcklUa5ncojSmiWj44KJEZ2SMCCuV0zOIs/Y96jKkZ2TVJc5Cl8zxESONaBTMEpjtaozQqmSYlGUlEjLDDqgsvCOlTKVyywjJfGPVZSYSUXmpSWKpSA16FFK5U8Lp7aUIhSfIpX/OnMuEV3vDaPKGmTaPBskcSsGStESrLQkdjlnXBLwnUGRtMa0tXkNtpYQbiyRpocsQbeawdc5v3O2VpialXvf5t7UxKTmk0qcCQR8mMs6gtXU125AUEqJEUeNHBJcW1JQZ/EtSCtE87gUWXtDDGIAYrX4WF8vKNS6rv6l7TcTbFNOMsw2WsjXNXBt52/bVitUJDJCrG7Is6hurc3WqtzScuAG5tm2R1v11MBA7x1M2vvWgBkCXd8LPaO52qQkPy3zrZ/X18WhFOG9PX74wBIC375/53y58PnjR7quYxonSkrc399jjOF8PvP09JWcIlbLAptC5PR6JoTAOI7MU5U6tECW7LYkcLajexgYhkEENc7y+ZfTK6cXqViOxyOPj49rZeis4bDfredEyPgfSSnx/PzM09MTISwCRFAaV+coedjRLADbtt/va5CeVsTx95eXVVatCSeElLhWjeWC2IUdjkdK022+nNGPH/CdR1tT20YaYx3eGD58+MTLy8vKDfXeo4sizpE4X4g5E8LENGlinPnjH//I4dCzG7zQEpws9Br4f/7xH9EoPnz4wOH+jvE6iaRhXQwePn4C40hUcfgkgdAqhdU9Hx4fmKaJy+Ui1YjWjNczz99n+r7n29evaGM43B2xThOTUBe63uM7x3UauY5Zqjg/yHwqJb5+e+IyjqRcGIYdh8OBu8ORH3/8kb//X/5XOVcvJ15i4ZQF6dmQlJdp5HB3QPBzBWsVKHnWfNfRDUOttpcV+b3zHWaA72gGa3GlkKaJ569fyEtg2O/Y9ZZlHEnaEObI9TQRIzjXs99b7h8+MuwEzY4S5ybrNKfTiXEe6XvPp08f2fUD1hju7+4I0ywgqXkkLRPXxjNF8fvf/56PD48cdnu0UoIl2B9qp2QkLhLQfW3vLq/PzKdnmWmOFw77I8V1hChVuNMGa2B8+bb61PpSGHqLuZ6l+iqZ6fRMqLP6UhKEgEqJmBMvz0FtkwAAIABJREFU36VN0Ge5jhhLqqMXqzVxvApSuBR8LQwUhZgi59dX0jKvvqs5J0Lnsb3DdQ6rlPjEZlE4ziGR0kxWCqMtSasVCOecq7zdQkpyr5pWl5Vcq9IilW9C7t0iiFtntYAK6xoYYpBKtRRyFD3tTX62bpmydqAa0KtTFl7OUghoRDAkQ6PrgCLEJNrkSlXaY/Xx1rqCEUXRSlXgUitoGqaKIoE0x7iKamitGVPE1vBZQiBMM04blOvwusNrL8VGFg2COV3IbU6vNFpbrLKC5scSlMXqautnxWdaacV1mui9VNa9s0wvL3RWVKSO7v8n8/j/L5sxZuVNtsrwPQCq/butQn+tJdqqqS246tcQstu5aAvG7TPa79trtgAsU0nirZptldsK5klvjenbZ8FNFL99v+awc7y/Z7/bMY+i+dp13Rukc9tHSwrO5/P6nRpZvrVjgRqEp1XwogGLzufzah7Q9z3DMKyo4Nae3SYaW4uwBkyS2Vrh+ft3SWQamb+iN1G379uUimytXt7D+9sMetjt1uMyxqxOPCjRm/a9UHJUPf9NG7slTA0w1ZKlnBPG3BKs5+/fmaaJ3W5HmAVFqIFlnvj29QvP377x+vzCeLlijOHLly+8vLxwtxeQhTEWpRWX68S8iPKVd5ZliQy9dBqGfoBc1hZlykkk7azFxbQ6JqEUmbIivluXY1zmurCKaMmSE6a2+lIR5aJSCtY5/vCHP/C//29/z36/p6TM5fIqzk3jlXGZsdrQOY/rHMN+h3YyNzNKEXIkh1phlsQ0zYQUiTGjMpQU0dbjlWHXeVSWuVVnPHf7A7MZGTpP5yxpmSmur61hjS56NQU4Hg4cj8eV1mOs3LdaKXZ9x9B57o57et9hjeXx/o7n9J3n5xO//PIzv/znf64UmOPhwLHv2XvPzjuM0vjapUlGs6jbc0jtOsUUCCmyxMB5moiXkd51DH4g+070iLUix4UcxX9VVI4Upc6lVc5EpGUq1Y8ELVMaNkA4rSYlbJbAa4yi07IQAyw5S3We5fxaJXPgg/diHBCDtEpJ9NbjndjLZQppjuQsbf6iGj0GKGLvV1IiaylOIK/Pl1FiXGBUNXFQAoxStQqMtdW6ri0NqrRBK6kiHFdqp6iUsgbbRLlZ5OlcJRcVKmU0qbonAVoEXnINoLlo0LmOi2rHrkgtqZWIZFgjQhZKymFpz24c4db1PzccD286gDnnCrAS/rOiyTRKEVIihLxgjEMbwQiQFSmKoM08z8xzYJ4jy5JYlshlnNCaCk6tz2RMpEWqXKcVnTX4jcXpr22/iWCrKx2jBcptaxF4E3Tatp0Htv/fzku3QKEtGGobwLeUoW0wa4FnC9Jp+9/OeVu7uC30LdgCawAAVlecLfVn25puny9KNLrBfOT+1zITUVrVhURX5HJtS6tmYVVW2kOpSNalLtDtGK/XKzFGcV6p2qjX6/X2+ermybtFa5fylv+ba5s0p0TUNzpUm6E2INVKbXL2TWBs538LJMs5r/eBUjInafKSWxS4q8pS7fja+7ctfEmgynodp2mqD2jm5eW58jslCz2dTlwvcg52u9163Vr7fL/fr7KbYtcWqwVYoyLVOTus821pt/d0Q1/vJxl/uAp+anrQfd9DrdIoQndpAcbc36GVJqTE6Xzicr3Qdz39buB4f4fvxbQgZpEfzAqUEUT2kiIhRRzSytTOYAGnPdMUa5VW1u8gRH+Nt4KKb/KArYLsnMV4kf2L8YZeDyGgjFDmSk51NCEUDF8TMWNqAoZUaTkJX1orRVoWIlBUZLpeGa8XTi+vfPvylWWcBCykNbvK/1Wltkdr4qVrVdVbJzPC9ixrSVbkvFdlsgTKJ0S6XwKyoLrrvJLaepR+pvzkuoC3NYMiI45GFylJQNxZwDS5CLVFN3oK0KgjJVMXfjFG77yrVJ8siPdS918kiJZS5RBrK7iNrtp6llKqpuuC8pXghLSNa4KDkmNRCgmG9SU6S6tXt/iqbsGtLpSNbirLTG0xs66V68IsZ1OpGz2qjsMqsqDtov317Xb74w1Ls/ljLvW6tO9f12dt6ppY9Hocqo7RJN+qdoAInTIlOf/1BNWvUYFmGVIUP+UQxUVJqu9MyoWSYV6iIOa1oetlPTPWour9/V7Q589tv41gWxdUYF2U239vZ6Xtd9uqdVtJtt/BLXhut/ez2P/Skt4EVLi1kBsI5z1waXtsrRW7Df5bx5/Gp93OQbfz4BXslDMqp/Uhb0H2FoDXJ2Rtozcpx0KphP2yvn77cLbqtDn2NBeh9v1bsH0vdtHOXat8VbkJWLRz2HUdS1jW4AdS2RorMotNiGMLFNte73YcrYW9pQG1YLpV4xrHcT33qz7q5jy2TSlFWJZVvu3p6YmXl5f1vMQYuY4yj76rPrjjOK4mCMZU+kRN1lNMLDGyLPLeJQRClX0cx3E9zt1utwbbnIUaMFSlpqaV21cgkoCdNDHEVUBD16Qkpsi379+5XK90fc/+cKDf7ZjCQi4S5JeUKEZhvMP3HePlyhQXfO4Y9lWJSmm8LuiJdZ5LRozAK3/Ye0/Jc70/5ftfx6uIbRhV0b8KZURcIYSAsbHqxkZSXGprT+OqEEAD2aQoAiMxBJZpwhpLmGdIElR0Kby+vPD68szr8zMlJnzn6J0ITFiAGInMgn4VlQ107UzlhuWpnRWVxP4tFGld5ryQiqL4RNZRXqwVuYjIyDoTvMFiQFVP1CRBPVPQmBVcJpaEbYFXNAUiqGINEuWoA0mU0eKZBzISQtrHOQt3WYrWRK4zRatMvVZmxUOs922WNm7J9fyZqsNUEwbhDpfNcnFbOyQ5kDWkEXDafFKCXJ3V5rIaBcjDVJ/XCggs6vbeBkmskhWsK2tNAJRW6PK280V5G5xusVcCbU7CYW5JugTaKlahze0NShKLUtm8Sgm/vBSp4lPKrLpRRqFyNYLPAibLsRBjIsYsOI8WaGtQDlGuvEdhnHCRrZOxljYy+kQrQWf/he03EWy37dj3gv/X6/WNKMT79wFvguQWcdzeswVE/Vol+16s4v3f31e925nsWtXFmyF6mzU3xG1r8zapxm17tlFswrKw1FbvVpaxnZsmSdhcb1q11d7fgtzWF7YJdbTPM8bw8PDA4+Mjj4+Pa+Bq3+H79+9vqEDte92qxRqcC2u7t/FwlVJcrpeVypNSEis3RdXwnd+04Ft12ua6r6+vFXAlQVPUf/KaxLSg2irb6/X6xswBbsnRtlvQgl+jWfz8889rBZpzdWBClHyOx+OKlC71GkpL+5bVSwdjZpyuGKuZ54mXIoIPwHq9h0Fmri1J6/ue4/FITEnanDFWYXO9XofL5VRpVYbL5cLlcuHp6YmffvppFbJ/+PiBGCP/9M//hAL6rifMM946MBrbd5y/PZEVYDR3jw9oK/xAVcRA3morur5KocqEM5a+8/S7nhhi1d+91PvuCiUTlh05BKZlYdgNaGOJJZOqXGIJgRQWnNb0Xc9+t2NobjWlMKfIvh+4nE6kGOmNZeh6oXWNEz/96d8ZrxPz5UpnDHfHA4f9jv0wcPA9OkbidQITwBqcdnXhBpUTpgY8XelX1iu8tnhtBXSnRPCgcxZjda3O5JoaLSHWaIVVIqTf2qjFKlIQqosExbRSvwoV4FM0rbZrwE6yzC0lac4oJOlyWuO1obcOrOAGQvSEGAhZTC5ikfvSIqIaqn43q2/BVhvhslI7l1u8BHlVGG5xXlq7FRBE2cReU8FDtUrMyN9yax1zq4zXyhkZw+Z2CkshFzFRSDUPyvW9qJakVX2A1h3UDUOTyUWKjLaWtwIkxIgSeSkBR9agltHV8P4m3LMkBEuhnNgFaiMj6pQINQhqU2MAjsv1JO39lFF50xFVCq0dxopYiHKOYbeXStpawBCLIlTbxFgy1OP6H5j+/DaCbdO0bQGjVZ5t1igqQW/F/t+3iLdBEm5V7/sWxPtg+2stari1qVvV3D4/Jhnwt2C6nfE2kFWr0toctZSyVktTnaW279SCKQ0csKkYtzZ7rUJqpgAtmDZRiG2Q3CKrv337xuUiC+d+v+eHH37gcDisFePDwwPAWpm189ZuvhUpvfmpSTG5RFKOFXTQKDbCwwOxhjPZCII8Lvi+wzoxDXDeVsRuYp475mViuo6iDrUsYvJej6nNnpswxTRN68/22rQ56FbDWtrZkum2ORtUkn2KhLm1yDPX60UCS63uO2vwTipS50SgX4zDPf3QsUwj0zQyTldypbMMvXD8ut5x4EgzDiglYa2AouZx5ukpM447vJfvtRuaJ7DMgf7ln/+Z0+uJ63jl7u6Ov/u7v+Ov//qv+fHz7+h2w5oIxRhl0dMK7SzDYU+/3zPsdhwe7vn0Vz+gtSQF4zSijVDHTHU/2vU7fKVCdX2PQXO9iFWZdGEilzp+iHEhzDPd0DGFgOvFhi+GSImBkiLeGvZ9x8PhwHG3w3lpnY/e8ctPP0OM9M7y4f6OXefJMTGnyOv3byzTwjKLBN7d/ZFd19E7J0pJgNOi4NN3HZ0VtSpKYR6nGkZkgdQaoYgoeX0p0v5V2ojhQv1dq1pb9WSVuLeYhlLVBbQogUn7u0oq5nYfiWKXAiJFeJhKKDG6agS3zskyzaRxxqKwKFybDSu5HzOF83gBDa7z/P6v/orc5o0tEJlIU7wqpVbjuiah1aITClnVjlNpVfXara1t7dZQlT+3gA4KXatmmVmX9qraO27/TW01FxK1KldahB1a06H9PTfMjMy329ragGGlBmtBbplapCpJAqzwxJdYnaWioLgxcs9LxSnXLhUoRZFRpFIpSUaMC4wxcoYLQl9bJqErRmlLWGXXOa+1Huu8ePzmjDaew+GBOU7EHDmPEz5qkXgthSkEGWsYxyo88me230SwLbydubbKo/0LrJXNr4Gl3gdceAuM2gbMP9dX37ZE29Yq1O3+lWr9Kt4s9HBDQbf3tu+wRTqvqGR9E+O/Xq8MVcFqCxDbtqXbZzUQUQsuWy3kXwOFXa/XtYU7DAPH43Fty7Yg1j5ryy9ux7Y9h+24tVZYpYhRr4pW2sh/y7UUxavL5SyWaNza903hyTkrHMoYCTFI1cDb8wqtklzeXNuc84pybgnae4OJ9l5JfhJa30TGWzYsnyFmDe3amXoPNpWsrorR73Y7LhcxOe86kYj89vUr0zwKEjunNSkytTLtqnrNfr9jWuZ1JjzPszjzWFdlN4VypRG/2Ndx5PJ6IoVA5zyfPn/mD3/4Az/88AOfPn5CO8uszQ11Py8rR7iUQl/NBfrdwG6/v1VhRfRqD4c78QVF9I6t86K+VcX1Fcg8sD6d8zITwiK0hxS5jCOX8YrvuwouqXPeJQj9oraFS75xllXOLOMIOdNZEW5YquvReL1wPZ1XKzONGD44I96hupQqpl/1eI3B6Ir2QZSaWg9ZIcGjwOoao+RiS1XUBpVF0MYqC1pXK1V1i0tbEOR+V6q2wvXGTLzU98h8uLWAnRWhEOfEZ1WUu8QD9uX5hZev30RtKBdMLqQQ5bCMYDHO4wnjLPvjgU8fPoC2qIyoha3Pnl4FIbSucptVKKIe9jqTlyO9zWIV1BZ8uv2ulNtslrLGZ1UapbKCst4BqIqqp2Gdk7JybaufwLqPdlZLey//dYLbZsZvW8biznUbsarbD7eWtLzHCSArQUiZVJMhpZvudl0LwlwVoWL70hit0NVnVz7bIBw5TSnyeTGLK5R3tTvnPcZ7lLHSwlass/0/t/0mgi3cAmVbSLfSia0d29qiW3TwNuBuf7a/+7XPadv29e+3tm+1ubl1uQGR3hsEtMWvJQKtgm3Aqba/7ewlhMDpdBKCeLnJQKZ884ltFV3f9xyOx5WzuhXgaAF9e05yziIWESN937Pf7xmG4U37t1XPzX2otaO21e32vJq64PnNjLv9vuvE9q3tP8a4oonfX4et7eD6Pa3DV8m6LQp8W9lvNZ3f8J4312Pb1cgVDboNwCCLK+amWrbeR/omOhJjpOs67u/veXx85OvXr4Cghff7HePlwuvpZb1G2zHD5XLh/v6eYRjo+g5eX2vlKgChfhAeKrXNbpRUOtPlytPXLxLkq3H73/7xD/zdH/7Ih48fubs7EnPmXNt5zjmmqwStuCxQYDcM9EMvvrCdCHc4Y8F59v2O3f4gYu45sR8GUZNSSmavUVqmcr3kmRArwsC8zDKP9Re61xec7+mMJedCDpEwzcS4VJPymfFypSRByc5VmUtlkd5TwPO3J+ZpYrxcuZ4vkjwqhbeG3rnVXEGVanloJNBq5Fhbe99ae+OJAqS8tjyNaiOiCjws5QYqaqhjkLlt1iiVWgyX6lFpKmFT7nV1m+cayTKFy1uK8EJd4w7r9Rm+Xke+fv3Kv/zjP1HmBWJGR5EJNaaakPeOy3xh2O/4+Okjf/zDH8D1go+IkRzT2omz+uY0RimrjngrBHLO6+yz1CCmapBSVO51adzZWoyUFmjreayPa0swSsttYA2gUkHX86MkGcmq6sIg3YhSzxm33KjW33X/bEZ2K0d/a2+aBZxkJIGR5MLWBEM+01qL6zIYQ1qEPriESOcEPawM5BwIy8w8X5mnSfZvVB0hgbVaOk/V0q8g1XnMmXEJXGe5t/vuyOHugeOuZ993+L4HI97Q/y1ELbRSa7v1/ULa2qatvdxml9tKdwvo2QbY94jitr2vVNsi/mugqvb69loxM/+vDkHv29PGmBXE09q+rRodhmENwsuy8Pr6ulaUcxUvALlRfd9jvV9ndvcPD+t3abze9lpqwJ8qfSfUinC/31c9YLcGuMbT3SK327G11nTjzrZjbYmOrx6ObR7aznnf9+jNtWt6vm6Sdrfomko1fnd39yYZiTEydAN3x7u1w9ESrUazamOFcRzXe6Idewuw26SjXaOwhHUxWrp5vZarMYETG7I2J2/f6Xq98vz8zPFw5MPDI533LM7jvePxXmbfr6cXtK7c3IrwlrbtzDTPdHVef9wf3iQcnz9/JsbI6XziP3/6ie9P3/j+9I3nb995/fbMP/zDP/A3f/u3fP78iW4Y0AXCODFqQ8qJ0/OLyNrd33PY7RiVYkyZnEeRAKwCHXeHo1QRKaMK2IMoKIUYuI4jr5ezXIMYmcaJp+/fGacRqjiHtba2ym9G6Ndp4uu373jf8/Fwh0ZRYmQ8nZgq6Onp51+4nF8Fze0c4zRWVyLxX52uZ16evwugyohq1K7r2Q0Dd4cjzhpSlPa+2EQmcg7EWEhxqcWZqA3tdrsVOVwaergCe4pG/lbSRhe3lWQZi1RlRivqOlsBNVX8gFvCmTXy7OtGDZKgpEoV+HcGaofldv9Jy3ccR37+6Rd0ylg0nTUs4yiJhNH0oSPmQOf9iokoGkoSTFXKSSpSIFDv3ZxwOZJVkSBU27IZaWtLRSgBt7LyBACmtVT19Ty8pyi2TkiiyjOWvLIdUrl1EkX8QarAVGC6XElKAHuRglVwlyKpVP1iVQ0n4m24abRoPFstWt1KyWw8hJkyVqYFAk4LOWNTpIQFEMSwUgbnYJoXqUKLkudWZ3IcKGVH7zNRQ04LOS1Yk/GdlmSpgEGsCbUSInLJUQB/KRJz4ny9cJ1GULA73vH7v/4bjvuBzmi8UWQlbeUl/deCbbv9JoItvJ01btu+731lW1t2+9O299XTdq66vZHatgVEtcDSFmHgzfFs96krCKct8r8W6Leo3Aba2VKFtoCf9hml9mPeA7eEnnFDOLcg085To8u0Y26c33Ec8XWOKTPHW2Dfgola1dxQtG2fbWsgLGmjSpulXYv2fZdlYV9b1K1CHsdRVJROAvwZ9ju6WtkfDgeh3VSg0zzPWC0B/vX1daVKtePbtpUbiG7r1LTtFGwTCOcc12VeAU9ri2pzT7TvArc5u9aa86uYk4/VuP3D4wd8DbYPD/c8PN7z5euA1orD4cCnT5/oOqnif/nlF16reMj5fObh4WEdI7TvNM8z35+f+fd/+zeevj5xfn1F5cJf/fADD4cje9/hlCEvgW/nL3xTX2Uuveurelbmcjrz8dNHrDJ449AFvli51mERS8JdP6CdWiUoc861MpSgEWNkmWaulwvzNFZFIqAUnL85p2hrRRWpYhfWEU9t38pcN4goTVyIi6EMpc4xDfM0rvQmo0XZaD/sOOx2nJ9fastZM+wGyImcQlUVk6mmVJCNEy5Id1eVtiqTo/7UI1ICrBHUbFnHGcZUhSBjRCBF3Z63oiDr+lYjCW2uLcKsREiCet5URa5ShDVgaoWTUoQQSbmgjcX5Dt/1AtzJorTW73bYukg3n2NlqIL2YvrgfC+z5jZcbWjXIudD1flkU0NqgSkCsQj9phQoWtXkQ9DWTgmuqq6ItX2cG6RqbfnmUpjmSVTMiqi7pZxkX0phlMEbWxPczOl8omhFKIWsoCuJcZ7xYcHHDmNEh3utmpV68yNjDZE9nKZJZDCVYg6R8+XC6XxiiQltHCUVQsxQbQSncbwBUJeJ0+sEaUTlkZ1PDJ0oYjld6AcHKkkmU1S1OwwoFlSJQAQEg1LI65onioaIKAiKmBJzynjtq8Sk5y9tv41g+ytV53bbVpbvkcPbn/cBuLU3t7/7NR5u27YL9699vszj7Iom/bXj3FaJbV8Nnbudxba/t8App+GtmUELnK2N3ILkNthu6S9bsFb7jq1K3dJrfu18tZ/2+S2gtde3mW47fmrmdzt3IleW69DIGkvfd/JwjldSktay8+Jq4r2rQuE957ME4xBDnWf6N9e6nat2jtus+teSra2BBVCpO5ZE1VFOEaddndnWeWNu1VPmsN+Lj6tzpCWsCPGXlxceHu7ffE6hrLMlXfmk7Xa21vL88sI4TYzXK0rBNAk3GQUvz8+czmeevn7lP//0Jy6XCzllDrsdP376zKeHD9ztD+y7oUolLmIzN8/kktkNO0FcprTOJrGO0HU4Ywi5iMoOUv2ZavFWchZno2livI6EeSGmGiCDmBmkkmvQSDT1A6U1rtLGSl3Ip2li7pcVhBRCqJ9XO05J7gkbZQ48Xi8rpWo/9FUmU4KLsw5vnciLaiXAmpKr9q0ojekkzFShwSgwmqLbDK9IUKklXGkXot4nKcniKdZ6dbYLtR1809BNlSQiAUdT9IYrWjJoXcVbMiWKKL20MuVaFK1XBO96DKp+mtbkSrdRyuD7XgTtUzWJUIZcbq5LPieUksAZUpTqWwvYL8eAamAoLUITIP+ep0k4vMagrBXQXUvura0VfCP6qIosLuv8tlDbvyjmHFlSAquxQ0dnnbSCVXUdiokYBMR5mUYwwg2PQKBIpy4180DWobJS6taiRqpZVLtnZK0gR1CaJURCXBiniYxC60QMSUBQShNTrmYvoq6lCIzjGcOENwspevDVlackwowI1VSKkLUGykxOEzkFclpQZLQqpM06X4B5mblcruiS6azMenMRulsr0v7c9psIttsKo1ElWsBo8zrv/X8JTG3bBsMmFqCUWikxW8nFJnCw1ey9zfZuJ3YbsNu+vffCf1Q3r9ptwHxfbba2a1PHGsdxddtpbdBGodm2mRuAqVVbwzBwd3cn3My+X5WiUkpi2bYBCrVz1z73w8ePK9inBaotSrt9/uVy4fPnz2u12pSktrPaBu4ZU4QkICFdHxhjtFBXNhWl7xxK7yjIw3A6vRCiyD1aKwbrj4/3jOMFrcWI+1zOHA6HN4F0m0S0BKJdm/c6zM2Kr73POYc5HohhYQkz5/OrXI+uo9eekIJUDDmTQsAazdALD5aUeHl54euXX8gp8unTJ0AC6bdvnq9PX5mDBL8lLHz5+gVrpNrquo55Glc3pNPpFRBq0G6345dffuann37il19+4V//9V8xxvDj59/x+9/9wN//T/8zj/cP7A97uqEHrTkeDoyTtOWbv6xBMVgvFVYV2OiMxRvLWArEJP6mKdfqLPP1yxOvp1eu1wuX5upUA4UqhRiDfEZKEsy4iYfs6jgi1ln/9+cXOjT7fsBqGZscj0eOxwP7/Z7r9cp4uZKCzL6fn59XU47PHz9wdzyyzDNPT0947/nw8Ij3rs7lF+bVr9gwh0WSDiu0sGINsYLbht1OeLxQW6RVI10pVHOrWmZyllavKpXWgYQAU+WQSi4VtVpIBTIJnBFwVcqUEsm5euUqTSiZeV7o9j2d77iME3Yn8pOd84QcSKmwhMh1ks9PpRBSYZwjd7u+riWaWCR5W2KURCgs5PGKqh2/y+XMcb9n5x2u6ziflprsKXCGgASrUDJ/evqCMuIItTsceZlGihL51buhI5ExqtKDSuWcVtP6tXIzBpRhmScuKXI83vPj3/4Nv/vhd5Qk/FurNN+/fOWXn3/mNE3MKaOB6zQzhQWzTPwwz6Qi+t8K5L3U9rGxFES3fFlmTOdIKRCCuHvpIkpfMYnCxrLMKGWwTjFNgWF/wFXf3pICzmph4RTDL89/QidFb/d4cy/YgjQxjye+f3vi7nhP1w1433P8NJDiiWV6IYRMDBeMdlgDy3QlRqFgllz4/vzMf/zHf/B4d+Dx7sDwcE9VxPwfbr+JYEu5AYO2Qawttm3R37Yt4a0K0bYdPNUB+PsKtQk6tPellKrfqV1nk23bzmG3W86SbV8ul7WlvbWfa4GmKWJtK7IW3FrL+df+bQjslWtWv7MxIiLw8vLCx48f1+qq+bk2HunXr19X0Yb9fr8ip9vWjqntc1sFNz5nOzdtfrl9fc4JRZVodJZm/RdjJM4ZNvPSlgD0fS/nQLHOQtv3bUjjw2GHVobO9Stqt33H7TVuQb8Jg8QY10SqJU/tvfWKSRKCzO3azDeEQHR+Pc72PmDlN59OJ56fn1flLaXUqr7VDR7Urcpu3PA2K9/6+2qtuVwua1LQZvVPT0+cTie893z+8JHf//gjP3z6zP3xDlJmPF1YrhO299K6TJm0BL49fxfecuVVi9WdXbWqjdKYSi2jWqBIAAAgAElEQVR5fXmR0YM2GGW4zmJAPy+zCFfICaDUZNMby9Tm30X4sbEKx7dEL44jyxIgJl5O4s/ra/dkf9hz9/DA/f3jm47O09MTCsPhcORw2LPbHbhcrpxPr5xeXhk62bcPth7LwrRMFRcgqlgNQLM/7PnoPb4bMN4RFGJN2DpCqYjAQCnoen+kej8IQeadl2pdg0qdDUYyU4xcloVs1A2VHxO9cgzO0WlbxXiEpx2rvrIoQTW1J6GrTHNkXgJKG6zrsbWFHYoi5EJIGW0Uznd0+x2H+3sePn7k+PhIRnG+XHm9nBnjTFkKxSiiEopT1oVU270oRcyZrOH+4yOPnz/z4fPv+BQiGEs/9Bz2O/75//o/5FkBfFsjW1egSIcga0gKcHLM3f2B4fGO/uGBXD14rdb4ywXbd2hvKVpmxaEklhyxxcjct1b5iltXaKoASurIxjlJIrq+Z+hFxtb23dpG7urfBOR5IByh6wa0UsQUoATIgRgmpvM3lumFx+OBjw+GDweYr79wPX/nen5mGU98vf6Mc56+33PsoDMX9kOsallXcnH1njeUlygjjZLJ0TJXh63ZWZahJ1aRF/OXmT+/jWDbKqmG2t22RbdV7xaJvK3gWlBu7cOtjub2Ndv2ZJunvn/PtnLezmDXyrBKCG4DQQtE7f1bKs0WwAW3OXJ73YoaniZpGUWRagsxVnnAILJ8KWKKOOykasqwLAsxRTyemBMxBM7Xi5hJ9x0PDw8c7+7eVLbt3G2/+3bO285X+w4tCLX3yPmTJlSDyrd9qc31XFv1m/OeagupoaRbFbqKVmjzJnC25KttWxpW239bCP/cdU0VDUvlIkYdxEAgB+ZcOxtaYVXlKpcGnuEt0jsEXl9eqlpUoJCq4YBU6qlKH4ZZ7mGp0KpJhFZ4J4F2vM7M88zLy8s6C94PPb/73Wc+ffrIw/29gLqmSTpuWtEr+bdRScISmKcZ1EyKUazHasI49D3TOFJyEVSnUhSlWZZACDJDn6apIt6TKPsooXcYq8VucLoyh4XCrWJWWovesnPoeaEUATaGEJiKCMNrbWim9VprjPOkMjNPE9+en0ErhmHH8XCHsY5x+s44zcSU6Ycd+/0B710FOUX80t/46EiFOC4L6VwwrqOLERs8MYgWttaitJTTrf2nteg1UxJWKzpt0Okm3kCr7Kg6/aUQC0wh8nK5UJyIchQpS6G6Y2k0DkE551TIRLHs63IF3Yh7TIpCPctFMeyO9M7TVRONzllCmElxwVhwnWW373n4cM/dwyMff/yRWAr6+YWnpy+AzI2bYEkxgggOJZGQGeYcAmMM3FuD7XvcfscyLyQ0UWuWIsmEQjojWTUHHfk3K/mMokTDe46RYCCUzJIzl2kiLgu6IPStJEClXAqqdZhKIeQkalgNflzb67k2vKtOBY3sW6qXcSkZVFm7X0VpAZer6oQUQx1XaWJVzovLTJgnrI6UPJPTFc2IxWLKRFqemc8/E67PpPkVU2ZKMaTFMqcL4/kO4oJVGW8VVgdSFIlHTcLojDEFsgifaFmgKhqeav1nseZtcfd++00E21yDbVs4f40z+b7KfA9Gek8HAv5LkAPegJa2QfvXZP62n9H20eTCtsfRFvst57dVva2C28pKthnSNriP43WdXbfWboiBJSwy96xVYgPvRGSxbJV2oxo1paauE0nG3TC8SShapbwiLDfBtgW+bbBt538b6KiL87ajoNbZ1NtrtJ1Dp3ITcmvJ1bYCLLylbjVQWTtf7ffvz31Lwt53OW5UK5nRWSOox5AEpBRqG/rte292Xt57hmGoVIjCpbrQxBjIJC7nC8syVZ3gRRDI40SKkRg9YoggSYkGsfmbRl5fX/n+7Rsg1eLxcODx4Z6745G+72riU1HdWqGdQxm9Xp+10qIwzwun00lASNYyVXWtkrNUm0qjtVhYXiehCK2GGRSRBLS1Q6Fra94YtJJaJKVU6Tsa73y1VDTrdV3n1ymv90AppXrvFpmnLYHT+YwxGu87uq6nFBjHmXmRudxuv+dwvBM0bhUdCVFm3EUJSj9fr2IlOC+Y6xWfE3ZxhCXhXFefTb3iiHQ9xqwNVsk1zfXeFQBQo75sgm2W6nZJkcs8oXDVQk5ubwEfQcyiW1xQNTnIpFAT9txAYxoR3AeFYX+85/5wZNf3eG1wVldkdcA6hXYK3zsOd3v8MLC/uxcTihgx3lFSJFexp5uaksx4C4olRcZlZlxmUXKqloFJa+ZUR2ezoIxNqQCqep2VqkFE3WQYMxUUZTSRwlIy12UmzrMg0AurUUYuorBUiuw/VhODJh2rKi+61POvtVqNHcqqIlWlK0uulpCCdDZG1owYArORVnLGiJhKzoRlpqQZ7QoqBzQBo2ZUNuTFMp4y8+UX0nLC5BGtIkVZUlak5cL1/AtxAZJG43EmEmJG5YIqEVVSneEKmroF2hIlAVNFKGbmv4OoRa6ttVZVNaTpe4HnFqhatbOdJ7Zt+/ptm7QtUK1S2fJUt/PRto/3QKmtM1BLCNrscPv7FsRa0FJKrc46W5rQ1skCYA7LG+rNtnUOIpL/8eNH7u/v1zlg20dDubZ2Z9/37PY79oc97fJvq9dtoN8ec5sjb1+/1U6WboGgWLXiTeDbVpfbBCmnZm5vcM6ui/F7NHcIIp1GZq2o27Vo+9qCzNp13B7/9trJsUurWVkj1Uitsrcz+zUBUrIvX+UkrbUcDgehQNXWcHNNmuaJOcycTq9kMt4LpWpZxPGnnbM2g3fWVkpJWuUplVIc9gfu7+744YcfblrVKRGWhWkRcwKtNUwjIcuY4Hy9EnNanZAAlnCbrxtjuJ7PdL7DVkP3VGAJkWmuetyl0WMk2djveqyzIuC/LBVEo1df0rzxEG7ULd9a1qlAEhGTomBeFl7PF748PaG0UKku1yvnaeLT4we0c8SSeX0983I6UXIRus/DA/cPj+z6QcBPJZJiEOlDrbiOM99fX1CnVy7Xkcs0cl0W4V9qS1cEKayTBiWSkd57uk74zN5ojMrkOIv0YJuyNd5nXUAbbWbJmWsIDLuerhckrSoamwEMOStizAhVV4JFjpG4BGKI5FRqUFAUDK7b8Wl3z4+ff8fd4YA3Gm/F2B2VcN4wL1fBEGiYKn2GFlhrEtFkF3VFVFPvK21k1n0Zr5yvF8ZlYQoL47JwmibGRe4PpwRsZkpGJqwakYjYVLewGgsoo9GmynsaQ1JCwTGIWpPSBqUMqqovhZLJShHJb4Nt5SZvsSm3jmRN2LSSjl6V19S2BttKqZnmiSUkrheZA4vMZCGnwK5TeGVwJrJzhWwCYXzi+es3fNB4daH3Gd8BJWC6gTkkTueZ12+KZdGk7IEjvY3EqJhVJueJMF9JMZOVIUcvPHJjWYxhmWfCvOBAjvcvbL+JYNtqx62WcAu0LUi9RxlvF1h4y7sF1oV1K/Swreq2yOOtrnELFttAv0UGN75ZO95tArB936/xhrd0m/e+uZlbe3cbsBrY6lAFDu7v7/n69eubdurlclmr2nb+lFJcrle8fkubauejzSnbPloC0Y6vvWfbJpcAJcuHADu2JO6yEsPbcYNUc9M84ZzHFEFyS+UtiGBjqvh5zusiuKXotLnv9n5ox9PO/fa6bvWpBQewYJVvnSwgk3MkJWknW63QdGgrpvJKF3KJxCiiBUZBrmLyq7g8N7qXqmIH78cE24Qx58zXL1+qb2rh/njHX/3wI8f9gaHv6YeBpbbnrLZ0ruMa59soZLpU3u5UAX4FX83WjRG6VDMIJ0XGeRY/aAr/9qc/iQyn0uiKEk4lV95mrqDCAe8Fs3A6vQiwa57QRtN5S9d5nO+w2lCiVLoF0NpWkRcl+zOWMUTU5UJ5EtGAZpGmjeX+8RFlNC/nC19/+cLpMtJ5jzaOlAvXeaFQ7eniLG1uwHg5J/thR0FhXS9zxVpZhlLAWrKSzzPG4IaBftjR9wMKhTMaXRIhLrdFpwba5l+eUSQQgwCl0c5j+h499BJsYhFf2axIWuGMxToga3IW0XwylOo0FCXeyLm3jvv7R+4/fOTucMSUQufFHF3pgvea18szL6dnzuOFn78+cXh8xFgBni2LaE+XqFi0wWpQ1uC0LPChJmnzNBOWhFYaaz3dMHB0Hi96hpi08PTLn0TYg0JJjYO7GScg4omqKHIsTGlGn8/4799ldDLOWAyhD+SzyKmmGGu72KzCE6AEapCkw2F104+WKrWNbTTVorPZYnJTEixFMc9BKt2iK74nUoqCarRgDVVkAgyJ67yg4xmlF3Qs6Kzpu4W9h8EXpumMURPoQrCCPQiTIgRHyueKqLdYXTDMWJPJRYGWe7O3rv54BufpncdbL7zdv7D9JoKt4jYfazzHbRt3S1PZzhzhbTv5PVK5tSC3beYtH/Z9sH7TEt3sb9vaVJv9bbdty3r79xbUWrBtFeL7CtDYW6W9bZdu54aliF5yk2BsFe121n04HATAU9HQzSh6+/Nr8802H30v/7itQN9cMyVk/e05N9pszLBv83JX6RzCc6z2gLC2k1TjEbZ2Vg2276vWdj7eJyPbz9smUUIFMGuALGUjdF5n4mumXc9zq3izSaJ0pFqFenMfijEyXi6SoLxLAm4Mh1tAbmCoFoR7f7vHY4xM4yizV2sxNpEKXOapzuQlaK5jAGSmtaRY24G13V9PYc6ZKQayAh0Dl+nKdRyx1uO7TlBqSGsZrVYLREkYA6HSnZZpxjjDsDtivMN56eKERShCKSQWvWDRUGQxUkYkIKV1vNTjroYPnWd3OLAsM0sIzCHgvGfY7Rj2O5Q2IppQxyIGqjavIFiRo8Zqi7OZYoRGk4tocWtt6mdHMolcq9RUtbpL1pjKTtUgloRqHc8DSlqqRbi2TUc5oZhTQqVMDgkbMhmDVg60xTkNWVOyrhrVElCapVsp1eYt5zU5yKUm8TFJsK3zwJALSy4sKTFHAYT5rmMIPUPfs2SZtZZSanC8uSqVIvSZXKtAySWkMDDW4q3Qvgi5PgulgsLEFlApsQmk0oJWEQyluF4ujDEIQrpAGBc67fh098BOiUhKqe1kVU3trXNoK444BWk3C/q5PhttLWoVtZG1I2dB9p/PZ1hmQKg9MUa0qY5hSqG1xRmLrqjqvrPsBoXOgUUlnEnsesVxrzkO0JmINwmnElFd0RSc1gy+nruoUCUyzSOqGKgWjVolrIYsLvXYSr8yWrx3vXU447BaPKP/0vabCLbUgLT9+bUK9P0CC29nprfdqTUwdV33plrdtj7b1gLP+1bo+yBVSllvjBb8toFpfc2mut7OOreI2q2EY0pp/d7b/cKtFQk3HeWmENSq49Yi11qvwfaNCwi8/Q76Jve2/awG6nrfOdie/1JhhSt3kbf0KG1ugTDnjDYar/36gG1nrNsgmqsnKNwSq9vf8tqKbsFxe6237ei14qwPpWkzuk3CVOqi3roOKUZKpZatSUZKknHX87g1QYghMI1XtLNYb9/eK9XUOlR06hIC18ulKlEdVg6q3J8TCzfKmus8JieWmDiNV0mmovjNNgN7bOW0ZnEc0TmyLEEcYZBgM8WAMhqXM3MMLCmKY4lStYMivFxjFb7rNmOQloQEQlhI2XB/7+iGAev9ytENtVU6lUkMAWoQaU5CuYjM3RIkWVAK9vsd/W5HSILQLcD+cODucORwPIoxgr5xla0yJFVF7qXMErs3bqpFq2xiAWOdcHJLvLV3swT+ZVnIRuMU6KJW6cENGkPQUjJcbItCRQxn0jyTUiZOCz4Btsc6Da6X2aPWlKzwFJIWuYhShItaisyBlyUyh8Q4B6ydBcCmxIhA6YJPlsu0MIdYtX0L1nv6foCc2Q97EXlIUebwLejAmtSULLNuVbOI9VlwBqstWSVSUDXo1e9bjTnWZ1y3ebMkI1ZbpuvIeD7x9PLMNAfiuDC4juXj7/jx7kPtqoiEprLiqdz1tVtk5b6VZ+MGQLzhP1ifVZRUtPM88/r6SlBC5SpFxhFdb9HVtrHvOrx3EuDyQuctvVfopLnqTO8Vh8Fyt9fs/IJKE6YEDAmnxvrZFm9FtYps0QpSCBiVUWKVhFFCkzKqUFTjIkvapGsiLoC5ek7/wvabCLbvW4Xtd38uOG4X2Pdgn/Z3YK1SVoDOpoW65d62imMbMOGmD7yVDlw9PTfBfrvv9jNN09oOb6CmFkBijCu9xTmZtTR+avtdoyJt9z9N05u2dlNe2raFmwZyk1uMFR3bZrvNQq5t2/1sK9923FsBiZWWRfkz1+etJnWr4L2vVn9BFI22ydH22hUKSd/mne0ztg4+bTywvU7b5GG7X6lgAynMFTmYJYAaS7GZHG9ewi0B2AbjbcLTrl0KUom+vL7Q73cYq0nOrqOCeVkkGE8TlML1cuF8PhOXsGb2OUSeL9/W1v1ut8NZS6aQponTNLFQDSkkvWaomrstEW1Vb4qRkAJeyZxtCYG5OiwpZ9De0Rsj4CYrlbuxhr7zHPYD98c7FIUQKrjOKpw3GCuOP6ZyRo11XK4j1/HKNN46KvQKZ6vjiTLiVKNkljctgWmaMUbz8OEDGFNBOXD/4ZEff/iBw7Bn6Dp6L9zmzlo8iqEUmZHlTNGGpSRUWcihEJdAUboicxXDbqDf7USxSVtizDK2MFYSgUwFgUGJ4mtLucVXQYZRp5UiElGUJqHqvFlapWEK3OsO9hnba2bVo5A5qFHgjWfRRpIBwBqHUoYYM6/nC6lYQkj0XY8GjC4UIihRNVrSREiCAv9sDVaLkEiu3ZDsO0iG3kr7XudCSgvjPJOomseUVWc9LpF5XKRS85YcM2FeUNKBRacsJT61BayQGbgq8ncN98cj5osmToF5HLnOC2kK4CPTcEUdPtA5j9bw9ZLofMfOHHC7Huscu8Me3/cyz8wSwNX2WS2soEkqUCrGwDSNXKPQpZQ2gJVOWE30h75nv5PzH2fQSlDJpszsB8OdPbL3Ezpd+PrTv1LCFx6OFvfQ4U2W2XMoTNcITDj3yK7fAR1LVCwh43TGWQjLmXlRZOQcqlxQIeByYTwcmbQlG3NT+Poz228j2HIDwLRWZlvgtvq3cFuct9u2QmyVW5MefA+SasF320Z9Tx1qC3lr025pR9oYAWJsQFbNGL7Zwq0L7zyviURbJKnfdQsUEI7sVZCnWrOvTi3AqmW8nQl++PBhDX7NtKEFzfP5fBO+yJId65RQNbHQ1tJvTA1yVV+5jiOn11ec76qLCiwx4KpUX2v7iDtPfUaVqdl7C66ZnLfGDqKwyhJk1pJb+4qbBKDR9K4n+EhYpCqhzrzb921UlS3QrX3vlmQ0ha2tdCWwArQoWTJ1a8WhaKNhDNLmyqWw2+0qEjxynSbmsKxzZt959scDGEUsmXGepM1brchKEeWjpbrglJw5Xa6cz1fRf3UdznuMc5AinXf0Xc/d/RGjFK+XC+dx5HWe8PuhHquRIJzE2rEhY1NLJmp3wTkn6kIFlkpnyogoe1gCWhu8Uywx0juH947D4cCw67iezxXoMWONY7c7MIfI6+lUEa+Kkgrny8i4iD6xxtT2ra6jFdHvTamgoiFlWObIOElyp5VlngIxJJTSHA47Hh8eZaFeB6iiGhVT5jKNqErbsp3C1PavVDLlZu2jIC7C5VmNznMRIY+UUUX4tiI4pUgkdEk0rm1BU5QgnluxpyonJafMOF+5nC9M08QyL/jhnrlLTDlxjjNTDHRG0dcxUNK1k2w0xsncupTEvEykAqfzq3RctKHvrNBdSHS9JasIuoj95PKZn376T4bek2Pg9fmJuEwYBb3u61yzPvOvZ3CCys5JYa3H2Y7OeQbv6Q573NCTU2IymUtpYhaStCcUSefaoYC1EV0KaY6YWBi0Zdfv+N1jB0vEa8Pj/oArgTwHUlywKTIYw+AsRfdY3/Gw23PoOnpryUGq+FxnurmIm05ImZgKThk633HY7bk/3DEUQX7nIslb13VrNb/rNHeDQZOYS6YzV6bTf6DyCx/vYVCF68sL//n0J/7l//4/2fvIH/7mnq7/xP7uwOnq+PY68cuXkRDO/O6z4XAw7HYdMWcRJCmBOSbu+oBFE7PoejtUtWO0eCcjIWcN5b9DsG3b+/nrFn26nc1tK76GCG6zsUZXaa/dIoVbddraxK2yaJXje64t3Cgv22ot1fdtt+2sse1ri6jezj63SUGrQJXS5FykMqkAl0JLBBR65VJ64UJerxJwgwCzvPNYZ7E1m7dGnESsE1qKCSL35lF03tN5j/MehRbt1n4gxYzzrlYDglVUWmTVNKwtx1xEuF61rLQBO2ur6M2stb7GWrGQkwKzoNEr+jEWhUETiphvT9WMwRiZ/ahlQWyvbrP3LR831wpWK0hri19aaiAUgpKlTapVQVuL05qck7RpVTVWUwrrHUVBzLmS5UEpg7FirZVSwkaP73vO48g0B7SesVZMFlCGVGCcFlJMzCFRlMb6vnIXhf7Q970oTXmH1jcPYMjElGBeyLlgbRMTkYouVQnGXO+PRjdQdZVU9ZzmJPQhZxZJgkqmaOiHjl3X4Tvxg42hgt5qSyzkUqkcYF1HSBkVAkplYhYai+jsSuiT6yLnq9T70FjLvASmecYYyzCIb28MkRhEj7bznQS7LBQh33n5byoIMS2YLLNTmfsiLc92j8nDUednGqOkIpM5nqiADX0noDAFfefxOrPMGUOE0oQtpCIvt7q2mfzglMEVhU4FFQs6Q0iR6yxdi5fXF47Ocb8bwPVYFOiCdRrlDZFMUSJY4b0V4YnNaCZnL/QXlUlZADvWG6zVXM5nvn79hd5bVImkNKJIqKKIYaqazDJ+MdYSa/pQakoSQpTZ+3hFW01cRlFqupxFHCUlUcVK8s1zSVht8HhBHyswpaBj5tD14hplDb3vUSbjlGJQCh1moGBTYgBcDCKbaTRd8biUMDGhYhLfXCWUqIKiGEPRhlI7IikVnHYc93f88fd/YCkQiqwPznmsQSQcc+ThuOP+0KFLZLKOeXwlqy8o/R1voXeZ6XRhmi/8+39c+OHjwMfFM9Pj9B3fx46fns78y3+c+X+pe7MlR5IsTe/T1RbA3WPJyqrunp6hcHn/l6HwYi5IjpDdVZkVGYs7YIuuvDiqBouo6uZtFkRcIiPSARjMDHr0/OdfwvZG1QvYiek6M18ST3Ej50BMhffXiMWwBU2l4NA4ZXHGY4xv3bc+deh///G7KbY/Ep/OUpUzI7mTSnpHc7lcDqhxWRbgUSC75vQMMXdIt3dJvYPqjOQu2+jyjz7L7R1VbJ1rP+YfTTjO7987zP4Zzh3o8Xm0wmTpiiuwLGsba9Q287RHN+39cEDEWksBiSFKItDlwvV6FRce55nGiZeXZ5SuLOvCvgeM1fhhwrXc0qoUVjsmK8SWGNOjY0pJbHHb8MYYfWSjhhj49u0L9ZTe0edIctyiQSvNx6yCBIXnTCaTiiSfaBrhLYvFmqpJ4uPud67XJ6ZRFnOlDcZpLGCNPljXfTaamrl9ivHQVgJthlWxzpJSJaUAteLbpqSWgXXbHhCabvP4NmsuUeLLTHO3Mc5C1MICHQcqimXZSKmgzcjTy0hVjlINt2U/7iU3jAzTTEayNm2tPF0veCOFIKVIyQnrFGP12G0n7BLK3mFmVJHrkzOUeqAi1gmJq0TpkGqR2WYKqc2cGgO+FjCV55cnLn7EKGGTlxgEejTSOWwps+6BdRcj/DUm9rqhlKUJgY7NlVKia60ICqKMFrKT0iKT2nY+fPjAh/cfGMeZGBI5Shc6GE/YNnIj+VzngZIDuYhJgKK0EAGZn8cDoWhdqz5Jq5zDGSFIVSfn5t3zM9M8oZRiXQ2XweFqYrsDZCFR1QrKHj7AFY7PZpViNIaL8ezKChlqMFQK97Bw2+58/u03/uXnn6nDR7wdMDVjjWNwGjM41jVRKVinuT7N3O9/RVuDVs3sooJvLPiYdgwag8Vrw+3bNz7pzOA1VmVGY3BOoXI55CZGW4z1zNcLtz2DzlSVKRXut4XhyzcZAyxv7HEnx0Ded0iJHAW9MRWKVoQCzpjWQWqxs0ySS/zh+kyIkZQyrhqcFTKQzgmdZF0xqlKMpgTxZUZpnLaobaduG8W6h4SonWZlLco6lHFUbYgxY43nw9N73v2vz4SqCFWTMIzThKobJa6UuHDx8DRpdNlYRsef/99PuPETSn3CmQ3nZoy9U0rir3+F55d3BP2B4N5x5x2/fLvyf//F89//r1fC9gt2WnDTxE8/j0yXQM4rmoAG3t4nHIXbm2ILiQHNoB3eeLR24lGuOVzK/qPH76LY9mL2o1tRZ7L+CBv/KPvoHWmfEfZil1JiXWUY3jvJ81xXKXVAvf3fzizi/rzzbLD/25m8BXxHcOqkmnMYwd97vfN7aiPRabFkdJvD9v+fs7hDidm2wMe3240QwwGX98zVeZ4ZnMNaYe6N40BI4WCBWueZLy+8vLzjer1ye1t5e7txv90w1h+m8jkntm0ll9S6npP0SoFWlmrNQXigVlJ6dLQahTUPVrm3A9V0A4SVkirGieHD5fKE1q3gLwvfvr7hnOfl5Znn52eu12tDA5p2r8HIfeQwtA1Tn2V+Z06iK3vIh8NTtlIwrbUoaxjagly1Ej/XXeDp2Ni+kkYtzFrT9Ky5ljZ38qzr2vSRAonlktlDpKAwzmOtzFrn+YLR4oyTqziGJaOxRmGtZnDiKqRtZlgDe9PtHnaW8+VhyrEH4razl/Xo8sdhwOhTIMBp42qsYbrMPD8/U0vmdn9DV7BK8zKLrlvcqSClV9HkhkhE4bVBxYpSWZCMQusWLV41GZwW96NSZMPWvx/vXl74+OEngYut4/b2RthO93Zt8HGphCAOalWJvnIcLFZ103+LzgpbHLYUdHLiz2QtyogVY+hublTGeeLl3QvX6xWlFL/99glqIqW+sbASi1YrKVeJo1OI3KcqLJqaNqlVc1IAACAASURBVPZXkc59vLzw8ekdfp7Q1lCVeKzHGNHOYYYBP19QOVHRh9yJKoHyg7eMzjY/4oLWBjPYxmQ1WKNxVoh80zByGWf++PED08ViTUWTGLQcl66VYm1DwjQZw5oKa6pELNUKnH67b+zxV/76+TcgoZCkJWc0L+OLQO7aULUMZ52R85lGx1Yjy7qxrDtFWVLb9E9uZBo8TlV0KZACXlVhZCsYvG3ZroqCxo8jF+eYjGVQmtjW5JRzS3KSEUVREi5hMWhr8NqjvXS1xXiqcRStsNWiq0VVy1BfIf5G2r5Qb39h4hfm6Stav6LUgikZVQIPRuczsU687nB/feN//++R//E/Vv7t30Xq9Oe/vDEMiafrnX/62TNPMNiKtxAWy+wNX0fLt29gbMCqgCJhjKRDoap4af8nj99Fse3F5+yQ1P/9DOOeu9NewM5Snj4fPT+3L7xnFmsvyN1jt79u//NcTH+U9JxlRP05P+osz6LtM6P3PBv+bmOhRB6wp3iEr59f6wyFdxnJ7SY5pNM0HeesQ+linbejNk3KU9PAyfsvywp8Yd9D67j1gRz0mafWii7R2fa1wXiiM+2MW2vtI4qtnTMRplSZlQlluXXknuvTE/Aw6eiIgMxtjaS39NcJojmtRWBBcWhqrOF2/YFjkxX2rc3WxVVL6xY0bi1WW/b8MHw431vwcOvaNtGwdvSk3zcdiTgzqGt73jAMooHcAyHmY35ZajlGBN47nBX2udWVokWjmWPAG401ujFbPdoKBC0ewZFwOs4zAexwLApyP3RUROnOI/2efQ6wbxtfv36Vz5EloGBwnusgJh+dKZ5zZvBeeAPt81RkE1FToebOVhVD/loqxmiscex7YN9WkfDkzLunZ949XXm+zmgghkCtBWtEOmGMFgZ6k60opShaimDImdwWYaVgz4lQM5EqMgyEUV21MMNqkzIpbSlGi4/wJhu9r/dXdM6YHHEZlHIoo5AM3IxoNhtPBIMqMLmJ58sLymj2piF1bkBZuQesqVyUY0JjBbIQFKdkSsjUmNHFMPuRp+nKy/WFb/MbIUlcprcO086kUgpvR3KJYi6B5jJdpcM0FU3BUYVZXypaJVI2YnJRtRDJrMKYkWlWWD8xXS/SgRqIcaWU2DJs4TUGREuqGI0wcnEW7R1xHlm3wJcU+bzcCbFQ27jAGcuUEqYkVEmoHLk4w6UODN7iRnHxylV0ys77h19BR71O67g6QwnqZIhTK4Zmt2Ed1Tj2GLHVYrXD6ogKK8v6F7bbX1jv/w71C6OrWDMSY0KXAV1AVxmLWafQulJS4PNvn/ntN8e3bzvr+spgNpZ75fVr4vOnxPvrey7zwOANcSx8/GnAWIX1GnRhjyva3kBNaLNjtG/Eo3+EYsuDfXz2DT7P5s5F80dZyHnhPBdmrfWRGtSf+yPj9jynPRf0s4zkx872XDSPz3Ba3HphPRO3zuxpOHW0nUnrnPiyZtHK9c7kbK7RoezX19cDip7n+WBS9932kc9pNbnEg3rfCUFvb29s295CDObGhTin+2jAoPX3bk/970rJ3Leczs1x/toMVXqWKsYI44AfPSAG7D5E9rCL+N1oiZbkLMXgKJidDd2L9HlDpdQD/pcgemF2eu8RSs3jRc8GGWfW8pntvO87Ly8vx310vrZn7kCtVRZf31ysaiW2gAPTNKt942ibFeK+bSirUDx0wn1zUdt1V1WySPvxfsf2Vo/viLEWU8T3+YCTG6Tcr+F33IdSWNb1QEJGYzDWNQciIdp09KTL0MZxFLYvipSl+xTrxirlQPVBvVCXlJK4uZQalK004zAwjgPeOdJJC+6cxVpBNVQn4mSxtuxwruTKNkRIQTUie9K14hibNEc624JCWdMgSvEOXvadkOW6vi0rloKrldq0ulppiaarYpCgjUVbC0pTU2UY4PlJCrhrsYYSHN824zoxaINXRrhauUnqlGrORhqtDN4NTOPMPF+YphkdxM9Xco8lON45wzQOzfpTslOdH7BOow1o4XjLmSmVWg0SSttITsqivZXOV2nsMDM8PYqt2iz7fhdHrpKonYBqLQyOaqE6S/GOMo1sqXADvqXIEtJxz1qdGVJExYDKEV0S6TKhnHSb5libZTOmxI+R8xfxsf49vuvq+P/q+HfZQ8nzi6romh9sZgopvrGvn9i3X4nxV7S64XTBKEUuFlWdaL+KjNtkNi5hJNt+hzpiVMTqhHcaq8W7OcVCThVVNcYanIXLkyMj7PctQr0HtN6AO4odpeY2i/4HgJGp37sGdWgYHotkX/T7wgIP+LkXknPyyo+d57kT7q/b4/XgIRM6/5xTiECg4nNROMPP/b0OjWcr9D8GKHTyVJ8FA22Bs7KjT1Hiwk6EK6UkqLjPfntSzDzNXC+X75jIOWdGP8iC5h23O4zTdEghcs4tsSjx+fNnXp7fM00zzvnWwSWMac5SjYYvcK1uxvYa4zT+B63w+XznnA9ZDbQ5edPboRVuGkiUw/qPlMiqHqblgx+Ypumwj+zXoeTcOqIH6ayU1EINxO5zGL2wA42ksqRGKLLOHqzlx20nx9w7123bjgi4vnDKL0KtRczrT6uEd0IysyEQk+gDXRWyT7fdBMitkFszYoxlHGTXbLV4rcoiKsSomAsxPvKWH5stvrtva5Wg9aF9pmmajntqXx9M7ZwzxMiyLpSSeXl54frywjRNEiqvHglKa4PmnfPM2hwzZmKiVCFSyT0r3Y4ck6MiRhR72Ii7SJwG7/He4K3FGk0oCWrGOyPewB3ZQaLdcs5IJHDTUrdroMQkVz68K+hcxDKx4XdVa27Lih2nQ9OZc+b1dqOUzB52YhDmdzGGqizaeSF2oYhKDDG09eiWAsUe8Xbgw+WJkjPLsrTNnizWlUqx6QgU0IhTkvdClrF+xFgPaOww4KeJ+XJlvl7xWcI5xslLUIWRzcfL9cKy3IGCGRzaeyliRoqE0lByku9V0URvKEqBtmgzMNiRUCqxVJKyRC+voY1BPLRXlhDZ1pWf/vRHhnHED55xFja4NlrsGKeRLSZuVvONwoKYO6jUiGUhkLcVlWWOiVG4acTWis0F0zafRVXJvG4oTO1wrhJNrdV/a4nbORbiUifyq0Kk1gQlU5ISlnBZ2O6/st7/TNz+Qi2fcG5BV4XKoKIG5SEWSjTN6EPMYIRPmHj/fiQFRw6Byzjz8f0T75+9aHWrbsx2hdEwX4TEhVZsqZJqoOQFpT3UBcUFAcH/VqZ6fvw+ii2nzqgVjr5Q/zj37Is5PPJve0Hui0s3bP+xq+yC6d51nnWVPz56IT9rMDtM2Ldf5/cFjvftC2U/ht5RnRnWB6TdOqv5cgWlJcMzfE/AWpvDkFLq8JA2xuC8SI56R9u7+L4gO+95ffvK3grINF2a5eO7Y75ZC+z7RkrxkCH1me39fj/i8MZxYJ4l8Ns5h9OGr1++cr/f2fZNkk1Kolb5MxVx8knFUWrm9fba4OlCzJGkMtY6jLfYyTHtsxjMh8jQ3qMfYw/KNi07d9u2ZikoRBHvPcMo89F5GI+i8whWEN/S0TWTgNOGyhuLrkL9qSmTQ0RVCS3Qzh0WbLU2GdFp1JCKQGXTJHPf3AzUrbU8PT3hnGsdtxS5d89PXC8z18vMPI1Yo5rsJVOihHSveyB/fQXjpEus0gW9vLzn0oLtS3lEPOac0Q1pEH/nzDrIpiGXQgiJvG8YaxjaJuDp+sx1npm9ZOHu6866bNxvNzFNCZGQ86mzLYczkezgu4uPnJscIyFuvH39IjGJfmDwjmkYGhlNCDTOVKbR8/Q0471t3sAChaYcAXER0tYwTE9SAJSiKoOqAjtaYEBTGju9AmqYmC6zFFulxDy/E6oGz6TFx1wb2QDfvRcTAmQTI1aBjmKchJf7IOELFQZjMNcrtWac1gITp8jt7ZVf/voXqtZkbcjWoS5XnBuw4wjTyLZG7qWyVNiNoV4mnq9PzPOFcRzZdpH7OWd4ebkyLRJsUUsmek+QM9I2uUUcpihsJROoqLZB0NOI9heWPbHsgfu24e+ZMXou3mO1Il1mtDO4aWT3FgZDHgzFGlIKYgUZCoQ7v3z+wp8/f+KXr5+pWKqEIQuLedlIyxs6RQYaAmEUmYKaRrSqjVMvA40QAi4m3JBBi1ZWqT6S60KjvoGD2hyypI/PjaEO1liIkEJgvX9hefs3cvwVpX5jGr4yuoDKipIsuo4oBklpyrLpoSk0pmnkj3/6iWn8mXFYSeHOy/zC//zf/pl//uOF9y+VadhxTqENGAvaFqrSKAN7htA21tQ7Kb2R0gWrR/iH6GxP5KEf56N9ZtkL2pkAc5bR9Of0rvhsBn+eeZ7f51wYu2SnP85z3fOstofHn7uOM7v5vBn40VTjfDzzPDNNk0B2zXtVbRtu30gmHIW863V7ZFjfLMQYWZeFkh6ex10KNQzDqXPQ7ZjkJvbe4/1wvEatovmTYjw9Xnu908HdbgUHEts2DJ7Bet6+vR5IQpdd9T9LKeIMqBTamYMp3iHTGKMwM4vBWd86T4uxAp2u63qcN9+CBPp1685ZfdMyTaNwIBQHItE3OAJBh2OWeS60f2+jdcDV8J3DVt/EHTpsoGIOVMU4C1k0pH9zD2ndPJDn1lE0SYqWHb41HjMqUq24bedti8QiG5jzhnIYBi7XK6md5/7e8l7Cci2lHEWolkKqhZgTQ9sohhB4u90oMZGGEdfuqX3f2cPOvu1sIRBKpmox9U+FA2oWtrOmqmZ/mQ255QSHPTAOA9Zq5mnkMo1Mo8M7zaYV3ljmYeA6T4yDzLJrNRSrYa+4hhSYYUBdZqrWTS4lUHamkWqUbl2P3KHucqVYmfsrJTNcXWsLiZfOLCgoShG8A2M60AmAUyIdMghpCCXF2GsJjq+bpqRIqkWY0FWRNERVoWaZYeYo2mlnJfUGuOXMW0ksFPLg8O/eYeYJxhGGEeWkuGSrCM6QBkvAEEPi1/sbkpcs3zfrFCHu7DFw31dCLjI3rRmt4fXzN7YkMXi5VMk2DpbJOSan0SWL5tjAcr/j0o7bHePoBf4vrQtVir++feOv9zc+LXf2vTSpF1AKatspyx0dIwOF62jwFkzNXOx7BqOgGY7oqttMXNAApUCV/h38gQfTfkppM/jmfdyLr3dCkoo5E/bAvt3R7FgdsCahCShlwVg0jpyFPY+yODehtUMZi3ED7z9YUjBYHSjphq6KebY8PU08XRTiji1cAiUfByVBxRhTsa6Sk3BTagnUnKhkVDlh43/n8fsotnxPSoLHTPNHNu85TQf4bt7aF9qzDvesq+2L03kG2h/6tJj3v/cifS784uEpC9yPPr39c/T37o8zOar/v2mauFxkh+vDIMSonL9LF+qLfAiB3J4fYzzMMzZEJ3nuvK2V2UknGsji/0i2MScClzUWY1wrwJ55nluhXQhhPWDUWiXMO8SdlD0lO4ouDxQhtMD0tsnp0DJGfGa1McSe1NTOSe6waclYBdro5g8tqMO+yfxKSE4tmOI4ltTmgqq5erXElrbhUUrJvLdBrMvyt45V52J7nqX3wvbjNTi7dR33hJXFUrhg3bdbnhPbqECIS7pBnKLnzLkQigSTV2swusHRWliczjqMaVmdOcNpA9Pfu6epHOz5Hg563rhWmYfK55TmZNs23gokvxOGnbmRz/Z9Fx1sY22nksXhHSMm/bm9Tpaeo89Wc07kmg8CG95jjehc52lk9E44AFXYsN5ZxsHjrMVZIwtqkY2udRbjHMo58jiQjUCluUJM+Si2tZ/HWikohmki1HJopY19EMVKLeSU2LLQ95IfhHjViq1CYSroKp2sVxrnLYMRZKhQiTWSSJB64chsqhC6s6OqTQObmo1mJlK4U1hVITgNl4l5HCTBx1rKMICDUiOZwqIKwcCqYSOz3F+BgneWqUwM1RFSYIs797SxZ9Hw0kw7Pt/uwt7VBmMsDsWeC5tK7FXjFWI7qCvbtmGqwebAXgIgm7JcC7kqbmHnngJLCrwu+2EWomvFhAhhR8dIRmxFX++O2Wn255nomuOTNqhaaEF+clsqBV3NXPtATvTOuknvVJV1S2a9jf5ey+HbDIK6pRhxJqN0QalCJaOVaTCxJgZhmuesMHagYshFk4timEasKVB3YrhRi8NZGLxh8IogEwNxsjy8rTMpS6hC/zzdj6AWgV2ODf1/8Ph9FNtW+DoMei6uZ2OLviicu93zjPY8Q+0kkR/NJ8ZxBB7M3h872P44F+renXa7xk5s+fFY++NMfIKHZvcsF+pztsvlwpBHvr2+PqBq9b2xfv8c+vT5ehGgPLp6kGKx1Y0QtMx5SmEYhGU8DkOL/1rQzZHl+UkkEvM8Y60Va8EYpNu1Dms0KWbWZeXzp8q2rIzjyGAHPv/2m8DI23ac01IkUaa0L+dBRGtdqLEW5x2p5GNGbbPktfYwhrBt7JvGO0s55fFSq+hRtRLmYye85UhIQaKvYrs/9IgzmnkcKCUdhapLafp1OhPVOrrRf7f/PTb7xXVdj8/T5/21FiSFpB5kqS0EytevxOv12JCt2yaw2r5ya2xkpzXTMPD8fEW9e8Y630DlCk0HHXPivi7YX389jkMpxe12Q8EBYet+/5a/DdrQjSEtJgeVnYXBOibvuTbHrfNGRc7P324g5Ro3zgMC8aaUKDUL07UtQsYY+VxPV+ZxpJZMChslR4yuuDb7t8aijaKz1K31KOtIxrKNnt2JWUPMmWg1ucocD2upKNLxfRKpVkEITTprSbU5kRzvMUh3ayEgHslaKZzS1JioSebBz37i/fXKu2linK7sZeN1v7FukbDfIQQ0hUBk942YNTnUYMkGLJmRzKQKq1Pss6c4wzhMvIwTt/tNeBmDR1VP2jdC3HiNO6kGdgIrgfXtlZoig3Ncw4VrvVAoxJJYSSyqEFMm5Z0QV4bnZ7QbxT3Ke5xSqCqchi1nUsmYKtF62kskQy6VlDXWC3LUN7N6cJhxwEwDadmF/EXF1oLWCm1FI0+RYhpTYAsbt/udwRrhh6hGdtJKSJCmIz7dP1z8hzXiiS7FqykekM1hJVNqpKhCqpJ7jC4oo1DGU7GUYkmlrcO6W5NkXu+vvL7t3NedgmfdNa+3yOfXhWczEWMmhTtx/0aMI6VsUAO5KEpKZCXdbEoCG9/umddb4utX2FZHSQMaSy1axsFaY9R/Xk5/F8W21sqyLN/NM/tC2G35OpwGjy7iTDrqi6RkWAoxZVmW78zllVLfFdu+ePZYuvNCe+6s4SGgz6cv8Pn4+6J8hqW7JKfPkjtcl1sHG0JgXVdSyYQQ2fftu9/pxfYww29d79PT08F0deZhuiFd6creaP3aCAzX55m9eHSyQj+uXjBlEX9lXRe5HiVSq8TU3W6vvL19e/glV81y347rME0TzugDJu4FKMbIrb3+5enKOI08PT1R9cOcxHpHLUKYUjw2Mp3RK+Qlsa10RnJme1FPKZJjn4sbtH4ETxxQs/s+OrBvfjoBaxzHQ0L16dOn7673Gbretu3YgOl2fZdlIWWxmXTDINchCOM7xsT1emUcR5blTopRFiEKYVuxRh8zWO8dfhTN44cPH3hBsawrt9uNT58+kdp10lofqU69MJ6JX+dN54Nd3hjM1mGokvvZNhgxin65Jzh571ljhOP+rgjBtHWB2qMRhEQbTakBEBcjayUH1yDJKKN3OKMJWYg597c31stMeN6pRRJvHKIZjSlhUqJqzWYC/+enX1i9I2hJfQkpNZmPwTpPqYpYxNVKN9MOQRActRa2dl0UFT8MFAWByv1tI1QJOrDK4LUmrTvEhM6FP768wzzPWKNwyFx6d4rgNSlbjFUYo/CDYfjwjHWO68t75pd3FKXJRaPGETXPKB9w6RlTYb4+8fz+PePbGyEGnPegC8ty53Z75fOX39BFrCmdV7xtN5bbQogGYxVD9hhvsM4y+omcoziDpSZFUTO1bOR9o6yysHutGIzm2TuMVzg0tioGr0WGlTM17WBdkyAJmW9b76z3N9b7ncFaUknN/jKTY4C0o5NA2KRAzY4YNt7evjF5w0jBa7D4JseShKIWhARKivePTUrnipSmqU81U3VBmUolorTDest0uZDCB3L81kZcFTWM7PEu7lqx8OdPhX//FPjlt523JfHb1xX1y05w8NM+YesLg1fMA0xjxduE0uJRX1VpZieaVBX3e+Xb18znr4nfvlRKHDBG/KoVAwpht4vP3n/8+F0U217wfNNljeN4wLyvr6/AQ2c4tAWt77b7gtp33tu2PbrQtvPuv9uLzaFHLeUICzii1U4wcu9Gz7/fIeQzU/n8c54z9+PoaTHCmn0wpXPOrNvK2+2G1obQkmJ6V37eYEi39r3s6ayp/H7+KC5OpRaGacI719jI5phpK9WL4WP+Xat8+UPYW8j5wu3+xt6MHrTRUkRLIVd9IjpAyhGlNVorsSAsvUPPotWtzZQCMXa4XObjXA3TSNgCYQ3c3Nuhq+2WlOMg3SlVvFL3fTt24Tm1cIPcUk+KMGOrKpS+GWvaW+lIH+EKHQZSgNG6EXsGFEpMRDZxgRI0oIjN5TAehVuC5MU/W2nLHnZAit/16Yo9ZtEONc1Mo3TbRivSOFJrxmrdCunKFhLGOcw4cr0+MYwTwzCitRGItkqKzdb8hm3rIoSJ7FrnX3F+YN321rlEhiNovnWntYgBSZLM1cdsvpJUPSB6lLDgq2qxcbWSU8LbttHzYvqfimTaphSpdWgkMTnmfr/IzL0cCJYfTkEb7buWmsXkK4VfMdxUJlgjebm6Nq5nRpUo5hFA0dIJifd3oWa5dwsJjGiAvZGRRkaxZoi1NCmQatC03JdGQXYanGv5uBolHFyyklxd3fYg1WiM9xI/OI2M80zVhj3KsaSSCTGKbMU4/DgyzZMU/RRlXFIEFUglMq6e230nlUTKUch+44ClQo7UuKOMhaqoOaFqwikNVoN2WI1IgZTYNZpa8QoGoxmdYqBiSkGXgumbKwqmZMqeJAlJKQxgS8Hmgs25MaAyJSdqjJACOicsmcHA7C3XaeAyDVhvyPURGJ+rhIv06UYpqTUxci/K2MG1+0Iki6rByXFPJFLb1AmjWumK8YZhmknxD6yv30ghsqZdTFV0IauFJa785fNnfv2c+HJTGDfx7W1HfynYK/zpn15E5paScDMMKJWBKGsHYgdaEixr4dOnxOsN7nfLejfM00cUE2F3pGipWVPN/x+I/Dsqtt3aUGuJG+ud2tvb22Eg0PV/nWzzo/UhwP1+/07S0zvQM7Tci1gnFMGDeHQunP11zkXbOokC653quTif4ci+oDvnmOf56KzP7GQQu8W3tzf8MBxM17O06TyH7l3/4ZalBPr5m7CELlVphbtLbM7FtpuY13o/zrVS9SispRRi2lnX1iEohffNzat58Dr/6PxSikf0oB88pjZCDQJf1lqEydmIVmPz53XeM4wDm9u5fX09Qh32fed+v8tifb0eHaXAlumIlMspNaJC981ts3/1mGOnIPNTM5oHcUypVqSbPAyFd47BiwQq7EG0mK3ACGQ7M88zlcq6bawtDSal3MzjA96PjOPIh58+EmNiaNm1g3USM+e9yFBSJIaNnCKUwv2+gNbYwXP1A8MoRVYpkb90FGRdFtZ1awYkMAwj1nlxjyoFpaS7Q0lHGGPEj0MbfbTZbmlM/izBAY8NXCHULEHw7TuTc27yE5n9pxSFqd2kYChLTeWY9VZKs8zU37H5nX24W4UQgKtsJFXrfIwlpsxWEjcyX53jW1GECkoZ8dFFJnxdIla1mCUI16GHkidZfF3zszaGDUEgUUqC4YXO0kg58jqiCRVYWJlHhJ9uJLgKorNtZMHcTDi6d7jqcGkqh3Vo3MUfW2bfspm1Rv67NM2sakXeakVNkRwCJSdGb7FPF3RK6JKxJWGzBF3UsKNUYXAD3lq81tSGZCnrMNqia8EBg4LZKkzOaAq1JHSuuLYxVbWIP3Y7D9Y6JqWYtGLUMi83qh7SPFMrloJXldFoLoPlOg5cphHnnZjatJ9cv5cF5pwwRhjJFRkJ9U1+ShH0w3Qm5SzfYZr8SymZzzqNVxPUn0n7t7Z5i8R8BxUpNhFZ+bZ848s98rpYlH3hvu74JbMHwzxf+fp1IefY1u4CSmhttR9/rsRUebsVfv3ryroN7GFk20aerx8p2RFCJe6anDTFqCOd8T96/G6KrT51jOu6HsWsf2G7jGOe5wNaTCnx/v37oxN6fX095lkdcuuayb5Yd9OCUorMJ9tr55zx3h9d7LIsRzbs5XJhnmdhgAKlPjJhz+SpDk8Ow8A4jg/CUiu6vXvvN2B/3jzP7CHKF/g0Rzzn29pWLPvzO+u3Myr7e1hrKbElD6UGPRrp4KxxB3QaguhyX19vbNtKSnJuZeam8YNjnCzjaI+iqTWU1HIetUSHfcfAPs0/tTbfFbU+Zy7t/Mq5a5sgrWW3rmqD6b4nnj02QKKVy5m2C+4mG8LaVG1mcjYT6df2xxn7dwzz0znvG5J+/539d19eXsTsoRT8sJK/vQrkXwohiWRpnmfmy7WNJqbDxjOFyDyLf/XTZUZRWG83tnVhvd9YbndCTmANQeg2QiJr9/2yCLS/3O+oymFv+vT0xMvLC1PruPv92++PnDNiQiHXY/ADXhlUKZBl4TW6uUTlSA4bNUYxukeur1EPqev5mvx4H3s/fMel6Nc7Jymw9/td/JfXjdvtjrYPBIis0FbMLrRTxAKhKEIR2LZRQn/4UaCEtNJNFOxguHiJ06PKZ9pCgCr3zGQHHMI8NgV0qZAKKldcBbbIdnsTWddlENhdJovonInLTgor23Jne7vhd8/XPfP62zeKEt+j6XLh+vyCr4p0u7PEb6zfXvny66/Hecu1EMLGvq/s28qyvpJDYNBw8SOXy5UhJ0yMqBSZLyOZwhp2agg4o3Feo60lVNl0AKjaWdhFjkY44wAAIABJREFUoGRgVojFIoCCEHdK36RScTRykjFYA3UYUddnhgz7nsmTFOaaC3VbKfc3VNxxJWFKRJVATY5kFNFoTAqoqCkK9iAz6Zimk/Y7EsJ2oF19Lc+kA4GpFMZxkOCH+8rT85WCbKqsv+Dn/wnnPOvbH3j98pHPr/8HblxwQ+H9n678l/9F87b9wl9/e+W3z5/5+PNH/vDTzH/71ysf338gvSLNA7Qwkop2Fj853t7ubGvmdk/8+inw518SIQzU6onxiX1/phbZxG+7IiaNd+Ko9p89fhfFFvWQafTFou+GuuF872J759oL4s8//3x0jOciDRxC/zOJqXfHfRFd1/VYnPrrnmegPVC9v8ZZKtIlP2di1vm9zv/dC2Xv2nvBVOqsx9V4b9nTAz7upg799cZx5Pn5GYBaqrCAj26hRci1Q7TWinvPHnlLb2yLGPiXHs11v7FvO6XKgjs63/SYjnme8IMlhE3mKA0CkgzVTI6VlAQq69rjw5hEtbiyIiHY8gVLhG2XAPIQKFUKpLGyCUkhsNwWasqksJPCTtEaTSW2e0BrRc/SldxNg6IeWcDddSobLYt8MzgoJ5Sj5/b283keX/T5bUc+tm07OADTNPH8/HzkDBcq5duX1hVpSsr89NNPvLy8Y5zmds9Kwdm2DUptBL8NoxWqioQhp4K1UshrC4e3TYJV2zU0jc3tYsQNAzVnbsuddduOGMjr9co4iFFBL/B9UynIjGxArtPMPE5YpTFUJuMZJ7HozDnxbbnx//z539nf3gSyrCfkxja5C627y5LS1D9nl5p1clVHhPZtY1mWx3y5pUeN4ywuRlqxhshgnbj2oPh5EMOItShyFPZ2z+mpWtyilNagFRMGlR+GAurEZC0FSrEYwCiFzaKXbcA4OhVqqpii8MrwHCvudaFG2GNGhcD+22/s9xtl33j77RP312/cX7/x6de/ioHKOGGHEeU8T9dnxp/+wDw9UbB8WyPhdmfLr+y2d8n1OEZTEnPNTIje3Fojxh9Go7cVqhzpbAZC2vExs993/GXmYjzWT6yxcLm+R7sBjD2CHEyt2FJwJExNkDNZR369LYeGW2uFtxJ2oozFuZGZyvxkeNaedU8Hb5taydud/dtIWm8QFq6DZ3QWaxUx7kIrNuLOZWph2xe27cI07aQCxtjDxCTGwL63IPfax2dyb+37TioXtHVYPzD4mdu339hzxKjK6C2lXtEWxuvA19tXtrCTqLhZ8c//+l/Z9hmlXhms40///E/8638d+Zc/OryBGDfJni4ixy0oStXEZLgtcLtV3m7w9ub59HkjZ4c1E969p/LcYPKdba/EWEi+nkhgf//x+yi2p0eHeXuh6sSPDp2u63qQiJZlOfJHu2XfGbY4F8YH3PkIIT+Cu1tHeH7fM2zZyUMHPP0DCeVHuc+5wHYY+2xw0Qts77i2bUMbKyzCwZNDPPSeP3bP/Xg7EuCdO0wtHpCdOy3SoZlXVGpdjs1HPxe9G5dzIPCghA6cWdYNwNMKXZRY5dmm7dQP/+bzee+ZsFprrHcY7bFGzAlSiGJGbjTGJHLXRof4HYO03wtyTQu1qoNAJePH+re6WS3wIKduVelHwTi/dj+n3ZlMa32kNPWfMzO5/84Z2dDNkq7WwjzPXJ+eGMeJ+/1OKfnYtFlt2ELLzk2JkqKYl9SKNZrrPEn2sHdUa2WWWOuxEe2bToEyK3sIhEak6zwFkNCBTlbqG7Xz5y0tYN0ag1WKaRjbfFmi7KrVDJ9/w66LaCWNOWwzUfL6/XP31xOiWga6BSWAauMWcc9a1/WYz/aNhLEe4yxVK8ougfC1iv/vmBSXIgtUypVYaOQafdpoCcRonD18sxUcUqNKoTQPZaOEHU/JeC1mJapWqsooI53JaBzPfpTs1gI+RvK24WNG5UrJsMaC2gLlvlGXjRwScdmpxnJ5ekL7CZ8LYxGhwFAg5IpK+bC8pErsnrMNNbGueWi3uXrNqBjIe6DuO7WNaEwK2JAYUuZZe57diHcjtxLJ9w1lMtp6rJMZrq4FXTKmiL1iyZHSzChMWz+cNYy+6b6NQVuHqxXtKyaBr5KF3C05i1GsKRB1JZvCNDgGbzFGEZN4Jpuc0EkkYzEGITHmhDgeP2a4/d6o7bss93g+mqpcKuN0QWtLClkc8uKG0VCmCykUahkw7gPD8CfW+Crs/WXFjxf+8LOC/IzH8fHje/7wEa5jI3WViDGFaZYMW208KRuWtXC7Ve6LZl0NMRk5RgaUnrH+GeOuYvKiJbs6FpFO6foPIv35sTACx/y275A7nNY7lM4OnRqjs3e0PxphnAvttm3HIt6LbWf83m63owj3rrjLjZRSvLy8iGHAD6SoXlD7Qt7hy34cfRNwJnP1TjTnzH25c7k+YYyWmWHrsM/QZ4eJn56e6Ixa5xxGSYFY1/Xo7F0LJR/HkV//+ssBKcbw0JD20IF5niVb1TliEmZpn6FUkrhLZbFMk/CBPvtrVnzO4dtn6xGFffPTNcGDnY+wdinEMqcEofdnOKzaFA9rzn5OO5mjO8Eo9f0m57HBqpTygIf7nzHldtAPFOH71//bTrd3wOdC1e8lyX/taExbhEpmGEdJXRpG7sv9IVfbdvADW9Oyrosi7Ts1F6w1XOYJP4zM1ytu8ESleFsXSjvWPpo4Cq42pJS53yRFpxdcaCEG1smC29jU/V7qxZHagwRkVDE1uLvUzJbDwY8oSvY0znuc82Ag7qHps+Xe3pJoYEMUJmep7Uq1jVgImXXfDicyVOPcFI7FvUsri7B00KUwR+n+IrWlyEjguNYGox1KN8QKjbcjexZegKAbWpi2NVO1bdadoGompZ3RNQepKjpX6wyjdcx+4MmNmApOKXyu7HtkroqiHThF8SNJWwKaGU3NhfuysafMk5+YlGZWhrGK89ZUFUVbBiumIqkG+exKMVnHPA1M88Dz9YpRhX1fuS83bveF8PpG2jdIEV/EmU3FwFjg/TDyfpzxw4zLK//2y2+gDNYNME5oq0XDXDMlbtS4kXMklsR4uZDb92N0lnGYj2xptMObijYVZSvaapQStEppJaSqeSaqTFKJcdBiRmO0uEgVkWGpJPncMfWAkHJ0frpNBfp9Gw+vAJnV7vvG6+uraFqr6NAXtfDty1dy2nFO7BRLLBjlGP0Tl+d/Jd3eWPbA5y93Pn6Y+PBx5mkyvIyeabRcrguTe6WGFaMS06z58HHk3Yd3GDsRoiGFxNtNsa6ObR+I2RNLQOkLylzw0wt2vFJSQMdASOLBHUtBl3+AzrbrVo+/nxa/vqid50C94Cql+PLly3dwXwjhyHVdluXY9fuWZNJlNL0Y9MLz/Px8dIu9QPbC0TvADqOeF+zDFo5HV36GgHtx65uFTszqC2eP41rXVeKlxlFIQ6f3rFXkC/M88/T0RIxRiqX3DH44iiXA6+srt9udbZWNyJcvX46Fsc+7+0z5fD5KKa2oittUSjK32/eVnJNI3HRPMVKAxjiDbx2V0pWYdkpNxLSTYhA2qhaD+stleshvijjtWGMPSZLWlt0GFh4EOUETxNbPmUd4AFRC3CE0mVCbM/furj96MbH2EdOoENtF+uwsJXJKJN3yeE/s5P77IhdUB+MZBFEYhgGzrrIIqb7Je5iSSMIJNCstuWc4IQbqYb6QszDDi04ko3i93bnfboQ9HBuicRyZp4nr5YpW5pBsffv2jW1dCeFGCInL5cK27cQsTOFl21vGsT9teBIlFm4nUl4uiU9fvxw5upmKRYhxznvIEL3HGns4lS37RkyF+7YLw7k+OBimMa2749fT8wvGOHKupAohJSmE1uGHET9NjNZzMZb/7ac/EUslFsmQDkkC5EsV2C9VsZAsqVJTYFnu1NLJWYoYevGV0UtFGOrWG7xt5MIqnsajtcx25DpMXIcJlSvr7cbnv/7K69dvGCpWKQZjuVTDLYDdEjpktn2j5sRgLf/84R3/+vPPvH/3wmwMr8udi1FMl5lhmvHDIMzeksgpUktmGh3zNPL+5Uqtha8pEradt19/EUvOsEuR3DcGK3F87y9P/PHdO54vTxg7wFZYB0lpMs7LufQOoxHOdnLoMknhVZWgJQ6SKlaVpiqh+RexJySBj4ohKnJSiP9TBS2/Y1ULfvfi3VwVB2ktlQwpUVEYU0k1y/MVzeJTNqdCDusZ38IJ11YdI7FUhOMw2gkdNG9vb4RbYJgsH16e+cO//JESCqp4lLrw7uN77F806RfNr798ZvKa6+R4ujrMTzDajLUbmjuFjX/+4wvXy8xPP31kHp8Yp3fE6Hh7jYR9IqaBEC33tVD1C8peUH5ieLriL44cCjZZtuVNPmPNPDLQ/v7jd1FsFY/Z1MN+7vs/4WE00aHlPnPtBhHzPHO73Q4S0LZt38GA1+uV9+/fHzDusixiEG/toYfsx9CLbT+GWiu3203iw8rDeejcRfXiClIEnp6ejs58XdfGrn1ogvuMUWbFO+ou6T9Wfe9gJDt4ju5dKXV09iXlIx5uXVdhapd6hKh3TaZvspazJMk5d9oERKyzDeoW9qmxmmEQiUo3TJcNRSXFv6+TO3eK/bzt+44IElpnGFsIeEU6LV2opqAVDIM7YP3e6X7/kNcXfajMCYdxOJ7TGbT9+kiIgv1uI/VIDfreb/tsOdmDD6p5xDIecL6W67QsC1tDE+Z55nqduT5dpEu931jX0MIFMh7p3vpexVqHNYZx8Dxdr7w8v0i2rrMsKTIOA/u2yVw3P4IpdLt+HXl5fn5GKcXnlFiW5UiE6p+pIzXjOHK9XBgH6WINoEqGZud5dCCNpSyElUrKBZPErL9m6VS6JaVzTrS2SHfbrjogzGAJVUgyl3aO69MTpunLi9KkUjB+wLpBrBRZ8UNlvjjeO8+yrtyXhfuXb3x9fSPEJLpaaySowMj5mOaZ9cs3tm0hBPlexLDhnOXD+3e8/Jd/ke+mFQKV9aKLpELVBm8cozPMxjA2noB1ljxO4FemYWDynmkYuA2eeL+x39/YbgMpBjAef5n4+PEDP318z+V6xVqHulVxQDOWl3fPTNPENI5o4L688fb2FWqGEsm7MIx1zThVmze3ASw1FtYYqMox24Fhno6krxwDJWc+vn9PacQxZcQ0X9Uixb2PgLQQ0AoKlYW5rwukPUIq6KrxeFSx4uyWFaMeiLWQkUABUYrJt7miiVRiLRgBTMTAJEcpzx2xVDIblq/gI8rRWosqtX0v6nfEPq01P338iOdCWiu/ff7E/e1OSYbtYoEd1eRTcduZhgslP1PSO0gf0DVBLlQiVgUug0arlcpCKoHr5YK2A+gBxURVIyV7lL4y+ImUDZXCFpYWhmCIRdKeYt0pOoLNlBqoulB0Jat/gCCCg6laHsEBfXE5zznPc9xD1pHSd91aDxTvr3uQdk6SnLMEpxe+88yuk0vOndIRRK+aREB9D1f2DvnsANUdovpr9a73KLTdkUqBiklMKGr/Yjw6EHh0zff7HXiEMMS2GJ89dCVfVD7r+3cv+GGQuZDzB9u5P/qMtBRJkTmUurVAbTNJDMZqXDP1gEJO5bAGPF9HrfUhSaLWQ/tqjW0zW4VRqoHCbW5WClWpY56nmg6vAbeP1z/9rZ7es5/7PlN/SKH6pqa9m1LfFdtejM7333n2fSwW8N05oxXc3rHVUhkvo0QJDo97sS8ilT7Lfhx3l7NN08T1+iRozDRStGJbRP/dZ/H9foCOQOTv2OrzPHMfhuN41nU9DrX/Xu9Ojzm7EqmIM05mchpqld81nSl+6sLl/DQ9s5EN2XH/VvFO7iFjuZHBtn1n32XD4bxnHEVmt+0Bh2bZA9ru2GHE+ZEaE2PKogmvGZUCZVuJ9zf212+EnMSecRgkFs0YnNM4Cjrt5OXOcnvl69evxH1jnifeTZ6nQSwijTVopzC2ER4rVCP3vdNKHJJS+o7Na4HLMHC9XLhMI6okpnE4DGYqQoyxTgwXrBd/b2Vklq+MOC5Zb/CDY75MGK2oKrNtN+IeCSFxrxVjKjFs1JoxzmCQHNVsFdu6ULPCVEu1hpAzcdsoBSGXXUa0MhTVLC1rg5CLaJ2tku7ctLA+pXWLsauUmqBqDJrBeIoyRFWwJAmjqIL7KlVEroNIglKpqFKwzXJVSEMip5PvjfAbFI+lonsd93uzu0UpIWO0dUwQNmssKkFYA19+/cLr8o11g6pWhmsGHCl49mXiDx/+xL5Z4j6R9pm034k1gtow7ALjs5LTCipRTMY6I9GfeUIzU/SIMQPGzG1U1VOLVigQixTaUFZUzVQdyTVQyFRVmsb5P378Lopt5WESsW3bMTM6YEcQqQJyEcdpOmBA1xi+/TnzPH8H5R6OR03ScaT+nBbTAw5u/6a1biHq+thtdUMK0+aUvYD2xfrMau1FvENtvQvp79VnxAcL1lmerOzUxfbrsbAehbR1sx02P+DrUo+uzrUO/TLNjO19L/N0LJii23x0cn3G7dpzjdFtJiuMY4VpQegcPrK95HSSi3AbWsShdSIPSJlYKynEw1VoGh5xebHNQ8+d5WFFWYXt2m0HZRf96EKl76ho+yCh6VOn3s9/CPtRbFPKaP1wjqr1QV6T4v7Ilz17O58dxVAPC03TjqfvwlWD6Pt91o1Zemk1+gcpUzvusY0GusTMjp5YCiwL8+VCTOkI2+4bvz7rT10LW6tc56voVnvB7Rsf5/zx3egFu6MwzmgmL6EVYu2ZqUbz5faVJWySSKQypm1Ec03yO0ixlcIspJecM7ZB5X0s8vr6Jk5OKTUZlCfkTNgjk9Lctl0i6cad61Nl2XfGUQw61u3Gtt/Zw0JMG1UFnBOP6afnKy/v3zFOE8bZ5hRXqHVn39748vkXYtgo5RnqH3h5lu+BNQaqQMh951ZzpSTRgOd9Za87FEFjwraQwo61hmkamK8z+7airaWoSqYSW/h8VpWtiMGCKQPOitFBVqLhDCXiSYSasFVTtOS0bmlnX1duJeOsIqdASAE9igylZkltetvv7DlQkmYuhc/3GyEVUpKM3ov2oCXkrWqD0lJEcw6kuGCVaHxdcSgz4IxcO6sVKsgoxmvH0+WFnBTp/6PuXXol27Y7r998rrUiYj8y89xzfB+2XDIuoAEICdGiAUKiS6+6NJDqK1BtWvUVqB6dkqBTghYCIdHnC5RcAsp22b73nJO5HxGxHvNJY8y5IvLadQ0YS9dxlTqZeXfGjh2x1hxj/Mf/EWAlkmrFNs/hrAq5JHJVxFxZovg6a6sFuaF5eddCVi2GsUirKQ2tNGXl7t5vF3HzRtcoJS5S67qyXGfydeX1l+/8q//rT1niZ6pb+YtfZr5/8Rg3keLIdn3g3/7Df591zqzzwPVseX8pJL8wugtPPjFaTU1XtnzBOc0cr+RcQI1YN2L1E9UcqXFiVa7FAkaULlTOpFIgr2zpwpYkY7iwEdkQJ+xMqX8Him3JmdfXV0opzPO870+1EX/Y2qjZucK8bjwNYzO8uMihWSupFNYgNmhz22EppTgcDnJQ5MyvfvUrXl9fpQttxU6irjZ++f33XC6XvQD1iLS3tzfe3t72aRTYDz/RkupWnEeGoRdbTYyBt7c3LpcLnz592vNke+qONAgi1cil8Ivf/V20MczXq/yaZ6iVpe0QZddYWK5i6DH6gWkc+fj8gdPptL+2rr/0TeJklaT4lFow2nA6HkGLhrMzRIfB470jxsDleibGbe8uJVhb9nbjODQzjMQ1rgIYtptmcB41sSfPhLc33q/y+aAVWwiNGCM7nE7Q0VpR0VjrWrOTvup878lc1hh+PaBZirZAmaVWDBLRZqujVnHrSSVjED9cayzOiwFEv+nbM8k0r8yu4Sy1WU+2Bin0nbvWOO94fvpAyEU0qVXz5fMruSim6UBOIuU6HA7SoSMh4c5YvLVMg6QsOS+f/+e3d+qb+Cr/6uULD0/PhC2Rohw+wURC6ISppmUtYkgwjiPjNJFyZtk2Lu/vN8TGOKiKlArLuqG1wWpxR8I6UruOO9MUVzk9fQI/kcisa8A6sVSczYzdEm6cGA4HxtMBjAQCxJJBG7acmUPky2XGDBfCtlESTNMj4/NPUFuAEHn+5ifY+YqxlnE68uHTR3788oL3nqdn+X1KiVwrx4cTw/Eo8LUSJOjtcubL+xu1Vo7HIzGVNoFZCrClwrIlLmvk5W3m/bKiVcUKK6p93pBSYV2DJMlsgRgTqkiiS4qRsK6YYcR4jx0GQs1sORE6sqMNawisb6/82S9/iRsmPsTM6fFJDDq2hbpCrLCkzPdfXmS3jGKdL1wvYo0YlitGF7HcqIU5rfinR5RyZKvYflnI20YqhWleOC8by7yRcmEYRn74P/5YEBfnGE9HmaCbM1JKG0YVrNF463k4PvFweMQOA4dhBDvglGWwIx+fPrLMkTUkOF9Yrheqc2Ca13pbtyzryvWyEh2oqqijsKlzztQiAjCjSzPzl3QnKoKIVRmCzuczMWxAxUwjx8OBGAKXnPnx+8/80R/9C+pSuXye+fGHXzI+CGx8Wc68LSt2mChlJKwnfvazfxODJRbPn//yypcvf8Hjceb5FPm935l4fLRQPKEcOI4fCeuBkA9o+8DTw+8x2G9JcSTlzPz9O9cls4aKtaNccyWLZ3Js/uuqUmuSOMdmh6Hr12fTrz9+K4otgGAPYvO2bRvaGHIpuHEkhcS8ipuRsZ41tBxP6zieThyODzhnySVznWcqCucHVKn41tkbawmbGGaLobmkhRQglkKOYtXV8Y6YMjkLXKqQQ1pMLVoAsRY/V5TDOrGaUzFJ0HapHA4jpsjOMcSINq4ZYsAWIs8fnlFasy4bMUfeX9/wXjSctu1yjWqqxVLw1nE6HXl+ehYYtE2Tz0+PPD4+QW06zkYIU7US5pWsNdsqxgvWWr795ltcs8oL6yZ2cq2xGcxISDI5dW1szQ1uK4q4CTksxYTKlePDxLZKNJtv09PlcuHl7ZV53VhDZJwMfjpQrSE1YoWbJiiKkhOxFrS1ZCWFcQ0B2yL/+vS72ytqScyppQUzGJm3pbAIEzbnKszYUgTuyhWlDUo7tHagDKWkBqWptvuquwwBpfEtWLsq1dx1FCEmxumA80aMFCrCiNVGTO2txVqPwkCR2LwPzx/FValUtBJyi1bCpi6IEUFRNDZjbmxV0GZgC5VaLc6OUBXrlugexqPyDIMXEb6XpkI3KHOcprazbNIx67B+bI2rJlXNWoCiUEVRYkaFFohexUwgGY87WAaj0V4Ow1IrAxa3CGrxel3xp5VYxBjeDY4cC0UZqnWo4UBUjo1KIpOy5ctcQDkwnkvUFHMApdgSvL7N1GrIGd7eJQxDdV1tL+ZIBJ7zHj+eGK1Ats55rL9S9cqWDVUf2XLEJsuWHXM0jGbAGU2mkotI60KMYmuZC69vV768vMg1V5oTWc5CjPrxhSVX3q4z59cv/Pjljct14TKvaCVM55Thy4/vnI6vWDcxnR7R1pJqJYRErFeuW8RoSw/3C0tgvUbWJbHNEa0iEihYyCrhW0b09v5OXsWNKpB4v8wMfiDkSkyFJc6EnCT+sxZqFZ+sfYWGpRQ5M9e0YoolXgMX6zgdTjyfHvDjiPGOrWSucWEtG8UUxqNny1lQjVxRNeNQWIRYVWIlR0i6Qi446yErFIbRHRj9CacHVBH5kDMi49mWlXWeUZqmnhigFincGebrwr/4o3/OZCdGPfDxuxPGa6qeKPoJPYCyHpSHeqRSiTmylUhUis/fL4RPlvH0zPTpF/wwf8GoEWs/YtUn/PETg33G+o8chk9sqyaGTChXiu5wfCaXADVJ0EbR1FhQWRr7GDIoR0iVgmV6eP6NJe5vVGyVUv8SOAMZSLXW/0Ap9RH474DfB/4l8A9qrS+/8XnaL60ltDs2OExpjR1HUilsIbJsgXE8ELN4dlrvmY5HDscTRivWbWVOM1opsVXMhcEP4sYyDGwhkN/6oQI0dnHu+9v+97WK8XlMjSyTUSjRVlXQRqDbksE5zziNSGPfbBxDYDpMaG2BSggRrSM9n3TbRKCf2u9zSZzPZwYvgQFaqRubplEwnTUcxomPHz8wemFd55QaI9k1ZmbaGbUpiWmCt45tlSDxDvsNzpNN3t/32r6Xtrrt9G42gVJpKzW3HNpNfg4qeOsIbJSUUaPAlqlroWMQYlAFZQxFt6UOCuMHVIEtFHJs6Ua5tIi+uJO7+l793uVJeI+1mWiY/XsKcU00ijG1n03LJGStx1qHtq79vCJgN1phrEdXabKUCRIW3YpirnC9XtqEnMRO0Ri50VKUpq3KdlkpjTZW7OUwWOM4HU+ys0wRoxpMX29ZnnUnEglcbIyVIq4sMVV5HjtQqzjxSCaxaFqNzTgl4Qvdt9o6K1aZxpJMbteqGIco1WPpNLEqdAFdIEYxmC/N01bcmizayfM5JLGJnDFO7ADDtrEtK9M8C7ymxboxxSoaWOfRfiJUw4YlK40yI2uR16K15rKVNgkUlErMS8A7S7aWlM+EEBuxTZqbkBIgn/lUNXawODNIUpJSZBwxa7YIWXlSsaRiyQzE4vBqlKxTo0h1JYTKHAKXNcukvEZ+eBc+xB6bVgqT99iXN5YQeL+cmd9e+fLyxnVeWdYgzXmV9cuyRJY1EGKitj1nBkIuxBJZtox1A0YZOWPmyLZlwlYIMaNVwbRfyihqSpSwkeYFUhYdZ5XGT2tPqhBLZVm3PV1HN+9tOUt1I0RlQiOqlZjZ8kKsG9E6DJrH40n2rQrWHFjTRqyRogvKihfznpxVs+y0K5LfqhBv4KypJPwonwdVY82A1R6tXON/ODQy4YZtI2wr3jtUlYalJPHRpkBOmc/nVz48PDE+feDp01HMabQkCBk/ULUB5TB2AhSxRRxmbTivilM+UOw3DE9/j9fPFs2GVxWVnhhPv8swfcM0fYO1B0K8kuuVWMRMpxqoulJbtq1Jt27xAAAgAElEQVRYT2t01RgMuUBOCqUdKSsqBj8cfmO9/P9jsv1Paq0/3v35HwH/a631Hyul/lH783/1G59BgbHNhxZ2SDDnSkpNipILKYupN6oJ+I1iGA8cjkeRfjgn3r5JLoie0frh+ZnT6SQG5N6J605uO+KwyQ5NS7epGhJQSiFcRbu6rSvbvIhnbK2obHl++rizPA8HeZNrraJ1TV9Y5nUnY12vC8vSyStiyHF+v9D1w2Jht5BjxLeEmrCuhG0j3lnNeec4jJOwprVmW1ZyTCzXed+V5XgzETifLzwdT6QkjgB5yKzLjNY3wgtaXIJSTlDa7ryxUvtUQRVBP7WSUyGnjNGaHBOqgtUGcmmeurUR14QFGXNiXhdJddHCctZaY7xB5USJidC0zyVFKH85axZu3tP98es7c5lOi+zSskzxxlrG0TAejhhjAXm/m60QNKmEtfIcx4cH3t7eGkFKDuFcxcNVxyBwtLNt95RZt8C2xebJe5+m1Ml4XmB4LcYQRjcHoZqasF+TmylELomqEqUoQhTGrTVmjx0EiHEjxMw8zyzrjLNC/OmJRSCsd7rPb2taUGY3jMhoMpJmsmUpKPepWFYZ2dG3CSMVted4xpQJubBGyRN9a3C1cAblsLfjiBsPaDtw2RIxVYz1PH76CafnjwJDrhtv5wvrLN7XlMLgFNM04L0gRTEXKcx3HIhShdizhETISoLmrSXnwpfXd86XlWVNxFhFtGQGjJ9QZqJqie87HA9UfSavgTVVQtUCg2Mo2u+kNKp4Fse0EELk84tkwub5Ijab85UYZFuXkCZkGA4M4wHrRmoVfXfP31XKkkuzO0V2xduWCWsiblIIB2cwzjI4hTOQYyJtG8TurmWxbmAYDtKsp0IIiS1EHh5Pkge8G5oYnDU4q4nVQhDlQtw2TNIcpyPTOHI6nSRpKUZiqTg3kGheyKpwXc+7P0Dnm2zrRtwCJcnQ4cyAt0bUBG6gaEXJStCwWGQQUd0hsJDiLQwmFzlvAAY/ErcApeCthcOR42ni+CicnFw0pWhKNWBGMcnQor/GaFLIxJIo2uEOH/HHZ9zxZ4wPv89H/8z1+sLl8sbbm+Knh58w6G9BfwQcRWmKqhRmSs/jNQbrzM4LGYaBaTjg3UTSiRhL2/uahkf85sffBoz8nwP/cfv9fwv8b/w1xVYhxuUVhauKrUG4ndC0rqERP246Va1vLFTfJkKQQziGQI6Zqu80r84xeJG6LKuktYQY5RCNiS0HerJOZwFfLhfmeSaGgK4I1GEMfpz49ttvd9LJvYEGsJOhOut1biSRey1xj/cDydhdlpVgNLnpKQVm1GK/hsI6L4bz1klWrLG45r8cOomq6X1zFXlSzuK6opRqBgJKdsHqxq6VfN5KaqbgKQUpwv3n0d2NRzr+PVycW3jDOI0yRVbNNApZ58vrq4SFW8vgPKfD8VZEcxHSRZbDZL1eqYh2dTduuJts75nfwFckr/vQh91HupGl5Lpo6VAxNv1wam5DlVwUapVUIXHvGvDDILvlKOk5wyjsyBjF9Wpo33uNnQVedqZ4SoktBiGq1LpbKdYqh1Jt77vGgiptF9xY0zVTyChlOU5HIW04I5MmhXG0hLCxBce6zOLMEyPX5mk9jhPjKGS4eRYJWMkNzTBKCmVo5gJVbD5tY9Pmdm0qrXDWMR1GvBN4uuRIyUm8dFOi5kxOibBtvL4makmEGETC1a7l0+nI6eFIeH1nGB2Pjx/4+3/4h8SQeH8/c01XPn/+zNvLZ3KKaA1PpyO1PFDKgK8eZWxTc8vrEjOOdthvq+iaWzO7LBtv5zOX63mX/0DBGsVgDbUk4ioG+u7xCDmxXC+8v72CMqQqfsKjd0KAappR02DZEAKxZNYWCqC0kZWCNizbRk2ZgmbwI+NwkCZLaTFlwGAMOOsJsWKNQ6FJJbDkFq25BuK2kgxEr4hOYW3B6EpsK7Puay2hE5plCyL524Sk93u/+3uyekuRFDbiJqEGWkEpgW1diEEyn13TW1vn8eMgdqOIKsBQ2cLG5Xrl9e2Ny+W6S+loMYwxtXQcpaRZV7KW085ivYeqpdhWvZucYDTayTWcShEExxrcIEEkwzRijEOHJPth0x3bHFo5rJFgjlRq2zgqQZQkQaGhkorxcOIP/o2/z/Hf+bf49PHAp49HhumJUgqX6wt/9udvTMORn/1iwvojynhKgRALyxa5XBde3945n2fmZWVdAvOyCHpS4bqsKGfb2mmFxkY3zmGc/42F8W9abCvwPyulKvDf1Fr/CfBdrfUv2v//S+C7v+ofKqX+IfAPAQbvZOJRBqxG6bBPaqwrIaR92pCQabtrJzvLrcssuoFAZ0iu68p1nmXPU8Z9YjPGYJokpeSbhV+fqO7ZyUopnJf9sLaOoUl6ukTkXo/bDS46m7lLme41uX3i7Q8x+hdoVDUbPGHnSZeq2o+VShbLv1J30wDTXK66a1PNZYdVlZbgbdMYtykl5vkq2Z9GYHdTLSrrRnW/uVz1n6d9WH+Zud2gftmHm93C0Lme8yhetKbJZKxuwey5kEMQDea6kbaNHEW+JZOc3SVM95/FfQRi1xm36+j+mvpK1tUZ00XOzpuOu+m0Uc3Pd9fQ6l0fCOD90GwI6x47OLR0pu4Sdi/N6u+ZMQY/eJFi3Om8u15aHHQqNRfosYOmgVXKYMzUproOnWcqHm2QoAatCMESY2h2eF1O9rX/drebLI0PobVuK4b2mpumeg8UqIqsMqlNdtKkbOR8CwPpzUrOiXneoMlL4KY7l3tZQRH/66EZyixqxdkZDeTWwNQSZYepES1m/9wa3F5aBKAgLiJRQwW2sLVGEWkulo3r5cJ8vbKuQvzTSgnsnxOxJIySSMYYNrZlZr5esH6Q541RLB0Rn3C5cKQx0VpjG7PbUak5U2JgKxWdssQaaAuIDKp1s3Q9cr8+RKMtu8tqbhmotRGHQmfPx4rRmYfjhHyF3D99GFBVtaQr4YQ4Kw2atoYQN7ZaiUnWDrnmJgGq+/koxV601VuI0thZizEyPZfanJyC7LXv5W/aSP70IBc7zomkyVj5DHMp8jMpjTHiQha7LSPCpl+2jes8s6yrhNjXrrqonN+vvL298/L6iirgjWMaJqwZqVoLfJubw1xDcEyR1VEqws84PTzz09/5wIenkdPRU1UlFc9lrnx5Wfn2J8+kbJDQqUxJlS0k+RUTscVGdm6PnyYZAJwTom6pwrHTpv38I84Pkrb1Gx5/02L7H9Va/0wp9S3wvyil/vn9/1lrra0Q/6VHK8z/BODhdKh9H6OUHIgxSgB5Zm1Qct4L8L0zUz+Mgb2QaqWpWlOTyFuulwtKa8Z2g5c7c/X7yanWukstcnMZ0lqjrGWcJh4eHrDe48dpt/Tr8o8+jXVrvJ4g1CetLtTu3/deCtIZph0GMsagS/cplgNb9oQCyZaQGMZhn2RSFru8bguZkrDkanvu7uebcuJyvRBzFPP3bcGXgZ55rKism4QFdPKQ6COkWtXWpeYqzNwQhKmqaR7QjZntnWvxZc3LOPfUEGH0xS2QiYRlJW1BiGxGxP9dnlTlGtmn0RhvkhyU2u3/jP3aDKWDBx2uljjOrvW7I1spkSr0ZujejIP2tT1hqXex2xaYphbDVeT97FFrldv37Rpab5FDt12bvQAYrVC67l7QWsMwDbSjnlot2ppGEJKsWGstRiuc1ThrCMGxrgvdf1l2nHJd36dF9Txe1C2Np5tedLixN1L96wW5lIkqpm2XmfVgjtufV9gh8f2+liKZRZOr+n2GhNArhUyoWZpniuSU9s9D1kepURXKHnIhjUXeORbU27ppWVZCTFyvV67nM1sKeOdvu/+2FtE1t+fZCOtCWBaRe8X2Wqu8DtvOlZozWim8swzOcRwGnBKrzbDMpBDRqWBNbdZLMs32qEytZD9ZsphC9ElPK7nbugFIm9+l6GfJcYXIYRz288zoKjtDJcW5loYIar0XcCnKlmIducTdArU3AEoZ8QlXQu5cto1xWZmmE0r33b5u8Xi1rTjKfj/0IWAYRpGUTaPA1V5jbIWyNf6CwhjL4Fv2c61sIUqxjcJkPl8uXOcrIYZ2/yqWJXB+lySyz1++MFrPYD2jPzC4I9qJ33LOte1T5ZyqpUixbQW3KsMwHfHDAeMsqWzEOrCsivf3zKdPAzFpQmokqFSJuZILVGXEX3qoDMpgbOJDqwlaG4aDOIHVWrFFFBqH4wPDeMDYv8XJttb6Z+2/3yul/hnwHwK/Ukr9tNb6F0qpnwLf//XPI7+kCPXc1dSIOD25oyIXc24uUkNzN6otKADx3AWcH3DOy06wFLE9S4lhneTC6UktdwdP19TmNiX0v+ta2MeHB56en2XH59zuQNV3PL2Ydpenp6cniV9rett7/WaHFftzxxh5en7cWdMAW2zpQ01PGVJk2VYx405CN0drci1c5ithE4iopx+FZlR/9AMFgW5LLHx5+YyxQjrZYmQ8TKDloLOmB6CDtZoR2Q1L4dQoa76CazvZaye0WbNPxt17dltXPv/4Pa8/foNqu864NS3jslBj4jCOHKcWrJ0zsbEsQwu2X7ZIrmrf3QGcz+I9rK2YkKRcsfYGO3stN40GcYHJcrP0Rq2jDjlFSZRp15ExjmHQzZRk2D+f8/nC5XJlHAdhT46D6K2tbeQqiRTrMLvoYeVw7N9LJsoqph41NdvRhLWGJ/V4I6dpIO33GJUshBdr0UZ4AjEOuzPY+XxmWV72ZmGeZ67Xq1iAKtnzaWMFLruDJbukShoV2eH3CQya5rjcspJ7kc2tUIqhh7x+yYWWxnOZF97e3rheL5QK7v2NP/2TP0Vrzfv7O++Xd/HcTgFKRlXN5XIhhoARpwWcGzBO0mj6GkDOhFu2cy61RQFCyoXL9crb2xsA/ukJq8RasEQx4U9E4nKlhEBNEXKCHCkxiNY2Jyx19/HWStKBHk9HHk8nfvLhA6rA28sXXl9e5Pp0omioSpELws3YElSFMY4YMsuyAhGUQ9UgWvYsBEbpHQ3WD0I4KrIrLzmxruIqldJtLy7NW1uh+QFTKtoY/uRP/hXD4BkGxzjINMgwUJupRTSrJIQpCXi/zgvrFilV4acDGYVLMgHP60pB4YYRvYXd66AIuYbD0X+VhmWdQqtMShe2bUVri3cTz08/4fnpG4ZhEvVGFoVASJGX91c+f/5xb2aXZeH8fmVdAzEkUqp8+813zFvk7X3meHhishOgqerWAKCEMinn48b5/Mavvv8LfvWrP+fjhyc+fXzmFz//FqMeKOqRUI4kTsTiCFk3INTgpxMPWKoeOD19EnVDuTXfgh5VnPUtx1vuB+eMRFxOE8Pwt1RslVJHQNdaz+33/xnwXwP/I/BfAP+4/fd/+GufrNbmOXuDWiSFAmih2HAzMegGEs45uQEb7JVzpqSMbROhsS2btE17unkhS2KIwGilQaK1VtZmXFGrdJFKK6xxOGv376kaWaUbS/SC3G0UO2zYA+6995xOp91EYk/mcW63iFyWhQ8fPoqbidKEdeW6zKTaXnc3bmjxZMUVjJWbZr2KllFrzXQ6ipatSpFWoWXDqq4ZjWxxQ2WBS0OMKKd3R52iO2wuH0tHD0yHvvvUqIUtPR0O5CI6xWWZMU26VIok4HRDg3VeeH97ZxqGvRPflpkShBxjUKRtpRjRSO6Qm7nt4fv+uzcr96hEn8g6utCtO5+enrDW8+mbr92j7l2R5N+VHe3YiWY5470YJpRSdjvMlBLjNHF8eGL64QuHxpo/Ho9M08Q4TbJbs7ZpieV7/uLnP28hGAUNbGHh5eVF0AGreX5+RmtDLbCusWlbm00nGWOaTtfL+yBJKjdOwuvrK+u6EkLgfL60hiviXSOQZYHahB2d6O5r/b3sxbZPvCikGNKn1Vt4h2ks1xg3Ybq3nAdjjJDl7vbVYymkGPjlL/8co7TYll4u5ByxVrjbthnUx7gRquyyH58dtENeNXa+kFFvOciqiPexNLmVmgNhsVCVEHYohPXK+6uiloy3mhdbmZcrKaxoMq7Bg0HJFG6OR7wfbsS7XJkaKXEcJzlf3IDzI+PhgcloShVocQ5bQ2IypUGdKUbWeSOmAtpKUk2uaCQGsqTQ4PzmK4CVzwF4e39HKm8VYh4Gk4VGIZz3tiZJldeXF4ZhZDqMpMm390hKpNYVskzaRleUMuJ9nhLXeeX7z5+hfiEnUX2U3BClnERbXrOYU5TCmqwQSq3DTyPPHz8wjh5jKiGeeX17QWMZ/IGH5w9YN8iuc5XgjVQDX95e+f6HH/j88gXd11cxMW8bsWmrlZY9aEWJ7MvIPriiZEeuW23QWqIpVQUNMWe+/+Ezf/wnf8zhMPLp4we29O/ycDzyes6swRGi5+VtZYvvjfxkKVkm46IMbhR2s6Bj3aJWzgnnBmwj85YiTVBRmuu68d7O/H/d428y2X4H/LN2cFngn9Za/yel1P8O/PdKqf8S+GPgH/w/fcJ+U3cYAgTCDTWhk8B1zokphG8H2rK06KgG06laMNrtBId7S759v1dFRyfwaDusYySGuE/HusfUtb2o7szXJie5N7nor/ueMbsn3jSXoG4g0V/PvWFDiEHuoHbDCfFDIKamLpSLz1qcH4Qp2XaAqTmyGCU7pUpFG9lp99etFOLM1A8rrSUsuTR5h3Pt55OiDPe7TL3/F2h/NmAM1jvSKnZ8BTE1rxWssRzGA6nduLUUwrrJtOkcBkWOSSRD8ikT1g18hbb3uJf8dOi3v8d9MgP24nn/nva95TQd2sEpzML+GVJvEi+BgAX6zEkkNDFGckptb+7YQuByvXCdZ7YQGVLicLcSMC0l6uHhgePhgWk8cDwcdgamtZbD8Ug3ohDINO9M294IyM+oGNFYP4gas1Ziia3YWgbv2nXt933s0oI5gJ1EKO+Vaq484h5WUXjXdtdKtxCIts5oEi3Z76sb5G0sPeCbWvC+B1dYlmUmbALFVkoj8fimkZbXphrx5nq94I0lhUCthWHwOKta/KkU706AylU+BymkN3KcRX6mWjXGNH5Fm+ygUktiWwZyFvQgx8j1/Z24rSgq3mrIK3FbuZzfCeuCQeMGL/Z7qWVXF1l7xCI6e4PcPxZpJOZllSSplqurlUGj8AhxUXWoV94YgZJLlek6Nk9i9M68F6jYoJVAo1RDLZoc5T3XyL+PKZGLwjSdv1Ly/qUiJjEgK5OwxX2PrqgC8+7cFt2c6sz+nO/nKykmYohsIe22raXlZe8abNG7yL1mLWMIpFxEcqcEZQgxt5D6yLxtbJsgkykLLL/FhR9+/Mznl1de3t5wTa60U22UojZFwRYCVjuGLKub29eIR7PSWcIRlG5s4Pa/WrnMC9dlYYuZ33u5ECNc5kwqjpA0r+eFeWtkWyVEQdFWV1lfNOmjVs0Ap0jQvfP1LxVbpWiE3vAb69v/52Jba/0/gX/vr/j7z8B/+v/qyfbdZUWp0oqqBBIra6lFjCFA7axLgb96oUyt86gY3adLsx9gfcrd95+N+FCr6Kdoz5HaRHN/yHfDh3sPZNTN1H6HI1vX35mw7+/vDVoYdjvJTvDpbOUO+1XE6KJqjVcaGvW8Kk1pS3p0y5p0/o4YVql1oWv6VEMBuu7zZvwg5Jfdv9mKXZ3SSmQjw7CHEPTmQykxEJDXIHrQWuoO6edSJR6N2CRZAu0LCapyPJyYrwtZSzzetgVG67BI8HsOkZpkJ2ZQXJcFi8JquSTv99u92N6zk3uzcV9s76FRKbYjzg10c/ZOYNj3p5oGfzapVwhM07hbhwJY5wkxcr5e+NUPPzCvK3YYOOZb2pNp0O7j4yOPD88cDmK/6I3fr78QgkwuWg5LHUwjIXUSEO25NN4PODugEGMFYpPlGNOyT/0+4ZeS+ebTN60LNyzLur8fsnd2soe0RiAwcyP9SUP1dbylTInCkNbKMQx+/z5asQdr5JIZrp6525DWKi5j08g4DMRcKC1FitIiAP2w36OHaUQpuYet1mhDy1wulNo8xnbz+taLKn1z6anSGNZadrJkLYXtIIYemkJcF16//IhSGmcU1mour5qcIyFKk1hj5sE8UWKQ4uskTzqXytaarvXquTjP+f0ihMooJLHS96nN+rAgpDppUNrr7hK1XIktiF2386OqBtkrjVIWqxVVSP0oIpR1DxWpcFtD6IobhsZvUaiCrDWsFP4UMyFs1PaZUQZo93wpYJR87tRCzIXteiVssTVqQhArjS9Rc0Fb2T3XNqlXefux3nGYjqSSMAa2MHO5LmhlcKFQ8JSWppkbdH5Zznz//Q+8vEqxnQbx7baDR1uDbs1JyoHrsqAxDG5oqTqZWiHVKNNvtSiatA3IJVFqxnghMi3LSirvvJ0XUlIsayarga0VW60FaVK9ineuZZWVpQxnqiU1SbaoHzaMUbunvLFSbTth9Dc9fiscpORnlG4wJgmBttZjjMMOTgTjmxwij4+PPD4+7sk/y7KQY5IbVZXmeyqFZzyKXy1auie4hbj3A0fYlbeAgH6A9/zQG6wtcIVxUvDuc2n7/vb5+ZnD4YAxhnmev5q2+nP2Ytuj/7rr1ftV0ooeHh9F+tNO4NL2VfuuCkkE6SQOYwxrWUnLwrZte/JLzgmjFYMxKNUjshSuFVZlQCfH8XRknCZsC6EvtZKbaUU3ve8QXk11h1MvlwsfP31LCAJPToeR4+GhTYUVP3Zf4oQC3t/eIRXCMDB5SczRiMGFN5aa2/e90/P1z6MjAvdBAT0e8ddZ3t0nuhebXGUFYbhJh3pxcU48je+f/z7EAmiFctujDS+XC1sIt2bAyHTY/12PlAN5v/prO51O4qMMKKv3z7bcQaFyrWgOg0drRUqZmAPbfJXXOAx01OHG2K18/PhR2PbDwLquvLzcPGQ6Oa/WNhFxa1T6/XDPPnfOALfmZRiG1rnnnWuglEKXblM67IiDdwPHw4Fx8mznC9frmWEYocL1OpMm4UzspV2UI6Q2rexELdiNZtooQ4zbPilKNrxAw1AZBiEsqpwwVSbjuK5cc+RH5HUP3mONIsdVinkVxEjuycz1OvPy8oo2lpiKNI/j2NQNtObVcTic9uZ5dF3zLyiUHyeG6YD1o/y9Sng/Mh0qxiVKmbHKoZUU49pJYjVjdcE50CqjSJQ0UbYJSgKKsK0XsWesJTNNTlJrlMaktDf6WmtoZB6lClYjDVMRCVtOCW170ywQrqwAHMfjyDBMAi9fr7vsZ3TutmpaJeM352uTrsEwWobBcjwKL6AqUKkwXxdiLAJ467Z+WzZSllB4c3kXQlNMVK3wbsRYi1eGnIShH3PgOl+Y11lqAcJnyariqpf0p3bGX5c3LvM7RRfhf6QkQ4qfMMOR4Zg5hEqohqfpAWdNI+mVv0Ra3R/Nra7W2/qKtn7qO9vudjfE+Bvr3G9FsYWbSUFqQd+6TTDrunI+X4hBotL2Lrb2+DSzw1zaqHZgSkINIDowbmbu0zTtu67lOrMsS4uoWySOroUGdLLTnigzDl8Rg26ThSzKHx8f94m1F4SuQ+0FYZczIYdcD7LvjMEtRsr5nS0GztcL12X+imC1LAtzixTMbdoAdlZ0TjKVj9Mo0GFj1OaciGHjer3y05/9jMNJ/JE/v3yhVkWMqbH5Wm5oc8pyymCta82CIQdh+9lUGKfKukWs9zwPYtLurWuSFYt1noenZ5TShHXjdHrAGjEgeD9f8MPI6DyD88QoqIBuN05N0rkaY5kOB9wwCimngjKWsK4y5VhH04wItN1i27YQ5eeocBgGlJavq1VR662wyO5KuAL9s+6wnkyKqu3WH/jw/IkPzx/5/PkLKSTe3t5FP6hAW8N0mHi/nPn8+ZUUBeZeF7GxPB2P/PS732nNgOimXUsHkt2r+DfXtt5IOuIHD82ekVraRCu+ygZpAOuOsLS1gbnFJ67rKpOQhsfHJ7wfscajtUU3N69Sa/PA7rIlQZRuh06D1zs3YZCpOqXEuixSeFGi0S6VT58+yT27rCyXK7/4+c95fvrIMExsW+DQ2PNVSaGjE11gL7Ydd5XpsKsDavvcpPDqKtCh/El0l8YqwhZ4OIx8+fKlHYSOh4cHibXTCmoh5YkYNtHdDyPPT09iAakNKgvp8PjwyDCO+GFsk5PadZ3rGoSANs8YY/n0k5+0hlBJQIpSLcFKSJ7AfiY4Z5suVLJ4O9NYQt4rpkm3nFeo7FHJs61XLuc3YkyMw9hMLSaM8QKdVoVxgihN05HpMO1NiDUKa2Xrr6roY+dlEUOfgqwSGnHOGiHSHQ5Hcso8P3/c1Qz3hhYgHuumqSfGYcA6sFZkQc4PCCPfMw4HhlHMXIyRhKjpMOJHT0gr1/XcUBctvvLaAYqcqrDnbfPsJvKrH/+cH19+JY1YLcxhw3nfVmKav/cHf4BSFeslCarUhPOWw/FwMz+p4gx4fHjA2qGtKgRYVVo3+Jt2z7V7wtYbErmzzNXOsi4lk7Jcs9r85nL6W1Jsb/KbX/+zOAM12M+IHOKe4KLbnlAgaPY3hLajoJEr7qGy/m9zatBxksPCWdGIGis+y/d6TdVIRrmx0nrBvnU4N4iyX5hLyzqVG2Hav74X6U5+klNDi5RkEyh3Czf9ZK2yW9mCCNlT2//1gt6nE200Dw8PUjRKEcNs0w5XKi4EpuOBcZrabrZpAVXPIBV5gLEGowzj6PGN7eu9I6eesrQSY5KkGmtxRlAEyauVn2ucZy6XC1R4S68iWG9kLaM1D9ORcRjw1qJyxR4mirMko9Ex7J+dbbBwKbcA+A4pG2MYWgZxj9gTjaugEp0tbKyjFrXbZf76mkDeY+4K7Y2I03fAh8OBh4dHmdBSIueeQtWuJwRlmS8L6yKT77JsjKNou58fnxrqofcAhF4cS8379aWK6CJlLad2sp+1pgXa3/b+dKKQUnsM373Bh6xjHE/PTxwPD4yDWIjuMifwL1EAACAASURBVLfW/NV6R07c98hy69ziCgvOy+uVnOj8NdmMegfJy8/zzSdpUMbxQEqZ0Xv6E8s/u7sn1b30Sg44uY/qXRFubsm1tp2ahPqFLaI0xBA4jB7dYty885weTkytWUspsoWN2OQr3V0uhERNhXLMaGv48PEj0+EgxVbbvdjmAm/vZ5HapSSrFCOTbS21BXxI4yxI2u3nrLWtjzJ7BJ1pe8FKlSm31vbeNPci7clp2yd8a52oMMYJmmUgbULXzWjjdHqAmuXasQKdl5zQSs4Q5weuy4xxYn85eE/OFWs9znlOxwdKqYIq2uahvp9F8rxCKpJm1GiNNgWlK1olYvSAxmgnBVa5Vpxdi/00rNuyc256sbXdUrQqtLmR9nLNhFR4v7zK3rvtjy/rgm3+DCjN7/z8pzL1N12xrBdE726dSOkqgjwJGc3tyg/dr8nW6O33A4jkqkvBWm0xd/Xn3qzo3uHur3r8lhTbX3u0i1BuJt12E3X/YeTvempML7aSUEO9ufqgvoYFeoG81wx2otMw9J2HZKx2GHdnYpZCiEE+3HrLTO2QJvSdyg1yu16vXK/X3Vzg/nv2SbfkFu6MlWmjkX/udZ/doMAYs0/itQp54e3tjW2TQ/356Zmf/+Ln5JyZr1devvyIURo7yC5tOhx4en5GW8MWxNdVG4vzAt+UeUZp0buOjUU9+IFhEMKRqsKy3kKgVsXxeJLPQ9F2yar1NoX5em1OTXC5zuQKg3VM48jT6cinpw/4VkBUUShnuMbA27Jw2dZ26EgBmaaDEGqaXCqE0KDyLNrnO7Z4L7qn04nD4YAyFmvFOzqlG1TcDSCcc02uJJ9jLxgCZ94K0DiOPD8/sywLy7o2tq58TW96RPYVdoh7l6iIen6f1OQ6uZldaCPXXo7Nf5Yqe11lMMqTc4NUK41Y1iCt5rQjn0GP1HP7L601j4+PfPc73/GTT9/y+PC8sys7uWrbAjnH/XqX6/LGUu6NY0X8uXPJvL+/U0rZpWs66x3BKeWWdvTNN5/47iffcTo97PdZvx93bfJedL9uiG+chLuCXOE2YzZWchXmM22ls5yOnBoK5b3nME1Q2VGhkjPOWKZxkjD3YUQTqJPobIdh4sMHWQcNw0Q1dm9GqxLYWWkJfQgpY50TSLaK/7CRVTy6NWn9nkCJwUeujY2sxWcbJZBuzGJtqqKQpDQJdBVnJmvl/urwf5ucBc6XK2kcBk6nBx4fn2TCa4xx2S8mtO4Woxv+/N6Kmm0cBYGdnfM8nB6RVYMU2+4NX/bhoxuX7FQbUJlaEykt5CzQskI8E9oXoJDdthRruyMWDZVFZDZyhufU1kiqecmXQqYNNqWQsxRb5z2qkb2u1zO5aMK2kXJEGjYh7A2D2+WOuRkDPVuHbfe6Ru0FttaKbrGiwpNQ7XVJse1TrVy2beptl/HfiWJbqxxSJndDBklJMbXni7ZJQn0t4bgxU7/exd1b+CnVvGeTOON0pmluJAdq3W0C+462P49SEjStmxWkGAQ0i7WWydq/Tmu9T5n9gLoPiu9Si2VZdllQCAHnHLkWnj98QiuLqgWnHZOf0FWjqm7LeUVJlZohbvK6Y0jEmIX0YISs8Pz4gXmZWeeVbY18+u5bHh8ehCw0eH76s5+xbCuvb2/48QvjJBPbdDw07aK8f13upFG79IdS8QMo7aloxum0H9p9UjbatG43kaompMoSMymdcd7z8XDkd3/v9/nuJ9+iGkSqq2E6Hfnx/ZX64/d8vp6pSP6JMpZDK5zjMDCMY8uQFaepDt9Pk8gz5IDT+2S7bRvGOIH2jMap8VaMjFgSylGvpNHwspPMWa6XXCSV6HA68t1Pf4eQxBN4XmZKakb0rdA456gHsdbsOkjvZJdqWnet9B0q0+zqjJFmb8mpGUGU3abQKMvpMArJJHfddUN7oElMxDjBGNlBD9PAvM5UJdPmxw8feXp65ng4oTH7tCUQYWdatgZT9ahBIWTdnx/GGK7XK7VUzu/vbSoWpnPXG/dG43Sc+PD8yPPzI8fjSVCkNgV8hTGpPt8Wsf3rf11kem1fIvdag9lrFbmYwM+K42GixIRTGqc0x8ExjRND22PP5wuqFtZ15vz2TqGyXGeGy8C23DzMp2Hg4XTkNIwcRpGPFW1A2Z2B7+wg6wyleT1fWiNk9lSvXDPCrCjk3Oxml5ltntETlKRksi2Vatqk3jR1LWdApCw0xEUJz2KsQgTSxjWypG2uHnJdDNOR48MTj08fsE48kU0r9CULm10c+CTZyjZVx/F4ZFk2tNI4N/Dhw0dE7y1kK/EwkFWcVJXSrh+1F6RKIqeNy+UVow0hJoH2tcDw1sr3OhwmoPD6/sq6LIQt7r7kXXJotEY7Ta1CctRNwmStpJelkkWBoZW4tBmLtpbHxydiKuIgtQY+fgx4N/Hpm2/56c++o2S4XN758uKxToiEMTR/dKVbsc1UMs7KBG6trKhiTG21VrENJeyZyPv1uvML/vWP35Jii7CJkXzJDhWo2ncGN4eb+4lPnFVMo71Ld2K07BmdF7/blColSmcem3tRt5wDvmIQ7915vYPq2htYkGSadVtZ5nXfx952zTIx38PhHevvMEQvwn3y3aFypCvXzfXpnvQDAo3nu10x9RY9N3YY1VpyzpzPZ9Z13Uk6xhj8ODAdDxyOJ/w4ssbYoPBKjJmYM0MBP0z0hCOQyKmSGuNWC1S2LAsxZYz1WD/JBdcYyqoUjFy/hJxZY7c/E3jO+oHpeOLh+ZnxcCCnDuFDUZ11rb9qmjqEO47jrrXt73Nvqn59qoU+oUn2rlJxnwT6NNZh+HK3LujvJe0zKFXYwALJWU6nE9M0cZ2vYnW3rqSc8E2jKwx5RzLy+jRf+zZ3ZqrREv13I881CZgxDWOUg3q/eWu7ubUCJOPZNw1iadA47Xo4HA4cj0eu1+s+Wcs9I3v4Pq3fv39yb5UWmF12wlSH+ZS6NZSmjW45CbwYQhDpmXXy9+Wu6PsBrcSacds2bGfRI68D2vndDu96Rwjtkp+uNRa1QettlBbWKnV/LSluxBAJm7BwI1BTJK4zby8vfHl948vrG6+vrw2ZkWtaYisF4j8djnLYIxMzDdYvfRq/IztKsy9NmbaiCbXOoXTGdbicivPiNa0UYsKTNTlVti3QJ6ku09K6eZibJjmJCpRAsM5rSmn3B+xwfFXi6uacFx7EdMB7h2ynGvISJOhFVyMsYufv1i4WEMTOGMswjNI8tGle/qz315pSuDufGnu9VonOdI0b0SwVjaaZD02M44HDYaKUyNj4A86JzaNr8kP5vp2gJ2iS9FsyaeZSIFu0EV/zwQ+t2DrG8UidNxQRVTUa02qBxVlHrBGxrWzGK+uKNbVJtzqaI9ajzmm8szhrSM5Qm8aWWlu++t3ZXeS+EvOar1eVv/74rSi20GAE1TpX1Qfz25QJtImj73H2v93xjHuNrrOSHpJLAtVM9htU2E0szF2x7CwzcW0SQfeu082yRU9JXF26Q1O/6eAGIfdD7F6H++uQ2P2fO1wZY0SX5vdZb7u4HvW28zLb82st3sjHw4GUM946tNJ3qSVycxvTmgnvGcapZV7K+12LGNTHKIxi61TL1ZbDtxbRw+4svFJYN3HyQRfGY9pZ3qVWaqqYWjBaNVisEIvYDSrr8OPEeDwyno5o50gNKqpUtiTxWL3R2Rmu/pZq09/Pe8izfwb3n+P9e5ubV7RuE1h/9H1LT63pZChZE4jnbEcnekH0fthJQaJJFPmI/Ep7l9tJdLkUSM19pnbZkuy6ar3B5HvRdRbq3eS6N5dgjKfb89Ve9FBtjyV7J2vdbughcPtGd+gpzTJTCCCNaKRvuvCKRtcsBzpt76g7XHh7rfd8iX3nC3huxhcK5DNrtp21ilOX88Otmtad6Ht3f7f7uf08wjWQXVrO7JOsUeJO1glktSRSDMSwEdZVpuh1k6muJF5+/MyXt3dezxculwvXZd2NcC6XiRQjH56e8ca2KLXmYNrOJJToyHU1+/RljN4NGYBG/plQKuMbY1ukdSPGyH+t8dQiTSxcd2vXdsPvvuj9PRZnKppGvE29+2ZR7b8vlbbPbQV38E3S1VCnnBo6JweJyJM6Q1jt+2bZ+XtZ4SGcF+9vNp+dq1DadWSqQutKLmm/XkWvKz7WRku4gPdDk0GOpCTXqTQrZm+q7u/L+0ctIgUTTbAgb60PkmtVSS5zLQaqgSLFvn0sgswpJYx3hMldSs8pb2oHjVhTZnmvaiOx1WrIRWRjgqwUKn0Kbnr9IkS3borzmx6/HcX27oZGiXfsfkH3A6EVmdQ8MI2RQwlo+s+bSX2fVPsE083Xt20Tndgd8ck3Q/CaM7FJXVLObFFILjElbLC7kf8yr6yLMD3HcdwP9U6G6gXivtDCzXyhS4C6MYNMCiLg7pNcj/srWrozZWU6HoeBaRg4HY77Pm0aJ7q1nNEilHfG4k4PPJweGJxkq2olN1eKhZQKtcgNGqPs7YxdSamSESa4M1bYgdrs5vCqVJwrxFh4e78ynR4FIjUGsOLHinjapgpFGdAOZT2H4yMPHz5y+vABPx0IFWItxCY9uM7Cvt6a4X9/L7tZRP8sOxmtHwCdHHU/rd7e95sLVYdMU4o7inG/P+wFrzaKca1q3+3366oXuJQL67KJi1gt6NVyvl4ZpjNxS2xLaMiCXLvTOPGzn/1M/Hq17MqUFdMQZIhEN8tDqxQGOSRjCLtN4eHwIHI42w1ImrWpdYScyLkbj1TZV0+HPf0m5Si2i0VsBL+aUttDGPt5b2Q6S7O/d52d3BsTbWS10PWmtd4KsNa6rS4mYTcrJdCc0ftUm/d7v+7faN9HKtUIYq0RyF33rdq12Qp+hpIyqUoMYtxW1utF7FmbXemyzHz58TPv1ytLiGTtmdeWipMSl/czeQukLWBQfPfpGwZrGaxB1yoWhRQhTufU6mLdzyh0J9TB6eGIVlVsPts58M03H/f3u1aBkZc58L3+gZcvr4LkidGxvNeU5kmcUK2y1Fr72d7WHtKAFyBX0bBa53DDgBs7gUrIQt35yFqDQixZD4fOtWiFqVY6qcm7TnKrrcm7OZaVUpjnuVmRyk4UJc5fpQSUilwuV+Z5o2RQdeDxQXbBwyCNaimxkfnk2pMi3ZqmqnaULMbUQj+SXLfAukoOOMoSQ8G5JNOr9nz5fBGGfjbkAGnLFFtEpywbfoxScn+p1pwMI26Y5HqOGylqYpCrUxptuTOmQZCJWisWhTHSNKuqKHfWkX8ndrZwu1FraTgkNJTo64lwHMf9cO0TgN51jmJM75ouTCL6VuZlYekXScmNvSdw0c1ntaCMFNQQI/O27s/dzdCF7CK0/XudrlKKy+WyT2NDK0D3cCh8bdTw62Qt4zx4T7mzJZQdgcY0OdLtgi27/27OueXbGoq+pQ51uMu5kVIkwH6eZ9ZNAq5zBTeITi8mmVi32BKOjEU5TdFJXKCK6BJrFp1tyBllHUo7tPHNqUqhktmBBudHDqcHhsNEUYqiDdVYijaEivjVyhcyDIayKfS67oL/+4JwP4F1stL7+/tXXfD9JNiLaP831lhCTFwuV9Z13qe/h4eH1jC14tb8rYUZfEscAr5inpd8szUsSViur6+vAIQ17sXWOSHqbJOgIV2mhhpwznxVzLRqmlWjKWFBFyl+YduY54VSYBwPjKMkwIiURPxrU70FZwBNamEaeVA++/P5TFgjtaivGlIpiGJ8IXvGvB8m948+Yd8aWiPEuelAqTIt9WaIWhmHUWDMLPeztxJvKehv3c3u9+lWCwGpf/bcIUM1y3RuGxQPhhwjcdvYtpXlOjNfzizXK9f3M2+vb1wvF5Zl5no5834+E2IiVkWxIxnTCpdiWRf+bP5zzm/vXN/eeTwcpZlVGmMLujl27dBSG5sET6j72dXPg1xa9JpKxG3hdJpac2fYtoj34htgjGqFpK8xmmZbKxq4QsyRHDexVoylQcdGNM5FOA2lNJRMNwc6bVrz0u8jmcJkBwtFaw7TkdiKp0K1naoXiYwxDXW5/UwdIYoxsixbQ3v0bklKpZFSm1d6iJRyu1+d83g34pwhRs04THz8+InXtx8pVchb1nZClRTcEKQpTqVl1OaKsQmlDMZ4UhS0RyuLwfB8+si6BZacyElTk4IicLK3cn2P3jMOnnEchMeTC4Oye45yzp4cPVpLPKPRoHRh2ANZyq7Xl/J982r/Wk3zVz9+i4otu6vT/nd0GK3QPaElo9Q2HZ7sxti76ronXZScWcPK9TpLkWm+xxaB8RQSU5Va11QBo27OTt3LuMM77Pi82iHGzkiWAy3sh9i9A1GfQDtxpD/6ob7/anCvd0KRr8J6Qg0D03TY93re+c7oEYhO6Y4Oyab1Dn7WSnYuWhtKkXQTVeT9stZxPJ4kUcYJ87D290ZrCrAuK9fzpbGpM0ZZYhK9q/YD75cLdt0aAiHpQyiZfkpOXK8zuVSm00lco4BYCiHn/5u6N1uS5ErS9L6z2eJLbMhEAihUF3uGzea0kO//GORQKDLCG8oMp7oLBSAzY3G35ay8UDXzQM90XWO8JJBSkZme4e5mR1V//RdqrjskZ0MnOaHO7Yfve4gV2C/q9+/d+8/qvZb5/S5dGqmyIxvTNCNM5J5NKrPplUt5v6u/7c3f30TbhBu6QGh518dukOAmPbLecRhEorVN4tt0LUk/cgCbjZxh2MPlMYYuOHIOOJe0y9ZrTZuwkoXQYawcRPrDbT+lIAy1Sk7nMtP5DqMQ27YykVQmSaERZMBRrUqRmkBwICuCbcKq+jMYveZ8EPLZBsHLqsPSdWGH4Zu9WS9u9/r2q+wf0WL7/r0WpirN7IShjXxnDOI5vIjP8uvXZ6brhWWamK9SYK/XK8s0MV2vpGWVuDQMsUaKcVAaNQvZMceFksTq6Oeff+bp6ZFSMv0wMpyOwtYPNwbqxkytVZyunPM0Izr5tF5JwVLpaCWRspeTrBmul5mhH8n5dnZs15687LY3AQ00TGQhrSspFZwPwpWgUFuiNkvdkoP0AKitCeO5NWoVwl2qBVuMZtuW/eeXxCW7m+QIL6Pe1gxqO7mdN2JxK9dp8P6GqtmGjY11zfpcXiL27BYjqNO/rkFqrczTzHSdqDVjLOIi5UUmBIaSRaKTSiaWRM6VuGaM8XhnyUnSmawRx8Z1KaRYSbGSo8QUtgKmGdU2N1qVdUZJK0uslOoI3YGDGXQt4LFUrKt4KxC5MVWvf2myttei7If9Xtnhjb/x+N0UW/OOzCVw0u33bvpHox+KdIDif3EjHd2mxby7Ok3TlXmadmmG7CTkDcvKUAbRxRn/3+706kYosVs81o299j7LNJdC8J7NRzS/cziqtf0G3twhQN0FCkzkCLqfPIwj0UlAsWnsJvUy1fX0YbPQE8jH6Y0icPJvYcLj8aSkGCFAsBUaH/YsT6s+yrVKpJkAhpAuMxdNjymlchgOsHslO9ZUiElIXc6hjHEEWmuVmAvGd9w9PEErVGPJFdnj1rrv5Jp1Kk6X4Pv3BIT3rk//mji2ff89aa7VSnOOWuqeU5xzIaWshJ60S4DeP5fIEAwpbbDQbwv++2nZe0/f9Sxp1aIvzYCzjm4MmINcR+fDWf6ONmH6E+9F2TtHcXaXqhkr721pEpPX5U2/bfY1ydaK1lJpZNBINKOH4xZRyMY/KIV5mhnDSOf6HTa0xtJ83Yuu04JYjZU1g35/ezNq2zykbw3t9jqwG3N5I14JhCqNUIamk5VVuY821r8ZBAzK1N5IUe3G3EalI/r+bLnL03Xi7fWNl+dnpuuVdZlZppllmVgWcVSLq5i9NGM1maeSmkzcLWdSlgm55YwDvnz5zOdff6HVwvF0BidFw3mv0XjowlD9gmsR5rgxrHFhnq50ncO6pveETPo5F6brRTKDyy1tbIOl0Qa+VoMpch3HmFjmhWWZSLHS9SNdZzFWdo9bHRStvry+RlNnJ2kGSs7CWdA99FaAixrXiJbby7rKbHJEbb40VAKjTTzaxDuR1IzjqHBwhSaRi94FvIdW9bxRym6r7yblWpWlvVBqZrPdpQFemrVaKtkI4lhL0/xd2bO2WilJ3iOZMStJQ5xqEbY31WBwMvlahylGvY9lv7+shUpgVP6OUXOcTV+/XZu382VbBBswdZ9say26CTEaC/FvP34XxVYkNiq2B/Wx1WLkBCMHQ3AWZ5qI1mulJImVi+vMukxCDNKJChqXyyuXy2UnDTlrqeEmrI8lMy/zDZ424tvr22bErxeKsuPcftHJo7TMHsVkZO/mvNfQ9ioOR9ZpFq1McjKhCoy5ffkg3qBbcMHDwwNxkVxZ7z2fvv32NxfBYTjS9x1dF3arsK3Y9L2wsLfg8ZzWPQBa8hY3xyWRwuRUd7LVJmfaJnFTG8s8ATJ1fPr0PYfDidCPuG7EWC87xSymAm37LJ3S4sPI+XJhWWa+fvlMGO8lksz2RCrkgiuFZhIpFqZFYKr3+cAba3IrqDs0rPtCb6wsrTYIEgTqwagsolDmxLoKFCfGjQJF1sq+BhCNqlcIUFzI3kvM3hthbNFiX16eqanq/de4O96JY9E40nUD59NptwI9HsWq0DuDt4beB9bgydlSisK0VopMq4hTUDMSHRg6jNmSsG7BAaVkcsmEoVcmqNnXKJv+PK6Jy9uV03iHOTqBbytQKjZX1pQxTuR2O7sSPcCd+k6rv3FJSScnaS6r7kqp0uEL5yAwDAOn04mwweYWyRWNifqOgVvarXmgmf3Q2mt8UyZyaxh1kSqlkHLk5eszXz5/5vnrV9K6MF2urOuqvAxx9cm1EYsEClRjaM7gQsc0rxJHmRK2FU2igtYS0+sXvvzyEy2v5HUidJa+C4QuYA0y8egwsDuIWTE/iPPEdH2j1YHzcWTserrQy9Y3NaiGnCQ/tZWKMxY2gmFNKuXTS7mtLHNkmlaxPcwwtkA1DRMEQsZog+U9NgxY12mIPb8ZQGrKu8tRqZmmvBcQZrILnUiJjBi/SJqpSId80OdrFd8FfNfhraUfBobhAEBKEWtXNgmU97BRy3OJrHHBL4FmOnIp+OC5f3jgfH9PShFj0HjAHu+luTQuYozj2HUYH2S1N0VMc3gbZLK1el+YwIdvPnK9Xqm1cTgciPHEWa19z+czZkYRJ7lP2ta8GiG3gSQb5SqWsWkzxyiJPjgttFX4CVWsMI0xsiYB3en+jwAjGwOqtwre4vse54SOXVvCmKTL85VWFryrWkgy0+WZVpPS9SuHsSfHhbeaiHFVc2rpTFIpLOtMckL6SamQELJQmhesupo0J9qw0I/4DT6rsMQFY9pODrHWSIebC7YKWaIg8qVSIaZKMJ7D4cjHD99yf//A/d0Dj49PPD4+cjyeOBxGurHHdxJdZr1j6Lo9QzY4R+e7d0iRTOc7i29rt438R0Te2/9v5LTomyxTT21GrB4VrvIGDaWGHMX3eF1XWso83p04jCMFQzWOZjtqs2TjKXSsayMVS6kBU2XCkQtZ9n/29D2nQ+ZQMx9/bAxBiCfZAp1Q6kvLLBms9SpJ8KQUtSkRe0NvLHZPm1GZTeihgLeBw/FwO1xyJrgAzUhxrY41JmiW8+mRv/z0LyzLyuFQGPpR8mzTSm2FYejAFHJu5CzSs1YKq+Ycxxj3MABrDMF6POoukxoOw93xxMPDgxLdpGm01pJTxFhD33nGoaOWRN8FaumI64pRcgjN0fUnYoJSHNYNPDx+oFbhI2ANNji89fuaxSj7HbP5MJ9l9eA6SpqEyWs93TDShUFvOYHD++G473aLBkpsrOmGrESaNpPd0NPF/vZzWEspmcPhwKcPH7hc3ug1QCSmBedHnWwNvUEyf3MmpiimKg2crkeCIk5sk3Mqe2OxFabgAwZIS+L15crXr298/fpGXNd9TSRTnKX5AXqLzcKGzw1irjy/fJEItQ31K4WhN9LEt8h0/cw63bF0DW8i3ouExTkYTgecQ/gJTowmihFDi1JWHh8eOR2/pfNeQsX7EVPBYDh2R8J9Ry6NKU6UNZPWdUesTLPiZNVE6+wMXC+Ry9vM5TpzOD5g3RFrD5Q24LuRUoXAVY2jNbEvDX1HcJbgLYYAtTEhZjmtSLP55fomjZlztDWKZKk5HJXYspw3DnITRMi/u+5yLZzvzgz9QJZdBdY5QjfQlwN9fyClKyUXDqcDT9880vUC0xonTRPa6FsXJC6PRm6OOC14n5WYWpjnq8Dk1gNi9epdoPOOdYmMvSUEiwuOOU2seWZJM9NyIZVIKiupRCriuS8JaQY/jOTrhHPgh0Cqic1kxvpOGqYcMVSClzpRS6bVQh+CrFHY3MyE4GaNUV/xf/vx+yi2cIMfzc2FaBvfzQ6YCDSCGonXnIQJVzI0ifNyKjqutdw6u1p2wksuQiM3qpErW4fTiiS6qO5wTYnNko8NWG2it6VVYo5iBWhFx9qUPCXxWY7D8cTpfOZ0PPPw+Mjf/eHv+OabDzw+PPH4+MTxeNz1oS44bNAiacEbJ/IGI5mVRqcBdHcgHr+iVGylUt+9h5sxgW68qarXFGi+0JrdJQMaLyJxe6hEpWRMa3Q+cDxYTMwsKg2al5U1NVIx5Lqwpqo3fAMrjO3tuTf7QNmdCoGqWEsyQK047UppYvINAmEW3b/fSGmVmBIBdLoU44wuhD0SzzsvrMAGOJH4GDSZo1TNGvZ0/bBLDlqTjNrnl8/EuGAsPDzc79dOrYVWbj7XaXN3auiN5nBGhP9Vd5gW2SP1IdCrQYpIkxzJoWSUTZ+Z993+9m/Q5NO2jf0gtdbTdYPshhRuR35KWQ3oQbjGRE6JmBLXy0SKoku1RiZcY6wmInX7znQrqvsOx1SslR3jNu2XYvZGblMFbEW+1iLTj7N4K4XUj/1OYNxY34D8nA1MLTf+A2DqxoVoO2K0rW28VRLZRtbVtKl1Xnl7u/DyXTrumwAAIABJREFU8iYe1aUK4afITrzUTE5CdFxTJpVGbo2kSoPQmkB+piFuS3IQBtNwrWBqghJpOco+N6/UmgWKdfoZGKgILC2x24YuWFzw6mMd8C6oSYkVRcAQZHp1SaDNphPW7lDEzk0RhcPKNC1i+zka2dGqHMVWi6pOaIjhxhbP6Z2h2SpytwbZByqWihDxgu/IrUjTnRJYi29tlxphN57KDf5t5rbe2+I7Zd8ublaCqPT40GHtQjEasOHlXGtGTImaFT11lUMCH3qMNXR9z7rMkjCmRi2C9Dg5W4yQlDaeQy7ix2CsWFKmHMk100zFBScAnnf4zlNRjwV1oKpNkBYfPE7TkJruN/bZVO8NHwK2VV2dbHwQZTM0hZNvwNrffPxOiq1e+HrfbzfiZl1n9QaXfZeSClqj5JsjVFUzgPdPuTON9as1sXmztmGqugSVm4vOdZ6EJNDYD1fJb9Uuxm4dfxPbs9YYBk8/DJSUWONEq4a+7/jmw0e+++57vvnmAx8/fsu/+/t/z4dvPnJ/98DhcNx+RJmaqTQr7wGmCJFlJzlUEVUrU3snnegzCKtTlvgNNYfQ/0l3kG7/ljHAJntRWLI1HA3TGnmdKCnqQdlzCJZLfGVaI1/frlzXyrRW1lhZouzMq0LMxnsawog0xuC6QAhC+Br6wGorvW8EZxi8YQhiC2lVokCDgsDvsvOVXWjOmWmZ6Vv9jRWhD4GQ/9tMWFlJOJUQ1J3o5pz4Oovto0yFr28v/PnP/x8xrWrAD6fTiVpll59T0UIoDmSt6T6oWSwerwSQ3V1HSUWbwbuxm++ro+sO+57YYGRXqKYQUS0eaeK7WmtTqFuLjvdUZK3hlERWa8E68E4m/hRXLpcrzy/PPD+/cb1O1FKVHCcCFucszquDUXt3oyD33QadN/U23iRfN+9k9B6stJZFO6uSnlLEgvK9zGOLAoSbn7UpN3b5vmdvYhhjFHEySA6vd04JUkoSK5WcMpfrlZfXV32tL7/dvZfCdZpZl4WU087hyE1gZTGtUJWqERJWsILwdNbSOZFe2VYwrVBSpKRILQnTpBnZ1l2lVEmVMvo5W2HybzGP1lhKEt2x8Y7QOaiiM3XesxEtN56CkJGUD5IK87QwzYvsnYvoSks1mGLIWe5zCVpxN8MUXb01I02AaxD13mymkVvhcDxwXWfhL6QoTmZNHbw25ptBmv/6W/7MJsHauR2tYTTXN4QOr9I0ow5npcl7aZvdn9soq9yHjn70+315vXa3FCpTOfYDzskXxlLSjcsxzzKRd33HMPY0ZMjwwXM6n5jmifEwcjwdBc7eUtNapdQqq7su3FDAd9eiNJUep02AU2JURshwnbKT5T5p+tfrTnb7tx6/i2K7MfDQmL33xCOjOwlhXEq26mbALQxDS9Pvp9KYlpVYClhIObLGLLR/3QNKGtONDFBy3SeANeb955FpUPSrW4D6GIKIy63cICCT17rKYeC7nsPhxHfffc//+o//xPff/8Dj4xN353s+PH4gdD3Fwq/PX7lcJvUdTeSaRQtJpRm5MLc2V1YFmS1ourXGqFFlwF5oK9It1ltbAqZRikBrpVZSQUgDWmyNscIq0K+0zNAqd+cz3377LYe7Rz6/zvz8+YWfvzyzNqcsPoMPR+mozUbZV0N2Y2nW4cNAGHsajcuySlSVbQQHQ3CcxkBwAt85KqZk5twoe8GW3XKlsUSxaQs50Ff1sPYW1wkiYL35DZPcmC2errCWGeMrLjRcKPSDYxg93sO6Xvn6/JmSM+MwyE4xb9aem8e2HCpW6Q/eDnQ+MQxHjPkVaqGWRFyNOEqlBK2KbMDoHrKhZvg3mUDJWX24FdTRbbI38rq8uZlzWGulU1d3IZn4i4I9cuCu68Lzy1f++V/+mbfXq3hYLws5Rl6fv/L29Mh0fYCW2UJNhPtS90lUWMqajFRBGMC3tBdrHMFDF2SKG4YO5+5wPpBLxVhPP4x0/UipMC9xb3jeLhPH4xFj3b6P3oqt3RERtehEmLjJiUayla3xFLnbvMxcpyvTPHGZLizTrMVNnvNyuahf+S2cJK+JVIogRrFhTcXRCMYyOktnEfjVGFrOrPNMSpm360o1ntwsYbyjDSfWZSWtUTXG6GdqJRFLp9uu61jnVSSBFfou0vc9y7TwdrmwrAsxx313apw0kBs6tcZJ9NO1KCqhKxUn6Adq8WiNofOWYK0gDM6JpaBpe7HtO0+zYhgUmqM4iSxNqySBWQxD6KBUWi4Uq2ROhMFs2BA1RTyclYkQlKghX6UWrO+wPgiC8d4FzIjfsrWep6cP/OM//gcJgnj6hvP5zPF04Pn5mdfXV+Z5prXG+f6R0/mBw+GMc56amlrervyn//T/MAwDx8OR+/Mdx+ORl5cXlmXmhx++x3vPv/t3f+If/pf/maenJ15fXxj6geMwchh6LtOF+frGawicT6edXOqMFFjbKt5ZDoeBvgus88S6TDhj6MdBOENF0A7vHCVn5vn6N+vc76LYghL8FNIV032vFPOO4DOpCTM4lUJWzLxZuy/tbS7UmJjWlbauAi8Eo84gt/xGQ6NZYd3KbtEoFGKlS32HyW4sU0yRizg4mRybYRyPAlvVxjwvDMOBT9995OPHb/nxxz/ywx/+wPF4knzMUvn69gZcJJ92TaRUbnCeF/mLMeKe5ZQAczuIf/vYdL5NdyYCcb9z1dIJBBoxFVIRgXZMjZjjTuqqWTr3lhO1JOq6UnPi8WEFP/CNP/A2RS5LYk6NcDjQBUPOjbiIm4tgKBljPc0K5R9bqUYOUO9FF4epYi23wW9NkoWsE9s3Fyy+H7G+IxYpAhWL9T2+G2lU8czOhdJgiYl5WfFdT9cNsn8zjdrqbiW4LAvX+SJB7KaS0sK8vGFdxTpx2nl4OFNyoesC1sLb25uuHpoyLd1vpo1awCC6Ua+xYRtzXaZg0SW/192VUrhcLmwhCFuiDbD/Gfk8xaHGOafa0hvD3niB+rwJsjNUSM9g6IIwQ08nOXhavblfSXDFxPXtlcvrC4aKM7fdUvEWayo0gSKb3RoWMWCI6sxUSsIHxzRdWOZJJClxoSHM781R7Xg8cjwe9wK+rWU26dX22FCI7bVv79N2+Ya+VytWKMkIitUKS5JQ8es8Mc0zcV0ppbDM044ElZSkqCJ60TUnWo7YquEJVEF0TKM3Ah8Ha+isuEfluNK6QD8MxCJa53VZ5DWGzeDE410QvWyuvL1dqLVwOp1oteGM43Kd+PL1mZwyIUiqTloj87wwr4tCqTf7SrPpm5VsuGUUJ6se7c6oNA813ECK4AZVtIZpW7tStQaaTXEr/uBG0JP2jkD1r01OJPWHnSeyuVy9VwPc5HdSRFqrv3mezUZ1Qzg2sx8hPsrwVDKMw5GHhyfu7+8JfgAlMNZW+fj0gePpnmE8iid6LCzzgjGv1HeuVVtmM4je+3Q60nUSr/jw8ADAskiAi6gR8j6J5pR2zXnwjr7zqqsVQuvY99psaNJbXFl1h5uScDjGwVMwxL892P6Oiq3uLlLO4s9rtlBuKzmBRSa4ZY2sa8I6we2bMZgtC7XrwPkdNjPOY1zBeRFHULkxOq2VdB+dYuVC3ZiQaoWmMFErsott1kBpavAehDVBpVI5Hs98/PiJ7777nm+//Y5BQ6StFx1iKkV9NaEaKwV26/q8dKIKKMvNsaM5m/Oz2RcDJksxqLoDE4hZiVy0HVJuVGIx5GpJFWKtzElIDzll7c4jLWdayZBkR4XrOL3N9OfIdU3MqRKrIbgO2xSGs3Gfjhpbo232r1Ih5Y0qr15z+udSkwvTOHFTwosMJvQHfD9IMS6FVBrVWFAZVK0NslhArjkTc96ZpnZjQDfILatVpEz0wTSxr6NQa6K1jDGNrg88Pj7KlGkt1lmWedWJ1tB3AWcloaQZcSxzVmQ/h/FAUBlaSqLLLeW3Xsvvi8nGpt7N9c1N/iVf9varrjK2gox+/jf9tN2hPQk194zDwPl0Jj5FjHXUUohx1b5LtbTWKIEpsPEQeoX7xY9XUmKssoKtgZIiyzIR44pzRiQ180xW0pjs3wwSlN7t7O2kzldbSEhK+d3BfoP8t12ZpL7s2DYpFZ14oURpYlJOzNPE23RlXhbWuGpMpVWoVwxHpO9S7kYrmFrpvcXawPF4QPYfwv0IyITrgGChc07cqxpiHqKM9pwkjtOUqkQ2/Vwbuh/WaEQrRK6+G5jnhcv1Ig5tTtY3dZOh6a5014u/m+o3hGpTN5QqlqZbCINwVuyOCNYsaIppbS8MW9E1+7WzvbOqe9Xfc9ZKWIYWRqdQ/uZIt23m2sal2CfVLZUNcA1brX62ujdudW8wvA9ahL0m5wg5pdZGCB3jeOR4OFErXC8TcUlKvDtKuEgIOGOZo6wHFm2y+q4XqLfr9qhIY2SNZww7nF9VRiUEOlnJuY1/0Mq+f22qx+26QG3lNs3Lsh6MZUlZV4/SXHvncKGjVYQw9jcev5NiK0zMXERkXkoR+riRQrsFg5cqcNThOIlDVJZDtXmPGwY6Y3aZCMhh2jSYoORCAbyxyoRzOAylGRF+x4RBp0rtAtMaIVUKqC5P7M9qK3pABY2xcnz76Tv+8OPf8e23n3h4fKLUhvO9FFzrsGHzAnVKz7+pslorAiM3SXxhL54yeTcl5aAHrus6KW6lUnOmkpXwIKkwtamJPo0lQsGSsSQqS8ksqRKXzLpEWsriqtUarsC6VvyceL4sDNeV61JYEhQ8xQRlBzbC4GkxCmrQNgtCkTqJXlScaFJplJZVwyney3K0FIGgraEzovkdxjuGwx3VBtY1s5ZGrJBx4ptcG7YWulxYcyWWSmkGvMcEMc0vLcokhOyAm7WyD7cV48S5xzlhDo7jgPffUooEU2wTbVUZjLeeLvQUW6Flcm4M/ai+247hp4GuC2pXV3dS3q2w3ow33odSSJHlN5OuGJaIocmmXf3NFOFvf84YsYnbSHLGGNE8qt3nMAyUnJjnq75Wz3gYuLs/8fT4QNcNO/lFohFvh/57DbO1hpwS83Rlmq6AmGvM06R7RCHZiA+v3jfKd3h9fZNwDX3uXMruRb5NP/+6GXnfoLy8XlA9jsQKFtm9LsvCl+dnia5cI6UWxqEnpyqM0ZyxzouBgWoqu9BxOB05Hg483N2zXi/kuMgEmyO2JvmsjeUQOnone2jZ70ozK2z0hMlFm++6cz5yTXIP1iT5y93A0EWmZebtemGZV4GZc97nzKoT3kbJSVmQG4ncE7tT6yUpioRKnhIYIRs6I0QijCGnrVRvhbaxGTBYrJZXtv5KiqzyCqRxHDkMGjeoK6bNnKJw8+fenfywu9MbRlYsW7MYgtci6Bj6kb67BYhY46Qx1nOwVgi+Y+xHxuEAzfA6vorUCUvXDcK6L5UlTvz1p3/h9fXC29uF6XLlfDyJucYoecW3NY2gTdZJ47NJGXNOSlgzDH1Pw2FaFcVBjkQDeQ1yPZVEyYmpVI7Ho0T7NbhMCyiEvFnu+n4Q0uN/g0H+9vE7KbbSaIoJ/bYE0AOgioyyIgf18+sLXtNZUsqkknHOSwzV8cjd+fxueV+JcZFCm2VKDc6rvaPA1FjZn63LivOdaN+UkJWjdEK5FIm3Q6RD67rQaHRh4Hg+8/T0xN///b/nux++5+7unsPxjA8dDw9PDONILiI7ajqN1ormMmoebi10fRCWo+Y6YptOg5uY/GYmcX17IyW50WOMzDHKe5FEq1eUdFGRRgEjt2JuhrU4UvHkJje2DV52O8bQW/DdQD8OGN+TcXTjiZPtsbkSxrN4uZYKTqbWPSzbd/hOsj6blT36e5N9eauNklOKSjHA2IaLOlWM93z49Ec+fPsjX78+Y/yB61L5/DyR0qqU+8a0ZN7eJmotdEtimCMhC/S5ieXXdZVutkK+znSd5zAMuNBhrCPXxrxGcrzlEs/X6aabbo3sM87K7lam1qxJPpbBDrhwE8GXUliWhWmauF6vKvi/kYAeHx/3iDmxERUP6C2fOMYkO8daiWtUpySdFsIt8H0zQ9ijHFtTj2YhxW1aYKMkqpwTxnQCPerapRvCXhRzzdRUdzu+thtnyPP99a9/4cuXz1yvF4HaOscShVRzOBx4fp1oteC83MPTNPP8/MIyR67zRVYFVsgx3gYFPppoc9mWx0b37tqMOpkgmlVL1pSUv1CI68y0zKRawDasM8zXC+s8CZO+Nsiiv68qGfr+hx/409/9yNPDPR54+fqFZbqwTleW64U4V/rgOA49j/d3DMMA1rJcL6Tm8FGeLy0L/anQhY7j8cxD86w54YLBBUs1hbvjmcPxiO8ld3mNkTWuWOPUHGbbHRkOh5M0pcZIdFxE2eZNeAuiMxIP5I0MqTaRVu/fDQ2wiPJONMDtN/OrxeyeAVsxF125NG7bVCtF8b1hzPbrFscosO2Gqrwf5DaYuO/7nYy0BYgYY/W+Ellk1rzaZdnQsU1eI41DXGUvO18XvA2EYPny+TP/8f/8j3z+/IV5WViWlYeH+72xFcWB2e857zeYf4OzvZL3Bu7u7jjhibkwx8h1euHz58/M84zF8Kc//YmYVnEou175p//wTwx9Lz7kSeDjVqXRJRdOuQopcDj+zRr3uyi25t1mUliyAlPUIv6gko8oTOLahP7fqCqsV9suhUL6w1EgkybWchgoXuwBK2LE7dQ0I7hO2HylMgxZaOubZZwxeuDJTiXHwrxOXN5euVzeyCVxPEmh/e677/j++x+4v3/kcDpxOp05nu/wPmi0m2CttWlUHsr8cxZrO0KrxJJp+ebMoyOLdJn7RCCOKLFaYVc2yFiq8eCsaOWMwEluuxU29iriAjRU8TltRYLrXatCUjLQGyh5Zeh7zndnTvcPhPEsE2YDwkjODarAblnzTBui8bPe70SXphT9225RDoY9wxZJB/LW0QWPsZIV6Y+P/PDjv+d49yoT2elIMx02qESoVpZciSp9mNfK63UV31RE3xkXaT62/GFvoMUKVYz9a7OkDGusxHkSnlGtpGXdWaZsuldjaFWkOlvjVmsllYjsdcQntxTxxJ3n+V2x9bdpwDhl7AqMuq5R98ozb2+vvL6+svYSQkFpu6zMYna26nbIbftYkEMuRkFFqk7TKcU9S7kU2V+/vb3x65fPBE1gqQ0p2JqiJR7dGwx+29v+8vmrFs+Jw+HIQ39HPx4xThjSuX0BYzme7zgMB4bDgX48cDqecJ2mb/mA9Va00foaLJZqFDgV7qNAv0ZQpazXUa1VAsHjSopin7pPxToFz8tEieICtethaPTecTwc+f7bD/zh24/cnY5cn78SPYTeM5qR1TYWUwneczyMnAbJHi7I5OhwtGrIubLGxKEKitAdPacHQzYGrBAbcyscR8nR9c7jQkc3jDgXGIeBeVmUryE2n1Z3/hupsbaqMhLR8W7sfus8oRNZjfdhX0XIdWX2hk+xBfkNnVkEpZeGRuZflA0thUgayY3X0rhlg8t9YMztzK2ba1ZTFcI+lwsCZ63E3Vmd2DdEEmOlVdjTpkTtEHxg6EeGfhQ5nzcEJ5Kp4Aqd7xi6XmI2hx6KGKtse9Ztf91Mw3eepDGMy7pSWiOmxLyu+OB2t8CsKWbnuxOpFLheMcYQ14Xr5Y3WGjGJ5/b1euXXX3/lOl3FREhtWClWJ3pxDVtTwr5LgPu3Hr+LYgt6gXGDmbZuaEs9abDr2+TKuu1djQYIW+8xTtItdms7o4VcD/yNWSy7W7UJtChL8lZst7SW0AU90DJvby+knJmXBesdd3f3PD19w8ePn3h6+sB4PDGMI8PhwOl8JmWZPjHiTCXsX+kOi+5phG4vsVtZf28nTiEXU3Wit3VNhPipNpJq8jIb5Njwlk0wIq/XGIwX1yBhK8tcedufVlyrG5+b3oJRiLzvJT3E9YahGRKG6nrpzBsEA60U5B+SA6Gql2pp0IwyZzG7vZ8kkVSRUJhbNy47JWEvuu7Ah08/crybgUbwTlm40pK1WliWidDL/sr4gdI8rQqaUZqnGSGbWCyuWTovph2lVmKKeK83KYV5kSxPoZTYHU6W1yHhFM7LYWZXQ0yJmMWz1mxSBrRY580SMuqeTt14Glg7C1vTCGM0Kzdh+0opyYrACjsmYKhWGsxcbmk8gDLxZddkrVwvqaohAre8363RySWzxsg0L8xrxLogrmYqb6tNSHe5iCxC2L/o35Xs0Irspg6nO7UYrfTjmdI8GMv57l4NRk4M44HhcATv5PD0Ht958WdW/aY3HtyG2xhKE3i2VNHEOisHthAU1aYRcGGVIrXtuq0V+LgUkciVQsHQB8fYBR7ORx7vztwdD4zB8xZXXM266wsMZiBU8fQd+15MC9QObSMWCbkrcr1cOSwrQ39gGEeO/QFCoLRMaYncCmPf451olWUfecAcDA93d4pkiMvVvK7QpCXOtWJSVYhTpSS6z26oq50P4vbkPLVsKUt7v7HvvrfDo7bN5JI9KbAB1Zh3u9SoRE31lW9aINmI7rLrr23zXFZkjlu0n54k7ERTJZua2ti1nO9WYO9RSxCGshSpG4Jn2VLMnDZjjbDbZcr7I/a5CudWcaUKJVCKrNKMNZQm9+Tm11CKrANojRC86Iud1JmUIuu67J4L0jyvez54BVwnjQQm7XvrlAvLGuX771Yw/73H76PYGsShBIM3XuFSS6mNRWPGrLuFbEsAuBfJQbtJFxrsSThV9yw16W5JSS8hFDUaqJTQdL+z+ciqSHkjnYxHum5LGRLIL6u5w93dHU9PH/j20w98+v5Hnj58lMimriP0Hc53LHEmqX4w9AOuyc6xztI55awQZa2sa1T4t7Kfqw0wDmcTwYlJt7WOKcqk3zAy1XrZRVsrzlc3i0HAys0s3ak837Yz8QZMTZhaZBfqwKluzBiopimRwAKOYh3ey8XvatHJXYot1pFyk+ZCbdBk/92o3ExFhGtg6YPfb6RaMyVLA4EJfPj2j1gNY9hYhxLsbqAWnp+/SASZkZivzis8yWa2kNUbWezWTmNPzYnr24U1fcF1J0Lf0QdPLhr/pk5P19cXUo4YGsfTicenR0Lw1FLwveH5uVCukbJmrENZovJ3a6uUWqTopoyvN6cuZxX2DJIZ6kJHF4oYcrTGMBwIYSNLbalWytCPmaq2ksYYgg00o+zlWrHBUdPG5q2/sZTseymsWIfvBsJhpD8eAYtPWQ92lfwUASk3tjsWmvF0w4mYVj5888gPP/6gKVOWaZm5e/iIMZbT6cQ8r4Qge+N+OEjhbsg1kQQCtlYY6sVDZ8JuhJKTFiI1osg6FYkGN2M0paViQA0zat9hSqIPgVwypSDXBTCGnofTkU/fPHE/jtiSideFt8+/0PJK38mOPPQHOoVfu66jc5Y1q0dxM0LMul6ZUmWuhtqdeTSOuzAwnuX9zDWRS6SaJqsK1R0Pw8DDwwPDMPD9p08YY5jmles08/r6ynVaiCmzxEQsjbSscr3Ups2P8iHUXc36gDFe7BZrUdazofYa1lKl0bWbDlAXtLltI64ctsN4ZFgiMWVizHreyH3sfdjRmNuvZpdc1mbecULenVNNoO6dNClTBO2dTnfXQ7fGusTbKqRCilnJY1tAA1CRYIla1A7U0nlH8Y5cK4uiSPM8E0JgGEa2YJItaATlIRjjdgTLGmG3i4JghWZIadVISvk5Nz/7y+XCvCzKr5Cag9E/Zw3LGrlcJ4H6byy0/+7jd1FsDYYUpUD2fa9EqaisYrkAMEYw/yVBMxyPJ46nk37AQo3v+4FqUENySfwQ0onH1Mq6ROY1YVPB2UStV2ISaG8r4pvAPuXMX/76V8bDgUFF+jlnhvHIH//093z69Ik//OEPPD49cb67p+t7hsOR0HX4EEil4rsOnJPd4DKLlaJz+K7HJslpXKNcdEnZ1tve+gYli75xdSoexzHFIsXSeZz1SlQRuWwuibZEtZDLOIeSpgDjNP5PzBgcTXalVpinyzSxzBdQjRnOMyXZrzYXKDZwnSZKSoydxxaR2siNt5nVb725BAu01qhZ/twGbRnTlPGqEKs1OGPF07hZRSBu8PPWOGwG9fqvyZ+zqNuW1nxjhUBirXTNYSBWhzE9/WHgQ3+/NxOlNdygsYprppRltzbENq7LzD///C84Gam5XN94fXlmniameaK0LE5ZXqb4ZY28Xa6E8Ao2YJrRXboQYw7Hg0oMPMfzcTdr6foB6zx9P6rH8TumJwYffhu24IwUIqudea6JvhZlYzbmZeI+ruSSuc4Xfvn8WYiA1nG4/wZrgxRCpOkqWdOIMCxxVQMPkWO9zYlLLDQs3fGR0+Mnuq4TkojtON/Lrux0PPL41GOt+FYPwwFrm1iXFjksq17XtRWm68J1nvE+EHxgiYk///O/8PMvv/LTr78SDmdRGRhBr3onvsQ0IUltoRydbZj8wPTSSLZRbMO3xnEInMeOx+PIsfe0tJCWGVMSY/BiC6tEo7Pq1o0xIk9yYlqQUuF6XaE3OFtJMfPTX/7K65IZn18Zf/7MZZ011L3ycnnh4e6OH77/nh//+COlNL5+fSHGn/npp584Ho8Mg4Sof/z4kbs18cvnL8zLMykXfOipDUouLNfI6zRTkjQT5/snYpQpal0y3neiR60FGywVI4laKWN7D0aS0ULoyMUyX2cA+rHHOE2mmjyvb288fSMeAELSMyyrNolI+o6siCS3eF4jP//6mfM58vjNI9553dEKarjEtIeT4BxFugclvQZ1uQp6rfeiAKlNzlddCXrnMD1cLq/EZeHy+sx/+a//mU8fP/Lxwzdcp4U5Zi7XaU9T+/TpE69vb6xxZbA98zyxRaTWWrler7RaGYZB+AdDL5C6lWbw+0/f8nB3Fp+GuPDwcMfT0yPfffeJ77//jsNxJHSeb7//luFl2PkX90/3nI5nrBMP/L/1+F0UW4whdJ3ANTGyrIs6kgTuTide3l4l9xF6k201AAAgAElEQVTUwk2JNwotWCN0867vhVKvpJ3NaQgMtlSKv5kEWCvpJibfAueFiSnRSpszUc6ZucmN573neDpzOh/58OEDD4+PnM93HE5HetWC+SDduhRPuWC993IT1UqJkZTFbzfvEIfC2woDlVZ0ugAQ27PNv9g6y3g4YqzALMEFlYlI7JowHsGYTgqUlUkr65SxEW2q6vOsNRRncE6kIbUUco6sTSLv1tJIDQqO6jpBC0pmmRZQCVLRCMSqMuVNTlU3LLK9YzJuhZF3+yXANB3Dm8L8KnMxOnVsGkOxa1TTD6S4yOtVhyNjlHG8vT8eh9kZmpuQemMJVHWFki/5rncOp6YZzVTWIj7bl+sb0zqx5lVgTyPdfGlidp9K5jovWP9GFCz9xm7GsmZJhvLekVrd4+KwMK8RFwJNpRfeC1HIGiHNtZR36UdtGj1o7N7kgDqdGW66QbUDxVjWlHi9zqwxY/qgEJ+jVMOyihQlp8SyCrHIIHZ3l3lhWfONbWm8aKqpNCt7SfGFFb2zMbcACWGobsVWrS71w+878U3e9o/X61VSbpaVZVl5nSWpx1hDMIaxc4K6tEJLC72StWwbsWmlzldMiqRkGKzn0PUc+o6x83gatlRMrQzBCdvY2s3Ke99tbo12a6Lx5t1udINIcy0s60J5uzCnxus8kWuh1MyyzpgKd+c75nlhWYSoJwlEQp47HARmX9eEDz1d13O+v6cax6RcA7AMxxPd24FkFDLF6r+jjm0ugI36s1tSbqwxMUf9Xq0kW0m5EWNm1gKYWLFRkoecC/TdAWsDtRlikni5NRaVu8l9sqaVeY6sMWE0Oaw0mJeEdUUBYNHtg9nXR1vAyebuJtKxxBpXhWzVFrU1nDPamAkBKaXEdHXktMr0WQp9p8XaefyaWNaVrb2PMWLfpU3tEqVtrN5gdWuoqigxVhj+h0PH3fkkbnNx5Xg+czrd0XciGwohMIwjoeu4P59FPoacS8Y6jsdR5Gf1f4RiC4Khm8a8zMQU6a3FB8/57sx1nqhqDO/fSQZQ+rz3Yfeg3WDkLZd0y2SUiLlbiLtQ1+ueBhR8uH1AunfYIImSCwbH4dBzf3fP0zeP3D88cjydGY8H+mGkHwRCNlbhiqbxUMqMK62R1kxcV+Y1knLayTayj9M4KnS3qWQwQJnI8jqFWCDJRdao9tU6YTzHxDTNO+mo7ztqi8SsrOpc5GDe6g5yU1Yjrmy99zgr+78YV7CWjMijUoPiqspWDGWJYiK+MZ932Ev30U2eW3Y19l9p9GRnajbIrFYxYlDvV+dUJqWF1gDOW/VBtgS3+SkLa9tsSym0mXJbZJwEObg9jUM0zPsEbMxecMVv2gpj1lqMM+AttWVhTldNAnHCDg7WkHRpVVpT2VVljRFznZmXrCYqmybRkYrA3s5LXvBWHI2B0+lMaY0xF7GxAwJBJEIIhFc0NtBaDbGuYlEne01pNrbg9/caXmNl4nh9uzLNwrq3WqhzqUxa4OIad1bnRm6b5ig5pd7J/rbJ5yRVymFtwFmrO0WZCLd1h7VO2ALG4ppMzl5dsPp+VDlP3XkZa5Rfa2lM64o4d4o22DaHaQInB1N4OB05DR29Axtn6nzFlcxaCqcucHccOY8DY/A4JdbZWhlCINhbw6e6OjYgqRZtdq3I2ay11L07FCQixkisV8oceZkmRY4Ewo+nRFzTzojPqmmvrezuR8Mws5wiDw9PhK7nvhtwrofnF2YbwSR8sBwOJxZroFVyhdKMytlEdmh9QIzEDK/XicPbRbyA21FIjMay2EKJlXkVr3fDivdGPYEtXTdSMcRcIWYalmWV86JWObuWdRXi37TIz9AMayqUy5XN3cpZQ43rTrgC8SRfQ1AkzdBa1d2ortHKu0xfbRCKSrw29r8zhr7rOJ9PjH0n/BzraGghl0NM0rq0sBdlWxtz8/FuqjAwyk9oVbk0Boa+53A4YJ3kX3dDz/EoYR4hBJZlZvN17PuO+3EkeCHalgaHQ4dz9gar/xuP30WxFb1g1WV/5e7hjr4fGIaRw2HUN75qfB1yACrmPnhP57d0FUNR8soyC8Qgtndmp687J045WCuSh5ho1pLVQ1aW9gK3ejWtMM5xf3fHH//0J853dxyOB4ajsC5DN0gEmrIKqUX3uosSh3T3phfass4si2D+WyFflhXjetkrGCn8IcghKbFlA30vXXDXDzrJyqQQvND2U0zM08K6LnTBcTiM3N+fZRfxrtiWCiVXdY9aMTUi4m0YDx1p7ahlYV0zFIsLHWBIudJKUoN1z1oTBL83CzlnbJIGw24yAavEi/fCeHS6rWJVuMlYUoZSHa1JQLYwTmX63Qq1c2qm74MUXwtkeR/ed8kgfrXbDRe0uGzFVqbehndWzRwkUMA4j+0MuSbiuvK2zDgL3kM/HjmeT3LPNdF0/uf/97/wernirpP6Tt8K2LzMrGsU0olQwTjMUXfDhnlO1Jr1cxH4+XQWLejd3QOHw0GlEz3OBeJ6y+F1RpmPBmrNiJkC2tlbsZxvQlAxOuHHNfH88srz65vsb52nNUOMmZe3i0xiGm84DKKNzDlz1e+FCvOaWGPBed3lo1C9d/i+J3SD3sdGJCvCZFEvXccyr1TEixgs1VhiSVyuM798+cLX51cu00IuMA4nchEU6u40MAZLjhOmRB5OI//49z/y4eHM2Hn+6/2JP48DL59/ZXp74dz3PJ3vOB+O3J1OOBBiTMn0IQjKoWQ9uTA3FXvbTetNcLhe9N/ROnIFcqHFREqVtU68zZFfX144HA4ardiLwqEZ0prIq6SRiWNT4+3lha/lmdD1fPvpex4fvxFzlH5kGBLGd1yvM/OyksvCw9NH5mlkXVdSsRoAIvyJZj0NR6mZ6xL5P/6v/5tPf/3AD99/4k//0x85jgcNYo/UBK+vV6brlevbGx8e7zidjhgr0PPr24U+iSlJ6DoJeXh75XK9EnwvjaSS/wBe3iYJllBEoOvEetXmTFwlSzilxJevL3QhiJb3cOD7Tx/35xESYmWNM8s60/Ved6ZiKnE+Hfn2wzeMXcCZxvN3H2SCLwKlx/S2e8UbYzThTXJvc8mSMNUaMSZecxKi07yq9CgT10gzTc7pVun6wKEPjGOP0QZv7AOH84njaeTyduXt7cL1cqELm/rD6DnqqUWQy7/1+F0UWxBiE8Zw//TIP/zDP7AsK9MkH9qyLKoR1A8+JVJMxDWKy4sVezuTxIiixIRtcFbD/7oZROiUuR3CK0nJVqIZ3MLet4Irwd1iLffw8MDHjx8Zjwd83zEcRo6nE+NhZDwc6IZ+X6xjNVTbCINyXVc1AhBrOaeJQ2KmEVmXRdilzuN9x3gQyMKpYfnOHgxCfhJKvkxr1m6BC5lSkmTuWoFVa60sSW4Q6zy978G4m0h/9dTVQl6hiZSkH0eK6jOXmAidpzmPyY0pVZn4rLCcQWzjTFUSgs24UinVUuvNElCanbp73G7FE2SaBNnj+RCwfsQ6yeOltv092lCCbUgdvNr5WSFaOZ10a92M8nXSNWBCB9bK60Zwg4xMCgEpRhhwtrKWwrrMTNOV5+dfiOsMZJxtjIM0QdaqXrghWlDnReoUevrjmdPxDuc6LpeJZVpY1ihkESuMbYyhGEMsRa/zC80ZxsvI6XQi1sYYV8Zloe9GcRHKTdmUBarRDr6Q0qoG+QKf972n6x0pLSwxCjPcqvNT+ZW//Pm/8vLl635N9d1IiZJdLIxPIUqtSXyI11mII6td+Ou//JUhdHKveEdcFl5evhK84/7uzDCMO2v6RvCq7z7vjaxid1nSuq5M08RPf/krb2+vUthDR8FjvCV4z6E/YFqiFTDVcHc688P33/Ph/swhGPoaCSXychqZXs7cDQPHfpAmHEONiVYS1CLkmCrM59pkurFWr0WjpB4jAextTUiNLeQWidPEOJzE2cgGir3CywvDMPD09MTpdOLh7pGxH/fViWS0SlF8e3sTRUMsDH/Xczwesc6JWQXwzdNHTqfENM/8/PNPPH34RFzvmeaJ4AdsKLRq8K5jGEZCfxBWvK18/vITYRg4nO/4YYvBbGIlWTKszTIXw9uaCW+TGGgALy8vvF4m7u7vOB5PdLnx08+f+fOf/8xf/vpXgu+5e7jHB0nPuVwuihJ6QifueJIx3nAtU+OquvGV1ipxWfHeczoe+d//t3/i8fGRt7dXvnz9zOvrK58//8I4dJQSmacry3rF2MrxOHD/cOLQBZwxONv45fMX1nniOi+8vj7z/PKVME/8+usvMjDpOb+hEKUUPXdnXl5emJdZpW6Voe/BmZ3RHNdFglO6QNcHnDdyUqgRRimRXFZqXml5pTlDw2NbxajfeNZm5N96/C6KrVzjAoMdDiNPT498+frMNE/kkuRmUJiBtk1lSbR3Tg7rrPZbeV1pRW6qDXOXL3XycZtZALr/U79RYBxHLYLyd7zzmtjSM46DGIEHfwt777udEIXRD65W3Qe8Y7WlpCJ7cWqiVnKMovkqhS4EmunFGCL0jL1Kjry4Zzm/RatJ/Ju8Z2Y/wHKWfVurRZ1vpLjFuMoOSC0qnbVs0XUWcDVgShaor0isoKRxSIRWmmfQvZrxDlNFDtMaIrjfSDyt0ZwFL+iA1xvZwI4o1KqfmxpIoPuT1gweR64GFwIuCDxmVf9cUiMXpFAj0XOlGkp1GhIvFod2MzJBxuc9jsFA6IcdXtoP2dYo+j4qE0vgTudxfaPHMJZCrl9Y5ivrOvP8clHHMEvwht4LG7FUYfuK/tvifOB0vMPaDmsnmpnIqQjxyuim2jiaIhlFmZ6lQSqF6yJwXUyNrsvCEC0CI+dUKUnZ3VVei2mSPmKdoescwxhoNWuTsjFKhS9wfX0hLitDP3A4HBm7nrHvGEKQnbuSSZaUoBSCmpRAY7le+frrZ6b+grWWeZl4fv6K955pmpQNKsX2lsJTVUIiwfZGIdusSV2brOZynUhZZD7edaS16c5avKnXJRKXSOca4zBwf77n7nSgt415GDgfD7CeGAzcDb3YLtZKTYnYitoXyv6zFPOOWyBNE+8KblNdaari2LTFRjbgdD7z8PE7wnjkfJnIwPFw4nw6czqdGPuB4DxUNDxlg6vR17ro5ygTXktZ3COb43TXy5nVRAtbWsPVhktVDnbnhNzUjXTDIKsI52kt0R9OuG6gWsd1iaxZPL7jmjHGS8HNlWwcc8rYVVKMlmVlSUl2766TzN/XN3758pWf/vozh/GICZJsZqxlmqNIa5DP0zpJO/IGXMvE+Sp2ilF06Ne3N4wxDMPAxw9PALvxi2hbL1z+f+req0my7LjS/bY4MlSKyqpqgRYAORQD8v//g2tDs/uAOySAwXDYGAKtqlKEOmrL++A7IhsPg+eehqUB1o2Kqo44sX27+1rfOh1p25plGonBoVWishqtcrH2FAjGNDJNo6w8vBPfutcM00AoepFLUyXNxFICOcaroAlgmWcOxwO2rkjFzZJSuk5QZcCarq9xaZDWq754t7syeZOztrEXbUH9V+vcz6PYavnD5iwjhKapyYgnMqZIVV/M12J/kOxYj/dOZPbBi9BCgV8WIdoo9ZOZvuz0rpeeciCL6lX2QsYY+q77Cd1nQStF27R0XUfXNCLSMZJxKBFNdenGxMsa4mucn9ziZScZg0RZXS8L5SZ1MY2v+xWmXmGMFNy6uhTactu+XDay5O9KTKC5vn7wjhil2NbFwkKKZS+SgDJyRV8VrmhRBao6CPpPZSY3smqs7KqMLRaMBZ3BtB1ZK/EEZoof+if83ySK73ztdI3scZKMz3MWIpf3vhTs/NpVKGGpmspS1YKoU6pEwSmFCrmMulMpTJkQNSqAtZK0oq25ijEufyalFFmDbRq56eZIdBcsY0HulaVpVoJ2NNZQVw1Nv6bue/GkPj8zTJHD/ogiFQSioq8yy7yIZUwJq/sCWmnaDmVqwJKzYRynIiyiiJwuEq3yo+VilbJinBd8ALuEq79SJxG1xBBxs5dRJxLtlpOEZSgl70XnaozOpOiu3m0ls3bm4cwyTISuwwD27l6ixn7Cq3XjyBwCKiU6W2HJhJIKtX96kvWKgtN4Yr8/YCsrkWZddx3rXYvtT0Z9dS2H0QW0IV9NuYxN5X2k2O7iGKi1xmAhKuZhIiwO28j3dLNes+pbTA6SztI0qNWKYDSbpkZFCdlYnIMkynXxaZbP+vJ7Z3Wx4b8+B0Ao/G3Vt7Ly0IIjvbu/5/Mvv2Bze89hnFDlItRUNatuVVCFVkaMUS6YIUphHceReZqxNnIeBvb7fVk7gLEdTSfBJaboM4KPpGzIWGIR72lT1iy2xtZZACBBs97d0qx6sja8nAa8c8yLY549Vd3R1B0qK6KyTH7BGIfKmcUJ6rWqO7SZySgOpzMvhyPPhyNZGdbOQbG9+JRZFk8o4QdVVdHWNY3VVCoxjBPjeWBZZoxRnIeBGCSA/scff8Rai3NOkpmWhfPpyOHQ0TQWt0x470QgaCCnyOIdYXG4RRKUzsMoiudlkSlikpWd81GmV5nic18YxoHj8Yh3cymici6cTyeW6GlXPZvtRtKoSjN38TqLL9ezLHLu1E3DetXL7heuQi5QwiZQhrr+vwBqcflyei+z9X//93/n6fmZ8zBye3vLdruV2/Y8s+o31y6GKNSfUG4z18guJV/y58cn8aNdLBPmNdBaayEQaa25ubnhq6++Zrfb8eOPP/L4+MjpdKLvJL1ks9mw2+3YrNc0qxV111N1jRxS5lVItZRb0EXxnGIRfpS/n8qHuUwzyzTLa697Pvn0czA9Octhmy6iJYqXTb8Gd1/EdcZIYUlBiro1CttYbFFQxqKObbsNyUgHldBcuNEKjbENlVGouiIHx3BYiOjraHSJnjB4tA+02qJMLeEAKVFpi8olghDRD2QthVj2pBXWSCEwTtSrzlryrFlCIHpfEo5EWVlp4eiEuGC0BG6nnMgqoHRC6Vg6ucwSI2FymEXUhzG1V+RcU4z/EixgwGo5hIykOqUS2B5DJLiSvHQRxwDH0VEZQ1NZ2u6O+4eWpr2l7W7JuuWwf2YaB7w/8+ZWAOmmrrEBxnlBHY6kbKi7DU3dY5qWOsLiAy5EvJf82tkHGfUuE+fhRFIwLQtN29ItAfQgqDor4fGVbWX3m2WsGUMsau3yecdIygFcwsel+KEl8emCL005sIwnljkyNw3JOTZdf32NnOT52O9fY86MKX5sBfM0sp9GLokph/OJYV6wdcW8LFfoO1CQkeovxsg/jc50zl1VqpfUFinAGucSbX1D2/bUthIgSUhoNE1d07cdfdPQNw0GTVvV7LZbVpVFeU9rFW4YmYeMY0TFeIXJ5CJ8TGWykckUMzRJieUlAlkZbG3odzfUWRNNjV1t+PLrr/j6777m9uGB8wxNt2H/vGcaRipTU9W2oA8NKUSG88AwnDmdTnz352+ZpgWtLb/77W95en6hX23o+jXr9R0+ZIytURiUrglxISRN1pUgUota3/lESDMxhZ9c8DTj7FnSgR+enzmfBimkKdF2a9arG7qmo68qljhBSlitSGgWJ5MF5yPnceLlcML5hK0aVpstMWtcSBgiVdvikyJOI6fhTFO1NHct/WrDm92a6XxinhcOhwNVZfFOmoAUI/v9vjRHgeF04HDc8803gcfHH9jdbMkxsl6vuLu7wZh3KCWeee9mjscDH378gZfDkfM0MbmIdwuVblmWGV2eoWleeHl5YZlmckoM5zOV0dfONnjPd9//mdM8cv/whr/7h7/nF7/4TAIP6pqmqa6f3yUo/kIAq61lf9zzhz/8gY8fP/Ly8oIPgfcPbwUBud381Tr3syi2Ei2WyCoxTgPf//gdZCU+uloO7a5p6JqGh7fvCvfSSpKG0ZLDmGSEq5UQV1LOTMtCuCytFZgSSiBdYaGYZPjss8/453/6NZW1kBPeLRxeXthuN9zd3nB3d8t6s2G32VCvV9i2lZm9kqKWQ3hlKBezuVKK8XxmGifGIta6JLe0dVUOk5b1Zs3NbsfiNSEoQlL4LLA6o8VbmM1PeKWIAvtim9FaobqaHK0cKEVEI+IYC02D1oaktJCAfCgCEcCoa3GEhLaWoGQPWbUd3XorgpWkWHyQ8V5KOB85TrOIii72iWKt0UiSSFPX1LagJrUEEyiTwYhfL4SELnQsrXXpdgV7l4LHaKHwoBLaFBZszEUEFfARQhQxU0we56UwufqSYFLSRpQRJSuGbArqz2p0TGgTcF7iOi5rhrbfFN+uWCzavqGqN6zX97TdDR8+/MDx8MRweuLtuw63nJimswieoEwMauquY7e5hazxIXHe3DItM9M0Mo0jtjYssxGf+DhIZ5eSTBOSiJ2sDVSmFvBGLcEIRlu0rtBNVVSq6dXClAXqwBJJSaYZKYv9wS8z0zBQpcRwnlBa89K0nPcHSe8p9KCqqmRku/hrbN5lhTMvk6xRisJ5mEYmH9FLRYhya3FO0lcuJLifFtuLQ0ApjfeuqF0NVSUdr/w9hVYVb95syUGUwTF5/OJQaWEcAt/+6c/8vq+53XasGkOdApUx2KYWDCuZqCaxTMVADA7vipddKXxZZwh0Q6F1kq5IS/5PVMUjXs4NayqqpqXbSBdkrYzcQ4jUjegocgIXFnIKVFajmorKmFe1/eXiYiwxZg4vL2hdcf9gaJo1xlTM8wx4QKPrBqUstlIoUxNUICGqdiQe4ToFs7nicHgiuAgxMM4SFGGMpW57TN0SEGcBVUWKsyRymYJwzEqcBM5zPJ1JSQI3bm7u2O5usVUjWNsyGTA2Yqq6/MjaR7yzDU1dF2+r8IpzTsW6J9S0w+Eg5+v+hQ8ffuC7b0UsWlUWq+Gzzz/lqy+/5O2bN5AjOSSWcebDDz/wp//8Ez8+fuT5cCBiqdqWdrUmKc16u2UcF07ngaenJ2JJaTodT9TWXp8F5+Qi4LIEO8QcrqstrRUhGkL0wGWNqOXS6maG88K//Lf/xr/8y7/w8cNHTsXXe7Pdsd6s2e1u/mqd+1kU21TGvPoydgye9XpD362oa9nzdJ0Qcd6/e3cdX+qSGpOjCGliigLdLjzg3gvkX9TOuRQ7wzV6Sguuu64sKQZCFuh5jpJfu1mv2W63bLdb+r5n1feoInbwZRR8sUjEmK6+WZXBWMv5dGIaR6Z5vo5S6loEUF3X0bXy300lo6EYZaTko+Ap0TK2zppisRGBjNbiYc1lNFJVlmwSOSiWILsYU9S7Lgu8AF5H6AWhLarmwirOKYOWZCWUJAv1/Yq5QOpDjKhLcEIQ765SFwV5LtL6dI1yk9e3xGJSr5Qp0I6CTQxRLCxJsjNjjjLOU5cg8cRlgm6sIpcDBlQBMFzyfC+HdCQEQ0yx/CTqVLB/TqGzRRlNZQQZqLMiWY0KiUixX6WMMbLnFQ+mwthKFN91w50yKFOx3myZhi13u8Rhj2RkxiMgsIDVZs3t7S1vbh8wRg7m6WZimCamcZDA7kozjWfa45GYRWCijYzBzsMgUxhrsUYKn7XLFWJS2fo6Mhdhb/HfplTsHSKSE/W3fOqXnNfgHcsykVPGzbPwx8tFsK5b1us18yRWoGEY/sJC4b2j73vatqUpHGdFuk52BEc4/oXtLpVnS5J/ArZMHZwXN4EpSUWmHMZil6q4vSnrmJxJUWxyOUbG5Pnu+x9oVeZ223O7afnsfie7yZSosvC3XZDwjxCj+Nq9lyKbkaJ70RGUxBq0QeqYLsEAmSU6rHOo2mLhSqoLQSD607jIbs+HEjsogkJrFH1bFUuhoakqUtuw224xemCevfjeUxIqUl3Rtg3uYp9LEu+2uLIGUILsFCU/aCTmsypKcFOU9CnLxGMcZ6GudRVV1WKrppxTwiYwthYlexZbGcpcf2LOaG1lDaIN/WpNVTfy+cdInGd0uZSt+p6qEOtAgi10AWk0bSOX5/QasJ5yksbDLfjgmJeF03EvKuQsXOaqabi5ueM8jHJBj+Cmhef9if3hxMv+yNP+gLY1G2MxXlKomrblfD5xOpwYTqeyJoRQQj3ausFqLWu3EFnCwjCc2b+88N233wrQo6lZrXrJY7ZyqWxb+U4oMsfTgf/x+9/xh9//jtPpxCV7/bR/kSD79fqv1rmfRbHNOaG0ACtihLq23N3dsNveMI4jkOhXa94+vOWzzz959UxRREgxlxQdD0m9Mo+NwsXLji4WPGIWsc0VGgHTOPDNv/9Pmrbl6fGxjIQMN7sdt7e33NzcXKPLZj8zDWdGt+B9FNvAdZSXrt5YqyvOBSU2F9xX3/XUVc1uu+H+/o66Fo5qSpl1vwJl5csWY4nw0IVMEnFBwAPOL1ehTCg+tNa2kBVRZcIoOZ1KCVpxdDPYLDvBsl+4zE5TAuIiirvgyEpu61qBrWo2mx2jC4RpLkIrUYGHEMlZgY5l94Wg/pIU22Q0Nka0FcuDjPKrwgEO+CCeSq0EY2hMJJEwlZGxNhIo/xe5rfwEen6pslk2nj8Nwb4kjsSQiE3CZovBo2sj+/VGLmmX1yRdlNzx6ns2JWIsN6BzyZi1Neu7W/rNhhQdOY648QeccxwOA9MiE4d+teH+zRs+//wz3j58IrYjFN57sXVMI8MwoivD+Xzm5eWFtuuZ54WUAvM88uHDd6IJ0Kb4hU25JIp3tanKyLyu6btO9raI4Cj6iMoQLpcUabdR5ae8gVzi4TgfC4XHIhnS8rzNy8TpfLza4coQiLYVfGnfrzBNQ1TTVWjmvcfNC6Eo4FXpbC+j5VAunMYYFl9yqbW+AjgufF6tbLH2ObIxxOCJORO8JCtN45H98wu3646H2w3qH/6G5CYsidZk6pSZZvGzzz4yXTy8zuNCLBc+sfnk4r/XVoRSpqqK7zRwHGdSO9CsLF1T0K5ZCeAhDBzPA35ZmMczp/0z0zjRtjWVTmxXNdYouqbC0NHVBqUSj/a5jGwTq3XPer1isy/ai/gAACAASURBVF2z3qyYfWRxnsUFElHCKXxAW0v0SQhypUHQxqCtpipghrpqcGEp7g3RSLRtiamrGlIUbYrVgqHVMUiDkrN4+KtGcmhtiVzUQuRbrzd0fc8lWcc7J8xr27Fe9SVAwECWLFqtDavVugiVIjEsJcNWVmJumYnecQkomH1gGISUZazldF44jY79sDA7UAn84vi4P3McHecpMM6BtrMl5EXLmeQD4+nI8fDCdB6o65olJ8I8EUNku1qz6lfFBmiZpj1Pj09UVcXL07PYfeqG3W7LZrumMpbKWtq25m9+9StiDHz88IHf/tu/8u2f/4Q1WgLvTcM4DByXiXE4/tU697Motrp0YVeDM1lg85WlbirmecAYmOael5cPwKsa1xhT4rfEPmJ0VUDgClcCDK7EJCKVsZJlHuFwEIGH0RXjzS1/+7f/hV//498DiufnPW8e3lEby3QeOaUz//qv/x1rE22jSXhqK97Cuu1QqiIsAvb2LsrIB4WJEVxgu17z7t1bHt498PbtA0llhLajWK02PzkMFUpVV8EXIOPfpEmpAtVJxugshJp5mqlwIllf9aibFc55XAjMIWKTZnQBF8TbtrL2VQU6TSQStbV0rcX2O172T2L6RvHJJ5/IWPTpiR8/fKBRCutl3+qdY0kXOpAUwtcgdEMKjnkRMctuu2M6DyzzwjLPovALvkDPRaDiZ8c0Sne72Wzob1bXg30YBs7LieikIFojEPucM6TXzFgyRJeZw8KiPVqPKKPoNh11Iwe6WmUJo7aWWhlMY2krcyVhRedBSfYtNggCEHPN/7RdjdENlhXji6bfz6wGuLnPPD/+iA9CH/v000+43a2LmT9jbcf5ZFiWmsWtmSaPlE9LXa0KcWhiOB/IYcFqyq5LulVjIadAjAvjcqSqaialeHnOdF1bRrZSjFTO1GV32DSN7GuTJiZ43h+kwLVNWUeYAlBXzN7x4emRYRAhj48Rre2V4d00NV//6u94//49q/WK3/3+9yxPe4ZpunoxUxCLjZifgSh4rlhyZsPicFnU201dwgZSYhoGrK2pqoam7QnaoZsVxhhcSowxgrFos8KlwJ9fRr57Hqj//Mjv//gjD7ue3arjZtXS2QRuJruF6CSsI2pL0OLBlE5fJmo+epIKoCPKRlSjyTZKDrPS2Kbn869+ye2bt9T9lt1mi1LiW/bnidN+T5wGTHZ8/O6PtG2NZWa3Npg8k93AeNzz+PzE6XwmpETftnz55ad89sVX9OsdVduDls9YxUzEs9/vZYSeA+O0YJUhRQmPmMcRpRTr9Zr1es12u2GeHefhzDCcOL2cCzs6USVDpyzDMkpwwCqzWt9wOh6YJpmarNc9khOmubm5Y1mmq7blbrdlvVnRtg1VVRcohb/Gm6okF18NtFbz3LXc7W6LZzYxT2eG4cz5fCLGwHqzLePdPabpSapmjoZxcjw8vMGpNY8n+M3vvsPamvE8cDwceX5+4nA4ME+exRuyVSwuUDeJ3loqDeumxtcVZz8RU2C12dI1NWOcruCiuq4JIUKC0/HM6fTvotFoappG9ABte5naSFMSJ/H/fnz8wJ//4xsao3n/7i1ff/kV6/Wa//W//p2X/QvTOP3VOvezKLZcxrogYpWUipIvkK0pHZC+7v/ypau9/Joi7NRZ5OIUhaMvaub0EztPraqrcEMCpGfQAe8azqc9bStJHXe3W7q2uubFLs6jc6StLZtVw2q1o6pacpb947wEESdphTKaaXbi+wLauuX25oabIrKy1uCDk3/ZoqhT+pL4UdKP9KtFKaoy6szyY6zCE8DPZD9RN4au1rRtJd1FWkjBk0KkrVeIWDXhkkNHUW92rWFTr8qOuRj8M1RGS6GeHXVlqDT0dcWqqbjfbRiXRawpKYgdhRLPFks2ajSkQvOS/bi+jhjneWaZX8k6ulJgwCqF1xqbpVW9jCUlXzWL1aXkHF/ycSVPUjzNKcmt5OKxlUYqlr2rvGbwnroRyEBq2sIoLmK5QotCGbwtI3AAdQmGkH1Z1sXWogSlWDU9q+09Ny7hfBJVZEh8+PjIb3/3W9a9jBKN1kKoQWOrmrruaGrJavXeMZzOnIYJvwiUxCqLIeBjwjtXlPEl6qwIfUiizBdbTboKp+ZpEjtZ09C0DSRhuMTyLOacigG/BKEnsaxppUXZncVbzgWS0TQ0iEUL4OnlRfJsleE//vhHTuOAj6GsODwxFNU9GXsRMpKLlc4UbKaMlavSRYYk+3hlLLZp6NY97z55x6oXwYk+as7TQPDieQwOfDairk2Zj4cR5wOHYebQVqwbTaMSlUpUWRGVaBaSMqiqIrhQ/NYKZQWvmpQiKET3oDVBKZJRuJQZ5gV1OpHHhdUPP9KuNigjk5qL/UqIRLkQHmXFc8krHsfx+nP35oHb+3vuHt6wu73B1qJad6lM55Ls4SW1TLrvFAMuheJQy7RtQ9s22KoixsDj4wdOxzNLwULmICK56Txw3O+Zx4Hz8UxlK/CB939/d43/DDGxPx7IBxG9uWUmX6D/dU1VKZZloGma6/qga1rWfQtKcT6dOJ1O+GVmRpgCAE0jGbJtIw2TQCtm8VAHD2S2p4HD8cw4BU7nhcN5Yn2a6Dczm9GTcmD/cuDl6ZlxHHBLJCYRVKqqRmlbAmqsUMYESVdsQyIQFLysTPMuq5YQgnwXVfHXqyL0LJCKZZ7FIpgiMXrG8cz5dOLbb7/FKMU//OM/8uUXv+CLL77g/fv3fPnl53zzzTf867/961+tcj+TYot0djkVhB8imfdBDkR0eUNMwS++joDVRcXwk1e6dDkXxXIu+x4AZWRcpMkYlbEKOaxSIIYFUqCpNOvtDXXTMY4jk8londlu7uj7ivW6ZrNZYUyN95FpclgbycoQQ2ZZAiGcSU6k4f2q5/ZGOMpd23HhEytyUReBLp3uZREpsAcpvBrZaSuT0al4FKMnRkdOsjuFSIpexDrjgAuBmBW27qiljqCtxlgliSd1TW0rGU2XrNCUM+uuZSIzjnJwtpUhdg1j17Bb9YhWK7GEgAlRUHtkwiU8AdkjVtZQVbZQvUSYIJg2CU2XDtWU9+E1DQQlxfZqF9Je8lpT4esqhEjExVNX9tAJlCpZx5fnoyhMmSBEK9YxhGEaYyTXSQhNJUjAFKJUKpOQy3g6AzrJIldH8dYlDFXTsdneIlmhmcPhhRRmXvYH/scf/kBlMpURMMNms2G9WrNZb9nubtFaMHDjODKcT5zPM8HPxDBfyVrBC7hlHEd08XHnIuTKMXLJdQ1Gi6n+4gv04dVXrgxVLZ9Buk4AChRFZYptG6GhSIHVVmOiJRYBkzEVuuwNXw4HDscjMUQen55IxVKXVb4mqaRULo5FYCLhEFoUumX0b8tEKALKJ0JWdH3Per3l9v6ONw/3VFVDDAkfIk0nO0TvPTkkMJX8Hiozzw41OUlbmjVzo1nXms4aOisXhUtIhtKGQBCfrZJgkKQKxD8mYlzkgqdEUGTmiefDnrMPuAS237K7u6ftVoQI4zQzLwsulBhQIylQKHVVCoeUytga1tstd/dv2N3c0HY96IqY5b31XtKiwoU5XtwLKUVyFE2LtYa6bdlu14DCOc9wOjBPE8E7UoioBCE4pmHgZGuqyjCcRxGWal0mS/EqKvVeIBTOCXlPqXzdI9eNZhptAT7UrNYrbne39H0vU5Oc8MUvm7zAQ8SHbso+uSbnCDmUM06Rk6zHqqqma3u6bsbaM0sJMfAhERPMi+N4Hnk5nAlhKZoQSc2ylThBLhheexWRZupKvNlyRrwyuS/6moswVozKsv9OIRIAlRI42cNLDKbj6emJp6cnvv/+e+q65pe//CWfffoJd/d3PLx9oG0qck5887+/+as17mdRbJVSGGSBrjHkUDjCxougJUswusoaFbUIZC7VttCLLt0xlwNYK7qqw2UtEH0VRSVbyQ4t5Ux2geSF3lJXmlVXsVu3PNzv+PyLzzG2xhchh4+J+/vbkoOayq2S6xdEUYOyLC5wPAygP/CyfyHlzO39Pe8++ZT1ZkVVV3i/EKNCW9mhaCtiGBlv5RJ6Hq7vjb2Yx5V8XMfzkWme8MEX2k1kGAcO4cDHjx/xBU7Rdj3KzVTGUreW7aqhaSq6rqNtW7q2ZZ5nxnFgHMci7towDgPPz4oQFrp1T1cZwjKw6WtyFgiGqSuOk1C+ppyIUR72quTgrlbyZcwxsxQz+jRNLPOCWxZIYg+xKREp3OQi3wrBMU35Ks7xPv6lpaqEM2gk11Mk1VJYFQIMuApgsuy2tRNYhw+J1gfqpqbrOlZK02hd8I+WutLX22/wkRBed44pSeJOQGOUYdeLyX2zWbHdrRnHIz9+/y0vL098+PADfhHcY1NV3Ow23N3dc3/3wLt37+n7DU9Pe/aHE/vDC8PkSdFBCpgsQdfjODMMI8NwEod0eeZTSizVco3RS16+DwJ7ERUmRUBnUMRg8G4hBIdWuajx5YKTtYgGJcijpm4qERNqXUR6wqU2xkKE5/2zhLl7UV/bEjiAVhhVLjxRQU7Ycqm7CIsuzHFjKprVCls3+BCZFk/lA3d3b7i7f8Mnn3zKmzcP1z3hsiys1kKt0ospnslUYAqKhUiKjnnx+Dngx0zsG0JTkdoKg4RMiEahWH6UiO7QhiU4RucYFocLiWQrohZVchMye+dRpmaYHfsp8Onnn3Nzd4/SFfuXF9w0sUwTLmXWtkZVDVQNSRuyqdBVQ92v6KuKm/sHbt68pdvsMFWHj+LnHSf5/RfnmRfZLbvFyf67kK+sEZX/drvh7ds3hJAYx4Hz4RmVi9bCCElsGGbRIoRA21Qssy/THMOHH78nBU8IHpJHEcnJEdzMNJ6AhHeWGBqMSaRwYRinEhf4Cfd399y+uZeksHFkOJ2YzkcRhNU1NLKz1ghQRBdFlg8L0zxxPspYuesadts1wzBxHuerOr1pGrF7jgPDcERrdb3At01F21phcBfb6EU3o7WiaTtypHDBFbaWFVJVV9SVjIpPpyPeLcVcmVm05hJ0krKcv7G8R//223/j+fmZ/X7PV198wde/+iVt2/By2GPrivvbO27v3rBab/9qnft5FFskWk1njUpSCP3scTha25ZiKz9N3aIvOYg5Sc5r4ehe6CEyJo5Mw4T3i9y0M9imRmcELOEDcZnJ3rPbbfnV3/ySX//zP3F7e8dms2G7W+Ocp7nZCk3Je5q2E+Yriml2JJVoqpbe1KRsGc4TcZZ9T9P1rFJCG8Pbd++5ub1HafDRcxxGUo7UqqZWFpRhmCe5gWmFzkISutxo0ZcEHEUi8/z8dA1syDHjgtCp3OI4nI/UtqKrupLPqaSr1TIptSSSm1mCw48nlFbUWlGvBeihtaIxCZ1W/O8/PtIaTa0y275GJ8+mq+i7Gqcs9nBAFRFEiFDXrQSHd71QsVK+puXM83zNrwSJtXLOyQagACdSTsKXDuk6joJXD7XcYjU5SwLTBbOoLhZkJe+dslnSnAo8w5c81JAiMSdc8FRzJePsEK6Xj7quC1Um/4UvOhblqEBJMsFWxMVBHWisKJDftA/843/9Ne8e3vLy/Mjz00fm4SjTGpWZx4GnxyPD2fH8fKDreuZlYVkc8yyHfAwenTNNW0OusPYS+7hm1bXXFco4jlflu3PudVeutexBy1ogeoebNDmqMgXJKCuh6eIlrEqncUmCigzjiXl2eCfRgCEEiV+r60I3EvGOMoo393fI+lVUrjn6qx9+mYUidFkJaCNFsqob6k5jMyzTLEUlBLpuxd2be969f8cnn76nbmu88yitqVvxul/CRnLOBFMoaAqa6g1pGUh+JrmJOTrUHPEJQV8ajVEWNCwpsNntxG6kNedp4vB45nA+cxwGzs6LH11pojaYbqTeH0loztPCmDRea8YkQY/f/uefGYdRtAjzRKos7W7Hepo5Tp4laXLVstoa1qai7jZEDJMLTGFkdpHZBc6DYwmBEHNBKWqMQuxqRZuilELlgJvOnA+Sw70sM6TIumuKAFGTveOcAslH4qJoVne0G0tdN2z7ho8fvkPl4s+3AmPQ1FiVChd9IGfZzT5/FEDGssxM40iMgQ8P73j78I4vvviC9XqDUom60owpkiN4NxPCwvn4Il5h7/DeMY5nmWwVr3mKmb5pYSPiqmEcr1YtN088PT0xTsOr4yEGVNZUVkuGdb4IY6Pk4cZLspm4Ki6rCtEvmII0Nbx9+4aq1iI2LROkUohEmKkviVCys92/HJkmwTn26xW2anAu8PT0wuPzE5998ilPT8J0+Gt//SyKLQAlbNhgxK+YRcmqlRZ/oTLoYupXxQSnkvx/JFL6NTpOXKNl5JYyKssDW2mJW0slD06hqK1hu1nz2Sef8Nkn71mv1+KdqxQhRCoLdaOLgtMBFVlbbN1KcHOCEDIv+wMvLwfGcWGe/TUw3lY1dbtCGUtIgcUHYeUa0CnhY2L2nul8BgpBy9Yi4y+ZtG6R8PDLbnRxMz5ekoMCVkmwfLdq6Tad+IkLZ9loxTCemaeJ6SeH9IUd3Pc9fS/KwrcPb2XK0FTkvkMlT/LCpe4qyzyP1G1HXYnxftU2uK4lBlfem0wKHr9MxOCFRlSoUanE+RmrxcsYIiEF8PJwy6dY9rCqjNdzsfdcOt/SwRLEb5xMKgcQ5VfKDldlVVB/8h5zydlVF9uRjBFRClPZ61g/pYT5CXjhcknTFwtNykRJTCAXwlIqfuLaGrY3d0WRvKbrVwyHF0LpKOuqFbpZhnGaiiLbCefbCxHKO9kp13pFCgFylgSn9Zr72xuqSoK9X15eOJ9OBQSxyK3fGHlGg5dDScF1J5MlLQlbUVlFVZlrbqg2mhhlmiL7YXk+QxAqlo+e6EQ8Zqx4lE2S30tob410xHVDTpGqqjidTmIxKpnUznvxaWawMVLFwOTEhqONpWob7h/ecPfmDdvdjqoRr6bSoK2iair6dS8rBmBxjhwrOZgv+82yk83KElMguSiF3CdSV9NUcjnLVWR9/0C/6tHGkp4eSYcDDsWUMlMIhKwK61qDdzhliCgm5zkvMy5FkpId+WkcOZ+liOQYr5GULiMJPbbCKDB1g61qkjZMLqLSIv7wkFh8ZF6iIAdLApVWis1mRYqiyr5cUsmZ5BfG014mHM7hllGah5iK7SrTNPLvu+pbbrbr64Ssayqs5soDCCGglHDVU3Tk5HDLRIyBED37pxexOjpX9rlij0zB09QWf3d3XRPFKLqW4GXfuUwjixul2DrHNA+Fm+xKJJ7k2uaUrhap2moqo6RD12LLbJtaVjp+kZ2tkvWGUhebm0yjVCmmcp4EdAmUEW1NWb8Au5sdq7Uw4FMSLCMg+1tzmSSq0jXD8/Mzw3jGOUnEGqeRvut5ePuOaRnZH458+PjIy/7wV0vcz6LYXsa/l9m6LiNFKZLm6s0DAVNkXXyi5EIwKjvbiyNEi4DKGk2OMrs3WqLZTNlVCTu5pq4Md7e3vH/3lvvbG5q2ESpUUQpbC8ZklE7yJY4KMOiqQWnNsgSmZeTpZV+CogM5G7quw1Q1tm4wVU1CMm4XH3AxYrQhpIyPCZaFcZpRqviBCwDgIixanMSfyf92WC07nkt5Aqjqir7r5VAqjNsQIn5aODw98vz8zMcPH5jm6WqPSSmy2+642W25v79jt5KYqZxSgYtHcvRobelqy3BcUE1DpSXqq2sawqqDHAneMTvZ86ZiPUopE65xVqCNKqb8jNMIED7nayJPvije9AW0ka94NG3E0ymOH/lPKrtHjfoLupYqI+ZUMoBfi60qa5qSDOIV1rny+0uBlXCD1yzMS+ddaj4pRLISDN8F95mxZDJt27E1lrbt5IteNUzDmWk8k5MiBhmRh8WzeFdGu7IXCtdiq2iMQaUyBtaavuu5vb2jbRsAEQkVNuyyOJzKJG1QQIieFMW/ebFQWSO8Zm2MkMasBIubsl/Uhd6l/CVFSKx4VWXlQpcC2WfqWKONwtYWhfzz9XolnvGuux5owlc+My2zWO2gJABJYMQSAkwOZSz9esOm63n7/j33b96w3qzlGSwIUflzVHRd8ZqnROMaebYWiMkVAQyAJitLyFrIbSS8k9zSpC2NMmAb+ptbdjc7TGUZYkD98CPRGDzgM/gChTFlT62cI6IlOMJ78XtrsRzOwTEHhwtBxHdKuuKsDNgK0yR0quQ5slYKufNkJxMwFzM+yE/OMjXLWcbwVSXrrxREpHcRKqSYmEdHCHI+uEm6z1QmL1pruqaS9JxVx812VbzOUkwqnfFF+BeD6CykqC8EP7NMA84tzMvED99/e3UvRC9Wrdpa6sqy26wxqqANi7AoKi2F2nvG4cQ0n/HOEdwixXaRNdLiHG2/Eh2OsfRdy3a9Zt339G0jBLemIvYdRmuWZWaIi4zKraGuK9kDX9YhOWONLWrjgNOBqq5ou5auXRcLqZwNu/WOypqiD5H3TDzMCmNVUWIX+6FW3N7eimVvGvj44QPH44m6rllvNiQSf/rxT3z/w4/s/28otiBf8pSD7H605J1iQFmFsqIqTSQ2u82rcCVf0kTkr9e/dxHaRIJbrurlylblsh9pGsvDm3s2mxXv37/n3btPqCuxQ2grIhFbXZTLssNq247JK5YAbWtZfOJwnnh8fOb55UBGU7UdxtTy4RUqT0wZ5wPOyfI/I/vBjKDXRN2pRITiIyc3iKetdD0oEbhcxiUuS3pRU3fU67pgxpoSw1f2zPPMNE388X9+wx//4xu+/+5b/vTn/7xiy0SE5GnrpiDSbjm8PLPdbmmaWjqhnGTnWDqYl8ePJL8QtEZVHdtNT9vJr9dG8/HjR2bn8MFJbF0RZJi6Kh7WfL2ha6UIl6JXlK5KK5RRGGWvO5h8SYksgjEZS+ay245i8i/4zcuFTF5MxufGiMGGMhUpks4yCRFvqMFAElgGZSxqjSmG/WLJUrLLSQU6EFSmbWtZeYSIcx6FXOiqekXXOcIcWZaICyOPTyfm6UyKYi2CiFtGgp/xQUbmKUaMMlTaFCOY2I26ruH29obVqkdpmKeBYTgxz2Px5gpxjPK5ik2pkcScvmW1brBllaAN11241uIf1lpEYev1WjzhyG7VmprHpyeOp6Ps9peBum5ouhKbtlnRNDVt27DZrAtZSaYxp9ORqVwmLtmhgIAlfCRlz+b2lpu7O77+5a/4+3/8B9brLRnES7sIJCKnjK0MmIaQBWOK1rSNYxpHiY1zTp6hMipO2oulJyTGFAnZMEfoO8umr9BtT73Z0rQtq2mhXq0xpzPYM8kYQvGeam1wMRLjIqrprBimgdktZSUhF0RTVXTGknMuI/eGuu1YbTe0secSI+mcK0AYuQjPIUsARSqjfIzwr2MkJsf+8VAi6wZAglLqqqYptpyL2vm0f2E4nYHXhLKbTS/Rf+s1N9vVtaP0bhRRWBRltzCAkR2um1jGI8NJ1L/LPFGZxOzF3eC9o6lq8epHj5sHzsfiNlgch5fDNbc2xoBfJuZZLgLeCz1NBJJiHbo3hubOsNnuePvwwKefRHa3t2y2N/SrNXc3W253O1CK4/nMxw/f0dY1d3c3bDcr3DxSV4bGysSn71dXu5u1A7vdjt3uhs16x9PLM1ob+q7l3fv3RV/AdbR8GdMbo8oEpXR/wLt37wgxcCoTjG+/+5bT+cR2u+Xx+Znf/OY3/PjhR06n/xuKrQJMEn+eUmLnIJXOb2J2Z1yYCGnmN/8mOLjLL7S2eDUp+1qtsVZRVxXb7ZppOMuyO16cryJpX/c9X75/x1dffs3bt295ePdOkGI54ifPMI0s3nM+n5iXSW7U/YaoagKWpB4Zx0VELOOEQtO2K8wFx3aUh7+uPdVhzxI8Pni8F3pKVBlT8JLRL5LxmQVafj6fcctCBurCZjZVjTKianx6fqKuG1a9olutMVWNj4nxcOR0PDKMg/B3p5nf/n//nQ8//Mj+5YX9y0GKUBmbzvPIIez5+FHz/fffczgceHh4QCEw76+//pq3bx8AaJqmYCULl7fKVNZQ24raWjGlK/E2p5wF4H8B2/tAjnshaRWgiCjCLwg4uSipLKsCayVfVuAlUTqrsmPSXILoX78sSalrxysd6eWhKp2prqDYqEDU7Bc1c/CJJYk62jkRPhlriNZCpcjJlM5Xpg0UlW9SmeN5oG0bjNakmKhMi2or6qrh5r7m/u49w/nE09MHPj4+kxY5bKNzxDixLKOoXwlUJZFQ7DYGayqZ7BhL1VToShfFcJYLiVVoA5mC50zFzHLNQ87UjaJuFE0jgfVGQ1tXV7WsjJpNiZ2UahxDQhkBDojOW1KsYkHdiYClZbXp2e5WuGkheAn/0EpsQxeB2bIshdubr+JPKeSW1WbF559/zudffMlnX/yCpu/wORa+7YibRoHCK0XdtIB8Lm3X0ncrCZgfxIPpvScuMtrMGag7dNZk54jecfKZ+TwzLBqXLH/64SNTyKzWK5YApu5QtiagmRbBiebkmb1ELmZlhamsrUTSHQ6cjifZDfogyrksJLPFzaQUqeuK9+/fU1UG7wPn84mPHx/xXr7j3geC81JoUSis7CpdYF4W5ukMaUTrzKqpubu75ebmltVKMo+bumEcBw7HI999+y2//93vJBRDK3xXU2nwGiYSBw3L/Hp5T8HJ90dfGOsSZuLcwjIPGA19V9PUhhhaxtGW6VpFbcTT6t3E/vmRaTjLdym9XvaUgspA3bc0tS1j5JaubSRBx4jOYbe75f7NO9brLXXbMjtPQmyZh/0z43Bid3PLze0tbVcR3UBdV+xudvRtQ/QCzJA1VShjX0Pfr3AuXMNSqoJwvZCv+r6nJIWKpdQWy6a6GNWKTajUmZhlJL1arfjqq6952j/z4fGR//zzt8xu4TQMNG3L/f09/+//85v/Y5n7eRRbQJkEUcaNWSW5NabIHCbG5SzFIYwsaQalrm+sraXlV2WUaCshz7s2vAAAIABJREFUfzSxQleJ4XxkWZwQkGLGmIr1ak3dNPSbLW8/+ZTbu3tMLXN95xLD6PnxwwvTIlFM0zzJA9J7kq6JyuIjeBfLzghZmntPduE63okp4UNAV1bSK0rBTUmSNmwlo7zkPadFKCohOMZxIpfoJ2sbtJGbW4pJgpNdJAYZ0Sll6Vc9F7j749ML+5d9Uf7O7A8nFu/JKKq6ue64LgShFCMqJoytuL17w2a747Df88MPP/Lu3XvO5xFbVdS1ADzmMBJipFaUjLKEJtPWNbe7mzLN06AsPkrHN44zp+qEmuQzjSFerVmqrAHUZSGXKPt76axzknGdqN8u6wJVQt8L3/oyRgZeI1x+6sGW4nFdN4iZ9yreIeUrBrOu6mIbei3sWmsZSyf5c2cyScEyjqBEVR1dZLATOStiDZWxdH0PJbv1l7/8L3z8+D2n4wvn4wvjKOIflQ0Sj/e6tY45opJQeVJOjMvE6XzCl7348XzkNJ6YlomU4+vol4zVCA3JgNKS3BtTQCeJZ7NGvjNcvObx4t0tNjolsXgoGaVWlaFpJOPTj7J7vyA+SZG2rln1Heu+p25a2kZ45hcrVyoilpQhK132aC33Dw989otf8P7TT7i5uyPDVfmfVRmHp3Td58tHIvaXpm640LBcEVEVobGAG7TF1DJVQmlJxIrC1DZT5OPTCwnF1nu0taXdt8Qk3GRKp++T2H1MdbEdGlLZbXu3YHQFKUlMp9LEKKjSpqnYbVeSd92I5Wx/HCBnXvZ7hiGgSKiiFgfRI6QcyHEhugk3nUlxpG0ruvWWh/s7drsdfdfRNuKxzckzjZqcArVReCR+0U1j6TxHZlsRlqnYieTiFLyTMWn52oToSvfpCNFRV5a6XxdRkZaoxiiTqaZqaJqWqmRtW2MlTKRczoRe9woqykksnN4XXcdFBGoMddPRNjVaiz5DkeX9DQnnvMShkop3uwCPsi1rxyJsyhIAk8o/V0h3LyStBVvNdL1c+nTxoscU5HKpVMn2Tq8sbC5HzHWvSUaagZAid/f3KGs4Ho8Ye+a+e0PdCM5yvVr91Rr38yi2OqOrjLrsfCgpJikw+4HJj8I9joY5jMU+IDfyKjavY0SlqGmIqhKSzRA4D/sSgO1JAZq6k7Qeq1nf3HDz8Ja+X7PMDp8S0xzYH2d++LBnXGZO5xPL4mjaBrsosnFEpSXSKeuiGG0AxbzMhJDwXhivzstuLisY54kQfIkJFIShZOHKfu7l6QW3zMJoDiI0UcqilVB+Qggsc+B8HFnmSM6eaXIEn3FOHp4QIqfjmcfHF+lwz2eGcS6XgZq2X7G4Be88SUXQIgQAqKqGr3/5N7RtjfOeaXaM88LxPKDKAXmzuyGP87XTvIztc8pU2lCt25KFWxGzvB/jOBG8CHZSiiXb15cYwutMooAoLvsfyrMgDVtOheF63aICBS+o1OuryEvpa4crFzfFhcyVVTmic6nrBb5wEdUppUWEl7gK6wTfqMt4rPxiaaSZllmEcDYRXECpkRgyro50dUffKbSt6fotf/t3/5V+1fP48Qc+WgMqoE0mhgqURykRwSl06QDlvQg5wzTyfHimHisgsz/sOQ1nFr+IErv4yvVl51QbTC2wjkwgRCeFIcv3xFp7Ve6ngqpUKqC1LQAQQRpqK51B01R0bY13M1qVC1MMeLdws9mx7nvWq566bmibWkLotWQnq/I5p/L+1k3Lervjk08+5bNffM6bt+9Y77b44EtGaSz7+AvDOxcEqqi6ldESw4jBOYuxRg7DLCrelDKVMphankOtLcs8kcIiJKrZ8fSyJ2ZwIbLabonFh5uyIFeNltdMMaGUwWpBfVor8XkkyQbOKl+DN4w1xKAk57gWYdIvPntPV8ved7MRtbJbJpZpQBMFwkCRG+RIzB6dHISZ6MV33daKtrZs1z19W1NbDTkQXGSZzoznA6fDCxrRWaQcJVN2zFetipu38mxrhSq+d/nei8J3mgYWtxCCx1rN9uENu+2G9XpF04hOQGuFNbK6gosPXPK5jZFwF8q5rUvXaCt7zYWVdUK4rix84WDnnHGLKNd9LDzrIAWwsoYYA8P5zLzMEqmqFcE7gs54J0XYlTxa52bIma7r5Lx0DjPJOs15jzEZGz3zPEFdk4q4kp+oX3LOpcu9XArkQu+8J6TAZrvF1DVdv2J1PvP23Rvevn9PyukaIfl/+uvnUWzJ1BuLTboIRoLkd6bEcdmzfZAbw8WQrEpYuDFC8rko0GQXlQjaEdPCPB5xYQEDpjM0puZ294Zffv23/PrX/8zf/9M/o+uWx8OZ77/7wDDODNMsCj9v0PUNt2/foI3sEGNOpPLBxPwaSh+LjUV2LZT0F6CEH19n+Uoedq0pPFpdYAqGaS7eU93Q9LXgF+uKnAz7lzPDMDEMZ15enpmmhaqyNE1N8CPn00RVSdJN22zI6YX9fuCbb74Rm9OFT5ukddGmobENTbcRlXPw6LriOEx8/+GRZU784qu/4cfHZ4bZ4WLm9s07TLui7gKhwDvk+6WuySZ+nhHHjmJxkfM0cjqdeXnZ8/jxiePhxDROAibIr1mnRMjKAhalKqz12Iti1lqqqkFhXrtfIEVTOtxyPb/AHpKUKvTF0ymj0Ndut9DKLh3xT/rdnGEYJhSiXq8rsciIurtk7F5sNSSCSuxfDrLrUYZl+v+pe3MYybIsTe+721tscfdYM7OyupZeqqdnWuEoVAlQIkFgtAEokQSBUUido1EdlQABAiMQ5ChcNFKgRmAwEgViBqTA7qnurq7OrIzM2Hyx7S13o3DufWYeGZlZaJJA8QUC4eFu7m727N57zvnPf/7fc3QjTdOx6keOJ5lxtkYkOJ+9+BGb7TUvP/2U3cNbxvGBeT4R5oEURRIOlFgXZr30vuZ55n6/K8lNwjrFZ59/SkoBP0lbgiQHn7Wavheln8Y5bEmmjJIAGEKC0Rf9cEPTqLPYRbkl2qiyVrKQoIow+3q1koRFi9DKYb/HKU2jDUPTMtuRw+6BY+ltWWtxjYzYRBTZWF68eMmnP/qcP/jFL7h+8hTrGmE+owkhipj8/oEXT27O+12BMZa+E/vElODu9paH+z27+3JfimtYzJmcI51rabuOZrsVQs5wIE4niAdiVBwPI95n7ncndocHjocTySe6tufq+oam6UReEoVtGjkDtOOTTz7januNPw4Mwx3btiFGjw8jJnvwAw/vvuHXf/Fn/L1f/JS7uzuGQfxWdZzoLbQmc398oHUdlYcwDBMqK1z2dDoSHdC1NI1mHA781V/+aylAoiSsh8OB+/t77u/veffuHVYbrq+v2Ww2pJh4//aNjFo5R1dm67UqVbAzNK2IggxHL2ITOUDykDTbdc/11Yb1erXwIhRAjIynw4KELGgI4/I6avKdU1FeK9MPwrPxZf8Iuz8mkYVV2mALmVRpTcpyPo6TR42ChhjjaJwlp8ju4YG46kq7SdZ117T0XSsQtnPcPHkGCD+haRr0OC5e6a/fvmXdijGBUaDs2QVOVOegmtdkZLY4I1vi4X5PQow2ttstx2HC2u8PsvX6nQi22mg2170otxSYUaQJ84KbA0vmUXkuoMhlBpXSZjJKlWwf8InNVSfTD0njTMfP//AP+Dt/8nf5xZ/8Cdo1/OpvvuTh/sB+P6KUJStxxegbLeLcrsFYi9KWlMXOLaYZH2dCEVuIJpUKLJfnLAuua1x5u4CUlq+lQjkP3pPnUs0HqU4imXEIRfze0rYTTeOkx+MzRje0jSo2g07IPwV2VWjaZsXz5y8x2tK2Pb8ppKhKKkvxTJASyr4YNAw+8L//q/8TlXMRIF/T9xuyEiLY7jDwLGSM63BZl/GQgbHIMN7vHhineUGBfRDIu460RC9yln3b0rlGRNUp+tbaYFwLNKAasTRrnBzWVj7WRS2mxtsqkFCZwxVhpnxNG1EHslY0g8X1KV8c4FUEpaoqyf2vzFalFLZUgTXYVgJWldGj2CxSyG1GiXuTNWIS4FyDLYP35EC/7knxmhSfMftPiPOhEKQGQhgFcguB4TCIkUIIUkGGWdiopRLXSP+6arfmJDAppUJ3VhUDAyF8KDQGg1Uap+3iNSsVYVpminMWM3Jx09JUd6lqHjFPE74oJYHCasOT7ZbNqscVBv9m3fPy+TOMtYzF1i6kxOADTddz8/QZz1684Pr6CV3fowpMeRoHhjIS5ZwjFxiyMsUpvWOVIMbMaTjxsLsrYxl7YeyWYJQA7xWS9jagpYWSo2e/H0jBESJ0CZqUOewHxnFGa8svfvF3+Pv/xt/n6bPnNG1HKKI5KSNavE1HRoRW7m7v0EaJL/F44u7BY3Jgf3fLX4WJf/HPW9HMHYSc9PXXX7Pf7ZlnMX74+c9+n9VqjTUWPwmidXf3wNt54M39e6Y4ooywvsmKaRqldzrOhOhl1CfEUiUbop+YB4U1jnXfLMTOGCbCLGs+pkAInqaV9lvwAWs161VPzq1AumTGUcb3RHVN3u+q9KaoLZxqklH2iy1Sn7nuta5aX5R9KdtMmL4GH+tZrooFp4x91pHBqYjzWCsIxqpvUblyRQzTKJWss5a2kXFJECvDy5hRswURuIl4PxGmSfZROStk1Ewv+2L5/pz4Yv9lsWPMSyCu51AuPImL3/ad1+9GsNWKvm+WsQGxvqpjBMsE5RJsYxEryDkTygEjvbm8CBxoZAE0zhK8MO6sMzx/+ZwXn7zg5ukTpsHz5t17Hh6ORC9at9aKP6PSlqwaUA50gzJONGuzkVmvAJpA1JqYEliBGVN9DbEkCRXKLC4jiVwyvVCk2BIxZhHWT+LS4r0nxUxOQcZ4ioqR9DoVRguEmrMqms9ymOeiymS0ZbXa8PzZC3xBClIUYkaMYalEQ5nTDMWP93ga8NNM2wk5y1iLjwlzGnnYCyQdUyIEcR2KKYkowzAxDjNz8NIbNeJO07hmsYRT2hJWcRnlMdqUzauk+mt6cnakbIutncNYGfty1gk5CHURbIXUcCb6VEC6spOLBKPVEqhIC3O5BlsNC5xaZQylQq795GJurovzjynVdWErameWYCt0L1OM66vfshWpQiVsT6UimlTMAq/JcSTHWQb/w1hGLDzjcRTGZumjzfMofccUJWlLXp4rpXeaIzkGqs61Xl6rwlrRgLUYkW7UZ+YlsCA0l3OItb8tL0stvWM/C6NWLDHlffvRy09Y9Wuca2SoPxdxk9WKYQpFtCIyeE+7WrO9vubqicj9WSsCIvM8czwe8SEAmaZppfIuz1HOBOkZBjTBBw6HHbvdPQ8Pd0zDLG2HMldPSiVxkX6pQaGKoEkIiSFNy2jcqsCg280V6/WGn//05/zhH/whL168pOk7YsxF31uchIKPDOPE4XhidLY47yR09uzJqBQ47u+4u32Dn07ieTpNzN7z5s1r5jlgjeP58+c0TrNZdfTdStSVfCDMI+/feB7u3jLMI0llaQfELC0gL/KllQxXddeUhUllVIqs11vatpFZ9ijzripJv1tm94szmFYE72m7RrTMjYiobNbCMrfWLEIquXAmtNLFU7nIcGoJIYLYFQ/qSnoou2I552XHLcHPFbCtDDwKeS5nlErS6oDFShR0GQmtQTsXH+bi52ytFBVFzKIcCpIgK800ybpVWskanmUP1d6yKqpq5++lnCeZcZoRz/WLcLrse2lvUN6H77t+J4Kt0oqub6jzTsu8Xq3ALl5EQvqdsTAeKaMsQJnPzKX5r0p1iEju5YS2iqfPZMbONQ2vv3nH2/e3HA8TjdvI3TAanTRk0Us1OWFzomlF41bk7jIglYZWYDEiM0ledHfFhi4vFZipVVhJgpakIkqwTUF0amPkQm1JBPjn5JdERBa8Ef3cUGGzjK8BxOhFDGSzueL3N+sLGOeigkmpsB8F/p6miS+++ILX+68Zp0mcMUp1E2KiX6148XwnmyIlQig9RS8EMWMcvW2wTYNrRXEoZ2Hw+rIJipIEy2ws0md0xmJdR4iaGMX0/rI1YLQjVW5U6beqkokunKmyBjIXYy1Gnn/OAZmtpsyV6gvW8vn7Zeb3DFVXcpSYYIikoV6Ce0Y3rgRegX4rg1c0WA2K8p4j/SWjwWhhaloLRsmhl5InxamQnUSMRawZheQ2DEfRrg6e6GemeShCIjLXTBLEQkWZ2V2qEVGFwFiLUxZ3EWzrPbi8d7K/kIq6rBMh6VmqocQ4juQk882ta/iDn/2M9WpNznAaJlarDcdhZHs8cRhFFckHYfV2xa6tX6/p+xXKWLGoG0eOxyNKa9rG0XUCEVIUvOZ5LtaP8t6M48z93Xvub99xf3eLyqoc5LI+kg9Lv9JaJ6NUKpPDTMrSax+nCTeOZAVPnz6l7zvW6xU///nP+fTlp9w8eULbd6SUykhTZjiN7PdHcogMOZODL31hBVajs0fHmf1+x1evXvHLP/8zSZiiGJXf3t5irePq6pq2seicaJ1hvWrpm4Z5DjzcviP5kTfffMXoZ0mGtLwx+aJ1dU4cNQaILhBmTWgaVv2KvmuZlBC5jodp0dJOyJr2ZT7WT9IHbaylbVu22y0vnj2j6zuaRpi7sRq5xFT6/nb53SqXEKPkOcViylCNX1I4t3dKi7oQRyNwbmHEHPGxGn9IkRVzsfXzM23XMJ5GlJI5W43idDyIMEfToJRazs1agcpomyVmOJ2OuNBI0uhn/FC1lqus4/ncOCNYgtL1/eq8V9S5nQkSb87ckf8/BFsEsqvXcnCWKtZeNK+TElH4EAUyqDJzaSlH8vL5nCPH00iYEgrLei2avcfjkV/+8pf8+ldfs98PaCX6rSlFDocjs4+chpGQNV3f06/W3Nw8oV9ZhuMdx/17Zn8kzNJDy0qUfhRCsPA+Ms8Trm2KdqwMW1eZPOcEGlFWgbUorFSnAmxAEsJICNKfmfxcxpcCIcqwfSWRaCSY1wUtxvOxqNZYpkhxIjJYwbOX+yybISxMvu12i58nHu7vOR6PQpE3wsI8nUROrbIOjXEo3dC2Dtf0tP22jF0JTImRHjew2CAuTUEoog2SBaucyUqjtANlqWb3ApSWkFjYg5JL6jKeUjdrOWQzi3FALNZ0EKmTLFnXNVQzdL300esGsoXosQTfuvl0GQ+ola0SlvSSCasi2FGhFeQxcsfl64laPGd8AoPAaVprrOuw9QD0Aac6sGtsM9OsJnHASqEwjyM5eeZp4HQoUHRRqgrzTI4BbUTAoLGOzhpMSpiYsEqVykTWjVa6JICVE54XkYDqP9s0TSFViVRkihGNEuEWZPwlxUicJ/wwMh6O7O4fuD8OKGuxTct2e83q6oq278soj2I8njiVeXCtdXGWEXeZFMUUfCyuOZT3OfrAYbfnzdevuL+/ZxqPdM0KpQQ1STGKwEM4m9bnwrTTOdNZJWzXUVAaHyM//ulP+OlPf8qPf/w5q1XPfr9nGAZ5HinRti1ai0jLPI746USYThADTjUoq1HZsm4bbq63zF7Gob764iuMtSKAQSb4iTDPaODh7pZf//pXvH3zDY2T1kPOma9fveKLL/+aw2EPtiTwZZ3ZEhCNMUVRSXxcR++lAtWiC9CvOtbrNfp4Yh4GsUqsASKLDkFNNKukYd+Xmdyba66urmgKS3g4CQQefCya45fokCEvAbLokEdxG6uuXdGf5+tVkr2Xi8mCKvuvEtx8DAtRSSMB0DpT2O2KprWiqNY4iIkwCxratR2r1Yqbm5slUKqi162Noe167h7uadqW9Xot1fBCilTL69FKydmqL9NwHsPS6nzf6r8fiup81/U7EWxJiTSH5bnmiyeuc2WiyjRazhmdFAbJ2rVVxCSLkosMvdor5SjWXo3r2ay3OOc4HU/c3x149dUrcm5omzXBTYTRcxwmgYkOA8o5cr6haTSKTYExBLoLfhayT+lr1P5jJf6EEIj7Oh8qdnO191CJP0t2qAyu6YTVZxytcyXTAvFlll5byiIOn7xYmmXE1aVKDioQ95EYJUhpxVznHDPCri3m8QvcXYKt9zN3t++lQkJUhxrnylylFQAoREkQUEWZRz6Wd0aMnKWaFWJYLALqWBYFRunRCkqg5G0ll75eru5FpHMABSg/vzJcjZJ7XN9tVQKcvD9iVFDEdM4QWJReXySWoC0kKJagI+9foMo1CoRUFaUWAl6FvXK+OHT00nNSdczoEo5Ssl5rb1hlYdfWWT9tNK7IS2Y0PipilrlOZVsULeQJVFigaEXCNVtW62eE+YSfxSM4xBlV/WQpKlQp0htFbzQ6R4qFQ7mzpWwCclaoHMsalgQsefFUVUEQm/kk9mMKMBlef/UVVe3Lx8wwzRzHmWkYpZpy4lG77lePKurgA6dhWCQdV6vVotwzjiP73T2H3Y5xGPDzTNd1kDPzNPP+3Tv2Dw/EecZpTeOAmElEEcZBGP+os3hL8F6YscYKa1cpYk7sjwfevH0rFfeqx7qXdI1DGcUcZ2Hu51hsHRU5x0cygn3XYp2G3JOS55NPP0Nbx93dPe/f3S+GDj6K/vMwTozzzPu7O375F39JZfWnkHDGcDgcuLu7E0QpyRiUrHmFyoJGRV8Kkiz71JoWlKiTjWPmdNiLrnKUed+q8pVy4jicGMdJZn2DZxxGIfwUVybrDL95VYh5fsYqmROW5yjKcNZKAWHN2a40I8VOzMvGK3vE4owgPFbLWVf7sLrAtwIhZzkDCsy8iAuVdki/6giTF9EXJ77Ixojsa9e2YuT+geFFzNK200YvrYicc+G7nBE2VfqQ0n5UFYBbLvFHfxxe6r4+Ey7PyfV3Xb8TwTbnTBhnFueXpdKoL6BURQoR0AbkABa7s6hqv+mC7EImKUPSYJRb3H6iF33ih1sZj3F2hc4G34x4r5iGQUzZx5FGdYBHq4gxEREpFBeLFAJjgfrGeYRigXUJzfkyyqBKJaW1KQzZ0v9b6PiGtluLlrF1rDoZT5KqUhVz9rIYjEFnJfBNRpxPXPW/ldGPnGofRdMkgd4rJpJzpGpIpygkHPHeNFgtBKYYxDWm70SZarVaseo7bGGBJzSlvUbtwWQlUGrOZ+/TOgtJhjrlqpVsusbZYtAsULMOVfxA4KMKI8mmLc87SRWKEqu2WjEKjGNK0NMUuYwSNC6JUALFVRBEWOMXwVZrFg1aav83PoKWgCL0fyntWJKmi2BL7XdC6W82cpAkSrAVVELmxTPRsGz6hBERBax46KoyDpSl/6yy6N9a09A0ArNb65eqV5PIWYKlnz1pHlAqleBT+tJlr9TnUp8bZV63JmI5Z1TMZC1uW2nyi/Rf0B6fBqBCiIaQkpjXO0c2Ftv1NG0r/1/moosd4DwXbV61jE147xmGE+/fveew3+EnEWBw1pKjVKSHw45pHMgpYbV4WCdkjlYYtX7ZL5KEB1KcSTExpyQsfyXnzBwDt/f3tF2HcQbXWJ4/eypz5JnFd9poLeuvwIWmVF3O1soLrq5uWK83bMaR7faapukIKSwz7bmusQyH44lX33wjSXkIaCUyiOMwcDgcCCkQUsI4S9vImbDwVIqWr7MOZ60UEKdTgVAT0ziK8EXbsFr13Nzc0LaiA3C/e+CwP7I/HRinicPxSNsVqdd+RQyRcZrlXBtOdE23+PbmJP1tVfgJWVP2XAk4RgmzuexArTVWu0WhyRl7PgN12S9FYCWVfV+DrTVW/K6ztH+6riVMXip8Y5mNICLBh0VBr2mEra60EJ5CKloCOVKZP0pR9A2K2QA1418wt2/1XnM5P+Sfc0BVBa5W9XjVfO/1OxFsU8yMh+FcnSxjPKXyMGe4AaTHW2cf0eAo8OASbCOg0c5CTFIVKctxt2d3e0+MitPhSPaROYyoLIsiokULmIhzmXVvWfeGVa9pmoRmRmVPzsKwPe337PY7docdYZ4xRi1zjAuZpvafL0go5Lz0COrhbMuogTGumDS3S7/Mlg0lDhaihmKR91/EuGPpHWgaV1KREgBaJQpbjxh25bmItJ4E3+A7Xj57xvD5Z+x3O+Zp5ma74fr6hqurLU+fPmG76UlZE6JUrz5V+FoWnVX1fRE7O31mIBXnErk/zhi6pl3mMXMSQfWYIzFFkXEMkRBECjHESIiV6X2Wu0RrMgpj2jIeYDGmKbBvrWpFsF6UkDI5iSZz/DBNVepx/7cEhUtC1bJey/1rTbNUsLWPXCHlXH5eJVDZ8tiFG6yKJKMCSEyVUKI1rm2oWz+RiFkqo9mLcTpRkj6xM9PkVIhYthXTb6tEOCV4UOKsczzu2J326DQV5nJ52blAYpnF2L3CdmH2qCzerkuyEYSQorVGpYQzBaEgEbE02rIyhitt8eiS8Er1YrQtQiFFwMIHQQ+sxRnLaTix2+159/Ytr7/+Cu9F+H2zXkEWprifZobTkeAnnDGFqZskmBZLtBxDQUHkHjqNJORlcC9myMZgtJyU7+/uOU0D7+7eMk0jf/zHf8T19RWNswIJhyB7KIrbVAwRlCQ8tWtgjKHvV3LuKJlL18ZyOh4ZxpFxnoo5SYvRhtM0M93eiQhG43jx7ImIMcTIHAP70xGlFNv2ipsnT/j808+WQDuOYg6yWW9Yr1as12t+9atfsdvtlr6lc44XL17w8pOX/OT3fiLjhcPA7e0t+9PAV69e8erVK96+ecd+f2S7mUgp0/drNpsNfdczdj3OGFKqDSCNcw2Na7G2WdoLEl01xhlKk6dwZgxWu2VM0xaz99l7jkfRS0CrBckMFa0q97OYeqGV2FSqKFwBYzSxEugqArq0sMTnVluLTgkdRVBDnoPFNo626yhN8GW/L/P3pbBZzgEoRCwp+OqxsXQsqUk/y/d91/U7EWwVYON5vikRSSouwaiOeCwBt0qfLIGYIv9XFGTQGG3oilQYSUPSnHZHdnf3qGwJw0TvLD5A9jPzaU+zWrPpHZt1S1QrNpst2+s1642jMeKy07jMzdUalQNpnjBGjArG04DQwFUx3Bb207czAAAgAElEQVSII0U55LUqgaJWEqmkUlkqtWk4FrUdgT3chVi8tUYkx1zVob0qAb3C0HIXpf9ilz6gUhptuqXq0wu0KdR8GSGRhKDpHH/v7/6CT14+5f7+nocCZb148YKbJzc8e/qUxjpC1oRkmEPDcZKNP00TwzQWb19AI6bhGqwRf8sK3ZgSuHKKiBe89LobA9o1aKsLazTIweO9sJ0nL8baxc1FkIFa4Y4lQTNY26KsWXrLADrlc3CBC8j/zA6HMydgGY0qn6893QUWrsyJmsmqhfu1BFg5NMqarr9V1/dBkj+DQ1cR0ayLx2om5lNJHnRRJ1JAjzYNtguo6CELGer4MGJUwhowRsZ+ktMoHBmB6+xak40lOYcOA1WwXoFwDZQEfTlwCvszZVRbDzt53yqyoVVFAhQQClqQ8UmkM7M2JN3gUYwhMYbIaTrxZLUGJbO+yafC3BYY/XQ68c033/D69Wt+85vfEP3MatWyXkswUUoxTROn01EcYxDvVmc0VtekFQIRkpcKpDxXYxLOlvES7cCa8h6IV69WmSnMvL19T/zzP+N+d8+LF894+eI51S87ZyG5tdZJr7L0r32chSXti3jH16/ZHw/c3T8whcjucOI0DAQSV9dXPHn+gtVqxew9Thv6Vcf11RV/9Ad/iNKaL7/4AvvLXzL++lc8ubnhk08/5fd//2f8yS/+uPSNhcwoc8et9Hut5c2bbzgcdqQYOBx3zH4kE2kaSyzOQTlF1us1/WYjI3ne8/79e1DimBNlQ3J1fY01ZkFBlkWehXFsVCUvFoOYEvSUlZTrjKIVwmgIzCGg0lzQIkPXrkqgrQ0PxBKz9GyrvR3IXHtKihh9QQMvJgoKYqi1Ed3pKpZjzMJrSSku2vI1UY5R1i0qk2XTP45JlQKklIxllo2vUknE63mif6Ccvbh+J4KtkCNEcjBmmbWF5fVAFghHZNyivLGqNrzyEmygxC4AlfEpihKJczjbYle6wCKKnMeySKRnMkwDru+xrhgQWMN607FatXSdxTotbOEynkEWOKJrG0LoIQk5oFauqUghpqWKPI9YUCpBeZqKrBKqEFByjsQgIGdMARM1IWhC9MXpxfPu/VucdUX4ol2yKtGRbS5ckkQ2UZd+6pIJlkVdD10hTUDTyFB41zjyZsMcJqqE2jxNopZjO0zjcF1P1p66VRKpmBzIAjalcjBaxp5MqWil7ymZpKYozRhDtqBMBp1xWpGtJSZDaBytdbTNzDQHxknm70IQhrXYhE3SN1YKr0e0kapXIXC7M/a8QQvERO01pwLTZpY570roOBtblNyuKssgCd0cI/V/GdFLrus2l5S8Bl2lqoa3MLWkvhUNaI2Rca56cGlFRA6BpHUJcmUvJCH4pFAJc4mIoABKZTQzgxGxDxmr0jjV4NqtrGs/lDEigXvFoiGL727OkAIY6U1Ln7DuwbxUKzWDTzGCyksybIxk/lJ3ZzAyo+yspS2JY8iF7Rw9VhpyABxPR+5vb3n/9i3v3r7h+morRt/9inW/Kq0OMR6PC+FHgn7f98tccaaOyJV2ksqlvWLIIeFTpLVdWQMikUjtu5MZxpE3794W9bMTpign5ZyZhrEkjRaF9JZXqxUpUZyWDJP3TPPMOMwLKtW2LavG8eLFS54+fSqztdbIeJvRdH0nMLYxbLdbnj17xuwn+r7nyZMbrrdX0rMGUjIL7G4KmW8cRz777DOapmG/3xO9lyT55oau6xinkRTTQkKbQuTZ02cy5rPZYJ0tSc2K6+srrq9vRDEtiWlETTSrEpta7LnUmbmrIKskkxIUpERJFrrAsIW5rGu7R53Pa2FllL2TM2LWkQWyLnsiFeSzhOCzuFBBvOo+j6k6+ZT2ouKcyEY5v3MWLXF5XnpJPsupvDwnlXORjSxfMfUMOAf75f58f2H7uxFsldK03VpuXiEXLao2XBxglKQiF3ZyVEXHFRb0XSEHg9xaEb4GtLE0TUffb5jmhLEjePneVCTofPS0Wno3TScar9aJ7J30AOu8n2xmo4Uh2LgG30zkuRzQUTZ5Kr1HqInTglNKH7ZE3KQyph7qCxNOfp843KQSUOXAf/v2DaZ4NXZdt7zhSqsF2hExAE1KZSziAgrNF8G2Sv2BKK9srzal36IKvDtiTvL/lFZ0nfgCO6dxjaYp4zohSQDJpYlhS79ZK6ldjRJiVP28UbmQO86fQws8V9nTOStilhGTrmmZZs/gZukpTRPT7MmzJ2RfBEUUkRm9sIJFiQnnSo9IRgFUqTJlNIay2UrnMhVZyZjxcxGKUGchCV1GHJRICSChqqxJdSZt1ay9vnFK28K+VuQsIxNa1Tlcgdtqz1cbW0YXSsWWygwgkowFXz1OC7xVoPeqV5xJZexFdI2zUWjtBG0wDh2D6GCmgMkJlTwqRfmrRB1KKYUtGyqXfjf53LNMSRJfXQAEpTRZa0JM+JyJKqOtqfGOprJyQ53zFEKQCFAEDrsHdvf37O7vOe53bNcr2qZhs1qz6nseHh7ETnASQlUlzhhrCyyoigzgLONvy5x7YZtrjTKQU5C3XcuJkaLAhrr03mOK7A+HomA00TmxTFRK4acJUDgr0GgI0lfNBX50rmGaZmIWWcntdlsIlIm27/nks0+5uroSMlbXY53MWRij6VqRnb2+uuKzTz9jve4x1nJ9teXJdfUylhaQ1pq2OdstppT4/PPPub6+5ng8EuaZFy9ecn19xWq1ll6uYvF3jcpz/aTl6uaaFy9fCvLkrFT5Wiwd5T2OBBVLT7Ygi5k6HLskuBVajORzUs9FQXRxyf64QCnPzdKFtpdzRYNKYFMSaFXhuaCV8DoqMpVFl0H2jqypzPlcy3Vv5/o3XfRryzK5+Lhq7VfSaU0gVFnn9VxbWoEXyOL3Xb8bwdYY2usnwAWTt1QVQBlWlsOkb9tlZjSEwBz8Ag/Uf1OUIOKUiESEeWaeDJttx/bqGaukmKPm9PaWRJCsSll2w4BqGkzbsulXJBTT5AklKzwcDjhr6bqOeZzOz18pyJoYqsavsOlUUihdxl90na0tyy1f8GxLRq5QdK4R5uNFNaxQOO1wxtHYhsY0cp+mwBjHhdmstSbO8fLOVjzz0UK4VFGq/885czhEdvt7qstNJrI/7hanjCdPntCtNqzWW26ea3KOKGaMnjF4YROrIiohDRCccfRdBxl0Amc163VP2zqBjZLkqFqBMyKkLxu9jEEpA6ol9CISP4wTx0JKG8eBh/2O1gicHJPI3vkpobVUi6AZpyNJsfSIMAZtDaZpMU2H0g0oS9JiBxjSxDwOjMMIKWDJOJWIeYY8L7Cbsl3hBdf+TlrW7KO1wWWvp0D/lE1cDidRudRlBMqCOhth28UCjHOFqzJayb2bg0fp8+8dx1kSBK0ZZ8dDFkay04pn11tWrcOqiEkeE0eYj2U0JrLuDDl4cvIluTPlwFQi9E8SSdIMycgTijnjZw9dyzF4AgrTNLR9y3A6MYdAt1oTVcKHmeBnGies+8PhyN27t3z517/i7s1bxv2e7D1+GNisVjx9csNqteKbb74RF6FiYiHG845utaZdbQgR1OzJWZMpiVS5p+iEMpIauazx84lU7q0pa1VlFkZ6zghreJrZrlc03ZrNesPN06ccjyeqe8xmsxELzCzfv4xIIazcH/34R9RpBNdIYrxer8soUYHkTQ30shef3VzzBz//GUBhZ+tlJr0ybS8tEhdxkovz8vsvxQq1+At/eOWcCQtHUKOdXoqb8u1LEKrKScvZks8oz2VrhQ9/1xJoz6XU2cmtCBKV9y7kMqkQsvS7lSTGcwxEBUlBIKGsKchSElcsbWRiI0ayP+u4LyNmtigjFIZy3aDnGf3znL8vPr5aa+HRGFuIjfL6F8TyB67fjWCrDG2/frxwUpm30ue5rCocH2NayD31JlaJxFhUdhTglCFHsXsz1mFcwzgFQsyMk8eHBEr6EM41NNpimwYfI7e3twzDcJYA0w5SYLvZst1uaS/o5gCn0wlbVUyiyI0Jc+28IXRlTiqK9F5ZuPo8hrqQqOrjL8hidYxhtVqxCGZc/P2QiFVn0JbKX11sDM6wh0IyyTqbmj4IxjmLys/hcGDygdl70RN1Ddpo+l5jjGMafZGw9BUAQiVFTkEModum0PMVjdXlcDJFIWeGOKHSXNxnDCiLUg3GdmRlZTwgRiY/sz/uOZ4O9K0owoSYmH1gR+IYBzEPD6LEFHNcoN2oMhRNbW0dpl2hTAvKAZa+3UJSOGMwXS/+vfPAOByZxweMihgjLYRT3Amp7nItwxl6Xda3om3bRxlwHTvQC5tTLdV4VgZlHSkJIuGVYqqHASV+6PJ+l7lio897Z5qGZf3EJMpi0rt06FPiNI1YIjZ7VjqQ5kCeJ+J44EF5GS0qFX3OBbLLmZAUc5S5z1gq2+A9c/mrVz1BK0zXsXnylOu2JZDJRtjUomNeIHEfGedS0d7d8u71G/b394R5ZrNe8+PPf8T11RZjZMZ7v99zOp2Y5pmsFF3TsFpvWG+uaFzLYCaUtmjjijRjRaLS4jtbVcNkLDASBd8k1/uqzt6mtiTVMWXQin7V8+lnny1wbn2sKlC7QhzHbJnJrDKX9X0w1tI4RyhnWzU9/3D/1v1W9/flGqpfT0VU5PKAr8YeP3QJbGsKKekcYJavlzZXvWxJ/C+/XicL6vcqJahCmZqTx5XFumCTBeLIUDyhK/JQzsF8pkCAIEiXVbFSBcXUQrZs2xbrzCI/a6wufBUNKuNsI/s9J6ZxxllTTOcbNusVN6tObE1re+/RKOEFUfci6b0MwpccjlzRDT7Y+B9cvxPBFkClOraR0Zmlp6mVBp3r9KQE09IUNySyPsPMXAQb6UeJz6jSRkQR0Myz9PtCodsbI4xW7wPGwqEIvg/DIP2PWCXkOlZdy/RENEM3282yKavW7DJzqUQWzhh7ESz1eTMVDeW6y5WCmB8vrMuqs368vLbv+PrHLnG0kXCaM9/awI/eA60ebfTKql4IIl7kGLUxDOMRlwpRCV3Yr1NRm8mL9FvjDF1jWK8amrbFOWGQbtc9/arFOUtKiePel/yjCpgkgWw1slFcU8TzIevI9ug4HDvWveM0nhgnL3J604wfZ1LMBCIxzIQUSFnkJX2ZXUSLnJOyLWgHyqFwxPUkrFllsCh0jpgss7+LNKJSC+kiKen91vV32eNcNi+QY/gg2HImGi3kNalsUUZM3as2sKrQv/ysSsCrKJBzFgG6qwTnuBDw5lm4BilL33gcRlqdcRoak5gdxGkkDCfm454cBmSQs8hBstBUiEkM1FOV2csJqxWpzmRqRXYOa2WG05d2UK1uUpR57nEYmYeRGCL73Y7dwwO73Y5hGFBGsdlsePHihVgUgthFTlMRVUiAWkzCu7Yt5Mm8VCXONWRTAmrRIVelutJKUz2AlxnXi3GvGmyrTds0TTRtS9u2vHj5kqurq0f70TlHQdaX75O3/1xNPaqWijD/h4lyvS4T5W/tz4vk9/Lf3/Y6V5NyD2U9SSVaJyfkk5cQbPpWsK3czvNzqvBveV6KZf3Lx4hl3fJjhV8ALGeTUo/4hgVSVkvrTGvxWjZKRgfXfcfBOZL3EDNtGZESx6YkMHuRp8wxUWOj1tA1jTg1lUInK0G76uu5nJ8XfXG7oA+PuC/lppaW78Ud/vj1g8FWKfVfA/8e8Cbn/Kflc0+B/wH4GfBr4B/mnO+U3Pn/Avh3gRPwH+ac/+UP/Q5yJswRXbKcKligUMsIR6pZalw67qiql1kXpZY39ZF4QE4lAxF4aBpGQmHIaSXi2TGJhFdKkf1+z2634+3bt+z3u2UOcLVa8ezpE8bxhPczSiOapt+6X/UlyQIylcGpz7f6ckPVS2f1rczow+ryw434sc1aM94Ps+TLr3/XVZVp6rWMMF0cLjEKuSV4gdGjkvR1mj3DaZAeWFa41QZnG9pG07YiIt73Elyb1nJztWa1Flm+cZw4HcpsaM5FoCCjs8YqEShoSv+x7Ry2he265TSs2KwsD4eGw/GE1TDsHWNjSpsB+ZnRFzJRwPtRGJIU5rE2BXY0KBrSOGBtizMNvevQOkMKaKJA3Blk1ESUy3Iuwbbe53Ref5d9I5/H+g4sVdTS+6mjNUpJVasMxjUXrHI59CqEl50jWUtOSWzRjIjjp5Tw84CfRtHeLhl3jAkfJFh2XUtjFK3V9E4TOkuYTsynE8P+SJiOpNIPXoQvynhGMW2ThEA6nlz1TQFOpALA2cXCT7xpaxIN0zRxPJ7Y7R54eH9LKsIWu92Ow+GADzOd67m62vL8+XParltGXaru7ZIIGoFyXdOI32kWSF0Y+a4osmXw5/2ilSJrvZib1GSlVqDAEhQv0aiaeH7yySfLOB7AXMQ2FJRq9bEEpvmgKnx8kP9wj+9ytrtef9tACxXBkjNqqeMqLFzOq7yEQ/k3xsCHwfaiY7EE28fRRy1BFs5k0PocJPCVKRJYfJQrfCxVbjX5AAo3Zs5yZjdWPJl3TUOcJkIK9I2j71pxhcpRED2thNA6ewndRUe5cW6xc63zwArp7ZvS961xZRlDPb/geiOWBKMSp3/oHfltKtv/BvgvgX928bl/DPyvOed/opT6x+X//xnw7wB/VP7+m8B/Vf793svPgTe/eb0svhDOzjRaV/WPtGSE9fqwrFdKLY9bcqhcG+cW4xpub+9BaaZxFqhJxzJS03N3f8/Xr77myy++4K9//VcMg8Bxxmj6tuPly5e8/OSTJQt/cvMUEBjzwwBa5e3OwSt9dPPUy1R2Xn10ybxDCN/aWLXnc3kgwEfgoI98/F2f+zBrrvf2MlPXWsQo+q7h+mrF6XTicDhyPB55uN8zDhMKTdO0PH36DMM1pImcRp7erLi+uuHq+ortZkXfVdgzMY0ebTIYESNPMRO9mAfMcyD5BMFD6mjsin7V0W8brleGqx6sDmQ/MqoAeUarhDMyAuMbTY6iP0yYyf5ENVtPMRFTpriSonC8ffcWpQxaWxrX0fc9TWNpGwMqE8MoQTsGkrKEQoTL8YIzsKAr5YC7vNf58a6s69YUppHSBmMlK5eRLVVmOc8qVtLLO68T0mpZ+8NQvEGLEfs4jsxzICbIWS0z2rb4rh77FkMUizXrWPXPca7MoJbgtaAz2sr8ojHihKQSyk+oHDE6015fCYtcKSY5iRbRjxgjX796xfs377h9+46vX70qY2BaquYYsc6x2V7x8uVLVkXTu4pfVNi2tmpqvzClxFgkH6WnGxZbxKTjsnaXhKbAlZctq8sEtb53dX+llLi/v0cpxdXVFT/5yU+4vr5eRDiapik649+GcS/31GWV+12B9sMz5GOP+659/X1ny/kJXS69DBc/X6v6qcfnQAj+0XOTj8+h9dFrvSgoapzMpXK+RHnq+whFsrRAA0KxZEEKABHAsEZ8tkePUoLsNLblsOrI88Sc4el2W0YiHXOccU1HRghz4+kkymlJmj6dNfTWihQ+3+7RXrbu4HwWP7oHVKbzOWn5oesHg23O+V8opX72waf/AfBvlY//W+CfI8H2HwD/LMsz+t+UUjdKqc9yzl9/3+/QStEbYfxlMiGH0rPNy+dikfGrlzTpFQYjs4rl/1llUiUlWfFX0YUQ07Q9rWtRWuYcR+8Lww1yjLx/95ZXX33J119/xf7hgc12Tdu1tK6hLdAnObHf7TBa46eZphGtUrKIwccgoyNaa7abjVD6tRZYsGAZOefSIzi/Q7OfyDktbOQYKgnMk3JeMi5rLLOfS/VUvjnFJcuqzNG6vBvnztnY+V099xseHfwsfRKtFDkGcXIpD2ysQamMn0a+/PWv+Pr117x9+5b3t7fcvr/DT4Vspi3r9Zr1as3V9pqXL1/wx7/4I37xi1/w4/w569VnxOSY/cQ8TczTSNtaUIk8SzWq0cLqTol5PnGIE2GypLlHhRWrVUdWCX96YDq853j/lvt373n/+g2748w0Zyaf2O/3aCXemtFPqDDhipoSJuJzIGcJtprAFCMhQkyKY9aM+wZXvIVdY4g5iE1ZjGTjhDSUcnFYCYvec127lcW4+O3Wv+mxPu1lG8K46oB1hvUuDwCBscoojjVMxzXkwqIOQubwwTNPs2gZ50T0XtaUc+QUF3juuOpY9x2bVc+TJ1d8/qPP5PmXSrEsLIFpqYG/MKhVxOVGerwadN+DcwQgh0hSIizp/czh4cBf/eVfcffuPbv7B969fUvrRC/cFjbsplS0n3zyCTmLCL0kCzWZLe9jDMthF0Jgt9txPB6Zp5EUwjKi9ThoFctAJTX50m8tycSlUQfUccT2UQvl9vaWu7s7+r6XcaPyM3I5sL8PQaqBu5IZ6+e+C4GqAf/Dn/Gx62OP/ejjAJQUM3XxqeUoKOv04p6RWYIiBa35sHyrozhQGMO1Ir14vrlgxBU6FmUpOUtsZfdWWFdxDrq5BFtj2Kx7gpMpEG2E0LpxLbFp8Wi2fc9V30uwDRplHDFHyEZU9pSo7bnyb2sMTml0Lq3KjLDuosiThlKq1gQpX/w/X6JWZT39vxJsv+P65CKAfgN8Uj7+HPjy4nG/KZ/7VrBVSv0j4B8BXG223GyuyuJ7DF3UBbkQpJYXCFDmCZWMRqAENRZzANCNFViyiF80bS96nlqTEotEYPRiHfb+3Vvub285HfZopbjebliVEQRrNKtVh7WGHCPjMHB0DTFG2rZdDoOciwB6qchjCCK9ly9m0h5tLLX0OM4VDiI8i7ByNZINVhUpYx5v7PozP/bvD13fVeEuB8HF1+vr8X7i9vYNX736kjdv3nD7/paHhx0piCuRUrqMRLVsNmvev3/GNOyZpxOH/T0pTjx/8QyQw3KaBnyIzD4wh9IqWGaAEzkmfJjQydCYSOwgOUlMdPY4lbA6YZVUaCpXbWAZhYnJF4WhCZ09xpQuk44oJvlVSaGUo1UGo4TrMQcJ9POoGYzFNha0bLSYM9kIXJoS5aCOS7BFneFilIJ4kR0nEW1X5fRTFcpTCpSGcVgCci5lhNa1r1vfo3NfPfpxcVnJOdI0LbOfmaeJ0+kkVbn36OBFOL9WyspgsRgC1oj/8na7gVyVumpzNpW+HizVrpJEt1FyLxOJUKBwqdBFzjKGyDROvH79mm+++YbDw47xNOC9xypNNBqdIm3bsN1uub6+YrvdLgFumqbFmapCvqnaqCEJxul0Kj1d8fWNUeDGx8H2vO/q/a4VzaWoyeXfGhzrpMPpdGK32/Hs2bPla8JGZtknHwbcD3/m5R778FIfPOfvuj4WyH+r/V6q11wgUGpSXu9PfdjFj1qCeIVLP7jOQjnCC3hEatIX/c2ytOueMGUNiYF7kbBV54BrSg9ZlZ/TGUu06lxW50yrNb21OMApJeI1xfc55+Ka5mdykM+pMtGSQxDGdVbokmwsBUo+u80tSbG+qPY/uHd1ROi3uf4fE6Ryzlmpj70NP/h9/xT4pwC/99nn+eWTZ+VJaxk0LweRNkqG+3Odb9Xn1ZBlU2tlS7DN8ljEiQdnZei5LCjrWqyx0uDPFF/XyDhN7HYPvHn1NQ93d/hpYrPuefH0KevNSlwmgLZpQAsZKsTANE2PoJ4PN+rpdBTShyouOR88rl5KKVwjJgUpmUeZdoW5KgmrBt0P+7SX1+X/D4fDb/2exCJHd/ka6lXh/HmaGMYjX331G7559SXv39+y2+0Zx1Hy0Xzh6gHc3lrevPmat998xZvXr/jyi5+z393yp3/6d9lshGQ2jicOw8gcISTRMzZRJlhNzkjzNWKSIboM0UEAZTWthat1w7DpGU8rrjYdaEczZ8Y5knxgOM7kHLE5Yk0uesKyvuZCmpIeVsC6FdFqfMgcY2A/Tswx4ZOMF+g6L6pkLCYXLsDynpbsX9WeVU1ecoWjLmzSOB8+l+tIWPIsfSBVelyKfBFsz5+fJ7dYMgq/YC1G49PENI3011sa5TEmcNUa2q4TNyrnsE2HdZa+t/SNoW3MxQFbDqdcBQYkARTTbTloGi3rRdS+RH84lkrAaCHOnU4DX375Ja9fv8aPk5iDFFOOWq2v+p4nNzfcXMuoz3EQpaj6GqZpYp7EErImHkpJsB0GCd4xRJk5DiLXmAsqcw5GMqcM6qMwYa1O676rsof1+8dx5L44Yl1dXeGcY5qm0ns/J9KX+/Bb8OMHH9frh9o+H/7M+vHl9/y2CXZKaZkBl0BT1l/9WVwUM7VfqRSPENNy/8/BpnAXik4y6sKurvRTjNKciVHCdDbFfctpVawQS6UrL0oS2Jyw+UygykmmEqxSdNaK2EXKhGkgT4o5elCKkMSe0U+DtJJiIPmZeRxJPqHTxc/84P15tJ8vzu3L4mNJTv4/DravKzyslPoMeFM+/xXwexeP+3H53PdeWikaU817jTAnqRBPCcDlphvjqAw5uQ8yx1azV9AkJQQArzIxi+ZmSMIQvn1/S4iROcgISy6BM8XINI5Yo7narnn69Anr3pHjzHAUibvRWNpuRdOvsYgx9VTIKEsPwggbOaVAiucMOiXZ5B8LtFprDsedyDpejPlc9qkvRxLq911WoY96axf/X60ek7g+7ANdJgCVDHa5oS8p7/M8M4xHbt+/48//rz/j7u6tOB/NHqMNxjk5BK3BmDrmIwfq+3fvOO73vPrNl7x7+w3BT/zkJz/h5uYa72dev7vDo0jKME8BFSQT1TFik2fVGK43PdvuKavmCucyqgG76llvOzbrnpvrLav1NUMwhKTxSbF72KOiaFprAutOmNGtU1iVGE475nEihkhG8xf/+m8YxoiPit0pcn88cpo8pzlwnGcOw4nTMHIaB6xrUcosh+3l+yYWaGHRoa52bUt2fIFsCOPxAtZEiW60lZ8dQsT7YYE5ZZREkh/vPWGQ9yYlUTEycWYuLkCttfz4xRW/9+yKH930PNk09JstTdvTtCuCMuxPA5MPhJxp84kUztkOAHUAACAASURBVG2IxZlIUYRJ0iIhqVDF09cRUKRxYAyxiOtHsIIChBCLHd5I8qL+1HUtfdfRNC1t3/Hy0xc8e/mCft1xHA7M88w4njge9xyPB4YSfFOMsq6sJudLglNhnJZENadzkiAIUT5XSh9JTj+2n+DMOK4jfrvdjt1ux83NDZvN5tFe+/C67NHWn1v70JeP+b7rYwf5xz53mRh//yWIz6KJvXRW68cfPPZjweXyj6pJXwnM+vEMsHjFSvuhmqXU/WK0BGCNwpSCVSro8lpSBu/JfmYo88z1/PTeo0LAIe/5sHtgoLLmExiNj5EpePxwktlxr5mHE7vb9/TKYbOW3/vheVj+L/m4sO0f35b86GMBNn440fnbBtv/GfgPgH9S/v2fLj7/nyql/nuEGPXwQ/1akN7Rqm/PPc1U/AOVwKoZROQgiz2SwHBnSOhSQUmVYBtBTJVVMYGPSeYCp6mYqyu6psU4y/F05O1+z+GwJ6dI4yzbzQpnJaAqrWiblq5f4UNiOB1ZGUtMnhzSQsoQ1wnRtB3H6RGbVxUBdjhvjMuN2qn+gkYg18ey1cv+zIfD1HVzX16Hw+Fbi+ljh0r9twbzGjSaplk2zjzP7Hd7Hu4f8JMQzHTW0jdXBkshVVnLdnvFdrsp32+ZxhMxisj97mHPl1/8BmscwUfaziFsWphTZH8amA8H4jSR5wkTPTerljRfcbN25PiU/e2OmAOuE7ThdBCXkhRnGiNOM1k3WG2J0wGVPNYknm47ntysWPeOrlHMgyjuxJjQ2fCj558yzolpTtwfZnbDzOAjpynw+uGeL159xZu373jz9i3WuoUstPTvUrGimybG6IVBmyLzGJcDvwbc5f4bA/FMfhLHlnaR4xumkWmcmUr/UqFkxjAl/DzjWidOTSiarhUUQIuf8fXVFT//yY/4ez/7lD/89Am9iWCssONNw5QU7+41+9PA/jQQphPdaoVzbdmbMvOoyVil0FqsAY1SZAxjzCir6NsNoWlgHAnDQBhHVMpYK8Yafd/TNi1zEos+UkIrTdM2bLdrIUVtt2Qy9/f3wj6d54XsddlLdc6ckZZZXHm0LipkZUY0Vau3csUYUWRcrbYu9sOH12WgnabH4jV1WmG/33N9fb1MTuT07cP2sgKtSetv2+apgfnDIHqZHP9tL2W+fQYU8P/x/fjI71DqXAhdBtUaWM+yqEps+6ozltFisUdR/tJG9NcyhRksIzopRqlCvewbyt84jhcQrlS2OorgDGTG41FacFoRQbTGU4QY0DnhtMKQUSnix4G+UShsaTvWPiyPfkd5wSKk8ei2nB+TcmZx0fqwof3B9duM/vx3CBnquVLqN8B/jgTZ/1Ep9R8DfwP8w/Lw/wUZ+/lLZPTnP/qhnw9y87vWUl9RrpzvEkgFehMBRueqr2QNRKWiVecxiqw1ERmCVsZATKBkzjJfbFoRrpcDTYg6E0arxadSKfGttE7EwtfbLYfTxP4odlbBmjKuJJVIzRpzLoQmdc4Xl8o7I6MUcLFoKc8jL+/x0oSHc2/l4n7JYwrSR70XjyErqIeMWhbLeXOpb0FBohfLefOp8stLvy7GwPFw4LDbk6KoupCFENW4RiqV1tG0DVfbG1brrjBDHb5rmCcvYK2P3N3es1m/Q6G4ut4yTIGgNHNWDOPIdDoRppE8T9jgsWmms7Df9ez3D/j5REweczLopuM0eqZxZByOYMEglbYxCmUM2mScSXRtw6prWa8aVq0imEzwTnxfsaxXW6Y5MUyJq2Pg5CNjyJzmwOr+ioggLMPpyOxj0c7VuEZGXlKUWdfoJ3IK4j8awiMj87pBq4ViDLLOnXOiZWyN+KSW0RHvJ1Lw+FkgVY0iJRGKDz6QEA9jrTU5GhqjiVqIf421PH96wyfPn/DJ8xuaNOIzZAxoS4PlNI7M88SRDCkW8whX9hSItWTGKhHPqIpLsRwyqVQjUtVc9G0LbGitYb1eF9SnrLtCUlr1PTdPbnCNI6aAD4IWKdWLGUXp28phXtanFrMPuZ/nGcpcmmkZltGOZS/Vvyp/a6rh8rpEdurjKuJTnXMOhwPH43FhGMsxdE6gL3/vh/3UH4KRL5/X9wlVfBfX4rv+f/GdopUuj0Lx+HHf+rmPPlaPPr8kEUWYxZTK9uzcxnk+tX7P8regDCXYgoxjhtmLdraX0TOd02JpSjF8ByXJWjkjc86EaUJZW0zjIQVxEyMGIc1lWduhoCPnXiIQz8UbF+duJXvpwiK7tNNbejyFo/PovP6O67dhI//73/Glf/sjj83Af/JDP/PDS2tF17uLSu08YAwQI+K2ADSN6NHW6zL7U6ponhpDQDFOuVhAZVL2hVxRJQUFtq4qOClEovesVz1Xmw191zKPI1dPrnn+/Bk///lP2WyvOZxG3r6/41/+q/9DILZywHQ313L4zfJ7Vv1mkZ00RYxB64UhUDZdWgIm6sNF/7hqvYRzL+738u/HNm7OGdy3YedHrFbOB4Ro1oo+rjFmGW+omrwpBnb399y9vyVHRZgTJDFXvt5e8/TJE9abNat1j7NtYVjL3G3f9hgsKWWstuzud3ytv+Z0OPH06VNmQHc9qmk5nU5E74UwbC1OCYPycNjz+k2msYntpsMYOI4nutUWnxXj4Lm7fU9QR5p+pF15vI90GowuZKngCfOEN5EpQpwGQS9yRumGxrRko0hWsVm1NNkwJ1jFjFk1+CBSiOM48MUXX6JwUDSe+64lhcCUE8cUF8lHXyDeSqSrll1d2xFhgYC32y1NsYzr2kY8YFNi93CPnyfCPBLDjFKagIhkGPV/U/emTZIkyZXYUzNz97jzqMrq6mu6ZwbAYAa7XBGAX0j+CfxrQlawX8gV7ICyDXKme6bryiMy43K3ix9U1dwiMqp7FiIUKXp3VlweHu7mZno8VX0K+OHAXMvOAjlguZgyx3iMCL5nykFrEIcDYu7hfUK2Fqbp4CYTVoJiABrL7RFd24J5khNyNkBihUsEJqiPAYchIbkZfIh4Gh4RibAbBvgQSlvIw4GbB15eXopgRWke3nUdXrx4ga+//hrv7++wP+zYoG7bouQO0r92tVoBjWVUS8bSOQvvuYl4CBwKyikWBXC6HgBu7Vd7mqelHvpc47Zcs8twvXOukN08PT2VY9Yr9zREdE5O4WT/c+gVgCO4+adyNE63U7Tq9LjO2ZJXoPY0G4FJdyyencLn5TrzqGgtGTR2JPVRpFG5BWBIji1hP7EdDHGJnzFAYyy0tUXwAw77Pbxkn3eN43UpSlPjp3yPJD6cietU/CCK0bEhGIL07A7w+z0oJfiDxy4l3FxeS21sRilwqUI8wChvyRhWzvLbJbZNXHRPxCQaxdv9ie2TYZCCzQxvZBLif7WCM0xg7zYjo5t0hd6OIHmQknCSkdjTIw62X88XGEDwQ4QZHEKKJUartH9cx9cDSJhMO8wXU8xmYweOq6tLrJYLHLY7bDYbTOZL3Ny8xN/93d/h+++/RwgBzjFvsjGchTudTjlxyxA0+eC0sbxuuhzESX/2edmvUo7nPvvY9z6277n3VZGfxqBUEe/3e+x2O+x2O+y3W1hymM6nmM/n+OyzV7i4uIBr2Ijph4GhT8kmvb6+hnONeGoR7969x37fY7PZI2eDbjlnisX0iAxg0nSYTCymzqCjhJYSZq3FYjlFO5niabdFPxwwDAdc2U6YoLg93/sP75FoDes+ICeCzQHOZExbg/5mgRwv4BcTzCcOORy4v2vKMOSRKeDQRxz6iD4a9MliyEyX6AcPS8B00uFytcB/e3rE6uICk3aG5XyOnCO3KUPCpHOYTSfIKSClASYaWMOxQy7UisgcHEVOHikk+P6AvnHo93uk4JFd6YPCyR0xIAePZK00sciSOKj1sA0aa5nEXghKOPZ5QATBTGYIfcbGb7HfDjiEHYa0xofHDbaHAYch4WK2gs8NKI1UhJwkxY3BbTRCamCQGyCTA/MRQwjg2RhWxjQVYMZw/XW/PyD4AWYywWTSAsjYPG1we/sBmTI3Ap9MSoaxJu0VhSoxVNdwP+B8xMaEUSAaIx4TSpw7RTa2PqaMdKvDM3WNpcLWSh+pa96amsDwf2w7pxD1vVrRne57+r1akf+UrBhzXY7fr9d7HX3mBgjqxUnoDiNsrCQfxpixz7H8fqIxtyZLbNQA7GHGyJ6psVwaKQaShgmjD4xMQpQttCbXlLChceBeyU4tBwIMdw+yzsKlVOp2c+D8CbiM1jDaySJ3hPYFeDy+Fzg2Xo7GVeAUMtVc/4nt01C2hmBbgWGzEVJ1ARtyBFlWWjll7Pp9BU0Q1xDGKHWO0notZYSUsRsyhkRMmp6EkxgsFIhGBUNkJLnEoHENZ2pai1c3N/jyy9dYLud4uLvH23dv8eq1xeuLa/ziF1/h7dsfkWKANQQ/9By7M0z8oBa0KlqjUBdQYGFRkUAmqSH+aWjrY4uoXqD181MI6+e2c5BXWThCmHA49Mw37BMWswVWqxVWqyWWiyWICH4ICNHj0B9KyQYAPDw8MLGIs3CO24Pt9j1SXoOMxcpfw046mLbDZDbFxXyJWddi3raYWsLUEaatxWre4mI1Rd/PsNtt0N/f4nG7B9mAIQCDT9wdJnjE3COGhPmkQesMUiQ8bQzaxsD7HrvOIA57XoiRrdTdzrOiHRL20WBIBJ8BD0LIwN16jc3jGn2/R4oBrXOChsxxOOy4C4t4uX42ZfYqPyCkyFY6WABolQQR0FjpaWsIyElagKmVnaEZwcf3pmr6YNgY1fpSfU89sjfvPmDqgN3TI9Kwx8PTBruDx36IOMSEx/0AnwjGtvDtHGZ6BUwaIJN4sxbcbkF5x6WvChFAjltoSEkUB+UIEGWbEgtbZ5mYYLsxyJ6F+HQ2BQjYbDfYbJ7QTSfoJh1c67B92nGSlyQfErvUyDlxzXPT8FgX+BVl/ajiJYGznZMsY2SEEzSoVqan6wc4hnJ1PFXZPj6yx821pj8N69bvn66zc2v33DH+ks/OKYbnkPNY/jRCwRXyRap2ODxWStAqaJ1RNk7Uc477hzMLlTk6Nk9hdqGVMS0lMU0qQ8kYgutaGMP8CP7Qs0cZUxnbXClUHe76GqJk+oPYaSvhspQRB4+YEqKVnB9KR9L2o2jByT05d79OE+E+tn0SyjbnjEEEDCujpIaUQFZC1xgj+mGolC2XFnjPsZ5h6EXYJwwh4nHn4RMJK4/DdDHHdDKVhvNqnZkSA7WiDDTz9+bmBl9+9RVmswkeH9a4u7vDcnXFXXAWS3RtCz8MIAKCD1wbmxOctegPh5IlrUIVkvWnirbEWn/CowXOL7LThXkuOerccX4utqNegAqguja473susYjceWUxX+BidYHVaonGNeh9D+8HDN4jxgEEJtUwzuLp8Qk5BNjYYGa5x+7guaNSykAyBourS8wlmWa1WmI+mWLedZg3DrPOYtY5LKYNlrMWbT8BbIOHzQ67fkBCxBAyeh+47+0QMXhmJ6M8R2gM/JBhiOuEp51BYzNCv0PyElOFwfpxh0MfMfiMQyT4BPjMihbOYbPf4Wm7weZpDUNAJzRx0+kEMXIyT7QGBg0mXYuhbzE0TeFnNeC+rwCzNPH4WxiTJcu3vjfl7hZ4Lmf2IlKORbGyFxtkHo8lWzFGHA4HvHn/AZQCntYzBN/jabPDfuBx2seEg0+AbdDN5ui2A6aHALQRIGkYT05KpSJyDiL8hEwfRrimpSa3EohjqIRrbpu2hbMWnpjJaiqt63bbHQ6HPSazKWzD9czeD4VCtbCYyTiosh1O2OJqv4QEImV0Seazfb5mzv3Va6NOZsyZM/Y1bvv4+IjFYlF4df+S7ee86tN9z639n0O4Tg3zc8oWonBLeIpGhVsf3xmLbMb6cJWVmhFvpbmEI4L6C2OMVuKcplLqlpAiJ0qlEEo7T3Z05JjOAinBH4Rql9tqlZI7QgVNV7HunPKobAEJsGYgJkTPPNnRCbmLiUdGwekY6vYxo+jfs30SyrYfBvxf/8//PZZMVGwuNQWeelc15KFQmdbkcQeYDJCFbWdImeCaFtPZDK/c52i7Dg5jdlkG95Ns2xZd145tzZzDl19+iV//+q8wnXT44Q9/xOZpi91ujxACpnNXWmxxRuSx1ToMA7puMsYv9Nc0Tlsv7Kxe7si+osernxONzZNr61ifnyZknHq5p8fSd9SO1bKEugZRvQoV3DFyskjXdbi+vsbl5SW6rsPT0xrrxzWi9AtdrRZYrlaYL+aYz+f44c9/xuHQI0j/rjEe5Tnb1BC6xQyL2RSXywUuLy4xnUwwaVrMnMNyNsFs0mI5b9E2BLgWQyJ08yds7h6w63ts9wc8brbYHXoc+gDvE4aeiTgICTkMAHpYCqAckGKPYb+R7NgMgkU/JAw+wQduDuET4AUpQWMRKaEfemx3O0xnE0ymE+leZKSxuEE0hkMZjUPXtfCTDlQpAr0/RlrtOWfLvbLWCEVkyzyvUs6jjEW6nw998cqm02lhWYqR+b2JOHt8vV7jD98D280Wt6slk0MkJpOP4HyICAfrGmTbwieDtx/ucfu45czo+Ryz6UTWRsscyRr7AwGUhI/clPgXe+nsaYQodZLS9aZtGqSmwXw+xXQ2hQ8em+0jgIzZfIrFglvQKYlFkhhsljiLc066brGhq/NIDfURukYR/GXcgBKDVa/29K/ezhmcqmyfnp7w8PCA169f8xX/jBH7USiymg/nlOhfetxTPufzx2MjiYigeWz6PSsKt5xnDaoqhFxDzaaiOBSubIjhw620SYwdU/iFrayRlLjfsjeQMACY4c8xc5pzTtDKQRJA5U+TovR+hXjkecYU2XvV+yg5OZwoxY1DvBnQ7/ZwHfc3VkPgY4r0YyG9f8/2SSjb7W6H//J//J9HxeQ1vKMxWlWCJWZLY3p8raDVwHZDj2QsTONKw2jjCGSlbZg0mCZnMZlNsVitMGk5m1ZjEdrL9fXrzwsvaooRt7cfsFzOsdttsV4/wLkGjpiQox/2DIWTdrdQiHi0wOv+jdAIdHUP61vMZILAcWoYAFWyJ9/JRCWgfy678Ag+0cC/Cim15OU5qSEQI4b9HjkltI3DvJthNu8Aitj3W2x2j7ANsJqvcHV1ga+/+QqvX7+WlmSEX//NL+F9xOPjBn/44x/x/fd/Qgw8LsZYpBzg+wN2mydMpx02TQd/6LEzDmtjsO46dI3DtG1gbAQQYEzG6uWXuPjsSzxtdrh7WGMff0DvHdouIiRCigzxR899Vn3v0YeEmAJi8IgDBC7lZhHUNLL4WfkiJVCMoBgAS7AmczceYzD4hMNhh/sHoB/2GAbPCsB7eM9C2YceZIDJpC3xKwDHY02a+MYdRkIIWG+emN83RWz2B2QysG0rCK0BeVu8utliDhJih5AyHh6ZyIQVK7AfAt7cPuD93RrBS9awMSBrEGKW3rBMZ/r23Qc26qxFN5vii88/x6tXr/DixQvueGM0jszJaykOPL8NuLmDzEeyBrHXlovcWJ1AcJYToyaTCQwIfhiw2++wWq1w/fIas/mcs5trpUQZKQc4ZzHpOj4PcHa8cvfyoDKDljgzVX/aMeml67rCG13ac1ZGPd+PUTFqJnK5Z0CBku/v79moblsQjd7tT3lK57Z/r/A+PUZ9nNpgHjdWW421KF2S6Lh8BzgJZkmstWQZExWKR0McF88a/8yMhiCLN2pI4UmZMmq0JIQoRnbkPsMpBtgZJ67CEVzLaGSQciCAs9+1F1BKzCxX4s8mA9r8LyWmmRXe7ca1mM+XcEKIEkJAsJyAmSgfGSrnYq8/ZwT9pffvk1C2MSU87valH22K6WiBOOOgTax9Gjs1GCLA2aKEGtmfYIRTk+sJu8kEsxkT2LuGG0tTBshq2j7/ceKFg3MNmqbFQbqUTLoJXr16jb/9298JlzJh/XAvJBNWOqzkI2o351wp4gZkDmrAttpGgXKsBhkq+cva6dVq/Nzrc793pHBlfy1V0thKnZ2n8SqAYbyLiwXIMO+tjx6ghIuLFS4uL/Di5RVeffYKX379BZxrsN/v0N/1cE0DYw1C/JyJDtbMabvb73CZr3Do92VcEQhN08ESKyFmmyFu6ZYGZApoHGG5mqPtWmy2W6zXj7i9W+PxictyYoQo2wExeKQYuCwnMr9xChEppKIACVHqZDNiBLLh++mD58xqw1Z7zFEgcJSmFJqdmiR/QEtWNEtWGaR0TgMonNdd12E+n4Okcbx1XHamaRtt1XiC6Um1Ty3vMZ1NQfSA3W6HwTPCw9mlbCillNEPfB6+Z7iZDQYrbfDYwwl9j8Nug5Q5lDCdzbDsWqxmU8TFHBaLMfQBiHKTMAhxT1NhwQNlI/2ReT3Xjc+tsUDOYpQwrLdYLNh7dw6H3RZa0lMYiAA0DScfdl0nYaPhGRKjypMRoBNa04xnQrX2amtESNdK/f0o5VXqEGw2G+z3e0wnU7RNe36d/Ywg/h9RtD/l5X5MThx/h8T4H9nLgI/AotV7KmvLHIR6vpD8E6HHRXEbqoQxRhlGo4aNHPZCY6kEyDmhjZFpFw3BNQ2ajps8pCA1uOBObko2AWOOyDl4fgnJkVadwKBrO8707wcJaRgxyLQj3PN5UW8f453+Obl8un0SypZHhb1Pi4Yp+kTgO+cY+pWegkzXZrlg2lohFZD0fWvRuEYECRdOs+JkwonJdA7TMF1jjmzhKwxBcoOVpantJtju9nh4WGPaTfDy5Q1++7fA/eMj7h7usV6v2ToXiKvvD+i6tnjYTGJun90IvrT8/EYpFFP2O7MPzi+4jwmHsyP9EYvsXLxHLX+ggpiJ4LoOy4sFgITB9/BhQNtaXF1d4vJqhdXFEsvlHNcvrkGGENKAx6cHNI5bYL28uUbKgPnzn+HjgLuHe8QccDjssX7ghRr6COc6GLJIiRUTL7yAIeyRc4BrCBeXS7Rtg710ILq7fcR+x3B1DBkh5MIohCw8yckjZVa+OSbpLwzkRIghi5LIgGmQU4YPPYZhj4QIY5kwwccAkC10nIq6cD5TKt5TuR/xmA2MxPpy1qLrOlxdXcE2DYgsYjYgowURGa5rCim7EaMjV329rOPeqz4EDIEbuTPZQkbXtIiRs/WDD+j3B1hDJbyhIRBrLeAb9k4Tr43U73C4ukDcXQL+ACe0lkoqw+0vxRsESa0ioHXyo8cYZY1SQQWCDzx3/ICUcyHySODcgJhDGVfQSLAymTBsv3t8ZGXrQ7WGjgXm2Lc1V8rhPHx8GrM9B/UqdaoanpvNBrvdDsvFEphOj9bSxxThOaj6p7ykf8/rjymB8WllYFKtV/UJlacjSYWWSGmGOu/Px5QxK9wC4/3Q6lNVtkAa65MhHNwyV30MhRTINQ3ayYTpP700/hDjMosRpgje6fhZa0WR8nuTrsNysUTXcsKms8zpkBOQSBOqxlrZWoTWo3vq0EDG9y/otwTgE1G23WSCX//mt2dr3rTeU5u0K5+uptxbSTuvBR43G2aWG+X6DSHgabvDZrNDP3D/S2sJISXY1mI2n2EynYCQ4NoWl5eXOBz2ePf2LQwR/sPvfoevp1OEP/wBP755g/v7eywWC6SUMJ1O8fDwI6bTDm3blDibZofyxtCKMexpcJIMoTQjhnmWdl4v/HMK91QwnGbHncZw/xLr6zT2e5qd3LYNurbBYjnH5nENHw8AZby8eYnrl5cAZazXt2gawtfffAHrLDabNf7zf/7fESOwXK7w7a9+hc+++AymYbj2w4d36Ic93GGEKA97D2saEDmECAyDx+ADDkOPYdjBOQNjAUsJ+8NGMp8TnG2BTMgBiIEXztCL0WAyMgJSDsg5sOINkZVRZI+WyHJCXswwhpVl8NyZKKNnZQu2ykEOtexUiK3Oci33RmgMa25rAqFxHKb44osvMJ3N4doOZDvEzArCkIFtjDTT5usxRNwUIWeE4LF+WmP9+IjHzRMSAB8iw2gZsDYjbDkunULAsNtyhqljwen3W1a+zoFSB0oes65DYxu4FNEMD2iGR7TDE5q4RJKmC0zqLh64sUiGjdiUx7HQKgGN0XUdk5yEgWHYybQT4Wcxm89BRBiGHk+bJ/SHHqAM19gyF2fTmSAAhLWwOA1+wGzC8ewUDZKON467anHML8MLv/Jp0/h6bZwmRelrNZaICH3f4+HhAXd3d1gtl7hYrX52bf1/vZ1TtM+UsSg/5blmf1SyiDVzRHBiIu6QYzQEx4TF1e8pnMwUoyZL5YVRYhP2oTNlyUWR+Ws4R0a97BgCYkoYQs+ZzSCY1qAzHbIq41RljhsDEJNmQGDsBI4dFL3hxgYTjcT51QB2zgFJKwAqVUmcZFWgPkFsJJkaqC4/q23HUGBtyXx0+ySU7Ww2w9//w/98FHQfN7XCrSzgACWk0J6WJS29KAa+iUGaDWdwMsgQPA6+R0gJsNyMfELcGH42mWK9XsMPPbpJh8VqhRQGPG23aO7u8LTdopeEk8enJ2y3W5RWesslxyBjRkoVlFXHQrIpWX2jIjRF2TIfNMbrOfP8dDtVsvXz08dz3zvdlGe2FjI1lK0xr04aM2hyiiZLNa3Dev2ADx8+oO97/KfhP6FBg81mh+12j/v7Nf785x/x49u3+I9/9z9huVrhs89e4+7LBwzeA0hwziKFiD7vQTQAZBB8xmFgyNF7Dx8DtpseKXqAIobhULwXZ5jIgrvvGMymc3h/QIiR7R1RslkaW2iXJvZsBSaOESFEpmkD9/SM0XPcUOeXwKdaY5kBgchkzCRxIEtCStd1MOBVS+L9xjzy5M4mE8znrGwTDEJIRWh0XSfeFGfoEiwaa9E0DsbMmKYyeAyHA0Lfw3ZdqU3MiSlKHREaw83Tp62Dc7yG0oE7sDARPC8U7vOZQTEgKJnGcED2A0uZzOvLgeO9yIL01u0FIV2iEis15xp0kwmHZ2iPw+C5DIfYi3FNg5gSyWQ87wAAIABJREFU/DB2+ik80JLg1LQtE62kfFSHy+EiTcRh47r0KuFFwXM6JvGGNScEklFNrJorNOc05qnIjtaUhhCw3W7x+PhYYHtdW6cZrOX1X44Yl60cV4R/ludFAchzWylLnmdUlGCiEs0EBIEgUnYny4qUtIH6sXxw1p318vVYLBf42ClEmCTxYB0/olFp6bEr3RRj5sYCgatKBjPAgLg1KBi1abqOQw6Ru/ekzGQuKWmylFI9cvhAyXiK45AZBVWXledUM3rg1XXVlJrP5KSGTKBwuVIFS7nTz9zgT0LZWuuwurgsC4aVE9gGO71wrwoMxRIpUAVGSIQxeYCkRiwkaVeYhWYuZ2R4HqATyNZai27SYdgnWOcAImx3O0SJSVnrJJElwjmCcw04ycWhazss5ku0XVsWpibC83kdgxGqyLR7zBHMVXmZddzEmLEUolCFZYVkGOYk/Tyn4kWNcNvze5BFgBqhXWN2HjmKTGhDgGkaNG1bfnPSTbBYzrkDyqFH3w8IPuLD+zvsdwdY2zB8TE568XpsnjZ4uL/HcrnCarHEzcuXePvmLSdj5YSUI3LqAXB9tR8C+mGA9xLvyRnDYYfgPYg4DiTDiUQRwUfxAA38YBDCoRAipByRcyxjM3biUa9RFGZKiDKK3ESCC+wLfCbzk3JV1zeuxXGOQmWNmMsJ4O5UzN1riNAJPNoIRAxDnB1NCRYERxmJMlMNClsNosQyjUHoeyAEmJRgUkL2w2ihSxmFmuFWendmuV7uRgUABikRQA4xkzBSNQiJEDM3iEgwbKgSgYyVREQxzJSdjS8PSTKRo8zjBKBpO7iGW1wOIWCz26NpHbrJFMZa9P0gGeusQKX3JK/HrsOkm4BA3GVq3yNKLLhpWuz3OzaaIrdezJlGqFS1VObQUiZOLEs5IUeWHYWuD6Mg0VVbC19VuiovmNxii77v0XVdaceGDH4u8yQlJu1RY6sSAc82OvNM/M9yTgmiVEdJIr8rj5qTSRjXP1+EKNYROeHdtCd4ro9WjaFc1Dnbv4ahmVWIH5WvWmSO1smqgm4bgvKFM8VpQjARgQIa65jkommQM+BDCwoD4hClBaspBgSZETVUuafGhEQkYQ0Bzsr94X6442iqDOWwiH6HxDjWRNrTezTOK7Z4Mp0bnHH7JJQtiEDWjcoyq4UsNGcF4z+2FAvEo4q52nLOiCkjEfc2jTExnYBkDHsfkHq2iJS6axgGQJJD2rYFYsJiMcdsPsd2t2PLuuuwurzEanWJ3XYPbvNHcLZB41rMZgtcX79AzsdZbj8Vx+HXtlyPxn31tSrbonSrUoQ67hQjxyCocEejeBk6+Qq/bOUJ6748H5novW0chp6QExMHBM/1xG3r0LZNuQfz+QLXVy8AEJ4eNxj6AGsbvHv3AU/rHRazC1ytrjGbLoHMscXeD+j3PRwxzeOrlze4+3DLCiwkAL6U1qWQsBcC/iCQZDaE0O9F2Y73GxmIEEIIMCXcPvjisWsGqsL7RMSkEwIpssVejW3OgDTfI+JMSMZJ1Thj44ZXpCSIqHBRAS3zm/vycucnGOZtZV3I/MDTbsJzOwW0tkFClHKkCAQ+K5sjnMS80hDhPXsph80aiB6OMhrKiH4o8wbOwuQICLkLkUHwCVE8Z7IdAGmLl5iFakiEGA3cZAoPh2RbwHXIpkHvB1jn0LqG0QJ2MQSKj9C0rhgjeqmjlsoqNN0Eru0Aa9Hv97h7WOPiaoXl9RVABrv9Dts99+adTmfwg2SrGoOry2u0TYMYRvYxIw1Cum6CnAkxJIQQ0bjmSBoYY5ghLBO6poPNgAfg0xhXF11cvFy13g2ZYrhoAmRtAK/Xa6zX3Havm3Tshcv1q2GriZ8k7EdaTH1GVbK3VF7V0G6ZTIyo1HMLKOdb9kkM3WaiYuzx1MwAHEg43UdaSxr/qsFLMt+lmqeMZ5Fdwi5WlDEkVp71qtjrg+GENT42gbIRalI2UkM/YDj0CBTgyaBrMmxjYBsCWYJPHcxw4BZ5YYDPwMQ1nMsj10BQ75U9XGNNua9EBLIWFhbIBibzCOas4QGVhVRGXjdNClTHrN5U7py3Qo63T0PZ5ozkj9tOlYSYNAbUgeeZYaeJDfoYU8J+0H6UDKelwJCCJYdsIGwy3K5pv9sJ4YDDpGmxnM0xvXqBtm3RNAylNE2Dv/rVX+G3v/k7fPnF1/jXf/1XvHnzBu/evUXTNAVe2mw2R9mNp9tp7BVA8Y7PQb5KsqHJW/Wx69Zsun+tSPf7/UfHq2bHqeHmuna5hpG5ZKODNQabxyfsdjtcXV2hbVs2ZMnisOvx7t17bHZbvHt3i88//wq/+91/wK+//TX+/OZH7A8HdF2H3/72t/jrv/5rXFxcwFqLH374AcHHAlEiZySptQx+j+A1zsbX6HuGEdnQOB4vNkJy6cDTOMl+DbHUbeo1aS2nLha9Y2LqfRzGz2zFKz1JuWsiTACMAUx2c6TxgGFoDiyMnLGgjFLuZghorQElXg9MoC68sDEAMTDpv9KgpTS+n7iMggzJT2fmg/YDMhk4cjpIyEQlvgniZKxMRk0z5EzYh4hFApJxQNMBrkWWVnxZDBRLtghMK4qK42tibBgD03A3ImM58JeNRcoZu/0O5AyayQTXuz0iZRjn0E3nWDQdBoGJdQ4Og+duSocDCEDjWnQtty5EAnvjsDgOsrERkVMqMDfLfirQYt0sPKpgpQp1OnmtWwgBu90O2+0W2+0WVy+ui6L13nPnJmsBIkQwtFrPsTNO7dH27PN87s3jfUewuM4IPreprDkX230+59kfeZ4Dwk5dKqcWkWAyYLKsQ2Xur1CfnLUkmx0dRxbOtog2ICcg+oToPZQEA8Q5BY0koHLZT+S5VFkp+eg3xjI0qCLFODVS1DN+nlSac5acifF1OfFqV3XwtHzy57ZPQtkaMpg2HRSmYNhlDIpHE8tiGHrOntSRIKBAelkUdAaAlOEiYKxmzBE6siDXIZJFNA6DB0ImZAowGZi4Fs4Spm3HMbQZ1/whZ2k0TFjM57h6cYNWMpGJCB8+fEDOGY+Pj8WjmE6nzzIdz22jYhzjovx6FABEVBLE9E+/VyuO0wQzgOOppx51vel5KWGIl0nunCvNs3XjTFDH7bHmc8xmE9zc3GC1WuHNmzfMmbznvqvL5bLEtTabDXMjtwwh3tzc4Be/+AWur6+5xERIHHLqj85HhZYq/iDJTHredVMGvbZSVpPGOmouvwkMPyWGyiEWvx6veLopVijJCKlVshvqXciJlD3Lk6qGWm979L4IS52n1lo4yxZ+23CTBjJA07oSGCEiWGf5vJFhM3PFcoMNAIFj0TFzbWFIEnMv55oR1SigJB1aKrhN2q1l4ppDVZZIET5HXKdrFlDWcH9dZ8Zj0+jJGzlXIxSPbCyLgSwGo8Zmndy3vh9Ado/JZgvfD7CdResaYDpFazQBLJS5MPQ99rs9N2wXaLmbTKq6/GoylFsg1yRNCpBTEcKKlNHJOjhdqzo3Tg3Z3nvsDnusHx/xsF7jy/wVlCYzsvXJ42aIDSFjnh9bJ1Ief2ycS7kgBVk+K5+WdSyvjfpiucC2RcMRoRTHgrgmtY5xFE+byvGOzoFI/FWBnuuJTQLBy+Q24h1yZyuh9jQEJPmmOs8aukEGBEmMwSOliBADDn0PGAMHV8gwuq7j88kZYfAwknCsaGg5e72/ek+rMddrHM0D7hJUjJT6/uTjzGSe7zi7/bxf+4koWyCDpDBaIWQJPgI5cbJJzvw6JpF1o8DMgMSJsrDGZZic4UCwhSMzI5EFuYxEBpECED2AiAiDxlg0hru3cE2n4USdgfvfNkuD6D3HJQ8HtG2L5XKJqaT8p5Sw2+0AcMKXJrWc4149F4BXj00V5SmcrF6tNrKuPdlTiLlWwJPJ5JnXe6qcAVbaJUuWxkxw7W+rtcMaL44xcgPw6bSUY6SUmL4OwHy5wHw+R84ZT09PePnyJa5fvsR0NsVnn32G6XSKGCO2221JPAli2Z4TbPz3vFzj7GySOVQWW+Q4TypsZMfHVgtfOYZrL/90cdXC8SO/fuRPZNlRk+lUIKaUQEKwr6Vpeo+sc3BFmLGiSpRgIUxIiRVwuVYR0GrNWxG2RExOYYw2CsgAscBUflyI8tULTRgVHDxJ1jV7yyAUhVHnEWSIB0sj+T+XByk0T6PB2PCfGjYhcNJbTgmGGs4wbRqGQat7r3XLzGIWMWnashaGQ89GdjUf8skNKu01Jbu1sEjlY37k03WaK3dJr1nfiyni0Pd42m6wflojxFgIQ0RD8+sqi/loLhV9Rcfz7KNe0qgkn81LOn5eXuvz8lf91umO53/xSLECzxWQolH6L8vfxEmfOQFJFVo++qVSNkYk/AYWgxfDynu4Vso4MxX5lBOTWZDqgpKUN47jKQAwXm41EEai1kesWRjr4ZOa3GKcyx7nRumj6NfJ9kko2xQTdk+b8bUkj2QcW5oqRDX+YNRqg9zvBMlC5f2dsbBkRwFnmGIuUUIAIcIiZMCRwbRp8ZgyLAxsJqQh4H7NWccAMO2+RIoR+8OAP715i7brsNlsilWt7cAAFP5gVVioruOnPFzdn4jKcfXYNUOWNjk4/X6tePXvcDgcLfTChapUa5VyPoWSa6NAhSWQ4f2Au7s73Ny8QErcheWrr75CSqkIxPlygW+++QZd1+H+/h7ffPMNLq+vsLq4wNXVFb777jv88MMPePv2LfaHg3jsHJPT7FMdN6VvS4kZubJ4PAqDa5ylxPChmYqsXFTR6vgdCz5pPF7G4HhMzz2qAjHgtCk9ztGCr6E25Gff10zbpmkKoxIjFuBSCT0HYIQfcy7K0wgEqoqUz2DcSt25ZvnGwB6uGc9Rw4elmbh45d5rrW5AyEzHqKE9YwnIdaxP3k+cWBeyIg+a5JegnVWaRtjZWmZnY+GWgRwLmqKev5dGFtqekEMiBxwOB55zLRsojXOIst7yEaIwetaA1FrHALF8jtbWsaId14DOJRXetbJV2dT3PdaPj3h/e4vD0GNpVowAnIS7juZUdXN/WoxX3/nI83Pho9PPj//k1ypUoozZ0bcrGBWjR11ksdwnSqxEtbkGJ25pz2bOUSCTQYlT3Y/h+VRKhaxpYNsGFAJyTvAhwYfAylbmZ9M0RSFS1M5AjFhk0QWmHl89/yNDhL3ZJF7tUehO9EuSzOZTA05RkHocxuc/r3A/CWUbQ8Dj7X15fayQxoJ0FfhZJ9aJ9wOFkbNYtWSQokIxlUeZhILPR2CIoJBgEnDYbGEXM6QQ4Q893vzpz9hsN+jaFt98/SXW6zV++PMb/OntO+yHHtPpFI+Pj3h8fCzsSpo5qUpCYSU9x9p4qBeKlozU16mfl7pi8TRPPT79zjnvVuOup/uf2/Q865jtYrEobbaUHpDIYLVa4fPPP8c333yD3/zmN/j7v/97hBDw+PiI+/t7PG03+Oqrr5Bzxv39PX7xi19wkXpOWK/X+Kd/+if81//6X3F7e4vXn3+OxWKB4CP2u70QgpgSp1avj5UiGy/qhbNQM9Iqkduf8TWzALPOFJgwCWONCptawfKwaFOKYyF2fsu8P45kZ9mOHRUCWaCpakaDYTYsShGH7QYPtx/g2gYJQO8HROSSHpMIXKcbA3yMbNVLkpUfBtze32O333EZkZCzaOE/iKHMlIAhRS7pUUGaMhqpo1QSjRgShjTg4HukFDBpHSaNQ2MIKQysGGGkqTxKFvfoiB8L9kJXKnXtyhfNuRAV4UzbobGOafyGHvt+h91uizD4MpZhOHACmTPo2gbWADF4eDnXlCMDhBlS1iVrI0PCCJxRn8RQK4lzKRZImePqJP1985GgBoAs80MvOKWEp6cnvHv3Dh9ub7G6uBCjohsh5Xh8Lqe+5McULQMUf5lyPafczyng2jBTP6/sXz4boWRzsj/AtJwaEeb3eX+jEK0kHBEZICWeyYaNLoVvCdzRzWVbqiwa5+CdRYwGOUVxKvjXmSuc8xvQZi4zIkL0BAYsuGubNWOb0NO/cTOIwiA5ylKUc9ekUhADrJVPN94XKYETYOloDXxs+ySULTJKf8FT0TUaX2yx+MEXq4wtDSrfOlVmBgawSWAUVcA8MpRZiTWWSyM4N4/KYiCiojQn0wkuLi7wtNtis92wNzb0WK1WRZkpvNV1HUIIRUGVkhOFrdIpTElF2ZLgSurZncJbunBVYAMjDFrHaWvFq/vo4+lfuQU5F6HQ9z22Wy5nAIC2bcux2HDkc1kul6Wh9ps3b/D09HRUp3h/f1/Oabvd4vb+Dk+bDX788Uf8y7/8C77//nvs93tcXl3h8vISi8UczjIlnyaCKWKgta/ej68BhTWZZECbVOz3e+TMuQBN67CT0iWiY8rE54kR6aNehI5RbTidk5FHx6yfpzHGrJC4JtO9efOG60Ubh0yAj5HjfXIfU+bC/yAKl+m3iOkXB4/HzRPuH9Y4HPYgY+BjKHGqnDMOQw+fIjfZjua4ZMQY2GykPZqcs3DQNs5htVxiMZ9j0nWsMCElaCqKSQSsejI5FfSJ56TWb/JCtuLBqndrrWUEyhKYAzkhBi91kyMhxrjemZOZOyBl+HCcTc7QMNf35qRxZKlqSMzdq9BxXWJXrxtOahJxUSEhdQ5FPTe83Md3797h5cuXZV0AOOZcPlK0xyr2nFFX73O6tk/P4ZxXWz8fodIRaSlzlVRtnvHSSqbvme0jdmgBlZOy9DGUbDRufALXK60oSEIoKSL6XNa/GsaNOBqFGEYQppgko9jYwmJ1Gk6rrzdnCakcWVKVXNT/jsbiGOpXBXv0vZ/Rtp+GsgUKNFNMBYx5niRWdBY4SG+MKkUA5bua0ARgDCcYKjCYfqbZiJoAFBPTwWkj4JQzLi4uMJlOMJlMsFyt4N6/Q/CcgRhyKkw0qqBCCOi6Dn3flwQjhalO47enVuqYHThuNWylY1QL+yOoUj7TRf5TE+B08p1u6tkquYBO8Pp7MUa0LRsjDw8P+P3vf4/7+3t0XYeLiwssL1bYbDbFS394eMDdwz3ef/iAP/zhD/jhhx9wf39ffo9hxAZdhwKpqrGiY8AJUxFt23KcL7MC03hobfQgsyfcdg2G/Q4hGIRwbKToWKj1/LHx4Cmlxk8VDqDjxTrun4/mGgBACvf57QQlqdjugPw+Y7vdgCzzf0cAxlmpOWfvMXjPdasaTyUOv+gc22y3iDEUjl7tthMTt6XUOl2T7ZE3bqxBm5ygRAYkitYRkwNcXaxwsVxiPp2W+2/E40owsDBSfx7HMazGtiAFVczXOS4fs0q1ql4wBMbTOJwIu4LW1OiN9MtVY7b8rq61yEofxsjbEqtVpXly14qBagWiB9cKlyQ8EnwscUFnWZuQ5MLDAR8+fMDDw0PpTFQbzEalszgIo1dJRWmdez2ierpu6WhcceT91kqy0oVlVxIjgh2P2mg/nrvje6VuuDr+R9EeNVB0T1Fc/FuSYHWixznGmxi+ETmTnZNyMuY3J4J01LIgwojwibJFymJMa+tUM4ZbakMpSd5HaYzAPuz4WZb1nY7XbrnciiCo8mjVvDga/zPbJ6FsMyRjsgip8TO27CsrjooNNirnehMvuCQfEI3fUQFJHHNS5coE+RYvbl5iv9/CB4/D0OOXv/ylxCQdVpcX6CYT2Iat8heXl+A40r4oW+89nHO4v7/Hr371q496tXwqo/UPjAqmhoPUk9Vj6Pe05OW84hgVI9FxP87TMqHTTSHqOiNZvQ+FdZVInBl+Ih4fH3F7e1uU54sXL/DrX/8a/8v/9r8Whf309IS7uzu8+/Aeb9+9w7/927/h4eEBOeeSLZ1Swna7xZOUFGmcti5Bypmzh/u+P/LeU8o4HDhWXJiHaBSIXdciJ+6xq8NLxJSZyhHMx8vld2pBlKSUpb4fOY9xzPoeFLs+jzEvAMhR2aKUJANIwaDv91iv2ehwTQOyFslaOFFGeh5Kul8rF50X1tqR+QsMQ2vMX1vKcaEuwSb2jEf0JyM5WwzcnCMcZbjGYbVY4MvXn+GLVzd4dX2Fw+EwJnkJSQzZFiEl7IYB+8FzSVDmcE5ZkMTt5mEMbDN2/dFQgFYeUGaKVUuEIY+kCyWMUM1f/Z5epyraLHWhWZQtZY4jpiSJOxCHxhDIWVhCYdtixi5O4KrvaZQM5pS5HM3quYgwjymh9wP++MP3eHHzEtY5zGYzgdm55tMxqTZHCumYT7f2cUc3QUgaTuFLQknYGRUwf/FEbco+BCAJwlCkpijC43lez+FT9G08K1TvVQYmRkV7fBqnRikKCmmg+U1V5rq1cNQiC/8416azUdVIcxdlsovWwtmAQZWphuIMjX/Ewr+sF2mCEHLl4aJyTgqBRSpZ++WsiY4MGL20FMWo+IgNotsnoWyNMehmUxl0hXRz+Vct3wwSyDfrHWMqMp0/hlDSoVJG9gnJjJ5LFMuZE0RkJC1Td027Btcm4/vvd3jcbXG7fsA/vHo5enOG+FjWFI7mN2/e4OHhAff392Ktcxxqs9mUZCn10NR705t6WrKjVvqpUtTv116qQqwKs5wqdT2OLqRRKY0UkgCOFpmeY9M0xWvU5J2u6wBAvHeOTc/n86NYtf7eu3fvsF6v8dnnr3F5eYnJZIIXL15wTDUE7Pb74i2oAteEsmHoS3YyAAzDgMPhUMYyZxaa/Un9Zc5giDWEylBoYC1fX9u1SJnbsSm1Xm1M1MbH2GdXxwVF0XJS1qjkjK3FGyd8jNuxdWzIIBWUI8Jag2S4EUaU31SjL5Y5Ot63U+hQjSiNaddCU8ch5yy84hYhRS4/SkzwoLkN2TrkEAHDiBGFBJMZ9VlNZnj94gavr1/i1cUVnsymlO3knDHEBNNO4GMC7ffY7A+gMFJhancXgMrc03XSdR2cNeJpRCAFGDRwxqJrWmzDU1HY9ZzVseCTkLV/YnCz8h6N0/H+jt5HndtQj68alwUtYo0JOkmmKt67ZTamlBLefXiP9+/f42J1gZuXL9E23EDCEJV4tK08znOy+Vihjc+NyCyF0kEE5X5iwZ/PHG/ct/wmQyVlj+J1Vxtfn45XfaTznhsbRWPM9tmWVXmffE8UYZI14czIKYAUSzKcNsfQOQRznAiqIRmfJfygRlV1LVFQoRhiaSKSadynOCz1uZ08sqE0mkk10vhT1RG6fRLKlnECC0IGZXs0GbV1k8I4yuCDakIob6jePAL4PVPBhJRhsxl/j/jRKJ0hGXQpoJl0CIc9HrdP2PUHSXhw2Bz2aCYdXr56hd1h4FICUWzqdejmvcf79++LolSPVxsq6Ht8KpqFnMpiUm/lHKxc39ASXwKOlG291YLqNImiPl6t+LsquUMTEwAINK7tC21RzpPJBLvdDuv1mo8j3ZnUM/Xew1or/VD5sx9++AGbzQYgKmVAXEcbj/iZddM6ypSeZ4tyS7xY4rhEJJ13AnPzBobDffCIUu/oGofpbIbZbCaKNIrHnEqNqJJojAQrWvZAgNyrwhJLBmMMKMvrUQAaa5Ek3mqISx0Km1e1DxlCY5xQDuYjT7q+h6exOw0f6HMdI81wRsgwcJhNOsnM5hhm17RsoMaEHIHWOsBGTNoOn728gQWw32yxtg16IZMo8zwD2fXwiQlkDoc9YvBAzrCVEhrHRC82l7UQgy/Cn8q65nKLxjmkFOE1yS8nNHKd/eGAnEa04NQQGQ3UxIoiZ27qYCtfRee+OU4u5DPMJ+xLXEaVUxoh5cojI/Fw379/j/lshsV8jr/59V8hhQhrCF3TIPkAzQsZ1yAKJKnaqPYky2/zzS/wM4u/XPJNlHe7zCedGziJ8aqhXQYBR7L0CD3No5LR1+OWCyyNyuPWjk/qKKH6Tf05kjFX6JYqh0AVvzUWXdsheEbQhmGAEdnIMskBknFvmwaTKR8j+FDKd5h/nL3VMbRkMGkmgDHSOEMNOjnvzBznOiZkGF3JOjeT3neleQ3Fw/1YBrpun4SyzWCDW/vMwowxjdqSI4Bp7grcLJnGzwwKmWS2vGRFXmEA7PZnWLCAM8aiSRM0kw5730vSyQPmqyUmbYv95hHdbIqbz14hZuD7P35fvJ26GbVOhh9//LF4HMMwYLVa4eLioiiyugyFF70R2GgUGke0aNVWZzfW+5XYROWxaqJWGetnkFE1anIM9TzUG9f3m6bBMDALUiJO6ppMJlitVri/v0cjLQqns+nRNer1v7i5wYuXLzCdTvHP//zPTE5gDBaLxTOKSv1d9T7ZexchXF2T7l9D6EbidCEEhN4jxQEhDBhC4MVuLVzTYjqbY7lawfuAvj+gHwbAWG6Hl5lmMIqSRwYyGRbMomKtYWq+THVuZi7Cp06IMYbHLIuQalvhJM4ZybKBaZ3jWFPTImEMO9RJXXXooZ4b5wg+xnsqln5KWExnnGwllv6kaQtNZsqROw8lYD6b4/XLV8gxYfP4xAxvKrTkuBEG0Rh4ZAwp4XDYMZ+0niMBOSvdpeRNyPzUXtBZ2LvUUIYqSEPcKzpkDAPnQyBpL9KM/rA/MjCNUUasLAgD34uU1OBhA8Bac7RONH6rrf/q0p5ReY2dbFI1rjz/xFAQhX17d4eu7bBaLPEff/s7BHhYMmhdgx578VCp8sZV1lGpsijrX+eRerFEZf8oPARZIG5rR+as8YgkqKApGdaq3YuxgFGB8NStjfnK0668eRnOap5r/q5eG40HKAc6NiBYPvjiPFElZyDe9qTtcEgRffDwwyBGBqNSjRkbC5AxaNq2VHRwh6tYFG7yjEhwS9YGk+mUEwxzRkzHbS81TKfIiH6meQAphAJL5zyuh9pQ+9j2SSjblBP2fhgtsFQRNSh0IvdNKOSPFUiJdOgNlQbD5XUdP1LLD+PEM4REGbZtYLsW8YnLVf71u/+O5Axef/45usUM1Do8bXdMpD4MQkK+KbEsjSHd3t7i4eFBOpJYLJdLrFYrzOfsmiPZAAAgAElEQVRzXF1dleQpXezqtZ3qP/2sjtvWpQTH33/+COBsTe65Tb9XQ9AAjko0RtpIgxwI2+2mQJWbzQY3Nzfl+y9evMB6vYYx3BXpm2++wbe//CWMtZjNuFXabreDaxpcXFzg4eHhCCKslXwN1cQ4Quk6uduWFX+tsENgCJMhag8gw7UNurZF03ZouwlnjotX632CD+yRkuX51xpXzSyBr3S8iKCFEeW2lR6z7IXVW4wRbdeVJg9EqKzjKIQPDYyzyJLrq6QQ5/4+dg/LqVT33ICAJoFygjMWrjFwJiIai+wDhsA0j411cDPC1dU1rq+vcXlxgQaGy476ofTk1RFJRMiOxyiKMIpICATEXHngqu7SqNwAqbG04lWkDO3onHNG6McYdUlElNgugNL4QOO1dbjEOcf48jNodTS4j1AgGoWqMUZKWyqFqmOrfMd6XURjD1d53x967IU1zfcDHHFoK8cEB8ME+6dCWU9Kmc30d8XDUlFVZ5Eb0i5iBIfzqFVtmBlR1Go4ApDuU+q4nJySfB4HD4VqUVbD+Bv8KFWrluvwWfFwVykYK4YIl+hpSZozFhYZURLrDIidqCo3IlYOjMoBZZXLocplkWsIglyFEJBC5LIjVeZyD5MoyMlkVpJhgbE6QQl2VNlaa0seiM61VFCu507MT22fhLIFlFJrTIpQ+CdnsdGU1FJmHn92omR1YRPLOg1+k2I1uhWXI8u+UmLQNJgu5pjsd7hbP+C//9t3CEh4eFrj8vICu90O79+8x9u3b/Hhwwes12tst9ui0NSb894X2sLJhCkNP/vsM3zxxRd48eIFEw1UvMQcCzqGt2pFWkOJ6ime7qOf16UGmnSk43ROcddCRz3G+vfqesS+7yVD2SNVsWJrLRaLRWGPcs5hPp/j/fv3WK/X+OMf/4j3799js93is89f4/r6Gv/wD/+AH374oSRDMdw8wvG113+cEHTsmfM+z+OZeq18PEYujCO0roF1DUAGh8EDPmDoPYaePd/GNsXKtrBCYm64jMwIYgIJb7gW6tAyCjeSwCHp/VXjMMEpTEbMPoTApTLOcIJSEEacIw7dMwr2WdcY+f2j96vxQVZFRjjsDphOpljOZ5hNZwxlZ1a0067Dcr7A5cUlLi8u8NnNK0zaCSgTgtdGCuMyDJlFZQArW5NZcSoUqCUYKWf4EEbKR4HPrTXIiTsdaXw3pSS9f4eCGIXgEXxNPpGQg5AOSAISMlMDWgIbS1ZKjqgeDr4XKWknIv4zNBK9kLXFUNJsY/1dImKPMstdruBnffT9gO12i/XdPXZPGyxmczhnkH2AI2KKwVPBLCUxjACMLqMzbJSRtMAzRpEVnVmVvEjHxp3cfFaCmrdStKQS9LOSyzkDpjZM1KDitczzSyhcajEq/yiqk0KEMWyIagzZQOdnZuVXnPoqzKKIBikZjXrtx3Nfyx6JqMw5TTpzQkwDa7mHsihu5DEDOmcmrAiDxzo8cP06Rgg5Z+5e5QfPCJQYYK0TJE11FAmSIXpJkQ/j/n/g2YIAsma8cTT+6WQnaeL4US+t3PlRKZeJUVzZrEDfqGzl+DElGGS0XcvdO5zD+w8fYBuH/eGAq6sLbJ6ecH/7gNv3d7i7uytcwjV/a62o6oSQOvNyGJjfWa+FJ5Ha9R+HeGvrvVa0ar3W8Kvu23Xd0b413K2T9zS7VZWUPipHMmcG9/B+KI2a9Zpvbm4K7DuVOGjf99hsNnh8fMR6vUZCxtfrB3z77bf49ttvMZlMGAGQ3xwGX+LfNSyu58AwEY+Fjrkq23rs6/hvSomJLSwLqkzSJi5leFmUMUQplTGcYStwWBLPhXN2R8NPFVwMaRRgRwpx5LSVIAkA4t8tBhTH7A0IxnKMOcZ4VG5yJFSLRzg+V2WSx53GmkU5Ask6sIYJOLwPWC0bXFxc4ubmBovZgjs9uQbTboKubTCfzTGfzXGxWqJpu6L8cdq3UzwjPS+OubEwysI8xe5TRohB6mmlj24ajU0eS48c25K4Ve6n/qUKzUmZWYPEc+Hzy+XPCCJ2LvEnCfKg6FiNpmi+gam88nrtAZAOcvnoc31ujcGQuSfvfrfHdrvFtO2QieODRlvP1eck9ykbAEmhZL752muCCIA1QDIFrh5BWT5KHbMd7z7/U/r6sDaHUyPiCCVUi1HmjXy/sa6MlyrII7+lRnOkDWV5S2BuEF8XpMIHOSOBKjpP8TwTRDmOyIIlAysGW7mH1T1Dfe+c43ySGBF8qD4TAyejyMAhB0ZJqUIpAEA6NNUOijWmXA/Kb5/MATqeD+e2T0LZEhFs445e65aPHoX3FVqYXV0cVY86eHY8SpZFn3RyZZ1u/K/GyJxrCtfv7YcPCN7j4f4Bq4sF1g9rbDc7bJ92eLi7L8q2Vk7qVWoXIC1xUAIDFSJ1nGAYBukr+ty7PYWGVRCdg5FPnwMoiTM6rjW0pPspBK4lReqd19nRWooTgkeKQbjMTSnN+frrr3F3d4fpdIqrqyvs9/vSEWW9XuP+/h4f7m7xpz//GSklfC6sUXd3d/jj998LXMjlO6fGxji2fM81g3mEl0bygNEjHw0L1/IiTACGYgwJ+qExWRAyWfjI8CbBwBqw4M04GlPdfPRlfopPXc3HEXIjqBcXxk5GYRhJHeCQJRubM5UlW1uEnmbcF/AjjUJCm4NTHpVJva8muTTWwRo2SibTOV7evMKvfv0rvHrxGbqWObcnTYeUI5zh3sNd16AxDXvsWVs9yliBYFLkBEMR9s45JCQm0BDDAbLeQvDouqmUWhG4J2kuY+uHAWk6HeOQZ9AXhfEks6XA0uOcP57n54Rf/c5RhivEy6m/U5SaKFxB3lD9Tr1ZYeFKMaDf77F5fMLlbIFMBjFmVlypUm7ybyKAi6tp/E3SzklsvJijErXj6yMAjdRXH12rWGK1Uwtw7DLTmLfyfG5TAf+cGelutcYcqJClysjhhNRcjMMUozg2FTSOjCTtHvPRepFzlbVoJVM/OwctA9Lfzfm4CYmOhTPcsCOGAGN5bZJ4vlQl1sYY4ZOX+vDjOm6DU2cmIoZYfpuSVkCM4zDG7587SfX2iShbg8mZyXJuixozOjawyqRCFjefCNQoBJIAJEmukt0rmMEQoWla7HY7bu2UgfmEF/76/gGP6zXub5kLOfiE6NMRdKx1jnwto3ICeEE/Pj7iu+++K+8dDocS/zTG4HA4oGlakBTqnwqaWrmqcDiNF9Q3v/5MSSnGsf7481NFrNdUe+jGsJfUuQbeD1iv15jP5/jtb3+Lpmkwn8+xWC7w337/e/zpT3/Cjz/+iLdv32IYBvzL73+Ptvsv+P3vf49//Md/xOXlZWHcOhwO2O/3BZavk8BqI8YYV+LH9fgrBK5/wQcM1iMTcBg4lqMetFyxLDDLMLE8732AMRnGZDjbgIhh6CxKAZptaQiAlditqB9yAtmx9uOaVDHsKMMSn2OTEvrDDj5wX2X4QUKMXGxPKRS3hMS1qf0h9gLEUKwWvnq8lc9YGgUMAvevLq/wy1/9Ff7mb/4av/nbv8H15QsW5kSwZOF9zyEbyLqJel4ZhpjpSW1VCgOcIb6eGBACYT/scTgcsN5ucOj3GMnegZRjiant9/tiDBESDocDlsulEGZkKdMIRwiL9p3WdVUQJOXSrr2fLKSC/MNQ3wzmODkqJTYOuE0hIyCyIMrxIIrpY6JUPThqCV3TwpFF6Afcvn2Hl8sLdGS5fadxoxPIA8yZxCTTKlaakRQazsXLRRqhTVaU4/yIVUP7ejtSyvLYuvZoPmXx1Ea5YcCNKuR4JRErPjM82exiQ8xZi5yjiNVU1LA2ZyAS5V3WDBUPVuk/jcx7TpKzMFK61vc9gvQaN5KFXCs5XQsjIkCcvS18+MwamkppUNO0sEiIOSJnSM39SIebAseMhyHBh4HHW28Pjcm6KUcxwMzz8MDJ9mkoW4wWpcLIBa5SWAVguEknYEYZAH0EZJDVuwUhFu3K70ED6jphZCGGmNDvDwASWufw4vIKTy9v8Pj4iMNhj8N2h8N2hxAyQkjFa9PSlrHEYaxz1Cy29XpdlGRKLFjqer79fn+kbD/mtQLnPSx9/9zjucV2+qibJnTpd+rkBOV8Lty2qws8PW2Kgr29vcXl5SWm0yln6WbO6tO2e8vlEmQNOsleBoCHhwc8Pj7i+++/L2OpirdOICteDUj6/hIWiwWm06kkbx23EeR2bAP6fsB2v8N6+8RlP7JYneWm0841IOOgjETGcKa1sRbOOjRNB+ZiVtiURGgYgAyatikCj+OTo8dhDMOb3FBH6A8bJt+PKeL+7hZv377F/cM9Hu7vkGJE6xyc5ZIIhQDlZj4TLDp/c3Wvn60rGsHslDJAFtc3r/DF11/h5vPXmC9XyERMAQnAUgZJhrUqhWwyKEtWPBlkMxoehAZtYzk5yhMoBvhhwHa7wd3dHYYc0XYTtC3fn15qpg+HgxhVgxjARpKgmC2MMpfGqdGlj3V2d83kVeY8coGhNZmIiEBJfCiRKafrKQnSVOK2MtZJUJ9TfuTTMR7ht4xGWLFSSri/v+cSpdkcrmk5PloJ7czOIHu3R/dbZKLEnUHKNcDy0ICK8iINWMQkqJ3aaVQes8xP6J96eXyRYqRV3guNHdgyINnKglJU8ihD4FlJdivyFZWdYqigK87akg8hP87XBZX/UawOZQ/kpCunxlQcHZrTe08AvCjTGKN4rAxDN9IzGikhW762SEl675pigKsBd5zZL5nSOp+yZP7nDFRVATp3fmr7JJQtgGJNq9WgcbMjOEgmXRZpMA44cBSglfk/wjUqObhLBfQ7qoeF7ivFCCckF26xxMvrF7BEeDIG+90WjbFMS3eiEIExe7ZWDnre3nvsdjtofFTpHPU7+/0ezvnyfeC5t1o/1or93Oe18K1h5J/b1CDQ8zpiSyKS2K1FDFMspzOEwPSIyu+rSjSlhK7rMJ/PcX19jbZt8fLlSyRkTGczfPXVV5hMJri7u8P7Dx9we3srCvY4TlyPwcgJPWYiayy8bbujMqkYI5x1UotHCBA2GgCucejaDs7xdw1JuY2xcMahaVv+ruPjWtMUgQeoMDYgY7nN3amylQQhTmoh8RoVPXFMhJ8S3i0XCClhCB4PD/cIgYkuTLaglGEoi6XOnqH6VWVMTubfuJH+PwZa5Di2aXD14gUurq8wmc2QiNAHCRcAsCaxYONfKjAtR60x0u3p7xKqcxwNNDWyPFh5W8veQhwGDH2PXshK2FtlReiHASEwIUnwxx5tMfoqz6L2sEi80KyeryoCeTnCoBiRfjnvjDFxUDNRrYxBIU4pJTP61UpWqWOQCSkmOGLu6ZwSNk9PXPcJhfG5JE0zpTNyIVYg0nMab6N6eyBVyvnIuz+xyEbPq77ErN8fz3+cM3VIrTpurXjrfXTOaRimuOkJORMiYvFoRwllWHlLm73aOSJ5TYTjc8h6LSr3JcsctpzWqRNirWXYOlQOAlk4Y+Csk0xnIXShDMZ/GFIYnZqRi5mVrDDMWVPOj3MsTDlPk6v2poqKfGT7JJQtoQriA8eTZlwtPIBmZLBJKQmccuLxyVwZChQpUdnqRmoWG+/PGZAWhMZw/V/TNMDr15h2HR6nMzw+3KNtGmy2e2x2+0JmrjWguugLNOV9IfCvFZbemNqQKMQDGK02fV4/ltM9I2Q/5vkeK+AsKeupwJD1ubVte0QOcZoJzeQcFsEHLGcztK0rSVDfffcdbm5uAHC50PX1Nb799lt8/fXXpeSpm04xm89weXmJh4cHbrEnLFwa/64TzerrGA0MUz4fsxMHKCFIqUGtoO8Ld8lxTUNouw6TyRTOMRE+Q6MNrJXuM5MJe76qbO3/y93b/FqSZHlCv2Pmfu97L15EZGVmV1VWdw+DBIMELFixnj8ACbGDDQsQwwLEhhVsQBrNjo8NEtIgEGIBiCVCSEis2NBCLIFVS7BomumqrsqKiPfuffe6mR0W5xwzc7vmfv2+yKyKGku9DL/u5mbm9nG+P8bSNpwGwZe8vuegOluSEIMiubI1hgJMtZZUrlXgSsLubsTheMDx5Yhf/eqXOL28qM8f4HT+Wa1QiebrmTL3UK11LQnSMVGWyzHG/R5v3r3FT7/7Do/v34OGAU9qMQ8IoTA6j4FLxDJzqTCDI6LGvxvCtVsAECMmTUw8gcV32EkAlPCi1uxq1Q6OGXm8HF/wcnyB8y5b8mdEG6NGBaI5JwmFHc6piwchKhEt4k0zNso25JqfV4gi8mJhnkLxHbactLVUycFL6L5GSpT/QCBmxGnCOEis9RQlG5AQ8B53+70SUc44gcwdMqFEMzKkCxXbqvqLGSWFHQPsKCNQJg1GQgQmiKsRKccFkih5EMkEVBdqhKsRZajhSZ5D5D0AQ7JpLlEwna3o6jWusO5DViKEjNDhuS+q2B46cw+WNauRv/bPJGkwfaUCmDQxB1AMUVMSWw1AfNYH5zG6AbthkNy3BvuJwWkCIep6JJwnERsLESkSimFw8MM+5z+WPU+iSlGCiswTwlFBYgvli0C2AIHIN8AVsFNVh8Frwxdm/ydbUC0MlughsHbKIsomKcUNA8ZBDJpsc6WU8ObhLXa7Pb795huE84QpBhzPZ7yczgip5G6tdY21K41xaCZSNl2rRY+qw8XV76YgqdQsB2swH0MWa9P96NXAQDZnTCmLdEJK6mSOWdgyA8aJAMACrQsgMSmAdxbEoeKMPYHVGtATgzghTCd8/+E3+MXPvwMzZ5H6n//5n+NP/uRP8POf/xzfffcdvvvuu7xODw8PiJxwOB7xF3/xF/izP/sz/OVf/iU+fPiAwXscDwecT9OMYs1cC+ZcfYwRv/rVr/Cb3/wmA3jbR5LMYJ/nOzEjgHPAgHHc4zge4ZxwqACw391ht7/Dw/09fn2eshh5t7sTPZtJW5zDOOzUfWUQwEwFwREZEEbmRmTeWQ3MJjhCFos55/Dw8IB377/C6TxJzF1mpDQBxKBIkkvWS7CXVHG1kdW3Ud046v0sh78S15HHu5/8BH/8N/4GfvHHf4rd/h7nKeL58DFHAAPEOOw0nTJnmNuyP91rJvbzjvDyYvUZGDyGYZSzxADHhOk0gfgIpATvBqSQkIL4S3sF9ayqlcPzESDCp0/PYu2u8ZIJUIM8lXjJwGBxmj0I0ThMI3jhioQBHnDitxxSzNxxG7q0p8JxipyQAPiakFFjmsrq+Xx+QXDSF0Xg+XCQVIm7AeP9HabTCd4LErA+E8pcm7hapAUJgxNdJqsZL5szoyKMPBvEYhkPvc9O1BjqsuYGgiMPEykzUxFbK27MPjnMigXV0iXUxpiaOSlB4BGM6CuISESHgtiJxFgMkzIMbprtJ8n4VCJ3WXAvItPdSiz0mEI+cwK3EtI5iEpROdjd7g7nJN/m/CDiYz9gVKmV+YhLBDDGx+8/YIoTyFMmDs+nE6YQcHcnsGC/32M3jmpUWXG2Rn+kJO56AIha8fNl+SKQLTMwRcDk9bD/Z+SoFQlZv5QPREMJFS7QTBo4tzkrQvYX6RAThmGXKRsioUJ3gwfzHnwvx+J+CjhPksLMKO9av2QWhMycQ+IVkbJS11UUHhtrDJNS8JIUebJcm+cJJ3sWEyInTKeT6MmS1D2FSbLBhIizBu9OSahNpCqWNGy+7BqZ6mSI7so5zqIdOdPmfmW6czl003TGh08fEFLAfbjH/d0d/uqX/wAhTvj09BEfPn3Aw8ODBnBw+NWvfonD8Yjn5yf86q//Gn/9q1/i04cPeP70EYfjEeeXE6ZJqVXmbNhTKGibKkH201nS/2WDJNOpwOHlMGTrTQEwLgeh8P5YZQRxKHGUR9GpkoiDvBNjCe/E79Z0MoMf1I1I3DkMqEgdI6BUh2OuMiTWojEGod7JLNE9Ht+8xU9/+nNM54Dnp48I55M8QyjiT6QiEzTAz9XOFkoAUI7G/HW9d7i/u8f9m0f87Ge/wC9+8acIIeHDhyftHzifA06nqfiK5tB0BSFlSYxyVyYe96jHoTGe3YD7+0f87Kc/x6fng0SqepkQpgkODqfDCXEKuNvdgVOQ4PEp4unpAO9+g91+pyJB6YyYlCBMqLaxrLXuSYlXzRBfddMv259OmSYi4AREJDWWkxCp3g3KoUr+6wjhfiVvr+jxTVdfhAyK6LhEcR/3O6TEmGJEdAmRGL/68D2++vBbPLx/h5d4xgkJA/sC+EwUbAjPkgxABZ0Kj2oxds6HRtWdYTCGEoLtGSCHRA7kgUQ+91MzJaRnPzNllSQRAOBjvi2EkYb8YAZQJCzm5ZWBh5YSCkPGxbClkTOZzC9X18t0y5oEKHP8icXrQPYAwfsdoISwJ4cQGfADBvIqQtZoYEQIemTUTFaI8/0IBMEnLzHilBICEZJziESYAJAS/udUCH+XxwiAvPjqKnEaGreutnwZyBbIkYEAi1ZSczRU1SyIuIdoyTZaFpBcItqC5IyUVB2PchCGpMlLe7WI148RYyzcV8/txsa9Ju6dXydwDDm4RgyKbKMg23OYxFE7SRjBl8NRgFiSfKan8wlhEi76PAniFUs5Rghn9WdDvle45CJOZhb3i9lsK8ciehoVFxki5oSXl6M6hAtg//Vvfo3T+YSn5yccX4549+5ddoE6Ho94enrC09OTGEb99rc4PD/heDiobmtSXZ1w8aT9p0aczBwRpjpMX22YQFmcSBas3HmwRa8BzSL+2LvOFcMNE/2bysLEoF51tNmAxqk0JouvJWiGZSWR7CX2TKzdzbfUVAecxCry/bv3+Pj2I2I445giXAogdhWHmXkfAZb1frK9aSJkFd8579R47RFfffMtvv76G7x7+xWmKeH5+VAZ6DkQnTIB4DUKEGCEg8/zZeKyHAJQo+qLKocRUkSCfOu7x3fgCByOR7xMEQiyF+NZgsWPw4gYZD/FxAhTxNPTM+5CwP3DXcngwvZtlY/nDFnomqvuzeYAKkKWvW1AVghLUQHJtSMPzphG2opIeX8IShUOkWosVI2BWUSdwzAgnMXWwCVJlfjbp0/4/vkTfpYCjilgIIZD0T/bfsji7lTW0WUi0xBbxXXUJzVbvmeoWcSyYDVyVphqXFm/pTmiBcCukY16quaBrfsmV2+1Psa5sxBDpk03mJpIuPdElNe57LXcQ4ZR1qobXKZTHEgJXw/yqIwYlYNn4cGjzkICq0uRpPALSeJLMxEwDGDvEaCETkoI2q+drUSFRkrah8HWtfJFIFtwUQ3kW5lkL4hXSjbVkPtUPSfZZjTfC1u6L6mWZtuwVDBdETkBomWcCzq0pb4univ0iAF2oFokXvcBYJblp47wZJx2rWd9enqC+S3W/rOt8Ylw4vMk3G2bJTcvZ0tNM4hhljRwFsTicDjg8fExJyw4n884Ho/ZEvXDhw84HA45LZ6FW7Q+2kxGvWIiw2I8VRE4UY3W4BG5CoqOwm2aS4pzPgO8YdhVz0Vv4zQ6jXOkxj5ykEkjUVnsWWf5WZWjHnwxoBo1rKFZZe72+yxOHoYBX331HrvB4fD0ER++/yWQXPn+2eGwfV9xOipWFktrsRp/eHjA4+MjfvrTn+HbP/oZHt6+g+TFDTiTQwx1XG4pJnq3uS0c+KWu0jkJawmHrP8kIpw17jKicDsjDXADkNyIjx8/anQgAJq2EESaU3oEkhCSx8Mz6iAWlPs1wpeyFa2N286HSY3kXTtf5dwxOK9Pa9Ro+64QYXPvALP6saT0DFNzCLZJJkUiAN5h4ojD+QVPLwc8nY4ScYsBl0WSKLClmtvMDHBc3PuX5ZTb6LVV2320NiBLpbaBaNu+qEeU4eLsGyrYDOaMqGcqQ1RSE3uDWcL2kocbPGouuu3bSg50w4zkzd5Bz4rzok5IHsQDwvEJUxREys6B1OhSCCdBoIEZHCOotlDXsdUqzNo1c618Gch2Rrk5zIID5Gd2TYBGqRHJktE++miBm/3BRtqZ0No3da0sb/IEPw4lzJ0rgMV8QA3IzDeyicbmi5/dInCJsOvgDy1ylU2TMuIz8Xite04p4jwFfPr0BJFClBCSp9MJz89HPD0949e//l6TCIger27PUueVNpHFNKaTt41fI9v6sNcRpHqHf34DhcXR1HfCETLgCSmqMY0Tn1zDZQTh3sgQqkPWfYEIgZULsXUxx3hS5JPvS5hIM1rx5DDsxhymMXHCdDpnX8lhGHO0x/YQF65tjmyJCnC8v7/H4+Mj3r17JzG5Hx/hhwExBSAScOYcrzb79pImTnde9w+UuPCoOZEZsnUOIQWQF4Q5DCNCmHA+TzgdXzCdz1nKQiC8ebjH4J0E0fCEw/GAMEmgD0BcjOxEhzCp6FiQauGwnXBC1dxItD2RwhBYJQjljIiOUgNzqPjVqXOrU32o6AaTRvICiAeVbCG7jeRJMEkYUfazZsJMPUREOX76x48f8fQkbnJgwJFKZYzLZJ7tbbt29Ho4toZctyLbXjtLSJxA8PXvBUQPzPd0t63qnkjh8mG4gOxkIni9LtKXOHPFm50ZSnj3/ivhurmCl3z5nQC64XFbmyH5nj8EZJt3dPmjMoNzmYfVYcCyA5XntR4DYK5fvjIEKiEO16in9nn9u/du++zyEAgB4clXHFVZ7FpnVr9nvz3m/dbGDELF95411H6zceyvhEmMMy43hIjnwzG/G0LA4XDAx48fcTwecTweNYbyOXNHdRvTJHll67alT9Ufd8bZAxgXnEBnnoma6EtZZqbvwhArQAawuWj7kQBx2pck9Y4K0A3JBHbqJ6gWolRdWwdxGPNOzHXJIhexik0jYgzCVYmTGYho5kYmY54bE8r3OjG+GYYsuk8p4Xg8wn/4ABoGsBMjE3Pcr7lY4+bsr77X42ptTwZF4JzkG0KMCKrKCFNAmIotwjgMuNuPGAeH/Tji7rjH6eUFx8MRx+NBEJGjjLST7eP8rwYOoPm5LgAzwmngH3UAACAASURBVHLp1sjWgAiBRbUNs46VVbZoRQAjBpKAGCpRYCpRkNgoejbEbiFA5b5x1zZfFk/cCMvdblfOHZe9Xp/F2X525StuLWsw6RZkW0vU1pAtACCmEi+hczbbcbWlRyDkoDDN+713aji5ytFTAlIEVfiih+jn7Ra4VOIhAN5f52itfBnIFgLopBh5UT+sa3L+P/XqQoyb8pl8xXZtEWjv/i0IdzY65mZBFRA4p7YR8+ct4qn7BDADmPPnZvF6+U59Xd+rXX6M063jDddc8Xmau3o8Pz/j4eEBHz9+zH8W/rEWW9dIu+W0mYE2m4aNsffnVQzbcnmXpX5e5l0IG87X0ldhYDJQJigHqPF+TRSWKqtOEDjRjOMpqkACLHSdDCLH6EUWn5XxeO9hejgjgmbAi93Fd4qo2yuHKcfa1uUcIuAGkPMg1dVm3bLql7136l9c8i47J3Fp6/Rn2QBMjYYiB1AiBBYiRVL3RTV8klRnIUwIacLOP8A7h9F7PNzd4f5+j8PzMwgsGaQSYyCH0amva9S4uuALoI98JoqVrPyFEpSfkIl2AwVEJF4KKUmcYw2sAK+2HpELkk9Jgngkyha6ZhVcdohwUnZubHzMYrlt4UzNhzeHayQjAJYJ9OwTs6EswZze/VuQbZ0wZQmR2fdyTEVvnAnZztmkkqziWjGr96VvacdBVOl3W1itYwIlxGkCOIlLl50DPfw1twwA93f3imyVMK5hP0r6RbqyWF8Qsl3Crj3KyCgSunheOOOMbW/s+zr1VNdpObA1xFhfz/sU6lqP7EW7tc9pK4LpIVuuABFMh9R813ZdUKmbDYeGAbu9n+m83r59i8fHRzw/P+NZU4xZdC1DusbJ1gCo1tNma+SL71geV6svr+cpEw1mGKZNmai9wG+LjzyPuWr3Cndk4iKZUIlH29tjhPq8MhgpTLAsMQTk/LIioJHg8H5Q4y1OgHdZJ2jrbOIwZmS9YdGpFm7U/mKMOBwOSIcjnB9F3zyUMKEWns7CX9q/cTrPuNy6zRnHaxbfzoFJsqmQIwyOQPsRifc4EeN0SuDThJeXQ7YAf3h4wNvHNxg8IcYJf/XLgOPLEUSEKd5hP44AMWIELE+p6HHlT+lS2TcxIiY1MKz2jxmN5d8s8YunMCEF1YV7YBx2IBqQ4BBASKcJhASkgBQhbjRcgjIUrpo1NqYHnL8AxND43EYsmRiZRW8y+4bZ7rEx36SzvSxrCHgrwu3V6zEcBmbqHhmY+eXWbfbgaK84wu3ItpLULb6jTBkiAPXCWJKSHY6/7Y61Jvp7HHFbviBk2/7uA7EYa1ENzd6riJkqFdX1TdUu0lodu15Dsnbdin/Xvs30U9Rpz9q8eIfnFH9dLyNIb6K3yzG0bbbiyva7S9u1r7uM02ue2t1uh7dv317Ec665WONua5G1iKNjBVj7/9pfyx3X/bR9nicJ1cicxLUjBXGjiozEQXXesgZs/t2EzPkUJjRhHruv9qszWwNjkUXMqLQwkKgKjCC60jL9jGEYlWMEwHPd38z9hggpFoBpImNDwkDx3zZL68gMP4zw4wjQHIGKXn2YIVbru0W09V9+NvjZODNHTA5v3jxIlii1mD+/nHA8veB0OuH7738NEFTP/4zTOYi0RMH1bjeqXtWDBp4b56UAXxkpRuVmWYNA5P1LNUIrZDhiUiv3BO88HKl+mgawjxjV4CrGAE+SdTVRCQEJW2UqnDfx/Own80euxPOAqhAsq1NrFdqcO+YSuei1pQc3aqOna6U9+0ttAshhGet6PRjZgymL7VZqhF4dg2NL4l975wKJKsFjZ9oyigldzeWcE4PIw8gIruyEwAA5FnU+COTW1+rLQLYEdJN0VmIgAErpGzYtVorzMqegNnXfQaRrdZbauPWdupjYwxaSjTWyoVTNXLTJeStAaLYipsrIODvBV+0ZwYKMErQJI1MUgBNVbcu73pndoLZLUH/VAbtdofzs21rE2WYuAlgNs2S8LdLsId1at9z2USPiSZNKM0fEoMg2KbKNkxq2MoCEGGwmWMXCFnxdkbEdSEhQmrLdGmRblMO6mg6SM5RAcILkzV0FrFGpZB4dzannue6U5MBz4WzNhYe5EEyFMx0QWYL1kxtEvF0hTUOO7Z8Z5vkm24xZZnu1PnbVuLwXvbH3DoNzSNghxT1iiJhiwMvxBYfDAU8HsUZ/PjxLQJTDQVzKnAA18alMmTMl5+F8cQMTYs9E63lXynxnUSEhpw+ouMcQpuxaJj62xbXJ9rwjB7ZEAEmuqRwyWUMqXTKrTzsV4M7Mkh6u0oFLxLtyBi3tm61zjTiY+YIzv1o6oLD3Ojl3UfVau62tVgutAUAd9/OdHDlq9u8coFHT2hz2MshCn+QMUk2/Ldxm+ej6uwn1PMiFRSK0UJOsCQn4AtkmeDfmsReiW9oSfGTpYf8QkG1FuQA6cVBg335AlUuSqr0omxT5YAlVuR7Roy1LiHGJWpuNt0M9LVFwdcn3m01YlEyzuwCQdXmz8TDn+mUDl8w9MibMgEoee+6hPp3V1jEMiwLknRuqb+JsQW1tGtCuv7FGrkuceq9uyyUbJ01U8ti2bdecbYyTiiAFwcZYDLJSCipOtvmytuwQlsDqciDLPExTnZNVYsDOctstUMdgQkxTRSVLRh3xDZ6n+Grns9XZMrPmStaoYNX8GLI1mkDysxR1QM2hWj/GLZsRVSsiq991meCqOHASq+bRO8AXOjoRcD6+4HA84tPzM2JM+PjxCS8vZxyPL2By8MMOStIgqLGN0yAjSblHYlaffLNHEEM0mWpn+DavGTHnvKmyHxIACWhiQUoshKKdIwmoIoni2ayQKys7UiZAtZKILL671GAkI2ZsDqdp0sD7Opc14mgI/r666UppQeXSu3xRdbHIfrtsr9cyU6NXr4mSCzi30B9qWMkSq14Tm1yTOua0m51n3Hz0oEFdBIkSiipJrmtC2bkBNbK1ulQxIVZ3rXwZyLYpM+quQXR16cnXqxs/+jh7yLUttejEfveKo6wQ6rY9q1shsdbHtLwjdXa7uU9wPSZgbm2Yk5avzJ29Z4YTNdfT1umJuK8dmvrafpvBT/1ujWxrw5R6bgTAhnwo2kwxa4RTO97eO0LMZc/AxW9pOfJe38IxFqTVumXNEC4K8H55ecHDw0POh1zHtjaAN8UoMZ2HMacfu+SYy1hb/Wzv2+wZc4WIM/cvoQNqZDMMA47jDu+/+gl+DsLX33wLNwzw/2CPCA86nzBFCdJyfjni5CJ2o0Trct5jJIcpRxFKSIoEPAFwgwaKMMBn6yd6eUbSbDAJp/MZ+90d/DA3JquJtprLtJCNq3uWWXToTSD6+vsBEZnXZjSXgS3mf+35WSt1is+L8TXXtyDw1iakHWNdsiGf1Wv2To2a8jO+YKdyXUCioQUz0tIAPMZp23Umtkwsr8SQNVLkhcjI/uV8FoaMLmPVz9VDcyOxyxFS516/fEHIdi567FEJM9GAOL81z42SUqrqChBsxZy9Or33e1ystTP7Im6/qd+2iJyAAiTWKaQLy8wrY27HY9dtPy1gbetbP4Wqm49hqc8agLWEQe/Z0hhK/+VerQ+z5/M9NFQGZpUV6TVJw8q9jGwtBN6GkteM5fC3Fo+OXAUc+vYD+bs000hKCY+Pj1nsC/Ss6EmMw0hYPkbhzEDzfi/OS+YSTTRb1aNKXKtI3TkGQ8TZnBS4ppQDBEg2HUJKjPv7Bzy+fY+3hxMOL2fwcQSfz/DDHR7evMPp+QlTENGxHzTKEDtIiCDWmPoiCYhhUiDKqH0nYUnoNf2c82KY5WjIrlGGpGqJSJ15ys5ErduerQsjG4tFzInqYRhwrzF2jTD2tlaKoBmXZ8DaqI3/cncLMKVHSLfP2ja2lC3Iu+63hPMkgFy2KRO9tiJbp4neFWkCmmABBepXLReJASOjzSI4UssIKvuX54KIUrfmxWARtwggTWhSSfvqkvgSblA5DBdneal8cch2a73efpnPEXc35lLZSu3ViHYJ0W1F3HUdyXnady36vHHPOeb6vTVJQV1a4kJrz95ZmoOaC2qft3Xq93oAoj3obZuXgECPOZuaYrthyJZCvL293lz3ABnjMppa0ytqI63SLqFdk3yfBOFalLQlgLm0/v06lP8M2JBymwSLdSvzb4jFey+hAx1j3N3h/v4N7h8ecf/mBYE8InkwQwyUQgRZ0gAnmY8MPMZowmZCYgk+b9/OGky3BHopfA2R+PCiql8jNAs23xJ/5o7WQ3pgFS1WU2d1vffY7XbY7XarZ2vWXvOs2yeWzuRlO0vSpVvKNRhjBENKSf3HdU+or7mtgKVTJCJEijNka9ctsiUzciOUSGo14qyRXX2vh2xR+qNKIkXV/zIBWX2bIRu7ni03md3ANY3tF4Rsy94tbj0qoalrNZtnrgivf1M1+60Yt8eJ3iJaKWO+DILx2jZtwUl3igVW0EatwfnvTQ07kLkTVe92D2uzyWgBELDJb+r5XphfQ4ol1B4yhdoSQ0b92716flvkXOsa23IBTG6Yr1asuliUe9tatkoCQDSztO33XUTldcYjWY8WgUvdZPvJtc/t3fUxLj2zmOYFOYle27jdTGyRk6wtTCAG3OBw//CIN49nPJ4SaLgDu2eEIAj27TsPTgHgpPkXIlKYJNhFIkk8HyUi1OBGAFI3g0VD9EQ6X2pYlQDKHCjl+/InunUJrEEg8ohxUikCVN+rhjrQoBYEiVtOEeN+Xwz6oqTfvLu7w36/xziO0n6NlWn2q19qWNXbN9QA+bpO+47+3gqVuPl3rZ6k/2OhFDUIhBj6tsyRpiBNYaG1ecsuj9cI53mNev/WDNbVkiqwypgHSHINHNTx19x5nhUqwWv+oJDtdVxCqHFti4znvyUlXGl/GQn2uIzfdeEMYHV582ozLk7H5qEm1Y1ULgR1u/MRXDa8UNcB0Fx9nbm0V0oIQQFrJZA7q7hv3hUBlFBJhC+o/lZ83CN05gSQANMiZr6OHTfvAyLknGAb2txKGEj/a8h2ztkWycJcdzznQAFiDZTeh9ez4i4Qch9BM8SLhfWmjFqNu5K1pfowSDxmJg8mDzfs8fjua0TaY7x/j1NgfP/xE87nswTCOD4hTiekEBDDhBgDwnTGNJ2RMCDhGSkGMEukLdOdkxmw6TwSRbUCr+Yvi90dgJj1unAOngZJsADJSXs6vyAGFYUni8qG8r4bwDEgJREbW2g/coT379/j/fv3sxjh1MAroCf6l8JODbfk18W68QritHdqArviRLaXrciLGWZYlFjNx2p4XHGtJSHB9VLbb3cjAnIh+FPaNlzH89gFjijvVwIKbIPhXiX49Z4lHLDnf1Bi5LII7d3O5NY1OpxR7/fSe1Zei2iviYZuQeLdA7dEzW5rETOgfYWila5mICmPq/cNt+mKLz/DOAnpSzarzFdfb3xNejDXKddjLpG55PQTLmRXNWWcLZNtFpaucWEAslZ6Rjbt3LKKJNendE4UzddhBdmSA3HavB/XONsyDsDEaGUKKYt+ZyJuJzGok3KFjgHQDsOOcf9mxJ5G8HCP0+mMOE34lGz/nhGiiKXZ8JsPcD6AyIOTWJuD5fuggB6sWZ6IQFTlgWWCpoYBgRCVY7K0dMMwwg0qDXASMIM5Zv0qmY6bCERDTkBRS4G8JoP49ttv8e7dO+wrjteRud2UPbco1oca/qxtiqX79s5nwBBaa7+pJ1IWl+tfSs3yTtRhbRmTEuwoxPsS7CZlpTcZlREkKcECkWPfNPuWStJI7Riqumvli0C2QIeBI5rj2YWPaVHINSHJLYYxS6UFkEvI/ZY2e3Vbw4elMSyMsqp7fSxb9HVlsMv1WqQ3e20Bcc/6WYQplyExe3Ny2YfpVBSo1lbfJuuCYYsk+SmtrrnzGDc5u94ehSc3j/m+QXOI9cl6WxlrrIcF7Q3Buerb1+pmIrGuu3BuFBoWKp8v6xoHZ1nyWPSukQlMA/zoMY4P2EcH8mdM5zP8+En9roXrTJxUT+tBboTzO5EGkWQZkrjW9fxwZ251jCSuPTKHplOU3+QszSBASHB+UGlaUlWvK21qO44cEhV3s91uh8fHR3zzzTd48+YNhqEy0psRd9uI1SX48jnSuB9DkkfO5bVeJeyxeMzbFsvZVRh2acRXdKZElxbQS8URz6QM7T65QLYoSL9ln2n+v8XyRSBb2eatmfglEmVmOOoP+YISB7BFbAgYVbatbi0OvKaz7f1eG0Nd1owfth8UQ9Trfb0WEdu71+ag5z7Qa5vBJa7tQl/1dc9oqttHfq2VllD1J78tP2953l4bUSD305yhXCwJyDF0DdHO/pVBAy3Rea3dWfD7lvCrxp9Fw1uQbZvQo0ddWWu1T6L8ZmK18lJ9FssLwzAiJEJIhCkAL+eA0zliSh670QNuL6JTR3DDA5yTyUgUMPGElBwSezDtQJ7hfAQ4YmAHpEk4UAqqVk2ZaGJWH2elb6LY8YAg15Y+2znLeSwOwsQk7lIJSJR0eSoCOGpyA0+AIxyPRzAz9vs9/uiP/gjfffcd3rx5A+ccpmmaWTLn1agkShfzvEFC1xL+7fP2+prUb9799p1IJGFcdanX22fOwWuutsua2J6MhOogOmj87FsOTyMJaoHk7Bc19zvEPs1gRb98EcgW6Ftmttc9bmn5Pe4asPTauKWscWefUz7XWOtLLWb01IpRW4Mn4TbMR3Nbu0ul3TuWRk7frFu5uNcGJuj2bf9+5jItiufXpsBE4e2YFGPM9yerWF5caFKn4d481kZiqwCcgKRB2EGkYlxFasySqIHUdcOJG0hiQmKHmIAQHEIEmDyG/RvseAf4Cc7t8Pg2YBr32O+PGHd3eDk9S8q+6YzpfAKnvaagi/D+GZwmcApIcUKYXpBiAGJQGBAzLDULArFk1g9RH2fnCOQH5Dhfg8eQIgCvPs9RLJOTBrtwkByuLPrdaZrw+PiIr7/+Gn/8i1/gq6++mvmIz+avIax688xGHWwoSxKwizW7AX5trZtbdzQ37PxBilF124iDz4Ht14q1XTNmt/T3hSDb1sfTkGv5beqHlnqYA1Z7V4F4w4X+UGVJP9hu+NuQZuGuUCU9FobFRHOmN6INh1CFelQiqlQSyPnepepZM6TMz3UZI2r+re+3wKOmqg3ZVm8Yw7hxzm7RI281YJCx9ZBxfc3l/3Td3F8b1fntUeWAme/YUq9mRMnM9VbAUvZk4ll8yXz/critbresVYts2Xsx1CHS8INzZEvKnYIjiAMie0RFdEzCRZIbMQx7DINHTA4pAvu7B3hiCatHA5x3OPsTJn+Sc5cGEQUiIYUAjg4peSQnThjRObBzkpwgxcwRVdDCjpQkKNfIXc5LX1ne5gd4YlBK4OTAIUmaRTC8H7Hfj0gcEeKE/X6Pn/zkJ/j222/x9dffZEQL9BOYeNBMslH/y7IR8gp2hQs1TORqh9aEJbcrjgud42rZmlO3IgJt/HMbhGLIJPe2iHtLbOvcDahaS2uwLynb1q7Bahtb78y7Zo1qrlbh7IY5/TKQLc0nvyDN9rchnepFXC5mPkgXHM6PR/UslVsQrgxZLSUrkWjWIdomoUtJQLe1Vj+U22qRIVXPFsZ+0V/tPjEXT9l6zEXMdV2gjjw0768vjrmV2291vFvLbXp2XBIu/dF01RQXRACjuw6XHffmqC9Cz/PZdsUFyHS5Kr6se3FN6u6hxJ8zoJM0ML/5IZN0JCkJRYKRxXgkoT/JjWKjRAmgCW7YKVdJYDgVbWswD47g6DOyHYY92BFSdEj6neQI7MR9SPxnC6EhaiMAzJoqUOM9Owc3jCLuJ7FQdV6yD5FLSMnBq/7YEWG32+P+/g5TOAFnSZ7w9ddf45uvv8FXX301k+ZY6FgD1uisYJn7CpjPkGiHGq6+6dp65XudfhfL1soESGrTy7/tMGu5f/kMmt0z6UBmQDaP1YLK9FyFenO3nFmsfWetfBnIVssqbEdNya3XkweF8ukB3S9ObEsq4KoAZn3dixp1rT3ZBCWGi73b07PWz9o+5tcGQIuu7lJsW9ogKm4vbShFG0d5XbHNBVHV/+4eUOkBl1uynKyF5isDkdGFlC72Y68wGHEKWZ9VItXkG0qKyH1/jbNFb+7XVDGEwQ8ADWCeI53cbHVthj4XXddSHCX8OEXrDFEnRvAJyTgjYBIaCXqQwK7ohBmSw/h8CjgeJxxfTji+HLFTojA5D/gBtNuDYgKHhIiTIEwwHBzgdxBp0AQijXvsHDAk5AxKimxTKBmiMiIcvCZQGLLUiJklV++wg2ONy5wSyEm0Ie893rx5g8fHBxwOT3AHwsPDPb77+R/jZz/7Dl999bXkwaUEIofBjxIPO3N7JV5vTajOdYFLiICq3zXhVRNJPQ7tttJva6my/M98bW19oPG/LWezLbyNeulLakfItLBPgWWYvj5Qzr7AW4iUVuJwuU7bypeBbBkAhzk1DWBOi8+f5F8X77yi+86kLSGb+p06ZuZSEvetxfvaJIwBLnomO6CskIycx9VujCLO31a2skU76Vpyt+2u9mNAsz0ANu5qMACYY6den+jhPP7ZJ83an3PtJRShVSwA/cadsXENB+cuotRceBXp9bgbJJyf1o3EGktYEZdxqzZ2lIAQ8/kskY5kqGtjLUhNPR8B8hnIM3g2NxZoxMOr+FYJpmYT2PuglBM8JAARBGaHnEKcPABLZOAQooNZ856mMzwRvHNgOJynAOdHjHuH5AaE4/eIiTVFYsDLKSAExpQcotsjMJDChBQDUhxqxhXkHcgNEEgfkXgCpwjHEcNovr8uq5kSAwx1L4IYaDED5EaZ86RiYyIMalOw2+3wzU9/in/ib/1jIETE6YT9bsT79+9xf38P25usrHZEkgxMKcKyR2W97EIJYbJVRk2UCWHFKJGz6mCHRmCnvOotWqPaIh+WbMOIqJqQ02xVuayjSOFiTQUhJ5Kc2adbQAgl4jRJElX9cqz3pNNv1B3H9fXlXM2Jdh1dBUDm77DE1kZ5Pn/nsu3mjnzfjaD+y0C2C5xMfyJuAZzbZ+OqS0pzbw1Bv0ZkPUO0eudChzOrs+HbumKn9qqpsVHnsWWnKZOwKKVYeVO76c+hcQYLb1183I+hPaj4ydmNvnSGAYImC5PfDsWtgbNjfqWPIpr95XYgfqOvGnPNTjawJnNZmOvEDOnPv90oCTNsM5BMSBajmRzki51CVYLX6wQCBVZgzmCWYPMRTt15HKaoWZuSInHygB/hd4SdpsZLYUKME6bzC5AcwB5gD0IAYVCCNYgQJhGIHQYkeDKLY5LxsHBPidUdSRePBvVVUrE4OQI0E1Ai+UY3jHhz9wajA3bjgP3dHuOgmYSyZM2C9Gvc6IqIXi1sNhrVWlVHgyxKVn5o2v/q3uLZqx9U17MhUVV/NrDeUC/6l24q/agRC1w+xZp2UMt+btqgS6J9CQekTpzTJYnXj6VaWitfCLLd+kF9quZzyxyglXu967V37H7PaOrW8fQ2yTVdTK9srXeTSwBu26w/RrmZmPmBx1t0ahWXWffXXKdmvJWFQoOg5/uu1cMy8zZRd1PWRP2t6mBpn/WeExXexlm8WRKkmTJnJfckMpNEk/LOghRI4P+ECYEcAgMxJUxTlAQCzJKDdxgkUEYaMYwjsNtJ5KYQ8PwMMHsgRYADwBOIAxhROO0IIIq19M4BDioEJ+O+oeH7GIgiOSAnuXmZWVyZWGgGIQAmcEx4OZ3x/HzE/X6Hu/t7jN5jHMacXxjK5c3F1gXbCn5aWUcqMoU+EVeXlhhvr+drVq9vkZxcWh9LUodeu5f3aHaXO3g+i22UCK+Jf/Fpz8aCuvdrddNSqfflkvqjd2+TpfWKeurW8sUg2y2lG65rsS42131taRHr55QWQa9xx7dulFv7v173FpnBP7zlhyZ4gD6R10OUtxJz19Z2CQEvF+Ne1PWHLTGZIFhxmKHM3QiSUR9cdRFK8YzzOeF4BgJFnDEiMiEmxul0FN/ZVFINSjw+ta53pFbEjN00aPOuRABTPQQnRsIgCeA5YagSp3MWdxKSsxSBYrlsom8izHyUCQmRZDyn04SPHz/i/dsHjON7eCpzJ9mOSopEC2oxeA/vLVZzDyFVa6Kz/GOc9Wv3fihubqn0iMglhmfNzuR3Uf4h5GztKm8xezK7TonQJvddun6NqGArEKupqB638ZoFajfc53K1rx3HtnZvqXsbsrlmgPCaQ/djzMNr1+Ga1KR+5xrRdUv/S3v7VgQu9UXoPSdoHYo9AIo4miGJxRNXokRBfsQRHBPOiXBGEmtlZngn+lOGRmYKQfSzKSGFCQgBzBFIQXxeOWrigqh/DMtfnJL6WbOIGp2KjwExm4pJXJESxPp4NzgV/XIBR1BpuHfwMWWOL4SIGJMgeV/mLjFL4AydU++9pPNrxPdXJnouIVlARkscnT17zb1sPHaDceHS/un9tjzB7b2W4Gvh3hqXWhtj9srSGbxWXmMM1StfBrItkpUKX9aI037XQL59Pm+wFVNcHUIlLtjKBbQbYUn8+zmlh2R/LApvM3fL28X5r0WM1+bx90Hhfs4YlsS2fdHdNsLqtXOwhYtpOY9apJ2BGwgSi9i4XAV41m4tSmSI/o406CIBgyd4BzgHcNIYxCyI3HvJW5vAYOfE/oklOEeYJnCYMnJ1xIJgU1Su2cJCCWBRVSCYgcgsATYM2SZGjJyRrR+8RI1igKcIkM2PIh8iOOdhxkkxchU3ea5jJypJHVJKkqnK1proqr8rWSMb13Hr897++iHP2TVk3hIHtah9aVzXCPC6rWvPauS8pfzOOFsi+i8A/HMAfsnM/7Te+/cB/GsAfqXV/l1m/h/12b8D4F+FGP3/W8z8P13rg4GSzYcZ8xNa/2uXa9ox+ffW6VlzremJ8YwKs4UTA4g+V7q1XBOXZKp5Y2jJW4iNW8WScXTeKQAAIABJREFUa2EV23a3jqOt2x6wdoy/b4R7a/+9de3d27q+t4zh2jq0VH9NBLTvkihboUJk4WYJyomJwRQRVfKnEtyAVV83DoRxGLAbgV1M8InhknC2YGAcxcJYsuMlJO8Qo/LSzGIFnYK4HjkAxtUiSiQrJDFqgiDIpNx4TOJbm9gBTIgxYpoiYmLVKzs4N4htbyKJlc2GxOUbM7JlJ3rlKg9uib4lfLn9NvhAJnFj9RteWbMCEq+vcY9guwZH1q7zGF4Ba64Rcympnr4DM5ckLC3SbfttidZrSPc1sPFzyxbO9r8E8J8A+K+a+/8xM/8HzaD+SQD/IoB/CsAvAPzPRPS3uPX56BVeuH51IbQ+pltLD/Cs1ett7BZB3Nrv2rtbOdDNnOqNdTeztbgdIfUQ6S1Shx9iDL+r0gKX+p5d98qthNFrxrW9FJc3p9bExcgFQNZNilg3p+6Bw24E9sljnwjDFPESBOnFxPARYuSk+l1msQh2nEQ8OxCIBxA7ESs7sTZukRgzg8UOGgmiD06a8Qcsku0p5lDO8IkwRY0mNQyCuB0hxagteJBaYqfEeHk54XQ6Y5om7Md9TikoxHiaqZok68/tLiNb1qgXsz1//0ZJyedIzNb66CHbTHx0kHRL6K2dh7rullgEvbrXyq3IealcRbbM/L8Q0d/c2N4/D+C/ZeYTgP+biP4cwD8L4H+93s+2DuSjr384wTbZ69wkbi1LiGAzp9gg52sb//eKQHjLCmjVDaIfK7ap1wBEK978fZVbvgtYD5axBJzafz9nf91SaiJgSdStFWEGS0TC3Qppqz6r+twQJfQ8Smh5jdrkCYN3IBck7GGImEIEJdWosvjyhhCUG4qF0zTRrpOfJa61Eti2T5OIiVmlYjEbURESe/jBaco/B8KQpWwu642VcGcNL6n+nykxpingfD7hfDoh7DzGccxjMOnXDPGZUAC4Gke4tge9hszWEFf7bg+2bN2ba+UWhGtlzY5gKyys+1g7K69V8/3OkO1K+TeJ6F8G8L8D+LeZ+XsAfwzgz6o6f6H3LgoR/R0AfwcAvv76G2wH31s+vFCTW7naa6Ljre9/rih5jbvtIZ0t7f3wdV8vKdhaf+lQtFTv76vcygUsicd6v5fWvAaUt377rWNdm/f8G+o/KqMW616nYQnI3J1SQbgQ614J2iiuQH4g+IEVsRXE6hTZSozliBgjolomp5RUVMzFSIuMg1ZO2AxBUkl9Z8nFU7RvE19Z7y1Eqgbd4KLWYkjyBINP5BwoORASWINuTFPEFMKMWxPd86Uonqq12IRAOmvYW5segbZGtG5Fhjb2q+O80t6a1G8JMS4Rl0v16+c9pLt2Bq+VH4KofS2y/U8B/F3IXvi7AP5DAP/KLQ0w898H8PcB4B/5m//o5i/5sQDsGrJdut9755redWt5rcj0c8r2/raLwj5nU1+jtm+dn1t0ltfKD3H4loDntf5fuy9ukbL0uOrZ+8aVScJZSGBjACR5XyVucm2slLAf96IXVb3u6Dx2cNglYBgiHE25z8AMbyLkqAgzCtINIcAhQWJRSbTl7OaTpC8xmErgGJFiQEwahY29GEkp2zjsHMbdHs4PgHOIgQVxMiMmCc0oxs0E58UdSKQUHoyEGBkxRMQp5vNvelpi4d5NtOy9RwyVaBzrLAZrhS0SrhjjBee2hGxrONVrqy5tAoW1cgsytzmpxd817LRnPW71lvNy7d0t5YeA58ArkS0z/5VdE9F/BuB/0J//L4A/rar+id5bLQRaXNSWwlkTBdgCWfxeCYtWZDE9IH3rItT1bMMslV6qsqV/27Zaqq9+VoeJbEs7nl62kc8tRqFvKc65C/3IljFcE90Mw5APY60X64nUbtHP/BjlGuHWPm+BZNnXRd/0Q6xj3d/S2No6s3EBKnoFyCIv5WeS1YaIRHlLFpsqIjGJuw0iCA673Q7v3+8x0R40vgA4wCdGOJ0QpjNOL0fEJKEZWf1VU05pwEjhpNyyIV7OyEyYUvHHTSzJCogc2AnixLADnMRWZjgkTIiMnH5vPzoM+0E9gKKEUFSunpxDCAEvpxNeTi/Y7/cIIWCaJAbybpDnzKwic19PsIbz/GHW0dpuz0AP/izBjyXmoS4tIdbCwy0IvD6za/0v3VsrS/W39ndr37ecw1chWyL6jpn/P/35LwD4P/T6vwfwXxPRfwQxkPrHAfxv1xssC3UNMPUonbqOPOPcLlU6EitbuMalSVxDiEsbq/f+kjhwi/h6Cxe+1E9Lob0OaF+jydfHu9T3LbqRJQJsaX2WONeWc7ul/1t8EJfG3pal76jnphWZvaZcW/ct+4QBjXcrF1x71/Jl3OyUYjagYo2g7JzDQAP2NOBuIkzJIQRGOLxAWWUR76oo18TTjhlREWx9yGVnakAKEy+TxRYnkB8ANi5cDLVU2C2ISN2BM0JRIEIEMcYiB2aNdESCNKZpwvl8zu49LaE3W9PZPF47e3MXuy2i2hrZ2r0Wdq6Jb1dH0zkr7fWS2LZ9/zX79rVc6dLvre0tEZ63jm2L689/A+BvA/iWiP4CwL8H4G8T0T8D2S3/D4B/XTv8P4novwPwfwEIAP4N3mKJjC0cptw3CsW+v7eYzHLI6ilqkfRrRQM9AHdN3GlljXK8Jhq9ZZzLREj/9+19lPi5t47nGkH1WgTWK+039xB0DyhtpWhvARifu37t79cg2h5R0s7BWv2L59U16w2mSjya9ah2dqM8Jy9v6Hp75zG4HXZ7h31ymCJweAlwzkv6O+/BPEAQuSDXlFiF0SnjWvNbdVxGp1pcJBZjJ+c8EjsdL+XnIonWTDUo5GRitbfO8MaBSUMYsuQIDiHgdDojhFBEyIqgjYsra6VzyBvEyCvPLupWiHZtrxmXfUubVpYYgZ40ye6v/X7NGNbq3dru1nd78/Wab9tijfwvdW7/5yv1/x6Av3e154ti1oV9caf9TJrSqxYXI4d5mW82P9DFPWv7tQCrHds1MUtdetTfUju9vnq/e20sfeu1treW62BiuVwD4JvHcAWwfA7Xt6XcOvat9ZcIkx6n+5qyRvj09vLVfryxtgDUMArdNqu1IomPDOdA3sP7ESN22N8NCBgReUQ4nECsyA2MYRiQ4oAYPSYwAhKgrkHTFNTPNsFxgib7kz6Tip011Z/bjVD2GID+kxgSlxdF9KwkQkoJ0JjO9bykZOn7hLM9vbxgmiaMo8VGLnVtHkiRO16559dKex56Z+zWs7YkMer93jI+e6enfmvH2BvrEnyrx3qNsbDfLQJd6v+HhCFfRgQpACKa0U0DoxwhlGydxwwk0h87vLME6XaYTbJUkPdyv5/HoawhsR4XsQTgeotft1P30+of1gDmLd+2GYizIdxtZc0HsAX+a/rodqz1e91hLhy6ayLS1xIA18rWtbhGGNb76BZJwBrnem2ca0DQ9gLDlQhJSFBJq55OsfIFOSQiEAYQeTC8+L9CEhfIUfcgP4J8APkIN4zgqDicgBgnUHQSdCIB52kSRAu1Uk4hj9NBEre7QbhkKCcrrkn543K0JiIxZMpnzgkXDdboVzEgxiDGUww47zAMA3b7HYZhyHPEDAyDy2157+G9R4osVtp0XWfrqATxqNdl6ffW8jlSlqVnt7RZI7veOaz/XZL+9c5sjzBdQsAz/XnTZwt7e2PttXmtfDHINsdUq7hbKQWBArK5y3ObFFeERnlxOIuXgGUq7bWiuCWRY724twLCHhXa4+B+qMPy6romSLixzWvjvvXAWvvX3rvGTf9YyLUdw5ayBHDae7dyK5/zjWvvCidI+RoAan/XGVFGSjdbGj6WmMQxAYEZUwRCBEJCDm5hf8yC8GwoTNkcSrICkTRu4R6T0uHkHPwwYhhGEDlMUXTL2hxIxd7QNkhz2SLPsfxrbkwpFRckpwZgu90ODw8PGMex2l8KlyppltyvdO9XJERM2+VH1yQWPQJuS1nyD1+TKtnza2UJri0xKy2R3iNEl8oSodIbc9vPkvHurWfqi0G2+dsdVacWcl0hT+8dOCdWt02dcrU6iXuLwNa4vluAYcsBLum/2npbEOaa2Oc1APNHQbZ4rRD5hyu3IuYlbvp3OYbXtt8Gba9Dhd7S1hqgqcscOVyOZ3aPapRa1DYi/hB0mGMAK7IpQS8kMERgRkiCbKfAmEJCjBBDqZAwBQuXqISniWNJ/GSdH0CIZuUk+lnlHkGCbMfdHgDhNB0V2QqbPENorpIUKDYOYYIkHdCIUOp+JPtIEtDv93u8efOI/X6fwxCm1I8ONqNSa26gtw5Wp1mDJTjWQ05LTMHW0u6FFobVfd7SRxsHuUdI1mVtLy7B8d78b9n7S/P4DwWyNSQK2GTXH+arepTvMZv5+HxCnOubu7cT89pNuOSiY6XdBO1iL23W3tisTttHTVAsvWe/e9z15yIbAopvxC3vXRGD3SIJaN1f1ijV33e5dRxL39IDelvF7mvE3bX7PSAjHCVyYl4R/wpCApuNrxDCxAzLFQCXwE50uxFAIGBCwjkmTBMwhYQpMGIiTJFxDgnnEEFIcCQZe5wfsdszOHlw8gAiYpw0AXwUP1oQvPPw4wjvBxA5RAYmY3mN6wQk1KOjCoZI2EdOCSBG4JRz5YY4IcUJSAyn7mfDzmN/J2Jk25c1QVT/9hmhm/HY775sPf9LsK1H7DHzTDS7ReJUt7n2fOv5+RzGwsbbkyT9UMT5F4FsAQ25xjWxV38g5ftlAoBiIGW/20Tc6w7ZrxUnbxFvLJU1zrftY40TXiMW1r7rc0ToZTC1qPCG134ATr19tyYorkkRenP2OVzvj8nZtiKyeuyv5c57wGMJ6GxrUN8XJlHOr6tEtMwg6HNmradIzUskJhMnxwSEyIpsI6LqViMDMarlsQfgHYZhBNiBMILTBEeMl+MzzmFCTBEMwjiOGIcB47gDg3A6T4gWfco5CRZFJNekXDKKrMxE3qwfYwJfIvs+i0qVcHo54dOnTzgej/0QjdUfSQZ6AIDjhLWZZlc432tnp7en6/Wej2G7FK/2Ye/9uzampd9L+6t33+bYvqO3d6/B3y6xuDAPbfv1HGz5xrXyRSBbAvKmypJjIItQ7JoISFH96kA5fVWeHpsoFr1MWYy+tKZ+vlUwOlsoNrEYZ+lQuVbfPirf1f1u1GMo3y4HnfQGAzloQK4BQLTVbIZjZbJmfXB1fdFvmYyrqtjPpe/ag9AH7DdQsZnAKq4W9sXMy6K1a2O65Xs2F+bZOrRfObvHnCN6l71/CQSIKBvRLLVl1zOksYBsra81biIjfzASQfLOUkFQSQljMEBMinAZ5OSbyHlA/whOkwcQIieEyAgxIaSIxEl0ozEgxAiiCIneRAA5eKc73hOQIqbpDJomJDiQdxjGO4y7HcZxRAwBU5gQgvnHanYi0sAWVImlLRYyI4ub80xoXV0iScvHjJfTCZ8+PeFwfJE4zzpO45zZ5sBeNKSzstcZmKXt3gLka4S69uw1WaW2IJVZIgDI3LT7etY2Cky5aF0fMjO4zissJupzPFH1KlKXprXq7JlxZxnrZSvtQGom7w8e2daFmusKjcymhZyDJzkwxt8m3chKi0meS0ARb9tCQVoCtwlzy+YECT6uk6mHLEYTXxpSFaDvIGIx6AZLYDPIlGg1xrbD/Pbs0ItIzWm4OyaGY/X9o9KNAcWEBEpmGMJwICT1Kc7XOi4mgFID5Gk+t/WUOGAG5C9mq9pX9RZbRTkryE3GQ/kw5I2rxEW5bkZGLGI/RuZQSqLuslc4xzsoiLZHWNUE1Pw5dz60frfM7CUC5fqxZMRp3mx3Yhl3ykDZjI8y8cmW/FxEn4MfKiLsYhAF2ep4ZqCFOpHAiMApqUEQMrKw98p9OV+C/OyYWCo7JYRYOpS9mWTfuwFwHo48vMYZZnKiu00R5xRxjhEpTgjhLH/TGeQiHDwcDRicIFTnHBx5DPcep3OAmxLIR5mXu0fs9nsMw4jz4YAzJ0wpwpEDwyt36wHyYHJ5bRNc3ufimysIGJDUeqCggTmS+O8m4Pnwgt98/wFPz0c83N9hHAjeayAMzeEr80VgTmU9m/1QX0vgO847aw7T29+XyKCWAFoKwIKIW/K7LZUh2gUHXffZvsaFN7BvSEXl4GoikoFkIFefe1BVt7hlkb4nbI3BUGVyiAq4qL9NgRujwDWqPjuEADsZmfHoEOsgieM9n3ObT8KMIrqS9OaLQbajyftZiNUlQASoCIoIGg5cFlSRHIHUYtkoLda0VqWVQuUlMEcgG1nMiyyV+f/6AlAVKTuF7bbBPFi4TBad1TB6EDmh0EMyRhhEXg6jflSCJNImEiTNqRYxEYg4I2ivoi9Y8AAWIxFpi+DIDqiMyzk3GyMvzq0BxhrB2AbjjJi7eow1Do8Nb8zFQTKugqQ4xQrZAeRKm3JtKgG5J9uloLg5MZV03qS+c/PxXgAMKu3WlocpAYyaWneztnIeU5tHM+4zoKJUtvTh8mS0fWYkTmpXT4pXK/rC2U0i2e/C2hUCSReoPvqomiebx2b9kWR1a+mMuMvo/skcHxRw1pIAiV9sM54wgDDAsvrYlDjtyHkW5AaPswJSi5tMfgQPjOSB5BNiPCDxESkdkcIBMUxIowfvRuzHN9jv7zEOA4bBIcaE+zdfIYSI0+mMT88HxJhwmCJePp1wPDLI3cOP93AUAUrygd7DDTsB3AoPQB7Oy3lyxGAPRIg/rScCRoeYHCImBGacosen5wCHAz5+fMG7t+9xf7/D6AneJSQO4CihJt+9faefTAAbF6ZBNxAV2ljS+5J4vqLTN/y+JCRrmGd17Ky1olkz7rLN4Kpz2CKb2bU+lL1jonnZc7LUSdy3kODIYRh8gd067LLHZW8kKLHp/cVzB8r0OJIwLByFSLxQJyoMzWQryb3EBa4VrA/MkaaK/nVYXB+wQpG0NG63fDHIlmuDmxret0BJJ9XQIFSURkTwpsNlieyyTGnU1J02bUC+5m6ZCyCELOLgHdgZ4LTWWH/m5ZR/FfhmWKq7ivSa8sbhDEcdkwZxN26Y5+Mzio6LcQVVwI/yZhFE5mbxWC9noQa8zKl6Vhtv1JTf7cWQXmvdV3Qtrd+wfgvVvy9L3WbpxzgHE5nqrx6R0Bnb5Tj6SBooDmd2eGuimvK/RlRx1R6322+2NEQEZ9S6tV/naLX5UaDpMjFEDf9cBj5rv9qnWc3BRR0yW6d6fE4RBNkgWL1jUbVoolhfIXbZl852FVnN8mYiI2vl7EY1ROI0IcYJ03RCSh5ICbvBYz/uMLgBBI83j49gEM5TAOiEU5KEAm6IYL9HpB2IGIMD9p7B6VxJUQgpmbuPZf/xSiRF48dl/h1AboDzO3gIIvPegxwh8SAiZ83X60gJ6P2I5AGOhMETOBLY6cypBMtmgcFwpAQ3M4rMrpRb9aC9Ysiwp1oxQrjXnpyVOSdoINL2CpGrru18m7QugVjgtXNOMjq5sg6zd5wSpvqvwXkbI1GlvlOCIFZMSXueZieMSIguQCVryIdbPttVtVlpaMUBTurKkGQu2JiUCzJ3Xr4cZLu0WRoiyjknVFIt+vM+byBm9YnbtPdarggoYPIS2ALiO0so2SiYDdFy2XS2GUx/wApYltbiYqzFyf6yYhFFLbx85X4p1Fynag3ydp3/U77rhsPdM2zo/TaC4/JZPQKbgz4yrpGr3WflJm8y/kEPMa//nj1bWG/GNsOMtrj2HlfzOOOQO2O5Nu4GTqwZ30k3KtBjUmJCEH8ySUX+dNXZZmKkzH3mUoCsE7OzK1KFaA9AsIhNjADG6TRg2p/hNbj/MOyQQBjYYRhZLJVHMaxy4ySiazAGx7gfCeF8lMAU6sKj3ZRJIDcTKwjyIJCTABneezBGMCdNz0ewfLfVJME5ghu8hKg0Ha4jcCIF8po8QIl/Jsv1K7plYjdbUrbJ6vxe0sOWvMKc6zvvZ/ClPlkZ0Vaqg9mJMeRe/bb3ze/4AgbWsFpDV1qCkiW4wCzi49aYaU4IGkmt/XeIhKW9L6oYC9tZV7i8JlTTbjClIjj54sV++SKQLfO2yEFElM3rc17LihKrrccSi9n+LUYsLRLpvSsbsmyi1lqu/teeL1nD9X631+3334Isem1sqbsG+NeQbZ8aVqmD94vzVIv4a2TbIuW6bmv12V2rPI+X968ht17f7Te2AKVtr31/yVqyB3B6bdb7ql6ruv7SfC1z9pfvLn173TcR4FRUbADZaCIiRpG3qXEQQQ1dWGSN5FT2LIiqtu5NMYKTiO+8HzEMO3g/IcWIaQo4Hl8wep99Wu/fPALOg1my3zw8PMC5AczAFCJ2d3uAEwYHPOwcXg4eLy8vOJ1OOUPP5d6t10kJQQgnm3jQj2X4geAUMWfLXVjiP5JgGt6BQxQulkhcjapoW8Y1MYqkQXhfJwhlgZuti0HPdi/1YMktsX6XYM7FPZ4T5O1+tbmpc/7WbffutYi6/r52Xy+NdfE85BSNy6V33lbn4Er5IpDtLcUWpKZi7NARUT6wDIYfXHcx2r/WvL2uXxeh+CR/Z9tGvVlqLntpQdpNJPkoq34642nnYEvZuiFew6kuzVc757ZWFrqurmv1yzfND1+vbnvvGqdobmXt+Ot6NRKv6/T6tn/rtGY9ouqCUqf1QCttf3X9JWTb1q37ap+tESc9BN4rsz44gjLCJSRyGFSglhQZiZGi/SVV4gIgFTcn0Z3FQEgxIYWEFBnODfDjLnPJzIzTyxFhOouLTZA4xLvdDk+HI+7v7zGMO/hhxG5/h/1+hPMekRPG3QCnY/EI4HiWZPQWoILm5z8li02l82QEhHJTFvtYuG/ZW4kZk+oZjWlPKSEZUCdCClE/vY6CV3ijZqZnyKue/97ZG4ZhlfCs36/P4dJeWnp3rd0U4uLeMRhQi7Db9uoYBi1c3rIn67pr30NEmkyizxy0ZVFq8IeKbLeYoxNRFv0AJVdqlzOky43Zo5h6f1ZaClBEWZWEqRpXXVoE3Ktj98r9dMGBtaX+7luQ7da6vXeWNvpaCLMeAqkRR69+jWjtvfr9tW+59n3yvM/h9ZJX23U7zz0AUM/HzPWhg8zbee2Nv56rrdxmO56lvntrU7/bjqnXX83ZEvuKgyW19AVApjs2lxe5jpmrVXehBCQSw6SUBNlyYoABZy45RIqYy/zHGEHKCYcQMYWAEAJ2+z12u72sh3dwwwCGGA0O3sMRI55PYC7clXMO7OaBGpjnKqEiIbwUGApilrsxJrWAd3DeI/FJ9oQG49CJrVowPaW2anuSxKLbUZWbu3PO6tLu4y6j0NTtwTx7v/6+3v22MLNZws3qLu25XmL4FlYsjak9Q3UbWzlbL+asi9/zY5QvBtlupRKmaQLQByRW7IAsLUIPudbcScuFzJ6rsWC7OXqcUDvOuv8WEa9t+vY7rgHeedlWr7dR1+ouBRJf2/AtZ7aEcOp7vUNW97X07vy5uG604237MWKut6ZLnOjSOG5Zoy3v3bbmy+/05rNHALR1O60DKJbvgmCdGvepuDgLU4u+UMxV5W6i4quaEguiTQzLXZtYLL6jiZazrUZCTAA0MXuMk6opotSDcIvDOKp7jxMXB5bwi+a+Z/s4OdM/V3tTcazAElbmvOjniKQ9CaUpQ56mIHGcQZIWMBQfXSISdyP9zwgUUNHHS4IE7cMRHPkyv1p6+9e41bV17521Fln1ylrSk/oep5Td1C6eLRDgbb2auN2yb5eYqLXx5neLWeFqMW78hyhfBLLtTdJSvfP5LP51ahxh960URCB+e3avnfRah1DfW9Ir2jNHkhPT+rG/pQ1UI6YCtPMRrIA8qvuXCPgaZdsrZQNfrTrjqteAbE2gM69zR21bPaDeHsStnPjSXPfmRfbJpQqhXuOa4q7bl2eAIet2XzgLXK/9XH5/+y7P5u2yTpnX3BaVcczf5dz35ZRRNXb7PR/L0jzP9+hlu9Y3yGUjKYbgUSbJLwsqKTMNgTgQ2JEmYJfgEYklclRKACJAEaAoBlJhCginCcfDES/nM5ISQrvdiNEPcL4KbEMJYTohThOOx2fs7x4wjCOGYYAbRtzd7eEIOB2eEcI5E1Xee8RQpBUZuFZn92JPyTKKYDxG8YJg4PlwwPF0wtt0LyEisVPJeRJjLpiu1sHcoxIUmYORSLhgdXqBJ0tEP8+adblWnX1aVqnUM1hin0GUDaWMGJrV7xSTalwQ8URdeLzWVg8B10R8O/fz/cqwsL52O6XeuSpjrX9zR2KQrzvztDTu3u+l8kUgW2CbGFmo2DjjQutkzXVbieWv5QZrBFYb2dQGPFZaHQIRwTvxEbNCSsELMKdmI2YQVAEFi9bG+XcNSOXeHCBuoUCX5mvmyrRSiCQl2FofZXw2h1zdNyRWrrU2SMVhVLkxGZeCbFrjqvZuE30vcZsFENXfYOslYyDSROTVOtQExRzpFBctZiD75tXv1P3kKVBfvdJM5xtsHsqBJ6eIGVDkpewWc+G27PdFg6yDIkUchuS5ArKdyQRUlNvH4qRcKyunJzpb5QozotV1VIRLOfqIk+hR5JCiR4DEK46JkQJAGsDAgXE6TwjTpMEHgPv7OwzuQfxXvbjWQEXJp9MJYEYMZ8ltSwCngHEcEbxHZMbBe3hnyGt+noyjTXzpk29fbbkCxYra6TmOCCQEwxQTvv/wEb/97Qe8ebPH+3dvsN/tgETwxBg9wOcAUqMn9cRXAgUANNlEhXgdu7yU7bapjle7es166XdWxlsS87kgWhCp5a/U4JQy8qWsO6ZZm/maygUNSxzzMlFXb7Ni2S3v2PPsz16dEdvLNcHZ2mZcjDH/Znj1KIHhhGquShtcjvjFOaDu9Vr5YpDtVs62BqKWDaVGirHKymE6hB7CajmcloptudVs8az92bs9Tri8RzBdLLNTIG0bRA9VIt0kfWvS+ttvRbbV25tqOXfJmVnfdTuFQ+sCsGsBAAAgAElEQVTP6fydHtLnZh5qBL7yFRu4ZrteFu/OiYPyXS3nWr7XDvicUtbxoz2I5ZoroF4kURVC7X6LunZptYumDftyaX/1rFffUQiKltJvx1KPsNEzt8MnysBGRK52nyvEIeNgJz7qEjGqcLYpi485v8amvyUx/tntRtztBuxGDWQRJsRpwnQ+4XwMSAmIISBMk4RKTKP4DkdBxgzAO4/7+weAGmkTKniQp61ILGZglQCQg6s44ATGFAKeDwlPzwe8vIiu1vkBzokvsneE6NQ3OmdwqOZL2zbvIXP6mYUgn3F57XngGdDvnU37N7vc2D6onqOCi8ZdbhHp9sTW64T7nBBuJYDzsbbfXf9bE0/9Pb28zys4Ua19Pb5ajLxlHtbKHxSyNQ60B9zrBTJk6xqutu5rLn6ZWxLX99vE54bcW4OKtq3aHaknEm6RUfu8/p5ePz9Gqeeptx7tIajH33vnVuKglUJsfad9v73u/a7H2EoveoCjN8aWOOrN3dKctG32xlX/2xKM19rpfcetwKH3DfPvaan9mmxRUtMQMInojsmDaZB/wZYVD+AkWQdSAhTROiK4YcSw2+Hh/g53+wG7wWviAeCcIhJBIjSlhBgDOARxX+U7EEuQzHA+IARBfuM4wg/jfO2qT7qcNzu/eoZJQ02QqZAIrKEmD2ESUfLxhBAinNvBsVfEycjKXSKJCQ2AG+qlnsM5l9Wb//Vna+dyXYVQ/m2TrC+dzR7saOFcD6Zda7sHu9fGvfSs127LvK2VpTN6yzn6IpAtkSRgXqKS2tJaINduF0TmixsRYsD5fAYgnOn9/X2eXKPu9vt9Rp7DMCxShNbu4IeMcO15D3Fan/YtrX9ZTzdYl6XNaO327q9t1LW5tX5MZHetfrtBlyi/+jtaB/Yl/c6aMcJriQzr2w5H28drDqo9q9/NbmcdINP6kfckIfVeaccW1BioNeIbhuGivfrfpW9a++aeD/PFN6l4ugxVXIHgonK1STlIMQyC85iwA/we8HcA7ZFcUHQbATDidMT5cMDzp48gMN6/fYc3D3d4fHxAjGc8f/qADx++x29/8xucj0/gFEDM8J7AIcCD4Qfg46ffijb0zRu8ffsWLp6x8w7kEo7HZ7x991X+ptPpBJBkCRqGQQ2xNDBOSri/vwMxEMOE48sZcQoYBifWzs6BcgpQAiPh6fkFn54PeD6e8O037xGnI8IUkMKEtw/3Eh5T/4TLLag2pQDOJAgkJeHCnrmltHDA9kyvtMg1r27nvNv9WqXX9rfUVg0X7NrgzzWiv33XzourpI69d+o5qN+px9qer7bPpXa3IN4vAtkaN3ptM9XAaImDyZMFzJBiy7Ea0LXrFvgvUWW9oa1xEPXCtRxw+067iXvXS332nvc2cM/ir8cFLpU1qrSt1/uOLQdpa2nndKmdHkG01ucSR9zrYwvgqwFCO/4W6QKYnYW2LAGTXlkb+5Z3239n/ZLa1XqVEYvpjyBaDbEgxlBqDYwBoBEJA0J0OJ4SPj2f8fQc8HwMiMFhP46gh3vsHOHd4zfgdEYIJ/z613+Njx9+jcPTJ0ml93KAS1Fdegi7YQdyCSmpC5AH/ujrt3j/1Ve4u7/Hp+9/hZCSiKwxwPshI5xpmpDCnED23kvkqypzj3OEwXsE1WfW9VOKiEniJx9PR3x8+oTf/PZ7/PSbdxioMsBkkji+0fpTi1hOOXMSQ0TnjFSADS+v3RJntsYB3mJdu4Rkev0aQbmV0FuKb9AjYOt2ewS6fVd9PpZgWsvs1O22DA0RzZiQXrtbOeQvAtkCl8EElkqXyqa+iK22WK4RTY2AezqJHoDKCwI9EAsTuzj0VmdZ/Wr7Wvrm3hiv1U/JALf8ye1qjkkFVzn4wFwUmO8YBW5UJXMxsGB5g6svKuMrpHsZl81lT8x1O/fazk8XQFD5mtl3XXwnzYcwS5PUjq3u037PjceAYnRVhsSzd9p5QTYAQdNGLaCdf39dp95KcyJx29yS7gk7izZOi5xmfUl6P4KFrSvDLeMkOCT2YPIARjBGJIxIej9ylIQPSYxxnAMG//9T9y5JkiTbgd25qmbuHhGZkf+sV+/TeEQ3Gi3gBMKmkGsgF8Bx74ED9hI47RFFOOSMa6BwCew1tAjYFADvoaoyI/xjZqp6ObiqZmoa5pHxgB4ktCQqIt3N9Hv1/j8mSQ6XI+fzI1+//MLD158J40AKI04SfefwAt6R8zNHVCOSAneHnk/v3/Du/Tv6/Y6/3XuOl4mUAjid0zzWSH/GGRWyndMPAiIOnyVfKARAc1GQ7I0tjnGcOB5PfPn6wGW4cLPvrHhIcfhJ5oC0nHPJCF0IbW0uKntYwWD5NW92zs7VMr/Pne+3Hpi71jk1bh4qw0Oa74JmMV21uiobqEmLI1MWhObfGdusrtzq/xVeypdiC74ha1FWSJX6Gtbm8eXzej6NIPFEIKpeq/fopYzsd0FsXyrZtq3ldNYqyyqPqeqK0NYSVvnZkjy2pWdd5RBu51K3OpNUebfqvTHIbxGq7flsPXNNijEnWOOWreqLFrqLZqeKamX2TvWZ8RVrojgDZX6WgpCbabfz0fmybq/pOQ7+ubbFWdZz9V3Tr7Bmlqp/lz2Z+ynORUhzYi2zVMZU6gIY5SgWQmVv6saGrZHssnc1oW058VY9tibKzbL/hO1VXSq+FEahPju7X+bghGavTa3ZrUyERQBnifplh8oBkR2u87hecZ1Vz0ppJIaRNI3E6cLf/cMfOR0fuJweeXj4hRhGei/sO8/tzQ27zhmR1UgIA2jEpUAnkfdv7vn1Dx/58PEDzjv+5u7AOI5MYbJMUt7N0QeWGGOa10eRbMUiDxbJ1pmaOUyEGC17FJoJskPE03WecQo8Pp746edfOJ7O7LpX2cvWz7hJ531aCG3e9cy35vta/mvBd+Mcn2CMZ886bbyw3TSHT9awVpeLXDSJT+3Lcx8NEVtNs8BzvaiVIKVZe7J+p/7djMa8ONUVU7KMkeei621YaaDKnGTBBq2AtJrLxkza9l0QW1gf5jX1XCvNPquOrPqEp/a0QoBDCFeJbd3msUre5Y151M/9qS2Eb+eGvjYnYLVnNZEriKNtW3bBa3u+pTX4U9pL1K2GgP60vftWv8u6ak9w8mcvV51vtSIdtGf/HENXz+uaqusaLLV9lfm3STiea3+K+nlLjVzb3RdV5CLNm19umsNMkgopOaJ4ovNIfwv+kCVbIaaBaUqcLhd++eUXzo8nhsuF4XLky89/IMYRjRNOlMPtnkPv2XWO3gkpDIT8vRAJ04Vd33H/5p6/+Ivf8y9+85n7N/cIyu9+84kxDMSvF7pXN9k/xBFjJIRg4UKYvdLldSYBVauz67MzFGIFTzToXA+16zoj0H1P33vidOR0vvDzz194fDjx+u6GXdfjnfWlK61W2VudJWOVZByygMe9mChuab+uwcNLi8cX+GphtIaDmkCJ3865XD9Tax1Lf8+ZLJ67O9fm/Ny/V/03TP9W3/Vdu0ab/llJtm17bvK1o1G78PogFZ1zJpc+C2LaQnRbiHcL+a0EoivIcQsQ67YJAGw7JtT9bX32jzn4a8Rzyzmi7FcrPbbp4a71/6351s9aGbk/zZ70XL/1XNtt+RbheQlhmssksuxTHRZWf1c0LPU+Xru411Jh1mveQgzbmpjlu5cS22tMSMugiWiJ2DEbp1oaRVO3WRWgiJCcI9IRJmEYE+cw8tPDxB//+Au/fHngl1++8vDlC+P5QpxG4jTgHHjX4Xbe1MYevChOEylMaJwgBXPKSiOexKvbPb/+1Uf+/M9+y5u7G3bepObf/PCRn3/5whSF7u6OznumEE3abTLSlTs7xciUIl3nLYGGA0jEnC7SGPe0ujOqxmdMIXIZBh6Oj7wfX3PYdXSdR9Tq6JqsD0tsedE2mfRlBJccIvSy82pzcz8ntGzl8X5pewnjvNVamKydFre+r+G1jFcT7HYe9b15bu718/XvFmfVDGybsvLa/fjWvnxXxHaLyyltjZSf2mhr4Fo2kJWUUfdTj3GNo9mcWya47Vy35n4NoK8Rz2uS3XPE9vk5t8rq5wFia83t3pU1tenhSmuBdktqrvtb//1yYtue9XP9OrcwZ+3a/jHtGqxc48ifMmzPj7uFeLbGrbnxa/tQP/tSiaY8v75LT/0kTCJbCL/TZMkRAFRyXmOHJk+SjvMlcg7KcYIvXy98fTjz+HjmdDpzuVyI4wUNExrGXA/W03mh94JzCeIEMZFmol5Uhkq/63nz+o7PH9/zw8cPucRpwgm8f/uat/evOA4JPewAskQ7GQNewdy8R5pI0wT0+GJ3IRFDtIIJ2VRVJCRNSsifx2iZ7h4eH7kMF24PO/aHPeTkKbMf2ey7YNKtEdqi4Wl0nFfOqJ73c8TkGtP00v7rflu4EJEXCeBbsFQLT9fGruG8pQMt7rkG+0/Xxoxvv0Uk2z6v4u9/TsQWnhLTre/rRV9LKuHEbC4vBZhrJf62EPq1PKTbyL8e/7oUuiXZXiN+1+a59e/avmw2uLL29fvlsa3LuQW4zxVDeE6Kev5S8WK1WTv+t5izl7TnYO7aZ99SfV/jynnGxlWnEm2JpIis/BueQwD19/onbG7J2FPgZT3vZR4iYn4A9oCtCa3CWQToEDrQHV++nHgY4TjCl8eJ0zkwBVOqmrNVIhHRXLK9c8Ku6zjse0QnVJSokQnzRHYC4gSXPO/f3fPj50/89tc/8PHdPQ8PX5imEcHz/s0rPn94yyXAV+05jYFhGKx6UEp0ObNUKe/nvRVYSMGyUBWbfoiBaRoJMZCS1bIFq5tr5f9GHBERZRzhH376iU8f7rnZ9bw67Je9q/6fNy/DwrKHlP3eOLIteAwhZAois+Pi1m+lwNeLyKOdi3EVFKTh3Bw5PIdNwrc1J62A9C3Y3Xp/i6HYSoZR9vSaBihF29s6YmV+NzOMm4Lf1hpFrn9Xte+G2L7EG7nlhlqO/0lYizzl6FpCe62VPp8mpieXDVs/W+ZTpN7StqTN9ecZQNK2xL01z2vI/xqXV4+7XLK233Us7LeR91MC3XKe7Xq2xl0TW3kxsf1Wq/uNcclCs3XxXvrv9juHkGThsFskwiwRGWpqL/41ZFNquxqhLR6rzM/aWGuGaTnvhcFbz/flG7uejhHDGp+IVM8UePaCS4acDa17kB0iO3AHOneTn1W7l86zO6i5GInDaWSUSByUIIm3928QK3iLxkCYInE0FXMYB9JwJsUR55Tf/PCRf/0v/5wff/yBzx8/kOKEkPBOESK73Y6PH98x0jP8MXAabT+999zd3bHvD8QYmaaJaRzZ7/d0ztE54fb2ls5ZxqqHx5EQwopYpZQsqxyey/nCobdNiTHyd3/7d7y7v2Hfed6+usNrQrB80o5yXywPsoF+RLE4ZdU4550uW/0cLIpaSJIUglvd/0JmK0h8IanNGa8oDlAZ1rVK9zh7IytR0zN4w85+gfllHc8R6QXeoTAjS58lTa49V+zosJb0n/YvhCkiCl7M8a0G8HZOq7jkzbm2l2K7fRfEtnDvrdpyS53WGufL76fPQpjCav1btUq3CNpzlS68d+TErBTQta/LnJe/a2miIMLy/SJdFsmHfGZPJdTnpMFr8yxzmT2MxVRXdWSLUoh8dtBAcmHrwqw89cQrI2vMcYBSfZ6ZDUUtnlDI3pTLc+WP5R3m8dGlOs+32nMMTbtHVq3tn0Zsl8tefS5+TsNYI5Pl2bLK8jfwZEfnWa4Q0NInq2eW9V4L8TFC3J7Yc8xlQcPzWwsXNTOWxlwVT80C5y4bHzO8i5AoiR46khxI7oC6Ayp73ry7Q86RdJp4uDyYs2GKc3KKzjtc7+lcx93NDdNwYRhGzqdHhvMDGkckTTiJ9J1Dup7OK3eHPZ8/feTD+7fsdx3j5WzTygVJJCVuD3vuXyk3Xx85TRD2PSKK9z19f2CazM7quoGbw4F937HrfU5EkRguJy5nx5yVouyY5py+neNysWo/zpuj2OPxxMPDkdPpTJgiKpqLHgloxZyRcumBUlvX7MEWOCVFsLbTmYXdWjOSieLMyLvFgY+ifajh7qW3zEIHV3dCzBZvf2ZtQMbLKcUMGGvcNs+yIrTFO7smwGuGsPaszyxCys5WavilCFMLfpG5F628pCmRSpU2SqPO761muiHEtRJ527ZU11vtuyC2UE/U4riKHaBG92XjC0JfASEFISycSQhxxXDYGELJ02vakXVWoRrRtcivzKOUAEOKC7+QC4utCJUdeIG/2UKwAJEsF2kRXraJ7ZqIbzEDNWKtv8zxgCzEtsB0Us1Jx43Y9b6DXGrMcGkeG5nfm138VRfCrMyqpkK6JRPbGTNLQQl2SbRCGqXfcglf0grn2trkbX/WErafK3ykCl4q5KM2z8K9V5s3P6NXnFVqWFzeWcOj8TBShpkPYSGQ9Vhzz9Ultu8XWGgziK3fL5KA5ZvOBGdGXPOq8ztCCbmSau4zt445QuXjzQPkf1PWJIBDRVA8SgeuJ7lbotwQZU+k5+bVPYMb6cMJla85v/FIChOo5Q/2nUdch9NEnEbGy4Xz8ZHxcsQx4UjsOqXrHL3vOOw879/e8+7Na+5uD3TeMV4Gi7GXQhzh0O94fQv3txOn8UKKHuf27A53SHdAxkB0PXR7bm5uuNnvuLvZcegc03AiTM4uaUqz1OhsK2yszhlRc4JiqtUwTpxOF86nC8M4su884kA1h0wV5oxCcEtqqYWQJrJavsFzq9RTKGQCa/fV5TOqiWxD+J78wROG2HjmxhZcaVDMQa6yp84EEMwwXcHTig4VeZkZEdjf7Rxzf+R432ITz39rXq9Vk2KOi1YB0jI3kmYBiTndgWihJd/2br5mYqw1qi8xV30XxFaxMAEnxZPTzsl7R9f3K0IouVB0rSbw3uO8xdQmJQeeL8RbZF0KD54Wiw7hKQEr79VSc4wh5z1d6/nrQ/Per7JTOedXYwJzAHY5TMlu/k/UQ1KX8pOsLmkldFbIdJGyEiXnm9m33OJBW0kvKY/bOZdz1WaVUbIi3HO/lLqjWbsQtQxs1VoqzkaqqAXVOtyBRWVeE8X8zktZ7nq/6zNqfwwCFmKbYiGO5pDFCiEpKTITE8HS8smMQRbEIKIIHqWoe23+BckrSgwpc/4R7/oc0VE4cT+Pu+xOJtq6nKvdBduYZXsdBVHHWFSataT71Ca/chIrTGsSwFMSUxQGaK7IlKVal/fDd55So9b2NhKCguvodj1JdkzJE6VD/C3u5i2BPWPyHIcESbiEyBAGxssDw/kr0+VCGge8BCuZJx0Slf/8N3/DeDnlGNrAbW8l6TQlwnBiR8dut+f9m1f89V//1xwOHRoDeNjtdlXiCA8q7Luet3c9f/arjuP5P5NiwnnH4fUrLuxzmskDB+853Ox58/qWz29f8/jT33P8+hPHrz9z/PILOg6ZKejM1jvbey1dYQqJIJGkCU/HMEQeHi/8/MsDn96/tbK6Aioxq3yVhfUpbFs+6wy/ieZezHesnKk5ZeVTRTJzVy5UgVGD05hNE0/VpQuukVkiLhWC6nta/ifzXC2hhFXPMnxXcF65q6l4qatx/DGZead4dtt73fx8CIEYp4qAGaMTU7LSqTFZrTWBznnLbpLxSrfrceT+UzTHtM5bxTbnK/pvEvk4jpXULfM+lLkMwzDPsaQVLmFjwPzZPwvJVlhX2akdRBY3e1tIn4nvVhqvdV5axXfLhrU6/ELkinTU1iK9pr4t5eIsfnWhWYu0Kbm/4pxlwGf9LfNb0oqZfWbLY7aeSxkfWOXDree5nq8CzhKwk0uH1c9kArmwJBshAQ1R1rTEUM4cUf29VlmlyjNV/+3fRXsBzAR/QZLrfd/ak2uu/i0SWZyTqr8xglkSN6xMEoBx5jDr3espqEknzpsUoWAmyrVKYWHYqGFJ5j6uzbnsSqtRWbb6Wpq79dYv09EZERaYtFV6ZtZjwfmk1EjcIhRhepGijbtwvUP8Dun3qBxIqSNJR3QHUvScp8h5DHx5HHg4/pHLZeRyGRiHC16g90roEtN54HI+EsYLcRiJU46x1YQXwTuxvMU5tvbm5pYPH97y468+c9j1eA8iMQufCdXlbhizleic8PZuz7u7PSEqcYicz2cuQJSO/nDD/es33N3s2XfCZZx4eHzk4eErx8dHwjjkECdjNBORJBEvO3xvKSCl6CwVJHmGYeJ4PPP4cObTu7dZ87Ooopn1SstZLnfSzXtezm3dyr/dDBM1LNRq2qLVaa/Sc+aYLc3RljBgvx27XbfCreZwtjBvC0GzmuAhFPxeCyC1Fs849hmniLfyis6Dz85N3tFlYStMIWfMy/vmFe87y07mzGG2JDoKYVrvua7vXJFmVZX9fv8kjLQkOfHez/j4mgRc2ndBbAuB2nLwqTmwmvjWz1zzjJ0ltIYobUk/W4WKtwhu/fkCGIZ86+/rcnVtXdynwJvXsCHWbRHSbeLarh2YiaxknFkkOfvOCKT9XRDurBivEO38jjhDumXfdH5wUSXnrpWnF3vut5bAZT3e87zhVn9PiWV7caqnZ5haznbZS9W1Z2NbZrGWgNd9rkcpyKPmlstrjYw/v7OlzvoWp1zPYXnH+pXqbOehJNVKYupMV1DvRWHCrPyjOCl5Fpa3JSND15Fch9IT1TElYVKYNHKJZx7OEw+nkZ9/OfGHf/iZcZwIU2S8nAnTQJoGUhiYLkem84k4DsRxYO9dNgcL3mfTTyYazgmv7m559+4tHz9+YLfr8X5huGMMMGu0/LxaJ7Db9dzd3nCclCFNjCGiEvHdjv6w59XrO252PRJHzsczj4+PPB6PnC8XYipl83IOXsHuRIaRruvQFDNBNkeoy2XgeDzx8PC44JxMXCXDQyqFB6Tcm4ohfsHZr+FvcdQs6y6488mbL8ApLd7cIrrlHnnfzVrHgqs1ZXYi8xPWh/2YI2Cd8KLVGJbwL2+w2+DtRRL3uOzolNJSkW2WTqXYlMvYJfFMenZd9foL3qiJcP19Lfxda98HsZWnoRwt8iyHNwyDvSJFgvSz2nadlGGd6aRuay5Lqs2/Ltk+Ba713/XvVtqsczFvhSrZ2t2cl7Xtv92LLSagXRdZjVz6RMQC6qW6jOIwm66pJWfZvBBYMVXUvHKBRYW5RtQLCVmh5I05Vuubp7b4SwpP97zdg3bNLSOz9Vzd6jNvL9nWOX6LkavnWMPrNYn8W0T1JSqp59rT+UomVPlMZCG281EUPwSWX84t+WbXzFCRzzzqepL0JDwhOcYIQ0hcwsjD5cJPX0/88nDiH376yv/3t39PmEytR8pxs8niasN0Jg0X0jSiYWR/e8DopOA9oDn3MUrfd9zfv+LDh/d8+Pievu+QXLt6dtRh8c1wuUK74Oi94+72wN2kDMlxPkW8Kl3vrcLQ3Q29E4bjhcfjka8PX3l8PDJcLqCw77JZSySrMT2SCW7XdabOTQ5J9swwXHh8fOTh4WFR31IkziLXrpm3LVjYgoktPNTC/9Z9sPN8GfNeE5qW6NZ9G6ws+KUlPnMe7Ty+SbtLyFDpY02vTDW/3+8qc01aZQMs46vqTAemaVrhSVWdMwXCoh1dGJNtvLF1t7fC7mrm4rn2fRBb1kiz/BtYHV4IgePxOBPWIr6XlIRrxKjEkoe0AayWsLcl88pz11obQrQFrCmlJ+O0qm+RJWa3xMm1/bXIW1XnUoFbe7j8LkDjFrrZzPMaodp65p+C/J9rq7NpJNvnxl0uqKPWdGz1fe37a/1uza0dt5zJFudbn3Nr878GL/WYdX/X1tSu7dtNGlZGFn+UXA5PMjNVCPJCaI0Qq0KqVM+JjiAHIj0heS4BLpMyBmWYHI+ngYfHM1+/Hvn69THbNc2ZyAMeD8lD8MQJdOcg9pD2JiEm4w5SHBnHE6ITfef58P4tv/nxV/zw+SPv3r7B+4y8Vwi+qE6jnYma81aKA7f7He/vPd3uBulHjqmnO9xyeH1H3wnj+cTXrz/zhz/8Hf/w00+cj0eYAoeuY3dzs8BJAuk8LkvVZoqKoMu9H4aRkz9lYhtNRe80O/1kFrcoPtSksFrb8pK2xbxdY/TK3pR/v3SMtp+2/5QM9muzX2FAivSpaZGyY4wZf5va17RBa/yvqiCatSrb1Xxq3FiIaCF6be3x+nfXGRzXlYrqvagFuFKmtTy3NleSJepvZ+X6Pohthby2SogVAtl1HW/fvp03sRDcNnVged93TxMfbP0s01hLKlsE5xoQt8/X79WcT0EGZd4zQFaA1hLpGoBrIt4S5fX4i/TZzqddXxmzDr8qf7fagRbZP0c4tlorEZaxIasA01PEsfV3/Vmt+m2JmojMtvn6u7LetiRXffm2stu0/dStdbprz7Ce01b+5LZd29OtvftWK2rNDCEsBSk0E90M40XVLBn1eY/FP5tTixZbGo7od9C/Rl1PTEJIkdQJOLNn71LPXfQm+UrPrt/jnNB7z75zeAI6jYTxzPlBuJwjYQzEUQlxyBJQJIQLw3ji9tDx6vUtv/3dj3z+4SOvXt1hBR4CmkNUpEjrkvNLaXYIQkhqzmq973h10+P6Per37CaHdj3OKXE48vjlZ7788jMPX74ynEcUwXc7un2HdD1x9opVPEUaUwtHooxrYT7eL9q3fCvn+1kXAvvHsLLfuhtbd1SErGbffvYaQWufaaVKUEIYiTFg0SQmaZqKv5vvW4yJFBdm0vvOmLi0llxjNBvzOI7EMD1hWst8WloAy50oNtVyr9cMgMz4cSvstIxTF7Ap/QGzg1R91791F78PYsuCgNpJ17lm52ocmevYzP5RtVLtZYt4Pyfl1c9ckyzafq55JxfiWnN9dT/ze8Isd7TId4s4bM1tfUHqz54S29LvNQLcEpj6sy2g357D00vafl4D67cQTj1OvY/tmO06r/WzxVBdG29rbVtEeIvYt1qOs5AAACAASURBVO9v7fv8e2P/rhH3lzI4gmRpq7B0xYN5kQIL4YUqbrzsDVDCVYyEdIjrwO2tuID0pAhRRqIoAQhAEgvj8V3Pfr9n6M/Zax1EIylOpDAQxwtxupCCldBLcSTGAXUCKZJ0wjnlcNhx//oVHz984PXr1+z7zoipRkpihcXLHNAc/kGy9duq6ERJXrhxjkkdQWBCSXFkGKdcM/dMjMHiZnd7OlHzcu06y3Kl0VTbWRVpFDcXvMi76pyj7w8WSnRzg5TNFPu9De/Pn+lzmp5VL81dvsZkP6e5eo6xbMds4b84iZpncp1sCHNWwmecLjOxXdl6K/ypaanatoWjymetxFl/V6TPpY+sSagEmHYdhZFfqcMrwaDeg2sMc92+C2K7cBtPC70XTqI2ehei29rc1psidP26rFWbMu8aIrx2oPX39dxbNXTpq5YKC7Gt9forqUyfEvK6vxqQWpXFsxdBF7tcAa75+UbCKnYMij2pItQLQ+Tn75d+axWQzmMVaQlktkvZGvI8XJEgzXGhhLzU7RoAt9x1fdmuvVszODVs1US/dZCqv6+R0hbsbDEuW2daf1+/N/fd9FmP087hGrO52oeiQJ4db5b4U5Ulx3BStaQKKiB+Vt2pWpRXUCO0TnqQHvwN0t+BdESUSWBMgTFEpikxTJExmrbC5p2IuUTdEAbCeCSNZ+JwZro8EqYLmiY0BSO2CcuBrIHDvufN/Ss+fHjLp4/veX13a9EeISDkzEG6SG95RXOFLsnpHR1Cikpn6YO4xXMJAULgMk4MxzPD6ZEwDXgvHG5vcGln0cOdzzJ9sH4ojIh56Rt+MZWAYrD06u6Gt2/f8Pbt2zU8ZoLb/tP4nO373BKSrXYN5p7DEc8R1Foj06ZF3GJ062eLBFm+S9Ue+blCkJtxRQkFWs0tsWgtVuuaR131XaTYZc8SJXrEpNkFB9Xv1Her2HdLP7WQtLXH7V5fa98FsYXnJ1qrEKZpIqW0QpR1HzURXmjKAhTtpl2TDktfW8B9DWnW39XEvRCC2pY3TdOqvN80TnP86pZEVV+M169fbzIm22uq+hQgxzPPI8zsNmuGITuaFM9a40g9JQbEpAmqPTZUUQ9dCPLsKaoLEVYFYo4JdIYdnVtL99f2uN7TrdZyps8hqJZotqEO1/fVWstNbxFZWPwK2jHrsa+t90/hnreaat74ZC5oiYg5xkXQQBLLXKRScmkLSASvgCMmISUhqSCyQ/wB193g9q+46J5zFI5T5PECp3NgGEYul5Hj8cTlfGEaBsI0kmIgjBfCcOby8Avj6YE0XSBc6JjovNB5wXeOSzBnKOeF3c0NP3x+z4+fP5qd9s1rnFOTatNESes4x5ZmqZYicTrr0zkH6himERGlQ7jtPedOGYcL0/HC+euJ6XxGUuDmsEezh7GmiMZIVEXFI14QFTROKybYO9MipMzMffj4kV//8Inf/ObXOTRoYWALU7CcO4tHv51cxfSu8cBW2xISSqtt2S2lv8Ys1t9tfd8SwHVugSIIKSmF7BxW+sh4o+AOLbhiIdKzACY5R4CsJc6YawrHuFaL1/NJKVjoo1ucOmOMjOPFYrF1MZcVYa8m3EXKLjSnrLHMr+/7FdP+z8JBStWqZNRSIKwXVp6r39lyfFnUrXbx6o2rJZ8WWJ5T1T2H7FpCWF+81gW99NHa9kIIVsar7zfn0K6xbdekKQPKNAPxipNtiFmZBywcX508pDzT2nLX+/bUq68QmUJk7bv1eooaJ6UaEW0jjfrzLdX91hkX70RgdqBobdSlj9aBrR6z7b+opspPmdOWl3NbV7iF5XrOvuuefF6vv+77GrO4It4qOcVdMsTmsvMQEYioBCO2qiRRcFbnRqPmsAlLOhPxOOlxfg/dAeluuQQ4TZHTFLlMiTEkpqBMQYlzsneh8w6vud4tiZ0H6YSU1dWSBCGiIRJI7HqTHbvO8/r1DT/+8JEfPn/iw9s39J0nxamIPRk+dbaVFphKySRbL31WaTpSUEt+4cA5z753HLxy1EAKZ8JwtIxWMVnKUbVqPjFG4jTOlXtEF6dNch5mG9vNmgTvHa9e3fH27RvevX2Lkwk0ZnN5hi1MCiYzw7Vkq1r+9xTPtO05rUn7U1S3LczD9aiQFseUv1u/hhoHbTGoc/+1VkwL07rM3+6LWgKRTel4eb/gp9oMuTWfcnenaVrdx67r2O12s823lo699yu1dhmrPFvo00scFb8LYgsLooeFC2ultvJZCyBbCEkR0rTepHZDagBux6wJTNt3i6Bb1UXr/bYl+bRzKk4U7XrrcUtrpaTnONqaINWEc96nah21wb84ABQ1Uk1Eajt6PeZzhOG5dV0jQnV7KaKpW9nbVr28Nff28/oC1zDSErhrkuxL57iFzNr+W9jZ2q8WHp98l0yqE8VSdOYcvMyhJ2rEq5zl7H0MSRwqHSJ7xO9RtyNJT0yOYYpcQmKYlDEqIRpxCjHmcnT2oyGgcSKFkRgsttYREEngcg7eOKEaEUkc7g4cdh03N3vev3/Lp08feHP/ipvDzqRDNbUw4tAYFz9rVVKsVYPrs7VwuJT9qSOigU4ivUR6SXSS2DlBfd73yrPYIpbibN5OqqRsxZ7hI//DOUu4cHNzw+Fwg+88TuNMPNElzrb8m+IhXuOeLeapwh81M3cNtrbgtW7PwW4d6dH6yLTv2nPls+07LdIyiUW8t/WX7lp8Vn7XWs6agMLa6fQaoW9DRFviXNbcfr+FG/6UfYTvhtiu9eewTLyVNGqCce3gnXOkmIhxenbM58rqwVNg3SI2tUS4hcCLKgIWgtp13axCLgDQV8HydavXuuUQ1oaf1PMAiykre1vUIVvcbr2OwrEX4uucY7fbzWnJaim3rLcAaH35C9e3xWy0e11foPq7mputf8petkyH937TFnNNSq0vWzvXWrNSGJBra77G2W5JudeIdXmuhstrUkPppyWyNRM3j5PAabegP02mRpa0IEeRnHrQoa4jiSeqR3GI2+G6G3x/D+4WpWNUz+k8cYzKJRqhjRGmAFMwWAvTwHg5Mw0XkxiHM5fTA5fTV6bjL+w78JhNNo5niCNOFL9zvHt7Z5Lsh/f86lefuT0csv02kaKFAPXZDjfpYItUzbm+TSUuIogz+7RlDAqQoO9KWtJIHI+4lNh3yuubjmHc0++U8xg5niMxLXcvpcyQxnwvMBOJAKiF7wmeztm98x7ubu/Y73ecTmfu7yw0RUiWQCqZ1iBqnL2U7cgWPw50TTDqe1HfjXUR+6f23QWHFOegbdhp236/f5ZRXPBRq5ZetFjl+yWLldImASqhZgsvUnBSzE5v63tS8FoN67vd7smdrBnlGo8VXFecbYtgUeZUZxRsiXF5d+tuPte+E2K7ILxawtzyQKvbFvJakOj2SO2z8ww2xmgRVwGuLY5pa05dZyncynuFOLSIue97wjitEHk9fk2EnFuCtlsituVRl1JYXcrnJMcyR++91fGsWpl7Acjdbreab8uAFGKramqbdr/rfa/7uCa91RerVV3V77Vn8BwiudauMQP1Htecc9v3tUt3jdFon9nv908+uzbHFpbK5yvmxzmstJuF/5AlD0UQMZUqYgQI57G8zaVyzw5cj8gO2KH0Fl+rnphVwEkjYQqcThcup6PZPy8XxvOZ8XwiDCems1Xumc6PxOGEJ9AhkCZSuBCmM69vD9y/vuPDp/f85V/+OfevX3N3e8urV6+MQIUJDYEUAymMDMHkp1Iovj4HC9vMxEDMOUtweKxgQFHfOgev9p1lWhNL0TiFETnsuH/ziuN55OF4gfPAFJWdai5cnwx5arT5pIAm6HtP54TeKzd7z26/Z7fbsd/v6XcdKU5WMcsOp0poIZTUMOUTq6u7xgHtfbnGcJfWMrn23lP8Uj9bt9rJs+6zvWM2xpPXZ+K6fnZ9V2cY3rhH5kH/vCTZ+lm0+1MzBeXffWWya/FHu9aWCW/39aXtOyG2T9UFbWul2VoS2XquBZstpFsDca2egLVrdysp1eO3RKH9u/Td2p5rrslUTnaxWsl2y0bRcm/XJFtVRfGopqXCjz7d63reXbcUdZgLQ5ToSmffSbaHz5q7rM5jdv6wWM3iEKW1N3K1tqwxA8GSridDfi1iaZFBS/i2iG19SbakzhZurpkR6n2qGa06JGALFlo4bu32z83l2ly35lwjw+t3yAgtOEoKXc2ngngLsSGr+MSjeMsOJT24Hbg9uB3JdUQ8MVlaxiHBFCLTMDGerTrP+XhkGi7EcSBcToTLiWk4MV2OhMvRJNgw4nIi/uJ93Dl4/fqWj5/e87vf/IZPHz9y2PX0fWdq3xhMIs8EEpVcci1laiuZXFWIv5LawbIYeSO3GUrFqur0AtKhCF92Z77IBVIgxYlpnKzObQgkzTHuWiyz0dy0Z6mtVJoBs1W77GiYi3TkO5jUVPby5NyzhoHlPGp1bA0/NQFo4a9818Kj5E3Z+r79d/35Fo59ik/zukvwsLb9rOfvfUk2UY2hOp+ZkxxxIoX9qELSyljzWqGooEVqPFH+DUWSLs+Wfdjau639Luu+ticvad8tsX1Okn1OZJ/fZznvLWApv7eArvTTAlVRRXyLm9mSfLekzrqfUjGnPvz2ufLvrnGg2SK28zr8wv3W89pac+m7lsLrdwviKmnXWp58JrX5j7TcCLbiCtv35zqVPM1VfY3gPgcLL23PSdz1361UcY3YbhHTPwVmrhHXawzCFmMwz2uOLjWbrZVvK58VCbcwAjnLEp0xadLPhFbdDpWOkBxTgjEmhgDDODJeBobzmeF8YjifCOOAjgNhOBNGk2zDcCaNlzlFo7hgZdKSOQ3d7Hve3L/mw/v3fP78kbvbWzpnCDZFs/ca95YsYagIktciNUEq+5Cj2ArMGuJ2hsQxW7QoSEp4B/SOqHDoPZ3AmCLTODBmQhtzrdZCbEVjDveJ5m2rixo7IaQc1hZTrjwjlmWpML1ku/M8bVhqTc9nWGOxNQz8Y+H+2r3/p7S1ZFsueiuFMjP6JQ1oO6ySZuey+Tkhn2+bx7vGi8sYC1Gun122dBnzqRNV+/cy9zWxrRncl9zt0r4LYmucjn/CpW9JN6VdQ5C1xKO6IMOaKG2923qylT5aybF2ZPrWPOq/a8TYEnuzA63th21bS5/dk8/W617G6Pe7FbOw1eeWqqV2fX8ihTdOCs/1Wc/v2uc1d5zyhaxzkG7tQb3e0q7Zo9u29W7bTzvucxezPrdvSa31ObTfScZIrQ/Atb7md55pWkI9FKDULo4mic12tcwsiSPhSFjWJ+324A/QHcDvCewYVLhE5TJGLmPgy8Mj58uZy+XEeD4ShzNpHIjZThsuR8LlRBqOeAJOIuoSGgaCBrxT9p3jw8e3/PjjD/z4q898+PAWNBKDZSNK0cLMPFmIdY5OnJVV86xZv7IfhqXnakVW79VUyl4cLp/DGCf7DM/Owb7z7DrHeRy5nE6EuNgI+66DGEjThThFk+DDaHqcLJnFqIgKMU9jGAbGYURfWWRAkWyLVKs0d6iIY+W8dW3Geo7JrLU51+BFNc+juR/XYKv2i2jv9uLNX/AszOk+s2v1IqUv0mRptfq3vnNzaVOXcy4D5CQYNbOxNd+ttvV5yVNd79u1tkWDWqHsJQT3OyG2zPa9rQ2tgag4Fm0t7on3cqO6aJ/bGqNFprXKdkvKbOfaOlGV1kqWfd+vOCXvnXHeWeVcWgkvqefYzqmM30o13yI6bR8l9qxcpLLX9bg1E1LGqSX3JfTKzWf6nFt8S8jqYgwvuQClj3ot7XpbW3Dbd/1s7RXffndt/u1z1+bdMjH189/SmDx3vtfGWr5LWRtR3kksZc8KsRWSWHiPug78DmEP7gbc3mrVquMcAqdx4nSZOJ8HHh+/EMYRjYEeBUlMBFIcSJcj6XyE8QxhwEtEk2WHCuOJpJH93YH37+75V3/+X/HrX//I/ZtXdDmGtbj2qhMjTqqz6kSlyt2siorLyD5rX1zZK52JV1Jlmga032UThqVvZBxQ5xE6bvcd7+5v6fY33Eye2+AYIlaSL0aGx69c0kQcFeJEDoiai3xYqIqpuq2UmzkaWmm3RF02e5ZiZfXBEw1QOc/y+1vM+BZs1M6Ac73iJ3CyvN/2ufV9HT5XL6rExOabvHnvSvy+xeCb5mWudmSjP1nPc/P6U6X8uosWR13bj/bfZV7PMe51+y6ILbKk09o6/OeQytLFImHY4i0Mof7+ud/teO0B1xLqNS/mrTivGqjX3NsiZadkKcnUrdXVW3O/xrm2l7B8F0N4ok6vAb+9kPWYrQT9Lamune9L2zwH+baK/sk7bF+Oev9bqXNr7e0an4PBLSbwGjIsn7cOZO2z8zsiMyZ4bk+vwcLWmhYZqnyeihUs2y5dDvVxKB6kA+mM6OJJ6ohZdXyZLNPSeRy5jJaoghRxGulIRE1IChBG0nhBpwENIxJHkgY0jqZG1sR+1/P61R3v37/j06eP3L95zWG/sxkLuTxkZuLA7khW3WY5CScOspp2JTkVgb7Y6ihe9gnvoknIhYDndI5OlMOu4/WrO7RPpLMyDhDUVMEpJaYwMU0jYRrRFCnXVGfcU+2xKuMwME3jfAq1WrOoS634APMa5mfmcJhv59K+Roy2YLZtW/Bef35NQt7GyfoE7ja5B1oGcmEGV/3nc6zn+Bwze22ca2t7SR/X7l6N/17SvgtiWxD7FodRS1qbyKnqo3jAmtt2QsJ11d9WHy2i3CIsW0i3lvquPVuvpw3hSWmp/FE/d20eL2E+5r5XgL9eC2KoTNUQcUzJQF4EcW4uON/OSVmIh6l73Fri3Tibl1z6+vtrzzz3/Zb01z7XftaqntuA+G+1LYL7Lcmjne81BPqSVmtQ6rk8GbsUHgBmU6AI5t3m8o8RWnE9kmNpE46QhEmVyzRxHuznMk4M02hZzzRBikiKECZ0MkIbxzMpE1uNExoG0AAa6L3w+vXdXJP2/Yd33N3d4pyQwoQVQy+OeQ4vZm9ORIJThKwJEmexrhmGZzstRRDWGd9rqlICumLNLgTNtmC/63nl9kSfOIcRN5o9NoSJcRxMLTwOTNOAi4Gd75bEHOUMNeaxIpdh4HIZZnttmZ952QrIgnNK9O+iEV8kyBaG/xQ8sL4Tti+tMLH97PPJGjbH1uU7k26L5K5ATZS2YF9m9e6CaxZnqDL/ZfzlfJfhG5zAWopdr/OpxLx1B7eEiS1B41v397sgtt557u/vV8S2RoatR+5We0pslX7XbW7E1saVMeufejPL33WihzpHc91qaaYOoi65kVV19k4WMfvkcL7MEu2WVNseeM2EbCFrI6BZus3/FkC2+sl2pJRKxZeGCck/MZ9DiVer96+olGqCHPOYrnHoSpmor/YK5kwx/6Vbzai1zFA9L1j2uXV+mveiIqh1LF7drjFtdf91ApMtpq9u1whoe+41Aq2fd6KIN+/xpJodxx2qpv5Mag5RUTocPdLfon6Pys5q1CZliBPHIfB4HrmMgWEKhBRxmixZxXDm+PUXTo9fGE6PDMcHwukIwSRZ0kCYLniJ9J3j3bt3/P73v+XzD5/44YfP3N/d5XSgyVSLIVe6QsF5fC6f5gsTmGQ2u8TiQiHM6Q5Fsk+85mQzWZ282+2KWIlD8Tl2XMU8sIUO9gcmCfhjIMTI5XLmeBo4ny8MlzPTOJDChCPDsSoxLYXPU44FHoaBh4cHHu9uGMcx25wzs00mPW7xoM4RuDNxkKwa/5bW5BqR2MZz1/1WtmC21Xa1z221NbGMqJIjG8BxTXt1XVqdYdZmX71imomS/3prbmtRIxNeBZGnSUBawlnj3tVMN5jklzDK3wWx7TrP2/fv7IAaw7Xqkkxgk2OvWrETGhGEe17N3+U8909UGkaABO/8irDPyNYtl9oVz15dYlLrAyrEtBDku7s7DofDnAyi/q4uem8wsyBxhyy1Ro0NtfGzxDlcBmZVYMrcMmbvVMH2MF/hRKl8QrZtLeAa01IDNKZE51wOXdD5MwrzAWhJWwZL7dCK2Ma8thAjmpKFCeXx5vcycX962TXb4PIhaeFqC+dq+yDF9d90hPZMAisunczBquie8gkvhBN8kcQLwQV8NTdDChZOoqqWFKF0lRaPbHGCl3Uijy0zQfm7ZopqBq5m7vI24Ds3/13mlag4+VW1ngI3FZefCzrYvkvO1ATOm/eu5tquqp6ouagAHcKeKDvc7hb1O6J6pqBcYuI8Ji6XYCXwJot3dTFAHEnThcv5Kw9f/sjp4RfzSB7OSDgjGnAacUSEgHOw33V8+PCG3/3u13z69JG3794YsxdHnINd78HtZgcpsiTm8vmr9xV8g/jZSyqfTz7L+fxjDiV2dPsdKZoa24tYWTxxpCRMKoSkeKfc7Ds+vLvnEoUQTW3tRPHphkEDURIyMTOmguA6b7CX9zgkGMfINEViUhLeiK1k+2lRH2ciS2FOJRcRyiF0BWnJLCHmO6B1kpctIlZLwyUnsRDjtn1yi5hf09asGVabj4ilBRVcvpu5EhILTG416yNl2Kyl9Yz/MaczV6TkjCIKrkIhajKTQtmhgj8EnC47KTNiXZsCDWyyxsQv+EHEQWVLniVnu5iZwVvv9bX2XRDbuYkg3lSbKQdpOgFfqZjDNK0Q1rIpGZHN5feKe3lG3EXSK1wj5WLmOFjvF+muEBItKiaLC3PeE3PMqnelfNQCRFbn0ohNipHbm1v2+wP9rp9j7kyNFRaE7wwYu4oI5JosFGxbPs+fsM/OVYWwpiK1iiDe5ThC45DjbJ/TmeEosJEMYnOdT4sFnAE4WSq6wghETcSSK3lmRvK+5z2IoVQ2ssTjdiZlt8nzLxek5uDzd1LOKMffwXwG5eIV5Fm4dEizajCmiCZwPtvyjAItc2VRjzPPba1maomfc2UccsiGTdjln5UKOp/Dohkoa1Q63y37Ve2LVGOSCYRfjn45O4QkC9OCYKHOTozRqJCAU4t7MaRjiK+TiM8IOqgjqWSvY/M8jrIjsGdih3cH1O0YIpxC4DwGLmNgHANxNEJLDEiYGIcjw/krp8efOR5/YrgciWFAdQSZLI5WLemDc4mbmwNv377mh88fefv2ntvbA50XpmhpGgXQJMv9zHtkMK6zBlwLc1Hq11aq4AaprBwnvRNEHU6zlDnzZOYhLJkY9t5zc/B4iXiX8GL5jyGX+ux3eGcJPTKHR4iRzll4ket3jGNg9I7LEDldBva7G3yuH+wEVGNmEMtdMthUJKfUzIy0mGQ4a+AoGq1kBFuK9V0byY+Z6SLvHRrz2IU5K1BW4N/uMzZ0vivzlxVcF4ZuYQdSjHkfFzMVc5jZfAPnvgtfXe5AyiFRNV6IyfbH4SCHbWXtO2XVy31yGSLSSrhSHBZgvmYkRHI+l1KYpdAQFvqQUUjZTmonrsL8rPb8mfZdENukymm4AND7bpYCSxqy3S57D0aYTlOuBiFzhqbaS7YmvCWcqDhWRK1skkVabFS9kA8+xjnmE3I2F++ImZi2zlB2kdcSed/3dL7LXJlDvKfzkFLfIPWEdx7f5RqQmUiCAZV0PhM9yzm77ztDsgaNTMlCI5xAt9vhs/opqpr0Wrh+xWxVhX5VUq5JrmkmxsKacIcYGS/DXJxAROi8n5kbWJcR3MpstKWyL9855wgpMKVASku4kX1vDm+pYlYKowMwTYFxHAlhQpVcsNrjXCkcbVwzDee8pa5tnd+21Hb5H1biLa3LN9ZhUXXoVO3pPfe1Gt4urQO6VJLglwIAdsktm7ECHlxWrTljtmbtBRbGklElmpylKBRlJ8kq/iRlUtOCJOcJsmOSAwN7Bt3h5Qal5xIDD8PE5RIZx8A0TMRxMi/cENBw5vL4M8eHn3n8+hOPjz+hcUI04r0CVpUnpQl04nbX8ebdK3788RO//d2P3L++o+8dKU1W3SUzx3Ea8fN9zurvTHxm0iFrbYAx3m01qyKxmKZLVJCU6MQYccnMx8LAmJOUI9F5YaeOFM5ovICOeCIpjsYcdzv6Xc/5csZkL+UyjRz6HbvO413P6eELfddxHia+fj1yf7cnihF0TyJpIIQxO3xZ7VuXtSUxBbNFO8F5R+frjFFFpldUrDKSSYbNfUOyw9bihQ7gxM/MuMriGTxvZpKZ8HS+yg1eebCXzZ3vhyoxBLzzizbQi2mdVvemPG4ZveZsVinNmrP53uWxY4hoR069aUuXDL9G1F0WZjBcn2+TZslz0T4WzViCGM2M4CTD2sJ8z3tYhJj5Zi1wVT8s1F9cb98HsU2J4/GIqs52sDBNxGBErYTJpJRw5WJl+01b27bVu7cOMOVzEclESWZi2xIDSWtiIN6ZhJftlltF7GvkXKrLrFTGT9Qx9nO6HA3RuoV4QVaNp8X2TMpUVclB9Yk0LdV5whRmdU5CFwCt1t0yGkVD4PqGCSjcL+DFzblHiyq4MDptAozaRlo+26pBvJqL98RkdsDE2l5axqzDZurzLmFKJSNN35f9Kmout1IH1bbjdh5btqzrgBtMjb9SfVkz9fbTYhT1z9NwA8UDB/FoNJW4/ThCgoiSsrpcZcJ58L0QdJrXbnqtjjmJRfS4OODiGZ8GRCOD7AiyJ8iBk7zipDvOqUOnjil2HCflch65DIHTaSCOEykEk+xjII0DYTgxnL/w+MsfGYcHREcOO2G8WE7ycRqQNOBF6T10u56/+jd/wa8+f+TTh/f89re/5v7VXc4trPP5lf3adf1scpnz2Oa7McOgLvvbOii23xcUnKJ5EIs4OtcZMXJWfSiqM0KTmZTeMf/svKB9x2G3Y9KRGAJTMOa31DICGCeDieQ9SscwJk6XidP5wuFwi8YzIQxY8fnRfhf9RSownCNLfUkAASUdZWE4U7rO0C7/XmCyrBkghKK1eRobXpvstlI11uM8GQ/3tE9Z34tyX+uzLvC/Mt+JmJc5gvc9zdX3RgAAIABJREFUFL2GMmcOq98XWcrkOZWsHlrf7epy0jlmTdTGEuept8xbeV+rvS+aiW+174LYxhT5+vgVVaVzZkifppEYTF3Y933eYKWrHEscFYDNBFRmbphCbFm4q1pd0OXntojPon6xt0xFnQElExJfA5bIrGYpXKObCYkzCde5+WClUik6EWKYMGbOCE/hlpwTuq6fOcAYE31f/m0B5VYwwKZgRC1Lgqo431fcGIsqNdupvfez05SkNFdMKc4pZZ5IDl7XSuWTOdGigi77rHnPRY3Y73a7hcgWZqY4Y81jQYjBpNPqTMS5GZVJZujFCq/m9YAXj/NCyhmHXCkRl6VhLx5xPqeAK+r+RJSsEagYouoYKwK6KJIWJIKVXKO5h7rYtBc1+MKEzbDYEmgRJGdH6qlT2UFIzogumjUeCZVgxHbniGnM+16YpA5VQZOg0SNpT6e3dAQjbH5PkB2j7vFpRxqEMAIxEcfIMIycL4FhnBjHS67YE5A5haHlQD49fOH08JVxsMLvKUy4XPc1jCNpOrO/PXB/e8unD2/57/7tv+XTh/e8ef2KD+/fsd/3Jl2mSIhhTvqgKXF3c2tpEqeRYbB9Lg6QM/OtWWuVVbuFGBcmOxWbZgXTYRrxXui9o/emSUJMexBUGCIMqec0QTqNHA4H9udAiKa7POwPxggV3wTVGYcUXCaazQHOyjkOl4HT6czN3R277oAwITqCDrNq3OKKPSW7l4hkptMk4ZaBKEVCSqtLlLaMb01wtohnTfC2BJMFRK+/u/V9S0zLuZSzrAWb8n4b4pSy+cjMNmWMvBd+kSktEUb1HQuOXXBPuYBC7zqzOGirESjrIt/RgsvyHaVmJoTFzPRUMm7bd0FsU0pchosR08x9TdM0e/0W5JRSImX7LaoLDamArNhwyQdlwmmW0iSb60VmwlaTVEO4xXbaAKZkj7oNz9a6rWx4jZq6BdyF2DpDZrJUoajHqPMqxxhXpaTKZ6XPNgez73czqWjnvTiTrQtBtPHONWc4X/oU8tp8tj0XKK0ub97TXfYkrefVcqWmwg2EuNjki8Q7Oz4UGJidZiCV/SoDSnEuWZ53PucGdnn9qvZQrOaQPUTRol58ShDLfS0wk7RoJhY4SIXrJsOaqy9lOYg81Uol5RBDqqq5VmqGWRVTmanM+Z+M2HrEQ9ebc0+xtZuk7Wdim6KH6Nm5RO8UxJH8nokOl3pOo0OmQNLIFALDaMXfxzEwjYEYJqxCt8XIhunCOJy4nB85Hx8Iw8B0GRiHU3Y6yrZrNWbs0O94//YNf/5nf8a//P3veffmDTeHPa9f3eC9OaOl2fQQZ03Bq9tbxnFkmiaG3ZAZ7Q6fiS2sNTDO+8yoZjiOFbHNpqSYImNFbLv8o2IpjkMSughd6mBMDNpxe3PD/jgyhlwbN5snDKkbkhcnWJlAI65Fq+G7jjQFpmnifBnY7fe8uu3ofULjGZjwkuOJFcJUHNhykh/jLCnMXi1x1pndAM7n83yXCk6on1u0cJ7dbpHyWuL6Lc3Oc4R5dsyrfvTJHZLV7zb65Mn4xrlm4geFw67kBxvLLQJSYjGViSx2Z8kvaNaOFlJd1OtLj2Xoct9m1LJax/JTJVR5pn0XxFbVisejoFmqW7zs1i7aRd1UE1uoEF4+q4QSdLFBgun4vchKqizjF4CcVRGNuzcUuK8kZFj1Ua+nnVfdX0vEipTu3CIt1yqiOmNUuTz1HFtVijhzikmq7A43V4lbqwrfKltV1lfbte39TLhYvKBnD8C8VwlDkIf9fo5rhKwBD3F+1lEupklttbqwzK1Vv5a5PZ3Xcsltb4TUJbwLc3/FrlyqJ3Vdh/Y9slurfVsP+FZCiHGavcRLvGeKS9FyR0YCzhHGVMV2GhGeL6rLcCnm7DTNUouAFtknO8+U55ziXKnpKgvT7hYJyTzPPSoO76HzDpwnuj0RD9ERBgvjOZ0HHo8XHh5NfTyFxBQiGkc0E9t4OXI+feX0+IXTwxceH36x5BXTyHg6Ipq4OezxAr2YU+H7+3v+7De/47/96/+Gf/Hr33Jzszd7aLekVE3OkcoZZhXNod/ROU/wPXvXZ/tlNh313VxMQDFdu8vl9pw48ySPOZxNs/0bU/eNcTJtkc/ZnjLKiKpMEVMjJ4d2QnQH7l+95uFxYBiNUEslyahC53uMYmZGMCwqxb7rGcOFMQaO5wud73lz/4bDwZGmI05inofZ1S/nMdtPLUTJ9x67yus72ZoggGyGWxi4aZrm7FVrc1bPzc3dTIzLMzWMFxwIlm6yxlu1CrgOZTSTyYKXWmLb4sfyfo3XVirk8jsl8yVBqxoHitOSDMTMgYrSuWIKZNFeS06Isgye/8iao2Yf6zmWnxVhrR+a/7E4Qj7XvgtiC2tpyHzfF6S2OEvIDDhkyaO1l6aYZo/hMHv5LQQ3FrWNDTqPbT9iEqY6nLonQJKdETPqa6TTDdtoa49oVSrlGe+9hRdkSa29WDUXeE2yraXp4jEcU2J/c4MJck/7q+2thQjV39frgbWNp+uc+VGQiawT259MeNfu9oC3xATOWE1LUuCM2HSFoGb1XCdPw6q0SDJpWWfZv5abbufsXbci4HWIViG2Xd+z6/vs0bwgtJThrPS1tknluOi8hojOatCoOjMR83oz9+uw/aiJsZcsHWGOJknINqoCbZl7lqJWVKwmbaR4tebTQugpNltNHSnBBetPXE9wyqiOSxT+4THw89cLX48Dj49nTqeRISRiljAlTsRxYBrOnB9+5uvPP3F5/Mr58Svnxy/cdNBJYt9Z6FcaziCwc45PP/6af/MX/4q/+su/5K/+8l9zu99ZPdqQuIzlPiiKqTqLCUgEjo/HFWMrYOrpYEySL4g1E1ZcmGGtFGAv2qwCa4iZZApS1JRdmzQSdQ78oPdWz/cG4fX9HftfHpDH85znOGStm92hzghtDucpZfGSKt53CI4wRb5+eeDheOLNm5u5vJtzOTeAd2iEru+s1HD2j8iqFor0VfsUdN1aS9b3+/lvVZ2JaBtq6L3n7u71DN8tsa39SwpOKK0msuXd8neKiTCFTadVE04rR7S8hhDCiimo7/Ki4UuzcxwJklrUQZySOZGpeT/jNHssG8MquegGYiF6qZRgTJCSaWm0IHN5qgKXzL1qgq5fArkLUZ1NGA2NeK59F8TWDj4akAKSxCTYaAHu02yDNA+2HFiZ340UN/Q552uy3yVetVYvF3umvQtmE8nqIFmAIaWQ1ZFFGnSzDRPsQMkqn1kKafqt7afl+/KsOT44LLg6r606s5o4tlL2lrTVEhkV4/xjXBP58ntL/V3sPlsSYpG2y3shLAEnRkOyN2iW2GrJQ1Oas0yVsJuiYi1q9M45wjSRpoAXN0v4xoHoTLjJF9Zs91KplDPhMiXwrF7y3pOinVuxURekUS647zyd93RdP0sRBpPlvGyVK3VVYTQyw+DFQnNKnHjM8IeYinrf9VXsNNmkAUXj0okjiYJTOzsxqVwVRC1vrMz2OysOZ+EMiVJYwLpzONlhV9uh2s3pFqM6xO9JfkcQz5CEh7NyPA9chsniLzWrslMCjcQ4EqYz43DkcnpgOJuNNoYzwsQ0BkQjO++YAoRpwAscbvf86lef+fzpA/f3r5jCxPEYQU1dnGYkbhjNwmGy5Ooc0zDOTKDLd28OO6uYbAuJkzlcJcu6K7j1zi9JPcQkxRxgY+puNIcSOaLbEZwSkydMi6ZJU2IYBoZxyFWAsjOP8yY1Z42Gdz5XM1rC40IIPBwf+fs//JE3r3f0/g4nIWuFskBQw3A2YY3TZKr1Kpdxe9/rVn9Wa3zqSl4u5xMorRDGFp+UVmorl/FrM9PKmaohtnW/rcq5zKUmtrXGrtzbGadnP3xSrp2cImlKRM2+KmqanjRlwl8TW8z7OuasXiaBB8bBCHnJsfDUxFXkuZaYPnWE3dr/rfZdEFuTMtMsuSDmBp6ihepEV9Rqic7vMvABWXoSMueabSWazMPPO09Jh2YGdAx5a4lNLKrLgqgzeVDNlwV7n4JUmVUU5tjBDAyp/K2a+4/0/T4DXOFO86Tr2DPJBDvFxTogMnNOFNKhpf9EjNkpZJb8KqJXEE+Oc50506ziLarfwhuo2vpK6S/L4vP0jNYAZxctzuEGml39TSPgxM2ZfGZnsYwky+clY3NR6QfJktEUzOFpVqtiXtfV84gQ80UOyUJZFptNCazPKjHvGccJlIzIc9hDTqenLIjbpJJKim4u2oLomPvXDBcOI7bF1GCgk/V6IhYbXSBBdc6uVc7O3ldw4DpvLmGZ2KJFwlXLYiyREghUfJTziCAO7/bY1c6ZodRK4wV1SBehi0TxTDgeB+V8mRimSIjZIUeN0GoMs412PD8yXB4Jw5E4ndFooTBxGixUxuUoR7UEC3c3Bz59/MCbN/fs9x2n0yOD2N1M0ZArkvdIk2mcMqHtnWcaR9NG+OXMZhVmrJi3/A4F0ZVzyzfCFcRdHKHyHZXsBSyaspZAQDyp2xNdYFTPENzskaqaLLxssnJ7iyZO5jmllOhcZzbg7DUMloLwdDrz93/4A58/vOaw93SdCQ6qji5mRjtlSJBF6jOv40XjNDMgjQlpDZ8Lk1x77bvsGFkk2frzmlA8Z8ettXhFi2ZX1BiNmtB2XSG2a6LlnCUfCiHknPhxTrThZmY2a3IyM4QkRHNueo2kUOKTM05wMA1T9g6PuORy3L5lrYpqXuIalZimrONUvHd0vp+ZNZPcQ8bndsLjOFX7WzSBC1P0HANUt28SWxH5HfB/AD/YqvnfVfU/iMh74P8Efg/8J+B/UtWfxUb8D8D/CJyAf6eq//Ebo9C5YgMxpJKyptgDbpahlL4TYqgceWIuy5asJJM9FnFi2WHK4c7ElmJHyAHQWhhi6z+lMEvaBVeWOK7iyGCXtHBAVjnEcH6+hApKopsJl9rhsRDjlCyUgWSqo0IUXXb7X4XPlBQXak4el8tl5UFbWn0JU1JiyPGly1mu/o5uDSy1N+f8bH1xxeWMSoXTWQAejTMRcl5mVZETwXdru7shpzjb3hFhwiRcW0/FaVonM1PgvJ8JGBmpSmGiigotGZPmsto1RAtbiWV/qnfLfESFKU7zHFV1k+mYpeh5f5Z+ZlhjgSnNKsXTpUI4+bOFMMxdmybGZyZDXf6wZOXBsg+hWTKquP4ypnjE7RExYpvoCdoT2RFlB71DekdykYhwHJXTZeIyWSxtjJa8JOZcwKevv3B+/Mrl9MD58WfC5YhOAy5NIIkpDsQUrKScRm5u9ty/fsVvf/MjP/zwmdubAyFM/P3f/x2kkBFZrFeMJguhgcXjGIOCxeGxOpdWyqudAtvn5rNyJtnGnJmJFI3gaspl+wScJ7kd0R9IsiPIgZQEwQq9x2mcnTad86jZTVaqVd97kkJQi00X50kIp/OZ//Q3/y8f3t/T9Y7bG0c8OLqi4UiazSzOiAOK67LWK62lvpbYtv4YMxxWhLH2xZimuCLcrfNmTWwvl8uTK7ClSSvnmVI0rVeKhPAU94gIISjn82nlwNX2V+brSLhsvyuZqRJa5Bdm84MT/K4npc5iyXURQkjmAJdiVvenxP6wm/1USoY/25spMzmFMOTohoIjK0cz79e1v/9LSLYB+J9V9T+KyGvg/xGR/wv4d8D/rar/q4j8e+DfA/8L8D8Af5F//nvgf8u/rzbvhfu7V6jm0B4RUylm++xut6dInL3vGGs9f0oGpEXd49QC+YutRqoQHedmJGueyslqeKouaqH6R43bdh6cT3S+N4k3RlTMyQLpcJK9bYuzTHURFpWk2VALkTH1ac5ig1vyZ9S/S9rFijNMMXKzP9ihe7/KYlRaWYemyH5/gIyoy5xKK4i/kAuVhGZiVEu75Y0ue2u7zhiZEBdnttyhXYbKhiwi8znW4+rCOgJFUxCZkmXFSQ0ymYE5A/z0/1P3Lr22JUme18/cfe19zrmveEdmZFd3VXWBQEgIJkyYIPEBesYMIYTUExgw5hMw4gMgMQAJCSGBBAPGDBjADIlBq4uCruysyozMiLiv89iP5e7GwMx8+d73ZmQigRS1Uifj3HPO3ns93O3xt7/9rdbRfgGbDKOq+max98+leDYYKEgEUA45Bzw2wWQBi8vGrtvO3YMM9XXbxjNywpZnyuIQ99wHqg4ZjxR3YBF+D8Sc8LkaI1scAQlpkYTB7wUQyXEhdttxkRNJhk6woBRQGwJfsS9lh2iiNxsCfzidOZyMFHVw9m9tlXU9cXi6590P33F4eM/5cM96eI/WM/QKbUV7ZbcI53Pj6emJm93Cl199xS+++Rl/8Wf/gM8+e0UqYj23gqsnKSHRkwcEa06PZEiBZmGRbE44EJcICj2j0BjErtbOE2vj2liHnKnd32Q1W23+1b2XcwtWWqpUqVQWznpEbl/ac81zV4Ht27VvbSMRZJdSaCogZ0sWpCBk6tr5/nff85tvf0tOyou7hbs9oBXtDelKluIBvXBuld3O2vZG69tk8MM5xP64JpLOnIfrLHi3u+H6uMx+LwPu65rkHKDPWfHgKMz7ZQoC5iDhesRk/D6uaV1Xel0pJbHkzCA0TXvq+r3nmvCGPGwoVjj3WitStmu4Hu/aHFVVD6xfvnz5EWe6oZNxnX+odvsHna2q/gb4jX9/LyL/BPgF8I+Af8v/7L8E/mfM2f4j4L9S++T/VUQ+EZGf+/t89Egp8/zuzjaV/yzYicmhP9zplJzZB2vW6f0OjNrrvK4DwpKz1UUCmpgIBuoOdjwgj5LCwVSX/wsoqywLxYlMH1soc3T4sUV6zeL7ABaaXmuJ1+ViCkij94C1t40R8PRWV0kjMNnv9gwd4Y8siHjf+HH0jY1zEBmZm7E9bVMtuRjED3Tf+LK94ajNAhd1tvl6xwJ359WbnUenG1IxDCyuSmPOrzt0r2JZbbwGh91trngIAyQTZHCUYlJfvNhgc1AUa8Gcp/diB/RO1FOV1aFQQ283ULj1bX3gdeRU8iS8scFpF/cBC8jLaG8DUSNXFbLfe8hjPow5nh4Zm1rbgy//kekihZxvIN/S8w0dDzC10RrUtbGuZ46HI8fjE+t6Yj0feXx4z9P9W9bTE209maBFPUFboVeSw8JCZ9llXr16wZdffsZXX33B559/yu3djcPdVh/tEWX4/Y8eyi4gOaNiM3XNwVYPBDfIPpaUoLgKpT2PbTWPgG/s68FLm5CSKMt0NaY13T9LaKnSJaMpIWmhVyvniHpAp2ZrVIwcJaKoWJYDVrsVEXa7PR3hXFezI2Xh/uGRx8cnTuczL57tOJyOaFtBO/tc6Kyjh/xUV5d1lYv1aLblEoGZM8Ox7K5Qq/hb2xOni7/9mPO8fr/Ztv3ezLb3Czt2/ffXmfb1z+eA3Ox4pbdEz2k85bFPR8kuTnCyu0Fc4lJKMQJ88YC3q7LWSjqf3ckaA78rpFJIkskl++zk0EtYxnkEp2OGk3/s+H9VsxWRPwX+deB/A76eHOi3GMwM5oh/Nb3sb/xnF85WRP4x8I8BvvzyS253uwEvqiqSt7qdTPd0KcWzjqil6GC6de+lw2HBXS7jPYIF658O4DVHd3pebxBhY+n1hog1vudsEom1WQP+5rTcCMRC0Yim+iYWQdiATu9KqL+4nwNgV8omlXgdHV58Y4tCYgOmND5zNk64IV5yyARu7LnIXMfbDmeD164ZkOy2oKfgwEU6kgg9Ja9P+XMjIk2LrLtrKotDgkF4IZx5V5o0g22S3x9Vyzwk+f3PY6hBnK9IOOCZNW53qizlYhOfdHvOpM0492nTxvNsU/A2WpqGlfc76xu51WqwX/o4mnERXOSEKSVuLW1RZx7s5zj/ku1+NLufRZIxtN3ZSvfSiQeSqpZpNRW0J7pYhmj4ekFlQfKevNyiaWdZYTOiSW3KeV05Ho8cnh55eLhnPR9YTwceH95zenwP/Yz0SqLTmo3LozckC7WvpATP7m746qsv+OrrL/jii0958eIZuyUbBNobgtJawIF+/52noIqzha20U32PzJBoBEkzZH/dTob62kGZQYmxN4NLENKdISUYrTWAaqanBrKQUzZOgE4iNhMakTwJSKmTKYCVLLJklmVHPRskqa2TS+HxcOBwPHJeK5IL67HRayWh3JSdIVm9e8LdWamkLCOwttuxOZ35CGh+c3L9o3937ZxnB/iHstnf54iHfWlttLBd//2cAYtsXQTX0PilMzeIfxVhDqm2a74kf84Z/9xGdJ2UhO0xzoaXEnVuR3IyZTGI+Xw+u83MJJcTtqDc6vKS0rB3P3b80c5WRJ4D/x3wH6vq+/mGq6rKrA32Rxyq+p8D/znAX/zDP9f18XDRt+X51fz39pD2++1hqxpTdWLHNdc0TghkUwmJqT1StnYBiQ2MMdy6rsh+z7IsiGRaCVgicH9FW2eXErtlv2XFU4ZqN8oX6kSh/0Pwwlj8cW5XCzoWwqhjXD3U6yw4Fl1OedxDe4/wGZHebQQOXIZh28yg6k6QaFNYTHEH5VzPVi2cegDj8z+6Gf1NZ2d/vbmaGnGo1s15x70Z1xTEqInBGMd1NB3vv1uWTfRB9eJ1QcqJv72+jmvySDxj6PT++8fkXSMZsRY+JvE5v63gPdcWtVim0xRom8Y1xmXo2s0xCZ6JZSMQpls6C51CY2eQaMNq0iXTgHVtHI4r79+/583bN9w/PHB//46nx3tqPdPWE+fDPefDPdJXMo1FYJ+Nx9tRel1p9cTz58/55ptv+Ff+5X+Jr7/6khfP7xCxLCEyW7SzrifLNuZbJTK533FzyfNYRoxwNN/rEcROa2x+zwg8Ga81VCbL5Z/Zi6dPVjVoOTVElCLCrmT2S2G/37PsOtKMpNj61jJjz9ycZENJ0tDWqc2C3AzUBk/HM49PB9bTiro0pGxce8umshUM1m61w/QR0xoOK76/hpHHvdNAu/pH7ZCIjDr09Wvj9/N/5/edyVFJhJulmEW5ymY/5qjn97/OlLfP6vRqNf6PTd+cr09Vubm5uYCE4/2uM+aOItklXFNC5HwRJEOitU7ORlIDaLVT105dA7WSYRs/lpl/7PijnK2ILJij/a9V9b/3H/9WHB4WkZ8Dv/Of/y3wJ9PL/57/7Pce2hqnh4cLokFsprj5YXSXgInixa1/4GxVlYywFFNP6vGAYUBAsak76plZZe8PS5ILFEQt0l/f1UgLkjc93mtjPy/KuRc0fj8bXI1MtXdub+9sw4hpMG9x+VZDMONt2fb1Ih1OEqEn+xtNlUzyrBdCxnJztp7Najjx7JcqbgTZ5oNio+ikG4SZJeQynXGYL07DvtXNikXgstXPthpcUO+rdqpaDb5nxwk9owhZyeQsxXo17CCycVs3hjaEU49WGtQyABstqIPcNUYoBrtS8PeIOjEX7iACh+YIR9xfG821PfNQQeu9s9vtLpx8LhYIzc7fUBiHSVWRhnX3NBBn5ifwntzgHjR6Enou9GQTfM7sOTehNeFwgsPaaLnTs1LXM6f1zOF45PHxke+++443b17z9PTI4emB9XxkPT/SYuh7PZJp1seYhaTNJt20Rl+PvHh2x9dffc6f/+mf8Bd/9qfc3OwQMTJRGuKyIVIf6w423p5MzPWPB5FzpjLvow/3AB+8fvuvredSiqNiHtz6UPqQIg20S5spjKUilJRZSmFXFkpZrYYq0XLmwWFfB2HT9l4e16SaaGRab+5sj5xbY5cyIn1D7iIaZnOmqpalkyMMC+RsWDN6V08StvsQvalJkqNGHoAoYzbs9X362HEtnjHf07l2qiLoYB9fiuHM9vsPQa2Xn7W1aIUTZ/qvHZ7zilCrjTLc7O1sk+N+Oks8ua2c7GB4iE3jOY12QnGUTaZ1C1OJMtbSjxx/DBtZgP8C+Ceq+p9Nv/ofgX8P+E/9v//D9PP/SET+G4wY9U5/pF4LhrG309kgtugLjUxPBFIaY490XYdBj4yTiNp6Q2rg8oK1ReBQVUCiGvMygKgb2b+rnGmrRatNzSjLNMsWEXqrkLbZtBtuH2zd7abL9NkQvW+JZdl5FGSvra2TSWNixhga7ddXXcpuzpau4e1AmDqb0opgKj5xvz5moAbJwudBGtFLhkQi071b46JErMbGHBJcXq/E6+wNxvm4V7QNKA4qij2nhlq9zmstUafNyShCVpNtFvTAqA8NDOTiM5iuW0ZPr6krXdZ9hoNOBhWFdx0G2d/swiSpBXFzFH3dRlEkDZGMUgpatqArGLdjzaNjWpP2ag5BxZ2tomsLBIwsOGNZ6XRaTrSU6alQZaHrwroapLpq59RwyqtwOp+5f7jn4fGR9+/f8fr199y/f8fxdKSej8YYPp+sRttXCsqSrVsg0239N4P3bnYLv/j5z/jFL37OL77+ms9evUDERANWbZSc3MZ3Vu2UZUcAgg72uil1JAUZzyzLVs8fPAe/77MRDSMXQaIAY1AH2/qzPmV/PupBTSA6gv1eFdVERmjC4JDE3g4WqvEsZRC9JNWxE5StlCKuyR1ErN7hfDKt59Y6UhJ01xBwDkpo6A8nxlbKiRU4O7r498fad+a9i5m+D47LgOTHj+u//Vhi8cce1xnux89hyzZFLp34eI9pu3dPBqZPmd576p9XpdcgybIxj2NdEdcSzt2f9/TvcL7pYyn37zn+mMz23wT+XeD/EJH/3X/2n2BO9r8Vkf8A+CXw7/jv/ies7eevsNaff/8PfYCqOduI7sZiDbhNcCYmZnT8EDBZQHU91m7KRaqu9sTlgtwciw5yhmKM47IsJsTezMmu60pzLdRSCmW/s5m3rdNXJ1DFpBLPSnSGB0UGMaj5NaWcIWcKyVi/OKxRK+fGGJs3ZMlUh6Zrn7Kx9XS2cX0ls192lm27d269bQELUEoaWV92Jzl6WMOYTZDQrDQzZB8nxKF368W9ubsb/azA+H44Ww0OJf5A3Gl6+5DKPDtzayXYAAAgAElEQVS3u7SmZ6DJWKM5JyRbn5zNRLWotLaV3bIbzNDNOdr30Yc9oLmlGGzkGTISgY7Vmwfru+lwgpcLdPt23lpJo5LkUby57MHKNJGMYsHfVBdLKY2BGpHZGhRoRJBaV6tvhy5yU3o2WBK1sWCSTa6uAy1naso0yUjaUXshqWVmVVZWbUS18XA68ubtW96/f8fbt294++YHDk9PpkndG0uyHlT76ixF2C+ZJYGuR9a6IqosOfH8+Uv+xb/4h/y9b77hqy8/58XtLa2ttIZBzvvF9mxvHER59uyZrzuLm1rswe4NTI44x3zWMd2lde9ttbUU0qDhCZNizzfQiJS2eEvwopzD1eqIjPo+a+ra004+tDQSIVHRUbMPp271+WxZV06IdGqTcW5xDma3MiU3U7RrZtRPp5Xj6WTtabKzdkWXOmytkYbzj5LL5HivbNmPQcMXy/fKocmP/O73vcf8szlTtRdi0pd5I7J+6Nm30DzmeMd7DOd98WEAyW2Zwezj8+P7EQjH+V8GO5GwxadvAYyXrLwE2dt2rpZsMOr52z3fzICItymmQspWdYgW0B87/hg28v9yfR+m49/+yN8r8B/+ofe9ehFSqzW4+zEcbs6k7rJ4CH3dGowdK3RVMycHxfPXTqtXrOFkD3rjtjEIMxqLvCumStVwu08uwrJkdmWh1zr6OAue3YjY8Hd3ZKOX0xfUcLYpkUthn9L43XiAtfrGsog6goGhnuRZTRIoHsGlBki1leGuTlTJ4+LUMn0ioRRobRC3FJDWNmH+br2oJAsGFLbMwn/fVa3O0ZrJYbpBrL0jMUtSPOhxI5VFhjyhZZnJSD5hbJs527IsJmUngqZKS+Z8K4laV2/0t7aUZ8+em6QdStSaDV7Dn5/dy45S9nvImZBNDDaxtj4IMJg95nZ/QyRYoe+Mfz+MvB9LSmSZCT+X/Y6zbN1AOHy9ELKcamQlkeh7xuf1JhP3wIlVa3VlIpMY7AmT8QVqSbS8o5cdfdmzpmIwfAH2DdFK7cp6OPL69ff89ttf8+7dO+7v33E+HmjtDNo8URNulwJZaefOzWI1y0zn2CrttPLs9obPP/uEf+Ev/ox/41/91/ji809YipG4dEmgCwIsOxcJ6Z12s7fnJZGRi/U+dgvUWiBMfn93U2+1KLbW/Dk19da2eD6t2/oSl8V0aVDmteifd1ytLznTSWqTjETrIFmuXaiycNbCSRda2bFbqj/LCKbNcVQ1hCkCJrqVYkopLGVBNNFqpkVg2SuH04mn44mmUHZ7kmtUp+6IgUrk5yxlgfRhPTCCs9lRnc/nzc59BG69cKrt4+Sp+TXxPnPwee2MN1SIMa7UAo7LjHw4PZnW/5xqX51HZJWC/W0kJoNw+nuIWs1VB6PXPU1O/4N2Idca7/GHfp4StlvUg8JhoRnBQgo+TgE6Kt0U2tqH93M+fhoKUqqkNsMeU2YizYYIp2Q9sRMT1xZgVDImxtoUhmxs0g8Xn33Z4j3XlbIs42ZHtphL8b5FX+RdPe5N9FSuIM8JSlEmtuOWhUtTujSgjaxVayWXXeAVdo0WHlrUKAx4VESQ/c0EoUjQ6QCrpWYfrB6Q3ryYE6b0M9aY2P0XMVJK6Mpq86zds2QBH0fmxILWSB6Ro53Ut78bW0WsF7W4ZKJqcxGRS9gmp0SWQpFMUTFmZVWQ0EVKJDqLmmrWblnYIZTmLUCqBIphpbdwtrZpkvfMdbXeyNramDSz1ZKsVNAcLlI3BlvcoheRtACabDQbWJBWm/X+xgjG3bKQp8lKfarZRrCjnq0jrp6TsFobtp6SJqQLWnVMxAF1vXyhZ6HmTFuUXoTeV85l4ViFY4NTVQ7nxul04nB44s3b19zfv+N4eKTV1eQCA5LoFmSmLI7ENnS1kgqiaGvc7BZevXzB119+xZ//gz/l+c2e3BVZV18b6nBs53w6DKOYc6IejiMYUxJtbFWHJSZHY/dax7rP9iKitmpZsCFaSbJDw44q6IYujLKCCNkWHB0l00iakZ5Imkf2VDTRZGHRQtbCmvfslpWlZNcxLl5+MKdtCFfz9jIf9i4GN9OdTKbWIieKZ1OGIN3c3JClk7SRtdF2Z5KKIznKqGhMEG049mvnMUupxvq6tnVxRAZ2/fN4VjM7OWYHX9rMy0xbwq6ktHU8TJ8d/50Z+3L1HtfnsDnVsCW/n90crwuORHzWfG/GeWB2IeRsR2SNrT/1ddbdtm2SrRGEZPc/YXO61YqvOCQfO34SzhY8N1HPJhTbTe4MInnR+KU4AUaDULDV1Yj32Yo7WxQ4st6tZte7mtZmD6ECp3D7Bk0lj7FduBE1CDDRU790guHu1ckrajWB7FGa4GL9rQ/DYUQMRSU2iw7n6bmnZ6VMEGX0fvoV963AL35vRL2bQjcIZXvvDYLRyJJVkWzQWkC7tDZqIGbIGO/fvL3KcsotCo0jMuns54zXR3R2ymnLRqIuK72TepDkMGcpMeTbo87i2slcXlsET4MAJ9a3mfC6jNe/1QUxenXVq2TqYtkubAQMwxBM9xa2QMLG4U0BYq1o8zFxInQVpCuSLNpudR3krNl4DgZ0xurGOVqG3XH4JBpiXeNZbRY6iYZQXQy/987aYG3KqcJxbRzOK8fDgafHB56eHjmdjtS6InS7pd33Ft3kC1V8XB7O4LUJOTc3N9wumS8+/5wvv/ySzz/7zAZOnM9Y7dMzGLUeyebiHDknKIVa24WzjZq9xpAGjezNaqbbOpr3re+bSfBFiv9RD2EP20+GLsUbWbA+CH2BZnjwF2WY7EF9IlE0G9owaXinnEjdjO1wfG0TaAlxG3EEJQ51h9FaMO3NkS05G19Di61VFbL3QYezDRsWdiv0va+PH3O2F/+9Kq/NDu+a1zF/7lyKu3DSjqjZfjSy1MYtucyUfyzrvv69PZN4Vzf9bL5ic4Fh+cM2ekIQ58N8X2wtBBpmjnvLXrfPx39+OYwhyKk2wjI4AWGl/z9q/fn/8zBaimcTImN+Z9zRYKQl3xAje+qeDeB7HHvNeHhB9hnQgLPr3Bk2h0cVq9Xtdjt2+73JpPkmFZ8WApaVFhI7SUjeFkgcW6ZyJXzBZVQW6jf0PhydrnXAghf3JrJX3RZWa/WDxcvYPDZxJuR0UwQlQRAAc1rT0T2wuW4ByHDhQNOISMH0iEOmLBlM+/sOjeDBLmi0YzksV0oxBnKrRsDpzbLZZLBzKTLac4wxHUZXR5Rq+Xp3rWI/JyzA6iTaWEf2P2M8M6Lk7BB/5vJ5bt9d9iImvz84CiPNvLyKyfhJBBodc2Bd6edKdxH7JGI1fC63aFLT9B4qNg0Dd2QZ5Lnk8Hry65b4kmQZowprV05r5/F05uFw4PD0xPHhkdPxQG0r0MgZck/UZNkXYi0qdNNbXkpmXwpLsZF4d/tXfP7pS7784gt+9tXXvHr+gnY6czo2ctIRVGnvaFvp2vw5Cy0n1tqHsyWcrRtHxDSyYp3XgOcj+LteT76WAJJP0ZmPa8OtkugpU8uOLp3UK6JWp87UsTYlqcG+IqgUX5MWQEms2wQpeWCz1uFUAloMGb82TWJKSShSqK1yOp9pzj2x8YyZIrZ3E4kcBj4bejKuQYMstLXCxTWOf8d1jMBwum2xxpJc9JdfZqkyggtb3hskHPyOD7JhDzZ7rWhLF0TO2ZGGslokJ/GeETDPz2t0B6wGDatnk2Ix1VCFm69OcrH+/7kLREHSRIT0967NUbBkNuT62O6LTF0n9qzmzB81fWWRPjntjx8/CWcLOMRjBrKnZpGv2g0uZWf1EhFa7X7Tg4odhlDN8GEXrhh0kwQjLvm8y5ysfajrltG21li9FzJuIM1bMtyTq6q1GUmmS7Cjt/Bb1ETxY05qq20sqiHzZmc54NkesKc6dd+Dg4xYXXNa9PNxOByGk7K5l1tP4rquJmXoNdbnd3tbzB7MqDJUbuIwsqRJ7i3LQlkKu2VnNSM26KrVRu82QiDlYgvZGdjz5AzYWgZqrZzXdestdSczjENkqKrUdWU9nSgCOS9EXYXeDIXQTfYynO+1sQjyxTBEOXE+Hq1VNSXPogWSaTAD03kYfD6CkmkTWpAiA9ISbAB5JwwXLBFA5DwUrKIuq2Ds167eUlIoKU9BRAqMH0mwslJ79TGR9vOUTdEmFXtdxTR4SYVUCrIU0i7Tk3Cms9RGkTOFI6kf0H4g6ZElVVI28RftBmMKHUmwLwu0lSKJF3fPeHG742ZfuLvZ88Wnn/D3vvk5n7x8wctnd+wKZDKpC6LNJFarzQjOKXGz2w/GeK2NEgF13+B3m9ESOUod9zqVPBytTkYbJta3Pzt1Y3i9Fua/VxEago1P0FGrFa1kmiMtQkoLbXxVGpV+eLLRgW2liPE0mmdOVgJIpLJHtI06fWSfVkIWJFvQcjodef/+gfuHJx7uD7Qls2ToovTzOZaAtU6VMgagoNGN69n8QGRsvdXT6k4W72rwveaExA0hMK1y1TT4Asad6ETRJF9F/JszMq33ULUinKJHRW2ttLZeONtQlgsuy1ZWuBwl2qYASvyZkRK7PeO8khS/bohpaeKBG6jZJ1VDa7zlUVXRaqW7hJHWTM3NCXdzqDv2vW424MoORABvixPPZn48o43jJ+NsW2SsYmy/0XQsajdObEHm/R4dNQex0UlR49VumQ5qEx9USN1ILKZBvMGYYQQDeliMb286q8OJTr1hnhmbefAWG//L+K571KVeSzMHZOSY8xTBKerPJ64Ta4sQH+OnjOh0yACG0dZO9rFXXYRz78h53eB2BEoxBEqg52KyZ727CDvD6Q1lHYc1l9vbYSyklAkOUqpD1QGHmTzdVEMhomiPXPPkyMIJ+2Y3nYaYdOJwscOJy35Pycb0s9c66Wp8yWB/m/OULdZSRbsrfDlxq6Es2ZjkRpCKeo2OKF0dXreEfVO2iczTTZwbBB3/ri7jJ1hpYa6thapWi77eCAZKJi9bHVdFaD7MQNQDnxowemJZbCyaTSYxw1k9UKwoq8JhrSwlW+2xn3n/7h33pzOPp5XTw5G3v/sdh4cnTscj/XQgN5de9IAsR91WxGFkpaTE3X7Pn/z8az775CWvnt/x6tkdr14842ZX2GWln0+27lujrmf6aizqnK0vNWFEOFWvuU5qX5HRRL92DH2PfZd9jTSHpC0zSR4wJ3Le5Du3xSXDgMe6Ncg5MA0X/ldvEVF77pYlKdIFpLnTFTSttm7OR6Se2KfOk1baWi142C30R0Ayy5KQ3m3d4j3iDtOnLEgXL+1k6tr49te/5c+/+Zm1/zTr2V8PRxImpCHa0bVZRpwTSLaBD37/UjYRE0ToUgfqpxj5rPh4zw1OjdskrGehEcF+H07G7qB3RPg+Nl5JSG6aox58A1V62uxIq9V611WNIa42S9ba2DDj6HYpkK7sjmrroAmETowpLvFcbV0YeOkByLB5htylqNU7fLKVHVyjOoKPDtHek8RlVzyCuQgEvB4rbAG0iLAOUqUiY4zqRxCYq+Mn4mwjqwUTUochfzVo2B7/5jxuoKoapZ7A5uO/W+0uLt824RYla7hImaA5NXKSn9FFf+ZoWBZ1B++wWThF0nC0uMpSxxaFdu8fnaO3bFGWRL0yLyPD0z7Vv/wzos4Sup1htJpOer7IkA4Lg2GBgf23KptmccquBgXBEtzlTeawI1Qf5h7wkTgMFEzZcS3hCYmNFNHvZd1ndm6zUpNlyOKwsZOKhmG+JB44gm33r2S/Hr+30UIRYuXdtLNvl5shj5iZhtOp5VXdA7TxAXGLgmSmXDjaWLMeEzGLjIzn0hprrUNjW5IYxBWbNm2RN34uSdIQTYeALLPzBop/psl1nrVSFSq2+XdiGVSn8Xj/A/ePjzyeThyPK49vf8PpcKaeG7p2pDf7ao3eNikJARMtadWQpdZ4dnPLF598wpefveLF7Z59tn5bobH2itW0Km1dTXpwWQaS4xbZ6tbhDENqMn7m+tajM92zBkGNyKPNdZJBkpLIZFFjgU8Gd8CejjL5SmHMO/Y/zAhJ1TkhttfC2foNsLYpbaAVlUrqldwrRdT7ZQ3alLyjuWNhEkJQjcEmhm6lJC7SYhmZNuXt63e0taPFSj69Kn01hEFTsnPyLoxcMmRDn8Rb1WTnTsydhaQ8JRJAjjKPwhTsqUOow9nG/fFbn3DUJ4JkVaS2YV83n6hD2pRsGW9ogo9byWaAg4Q5HvPsmESGs3Xkd9j7cPPWrrmRY3UQ+9QD7U5M5xmiZSOYwGyyJ0vq1ymyKYrFPOiUEosk4z+0GNepFPDpQol5vrAlLf4eP86P+mk4W0nCfndzAQFFzQ38YjTgqLoRnQByGVEG6nCJR024s1Sxvqp4KIHDWPbnDjGgCoJOr6YGM5hrG11+iKtFBqRpLNaR6eXM8Xi+oOlHNFrygpR8MSQ9CDzaN2ePv1840pTcoXtWMFbv9uGjVtvxqFTbiPLDyQQr0xwaPolFuNntx4ip0+lE9TarlBK73Y79/oalFESFejqNe60iF5NZTDgAd1riAZKCCxO0eaOxBQCRuVmk6f2VrQ0kI+pDHRv4vuwWh7frkG8MRyVJKMuOJWX2u900+9dr05NvHfIcyeuGESgQfdIW1MQ9F8+qd3kZ2dHchxzGtjr8DbDf33xEinOYrrG2QAeTNjkygmIQrWLRNmYyGgYj72/3vHj5nOXmhkOtHB/e8vaH73n/+Mi5NfR8D2u3aKupqVF5Vkvrm84y5s5PxwOntqKnJ15/8oLPn98gr55xt9yR2krSRqKxLJmnk0+tkalHO8WcIjf8/rzrum77m+Bb2CcLzv7E+xUrtF5RNXlE2wNmsKUND2v3rffBdZgz53D0273ezkdbtLJVc/QJSD4DO9ka7bWCntmJtSKlbm1U1r2WOHnJhlqpArf7HWBroNZK66vd05TIS0FXg6t7F06nMw8PB4rC7ZK4KYm825G1k8X2iqixrVFFa0WC44EaizptdkydeMeQEFREt3ZGejgnD0DSAITGsHvbBYIsydElI4dWNj0B2rS+mwsABSksb9liOLuZgV8kDTnF7vs0EqIxdUu3unAHajdpzO6P6HL/+OHXPCYdxdPuW1nh+nX7YkGhTTWO7N1LDrVt1+izf7UUm6HtgkbxvmlNrvj3dySzFRhiFK17pOfGO01QpTKReCaItUz1sfEFw/HMv9tEM5iyVoxuj3rBPJz+ZYHf3yiGYvp5KEhHchjoaIkHTdngcV+MKbJoTKhAMEcyJoiwnWssPo0Uncu86vr+DecRUWPEA67CZKSaDQ6x7JRRr+mqnI5PYzJNEmW/Wyi5bEpVQKvrIItMsIE57BH5+eKeosuqHydN4M8Bf+bdo/l4rf1761kt0/vHuV5T71OyOZWlFNtUhFG3603J4BLLkwIyczgsFUcSfMP3Np6pykSmCujIA6RNxHx7JiVnujv53X53weScUY44IuLeeXZojlZovbG2SXwkJ5ZilOVaG/208vD2HY13fP/+LX/1T/8p37/5gafjkbzf0zVZlN6N1pWkW/uZWqDSWnc41Q1Cb9Ab9/fvePvuNYfDF/YcEM6n0xiztyxGl00peekiSEKGegRMjV/v3As6tHz9+jtuaHuzmbejvcZhfVxIwJ+j07VtnzuCcd12MiW+I5Ah7qGTBmNfRTBrSl9WIuk9sYIRJ3dGbGu1UfLCIomH04EkPqWoddhb5tha41QrrVaWnZF2hMT5fCalgqbMsTYeD0f2JZFl4fluR9nvLJDpnaomw1nxDFJk9Ffrdtu2oDxF/7LdzO5GIVjmYSAUy0A3lSTG2E/tHRUbMsKk5W0QK8NBNpdVnW2UaCd1K5N0P79wVvb7DZGL10TiEjBu9+c4uBlYKVAZCtsD/bs4+vaeUZ4JEZc4aq3jekWEyuZ825Spxt/iKFWt1vPee7eyUpKLfZxSIqjzfyecbVzUMMRu1HAYdDR0+34ZaBNsdcePHTJvtN//2ZGNfUCymJzCRcQ2ZdYBmaSuvuDjMw2W1RmSmU7q8rOgBAQyQZHgcx97nKvVrYN1qDBqjaOfWGUw9wKeUfu/kXmneH23GmcoM9l0HkMVlrKw87GCIcrQPHs0w5y3k4qbkTyK9rp2wKqt1g0ynY3hBDODDKeP39ftPmzsxHhO63oerOw0ZVX4ehkqWOLj/zx7i2eRPIMVCYgzecDk/AA14lNkfNbvywgyFGWt60AjYu1eEEBkW6jDuMx/61H4tr51wGTjc1S3/lp//5JMBSvvMrt94vXDPT989z33T4/8+vvf8et//ivePT6wtsrNs2ekvIAsiNhIuGjnsck4nd7WLTNSWHIilULzrM9aO6ykUOtKO59tzB4LUhZHbGRwDYwRH2u3XxjDec9JSsbEF/vZhg5s/doQfaumPmY1ubgf9kdZkguQbIx7225TCYOtdWRwMJwUZ5mqK3i50hiS0VSgbVKI59OZ4+mIFqFLsYk+wH6/Z5cz+12heZaUUqKXZYwOBBNn6AkaQutQHbnpweB15S7tFgh1h1IDBtcEip23JhkOFQwdMgU2RZM5W3HWuoa/9fU4pFgnFGCeLx3reR40sBGZpj0ahCdPNKIGHA6x18vBMrUL0gwFjFbLoGUNJzt/DXx7k+ud7cewPzOiFvtvkpv9mLZ2OO7498XvfH31q8+KvfixBOzH3awdPxlnG9MVYLoZc+E5EoHx5f+LhWzL0B64yPRQwhnoeP38uaPGwWV90Xolt1uYPJuZ25I2SMzBMMVIRZgxnhm6Ok5B6d0M0uZ74pspe77K0sf5is879Xc1+CcMTGRnowK2XYJwuWD9GlsIPHgUuuRsjO1SDH51FnUNqM5fGzXuzRhgjkfCLTHg5aDuhzOJzTG+/BT77GCvnO21szqdTrRmyj67ZaGUfLHZxjpSr8PrJSPSYPRNEIUIdPw1El/2Ro68GCyp4iS5tV08q9nRZo+CIwVZQyRkyoDTdA/8hIk+2k3JjFF3CoMaTM2y7Fhubvj+7Rt++O47fvvD9/zqN7/md7/5lsN6sjnDrZOXHbnckJc9pSgimexBWBLLG7SbHGRHycueJdtovt2SKUlAzSnXau1LtErNVoe2ik8acGQDb//x+uK0/8be8/VsNdX0QSAyQ4ZZouXLg0RlBJkAZUk0v9VhvKOeqUDSbT2i0z7xlVpcTCRE5SPYL5LBA7oI8E6nM0l2aMoDhbm7veXF3S3aKsfzycl1xbrhIgBXoBSDySURM4XHV2/UakpeitWpm6oNUVFDpkYbojtbne+rgSAbopd8/3lQFedxPZZSowbsLxS/wdot+G4erHZvKWwRAAiDDR38g1arlYrivQNt8r3ReodWL5KWLRBy3QM8241sYtofyfdIrJVtz1wG7rPjDbs5nGj8bZjFSD6mv71Anvj9TvUDOPsPHD8JZwtc3rC5HcJXakQ6EeEO0lJkuopFxAo4jb1twe8WKQ/RcockuhFk+sgo5KKeN85PZBjrNPUA+y/tfWc4G1OKGXJ/8fmEkS3jWlV8io1uU4Q2GPOSHIRaJN+1G+TuurHjPIsNsk6us7ueVyI1TpErTNFbIAoAtzc3FNlmZ9b1RD3p2FxZEje7HajQq2V90TIQ5zaChNYJQfhx/3Mezme+KFXPhJ1EBJgxVYO413WLTNVbq0A3eLnkARvDFskaPKZQvZ4cDGkCGZjvNa5y1cczAy7IX4pla5FpRu07Nvf11zB+uk2kmjPgyMAv9Ji70tc6plmZPKYYgc7rYojVtZdcuLu5pa5n3nz/Hd/++m/5za//lod3b02GUoSHtaIpsdzcstvfsez27PY3RrwSYbcYi7knsXmkwK7ALgv7mztevXjOzW4haaeeT0hvlGSsWrCeb9tDjEk54QASssn4gemPT4bMDPEWGG/NJ44WSXbRE4OrxfDGIdEYmU9eMiRTGevd4NYQhvFdbmUiEZoHWClnp3Q4H9YftMm8Vstwl82wD1KM2Douy467Z8+4vYMvPvuUT1++4LvvvuPxdDRSnK/61bP6lBL7uxfQToam5Oz9/Ea4qecT/fhEobLzfs0mQnMEKSPG9cgba3vO2FJvw+4kfB9KdxLndk8FWJbFss5qrGqjbBg6UQIlqNbqpx7A9CtHS0qbHoHv8+72JAL4OO8kZnmszus64IHmyNYZcH3o5OTGv8fz2NZRnpKy+GrKRb/tPHErUNPhlHMaqFj8bXUy2mgHhdHCZ6e92bE5T/qx4yfhbJMkbm9vx78HzONHaz7AGb2MJiIDig60eBCb+bcWHY31kQZMN16PGfta+2iJiayqOfFjZB8pfsfGuBuR8OxIlEqfFJzCqI8r3LIa//dxNXWhEOEYznmqUca9Gc5rS3m3KDDC6K5G9FjPDh0JTNlBkI0kF0jehoFH0ABq0PI2hUmRvHOiYjLyBdtzEr//84VGQzzusDQIG/GspmxVVSm7xQxy2qJQEOubi6zGN9B+v7MBEaUMUf/r/r7IRHNylaopeo3/hsB9ZAQ5LROyIg4SWHZR6daW4ySTvbdgxXvNcnS1VtZpUlOQKMIARPab8tQk7zdPk7GSJVip2YaRS7ZWMQUqytPxid+9ec1vf/tbXr95zf37e87HkwlorJW1NQ6HA1IW8uFIXp7Y39xxc3tnwYm3b5UELIIsC1mVjJIzPLvb8eLZLTe7Yq04dR2wq2CZyno60z0fj5alhGmF73bWzpbc4EW9fR58cR3QSgLtafxGfQ9vwZeObCme0RhogGXr2vqFaIOJ2ujYd5qiB1Uw3kQw1xut+XSr3MhqLScpJW5ubvj6668pLzvp5jkst3zRQCWRtdPXM4fDE+/fv+NwWqldjbwp1i6z3y3sb29JfccijbzLqGe3ajEDJcOCjEy7qvdxC1arzUGytLrwLDAxl+GS2ydytjUfpCm//qTZRXU25CZ6vqM/eKAwBqn4FraWM3N6nexOcpQBtLO2avUUqywAACAASURBVE460JuyROR0wbTvYePFV75426R/TqCDBHFLtkw+HGJck6ZNnnHA1ikPuxkT2ub9F+un9z66MgYSNmXjccz3YxYUiQDngyTiI8dPwtnixofJMcXNvai3asCgW+Zn/7zMrGAONAIm9hvrZJz5Zo03nz/K8DuPWsTh4eRO9jIK2x6KZ0gazdwR1U+/Z3NMUZ8GhqZu1FOSv87WtY5zDhhlZIyyieuPT/JgIaA0Q54iM9/OVySRFY+FLaoPdoMJSuCOz+6r9uZMYnM+Gwjr57m5i/H5sDENg2kdbONIGmfnN+oiU0YfxJXkm0RE2O0uoWNgbLQPlGtkQ0PmzxmZgd/Xcb9g1OVlvM4KYS2aBj0qvlgv03tbdLwNuC9pGec6RE6uzieenS8AYnScJO/59awm4PbTeubtu7c8Pj5wPBw4n0/0Vq2oop3ezOFmNdSnuhHUVlmXHUsxtaNAdOL+KmoGuS0MBrCft0qwhz2D1QhtN6hfZaqbe+ZoAg/Wf5p6H1mLCKO2HZ0AIrbWXFV0IA+zTGMYaUnihB/flXMWEupeOEQ8arEbgUYVY5P3RuuVWjurKpqVTIG8R5Kw2+/55LNP0aOyslBlQbqwts7x4Z7H9295fHzkeDqzrpWGtTDmksllYbe7Ybe/JfdM0pWmlafjkZvU2JHR/Y6lJBZgl4ybUcjOHTCS0JXZGY5SFFYXkwipUO2TQpduThWSkZZqcC9kBPgR5I81ff2BsV/dVsY9Dv3gEJwZdfMPXr0dXSNrsYwknp9OnxElpGvHd30TxtqcfMX19/O/c85b8Ia1WM17cSBK/rezn7n46OFs+fFz9OMn4WwFgwJGRDPfnMloAoOFiDD+9mPvhxhxxgiRW3SURBBNFxAD7lhn7F5kYtOGMXEpizmKGeIiEbHHomvGWhw6y35O5ghlkz7zTDx6ZWGLvgZ8wVafiCgyzjFfbRAiW1ZFO97croQGscnQBgPXCPXiVud0Xj0qDFUoGZl179CrsSQt2C0esMqoAxGGcTK8KKNd5wNd1REIJAKOHb24fWN8D0nHbIZ7m8ByGXle11sG9O9w5AhyerT0XNZ9UoqWlW3dMQIWD7gCkZg2+Me+AkqbHX8YtKEwdO30CbRCvffaarOSxDI2wWtnxqBca+V4OnBez6z1bOSl3oLcbSunV1L3Gb6totV6YnMpLKVQljIgZWP7Wm2sl8KpZNb1PDoDcs5oywNaz1i2L+NxTmztbNB+RkZr1LxGR6Ai4u15877fkKkIdIM8FxD/EGYRobr629iXydj+AfuZJkRGckFS2Rj7ITTvym+1Vda1sQLaoXKmPLshkVgk88nujv7UePe0cjo1aoPHpwNvf/iBtz98x/39vdXmPRvMJbPb77m52XN7e8f+9oZUE7rC+Xjk3f17St9RdEd7Vigls5PEIsraGzllsiaak4ndTBkM7fcbtf7qc/NsUvGardudyfzEgl5P59GxMFjevlcuDwHciTiaIZPSFJjT/NhghGFr41Onn1/a7Eu3PJxX/L8GgTHO5voML3kPWxLDR49t37atNahO5TvVwUYekpHDGW/3YyZrxrP4O+FsgfHAQpAAthszH6Peo/rhjZ+i5flmz4sgMpyAl+z9FdEPhQk+XBjTTQ1b7E4f3epya12prbEsPh919J+ZU6E73NV9XJrtGJLIgEaHo/UHvQUFl9l/GMHr64wa067IkHzbEvC5Ktk8wBSe3ey359BWeo+s0GAmXdTqms2YhghozhcBUWyMRr+4f6KWEfar886lmKJSKdTWWFsd/ak6egYZRK3I7G2NfHyBXxAlPA+L+xOBUHfC14Uucs6cTisxNzgCNCOd5eFE4/Wr941eO/lxzSldCLnFNY8arZ/PPK3E1qhQ3FFFPHFcz1bzmtigy82Ov/9nf8rjeuL7t2/Z3d/7azN7LSCWdSxLxiaYdLSeOJ1OAYtsvYlxz9Ta8HYlsz4+8PrnX/CzLz8F+Zz9fo8mrM1DMGGR05mq1vPbVxOfyCLsl539fdtGXV4zQnEWcyzMC5g4zyYXm3CEbJnqUsb+jRr+4ECg9GYj9QBrY1kKpewgFQv8WqPToNn4vuYO14JCC/ulWTbeq51XWQrn04Fvv/0tv/7uDW8fDnz7u++opwP0yu3+hpv93ghpy8Jy+5zbZ3fsb8zh7jMc3p85nk/cv33Nr3/TOT/f017e8uWzzPNnC12g0jidz6S7WxbJA55nBOTJenA7jkgYQhWIVsLEWzKJaCic98ThcLzgC2QfDXq1iaxu3burJHkQ5mmHeiAuYMGgQl0Nqs0RCBHL3PcDG/N+rIWhGrYhdWFPIujt3vo0txpt2aYpB1wfYTev7fmw3+K1YiMbbGUN3+NDt9zvU+yRqn1T2Yv3j/P/u+Bse++c1/PIbkbtCz6oTXRhE0G4ulhg/Nxu2vbw7VfJxppGNugbVzVqd1vLgYgN/xaP6OJobNmrRXOgYgxPQZAi5LJzhRQfQB0Eph4n6iBWAklWD8vqUBkW1VqdC2cpmmyb9Y/uDGLr03logC8wz1o0wf6zhcMKKtMA7ggiZoe229t1O0lpZIIjS/V+xJzZL4t9hrMRw+GPeo/Pnw3nNrK6q6wdNSb66Xw2CUJnPopu8PGylPFMt0h6DjiumMZ+3sayVnpyR9237HpeK0zXuSmIjfTQBwJsBqPkjOZMXdcLUlw43+jz3e9u3PhDdeZ0nOO4ZieUxLVKctWaJZPyQkqZRqc1qwGvvVo5PptgfU7CL/7Bn7Dc3fKzP/mGX/7yl/zV//1/cX5zorWVlE3uLxWDEx8fn+jVPi8vC1lgXc/jntzsFsCm0zw93fPdD9/zw+vP+eyTT/jk5Uu7Hr+PS7G2llYb51Zp59Va2LL1U57PZ0MRaqP2Zm0+sW8EH19pDre54IkZ70RtAe9PhmIKuFoykpioQik2h3ns5U4TQSNoLQVyoWEZpSRx5Md10c/WRqbaybmQbxZUCk0WO++ykDRzXlcOpyNNO7lkyrLw1VdfQa+INrIIu5tbyn5P2e05t8b5fOZ0sKEHLz59xUk62lfQxusfvueGV3x6u1Bbo+pi9d/WQCyI6C47m1OyNjwxCcx1rQOGlQy7ZLpeuA0zScqGoI5c+D2ckpkLZIarrNPt3rIsNEesYu/MiIyIeK++OykMAmfs9a3lcGruuLDxM0Iu+DW51ZVi0H+sj0hIlmUZ9jpKb7MDzMiwParq/AHZgjPnovRuRM75tYMToFsNuIZwDlvNdvT05jTO6ceOn4SzBbwWZMeAEvXSOFoNZ4Mc5WozhsrInIsGADFHOXaDE7Q2YNKxeHSGCeTCMUc2rWwZadSTRJRQxLFI3aHX6DHcrnQ4iM1RJCcCWL2S1rYpOnGNEWAkMSW5keleQq4B7aaxcKYaSL9kNwNsgypMxSqg2cHXHR/TB/wsngkK6SIrif/OwchMhJnh13jOPYhYvbM2lwB0hx9/Oztaxnub9otFnmmIaYy7PAUI5ryj3Wr7G4n7ott9mWGoeHb+ALZzFxmkkXhNZLsRVMSACI33ZIuOwwhcC3GkbIo9jtN7z6Zl+6dax+AMHFbuvjDvnj3jq5zY35lK1cPT41gPT8eTkdnUauhLSqQcgZbVRRN9lEN6q0PF67w2Hh8feHh62pyMB7e9d/Cgp6kbNazXPEZSRg1RxeZC1/Nq0o5eJ1csaBBNm7P1tVvVSzZMUGGsobTZCjSIaVu9v8MYOE4y6L+qtbic6zoIW5Z1Gwo1y/VJzmjKKJlza1SS1WZPhkKICMtu4aYLt88KbT3R1pNlm8nYxa2u9FbRXh2mVbJ0Wj2zng/0eubYVs6nvbUUnc+c1oxkM8pG8ImWRldk66BiLVW9dW+PwvumfcCGguBTpRhIcmA7W3lk2rPX+9eyQMaaF/Qi4Rn3WmHMhfUgHkcOh5BMwM9sRwRM473G+c0/j8DLesqNA8MHNiEua84qo4tl9h/X3I5o5Yt9MpeFruu3471FRokkst0RgEy27vcdPwlnK97C0bvR7mNqzQwnR9vDsiwb3MCm/rFVeXx5CUMabL7p6vNGoj4X3+fsN9sjGasxOdwsspUWxAyvZkF9yIAtHhvJbj1jQdQhvMx4rYjBLxsIroj6BJbWh1Ob63tz8T/kCWenMIsjbAFF4EoBl4RTq9gmimtevOZq984EBfx1GveAsfniUDEqv7YrCJUt+5yhm9kpDyLTjBKoiUSc60pZFlLZAp6ILM23xLVUQJ1V+yH5KWo9ETyM9eGBUPysRT1/nNeWndcea8XaqQa8L1Zj3O92rLUOiUuwNXdzc8Pt7S1VO2fPXve3N2MdhqNNIoi/ZylltIJItjrkej6xrpVzXY2Y5s+6lB1kk+7svbErO54/f85uv2e326GqvHzxgt/85jf85je/4eHhgbY2pMPz29uRdR5PJ2pb2e/35FzoCKfDI7Isllm1ztPpwNPpiafTidoaKSeaKmvrnOrRBwU4rF0Wdnvr0c3iY+K8nWQpC2+eDqx13do8BNPwmggpoT27BrlJtoA3vhLbMxzPtl8GTYRDTsK5mdShqqknaVf6akSx2s7unGJri2uTQ86JtVYO68rjCg/HNpztbr/nxXKL5IXH+3ecj0+oKqenJ1sPrbLb7Xn56gXPbm548WxP6iunp/c83b9lPTyyL3A+HY3FfP/ATer0/cLtrnBzszfhGDVXKV3HgPrucqN2b8Q1e/Mgb5rmeiQYfpMmYZEZTo3AyTLPuRRi98P+rRsatpkt+5kPChFV74dOQ7KzODkr/v7CuTH/ezavl0S3SDIuOjSmfc60RoaMojvm5qIa80D5jSuQBnQeQe7IatnOx/b/xhmRkrm9vb1gP6+r2YBQSPt9x0/C2fbeeTwciGHqMVZsrnEF5X1AewFd4I3x9oLxH/EoZMbrB0PY/mp8hpGHxCdqsLFmFTSZhFn2AQjWcO0ZbiCh+KLVfmFQxUddWYS21WyDYhDsSnof48e6Klm2yTZR96ueBZ3X1foAIxrD5oVeQN2j/teRdEnSweHuUOXBhxYgQlubBwrYIk5MTN74MmbkeV2p9TJDmyPEEHX4AKb1ntoZjhq1ypTYLTtrAXLItTWbGRpZapo2VhiDi2k7fj7Dyafoo5zW22brh/GKXuRSdr6MTBe7OGO3lGULCP35Ho9b7evZs2fbZ4JBysLIckVkQFFDEvOqbhb1/1qVp5PVVk/nM7W10RZVdgspx7Qo8ejaxoftSuHLzz5jSYkvPv2Uv/+LX/C7b3/L0+MjTw9PPD088vbNG96+f0fSzq64ElFbObcVVaGUhIjSe+W8nnj95jW//e47Xr58xeeffcqL2ztDeZqJLzx79owiQvFsIZ4b3dtRhqE7cXKyVTzrWBcf2IM5MIrugZwGCW8+lE0wZF5HUWoKCL816+ldsik/1ZONA0Q6+6VQisP4udA8ICbZvbA1agHY+Xzm/v6RH94/8tu373l4PLDLiV1JNoyhd5alcPfslm+++TmvXt6RRDkeHvnbv/013/7ql7x/8wO6HlizIOs969Nbzk/veP3ZJ3zx6Sd8+ekn/Oz2BcvujpgZ3d2gVx9hmMRg5ZLz1ssaMf3kEWM4QZS8bJBJ9v5++8uGQuuX2Wc4vd4HgufveBHQzvrDwHCym0oV4xy25+u2Od5zApA0kpNxHmxIpv/xKCm6U9ULZgTjPWfbH0nLaLPTyJy3udofIKn++qenp/Gzst9dqNXFZK8/5viJOFvltJ6AaDif5NmK1SmCsbjWdTJqMePxEjoGRjYU30NEVJOoxci6nM06ZdL+LsOJRRZpC9ZVcqYxD6ppQIbd645FCiFugGfBATsPwW0XDzdYdmLwic9JbVvdtrdJaB+HzN0YdIwYsbECPUtOYdwgpWJQ94B6/P5bOjcMo6KOZE7EmdECY9lvXc2AzVDoYIS62k1AuxobVqfNajdtu99J2C1TUDVlmK2FgTEjuLXO+GunTXLt+O3isztmY3bHZ4ta4jBoTNO6iA0Vzjb0fmOaz9rMaZZlYXHm7UzGqLUOYhzghnJzCoHWzNByR6m983g8ca4rtVk2vywL+/3enO2yQDZDlTwIPB1PrI6IlFJ4fnNL+uwLXtze8fWnn6OtczocuX93z1/+5V/y17/8a+6fHjmvKz1hTFZfLzb8PPtUFeFwOvL96x+4vb1hv9vx8tmzUTtcSuZrEW72ew+Erfe2u8RoPI9aK+fzmZLyQAesJWYjAja//q4dumddkW46khA9810gFKQUI+t1X7Oxd2KqTLxnZEEtasaWEhE1txwQ/hS0rfWESja0oCT6Ihx0x0kzpy68eTqSDkcLBkTY7XY8f/6MV69e8Nlnr/jk1QvOx0ce79/z5nff8uZ3f8vh/jX1eA/1zCl13umRenzg9HjP4f49h+ORjnD36lP2ug1Dx8sJrTZa7ZCUimWUipDzAIqNMaymxTTKOeEcRUjLbiA00cOMTvdvso2uL7a524GYTUiCB869NW+R3CD/HojdsK24DdmGR+CZrW1SmRDAgKJdf/qaYMdkjyckbfxiuo4ZJQTrCZ+2/Hj91qe72Zmw/6o6kI1BmKp1tE5diNN85PhJOFvYgD2uxPLHRAUMGq1OJgljBWwQpWzvo2pTRkZENG56vGTKBn3aiEGP2/vNdQBHVoejiIWs0+/DGY+NHBJr2O+6L2hbIOF0LiUMER1CGK0b7N2aiyk4BDZnBZEh2mv6yMzNqZncgEGpMvo1IwrGSVZzdKpxsuKhj2zgTUSLvXXWepkxh3MdztIzkrjWQCKAoTM8bybElICS97W1dSNXBYFoPDcxEZFwthEsXEemwMgg47mM2lPcM436OV6HVTeeMeg+jQwpHEd1RztH4NfrpYfT8WOM/dONExAZ+RagKbVVzqeTjy+Dkgtlt7Df7a1NJ5vQe/xe3Mj1gKVT4qYslGeJ5/sb+otXlJxp58rjwyPr8cjTwwMpCe8fHzj3xoJF+i2E/5MgYobpXCvvHx749nffISSe3d2xKwtLsYHypWRevnjB7e0t+93OZppWM64lbYZqXVeW2815ZGcT2/YzaUyrt1otVUpmM4Xe6x2Bqp3seJ60bgpwbBlZvGf3vSme79WYuSp4e5sH875YRxmk27xilmwtPLLjZsk8a5nnFY5deHVacW0qdjlxs1v44otP+eSTl3z6yQtoZx7ePPLw9gfevf4dp8d36PmJ1M+I2rSk07HSzyfOhwPaqgmY7O949dkjz5s58FIKRWzCUw9DEzYvvlQD9/Us3MVXejOCn/8daRJqEV/v83Qc3WBege2ZsAXK/oF4ROzfdpfoVKsri2y2qPcNxh5ooG5OFg+g5NIeINaIFwhUa2084+se9xgYYJ8R92FzuNftlCKMD59rrjPyEgH3siwjgerAdfabJV1ku7/v+Ek425SS17QmI+yQUZtuxOiL9CwnecRrD2nL8GzspOnnDolFv3nReqJ96w80h+dGUNL0MHU8FHvg2BpVnLCgWwSFPWQRb5Mhsi7GwtSx+YPIlEZUbOexwWsBVUY2tMEeYhAiQWFiM+oX8IcZTpMUTF5fTt4gz+iV3PaOWB+iP5N5wStQQ8qwWztJQCdR6wgodGQh83NrNVKOkfnykQ0Ak0Nb64hkx+g2n/pjP7OAIVpnNizqsk95OGP4cENFwCUbJ6CGtKM/ulYrUDE+UJsgeri7uxsBweFwGIYxWIrn82nUbAManwckhJGcx/M1FxwoOQ/YeHezt6jZUZjWjfDVe6euZ1JvFDEI7yYZtKgpoTkjXc1h3xX05SdjcPo/++e/5K//5le8eXjP7X5PT7D2xvuHe3OEpVD2OxTh/dMTp7Xy/es3Vn9dFsty7265v7/nm5/9jF9883O+/OILq1eeztS18uLu2QWRZCnTPVhcWlN1qA1Z6591H5SybMGwClo3hxBtYRE4iYKU5AGSQdgje3WINWcrSRxOB1+CQsqF4vax92aERq1UMZnEPgLmrYxSdjuev8ywv2P3/BXH09nY3SifffqSLz59xVKgrkd++Vd/za/+2V/y9vV3HB/ecrOALrDricyCaKZVkwY8n4/m1PKCpj3L7XO++OIznt3ecrvfcXdza+jUUsiLEd2Kf2VJ1PW07X882+v23mbHZOimD1LTcHVz9m/hg7gnvIR/pwzXPOmmWOc20RxuZMTYiMPtLS6yZyKActOAKOp8G0ni9tXtgnMjBC4y1HlfD36LO/dwih9zgrPtvewu0YFoLcvCbrfj9vZ2/H7tW9ksylVpQsF+7PhJOFuSnbDh3x2tSk+bxuyA29xhzZltPPxwGl01huWN/rHxPleZyAXJSKZoxuskMUdVLT1D1HvIsiBOUuhO5EiSR01ZxAUQ+gazRNZoPsw/I2210+PxaM62ZJIyWkJqrW4YtqHjeYa2owCpenFtoT5kFPlLAfxx232zRnAxC+OLyOZc+iVcLG5wZ4hGykbk6t0EF2bHZM51g06v+6cROByPHA4HgBEtGoRqRlr8OuO+6MgWLcsLKGd2tgqsrV3U0wPBCAlHFR0KXIaOeMTeN9KU6uX72zD6OTCzY/W63boa2at7xjHzD2JT1tnJ+rMpufDq7vnIYpMHML0GzKqxZei1cj4dWUpmyYUimdQUah2TcbR1VirVs8ObvPCLb75h2e948fIlv/z13/D6/TseTwdaayz7PbV36CbzacQp6/N9PDzRaydLZimF97c3HA8HHu7v2S2Fzz/7zMlTjafHR1JKPL+9Y7/bsSwL9bxe3K/QoB2ziEf2oNyW3YCO1RnPI6tykYcYy6lAUhmawHSGcAmqpFJsf3u+lnNm8cBNkkKr9N5o2tBu7OWOWB/uZCu24Nec183NDaXsKC7H+Or5HdqOvP7hNd99+2v+5p/9nzzdvyG3M3eLoOsTN6nD3oZ9iOCchMbhCY7nyvdv3nOuicfTyp/8yTe8eP6M25uFT1694vnNraEKKbEk08belcLNfk91FCsCCfWBtZLZbGbKiCccI3PwNd8dtRM2VGC2keEQA40L2B4YE7WSB+uWEUf3whbUxvuYnHIyJEXF13Xc6EvAyParMdiNuHapfaDTvp5V2ZAtcZnZwwFtz/6g90vN8mXxiWc+6nK2Vxm9cLYGOcvoy/2x4yfhbHvvHE+nsUEGxJbS2CiRBdRaN0ij942NPJyZDEc8M5c3+ODS+Pu3pp9bbBZnisymbdKIsdiCeEFy6TkNibmt3hPeX2IwAngGZd+NWijbeQ2Is5tRHKOskljvXywWwq/aZomeQdg+az50+moudRdQEUAPhIBgHQdEzcjmurfmjOAguwi5X1dMygnIKOpigUTETN2NjBDBzFb3mesuyf9u3iRjww/Hv6m+RMYfa+miZisyoMMtmpcBYUWdNCnOimWL6D2Lx83G2HjuaNd1HZs2oufqEfjpdAK/hrIsvra2hv5Yy/PAewsMs82zdfUocJTAmerdEQtEoDakdZs5rIK0TlubQ1syxtG1rqy1cV4Nor67veXrL7/i7tlzys2O9Le/Qt6+Yb1/T5LCuZpxGySZWEPi02bENHvPrfHu/T1v7t7www8/8O7du2HM4r8hFpFSGuuwa4emnJzhPHgIya4/EQ7DXtC1W4bkcGfqkbMy9ly0sEmPbNcGr6viWslm0GMg+jCgMvXzjkzL+BK1QZ54HFvABEXw/lN7LqfTife9cnh8y/s33/P6t9/y9PAe2pksNrf6dDpQRMmT41e3PWUptC6cm/JwOCJv35F3hdv3JuP4yYsXPP9/2nubWNuW7SzsG6NqzrXW3ufcd/2ejf2CibGRpYhGRCwUGQnRIOLPHScSDbdCAwmJHwkaNIwsRaSZSEkDKQoKAskgBCQQBB0kfmIprZiQxDbmx/AAS2BsDO/6vnt+9lpzVtWgMb5RVWvfc68b4dx9/M6qp/3uPmuvvdecNatqjPGNb3zj7g6HZUEWgdSCdVlwXFY8u7/Hl57dY8m+b7wFI6gvTKRJAVGDSgg56NVx1c+LgIcx9tNILw1VrghP4xkInNUb9asWOfWoceehEnljSTw7Ou9lChoa4B4VNaAR54/24Onq2uyRVGIgVrhWe5rJmsAw2rPx7nlaGfyXbdsmZGCkfQZM/Wmn+03j3TG257MbKBEs69ojlZSnBDXdn5nFWh9NeCKEpiLIkv0B83O6Z8y9FQ9AlYX/kwfTH0CENYgjl16aDqazv0+vHl4nGTFXNEeM14bZvbtY4jCSDcyjLZWJdo7I+04ygxLXhTd2K4osTyAy1l3U8d6AfKzfqxtwr/GsvRnBkhZoKM6k1HPWBo+g+r1PXx7pD3QiaRp5+GrdyEb3mMTocUnezSdToapvrEfwemIj9XkjObwT6McwtsGOVsLYgYRYq6hB17DpudLTV02DP6CjlKqUcsVy9JzriNQyuxGt69o/O64viFYzdCVEGg4UlghnoNXGSLu5oAnIwqxuhDJCQchz3dYqkRAvB9lpZB+2DaUWnI4n3N8/w7d85cvQQ8alFhgl/y61+ExMZLl+IKojAZHLr81wPp/x4sULfPTRR/joo49wd3eHrIMwNkftAUJGadi2bX0OcnaHJIQQ+t4Lgk2tn3m4+p6VEeYajYC5s2HVpRUN0h29eP6Px9j2fUdG/Mf1wOgxnpAVdxq2C15bxatPPsLLb3wdn3z8EbbzKyS7QNoG1Ata2aBZWSURBfC+d1PO7mjD9ZZfPZzx9V/6JeSXniL7xjc+xrO7e6w5Q6yhXi445IzT4YAPP/gAv+7XfheOx4Orhy2rxwI9SHHGsSKcWw86bEpGjfNnnByAk1eN997TYDEpPYjhGapUKuO+dkn30NP2OW1U5UIIi8SZwfNS4NUfcVVNKoqN5xxcHqNDHLXw7jjJ9drgc56DLaPzFl2rZsPZ897zPuU+j892/YMpx63i5WvTZ3zWeCeMrbWGy+sHaFIclrVv1oUM3SCblFI8CRLyNQAAIABJREFUD2Ej9xbEkplB2r2f6LE34fGAdThTsjh1PiWqFAFA1E/tMCqkgRFoiKd3GlGf3OlBBqmny3oFpHltEGbjYQAWg28H8wWuhKoy+8oCjNr2MqAZQa9t60SwmFMuhstl657orJIyL8iINupekNKQWWzFRdVbMyQFcj6xJjN1hGHWRX08Qi0qSChhUKKfZm1O/Nq3Dfu+4XhY8cH9XYeQY562ickbI8qBVB2+6k5SbdhLA0CoKKF36hlKMeg1dv6sW9+4xnwfMNXXqZO3ROA1r3QO7g53XWqxteb5tJSQDyvyYe2tuyTpSJPU2utyZxb3bLRjnXrNtnUjElyB6D9s5h1eEktAzAy11F7K1eA9Rl+8eoWHbUO1hmcfPMez5x9Ac0ITYDkdsZ4O+NZf+Aru/8XP4p/886/h/nBw6Phywfl8ISog7mzpAsAj/m13ZbOXL1/i5//1v8bzZ8/wH33HV/Hhl76E58+fY0kZCvIPOt8CaNWbIjxsTjZrreGYFyxpcT3llLBt2xVBbk5jxN4LjkU+LOP52Th8Rbiuizs2JkC+O1H2sk79nV2U3xpQ4dBuWlbcffAMLR/xYA2lvMbDqwtevrzg9dbwUAyvt4LztuFyvqCcL4AVtO0B7fwKyc7YXn2Mhxcfw+qGJTV86f5IYcEJioRDvqrZjWRakNKCtCyo1lDOFfu+4fXr13hxeIUkgrJvePXJJ1hTwt3hgK98+Vvw4Ze/jOfNsC4L7CRYltRRsIbmgaIYRBoEC5wTZkg2zjCjIOM4Q9ARL/fxR+DicyyUmVUoFAkJ0YSlUXFNraHx7GyFzTBS2CwB9Va6IXegocFSgtdbe3knkroMJp9rrV7r7WdAwrIk1Op7WZPLG0UgAktAc82A1pys1xLRE2vwzpBO21RyIWogQvsFIglqnspAM5S6k1TqvZQBF96YFILeON4JY6uq+PLzD7AsC46HA/KydtGE/XLBtm8dbtooe5dyLM7UWzPBrEOtPoPjkNJIzCJy8a7EVFuD7Ya6sZ9srDWxITfWsf2JvSvjgJ7xewBkOSrW1Q8PVUGtQ/IrPKXImaoIWC3nXr0ZavYDqrSK+nDpHteacs9dhNHgbzqjtDW0UtDY57a1BqSJuY0p+oRDS0Hk2vYLpI48bM6C03Lq6jRe/uI5pvN26fnq/hwZNQaTN/6ub76GVrauYlWbt2JTVTxbF6yno89XSqN7jTgZbNEFZzPsZi7jp4LD4UBoUlGaeE8FCMTY+5TQuFTgsHgzhmiIEOVWTjTDtWyfBYzNUhA1lLajboXwlBvdtCS8fHjpjkZ419LQkKFw49+iv+u2I+XEDRolNtqbKSQdteQAcKn+/sac8cPDA877BWas2z2sWI+H7hRdasHDfunrb0nJ52rf8erlS7x48RLPnj/Dl55/iIaGFw8vXRqzFjxcNpTLGRnA89MJv+rDD/GNFy9wvpyxtNbbzTp1pUIt4HlAtWHRhCzwaGsvuJzPeMV6ZN+L2tMlXrpXO9QOcUnUdV2xQ1AvO+TiZDdrhf+NnHbrOV0Ak+MmeNjK1XkSMZtH5Q4ENTEXAXl4jbQQZYn1WRwNQGNte0potaC8+gRFXuHltuHl+YKvf/ISv/TqFc57wXkrePHwgBcvXnmbwa2gleI9oLcN+3ZB2V5h0QZNCWtaOvwu4vWagzkd+Uyv64V6zfJ+ofhL9SYh24O3OHQ43TWb93rGy/Mv4P4ffw3f9R9/J776Hd+BoyVcXpyxLAtOxyNW7ilrBqiitNKJojl5Qwo/Hhq2Uj39RUe5NGDJqxtWQ6/7NgO0AakR5heDJXIcIFCWPToBztCsIkNxPN6zraRLgnoI7kZMA6ymw1tgaFlhS0ZL/vmlNU/xQWDZtQ8Kn2EtzLs2QOBnlZnB6hmjBkKgYlDd/e8QWRQVJ9Fx3zQ2qShlY62zr61aGrb94nl7CNY1I2c/n01+BShIqQgOi5cRJCFsWL3kpdJwwHwjrMvSReNDOMERpAmSMOa5SvWtLsOAAHNESkMAABVo7GgDcXq85wIxIBA0VDQXtUg0UowixAKSAaI0BTC4rKAyCq/USXYoKtEoJwi0om+kZq0vQOF99aJYG6U/6C+FRy/MbQUNvzGXqf3arqFufuZVxC4kMJBIEjlsAK0OI76z9GXOZY0evQFvR2ThZCavt5sg/5yxpIRjXnE4eATpVxtGXPr6SCpoSXsOynV108ixciMBmNijfuQKCtRC7MCZ6rE+Yi0kVWBZAMoVBiLh8zJB7GwH5uS42p+NsPl2GKKAqCPlsVEBK5ZM1oSUZvk36Ru6CWgMWaNad5ci7f1MpTs6c82ocT1v28Ubg9eK3RrycYUsCU0Cvt27Wtf5smHfXD/7kJOLVtSKNSW/hn0frF8NhCYihob7fMCz4wmnwwFonrtMqi68EsaWc1Ob9frkWho0J+SlYK8NuVb0ym9rAI1tT6vUUXoBBBs9xBOEa2Dsh7E5wINQ0BRoGdBK3V7ul1ZLryzIGucKBWhU3OF/eMDlxcd49cnHeNgckn/5+gGvXr6C7e5Utb124Ymy72h1J4omqJYgQu1lTUN6NvagARFVRqVDiSloBrOJbBgpjvAkYPi3X/86nj1/htOdi47UbcNx9Tldcsbl7I6uJu3dowCgakVbgg3u+UlYECbVa3qh3di6s1S74+fazX5Nm1AgRqSXzUX6r5mhqoe0SudtJr71dexHkCOaSVBaQ90NtQkUrZ8rPmsNY1sGvwLQ5ue3X1Yw16nMF2dJrQjej/sgglQVpfn3EUjVWrDkcN6NNeOhguav7TXO1M8Xt3hHjO3Iu7VaUcveoafSvLYqqRNGlsMaWXkAg60Y/4P5ayFvFptHJrHp/qDb1GbJrD9kzxcoqsGNV+Q60FBR0UiqyClDkiDDlZh6ThguODCTdWAhJefNzHPyAz2pQhvzF82Ve0Lw2nMWXLScq2aGhZDhgKOBkN+IVlwRcoYykTsEzIN0iUu+b7ICQR5JKXrIMtIuFfv5Qii/8boSc4NCoQNai4CFaGgLIUFrnqcKVaWV+cwDI1qz6nqykc8i7GMg8UMECOawZs+D8rwJHV1IkOsIXUtDuWyOVKTshsDgOUBS91NO0Jxd6Wl3ybVOiOAcdYMbfpp1sIH56Cj5cQewq5HZyE+qUvUnj6YMKQQVWNtl/Oytli6EURtTEnmUFxQa01IL1sMBic5drQUvX79y2NRczvLug+dQAc77BSCMve07LvuG7XxGLR5NHpaMD+7vsGZPExQ+v86LiIMunCoDPjiccFoPOB6OUFGUbceDAfu2MzfvOV5j7ry26H/Ked8LLmmDpMXzwbGGygYel3QibDwHiRRFgsjc5nCkcmKEk+1dagCsAtu1Q8iR947SuiWN0i0TQHNG3c6o59fYH17g/MlHeH1+wMN2wfn8gP3hAdIEqSmsVNhegVqAsntE5zkfmHpOFqtAUuyTiL5psNDcAIsCUJTdy5F84h9zIvzs8nXY8PHLl/j6xx/jeDqhVU9D7Qc3ilkT9rMjHylnpFVH+o1nRPztUgpgg79i1WH1zuzfNu5JfwY74uxq7ozTqEVJDDDO15wyinmg0Qjbwgb3pjXWjqs7CEgZ+15xsYoawc+jvKhZ1OGOnw/Rm0AM/HqVK6rBc/lewti6Ip+qQtmkI66rtdZZ1uB11qgyAVBUIW3v1/J5450wtgCosdk8b8KWR1F8Dh58klxOrrJYu9SKOmURJIWcm58Ky3EZ0mECmLQOR0fuLJiSh8Ohl+F4NMgkfx35SM8Eev4vSwLE5R+7NNzksUXZQC9RMs+vCT9jWZYuaWYAkDzHViprubhJNXtSXiaoHCp0FlpXQolINHnI7FPQJgYdRtRvhH5i5oItfGTXH4c2SRJo1SU09x3b5cKSG0NaF8/TCFjvx4OyeTRfp9Klwm44EQGva8bpeOj5uWYND1tBqy7eHgpJoaAlyXWDM3NDLshvnfTVNCaHUTWfoctYetP1KBEYtbKtP4e0TC2zcuo56NhQMxEu1oOZTVFpRsoLYW1v7t5axV7GZ14uFz5zjw6dpZx6Rypv9l55T87qDNZ4kKyCKLezKb2KYM0LymXDqynVAsAZzcGcBpx80IKf2lyPuxaINRxSwnJ3h/t1xYcfPMcgEA2SiBvcQcyDCFZN+OB0j6UzTq/rpl0AYBymldCxz1vuRDmgweqOYgNF2h9eIXiEGmwfSDe2TaJO29d31H+3yufGc0NVe4oGEMgO2Nawt4EcqZH7IAosAAhZl1KQjiusVmipWJohN+v8irwe8SwfsF02bJcdntQQtCxoS/IIMXHPS0LKgst5w3nb+Hov4gOYLw1+h6p6BAmh8R0oRoM3lXO+iSLnhPsP7rEcPf221QKFeUro4poC5bxBAKzrCt2FEpZDba2fw2aImmLVqLgNMtnQDu5OjMm05jKK1c5DQRmcjkgrBBej1npl5KNcLs6Iw+GAZT+iwHWym14bs7ny4rEBvir1GXjJVS/qcOQjrTefT3OZEAC8fjh3w12JuHaklJK8iLP5c8Y7YWwNrpwThAdNyRu8m3mi2rjIWsXD+ezlBEF6YsSqEzEqgNMM9VKRKa9aqcRUCYfCzKOgfD3JZujyY4FoipgznMVRJkVErBM0Sy8PQD8cFUR+xCO2pK5PbMxlltLYa1OhGUiMmMCoSZJDgLSYftiSNGa1EaqKdk/Ja5RbA7pcZWQruK3FZ8gkiFbCaHNxY0JpOD+g+QfaqFsWEaRl8WiWcJNyvhprJ8ORgdm1KAWLxZfspJZt2yjiffGDNfl1RGu6Cj8QoxQMUJS6+zPtkebUW5IRSQVr72DOaG+jLCei2cPhgNPpBIgjBvu+UxoUV4YWGBs6Nl2MIKYFTN94UFfWY/Y8Kmv3liWP6AmjfKHWvbcELMW8xi8p1pz63+hkNFx3MXl4eMB29jIaSYq7u7srPebz5QGLKNbk2FoTQVbFmhLSeugOpteG16u0QuE+qVQiivKclBLWvOCUVzdUPhkAhnLQLABQmuH+dPK9ljKFN0btJXhoxz5dlc0BNBjE2nFi6w61dtGJZkGQ8vkX37A84HPYK3dqWqxtj2izes1tUmfLd6zSDJITzvsGbQUPKeMAwc5cunf1ATIEkjOqAJU9hKklwfVpEFRYMWQF0jJ0jPv/mfV5Z+yFdWHapBs5j9FUBKfDAafTEcfjAXenE77y5a/g/tk90pJQzZ9hqRWXfXM1tlJ8Hq0CW70ygo9Jk/5f/3lSHevYxpy6fzs4KyZAVWc6N4kSPD+z++dYg7QBWSuj3GAplyAmklS1s1WfCek3QcQ0TNc56mmvbIpZP5sMeHRvgYAMu3BdFjRGJ4u24WRH1D8L1Lzpdx+Pd8PYmm8SVzoyauOS4tCcLRYPpBrZn0aZwi7IziiGK9zMUKx0Xc7eB5WGGwpCb0DOFHan1GAs+S5dZjR6iumQG/BIeHJd5UkGCzeJdvg25DYc+uS9legkkiDqB5BIQgRr/hVQcSzw1qE9Xhzm/HHgJSFb1j0uicU2miKoDmM74G4SHaq3HPS6R0IzOXsUTV3bvtBoaIOgZRTDUBEsFHLIS+6RYDhYpRSPDPYLUk5YNHvPYkpMIp6dueFvRsEMsgERNbyiUIlUgissAZ5XXZWzyDpVJfwYhr8SAqu1QlhqNLcj/BSDGxgEoMCSbSbLDcgcNMaHw2EIx2uIf8CfKOes8nf3vQ0HUnX8TbTpQOZnEdno5WHJO+zMB4ALFPB6JiOTRJCWPDX6IJTfYr02lGKordDYGjQJUl7oPKxYIDS20h0kZ7I3pLqj1sTnR0A5ea9lVR0NB+BLdBAIgZTv3KEN5zucXovyEx1GUZUpV161DdnVHinS6FndYVXdgTN3NheWdiUdncAcTSOUDMBqwf3hgC/d3yOr4Lwu2MuOQoSlmTNtZzGa+YDukORyTVQc559d/5uKdia8HzGo+v2JCJY14XhccXd3wv39PZbV+1eXVqDVa6EBgxVPAVmrSABSrbC6T47g5EyKn139+kBSWZeB9fM2cb95dUbrc36p4WC2YYQDQVMSFmN6c/w+jydhXjiuJclU5ig8L5lK6JAc56i16QzTri4YFRsBa89zXqt1By2IOaPZCqF8zomq9ryv1zNJ54V0NJPOwOeNd8LYxnklwkUGG7ApdQVD73Mve/fuDYBqhrPOhDWI0nMx2+VyJeAAgPKC10IEDrcJ+hzHe3OXqO+eTFch4cZyqvu1J3VVYsNDBsHcjYPMIqp1wgokI2VzWIJShO5gVJQyPUSZmg0AQ10rHj74e4h89tQHUuiRssZsOBDS76nSaLbihKZEAx053NTvcahFNUZysyISaKRzSjgEBMrm6AB6+cu+u+B+4/uhDuWK5tiFLtlZKhoKSjU8XM4AfMMLoq46Do4oqeLh0Cp0USdQmHvKQlGO3jIv5qy13mYsWLCjxIQbVkcBe0T2golQEYgL4bjwgnvzah4AgxDCVEUNLdsQ+TBHJ0R6nWlAqHG927bhfD5jPXqEHuvO53X0v80pQwnto1aXR2wuMZjygnXxfLBKcmGFvaBW34cauXaiNwnAKs6KPywLrESDcq4JML+qDclGGzNEEwIdedbeas8XI7ZNUQTYrOL56a6ztVXz0CUn2gVGfBCwGiGwm2mO0E2Jv7s12A4kc1QqgaV/kT5iLs8YZUpSVM6T4Ij2wQdISXDeN2zRjKIWVHid+rYVZ+uWKd8+pa1KKX3NzeIvEV3N5YyVzk4Dfeh+LvleXJeEw5pxOCxY14xWC87b2X9ncT5EQ+7RJbgnZCZuTU626HVXHJvmIWLqcCwjKDEARsChNsN+uVw9J+NpHEI24ZT2fDCfzkxiBc+qcKzi78C6Kejnc3wvfO9KSdT4G4+d5Nmp8VSlw/fhzEXaJchxBBKxLoerFJRMZ0E1I1r65vLHebwTxlZFsTLCqKXiYvvVzx30xPBwCR8GPBDRqMOy9H5qxX7ZnFGbcxd0zxH2xyEGPoQu1s0HpN6OC4+8Ixfhv/Ze/UBzPWTQgIuIkwkqG4rb8Kq8SkWGSDcEl71AqpcJaB41plHu1A995hkjYoqFCgC1Fve048BvLK+ZjMWsJ90nl3NwOW8wc0Ja1gTNCxYyplWVJVRc9G0wnultuGoRiWwB6Ybkoogwl9t6F5iYp8PhgLwuHpTrUHxpRhWg5gzbwgYIW9mxLCtSciKDNDcM4QWX6lGYoxoFKMCafY0dDoc+X70Tj5GtSEPVoc3ho01r1e/LG7FH1SRYEuZ51q5Yk71b0JyrAg2qTTnUvsbVnYDT3aGvyygpyxOSUErBpew9EnyWn+H+dIe8LDAYXrx44Wtndzqr5uRIR/XoZuFzaUmRk2JJIcbvh1rclcGVklQUxtzGSAMkrCLOMOX1W23dwHsez1GNFAhCDbamw8q273QYWQKUvGwDKrg7HftaiMN3HJToz8iEBMLpWXSZR35abXCDWQrqDqzqKks5JawpX9Vce0/p4ehKqz5fxwPuTkd8x7d/mxsaRr3VGi6l4LwXXPYN+x4QbfEAgKVelaznUpjCqjvfW3zfVkPZty5hWUmUNDBAyCtV2ASSUicXLsuCZT36nmWd8v3dnXMRJLmGdq2jkUktuLz2sqCQHo2I8LFhCoSwO0bma6evdxuiQtwcHREPmJZAml83qHVv0VKUR5B4ZYYEyVKYB67DVdIw9pCuf0+4op8jwW24Eql4NOJ14boRjCBqhqNn49lTIcztzvP2OOf9eeOdMLYAmEetKGQiRzQm6iSAkYMJKxvHVMBKBrSGBDpQKUHYezBTTUezl9l0BmCrvXtKyMOJTdAT/3prbrxrtRHB1fEwA4IxEX+9VQgq9s1VkbqIPHwRhq0LctWSgB3jcK0tmiAHZX14cCFsMHKFGPWbYWT5QWJDtLv3rxUqIMUc1EAO4l4SkjjEmHPGIiM6Cfk9GI1bxBOCXpfHJ9GH60Ub5e/Cyy8wik5oUs9jrot/hlmHi7sZsmGcBE7+yXnxHFTMf2yubsiMX6174uHIwIaK0eztxvzHM9Xp3jvE92jdxkEUqQ4EjJUSiW3XMnHuoFReYzSn14EgqOKwrv1Aa1SastZ6owvAn89h8XwpAG94EMasOXnLKKTRSkGC59/WJBDJ3ZlDX4uMMgRYExsZwGB5cgYeiW944/KJDVw9L6cg3Kh58BZyIvvbPzA1877VPNQVZFuL4KDqtbuAw710sFuPlsaGEAGWJbtwgqHrR8/HX1LpqEmXR8wTMjE5wkLnelTq9kphJBV3pmXwAgyClWmSZUkoO9sVwpB0YZBEOdRWe4RX646yR3ceNkGoo21lQPexPkK4JTgc8SyEP7Pm7RFzChEcQq/FNZNrrShUEtsvFxzW1SsBDoexNoFueOM1JwMNqHdd144IttYgxXOqiwDHPMrPanXjJDKcTzOH2uM14YMUGXs4HL6OcknUhwzf18/pgWD055y85AeGTqJEN9LhBDjk68/ZGe2zhOy0s3vZZQRX8TwSHKFLOUOtdVi591X/jPFOGFszQw0lHsr2gQtL4Z1rek4BGNFYfz6cQEy6ygI2M5DBNAQQkiVG44yYLEYrwjrKkGML9SpXOfLNEKULnZDFB8d10qPKWtwwNbUuWNDf1CNNN9JB+JlVsWJoCpGIAXX5WSNTRF97LWIs0Gj8HoY2+gJXzkGPgFmr16EUGtvu8U4erhs0v68gsERZlhvzaQ76syJDORiQRqINy580a9/Q0c3GYP1Qi2mLiNvbswUc6QvhipzGXDM4h5H7FL3WQ51zaTOUFx6u0uDOnnwfMuD8KIDvKEhE+JMsZzhPkQv2nq+tAwwpkUkdh3si6QceyUYpDyaUwhEbL+2qjHLBuY9I2QU8ao8elmhUP8Fi3dCAzz3ReYn1x8MkjNO8b0EItfIZCx9UyG4msjWF+6nXxqqvn0oHScVTDpISLKdemhMGt8Xv2zgDgqeQOvEr+BDhqAVC4TlaTM8mREvUL2J6rv5+d0B9fasxp6cK6y0/x/u15y9dKz1+Gmx7nzOPcpdlhaqitnLFbPcPDnJVY2Q8HD+wlG02tnGGhLxhpFVySig7SwilUl2soewFZxFs5wOOR+9PfDwex5nDz3Jj6gvT0ZNExM+NbayBWitqNncCVaCZCBv30tz7Ndbinhy1jKYqsb3j7KMl7DXrcc5B0PPpJpOxtf6Ue/mhv34dRHxqzBG3TjXynIPZ+apRkxuv8Xe8jlggjTW89mmi1jzeCWPbmje37glolW4kF5Ip4hCve+lRVNSUDjjCod85LzIbvzblPiMiylNezSNc0sXDCyoVZdvw+tUrPFw2p/Cn7DJlvLa5k8tgPQ86OVS6Zxcf3sX5xe9zbd4FZivXjZC9Q8mALdxH4GHKO3fFqKFhrFEScBWFXOdJ4joDGgGAZ8/u+rx2QolRLq0NY+ZGoyJlZ296y7QoffGotBR2UQEAG7lMYERI4ZlXM7R978IgZXf4TEj4SRAagYykGaf7OzLMjU6Nja4gtYZ9p2qYMmfMCJDt+OZ8TszF5XLpz3HAa6Mu+4owBemQvR+YgbxoFwFBrCGhYYp1SKPuRpCoQWz0UrGdLzjcnVxrlo7O69evuzE9nU5eW5umhvY7a9NtzDNAQ5kzkjWoGJaU2QnKUKTgIaJsDKckHKXYI72vZ3ImfhCzaqswSYxYSofUNMWeoAPanQvrQi4Kr1HsKQgARxonEcH51ctubHnc0oHsu53GhoaGDmQc9ANmBkQan4l17kFOI2dvIWZjwxh7qZKnOhKbQqSUYHkQZ5pPMEp11KaJomFqkBFIQ+x7M1S7eFehaS2peN29aObbiI6FU0ynCwAFV7wuXJRGXtRZ9ca6dEpJBu9iXVYs+YCaKzIAaQ3HO5deDdi1Pz8SGMOglu7ESY9s4yyrRPvCKTarXB++L/daXH2OlR5ohq0WT1VMBs6aYSvemjGiw8xzvHMpJEp4pMPHM1TcMODd4M/gERokMqQno8dvrK45TTefDaranYaOKk0s5CsSXPsMw87xThjbgEBzSlgOy2B5xmDUAPG8UCuVUa6TaRYdVGwRATp8gJ5THPlRHpY6RK2JVLpnTfhlu3i7tyA5iAjuT3dYj0csh6PDhuGJwSXD5vrdtu/I2Us9Ul6RF9c3DmIEQOo5c7IP57MvKkYQkV9eEmX8WIJj8G4kCMjCDAsEkhbIMjzFMBDLkrzt2QSFROcOdxQWlle48xBKNZUbphCOhgEqHlHnlHC4O7lDwhPRUd5gJrqxLa31DjjHk7cjg4grUO2uHNQPDxpHNQErpDzibs60zevSQ5q27aD8NxwuK16fWyuSKk7rwTvhaIahQhaW83ij00G4mnLu4dwcDoMMse97P1wWTdhpZGL+0rJeRSbO6s297s4sCveBbbv4HOrILVmrnYkMawOBUMXrFy9JHvNUx3E9IJ3uRt9g1paGAY5ctKo6aYekDVHF8bAAdQfKBmsu/zhH8nFgFTaT8Igsj9ptGuFM5aPWmqNFVfHq9ZlVARnruvQctW+rYG1GhBAHlqHVHUtWnA4nZ08ndUZ2LVcHXo+kI5phZGtp8AIul0v/3kl5gujbbCK9+XoWxeH+HsIypiD00Z3yPYkG1Gj/V3A6nZxPoF7fX2rpDr7njxtUnRfiKBx6icrM8A+nH0St2vSecDpTOAitucIWjLlKAOL5/Hg/JPXmIbU1yFbIyPbrP+WEU7rraTFnIwt0PeL5/TNPJNEjzCpYDgf0UqpulBpKIZM+544ogc/Bz5IAr3zPnM9naHXX4Hg8IUFYs+ziIXfUN1bRTuA0MeRFofnQoeM8Nywxb/ARpMS0uGZ+nGmtVjQZEeljkpdOhtHZ/oVw+IKUl64r3tNIZr3r2JIXvH71CjAXPFlWOoQGdziZ4sEvY2iBd8TYqmjXuv0UQ/QRfBeeS8DKTtlPnV2HWHBv+P3HDLUwTALqYtZw61nHAAAbw0lEQVQhwnDZNpQowk/JyQiHI5AXh5mUvv+gh/ZrjCbNeV2wrAdvlJ2o2iID9nDT6SO8uNhMkWdO4oY2NrCTcCgZSGhrPpzCc3CjF0SR+X/oc3EF18iYjRkyCfg2SGNK6TYRRYiO+19l/RxhnW7A1LV887qSwTzysWZkiJqTnBIUCcoTVUe+xkCWqP9tb/9G3jmfY8DsSUh+US+xaXD2qguNDLi4z+cU5caaiXU28kylq0DF3C1cp4n1ykK2beDCHrmMsrSVhlkEyEmpPsY6cFW0WnpEfFVoD4fOlzz1twV66Rg4x0YnYobCO+oSJT061qvFGpkjrMlpDcc1mkj03HXz3GyrbhAqIwTVEIQPZ/l6Hz7eg1kTo8VM5qwhVJICoeoQfeTvfSH6OhLtWy/WJ0BpCDOECFkgSN6nOp6NQ84upBOG0w2tz5/XqabDAl0zJJNJ28ypz+BjNnFyHtEg7wqTAbXIFBHNDOb1CCBi/0aaJ4l0kpqpQtWwdISkOYzbolLDoMnTAgb1Ol86xdqYq4VQ+IGkLwYdag1Lco3m3jA+5pDXZpNqns57g2I9kWqP+lrw85O5VnIcHdninoAgL2aol+VFoMIHpfFZ/J0ciQSe80A0XUm9ZDMpCZLgXBAKT+pkyIDZo0wxzncRYFmPngdPCQlem+zoi7KvcYMVoAhgpcGPJQ8EvMUWouoSyRSmvp4+b7wTxlZUsE6eOTDlXRolz5ivGTkj6ZBV9If1Xwz2XJTHuCcdXnZfPCJ9Mwij5FLcM9u2Ddu+u5e8rOy8c8ByOGA3YK8t9ty0f9yzBiEyM0NeVyzr4kITMPaonSnifm8mcs0w7lCk9PsJ4+DlKej54sdqJ8A4SBXAbjaYmf2+pUPZ8ZpPtbvsYTCFxiGK2WfDbHAmZjQ7uCIQxeYUhybz4jW2wg0u/TMnclKNfI2RkTggNph5Yxb3xwkrhdKN9JyiQbqRjfkTkAWNRw3k26cdsHnEnEaEu20btsulM2sjBx71kEIpyAaH8iplRjW5g3I4HBwhgecnk7pjgOQOVm9CZy6JF4Z2FgOJZ9WhfDoRSdFRhDOjvIhGljxv8el5i3RDE8YqmOODnTrSKiEt2HoZS2jkmucMH0XBwIR20GjGuamiUF5XN+zNBWrAPS6qPXKI6F1TgmQ/cE1GymKqjPc7akAPuYxOnLqT2GpFz+gG2bKBesFwicpakdiUPWV3iozWU6aUlgBD9pFQZ05pvpJe4482aqTHHqGalobBjXywAQosiWIxgb40d4VBYytgCY6oM43DkWLqoZ8dZPa6QfZyvjCv4exLXBjPAGP42q/J/NmHbPtMNIr7UgMShJIcgJLX4qerp7ASJy/K7LojDUeH1fjF3/JzRPp+ccfGrgICoaNS0Sbjm7ycjWsaIqi1YN/dgT4ejyPv3dyRqVw7zap/BhGG7rlB+L10m2G+oGEmMP0VQJASUWjArCA0gshVxIv+XtVRWhPs2mDPVeZlK6Mtz5f676gokBRZxmbx9eTNw7ftgvO+oZQGg2I5HHFcVuTVGx+oCLZScKkVWzU3qlFPy/swHtCaEnRZkNYVSA4/lgny6AcKYY8GsMWf9AUYnnbshsg7o1kvW5gPx3iP1+ihOwHh7TVzIoVSCrEbW59MJ7mUnZbWekRrcI/N5SnH3O2TUP7c/k7ZTi4O7Dg4nb3tzkZprlN8PRqselmH1/FSaCEMe6vekaMFacQ9/IjcQDZhgke2bmz93l3nt3yKLSg6ouFeDxqDhqzupX/5GSjsgkRpTHUilEwMzUIGsaAh02M/rgfOE0lEGIxMf+7+7PbdazTDwEbz+fkZF9ZORh48mefDgsiXUoIej1SsWrBvF1j1vLIfxA6zVj8pHMLMGQsZquAeDIMBOhDBTvUGIf7s07J4Lp0QOkT7YT/y6rxfc+djSdFjDV0jvFaD0YNNSaCSOwchjO2SErJm5LzS2XMnTBWDLOMqDE6SEycgZvXyJgiw7RvcUWe5YFjM1rwbPMVSdFmxnu6mPert8Gjl+hoRFVdoqgXL1Mc3nLeKaKVn3oAgDAX3XmKkFsIaMfcGIGNURFRpvWRPJfWvOPu20nxPw53i4BgYYVEnlhlLGp142sznfWwI9N44BkETh+T9detrYCY/ujPmYiBJgSVJl0VckqM6porKqC9n6hS0CWEJpBIDUeo5UX52xqzURM3usiPaq5omZ3BXPydEpMvjphT7LHk4CsH9/Z2Xv7UGq0CpgtYSamrINZAjoFpBpvxt4npKMtjuSdDh+M83te+IsYUK7JC78WvWYFm4SIxEF8CfeuuRWodq+CDNgJqEMnBCNSZB44GoKijdqxsEiloaLmX3+q11waJejrIuKz+y4fW2ezF7NRQAmjMWtlILuFMEnaWWVBltMBJg2yZw0+WIFH3FooRhtagbHfWxKaJywiZc5a75K05zD4nAvZJc5BfDXpIY88dhaFRhso77NKu9zEHpTXYIUf3LDZ+5ek4JhrEfiq7z65sPNM4NcCOKqekDppKkMPjJYIUaqiGAwWvfa+moQEQlCnRnS3MwXoXn5oheixVs1Xu5+rRdkx+CGDecOe0Et8KeuSkl3N/fX0Vunj/yVnKVBtYAlDpIOpDhfUf/WmNo4CQjRirNYJXEmjY0ZMPYhn7ynBLxUjXpc+rQ9oK70x2WdcHxeERmq7t927ze2Bpq23vXI1+rXjObcvZyqpw62Szq1keUBIejm+MmkjKePX/ujc/hMFtrQ3M3iHxCFGko9MyEQYW1QRgC3x/pCa/BzRDmyzJlQpsZUBtZwJ5PHSpD6OTAtCweETWPzCtVsFRH44zG8pakvpaOcDlPCeGWDgNzBMwaIiZUW4MOkZw5fxhRf+QEZ47AldMdc+AhOzWOSfQj6THK5UzZvo6O7s40hOf98ziLRFj+xnWvTA3QeKZwVHzi6bRIR7cA9PO2GZij1v7+lHRwLcwgOXfnKmvqnX8SmfnBQu5zP50/AAj7a2cIN34+1O/Dnb2CneIhRocn1migDMGsFlGUtJNM6M9jWQWH1fPPrTU0NeTMI6AJqi2wBkpIFl67kbeQua/B86V1BAH2KyCyhSry3Wl4Oe36osPYGoC67dykPKQmL1IAJxmE98jfD6jDIuzv70bHg5IA2kaupWlybU7j2lcBcva+P9UPbo9Rog7Pf1G5WEwd2vEaTEab6uZAcu6evUsq+kMdhs+Gwg0Sc6WRv4n8oz/cvihI6CjsYBHF7w2py6IB6GowZg49tjaxJzWgLQziknopkCJgR3eGthKlRu4FgzWIwi8o2x9akEPQPeOeW2aU1UfkJNVZlk08etlbsGwDNvIgu4lBFWiKzlINQ+ceK7s0IcQUpK+HmW0cOTWPEoeCky9NJ2UslCgMwk+gE700rNRAJAdXgn/rSsSDs+hlDiPq0AleX5eFuVJ/5jPjsV+XOOkLZHnG9RwPBzdKyfvnzobPwilrLFVI6gSRaMSgqTcPaMzN1hAt4dX33D0nIS8rUsreRKPUXt7cm9vzHoQOm9Dx9emhRhJZtK15tywYhUkAiCYsq0DTMkqJhCEY3SuV6dA2z+1l5uNy9vjQCx1swNh0IrsDw1AtRDg8fYErA94PFH7vCmV+zcI8fFxf4F0d92IUGB3Kxpk1PqcfSeaT2OXQ+xxGrlq5zsKxoxAHN4bbBk9rhQxuIvkpKga6tCwPwJ4eItavdo3GS+w7Sp4wjEbUKYsBRiIphbK7gz9t96tjtw86Y8AkH8u90OFkXpcxqrziAPD6kxDB5H2ERGyeUinRYs/7c/vlaPPoGxBoVjSod2xqDXsTV0XhtSfJzFuTAxJEdnl0T28Y74SxFVUsz+4Quprh6Ah/5s/OvZfLw9mNjDHPB4wIcTK8fji1vpEM4wH1z+UiTli6UlFlMbS392MdpAiwZCyHBWXbsW+7EyF6gbv0aNL6l6KJH/OVMEfkWTVnRokjwq6bw8aNryZwk6n1NJuTHigWz4NcaFz26lFtV6wShZp/rnlyBcCAg5oZRSYGBOzGhPngCQ524gLQWukbfCvRb0kGmzkv1Nh1ghh4dxaf2a3QoODHCrV41oxWK9yLLq1iq5WpAfQ8orv8hioNAs/b+TVWbGWjYg6jozzlZGWgBBFd+T2F8s/YNT1fSlb4ulxrDs8lEPu++5NUN1oSzp2Nrj8Ryasw0i07zDwHv6bRQWhlSsUfmHkP5UeRn+eJUy9NCA8/ugNFjs07LmGsafYU9utIyHx/EFlczShIZLXnrNxIRW2qH96uYU3niIhUI0TdohgyHD9GNG4JpvaT3LcuBgOX/zNgK8VTNWTg5hSOjsxuNEILtwvhmOtKr8vokhRsVjNnUSeQ5wFGQZMTmFPGujojfefchXFV0e4guEEEpKGXvy1TyQwQqZ++S/p/O2mI/+4GNwKFMCTBJOb3Zn3Z+7oKx8YMEs9BlU49EVOSd1Ri7Sn2LsjjDrufg6kbLZjByCZvZZyBYagEYdB4D3QOXDRsRs9GdBzvbXxGV5aJ53AYWASSFk4GImBS79wWxjWQLXVhDz9/Ddrc4Xdj62dSr5UFI+4QOoE7B8E7yOQDNPXzVatBDwSJBVAklAY0Gek5MOD4lWFskyI9u/MuP0G9fkMezcxwOh2uvXXClzM0eEUWIpsx3h+R7EyMmSGceF/kWAF0GCgvK5bLjuWy0euaDfvYVI7ECJBTF28IRmRc37h+QKBomd012nA2jO5nQ3OyQXiZvTGJH9S7sAUV9CrCRHK5tkcOOckg1qNGIxSSGuss4TnzxM0YZU6tlc7mZTWr562Z88u9hZxvWDC3uG07+2T6hsrZN3cQr+J5mAgKHM6O1m4dQvbJ7WUlTVxIITVvkB6RSN13r9mOtZESDnm9etaPvzoLvRTszXCgss5xdXWdqGE+n89XTN0wsvvmGs8BM4V4iHWnwnC5XDwfak6qanvBvm8wwsaLuoJWMIhnTd3ao7wRkWsQa1K6EqeYocrBTE4o1UutDPDDmM6UqKcaGqzD58HWjpRNjyySl4oFFAhNuOzs4cpo33NkwaPwulrtv574mUKSDfdPwJVEFDw10pBVO8M5s3lFNJI37oUkDjUm8gk0KdKSqTLmxq/s3lJQIcj5AGAIx3jur3Tn5dGBMxAr7vcwchUetWuehSvG+dH3ySQaAmCUJ2KcQW84EQEIdMkAIvoGrFDTOiUIpfIkOTkvnNRu1Ogge+ttmVCXRtGMiajpxHlADDIJMxjRw7B4EdQk9imOAGYuZWqBMvCzInfeR52cRoxUWrRBlY5++H+jkYyEnjtcG+G4rBT3GKVTO8vkFoGnURYnp5bmxNdQ5hM+Sw1LPhGfIWE2G7zCwrCsOt4EQFtCa4KqAuW+9Vv+fHP7ThhbA7BxAyJqq5hvnA9IgLmYSoYYDWR4ZKG/GX5kJyREPoeQ5ryBIFGvuPeIEELP8fGiVMFpOWC988UfZIoeOs93ZBOLEGREkjltMOz76AoiSZBsRTP3vjFQCxd0iBKDgMm42B2CNEK1MUfS4UgRpbElYBTRR8hUqh+MlQhAypn0+sE2bo0PaIoADH4wyXTg55y90J63Hw5OrY1t2qzPt6RB7DBz1qJkRUHDZs03Tdt7jtY8QUv2tEPMlXWzpUUe1j+31OL5bzGP0leX6QzoKSINM+ou2zXUuuiIZsPoxfvjedVSAAnB/x072+mNBhS4MrR9VRhF4TGkIt/E4h3db8p4nzIXDiesVeaIwd8HIcNWKoylCZ1RTWfFALKmPQ8sSV2QgQ5e5Gk98HCSkpeY6FCECuY/AYDaGmHziM5C/Yt+VDgGmQecet7WNHpBK7IqDLs3SbCGWsGaZb+vZoJ9ciZas/67nvNxRbJg2WpOSJIBE1BnwecXzhbe9q0rLFnzFowpOlNpdn31ZlAoWeXjXGmV+utNkMVJZcCofpiN7bje8VogD3Ng8GmDKx6lIrFEh+eMEn5OCkt+yrkONIiQ8NyxQC4YiXJvBMoX9qU739zfiJ7ilMtpcOZ8mMdIcw3NY7m61+ja8vjMfvxarPk54PG97Qa+waFvQUNoMARxHGD53OK197F3GgyogtScSKbqyEptFdt2weVyhiGUzRIDaEFK5nDKdIAHcohmHtBI6oYYbeLaGKUtLZwnfO54Z4xtBTrRqRsLskUxRyKqY4FM0GAcPFG+EmiEH0I6/jZoirkxB2kgHnzUCBqQWq8DpR1DyopVUs9phZ2NQzYuLoTpO7Ows+IcQtO0dShHsjqBiIvLH7JDR8kcNpJmQAsIMGrXfEEkBGHM+ssGA8zzGIJoBRXRQ4W26uUVLerthtxZGPqYX4GzJxUuTwbzAz+gQSVs3A+NOGR475q8SUOH0acoIOZWJKGIQ6bFancAjNGKxOYkocnnCj3aETofFcbG4v5Ml3W5WkOjFGUQPWbiUW9VN0GdsSZTSl2UpNaK8+WCaPcYMFTst0iHxHnTERQDgiAFA0LuMiD7gC/njjGejxrP5XFkPtRspBvnmOfWGvV6jZBbGjlJYW407t/suoxGdRhaOh8xz+G4Rc6sXc2vz1lKjFAi+rCxZsS0O8QppZ5Hjn2T15WpiEcqPZzQpEN32hB7gudFpDDaYG7MBJ3WGuruWsEi3lB9zU6+Sqp0IGxYozhvYKxZ9R+oJifJTc58POsZYZtTDzGuDM301d+vCVvPB07BRE+12Ij0e+Dh16zWoEjIOmRDpQcE7vR66dS1LOzVffLfLjNrfS0/NqL9uQA95Rf581gH85KyRmJe7iyUHlkEHwRNen5d2sjRRiQNDC5FRLVmDUtKaDS8gR7W1nC5XLCRpZ+pmaDx9zHm3bhm+oMX641cwl6YWkcLVOzq5qbswBvHO2FsAXiNFCaDOMEJEcXBDKXLNMAh0/5bQFRbBwvys24uvJqYVE2KvAxpsFjAnoPr5hkAkBMJIY2wDsbm6tT9K81TH0n1Cn7M2zK8vEVJ7ecCrUZUR5DMpi47Rijp+uCJhdgY3Ube2ZphSatHRDbgHS+jqUi1omKop+Qgn5gN1KCXAg3Ptc0/j/zs5NaFPGEzbwJwYIQYDGJVZY4nCskNaIqaFU0D4mZ4r25oU85XB1htXkYTxITQ5IUAkl0kYMkZ6+EATFKWc+4z5A4xPaeVfWcB9AYADj96NOK51oLL5YLXr1/z+SsSW+hFhNehP/7dzr41A1rta1QJwUcqpDVvnTdDkAEtx+aY70Naw93dXY/C4xmH01BKQb24FKoJnMjDe3EWayXETzZ5d7gou8hG99GLF0BvCeiGfoFCUJo3ESl7ZYlVg4jnnr2UawHadfeqgMLD4Erf5g05ewej2uyqtCzmcuxl6a/5+vBrLG3MxYDeCRAWz2Xv29alVleWPZkZ2rZ1h4ILvjuPHtmyhjozQiMkbm8wnJ0RPukEx3XPRnl+PQzkuRbvA8w9EH2HQfZtqY7+lFphE8FSYVjEHdhozOJ5VncANbmxdn6Cz2sYdW4IhD5DSgmdiGkgrOyO2+P+rX5mJz+rzDqv7poM5tyClCdpShvEv26g+flZWK45vbfP34Q5xFyLKjYy+ys7hD08PFypwR0PB9Rtg1G1Lfaw5+ONufLgyoSIT0Tm/qyls8KADudN1/KmIbNBeKohIv8WwCsA/+6pr+UdGt+K23zM4zYf1+M2H9fjNh/X4zYf1+OLmo/vMrNve9MP3gljCwAi8vfM7Dc+9XW8K+M2H9fjNh/X4zYf1+M2H9fjNh/X412Yj18GZb6N27iN27iN27iN/7/jZmxv4zZu4zZu4zbe8niXjO3/8tQX8I6N23xcj9t8XI/bfFyP23xcj9t8XI8nn493Jmd7G7dxG7dxG7fxzTrepcj2Nm7jNm7jNm7jm3LcjO1t3MZt3MZt3MZbHk9ubEXkd4rIz4jI10Tkh5/6ep5iiMjPisjfF5GfEJG/x9e+LCJ/S0T+Kf/7LU99nW9riMifEZFfFJGfnl574/2Ljz/B9fJTIvJ9T3flb2d8xnz8cRH5Oa6RnxCRH5h+9sc4Hz8jIr/jaa767Q0R+TUi8mMi8g9F5B+IyB/m6+/lGvmc+Xgv14iIHEXk74rIT3I+/lu+/t0i8uO8778kVFkRkQP//TX+/Nd+IRf6JmH2L+oL3tzmnwH4HgArgJ8E8Ouf8pqeaB5+FsC3Pnrtvwfww/z+hwH8d099nW/x/n8LgO8D8NO/3P0D+AEAfwMu1/L9AH78qa//C5qPPw7gj77hvb+e++YA4Lu5n9JT38N/4Pn4KoDv4/fPAfwT3vd7uUY+Zz7eyzXC5/yM3y8AfpzP/X8F8EN8/U8C+P38/g8A+JP8/ocA/KUv4jqfOrL9zwF8zcz+uZltAP4igB984mt6V8YPAvhRfv+jAP7LJ7yWtzrM7P8E8NGjlz/r/n8QwJ81H/8XgA9F5KtfzJV+MeMz5uOzxg8C+ItmdjGzfwHga/B99U0zzOznzez/5fcvAPwjAL8a7+ka+Zz5+KzxTb1G+Jxf8p8LvwzAbwXwl/n64/UR6+YvA/gvROTztRb/A4ynNra/GsC/nP79r/D5i+abdRiAvyki/4+I/D6+9u1m9vP8/hcAfPvTXNqTjc+6//d5zfwhwqJ/ZkorvFfzQcjvP4NHL+/9Gnk0H8B7ukZEJInITwD4RQB/Cx69f2xmhW+Z77nPB3/+DQBfedvX+NTG9jZ8/GYz+z4AvwvAHxSR3zL/0BzveG9rtN73++f4nwH8OgC/AcDPA/gfnvZyvvghIs8A/BUAf8TMPpl/9j6ukTfMx3u7RsysmtlvAPCd8Kj9P3niS/rUeGpj+3MAfs307+/ka+/VMLOf439/EcBfhS+WfxPQF//7i093hU8yPuv+38s1Y2b/hgdKA/CnMGDA92I+RGSBG5Y/b2b/O19+b9fIm+bjfV8jAGBmHwP4MQC/CZ4+iOZv8z33+eDPvwTg62/72p7a2P7fAL6XrLEVnqz+6098TV/oEJF7EXke3wP47QB+Gj4Pv4dv+z0A/trTXOGTjc+6/78O4L8m4/T7AXxjghK/acejnON/BV8jgM/HD5Fh+d0AvhfA3/2ir+9tDubT/jSAf2Rm/+P0o/dyjXzWfLyva0REvk1EPuT3JwC/DZ7H/jEAv5tve7w+Yt38bgD/B5GRtzveASbZD8DZdP8MwI889fU8wf1/D5wp+JMA/kHMATyH8HcA/FMAfxvAl5/6Wt/iHPwFOOy1w3Mrv/ez7h/OPPyfuF7+PoDf+NTX/wXNx5/j/f4U/LD46vT+H+F8/AyA3/XU1/8W5uM3wyHinwLwE/z6gfd1jXzOfLyXawTAfwrg/+N9/zSA/4avfw/cqfgagP8NwIGvH/nvr/Hn3/NFXOdNrvE2buM2buM2buMtj6eGkW/jNm7jNm7jNr7px83Y3sZt3MZt3MZtvOVxM7a3cRu3cRu3cRtvedyM7W3cxm3cxm3cxlseN2N7G7dxG7dxG7fxlsfN2N7GbdzGbdzGbbzlcTO2t3Ebt3Ebt3Ebb3n8e7ih/rRkeokKAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "tags": [], - "needs_background": "light" - } - } - ] + "output_type": "stream", + "text": [ + "--2021-04-07 22:14:41-- https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth\n", + "Resolving open-mmlab.s3.ap-northeast-2.amazonaws.com (open-mmlab.s3.ap-northeast-2.amazonaws.com)... 52.219.58.127\n", + "Connecting to open-mmlab.s3.ap-northeast-2.amazonaws.com (open-mmlab.s3.ap-northeast-2.amazonaws.com)|52.219.58.127|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 196205945 (187M) [application/x-www-form-urlencoded]\n", + "Saving to: ‘checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth’\n", + "\n", + "pspnet_r50-d8_512x1 100%[===================>] 187.12M 15.8MB/s in 13s \n", + "\n", + "2021-04-07 22:14:54 (14.2 MB/s) - ‘checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth’ saved [196205945/196205945]\n", + "\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "H8Fxg8i-wHJE" + }, + "source": [ + "from mmseg.apis import inference_segmentor, init_segmentor, show_result_pyplot\n", + "from mmseg.core.evaluation import get_palette" + ], + "execution_count": 6, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "umk8sJ0Xuace" + }, + "source": [ + "config_file = 'configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py'\n", + "checkpoint_file = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'" + ], + "execution_count": 7, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "nWlQFuTgudxu", + "colab": { + "base_uri": "https://localhost:8080/" }, + "outputId": "5e45f4f6-5bcf-4d04-bb9c-0428ee84a576" + }, + "source": [ + "# build the model from a config file and a checkpoint file\n", + "model = init_segmentor(config_file, checkpoint_file, device='cuda:0')" + ], + "execution_count": 8, + "outputs": [ { - "cell_type": "markdown", - "metadata": { - "id": "L5mNQuc2GsVE" - }, - "source": [ - "We need to convert the annotation into semantic map format as an image." - ] + "output_type": "stream", + "text": [ + "Use load_from_local loader\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "izFv6pSRujk9" + }, + "source": [ + "# test a single image\n", + "img = 'demo/demo.png'\n", + "result = inference_segmentor(model, img)" + ], + "execution_count": 9, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "bDcs9udgunQK", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 504 }, + "outputId": "7c55f713-4085-47fd-fa06-720a321d0795" + }, + "source": [ + "# show the results\n", + "show_result_pyplot(model, img, result, get_palette('cityscapes'))" + ], + "execution_count": 10, + "outputs": [ { - "cell_type": "code", - "metadata": { - "id": "WnGZfribFHCx" - }, - "source": [ - "import os.path as osp\n", - "import numpy as np\n", - "from PIL import Image\n", - "# convert dataset annotation to semantic segmentation map\n", - "data_root = 'iccv09Data'\n", - "img_dir = 'images'\n", - "ann_dir = 'labels'\n", - "# define class and plaette for better visualization\n", - "classes = ('sky', 'tree', 'road', 'grass', 'water', 'bldg', 'mntn', 'fg obj')\n", - "palette = [[128, 128, 128], [129, 127, 38], [120, 69, 125], [53, 125, 34], \n", - " [0, 11, 123], [118, 20, 12], [122, 81, 25], [241, 134, 51]]\n", - "for file in mmcv.scandir(osp.join(data_root, ann_dir), suffix='.regions.txt'):\n", - " seg_map = np.loadtxt(osp.join(data_root, ann_dir, file)).astype(np.uint8)\n", - " seg_img = Image.fromarray(seg_map).convert('P')\n", - " seg_img.putpalette(np.array(palette, dtype=np.uint8))\n", - " seg_img.save(osp.join(data_root, ann_dir, file.replace('.regions.txt', \n", - " '.png')))" - ], - "execution_count": 13, - "outputs": [] + "output_type": "stream", + "text": [ + "/content/mmsegmentation/mmseg/models/segmentors/base.py:271: UserWarning: show==False and out_file is not specified, only result image will be returned\n", + " warnings.warn('show==False and out_file is not specified, only '\n" + ], + "name": "stderr" }, { - "cell_type": "code", - "metadata": { - "id": "5MCSS9ABfSks", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 377 - }, - "outputId": "92b9bafc-589e-48fc-c9e9-476f125d6522" - }, - "source": [ - "# Let's take a look at the segmentation map we got\n", - "import matplotlib.patches as mpatches\n", - "img = Image.open('iccv09Data/labels/6000124.png')\n", - "plt.figure(figsize=(8, 6))\n", - "im = plt.imshow(np.array(img.convert('RGB')))\n", - "\n", - "# create a patch (proxy artist) for every color \n", - "patches = [mpatches.Patch(color=np.array(palette[i])/255., \n", - " label=classes[i]) for i in range(8)]\n", - "# put those patched as legend-handles into the legend\n", - "plt.legend(handles=patches, bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0., \n", - " fontsize='large')\n", - "\n", - "plt.show()" - ], - "execution_count": 14, - "outputs": [ - { - "output_type": "display_data", - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "tags": [], - "needs_background": "light" - } - } + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Ta51clKX4cwM" + }, + "source": [ + "## Train a semantic segmentation model on a new dataset\n", + "\n", + "To train on a customized dataset, the following steps are neccessary. \n", + "1. Add a new dataset class. \n", + "2. Create a config file accordingly. \n", + "3. Perform training and evaluation. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "AcZg6x_K5Zs3" + }, + "source": [ + "### Add a new dataset\n", + "\n", + "Datasets in MMSegmentation require image and semantic segmentation maps to be placed in folders with the same perfix. To support a new dataset, we may need to modify the original file structure. \n", + "\n", + "In this tutorial, we give an example of converting the dataset. You may refer to [docs](https://github.com/open-mmlab/mmsegmentation/docs/tutorials/new_dataset.md) for details about dataset reorganization. \n", + "\n", + "We use [Standord Background Dataset](http://dags.stanford.edu/projects/scenedataset.html) as an example. The dataset contains 715 images chosen from existing public datasets [LabelMe](http://labelme.csail.mit.edu), [MSRC](http://research.microsoft.com/en-us/projects/objectclassrecognition), [PASCAL VOC](http://pascallin.ecs.soton.ac.uk/challenges/VOC) and [Geometric Context](http://www.cs.illinois.edu/homes/dhoiem/). Images from these datasets are mainly outdoor scenes, each containing approximately 320-by-240 pixels. \n", + "In this tutorial, we use the region annotations as labels. There are 8 classes in total, i.e. sky, tree, road, grass, water, building, mountain, and foreground object. " + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "TFIt7MHq5Wls", + "colab": { + "base_uri": "https://localhost:8080/" }, + "outputId": "74a126e4-c8a4-4d2f-a910-b58b71843a23" + }, + "source": [ + "# download and unzip\n", + "!wget http://dags.stanford.edu/data/iccv09Data.tar.gz -O standford_background.tar.gz\n", + "!tar xf standford_background.tar.gz" + ], + "execution_count": 11, + "outputs": [ { - "cell_type": "code", - "metadata": { - "id": "WbeLYCp2k5hl" - }, - "source": [ - "# split train/val set randomly\n", - "split_dir = 'splits'\n", - "mmcv.mkdir_or_exist(osp.join(data_root, split_dir))\n", - "filename_list = [osp.splitext(filename)[0] for filename in mmcv.scandir(\n", - " osp.join(data_root, ann_dir), suffix='.png')]\n", - "with open(osp.join(data_root, split_dir, 'train.txt'), 'w') as f:\n", - " # select first 4/5 as train set\n", - " train_length = int(len(filename_list)*4/5)\n", - " f.writelines(line + '\\n' for line in filename_list[:train_length])\n", - "with open(osp.join(data_root, split_dir, 'val.txt'), 'w') as f:\n", - " # select last 1/5 as train set\n", - " f.writelines(line + '\\n' for line in filename_list[train_length:])" - ], - "execution_count": 15, - "outputs": [] + "output_type": "stream", + "text": [ + "--2021-04-07 22:15:00-- http://dags.stanford.edu/data/iccv09Data.tar.gz\n", + "Resolving dags.stanford.edu (dags.stanford.edu)... 171.64.68.10\n", + "Connecting to dags.stanford.edu (dags.stanford.edu)|171.64.68.10|:80... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 14727974 (14M) [application/x-gzip]\n", + "Saving to: ‘standford_background.tar.gz’\n", + "\n", + "standford_backgroun 100%[===================>] 14.04M 23.4MB/s in 0.6s \n", + "\n", + "2021-04-07 22:15:00 (23.4 MB/s) - ‘standford_background.tar.gz’ saved [14727974/14727974]\n", + "\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "78LIci7F9WWI", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 377 }, + "outputId": "c432ddac-5a50-47b1-daac-5a26b07afea2" + }, + "source": [ + "# Let's take a look at the dataset\n", + "import mmcv\n", + "import matplotlib.pyplot as plt\n", + "\n", + "img = mmcv.imread('iccv09Data/images/6000124.jpg')\n", + "plt.figure(figsize=(8, 6))\n", + "plt.imshow(mmcv.bgr2rgb(img))\n", + "plt.show()" + ], + "execution_count": 12, + "outputs": [ { - "cell_type": "markdown", - "metadata": { - "id": "HchvmGYB_rrO" - }, - "source": [ - "After downloading the data, we need to implement `load_annotations` function in the new dataset class `StandfordBackgroundDataset`." + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "L5mNQuc2GsVE" + }, + "source": [ + "We need to convert the annotation into semantic map format as an image." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "WnGZfribFHCx" + }, + "source": [ + "import os.path as osp\n", + "import numpy as np\n", + "from PIL import Image\n", + "# convert dataset annotation to semantic segmentation map\n", + "data_root = 'iccv09Data'\n", + "img_dir = 'images'\n", + "ann_dir = 'labels'\n", + "# define class and plaette for better visualization\n", + "classes = ('sky', 'tree', 'road', 'grass', 'water', 'bldg', 'mntn', 'fg obj')\n", + "palette = [[128, 128, 128], [129, 127, 38], [120, 69, 125], [53, 125, 34], \n", + " [0, 11, 123], [118, 20, 12], [122, 81, 25], [241, 134, 51]]\n", + "for file in mmcv.scandir(osp.join(data_root, ann_dir), suffix='.regions.txt'):\n", + " seg_map = np.loadtxt(osp.join(data_root, ann_dir, file)).astype(np.uint8)\n", + " seg_img = Image.fromarray(seg_map).convert('P')\n", + " seg_img.putpalette(np.array(palette, dtype=np.uint8))\n", + " seg_img.save(osp.join(data_root, ann_dir, file.replace('.regions.txt', \n", + " '.png')))" + ], + "execution_count": 13, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "5MCSS9ABfSks", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 377 }, + "outputId": "92b9bafc-589e-48fc-c9e9-476f125d6522" + }, + "source": [ + "# Let's take a look at the segmentation map we got\n", + "import matplotlib.patches as mpatches\n", + "img = Image.open('iccv09Data/labels/6000124.png')\n", + "plt.figure(figsize=(8, 6))\n", + "im = plt.imshow(np.array(img.convert('RGB')))\n", + "\n", + "# create a patch (proxy artist) for every color \n", + "patches = [mpatches.Patch(color=np.array(palette[i])/255., \n", + " label=classes[i]) for i in range(8)]\n", + "# put those patched as legend-handles into the legend\n", + "plt.legend(handles=patches, bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0., \n", + " fontsize='large')\n", + "\n", + "plt.show()" + ], + "execution_count": 14, + "outputs": [ { - "cell_type": "code", - "metadata": { - "id": "LbsWOw62_o-X" - }, - "source": [ - "from mmseg.datasets.builder import DATASETS\n", - "from mmseg.datasets.custom import CustomDataset\n", - "\n", - "@DATASETS.register_module()\n", - "class StandfordBackgroundDataset(CustomDataset):\n", - " CLASSES = classes\n", - " PALETTE = palette\n", - " def __init__(self, split, **kwargs):\n", - " super().__init__(img_suffix='.jpg', seg_map_suffix='.png', \n", - " split=split, **kwargs)\n", - " assert osp.exists(self.img_dir) and self.split is not None\n", - "\n", - " " - ], - "execution_count": 16, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "yUVtmn3Iq3WA" - }, - "source": [ - "### Create a config file\n", - "In the next step, we need to modify the config for the training. To accelerate the process, we finetune the model from trained weights." + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "WbeLYCp2k5hl" + }, + "source": [ + "# split train/val set randomly\n", + "split_dir = 'splits'\n", + "mmcv.mkdir_or_exist(osp.join(data_root, split_dir))\n", + "filename_list = [osp.splitext(filename)[0] for filename in mmcv.scandir(\n", + " osp.join(data_root, ann_dir), suffix='.png')]\n", + "with open(osp.join(data_root, split_dir, 'train.txt'), 'w') as f:\n", + " # select first 4/5 as train set\n", + " train_length = int(len(filename_list)*4/5)\n", + " f.writelines(line + '\\n' for line in filename_list[:train_length])\n", + "with open(osp.join(data_root, split_dir, 'val.txt'), 'w') as f:\n", + " # select last 1/5 as train set\n", + " f.writelines(line + '\\n' for line in filename_list[train_length:])" + ], + "execution_count": 15, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "HchvmGYB_rrO" + }, + "source": [ + "After downloading the data, we need to implement `load_annotations` function in the new dataset class `StandfordBackgroundDataset`." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "LbsWOw62_o-X" + }, + "source": [ + "from mmseg.datasets.builder import DATASETS\n", + "from mmseg.datasets.custom import CustomDataset\n", + "\n", + "@DATASETS.register_module()\n", + "class StandfordBackgroundDataset(CustomDataset):\n", + " CLASSES = classes\n", + " PALETTE = palette\n", + " def __init__(self, split, **kwargs):\n", + " super().__init__(img_suffix='.jpg', seg_map_suffix='.png', \n", + " split=split, **kwargs)\n", + " assert osp.exists(self.img_dir) and self.split is not None\n", + "\n", + " " + ], + "execution_count": 16, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "yUVtmn3Iq3WA" + }, + "source": [ + "### Create a config file\n", + "In the next step, we need to modify the config for the training. To accelerate the process, we finetune the model from trained weights." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Wwnj9tRzqX_A" + }, + "source": [ + "from mmcv import Config\n", + "cfg = Config.fromfile('configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py')" + ], + "execution_count": 17, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "1y2oV5w97jQo" + }, + "source": [ + "Since the given config is used to train PSPNet on cityscapes dataset, we need to modify it accordingly for our new dataset. " + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "eyKnYC1Z7iCV", + "colab": { + "base_uri": "https://localhost:8080/" }, + "outputId": "6195217b-187f-4675-994b-ba90d8bb3078" + }, + "source": [ + "from mmseg.apis import set_random_seed\n", + "\n", + "# Since we use ony one GPU, BN is used instead of SyncBN\n", + "cfg.norm_cfg = dict(type='BN', requires_grad=True)\n", + "cfg.model.backbone.norm_cfg = cfg.norm_cfg\n", + "cfg.model.decode_head.norm_cfg = cfg.norm_cfg\n", + "cfg.model.auxiliary_head.norm_cfg = cfg.norm_cfg\n", + "# modify num classes of the model in decode/auxiliary head\n", + "cfg.model.decode_head.num_classes = 8\n", + "cfg.model.auxiliary_head.num_classes = 8\n", + "\n", + "# Modify dataset type and path\n", + "cfg.dataset_type = 'StandfordBackgroundDataset'\n", + "cfg.data_root = data_root\n", + "\n", + "cfg.data.samples_per_gpu = 8\n", + "cfg.data.workers_per_gpu=8\n", + "\n", + "cfg.img_norm_cfg = dict(\n", + " mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)\n", + "cfg.crop_size = (256, 256)\n", + "cfg.train_pipeline = [\n", + " dict(type='LoadImageFromFile'),\n", + " dict(type='LoadAnnotations'),\n", + " dict(type='Resize', img_scale=(320, 240), ratio_range=(0.5, 2.0)),\n", + " dict(type='RandomCrop', crop_size=cfg.crop_size, cat_max_ratio=0.75),\n", + " dict(type='RandomFlip', flip_ratio=0.5),\n", + " dict(type='PhotoMetricDistortion'),\n", + " dict(type='Normalize', **cfg.img_norm_cfg),\n", + " dict(type='Pad', size=cfg.crop_size, pad_val=0, seg_pad_val=255),\n", + " dict(type='DefaultFormatBundle'),\n", + " dict(type='Collect', keys=['img', 'gt_semantic_seg']),\n", + "]\n", + "\n", + "cfg.test_pipeline = [\n", + " dict(type='LoadImageFromFile'),\n", + " dict(\n", + " type='MultiScaleFlipAug',\n", + " img_scale=(320, 240),\n", + " # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],\n", + " flip=False,\n", + " transforms=[\n", + " dict(type='Resize', keep_ratio=True),\n", + " dict(type='RandomFlip'),\n", + " dict(type='Normalize', **cfg.img_norm_cfg),\n", + " dict(type='ImageToTensor', keys=['img']),\n", + " dict(type='Collect', keys=['img']),\n", + " ])\n", + "]\n", + "\n", + "\n", + "cfg.data.train.type = cfg.dataset_type\n", + "cfg.data.train.data_root = cfg.data_root\n", + "cfg.data.train.img_dir = img_dir\n", + "cfg.data.train.ann_dir = ann_dir\n", + "cfg.data.train.pipeline = cfg.train_pipeline\n", + "cfg.data.train.split = 'splits/train.txt'\n", + "\n", + "cfg.data.val.type = cfg.dataset_type\n", + "cfg.data.val.data_root = cfg.data_root\n", + "cfg.data.val.img_dir = img_dir\n", + "cfg.data.val.ann_dir = ann_dir\n", + "cfg.data.val.pipeline = cfg.test_pipeline\n", + "cfg.data.val.split = 'splits/val.txt'\n", + "\n", + "cfg.data.test.type = cfg.dataset_type\n", + "cfg.data.test.data_root = cfg.data_root\n", + "cfg.data.test.img_dir = img_dir\n", + "cfg.data.test.ann_dir = ann_dir\n", + "cfg.data.test.pipeline = cfg.test_pipeline\n", + "cfg.data.test.split = 'splits/val.txt'\n", + "\n", + "# We can still use the pre-trained Mask RCNN model though we do not need to\n", + "# use the mask branch\n", + "cfg.load_from = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'\n", + "\n", + "# Set up working dir to save files and logs.\n", + "cfg.work_dir = './work_dirs/tutorial'\n", + "\n", + "cfg.runner.max_iters = 200\n", + "cfg.log_config.interval = 10\n", + "cfg.evaluation.interval = 200\n", + "cfg.checkpoint_config.interval = 200\n", + "\n", + "# Set seed to facitate reproducing the result\n", + "cfg.seed = 0\n", + "set_random_seed(0, deterministic=False)\n", + "cfg.gpu_ids = range(1)\n", + "\n", + "# Let's have a look at the final config used for training\n", + "print(f'Config:\\n{cfg.pretty_text}')" + ], + "execution_count": 18, + "outputs": [ { - "cell_type": "code", - "metadata": { - "id": "Wwnj9tRzqX_A" - }, - "source": [ - "from mmcv import Config\n", - "cfg = Config.fromfile('configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py')" - ], - "execution_count": 17, - "outputs": [] + "output_type": "stream", + "text": [ + "Config:\n", + "norm_cfg = dict(type='BN', requires_grad=True)\n", + "model = dict(\n", + " type='EncoderDecoder',\n", + " pretrained='open-mmlab://resnet50_v1c',\n", + " backbone=dict(\n", + " type='ResNetV1c',\n", + " depth=50,\n", + " num_stages=4,\n", + " out_indices=(0, 1, 2, 3),\n", + " dilations=(1, 1, 2, 4),\n", + " strides=(1, 2, 1, 1),\n", + " norm_cfg=dict(type='BN', requires_grad=True),\n", + " norm_eval=False,\n", + " style='pytorch',\n", + " contract_dilation=True),\n", + " decode_head=dict(\n", + " type='PSPHead',\n", + " in_channels=2048,\n", + " in_index=3,\n", + " channels=512,\n", + " pool_scales=(1, 2, 3, 6),\n", + " dropout_ratio=0.1,\n", + " num_classes=8,\n", + " norm_cfg=dict(type='BN', requires_grad=True),\n", + " align_corners=False,\n", + " loss_decode=dict(\n", + " type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),\n", + " auxiliary_head=dict(\n", + " type='FCNHead',\n", + " in_channels=1024,\n", + " in_index=2,\n", + " channels=256,\n", + " num_convs=1,\n", + " concat_input=False,\n", + " dropout_ratio=0.1,\n", + " num_classes=8,\n", + " norm_cfg=dict(type='BN', requires_grad=True),\n", + " align_corners=False,\n", + " loss_decode=dict(\n", + " type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),\n", + " train_cfg=dict(),\n", + " test_cfg=dict(mode='whole'))\n", + "dataset_type = 'StandfordBackgroundDataset'\n", + "data_root = 'iccv09Data'\n", + "img_norm_cfg = dict(\n", + " mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)\n", + "crop_size = (256, 256)\n", + "train_pipeline = [\n", + " dict(type='LoadImageFromFile'),\n", + " dict(type='LoadAnnotations'),\n", + " dict(type='Resize', img_scale=(320, 240), ratio_range=(0.5, 2.0)),\n", + " dict(type='RandomCrop', crop_size=(256, 256), cat_max_ratio=0.75),\n", + " dict(type='RandomFlip', flip_ratio=0.5),\n", + " dict(type='PhotoMetricDistortion'),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[123.675, 116.28, 103.53],\n", + " std=[58.395, 57.12, 57.375],\n", + " to_rgb=True),\n", + " dict(type='Pad', size=(256, 256), pad_val=0, seg_pad_val=255),\n", + " dict(type='DefaultFormatBundle'),\n", + " dict(type='Collect', keys=['img', 'gt_semantic_seg'])\n", + "]\n", + "test_pipeline = [\n", + " dict(type='LoadImageFromFile'),\n", + " dict(\n", + " type='MultiScaleFlipAug',\n", + " img_scale=(320, 240),\n", + " flip=False,\n", + " transforms=[\n", + " dict(type='Resize', keep_ratio=True),\n", + " dict(type='RandomFlip'),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[123.675, 116.28, 103.53],\n", + " std=[58.395, 57.12, 57.375],\n", + " to_rgb=True),\n", + " dict(type='ImageToTensor', keys=['img']),\n", + " dict(type='Collect', keys=['img'])\n", + " ])\n", + "]\n", + "data = dict(\n", + " samples_per_gpu=8,\n", + " workers_per_gpu=8,\n", + " train=dict(\n", + " type='StandfordBackgroundDataset',\n", + " data_root='iccv09Data',\n", + " img_dir='images',\n", + " ann_dir='labels',\n", + " pipeline=[\n", + " dict(type='LoadImageFromFile'),\n", + " dict(type='LoadAnnotations'),\n", + " dict(type='Resize', img_scale=(320, 240), ratio_range=(0.5, 2.0)),\n", + " dict(type='RandomCrop', crop_size=(256, 256), cat_max_ratio=0.75),\n", + " dict(type='RandomFlip', flip_ratio=0.5),\n", + " dict(type='PhotoMetricDistortion'),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[123.675, 116.28, 103.53],\n", + " std=[58.395, 57.12, 57.375],\n", + " to_rgb=True),\n", + " dict(type='Pad', size=(256, 256), pad_val=0, seg_pad_val=255),\n", + " dict(type='DefaultFormatBundle'),\n", + " dict(type='Collect', keys=['img', 'gt_semantic_seg'])\n", + " ],\n", + " split='splits/train.txt'),\n", + " val=dict(\n", + " type='StandfordBackgroundDataset',\n", + " data_root='iccv09Data',\n", + " img_dir='images',\n", + " ann_dir='labels',\n", + " pipeline=[\n", + " dict(type='LoadImageFromFile'),\n", + " dict(\n", + " type='MultiScaleFlipAug',\n", + " img_scale=(320, 240),\n", + " flip=False,\n", + " transforms=[\n", + " dict(type='Resize', keep_ratio=True),\n", + " dict(type='RandomFlip'),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[123.675, 116.28, 103.53],\n", + " std=[58.395, 57.12, 57.375],\n", + " to_rgb=True),\n", + " dict(type='ImageToTensor', keys=['img']),\n", + " dict(type='Collect', keys=['img'])\n", + " ])\n", + " ],\n", + " split='splits/val.txt'),\n", + " test=dict(\n", + " type='StandfordBackgroundDataset',\n", + " data_root='iccv09Data',\n", + " img_dir='images',\n", + " ann_dir='labels',\n", + " pipeline=[\n", + " dict(type='LoadImageFromFile'),\n", + " dict(\n", + " type='MultiScaleFlipAug',\n", + " img_scale=(320, 240),\n", + " flip=False,\n", + " transforms=[\n", + " dict(type='Resize', keep_ratio=True),\n", + " dict(type='RandomFlip'),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[123.675, 116.28, 103.53],\n", + " std=[58.395, 57.12, 57.375],\n", + " to_rgb=True),\n", + " dict(type='ImageToTensor', keys=['img']),\n", + " dict(type='Collect', keys=['img'])\n", + " ])\n", + " ],\n", + " split='splits/val.txt'))\n", + "log_config = dict(\n", + " interval=10, hooks=[dict(type='TextLoggerHook', by_epoch=False)])\n", + "dist_params = dict(backend='nccl')\n", + "log_level = 'INFO'\n", + "load_from = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'\n", + "resume_from = None\n", + "workflow = [('train', 1)]\n", + "cudnn_benchmark = True\n", + "optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)\n", + "optimizer_config = dict()\n", + "lr_config = dict(policy='poly', power=0.9, min_lr=0.0001, by_epoch=False)\n", + "runner = dict(type='IterBasedRunner', max_iters=200)\n", + "checkpoint_config = dict(by_epoch=False, interval=200)\n", + "evaluation = dict(interval=200, metric='mIoU')\n", + "work_dir = './work_dirs/tutorial'\n", + "seed = 0\n", + "gpu_ids = range(0, 1)\n", + "\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QWuH14LYF2gQ" + }, + "source": [ + "### Train and Evaluation" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "jYKoSfdMF12B", + "colab": { + "base_uri": "https://localhost:8080/" }, + "outputId": "422219ca-d7a5-4890-f09f-88c959942e64" + }, + "source": [ + "from mmseg.datasets import build_dataset\n", + "from mmseg.models import build_segmentor\n", + "from mmseg.apis import train_segmentor\n", + "\n", + "\n", + "# Build the dataset\n", + "datasets = [build_dataset(cfg.data.train)]\n", + "\n", + "# Build the detector\n", + "model = build_segmentor(\n", + " cfg.model, train_cfg=cfg.get('train_cfg'), test_cfg=cfg.get('test_cfg'))\n", + "# Add an attribute for visualization convenience\n", + "model.CLASSES = datasets[0].CLASSES\n", + "\n", + "# Create work_dir\n", + "mmcv.mkdir_or_exist(osp.abspath(cfg.work_dir))\n", + "train_segmentor(model, datasets, cfg, distributed=False, validate=True, \n", + " meta=dict())" + ], + "execution_count": 19, + "outputs": [ { - "cell_type": "markdown", - "metadata": { - "id": "1y2oV5w97jQo" - }, - "source": [ - "Since the given config is used to train PSPNet on cityscapes dataset, we need to modify it accordingly for our new dataset. " - ] + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.7/dist-packages/mmcv/utils/misc.py:304: UserWarning: \"flip_ratio\" is deprecated in `RandomFlip.__init__`, please use \"prob\" instead\n", + " f'\"{src_arg_name}\" is deprecated in '\n", + "2021-04-07 22:15:26,312 - mmseg - INFO - Loaded 572 images\n", + "2021-04-07 22:15:26,915 - mmseg - INFO - Use load_from_openmmlab loader\n", + "2021-04-07 22:15:26,999 - mmseg - WARNING - The model and loaded state dict do not match exactly\n", + "\n", + "unexpected key in source state_dict: fc.weight, fc.bias\n", + "\n", + "2021-04-07 22:15:27,070 - mmseg - INFO - Loaded 143 images\n", + "2021-04-07 22:15:27,072 - mmseg - INFO - load checkpoint from checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth\n", + "2021-04-07 22:15:27,073 - mmseg - INFO - Use load_from_local loader\n", + "2021-04-07 22:15:27,228 - mmseg - WARNING - The model and loaded state dict do not match exactly\n", + "\n", + "size mismatch for decode_head.conv_seg.weight: copying a param with shape torch.Size([19, 512, 1, 1]) from checkpoint, the shape in current model is torch.Size([8, 512, 1, 1]).\n", + "size mismatch for decode_head.conv_seg.bias: copying a param with shape torch.Size([19]) from checkpoint, the shape in current model is torch.Size([8]).\n", + "size mismatch for auxiliary_head.conv_seg.weight: copying a param with shape torch.Size([19, 256, 1, 1]) from checkpoint, the shape in current model is torch.Size([8, 256, 1, 1]).\n", + "size mismatch for auxiliary_head.conv_seg.bias: copying a param with shape torch.Size([19]) from checkpoint, the shape in current model is torch.Size([8]).\n", + "2021-04-07 22:15:27,232 - mmseg - INFO - Start running, host: root@c8cc0e0b80dc, work_dir: /content/mmsegmentation/work_dirs/tutorial\n", + "2021-04-07 22:15:27,237 - mmseg - INFO - workflow: [('train', 1)], max: 200 iters\n", + "2021-04-07 22:15:33,883 - mmseg - INFO - Iter [10/200]\tlr: 9.598e-03, eta: 0:01:58, time: 0.626, data_time: 0.039, memory: 3772, decode.loss_seg: 1.5570, decode.acc_seg: 44.2138, aux.loss_seg: 0.6808, aux.acc_seg: 40.7060, loss: 2.2378\n", + "2021-04-07 22:15:39,777 - mmseg - INFO - Iter [20/200]\tlr: 9.149e-03, eta: 0:01:49, time: 0.589, data_time: 0.008, memory: 3772, decode.loss_seg: 0.8328, decode.acc_seg: 67.4587, aux.loss_seg: 0.5270, aux.acc_seg: 65.5612, loss: 1.3598\n", + "2021-04-07 22:15:45,723 - mmseg - INFO - Iter [30/200]\tlr: 8.698e-03, eta: 0:01:42, time: 0.595, data_time: 0.008, memory: 3772, decode.loss_seg: 0.6151, decode.acc_seg: 65.5550, aux.loss_seg: 0.3798, aux.acc_seg: 64.0860, loss: 0.9949\n", + "2021-04-07 22:15:51,759 - mmseg - INFO - Iter [40/200]\tlr: 8.244e-03, eta: 0:01:36, time: 0.603, data_time: 0.008, memory: 3772, decode.loss_seg: 0.5840, decode.acc_seg: 68.8598, aux.loss_seg: 0.3035, aux.acc_seg: 66.3350, loss: 0.8875\n", + "2021-04-07 22:15:57,851 - mmseg - INFO - Iter [50/200]\tlr: 7.788e-03, eta: 0:01:30, time: 0.609, data_time: 0.008, memory: 3772, decode.loss_seg: 0.5198, decode.acc_seg: 69.1188, aux.loss_seg: 0.2708, aux.acc_seg: 66.1400, loss: 0.7906\n", + "2021-04-07 22:16:04,047 - mmseg - INFO - Iter [60/200]\tlr: 7.328e-03, eta: 0:01:24, time: 0.620, data_time: 0.008, memory: 3772, decode.loss_seg: 0.7124, decode.acc_seg: 66.1938, aux.loss_seg: 0.3291, aux.acc_seg: 63.7193, loss: 1.0415\n", + "2021-04-07 22:16:10,183 - mmseg - INFO - Iter [70/200]\tlr: 6.865e-03, eta: 0:01:19, time: 0.614, data_time: 0.008, memory: 3772, decode.loss_seg: 0.6217, decode.acc_seg: 67.6348, aux.loss_seg: 0.2921, aux.acc_seg: 65.4327, loss: 0.9138\n", + "2021-04-07 22:16:16,975 - mmseg - INFO - Iter [80/200]\tlr: 6.398e-03, eta: 0:01:14, time: 0.679, data_time: 0.083, memory: 3772, decode.loss_seg: 0.5825, decode.acc_seg: 67.3635, aux.loss_seg: 0.2740, aux.acc_seg: 66.0855, loss: 0.8565\n", + "2021-04-07 22:16:22,951 - mmseg - INFO - Iter [90/200]\tlr: 5.928e-03, eta: 0:01:07, time: 0.598, data_time: 0.008, memory: 3772, decode.loss_seg: 0.5509, decode.acc_seg: 71.3504, aux.loss_seg: 0.2507, aux.acc_seg: 70.5064, loss: 0.8016\n", + "2021-04-07 22:16:28,880 - mmseg - INFO - Iter [100/200]\tlr: 5.453e-03, eta: 0:01:01, time: 0.593, data_time: 0.008, memory: 3772, decode.loss_seg: 0.6903, decode.acc_seg: 62.3287, aux.loss_seg: 0.3010, aux.acc_seg: 62.1792, loss: 0.9913\n", + "2021-04-07 22:16:34,786 - mmseg - INFO - Iter [110/200]\tlr: 4.974e-03, eta: 0:00:54, time: 0.591, data_time: 0.008, memory: 3772, decode.loss_seg: 0.5627, decode.acc_seg: 68.7782, aux.loss_seg: 0.2505, aux.acc_seg: 68.3666, loss: 0.8132\n", + "2021-04-07 22:16:40,679 - mmseg - INFO - Iter [120/200]\tlr: 4.489e-03, eta: 0:00:48, time: 0.589, data_time: 0.008, memory: 3772, decode.loss_seg: 0.5006, decode.acc_seg: 70.7204, aux.loss_seg: 0.2400, aux.acc_seg: 69.5582, loss: 0.7406\n", + "2021-04-07 22:16:46,554 - mmseg - INFO - Iter [130/200]\tlr: 3.998e-03, eta: 0:00:42, time: 0.588, data_time: 0.008, memory: 3772, decode.loss_seg: 0.4775, decode.acc_seg: 70.6324, aux.loss_seg: 0.2211, aux.acc_seg: 69.0519, loss: 0.6986\n", + "2021-04-07 22:16:52,442 - mmseg - INFO - Iter [140/200]\tlr: 3.500e-03, eta: 0:00:36, time: 0.589, data_time: 0.008, memory: 3772, decode.loss_seg: 0.4812, decode.acc_seg: 71.5263, aux.loss_seg: 0.2262, aux.acc_seg: 68.9376, loss: 0.7074\n", + "2021-04-07 22:16:59,045 - mmseg - INFO - Iter [150/200]\tlr: 2.994e-03, eta: 0:00:30, time: 0.660, data_time: 0.075, memory: 3772, decode.loss_seg: 0.4366, decode.acc_seg: 73.8778, aux.loss_seg: 0.2085, aux.acc_seg: 71.9269, loss: 0.6452\n", + "2021-04-07 22:17:04,994 - mmseg - INFO - Iter [160/200]\tlr: 2.478e-03, eta: 0:00:24, time: 0.595, data_time: 0.008, memory: 3772, decode.loss_seg: 0.4244, decode.acc_seg: 73.4474, aux.loss_seg: 0.1975, aux.acc_seg: 72.5327, loss: 0.6219\n", + "2021-04-07 22:17:10,945 - mmseg - INFO - Iter [170/200]\tlr: 1.949e-03, eta: 0:00:18, time: 0.595, data_time: 0.008, memory: 3772, decode.loss_seg: 0.4268, decode.acc_seg: 71.7624, aux.loss_seg: 0.2042, aux.acc_seg: 70.3237, loss: 0.6311\n", + "2021-04-07 22:17:16,919 - mmseg - INFO - Iter [180/200]\tlr: 1.402e-03, eta: 0:00:12, time: 0.597, data_time: 0.008, memory: 3772, decode.loss_seg: 0.4488, decode.acc_seg: 72.1597, aux.loss_seg: 0.2177, aux.acc_seg: 70.9026, loss: 0.6665\n", + "2021-04-07 22:17:22,916 - mmseg - INFO - Iter [190/200]\tlr: 8.277e-04, eta: 0:00:06, time: 0.600, data_time: 0.008, memory: 3772, decode.loss_seg: 0.4651, decode.acc_seg: 75.1950, aux.loss_seg: 0.2244, aux.acc_seg: 73.2528, loss: 0.6894\n", + "2021-04-07 22:17:28,838 - mmseg - INFO - Saving checkpoint at 200 iterations\n" + ], + "name": "stderr" }, { - "cell_type": "code", - "metadata": { - "id": "eyKnYC1Z7iCV", - "colab": { - "base_uri": "https://localhost:8080/" - }, - "outputId": "6195217b-187f-4675-994b-ba90d8bb3078" - }, - "source": [ - "from mmseg.apis import set_random_seed\n", - "\n", - "# Since we use ony one GPU, BN is used instead of SyncBN\n", - "cfg.norm_cfg = dict(type='BN', requires_grad=True)\n", - "cfg.model.backbone.norm_cfg = cfg.norm_cfg\n", - "cfg.model.decode_head.norm_cfg = cfg.norm_cfg\n", - "cfg.model.auxiliary_head.norm_cfg = cfg.norm_cfg\n", - "# modify num classes of the model in decode/auxiliary head\n", - "cfg.model.decode_head.num_classes = 8\n", - "cfg.model.auxiliary_head.num_classes = 8\n", - "\n", - "# Modify dataset type and path\n", - "cfg.dataset_type = 'StandfordBackgroundDataset'\n", - "cfg.data_root = data_root\n", - "\n", - "cfg.data.samples_per_gpu = 8\n", - "cfg.data.workers_per_gpu=8\n", - "\n", - "cfg.img_norm_cfg = dict(\n", - " mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)\n", - "cfg.crop_size = (256, 256)\n", - "cfg.train_pipeline = [\n", - " dict(type='LoadImageFromFile'),\n", - " dict(type='LoadAnnotations'),\n", - " dict(type='Resize', img_scale=(320, 240), ratio_range=(0.5, 2.0)),\n", - " dict(type='RandomCrop', crop_size=cfg.crop_size, cat_max_ratio=0.75),\n", - " dict(type='RandomFlip', flip_ratio=0.5),\n", - " dict(type='PhotoMetricDistortion'),\n", - " dict(type='Normalize', **cfg.img_norm_cfg),\n", - " dict(type='Pad', size=cfg.crop_size, pad_val=0, seg_pad_val=255),\n", - " dict(type='DefaultFormatBundle'),\n", - " dict(type='Collect', keys=['img', 'gt_semantic_seg']),\n", - "]\n", - "\n", - "cfg.test_pipeline = [\n", - " dict(type='LoadImageFromFile'),\n", - " dict(\n", - " type='MultiScaleFlipAug',\n", - " img_scale=(320, 240),\n", - " # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],\n", - " flip=False,\n", - " transforms=[\n", - " dict(type='Resize', keep_ratio=True),\n", - " dict(type='RandomFlip'),\n", - " dict(type='Normalize', **cfg.img_norm_cfg),\n", - " dict(type='ImageToTensor', keys=['img']),\n", - " dict(type='Collect', keys=['img']),\n", - " ])\n", - "]\n", - "\n", - "\n", - "cfg.data.train.type = cfg.dataset_type\n", - "cfg.data.train.data_root = cfg.data_root\n", - "cfg.data.train.img_dir = img_dir\n", - "cfg.data.train.ann_dir = ann_dir\n", - "cfg.data.train.pipeline = cfg.train_pipeline\n", - "cfg.data.train.split = 'splits/train.txt'\n", - "\n", - "cfg.data.val.type = cfg.dataset_type\n", - "cfg.data.val.data_root = cfg.data_root\n", - "cfg.data.val.img_dir = img_dir\n", - "cfg.data.val.ann_dir = ann_dir\n", - "cfg.data.val.pipeline = cfg.test_pipeline\n", - "cfg.data.val.split = 'splits/val.txt'\n", - "\n", - "cfg.data.test.type = cfg.dataset_type\n", - "cfg.data.test.data_root = cfg.data_root\n", - "cfg.data.test.img_dir = img_dir\n", - "cfg.data.test.ann_dir = ann_dir\n", - "cfg.data.test.pipeline = cfg.test_pipeline\n", - "cfg.data.test.split = 'splits/val.txt'\n", - "\n", - "# We can still use the pre-trained Mask RCNN model though we do not need to\n", - "# use the mask branch\n", - "cfg.load_from = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'\n", - "\n", - "# Set up working dir to save files and logs.\n", - "cfg.work_dir = './work_dirs/tutorial'\n", - "\n", - "cfg.runner.max_iters = 200\n", - "cfg.log_config.interval = 10\n", - "cfg.evaluation.interval = 200\n", - "cfg.checkpoint_config.interval = 200\n", - "\n", - "# Set seed to facitate reproducing the result\n", - "cfg.seed = 0\n", - "set_random_seed(0, deterministic=False)\n", - "cfg.gpu_ids = range(1)\n", - "\n", - "# Let's have a look at the final config used for training\n", - "print(f'Config:\\n{cfg.pretty_text}')" - ], - "execution_count": 18, - "outputs": [ - { - "output_type": "stream", - "text": [ - "Config:\n", - "norm_cfg = dict(type='BN', requires_grad=True)\n", - "model = dict(\n", - " type='EncoderDecoder',\n", - " pretrained='open-mmlab://resnet50_v1c',\n", - " backbone=dict(\n", - " type='ResNetV1c',\n", - " depth=50,\n", - " num_stages=4,\n", - " out_indices=(0, 1, 2, 3),\n", - " dilations=(1, 1, 2, 4),\n", - " strides=(1, 2, 1, 1),\n", - " norm_cfg=dict(type='BN', requires_grad=True),\n", - " norm_eval=False,\n", - " style='pytorch',\n", - " contract_dilation=True),\n", - " decode_head=dict(\n", - " type='PSPHead',\n", - " in_channels=2048,\n", - " in_index=3,\n", - " channels=512,\n", - " pool_scales=(1, 2, 3, 6),\n", - " dropout_ratio=0.1,\n", - " num_classes=8,\n", - " norm_cfg=dict(type='BN', requires_grad=True),\n", - " align_corners=False,\n", - " loss_decode=dict(\n", - " type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),\n", - " auxiliary_head=dict(\n", - " type='FCNHead',\n", - " in_channels=1024,\n", - " in_index=2,\n", - " channels=256,\n", - " num_convs=1,\n", - " concat_input=False,\n", - " dropout_ratio=0.1,\n", - " num_classes=8,\n", - " norm_cfg=dict(type='BN', requires_grad=True),\n", - " align_corners=False,\n", - " loss_decode=dict(\n", - " type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),\n", - " train_cfg=dict(),\n", - " test_cfg=dict(mode='whole'))\n", - "dataset_type = 'StandfordBackgroundDataset'\n", - "data_root = 'iccv09Data'\n", - "img_norm_cfg = dict(\n", - " mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)\n", - "crop_size = (256, 256)\n", - "train_pipeline = [\n", - " dict(type='LoadImageFromFile'),\n", - " dict(type='LoadAnnotations'),\n", - " dict(type='Resize', img_scale=(320, 240), ratio_range=(0.5, 2.0)),\n", - " dict(type='RandomCrop', crop_size=(256, 256), cat_max_ratio=0.75),\n", - " dict(type='RandomFlip', flip_ratio=0.5),\n", - " dict(type='PhotoMetricDistortion'),\n", - " dict(\n", - " type='Normalize',\n", - " mean=[123.675, 116.28, 103.53],\n", - " std=[58.395, 57.12, 57.375],\n", - " to_rgb=True),\n", - " dict(type='Pad', size=(256, 256), pad_val=0, seg_pad_val=255),\n", - " dict(type='DefaultFormatBundle'),\n", - " dict(type='Collect', keys=['img', 'gt_semantic_seg'])\n", - "]\n", - "test_pipeline = [\n", - " dict(type='LoadImageFromFile'),\n", - " dict(\n", - " type='MultiScaleFlipAug',\n", - " img_scale=(320, 240),\n", - " flip=False,\n", - " transforms=[\n", - " dict(type='Resize', keep_ratio=True),\n", - " dict(type='RandomFlip'),\n", - " dict(\n", - " type='Normalize',\n", - " mean=[123.675, 116.28, 103.53],\n", - " std=[58.395, 57.12, 57.375],\n", - " to_rgb=True),\n", - " dict(type='ImageToTensor', keys=['img']),\n", - " dict(type='Collect', keys=['img'])\n", - " ])\n", - "]\n", - "data = dict(\n", - " samples_per_gpu=8,\n", - " workers_per_gpu=8,\n", - " train=dict(\n", - " type='StandfordBackgroundDataset',\n", - " data_root='iccv09Data',\n", - " img_dir='images',\n", - " ann_dir='labels',\n", - " pipeline=[\n", - " dict(type='LoadImageFromFile'),\n", - " dict(type='LoadAnnotations'),\n", - " dict(type='Resize', img_scale=(320, 240), ratio_range=(0.5, 2.0)),\n", - " dict(type='RandomCrop', crop_size=(256, 256), cat_max_ratio=0.75),\n", - " dict(type='RandomFlip', flip_ratio=0.5),\n", - " dict(type='PhotoMetricDistortion'),\n", - " dict(\n", - " type='Normalize',\n", - " mean=[123.675, 116.28, 103.53],\n", - " std=[58.395, 57.12, 57.375],\n", - " to_rgb=True),\n", - " dict(type='Pad', size=(256, 256), pad_val=0, seg_pad_val=255),\n", - " dict(type='DefaultFormatBundle'),\n", - " dict(type='Collect', keys=['img', 'gt_semantic_seg'])\n", - " ],\n", - " split='splits/train.txt'),\n", - " val=dict(\n", - " type='StandfordBackgroundDataset',\n", - " data_root='iccv09Data',\n", - " img_dir='images',\n", - " ann_dir='labels',\n", - " pipeline=[\n", - " dict(type='LoadImageFromFile'),\n", - " dict(\n", - " type='MultiScaleFlipAug',\n", - " img_scale=(320, 240),\n", - " flip=False,\n", - " transforms=[\n", - " dict(type='Resize', keep_ratio=True),\n", - " dict(type='RandomFlip'),\n", - " dict(\n", - " type='Normalize',\n", - " mean=[123.675, 116.28, 103.53],\n", - " std=[58.395, 57.12, 57.375],\n", - " to_rgb=True),\n", - " dict(type='ImageToTensor', keys=['img']),\n", - " dict(type='Collect', keys=['img'])\n", - " ])\n", - " ],\n", - " split='splits/val.txt'),\n", - " test=dict(\n", - " type='StandfordBackgroundDataset',\n", - " data_root='iccv09Data',\n", - " img_dir='images',\n", - " ann_dir='labels',\n", - " pipeline=[\n", - " dict(type='LoadImageFromFile'),\n", - " dict(\n", - " type='MultiScaleFlipAug',\n", - " img_scale=(320, 240),\n", - " flip=False,\n", - " transforms=[\n", - " dict(type='Resize', keep_ratio=True),\n", - " dict(type='RandomFlip'),\n", - " dict(\n", - " type='Normalize',\n", - " mean=[123.675, 116.28, 103.53],\n", - " std=[58.395, 57.12, 57.375],\n", - " to_rgb=True),\n", - " dict(type='ImageToTensor', keys=['img']),\n", - " dict(type='Collect', keys=['img'])\n", - " ])\n", - " ],\n", - " split='splits/val.txt'))\n", - "log_config = dict(\n", - " interval=10, hooks=[dict(type='TextLoggerHook', by_epoch=False)])\n", - "dist_params = dict(backend='nccl')\n", - "log_level = 'INFO'\n", - "load_from = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'\n", - "resume_from = None\n", - "workflow = [('train', 1)]\n", - "cudnn_benchmark = True\n", - "optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)\n", - "optimizer_config = dict()\n", - "lr_config = dict(policy='poly', power=0.9, min_lr=0.0001, by_epoch=False)\n", - "runner = dict(type='IterBasedRunner', max_iters=200)\n", - "checkpoint_config = dict(by_epoch=False, interval=200)\n", - "evaluation = dict(interval=200, metric='mIoU')\n", - "work_dir = './work_dirs/tutorial'\n", - "seed = 0\n", - "gpu_ids = range(0, 1)\n", - "\n" - ], - "name": "stdout" - } - ] + "output_type": "stream", + "text": [ + "[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 143/143, 27.5 task/s, elapsed: 5s, ETA: 0s" + ], + "name": "stdout" }, { - "cell_type": "markdown", - "metadata": { - "id": "QWuH14LYF2gQ" - }, - "source": [ - "### Train and Evaluation" - ] + "output_type": "stream", + "text": [ + "2021-04-07 22:17:35,967 - mmseg - INFO - per class results:\n", + "2021-04-07 22:17:35,969 - mmseg - INFO - \n", + "+--------+-------+-------+\n", + "| Class | IoU | Acc |\n", + "+--------+-------+-------+\n", + "| sky | 87.18 | 91.91 |\n", + "| tree | 69.54 | 90.08 |\n", + "| road | 84.38 | 92.03 |\n", + "| grass | 72.91 | 90.34 |\n", + "| water | 57.42 | 62.66 |\n", + "| bldg | 78.36 | 87.32 |\n", + "| mntn | 0.0 | 0.0 |\n", + "| fg obj | 67.42 | 82.39 |\n", + "+--------+-------+-------+\n", + "2021-04-07 22:17:35,974 - mmseg - INFO - Summary:\n", + "2021-04-07 22:17:35,976 - mmseg - INFO - \n", + "+--------+-------+-------+-------+\n", + "| Scope | mIoU | mAcc | aAcc |\n", + "+--------+-------+-------+-------+\n", + "| global | 64.65 | 74.59 | 85.92 |\n", + "+--------+-------+-------+-------+\n", + "2021-04-07 22:17:35,986 - mmseg - INFO - Iter(val) [200]\tmIoU: 0.6465, mAcc: 0.7459, aAcc: 0.8592, IoU.sky: 0.8718, IoU.tree: 0.6954, IoU.road: 0.8438, IoU.grass: 0.7291, IoU.water: 0.5742, IoU.bldg: 0.7836, IoU.mntn: 0.0000, IoU.fg obj: 0.6742, Acc.sky: 0.9191, Acc.tree: 0.9008, Acc.road: 0.9203, Acc.grass: 0.9034, Acc.water: 0.6266, Acc.bldg: 0.8732, Acc.mntn: 0.0000, Acc.fg obj: 0.8239\n" + ], + "name": "stderr" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "DEkWOP-NMbc_" + }, + "source": [ + "Inference with trained model" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ekG__UfaH_OU", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 645 }, + "outputId": "1437419c-869a-4902-df86-d4f6f8b2597a" + }, + "source": [ + "img = mmcv.imread('iccv09Data/images/6000124.jpg')\n", + "\n", + "model.cfg = cfg\n", + "result = inference_segmentor(model, img)\n", + "plt.figure(figsize=(8, 6))\n", + "show_result_pyplot(model, img, result, palette)" + ], + "execution_count": 20, + "outputs": [ { - "cell_type": "code", - "metadata": { - "id": "jYKoSfdMF12B", - "colab": { - "base_uri": "https://localhost:8080/" - }, - "outputId": "422219ca-d7a5-4890-f09f-88c959942e64" - }, - "source": [ - "from mmseg.datasets import build_dataset\n", - "from mmseg.models import build_segmentor\n", - "from mmseg.apis import train_segmentor\n", - "\n", - "\n", - "# Build the dataset\n", - "datasets = [build_dataset(cfg.data.train)]\n", - "\n", - "# Build the detector\n", - "model = build_segmentor(\n", - " cfg.model, train_cfg=cfg.get('train_cfg'), test_cfg=cfg.get('test_cfg'))\n", - "# Add an attribute for visualization convenience\n", - "model.CLASSES = datasets[0].CLASSES\n", - "\n", - "# Create work_dir\n", - "mmcv.mkdir_or_exist(osp.abspath(cfg.work_dir))\n", - "train_segmentor(model, datasets, cfg, distributed=False, validate=True, \n", - " meta=dict())" - ], - "execution_count": 19, - "outputs": [ - { - "output_type": "stream", - "text": [ - "/usr/local/lib/python3.7/dist-packages/mmcv/utils/misc.py:304: UserWarning: \"flip_ratio\" is deprecated in `RandomFlip.__init__`, please use \"prob\" instead\n", - " f'\"{src_arg_name}\" is deprecated in '\n", - "2021-04-07 22:15:26,312 - mmseg - INFO - Loaded 572 images\n", - "2021-04-07 22:15:26,915 - mmseg - INFO - Use load_from_openmmlab loader\n", - "2021-04-07 22:15:26,999 - mmseg - WARNING - The model and loaded state dict do not match exactly\n", - "\n", - "unexpected key in source state_dict: fc.weight, fc.bias\n", - "\n", - "2021-04-07 22:15:27,070 - mmseg - INFO - Loaded 143 images\n", - "2021-04-07 22:15:27,072 - mmseg - INFO - load checkpoint from checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth\n", - "2021-04-07 22:15:27,073 - mmseg - INFO - Use load_from_local loader\n", - "2021-04-07 22:15:27,228 - mmseg - WARNING - The model and loaded state dict do not match exactly\n", - "\n", - "size mismatch for decode_head.conv_seg.weight: copying a param with shape torch.Size([19, 512, 1, 1]) from checkpoint, the shape in current model is torch.Size([8, 512, 1, 1]).\n", - "size mismatch for decode_head.conv_seg.bias: copying a param with shape torch.Size([19]) from checkpoint, the shape in current model is torch.Size([8]).\n", - "size mismatch for auxiliary_head.conv_seg.weight: copying a param with shape torch.Size([19, 256, 1, 1]) from checkpoint, the shape in current model is torch.Size([8, 256, 1, 1]).\n", - "size mismatch for auxiliary_head.conv_seg.bias: copying a param with shape torch.Size([19]) from checkpoint, the shape in current model is torch.Size([8]).\n", - "2021-04-07 22:15:27,232 - mmseg - INFO - Start running, host: root@c8cc0e0b80dc, work_dir: /content/mmsegmentation/work_dirs/tutorial\n", - "2021-04-07 22:15:27,237 - mmseg - INFO - workflow: [('train', 1)], max: 200 iters\n", - "2021-04-07 22:15:33,883 - mmseg - INFO - Iter [10/200]\tlr: 9.598e-03, eta: 0:01:58, time: 0.626, data_time: 0.039, memory: 3772, decode.loss_seg: 1.5570, decode.acc_seg: 44.2138, aux.loss_seg: 0.6808, aux.acc_seg: 40.7060, loss: 2.2378\n", - "2021-04-07 22:15:39,777 - mmseg - INFO - Iter [20/200]\tlr: 9.149e-03, eta: 0:01:49, time: 0.589, data_time: 0.008, memory: 3772, decode.loss_seg: 0.8328, decode.acc_seg: 67.4587, aux.loss_seg: 0.5270, aux.acc_seg: 65.5612, loss: 1.3598\n", - "2021-04-07 22:15:45,723 - mmseg - INFO - Iter [30/200]\tlr: 8.698e-03, eta: 0:01:42, time: 0.595, data_time: 0.008, memory: 3772, decode.loss_seg: 0.6151, decode.acc_seg: 65.5550, aux.loss_seg: 0.3798, aux.acc_seg: 64.0860, loss: 0.9949\n", - "2021-04-07 22:15:51,759 - mmseg - INFO - Iter [40/200]\tlr: 8.244e-03, eta: 0:01:36, time: 0.603, data_time: 0.008, memory: 3772, decode.loss_seg: 0.5840, decode.acc_seg: 68.8598, aux.loss_seg: 0.3035, aux.acc_seg: 66.3350, loss: 0.8875\n", - "2021-04-07 22:15:57,851 - mmseg - INFO - Iter [50/200]\tlr: 7.788e-03, eta: 0:01:30, time: 0.609, data_time: 0.008, memory: 3772, decode.loss_seg: 0.5198, decode.acc_seg: 69.1188, aux.loss_seg: 0.2708, aux.acc_seg: 66.1400, loss: 0.7906\n", - "2021-04-07 22:16:04,047 - mmseg - INFO - Iter [60/200]\tlr: 7.328e-03, eta: 0:01:24, time: 0.620, data_time: 0.008, memory: 3772, decode.loss_seg: 0.7124, decode.acc_seg: 66.1938, aux.loss_seg: 0.3291, aux.acc_seg: 63.7193, loss: 1.0415\n", - "2021-04-07 22:16:10,183 - mmseg - INFO - Iter [70/200]\tlr: 6.865e-03, eta: 0:01:19, time: 0.614, data_time: 0.008, memory: 3772, decode.loss_seg: 0.6217, decode.acc_seg: 67.6348, aux.loss_seg: 0.2921, aux.acc_seg: 65.4327, loss: 0.9138\n", - "2021-04-07 22:16:16,975 - mmseg - INFO - Iter [80/200]\tlr: 6.398e-03, eta: 0:01:14, time: 0.679, data_time: 0.083, memory: 3772, decode.loss_seg: 0.5825, decode.acc_seg: 67.3635, aux.loss_seg: 0.2740, aux.acc_seg: 66.0855, loss: 0.8565\n", - "2021-04-07 22:16:22,951 - mmseg - INFO - Iter [90/200]\tlr: 5.928e-03, eta: 0:01:07, time: 0.598, data_time: 0.008, memory: 3772, decode.loss_seg: 0.5509, decode.acc_seg: 71.3504, aux.loss_seg: 0.2507, aux.acc_seg: 70.5064, loss: 0.8016\n", - "2021-04-07 22:16:28,880 - mmseg - INFO - Iter [100/200]\tlr: 5.453e-03, eta: 0:01:01, time: 0.593, data_time: 0.008, memory: 3772, decode.loss_seg: 0.6903, decode.acc_seg: 62.3287, aux.loss_seg: 0.3010, aux.acc_seg: 62.1792, loss: 0.9913\n", - "2021-04-07 22:16:34,786 - mmseg - INFO - Iter [110/200]\tlr: 4.974e-03, eta: 0:00:54, time: 0.591, data_time: 0.008, memory: 3772, decode.loss_seg: 0.5627, decode.acc_seg: 68.7782, aux.loss_seg: 0.2505, aux.acc_seg: 68.3666, loss: 0.8132\n", - "2021-04-07 22:16:40,679 - mmseg - INFO - Iter [120/200]\tlr: 4.489e-03, eta: 0:00:48, time: 0.589, data_time: 0.008, memory: 3772, decode.loss_seg: 0.5006, decode.acc_seg: 70.7204, aux.loss_seg: 0.2400, aux.acc_seg: 69.5582, loss: 0.7406\n", - "2021-04-07 22:16:46,554 - mmseg - INFO - Iter [130/200]\tlr: 3.998e-03, eta: 0:00:42, time: 0.588, data_time: 0.008, memory: 3772, decode.loss_seg: 0.4775, decode.acc_seg: 70.6324, aux.loss_seg: 0.2211, aux.acc_seg: 69.0519, loss: 0.6986\n", - "2021-04-07 22:16:52,442 - mmseg - INFO - Iter [140/200]\tlr: 3.500e-03, eta: 0:00:36, time: 0.589, data_time: 0.008, memory: 3772, decode.loss_seg: 0.4812, decode.acc_seg: 71.5263, aux.loss_seg: 0.2262, aux.acc_seg: 68.9376, loss: 0.7074\n", - "2021-04-07 22:16:59,045 - mmseg - INFO - Iter [150/200]\tlr: 2.994e-03, eta: 0:00:30, time: 0.660, data_time: 0.075, memory: 3772, decode.loss_seg: 0.4366, decode.acc_seg: 73.8778, aux.loss_seg: 0.2085, aux.acc_seg: 71.9269, loss: 0.6452\n", - "2021-04-07 22:17:04,994 - mmseg - INFO - Iter [160/200]\tlr: 2.478e-03, eta: 0:00:24, time: 0.595, data_time: 0.008, memory: 3772, decode.loss_seg: 0.4244, decode.acc_seg: 73.4474, aux.loss_seg: 0.1975, aux.acc_seg: 72.5327, loss: 0.6219\n", - "2021-04-07 22:17:10,945 - mmseg - INFO - Iter [170/200]\tlr: 1.949e-03, eta: 0:00:18, time: 0.595, data_time: 0.008, memory: 3772, decode.loss_seg: 0.4268, decode.acc_seg: 71.7624, aux.loss_seg: 0.2042, aux.acc_seg: 70.3237, loss: 0.6311\n", - "2021-04-07 22:17:16,919 - mmseg - INFO - Iter [180/200]\tlr: 1.402e-03, eta: 0:00:12, time: 0.597, data_time: 0.008, memory: 3772, decode.loss_seg: 0.4488, decode.acc_seg: 72.1597, aux.loss_seg: 0.2177, aux.acc_seg: 70.9026, loss: 0.6665\n", - "2021-04-07 22:17:22,916 - mmseg - INFO - Iter [190/200]\tlr: 8.277e-04, eta: 0:00:06, time: 0.600, data_time: 0.008, memory: 3772, decode.loss_seg: 0.4651, decode.acc_seg: 75.1950, aux.loss_seg: 0.2244, aux.acc_seg: 73.2528, loss: 0.6894\n", - "2021-04-07 22:17:28,838 - mmseg - INFO - Saving checkpoint at 200 iterations\n" - ], - "name": "stderr" - }, - { - "output_type": "stream", - "text": [ - "[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 143/143, 27.5 task/s, elapsed: 5s, ETA: 0s" - ], - "name": "stdout" - }, - { - "output_type": "stream", - "text": [ - "2021-04-07 22:17:35,967 - mmseg - INFO - per class results:\n", - "2021-04-07 22:17:35,969 - mmseg - INFO - \n", - "+--------+-------+-------+\n", - "| Class | IoU | Acc |\n", - "+--------+-------+-------+\n", - "| sky | 87.18 | 91.91 |\n", - "| tree | 69.54 | 90.08 |\n", - "| road | 84.38 | 92.03 |\n", - "| grass | 72.91 | 90.34 |\n", - "| water | 57.42 | 62.66 |\n", - "| bldg | 78.36 | 87.32 |\n", - "| mntn | 0.0 | 0.0 |\n", - "| fg obj | 67.42 | 82.39 |\n", - "+--------+-------+-------+\n", - "2021-04-07 22:17:35,974 - mmseg - INFO - Summary:\n", - "2021-04-07 22:17:35,976 - mmseg - INFO - \n", - "+--------+-------+-------+-------+\n", - "| Scope | mIoU | mAcc | aAcc |\n", - "+--------+-------+-------+-------+\n", - "| global | 64.65 | 74.59 | 85.92 |\n", - "+--------+-------+-------+-------+\n", - "2021-04-07 22:17:35,986 - mmseg - INFO - Iter(val) [200]\tmIoU: 0.6465, mAcc: 0.7459, aAcc: 0.8592, IoU.sky: 0.8718, IoU.tree: 0.6954, IoU.road: 0.8438, IoU.grass: 0.7291, IoU.water: 0.5742, IoU.bldg: 0.7836, IoU.mntn: 0.0000, IoU.fg obj: 0.6742, Acc.sky: 0.9191, Acc.tree: 0.9008, Acc.road: 0.9203, Acc.grass: 0.9034, Acc.water: 0.6266, Acc.bldg: 0.8732, Acc.mntn: 0.0000, Acc.fg obj: 0.8239\n" - ], - "name": "stderr" - } - ] + "output_type": "stream", + "text": [ + "/content/mmsegmentation/mmseg/models/segmentors/base.py:271: UserWarning: show==False and out_file is not specified, only result image will be returned\n", + " warnings.warn('show==False and out_file is not specified, only '\n" + ], + "name": "stderr" }, { - "cell_type": "markdown", - "metadata": { - "id": "DEkWOP-NMbc_" - }, - "source": [ - "Inference with trained model" + "output_type": "display_data", + "data": { + "text/plain": [ + "
" ] + }, + "metadata": { + "tags": [] + } }, { - "cell_type": "code", - "metadata": { - "id": "ekG__UfaH_OU", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 645 - }, - "outputId": "1437419c-869a-4902-df86-d4f6f8b2597a" - }, - "source": [ - "img = mmcv.imread('iccv09Data/images/6000124.jpg')\n", - "\n", - "model.cfg = cfg\n", - "result = inference_segmentor(model, img)\n", - "plt.figure(figsize=(8, 6))\n", - "show_result_pyplot(model, img, result, palette)" - ], - "execution_count": 20, - "outputs": [ - { - "output_type": "stream", - "text": [ - "/content/mmsegmentation/mmseg/models/segmentors/base.py:271: UserWarning: show==False and out_file is not specified, only result image will be returned\n", - " warnings.warn('show==False and out_file is not specified, only '\n" - ], - "name": "stderr" - }, - { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": { - "tags": [] - } - }, - { - "output_type": "display_data", - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "tags": [], - "needs_background": "light" - } - } + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } } - ] -} \ No newline at end of file + ] + } + ] +} diff --git a/mmseg/models/losses/accuracy.py b/mmseg/models/losses/accuracy.py index e45f9ec485..c0fd2e7e74 100644 --- a/mmseg/models/losses/accuracy.py +++ b/mmseg/models/losses/accuracy.py @@ -44,7 +44,7 @@ def accuracy(pred, target, topk=1, thresh=None): correct = correct & (pred_value > thresh).t() res = [] for k in topk: - correct_k = correct[:k].view(-1).float().sum(0, keepdim=True) + correct_k = correct[:k].reshape(-1).float().sum(0, keepdim=True) res.append(correct_k.mul_(100.0 / target.numel())) return res[0] if return_single else res From d003f661cc10d642519da024bc45afc90b802e37 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Fri, 9 Apr 2021 14:36:03 -0700 Subject: [PATCH 116/706] [Improvement] Add cfg link in modelzoo (#468) --- configs/ann/README.md | 44 ++++++++-------- configs/apcnet/README.md | 32 ++++++------ configs/ccnet/README.md | 44 ++++++++-------- configs/cgnet/README.md | 8 +-- configs/danet/README.md | 44 ++++++++-------- configs/deeplabv3/README.md | 72 +++++++++++++------------- configs/deeplabv3plus/README.md | 72 +++++++++++++------------- configs/dmnet/README.md | 32 ++++++------ configs/dnlnet/README.md | 32 ++++++------ configs/emanet/README.md | 12 ++--- configs/encnet/README.md | 32 ++++++------ configs/fastscnn/README.md | 6 +-- configs/fcn/README.md | 92 ++++++++++++++++----------------- configs/fp16/README.md | 12 ++--- configs/gcnet/README.md | 44 ++++++++-------- configs/hrnet/README.md | 62 +++++++++++----------- configs/mobilenet_v2/README.md | 24 ++++----- configs/mobilenet_v3/README.md | 12 ++--- configs/nonlocal_net/README.md | 44 ++++++++-------- configs/ocrnet/README.md | 64 +++++++++++------------ configs/point_rend/README.md | 16 +++--- configs/psanet/README.md | 44 ++++++++-------- configs/pspnet/README.md | 68 ++++++++++++------------ configs/resnest/README.md | 24 ++++----- configs/sem_fpn/README.md | 16 +++--- configs/unet/README.md | 40 +++++++------- configs/upernet/README.md | 44 ++++++++-------- 27 files changed, 518 insertions(+), 518 deletions(-) diff --git a/configs/ann/README.md b/configs/ann/README.md index 7fc1648311..3bc332aa85 100644 --- a/configs/ann/README.md +++ b/configs/ann/README.md @@ -22,31 +22,31 @@ ### Cityscapes -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| ANN | R-50-D8 | 512x1024 | 40000 | 6 | 3.71 | 77.40 | 78.57 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_40k_cityscapes/ann_r50-d8_512x1024_40k_cityscapes_20200605_095211-049fc292.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_40k_cityscapes/ann_r50-d8_512x1024_40k_cityscapes_20200605_095211.log.json) | -| ANN | R-101-D8 | 512x1024 | 40000 | 9.5 | 2.55 | 76.55 | 78.85 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_40k_cityscapes/ann_r101-d8_512x1024_40k_cityscapes_20200605_095243-adf6eece.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_40k_cityscapes/ann_r101-d8_512x1024_40k_cityscapes_20200605_095243.log.json) | -| ANN | R-50-D8 | 769x769 | 40000 | 6.8 | 1.70 | 78.89 | 80.46 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_40k_cityscapes/ann_r50-d8_769x769_40k_cityscapes_20200530_025712-2b46b04d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_40k_cityscapes/ann_r50-d8_769x769_40k_cityscapes_20200530_025712.log.json) | -| ANN | R-101-D8 | 769x769 | 40000 | 10.7 | 1.15 | 79.32 | 80.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_40k_cityscapes/ann_r101-d8_769x769_40k_cityscapes_20200530_025720-059bff28.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_40k_cityscapes/ann_r101-d8_769x769_40k_cityscapes_20200530_025720.log.json) | -| ANN | R-50-D8 | 512x1024 | 80000 | - | - | 77.34 | 78.65 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_80k_cityscapes/ann_r50-d8_512x1024_80k_cityscapes_20200607_101911-5a9ad545.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_80k_cityscapes/ann_r50-d8_512x1024_80k_cityscapes_20200607_101911.log.json) | -| ANN | R-101-D8 | 512x1024 | 80000 | - | - | 77.14 | 78.81 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_80k_cityscapes/ann_r101-d8_512x1024_80k_cityscapes_20200607_013728-aceccc6e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_80k_cityscapes/ann_r101-d8_512x1024_80k_cityscapes_20200607_013728.log.json) | -| ANN | R-50-D8 | 769x769 | 80000 | - | - | 78.88 | 80.57 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_80k_cityscapes/ann_r50-d8_769x769_80k_cityscapes_20200607_044426-cc7ff323.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_80k_cityscapes/ann_r50-d8_769x769_80k_cityscapes_20200607_044426.log.json) | -| ANN | R-101-D8 | 769x769 | 80000 | - | - | 78.80 | 80.34 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_80k_cityscapes/ann_r101-d8_769x769_80k_cityscapes_20200607_013713-a9d4be8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_80k_cityscapes/ann_r101-d8_769x769_80k_cityscapes_20200607_013713.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| ANN | R-50-D8 | 512x1024 | 40000 | 6 | 3.71 | 77.40 | 78.57 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ann/ann_r50-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_40k_cityscapes/ann_r50-d8_512x1024_40k_cityscapes_20200605_095211-049fc292.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_40k_cityscapes/ann_r50-d8_512x1024_40k_cityscapes_20200605_095211.log.json) | +| ANN | R-101-D8 | 512x1024 | 40000 | 9.5 | 2.55 | 76.55 | 78.85 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ann/ann_r101-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_40k_cityscapes/ann_r101-d8_512x1024_40k_cityscapes_20200605_095243-adf6eece.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_40k_cityscapes/ann_r101-d8_512x1024_40k_cityscapes_20200605_095243.log.json) | +| ANN | R-50-D8 | 769x769 | 40000 | 6.8 | 1.70 | 78.89 | 80.46 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ann/ann_r50-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_40k_cityscapes/ann_r50-d8_769x769_40k_cityscapes_20200530_025712-2b46b04d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_40k_cityscapes/ann_r50-d8_769x769_40k_cityscapes_20200530_025712.log.json) | +| ANN | R-101-D8 | 769x769 | 40000 | 10.7 | 1.15 | 79.32 | 80.94 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ann/ann_r101-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_40k_cityscapes/ann_r101-d8_769x769_40k_cityscapes_20200530_025720-059bff28.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_40k_cityscapes/ann_r101-d8_769x769_40k_cityscapes_20200530_025720.log.json) | +| ANN | R-50-D8 | 512x1024 | 80000 | - | - | 77.34 | 78.65 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ann/ann_r50-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_80k_cityscapes/ann_r50-d8_512x1024_80k_cityscapes_20200607_101911-5a9ad545.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_80k_cityscapes/ann_r50-d8_512x1024_80k_cityscapes_20200607_101911.log.json) | +| ANN | R-101-D8 | 512x1024 | 80000 | - | - | 77.14 | 78.81 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ann/ann_r101-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_80k_cityscapes/ann_r101-d8_512x1024_80k_cityscapes_20200607_013728-aceccc6e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_80k_cityscapes/ann_r101-d8_512x1024_80k_cityscapes_20200607_013728.log.json) | +| ANN | R-50-D8 | 769x769 | 80000 | - | - | 78.88 | 80.57 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ann/ann_r50-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_80k_cityscapes/ann_r50-d8_769x769_80k_cityscapes_20200607_044426-cc7ff323.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_80k_cityscapes/ann_r50-d8_769x769_80k_cityscapes_20200607_044426.log.json) | +| ANN | R-101-D8 | 769x769 | 80000 | - | - | 78.80 | 80.34 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ann/ann_r101-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_80k_cityscapes/ann_r101-d8_769x769_80k_cityscapes_20200607_013713-a9d4be8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_80k_cityscapes/ann_r101-d8_769x769_80k_cityscapes_20200607_013713.log.json) | ### ADE20K -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| ANN | R-50-D8 | 512x512 | 80000 | 9.1 | 21.01 | 41.01 | 42.30 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_80k_ade20k/ann_r50-d8_512x512_80k_ade20k_20200615_014818-26f75e11.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_80k_ade20k/ann_r50-d8_512x512_80k_ade20k_20200615_014818.log.json) | -| ANN | R-101-D8 | 512x512 | 80000 | 12.5 | 14.12 | 42.94 | 44.18 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_80k_ade20k/ann_r101-d8_512x512_80k_ade20k_20200615_014818-c0153543.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_80k_ade20k/ann_r101-d8_512x512_80k_ade20k_20200615_014818.log.json) | -| ANN | R-50-D8 | 512x512 | 160000 | - | - | 41.74 | 42.62 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_160k_ade20k/ann_r50-d8_512x512_160k_ade20k_20200615_231733-892247bc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_160k_ade20k/ann_r50-d8_512x512_160k_ade20k_20200615_231733.log.json) | -| ANN | R-101-D8 | 512x512 | 160000 | - | - | 42.94 | 44.06 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_160k_ade20k/ann_r101-d8_512x512_160k_ade20k_20200615_231733-955eb1ec.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_160k_ade20k/ann_r101-d8_512x512_160k_ade20k_20200615_231733.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ----------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ANN | R-50-D8 | 512x512 | 80000 | 9.1 | 21.01 | 41.01 | 42.30 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ann/ann_r50-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_80k_ade20k/ann_r50-d8_512x512_80k_ade20k_20200615_014818-26f75e11.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_80k_ade20k/ann_r50-d8_512x512_80k_ade20k_20200615_014818.log.json) | +| ANN | R-101-D8 | 512x512 | 80000 | 12.5 | 14.12 | 42.94 | 44.18 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ann/ann_r101-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_80k_ade20k/ann_r101-d8_512x512_80k_ade20k_20200615_014818-c0153543.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_80k_ade20k/ann_r101-d8_512x512_80k_ade20k_20200615_014818.log.json) | +| ANN | R-50-D8 | 512x512 | 160000 | - | - | 41.74 | 42.62 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ann/ann_r50-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_160k_ade20k/ann_r50-d8_512x512_160k_ade20k_20200615_231733-892247bc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_160k_ade20k/ann_r50-d8_512x512_160k_ade20k_20200615_231733.log.json) | +| ANN | R-101-D8 | 512x512 | 160000 | - | - | 42.94 | 44.06 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ann/ann_r101-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_160k_ade20k/ann_r101-d8_512x512_160k_ade20k_20200615_231733-955eb1ec.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_160k_ade20k/ann_r101-d8_512x512_160k_ade20k_20200615_231733.log.json) | ### Pascal VOC 2012 + Aug -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| ANN | R-50-D8 | 512x512 | 20000 | 6 | 20.92 | 74.86 | 76.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_20k_voc12aug/ann_r50-d8_512x512_20k_voc12aug_20200617_222246-dfcb1c62.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_20k_voc12aug/ann_r50-d8_512x512_20k_voc12aug_20200617_222246.log.json) | -| ANN | R-101-D8 | 512x512 | 20000 | 9.5 | 13.94 | 77.47 | 78.70 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_20k_voc12aug/ann_r101-d8_512x512_20k_voc12aug_20200617_222246-2fad0042.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_20k_voc12aug/ann_r101-d8_512x512_20k_voc12aug_20200617_222246.log.json) | -| ANN | R-50-D8 | 512x512 | 40000 | - | - | 76.56 | 77.51 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_40k_voc12aug/ann_r50-d8_512x512_40k_voc12aug_20200613_231314-b5dac322.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_40k_voc12aug/ann_r50-d8_512x512_40k_voc12aug_20200613_231314.log.json) | -| ANN | R-101-D8 | 512x512 | 40000 | - | - | 76.70 | 78.06 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_40k_voc12aug/ann_r101-d8_512x512_40k_voc12aug_20200613_231314-bd205bbe.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_40k_voc12aug/ann_r101-d8_512x512_40k_voc12aug_20200613_231314.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| ANN | R-50-D8 | 512x512 | 20000 | 6 | 20.92 | 74.86 | 76.13 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ann/ann_r50-d8_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_20k_voc12aug/ann_r50-d8_512x512_20k_voc12aug_20200617_222246-dfcb1c62.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_20k_voc12aug/ann_r50-d8_512x512_20k_voc12aug_20200617_222246.log.json) | +| ANN | R-101-D8 | 512x512 | 20000 | 9.5 | 13.94 | 77.47 | 78.70 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ann/ann_r101-d8_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_20k_voc12aug/ann_r101-d8_512x512_20k_voc12aug_20200617_222246-2fad0042.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_20k_voc12aug/ann_r101-d8_512x512_20k_voc12aug_20200617_222246.log.json) | +| ANN | R-50-D8 | 512x512 | 40000 | - | - | 76.56 | 77.51 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ann/ann_r50-d8_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_40k_voc12aug/ann_r50-d8_512x512_40k_voc12aug_20200613_231314-b5dac322.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_40k_voc12aug/ann_r50-d8_512x512_40k_voc12aug_20200613_231314.log.json) | +| ANN | R-101-D8 | 512x512 | 40000 | - | - | 76.70 | 78.06 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ann/ann_r101-d8_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_40k_voc12aug/ann_r101-d8_512x512_40k_voc12aug_20200613_231314-bd205bbe.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_40k_voc12aug/ann_r101-d8_512x512_40k_voc12aug_20200613_231314.log.json) | diff --git a/configs/apcnet/README.md b/configs/apcnet/README.md index c2ab106a29..9366cb3728 100644 --- a/configs/apcnet/README.md +++ b/configs/apcnet/README.md @@ -18,22 +18,22 @@ year = {2019} ### Cityscapes -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| APCNet | R-50-D8 | 512x1024 | 40000 | 7.7 | 3.57 | 78.02 | 79.26 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes/apcnet_r50-d8_512x1024_40k_cityscapes_20201214_115717-5e88fa33.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes/apcnet_r50-d8_512x1024_40k_cityscapes-20201214_115717.log.json) | -| APCNet | R-101-D8 | 512x1024 | 40000 | 11.2 | 2.15 | 79.08 | 80.34 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes/apcnet_r101-d8_512x1024_40k_cityscapes_20201214_115716-abc9d111.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes/apcnet_r101-d8_512x1024_40k_cityscapes-20201214_115716.log.json) | -| APCNet | R-50-D8 | 769x769 | 40000 | 8.7 | 1.52 | 77.89 | 79.75 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_40k_cityscapes/apcnet_r50-d8_769x769_40k_cityscapes_20201214_115717-2a2628d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_40k_cityscapes/apcnet_r50-d8_769x769_40k_cityscapes-20201214_115717.log.json) | -| APCNet | R-101-D8 | 769x769 | 40000 | 12.7 | 1.03 | 77.96 | 79.24 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_40k_cityscapes/apcnet_r101-d8_769x769_40k_cityscapes_20201214_115718-b650de90.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_40k_cityscapes/apcnet_r101-d8_769x769_40k_cityscapes-20201214_115718.log.json) | -| APCNet | R-50-D8 | 512x1024 | 80000 | - | - | 78.96 | 79.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes/apcnet_r50-d8_512x1024_80k_cityscapes_20201214_115716-987f51e3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes/apcnet_r50-d8_512x1024_80k_cityscapes-20201214_115716.log.json) | -| APCNet | R-101-D8 | 512x1024 | 80000 | - | - | 79.64 | 80.61 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes/apcnet_r101-d8_512x1024_80k_cityscapes_20201214_115705-b1ff208a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes/apcnet_r101-d8_512x1024_80k_cityscapes-20201214_115705.log.json) | -| APCNet | R-50-D8 | 769x769 | 80000 | - | - | 78.79 | 80.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_80k_cityscapes/apcnet_r50-d8_769x769_80k_cityscapes_20201214_115718-7ea9fa12.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_80k_cityscapes/apcnet_r50-d8_769x769_80k_cityscapes-20201214_115718.log.json) | -| APCNet | R-101-D8 | 769x769 | 80000 | - | - | 78.45 | 79.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_80k_cityscapes/apcnet_r101-d8_769x769_80k_cityscapes_20201214_115716-a7fbc2ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_80k_cityscapes/apcnet_r101-d8_769x769_80k_cityscapes-20201214_115716.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| APCNet | R-50-D8 | 512x1024 | 40000 | 7.7 | 3.57 | 78.02 | 79.26 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes/apcnet_r50-d8_512x1024_40k_cityscapes_20201214_115717-5e88fa33.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes/apcnet_r50-d8_512x1024_40k_cityscapes-20201214_115717.log.json) | +| APCNet | R-101-D8 | 512x1024 | 40000 | 11.2 | 2.15 | 79.08 | 80.34 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes/apcnet_r101-d8_512x1024_40k_cityscapes_20201214_115716-abc9d111.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes/apcnet_r101-d8_512x1024_40k_cityscapes-20201214_115716.log.json) | +| APCNet | R-50-D8 | 769x769 | 40000 | 8.7 | 1.52 | 77.89 | 79.75 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/apcnet/apcnet_r50-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_40k_cityscapes/apcnet_r50-d8_769x769_40k_cityscapes_20201214_115717-2a2628d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_40k_cityscapes/apcnet_r50-d8_769x769_40k_cityscapes-20201214_115717.log.json) | +| APCNet | R-101-D8 | 769x769 | 40000 | 12.7 | 1.03 | 77.96 | 79.24 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/apcnet/apcnet_r101-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_40k_cityscapes/apcnet_r101-d8_769x769_40k_cityscapes_20201214_115718-b650de90.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_40k_cityscapes/apcnet_r101-d8_769x769_40k_cityscapes-20201214_115718.log.json) | +| APCNet | R-50-D8 | 512x1024 | 80000 | - | - | 78.96 | 79.94 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes/apcnet_r50-d8_512x1024_80k_cityscapes_20201214_115716-987f51e3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes/apcnet_r50-d8_512x1024_80k_cityscapes-20201214_115716.log.json) | +| APCNet | R-101-D8 | 512x1024 | 80000 | - | - | 79.64 | 80.61 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes/apcnet_r101-d8_512x1024_80k_cityscapes_20201214_115705-b1ff208a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes/apcnet_r101-d8_512x1024_80k_cityscapes-20201214_115705.log.json) | +| APCNet | R-50-D8 | 769x769 | 80000 | - | - | 78.79 | 80.35 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/apcnet/apcnet_r50-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_80k_cityscapes/apcnet_r50-d8_769x769_80k_cityscapes_20201214_115718-7ea9fa12.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_80k_cityscapes/apcnet_r50-d8_769x769_80k_cityscapes-20201214_115718.log.json) | +| APCNet | R-101-D8 | 769x769 | 80000 | - | - | 78.45 | 79.91 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/apcnet/apcnet_r101-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_80k_cityscapes/apcnet_r101-d8_769x769_80k_cityscapes_20201214_115716-a7fbc2ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_80k_cityscapes/apcnet_r101-d8_769x769_80k_cityscapes-20201214_115716.log.json) | ### ADE20K -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| APCNet | R-50-D8 | 512x512 | 80000 | 10.1 | 19.61 | 42.20 | 43.30 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_80k_ade20k/apcnet_r50-d8_512x512_80k_ade20k_20201214_115705-a8626293.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_80k_ade20k/apcnet_r50-d8_512x512_80k_ade20k-20201214_115705.log.json) | -| APCNet | R-101-D8 | 512x512 | 80000 | 13.6 | 13.10 | 45.54 | 46.65 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_80k_ade20k/apcnet_r101-d8_512x512_80k_ade20k_20201214_115704-c656c3fb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_80k_ade20k/apcnet_r101-d8_512x512_80k_ade20k-20201214_115704.log.json) | -| APCNet | R-50-D8 | 512x512 | 160000 | - | - | 43.40 | 43.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_160k_ade20k/apcnet_r50-d8_512x512_160k_ade20k_20201214_115706-25fb92c2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_160k_ade20k/apcnet_r50-d8_512x512_160k_ade20k-20201214_115706.log.json) | -| APCNet | R-101-D8 | 512x512 | 160000 | - | - | 45.41 | 46.63 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_160k_ade20k/apcnet_r101-d8_512x512_160k_ade20k_20201214_115705-73f9a8d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_160k_ade20k/apcnet_r101-d8_512x512_160k_ade20k-20201214_115705.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ----------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| APCNet | R-50-D8 | 512x512 | 80000 | 10.1 | 19.61 | 42.20 | 43.30 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/apcnet/apcnet_r50-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_80k_ade20k/apcnet_r50-d8_512x512_80k_ade20k_20201214_115705-a8626293.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_80k_ade20k/apcnet_r50-d8_512x512_80k_ade20k-20201214_115705.log.json) | +| APCNet | R-101-D8 | 512x512 | 80000 | 13.6 | 13.10 | 45.54 | 46.65 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/apcnet/apcnet_r101-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_80k_ade20k/apcnet_r101-d8_512x512_80k_ade20k_20201214_115704-c656c3fb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_80k_ade20k/apcnet_r101-d8_512x512_80k_ade20k-20201214_115704.log.json) | +| APCNet | R-50-D8 | 512x512 | 160000 | - | - | 43.40 | 43.94 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/apcnet/apcnet_r50-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_160k_ade20k/apcnet_r50-d8_512x512_160k_ade20k_20201214_115706-25fb92c2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_160k_ade20k/apcnet_r50-d8_512x512_160k_ade20k-20201214_115706.log.json) | +| APCNet | R-101-D8 | 512x512 | 160000 | - | - | 45.41 | 46.63 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/apcnet/apcnet_r101-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_160k_ade20k/apcnet_r101-d8_512x512_160k_ade20k_20201214_115705-73f9a8d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_160k_ade20k/apcnet_r101-d8_512x512_160k_ade20k-20201214_115705.log.json) | diff --git a/configs/ccnet/README.md b/configs/ccnet/README.md index 044d589678..9885239e99 100644 --- a/configs/ccnet/README.md +++ b/configs/ccnet/README.md @@ -17,31 +17,31 @@ ### Cityscapes -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| CCNet | R-50-D8 | 512x1024 | 40000 | 6 | 3.32 | 77.76 | 78.87 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes/ccnet_r50-d8_512x1024_40k_cityscapes_20200616_142517-4123f401.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes/ccnet_r50-d8_512x1024_40k_cityscapes_20200616_142517.log.json) | -| CCNet | R-101-D8 | 512x1024 | 40000 | 9.5 | 2.31 | 76.35 | 78.19 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes/ccnet_r101-d8_512x1024_40k_cityscapes_20200616_142540-a3b84ba6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes/ccnet_r101-d8_512x1024_40k_cityscapes_20200616_142540.log.json) | -| CCNet | R-50-D8 | 769x769 | 40000 | 6.8 | 1.43 | 78.46 | 79.93 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_40k_cityscapes/ccnet_r50-d8_769x769_40k_cityscapes_20200616_145125-76d11884.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_40k_cityscapes/ccnet_r50-d8_769x769_40k_cityscapes_20200616_145125.log.json) | -| CCNet | R-101-D8 | 769x769 | 40000 | 10.7 | 1.01 | 76.94 | 78.62 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_40k_cityscapes/ccnet_r101-d8_769x769_40k_cityscapes_20200617_101428-4f57c8d0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_40k_cityscapes/ccnet_r101-d8_769x769_40k_cityscapes_20200617_101428.log.json) | -| CCNet | R-50-D8 | 512x1024 | 80000 | - | - | 79.03 | 80.16 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes/ccnet_r50-d8_512x1024_80k_cityscapes_20200617_010421-869a3423.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes/ccnet_r50-d8_512x1024_80k_cityscapes_20200617_010421.log.json) | -| CCNet | R-101-D8 | 512x1024 | 80000 | - | - | 78.87 | 79.90 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes/ccnet_r101-d8_512x1024_80k_cityscapes_20200617_203935-ffae8917.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes/ccnet_r101-d8_512x1024_80k_cityscapes_20200617_203935.log.json) | -| CCNet | R-50-D8 | 769x769 | 80000 | - | - | 79.29 | 81.08 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_80k_cityscapes/ccnet_r50-d8_769x769_80k_cityscapes_20200617_010421-73eed8ca.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_80k_cityscapes/ccnet_r50-d8_769x769_80k_cityscapes_20200617_010421.log.json) | -| CCNet | R-101-D8 | 769x769 | 80000 | - | - | 79.45 | 80.66 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_80k_cityscapes/ccnet_r101-d8_769x769_80k_cityscapes_20200618_011502-ad3cd481.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_80k_cityscapes/ccnet_r101-d8_769x769_80k_cityscapes_20200618_011502.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| CCNet | R-50-D8 | 512x1024 | 40000 | 6 | 3.32 | 77.76 | 78.87 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes/ccnet_r50-d8_512x1024_40k_cityscapes_20200616_142517-4123f401.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes/ccnet_r50-d8_512x1024_40k_cityscapes_20200616_142517.log.json) | +| CCNet | R-101-D8 | 512x1024 | 40000 | 9.5 | 2.31 | 76.35 | 78.19 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes/ccnet_r101-d8_512x1024_40k_cityscapes_20200616_142540-a3b84ba6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes/ccnet_r101-d8_512x1024_40k_cityscapes_20200616_142540.log.json) | +| CCNet | R-50-D8 | 769x769 | 40000 | 6.8 | 1.43 | 78.46 | 79.93 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ccnet/ccnet_r50-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_40k_cityscapes/ccnet_r50-d8_769x769_40k_cityscapes_20200616_145125-76d11884.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_40k_cityscapes/ccnet_r50-d8_769x769_40k_cityscapes_20200616_145125.log.json) | +| CCNet | R-101-D8 | 769x769 | 40000 | 10.7 | 1.01 | 76.94 | 78.62 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ccnet/ccnet_r101-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_40k_cityscapes/ccnet_r101-d8_769x769_40k_cityscapes_20200617_101428-4f57c8d0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_40k_cityscapes/ccnet_r101-d8_769x769_40k_cityscapes_20200617_101428.log.json) | +| CCNet | R-50-D8 | 512x1024 | 80000 | - | - | 79.03 | 80.16 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes/ccnet_r50-d8_512x1024_80k_cityscapes_20200617_010421-869a3423.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes/ccnet_r50-d8_512x1024_80k_cityscapes_20200617_010421.log.json) | +| CCNet | R-101-D8 | 512x1024 | 80000 | - | - | 78.87 | 79.90 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes/ccnet_r101-d8_512x1024_80k_cityscapes_20200617_203935-ffae8917.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes/ccnet_r101-d8_512x1024_80k_cityscapes_20200617_203935.log.json) | +| CCNet | R-50-D8 | 769x769 | 80000 | - | - | 79.29 | 81.08 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ccnet/ccnet_r50-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_80k_cityscapes/ccnet_r50-d8_769x769_80k_cityscapes_20200617_010421-73eed8ca.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_80k_cityscapes/ccnet_r50-d8_769x769_80k_cityscapes_20200617_010421.log.json) | +| CCNet | R-101-D8 | 769x769 | 80000 | - | - | 79.45 | 80.66 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ccnet/ccnet_r101-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_80k_cityscapes/ccnet_r101-d8_769x769_80k_cityscapes_20200618_011502-ad3cd481.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_80k_cityscapes/ccnet_r101-d8_769x769_80k_cityscapes_20200618_011502.log.json) | ### ADE20K -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| CCNet | R-50-D8 | 512x512 | 80000 | 8.8 | 20.89 | 41.78 | 42.98 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_80k_ade20k/ccnet_r50-d8_512x512_80k_ade20k_20200615_014848-aa37f61e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_80k_ade20k/ccnet_r50-d8_512x512_80k_ade20k_20200615_014848.log.json) | -| CCNet | R-101-D8 | 512x512 | 80000 | 12.2 | 14.11 | 43.97 | 45.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_80k_ade20k/ccnet_r101-d8_512x512_80k_ade20k_20200615_014848-1f4929a3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_80k_ade20k/ccnet_r101-d8_512x512_80k_ade20k_20200615_014848.log.json) | -| CCNet | R-50-D8 | 512x512 | 160000 | - | - | 42.08 | 43.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_160k_ade20k/ccnet_r50-d8_512x512_160k_ade20k_20200616_084435-7c97193b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_160k_ade20k/ccnet_r50-d8_512x512_160k_ade20k_20200616_084435.log.json) | -| CCNet | R-101-D8 | 512x512 | 160000 | - | - | 43.71 | 45.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_160k_ade20k/ccnet_r101-d8_512x512_160k_ade20k_20200616_000644-e849e007.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_160k_ade20k/ccnet_r101-d8_512x512_160k_ade20k_20200616_000644.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | --------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| CCNet | R-50-D8 | 512x512 | 80000 | 8.8 | 20.89 | 41.78 | 42.98 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ccnet/ccnet_r50-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_80k_ade20k/ccnet_r50-d8_512x512_80k_ade20k_20200615_014848-aa37f61e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_80k_ade20k/ccnet_r50-d8_512x512_80k_ade20k_20200615_014848.log.json) | +| CCNet | R-101-D8 | 512x512 | 80000 | 12.2 | 14.11 | 43.97 | 45.13 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ccnet/ccnet_r101-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_80k_ade20k/ccnet_r101-d8_512x512_80k_ade20k_20200615_014848-1f4929a3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_80k_ade20k/ccnet_r101-d8_512x512_80k_ade20k_20200615_014848.log.json) | +| CCNet | R-50-D8 | 512x512 | 160000 | - | - | 42.08 | 43.13 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ccnet/ccnet_r50-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_160k_ade20k/ccnet_r50-d8_512x512_160k_ade20k_20200616_084435-7c97193b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_160k_ade20k/ccnet_r50-d8_512x512_160k_ade20k_20200616_084435.log.json) | +| CCNet | R-101-D8 | 512x512 | 160000 | - | - | 43.71 | 45.04 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ccnet/ccnet_r101-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_160k_ade20k/ccnet_r101-d8_512x512_160k_ade20k_20200616_000644-e849e007.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_160k_ade20k/ccnet_r101-d8_512x512_160k_ade20k_20200616_000644.log.json) | ### Pascal VOC 2012 + Aug -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| CCNet | R-50-D8 | 512x512 | 20000 | 6 | 20.45 | 76.17 | 77.51 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_20k_voc12aug/ccnet_r50-d8_512x512_20k_voc12aug_20200617_193212-fad81784.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_20k_voc12aug/ccnet_r50-d8_512x512_20k_voc12aug_20200617_193212.log.json) | -| CCNet | R-101-D8 | 512x512 | 20000 | 9.5 | 13.64 | 77.27 | 79.02 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_20k_voc12aug/ccnet_r101-d8_512x512_20k_voc12aug_20200617_193212-0007b61d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_20k_voc12aug/ccnet_r101-d8_512x512_20k_voc12aug_20200617_193212.log.json) | -| CCNet | R-50-D8 | 512x512 | 40000 | - | - | 75.96 | 77.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_40k_voc12aug/ccnet_r50-d8_512x512_40k_voc12aug_20200613_232127-c2a15f02.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_40k_voc12aug/ccnet_r50-d8_512x512_40k_voc12aug_20200613_232127.log.json) | -| CCNet | R-101-D8 | 512x512 | 40000 | - | - | 77.87 | 78.90 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_40k_voc12aug/ccnet_r101-d8_512x512_40k_voc12aug_20200613_232127-c30da577.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_40k_voc12aug/ccnet_r101-d8_512x512_40k_voc12aug_20200613_232127.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ---------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| CCNet | R-50-D8 | 512x512 | 20000 | 6 | 20.45 | 76.17 | 77.51 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ccnet/ccnet_r50-d8_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_20k_voc12aug/ccnet_r50-d8_512x512_20k_voc12aug_20200617_193212-fad81784.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_20k_voc12aug/ccnet_r50-d8_512x512_20k_voc12aug_20200617_193212.log.json) | +| CCNet | R-101-D8 | 512x512 | 20000 | 9.5 | 13.64 | 77.27 | 79.02 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ccnet/ccnet_r101-d8_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_20k_voc12aug/ccnet_r101-d8_512x512_20k_voc12aug_20200617_193212-0007b61d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_20k_voc12aug/ccnet_r101-d8_512x512_20k_voc12aug_20200617_193212.log.json) | +| CCNet | R-50-D8 | 512x512 | 40000 | - | - | 75.96 | 77.04 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ccnet/ccnet_r50-d8_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_40k_voc12aug/ccnet_r50-d8_512x512_40k_voc12aug_20200613_232127-c2a15f02.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_40k_voc12aug/ccnet_r50-d8_512x512_40k_voc12aug_20200613_232127.log.json) | +| CCNet | R-101-D8 | 512x512 | 40000 | - | - | 77.87 | 78.90 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ccnet/ccnet_r101-d8_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_40k_voc12aug/ccnet_r101-d8_512x512_40k_voc12aug_20200613_232127-c30da577.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_40k_voc12aug/ccnet_r101-d8_512x512_40k_voc12aug_20200613_232127.log.json) | diff --git a/configs/cgnet/README.md b/configs/cgnet/README.md index 00ba387203..4859492ebf 100644 --- a/configs/cgnet/README.md +++ b/configs/cgnet/README.md @@ -17,7 +17,7 @@ ### Cityscapes -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|-----------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| CGNet | M3N21 | 680x680 | 60000 | 7.5 | 30.51 | 65.63 | 68.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_680x680_60k_cityscapes/cgnet_680x680_60k_cityscapes_20201101_110253-4c0b2f2d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_680x680_60k_cityscapes/cgnet_680x680_60k_cityscapes-20201101_110253.log.json) | -| CGNet | M3N21 | 512x1024 | 60000 | 8.3 | 31.14 | 68.27 | 70.33 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_512x1024_60k_cityscapes/cgnet_512x1024_60k_cityscapes_20201101_110254-124ea03b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_512x1024_60k_cityscapes/cgnet_512x1024_60k_cityscapes-20201101_110254.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ----------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| CGNet | M3N21 | 680x680 | 60000 | 7.5 | 30.51 | 65.63 | 68.04 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/cgnet/cgnet_680x680_60k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_680x680_60k_cityscapes/cgnet_680x680_60k_cityscapes_20201101_110253-4c0b2f2d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_680x680_60k_cityscapes/cgnet_680x680_60k_cityscapes-20201101_110253.log.json) | +| CGNet | M3N21 | 512x1024 | 60000 | 8.3 | 31.14 | 68.27 | 70.33 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/cgnet/cgnet_512x1024_60k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_512x1024_60k_cityscapes/cgnet_512x1024_60k_cityscapes_20201101_110254-124ea03b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_512x1024_60k_cityscapes/cgnet_512x1024_60k_cityscapes-20201101_110254.log.json) | diff --git a/configs/danet/README.md b/configs/danet/README.md index f49ccf9619..90ddf6cab8 100644 --- a/configs/danet/README.md +++ b/configs/danet/README.md @@ -17,31 +17,31 @@ ### Cityscapes -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| DANet | R-50-D8 | 512x1024 | 40000 | 7.4 | 2.66 | 78.74 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_40k_cityscapes/danet_r50-d8_512x1024_40k_cityscapes_20200605_191324-c0dbfa5f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_40k_cityscapes/danet_r50-d8_512x1024_40k_cityscapes_20200605_191324.log.json) | -| DANet | R-101-D8 | 512x1024 | 40000 | 10.9 | 1.99 | 80.52 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_40k_cityscapes/danet_r101-d8_512x1024_40k_cityscapes_20200605_200831-c57a7157.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_40k_cityscapes/danet_r101-d8_512x1024_40k_cityscapes_20200605_200831.log.json) | -| DANet | R-50-D8 | 769x769 | 40000 | 8.8 | 1.56 | 78.88 | 80.62 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_40k_cityscapes/danet_r50-d8_769x769_40k_cityscapes_20200530_025703-76681c60.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_40k_cityscapes/danet_r50-d8_769x769_40k_cityscapes_20200530_025703.log.json) | -| DANet | R-101-D8 | 769x769 | 40000 | 12.8 | 1.07 | 79.88 | 81.47 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_40k_cityscapes/danet_r101-d8_769x769_40k_cityscapes_20200530_025717-dcb7fd4e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_40k_cityscapes/danet_r101-d8_769x769_40k_cityscapes_20200530_025717.log.json) | -| DANet | R-50-D8 | 512x1024 | 80000 | - | - | 79.34 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_80k_cityscapes/danet_r50-d8_512x1024_80k_cityscapes_20200607_133029-2bfa2293.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_80k_cityscapes/danet_r50-d8_512x1024_80k_cityscapes_20200607_133029.log.json) | -| DANet | R-101-D8 | 512x1024 | 80000 | - | - | 80.41 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_80k_cityscapes/danet_r101-d8_512x1024_80k_cityscapes_20200607_132918-955e6350.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_80k_cityscapes/danet_r101-d8_512x1024_80k_cityscapes_20200607_132918.log.json) | -| DANet | R-50-D8 | 769x769 | 80000 | - | - | 79.27 | 80.96 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_80k_cityscapes/danet_r50-d8_769x769_80k_cityscapes_20200607_132954-495689b4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_80k_cityscapes/danet_r50-d8_769x769_80k_cityscapes_20200607_132954.log.json) | -| DANet | R-101-D8 | 769x769 | 80000 | - | - | 80.47 | 82.02 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_80k_cityscapes/danet_r101-d8_769x769_80k_cityscapes_20200607_132918-f3a929e7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_80k_cityscapes/danet_r101-d8_769x769_80k_cityscapes_20200607_132918.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| DANet | R-50-D8 | 512x1024 | 40000 | 7.4 | 2.66 | 78.74 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/danet/danet_r50-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_40k_cityscapes/danet_r50-d8_512x1024_40k_cityscapes_20200605_191324-c0dbfa5f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_40k_cityscapes/danet_r50-d8_512x1024_40k_cityscapes_20200605_191324.log.json) | +| DANet | R-101-D8 | 512x1024 | 40000 | 10.9 | 1.99 | 80.52 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/danet/danet_r101-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_40k_cityscapes/danet_r101-d8_512x1024_40k_cityscapes_20200605_200831-c57a7157.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_40k_cityscapes/danet_r101-d8_512x1024_40k_cityscapes_20200605_200831.log.json) | +| DANet | R-50-D8 | 769x769 | 40000 | 8.8 | 1.56 | 78.88 | 80.62 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/danet/danet_r50-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_40k_cityscapes/danet_r50-d8_769x769_40k_cityscapes_20200530_025703-76681c60.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_40k_cityscapes/danet_r50-d8_769x769_40k_cityscapes_20200530_025703.log.json) | +| DANet | R-101-D8 | 769x769 | 40000 | 12.8 | 1.07 | 79.88 | 81.47 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/danet/danet_r101-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_40k_cityscapes/danet_r101-d8_769x769_40k_cityscapes_20200530_025717-dcb7fd4e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_40k_cityscapes/danet_r101-d8_769x769_40k_cityscapes_20200530_025717.log.json) | +| DANet | R-50-D8 | 512x1024 | 80000 | - | - | 79.34 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/danet/danet_r50-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_80k_cityscapes/danet_r50-d8_512x1024_80k_cityscapes_20200607_133029-2bfa2293.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_80k_cityscapes/danet_r50-d8_512x1024_80k_cityscapes_20200607_133029.log.json) | +| DANet | R-101-D8 | 512x1024 | 80000 | - | - | 80.41 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/danet/danet_r101-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_80k_cityscapes/danet_r101-d8_512x1024_80k_cityscapes_20200607_132918-955e6350.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_80k_cityscapes/danet_r101-d8_512x1024_80k_cityscapes_20200607_132918.log.json) | +| DANet | R-50-D8 | 769x769 | 80000 | - | - | 79.27 | 80.96 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/danet/danet_r50-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_80k_cityscapes/danet_r50-d8_769x769_80k_cityscapes_20200607_132954-495689b4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_80k_cityscapes/danet_r50-d8_769x769_80k_cityscapes_20200607_132954.log.json) | +| DANet | R-101-D8 | 769x769 | 80000 | - | - | 80.47 | 82.02 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/danet/danet_r101-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_80k_cityscapes/danet_r101-d8_769x769_80k_cityscapes_20200607_132918-f3a929e7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_80k_cityscapes/danet_r101-d8_769x769_80k_cityscapes_20200607_132918.log.json) | ### ADE20K -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| DANet | R-50-D8 | 512x512 | 80000 | 11.5 | 21.20 | 41.66 | 42.90 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_80k_ade20k/danet_r50-d8_512x512_80k_ade20k_20200615_015125-edb18e08.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_80k_ade20k/danet_r50-d8_512x512_80k_ade20k_20200615_015125.log.json) | -| DANet | R-101-D8 | 512x512 | 80000 | 15 | 14.18 | 43.64 | 45.19 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_80k_ade20k/danet_r101-d8_512x512_80k_ade20k_20200615_015126-d0357c73.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_80k_ade20k/danet_r101-d8_512x512_80k_ade20k_20200615_015126.log.json) | -| DANet | R-50-D8 | 512x512 | 160000 | - | - | 42.45 | 43.25 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_160k_ade20k/danet_r50-d8_512x512_160k_ade20k_20200616_082340-9cb35dcd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_160k_ade20k/danet_r50-d8_512x512_160k_ade20k_20200616_082340.log.json) | -| DANet | R-101-D8 | 512x512 | 160000 | - | - | 44.17 | 45.02 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_160k_ade20k/danet_r101-d8_512x512_160k_ade20k_20200616_082348-23bf12f9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_160k_ade20k/danet_r101-d8_512x512_160k_ade20k_20200616_082348.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | --------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| DANet | R-50-D8 | 512x512 | 80000 | 11.5 | 21.20 | 41.66 | 42.90 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/danet/danet_r50-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_80k_ade20k/danet_r50-d8_512x512_80k_ade20k_20200615_015125-edb18e08.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_80k_ade20k/danet_r50-d8_512x512_80k_ade20k_20200615_015125.log.json) | +| DANet | R-101-D8 | 512x512 | 80000 | 15 | 14.18 | 43.64 | 45.19 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/danet/danet_r101-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_80k_ade20k/danet_r101-d8_512x512_80k_ade20k_20200615_015126-d0357c73.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_80k_ade20k/danet_r101-d8_512x512_80k_ade20k_20200615_015126.log.json) | +| DANet | R-50-D8 | 512x512 | 160000 | - | - | 42.45 | 43.25 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/danet/danet_r50-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_160k_ade20k/danet_r50-d8_512x512_160k_ade20k_20200616_082340-9cb35dcd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_160k_ade20k/danet_r50-d8_512x512_160k_ade20k_20200616_082340.log.json) | +| DANet | R-101-D8 | 512x512 | 160000 | - | - | 44.17 | 45.02 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/danet/danet_r101-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_160k_ade20k/danet_r101-d8_512x512_160k_ade20k_20200616_082348-23bf12f9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_160k_ade20k/danet_r101-d8_512x512_160k_ade20k_20200616_082348.log.json) | ### Pascal VOC 2012 + Aug -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| DANet | R-50-D8 | 512x512 | 20000 | 6.5 | 20.94 | 74.45 | 75.69 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_20k_voc12aug/danet_r50-d8_512x512_20k_voc12aug_20200618_070026-9e9e3ab3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_20k_voc12aug/danet_r50-d8_512x512_20k_voc12aug_20200618_070026.log.json) | -| DANet | R-101-D8 | 512x512 | 20000 | 9.9 | 13.76 | 76.02 | 77.23 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_20k_voc12aug/danet_r101-d8_512x512_20k_voc12aug_20200618_070026-d48d23b2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_20k_voc12aug/danet_r101-d8_512x512_20k_voc12aug_20200618_070026.log.json) | -| DANet | R-50-D8 | 512x512 | 40000 | - | - | 76.37 | 77.29 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_40k_voc12aug/danet_r50-d8_512x512_40k_voc12aug_20200613_235526-426e3a64.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_40k_voc12aug/danet_r50-d8_512x512_40k_voc12aug_20200613_235526.log.json) | -| DANet | R-101-D8 | 512x512 | 40000 | - | - | 76.51 | 77.32 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_40k_voc12aug/danet_r101-d8_512x512_40k_voc12aug_20200613_223031-788e232a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_40k_voc12aug/danet_r101-d8_512x512_40k_voc12aug_20200613_223031.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ---------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| DANet | R-50-D8 | 512x512 | 20000 | 6.5 | 20.94 | 74.45 | 75.69 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/danet/danet_r50-d8_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_20k_voc12aug/danet_r50-d8_512x512_20k_voc12aug_20200618_070026-9e9e3ab3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_20k_voc12aug/danet_r50-d8_512x512_20k_voc12aug_20200618_070026.log.json) | +| DANet | R-101-D8 | 512x512 | 20000 | 9.9 | 13.76 | 76.02 | 77.23 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/danet/danet_r101-d8_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_20k_voc12aug/danet_r101-d8_512x512_20k_voc12aug_20200618_070026-d48d23b2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_20k_voc12aug/danet_r101-d8_512x512_20k_voc12aug_20200618_070026.log.json) | +| DANet | R-50-D8 | 512x512 | 40000 | - | - | 76.37 | 77.29 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/danet/danet_r50-d8_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_40k_voc12aug/danet_r50-d8_512x512_40k_voc12aug_20200613_235526-426e3a64.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_40k_voc12aug/danet_r50-d8_512x512_40k_voc12aug_20200613_235526.log.json) | +| DANet | R-101-D8 | 512x512 | 40000 | - | - | 76.51 | 77.32 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/danet/danet_r101-d8_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_40k_voc12aug/danet_r101-d8_512x512_40k_voc12aug_20200613_223031-788e232a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_40k_voc12aug/danet_r101-d8_512x512_40k_voc12aug_20200613_223031.log.json) | diff --git a/configs/deeplabv3/README.md b/configs/deeplabv3/README.md index c4994f6469..205bbcbf2f 100644 --- a/configs/deeplabv3/README.md +++ b/configs/deeplabv3/README.md @@ -19,48 +19,48 @@ Note: `D-8` here corresponding to the output stride 8 setting for DeepLab series ### Cityscapes -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|-----------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| DeepLabV3 | R-50-D8 | 512x1024 | 40000 | 6.1 | 2.57 | 79.09 | 80.45 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes/deeplabv3_r50-d8_512x1024_40k_cityscapes_20200605_022449-acadc2f8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes/deeplabv3_r50-d8_512x1024_40k_cityscapes_20200605_022449.log.json) | -| DeepLabV3 | R-101-D8 | 512x1024 | 40000 | 9.6 | 1.92 | 77.12 | 79.61 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes/deeplabv3_r101-d8_512x1024_40k_cityscapes_20200605_012241-7fd3f799.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes/deeplabv3_r101-d8_512x1024_40k_cityscapes_20200605_012241.log.json) | -| DeepLabV3 | R-50-D8 | 769x769 | 40000 | 6.9 | 1.11 | 78.58 | 79.89 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes/deeplabv3_r50-d8_769x769_40k_cityscapes_20200606_113723-7eda553c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes/deeplabv3_r50-d8_769x769_40k_cityscapes_20200606_113723.log.json) | -| DeepLabV3 | R-101-D8 | 769x769 | 40000 | 10.9 | 0.83 | 79.27 | 80.11 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes/deeplabv3_r101-d8_769x769_40k_cityscapes_20200606_113809-c64f889f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes/deeplabv3_r101-d8_769x769_40k_cityscapes_20200606_113809.log.json) | -| DeepLabV3 | R-18-D8 | 512x1024 | 80000 | 1.7 | 13.78 | 76.70 | 78.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes/deeplabv3_r18-d8_512x1024_80k_cityscapes_20201225_021506-23dffbe2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes/deeplabv3_r18-d8_512x1024_80k_cityscapes-20201225_021506.log.json) | -| DeepLabV3 | R-50-D8 | 512x1024 | 80000 | - | - | 79.32 | 80.57 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes/deeplabv3_r50-d8_512x1024_80k_cityscapes_20200606_113404-b92cfdd4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes/deeplabv3_r50-d8_512x1024_80k_cityscapes_20200606_113404.log.json) | -| DeepLabV3 | R-101-D8 | 512x1024 | 80000 | - | - | 80.20 | 81.21 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes/deeplabv3_r101-d8_512x1024_80k_cityscapes_20200606_113503-9e428899.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes/deeplabv3_r101-d8_512x1024_80k_cityscapes_20200606_113503.log.json) | -| DeepLabV3 | R-18-D8 | 769x769 | 80000 | 1.9 | 5.55 | 76.60 | 78.26 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes/deeplabv3_r18-d8_769x769_80k_cityscapes_20201225_021506-6452126a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes/deeplabv3_r18-d8_769x769_80k_cityscapes-20201225_021506.log.json) | -| DeepLabV3 | R-50-D8 | 769x769 | 80000 | - | - | 79.89 | 81.06 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes/deeplabv3_r50-d8_769x769_80k_cityscapes_20200606_221338-788d6228.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes/deeplabv3_r50-d8_769x769_80k_cityscapes_20200606_221338.log.json) | -| DeepLabV3 | R-101-D8 | 769x769 | 80000 | - | - | 79.67 | 80.81 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes/deeplabv3_r101-d8_769x769_80k_cityscapes_20200607_013353-60e95418.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes/deeplabv3_r101-d8_769x769_80k_cityscapes_20200607_013353.log.json) | -| DeepLabV3 | R-101-D16-MG124 | 512x1024 | 40000 | 4.7 | - 6.96 | 76.71 | 78.63 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes_20200908_005644-67b0c992.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes-20200908_005644.log.json) | -| DeepLabV3 | R-101-D16-MG124 | 512x1024 | 80000 | - | - | 78.36 | 79.84 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes_20200908_005644-57bb8425.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes-20200908_005644.log.json) | -| DeepLabV3 | R-18b-D8 | 512x1024 | 80000 | 1.6 | 13.93 | 76.26 | 77.88 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes/deeplabv3_r18b-d8_512x1024_80k_cityscapes_20201225_094144-46040cef.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes/deeplabv3_r18b-d8_512x1024_80k_cityscapes-20201225_094144.log.json) | -| DeepLabV3 | R-50b-D8 | 512x1024 | 80000 | 6.0 | 2.74 | 79.63 | 80.98 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes/deeplabv3_r50b-d8_512x1024_80k_cityscapes_20201225_155148-ec368954.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes/deeplabv3_r50b-d8_512x1024_80k_cityscapes-20201225_155148.log.json) | -| DeepLabV3 | R-101b-D8| 512x1024 | 80000 | 9.5 | 1.81 | 80.01 | 81.21 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes/deeplabv3_r101b-d8_512x1024_80k_cityscapes_20201226_171821-8fd49503.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes/deeplabv3_r101b-d8_512x1024_80k_cityscapes-20201226_171821.log.json) | -| DeepLabV3 | R-18b-D8 | 769x769 | 80000 | 1.8 | 5.79 | 76.63 | 77.51 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes/deeplabv3_r18b-d8_769x769_80k_cityscapes_20201225_094144-fdc985d9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes/deeplabv3_r18b-d8_769x769_80k_cityscapes-20201225_094144.log.json) | -| DeepLabV3 | R-50b-D8 | 769x769 | 80000 | 6.8 | 1.16 | 78.80 | 80.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes/deeplabv3_r50b-d8_769x769_80k_cityscapes_20201225_155404-87fb0cf4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes/deeplabv3_r50b-d8_769x769_80k_cityscapes-20201225_155404.log.json) | -| DeepLabV3 | R-101b-D8| 769x769 | 80000 | 10.7 | 0.82 | 79.41 | 80.73 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes/deeplabv3_r101b-d8_769x769_80k_cityscapes_20201226_190843-9142ee57.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes/deeplabv3_r101b-d8_769x769_80k_cityscapes-20201226_190843.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| --------- | --------------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| DeepLabV3 | R-50-D8 | 512x1024 | 40000 | 6.1 | 2.57 | 79.09 | 80.45 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes/deeplabv3_r50-d8_512x1024_40k_cityscapes_20200605_022449-acadc2f8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes/deeplabv3_r50-d8_512x1024_40k_cityscapes_20200605_022449.log.json) | +| DeepLabV3 | R-101-D8 | 512x1024 | 40000 | 9.6 | 1.92 | 77.12 | 79.61 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes/deeplabv3_r101-d8_512x1024_40k_cityscapes_20200605_012241-7fd3f799.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes/deeplabv3_r101-d8_512x1024_40k_cityscapes_20200605_012241.log.json) | +| DeepLabV3 | R-50-D8 | 769x769 | 40000 | 6.9 | 1.11 | 78.58 | 79.89 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes/deeplabv3_r50-d8_769x769_40k_cityscapes_20200606_113723-7eda553c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes/deeplabv3_r50-d8_769x769_40k_cityscapes_20200606_113723.log.json) | +| DeepLabV3 | R-101-D8 | 769x769 | 40000 | 10.9 | 0.83 | 79.27 | 80.11 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes/deeplabv3_r101-d8_769x769_40k_cityscapes_20200606_113809-c64f889f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes/deeplabv3_r101-d8_769x769_40k_cityscapes_20200606_113809.log.json) | +| DeepLabV3 | R-18-D8 | 512x1024 | 80000 | 1.7 | 13.78 | 76.70 | 78.27 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes/deeplabv3_r18-d8_512x1024_80k_cityscapes_20201225_021506-23dffbe2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes/deeplabv3_r18-d8_512x1024_80k_cityscapes-20201225_021506.log.json) | +| DeepLabV3 | R-50-D8 | 512x1024 | 80000 | - | - | 79.32 | 80.57 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes/deeplabv3_r50-d8_512x1024_80k_cityscapes_20200606_113404-b92cfdd4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes/deeplabv3_r50-d8_512x1024_80k_cityscapes_20200606_113404.log.json) | +| DeepLabV3 | R-101-D8 | 512x1024 | 80000 | - | - | 80.20 | 81.21 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes/deeplabv3_r101-d8_512x1024_80k_cityscapes_20200606_113503-9e428899.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes/deeplabv3_r101-d8_512x1024_80k_cityscapes_20200606_113503.log.json) | +| DeepLabV3 | R-18-D8 | 769x769 | 80000 | 1.9 | 5.55 | 76.60 | 78.26 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes/deeplabv3_r18-d8_769x769_80k_cityscapes_20201225_021506-6452126a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes/deeplabv3_r18-d8_769x769_80k_cityscapes-20201225_021506.log.json) | +| DeepLabV3 | R-50-D8 | 769x769 | 80000 | - | - | 79.89 | 81.06 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes/deeplabv3_r50-d8_769x769_80k_cityscapes_20200606_221338-788d6228.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes/deeplabv3_r50-d8_769x769_80k_cityscapes_20200606_221338.log.json) | +| DeepLabV3 | R-101-D8 | 769x769 | 80000 | - | - | 79.67 | 80.81 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes/deeplabv3_r101-d8_769x769_80k_cityscapes_20200607_013353-60e95418.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes/deeplabv3_r101-d8_769x769_80k_cityscapes_20200607_013353.log.json) | +| DeepLabV3 | R-101-D16-MG124 | 512x1024 | 40000 | 4.7 | - 6.96 | 76.71 | 78.63 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes_20200908_005644-67b0c992.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes-20200908_005644.log.json) | +| DeepLabV3 | R-101-D16-MG124 | 512x1024 | 80000 | - | - | 78.36 | 79.84 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes_20200908_005644-57bb8425.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes-20200908_005644.log.json) | +| DeepLabV3 | R-18b-D8 | 512x1024 | 80000 | 1.6 | 13.93 | 76.26 | 77.88 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes/deeplabv3_r18b-d8_512x1024_80k_cityscapes_20201225_094144-46040cef.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes/deeplabv3_r18b-d8_512x1024_80k_cityscapes-20201225_094144.log.json) | +| DeepLabV3 | R-50b-D8 | 512x1024 | 80000 | 6.0 | 2.74 | 79.63 | 80.98 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes/deeplabv3_r50b-d8_512x1024_80k_cityscapes_20201225_155148-ec368954.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes/deeplabv3_r50b-d8_512x1024_80k_cityscapes-20201225_155148.log.json) | +| DeepLabV3 | R-101b-D8 | 512x1024 | 80000 | 9.5 | 1.81 | 80.01 | 81.21 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes/deeplabv3_r101b-d8_512x1024_80k_cityscapes_20201226_171821-8fd49503.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes/deeplabv3_r101b-d8_512x1024_80k_cityscapes-20201226_171821.log.json) | +| DeepLabV3 | R-18b-D8 | 769x769 | 80000 | 1.8 | 5.79 | 76.63 | 77.51 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes/deeplabv3_r18b-d8_769x769_80k_cityscapes_20201225_094144-fdc985d9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes/deeplabv3_r18b-d8_769x769_80k_cityscapes-20201225_094144.log.json) | +| DeepLabV3 | R-50b-D8 | 769x769 | 80000 | 6.8 | 1.16 | 78.80 | 80.27 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes/deeplabv3_r50b-d8_769x769_80k_cityscapes_20201225_155404-87fb0cf4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes/deeplabv3_r50b-d8_769x769_80k_cityscapes-20201225_155404.log.json) | +| DeepLabV3 | R-101b-D8 | 769x769 | 80000 | 10.7 | 0.82 | 79.41 | 80.73 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes/deeplabv3_r101b-d8_769x769_80k_cityscapes_20201226_190843-9142ee57.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes/deeplabv3_r101b-d8_769x769_80k_cityscapes-20201226_190843.log.json) | ### ADE20K -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|-----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| DeepLabV3 | R-50-D8 | 512x512 | 80000 | 8.9 | 14.76 | 42.42 | 43.28 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k/deeplabv3_r50-d8_512x512_80k_ade20k_20200614_185028-0bb3f844.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k/deeplabv3_r50-d8_512x512_80k_ade20k_20200614_185028.log.json) | -| DeepLabV3 | R-101-D8 | 512x512 | 80000 | 12.4 | 10.14 | 44.08 | 45.19 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k/deeplabv3_r101-d8_512x512_80k_ade20k_20200615_021256-d89c7fa4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k/deeplabv3_r101-d8_512x512_80k_ade20k_20200615_021256.log.json) | -| DeepLabV3 | R-50-D8 | 512x512 | 160000 | - | - | 42.66 | 44.09 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k/deeplabv3_r50-d8_512x512_160k_ade20k_20200615_123227-5d0ee427.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k/deeplabv3_r50-d8_512x512_160k_ade20k_20200615_123227.log.json) | -| DeepLabV3 | R-101-D8 | 512x512 | 160000 | - | - | 45.00 | 46.66 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k/deeplabv3_r101-d8_512x512_160k_ade20k_20200615_105816-b1f72b3b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k/deeplabv3_r101-d8_512x512_160k_ade20k_20200615_105816.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| --------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| DeepLabV3 | R-50-D8 | 512x512 | 80000 | 8.9 | 14.76 | 42.42 | 43.28 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k/deeplabv3_r50-d8_512x512_80k_ade20k_20200614_185028-0bb3f844.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k/deeplabv3_r50-d8_512x512_80k_ade20k_20200614_185028.log.json) | +| DeepLabV3 | R-101-D8 | 512x512 | 80000 | 12.4 | 10.14 | 44.08 | 45.19 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k/deeplabv3_r101-d8_512x512_80k_ade20k_20200615_021256-d89c7fa4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k/deeplabv3_r101-d8_512x512_80k_ade20k_20200615_021256.log.json) | +| DeepLabV3 | R-50-D8 | 512x512 | 160000 | - | - | 42.66 | 44.09 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k/deeplabv3_r50-d8_512x512_160k_ade20k_20200615_123227-5d0ee427.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k/deeplabv3_r50-d8_512x512_160k_ade20k_20200615_123227.log.json) | +| DeepLabV3 | R-101-D8 | 512x512 | 160000 | - | - | 45.00 | 46.66 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k/deeplabv3_r101-d8_512x512_160k_ade20k_20200615_105816-b1f72b3b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k/deeplabv3_r101-d8_512x512_160k_ade20k_20200615_105816.log.json) | ### Pascal VOC 2012 + Aug -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|-----------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| DeepLabV3 | R-50-D8 | 512x512 | 20000 | 6.1 | 13.88 | 76.17 | 77.42 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug/deeplabv3_r50-d8_512x512_20k_voc12aug_20200617_010906-596905ef.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug/deeplabv3_r50-d8_512x512_20k_voc12aug_20200617_010906.log.json) | -| DeepLabV3 | R-101-D8 | 512x512 | 20000 | 9.6 | 9.81 | 78.70 | 79.95 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug/deeplabv3_r101-d8_512x512_20k_voc12aug_20200617_010932-8d13832f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug/deeplabv3_r101-d8_512x512_20k_voc12aug_20200617_010932.log.json) | -| DeepLabV3 | R-50-D8 | 512x512 | 40000 | - | - | 77.68 | 78.78 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug/deeplabv3_r50-d8_512x512_40k_voc12aug_20200613_161546-2ae96e7e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug/deeplabv3_r50-d8_512x512_40k_voc12aug_20200613_161546.log.json) | -| DeepLabV3 | R-101-D8 | 512x512 | 40000 | - | - | 77.92 | 79.18 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug/deeplabv3_r101-d8_512x512_40k_voc12aug_20200613_161432-0017d784.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug/deeplabv3_r101-d8_512x512_40k_voc12aug_20200613_161432.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| --------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| DeepLabV3 | R-50-D8 | 512x512 | 20000 | 6.1 | 13.88 | 76.17 | 77.42 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug/deeplabv3_r50-d8_512x512_20k_voc12aug_20200617_010906-596905ef.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug/deeplabv3_r50-d8_512x512_20k_voc12aug_20200617_010906.log.json) | +| DeepLabV3 | R-101-D8 | 512x512 | 20000 | 9.6 | 9.81 | 78.70 | 79.95 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug/deeplabv3_r101-d8_512x512_20k_voc12aug_20200617_010932-8d13832f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug/deeplabv3_r101-d8_512x512_20k_voc12aug_20200617_010932.log.json) | +| DeepLabV3 | R-50-D8 | 512x512 | 40000 | - | - | 77.68 | 78.78 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug/deeplabv3_r50-d8_512x512_40k_voc12aug_20200613_161546-2ae96e7e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug/deeplabv3_r50-d8_512x512_40k_voc12aug_20200613_161546.log.json) | +| DeepLabV3 | R-101-D8 | 512x512 | 40000 | - | - | 77.92 | 79.18 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug/deeplabv3_r101-d8_512x512_40k_voc12aug_20200613_161432-0017d784.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug/deeplabv3_r101-d8_512x512_40k_voc12aug_20200613_161432.log.json) | ### Pascal Context -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|-----------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| DeepLabV3 | R-101-D8 | 480x480 | 40000 | 9.2 | 7.09 | 46.55 | 47.81 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context/deeplabv3_r101-d8_480x480_40k_pascal_context_20200911_204118-1aa27336.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context/deeplabv3_r101-d8_480x480_40k_pascal_context-20200911_204118.log.json) | -| DeepLabV3 | R-101-D8 | 480x480 | 80000 | - | - | 46.42 | 47.53 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context/deeplabv3_r101-d8_480x480_80k_pascal_context_20200911_170155-2a21fff3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context/deeplabv3_r101-d8_480x480_80k_pascal_context-20200911_170155.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| --------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| DeepLabV3 | R-101-D8 | 480x480 | 40000 | 9.2 | 7.09 | 46.55 | 47.81 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context/deeplabv3_r101-d8_480x480_40k_pascal_context_20200911_204118-1aa27336.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context/deeplabv3_r101-d8_480x480_40k_pascal_context-20200911_204118.log.json) | +| DeepLabV3 | R-101-D8 | 480x480 | 80000 | - | - | 46.42 | 47.53 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context/deeplabv3_r101-d8_480x480_80k_pascal_context_20200911_170155-2a21fff3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context/deeplabv3_r101-d8_480x480_80k_pascal_context-20200911_170155.log.json) | diff --git a/configs/deeplabv3plus/README.md b/configs/deeplabv3plus/README.md index dc02660428..934ee34568 100644 --- a/configs/deeplabv3plus/README.md +++ b/configs/deeplabv3plus/README.md @@ -21,48 +21,48 @@ Note: ### Cityscapes -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|------------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| DeepLabV3+ | R-50-D8 | 512x1024 | 40000 | 7.5 | 3.94 | 79.61 | 81.01 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes/deeplabv3plus_r50-d8_512x1024_40k_cityscapes_20200605_094610-d222ffcd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes/deeplabv3plus_r50-d8_512x1024_40k_cityscapes_20200605_094610.log.json) | -| DeepLabV3+ | R-101-D8 | 512x1024 | 40000 | 11 | 2.60 | 80.21 | 81.82 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes/deeplabv3plus_r101-d8_512x1024_40k_cityscapes_20200605_094614-3769eecf.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes/deeplabv3plus_r101-d8_512x1024_40k_cityscapes_20200605_094614.log.json) | -| DeepLabV3+ | R-50-D8 | 769x769 | 40000 | 8.5 | 1.72 | 78.97 | 80.46 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes/deeplabv3plus_r50-d8_769x769_40k_cityscapes_20200606_114143-1dcb0e3c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes/deeplabv3plus_r50-d8_769x769_40k_cityscapes_20200606_114143.log.json) | -| DeepLabV3+ | R-101-D8 | 769x769 | 40000 | 12.5 | 1.15 | 79.46 | 80.50 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes/deeplabv3plus_r101-d8_769x769_40k_cityscapes_20200606_114304-ff414b9e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes/deeplabv3plus_r101-d8_769x769_40k_cityscapes_20200606_114304.log.json) | -| DeepLabV3+ | R-18-D8 | 512x1024 | 80000 | 2.2 | 14.27 | 76.89 | 78.76 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes/deeplabv3plus_r18-d8_512x1024_80k_cityscapes_20201226_080942-cff257fe.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes/deeplabv3plus_r18-d8_512x1024_80k_cityscapes-20201226_080942.log.json) | -| DeepLabV3+ | R-50-D8 | 512x1024 | 80000 | - | - | 80.09 | 81.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes/deeplabv3plus_r50-d8_512x1024_80k_cityscapes_20200606_114049-f9fb496d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes/deeplabv3plus_r50-d8_512x1024_80k_cityscapes_20200606_114049.log.json) | -| DeepLabV3+ | R-101-D8 | 512x1024 | 80000 | - | - | 80.97 | 82.03 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143-068fcfe9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143.log.json) | -| DeepLabV3+ | R-18-D8 | 769x769 | 80000 | 2.5 | 5.74 | 76.26 | 77.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes/deeplabv3plus_r18-d8_769x769_80k_cityscapes_20201226_083346-f326e06a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes/deeplabv3plus_r18-d8_769x769_80k_cityscapes-20201226_083346.log.json) | -| DeepLabV3+ | R-50-D8 | 769x769 | 80000 | - | - | 79.83 | 81.48 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes/deeplabv3plus_r50-d8_769x769_80k_cityscapes_20200606_210233-0e9dfdc4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes/deeplabv3plus_r50-d8_769x769_80k_cityscapes_20200606_210233.log.json) | -| DeepLabV3+ | R-101-D8 | 769x769 | 80000 | - | - | 80.98 | 82.18 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes/deeplabv3plus_r101-d8_769x769_80k_cityscapes_20200607_000405-a7573d20.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes/deeplabv3plus_r101-d8_769x769_80k_cityscapes_20200607_000405.log.json) | -| DeepLabV3+ | R-101-D16-MG124 | 512x1024 | 40000 | 5.8 | 7.48 | 79.09 | 80.36 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes_20200908_005644-cf9ce186.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes-20200908_005644.log.json) | -| DeepLabV3+ | R-101-D16-MG124 | 512x1024 | 80000 | 9.9 | - | 79.90 | 81.33 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes_20200908_005644-ee6158e0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes-20200908_005644.log.json) | -| DeepLabV3+ | R-18b-D8 | 512x1024 | 80000 | 2.1 | 14.95 | 75.87 | 77.52 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes_20201226_090828-e451abd9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes-20201226_090828.log.json) | -| DeepLabV3+ | R-50b-D8 | 512x1024 | 80000 | 7.4 | 3.94 | 80.28 | 81.44 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes_20201225_213645-a97e4e43.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes-20201225_213645.log.json) | -| DeepLabV3+ | R-101b-D8| 512x1024 | 80000 | 10.9 | 2.60 | 80.16 | 81.41 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes_20201226_190843-9c3c93a4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes-20201226_190843.log.json) | -| DeepLabV3+ | R-18b-D8 | 769x769 | 80000 | 2.4 | 5.96 | 76.36 | 78.24 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes/deeplabv3plus_r18b-d8_769x769_80k_cityscapes_20201226_151312-2c868aff.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes/deeplabv3plus_r18b-d8_769x769_80k_cityscapes-20201226_151312.log.json) | -| DeepLabV3+ | R-50b-D8 | 769x769 | 80000 | 8.4 | 1.72 | 79.41 | 80.56 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes/deeplabv3plus_r50b-d8_769x769_80k_cityscapes_20201225_224655-8b596d1c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes/deeplabv3plus_r50b-d8_769x769_80k_cityscapes-20201225_224655.log.json) | -| DeepLabV3+ | R-101b-D8| 769x769 | 80000 | 12.3 | 1.10 | 79.88 | 81.46 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes/deeplabv3plus_r101b-d8_769x769_80k_cityscapes_20201226_205041-227cdf7c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes/deeplabv3plus_r101b-d8_769x769_80k_cityscapes-20201226_205041.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ---------- | --------------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| DeepLabV3+ | R-50-D8 | 512x1024 | 40000 | 7.5 | 3.94 | 79.61 | 81.01 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes/deeplabv3plus_r50-d8_512x1024_40k_cityscapes_20200605_094610-d222ffcd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes/deeplabv3plus_r50-d8_512x1024_40k_cityscapes_20200605_094610.log.json) | +| DeepLabV3+ | R-101-D8 | 512x1024 | 40000 | 11 | 2.60 | 80.21 | 81.82 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes/deeplabv3plus_r101-d8_512x1024_40k_cityscapes_20200605_094614-3769eecf.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes/deeplabv3plus_r101-d8_512x1024_40k_cityscapes_20200605_094614.log.json) | +| DeepLabV3+ | R-50-D8 | 769x769 | 40000 | 8.5 | 1.72 | 78.97 | 80.46 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes/deeplabv3plus_r50-d8_769x769_40k_cityscapes_20200606_114143-1dcb0e3c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes/deeplabv3plus_r50-d8_769x769_40k_cityscapes_20200606_114143.log.json) | +| DeepLabV3+ | R-101-D8 | 769x769 | 40000 | 12.5 | 1.15 | 79.46 | 80.50 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes/deeplabv3plus_r101-d8_769x769_40k_cityscapes_20200606_114304-ff414b9e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes/deeplabv3plus_r101-d8_769x769_40k_cityscapes_20200606_114304.log.json) | +| DeepLabV3+ | R-18-D8 | 512x1024 | 80000 | 2.2 | 14.27 | 76.89 | 78.76 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes/deeplabv3plus_r18-d8_512x1024_80k_cityscapes_20201226_080942-cff257fe.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes/deeplabv3plus_r18-d8_512x1024_80k_cityscapes-20201226_080942.log.json) | +| DeepLabV3+ | R-50-D8 | 512x1024 | 80000 | - | - | 80.09 | 81.13 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes/deeplabv3plus_r50-d8_512x1024_80k_cityscapes_20200606_114049-f9fb496d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes/deeplabv3plus_r50-d8_512x1024_80k_cityscapes_20200606_114049.log.json) | +| DeepLabV3+ | R-101-D8 | 512x1024 | 80000 | - | - | 80.97 | 82.03 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143-068fcfe9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143.log.json) | +| DeepLabV3+ | R-18-D8 | 769x769 | 80000 | 2.5 | 5.74 | 76.26 | 77.91 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes/deeplabv3plus_r18-d8_769x769_80k_cityscapes_20201226_083346-f326e06a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes/deeplabv3plus_r18-d8_769x769_80k_cityscapes-20201226_083346.log.json) | +| DeepLabV3+ | R-50-D8 | 769x769 | 80000 | - | - | 79.83 | 81.48 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes/deeplabv3plus_r50-d8_769x769_80k_cityscapes_20200606_210233-0e9dfdc4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes/deeplabv3plus_r50-d8_769x769_80k_cityscapes_20200606_210233.log.json) | +| DeepLabV3+ | R-101-D8 | 769x769 | 80000 | - | - | 80.98 | 82.18 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes/deeplabv3plus_r101-d8_769x769_80k_cityscapes_20200607_000405-a7573d20.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes/deeplabv3plus_r101-d8_769x769_80k_cityscapes_20200607_000405.log.json) | +| DeepLabV3+ | R-101-D16-MG124 | 512x1024 | 40000 | 5.8 | 7.48 | 79.09 | 80.36 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes_20200908_005644-cf9ce186.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes-20200908_005644.log.json) | +| DeepLabV3+ | R-101-D16-MG124 | 512x1024 | 80000 | 9.9 | - | 79.90 | 81.33 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes_20200908_005644-ee6158e0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes-20200908_005644.log.json) | +| DeepLabV3+ | R-18b-D8 | 512x1024 | 80000 | 2.1 | 14.95 | 75.87 | 77.52 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes_20201226_090828-e451abd9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes-20201226_090828.log.json) | +| DeepLabV3+ | R-50b-D8 | 512x1024 | 80000 | 7.4 | 3.94 | 80.28 | 81.44 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes_20201225_213645-a97e4e43.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes-20201225_213645.log.json) | +| DeepLabV3+ | R-101b-D8 | 512x1024 | 80000 | 10.9 | 2.60 | 80.16 | 81.41 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes_20201226_190843-9c3c93a4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes-20201226_190843.log.json) | +| DeepLabV3+ | R-18b-D8 | 769x769 | 80000 | 2.4 | 5.96 | 76.36 | 78.24 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes/deeplabv3plus_r18b-d8_769x769_80k_cityscapes_20201226_151312-2c868aff.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes/deeplabv3plus_r18b-d8_769x769_80k_cityscapes-20201226_151312.log.json) | +| DeepLabV3+ | R-50b-D8 | 769x769 | 80000 | 8.4 | 1.72 | 79.41 | 80.56 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes/deeplabv3plus_r50b-d8_769x769_80k_cityscapes_20201225_224655-8b596d1c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes/deeplabv3plus_r50b-d8_769x769_80k_cityscapes-20201225_224655.log.json) | +| DeepLabV3+ | R-101b-D8 | 769x769 | 80000 | 12.3 | 1.10 | 79.88 | 81.46 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes/deeplabv3plus_r101b-d8_769x769_80k_cityscapes_20201226_205041-227cdf7c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes/deeplabv3plus_r101b-d8_769x769_80k_cityscapes-20201226_205041.log.json) | ### ADE20K -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|------------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| DeepLabV3+ | R-50-D8 | 512x512 | 80000 | 10.6 | 21.01 | 42.72 | 43.75 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k/deeplabv3plus_r50-d8_512x512_80k_ade20k_20200614_185028-bf1400d8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k/deeplabv3plus_r50-d8_512x512_80k_ade20k_20200614_185028.log.json) | -| DeepLabV3+ | R-101-D8 | 512x512 | 80000 | 14.1 | 14.16 | 44.60 | 46.06 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k/deeplabv3plus_r101-d8_512x512_80k_ade20k_20200615_014139-d5730af7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k/deeplabv3plus_r101-d8_512x512_80k_ade20k_20200615_014139.log.json) | -| DeepLabV3+ | R-50-D8 | 512x512 | 160000 | - | - | 43.95 | 44.93 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k/deeplabv3plus_r50-d8_512x512_160k_ade20k_20200615_124504-6135c7e0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k/deeplabv3plus_r50-d8_512x512_160k_ade20k_20200615_124504.log.json) | -| DeepLabV3+ | R-101-D8 | 512x512 | 160000 | - | - | 45.47 | 46.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k/deeplabv3plus_r101-d8_512x512_160k_ade20k_20200615_123232-38ed86bb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k/deeplabv3plus_r101-d8_512x512_160k_ade20k_20200615_123232.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ---------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| DeepLabV3+ | R-50-D8 | 512x512 | 80000 | 10.6 | 21.01 | 42.72 | 43.75 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k/deeplabv3plus_r50-d8_512x512_80k_ade20k_20200614_185028-bf1400d8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k/deeplabv3plus_r50-d8_512x512_80k_ade20k_20200614_185028.log.json) | +| DeepLabV3+ | R-101-D8 | 512x512 | 80000 | 14.1 | 14.16 | 44.60 | 46.06 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k/deeplabv3plus_r101-d8_512x512_80k_ade20k_20200615_014139-d5730af7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k/deeplabv3plus_r101-d8_512x512_80k_ade20k_20200615_014139.log.json) | +| DeepLabV3+ | R-50-D8 | 512x512 | 160000 | - | - | 43.95 | 44.93 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k/deeplabv3plus_r50-d8_512x512_160k_ade20k_20200615_124504-6135c7e0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k/deeplabv3plus_r50-d8_512x512_160k_ade20k_20200615_124504.log.json) | +| DeepLabV3+ | R-101-D8 | 512x512 | 160000 | - | - | 45.47 | 46.35 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k/deeplabv3plus_r101-d8_512x512_160k_ade20k_20200615_123232-38ed86bb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k/deeplabv3plus_r101-d8_512x512_160k_ade20k_20200615_123232.log.json) | #### Pascal VOC 2012 + Aug -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|------------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| DeepLabV3+ | R-50-D8 | 512x512 | 20000 | 7.6 | 21 | 75.93 | 77.50 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug/deeplabv3plus_r50-d8_512x512_20k_voc12aug_20200617_102323-aad58ef1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug/deeplabv3plus_r50-d8_512x512_20k_voc12aug_20200617_102323.log.json) | -| DeepLabV3+ | R-101-D8 | 512x512 | 20000 | 11 | 13.88 | 77.22 | 78.59 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug/deeplabv3plus_r101-d8_512x512_20k_voc12aug_20200617_102345-c7ff3d56.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug/deeplabv3plus_r101-d8_512x512_20k_voc12aug_20200617_102345.log.json) | -| DeepLabV3+ | R-50-D8 | 512x512 | 40000 | - | - | 76.81 | 77.57 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug/deeplabv3plus_r50-d8_512x512_40k_voc12aug_20200613_161759-e1b43aa9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug/deeplabv3plus_r50-d8_512x512_40k_voc12aug_20200613_161759.log.json) | -| DeepLabV3+ | R-101-D8 | 512x512 | 40000 | - | - | 78.62 | 79.53 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug/deeplabv3plus_r101-d8_512x512_40k_voc12aug_20200613_205333-faf03387.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug/deeplabv3plus_r101-d8_512x512_40k_voc12aug_20200613_205333.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ---------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | -------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| DeepLabV3+ | R-50-D8 | 512x512 | 20000 | 7.6 | 21 | 75.93 | 77.50 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug/deeplabv3plus_r50-d8_512x512_20k_voc12aug_20200617_102323-aad58ef1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug/deeplabv3plus_r50-d8_512x512_20k_voc12aug_20200617_102323.log.json) | +| DeepLabV3+ | R-101-D8 | 512x512 | 20000 | 11 | 13.88 | 77.22 | 78.59 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug/deeplabv3plus_r101-d8_512x512_20k_voc12aug_20200617_102345-c7ff3d56.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug/deeplabv3plus_r101-d8_512x512_20k_voc12aug_20200617_102345.log.json) | +| DeepLabV3+ | R-50-D8 | 512x512 | 40000 | - | - | 76.81 | 77.57 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug/deeplabv3plus_r50-d8_512x512_40k_voc12aug_20200613_161759-e1b43aa9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug/deeplabv3plus_r50-d8_512x512_40k_voc12aug_20200613_161759.log.json) | +| DeepLabV3+ | R-101-D8 | 512x512 | 40000 | - | - | 78.62 | 79.53 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug/deeplabv3plus_r101-d8_512x512_40k_voc12aug_20200613_205333-faf03387.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug/deeplabv3plus_r101-d8_512x512_40k_voc12aug_20200613_205333.log.json) | #### Pascal Context -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|------------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| DeepLabV3+ | R-101-D8 | 480x480 | 40000 | - | 9.09 | 47.30 | 48.47 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context/deeplabv3plus_r101-d8_480x480_40k_pascal_context_20200911_165459-d3c8a29e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context/deeplabv3plus_r101-d8_480x480_40k_pascal_context-20200911_165459.log.json) | -| DeepLabV3+ | R-101-D8 | 480x480 | 80000 | - | - | 47.23 | 48.26 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context/deeplabv3plus_r101-d8_480x480_80k_pascal_context_20200911_155322-145d3ee8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context/deeplabv3plus_r101-d8_480x480_80k_pascal_context-20200911_155322.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ---------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | -------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| DeepLabV3+ | R-101-D8 | 480x480 | 40000 | - | 9.09 | 47.30 | 48.47 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context/deeplabv3plus_r101-d8_480x480_40k_pascal_context_20200911_165459-d3c8a29e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context/deeplabv3plus_r101-d8_480x480_40k_pascal_context-20200911_165459.log.json) | +| DeepLabV3+ | R-101-D8 | 480x480 | 80000 | - | - | 47.23 | 48.26 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context/deeplabv3plus_r101-d8_480x480_80k_pascal_context_20200911_155322-145d3ee8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context/deeplabv3plus_r101-d8_480x480_80k_pascal_context-20200911_155322.log.json) | diff --git a/configs/dmnet/README.md b/configs/dmnet/README.md index 9b12c8d862..3f3653aa9c 100644 --- a/configs/dmnet/README.md +++ b/configs/dmnet/README.md @@ -18,22 +18,22 @@ year = {2019} ### Cityscapes -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| DMNet | R-50-D8 | 512x1024 | 40000 | 7.0 | 3.66 | 77.78 | 79.14 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes/dmnet_r50-d8_512x1024_40k_cityscapes_20201214_115717-5e88fa33.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes/dmnet_r50-d8_512x1024_40k_cityscapes-20201214_115717.log.json) | -| DMNet | R-101-D8 | 512x1024 | 40000 | 10.6 | 2.54 | 78.37 | 79.72 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes/dmnet_r101-d8_512x1024_40k_cityscapes_20201214_115716-abc9d111.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes/dmnet_r101-d8_512x1024_40k_cityscapes-20201214_115716.log.json) | -| DMNet | R-50-D8 | 769x769 | 40000 | 7.9 | 1.57 | 78.49 | 80.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_40k_cityscapes/dmnet_r50-d8_769x769_40k_cityscapes_20201214_115717-2a2628d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_40k_cityscapes/dmnet_r50-d8_769x769_40k_cityscapes-20201214_115717.log.json) | -| DMNet | R-101-D8 | 769x769 | 40000 | 12.0 | 1.01 | 77.62 | 78.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_40k_cityscapes/dmnet_r101-d8_769x769_40k_cityscapes_20201214_115718-b650de90.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_40k_cityscapes/dmnet_r101-d8_769x769_40k_cityscapes-20201214_115718.log.json) | -| DMNet | R-50-D8 | 512x1024 | 80000 | - | - | 79.07 | 80.22 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes/dmnet_r50-d8_512x1024_80k_cityscapes_20201214_115716-987f51e3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes/dmnet_r50-d8_512x1024_80k_cityscapes-20201214_115716.log.json) | -| DMNet | R-101-D8 | 512x1024 | 80000 | - | - | 79.64 | 80.67 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes/dmnet_r101-d8_512x1024_80k_cityscapes_20201214_115705-b1ff208a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes/dmnet_r101-d8_512x1024_80k_cityscapes-20201214_115705.log.json) | -| DMNet | R-50-D8 | 769x769 | 80000 | - | - | 79.22 | 80.55 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_80k_cityscapes/dmnet_r50-d8_769x769_80k_cityscapes_20201214_115718-7ea9fa12.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_80k_cityscapes/dmnet_r50-d8_769x769_80k_cityscapes-20201214_115718.log.json) | -| DMNet | R-101-D8 | 769x769 | 80000 | - | - | 79.19 | 80.65 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_80k_cityscapes/dmnet_r101-d8_769x769_80k_cityscapes_20201214_115716-a7fbc2ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_80k_cityscapes/dmnet_r101-d8_769x769_80k_cityscapes-20201214_115716.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| DMNet | R-50-D8 | 512x1024 | 40000 | 7.0 | 3.66 | 77.78 | 79.14 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes/dmnet_r50-d8_512x1024_40k_cityscapes_20201214_115717-5e88fa33.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes/dmnet_r50-d8_512x1024_40k_cityscapes-20201214_115717.log.json) | +| DMNet | R-101-D8 | 512x1024 | 40000 | 10.6 | 2.54 | 78.37 | 79.72 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes/dmnet_r101-d8_512x1024_40k_cityscapes_20201214_115716-abc9d111.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes/dmnet_r101-d8_512x1024_40k_cityscapes-20201214_115716.log.json) | +| DMNet | R-50-D8 | 769x769 | 40000 | 7.9 | 1.57 | 78.49 | 80.27 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r50-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_40k_cityscapes/dmnet_r50-d8_769x769_40k_cityscapes_20201214_115717-2a2628d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_40k_cityscapes/dmnet_r50-d8_769x769_40k_cityscapes-20201214_115717.log.json) | +| DMNet | R-101-D8 | 769x769 | 40000 | 12.0 | 1.01 | 77.62 | 78.94 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r101-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_40k_cityscapes/dmnet_r101-d8_769x769_40k_cityscapes_20201214_115718-b650de90.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_40k_cityscapes/dmnet_r101-d8_769x769_40k_cityscapes-20201214_115718.log.json) | +| DMNet | R-50-D8 | 512x1024 | 80000 | - | - | 79.07 | 80.22 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes/dmnet_r50-d8_512x1024_80k_cityscapes_20201214_115716-987f51e3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes/dmnet_r50-d8_512x1024_80k_cityscapes-20201214_115716.log.json) | +| DMNet | R-101-D8 | 512x1024 | 80000 | - | - | 79.64 | 80.67 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes/dmnet_r101-d8_512x1024_80k_cityscapes_20201214_115705-b1ff208a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes/dmnet_r101-d8_512x1024_80k_cityscapes-20201214_115705.log.json) | +| DMNet | R-50-D8 | 769x769 | 80000 | - | - | 79.22 | 80.55 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r50-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_80k_cityscapes/dmnet_r50-d8_769x769_80k_cityscapes_20201214_115718-7ea9fa12.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_80k_cityscapes/dmnet_r50-d8_769x769_80k_cityscapes-20201214_115718.log.json) | +| DMNet | R-101-D8 | 769x769 | 80000 | - | - | 79.19 | 80.65 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r101-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_80k_cityscapes/dmnet_r101-d8_769x769_80k_cityscapes_20201214_115716-a7fbc2ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_80k_cityscapes/dmnet_r101-d8_769x769_80k_cityscapes-20201214_115716.log.json) | ### ADE20K -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| DMNet | R-50-D8 | 512x512 | 80000 | 9.4 | 20.95 | 42.37 | 43.62 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_80k_ade20k/dmnet_r50-d8_512x512_80k_ade20k_20201214_115705-a8626293.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_80k_ade20k/dmnet_r50-d8_512x512_80k_ade20k-20201214_115705.log.json) | -| DMNet | R-101-D8 | 512x512 | 80000 | 13.0 | 13.88 | 45.34 | 46.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_80k_ade20k/dmnet_r101-d8_512x512_80k_ade20k_20201214_115704-c656c3fb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_80k_ade20k/dmnet_r101-d8_512x512_80k_ade20k-20201214_115704.log.json) | -| DMNet | R-50-D8 | 512x512 | 160000 | - | - | 43.15 | 44.17 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_160k_ade20k/dmnet_r50-d8_512x512_160k_ade20k_20201214_115706-25fb92c2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_160k_ade20k/dmnet_r50-d8_512x512_160k_ade20k-20201214_115706.log.json) | -| DMNet | R-101-D8 | 512x512 | 160000 | - | - | 45.42 | 46.76 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_160k_ade20k/dmnet_r101-d8_512x512_160k_ade20k_20201214_115705-73f9a8d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_160k_ade20k/dmnet_r101-d8_512x512_160k_ade20k-20201214_115705.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | --------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| DMNet | R-50-D8 | 512x512 | 80000 | 9.4 | 20.95 | 42.37 | 43.62 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_80k_ade20k/dmnet_r50-d8_512x512_80k_ade20k_20201214_115705-a8626293.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_80k_ade20k/dmnet_r50-d8_512x512_80k_ade20k-20201214_115705.log.json) | +| DMNet | R-101-D8 | 512x512 | 80000 | 13.0 | 13.88 | 45.34 | 46.13 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r101-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_80k_ade20k/dmnet_r101-d8_512x512_80k_ade20k_20201214_115704-c656c3fb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_80k_ade20k/dmnet_r101-d8_512x512_80k_ade20k-20201214_115704.log.json) | +| DMNet | R-50-D8 | 512x512 | 160000 | - | - | 43.15 | 44.17 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_160k_ade20k/dmnet_r50-d8_512x512_160k_ade20k_20201214_115706-25fb92c2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_160k_ade20k/dmnet_r50-d8_512x512_160k_ade20k-20201214_115706.log.json) | +| DMNet | R-101-D8 | 512x512 | 160000 | - | - | 45.42 | 46.76 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r101-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_160k_ade20k/dmnet_r101-d8_512x512_160k_ade20k_20201214_115705-73f9a8d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_160k_ade20k/dmnet_r101-d8_512x512_160k_ade20k-20201214_115705.log.json) | diff --git a/configs/dnlnet/README.md b/configs/dnlnet/README.md index 172dfe1a0f..fe99c4b7c5 100644 --- a/configs/dnlnet/README.md +++ b/configs/dnlnet/README.md @@ -21,22 +21,22 @@ This example is to reproduce ["Disentangled Non-Local Neural Networks"](https:// ### Cityscapes -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|---------:|----------------|------:|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dnl | R-50-D8 | 512x1024 | 40000 | 7.3 | 2.56 | 78.61 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes/dnl_r50-d8_512x1024_40k_cityscapes_20200904_233629-53d4ea93.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes/dnl_r50-d8_512x1024_40k_cityscapes-20200904_233629.log.json) | -| dnl | R-101-D8 | 512x1024 | 40000 | 10.9 | 1.96 | 78.31 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes/dnl_r101-d8_512x1024_40k_cityscapes_20200904_233629-9928ffef.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes/dnl_r101-d8_512x1024_40k_cityscapes-20200904_233629.log.json) | -| dnl | R-50-D8 | 769x769 | 40000 | 9.2 | 1.50 | 78.44 | 80.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_40k_cityscapes/dnl_r50-d8_769x769_40k_cityscapes_20200820_232206-0f283785.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_40k_cityscapes/dnl_r50-d8_769x769_40k_cityscapes-20200820_232206.log.json) | -| dnl | R-101-D8 | 769x769 | 40000 | 12.6 | 1.02 | 76.39 | 77.77 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_40k_cityscapes/dnl_r101-d8_769x769_40k_cityscapes_20200820_171256-76c596df.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_40k_cityscapes/dnl_r101-d8_769x769_40k_cityscapes-20200820_171256.log.json) | -| dnl | R-50-D8 | 512x1024 | 80000 | - | - | 79.33 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes/dnl_r50-d8_512x1024_80k_cityscapes_20200904_233629-58b2f778.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes/dnl_r50-d8_512x1024_80k_cityscapes-20200904_233629.log.json) | -| dnl | R-101-D8 | 512x1024 | 80000 | - | - | 80.41 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes/dnl_r101-d8_512x1024_80k_cityscapes_20200904_233629-758e2dd4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes/dnl_r101-d8_512x1024_80k_cityscapes-20200904_233629.log.json) | -| dnl | R-50-D8 | 769x769 | 80000 | - | - | 79.36 | 80.70 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_80k_cityscapes/dnl_r50-d8_769x769_80k_cityscapes_20200820_011925-366bc4c7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_80k_cityscapes/dnl_r50-d8_769x769_80k_cityscapes-20200820_011925.log.json) | -| dnl | R-101-D8 | 769x769 | 80000 | - | - | 79.41 | 80.68 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_80k_cityscapes/dnl_r101-d8_769x769_80k_cityscapes_20200821_051111-95ff84ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_80k_cityscapes/dnl_r101-d8_769x769_80k_cityscapes-20200821_051111.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------: | -------------- | ----: | ------------- | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| dnl | R-50-D8 | 512x1024 | 40000 | 7.3 | 2.56 | 78.61 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes/dnl_r50-d8_512x1024_40k_cityscapes_20200904_233629-53d4ea93.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes/dnl_r50-d8_512x1024_40k_cityscapes-20200904_233629.log.json) | +| dnl | R-101-D8 | 512x1024 | 40000 | 10.9 | 1.96 | 78.31 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes/dnl_r101-d8_512x1024_40k_cityscapes_20200904_233629-9928ffef.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes/dnl_r101-d8_512x1024_40k_cityscapes-20200904_233629.log.json) | +| dnl | R-50-D8 | 769x769 | 40000 | 9.2 | 1.50 | 78.44 | 80.27 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dnlnet/dnl_r50-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_40k_cityscapes/dnl_r50-d8_769x769_40k_cityscapes_20200820_232206-0f283785.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_40k_cityscapes/dnl_r50-d8_769x769_40k_cityscapes-20200820_232206.log.json) | +| dnl | R-101-D8 | 769x769 | 40000 | 12.6 | 1.02 | 76.39 | 77.77 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dnlnet/dnl_r101-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_40k_cityscapes/dnl_r101-d8_769x769_40k_cityscapes_20200820_171256-76c596df.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_40k_cityscapes/dnl_r101-d8_769x769_40k_cityscapes-20200820_171256.log.json) | +| dnl | R-50-D8 | 512x1024 | 80000 | - | - | 79.33 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes/dnl_r50-d8_512x1024_80k_cityscapes_20200904_233629-58b2f778.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes/dnl_r50-d8_512x1024_80k_cityscapes-20200904_233629.log.json) | +| dnl | R-101-D8 | 512x1024 | 80000 | - | - | 80.41 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes/dnl_r101-d8_512x1024_80k_cityscapes_20200904_233629-758e2dd4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes/dnl_r101-d8_512x1024_80k_cityscapes-20200904_233629.log.json) | +| dnl | R-50-D8 | 769x769 | 80000 | - | - | 79.36 | 80.70 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dnlnet/dnl_r50-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_80k_cityscapes/dnl_r50-d8_769x769_80k_cityscapes_20200820_011925-366bc4c7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_80k_cityscapes/dnl_r50-d8_769x769_80k_cityscapes-20200820_011925.log.json) | +| dnl | R-101-D8 | 769x769 | 80000 | - | - | 79.41 | 80.68 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dnlnet/dnl_r101-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_80k_cityscapes/dnl_r101-d8_769x769_80k_cityscapes_20200821_051111-95ff84ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_80k_cityscapes/dnl_r101-d8_769x769_80k_cityscapes-20200821_051111.log.json) | ### ADE20K -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|---------:|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| DNL | R-50-D8 | 512x512 | 80000 | 8.8 | 20.66 | 41.76 | 42.99 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_80k_ade20k/dnl_r50-d8_512x512_80k_ade20k_20200826_183354-1cf6e0c1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_80k_ade20k/dnl_r50-d8_512x512_80k_ade20k-20200826_183354.log.json) | -| DNL | R-101-D8 | 512x512 | 80000 | 12.8 | 12.54 | 43.76 | 44.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_80k_ade20k/dnl_r101-d8_512x512_80k_ade20k_20200826_183354-d820d6ea.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_80k_ade20k/dnl_r101-d8_512x512_80k_ade20k-20200826_183354.log.json) | -| DNL | R-50-D8 | 512x512 | 160000 | - | - | 41.87 | 43.01 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_160k_ade20k/dnl_r50-d8_512x512_160k_ade20k_20200826_183350-37837798.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_160k_ade20k/dnl_r50-d8_512x512_160k_ade20k-20200826_183350.log.json) | -| DNL | R-101-D8 | 512x512 | 160000 | - | - | 44.25 | 45.78 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_160k_ade20k/dnl_r101-d8_512x512_160k_ade20k_20200826_183350-ed522c61.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_160k_ade20k/dnl_r101-d8_512x512_160k_ade20k-20200826_183350.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------: | -------------- | ----: | ------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| DNL | R-50-D8 | 512x512 | 80000 | 8.8 | 20.66 | 41.76 | 42.99 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dnlnet/dnl_r50-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_80k_ade20k/dnl_r50-d8_512x512_80k_ade20k_20200826_183354-1cf6e0c1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_80k_ade20k/dnl_r50-d8_512x512_80k_ade20k-20200826_183354.log.json) | +| DNL | R-101-D8 | 512x512 | 80000 | 12.8 | 12.54 | 43.76 | 44.91 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dnlnet/dnl_r101-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_80k_ade20k/dnl_r101-d8_512x512_80k_ade20k_20200826_183354-d820d6ea.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_80k_ade20k/dnl_r101-d8_512x512_80k_ade20k-20200826_183354.log.json) | +| DNL | R-50-D8 | 512x512 | 160000 | - | - | 41.87 | 43.01 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dnlnet/dnl_r50-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_160k_ade20k/dnl_r50-d8_512x512_160k_ade20k_20200826_183350-37837798.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_160k_ade20k/dnl_r50-d8_512x512_160k_ade20k-20200826_183350.log.json) | +| DNL | R-101-D8 | 512x512 | 160000 | - | - | 44.25 | 45.78 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dnlnet/dnl_r101-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_160k_ade20k/dnl_r101-d8_512x512_160k_ade20k_20200826_183350-ed522c61.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_160k_ade20k/dnl_r101-d8_512x512_160k_ade20k-20200826_183350.log.json) | diff --git a/configs/emanet/README.md b/configs/emanet/README.md index 40df946ed4..615d2a7b2b 100644 --- a/configs/emanet/README.md +++ b/configs/emanet/README.md @@ -18,9 +18,9 @@ ### Cityscapes -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|---------:|----------------|------:|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| EMANet | R-50-D8 | 512x1024 | 80000 | 5.4 | 4.58 | 77.59 | 79.44 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_512x1024_80k_cityscapes/emanet_r50-d8_512x1024_80k_cityscapes_20200901_100301-c43fcef1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_512x1024_80k_cityscapes/emanet_r50-d8_512x1024_80k_cityscapes-20200901_100301.log.json) | -| EMANet | R-101-D8 | 512x1024 | 80000 | 6.2 | 2.87 | 79.10 | 81.21 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_512x1024_80k_cityscapes/emanet_r101-d8_512x1024_80k_cityscapes_20200901_100301-2d970745.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_512x1024_80k_cityscapes/emanet_r101-d8_512x1024_80k_cityscapes-20200901_100301.log.json) | -| EMANet | R-50-D8 | 769x769 | 80000 | 8.9 | 1.97 | 79.33 | 80.49 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_769x769_80k_cityscapes/emanet_r50-d8_769x769_80k_cityscapes_20200901_100301-16f8de52.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_769x769_80k_cityscapes/emanet_r50-d8_769x769_80k_cityscapes-20200901_100301.log.json) | -| EMANet | R-101-D8 | 769x769 | 80000 | 10.1 | 1.22 | 79.62 | 81.00 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_769x769_80k_cityscapes/emanet_r101-d8_769x769_80k_cityscapes_20200901_100301-47a324ce.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_769x769_80k_cityscapes/emanet_r101-d8_769x769_80k_cityscapes-20200901_100301.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------: | -------------- | ----: | ------------- | --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| EMANet | R-50-D8 | 512x1024 | 80000 | 5.4 | 4.58 | 77.59 | 79.44 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/emanet/emanet_r50-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_512x1024_80k_cityscapes/emanet_r50-d8_512x1024_80k_cityscapes_20200901_100301-c43fcef1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_512x1024_80k_cityscapes/emanet_r50-d8_512x1024_80k_cityscapes-20200901_100301.log.json) | +| EMANet | R-101-D8 | 512x1024 | 80000 | 6.2 | 2.87 | 79.10 | 81.21 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/emanet/emanet_r101-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_512x1024_80k_cityscapes/emanet_r101-d8_512x1024_80k_cityscapes_20200901_100301-2d970745.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_512x1024_80k_cityscapes/emanet_r101-d8_512x1024_80k_cityscapes-20200901_100301.log.json) | +| EMANet | R-50-D8 | 769x769 | 80000 | 8.9 | 1.97 | 79.33 | 80.49 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/emanet/emanet_r50-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_769x769_80k_cityscapes/emanet_r50-d8_769x769_80k_cityscapes_20200901_100301-16f8de52.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_769x769_80k_cityscapes/emanet_r50-d8_769x769_80k_cityscapes-20200901_100301.log.json) | +| EMANet | R-101-D8 | 769x769 | 80000 | 10.1 | 1.22 | 79.62 | 81.00 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/emanet/emanet_r101-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_769x769_80k_cityscapes/emanet_r101-d8_769x769_80k_cityscapes_20200901_100301-47a324ce.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_769x769_80k_cityscapes/emanet_r101-d8_769x769_80k_cityscapes-20200901_100301.log.json) | diff --git a/configs/encnet/README.md b/configs/encnet/README.md index 6ba42f69fa..12ab656da2 100644 --- a/configs/encnet/README.md +++ b/configs/encnet/README.md @@ -18,22 +18,22 @@ year = {2018} ### Cityscapes -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| encnet | R-50-D8 | 512x1024 | 40000 | 8.6 | 4.58 | 75.67 | 77.08 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_40k_cityscapes/encnet_r50-d8_512x1024_40k_cityscapes_20200621_220958-68638a47.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_40k_cityscapes/encnet_r50-d8_512x1024_40k_cityscapes-20200621_220958.log.json) | -| encnet | R-101-D8 | 512x1024 | 40000 | 12.1 | 2.66 | 75.81 | 77.21 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_40k_cityscapes/encnet_r101-d8_512x1024_40k_cityscapes_20200621_220933-35e0a3e8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_40k_cityscapes/encnet_r101-d8_512x1024_40k_cityscapes-20200621_220933.log.json) | -| encnet | R-50-D8 | 769x769 | 40000 | 9.8 | 1.82 | 76.24 | 77.85 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_40k_cityscapes/encnet_r50-d8_769x769_40k_cityscapes_20200621_220958-3bcd2884.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_40k_cityscapes/encnet_r50-d8_769x769_40k_cityscapes-20200621_220958.log.json) | -| encnet | R-101-D8 | 769x769 | 40000 | 13.7 | 1.26 | 74.25 | 76.25 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_40k_cityscapes/encnet_r101-d8_769x769_40k_cityscapes_20200621_220933-2fafed55.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_40k_cityscapes/encnet_r101-d8_769x769_40k_cityscapes-20200621_220933.log.json) | -| encnet | R-50-D8 | 512x1024 | 80000 | - | - | 77.94 | 79.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_80k_cityscapes/encnet_r50-d8_512x1024_80k_cityscapes_20200622_003554-fc5c5624.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_80k_cityscapes/encnet_r50-d8_512x1024_80k_cityscapes-20200622_003554.log.json) | -| encnet | R-101-D8 | 512x1024 | 80000 | - | - | 78.55 | 79.47 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_80k_cityscapes/encnet_r101-d8_512x1024_80k_cityscapes_20200622_003555-1de64bec.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_80k_cityscapes/encnet_r101-d8_512x1024_80k_cityscapes-20200622_003555.log.json) | -| encnet | R-50-D8 | 769x769 | 80000 | - | - | 77.44 | 78.72 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_80k_cityscapes/encnet_r50-d8_769x769_80k_cityscapes_20200622_003554-55096dcb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_80k_cityscapes/encnet_r50-d8_769x769_80k_cityscapes-20200622_003554.log.json) | -| encnet | R-101-D8 | 769x769 | 80000 | - | - | 76.10 | 76.97 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_80k_cityscapes/encnet_r101-d8_769x769_80k_cityscapes_20200622_003555-470ef79d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_80k_cityscapes/encnet_r101-d8_769x769_80k_cityscapes-20200622_003555.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| encnet | R-50-D8 | 512x1024 | 40000 | 8.6 | 4.58 | 75.67 | 77.08 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r50-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_40k_cityscapes/encnet_r50-d8_512x1024_40k_cityscapes_20200621_220958-68638a47.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_40k_cityscapes/encnet_r50-d8_512x1024_40k_cityscapes-20200621_220958.log.json) | +| encnet | R-101-D8 | 512x1024 | 40000 | 12.1 | 2.66 | 75.81 | 77.21 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r101-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_40k_cityscapes/encnet_r101-d8_512x1024_40k_cityscapes_20200621_220933-35e0a3e8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_40k_cityscapes/encnet_r101-d8_512x1024_40k_cityscapes-20200621_220933.log.json) | +| encnet | R-50-D8 | 769x769 | 40000 | 9.8 | 1.82 | 76.24 | 77.85 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r50-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_40k_cityscapes/encnet_r50-d8_769x769_40k_cityscapes_20200621_220958-3bcd2884.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_40k_cityscapes/encnet_r50-d8_769x769_40k_cityscapes-20200621_220958.log.json) | +| encnet | R-101-D8 | 769x769 | 40000 | 13.7 | 1.26 | 74.25 | 76.25 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r101-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_40k_cityscapes/encnet_r101-d8_769x769_40k_cityscapes_20200621_220933-2fafed55.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_40k_cityscapes/encnet_r101-d8_769x769_40k_cityscapes-20200621_220933.log.json) | +| encnet | R-50-D8 | 512x1024 | 80000 | - | - | 77.94 | 79.13 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r50-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_80k_cityscapes/encnet_r50-d8_512x1024_80k_cityscapes_20200622_003554-fc5c5624.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_80k_cityscapes/encnet_r50-d8_512x1024_80k_cityscapes-20200622_003554.log.json) | +| encnet | R-101-D8 | 512x1024 | 80000 | - | - | 78.55 | 79.47 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r101-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_80k_cityscapes/encnet_r101-d8_512x1024_80k_cityscapes_20200622_003555-1de64bec.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_80k_cityscapes/encnet_r101-d8_512x1024_80k_cityscapes-20200622_003555.log.json) | +| encnet | R-50-D8 | 769x769 | 80000 | - | - | 77.44 | 78.72 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r50-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_80k_cityscapes/encnet_r50-d8_769x769_80k_cityscapes_20200622_003554-55096dcb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_80k_cityscapes/encnet_r50-d8_769x769_80k_cityscapes-20200622_003554.log.json) | +| encnet | R-101-D8 | 769x769 | 80000 | - | - | 76.10 | 76.97 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r101-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_80k_cityscapes/encnet_r101-d8_769x769_80k_cityscapes_20200622_003555-470ef79d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_80k_cityscapes/encnet_r101-d8_769x769_80k_cityscapes-20200622_003555.log.json) | ### ADE20K -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| encnet | R-50-D8 | 512x512 | 80000 | 10.1 | 22.81 | 39.53 | 41.17 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_80k_ade20k/encnet_r50-d8_512x512_80k_ade20k_20200622_042412-44b46b04.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_80k_ade20k/encnet_r50-d8_512x512_80k_ade20k-20200622_042412.log.json) | -| encnet | R-101-D8 | 512x512 | 80000 | 13.6 | 14.87 | 42.11 | 43.61 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_80k_ade20k/encnet_r101-d8_512x512_80k_ade20k_20200622_101128-dd35e237.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_80k_ade20k/encnet_r101-d8_512x512_80k_ade20k-20200622_101128.log.json) | -| encnet | R-50-D8 | 512x512 | 160000 | - | - | 40.10 | 41.71 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_160k_ade20k/encnet_r50-d8_512x512_160k_ade20k_20200622_101059-b2db95e0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_160k_ade20k/encnet_r50-d8_512x512_160k_ade20k-20200622_101059.log.json) | -| encnet | R-101-D8 | 512x512 | 160000 | - | - | 42.61 | 44.01 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_160k_ade20k/encnet_r101-d8_512x512_160k_ade20k_20200622_073348-7989641f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_160k_ade20k/encnet_r101-d8_512x512_160k_ade20k-20200622_073348.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ----------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| encnet | R-50-D8 | 512x512 | 80000 | 10.1 | 22.81 | 39.53 | 41.17 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r50-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_80k_ade20k/encnet_r50-d8_512x512_80k_ade20k_20200622_042412-44b46b04.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_80k_ade20k/encnet_r50-d8_512x512_80k_ade20k-20200622_042412.log.json) | +| encnet | R-101-D8 | 512x512 | 80000 | 13.6 | 14.87 | 42.11 | 43.61 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r101-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_80k_ade20k/encnet_r101-d8_512x512_80k_ade20k_20200622_101128-dd35e237.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_80k_ade20k/encnet_r101-d8_512x512_80k_ade20k-20200622_101128.log.json) | +| encnet | R-50-D8 | 512x512 | 160000 | - | - | 40.10 | 41.71 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r50-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_160k_ade20k/encnet_r50-d8_512x512_160k_ade20k_20200622_101059-b2db95e0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_160k_ade20k/encnet_r50-d8_512x512_160k_ade20k-20200622_101059.log.json) | +| encnet | R-101-D8 | 512x512 | 160000 | - | - | 42.61 | 44.01 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r101-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_160k_ade20k/encnet_r101-d8_512x512_160k_ade20k_20200622_073348-7989641f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_160k_ade20k/encnet_r101-d8_512x512_160k_ade20k-20200622_073348.log.json) | diff --git a/configs/fastscnn/README.md b/configs/fastscnn/README.md index bb87a9f7ae..8dae279b96 100644 --- a/configs/fastscnn/README.md +++ b/configs/fastscnn/README.md @@ -17,6 +17,6 @@ ### Cityscapes -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|------------|-----------|-----------|--------:|----------|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Fast-SCNN | Fast-SCNN | 512x1024 | 80000 | 8.4 | 63.61 | 69.06 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_4x8_80k_lr0.12_cityscapes-f5096c79.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_4x8_80k_lr0.12_cityscapes-20200807_165744.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| --------- | --------- | --------- | ------: | -------- | -------------- | ----: | ------------- | --------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Fast-SCNN | Fast-SCNN | 512x1024 | 80000 | 8.4 | 63.61 | 69.06 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fast_scnn.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_4x8_80k_lr0.12_cityscapes-f5096c79.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_4x8_80k_lr0.12_cityscapes-20200807_165744.log.json) | diff --git a/configs/fcn/README.md b/configs/fcn/README.md index f3b6433cda..13db1de14c 100644 --- a/configs/fcn/README.md +++ b/configs/fcn/README.md @@ -21,58 +21,58 @@ ### Cityscapes -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FCN | R-50-D8 | 512x1024 | 40000 | 5.7 | 4.17 | 72.25 | 73.36 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_40k_cityscapes/fcn_r50-d8_512x1024_40k_cityscapes_20200604_192608-efe53f0d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_40k_cityscapes/fcn_r50-d8_512x1024_40k_cityscapes_20200604_192608.log.json) | -| FCN | R-101-D8 | 512x1024 | 40000 | 9.2 | 2.66 | 75.45 | 76.58 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_40k_cityscapes/fcn_r101-d8_512x1024_40k_cityscapes_20200604_181852-a883d3a1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_40k_cityscapes/fcn_r101-d8_512x1024_40k_cityscapes_20200604_181852.log.json) | -| FCN | R-50-D8 | 769x769 | 40000 | 6.5 | 1.80 | 71.47 | 72.54 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_40k_cityscapes/fcn_r50-d8_769x769_40k_cityscapes_20200606_113104-977b5d02.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_40k_cityscapes/fcn_r50-d8_769x769_40k_cityscapes_20200606_113104.log.json) | -| FCN | R-101-D8 | 769x769 | 40000 | 10.4 | 1.19 | 73.93 | 75.14 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_40k_cityscapes/fcn_r101-d8_769x769_40k_cityscapes_20200606_113208-7d4ab69c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_40k_cityscapes/fcn_r101-d8_769x769_40k_cityscapes_20200606_113208.log.json) | -| FCN | R-18-D8 | 512x1024 | 80000 | 1.7 | 14.65 | 71.11 | 72.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_512x1024_80k_cityscapes/fcn_r18-d8_512x1024_80k_cityscapes_20201225_021327-6c50f8b4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_512x1024_80k_cityscapes/fcn_r18-d8_512x1024_80k_cityscapes-20201225_021327.log.json) | -| FCN | R-50-D8 | 512x1024 | 80000 | - | | 73.61 | 74.24 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_80k_cityscapes/fcn_r50-d8_512x1024_80k_cityscapes_20200606_113019-03aa804d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_80k_cityscapes/fcn_r50-d8_512x1024_80k_cityscapes_20200606_113019.log.json) | -| FCN | R-101-D8 | 512x1024 | 80000 | - | - | 75.13 | 75.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_80k_cityscapes/fcn_r101-d8_512x1024_80k_cityscapes_20200606_113038-3fb937eb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_80k_cityscapes/fcn_r101-d8_512x1024_80k_cityscapes_20200606_113038.log.json) | -| FCN | R-18-D8 | 769x769 | 80000 | 1.9 | 6.40 | 70.80 | 73.16 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_769x769_80k_cityscapes/fcn_r18-d8_769x769_80k_cityscapes_20201225_021451-9739d1b8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_769x769_80k_cityscapes/fcn_r18-d8_769x769_80k_cityscapes-20201225_021451.log.json) | -| FCN | R-50-D8 | 769x769 | 80000 | - | - | 72.64 | 73.32 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_80k_cityscapes/fcn_r50-d8_769x769_80k_cityscapes_20200606_195749-f5caeabc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_80k_cityscapes/fcn_r50-d8_769x769_80k_cityscapes_20200606_195749.log.json) | -| FCN | R-101-D8 | 769x769 | 80000 | - | - | 75.52 | 76.61 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_80k_cityscapes/fcn_r101-d8_769x769_80k_cityscapes_20200606_214354-45cbac68.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_80k_cityscapes/fcn_r101-d8_769x769_80k_cityscapes_20200606_214354.log.json) | -| FCN | R-18b-D8 | 512x1024 | 80000 | 1.6 | 16.74 | 70.24 | 72.77 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_512x1024_80k_cityscapes/fcn_r18b-d8_512x1024_80k_cityscapes_20201225_230143-92c0f445.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_512x1024_80k_cityscapes/fcn_r18b-d8_512x1024_80k_cityscapes-20201225_230143.log.json) | -| FCN | R-50b-D8 | 512x1024 | 80000 | 5.6 | 4.20 | 75.65 | 77.59 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_512x1024_80k_cityscapes/fcn_r50b-d8_512x1024_80k_cityscapes_20201225_094221-82957416.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_512x1024_80k_cityscapes/fcn_r50b-d8_512x1024_80k_cityscapes-20201225_094221.log.json) | -| FCN | R-101b-D8| 512x1024 | 80000 | 9.1 | 2.73 | 77.37 | 78.77 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_512x1024_80k_cityscapes/fcn_r101b-d8_512x1024_80k_cityscapes_20201226_160213-4543858f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_512x1024_80k_cityscapes/fcn_r101b-d8_512x1024_80k_cityscapes-20201226_160213.log.json) | -| FCN | R-18b-D8 | 769x769 | 80000 | 1.7 | 6.70 | 69.66 | 72.07 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_769x769_80k_cityscapes/fcn_r18b-d8_769x769_80k_cityscapes_20201226_004430-32d504e5.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_769x769_80k_cityscapes/fcn_r18b-d8_769x769_80k_cityscapes-20201226_004430.log.json) | -| FCN | R-50b-D8 | 769x769 | 80000 | 6.3 | 1.82 | 73.83 | 76.60 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_769x769_80k_cityscapes/fcn_r50b-d8_769x769_80k_cityscapes_20201225_094223-94552d38.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_769x769_80k_cityscapes/fcn_r50b-d8_769x769_80k_cityscapes-20201225_094223.log.json) | -| FCN | R-101b-D8| 769x769 | 80000 | 10.3 | 1.15 | 77.02 | 78.67 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_769x769_80k_cityscapes/fcn_r101b-d8_769x769_80k_cityscapes_20201226_170012-82be37e2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_769x769_80k_cityscapes/fcn_r101b-d8_769x769_80k_cityscapes-20201226_170012.log.json) | -|FCN-D6|R-50-D16|512x1024|40000|3.4|10.22|77.06|78.85| [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes/fcn_d6_r50-d16_512x1024_40k_cityscapes-98d5d1bc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes/fcn_d6_r50-d16_512x1024_40k_cityscapes-20210305_130133.log.json)| -|FCN-D6|R-50-D16|512x1024|80000|-|10.35|77.27|78.88| [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes/fcn_d6_r50-d16_512x1024_40k_cityscapes-98d5d1bc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes/fcn_d6_r50-d16_512x1024_80k_cityscapes-20210306_115604.log.json) | -|FCN-D6|R-50-D16|769x769|40000|3.7|4.17|76.82|78.22| [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes/fcn_d6_r50-d16_769x769_40k_cityscapes-1aab18ed.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes/fcn_d6_r50-d16_769x769_40k_cityscapes-20210305_185744.log.json) | -|FCN-D6|R-50-D16|769x769|80000|-|4.15|77.04|78.40| [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes/fcn_d6_r50-d16_769x769_80k_cityscapes-109d88eb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes/fcn_d6_r50-d16_769x769_80k_cityscapes-20210305_200413.log.json) | -|FCN-D6|R-101-D16|512x1024|40000|4.5|8.04|77.36|79.18| [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes/fcn_d6_r101-d16_512x1024_40k_cityscapes-9cf2b450.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes/fcn_d6_r101-d16_512x1024_40k_cityscapes-20210305_130337.log.json) | -|FCN-D6|R-101-D16|512x1024|80000|-|8.26|78.46|80.42| [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes/fcn_d6_r101-d16_512x1024_80k_cityscapes-cb336445.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes/fcn_d6_r101-d16_512x1024_80k_cityscapes-20210308_102747.log.json) | -|FCN-D6|R-101-D16|769x769|40000|5.0|3.12|77.28|78.95| [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes/fcn_d6_r101-d16_769x769_40k_cityscapes-60b114e9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes/fcn_d6_r101-d16_769x769_40k_cityscapes-20210308_102453.log.json) | -|FCN-D6|R-101-D16|769x769|80000|-|3.21|78.06|79.58| [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes/fcn_d6_r101-d16_769x769_80k_cityscapes-e33adc4f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes/fcn_d6_r101-d16_769x769_80k_cityscapes-20210306_120016.log.json) | -|FCN-D6|R-50b-D16|512x1024|80000|3.2|10.16|76.99|79.03| [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_512x1024_80k_cityscapes/fcn_d6_r50b_d16_512x1024_80k_cityscapes-6a0b62e9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_512x1024_80k_cityscapes/fcn_d6_r50b_d16_512x1024_80k_cityscapes-20210311_125550.log.json) | -|FCN-D6|R-50b-D16|769x769|80000|3.6|4.17|76.86|78.52| [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_769x769_80k_cityscapes/fcn_d6_r50b_d16_769x769_80k_cityscapes-d665f231.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_769x769_80k_cityscapes/fcn_d6_r50b_d16_769x769_80k_cityscapes-20210311_131012.log.json) | -|FCN-D6|R-101b-D16|512x1024|80000|4.3|8.46|77.72|79.53| [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_512x1024_80k_cityscapes/fcn_d6_r101b_d16_512x1024_80k_cityscapes-3f2eb5b4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_512x1024_80k_cityscapes/fcn_d6_r101b_d16_512x1024_80k_cityscapes-20210311_144305.log.json) | -|FCN-D6|R-101b-D16|769x769|80000|4.8|3.32|77.34|78.91| [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_769x769_80k_cityscapes/fcn_d6_r101b_d16_769x769_80k_cityscapes-c4d8bfbc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_769x769_80k_cityscapes/fcn_d6_r101b_d16_769x769_80k_cityscapes-20210311_154527.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | ---------- | --------- | ------: | -------- | -------------- | ----: | ------------: | -------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| FCN | R-50-D8 | 512x1024 | 40000 | 5.7 | 4.17 | 72.25 | 73.36 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r50-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_40k_cityscapes/fcn_r50-d8_512x1024_40k_cityscapes_20200604_192608-efe53f0d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_40k_cityscapes/fcn_r50-d8_512x1024_40k_cityscapes_20200604_192608.log.json) | +| FCN | R-101-D8 | 512x1024 | 40000 | 9.2 | 2.66 | 75.45 | 76.58 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_40k_cityscapes/fcn_r101-d8_512x1024_40k_cityscapes_20200604_181852-a883d3a1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_40k_cityscapes/fcn_r101-d8_512x1024_40k_cityscapes_20200604_181852.log.json) | +| FCN | R-50-D8 | 769x769 | 40000 | 6.5 | 1.80 | 71.47 | 72.54 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r50-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_40k_cityscapes/fcn_r50-d8_769x769_40k_cityscapes_20200606_113104-977b5d02.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_40k_cityscapes/fcn_r50-d8_769x769_40k_cityscapes_20200606_113104.log.json) | +| FCN | R-101-D8 | 769x769 | 40000 | 10.4 | 1.19 | 73.93 | 75.14 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_40k_cityscapes/fcn_r101-d8_769x769_40k_cityscapes_20200606_113208-7d4ab69c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_40k_cityscapes/fcn_r101-d8_769x769_40k_cityscapes_20200606_113208.log.json) | +| FCN | R-18-D8 | 512x1024 | 80000 | 1.7 | 14.65 | 71.11 | 72.91 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r18-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_512x1024_80k_cityscapes/fcn_r18-d8_512x1024_80k_cityscapes_20201225_021327-6c50f8b4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_512x1024_80k_cityscapes/fcn_r18-d8_512x1024_80k_cityscapes-20201225_021327.log.json) | +| FCN | R-50-D8 | 512x1024 | 80000 | - | | 73.61 | 74.24 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r50-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_80k_cityscapes/fcn_r50-d8_512x1024_80k_cityscapes_20200606_113019-03aa804d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_80k_cityscapes/fcn_r50-d8_512x1024_80k_cityscapes_20200606_113019.log.json) | +| FCN | R-101-D8 | 512x1024 | 80000 | - | - | 75.13 | 75.94 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_80k_cityscapes/fcn_r101-d8_512x1024_80k_cityscapes_20200606_113038-3fb937eb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_80k_cityscapes/fcn_r101-d8_512x1024_80k_cityscapes_20200606_113038.log.json) | +| FCN | R-18-D8 | 769x769 | 80000 | 1.9 | 6.40 | 70.80 | 73.16 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r18-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_769x769_80k_cityscapes/fcn_r18-d8_769x769_80k_cityscapes_20201225_021451-9739d1b8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_769x769_80k_cityscapes/fcn_r18-d8_769x769_80k_cityscapes-20201225_021451.log.json) | +| FCN | R-50-D8 | 769x769 | 80000 | - | - | 72.64 | 73.32 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r50-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_80k_cityscapes/fcn_r50-d8_769x769_80k_cityscapes_20200606_195749-f5caeabc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_80k_cityscapes/fcn_r50-d8_769x769_80k_cityscapes_20200606_195749.log.json) | +| FCN | R-101-D8 | 769x769 | 80000 | - | - | 75.52 | 76.61 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_80k_cityscapes/fcn_r101-d8_769x769_80k_cityscapes_20200606_214354-45cbac68.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_80k_cityscapes/fcn_r101-d8_769x769_80k_cityscapes_20200606_214354.log.json) | +| FCN | R-18b-D8 | 512x1024 | 80000 | 1.6 | 16.74 | 70.24 | 72.77 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r18b-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_512x1024_80k_cityscapes/fcn_r18b-d8_512x1024_80k_cityscapes_20201225_230143-92c0f445.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_512x1024_80k_cityscapes/fcn_r18b-d8_512x1024_80k_cityscapes-20201225_230143.log.json) | +| FCN | R-50b-D8 | 512x1024 | 80000 | 5.6 | 4.20 | 75.65 | 77.59 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r50b-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_512x1024_80k_cityscapes/fcn_r50b-d8_512x1024_80k_cityscapes_20201225_094221-82957416.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_512x1024_80k_cityscapes/fcn_r50b-d8_512x1024_80k_cityscapes-20201225_094221.log.json) | +| FCN | R-101b-D8 | 512x1024 | 80000 | 9.1 | 2.73 | 77.37 | 78.77 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101b-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_512x1024_80k_cityscapes/fcn_r101b-d8_512x1024_80k_cityscapes_20201226_160213-4543858f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_512x1024_80k_cityscapes/fcn_r101b-d8_512x1024_80k_cityscapes-20201226_160213.log.json) | +| FCN | R-18b-D8 | 769x769 | 80000 | 1.7 | 6.70 | 69.66 | 72.07 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r18b-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_769x769_80k_cityscapes/fcn_r18b-d8_769x769_80k_cityscapes_20201226_004430-32d504e5.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_769x769_80k_cityscapes/fcn_r18b-d8_769x769_80k_cityscapes-20201226_004430.log.json) | +| FCN | R-50b-D8 | 769x769 | 80000 | 6.3 | 1.82 | 73.83 | 76.60 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r50b-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_769x769_80k_cityscapes/fcn_r50b-d8_769x769_80k_cityscapes_20201225_094223-94552d38.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_769x769_80k_cityscapes/fcn_r50b-d8_769x769_80k_cityscapes-20201225_094223.log.json) | +| FCN | R-101b-D8 | 769x769 | 80000 | 10.3 | 1.15 | 77.02 | 78.67 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101b-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_769x769_80k_cityscapes/fcn_r101b-d8_769x769_80k_cityscapes_20201226_170012-82be37e2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_769x769_80k_cityscapes/fcn_r101b-d8_769x769_80k_cityscapes-20201226_170012.log.json) | +| FCN-D6 | R-50-D16 | 512x1024 | 40000 | 3.4 | 10.22 | 77.06 | 78.85 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes/fcn_d6_r50-d16_512x1024_40k_cityscapes-98d5d1bc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes/fcn_d6_r50-d16_512x1024_40k_cityscapes-20210305_130133.log.json) | +| FCN-D6 | R-50-D16 | 512x1024 | 80000 | - | 10.35 | 77.27 | 78.88 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes/fcn_d6_r50-d16_512x1024_40k_cityscapes-98d5d1bc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes/fcn_d6_r50-d16_512x1024_80k_cityscapes-20210306_115604.log.json) | +| FCN-D6 | R-50-D16 | 769x769 | 40000 | 3.7 | 4.17 | 76.82 | 78.22 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes/fcn_d6_r50-d16_769x769_40k_cityscapes-1aab18ed.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes/fcn_d6_r50-d16_769x769_40k_cityscapes-20210305_185744.log.json) | +| FCN-D6 | R-50-D16 | 769x769 | 80000 | - | 4.15 | 77.04 | 78.40 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes/fcn_d6_r50-d16_769x769_80k_cityscapes-109d88eb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes/fcn_d6_r50-d16_769x769_80k_cityscapes-20210305_200413.log.json) | +| FCN-D6 | R-101-D16 | 512x1024 | 40000 | 4.5 | 8.04 | 77.36 | 79.18 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes/fcn_d6_r101-d16_512x1024_40k_cityscapes-9cf2b450.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes/fcn_d6_r101-d16_512x1024_40k_cityscapes-20210305_130337.log.json) | +| FCN-D6 | R-101-D16 | 512x1024 | 80000 | - | 8.26 | 78.46 | 80.42 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes/fcn_d6_r101-d16_512x1024_80k_cityscapes-cb336445.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes/fcn_d6_r101-d16_512x1024_80k_cityscapes-20210308_102747.log.json) | +| FCN-D6 | R-101-D16 | 769x769 | 40000 | 5.0 | 3.12 | 77.28 | 78.95 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes/fcn_d6_r101-d16_769x769_40k_cityscapes-60b114e9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes/fcn_d6_r101-d16_769x769_40k_cityscapes-20210308_102453.log.json) | +| FCN-D6 | R-101-D16 | 769x769 | 80000 | - | 3.21 | 78.06 | 79.58 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes/fcn_d6_r101-d16_769x769_80k_cityscapes-e33adc4f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes/fcn_d6_r101-d16_769x769_80k_cityscapes-20210306_120016.log.json) | +| FCN-D6 | R-50b-D16 | 512x1024 | 80000 | 3.2 | 10.16 | 76.99 | 79.03 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r50b_d16_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_512x1024_80k_cityscapes/fcn_d6_r50b_d16_512x1024_80k_cityscapes-6a0b62e9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_512x1024_80k_cityscapes/fcn_d6_r50b_d16_512x1024_80k_cityscapes-20210311_125550.log.json) | +| FCN-D6 | R-50b-D16 | 769x769 | 80000 | 3.6 | 4.17 | 76.86 | 78.52 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r50b_d16_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_769x769_80k_cityscapes/fcn_d6_r50b_d16_769x769_80k_cityscapes-d665f231.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_769x769_80k_cityscapes/fcn_d6_r50b_d16_769x769_80k_cityscapes-20210311_131012.log.json) | +| FCN-D6 | R-101b-D16 | 512x1024 | 80000 | 4.3 | 8.46 | 77.72 | 79.53 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r101b_d16_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_512x1024_80k_cityscapes/fcn_d6_r101b_d16_512x1024_80k_cityscapes-3f2eb5b4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_512x1024_80k_cityscapes/fcn_d6_r101b_d16_512x1024_80k_cityscapes-20210311_144305.log.json) | +| FCN-D6 | R-101b-D16 | 769x769 | 80000 | 4.8 | 3.32 | 77.34 | 78.91 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r101b_d16_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_769x769_80k_cityscapes/fcn_d6_r101b_d16_769x769_80k_cityscapes-c4d8bfbc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_769x769_80k_cityscapes/fcn_d6_r101b_d16_769x769_80k_cityscapes-20210311_154527.log.json) | ### ADE20K -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FCN | R-50-D8 | 512x512 | 80000 | 8.5 | 23.49 | 35.94 | 37.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_80k_ade20k/fcn_r50-d8_512x512_80k_ade20k_20200614_144016-f8ac5082.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_80k_ade20k/fcn_r50-d8_512x512_80k_ade20k_20200614_144016.log.json) | -| FCN | R-101-D8 | 512x512 | 80000 | 12 | 14.78 | 39.61 | 40.83 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_80k_ade20k/fcn_r101-d8_512x512_80k_ade20k_20200615_014143-bc1809f7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_80k_ade20k/fcn_r101-d8_512x512_80k_ade20k_20200615_014143.log.json) | -| FCN | R-50-D8 | 512x512 | 160000 | - | - | 36.10 | 38.08 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_160k_ade20k/fcn_r50-d8_512x512_160k_ade20k_20200615_100713-4edbc3b4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_160k_ade20k/fcn_r50-d8_512x512_160k_ade20k_20200615_100713.log.json) | -| FCN | R-101-D8 | 512x512 | 160000 | - | - | 39.91 | 41.40 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_160k_ade20k/fcn_r101-d8_512x512_160k_ade20k_20200615_105816-fd192bd5.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_160k_ade20k/fcn_r101-d8_512x512_160k_ade20k_20200615_105816.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ----------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| FCN | R-50-D8 | 512x512 | 80000 | 8.5 | 23.49 | 35.94 | 37.94 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r50-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_80k_ade20k/fcn_r50-d8_512x512_80k_ade20k_20200614_144016-f8ac5082.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_80k_ade20k/fcn_r50-d8_512x512_80k_ade20k_20200614_144016.log.json) | +| FCN | R-101-D8 | 512x512 | 80000 | 12 | 14.78 | 39.61 | 40.83 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_80k_ade20k/fcn_r101-d8_512x512_80k_ade20k_20200615_014143-bc1809f7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_80k_ade20k/fcn_r101-d8_512x512_80k_ade20k_20200615_014143.log.json) | +| FCN | R-50-D8 | 512x512 | 160000 | - | - | 36.10 | 38.08 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r50-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_160k_ade20k/fcn_r50-d8_512x512_160k_ade20k_20200615_100713-4edbc3b4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_160k_ade20k/fcn_r50-d8_512x512_160k_ade20k_20200615_100713.log.json) | +| FCN | R-101-D8 | 512x512 | 160000 | - | - | 39.91 | 41.40 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_160k_ade20k/fcn_r101-d8_512x512_160k_ade20k_20200615_105816-fd192bd5.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_160k_ade20k/fcn_r101-d8_512x512_160k_ade20k_20200615_105816.log.json) | ### Pascal VOC 2012 + Aug -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FCN | R-50-D8 | 512x512 | 20000 | 5.7 | 23.28 | 67.08 | 69.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_20k_voc12aug/fcn_r50-d8_512x512_20k_voc12aug_20200617_010715-52dc5306.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_20k_voc12aug/fcn_r50-d8_512x512_20k_voc12aug_20200617_010715.log.json) | -| FCN | R-101-D8 | 512x512 | 20000 | 9.2 | 14.81 | 71.16 | 73.57 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_20k_voc12aug/fcn_r101-d8_512x512_20k_voc12aug_20200617_010842-0bb4e798.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_20k_voc12aug/fcn_r101-d8_512x512_20k_voc12aug_20200617_010842.log.json) | -| FCN | R-50-D8 | 512x512 | 40000 | - | - | 66.97 | 69.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_40k_voc12aug/fcn_r50-d8_512x512_40k_voc12aug_20200613_161222-5e2dbf40.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_40k_voc12aug/fcn_r50-d8_512x512_40k_voc12aug_20200613_161222.log.json) | -| FCN | R-101-D8 | 512x512 | 40000 | - | - | 69.91 | 72.38 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_40k_voc12aug/fcn_r101-d8_512x512_40k_voc12aug_20200613_161240-4c8bcefd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_40k_voc12aug/fcn_r101-d8_512x512_40k_voc12aug_20200613_161240.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| FCN | R-50-D8 | 512x512 | 20000 | 5.7 | 23.28 | 67.08 | 69.94 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r50-d8_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_20k_voc12aug/fcn_r50-d8_512x512_20k_voc12aug_20200617_010715-52dc5306.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_20k_voc12aug/fcn_r50-d8_512x512_20k_voc12aug_20200617_010715.log.json) | +| FCN | R-101-D8 | 512x512 | 20000 | 9.2 | 14.81 | 71.16 | 73.57 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101-d8_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_20k_voc12aug/fcn_r101-d8_512x512_20k_voc12aug_20200617_010842-0bb4e798.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_20k_voc12aug/fcn_r101-d8_512x512_20k_voc12aug_20200617_010842.log.json) | +| FCN | R-50-D8 | 512x512 | 40000 | - | - | 66.97 | 69.04 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r50-d8_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_40k_voc12aug/fcn_r50-d8_512x512_40k_voc12aug_20200613_161222-5e2dbf40.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_40k_voc12aug/fcn_r50-d8_512x512_40k_voc12aug_20200613_161222.log.json) | +| FCN | R-101-D8 | 512x512 | 40000 | - | - | 69.91 | 72.38 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101-d8_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_40k_voc12aug/fcn_r101-d8_512x512_40k_voc12aug_20200613_161240-4c8bcefd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_40k_voc12aug/fcn_r101-d8_512x512_40k_voc12aug_20200613_161240.log.json) | ### Pascal Context -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FCN | R-101-D8 | 480x480 | 40000 | - | 9.93 | 44.14 | 45.67 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context_20200911_212515-9b565a6d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context-20200911_212515.log.json) | -| FCN | R-101-D8 | 480x480 | 80000 | - | - | 44.47 | 45.74 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context_20200915_032644-a3828480.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context-20200915_032644.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| FCN | R-101-D8 | 480x480 | 40000 | - | 9.93 | 44.14 | 45.67 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101-d8_480x480_40k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context_20200911_212515-9b565a6d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context-20200911_212515.log.json) | +| FCN | R-101-D8 | 480x480 | 80000 | - | - | 44.47 | 45.74 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101-d8_480x480_80k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context_20200915_032644-a3828480.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context-20200915_032644.log.json) | diff --git a/configs/fp16/README.md b/configs/fp16/README.md index 8d12e4d780..40ee750f23 100644 --- a/configs/fp16/README.md +++ b/configs/fp16/README.md @@ -17,9 +17,9 @@ ### Cityscapes -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FCN | R-101-D8 | 512x1024 | 80000 | 5.50 | 2.66 | 76.80 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes-50245227.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230921.log.json) | -| PSPNet | R-101-D8 | 512x1024 | 80000 | 5.47 | 2.68 | 79.46 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes-ade37931.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230919.log.json) | -| DeepLabV3 | R-101-D8 | 512x1024 | 80000 | 5.91 | 1.93 | 80.48 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes-bc86dc84.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920.log.json) | -| DeepLabV3+ | R-101-D8 | 512x1024 | 80000 | 6.46 | 2.60 | 80.46 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes-cc58bc8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ---------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| FCN | R-101-D8 | 512x1024 | 80000 | 5.50 | 2.66 | 76.80 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes-50245227.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230921.log.json) | +| PSPNet | R-101-D8 | 512x1024 | 80000 | 5.47 | 2.68 | 79.46 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes-ade37931.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230919.log.json) | +| DeepLabV3 | R-101-D8 | 512x1024 | 80000 | 5.91 | 1.93 | 80.48 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes-bc86dc84.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920.log.json) | +| DeepLabV3+ | R-101-D8 | 512x1024 | 80000 | 6.46 | 2.60 | 80.46 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes-cc58bc8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920.log.json) | diff --git a/configs/gcnet/README.md b/configs/gcnet/README.md index b840d5bf9f..9c7856a1d1 100644 --- a/configs/gcnet/README.md +++ b/configs/gcnet/README.md @@ -18,31 +18,31 @@ ### Cityscapes -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| GCNet | R-50-D8 | 512x1024 | 40000 | 5.8 | 3.93 | 77.69 | 78.56 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes/gcnet_r50-d8_512x1024_40k_cityscapes_20200618_074436-4b0fd17b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes/gcnet_r50-d8_512x1024_40k_cityscapes_20200618_074436.log.json) | -| GCNet | R-101-D8 | 512x1024 | 40000 | 9.2 | 2.61 | 78.28 | 79.34 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes/gcnet_r101-d8_512x1024_40k_cityscapes_20200618_074436-5e62567f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes/gcnet_r101-d8_512x1024_40k_cityscapes_20200618_074436.log.json) | -| GCNet | R-50-D8 | 769x769 | 40000 | 6.5 | 1.67 | 78.12 | 80.09 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_40k_cityscapes/gcnet_r50-d8_769x769_40k_cityscapes_20200618_182814-a26f4471.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_40k_cityscapes/gcnet_r50-d8_769x769_40k_cityscapes_20200618_182814.log.json) | -| GCNet | R-101-D8 | 769x769 | 40000 | 10.5 | 1.13 | 78.95 | 80.71 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_40k_cityscapes/gcnet_r101-d8_769x769_40k_cityscapes_20200619_092550-ca4f0a84.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_40k_cityscapes/gcnet_r101-d8_769x769_40k_cityscapes_20200619_092550.log.json) | -| GCNet | R-50-D8 | 512x1024 | 80000 | - | - | 78.48 | 80.01 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes/gcnet_r50-d8_512x1024_80k_cityscapes_20200618_074450-ef8f069b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes/gcnet_r50-d8_512x1024_80k_cityscapes_20200618_074450.log.json) | -| GCNet | R-101-D8 | 512x1024 | 80000 | - | - | 79.03 | 79.84 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes/gcnet_r101-d8_512x1024_80k_cityscapes_20200618_074450-778ebf69.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes/gcnet_r101-d8_512x1024_80k_cityscapes_20200618_074450.log.json) | -| GCNet | R-50-D8 | 769x769 | 80000 | - | - | 78.68 | 80.66 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_80k_cityscapes/gcnet_r50-d8_769x769_80k_cityscapes_20200619_092516-4839565b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_80k_cityscapes/gcnet_r50-d8_769x769_80k_cityscapes_20200619_092516.log.json) | -| GCNet | R-101-D8 | 769x769 | 80000 | - | - | 79.18 | 80.71 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_80k_cityscapes/gcnet_r101-d8_769x769_80k_cityscapes_20200619_092628-8e043423.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_80k_cityscapes/gcnet_r101-d8_769x769_80k_cityscapes_20200619_092628.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| GCNet | R-50-D8 | 512x1024 | 40000 | 5.8 | 3.93 | 77.69 | 78.56 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes/gcnet_r50-d8_512x1024_40k_cityscapes_20200618_074436-4b0fd17b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes/gcnet_r50-d8_512x1024_40k_cityscapes_20200618_074436.log.json) | +| GCNet | R-101-D8 | 512x1024 | 40000 | 9.2 | 2.61 | 78.28 | 79.34 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes/gcnet_r101-d8_512x1024_40k_cityscapes_20200618_074436-5e62567f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes/gcnet_r101-d8_512x1024_40k_cityscapes_20200618_074436.log.json) | +| GCNet | R-50-D8 | 769x769 | 40000 | 6.5 | 1.67 | 78.12 | 80.09 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/gcnet/gcnet_r50-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_40k_cityscapes/gcnet_r50-d8_769x769_40k_cityscapes_20200618_182814-a26f4471.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_40k_cityscapes/gcnet_r50-d8_769x769_40k_cityscapes_20200618_182814.log.json) | +| GCNet | R-101-D8 | 769x769 | 40000 | 10.5 | 1.13 | 78.95 | 80.71 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/gcnet/gcnet_r101-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_40k_cityscapes/gcnet_r101-d8_769x769_40k_cityscapes_20200619_092550-ca4f0a84.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_40k_cityscapes/gcnet_r101-d8_769x769_40k_cityscapes_20200619_092550.log.json) | +| GCNet | R-50-D8 | 512x1024 | 80000 | - | - | 78.48 | 80.01 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes/gcnet_r50-d8_512x1024_80k_cityscapes_20200618_074450-ef8f069b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes/gcnet_r50-d8_512x1024_80k_cityscapes_20200618_074450.log.json) | +| GCNet | R-101-D8 | 512x1024 | 80000 | - | - | 79.03 | 79.84 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes/gcnet_r101-d8_512x1024_80k_cityscapes_20200618_074450-778ebf69.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes/gcnet_r101-d8_512x1024_80k_cityscapes_20200618_074450.log.json) | +| GCNet | R-50-D8 | 769x769 | 80000 | - | - | 78.68 | 80.66 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/gcnet/gcnet_r50-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_80k_cityscapes/gcnet_r50-d8_769x769_80k_cityscapes_20200619_092516-4839565b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_80k_cityscapes/gcnet_r50-d8_769x769_80k_cityscapes_20200619_092516.log.json) | +| GCNet | R-101-D8 | 769x769 | 80000 | - | - | 79.18 | 80.71 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/gcnet/gcnet_r101-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_80k_cityscapes/gcnet_r101-d8_769x769_80k_cityscapes_20200619_092628-8e043423.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_80k_cityscapes/gcnet_r101-d8_769x769_80k_cityscapes_20200619_092628.log.json) | ### ADE20K -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| GCNet | R-50-D8 | 512x512 | 80000 | 8.5 | 23.38 | 41.47 | 42.85 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_80k_ade20k/gcnet_r50-d8_512x512_80k_ade20k_20200614_185146-91a6da41.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_80k_ade20k/gcnet_r50-d8_512x512_80k_ade20k_20200614_185146.log.json) | -| GCNet | R-101-D8 | 512x512 | 80000 | 12 | 15.20 | 42.82 | 44.54 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_80k_ade20k/gcnet_r101-d8_512x512_80k_ade20k_20200615_020811-c3fcb6dd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_80k_ade20k/gcnet_r101-d8_512x512_80k_ade20k_20200615_020811.log.json) | -| GCNet | R-50-D8 | 512x512 | 160000 | - | - | 42.37 | 43.52 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_160k_ade20k/gcnet_r50-d8_512x512_160k_ade20k_20200615_224122-d95f3e1f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_160k_ade20k/gcnet_r50-d8_512x512_160k_ade20k_20200615_224122.log.json) | -| GCNet | R-101-D8 | 512x512 | 160000 | - | - | 43.69 | 45.21 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_160k_ade20k/gcnet_r101-d8_512x512_160k_ade20k_20200615_225406-615528d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_160k_ade20k/gcnet_r101-d8_512x512_160k_ade20k_20200615_225406.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | --------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| GCNet | R-50-D8 | 512x512 | 80000 | 8.5 | 23.38 | 41.47 | 42.85 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/gcnet/gcnet_r50-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_80k_ade20k/gcnet_r50-d8_512x512_80k_ade20k_20200614_185146-91a6da41.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_80k_ade20k/gcnet_r50-d8_512x512_80k_ade20k_20200614_185146.log.json) | +| GCNet | R-101-D8 | 512x512 | 80000 | 12 | 15.20 | 42.82 | 44.54 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/gcnet/gcnet_r101-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_80k_ade20k/gcnet_r101-d8_512x512_80k_ade20k_20200615_020811-c3fcb6dd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_80k_ade20k/gcnet_r101-d8_512x512_80k_ade20k_20200615_020811.log.json) | +| GCNet | R-50-D8 | 512x512 | 160000 | - | - | 42.37 | 43.52 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/gcnet/gcnet_r50-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_160k_ade20k/gcnet_r50-d8_512x512_160k_ade20k_20200615_224122-d95f3e1f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_160k_ade20k/gcnet_r50-d8_512x512_160k_ade20k_20200615_224122.log.json) | +| GCNet | R-101-D8 | 512x512 | 160000 | - | - | 43.69 | 45.21 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/gcnet/gcnet_r101-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_160k_ade20k/gcnet_r101-d8_512x512_160k_ade20k_20200615_225406-615528d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_160k_ade20k/gcnet_r101-d8_512x512_160k_ade20k_20200615_225406.log.json) | ### Pascal VOC 2012 + Aug -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| GCNet | R-50-D8 | 512x512 | 20000 | 5.8 | 23.35 | 76.42 | 77.51 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_20k_voc12aug/gcnet_r50-d8_512x512_20k_voc12aug_20200617_165701-3cbfdab1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_20k_voc12aug/gcnet_r50-d8_512x512_20k_voc12aug_20200617_165701.log.json) | -| GCNet | R-101-D8 | 512x512 | 20000 | 9.2 | 14.80 | 77.41 | 78.56 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_20k_voc12aug/gcnet_r101-d8_512x512_20k_voc12aug_20200617_165713-6c720aa9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_20k_voc12aug/gcnet_r101-d8_512x512_20k_voc12aug_20200617_165713.log.json) | -| GCNet | R-50-D8 | 512x512 | 40000 | - | - | 76.24 | 77.63 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_40k_voc12aug/gcnet_r50-d8_512x512_40k_voc12aug_20200613_195105-9797336d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_40k_voc12aug/gcnet_r50-d8_512x512_40k_voc12aug_20200613_195105.log.json) | -| GCNet | R-101-D8 | 512x512 | 40000 | - | - | 77.84 | 78.59 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_40k_voc12aug/gcnet_r101-d8_512x512_40k_voc12aug_20200613_185806-1e38208d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_40k_voc12aug/gcnet_r101-d8_512x512_40k_voc12aug_20200613_185806.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ---------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| GCNet | R-50-D8 | 512x512 | 20000 | 5.8 | 23.35 | 76.42 | 77.51 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/gcnet/gcnet_r50-d8_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_20k_voc12aug/gcnet_r50-d8_512x512_20k_voc12aug_20200617_165701-3cbfdab1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_20k_voc12aug/gcnet_r50-d8_512x512_20k_voc12aug_20200617_165701.log.json) | +| GCNet | R-101-D8 | 512x512 | 20000 | 9.2 | 14.80 | 77.41 | 78.56 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/gcnet/gcnet_r101-d8_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_20k_voc12aug/gcnet_r101-d8_512x512_20k_voc12aug_20200617_165713-6c720aa9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_20k_voc12aug/gcnet_r101-d8_512x512_20k_voc12aug_20200617_165713.log.json) | +| GCNet | R-50-D8 | 512x512 | 40000 | - | - | 76.24 | 77.63 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/gcnet/gcnet_r50-d8_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_40k_voc12aug/gcnet_r50-d8_512x512_40k_voc12aug_20200613_195105-9797336d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_40k_voc12aug/gcnet_r50-d8_512x512_40k_voc12aug_20200613_195105.log.json) | +| GCNet | R-101-D8 | 512x512 | 40000 | - | - | 77.84 | 78.59 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/gcnet/gcnet_r101-d8_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_40k_voc12aug/gcnet_r101-d8_512x512_40k_voc12aug_20200613_185806-1e38208d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_40k_voc12aug/gcnet_r101-d8_512x512_40k_voc12aug_20200613_185806.log.json) | diff --git a/configs/hrnet/README.md b/configs/hrnet/README.md index 4d77cefe3e..9f5e631a59 100644 --- a/configs/hrnet/README.md +++ b/configs/hrnet/README.md @@ -17,43 +17,43 @@ ### Cityscapes -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FCN | HRNetV2p-W18-Small | 512x1024 | 40000 | 1.7 | 23.74 | 73.86 | 75.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_40k_cityscapes/fcn_hr18s_512x1024_40k_cityscapes_20200601_014216-93db27d0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_40k_cityscapes/fcn_hr18s_512x1024_40k_cityscapes_20200601_014216.log.json) | -| FCN | HRNetV2p-W18 | 512x1024 | 40000 | 2.9 | 12.97 | 77.19 | 78.92 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_40k_cityscapes/fcn_hr18_512x1024_40k_cityscapes_20200601_014216-f196fb4e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_40k_cityscapes/fcn_hr18_512x1024_40k_cityscapes_20200601_014216.log.json) | -| FCN | HRNetV2p-W48 | 512x1024 | 40000 | 6.2 | 6.42 | 78.48 | 79.69 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_40k_cityscapes/fcn_hr48_512x1024_40k_cityscapes_20200601_014240-a989b146.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_40k_cityscapes/fcn_hr48_512x1024_40k_cityscapes_20200601_014240.log.json) | -| FCN | HRNetV2p-W18-Small | 512x1024 | 80000 | - | - | 75.31 | 77.48 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_80k_cityscapes/fcn_hr18s_512x1024_80k_cityscapes_20200601_202700-1462b75d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_80k_cityscapes/fcn_hr18s_512x1024_80k_cityscapes_20200601_202700.log.json) | -| FCN | HRNetV2p-W18 | 512x1024 | 80000 | - | - | 78.65 | 80.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_80k_cityscapes/fcn_hr18_512x1024_80k_cityscapes_20200601_223255-4e7b345e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_80k_cityscapes/fcn_hr18_512x1024_80k_cityscapes_20200601_223255.log.json) | -| FCN | HRNetV2p-W48 | 512x1024 | 80000 | - | - | 79.93 | 80.72 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_80k_cityscapes/fcn_hr48_512x1024_80k_cityscapes_20200601_202606-58ea95d6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_80k_cityscapes/fcn_hr48_512x1024_80k_cityscapes_20200601_202606.log.json) | -| FCN | HRNetV2p-W18-Small | 512x1024 | 160000 | - | - | 76.31 | 78.31 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_160k_cityscapes/fcn_hr18s_512x1024_160k_cityscapes_20200602_190901-4a0797ea.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_160k_cityscapes/fcn_hr18s_512x1024_160k_cityscapes_20200602_190901.log.json) | -| FCN | HRNetV2p-W18 | 512x1024 | 160000 | - | - | 78.80 | 80.74 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_160k_cityscapes/fcn_hr18_512x1024_160k_cityscapes_20200602_190822-221e4a4f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_160k_cityscapes/fcn_hr18_512x1024_160k_cityscapes_20200602_190822.log.json) | -| FCN | HRNetV2p-W48 | 512x1024 | 160000 | - | - | 80.65 | 81.92 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_160k_cityscapes/fcn_hr48_512x1024_160k_cityscapes_20200602_190946-59b7973e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_160k_cityscapes/fcn_hr48_512x1024_160k_cityscapes_20200602_190946.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | ------------------ | --------- | ------: | -------- | -------------- | ----: | ------------: | ---------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| FCN | HRNetV2p-W18-Small | 512x1024 | 40000 | 1.7 | 23.74 | 73.86 | 75.91 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18s_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_40k_cityscapes/fcn_hr18s_512x1024_40k_cityscapes_20200601_014216-93db27d0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_40k_cityscapes/fcn_hr18s_512x1024_40k_cityscapes_20200601_014216.log.json) | +| FCN | HRNetV2p-W18 | 512x1024 | 40000 | 2.9 | 12.97 | 77.19 | 78.92 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_40k_cityscapes/fcn_hr18_512x1024_40k_cityscapes_20200601_014216-f196fb4e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_40k_cityscapes/fcn_hr18_512x1024_40k_cityscapes_20200601_014216.log.json) | +| FCN | HRNetV2p-W48 | 512x1024 | 40000 | 6.2 | 6.42 | 78.48 | 79.69 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr48_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_40k_cityscapes/fcn_hr48_512x1024_40k_cityscapes_20200601_014240-a989b146.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_40k_cityscapes/fcn_hr48_512x1024_40k_cityscapes_20200601_014240.log.json) | +| FCN | HRNetV2p-W18-Small | 512x1024 | 80000 | - | - | 75.31 | 77.48 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18s_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_80k_cityscapes/fcn_hr18s_512x1024_80k_cityscapes_20200601_202700-1462b75d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_80k_cityscapes/fcn_hr18s_512x1024_80k_cityscapes_20200601_202700.log.json) | +| FCN | HRNetV2p-W18 | 512x1024 | 80000 | - | - | 78.65 | 80.35 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_80k_cityscapes/fcn_hr18_512x1024_80k_cityscapes_20200601_223255-4e7b345e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_80k_cityscapes/fcn_hr18_512x1024_80k_cityscapes_20200601_223255.log.json) | +| FCN | HRNetV2p-W48 | 512x1024 | 80000 | - | - | 79.93 | 80.72 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr48_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_80k_cityscapes/fcn_hr48_512x1024_80k_cityscapes_20200601_202606-58ea95d6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_80k_cityscapes/fcn_hr48_512x1024_80k_cityscapes_20200601_202606.log.json) | +| FCN | HRNetV2p-W18-Small | 512x1024 | 160000 | - | - | 76.31 | 78.31 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18s_512x1024_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_160k_cityscapes/fcn_hr18s_512x1024_160k_cityscapes_20200602_190901-4a0797ea.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_160k_cityscapes/fcn_hr18s_512x1024_160k_cityscapes_20200602_190901.log.json) | +| FCN | HRNetV2p-W18 | 512x1024 | 160000 | - | - | 78.80 | 80.74 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18_512x1024_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_160k_cityscapes/fcn_hr18_512x1024_160k_cityscapes_20200602_190822-221e4a4f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_160k_cityscapes/fcn_hr18_512x1024_160k_cityscapes_20200602_190822.log.json) | +| FCN | HRNetV2p-W48 | 512x1024 | 160000 | - | - | 80.65 | 81.92 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr48_512x1024_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_160k_cityscapes/fcn_hr48_512x1024_160k_cityscapes_20200602_190946-59b7973e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_160k_cityscapes/fcn_hr48_512x1024_160k_cityscapes_20200602_190946.log.json) | ### ADE20K -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FCN | HRNetV2p-W18-Small | 512x512 | 80000 | 3.8 | 38.66 | 31.38 | 32.45 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_80k_ade20k/fcn_hr18s_512x512_80k_ade20k_20200614_144345-77fc814a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_80k_ade20k/fcn_hr18s_512x512_80k_ade20k_20200614_144345.log.json) | -| FCN | HRNetV2p-W18 | 512x512 | 80000 | 4.9 | 22.57 | 35.51 | 36.80 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_ade20k/fcn_hr18_512x512_80k_ade20k_20200614_185145-66f20cb7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_ade20k/fcn_hr18_512x512_80k_ade20k_20200614_185145.log.json) | -| FCN | HRNetV2p-W48 | 512x512 | 80000 | 8.2 | 21.23 | 41.90 | 43.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_80k_ade20k/fcn_hr48_512x512_80k_ade20k_20200614_193946-7ba5258d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_80k_ade20k/fcn_hr48_512x512_80k_ade20k_20200614_193946.log.json) | -| FCN | HRNetV2p-W18-Small | 512x512 | 160000 | - | - | 33.00 | 34.55 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_160k_ade20k/fcn_hr18s_512x512_160k_ade20k_20200614_214413-870f65ac.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_160k_ade20k/fcn_hr18s_512x512_160k_ade20k_20200614_214413.log.json) | -| FCN | HRNetV2p-W18 | 512x512 | 160000 | - | - | 36.79 | 38.58 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_160k_ade20k/fcn_hr18_512x512_160k_ade20k_20200614_214426-ca961836.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_160k_ade20k/fcn_hr18_512x512_160k_ade20k_20200614_214426.log.json) | -| FCN | HRNetV2p-W48 | 512x512 | 160000 | - | - | 42.02 | 43.86 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_160k_ade20k/fcn_hr48_512x512_160k_ade20k_20200614_214407-a52fc02c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_160k_ade20k/fcn_hr48_512x512_160k_ade20k_20200614_214407.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | ------------------ | --------- | ------: | -------- | -------------- | ----: | ------------: | ----------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| FCN | HRNetV2p-W18-Small | 512x512 | 80000 | 3.8 | 38.66 | 31.38 | 32.45 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18s_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_80k_ade20k/fcn_hr18s_512x512_80k_ade20k_20200614_144345-77fc814a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_80k_ade20k/fcn_hr18s_512x512_80k_ade20k_20200614_144345.log.json) | +| FCN | HRNetV2p-W18 | 512x512 | 80000 | 4.9 | 22.57 | 35.51 | 36.80 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_ade20k/fcn_hr18_512x512_80k_ade20k_20200614_185145-66f20cb7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_ade20k/fcn_hr18_512x512_80k_ade20k_20200614_185145.log.json) | +| FCN | HRNetV2p-W48 | 512x512 | 80000 | 8.2 | 21.23 | 41.90 | 43.27 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr48_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_80k_ade20k/fcn_hr48_512x512_80k_ade20k_20200614_193946-7ba5258d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_80k_ade20k/fcn_hr48_512x512_80k_ade20k_20200614_193946.log.json) | +| FCN | HRNetV2p-W18-Small | 512x512 | 160000 | - | - | 33.00 | 34.55 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18s_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_160k_ade20k/fcn_hr18s_512x512_160k_ade20k_20200614_214413-870f65ac.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_160k_ade20k/fcn_hr18s_512x512_160k_ade20k_20200614_214413.log.json) | +| FCN | HRNetV2p-W18 | 512x512 | 160000 | - | - | 36.79 | 38.58 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_160k_ade20k/fcn_hr18_512x512_160k_ade20k_20200614_214426-ca961836.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_160k_ade20k/fcn_hr18_512x512_160k_ade20k_20200614_214426.log.json) | +| FCN | HRNetV2p-W48 | 512x512 | 160000 | - | - | 42.02 | 43.86 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr48_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_160k_ade20k/fcn_hr48_512x512_160k_ade20k_20200614_214407-a52fc02c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_160k_ade20k/fcn_hr48_512x512_160k_ade20k_20200614_214407.log.json) | ### Pascal VOC 2012 + Aug -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FCN | HRNetV2p-W18-Small | 512x512 | 20000 | 1.8 | 43.36 | 65.20 | 68.55 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_20k_voc12aug/fcn_hr18s_512x512_20k_voc12aug_20200617_224503-56e36088.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_20k_voc12aug/fcn_hr18s_512x512_20k_voc12aug_20200617_224503.log.json) | -| FCN | HRNetV2p-W18 | 512x512 | 20000 | 2.9 | 23.48 | 72.30 | 74.71 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_20k_voc12aug/fcn_hr18_512x512_20k_voc12aug_20200617_224503-488d45f7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_20k_voc12aug/fcn_hr18_512x512_20k_voc12aug_20200617_224503.log.json) | -| FCN | HRNetV2p-W48 | 512x512 | 20000 | 6.2 | 22.05 | 75.87 | 78.58 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_20k_voc12aug/fcn_hr48_512x512_20k_voc12aug_20200617_224419-89de05cd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_20k_voc12aug/fcn_hr48_512x512_20k_voc12aug_20200617_224419.log.json) | -| FCN | HRNetV2p-W18-Small | 512x512 | 40000 | - | - | 66.61 | 70.00 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_40k_voc12aug/fcn_hr18s_512x512_40k_voc12aug_20200614_000648-4f8d6e7f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_40k_voc12aug/fcn_hr18s_512x512_40k_voc12aug_20200614_000648.log.json) | -| FCN | HRNetV2p-W18 | 512x512 | 40000 | - | - | 72.90 | 75.59 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_40k_voc12aug/fcn_hr18_512x512_40k_voc12aug_20200613_224401-1b4b76cd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_40k_voc12aug/fcn_hr18_512x512_40k_voc12aug_20200613_224401.log.json) | -| FCN | HRNetV2p-W48 | 512x512 | 40000 | - | - | 76.24 | 78.49 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_40k_voc12aug/fcn_hr48_512x512_40k_voc12aug_20200613_222111-1b0f18bc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_40k_voc12aug/fcn_hr48_512x512_40k_voc12aug_20200613_222111.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | ------------------ | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| FCN | HRNetV2p-W18-Small | 512x512 | 20000 | 1.8 | 43.36 | 65.20 | 68.55 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18s_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_20k_voc12aug/fcn_hr18s_512x512_20k_voc12aug_20200617_224503-56e36088.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_20k_voc12aug/fcn_hr18s_512x512_20k_voc12aug_20200617_224503.log.json) | +| FCN | HRNetV2p-W18 | 512x512 | 20000 | 2.9 | 23.48 | 72.30 | 74.71 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_20k_voc12aug/fcn_hr18_512x512_20k_voc12aug_20200617_224503-488d45f7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_20k_voc12aug/fcn_hr18_512x512_20k_voc12aug_20200617_224503.log.json) | +| FCN | HRNetV2p-W48 | 512x512 | 20000 | 6.2 | 22.05 | 75.87 | 78.58 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr48_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_20k_voc12aug/fcn_hr48_512x512_20k_voc12aug_20200617_224419-89de05cd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_20k_voc12aug/fcn_hr48_512x512_20k_voc12aug_20200617_224419.log.json) | +| FCN | HRNetV2p-W18-Small | 512x512 | 40000 | - | - | 66.61 | 70.00 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18s_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_40k_voc12aug/fcn_hr18s_512x512_40k_voc12aug_20200614_000648-4f8d6e7f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_40k_voc12aug/fcn_hr18s_512x512_40k_voc12aug_20200614_000648.log.json) | +| FCN | HRNetV2p-W18 | 512x512 | 40000 | - | - | 72.90 | 75.59 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_40k_voc12aug/fcn_hr18_512x512_40k_voc12aug_20200613_224401-1b4b76cd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_40k_voc12aug/fcn_hr18_512x512_40k_voc12aug_20200613_224401.log.json) | +| FCN | HRNetV2p-W48 | 512x512 | 40000 | - | - | 76.24 | 78.49 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr48_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_40k_voc12aug/fcn_hr48_512x512_40k_voc12aug_20200613_222111-1b0f18bc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_40k_voc12aug/fcn_hr48_512x512_40k_voc12aug_20200613_222111.log.json) | ### Pascal Context -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FCN | HRNetV2p-W48 | 480x480 | 40000 | 6.1 | 8.86 | 45.14 | 47.42 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context/fcn_hr48_480x480_40k_pascal_context_20200911_164852-667d00b0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context/fcn_hr48_480x480_40k_pascal_context-20200911_164852.log.json) | -| FCN | HRNetV2p-W48 | 480x480 | 80000 | - | - | 45.84 | 47.84 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context/fcn_hr48_480x480_80k_pascal_context_20200911_155322-847a6711.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context/fcn_hr48_480x480_80k_pascal_context-20200911_155322.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | ------------ | --------- | ------: | -------- | -------------- | ----: | ------------: | ----------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| FCN | HRNetV2p-W48 | 480x480 | 40000 | 6.1 | 8.86 | 45.14 | 47.42 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr48_480x480_40k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context/fcn_hr48_480x480_40k_pascal_context_20200911_164852-667d00b0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context/fcn_hr48_480x480_40k_pascal_context-20200911_164852.log.json) | +| FCN | HRNetV2p-W48 | 480x480 | 80000 | - | - | 45.84 | 47.84 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr48_480x480_80k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context/fcn_hr48_480x480_80k_pascal_context_20200911_155322-847a6711.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context/fcn_hr48_480x480_80k_pascal_context-20200911_155322.log.json) | diff --git a/configs/mobilenet_v2/README.md b/configs/mobilenet_v2/README.md index e0e75e028d..2e6fa264e0 100644 --- a/configs/mobilenet_v2/README.md +++ b/configs/mobilenet_v2/README.md @@ -18,18 +18,18 @@ ### Cityscapes -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|------------|----------|-----------|--------:|---------:|----------------|------:|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FCN | M-V2-D8 | 512x1024 | 80000 | 3.4 | 14.2 | 61.54 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes/fcn_m-v2-d8_512x1024_80k_cityscapes_20200825_124817-d24c28c1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes/fcn_m-v2-d8_512x1024_80k_cityscapes-20200825_124817.log.json) | -| PSPNet | M-V2-D8 | 512x1024 | 80000 | 3.6 | 11.2 | 70.23 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes/pspnet_m-v2-d8_512x1024_80k_cityscapes_20200825_124817-19e81d51.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes/pspnet_m-v2-d8_512x1024_80k_cityscapes-20200825_124817.log.json) | -| DeepLabV3 | M-V2-D8 | 512x1024 | 80000 | 3.9 | 8.4 | 73.84 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes/deeplabv3_m-v2-d8_512x1024_80k_cityscapes_20200825_124836-bef03590.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes/deeplabv3_m-v2-d8_512x1024_80k_cityscapes-20200825_124836.log.json) | -| DeepLabV3+ | M-V2-D8 | 512x1024 | 80000 | 5.1 | 8.4 | 75.20 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes_20200825_124836-d256dd4b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes-20200825_124836.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ---------- | -------- | --------- | ------: | -------: | -------------- | ----: | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| FCN | M-V2-D8 | 512x1024 | 80000 | 3.4 | 14.2 | 61.54 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes/fcn_m-v2-d8_512x1024_80k_cityscapes_20200825_124817-d24c28c1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes/fcn_m-v2-d8_512x1024_80k_cityscapes-20200825_124817.log.json) | +| PSPNet | M-V2-D8 | 512x1024 | 80000 | 3.6 | 11.2 | 70.23 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes/pspnet_m-v2-d8_512x1024_80k_cityscapes_20200825_124817-19e81d51.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes/pspnet_m-v2-d8_512x1024_80k_cityscapes-20200825_124817.log.json) | +| DeepLabV3 | M-V2-D8 | 512x1024 | 80000 | 3.9 | 8.4 | 73.84 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes/deeplabv3_m-v2-d8_512x1024_80k_cityscapes_20200825_124836-bef03590.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes/deeplabv3_m-v2-d8_512x1024_80k_cityscapes-20200825_124836.log.json) | +| DeepLabV3+ | M-V2-D8 | 512x1024 | 80000 | 5.1 | 8.4 | 75.20 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes_20200825_124836-d256dd4b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes-20200825_124836.log.json) | ### ADE20k -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|------------|----------|-----------|--------:|---------:|----------------|------:|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FCN | M-V2-D8 | 512x512 | 160000 | 6.5 | 64.4 | 19.71 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k/fcn_m-v2-d8_512x512_160k_ade20k_20200825_214953-c40e1095.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k/fcn_m-v2-d8_512x512_160k_ade20k-20200825_214953.log.json) | -| PSPNet | M-V2-D8 | 512x512 | 160000 | 6.5 | 57.7 | 29.68 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k/pspnet_m-v2-d8_512x512_160k_ade20k_20200825_214953-f5942f7a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k/pspnet_m-v2-d8_512x512_160k_ade20k-20200825_214953.log.json) | -| DeepLabV3 | M-V2-D8 | 512x512 | 160000 | 6.8 | 39.9 | 34.08 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k/deeplabv3_m-v2-d8_512x512_160k_ade20k_20200825_223255-63986343.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k/deeplabv3_m-v2-d8_512x512_160k_ade20k-20200825_223255.log.json) | -| DeepLabV3+ | M-V2-D8 | 512x512 | 160000 | 8.2 | 43.1 | 34.02 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k/deeplabv3plus_m-v2-d8_512x512_160k_ade20k_20200825_223255-465a01d4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k/deeplabv3plus_m-v2-d8_512x512_160k_ade20k-20200825_223255.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ---------- | -------- | --------- | ------: | -------: | -------------- | ----: | ------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| FCN | M-V2-D8 | 512x512 | 160000 | 6.5 | 64.4 | 19.71 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k/fcn_m-v2-d8_512x512_160k_ade20k_20200825_214953-c40e1095.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k/fcn_m-v2-d8_512x512_160k_ade20k-20200825_214953.log.json) | +| PSPNet | M-V2-D8 | 512x512 | 160000 | 6.5 | 57.7 | 29.68 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k/pspnet_m-v2-d8_512x512_160k_ade20k_20200825_214953-f5942f7a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k/pspnet_m-v2-d8_512x512_160k_ade20k-20200825_214953.log.json) | +| DeepLabV3 | M-V2-D8 | 512x512 | 160000 | 6.8 | 39.9 | 34.08 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k/deeplabv3_m-v2-d8_512x512_160k_ade20k_20200825_223255-63986343.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k/deeplabv3_m-v2-d8_512x512_160k_ade20k-20200825_223255.log.json) | +| DeepLabV3+ | M-V2-D8 | 512x512 | 160000 | 8.2 | 43.1 | 34.02 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k/deeplabv3plus_m-v2-d8_512x512_160k_ade20k_20200825_223255-465a01d4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k/deeplabv3plus_m-v2-d8_512x512_160k_ade20k-20200825_223255.log.json) | diff --git a/configs/mobilenet_v3/README.md b/configs/mobilenet_v3/README.md index 2bad2a731c..3d98765446 100644 --- a/configs/mobilenet_v3/README.md +++ b/configs/mobilenet_v3/README.md @@ -20,9 +20,9 @@ ### Cityscapes -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|------------|----------|-----------|--------:|---------:|----------------|------:|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| LRASPP | M-V3-D8 | 512x1024 | 320000 | 8.9 | 15.22 | 69.54 | 70.89 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes/lraspp_m-v3-d8_512x1024_320k_cityscapes_20201224_220337-cfe8fb07.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes/lraspp_m-v3-d8_512x1024_320k_cityscapes-20201224_220337.log.json)| -| LRASPP | M-V3-D8 (scratch) | 512x1024 | 320000 | 8.9 | 14.77 | 67.87 | 69.78 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes_20201224_220337-9f29cd72.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes-20201224_220337.log.json)| -| LRASPP | M-V3s-D8 | 512x1024 | 320000 | 5.3 | 23.64 | 64.11 | 66.42 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes/lraspp_m-v3s-d8_512x1024_320k_cityscapes_20201224_223935-61565b34.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes/lraspp_m-v3s-d8_512x1024_320k_cityscapes-20201224_223935.log.json)| -| LRASPP | M-V3s-D8 (scratch) | 512x1024 | 320000 | 5.3 | 24.50 | 62.74 | 65.01 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes_20201224_223935-03daeabb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes-20201224_223935.log.json)| +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | ------------------ | --------- | ------: | -------: | -------------- | ----: | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| LRASPP | M-V3-D8 | 512x1024 | 320000 | 8.9 | 15.22 | 69.54 | 70.89 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes/lraspp_m-v3-d8_512x1024_320k_cityscapes_20201224_220337-cfe8fb07.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes/lraspp_m-v3-d8_512x1024_320k_cityscapes-20201224_220337.log.json) | +| LRASPP | M-V3-D8 (scratch) | 512x1024 | 320000 | 8.9 | 14.77 | 67.87 | 69.78 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes_20201224_220337-9f29cd72.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes-20201224_220337.log.json) | +| LRASPP | M-V3s-D8 | 512x1024 | 320000 | 5.3 | 23.64 | 64.11 | 66.42 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes/lraspp_m-v3s-d8_512x1024_320k_cityscapes_20201224_223935-61565b34.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes/lraspp_m-v3s-d8_512x1024_320k_cityscapes-20201224_223935.log.json) | +| LRASPP | M-V3s-D8 (scratch) | 512x1024 | 320000 | 5.3 | 24.50 | 62.74 | 65.01 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes_20201224_223935-03daeabb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes-20201224_223935.log.json) | diff --git a/configs/nonlocal_net/README.md b/configs/nonlocal_net/README.md index 76352e265a..a52c5db898 100644 --- a/configs/nonlocal_net/README.md +++ b/configs/nonlocal_net/README.md @@ -18,31 +18,31 @@ ### Cityscapes -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|----------|----------|-----------|--------:|----------|----------------|------:|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| NonLocal | R-50-D8 | 512x1024 | 40000 | 7.4 | 2.72 | 78.24 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes/nonlocal_r50-d8_512x1024_40k_cityscapes_20200605_210748-c75e81e3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes/nonlocal_r50-d8_512x1024_40k_cityscapes_20200605_210748.log.json) | -| NonLocal | R-101-D8 | 512x1024 | 40000 | 10.9 | 1.95 | 78.66 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes/nonlocal_r101-d8_512x1024_40k_cityscapes_20200605_210748-d63729fa.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes/nonlocal_r101-d8_512x1024_40k_cityscapes_20200605_210748.log.json) | -| NonLocal | R-50-D8 | 769x769 | 40000 | 8.9 | 1.52 | 78.33 | 79.92 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes/nonlocal_r50-d8_769x769_40k_cityscapes_20200530_045243-82ef6749.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes/nonlocal_r50-d8_769x769_40k_cityscapes_20200530_045243.log.json) | -| NonLocal | R-101-D8 | 769x769 | 40000 | 12.8 | 1.05 | 78.57 | 80.29 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes/nonlocal_r101-d8_769x769_40k_cityscapes_20200530_045348-8fe9a9dc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes/nonlocal_r101-d8_769x769_40k_cityscapes_20200530_045348.log.json) | -| NonLocal | R-50-D8 | 512x1024 | 80000 | - | - | 78.01 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes/nonlocal_r50-d8_512x1024_80k_cityscapes_20200607_193518-d6839fae.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes/nonlocal_r50-d8_512x1024_80k_cityscapes_20200607_193518.log.json) | -| NonLocal | R-101-D8 | 512x1024 | 80000 | - | - | 78.93 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes/nonlocal_r101-d8_512x1024_80k_cityscapes_20200607_183411-32700183.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes/nonlocal_r101-d8_512x1024_80k_cityscapes_20200607_183411.log.json) | -| NonLocal | R-50-D8 | 769x769 | 80000 | - | - | 79.05 | 80.68 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes/nonlocal_r50-d8_769x769_80k_cityscapes_20200607_193506-1f9792f6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes/nonlocal_r50-d8_769x769_80k_cityscapes_20200607_193506.log.json) | -| NonLocal | R-101-D8 | 769x769 | 80000 | - | - | 79.40 | 80.85 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes/nonlocal_r101-d8_769x769_80k_cityscapes_20200607_183428-0e1fa4f9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes/nonlocal_r101-d8_769x769_80k_cityscapes_20200607_183428.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| -------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------- | ----------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| NonLocal | R-50-D8 | 512x1024 | 40000 | 7.4 | 2.72 | 78.24 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes/nonlocal_r50-d8_512x1024_40k_cityscapes_20200605_210748-c75e81e3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes/nonlocal_r50-d8_512x1024_40k_cityscapes_20200605_210748.log.json) | +| NonLocal | R-101-D8 | 512x1024 | 40000 | 10.9 | 1.95 | 78.66 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes/nonlocal_r101-d8_512x1024_40k_cityscapes_20200605_210748-d63729fa.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes/nonlocal_r101-d8_512x1024_40k_cityscapes_20200605_210748.log.json) | +| NonLocal | R-50-D8 | 769x769 | 40000 | 8.9 | 1.52 | 78.33 | 79.92 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes/nonlocal_r50-d8_769x769_40k_cityscapes_20200530_045243-82ef6749.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes/nonlocal_r50-d8_769x769_40k_cityscapes_20200530_045243.log.json) | +| NonLocal | R-101-D8 | 769x769 | 40000 | 12.8 | 1.05 | 78.57 | 80.29 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes/nonlocal_r101-d8_769x769_40k_cityscapes_20200530_045348-8fe9a9dc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes/nonlocal_r101-d8_769x769_40k_cityscapes_20200530_045348.log.json) | +| NonLocal | R-50-D8 | 512x1024 | 80000 | - | - | 78.01 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes/nonlocal_r50-d8_512x1024_80k_cityscapes_20200607_193518-d6839fae.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes/nonlocal_r50-d8_512x1024_80k_cityscapes_20200607_193518.log.json) | +| NonLocal | R-101-D8 | 512x1024 | 80000 | - | - | 78.93 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes/nonlocal_r101-d8_512x1024_80k_cityscapes_20200607_183411-32700183.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes/nonlocal_r101-d8_512x1024_80k_cityscapes_20200607_183411.log.json) | +| NonLocal | R-50-D8 | 769x769 | 80000 | - | - | 79.05 | 80.68 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes/nonlocal_r50-d8_769x769_80k_cityscapes_20200607_193506-1f9792f6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes/nonlocal_r50-d8_769x769_80k_cityscapes_20200607_193506.log.json) | +| NonLocal | R-101-D8 | 769x769 | 80000 | - | - | 79.40 | 80.85 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes/nonlocal_r101-d8_769x769_80k_cityscapes_20200607_183428-0e1fa4f9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes/nonlocal_r101-d8_769x769_80k_cityscapes_20200607_183428.log.json) | ### ADE20K -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|----------|----------|-----------|--------:|----------|----------------|------:|--------------:|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| NonLocal | R-50-D8 | 512x512 | 80000 | 9.1 | 21.37 | 40.75 | 42.05 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k/nonlocal_r50-d8_512x512_80k_ade20k_20200615_015801-5ae0aa33.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k/nonlocal_r50-d8_512x512_80k_ade20k_20200615_015801.log.json) | -| NonLocal | R-101-D8 | 512x512 | 80000 | 12.6 | 13.97 | 42.90 | 44.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k/nonlocal_r101-d8_512x512_80k_ade20k_20200615_015758-24105919.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k/nonlocal_r101-d8_512x512_80k_ade20k_20200615_015758.log.json) | -| NonLocal | R-50-D8 | 512x512 | 160000 | - | - | 42.03 | 43.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k/nonlocal_r50-d8_512x512_160k_ade20k_20200616_005410-baef45e3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k/nonlocal_r50-d8_512x512_160k_ade20k_20200616_005410.log.json) | -| NonLocal | R-101-D8 | 512x512 | 160000 | - | - | 43.36 | 44.83 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k/nonlocal_r101-d8_512x512_160k_ade20k_20200616_003422-affd0f8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k/nonlocal_r101-d8_512x512_160k_ade20k_20200616_003422.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| -------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| NonLocal | R-50-D8 | 512x512 | 80000 | 9.1 | 21.37 | 40.75 | 42.05 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k/nonlocal_r50-d8_512x512_80k_ade20k_20200615_015801-5ae0aa33.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k/nonlocal_r50-d8_512x512_80k_ade20k_20200615_015801.log.json) | +| NonLocal | R-101-D8 | 512x512 | 80000 | 12.6 | 13.97 | 42.90 | 44.27 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k/nonlocal_r101-d8_512x512_80k_ade20k_20200615_015758-24105919.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k/nonlocal_r101-d8_512x512_80k_ade20k_20200615_015758.log.json) | +| NonLocal | R-50-D8 | 512x512 | 160000 | - | - | 42.03 | 43.04 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k/nonlocal_r50-d8_512x512_160k_ade20k_20200616_005410-baef45e3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k/nonlocal_r50-d8_512x512_160k_ade20k_20200616_005410.log.json) | +| NonLocal | R-101-D8 | 512x512 | 160000 | - | - | 43.36 | 44.83 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k/nonlocal_r101-d8_512x512_160k_ade20k_20200616_003422-affd0f8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k/nonlocal_r101-d8_512x512_160k_ade20k_20200616_003422.log.json) | ### Pascal VOC 2012 + Aug -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| NonLocal | R-50-D8 | 512x512 | 20000 | 6.4 | 21.21 | 76.20 | 77.12 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug/nonlocal_r50-d8_512x512_20k_voc12aug_20200617_222613-07f2a57c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug/nonlocal_r50-d8_512x512_20k_voc12aug_20200617_222613.log.json) | -| NonLocal | R-101-D8 | 512x512 | 20000 | 9.8 | 14.01 | 78.15 | 78.86 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug/nonlocal_r101-d8_512x512_20k_voc12aug_20200617_222615-948c68ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug/nonlocal_r101-d8_512x512_20k_voc12aug_20200617_222615.log.json) | -| NonLocal | R-50-D8 | 512x512 | 40000 | - | - | 76.65 | 77.47 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug/nonlocal_r50-d8_512x512_40k_voc12aug_20200614_000028-0139d4a9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug/nonlocal_r50-d8_512x512_40k_voc12aug_20200614_000028.log.json) | -| NonLocal | R-101-D8 | 512x512 | 40000 | - | - | 78.27 | 79.12 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug/nonlocal_r101-d8_512x512_40k_voc12aug_20200614_000028-7e5ff470.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug/nonlocal_r101-d8_512x512_40k_voc12aug_20200614_000028.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| -------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| NonLocal | R-50-D8 | 512x512 | 20000 | 6.4 | 21.21 | 76.20 | 77.12 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug/nonlocal_r50-d8_512x512_20k_voc12aug_20200617_222613-07f2a57c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug/nonlocal_r50-d8_512x512_20k_voc12aug_20200617_222613.log.json) | +| NonLocal | R-101-D8 | 512x512 | 20000 | 9.8 | 14.01 | 78.15 | 78.86 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug/nonlocal_r101-d8_512x512_20k_voc12aug_20200617_222615-948c68ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug/nonlocal_r101-d8_512x512_20k_voc12aug_20200617_222615.log.json) | +| NonLocal | R-50-D8 | 512x512 | 40000 | - | - | 76.65 | 77.47 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug/nonlocal_r50-d8_512x512_40k_voc12aug_20200614_000028-0139d4a9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug/nonlocal_r50-d8_512x512_40k_voc12aug_20200614_000028.log.json) | +| NonLocal | R-101-D8 | 512x512 | 40000 | - | - | 78.27 | 79.12 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug/nonlocal_r101-d8_512x512_40k_voc12aug_20200614_000028-7e5ff470.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug/nonlocal_r101-d8_512x512_40k_voc12aug_20200614_000028.log.json) | diff --git a/configs/ocrnet/README.md b/configs/ocrnet/README.md index 0a4c75c708..5eea86283a 100644 --- a/configs/ocrnet/README.md +++ b/configs/ocrnet/README.md @@ -26,44 +26,44 @@ #### HRNet backbone -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| OCRNet | HRNetV2p-W18-Small | 512x1024 | 40000 | 3.5 | 10.45 | 74.30 | 75.95 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes/ocrnet_hr18s_512x1024_40k_cityscapes_20200601_033304-fa2436c2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes/ocrnet_hr18s_512x1024_40k_cityscapes_20200601_033304.log.json) | -| OCRNet | HRNetV2p-W18 | 512x1024 | 40000 | 4.7 | 7.50 | 77.72 | 79.49 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes/ocrnet_hr18_512x1024_40k_cityscapes_20200601_033320-401c5bdd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes/ocrnet_hr18_512x1024_40k_cityscapes_20200601_033320.log.json) | -| OCRNet | HRNetV2p-W48 | 512x1024 | 40000 | 8 | 4.22 | 80.58 | 81.79 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes/ocrnet_hr48_512x1024_40k_cityscapes_20200601_033336-55b32491.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes/ocrnet_hr48_512x1024_40k_cityscapes_20200601_033336.log.json) | -| OCRNet | HRNetV2p-W18-Small | 512x1024 | 80000 | - | - | 77.16 | 78.66 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes/ocrnet_hr18s_512x1024_80k_cityscapes_20200601_222735-55979e63.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes/ocrnet_hr18s_512x1024_80k_cityscapes_20200601_222735.log.json) | -| OCRNet | HRNetV2p-W18 | 512x1024 | 80000 | - | - | 78.57 | 80.46 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes/ocrnet_hr18_512x1024_80k_cityscapes_20200614_230521-c2e1dd4a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes/ocrnet_hr18_512x1024_80k_cityscapes_20200614_230521.log.json) | -| OCRNet | HRNetV2p-W48 | 512x1024 | 80000 | - | - | 80.70 | 81.87 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes/ocrnet_hr48_512x1024_80k_cityscapes_20200601_222752-9076bcdf.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes/ocrnet_hr48_512x1024_80k_cityscapes_20200601_222752.log.json) | -| OCRNet | HRNetV2p-W18-Small | 512x1024 | 160000 | - | - | 78.45 | 79.97 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes/ocrnet_hr18s_512x1024_160k_cityscapes_20200602_191005-f4a7af28.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes/ocrnet_hr18s_512x1024_160k_cityscapes_20200602_191005.log.json) | -| OCRNet | HRNetV2p-W18 | 512x1024 | 160000 | - | - | 79.47 | 80.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes/ocrnet_hr18_512x1024_160k_cityscapes_20200602_191001-b9172d0c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes/ocrnet_hr18_512x1024_160k_cityscapes_20200602_191001.log.json) | -| OCRNet | HRNetV2p-W48 | 512x1024 | 160000 | - | - | 81.35 | 82.70 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes/ocrnet_hr48_512x1024_160k_cityscapes_20200602_191037-dfbf1b0c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes/ocrnet_hr48_512x1024_160k_cityscapes_20200602_191037.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | ------------------ | --------- | ------: | -------- | -------------- | ----: | ------------: | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| OCRNet | HRNetV2p-W18-Small | 512x1024 | 40000 | 3.5 | 10.45 | 74.30 | 75.95 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes/ocrnet_hr18s_512x1024_40k_cityscapes_20200601_033304-fa2436c2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes/ocrnet_hr18s_512x1024_40k_cityscapes_20200601_033304.log.json) | +| OCRNet | HRNetV2p-W18 | 512x1024 | 40000 | 4.7 | 7.50 | 77.72 | 79.49 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes/ocrnet_hr18_512x1024_40k_cityscapes_20200601_033320-401c5bdd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes/ocrnet_hr18_512x1024_40k_cityscapes_20200601_033320.log.json) | +| OCRNet | HRNetV2p-W48 | 512x1024 | 40000 | 8 | 4.22 | 80.58 | 81.79 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes/ocrnet_hr48_512x1024_40k_cityscapes_20200601_033336-55b32491.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes/ocrnet_hr48_512x1024_40k_cityscapes_20200601_033336.log.json) | +| OCRNet | HRNetV2p-W18-Small | 512x1024 | 80000 | - | - | 77.16 | 78.66 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes/ocrnet_hr18s_512x1024_80k_cityscapes_20200601_222735-55979e63.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes/ocrnet_hr18s_512x1024_80k_cityscapes_20200601_222735.log.json) | +| OCRNet | HRNetV2p-W18 | 512x1024 | 80000 | - | - | 78.57 | 80.46 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes/ocrnet_hr18_512x1024_80k_cityscapes_20200614_230521-c2e1dd4a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes/ocrnet_hr18_512x1024_80k_cityscapes_20200614_230521.log.json) | +| OCRNet | HRNetV2p-W48 | 512x1024 | 80000 | - | - | 80.70 | 81.87 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes/ocrnet_hr48_512x1024_80k_cityscapes_20200601_222752-9076bcdf.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes/ocrnet_hr48_512x1024_80k_cityscapes_20200601_222752.log.json) | +| OCRNet | HRNetV2p-W18-Small | 512x1024 | 160000 | - | - | 78.45 | 79.97 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes/ocrnet_hr18s_512x1024_160k_cityscapes_20200602_191005-f4a7af28.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes/ocrnet_hr18s_512x1024_160k_cityscapes_20200602_191005.log.json) | +| OCRNet | HRNetV2p-W18 | 512x1024 | 160000 | - | - | 79.47 | 80.91 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes/ocrnet_hr18_512x1024_160k_cityscapes_20200602_191001-b9172d0c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes/ocrnet_hr18_512x1024_160k_cityscapes_20200602_191001.log.json) | +| OCRNet | HRNetV2p-W48 | 512x1024 | 160000 | - | - | 81.35 | 82.70 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes/ocrnet_hr48_512x1024_160k_cityscapes_20200602_191037-dfbf1b0c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes/ocrnet_hr48_512x1024_160k_cityscapes_20200602_191037.log.json) | #### ResNet backbone -| Method | Backbone | Crop Size | Batch Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|--------------------|-----------|--------|----------|-----------|----------------|------|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| OCRNet | R-101-D8 | 512x1024 | 8 | 40000 | - | - | 80.09 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes/ocrnet_r101-d8_512x1024_40k_b8_cityscapes-02ac0f13.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes/ocrnet_r101-d8_512x1024_40k_b8_cityscapes_20200717_110721.log.json) | -| OCRNet | R-101-D8 | 512x1024 | 16 | 40000 | 8.8 | 3.02 | 80.30 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes/ocrnet_r101-d8_512x1024_40k_b16_cityscapes-db500f80.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes/ocrnet_r101-d8_512x1024_40k_b16_cityscapes_20200723_193726.log.json) | -| OCRNet | R-101-D8 | 512x1024 | 16 | 80000 | 8.8 | 3.02 | 80.81 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes/ocrnet_r101-d8_512x1024_80k_b16_cityscapes-78688424.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes/ocrnet_r101-d8_512x1024_80k_b16_cityscapes_20200723_192421.log.json) | +| Method | Backbone | Crop Size | Batch Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ---------- | ------- | -------- | -------------- | ----- | ------------: | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| OCRNet | R-101-D8 | 512x1024 | 8 | 40000 | - | - | 80.09 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes/ocrnet_r101-d8_512x1024_40k_b8_cityscapes-02ac0f13.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes/ocrnet_r101-d8_512x1024_40k_b8_cityscapes_20200717_110721.log.json) | +| OCRNet | R-101-D8 | 512x1024 | 16 | 40000 | 8.8 | 3.02 | 80.30 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes/ocrnet_r101-d8_512x1024_40k_b16_cityscapes-db500f80.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes/ocrnet_r101-d8_512x1024_40k_b16_cityscapes_20200723_193726.log.json) | +| OCRNet | R-101-D8 | 512x1024 | 16 | 80000 | 8.8 | 3.02 | 80.81 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes/ocrnet_r101-d8_512x1024_80k_b16_cityscapes-78688424.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes/ocrnet_r101-d8_512x1024_80k_b16_cityscapes_20200723_192421.log.json) | ### ADE20K -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| OCRNet | HRNetV2p-W18-Small | 512x512 | 80000 | 6.7 | 28.98 | 35.06 | 35.80 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_80k_ade20k/ocrnet_hr18s_512x512_80k_ade20k_20200615_055600-e80b62af.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_80k_ade20k/ocrnet_hr18s_512x512_80k_ade20k_20200615_055600.log.json) | -| OCRNet | HRNetV2p-W18 | 512x512 | 80000 | 7.9 | 18.93 | 37.79 | 39.16 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_80k_ade20k/ocrnet_hr18_512x512_80k_ade20k_20200615_053157-d173d83b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_80k_ade20k/ocrnet_hr18_512x512_80k_ade20k_20200615_053157.log.json) | -| OCRNet | HRNetV2p-W48 | 512x512 | 80000 | 11.2 | 16.99 | 43.00 | 44.30 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_80k_ade20k/ocrnet_hr48_512x512_80k_ade20k_20200615_021518-d168c2d1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_80k_ade20k/ocrnet_hr48_512x512_80k_ade20k_20200615_021518.log.json) | -| OCRNet | HRNetV2p-W18-Small | 512x512 | 160000 | - | - | 37.19 | 38.40 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_160k_ade20k/ocrnet_hr18s_512x512_160k_ade20k_20200615_184505-8e913058.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_160k_ade20k/ocrnet_hr18s_512x512_160k_ade20k_20200615_184505.log.json) | -| OCRNet | HRNetV2p-W18 | 512x512 | 160000 | - | - | 39.32 | 40.80 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_160k_ade20k/ocrnet_hr18_512x512_160k_ade20k_20200615_200940-d8fcd9d1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_160k_ade20k/ocrnet_hr18_512x512_160k_ade20k_20200615_200940.log.json) | -| OCRNet | HRNetV2p-W48 | 512x512 | 160000 | - | - | 43.25 | 44.88 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_160k_ade20k/ocrnet_hr48_512x512_160k_ade20k_20200615_184705-a073726d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_160k_ade20k/ocrnet_hr48_512x512_160k_ade20k_20200615_184705.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | ------------------ | --------- | ------: | -------- | -------------- | ----: | ------------: | --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| OCRNet | HRNetV2p-W18-Small | 512x512 | 80000 | 6.7 | 28.98 | 35.06 | 35.80 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_hr18s_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_80k_ade20k/ocrnet_hr18s_512x512_80k_ade20k_20200615_055600-e80b62af.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_80k_ade20k/ocrnet_hr18s_512x512_80k_ade20k_20200615_055600.log.json) | +| OCRNet | HRNetV2p-W18 | 512x512 | 80000 | 7.9 | 18.93 | 37.79 | 39.16 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_hr18_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_80k_ade20k/ocrnet_hr18_512x512_80k_ade20k_20200615_053157-d173d83b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_80k_ade20k/ocrnet_hr18_512x512_80k_ade20k_20200615_053157.log.json) | +| OCRNet | HRNetV2p-W48 | 512x512 | 80000 | 11.2 | 16.99 | 43.00 | 44.30 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_hr48_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_80k_ade20k/ocrnet_hr48_512x512_80k_ade20k_20200615_021518-d168c2d1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_80k_ade20k/ocrnet_hr48_512x512_80k_ade20k_20200615_021518.log.json) | +| OCRNet | HRNetV2p-W18-Small | 512x512 | 160000 | - | - | 37.19 | 38.40 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_hr18s_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_160k_ade20k/ocrnet_hr18s_512x512_160k_ade20k_20200615_184505-8e913058.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_160k_ade20k/ocrnet_hr18s_512x512_160k_ade20k_20200615_184505.log.json) | +| OCRNet | HRNetV2p-W18 | 512x512 | 160000 | - | - | 39.32 | 40.80 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_hr18_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_160k_ade20k/ocrnet_hr18_512x512_160k_ade20k_20200615_200940-d8fcd9d1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_160k_ade20k/ocrnet_hr18_512x512_160k_ade20k_20200615_200940.log.json) | +| OCRNet | HRNetV2p-W48 | 512x512 | 160000 | - | - | 43.25 | 44.88 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_hr48_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_160k_ade20k/ocrnet_hr48_512x512_160k_ade20k_20200615_184705-a073726d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_160k_ade20k/ocrnet_hr48_512x512_160k_ade20k_20200615_184705.log.json) | ### Pascal VOC 2012 + Aug -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| OCRNet | HRNetV2p-W18-Small | 512x512 | 20000 | 3.5 | 31.55 | 71.70 | 73.84 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug/ocrnet_hr18s_512x512_20k_voc12aug_20200617_233913-02b04fcb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug/ocrnet_hr18s_512x512_20k_voc12aug_20200617_233913.log.json) | -| OCRNet | HRNetV2p-W18 | 512x512 | 20000 | 4.7 | 19.91 | 74.75 | 77.11 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_20k_voc12aug/ocrnet_hr18_512x512_20k_voc12aug_20200617_233932-8954cbb7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_20k_voc12aug/ocrnet_hr18_512x512_20k_voc12aug_20200617_233932.log.json) | -| OCRNet | HRNetV2p-W48 | 512x512 | 20000 | 8.1 | 17.83 | 77.72 | 79.87 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_20k_voc12aug/ocrnet_hr48_512x512_20k_voc12aug_20200617_233932-9e82080a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_20k_voc12aug/ocrnet_hr48_512x512_20k_voc12aug_20200617_233932.log.json) | -| OCRNet | HRNetV2p-W18-Small | 512x512 | 40000 | - | - | 72.76 | 74.60 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug/ocrnet_hr18s_512x512_40k_voc12aug_20200614_002025-42b587ac.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug/ocrnet_hr18s_512x512_40k_voc12aug_20200614_002025.log.json) | -| OCRNet | HRNetV2p-W18 | 512x512 | 40000 | - | - | 74.98 | 77.40 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_40k_voc12aug/ocrnet_hr18_512x512_40k_voc12aug_20200614_015958-714302be.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_40k_voc12aug/ocrnet_hr18_512x512_40k_voc12aug_20200614_015958.log.json) | -| OCRNet | HRNetV2p-W48 | 512x512 | 40000 | - | - | 77.14 | 79.71 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_40k_voc12aug/ocrnet_hr48_512x512_40k_voc12aug_20200614_015958-255bc5ce.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_40k_voc12aug/ocrnet_hr48_512x512_40k_voc12aug_20200614_015958.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | ------------------ | --------- | ------: | -------- | -------------- | ----: | ------------: | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| OCRNet | HRNetV2p-W18-Small | 512x512 | 20000 | 3.5 | 31.55 | 71.70 | 73.84 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug/ocrnet_hr18s_512x512_20k_voc12aug_20200617_233913-02b04fcb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug/ocrnet_hr18s_512x512_20k_voc12aug_20200617_233913.log.json) | +| OCRNet | HRNetV2p-W18 | 512x512 | 20000 | 4.7 | 19.91 | 74.75 | 77.11 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_hr18_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_20k_voc12aug/ocrnet_hr18_512x512_20k_voc12aug_20200617_233932-8954cbb7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_20k_voc12aug/ocrnet_hr18_512x512_20k_voc12aug_20200617_233932.log.json) | +| OCRNet | HRNetV2p-W48 | 512x512 | 20000 | 8.1 | 17.83 | 77.72 | 79.87 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_hr48_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_20k_voc12aug/ocrnet_hr48_512x512_20k_voc12aug_20200617_233932-9e82080a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_20k_voc12aug/ocrnet_hr48_512x512_20k_voc12aug_20200617_233932.log.json) | +| OCRNet | HRNetV2p-W18-Small | 512x512 | 40000 | - | - | 72.76 | 74.60 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug/ocrnet_hr18s_512x512_40k_voc12aug_20200614_002025-42b587ac.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug/ocrnet_hr18s_512x512_40k_voc12aug_20200614_002025.log.json) | +| OCRNet | HRNetV2p-W18 | 512x512 | 40000 | - | - | 74.98 | 77.40 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_hr18_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_40k_voc12aug/ocrnet_hr18_512x512_40k_voc12aug_20200614_015958-714302be.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_40k_voc12aug/ocrnet_hr18_512x512_40k_voc12aug_20200614_015958.log.json) | +| OCRNet | HRNetV2p-W48 | 512x512 | 40000 | - | - | 77.14 | 79.71 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_hr48_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_40k_voc12aug/ocrnet_hr48_512x512_40k_voc12aug_20200614_015958-255bc5ce.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_40k_voc12aug/ocrnet_hr48_512x512_40k_voc12aug_20200614_015958.log.json) | diff --git a/configs/point_rend/README.md b/configs/point_rend/README.md index 0dea3e31f8..af429665e8 100644 --- a/configs/point_rend/README.md +++ b/configs/point_rend/README.md @@ -19,14 +19,14 @@ ### Cityscapes -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|-----------|----------|-----------|--------:|---------:|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| PointRend | R-50 | 512x1024 | 80000 | 3.1 | 8.48 | 76.47 | 78.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x1024_80k_cityscapes/pointrend_r50_512x1024_80k_cityscapes_20200711_015821-bb1ff523.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x1024_80k_cityscapes/pointrend_r50_512x1024_80k_cityscapes-20200715_214714.log.json) | -| PointRend | R-101 | 512x1024 | 80000 | 4.2 | 7.00 | 78.30 | 79.97 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x1024_80k_cityscapes/pointrend_r101_512x1024_80k_cityscapes_20200711_170850-d0ca84be.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x1024_80k_cityscapes/pointrend_r101_512x1024_80k_cityscapes-20200715_214824.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| --------- | -------- | --------- | ------: | -------: | -------------- | ----: | ------------- | ------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| PointRend | R-50 | 512x1024 | 80000 | 3.1 | 8.48 | 76.47 | 78.13 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/point_rend/pointrend_r50_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x1024_80k_cityscapes/pointrend_r50_512x1024_80k_cityscapes_20200711_015821-bb1ff523.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x1024_80k_cityscapes/pointrend_r50_512x1024_80k_cityscapes-20200715_214714.log.json) | +| PointRend | R-101 | 512x1024 | 80000 | 4.2 | 7.00 | 78.30 | 79.97 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/point_rend/pointrend_r101_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x1024_80k_cityscapes/pointrend_r101_512x1024_80k_cityscapes_20200711_170850-d0ca84be.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x1024_80k_cityscapes/pointrend_r101_512x1024_80k_cityscapes-20200715_214824.log.json) | ### ADE20K -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|-----------|----------|-----------|--------:|---------:|----------------|------:|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| PointRend | R-50 | 512x512 | 160000 | 5.1 | 17.31 | 37.64 | 39.17 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x512_160k_ade20k/pointrend_r50_512x512_160k_ade20k_20200807_232644-ac3febf2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x512_160k_ade20k/pointrend_r50_512x512_160k_ade20k-20200807_232644.log.json) | -| PointRend | R-101 | 512x512 | 160000 | 6.1 | 15.50 | 40.02 | 41.60 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x512_160k_ade20k/pointrend_r101_512x512_160k_ade20k_20200808_030852-8834902a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x512_160k_ade20k/pointrend_r101_512x512_160k_ade20k-20200808_030852.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| --------- | -------- | --------- | ------: | -------: | -------------- | ----: | ------------- | --------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| PointRend | R-50 | 512x512 | 160000 | 5.1 | 17.31 | 37.64 | 39.17 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/point_rend/pointrend_r50_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x512_160k_ade20k/pointrend_r50_512x512_160k_ade20k_20200807_232644-ac3febf2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x512_160k_ade20k/pointrend_r50_512x512_160k_ade20k-20200807_232644.log.json) | +| PointRend | R-101 | 512x512 | 160000 | 6.1 | 15.50 | 40.02 | 41.60 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/point_rend/pointrend_r101_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x512_160k_ade20k/pointrend_r101_512x512_160k_ade20k_20200808_030852-8834902a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x512_160k_ade20k/pointrend_r101_512x512_160k_ade20k-20200808_030852.log.json) | diff --git a/configs/psanet/README.md b/configs/psanet/README.md index fcb24103b8..16c2cf9596 100644 --- a/configs/psanet/README.md +++ b/configs/psanet/README.md @@ -18,31 +18,31 @@ ### Cityscapes -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| PSANet | R-50-D8 | 512x1024 | 40000 | 7 | 3.17 | 77.63 | 79.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_40k_cityscapes/psanet_r50-d8_512x1024_40k_cityscapes_20200606_103117-99fac37c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_40k_cityscapes/psanet_r50-d8_512x1024_40k_cityscapes_20200606_103117.log.json) | -| PSANet | R-101-D8 | 512x1024 | 40000 | 10.5 | 2.20 | 79.14 | 80.19 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_40k_cityscapes/psanet_r101-d8_512x1024_40k_cityscapes_20200606_001418-27b9cfa7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_40k_cityscapes/psanet_r101-d8_512x1024_40k_cityscapes_20200606_001418.log.json) | -| PSANet | R-50-D8 | 769x769 | 40000 | 7.9 | 1.40 | 77.99 | 79.64 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_40k_cityscapes/psanet_r50-d8_769x769_40k_cityscapes_20200530_033717-d5365506.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_40k_cityscapes/psanet_r50-d8_769x769_40k_cityscapes_20200530_033717.log.json) | -| PSANet | R-101-D8 | 769x769 | 40000 | 11.9 | 0.98 | 78.43 | 80.26 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_40k_cityscapes/psanet_r101-d8_769x769_40k_cityscapes_20200530_035107-997da1e6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_40k_cityscapes/psanet_r101-d8_769x769_40k_cityscapes_20200530_035107.log.json) | -| PSANet | R-50-D8 | 512x1024 | 80000 | - | - | 77.24 | 78.69 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_80k_cityscapes/psanet_r50-d8_512x1024_80k_cityscapes_20200606_161842-ab60a24f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_80k_cityscapes/psanet_r50-d8_512x1024_80k_cityscapes_20200606_161842.log.json) | -| PSANet | R-101-D8 | 512x1024 | 80000 | - | - | 79.31 | 80.53 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_80k_cityscapes/psanet_r101-d8_512x1024_80k_cityscapes_20200606_161823-0f73a169.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_80k_cityscapes/psanet_r101-d8_512x1024_80k_cityscapes_20200606_161823.log.json) | -| PSANet | R-50-D8 | 769x769 | 80000 | - | - | 79.31 | 80.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_80k_cityscapes/psanet_r50-d8_769x769_80k_cityscapes_20200606_225134-fe42f49e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_80k_cityscapes/psanet_r50-d8_769x769_80k_cityscapes_20200606_225134.log.json) | -| PSANet | R-101-D8 | 769x769 | 80000 | - | - | 79.69 | 80.89 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_80k_cityscapes/psanet_r101-d8_769x769_80k_cityscapes_20200606_214550-7665827b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_80k_cityscapes/psanet_r101-d8_769x769_80k_cityscapes_20200606_214550.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| PSANet | R-50-D8 | 512x1024 | 40000 | 7 | 3.17 | 77.63 | 79.04 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/psanet/psanet_r50-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_40k_cityscapes/psanet_r50-d8_512x1024_40k_cityscapes_20200606_103117-99fac37c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_40k_cityscapes/psanet_r50-d8_512x1024_40k_cityscapes_20200606_103117.log.json) | +| PSANet | R-101-D8 | 512x1024 | 40000 | 10.5 | 2.20 | 79.14 | 80.19 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/psanet/psanet_r101-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_40k_cityscapes/psanet_r101-d8_512x1024_40k_cityscapes_20200606_001418-27b9cfa7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_40k_cityscapes/psanet_r101-d8_512x1024_40k_cityscapes_20200606_001418.log.json) | +| PSANet | R-50-D8 | 769x769 | 40000 | 7.9 | 1.40 | 77.99 | 79.64 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/psanet/psanet_r50-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_40k_cityscapes/psanet_r50-d8_769x769_40k_cityscapes_20200530_033717-d5365506.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_40k_cityscapes/psanet_r50-d8_769x769_40k_cityscapes_20200530_033717.log.json) | +| PSANet | R-101-D8 | 769x769 | 40000 | 11.9 | 0.98 | 78.43 | 80.26 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/psanet/psanet_r101-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_40k_cityscapes/psanet_r101-d8_769x769_40k_cityscapes_20200530_035107-997da1e6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_40k_cityscapes/psanet_r101-d8_769x769_40k_cityscapes_20200530_035107.log.json) | +| PSANet | R-50-D8 | 512x1024 | 80000 | - | - | 77.24 | 78.69 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/psanet/psanet_r50-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_80k_cityscapes/psanet_r50-d8_512x1024_80k_cityscapes_20200606_161842-ab60a24f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_80k_cityscapes/psanet_r50-d8_512x1024_80k_cityscapes_20200606_161842.log.json) | +| PSANet | R-101-D8 | 512x1024 | 80000 | - | - | 79.31 | 80.53 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/psanet/psanet_r101-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_80k_cityscapes/psanet_r101-d8_512x1024_80k_cityscapes_20200606_161823-0f73a169.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_80k_cityscapes/psanet_r101-d8_512x1024_80k_cityscapes_20200606_161823.log.json) | +| PSANet | R-50-D8 | 769x769 | 80000 | - | - | 79.31 | 80.91 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/psanet/psanet_r50-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_80k_cityscapes/psanet_r50-d8_769x769_80k_cityscapes_20200606_225134-fe42f49e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_80k_cityscapes/psanet_r50-d8_769x769_80k_cityscapes_20200606_225134.log.json) | +| PSANet | R-101-D8 | 769x769 | 80000 | - | - | 79.69 | 80.89 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/psanet/psanet_r101-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_80k_cityscapes/psanet_r101-d8_769x769_80k_cityscapes_20200606_214550-7665827b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_80k_cityscapes/psanet_r101-d8_769x769_80k_cityscapes_20200606_214550.log.json) | ### ADE20K -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| PSANet | R-50-D8 | 512x512 | 80000 | 9 | 18.91 | 41.14 | 41.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_80k_ade20k/psanet_r50-d8_512x512_80k_ade20k_20200614_144141-835e4b97.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_80k_ade20k/psanet_r50-d8_512x512_80k_ade20k_20200614_144141.log.json) | -| PSANet | R-101-D8 | 512x512 | 80000 | 12.5 | 13.13 | 43.80 | 44.75 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_80k_ade20k/psanet_r101-d8_512x512_80k_ade20k_20200614_185117-1fab60d4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_80k_ade20k/psanet_r101-d8_512x512_80k_ade20k_20200614_185117.log.json) | -| PSANet | R-50-D8 | 512x512 | 160000 | - | - | 41.67 | 42.95 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_160k_ade20k/psanet_r50-d8_512x512_160k_ade20k_20200615_161258-148077dd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_160k_ade20k/psanet_r50-d8_512x512_160k_ade20k_20200615_161258.log.json) | -| PSANet | R-101-D8 | 512x512 | 160000 | - | - | 43.74 | 45.38 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_160k_ade20k/psanet_r101-d8_512x512_160k_ade20k_20200615_161537-dbfa564c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_160k_ade20k/psanet_r101-d8_512x512_160k_ade20k_20200615_161537.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ----------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| PSANet | R-50-D8 | 512x512 | 80000 | 9 | 18.91 | 41.14 | 41.91 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/psanet/psanet_r50-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_80k_ade20k/psanet_r50-d8_512x512_80k_ade20k_20200614_144141-835e4b97.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_80k_ade20k/psanet_r50-d8_512x512_80k_ade20k_20200614_144141.log.json) | +| PSANet | R-101-D8 | 512x512 | 80000 | 12.5 | 13.13 | 43.80 | 44.75 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/psanet/psanet_r101-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_80k_ade20k/psanet_r101-d8_512x512_80k_ade20k_20200614_185117-1fab60d4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_80k_ade20k/psanet_r101-d8_512x512_80k_ade20k_20200614_185117.log.json) | +| PSANet | R-50-D8 | 512x512 | 160000 | - | - | 41.67 | 42.95 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/psanet/psanet_r50-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_160k_ade20k/psanet_r50-d8_512x512_160k_ade20k_20200615_161258-148077dd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_160k_ade20k/psanet_r50-d8_512x512_160k_ade20k_20200615_161258.log.json) | +| PSANet | R-101-D8 | 512x512 | 160000 | - | - | 43.74 | 45.38 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/psanet/psanet_r101-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_160k_ade20k/psanet_r101-d8_512x512_160k_ade20k_20200615_161537-dbfa564c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_160k_ade20k/psanet_r101-d8_512x512_160k_ade20k_20200615_161537.log.json) | ### Pascal VOC 2012 + Aug -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| PSANet | R-50-D8 | 512x512 | 20000 | 6.9 | 18.24 | 76.39 | 77.34 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_20k_voc12aug/psanet_r50-d8_512x512_20k_voc12aug_20200617_102413-2f1bbaa1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_20k_voc12aug/psanet_r50-d8_512x512_20k_voc12aug_20200617_102413.log.json) | -| PSANet | R-101-D8 | 512x512 | 20000 | 10.4 | 12.63 | 77.91 | 79.30 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_20k_voc12aug/psanet_r101-d8_512x512_20k_voc12aug_20200617_110624-946fef11.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_20k_voc12aug/psanet_r101-d8_512x512_20k_voc12aug_20200617_110624.log.json) | -| PSANet | R-50-D8 | 512x512 | 40000 | - | - | 76.30 | 77.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_40k_voc12aug/psanet_r50-d8_512x512_40k_voc12aug_20200613_161946-f596afb5.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_40k_voc12aug/psanet_r50-d8_512x512_40k_voc12aug_20200613_161946.log.json) | -| PSANet | R-101-D8 | 512x512 | 40000 | - | - | 77.73 | 79.05 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_40k_voc12aug/psanet_r101-d8_512x512_40k_voc12aug_20200613_161946-1f560f9e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_40k_voc12aug/psanet_r101-d8_512x512_40k_voc12aug_20200613_161946.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| PSANet | R-50-D8 | 512x512 | 20000 | 6.9 | 18.24 | 76.39 | 77.34 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/psanet/psanet_r50-d8_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_20k_voc12aug/psanet_r50-d8_512x512_20k_voc12aug_20200617_102413-2f1bbaa1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_20k_voc12aug/psanet_r50-d8_512x512_20k_voc12aug_20200617_102413.log.json) | +| PSANet | R-101-D8 | 512x512 | 20000 | 10.4 | 12.63 | 77.91 | 79.30 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/psanet/psanet_r101-d8_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_20k_voc12aug/psanet_r101-d8_512x512_20k_voc12aug_20200617_110624-946fef11.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_20k_voc12aug/psanet_r101-d8_512x512_20k_voc12aug_20200617_110624.log.json) | +| PSANet | R-50-D8 | 512x512 | 40000 | - | - | 76.30 | 77.35 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/psanet/psanet_r50-d8_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_40k_voc12aug/psanet_r50-d8_512x512_40k_voc12aug_20200613_161946-f596afb5.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_40k_voc12aug/psanet_r50-d8_512x512_40k_voc12aug_20200613_161946.log.json) | +| PSANet | R-101-D8 | 512x512 | 40000 | - | - | 77.73 | 79.05 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/psanet/psanet_r101-d8_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_40k_voc12aug/psanet_r101-d8_512x512_40k_voc12aug_20200613_161946-1f560f9e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_40k_voc12aug/psanet_r101-d8_512x512_40k_voc12aug_20200613_161946.log.json) | diff --git a/configs/pspnet/README.md b/configs/pspnet/README.md index 931cad9006..2c8b19a26d 100644 --- a/configs/pspnet/README.md +++ b/configs/pspnet/README.md @@ -17,46 +17,46 @@ ### Cityscapes -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| PSPNet | R-50-D8 | 512x1024 | 40000 | 6.1 | 4.07 | 77.85 | 79.18 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338.log.json) | -| PSPNet | R-101-D8 | 512x1024 | 40000 | 9.6 | 2.68 | 78.34 | 79.74 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes/pspnet_r101-d8_512x1024_40k_cityscapes_20200604_232751-467e7cf4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes/pspnet_r101-d8_512x1024_40k_cityscapes_20200604_232751.log.json) | -| PSPNet | R-50-D8 | 769x769 | 40000 | 6.9 | 1.76 | 78.26 | 79.88 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_40k_cityscapes/pspnet_r50-d8_769x769_40k_cityscapes_20200606_112725-86638686.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_40k_cityscapes/pspnet_r50-d8_769x769_40k_cityscapes_20200606_112725.log.json) | -| PSPNet | R-101-D8 | 769x769 | 40000 | 10.9 | 1.15 | 79.08 | 80.28 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_40k_cityscapes/pspnet_r101-d8_769x769_40k_cityscapes_20200606_112753-61c6f5be.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_40k_cityscapes/pspnet_r101-d8_769x769_40k_cityscapes_20200606_112753.log.json) | -| PSPNet | R-18-D8 | 512x1024 | 80000 | 1.7 | 15.71 | 74.87 | 76.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes/pspnet_r18-d8_512x1024_80k_cityscapes_20201225_021458-09ffa746.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes/pspnet_r18-d8_512x1024_80k_cityscapes-20201225_021458.log.json) | -| PSPNet | R-50-D8 | 512x1024 | 80000 | - | - | 78.55 | 79.79 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes/pspnet_r50-d8_512x1024_80k_cityscapes_20200606_112131-2376f12b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes/pspnet_r50-d8_512x1024_80k_cityscapes_20200606_112131.log.json) | -| PSPNet | R-101-D8 | 512x1024 | 80000 | - | - | 79.76 | 81.01 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes/pspnet_r101-d8_512x1024_80k_cityscapes_20200606_112211-e1e1100f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes/pspnet_r101-d8_512x1024_80k_cityscapes_20200606_112211.log.json) | -| PSPNet | R-18-D8 | 769x769 | 80000 | 1.9 | 6.20 | 75.90 | 77.86 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_769x769_80k_cityscapes/pspnet_r18-d8_769x769_80k_cityscapes_20201225_021458-3deefc62.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_769x769_80k_cityscapes/pspnet_r18-d8_769x769_80k_cityscapes-20201225_021458.log.json) | -| PSPNet | R-50-D8 | 769x769 | 80000 | - | - | 79.59 | 80.69 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_80k_cityscapes/pspnet_r50-d8_769x769_80k_cityscapes_20200606_210121-5ccf03dd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_80k_cityscapes/pspnet_r50-d8_769x769_80k_cityscapes_20200606_210121.log.json) | -| PSPNet | R-101-D8 | 769x769 | 80000 | - | - | 79.77 | 81.06 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_80k_cityscapes/pspnet_r101-d8_769x769_80k_cityscapes_20200606_225055-dba412fa.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_80k_cityscapes/pspnet_r101-d8_769x769_80k_cityscapes_20200606_225055.log.json) | -| PSPNet | R-18b-D8 | 512x1024 | 80000 | 1.5 | 16.28 | 74.23 | 75.79 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes/pspnet_r18b-d8_512x1024_80k_cityscapes_20201226_063116-26928a60.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes/pspnet_r18b-d8_512x1024_80k_cityscapes-20201226_063116.log.json) | -| PSPNet | R-50b-D8 | 512x1024 | 80000 | 6.0 | 4.30 | 78.22 | 79.46 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes/pspnet_r50b-d8_512x1024_80k_cityscapes_20201225_094315-6344287a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes/pspnet_r50b-d8_512x1024_80k_cityscapes-20201225_094315.log.json) | -| PSPNet | R-101b-D8| 512x1024 | 80000 | 9.5 | 2.76 | 79.69 | 80.79 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes_20201226_170012-3a4d38ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes-20201226_170012.log.json) | -| PSPNet | R-18b-D8 | 769x769 | 80000 | 1.7 | 6.41 | 74.92 | 76.90 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes/pspnet_r18b-d8_769x769_80k_cityscapes_20201226_080942-bf98d186.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes/pspnet_r18b-d8_769x769_80k_cityscapes-20201226_080942.log.json) | -| PSPNet | R-50b-D8 | 769x769 | 80000 | 6.8 | 1.88 | 78.50 | 79.96 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes/pspnet_r50b-d8_769x769_80k_cityscapes_20201225_094316-4c643cf6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes/pspnet_r50b-d8_769x769_80k_cityscapes-20201225_094316.log.json) | -| PSPNet | R-101b-D8| 769x769 | 80000 | 10.8 | 1.17 | 78.87 | 80.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes/pspnet_r101b-d8_769x769_80k_cityscapes_20201226_171823-f0e7c293.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes/pspnet_r101b-d8_769x769_80k_cityscapes-20201226_171823.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | --------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| PSPNet | R-50-D8 | 512x1024 | 40000 | 6.1 | 4.07 | 77.85 | 79.18 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338.log.json) | +| PSPNet | R-101-D8 | 512x1024 | 40000 | 9.6 | 2.68 | 78.34 | 79.74 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes/pspnet_r101-d8_512x1024_40k_cityscapes_20200604_232751-467e7cf4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes/pspnet_r101-d8_512x1024_40k_cityscapes_20200604_232751.log.json) | +| PSPNet | R-50-D8 | 769x769 | 40000 | 6.9 | 1.76 | 78.26 | 79.88 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r50-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_40k_cityscapes/pspnet_r50-d8_769x769_40k_cityscapes_20200606_112725-86638686.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_40k_cityscapes/pspnet_r50-d8_769x769_40k_cityscapes_20200606_112725.log.json) | +| PSPNet | R-101-D8 | 769x769 | 40000 | 10.9 | 1.15 | 79.08 | 80.28 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_40k_cityscapes/pspnet_r101-d8_769x769_40k_cityscapes_20200606_112753-61c6f5be.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_40k_cityscapes/pspnet_r101-d8_769x769_40k_cityscapes_20200606_112753.log.json) | +| PSPNet | R-18-D8 | 512x1024 | 80000 | 1.7 | 15.71 | 74.87 | 76.04 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes/pspnet_r18-d8_512x1024_80k_cityscapes_20201225_021458-09ffa746.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes/pspnet_r18-d8_512x1024_80k_cityscapes-20201225_021458.log.json) | +| PSPNet | R-50-D8 | 512x1024 | 80000 | - | - | 78.55 | 79.79 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes/pspnet_r50-d8_512x1024_80k_cityscapes_20200606_112131-2376f12b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes/pspnet_r50-d8_512x1024_80k_cityscapes_20200606_112131.log.json) | +| PSPNet | R-101-D8 | 512x1024 | 80000 | - | - | 79.76 | 81.01 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes/pspnet_r101-d8_512x1024_80k_cityscapes_20200606_112211-e1e1100f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes/pspnet_r101-d8_512x1024_80k_cityscapes_20200606_112211.log.json) | +| PSPNet | R-18-D8 | 769x769 | 80000 | 1.9 | 6.20 | 75.90 | 77.86 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r18-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_769x769_80k_cityscapes/pspnet_r18-d8_769x769_80k_cityscapes_20201225_021458-3deefc62.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_769x769_80k_cityscapes/pspnet_r18-d8_769x769_80k_cityscapes-20201225_021458.log.json) | +| PSPNet | R-50-D8 | 769x769 | 80000 | - | - | 79.59 | 80.69 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r50-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_80k_cityscapes/pspnet_r50-d8_769x769_80k_cityscapes_20200606_210121-5ccf03dd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_80k_cityscapes/pspnet_r50-d8_769x769_80k_cityscapes_20200606_210121.log.json) | +| PSPNet | R-101-D8 | 769x769 | 80000 | - | - | 79.77 | 81.06 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_80k_cityscapes/pspnet_r101-d8_769x769_80k_cityscapes_20200606_225055-dba412fa.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_80k_cityscapes/pspnet_r101-d8_769x769_80k_cityscapes_20200606_225055.log.json) | +| PSPNet | R-18b-D8 | 512x1024 | 80000 | 1.5 | 16.28 | 74.23 | 75.79 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes/pspnet_r18b-d8_512x1024_80k_cityscapes_20201226_063116-26928a60.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes/pspnet_r18b-d8_512x1024_80k_cityscapes-20201226_063116.log.json) | +| PSPNet | R-50b-D8 | 512x1024 | 80000 | 6.0 | 4.30 | 78.22 | 79.46 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes/pspnet_r50b-d8_512x1024_80k_cityscapes_20201225_094315-6344287a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes/pspnet_r50b-d8_512x1024_80k_cityscapes-20201225_094315.log.json) | +| PSPNet | R-101b-D8 | 512x1024 | 80000 | 9.5 | 2.76 | 79.69 | 80.79 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes_20201226_170012-3a4d38ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes-20201226_170012.log.json) | +| PSPNet | R-18b-D8 | 769x769 | 80000 | 1.7 | 6.41 | 74.92 | 76.90 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes/pspnet_r18b-d8_769x769_80k_cityscapes_20201226_080942-bf98d186.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes/pspnet_r18b-d8_769x769_80k_cityscapes-20201226_080942.log.json) | +| PSPNet | R-50b-D8 | 769x769 | 80000 | 6.8 | 1.88 | 78.50 | 79.96 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes/pspnet_r50b-d8_769x769_80k_cityscapes_20201225_094316-4c643cf6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes/pspnet_r50b-d8_769x769_80k_cityscapes-20201225_094316.log.json) | +| PSPNet | R-101b-D8 | 769x769 | 80000 | 10.8 | 1.17 | 78.87 | 80.04 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes/pspnet_r101b-d8_769x769_80k_cityscapes_20201226_171823-f0e7c293.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes/pspnet_r101b-d8_769x769_80k_cityscapes-20201226_171823.log.json) | ### ADE20K -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| PSPNet | R-50-D8 | 512x512 | 80000 | 8.5 | 23.53 | 41.13 | 41.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_80k_ade20k/pspnet_r50-d8_512x512_80k_ade20k_20200615_014128-15a8b914.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_80k_ade20k/pspnet_r50-d8_512x512_80k_ade20k_20200615_014128.log.json) | -| PSPNet | R-101-D8 | 512x512 | 80000 | 12 | 15.30 | 43.57 | 44.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_80k_ade20k/pspnet_r101-d8_512x512_80k_ade20k_20200614_031423-b6e782f0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_80k_ade20k/pspnet_r101-d8_512x512_80k_ade20k_20200614_031423.log.json) | -| PSPNet | R-50-D8 | 512x512 | 160000 | - | - | 42.48 | 43.44 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_160k_ade20k/pspnet_r50-d8_512x512_160k_ade20k_20200615_184358-1890b0bd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_160k_ade20k/pspnet_r50-d8_512x512_160k_ade20k_20200615_184358.log.json) | -| PSPNet | R-101-D8 | 512x512 | 160000 | - | - | 44.39 | 45.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_160k_ade20k/pspnet_r101-d8_512x512_160k_ade20k_20200615_100650-967c316f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_160k_ade20k/pspnet_r101-d8_512x512_160k_ade20k_20200615_100650.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ----------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| PSPNet | R-50-D8 | 512x512 | 80000 | 8.5 | 23.53 | 41.13 | 41.94 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r50-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_80k_ade20k/pspnet_r50-d8_512x512_80k_ade20k_20200615_014128-15a8b914.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_80k_ade20k/pspnet_r50-d8_512x512_80k_ade20k_20200615_014128.log.json) | +| PSPNet | R-101-D8 | 512x512 | 80000 | 12 | 15.30 | 43.57 | 44.35 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_80k_ade20k/pspnet_r101-d8_512x512_80k_ade20k_20200614_031423-b6e782f0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_80k_ade20k/pspnet_r101-d8_512x512_80k_ade20k_20200614_031423.log.json) | +| PSPNet | R-50-D8 | 512x512 | 160000 | - | - | 42.48 | 43.44 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_160k_ade20k/pspnet_r50-d8_512x512_160k_ade20k_20200615_184358-1890b0bd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_160k_ade20k/pspnet_r50-d8_512x512_160k_ade20k_20200615_184358.log.json) | +| PSPNet | R-101-D8 | 512x512 | 160000 | - | - | 44.39 | 45.35 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_160k_ade20k/pspnet_r101-d8_512x512_160k_ade20k_20200615_100650-967c316f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_160k_ade20k/pspnet_r101-d8_512x512_160k_ade20k_20200615_100650.log.json) | ### Pascal VOC 2012 + Aug -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| PSPNet | R-50-D8 | 512x512 | 20000 | 6.1 | 23.59 | 76.78 | 77.61 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_20k_voc12aug/pspnet_r50-d8_512x512_20k_voc12aug_20200617_101958-ed5dfbd9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_20k_voc12aug/pspnet_r50-d8_512x512_20k_voc12aug_20200617_101958.log.json) | -| PSPNet | R-101-D8 | 512x512 | 20000 | 9.6 | 15.02 | 78.47 | 79.25 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_20k_voc12aug/pspnet_r101-d8_512x512_20k_voc12aug_20200617_102003-4aef3c9a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_20k_voc12aug/pspnet_r101-d8_512x512_20k_voc12aug_20200617_102003.log.json) | -| PSPNet | R-50-D8 | 512x512 | 40000 | - | - | 77.29 | 78.48 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_40k_voc12aug/pspnet_r50-d8_512x512_40k_voc12aug_20200613_161222-ae9c1b8c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_40k_voc12aug/pspnet_r50-d8_512x512_40k_voc12aug_20200613_161222.log.json) | -| PSPNet | R-101-D8 | 512x512 | 40000 | - | - | 78.52 | 79.57 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_40k_voc12aug/pspnet_r101-d8_512x512_40k_voc12aug_20200613_161222-bc933b18.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_40k_voc12aug/pspnet_r101-d8_512x512_40k_voc12aug_20200613_161222.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| PSPNet | R-50-D8 | 512x512 | 20000 | 6.1 | 23.59 | 76.78 | 77.61 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r50-d8_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_20k_voc12aug/pspnet_r50-d8_512x512_20k_voc12aug_20200617_101958-ed5dfbd9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_20k_voc12aug/pspnet_r50-d8_512x512_20k_voc12aug_20200617_101958.log.json) | +| PSPNet | R-101-D8 | 512x512 | 20000 | 9.6 | 15.02 | 78.47 | 79.25 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_20k_voc12aug/pspnet_r101-d8_512x512_20k_voc12aug_20200617_102003-4aef3c9a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_20k_voc12aug/pspnet_r101-d8_512x512_20k_voc12aug_20200617_102003.log.json) | +| PSPNet | R-50-D8 | 512x512 | 40000 | - | - | 77.29 | 78.48 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r50-d8_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_40k_voc12aug/pspnet_r50-d8_512x512_40k_voc12aug_20200613_161222-ae9c1b8c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_40k_voc12aug/pspnet_r50-d8_512x512_40k_voc12aug_20200613_161222.log.json) | +| PSPNet | R-101-D8 | 512x512 | 40000 | - | - | 78.52 | 79.57 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_40k_voc12aug/pspnet_r101-d8_512x512_40k_voc12aug_20200613_161222-bc933b18.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_40k_voc12aug/pspnet_r101-d8_512x512_40k_voc12aug_20200613_161222.log.json) | ### Pascal Context -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| PSPNet | R-101-D8 | 480x480 | 40000 | 8.8 | 9.68 | 46.60 | 47.78 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context/pspnet_r101-d8_480x480_40k_pascal_context_20200911_211210-bf0f5d7c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context/pspnet_r101-d8_480x480_40k_pascal_context-20200911_211210.log.json) | -| PSPNet | R-101-D8 | 480x480 | 80000 | - | - | 46.03 | 47.15 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context/pspnet_r101-d8_480x480_80k_pascal_context_20200911_190530-c86d6233.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context/pspnet_r101-d8_480x480_80k_pascal_context-20200911_190530.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| PSPNet | R-101-D8 | 480x480 | 40000 | 8.8 | 9.68 | 46.60 | 47.78 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context/pspnet_r101-d8_480x480_40k_pascal_context_20200911_211210-bf0f5d7c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context/pspnet_r101-d8_480x480_40k_pascal_context-20200911_211210.log.json) | +| PSPNet | R-101-D8 | 480x480 | 80000 | - | - | 46.03 | 47.15 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context/pspnet_r101-d8_480x480_80k_pascal_context_20200911_190530-c86d6233.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context/pspnet_r101-d8_480x480_80k_pascal_context-20200911_190530.log.json) | diff --git a/configs/resnest/README.md b/configs/resnest/README.md index 31bac01ec9..c0980d9373 100644 --- a/configs/resnest/README.md +++ b/configs/resnest/README.md @@ -17,18 +17,18 @@ year={2020} ### Cityscapes -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|------------|----------|-----------|--------:|---------:|----------------|------:|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FCN | S-101-D8 | 512x1024 | 80000 | 11.4 | 2.39 | 77.56 | 78.98 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x1024_80k_cityscapes/fcn_s101-d8_512x1024_80k_cityscapes_20200807_140631-f8d155b3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x1024_80k_cityscapes/fcn_s101-d8_512x1024_80k_cityscapes-20200807_140631.log.json) | -| PSPNet | S-101-D8 | 512x1024 | 80000 | 11.8 | 2.52 | 78.57 | 79.19 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x1024_80k_cityscapes/pspnet_s101-d8_512x1024_80k_cityscapes_20200807_140631-c75f3b99.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x1024_80k_cityscapes/pspnet_s101-d8_512x1024_80k_cityscapes-20200807_140631.log.json) | -| DeepLabV3 | S-101-D8 | 512x1024 | 80000 | 11.9 | 1.88 | 79.67 | 80.51 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes/deeplabv3_s101-d8_512x1024_80k_cityscapes_20200807_144429-b73c4270.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes/deeplabv3_s101-d8_512x1024_80k_cityscapes-20200807_144429.log.json) | -| DeepLabV3+ | S-101-D8 | 512x1024 | 80000 | 13.2 | 2.36 | 79.62 | 80.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes/deeplabv3plus_s101-d8_512x1024_80k_cityscapes_20200807_144429-1239eb43.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes/deeplabv3plus_s101-d8_512x1024_80k_cityscapes-20200807_144429.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ---------- | -------- | --------- | ------: | -------: | -------------- | ----: | ------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| FCN | S-101-D8 | 512x1024 | 80000 | 11.4 | 2.39 | 77.56 | 78.98 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/resnest/fcn_s101-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x1024_80k_cityscapes/fcn_s101-d8_512x1024_80k_cityscapes_20200807_140631-f8d155b3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x1024_80k_cityscapes/fcn_s101-d8_512x1024_80k_cityscapes-20200807_140631.log.json) | +| PSPNet | S-101-D8 | 512x1024 | 80000 | 11.8 | 2.52 | 78.57 | 79.19 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/resnest/pspnet_s101-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x1024_80k_cityscapes/pspnet_s101-d8_512x1024_80k_cityscapes_20200807_140631-c75f3b99.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x1024_80k_cityscapes/pspnet_s101-d8_512x1024_80k_cityscapes-20200807_140631.log.json) | +| DeepLabV3 | S-101-D8 | 512x1024 | 80000 | 11.9 | 1.88 | 79.67 | 80.51 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes/deeplabv3_s101-d8_512x1024_80k_cityscapes_20200807_144429-b73c4270.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes/deeplabv3_s101-d8_512x1024_80k_cityscapes-20200807_144429.log.json) | +| DeepLabV3+ | S-101-D8 | 512x1024 | 80000 | 13.2 | 2.36 | 79.62 | 80.27 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes/deeplabv3plus_s101-d8_512x1024_80k_cityscapes_20200807_144429-1239eb43.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes/deeplabv3plus_s101-d8_512x1024_80k_cityscapes-20200807_144429.log.json) | ### ADE20k -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|------------|----------|-----------|--------:|---------:|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FCN | S-101-D8 | 512x512 | 160000 | 14.2 | 12.86 | 45.62 | 46.16 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x512_160k_ade20k/fcn_s101-d8_512x512_160k_ade20k_20200807_145416-d3160329.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x512_160k_ade20k/fcn_s101-d8_512x512_160k_ade20k-20200807_145416.log.json) | -| PSPNet | S-101-D8 | 512x512 | 160000 | 14.2 | 13.02 | 45.44 | 46.28 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x512_160k_ade20k/pspnet_s101-d8_512x512_160k_ade20k_20200807_145416-a6daa92a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x512_160k_ade20k/pspnet_s101-d8_512x512_160k_ade20k-20200807_145416.log.json) | -| DeepLabV3 | S-101-D8 | 512x512 | 160000 | 14.6 | 9.28 | 45.71 | 46.59 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x512_160k_ade20k/deeplabv3_s101-d8_512x512_160k_ade20k_20200807_144503-17ecabe5.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x512_160k_ade20k/deeplabv3_s101-d8_512x512_160k_ade20k-20200807_144503.log.json) | -| DeepLabV3+ | S-101-D8 | 512x512 | 160000 | 16.2 | 11.96 | 46.47 | 47.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k/deeplabv3plus_s101-d8_512x512_160k_ade20k_20200807_144503-27b26226.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k/deeplabv3plus_s101-d8_512x512_160k_ade20k-20200807_144503.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ---------- | -------- | --------- | ------: | -------: | -------------- | ----: | ------------- | ------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| FCN | S-101-D8 | 512x512 | 160000 | 14.2 | 12.86 | 45.62 | 46.16 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/resnest/fcn_s101-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x512_160k_ade20k/fcn_s101-d8_512x512_160k_ade20k_20200807_145416-d3160329.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x512_160k_ade20k/fcn_s101-d8_512x512_160k_ade20k-20200807_145416.log.json) | +| PSPNet | S-101-D8 | 512x512 | 160000 | 14.2 | 13.02 | 45.44 | 46.28 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/resnest/pspnet_s101-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x512_160k_ade20k/pspnet_s101-d8_512x512_160k_ade20k_20200807_145416-a6daa92a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x512_160k_ade20k/pspnet_s101-d8_512x512_160k_ade20k-20200807_145416.log.json) | +| DeepLabV3 | S-101-D8 | 512x512 | 160000 | 14.6 | 9.28 | 45.71 | 46.59 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/resnest/deeplabv3_s101-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x512_160k_ade20k/deeplabv3_s101-d8_512x512_160k_ade20k_20200807_144503-17ecabe5.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x512_160k_ade20k/deeplabv3_s101-d8_512x512_160k_ade20k-20200807_144503.log.json) | +| DeepLabV3+ | S-101-D8 | 512x512 | 160000 | 16.2 | 11.96 | 46.47 | 47.27 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k/deeplabv3plus_s101-d8_512x512_160k_ade20k_20200807_144503-27b26226.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k/deeplabv3plus_s101-d8_512x512_160k_ade20k-20200807_144503.log.json) | diff --git a/configs/sem_fpn/README.md b/configs/sem_fpn/README.md index c73ade6248..d5ea5bfc5f 100644 --- a/configs/sem_fpn/README.md +++ b/configs/sem_fpn/README.md @@ -22,14 +22,14 @@ ### Cityscapes -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|---------:|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FPN | R-50 | 512x1024 | 80000 | 2.8 | 13.54 | 74.52 | 76.08 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x1024_80k_cityscapes/fpn_r50_512x1024_80k_cityscapes_20200717_021437-94018a0d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x1024_80k_cityscapes/fpn_r50_512x1024_80k_cityscapes-20200717_021437.log.json) | -| FPN | R-101 | 512x1024 | 80000 | 3.9 | 10.29 | 75.80 | 77.40 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x1024_80k_cityscapes/fpn_r101_512x1024_80k_cityscapes_20200717_012416-c5800d4c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x1024_80k_cityscapes/fpn_r101_512x1024_80k_cityscapes-20200717_012416.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | config | download | +| ------ | -------- | --------- | ------: | -------: | -------------- | ----: | ------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| FPN | R-50 | 512x1024 | 80000 | 2.8 | 13.54 | 74.52 | 76.08 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/sem_fpn/fpn_r50_512x1024_80k_cityscapes.py) | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/sem_fpn/fpn_r50_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x1024_80k_cityscapes/fpn_r50_512x1024_80k_cityscapes_20200717_021437-94018a0d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x1024_80k_cityscapes/fpn_r50_512x1024_80k_cityscapes-20200717_021437.log.json) | +| FPN | R-101 | 512x1024 | 80000 | 3.9 | 10.29 | 75.80 | 77.40 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/sem_fpn/fpn_r101_512x1024_80k_cityscapes.py) | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/sem_fpn/fpn_r101_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x1024_80k_cityscapes/fpn_r101_512x1024_80k_cityscapes_20200717_012416-c5800d4c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x1024_80k_cityscapes/fpn_r101_512x1024_80k_cityscapes-20200717_012416.log.json) | ### ADE20K -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|--------|----------|-----------|--------:|---------:|----------------|------:|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| FPN | R-50 | 512x512 | 160000 | 4.9 | 55.77 | 37.49 | 39.09 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x512_160k_ade20k/fpn_r50_512x512_160k_ade20k_20200718_131734-5b5a6ab9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x512_160k_ade20k/fpn_r50_512x512_160k_ade20k-20200718_131734.log.json) | -| FPN | R-101 | 512x512 | 160000 | 5.9 | 40.58 | 39.35 | 40.72 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x512_160k_ade20k/fpn_r101_512x512_160k_ade20k_20200718_131734-306b5004.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x512_160k_ade20k/fpn_r101_512x512_160k_ade20k-20200718_131734.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | config | download | +| ------ | -------- | --------- | ------: | -------: | -------------- | ----: | ------------- | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| FPN | R-50 | 512x512 | 160000 | 4.9 | 55.77 | 37.49 | 39.09 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/sem_fpn/fpn_r50_512x512_160k_ade20k.py) | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/sem_fpn/fpn_r50_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x512_160k_ade20k/fpn_r50_512x512_160k_ade20k_20200718_131734-5b5a6ab9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x512_160k_ade20k/fpn_r50_512x512_160k_ade20k-20200718_131734.log.json) | +| FPN | R-101 | 512x512 | 160000 | 5.9 | 40.58 | 39.35 | 40.72 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/sem_fpn/fpn_r101_512x512_160k_ade20k.py) | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/sem_fpn/fpn_r101_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x512_160k_ade20k/fpn_r101_512x512_160k_ade20k_20200718_131734-306b5004.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x512_160k_ade20k/fpn_r101_512x512_160k_ade20k-20200718_131734.log.json) | diff --git a/configs/unet/README.md b/configs/unet/README.md index d815510a19..e80b2eea57 100644 --- a/configs/unet/README.md +++ b/configs/unet/README.md @@ -19,32 +19,32 @@ ### DRIVE -| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | download | -|--------|----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| UNet-S5-D16 | FCN | 584x565 | 64x64 | 42x42 | 40000 | 0.680 | - | 78.67 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_64x64_40k_drive/fcn_unet_s5-d16_64x64_40k_drive_20201223_191051-26cee593.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_64x64_40k_drive/fcn_unet_s5-d16_64x64_40k_drive-20201223_191051.log.json) | -| UNet-S5-D16 | PSPNet | 584x565 | 64x64 | 42x42 | 40000 | 0.599 | - | 78.62 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_64x64_40k_drive/pspnet_unet_s5-d16_64x64_40k_drive_20201227_181818-aac73387.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_64x64_40k_drive/pspnet_unet_s5-d16_64x64_40k_drive-20201227_181818.log.json) | -| UNet-S5-D16 | DeepLabV3 | 584x565 | 64x64 | 42x42 | 40000 | 0.596 | - | 78.69 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_64x64_40k_drive/deeplabv3_unet_s5-d16_64x64_40k_drive_20201226_094047-0671ff20.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_64x64_40k_drive/deeplabv3_unet_s5-d16_64x64_40k_drive-20201226_094047.log.json) | +| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | download | +| ----------- | --------- | ---------- | --------- | -----: | ------- | -------- | -------------: | ----: | ------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| UNet-S5-D16 | FCN | 584x565 | 64x64 | 42x42 | 40000 | 0.680 | - | 78.67 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_64x64_40k_drive/fcn_unet_s5-d16_64x64_40k_drive_20201223_191051-26cee593.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_64x64_40k_drive/fcn_unet_s5-d16_64x64_40k_drive-20201223_191051.log.json) | +| UNet-S5-D16 | PSPNet | 584x565 | 64x64 | 42x42 | 40000 | 0.599 | - | 78.62 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_64x64_40k_drive/pspnet_unet_s5-d16_64x64_40k_drive_20201227_181818-aac73387.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_64x64_40k_drive/pspnet_unet_s5-d16_64x64_40k_drive-20201227_181818.log.json) | +| UNet-S5-D16 | DeepLabV3 | 584x565 | 64x64 | 42x42 | 40000 | 0.596 | - | 78.69 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/deeplabv3_unet_s5-d16_64x64_40k_drive.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_64x64_40k_drive/deeplabv3_unet_s5-d16_64x64_40k_drive_20201226_094047-0671ff20.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_64x64_40k_drive/deeplabv3_unet_s5-d16_64x64_40k_drive-20201226_094047.log.json) | ### STARE -| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | download | -|--------|----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| UNet-S5-D16 | FCN | 605x700 | 128x128 | 85x85 | 40000 | 0.968 | - | 81.02 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_stare/fcn_unet_s5-d16_128x128_40k_stare_20201223_191051-6ea7cfda.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_stare/fcn_unet_s5-d16_128x128_40k_stare-20201223_191051.log.json) | -| UNet-S5-D16 | PSPNet | 605x700 | 128x128 | 85x85 | 40000 | 0.982 | - | 81.22 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_stare/pspnet_unet_s5-d16_128x128_40k_stare_20201227_181818-3c2923c4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_stare/pspnet_unet_s5-d16_128x128_40k_stare-20201227_181818.log.json) | -| UNet-S5-D16 | DeepLabV3 | 605x700 | 128x128 | 85x85 | 40000 | 0.999 | - | 80.93 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_stare/deeplabv3_unet_s5-d16_128x128_40k_stare_20201226_094047-93dcb93c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_stare/deeplabv3_unet_s5-d16_128x128_40k_stare-20201226_094047.log.json) | +| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | download | +| ----------- | --------- | ---------- | --------- | -----: | ------- | -------- | -------------: | ----: | -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| UNet-S5-D16 | FCN | 605x700 | 128x128 | 85x85 | 40000 | 0.968 | - | 81.02 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_stare/fcn_unet_s5-d16_128x128_40k_stare_20201223_191051-6ea7cfda.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_stare/fcn_unet_s5-d16_128x128_40k_stare-20201223_191051.log.json) | +| UNet-S5-D16 | PSPNet | 605x700 | 128x128 | 85x85 | 40000 | 0.982 | - | 81.22 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/pspnet_unet_s5-d16_128x128_40k_stare.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_stare/pspnet_unet_s5-d16_128x128_40k_stare_20201227_181818-3c2923c4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_stare/pspnet_unet_s5-d16_128x128_40k_stare-20201227_181818.log.json) | +| UNet-S5-D16 | DeepLabV3 | 605x700 | 128x128 | 85x85 | 40000 | 0.999 | - | 80.93 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_stare.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_stare/deeplabv3_unet_s5-d16_128x128_40k_stare_20201226_094047-93dcb93c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_stare/deeplabv3_unet_s5-d16_128x128_40k_stare-20201226_094047.log.json) | ### CHASE_DB1 -| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | download | -|--------|----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| UNet-S5-D16 | FCN | 960x999 | 128x128 | 85x85 | 40000 | 0.968 | - | 80.24 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_chase_db1/fcn_unet_s5-d16_128x128_40k_chase_db1_20201223_191051-95852f45.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_chase_db1/fcn_unet_s5-d16_128x128_40k_chase_db1-20201223_191051.log.json) | -| UNet-S5-D16 | PSPNet | 960x999 | 128x128 | 85x85 | 40000 | 0.982 | - | 80.36 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1/pspnet_unet_s5-d16_128x128_40k_chase_db1_20201227_181818-68d4e609.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1/pspnet_unet_s5-d16_128x128_40k_chase_db1-20201227_181818.log.json) | -| UNet-S5-D16 | DeepLabV3 | 960x999 | 128x128 | 85x85 | 40000 | 0.999 | - | 80.47 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1/deeplabv3_unet_s5-d16_128x128_40k_chase_db1_20201226_094047-4c5aefa3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1/deeplabv3_unet_s5-d16_128x128_40k_chase_db1-20201226_094047.log.json) | +| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | download | +| ----------- | --------- | ---------- | --------- | -----: | ------- | -------- | -------------: | ----: | ------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| UNet-S5-D16 | FCN | 960x999 | 128x128 | 85x85 | 40000 | 0.968 | - | 80.24 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_chase_db1/fcn_unet_s5-d16_128x128_40k_chase_db1_20201223_191051-95852f45.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_chase_db1/fcn_unet_s5-d16_128x128_40k_chase_db1-20201223_191051.log.json) | +| UNet-S5-D16 | PSPNet | 960x999 | 128x128 | 85x85 | 40000 | 0.982 | - | 80.36 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1/pspnet_unet_s5-d16_128x128_40k_chase_db1_20201227_181818-68d4e609.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1/pspnet_unet_s5-d16_128x128_40k_chase_db1-20201227_181818.log.json) | +| UNet-S5-D16 | DeepLabV3 | 960x999 | 128x128 | 85x85 | 40000 | 0.999 | - | 80.47 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1/deeplabv3_unet_s5-d16_128x128_40k_chase_db1_20201226_094047-4c5aefa3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1/deeplabv3_unet_s5-d16_128x128_40k_chase_db1-20201226_094047.log.json) | ### HRF -| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | download | -|--------|----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| UNet-S5-D16 | FCN | 2336x3504 | 256x256 | 170x170 | 40000 | 2.525 | - | 79.45 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_256x256_40k_hrf/fcn_unet_s5-d16_256x256_40k_hrf_20201223_173724-df3ec8c4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_256x256_40k_hrf/fcn_unet_s5-d16_256x256_40k_hrf-20201223_173724.log.json) | -| UNet-S5-D16 | PSPNet | 2336x3504 | 256x256 | 170x170 | 40000 | 2.588 | - | 80.07 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_256x256_40k_hrf/pspnet_unet_s5-d16_256x256_40k_hrf_20201227_181818-fdb7e29b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_256x256_40k_hrf/pspnet_unet_s5-d16_256x256_40k_hrf-20201227_181818.log.json) | -| UNet-S5-D16 | DeepLabV3 | 2336x3504 | 256x256 | 170x170 | 40000 | 2.604 | - | 80.21 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf/deeplabv3_unet_s5-d16_256x256_40k_hrf_20201226_094047-3a1fdf85.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf/deeplabv3_unet_s5-d16_256x256_40k_hrf-20201226_094047.log.json) | +| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | download | +| ----------- | --------- | ---------- | --------- | ------: | ------- | -------- | -------------: | ----: | ------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| UNet-S5-D16 | FCN | 2336x3504 | 256x256 | 170x170 | 40000 | 2.525 | - | 79.45 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_256x256_40k_hrf/fcn_unet_s5-d16_256x256_40k_hrf_20201223_173724-df3ec8c4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_256x256_40k_hrf/fcn_unet_s5-d16_256x256_40k_hrf-20201223_173724.log.json) | +| UNet-S5-D16 | PSPNet | 2336x3504 | 256x256 | 170x170 | 40000 | 2.588 | - | 80.07 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_256x256_40k_hrf/pspnet_unet_s5-d16_256x256_40k_hrf_20201227_181818-fdb7e29b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_256x256_40k_hrf/pspnet_unet_s5-d16_256x256_40k_hrf-20201227_181818.log.json) | +| UNet-S5-D16 | DeepLabV3 | 2336x3504 | 256x256 | 170x170 | 40000 | 2.604 | - | 80.21 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf/deeplabv3_unet_s5-d16_256x256_40k_hrf_20201226_094047-3a1fdf85.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf/deeplabv3_unet_s5-d16_256x256_40k_hrf-20201226_094047.log.json) | diff --git a/configs/upernet/README.md b/configs/upernet/README.md index 4d53a92f9b..976227bb3f 100644 --- a/configs/upernet/README.md +++ b/configs/upernet/README.md @@ -18,31 +18,31 @@ ### Cityscapes -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|---------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| UPerNet | R-50 | 512x1024 | 40000 | 6.4 | 4.25 | 77.10 | 78.37 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_40k_cityscapes/upernet_r50_512x1024_40k_cityscapes_20200605_094827-aa54cb54.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_40k_cityscapes/upernet_r50_512x1024_40k_cityscapes_20200605_094827.log.json) | -| UPerNet | R-101 | 512x1024 | 40000 | 7.4 | 3.79 | 78.69 | 80.11 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_40k_cityscapes/upernet_r101_512x1024_40k_cityscapes_20200605_094933-ebce3b10.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_40k_cityscapes/upernet_r101_512x1024_40k_cityscapes_20200605_094933.log.json) | -| UPerNet | R-50 | 769x769 | 40000 | 7.2 | 1.76 | 77.98 | 79.70 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_40k_cityscapes/upernet_r50_769x769_40k_cityscapes_20200530_033048-92d21539.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_40k_cityscapes/upernet_r50_769x769_40k_cityscapes_20200530_033048.log.json) | -| UPerNet | R-101 | 769x769 | 40000 | 8.4 | 1.56 | 79.03 | 80.77 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_40k_cityscapes/upernet_r101_769x769_40k_cityscapes_20200530_040819-83c95d01.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_40k_cityscapes/upernet_r101_769x769_40k_cityscapes_20200530_040819.log.json) | -| UPerNet | R-50 | 512x1024 | 80000 | - | - | 78.19 | 79.19 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_80k_cityscapes/upernet_r50_512x1024_80k_cityscapes_20200607_052207-848beca8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_80k_cityscapes/upernet_r50_512x1024_80k_cityscapes_20200607_052207.log.json) | -| UPerNet | R-101 | 512x1024 | 80000 | - | - | 79.40 | 80.46 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_80k_cityscapes/upernet_r101_512x1024_80k_cityscapes_20200607_002403-f05f2345.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_80k_cityscapes/upernet_r101_512x1024_80k_cityscapes_20200607_002403.log.json) | -| UPerNet | R-50 | 769x769 | 80000 | - | - | 79.39 | 80.92 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_80k_cityscapes/upernet_r50_769x769_80k_cityscapes_20200607_005107-82ae7d15.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_80k_cityscapes/upernet_r50_769x769_80k_cityscapes_20200607_005107.log.json) | -| UPerNet | R-101 | 769x769 | 80000 | - | - | 80.10 | 81.49 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_80k_cityscapes/upernet_r101_769x769_80k_cityscapes_20200607_001014-082fc334.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_80k_cityscapes/upernet_r101_769x769_80k_cityscapes_20200607_001014.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| UPerNet | R-50 | 512x1024 | 40000 | 6.4 | 4.25 | 77.10 | 78.37 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/upernet/upernet_r50_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_40k_cityscapes/upernet_r50_512x1024_40k_cityscapes_20200605_094827-aa54cb54.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_40k_cityscapes/upernet_r50_512x1024_40k_cityscapes_20200605_094827.log.json) | +| UPerNet | R-101 | 512x1024 | 40000 | 7.4 | 3.79 | 78.69 | 80.11 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/upernet/upernet_r101_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_40k_cityscapes/upernet_r101_512x1024_40k_cityscapes_20200605_094933-ebce3b10.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_40k_cityscapes/upernet_r101_512x1024_40k_cityscapes_20200605_094933.log.json) | +| UPerNet | R-50 | 769x769 | 40000 | 7.2 | 1.76 | 77.98 | 79.70 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/upernet/upernet_r50_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_40k_cityscapes/upernet_r50_769x769_40k_cityscapes_20200530_033048-92d21539.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_40k_cityscapes/upernet_r50_769x769_40k_cityscapes_20200530_033048.log.json) | +| UPerNet | R-101 | 769x769 | 40000 | 8.4 | 1.56 | 79.03 | 80.77 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/upernet/upernet_r101_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_40k_cityscapes/upernet_r101_769x769_40k_cityscapes_20200530_040819-83c95d01.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_40k_cityscapes/upernet_r101_769x769_40k_cityscapes_20200530_040819.log.json) | +| UPerNet | R-50 | 512x1024 | 80000 | - | - | 78.19 | 79.19 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/upernet/upernet_r50_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_80k_cityscapes/upernet_r50_512x1024_80k_cityscapes_20200607_052207-848beca8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_80k_cityscapes/upernet_r50_512x1024_80k_cityscapes_20200607_052207.log.json) | +| UPerNet | R-101 | 512x1024 | 80000 | - | - | 79.40 | 80.46 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/upernet/upernet_r101_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_80k_cityscapes/upernet_r101_512x1024_80k_cityscapes_20200607_002403-f05f2345.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_80k_cityscapes/upernet_r101_512x1024_80k_cityscapes_20200607_002403.log.json) | +| UPerNet | R-50 | 769x769 | 80000 | - | - | 79.39 | 80.92 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/upernet/upernet_r50_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_80k_cityscapes/upernet_r50_769x769_80k_cityscapes_20200607_005107-82ae7d15.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_80k_cityscapes/upernet_r50_769x769_80k_cityscapes_20200607_005107.log.json) | +| UPerNet | R-101 | 769x769 | 80000 | - | - | 80.10 | 81.49 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/upernet/upernet_r101_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_80k_cityscapes/upernet_r101_769x769_80k_cityscapes_20200607_001014-082fc334.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_80k_cityscapes/upernet_r101_769x769_80k_cityscapes_20200607_001014.log.json) | ### ADE20K -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|---------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| UPerNet | R-50 | 512x512 | 80000 | 8.1 | 23.40 | 40.70 | 41.81 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_80k_ade20k/upernet_r50_512x512_80k_ade20k_20200614_144127-ecc8377b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_80k_ade20k/upernet_r50_512x512_80k_ade20k_20200614_144127.log.json) | -| UPerNet | R-101 | 512x512 | 80000 | 9.1 | 20.34 | 42.91 | 43.96 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_80k_ade20k/upernet_r101_512x512_80k_ade20k_20200614_185117-32e4db94.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_80k_ade20k/upernet_r101_512x512_80k_ade20k_20200614_185117.log.json) | -| UPerNet | R-50 | 512x512 | 160000 | - | - | 42.05 | 42.78 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_160k_ade20k/upernet_r50_512x512_160k_ade20k_20200615_184328-8534de8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_160k_ade20k/upernet_r50_512x512_160k_ade20k_20200615_184328.log.json) | -| UPerNet | R-101 | 512x512 | 160000 | - | - | 43.82 | 44.85 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_160k_ade20k/upernet_r101_512x512_160k_ade20k_20200615_161951-91b32684.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_160k_ade20k/upernet_r101_512x512_160k_ade20k_20200615_161951.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ---------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| UPerNet | R-50 | 512x512 | 80000 | 8.1 | 23.40 | 40.70 | 41.81 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/upernet/upernet_r50_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_80k_ade20k/upernet_r50_512x512_80k_ade20k_20200614_144127-ecc8377b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_80k_ade20k/upernet_r50_512x512_80k_ade20k_20200614_144127.log.json) | +| UPerNet | R-101 | 512x512 | 80000 | 9.1 | 20.34 | 42.91 | 43.96 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/upernet/upernet_r101_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_80k_ade20k/upernet_r101_512x512_80k_ade20k_20200614_185117-32e4db94.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_80k_ade20k/upernet_r101_512x512_80k_ade20k_20200614_185117.log.json) | +| UPerNet | R-50 | 512x512 | 160000 | - | - | 42.05 | 42.78 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/upernet/upernet_r50_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_160k_ade20k/upernet_r50_512x512_160k_ade20k_20200615_184328-8534de8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_160k_ade20k/upernet_r50_512x512_160k_ade20k_20200615_184328.log.json) | +| UPerNet | R-101 | 512x512 | 160000 | - | - | 43.82 | 44.85 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/upernet/upernet_r101_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_160k_ade20k/upernet_r101_512x512_160k_ade20k_20200615_161951-91b32684.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_160k_ade20k/upernet_r101_512x512_160k_ade20k_20200615_161951.log.json) | ### Pascal VOC 2012 + Aug -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download | -|---------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| UPerNet | R-50 | 512x512 | 20000 | 6.4 | 23.17 | 74.82 | 76.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_20k_voc12aug/upernet_r50_512x512_20k_voc12aug_20200617_165330-5b5890a7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_20k_voc12aug/upernet_r50_512x512_20k_voc12aug_20200617_165330.log.json) | -| UPerNet | R-101 | 512x512 | 20000 | 7.5 | 19.98 | 77.10 | 78.29 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_20k_voc12aug/upernet_r101_512x512_20k_voc12aug_20200617_165629-f14e7f27.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_20k_voc12aug/upernet_r101_512x512_20k_voc12aug_20200617_165629.log.json) | -| UPerNet | R-50 | 512x512 | 40000 | - | - | 75.92 | 77.44 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_40k_voc12aug/upernet_r50_512x512_40k_voc12aug_20200613_162257-ca9bcc6b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_40k_voc12aug/upernet_r50_512x512_40k_voc12aug_20200613_162257.log.json) | -| UPerNet | R-101 | 512x512 | 40000 | - | - | 77.43 | 78.56 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_40k_voc12aug/upernet_r101_512x512_40k_voc12aug_20200613_163549-e26476ac.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_40k_voc12aug/upernet_r101_512x512_40k_voc12aug_20200613_163549.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| UPerNet | R-50 | 512x512 | 20000 | 6.4 | 23.17 | 74.82 | 76.35 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/upernet/upernet_r50_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_20k_voc12aug/upernet_r50_512x512_20k_voc12aug_20200617_165330-5b5890a7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_20k_voc12aug/upernet_r50_512x512_20k_voc12aug_20200617_165330.log.json) | +| UPerNet | R-101 | 512x512 | 20000 | 7.5 | 19.98 | 77.10 | 78.29 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/upernet/upernet_r101_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_20k_voc12aug/upernet_r101_512x512_20k_voc12aug_20200617_165629-f14e7f27.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_20k_voc12aug/upernet_r101_512x512_20k_voc12aug_20200617_165629.log.json) | +| UPerNet | R-50 | 512x512 | 40000 | - | - | 75.92 | 77.44 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/upernet/upernet_r50_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_40k_voc12aug/upernet_r50_512x512_40k_voc12aug_20200613_162257-ca9bcc6b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_40k_voc12aug/upernet_r50_512x512_40k_voc12aug_20200613_162257.log.json) | +| UPerNet | R-101 | 512x512 | 40000 | - | - | 77.43 | 78.56 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/upernet/upernet_r101_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_40k_voc12aug/upernet_r101_512x512_40k_voc12aug_20200613_163549-e26476ac.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_40k_voc12aug/upernet_r101_512x512_40k_voc12aug_20200613_163549.log.json) | From bc2dc1277a90c64b49cb8274cd71821734702d88 Mon Sep 17 00:00:00 2001 From: "q.yao" Date: Tue, 13 Apr 2021 02:54:59 +0800 Subject: [PATCH 117/706] add dynamic export and visualize to pytorch2onnx (#463) * add dynamic export and visualize to pytorch2onnx * update document * fix lint * fix dynamic error and add visualization * fix lint * update docstring * update doc * Update help info for --show Co-authored-by: Jerry Jiarui XU * fix lint Co-authored-by: maningsheng Co-authored-by: Jerry Jiarui XU --- docs/useful_tools.md | 26 ++- mmseg/apis/inference.py | 12 +- mmseg/models/segmentors/encoder_decoder.py | 7 +- mmseg/ops/wrappers.py | 3 - tools/pytorch2onnx.py | 180 ++++++++++++++++++--- 5 files changed, 202 insertions(+), 26 deletions(-) diff --git a/docs/useful_tools.md b/docs/useful_tools.md index 7b2e3fde1e..8286af83e5 100644 --- a/docs/useful_tools.md +++ b/docs/useful_tools.md @@ -46,10 +46,32 @@ The final output filename will be `psp_r50_512x1024_40ki_cityscapes-{hash id}.pt We provide a script to convert model to [ONNX](https://github.com/onnx/onnx) format. The converted model could be visualized by tools like [Netron](https://github.com/lutzroeder/netron). Besides, we also support comparing the output results between Pytorch and ONNX model. -```shell -python tools/pytorch2onnx.py ${CONFIG_FILE} --checkpoint ${CHECKPOINT_FILE} --output-file ${ONNX_FILE} [--shape ${INPUT_SHAPE} --verify] +```bash +python tools/pytorch2onnx.py \ + ${CONFIG_FILE} \ + --checkpoint ${CHECKPOINT_FILE} \ + --output-file ${ONNX_FILE} \ + --input-img ${INPUT_IMG} \ + --shape ${INPUT_SHAPE} \ + --show \ + --verify \ + --dynamic-export \ + --cfg-options \ + model.test_cfg.mode="whole" ``` +Description of arguments: + +- `config` : The path of a model config file. +- `--checkpoint` : The path of a model checkpoint file. +- `--output-file`: The path of output ONNX model. If not specified, it will be set to `tmp.onnx`. +- `--input-img` : The path of an input image for conversion and visualize. +- `--shape`: The height and width of input tensor to the model. If not specified, it will be set to `256 256`. +- `--show`: Determines whether to print the architecture of the exported model. If not specified, it will be set to `False`. +- `--verify`: Determines whether to verify the correctness of an exported model. If not specified, it will be set to `False`. +- `--dynamic-export`: Determines whether to export ONNX model with dynamic input and output shapes. If not specified, it will be set to `False`. +- `--cfg-options`:Update config options. + **Note**: This tool is still experimental. Some customized operators are not supported for now. ## Miscellaneous diff --git a/mmseg/apis/inference.py b/mmseg/apis/inference.py index 9052cdd32a..bf875cb262 100644 --- a/mmseg/apis/inference.py +++ b/mmseg/apis/inference.py @@ -103,7 +103,9 @@ def show_result_pyplot(model, result, palette=None, fig_size=(15, 10), - opacity=0.5): + opacity=0.5, + title='', + block=True): """Visualize the segmentation results on the image. Args: @@ -117,6 +119,10 @@ def show_result_pyplot(model, opacity(float): Opacity of painted segmentation map. Default 0.5. Must be in (0, 1] range. + title (str): The title of pyplot figure. + Default is ''. + block (bool): Whether to block the pyplot figure. + Default is True. """ if hasattr(model, 'module'): model = model.module @@ -124,4 +130,6 @@ def show_result_pyplot(model, img, result, palette=palette, show=False, opacity=opacity) plt.figure(figsize=fig_size) plt.imshow(mmcv.bgr2rgb(img)) - plt.show() + plt.title(title) + plt.tight_layout() + plt.show(block=block) diff --git a/mmseg/models/segmentors/encoder_decoder.py b/mmseg/models/segmentors/encoder_decoder.py index 2284906e3f..b2d067dcbe 100644 --- a/mmseg/models/segmentors/encoder_decoder.py +++ b/mmseg/models/segmentors/encoder_decoder.py @@ -216,9 +216,14 @@ def whole_inference(self, img, img_meta, rescale): seg_logit = self.encode_decode(img, img_meta) if rescale: + # support dynamic shape for onnx + if torch.onnx.is_in_onnx_export(): + size = img.shape[2:] + else: + size = img_meta[0]['ori_shape'][:2] seg_logit = resize( seg_logit, - size=img_meta[0]['ori_shape'][:2], + size=size, mode='bilinear', align_corners=self.align_corners, warning=False) diff --git a/mmseg/ops/wrappers.py b/mmseg/ops/wrappers.py index a6d755273d..0ed9a0cb8d 100644 --- a/mmseg/ops/wrappers.py +++ b/mmseg/ops/wrappers.py @@ -1,6 +1,5 @@ import warnings -import torch import torch.nn as nn import torch.nn.functional as F @@ -24,8 +23,6 @@ def resize(input, 'the output would more aligned if ' f'input size {(input_h, input_w)} is `x+1` and ' f'out size {(output_h, output_w)} is `nx+1`') - if isinstance(size, torch.Size): - size = tuple(int(x) for x in size) return F.interpolate(input, size, scale_factor, mode, align_corners) diff --git a/tools/pytorch2onnx.py b/tools/pytorch2onnx.py index 2ec9feb59a..71f1bb7227 100644 --- a/tools/pytorch2onnx.py +++ b/tools/pytorch2onnx.py @@ -7,10 +7,14 @@ import torch import torch._C import torch.serialization +from mmcv import DictAction from mmcv.onnx import register_extra_symbolics from mmcv.runner import load_checkpoint from torch import nn +from mmseg.apis import show_result_pyplot +from mmseg.apis.inference import LoadImage +from mmseg.datasets.pipelines import Compose from mmseg.models import build_segmentor torch.manual_seed(3) @@ -67,25 +71,61 @@ def _demo_mm_inputs(input_shape, num_classes): return mm_inputs +def _prepare_input_img(img_path, test_pipeline, shape=None): + # build the data pipeline + if shape is not None: + test_pipeline[1]['img_scale'] = shape + test_pipeline[1]['transforms'][0]['keep_ratio'] = False + test_pipeline = [LoadImage()] + test_pipeline[1:] + test_pipeline = Compose(test_pipeline) + # prepare data + data = dict(img=img_path) + data = test_pipeline(data) + imgs = data['img'] + img_metas = [i.data for i in data['img_metas']] + + mm_inputs = {'imgs': imgs, 'img_metas': img_metas} + + return mm_inputs + + +def _update_input_img(img_list, img_meta_list): + # update img and its meta list + N, C, H, W = img_list[0].shape + img_meta = img_meta_list[0][0] + new_img_meta_list = [[{ + 'img_shape': (H, W, C), + 'ori_shape': (H, W, C), + 'pad_shape': (H, W, C), + 'filename': img_meta['filename'], + 'scale_factor': 1., + 'flip': False, + } for _ in range(N)]] + + return img_list, new_img_meta_list + + def pytorch2onnx(model, - input_shape, + mm_inputs, opset_version=11, show=False, output_file='tmp.onnx', - verify=False): + verify=False, + dynamic_export=False): """Export Pytorch model to ONNX model and verify the outputs are same between Pytorch and ONNX. Args: model (nn.Module): Pytorch model we want to export. - input_shape (tuple): Use this input shape to construct - the corresponding dummy input and execute the model. + mm_inputs (dict): Contain the input tensors and img_metas information. opset_version (int): The onnx op version. Default: 11. show (bool): Whether print the computation graph. Default: False. output_file (string): The path to where we store the output ONNX model. Default: `tmp.onnx`. verify (bool): Whether compare the outputs between Pytorch and ONNX. Default: False. + dynamic_export (bool): Whether to export ONNX with dynamic axis. + Default: False. """ model.cpu().eval() @@ -94,28 +134,45 @@ def pytorch2onnx(model, else: num_classes = model.decode_head.num_classes - mm_inputs = _demo_mm_inputs(input_shape, num_classes) - imgs = mm_inputs.pop('imgs') img_metas = mm_inputs.pop('img_metas') + ori_shape = img_metas[0]['ori_shape'] img_list = [img[None, :] for img in imgs] img_meta_list = [[img_meta] for img_meta in img_metas] + img_list, img_meta_list = _update_input_img(img_list, img_meta_list) # replace original forward function origin_forward = model.forward model.forward = partial( model.forward, img_metas=img_meta_list, return_loss=False) + dynamic_axes = None + if dynamic_export: + dynamic_axes = { + 'input': { + 0: 'batch', + 2: 'height', + 3: 'width' + }, + 'output': { + 1: 'batch', + 2: 'height', + 3: 'width' + } + } register_extra_symbolics(opset_version) with torch.no_grad(): torch.onnx.export( model, (img_list, ), output_file, + input_names=['input'], + output_names=['output'], export_params=True, - keep_initializers_as_inputs=True, + keep_initializers_as_inputs=False, verbose=show, - opset_version=opset_version) + opset_version=opset_version, + dynamic_axes=dynamic_axes) print(f'Successfully exported ONNX model: {output_file}') model.forward = origin_forward @@ -125,9 +182,28 @@ def pytorch2onnx(model, onnx_model = onnx.load(output_file) onnx.checker.check_model(onnx_model) + if dynamic_export: + # scale image for dynamic shape test + img_list = [ + nn.functional.interpolate(_, scale_factor=1.5) + for _ in img_list + ] + # concate flip image for batch test + flip_img_list = [_.flip(-1) for _ in img_list] + img_list = [ + torch.cat((ori_img, flip_img), 0) + for ori_img, flip_img in zip(img_list, flip_img_list) + ] + + # update img_meta + img_list, img_meta_list = _update_input_img( + img_list, img_meta_list) + # check the numerical value # get pytorch output - pytorch_result = model(img_list, img_meta_list, return_loss=False)[0] + with torch.no_grad(): + pytorch_result = model(img_list, img_meta_list, return_loss=False) + pytorch_result = np.stack(pytorch_result, 0) # get onnx output input_all = [node.name for node in onnx_model.graph.input] @@ -138,10 +214,42 @@ def pytorch2onnx(model, assert (len(net_feed_input) == 1) sess = rt.InferenceSession(output_file) onnx_result = sess.run( - None, {net_feed_input[0]: img_list[0].detach().numpy()})[0] - if not np.allclose(pytorch_result, onnx_result): - raise ValueError( - 'The outputs are different between Pytorch and ONNX') + None, {net_feed_input[0]: img_list[0].detach().numpy()})[0][0] + # show segmentation results + if show: + import cv2 + import os.path as osp + img = img_meta_list[0][0]['filename'] + if not osp.exists(img): + img = imgs[0][:3, ...].permute(1, 2, 0) * 255 + img = img.detach().numpy().astype(np.uint8) + # resize onnx_result to ori_shape + onnx_result_ = cv2.resize(onnx_result[0].astype(np.uint8), + (ori_shape[1], ori_shape[0])) + show_result_pyplot( + model, + img, (onnx_result_, ), + palette=model.PALETTE, + block=False, + title='ONNXRuntime', + opacity=0.5) + + # resize pytorch_result to ori_shape + pytorch_result_ = cv2.resize(pytorch_result[0].astype(np.uint8), + (ori_shape[1], ori_shape[0])) + show_result_pyplot( + model, + img, (pytorch_result_, ), + title='PyTorch', + palette=model.PALETTE, + opacity=0.5) + # compare results + np.testing.assert_allclose( + pytorch_result.astype(np.float32) / num_classes, + onnx_result.astype(np.float32) / num_classes, + rtol=1e-5, + atol=1e-5, + err_msg='The outputs are different between Pytorch and ONNX') print('The outputs are same between Pytorch and ONNX') @@ -149,7 +257,12 @@ def parse_args(): parser = argparse.ArgumentParser(description='Convert MMSeg to ONNX') parser.add_argument('config', help='test config file path') parser.add_argument('--checkpoint', help='checkpoint file', default=None) - parser.add_argument('--show', action='store_true', help='show onnx graph') + parser.add_argument( + '--input-img', type=str, help='Images for input', default=None) + parser.add_argument( + '--show', + action='store_true', + help='show onnx graph and segmentation results') parser.add_argument( '--verify', action='store_true', help='verify the onnx model') parser.add_argument('--output-file', type=str, default='tmp.onnx') @@ -160,6 +273,20 @@ def parse_args(): nargs='+', default=[256, 256], help='input image size') + parser.add_argument( + '--cfg-options', + nargs='+', + action=DictAction, + help='Override some settings in the used config, the key-value pair ' + 'in xxx=yyy format will be merged into config file. If the value to ' + 'be overwritten is a list, it should be like key="[a,b]" or key=a,b ' + 'It also allows nested list/tuple values, e.g. key="[(a,b),(c,d)]" ' + 'Note that the quotation marks are necessary and that no white space ' + 'is allowed.') + parser.add_argument( + '--dynamic-export', + action='store_true', + help='Whether to export onnx with dynamic axis.') args = parser.parse_args() return args @@ -178,6 +305,8 @@ def parse_args(): raise ValueError('invalid input shape') cfg = mmcv.Config.fromfile(args.config) + if args.cfg_options is not None: + cfg.merge_from_dict(args.cfg_options) cfg.model.pretrained = None # build the model and load checkpoint @@ -188,13 +317,28 @@ def parse_args(): segmentor = _convert_batchnorm(segmentor) if args.checkpoint: - load_checkpoint(segmentor, args.checkpoint, map_location='cpu') + checkpoint = load_checkpoint( + segmentor, args.checkpoint, map_location='cpu') + segmentor.CLASSES = checkpoint['meta']['CLASSES'] + segmentor.PALETTE = checkpoint['meta']['PALETTE'] + + # read input or create dummpy input + if args.input_img is not None: + mm_inputs = _prepare_input_img(args.input_img, cfg.data.test.pipeline, + (input_shape[3], input_shape[2])) + else: + if isinstance(segmentor.decode_head, nn.ModuleList): + num_classes = segmentor.decode_head[-1].num_classes + else: + num_classes = segmentor.decode_head.num_classes + mm_inputs = _demo_mm_inputs(input_shape, num_classes) - # conver model to onnx file + # convert model to onnx file pytorch2onnx( segmentor, - input_shape, + mm_inputs, opset_version=args.opset_version, show=args.show, output_file=args.output_file, - verify=args.verify) + verify=args.verify, + dynamic_export=args.dynamic_export) From d3603e533502430074a84055cbf29ef5895c0180 Mon Sep 17 00:00:00 2001 From: sennnnn <58427300+sennnnn@users.noreply.github.com> Date: Wed, 14 Apr 2021 23:37:23 +0800 Subject: [PATCH 118/706] Fix mIoU calculatiton range (#471) * Fix fence(IoU) = 0 when training on PascalContextDataset59; * Add a test case in test_metrics() of tests/test_metrics.py to test the bug caused by torch.histc; * Update tests/test_metrics.py Co-authored-by: Jerry Jiarui XU Co-authored-by: Jerry Jiarui XU --- mmseg/core/evaluation/metrics.py | 6 +++--- tests/test_metrics.py | 23 ++++++++++++++++++++--- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/mmseg/core/evaluation/metrics.py b/mmseg/core/evaluation/metrics.py index 769e9b3ab4..c5924a4c86 100644 --- a/mmseg/core/evaluation/metrics.py +++ b/mmseg/core/evaluation/metrics.py @@ -57,11 +57,11 @@ def intersect_and_union(pred_label, intersect = pred_label[pred_label == label] area_intersect = torch.histc( - intersect.float(), bins=(num_classes), min=0, max=num_classes) + intersect.float(), bins=(num_classes), min=0, max=num_classes - 1) area_pred_label = torch.histc( - pred_label.float(), bins=(num_classes), min=0, max=num_classes) + pred_label.float(), bins=(num_classes), min=0, max=num_classes - 1) area_label = torch.histc( - label.float(), bins=(num_classes), min=0, max=num_classes) + label.float(), bins=(num_classes), min=0, max=num_classes - 1) area_union = area_pred_label + area_label - area_intersect return area_intersect, area_union, area_pred_label, area_label diff --git a/tests/test_metrics.py b/tests/test_metrics.py index 2033617c2a..b50e165926 100644 --- a/tests/test_metrics.py +++ b/tests/test_metrics.py @@ -64,7 +64,11 @@ def test_metrics(): ignore_index = 255 results = np.random.randint(0, num_classes, size=pred_size) label = np.random.randint(0, num_classes, size=pred_size) + + # Test the availability of arg: ignore_index. label[:, 2, 5:10] = ignore_index + + # Test the correctness of the implementation of mIoU calculation. all_acc, acc, iou = eval_metrics( results, label, num_classes, ignore_index, metrics='mIoU') all_acc_l, acc_l, iou_l = legacy_mean_iou(results, label, num_classes, @@ -72,7 +76,7 @@ def test_metrics(): assert all_acc == all_acc_l assert np.allclose(acc, acc_l) assert np.allclose(iou, iou_l) - + # Test the correctness of the implementation of mDice calculation. all_acc, acc, dice = eval_metrics( results, label, num_classes, ignore_index, metrics='mDice') all_acc_l, acc_l, dice_l = legacy_mean_dice(results, label, num_classes, @@ -80,7 +84,7 @@ def test_metrics(): assert all_acc == all_acc_l assert np.allclose(acc, acc_l) assert np.allclose(dice, dice_l) - + # Test the correctness of the implementation of joint calculation. all_acc, acc, iou, dice = eval_metrics( results, label, num_classes, ignore_index, metrics=['mIoU', 'mDice']) assert all_acc == all_acc_l @@ -88,6 +92,8 @@ def test_metrics(): assert np.allclose(iou, iou_l) assert np.allclose(dice, dice_l) + # Test the correctness of calculation when arg: num_classes is larger + # than the maximum value of input maps. results = np.random.randint(0, 5, size=pred_size) label = np.random.randint(0, 4, size=pred_size) all_acc, acc, iou = eval_metrics( @@ -121,6 +127,17 @@ def test_metrics(): assert dice[-1] == -1 assert iou[-1] == -1 + # Test the bug which is caused by torch.histc. + # torch.histc: https://pytorch.org/docs/stable/generated/torch.histc.html + # When the arg:bins is set to be same as arg:max, + # some channels of mIoU may be nan. + results = np.array([np.repeat(31, 59)]) + label = np.array([np.arange(59)]) + num_classes = 59 + all_acc, acc, iou = eval_metrics( + results, label, num_classes, ignore_index=255, metrics='mIoU') + assert not np.any(np.isnan(iou)) + def test_mean_iou(): pred_size = (10, 30, 30) @@ -182,7 +199,7 @@ def save_arr(input_arrays: list, title: str, is_image: bool, dir: str): filenames.append(filename) return filenames - pred_size = (10, 512, 1024) + pred_size = (10, 30, 30) num_classes = 19 ignore_index = 255 results = np.random.randint(0, num_classes, size=pred_size) From 2cb5e251831d7d9245ce15491267b3f080028ca8 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Sun, 18 Apr 2021 02:56:53 -0700 Subject: [PATCH 119/706] Fix sem_fpn and unet README.md (#492) --- configs/sem_fpn/README.md | 16 ++++++++-------- configs/unet/README.md | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/configs/sem_fpn/README.md b/configs/sem_fpn/README.md index d5ea5bfc5f..20601147db 100644 --- a/configs/sem_fpn/README.md +++ b/configs/sem_fpn/README.md @@ -22,14 +22,14 @@ ### Cityscapes -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | config | download | -| ------ | -------- | --------- | ------: | -------: | -------------- | ----: | ------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| FPN | R-50 | 512x1024 | 80000 | 2.8 | 13.54 | 74.52 | 76.08 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/sem_fpn/fpn_r50_512x1024_80k_cityscapes.py) | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/sem_fpn/fpn_r50_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x1024_80k_cityscapes/fpn_r50_512x1024_80k_cityscapes_20200717_021437-94018a0d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x1024_80k_cityscapes/fpn_r50_512x1024_80k_cityscapes-20200717_021437.log.json) | -| FPN | R-101 | 512x1024 | 80000 | 3.9 | 10.29 | 75.80 | 77.40 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/sem_fpn/fpn_r101_512x1024_80k_cityscapes.py) | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/sem_fpn/fpn_r101_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x1024_80k_cityscapes/fpn_r101_512x1024_80k_cityscapes_20200717_012416-c5800d4c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x1024_80k_cityscapes/fpn_r101_512x1024_80k_cityscapes-20200717_012416.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------: | -------------- | ----: | ------------- | ---------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| FPN | R-50 | 512x1024 | 80000 | 2.8 | 13.54 | 74.52 | 76.08 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/sem_fpn/fpn_r50_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x1024_80k_cityscapes/fpn_r50_512x1024_80k_cityscapes_20200717_021437-94018a0d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x1024_80k_cityscapes/fpn_r50_512x1024_80k_cityscapes-20200717_021437.log.json) | +| FPN | R-101 | 512x1024 | 80000 | 3.9 | 10.29 | 75.80 | 77.40 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/sem_fpn/fpn_r101_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x1024_80k_cityscapes/fpn_r101_512x1024_80k_cityscapes_20200717_012416-c5800d4c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x1024_80k_cityscapes/fpn_r101_512x1024_80k_cityscapes-20200717_012416.log.json) | ### ADE20K -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | config | download | -| ------ | -------- | --------- | ------: | -------: | -------------- | ----: | ------------- | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| FPN | R-50 | 512x512 | 160000 | 4.9 | 55.77 | 37.49 | 39.09 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/sem_fpn/fpn_r50_512x512_160k_ade20k.py) | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/sem_fpn/fpn_r50_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x512_160k_ade20k/fpn_r50_512x512_160k_ade20k_20200718_131734-5b5a6ab9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x512_160k_ade20k/fpn_r50_512x512_160k_ade20k-20200718_131734.log.json) | -| FPN | R-101 | 512x512 | 160000 | 5.9 | 40.58 | 39.35 | 40.72 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/sem_fpn/fpn_r101_512x512_160k_ade20k.py) | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/sem_fpn/fpn_r101_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x512_160k_ade20k/fpn_r101_512x512_160k_ade20k_20200718_131734-306b5004.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x512_160k_ade20k/fpn_r101_512x512_160k_ade20k-20200718_131734.log.json) | +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------: | -------------- | ----: | ------------- | ------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| FPN | R-50 | 512x512 | 160000 | 4.9 | 55.77 | 37.49 | 39.09 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/sem_fpn/fpn_r50_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x512_160k_ade20k/fpn_r50_512x512_160k_ade20k_20200718_131734-5b5a6ab9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x512_160k_ade20k/fpn_r50_512x512_160k_ade20k-20200718_131734.log.json) | +| FPN | R-101 | 512x512 | 160000 | 5.9 | 40.58 | 39.35 | 40.72 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/sem_fpn/fpn_r101_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x512_160k_ade20k/fpn_r101_512x512_160k_ade20k_20200718_131734-306b5004.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x512_160k_ade20k/fpn_r101_512x512_160k_ade20k-20200718_131734.log.json) | diff --git a/configs/unet/README.md b/configs/unet/README.md index e80b2eea57..1059815af4 100644 --- a/configs/unet/README.md +++ b/configs/unet/README.md @@ -19,7 +19,7 @@ ### DRIVE -| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | download | +| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | config | download | | ----------- | --------- | ---------- | --------- | -----: | ------- | -------- | -------------: | ----: | ------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | UNet-S5-D16 | FCN | 584x565 | 64x64 | 42x42 | 40000 | 0.680 | - | 78.67 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_64x64_40k_drive/fcn_unet_s5-d16_64x64_40k_drive_20201223_191051-26cee593.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_64x64_40k_drive/fcn_unet_s5-d16_64x64_40k_drive-20201223_191051.log.json) | | UNet-S5-D16 | PSPNet | 584x565 | 64x64 | 42x42 | 40000 | 0.599 | - | 78.62 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_64x64_40k_drive/pspnet_unet_s5-d16_64x64_40k_drive_20201227_181818-aac73387.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_64x64_40k_drive/pspnet_unet_s5-d16_64x64_40k_drive-20201227_181818.log.json) | @@ -27,7 +27,7 @@ ### STARE -| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | download | +| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | config | download | | ----------- | --------- | ---------- | --------- | -----: | ------- | -------- | -------------: | ----: | -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | UNet-S5-D16 | FCN | 605x700 | 128x128 | 85x85 | 40000 | 0.968 | - | 81.02 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_stare/fcn_unet_s5-d16_128x128_40k_stare_20201223_191051-6ea7cfda.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_stare/fcn_unet_s5-d16_128x128_40k_stare-20201223_191051.log.json) | | UNet-S5-D16 | PSPNet | 605x700 | 128x128 | 85x85 | 40000 | 0.982 | - | 81.22 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/pspnet_unet_s5-d16_128x128_40k_stare.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_stare/pspnet_unet_s5-d16_128x128_40k_stare_20201227_181818-3c2923c4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_stare/pspnet_unet_s5-d16_128x128_40k_stare-20201227_181818.log.json) | From c3d9642e2d4087044f2e1dcf9f786b9ac791cfec Mon Sep 17 00:00:00 2001 From: sshuair Date: Mon, 19 Apr 2021 23:51:49 +0800 Subject: [PATCH 120/706] add tool pytorch2torchscript (#469) * add tool pytorch2torchscript * fix the assert message for pytorch version. --- docs/useful_tools.md | 12 +++ tools/pytorch2torchscript.py | 184 +++++++++++++++++++++++++++++++++++ 2 files changed, 196 insertions(+) create mode 100644 tools/pytorch2torchscript.py diff --git a/docs/useful_tools.md b/docs/useful_tools.md index 8286af83e5..81cbeb8662 100644 --- a/docs/useful_tools.md +++ b/docs/useful_tools.md @@ -74,6 +74,18 @@ Description of arguments: **Note**: This tool is still experimental. Some customized operators are not supported for now. +### Convert to TorchScript (experimental) + +We also provide a script to convert model to [TorchScript](https://pytorch.org/docs/stable/jit.html) format. You can use the pytorch C++ API [LibTorch](https://pytorch.org/docs/stable/cpp_index.html) inference the trained model. The converted model could be visualized by tools like [Netron](https://github.com/lutzroeder/netron). Besides, we also support comparing the output results between Pytorch and TorchScript model. + +```shell +python tools/pytorch2torchscript.py ${CONFIG_FILE} --checkpoint ${CHECKPOINT_FILE} --output-file ${ONNX_FILE} [--shape ${INPUT_SHAPE} --verify] +``` + +**Note**: It's only support PyTorch>=1.8.0 for now. + +**Note**: This tool is still experimental. Some customized operators are not supported for now. + ## Miscellaneous ### Print the entire config diff --git a/tools/pytorch2torchscript.py b/tools/pytorch2torchscript.py new file mode 100644 index 0000000000..206c4bb457 --- /dev/null +++ b/tools/pytorch2torchscript.py @@ -0,0 +1,184 @@ +import argparse + +import mmcv +import numpy as np +import torch +import torch._C +import torch.serialization +from mmcv.runner import load_checkpoint +from torch import nn + +from mmseg.models import build_segmentor + +torch.manual_seed(3) + + +def digit_version(version_str): + digit_version = [] + for x in version_str.split('.'): + if x.isdigit(): + digit_version.append(int(x)) + elif x.find('rc') != -1: + patch_version = x.split('rc') + digit_version.append(int(patch_version[0]) - 1) + digit_version.append(int(patch_version[1])) + return digit_version + + +def check_torch_version(): + torch_minimum_version = '1.8.0' + torch_version = digit_version(torch.__version__) + + assert (torch_version >= digit_version(torch_minimum_version)), \ + f'Torch=={torch.__version__} is not support for converting to ' \ + f'torchscript. Please install pytorch>={torch_minimum_version}.' + + +def _convert_batchnorm(module): + module_output = module + if isinstance(module, torch.nn.SyncBatchNorm): + module_output = torch.nn.BatchNorm2d(module.num_features, module.eps, + module.momentum, module.affine, + module.track_running_stats) + if module.affine: + module_output.weight.data = module.weight.data.clone().detach() + module_output.bias.data = module.bias.data.clone().detach() + # keep requires_grad unchanged + module_output.weight.requires_grad = module.weight.requires_grad + module_output.bias.requires_grad = module.bias.requires_grad + module_output.running_mean = module.running_mean + module_output.running_var = module.running_var + module_output.num_batches_tracked = module.num_batches_tracked + for name, child in module.named_children(): + module_output.add_module(name, _convert_batchnorm(child)) + del module + return module_output + + +def _demo_mm_inputs(input_shape, num_classes): + """Create a superset of inputs needed to run test or train batches. + + Args: + input_shape (tuple): + input batch dimensions + num_classes (int): + number of semantic classes + """ + (N, C, H, W) = input_shape + rng = np.random.RandomState(0) + imgs = rng.rand(*input_shape) + segs = rng.randint( + low=0, high=num_classes - 1, size=(N, 1, H, W)).astype(np.uint8) + img_metas = [{ + 'img_shape': (H, W, C), + 'ori_shape': (H, W, C), + 'pad_shape': (H, W, C), + 'filename': '.png', + 'scale_factor': 1.0, + 'flip': False, + } for _ in range(N)] + mm_inputs = { + 'imgs': torch.FloatTensor(imgs).requires_grad_(True), + 'img_metas': img_metas, + 'gt_semantic_seg': torch.LongTensor(segs) + } + return mm_inputs + + +def pytorch2libtorch(model, + input_shape, + show=False, + output_file='tmp.pt', + verify=False): + """Export Pytorch model to TorchScript model and verify the outputs are + same between Pytorch and TorchScript. + + Args: + model (nn.Module): Pytorch model we want to export. + input_shape (tuple): Use this input shape to construct + the corresponding dummy input and execute the model. + show (bool): Whether print the computation graph. Default: False. + output_file (string): The path to where we store the + output TorchScript model. Default: `tmp.pt`. + verify (bool): Whether compare the outputs between + Pytorch and TorchScript. Default: False. + """ + if isinstance(model.decode_head, nn.ModuleList): + num_classes = model.decode_head[-1].num_classes + else: + num_classes = model.decode_head.num_classes + + mm_inputs = _demo_mm_inputs(input_shape, num_classes) + + imgs = mm_inputs.pop('imgs') + + # replace the orginal forword with forward_dummy + model.forward = model.forward_dummy + model.eval() + traced_model = torch.jit.trace( + model, + example_inputs=imgs, + check_trace=verify, + ) + + if show: + print(traced_model.graph) + + traced_model.save(output_file) + print('Successfully exported TorchScript model: {}'.format(output_file)) + + +def parse_args(): + parser = argparse.ArgumentParser( + description='Convert MMSeg to TorchScript') + parser.add_argument('config', help='test config file path') + parser.add_argument('--checkpoint', help='checkpoint file', default=None) + parser.add_argument( + '--show', action='store_true', help='show TorchScript graph') + parser.add_argument( + '--verify', action='store_true', help='verify the TorchScript model') + parser.add_argument('--output-file', type=str, default='tmp.pt') + parser.add_argument( + '--shape', + type=int, + nargs='+', + default=[512, 512], + help='input image size (height, width)') + args = parser.parse_args() + return args + + +if __name__ == '__main__': + args = parse_args() + check_torch_version() + + if len(args.shape) == 1: + input_shape = (1, 3, args.shape[0], args.shape[0]) + elif len(args.shape) == 2: + input_shape = ( + 1, + 3, + ) + tuple(args.shape) + else: + raise ValueError('invalid input shape') + + cfg = mmcv.Config.fromfile(args.config) + cfg.model.pretrained = None + + # build the model and load checkpoint + cfg.model.train_cfg = None + segmentor = build_segmentor( + cfg.model, train_cfg=None, test_cfg=cfg.get('test_cfg')) + # convert SyncBN to BN + segmentor = _convert_batchnorm(segmentor) + + if args.checkpoint: + load_checkpoint(segmentor, args.checkpoint, map_location='cpu') + + # convert the PyTorch model to LibTorch model + pytorch2libtorch( + segmentor, + input_shape, + show=args.show, + output_file=args.output_file, + verify=args.verify) From c4049bab3e97b4d1b0b323f5cbf3818082c00fc1 Mon Sep 17 00:00:00 2001 From: Ziyi Wu Date: Mon, 19 Apr 2021 23:52:42 +0800 Subject: [PATCH 121/706] add BaseSegmentor import to segmentors/__init__.py (#495) --- mmseg/models/segmentors/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mmseg/models/segmentors/__init__.py b/mmseg/models/segmentors/__init__.py index 3f600ecb9f..dca2f09405 100644 --- a/mmseg/models/segmentors/__init__.py +++ b/mmseg/models/segmentors/__init__.py @@ -1,4 +1,5 @@ +from .base import BaseSegmentor from .cascade_encoder_decoder import CascadeEncoderDecoder from .encoder_decoder import EncoderDecoder -__all__ = ['EncoderDecoder', 'CascadeEncoderDecoder'] +__all__ = ['BaseSegmentor', 'EncoderDecoder', 'CascadeEncoderDecoder'] From 38d2e969ddd96b9d96b0566ae553bbd634f55bee Mon Sep 17 00:00:00 2001 From: sennnnn <58427300+sennnnn@users.noreply.github.com> Date: Tue, 20 Apr 2021 12:20:54 +0800 Subject: [PATCH 122/706] Add support for Pascal Context 59 classes (#459) * Add support for Pascal Context 59 classes (#459) * Create PascalContextDataset59 class in mmseg/datasets/pascal_context.py; * Set reduce_zero_label=True for train_pipeline and PascalContextDataset59; * Add some configs for Pascal-Context 59 classes training and testing; * Try to solve the problem about "fence(IoU)=nan grass(IoU)=0"; * Continue(1): Try to solve the problem about "fence(IoU)=nan grass(IoU)=0"; * ignore files and folders named tempxxx; * Continue(2): Try to solve the problem about "fence(IoU)=nan grass(IoU)=0"; * Modify the calculation of IoU; * Modify the CLASSES order of PascalContextDataset; * Add "fcn", "deeplabv3", "deeplabv3+", "pspnet" config file for model training based on PascalContextDataset59; Add some ignore items in ".gitignore"; * fix the bug "test_cfg specified in both outer field and model field " of pspnet config file; * * Clean unnecessary codes; * Add weighs link, config link, log link and evaluation results about PascalContextDataset59 in README.md * Add command line argument: "-p | --port", this arg can change the transmit port when you transmit data to distributed machine. * * Remove rebundant config files; * Remove "-p|--port" command argument; Co-authored-by: Jiarui XU --- configs/_base_/datasets/pascal_context_59.py | 60 +++++++++++++++++ configs/deeplabv3/README.md | 7 ++ ...3_r101-d8_480x480_40k_pascal_context_59.py | 2 + ...3_r101-d8_480x480_80k_pascal_context_59.py | 2 + ...v3_r50-d8_480x480_40k_pascal_context_59.py | 10 +++ ...v3_r50-d8_480x480_80k_pascal_context_59.py | 10 +++ configs/deeplabv3plus/README.md | 7 ++ ...s_r101-d8_480x480_40k_pascal_context_59.py | 2 + ...s_r101-d8_480x480_80k_pascal_context_59.py | 2 + ...us_r50-d8_480x480_40k_pascal_context_59.py | 10 +++ ...us_r50-d8_480x480_80k_pascal_context_59.py | 10 +++ configs/fcn/README.md | 7 ++ ...n_r101-d8_480x480_40k_pascal_context_59.py | 2 + ...n_r101-d8_480x480_80k_pascal_context_59.py | 2 + ...cn_r50-d8_480x480_40k_pascal_context_59.py | 10 +++ ...cn_r50-d8_480x480_80k_pascal_context_59.py | 10 +++ configs/hrnet/README.md | 7 ++ .../fcn_hr18_480x480_40k_pascal_context_59.py | 8 +++ .../fcn_hr18_480x480_80k_pascal_context_59.py | 8 +++ ...fcn_hr18s_480x480_40k_pascal_context_59.py | 9 +++ ...fcn_hr18s_480x480_80k_pascal_context_59.py | 9 +++ .../fcn_hr48_480x480_40k_pascal_context_59.py | 10 +++ .../fcn_hr48_480x480_80k_pascal_context_59.py | 10 +++ configs/pspnet/README.md | 7 ++ ...t_r101-d8_480x480_40k_pascal_context_59.py | 2 + ...t_r101-d8_480x480_80k_pascal_context_59.py | 2 + ...spnet_r50-d8_480x480_40k_pascal_context.py | 5 +- ...et_r50-d8_480x480_40k_pascal_context_59.py | 10 +++ ...spnet_r50-d8_480x480_80k_pascal_context.py | 5 +- ...et_r50-d8_480x480_80k_pascal_context_59.py | 10 +++ demo/MMSegmentation_Tutorial.ipynb | 7 ++ mmseg/datasets/__init__.py | 5 +- mmseg/datasets/pascal_context.py | 67 ++++++++++++++++--- 33 files changed, 319 insertions(+), 15 deletions(-) create mode 100644 configs/_base_/datasets/pascal_context_59.py create mode 100644 configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context_59.py create mode 100644 configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context_59.py create mode 100644 configs/deeplabv3/deeplabv3_r50-d8_480x480_40k_pascal_context_59.py create mode 100644 configs/deeplabv3/deeplabv3_r50-d8_480x480_80k_pascal_context_59.py create mode 100644 configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59.py create mode 100644 configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59.py create mode 100644 configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_40k_pascal_context_59.py create mode 100644 configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_80k_pascal_context_59.py create mode 100644 configs/fcn/fcn_r101-d8_480x480_40k_pascal_context_59.py create mode 100644 configs/fcn/fcn_r101-d8_480x480_80k_pascal_context_59.py create mode 100644 configs/fcn/fcn_r50-d8_480x480_40k_pascal_context_59.py create mode 100644 configs/fcn/fcn_r50-d8_480x480_80k_pascal_context_59.py create mode 100644 configs/hrnet/fcn_hr18_480x480_40k_pascal_context_59.py create mode 100644 configs/hrnet/fcn_hr18_480x480_80k_pascal_context_59.py create mode 100644 configs/hrnet/fcn_hr18s_480x480_40k_pascal_context_59.py create mode 100644 configs/hrnet/fcn_hr18s_480x480_80k_pascal_context_59.py create mode 100644 configs/hrnet/fcn_hr48_480x480_40k_pascal_context_59.py create mode 100644 configs/hrnet/fcn_hr48_480x480_80k_pascal_context_59.py create mode 100644 configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context_59.py create mode 100644 configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context_59.py create mode 100644 configs/pspnet/pspnet_r50-d8_480x480_40k_pascal_context_59.py create mode 100644 configs/pspnet/pspnet_r50-d8_480x480_80k_pascal_context_59.py diff --git a/configs/_base_/datasets/pascal_context_59.py b/configs/_base_/datasets/pascal_context_59.py new file mode 100644 index 0000000000..37585abab8 --- /dev/null +++ b/configs/_base_/datasets/pascal_context_59.py @@ -0,0 +1,60 @@ +# dataset settings +dataset_type = 'PascalContextDataset59' +data_root = 'data/VOCdevkit/VOC2010/' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) + +img_scale = (520, 520) +crop_size = (480, 480) + +train_pipeline = [ + dict(type='LoadImageFromFile'), + dict(type='LoadAnnotations', reduce_zero_label=True), + dict(type='Resize', img_scale=img_scale, ratio_range=(0.5, 2.0)), + dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='RandomFlip', prob=0.5), + dict(type='PhotoMetricDistortion'), + dict(type='Normalize', **img_norm_cfg), + dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255), + dict(type='DefaultFormatBundle'), + dict(type='Collect', keys=['img', 'gt_semantic_seg']), +] +test_pipeline = [ + dict(type='LoadImageFromFile'), + dict( + type='MultiScaleFlipAug', + img_scale=img_scale, + # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75], + flip=False, + transforms=[ + dict(type='Resize', keep_ratio=True), + dict(type='RandomFlip'), + dict(type='Normalize', **img_norm_cfg), + dict(type='ImageToTensor', keys=['img']), + dict(type='Collect', keys=['img']), + ]) +] +data = dict( + samples_per_gpu=4, + workers_per_gpu=4, + train=dict( + type=dataset_type, + data_root=data_root, + img_dir='JPEGImages', + ann_dir='SegmentationClassContext', + split='ImageSets/SegmentationContext/train.txt', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + data_root=data_root, + img_dir='JPEGImages', + ann_dir='SegmentationClassContext', + split='ImageSets/SegmentationContext/val.txt', + pipeline=test_pipeline), + test=dict( + type=dataset_type, + data_root=data_root, + img_dir='JPEGImages', + ann_dir='SegmentationClassContext', + split='ImageSets/SegmentationContext/val.txt', + pipeline=test_pipeline)) diff --git a/configs/deeplabv3/README.md b/configs/deeplabv3/README.md index 205bbcbf2f..970a779c7d 100644 --- a/configs/deeplabv3/README.md +++ b/configs/deeplabv3/README.md @@ -64,3 +64,10 @@ Note: `D-8` here corresponding to the output stride 8 setting for DeepLab series | --------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | DeepLabV3 | R-101-D8 | 480x480 | 40000 | 9.2 | 7.09 | 46.55 | 47.81 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context/deeplabv3_r101-d8_480x480_40k_pascal_context_20200911_204118-1aa27336.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context/deeplabv3_r101-d8_480x480_40k_pascal_context-20200911_204118.log.json) | | DeepLabV3 | R-101-D8 | 480x480 | 80000 | - | - | 46.42 | 47.53 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context/deeplabv3_r101-d8_480x480_80k_pascal_context_20200911_170155-2a21fff3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context/deeplabv3_r101-d8_480x480_80k_pascal_context-20200911_170155.log.json) | + +### Pascal Context 59 + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| --------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| DeepLabV3 | R-101-D8 | 480x480 | 40000 | - | - | 52.61 | 54.28 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context_59/deeplabv3_r101-d8_480x480_40k_pascal_context_59_20210416_110332-cb08ea46.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context_59/deeplabv3_r101-d8_480x480_40k_pascal_context_59-20210416_110332.log.json) | +| DeepLabV3 | R-101-D8 | 480x480 | 80000 | - | - | 52.46 | 54.09 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context_59/deeplabv3_r101-d8_480x480_80k_pascal_context_59_20210416_113002-26303993.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context_59/deeplabv3_r101-d8_480x480_80k_pascal_context_59-20210416_113002.log.json) | diff --git a/configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context_59.py b/configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context_59.py new file mode 100644 index 0000000000..4874121fd0 --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context_59.py @@ -0,0 +1,2 @@ +_base_ = './deeplabv3_r50-d8_480x480_40k_pascal_context_59.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context_59.py b/configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context_59.py new file mode 100644 index 0000000000..032dc8b621 --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context_59.py @@ -0,0 +1,2 @@ +_base_ = './deeplabv3_r50-d8_480x480_80k_pascal_context_59.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/deeplabv3/deeplabv3_r50-d8_480x480_40k_pascal_context_59.py b/configs/deeplabv3/deeplabv3_r50-d8_480x480_40k_pascal_context_59.py new file mode 100644 index 0000000000..038993c6a4 --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r50-d8_480x480_40k_pascal_context_59.py @@ -0,0 +1,10 @@ +_base_ = [ + '../_base_/models/deeplabv3_r50-d8.py', + '../_base_/datasets/pascal_context_59.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_40k.py' +] +model = dict( + decode_head=dict(num_classes=59), + auxiliary_head=dict(num_classes=59), + test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) +optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/deeplabv3/deeplabv3_r50-d8_480x480_80k_pascal_context_59.py b/configs/deeplabv3/deeplabv3_r50-d8_480x480_80k_pascal_context_59.py new file mode 100644 index 0000000000..bcdc0b459d --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r50-d8_480x480_80k_pascal_context_59.py @@ -0,0 +1,10 @@ +_base_ = [ + '../_base_/models/deeplabv3_r50-d8.py', + '../_base_/datasets/pascal_context_59.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_80k.py' +] +model = dict( + decode_head=dict(num_classes=59), + auxiliary_head=dict(num_classes=59), + test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) +optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/deeplabv3plus/README.md b/configs/deeplabv3plus/README.md index 934ee34568..84ef47effb 100644 --- a/configs/deeplabv3plus/README.md +++ b/configs/deeplabv3plus/README.md @@ -66,3 +66,10 @@ Note: | ---------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | -------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | DeepLabV3+ | R-101-D8 | 480x480 | 40000 | - | 9.09 | 47.30 | 48.47 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context/deeplabv3plus_r101-d8_480x480_40k_pascal_context_20200911_165459-d3c8a29e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context/deeplabv3plus_r101-d8_480x480_40k_pascal_context-20200911_165459.log.json) | | DeepLabV3+ | R-101-D8 | 480x480 | 80000 | - | - | 47.23 | 48.26 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context/deeplabv3plus_r101-d8_480x480_80k_pascal_context_20200911_155322-145d3ee8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context/deeplabv3plus_r101-d8_480x480_80k_pascal_context-20200911_155322.log.json) | + +#### Pascal Context 59 + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ---------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | -------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| DeepLabV3+ | R-101-D8 | 480x480 | 40000 | - | - | 52.86 | 54.54 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59_20210416_111233-ed937f15.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59-20210416_111233.log.json) | +| DeepLabV3+ | R-101-D8 | 480x480 | 80000 | - | - | 53.2 | 54.67 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59_20210416_111127-7ca0331d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59-20210416_111127.log.json) | diff --git a/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59.py b/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59.py new file mode 100644 index 0000000000..36a510ff41 --- /dev/null +++ b/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59.py @@ -0,0 +1,2 @@ +_base_ = './deeplabv3plus_r50-d8_480x480_40k_pascal_context_59.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59.py b/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59.py new file mode 100644 index 0000000000..a6a7688c7a --- /dev/null +++ b/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59.py @@ -0,0 +1,2 @@ +_base_ = './deeplabv3plus_r50-d8_480x480_80k_pascal_context_59.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_40k_pascal_context_59.py b/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_40k_pascal_context_59.py new file mode 100644 index 0000000000..f9e831bcd1 --- /dev/null +++ b/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_40k_pascal_context_59.py @@ -0,0 +1,10 @@ +_base_ = [ + '../_base_/models/deeplabv3plus_r50-d8.py', + '../_base_/datasets/pascal_context_59.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_40k.py' +] +model = dict( + decode_head=dict(num_classes=59), + auxiliary_head=dict(num_classes=59), + test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) +optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_80k_pascal_context_59.py b/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_80k_pascal_context_59.py new file mode 100644 index 0000000000..d2af575df7 --- /dev/null +++ b/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_80k_pascal_context_59.py @@ -0,0 +1,10 @@ +_base_ = [ + '../_base_/models/deeplabv3plus_r50-d8.py', + '../_base_/datasets/pascal_context_59.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_80k.py' +] +model = dict( + decode_head=dict(num_classes=59), + auxiliary_head=dict(num_classes=59), + test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) +optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/fcn/README.md b/configs/fcn/README.md index 13db1de14c..851e387a84 100644 --- a/configs/fcn/README.md +++ b/configs/fcn/README.md @@ -76,3 +76,10 @@ | ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | FCN | R-101-D8 | 480x480 | 40000 | - | 9.93 | 44.14 | 45.67 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101-d8_480x480_40k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context_20200911_212515-9b565a6d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context-20200911_212515.log.json) | | FCN | R-101-D8 | 480x480 | 80000 | - | - | 44.47 | 45.74 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101-d8_480x480_80k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context_20200915_032644-a3828480.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context-20200915_032644.log.json) | + +### Pascal Context 59 + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| FCN | R-101-D8 | 480x480 | 40000 | - | - | 48.42 | 50.4 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101-d8_480x480_40k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context_59/fcn_r101-d8_480x480_40k_pascal_context_59_20210415_230724-8cf83682.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context_59/fcn_r101-d8_480x480_40k_pascal_context_59-20210415_230724.log.json) | +| FCN | R-101-D8 | 480x480 | 80000 | - | - | 49.35 | 51.38 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101-d8_480x480_80k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context_59/fcn_r101-d8_480x480_80k_pascal_context_59_20210416_110804-9a6f2c94.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context_59/fcn_r101-d8_480x480_80k_pascal_context_59-20210416_110804.log.json) | diff --git a/configs/fcn/fcn_r101-d8_480x480_40k_pascal_context_59.py b/configs/fcn/fcn_r101-d8_480x480_40k_pascal_context_59.py new file mode 100644 index 0000000000..908f4bff00 --- /dev/null +++ b/configs/fcn/fcn_r101-d8_480x480_40k_pascal_context_59.py @@ -0,0 +1,2 @@ +_base_ = './fcn_r50-d8_480x480_40k_pascal_context_59.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/fcn/fcn_r101-d8_480x480_80k_pascal_context_59.py b/configs/fcn/fcn_r101-d8_480x480_80k_pascal_context_59.py new file mode 100644 index 0000000000..09cb612e42 --- /dev/null +++ b/configs/fcn/fcn_r101-d8_480x480_80k_pascal_context_59.py @@ -0,0 +1,2 @@ +_base_ = './fcn_r50-d8_480x480_80k_pascal_context_59.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/fcn/fcn_r50-d8_480x480_40k_pascal_context_59.py b/configs/fcn/fcn_r50-d8_480x480_40k_pascal_context_59.py new file mode 100644 index 0000000000..4a8180038b --- /dev/null +++ b/configs/fcn/fcn_r50-d8_480x480_40k_pascal_context_59.py @@ -0,0 +1,10 @@ +_base_ = [ + '../_base_/models/fcn_r50-d8.py', + '../_base_/datasets/pascal_context_59.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_40k.py' +] +model = dict( + decode_head=dict(num_classes=59), + auxiliary_head=dict(num_classes=59), + test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) +optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/fcn/fcn_r50-d8_480x480_80k_pascal_context_59.py b/configs/fcn/fcn_r50-d8_480x480_80k_pascal_context_59.py new file mode 100644 index 0000000000..02507ccb7e --- /dev/null +++ b/configs/fcn/fcn_r50-d8_480x480_80k_pascal_context_59.py @@ -0,0 +1,10 @@ +_base_ = [ + '../_base_/models/fcn_r50-d8.py', + '../_base_/datasets/pascal_context_59.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_80k.py' +] +model = dict( + decode_head=dict(num_classes=59), + auxiliary_head=dict(num_classes=59), + test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) +optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/hrnet/README.md b/configs/hrnet/README.md index 9f5e631a59..1cf7597b75 100644 --- a/configs/hrnet/README.md +++ b/configs/hrnet/README.md @@ -57,3 +57,10 @@ | ------ | ------------ | --------- | ------: | -------- | -------------- | ----: | ------------: | ----------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | FCN | HRNetV2p-W48 | 480x480 | 40000 | 6.1 | 8.86 | 45.14 | 47.42 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr48_480x480_40k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context/fcn_hr48_480x480_40k_pascal_context_20200911_164852-667d00b0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context/fcn_hr48_480x480_40k_pascal_context-20200911_164852.log.json) | | FCN | HRNetV2p-W48 | 480x480 | 80000 | - | - | 45.84 | 47.84 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr48_480x480_80k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context/fcn_hr48_480x480_80k_pascal_context_20200911_155322-847a6711.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context/fcn_hr48_480x480_80k_pascal_context-20200911_155322.log.json) | + +### Pascal Context 59 + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | ------------ | --------- | ------: | -------- | -------------- | ----: | ------------: | ----------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| FCN | HRNetV2p-W48 | 480x480 | 40000 | - | - | 50.33 | 52.83 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr48_480x480_40k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context_59/fcn_hr48_480x480_40k_pascal_context_59_20210410_122738-b808b8b2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context_59/fcn_hr48_480x480_40k_pascal_context_59-20210410_122738.log.json) | +| FCN | HRNetV2p-W48 | 480x480 | 80000 | - | - | 51.12 | 53.56 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr48_480x480_80k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context_59/fcn_hr48_480x480_80k_pascal_context_59_20210411_003240-3ae7081e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context_59/fcn_hr48_480x480_80k_pascal_context_59-20210411_003240.log.json) | diff --git a/configs/hrnet/fcn_hr18_480x480_40k_pascal_context_59.py b/configs/hrnet/fcn_hr18_480x480_40k_pascal_context_59.py new file mode 100644 index 0000000000..d2eecf0163 --- /dev/null +++ b/configs/hrnet/fcn_hr18_480x480_40k_pascal_context_59.py @@ -0,0 +1,8 @@ +_base_ = [ + '../_base_/models/fcn_hr18.py', '../_base_/datasets/pascal_context_59.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' +] +model = dict( + decode_head=dict(num_classes=59), + test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) +optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/hrnet/fcn_hr18_480x480_80k_pascal_context_59.py b/configs/hrnet/fcn_hr18_480x480_80k_pascal_context_59.py new file mode 100644 index 0000000000..9cbf4100d1 --- /dev/null +++ b/configs/hrnet/fcn_hr18_480x480_80k_pascal_context_59.py @@ -0,0 +1,8 @@ +_base_ = [ + '../_base_/models/fcn_hr18.py', '../_base_/datasets/pascal_context_59.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' +] +model = dict( + decode_head=dict(num_classes=59), + test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) +optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/hrnet/fcn_hr18s_480x480_40k_pascal_context_59.py b/configs/hrnet/fcn_hr18s_480x480_40k_pascal_context_59.py new file mode 100644 index 0000000000..0412c64f31 --- /dev/null +++ b/configs/hrnet/fcn_hr18s_480x480_40k_pascal_context_59.py @@ -0,0 +1,9 @@ +_base_ = './fcn_hr18_480x480_40k_pascal_context_59.py' +model = dict( + pretrained='open-mmlab://msra/hrnetv2_w18_small', + backbone=dict( + extra=dict( + stage1=dict(num_blocks=(2, )), + stage2=dict(num_blocks=(2, 2)), + stage3=dict(num_modules=3, num_blocks=(2, 2, 2)), + stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2))))) diff --git a/configs/hrnet/fcn_hr18s_480x480_80k_pascal_context_59.py b/configs/hrnet/fcn_hr18s_480x480_80k_pascal_context_59.py new file mode 100644 index 0000000000..babd88db4e --- /dev/null +++ b/configs/hrnet/fcn_hr18s_480x480_80k_pascal_context_59.py @@ -0,0 +1,9 @@ +_base_ = './fcn_hr18_480x480_80k_pascal_context_59.py' +model = dict( + pretrained='open-mmlab://msra/hrnetv2_w18_small', + backbone=dict( + extra=dict( + stage1=dict(num_blocks=(2, )), + stage2=dict(num_blocks=(2, 2)), + stage3=dict(num_modules=3, num_blocks=(2, 2, 2)), + stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2))))) diff --git a/configs/hrnet/fcn_hr48_480x480_40k_pascal_context_59.py b/configs/hrnet/fcn_hr48_480x480_40k_pascal_context_59.py new file mode 100644 index 0000000000..655b460467 --- /dev/null +++ b/configs/hrnet/fcn_hr48_480x480_40k_pascal_context_59.py @@ -0,0 +1,10 @@ +_base_ = './fcn_hr18_480x480_40k_pascal_context_59.py' +model = dict( + pretrained='open-mmlab://msra/hrnetv2_w48', + backbone=dict( + extra=dict( + stage2=dict(num_channels=(48, 96)), + stage3=dict(num_channels=(48, 96, 192)), + stage4=dict(num_channels=(48, 96, 192, 384)))), + decode_head=dict( + in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384]))) diff --git a/configs/hrnet/fcn_hr48_480x480_80k_pascal_context_59.py b/configs/hrnet/fcn_hr48_480x480_80k_pascal_context_59.py new file mode 100644 index 0000000000..012ad0a7d6 --- /dev/null +++ b/configs/hrnet/fcn_hr48_480x480_80k_pascal_context_59.py @@ -0,0 +1,10 @@ +_base_ = './fcn_hr18_480x480_80k_pascal_context_59.py' +model = dict( + pretrained='open-mmlab://msra/hrnetv2_w48', + backbone=dict( + extra=dict( + stage2=dict(num_channels=(48, 96)), + stage3=dict(num_channels=(48, 96, 192)), + stage4=dict(num_channels=(48, 96, 192, 384)))), + decode_head=dict( + in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384]))) diff --git a/configs/pspnet/README.md b/configs/pspnet/README.md index 2c8b19a26d..34ca237c3e 100644 --- a/configs/pspnet/README.md +++ b/configs/pspnet/README.md @@ -60,3 +60,10 @@ | ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | PSPNet | R-101-D8 | 480x480 | 40000 | 8.8 | 9.68 | 46.60 | 47.78 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context/pspnet_r101-d8_480x480_40k_pascal_context_20200911_211210-bf0f5d7c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context/pspnet_r101-d8_480x480_40k_pascal_context-20200911_211210.log.json) | | PSPNet | R-101-D8 | 480x480 | 80000 | - | - | 46.03 | 47.15 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context/pspnet_r101-d8_480x480_80k_pascal_context_20200911_190530-c86d6233.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context/pspnet_r101-d8_480x480_80k_pascal_context-20200911_190530.log.json) | + +### Pascal Context 59 + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| PSPNet | R-101-D8 | 480x480 | 40000 | - | - | 52.02 | 53.54 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context_59/pspnet_r101-d8_480x480_40k_pascal_context_59_20210416_114524-86d44cd4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context_59/pspnet_r101-d8_480x480_40k_pascal_context_59-20210416_114524.log.json) | +| PSPNet | R-101-D8 | 480x480 | 80000 | - | - | 52.47 | 53.99 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context_59/pspnet_r101-d8_480x480_80k_pascal_context_59_20210416_114418-fa6caaa2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context_59/pspnet_r101-d8_480x480_80k_pascal_context_59-20210416_114418.log.json) | diff --git a/configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context_59.py b/configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context_59.py new file mode 100644 index 0000000000..081cb3732a --- /dev/null +++ b/configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context_59.py @@ -0,0 +1,2 @@ +_base_ = './pspnet_r50-d8_480x480_40k_pascal_context_59.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context_59.py b/configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context_59.py new file mode 100644 index 0000000000..795c51f8cf --- /dev/null +++ b/configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context_59.py @@ -0,0 +1,2 @@ +_base_ = './pspnet_r50-d8_480x480_80k_pascal_context_59.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/pspnet/pspnet_r50-d8_480x480_40k_pascal_context.py b/configs/pspnet/pspnet_r50-d8_480x480_40k_pascal_context.py index 86da94de5b..30abe46e70 100644 --- a/configs/pspnet/pspnet_r50-d8_480x480_40k_pascal_context.py +++ b/configs/pspnet/pspnet_r50-d8_480x480_40k_pascal_context.py @@ -4,6 +4,7 @@ '../_base_/schedules/schedule_40k.py' ] model = dict( - decode_head=dict(num_classes=60), auxiliary_head=dict(num_classes=60)) -test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320)) + decode_head=dict(num_classes=60), + auxiliary_head=dict(num_classes=60), + test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/pspnet/pspnet_r50-d8_480x480_40k_pascal_context_59.py b/configs/pspnet/pspnet_r50-d8_480x480_40k_pascal_context_59.py new file mode 100644 index 0000000000..88041c6817 --- /dev/null +++ b/configs/pspnet/pspnet_r50-d8_480x480_40k_pascal_context_59.py @@ -0,0 +1,10 @@ +_base_ = [ + '../_base_/models/pspnet_r50-d8.py', + '../_base_/datasets/pascal_context_59.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_40k.py' +] +model = dict( + decode_head=dict(num_classes=59), + auxiliary_head=dict(num_classes=59), + test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) +optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/pspnet/pspnet_r50-d8_480x480_80k_pascal_context.py b/configs/pspnet/pspnet_r50-d8_480x480_80k_pascal_context.py index cbb02714b9..09e96dabf7 100644 --- a/configs/pspnet/pspnet_r50-d8_480x480_80k_pascal_context.py +++ b/configs/pspnet/pspnet_r50-d8_480x480_80k_pascal_context.py @@ -4,6 +4,7 @@ '../_base_/schedules/schedule_80k.py' ] model = dict( - decode_head=dict(num_classes=60), auxiliary_head=dict(num_classes=60)) -test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320)) + decode_head=dict(num_classes=60), + auxiliary_head=dict(num_classes=60), + test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/pspnet/pspnet_r50-d8_480x480_80k_pascal_context_59.py b/configs/pspnet/pspnet_r50-d8_480x480_80k_pascal_context_59.py new file mode 100644 index 0000000000..d4065ec05c --- /dev/null +++ b/configs/pspnet/pspnet_r50-d8_480x480_80k_pascal_context_59.py @@ -0,0 +1,10 @@ +_base_ = [ + '../_base_/models/pspnet_r50-d8.py', + '../_base_/datasets/pascal_context_59.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_80k.py' +] +model = dict( + decode_head=dict(num_classes=59), + auxiliary_head=dict(num_classes=59), + test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) +optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/demo/MMSegmentation_Tutorial.ipynb b/demo/MMSegmentation_Tutorial.ipynb index 0291911707..b173c9d554 100644 --- a/demo/MMSegmentation_Tutorial.ipynb +++ b/demo/MMSegmentation_Tutorial.ipynb @@ -1095,6 +1095,13 @@ } } ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ] } diff --git a/mmseg/datasets/__init__.py b/mmseg/datasets/__init__.py index 4f248dc16b..ebeaef4a28 100644 --- a/mmseg/datasets/__init__.py +++ b/mmseg/datasets/__init__.py @@ -6,7 +6,7 @@ from .dataset_wrappers import ConcatDataset, RepeatDataset from .drive import DRIVEDataset from .hrf import HRFDataset -from .pascal_context import PascalContextDataset +from .pascal_context import PascalContextDataset, PascalContextDataset59 from .stare import STAREDataset from .voc import PascalVOCDataset @@ -14,5 +14,6 @@ 'CustomDataset', 'build_dataloader', 'ConcatDataset', 'RepeatDataset', 'DATASETS', 'build_dataset', 'PIPELINES', 'CityscapesDataset', 'PascalVOCDataset', 'ADE20KDataset', 'PascalContextDataset', - 'ChaseDB1Dataset', 'DRIVEDataset', 'HRFDataset', 'STAREDataset' + 'PascalContextDataset59', 'ChaseDB1Dataset', 'DRIVEDataset', 'HRFDataset', + 'STAREDataset' ] diff --git a/mmseg/datasets/pascal_context.py b/mmseg/datasets/pascal_context.py index ab42877f1e..541a63c66a 100644 --- a/mmseg/datasets/pascal_context.py +++ b/mmseg/datasets/pascal_context.py @@ -17,15 +17,15 @@ class PascalContextDataset(CustomDataset): split (str): Split txt file for PascalContext. """ - CLASSES = ('background', 'aeroplane', 'bicycle', 'bird', 'boat', 'bottle', - 'bus', 'car', 'cat', 'chair', 'cow', 'table', 'dog', 'horse', - 'motorbike', 'person', 'pottedplant', 'sheep', 'sofa', 'train', - 'tvmonitor', 'bag', 'bed', 'bench', 'book', 'building', - 'cabinet', 'ceiling', 'cloth', 'computer', 'cup', 'door', - 'fence', 'floor', 'flower', 'food', 'grass', 'ground', - 'keyboard', 'light', 'mountain', 'mouse', 'curtain', 'platform', - 'sign', 'plate', 'road', 'rock', 'shelves', 'sidewalk', 'sky', - 'snow', 'bedclothes', 'track', 'tree', 'truck', 'wall', 'water', + CLASSES = ('background', 'aeroplane', 'bag', 'bed', 'bedclothes', 'bench', + 'bicycle', 'bird', 'boat', 'book', 'bottle', 'building', 'bus', + 'cabinet', 'car', 'cat', 'ceiling', 'chair', 'cloth', + 'computer', 'cow', 'cup', 'curtain', 'dog', 'door', 'fence', + 'floor', 'flower', 'food', 'grass', 'ground', 'horse', + 'keyboard', 'light', 'motorbike', 'mountain', 'mouse', 'person', + 'plate', 'platform', 'pottedplant', 'road', 'rock', 'sheep', + 'shelves', 'sidewalk', 'sign', 'sky', 'snow', 'sofa', 'table', + 'track', 'train', 'tree', 'truck', 'tvmonitor', 'wall', 'water', 'window', 'wood') PALETTE = [[120, 120, 120], [180, 120, 120], [6, 230, 230], [80, 50, 50], @@ -52,3 +52,52 @@ def __init__(self, split, **kwargs): reduce_zero_label=False, **kwargs) assert osp.exists(self.img_dir) and self.split is not None + + +@DATASETS.register_module() +class PascalContextDataset59(CustomDataset): + """PascalContext dataset. + + In segmentation map annotation for PascalContext, 0 stands for background, + which is included in 60 categories. ``reduce_zero_label`` is fixed to + False. The ``img_suffix`` is fixed to '.jpg' and ``seg_map_suffix`` is + fixed to '.png'. + + Args: + split (str): Split txt file for PascalContext. + """ + + CLASSES = ('aeroplane', 'bag', 'bed', 'bedclothes', 'bench', 'bicycle', + 'bird', 'boat', 'book', 'bottle', 'building', 'bus', 'cabinet', + 'car', 'cat', 'ceiling', 'chair', 'cloth', 'computer', 'cow', + 'cup', 'curtain', 'dog', 'door', 'fence', 'floor', 'flower', + 'food', 'grass', 'ground', 'horse', 'keyboard', 'light', + 'motorbike', 'mountain', 'mouse', 'person', 'plate', 'platform', + 'pottedplant', 'road', 'rock', 'sheep', 'shelves', 'sidewalk', + 'sign', 'sky', 'snow', 'sofa', 'table', 'track', 'train', + 'tree', 'truck', 'tvmonitor', 'wall', 'water', 'window', 'wood') + + PALETTE = [[180, 120, 120], [6, 230, 230], [80, 50, 50], [4, 200, 3], + [120, 120, 80], [140, 140, 140], [204, 5, 255], [230, 230, 230], + [4, 250, 7], [224, 5, 255], [235, 255, 7], [150, 5, 61], + [120, 120, 70], [8, 255, 51], [255, 6, 82], [143, 255, 140], + [204, 255, 4], [255, 51, 7], [204, 70, 3], [0, 102, 200], + [61, 230, 250], [255, 6, 51], [11, 102, 255], [255, 7, 71], + [255, 9, 224], [9, 7, 230], [220, 220, 220], [255, 9, 92], + [112, 9, 255], [8, 255, 214], [7, 255, 224], [255, 184, 6], + [10, 255, 71], [255, 41, 10], [7, 255, 255], [224, 255, 8], + [102, 8, 255], [255, 61, 6], [255, 194, 7], [255, 122, 8], + [0, 255, 20], [255, 8, 41], [255, 5, 153], [6, 51, 255], + [235, 12, 255], [160, 150, 20], [0, 163, 255], [140, 140, 140], + [250, 10, 15], [20, 255, 0], [31, 255, 0], [255, 31, 0], + [255, 224, 0], [153, 255, 0], [0, 0, 255], [255, 71, 0], + [0, 235, 255], [0, 173, 255], [31, 0, 255]] + + def __init__(self, split, **kwargs): + super(PascalContextDataset59, self).__init__( + img_suffix='.jpg', + seg_map_suffix='.png', + split=split, + reduce_zero_label=True, + **kwargs) + assert osp.exists(self.img_dir) and self.split is not None From b03640f223c9b386af1b433787c3acbcd5c32b42 Mon Sep 17 00:00:00 2001 From: quincylin1 <33197366+quincylin1@users.noreply.github.com> Date: Thu, 22 Apr 2021 07:08:59 +0800 Subject: [PATCH 123/706] add mmocr link (#501) --- README.md | 1 + README_zh-CN.md | 1 + 2 files changed, 2 insertions(+) diff --git a/README.md b/README.md index 26f6c0623b..f32ca20e35 100644 --- a/README.md +++ b/README.md @@ -136,3 +136,4 @@ and develop their own new semantic segmentation methods. - [MMTracking](https://github.com/open-mmlab/mmtracking): OpenMMLab video perception toolbox and benchmark. - [MMPose](https://github.com/open-mmlab/mmpose): OpenMMLab pose estimation toolbox and benchmark. - [MMEditing](https://github.com/open-mmlab/mmediting): OpenMMLab image and video editing toolbox. +- [MMOCR](https://github.com/open-mmlab/mmocr): A Comprehensive Toolbox for Text Detection, Recognition and Understanding. diff --git a/README_zh-CN.md b/README_zh-CN.md index 7ce583f8cb..df7439485d 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -132,3 +132,4 @@ MMSegmentation 是一个由来自不同高校和企业的研发人员共同参 - [MMTracking](https://github.com/open-mmlab/mmtracking): OpenMMLab 一体化视频目标感知平台 - [MMPose](https://github.com/open-mmlab/mmpose): OpenMMLab 姿态估计工具箱 - [MMEditing](https://github.com/open-mmlab/mmediting): OpenMMLab 图像视频编辑工具箱 +- [MMOCR](https://github.com/open-mmlab/mmocr): OpenMMLab 全流程文字检测识别理解工具包. From 0d99ff9c358f14d851f03530b2643fcf308fdc56 Mon Sep 17 00:00:00 2001 From: sshuair Date: Thu, 22 Apr 2021 07:09:59 +0800 Subject: [PATCH 124/706] more docs about tools pytorch2torchscript and print_config (#499) * Description of arguments about tools pytorch2torchscript and print_config * fix docs lint --- docs/useful_tools.md | 42 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/docs/useful_tools.md b/docs/useful_tools.md index 81cbeb8662..3e53152855 100644 --- a/docs/useful_tools.md +++ b/docs/useful_tools.md @@ -79,13 +79,40 @@ Description of arguments: We also provide a script to convert model to [TorchScript](https://pytorch.org/docs/stable/jit.html) format. You can use the pytorch C++ API [LibTorch](https://pytorch.org/docs/stable/cpp_index.html) inference the trained model. The converted model could be visualized by tools like [Netron](https://github.com/lutzroeder/netron). Besides, we also support comparing the output results between Pytorch and TorchScript model. ```shell -python tools/pytorch2torchscript.py ${CONFIG_FILE} --checkpoint ${CHECKPOINT_FILE} --output-file ${ONNX_FILE} [--shape ${INPUT_SHAPE} --verify] +python tools/pytorch2torchscript.py \ + ${CONFIG_FILE} \ + --checkpoint ${CHECKPOINT_FILE} \ + --output-file ${ONNX_FILE} + --shape ${INPUT_SHAPE} + --verify \ + --show ``` +Description of arguments: + +- `config` : The path of a pytorch model config file. +- `--checkpoint` : The path of a pytorch model checkpoint file. +- `--output-file`: The path of output TorchScript model. If not specified, it will be set to `tmp.pt`. +- `--input-img` : The path of an input image for conversion and visualize. +- `--shape`: The height and width of input tensor to the model. If not specified, it will be set to `512 512`. +- `--show`: Determines whether to print the traced graph of the exported model. If not specified, it will be set to `False`. +- `--verify`: Determines whether to verify the correctness of an exported model. If not specified, it will be set to `False`. + **Note**: It's only support PyTorch>=1.8.0 for now. **Note**: This tool is still experimental. Some customized operators are not supported for now. +Examples: + +- Convert the cityscapes PSPNet pytorch model. + + ```shell + python tools/pytorch2torchscript.py configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \ + --checkpoint checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth \ + --output-file checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pt \ + --shape 512 1024 + ``` + ## Miscellaneous ### Print the entire config @@ -94,12 +121,21 @@ python tools/pytorch2torchscript.py ${CONFIG_FILE} --checkpoint ${CHECKPOINT_FIL imports. ```shell -python tools/print_config.py ${CONFIG} [-h] [--options ${OPTIONS [OPTIONS...]}] +python tools/print_config.py \ + ${CONFIG} \ + --graph \ + --options ${OPTIONS [OPTIONS...]} \ ``` +Description of arguments: + +- `config` : The path of a pytorch model config file. +- `--graph` : Determines whether to print the models graph. +- `--options`: Custom options to replace the config file. + ### Plot training logs -`tools/analyze_logs.py` plot s loss/mIoU curves given a training log file. `pip install seaborn` first to install the dependency. +`tools/analyze_logs.py` plots loss/mIoU curves given a training log file. `pip install seaborn` first to install the dependency. ```shell python tools/analyze_logs.py xxx.log.json [--keys ${KEYS}] [--legend ${LEGEND}] [--backend ${BACKEND}] [--style ${STYLE}] [--out ${OUT_FILE}] From b379b5a5b3408cfe5641b39e6d4bf3307e09fcd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=98=95=E8=BE=B0?= Date: Thu, 22 Apr 2021 11:19:55 +0800 Subject: [PATCH 125/706] support transformer backbone (#465) * vit backbone * fix lint * add docstrings and fix pretrained pos_embed dim not match prob * add unittest for vit * fix lint * add vit based fcn configs * fix import error * support multiple resolution input images * upsample pos_embed at init_weights * support resize pos_embed at evaluation * fix training errors * add more unitest code for vit backbone * unitest for uncovered code * add norm_eval unittest * refactor _pos_embeding * minor change * change var name * rafactor init_weight * load weights after resize * ignore 'module' in pretrain checkpoint * add with_cp * add with_cp Co-authored-by: Jiarui XU --- mmseg/models/backbones/__init__.py | 4 +- mmseg/models/backbones/vit.py | 396 +++++++++++++++++++ tests/test_models/test_backbones/test_vit.py | 64 +++ 3 files changed, 463 insertions(+), 1 deletion(-) create mode 100644 mmseg/models/backbones/vit.py create mode 100644 tests/test_models/test_backbones/test_vit.py diff --git a/mmseg/models/backbones/__init__.py b/mmseg/models/backbones/__init__.py index 740317da20..eae064b6e5 100644 --- a/mmseg/models/backbones/__init__.py +++ b/mmseg/models/backbones/__init__.py @@ -7,8 +7,10 @@ from .resnet import ResNet, ResNetV1c, ResNetV1d from .resnext import ResNeXt from .unet import UNet +from .vit import VisionTransformer __all__ = [ 'ResNet', 'ResNetV1c', 'ResNetV1d', 'ResNeXt', 'HRNet', 'FastSCNN', - 'ResNeSt', 'MobileNetV2', 'UNet', 'CGNet', 'MobileNetV3' + 'ResNeSt', 'MobileNetV2', 'UNet', 'CGNet', 'MobileNetV3', + 'VisionTransformer' ] diff --git a/mmseg/models/backbones/vit.py b/mmseg/models/backbones/vit.py new file mode 100644 index 0000000000..bda2a35453 --- /dev/null +++ b/mmseg/models/backbones/vit.py @@ -0,0 +1,396 @@ +"""Modified from https://github.com/rwightman/pytorch-image- +models/blob/master/timm/models/vision_transformer.py.""" + +import math + +import torch +import torch.nn as nn +import torch.nn.functional as F +import torch.utils.checkpoint as cp +from mmcv.cnn import (Conv2d, Linear, build_activation_layer, build_norm_layer, + constant_init, kaiming_init, normal_init, xavier_init) +from mmcv.runner import _load_checkpoint +from mmcv.utils.parrots_wrapper import _BatchNorm + +from mmseg.utils import get_root_logger +from ..builder import BACKBONES + + +class Mlp(nn.Module): + """MLP layer for Encoder block. + + Args: + in_features(int): Input dimension for the first fully + connected layer. + hidden_features(int): Output dimension for the first fully + connected layer. + out_features(int): Output dementsion for the second fully + connected layer. + act_cfg(dict): Config dict for activation layer. + Default: dict(type='GELU'). + drop(float): Drop rate for the dropout layer. Dropout rate has + to be between 0 and 1. Default: 0. + """ + + def __init__(self, + in_features, + hidden_features=None, + out_features=None, + act_cfg=dict(type='GELU'), + drop=0.): + super(Mlp, self).__init__() + out_features = out_features or in_features + hidden_features = hidden_features or in_features + self.fc1 = Linear(in_features, hidden_features) + self.act = build_activation_layer(act_cfg) + self.fc2 = Linear(hidden_features, out_features) + self.drop = nn.Dropout(drop) + + def forward(self, x): + x = self.fc1(x) + x = self.act(x) + x = self.drop(x) + x = self.fc2(x) + x = self.drop(x) + return x + + +class Attention(nn.Module): + """Attention layer for Encoder block. + + Args: + dim (int): Dimension for the input vector. + num_heads (int): Number of parallel attention heads. + qkv_bias (bool): Enable bias for qkv if True. Default: False. + qk_scale (float): Override default qk scale of head_dim ** -0.5 if set. + attn_drop (float): Drop rate for attention output weights. + Default: 0. + proj_drop (float): Drop rate for output weights. Default: 0. + """ + + def __init__(self, + dim, + num_heads=8, + qkv_bias=False, + qk_scale=None, + attn_drop=0., + proj_drop=0.): + super(Attention, self).__init__() + self.num_heads = num_heads + head_dim = dim // num_heads + self.scale = qk_scale or head_dim**-0.5 + + self.qkv = nn.Linear(dim, dim * 3, bias=qkv_bias) + self.attn_drop = nn.Dropout(attn_drop) + self.proj = Linear(dim, dim) + self.proj_drop = nn.Dropout(proj_drop) + + def forward(self, x): + b, n, c = x.shape + qkv = self.qkv(x).reshape(b, n, 3, self.num_heads, + c // self.num_heads).permute(2, 0, 3, 1, 4) + q, k, v = qkv[0], qkv[1], qkv[2] + + attn = (q @ k.transpose(-2, -1)) * self.scale + attn = attn.softmax(dim=-1) + attn = self.attn_drop(attn) + + x = (attn @ v).transpose(1, 2).reshape(b, n, c) + x = self.proj(x) + x = self.proj_drop(x) + return x + + +class Block(nn.Module): + """Implements encoder block with residual connection. + + Args: + dim (int): The feature dimension. + num_heads (int): Number of parallel attention heads. + mlp_ratio (int): Ratio of mlp hidden dim to embedding dim. + qk_scale (float): Override default qk scale of head_dim ** -0.5 if set. + drop (float): Drop rate for mlp output weights. Default: 0. + attn_drop (float): Drop rate for attention output weights. + Default: 0. + proj_drop (float): Drop rate for attn layer output weights. + Default: 0. + act_cfg (dict): Config dict for activation layer. + Default: dict(type='GELU'). + norm_cfg (dict): Config dict for normalization layer. + Default: dict(type='LN', requires_grad=True). + """ + + def __init__(self, + dim, + num_heads, + mlp_ratio=4, + qkv_bias=False, + qk_scale=None, + drop=0., + attn_drop=0., + proj_drop=0., + act_cfg=dict(type='GELU'), + norm_cfg=dict(type='LN'), + with_cp=False): + super(Block, self).__init__() + self.with_cp = with_cp + _, self.norm1 = build_norm_layer(norm_cfg, dim) + self.attn = Attention(dim, num_heads, qkv_bias, qk_scale, attn_drop, + proj_drop) + _, self.norm2 = build_norm_layer(norm_cfg, dim) + mlp_hidden_dim = int(dim * mlp_ratio) + self.mlp = Mlp( + in_features=dim, + hidden_features=mlp_hidden_dim, + act_cfg=act_cfg, + drop=drop) + + def forward(self, x): + + def _inner_forward(x): + out = x + self.attn(self.norm1(x)) + out = out + self.mlp(self.norm2(out)) + return out + + if self.with_cp and x.requires_grad: + out = cp.checkpoint(_inner_forward, x) + else: + out = _inner_forward(x) + + return out + + +class PatchEmbed(nn.Module): + """Image to Patch Embedding. + + Args: + img_size (int, tuple): Input image size. + default: 224. + patch_size (int): Width and height for a patch. + default: 16. + in_channels (int): Input channels for images. Default: 3. + embed_dim (int): The embedding dimension. Default: 768. + """ + + def __init__(self, + img_size=224, + patch_size=16, + in_channels=3, + embed_dim=768): + super(PatchEmbed, self).__init__() + if isinstance(img_size, int): + self.img_size = (img_size, img_size) + elif isinstance(img_size, tuple): + self.img_size = img_size + else: + raise TypeError('img_size must be type of int or tuple') + h, w = self.img_size + self.patch_size = (patch_size, patch_size) + self.num_patches = (h // patch_size) * (w // patch_size) + self.proj = Conv2d( + in_channels, embed_dim, kernel_size=patch_size, stride=patch_size) + + def forward(self, x): + return self.proj(x).flatten(2).transpose(1, 2) + + +@BACKBONES.register_module() +class VisionTransformer(nn.Module): + """Vision transformer backbone. + + A PyTorch impl of : `An Image is Worth 16x16 Words: Transformers for + Image Recognition at Scale` - https://arxiv.org/abs/2010.11929 + + Args: + img_size (tuple): input image size. Default: (224, 224). + patch_size (int, tuple): patch size. Default: 16. + in_channels (int): number of input channels. Default: 3. + embed_dim (int): embedding dimension. Default: 768. + depth (int): depth of transformer. Default: 12. + num_heads (int): number of attention heads. Default: 12. + mlp_ratio (int): ratio of mlp hidden dim to embedding dim. Default: 4. + qkv_bias (bool): enable bias for qkv if True. Default: True. + qk_scale (float): override default qk scale of head_dim ** -0.5 if set. + drop_rate (float): dropout rate. Default: 0. + attn_drop_rate (float): attention dropout rate. Default: 0. + norm_cfg (dict): Config dict for normalization layer. + Default: dict(type='LN', requires_grad=True). + act_cfg (dict): Config dict for activation layer. + Default: dict(type='GELU'). + norm_eval (bool): Whether to set norm layers to eval mode, namely, + freeze running stats (mean and var). Note: Effect on Batch Norm + and its variants only. Default: False. + with_cp (bool): Use checkpoint or not. Using checkpoint + will save some memory while slowing down the training speed. + Default: False. + """ + + def __init__(self, + img_size=(224, 224), + patch_size=16, + in_channels=3, + embed_dim=768, + depth=12, + num_heads=12, + mlp_ratio=4, + qkv_bias=True, + qk_scale=None, + drop_rate=0., + attn_drop_rate=0., + norm_cfg=dict(type='LN'), + act_cfg=dict(type='GELU'), + norm_eval=False, + with_cp=False): + super(VisionTransformer, self).__init__() + self.img_size = img_size + self.patch_size = patch_size + self.features = self.embed_dim = embed_dim + self.patch_embed = PatchEmbed( + img_size=img_size, + patch_size=patch_size, + in_channels=in_channels, + embed_dim=embed_dim) + + self.pos_embed = nn.Parameter( + torch.zeros(1, self.patch_embed.num_patches, embed_dim)) + self.pos_drop = nn.Dropout(p=drop_rate) + + self.blocks = nn.Sequential(*[ + Block( + dim=embed_dim, + num_heads=num_heads, + mlp_ratio=mlp_ratio, + qkv_bias=qkv_bias, + qk_scale=qk_scale, + drop=drop_rate, + attn_drop=attn_drop_rate, + act_cfg=act_cfg, + norm_cfg=norm_cfg, + with_cp=with_cp) for i in range(depth) + ]) + _, self.norm = build_norm_layer(norm_cfg, embed_dim) + + self.norm_eval = norm_eval + self.with_cp = with_cp + + def init_weights(self, pretrained=None): + if isinstance(pretrained, str): + logger = get_root_logger() + checkpoint = _load_checkpoint(pretrained, logger=logger) + if 'state_dict' in checkpoint: + state_dict = checkpoint['state_dict'] + else: + state_dict = checkpoint + + if 'pos_embed' in state_dict.keys(): + state_dict['pos_embed'] = state_dict['pos_embed'][:, 1:, :] + logger.info( + msg='Remove the "cls_token" dimension from the checkpoint') + + if self.pos_embed.shape != state_dict['pos_embed'].shape: + logger.info(msg=f'Resize the pos_embed shape from \ + {state_dict["pos_embed"].shape} to \ + {self.pos_embed.shape}') + h, w = self.img_size + pos_size = int(math.sqrt(state_dict['pos_embed'].shape[1])) + state_dict['pos_embed'] = self.resize_pos_embed( + state_dict['pos_embed'], (h, w), (pos_size, pos_size), + self.patch_size) + self.load_state_dict(state_dict, False) + + elif pretrained is None: + # We only implement the 'jax_impl' initialization implemented at + # https://github.com/rwightman/pytorch-image-models/blob/master/timm/models/vision_transformer.py#L353 # noqa: E501 + normal_init(self.pos_embed) + for n, m in self.named_modules(): + if isinstance(m, Linear): + xavier_init(m.weight, distribution='uniform') + if m.bias is not None: + if 'mlp' in n: + normal_init(m.bias, std=1e-6) + else: + constant_init(m.bias, 0) + elif isinstance(m, Conv2d): + kaiming_init(m.weight, mode='fan_in') + if m.bias is not None: + constant_init(m.bias, 0) + elif isinstance(m, (_BatchNorm, nn.GroupNorm, nn.LayerNorm)): + constant_init(m.bias, 0) + constant_init(m.weight, 1) + else: + raise TypeError('pretrained must be a str or None') + + def _pos_embeding(self, img, patched_img, pos_embed): + """Positiong embeding method. + + Resize the pos_embed, if the input image size doesn't match + the training size. + Args: + img (torch.Tensor): The inference image tensor, the shape + must be [B, C, H, W]. + patched_img (torch.Tensor): The patched image, it should be + shape of [B, L1, C]. + pos_embed (torch.Tensor): The pos_embed weighs, it should be + shape of [B, L2, c]. + Return: + torch.Tensor: The pos encoded image feature. + """ + assert patched_img.ndim == 3 and pos_embed.ndim == 3, \ + 'the shapes of patched_img and pos_embed must be [B, L, C]' + x_len, pos_len = patched_img.shape[1], pos_embed.shape[1] + if x_len != pos_len: + if pos_len == (self.img_size[0] // self.patch_size) * ( + self.img_size[1] // self.patch_size): + pos_h = self.img_size[0] // self.patch_size + pos_w = self.img_size[1] // self.patch_size + else: + raise ValueError( + 'Unexpected shape of pos_embed, got {}.'.format( + pos_embed.shape)) + pos_embed = self.resize_pos_embed(pos_embed, img.shape[2:], + (pos_h, pos_w), self.patch_size) + return patched_img + pos_embed + + @staticmethod + def resize_pos_embed(pos_embed, input_shpae, pos_shape, patch_size): + """Resize pos_embed weights. + + Resize pos_embed using bicubic interpolate method. + Args: + pos_embed (torch.Tensor): pos_embed weights. + input_shpae (tuple): Tuple for (input_h, intput_w). + pos_shape (tuple): Tuple for (pos_h, pos_w). + patch_size (int): Patch size. + Return: + torch.Tensor: The resized pos_embed of shape [B, L_new, C] + """ + assert pos_embed.ndim == 3, 'shape of pos_embed must be [B, L, C]' + input_h, input_w = input_shpae + pos_h, pos_w = pos_shape + pos_embed = pos_embed.reshape(1, pos_h, pos_w, + pos_embed.shape[2]).permute(0, 3, 1, 2) + pos_embed = F.interpolate( + pos_embed, + size=[input_h // patch_size, input_w // patch_size], + align_corners=False, + mode='bicubic') + pos_embed = torch.flatten(pos_embed, 2).transpose(1, 2) + return pos_embed + + def forward(self, inputs): + x = self.patch_embed(inputs) + x = self._pos_embeding(inputs, x, self.pos_embed) + x = self.blocks(x) + x = self.norm(x) + B, _, C = x.shape + x = x.reshape(B, inputs.shape[2] // self.patch_size, + inputs.shape[3] // self.patch_size, + C).permute(0, 3, 1, 2) + return [x] + + def train(self, mode=True): + super(VisionTransformer, self).train(mode) + if mode and self.norm_eval: + for m in self.modules(): + if isinstance(m, nn.LayerNorm): + m.eval() diff --git a/tests/test_models/test_backbones/test_vit.py b/tests/test_models/test_backbones/test_vit.py new file mode 100644 index 0000000000..5c5572e430 --- /dev/null +++ b/tests/test_models/test_backbones/test_vit.py @@ -0,0 +1,64 @@ +import pytest +import torch + +from mmseg.models.backbones.vit import VisionTransformer +from .utils import check_norm_state + + +def test_vit_backbone(): + with pytest.raises(TypeError): + # pretrained must be a string path + model = VisionTransformer() + model.init_weights(pretrained=0) + + with pytest.raises(TypeError): + # img_size must be int or tuple + model = VisionTransformer(img_size=512.0) + + with pytest.raises(TypeError): + # test upsample_pos_embed function + x = torch.randn(1, 196) + VisionTransformer.resize_pos_embed(x, 512, 512, 224, 224) + + with pytest.raises(RuntimeError): + # forward inputs must be [N, C, H, W] + x = torch.randn(3, 30, 30) + model = VisionTransformer() + model(x) + + # Test img_size isinstance int + imgs = torch.randn(1, 3, 224, 224) + model = VisionTransformer(img_size=224) + model.init_weights() + model(imgs) + + # Test norm_eval = True + model = VisionTransformer(norm_eval=True) + model.train() + + # Test ViT backbone with input size of 224 and patch size of 16 + model = VisionTransformer() + model.init_weights() + model.train() + + assert check_norm_state(model.modules(), True) + + # Test large size input image + imgs = torch.randn(1, 3, 256, 256) + feat = model(imgs) + assert feat[0].shape == (1, 768, 16, 16) + + # Test small size input image + imgs = torch.randn(1, 3, 32, 32) + feat = model(imgs) + assert feat[0].shape == (1, 768, 2, 2) + + imgs = torch.randn(1, 3, 224, 224) + feat = model(imgs) + assert feat[0].shape == (1, 768, 14, 14) + + # Test with_cp=True + model = VisionTransformer(with_cp=True) + imgs = torch.randn(1, 3, 224, 224) + feat = model(imgs) + assert feat[0].shape == (1, 768, 14, 14) From e5007e7491952bc4abbe93902882b70ba9d0b98e Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Sat, 24 Apr 2021 09:57:33 -0700 Subject: [PATCH 126/706] [Bug fix] fixed fp16 inference (#497) * fixed fp16 * update fps --- configs/fp16/README.md | 8 ++++---- .../deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py | 2 ++ .../deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py | 2 ++ configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py | 2 ++ .../fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py | 2 ++ tools/benchmark.py | 5 ++++- tools/test.py | 6 +++++- 7 files changed, 21 insertions(+), 6 deletions(-) diff --git a/configs/fp16/README.md b/configs/fp16/README.md index 40ee750f23..f19cd5675a 100644 --- a/configs/fp16/README.md +++ b/configs/fp16/README.md @@ -19,7 +19,7 @@ | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | | ---------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| FCN | R-101-D8 | 512x1024 | 80000 | 5.50 | 2.66 | 76.80 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes-50245227.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230921.log.json) | -| PSPNet | R-101-D8 | 512x1024 | 80000 | 5.47 | 2.68 | 79.46 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes-ade37931.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230919.log.json) | -| DeepLabV3 | R-101-D8 | 512x1024 | 80000 | 5.91 | 1.93 | 80.48 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes-bc86dc84.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920.log.json) | -| DeepLabV3+ | R-101-D8 | 512x1024 | 80000 | 6.46 | 2.60 | 80.46 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes-cc58bc8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920.log.json) | +| FCN | R-101-D8 | 512x1024 | 80000 | 5.37 | 8.64 | 76.80 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes-50245227.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230921.log.json) | +| PSPNet | R-101-D8 | 512x1024 | 80000 | 5.34 | 8.77 | 79.46 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes-ade37931.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230919.log.json) | +| DeepLabV3 | R-101-D8 | 512x1024 | 80000 | 5.75 | 3.86 | 80.48 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes-bc86dc84.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920.log.json) | +| DeepLabV3+ | R-101-D8 | 512x1024 | 80000 | 6.35 | 7.87 | 80.46 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes-cc58bc8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920.log.json) | diff --git a/configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py b/configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py index 60d8350e98..1d7e1bef6f 100644 --- a/configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py +++ b/configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py @@ -1,3 +1,5 @@ _base_ = '../deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py' # fp16 settings optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.) +# fp16 placeholder +fp16 = dict() diff --git a/configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py b/configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py index c263d6907e..eaf569d4d7 100644 --- a/configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py +++ b/configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py @@ -1,3 +1,5 @@ _base_ = '../deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py' # fp16 settings optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.) +# fp16 placeholder +fp16 = dict() diff --git a/configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py b/configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py index 8100a8e64d..8e85e56bd6 100644 --- a/configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py +++ b/configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py @@ -1,3 +1,5 @@ _base_ = '../fcn/fcn_r101-d8_512x1024_80k_cityscapes.py' # fp16 settings optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.) +# fp16 placeholder +fp16 = dict() diff --git a/configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py b/configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py index aefac2953a..cb2c27e44f 100644 --- a/configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py +++ b/configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py @@ -1,3 +1,5 @@ _base_ = '../pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py' # fp16 settings optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.) +# fp16 placeholder +fp16 = dict() diff --git a/tools/benchmark.py b/tools/benchmark.py index cb0df3bdfa..0a61793585 100644 --- a/tools/benchmark.py +++ b/tools/benchmark.py @@ -4,7 +4,7 @@ import torch from mmcv import Config from mmcv.parallel import MMDataParallel -from mmcv.runner import load_checkpoint +from mmcv.runner import load_checkpoint, wrap_fp16_model from mmseg.datasets import build_dataloader, build_dataset from mmseg.models import build_segmentor @@ -42,6 +42,9 @@ def main(): # build the model and load checkpoint cfg.model.train_cfg = None model = build_segmentor(cfg.model, test_cfg=cfg.get('test_cfg')) + fp16_cfg = cfg.get('fp16', None) + if fp16_cfg is not None: + wrap_fp16_model(model) load_checkpoint(model, args.checkpoint, map_location='cpu') model = MMDataParallel(model, device_ids=[0]) diff --git a/tools/test.py b/tools/test.py index c074fcc4bb..fd8589c029 100644 --- a/tools/test.py +++ b/tools/test.py @@ -4,7 +4,8 @@ import mmcv import torch from mmcv.parallel import MMDataParallel, MMDistributedDataParallel -from mmcv.runner import get_dist_info, init_dist, load_checkpoint +from mmcv.runner import (get_dist_info, init_dist, load_checkpoint, + wrap_fp16_model) from mmcv.utils import DictAction from mmseg.apis import multi_gpu_test, single_gpu_test @@ -117,6 +118,9 @@ def main(): # build the model and load checkpoint cfg.model.train_cfg = None model = build_segmentor(cfg.model, test_cfg=cfg.get('test_cfg')) + fp16_cfg = cfg.get('fp16', None) + if fp16_cfg is not None: + wrap_fp16_model(model) checkpoint = load_checkpoint(model, args.checkpoint, map_location='cpu') model.CLASSES = checkpoint['meta']['CLASSES'] model.PALETTE = checkpoint['meta']['PALETTE'] From 38f188d02519be95c60bcda629ab224ba21e9347 Mon Sep 17 00:00:00 2001 From: sennnnn <58427300+sennnnn@users.noreply.github.com> Date: Sun, 25 Apr 2021 00:58:15 +0800 Subject: [PATCH 127/706] Add some publish information of implemented models (#508) * Add some publish information * Fix some readme omission. --- README.md | 57 ++++++++++++++++++------------------ README_zh-CN.md | 56 +++++++++++++++++------------------ configs/cgnet/README.md | 13 ++++---- configs/point_rend/README.md | 13 ++++---- configs/unet/README.md | 8 ++--- 5 files changed, 75 insertions(+), 72 deletions(-) diff --git a/README.md b/README.md index f32ca20e35..dea03e097c 100644 --- a/README.md +++ b/README.md @@ -57,37 +57,38 @@ Results and models are available in the [model zoo](docs/model_zoo.md). Supported backbones: -- [x] ResNet -- [x] ResNeXt -- [x] [HRNet](configs/hrnet/README.md) -- [x] [ResNeSt](configs/resnest/README.md) -- [x] [MobileNetV2](configs/mobilenet_v2/README.md) -- [x] [MobileNetV3](configs/mobilenet_v3/README.md) +- [x] ResNet (CVPR'2016) +- [x] ResNeXt (CVPR'2017) +- [x] [HRNet (CVPR'2019)](configs/hrnet/README.md) +- [x] [ResNeSt (ArXiv'2020)](configs/resnest/README.md) +- [x] [MobileNetV2 (CVPR'2018)](configs/mobilenet_v2/README.md) +- [x] [MobileNetV3 (ICCV'2019)](configs/mobilenet_v3/README.md) Supported methods: -- [x] [FCN](configs/fcn) -- [x] [PSPNet](configs/pspnet) -- [x] [DeepLabV3](configs/deeplabv3) -- [x] [PSANet](configs/psanet) -- [x] [DeepLabV3+](configs/deeplabv3plus) -- [x] [UPerNet](configs/upernet) -- [x] [NonLocal Net](configs/nonlocal_net) -- [x] [EncNet](configs/encnet) -- [x] [CCNet](configs/ccnet) -- [x] [DANet](configs/danet) -- [x] [APCNet](configs/apcnet) -- [x] [GCNet](configs/gcnet) -- [x] [DMNet](configs/dmnet) -- [x] [ANN](configs/ann) -- [x] [OCRNet](configs/ocrnet) -- [x] [Fast-SCNN](configs/fastscnn) -- [x] [Semantic FPN](configs/sem_fpn) -- [x] [PointRend](configs/point_rend) -- [x] [EMANet](configs/emanet) -- [x] [DNLNet](configs/dnlnet) -- [x] [CGNet](configs/cgnet) -- [x] [Mixed Precision (FP16) Training](configs/fp16/README.md) +- [x] [FCN (CVPR'2015/TPAMI'2017)](configs/fcn) +- [x] [UNet (MICCAI'2016/Nat. Methods'2019)](configs/unet) +- [x] [PSPNet (CVPR'2017)](configs/pspnet) +- [x] [DeepLabV3 (CVPR'2017)](configs/deeplabv3) +- [x] [Mixed Precision (FP16) Training (ArXiv'2017)](configs/fp16/README.md) +- [x] [PSANet (ECCV'2018)](configs/psanet) +- [x] [DeepLabV3+ (CVPR'2018)](configs/deeplabv3plus) +- [x] [UPerNet (ECCV'2018)](configs/upernet) +- [x] [NonLocal Net (CVPR'2018)](configs/nonlocal_net) +- [x] [EncNet (CVPR'2018)](configs/encnet) +- [x] [Semantic FPN (CVPR'2019)](configs/sem_fpn) +- [x] [DANet (CVPR'2019)](configs/danet) +- [x] [APCNet (CVPR'2019)](configs/apcnet) +- [x] [EMANet (ICCV'2019)](configs/emanet) +- [x] [CCNet (ICCV'2019)](configs/ccnet) +- [x] [DMNet (ICCV'2019)](configs/dmnet) +- [x] [ANN (ICCV'2019)](configs/ann) +- [x] [GCNet (ICCVW'2019/TPAMI'2020)](configs/gcnet) +- [x] [Fast-SCNN (ArXiv'2019)](configs/fastscnn) +- [x] [OCRNet (ECCV'2020)](configs/ocrnet) +- [x] [DNLNet (ECCV'2020)](configs/dnlnet) +- [x] [PointRend (CVPR'2020)](configs/point_rend) +- [x] [CGNet (TIP'2020)](configs/cgnet) ## Installation diff --git a/README_zh-CN.md b/README_zh-CN.md index df7439485d..a99c24968a 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -56,37 +56,37 @@ MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 O 已支持的骨干网络: -- [x] ResNet -- [x] ResNeXt -- [x] [HRNet](configs/hrnet/README.md) -- [x] [ResNeSt](configs/resnest/README.md) -- [x] [MobileNetV2](configs/mobilenet_v2/README.md) -- [x] [MobileNetV3](configs/mobilenet_v3/README.md) +- [x] ResNet (CVPR'2016) +- [x] ResNeXt (CVPR'2017) +- [x] [HRNet (CVPR'2019)](configs/hrnet/README.md) +- [x] [ResNeSt (ArXiv'2020)](configs/resnest/README.md) +- [x] [MobileNetV2 (CVPR'2018)](configs/mobilenet_v2/README.md) +- [x] [MobileNetV3 (ICCV'2019)](configs/mobilenet_v3/README.md) 已支持的算法: -- [x] [FCN](configs/fcn) -- [x] [PSPNet](configs/pspnet) -- [x] [DeepLabV3](configs/deeplabv3) -- [x] [PSANet](configs/psanet) -- [x] [DeepLabV3+](configs/deeplabv3plus) -- [x] [UPerNet](configs/upernet) -- [x] [NonLocal Net](configs/nonlocal_net) -- [x] [EncNet](configs/encnet) -- [x] [CCNet](configs/ccnet) -- [x] [DANet](configs/danet) -- [x] [APCNet](configs/apcnet) -- [x] [GCNet](configs/gcnet) -- [x] [DMNet](configs/dmnet) -- [x] [ANN](configs/ann) -- [x] [OCRNet](configs/ocrnet) -- [x] [Fast-SCNN](configs/fastscnn) -- [x] [Semantic FPN](configs/sem_fpn) -- [x] [PointRend](configs/point_rend) -- [x] [EMANet](configs/emanet) -- [x] [DNLNet](configs/dnlnet) -- [x] [CGNet](configs/cgnet) -- [x] [Mixed Precision (FP16) Training](configs/fp16/README.md) +- [x] [FCN (CVPR'2015/TPAMI'2017)](configs/fcn) +- [x] [PSPNet (CVPR'2017)](configs/pspnet) +- [x] [DeepLabV3 (CVPR'2017)](configs/deeplabv3) +- [x] [Mixed Precision (FP16) Training (ArXiv'2017)](configs/fp16/README.md) +- [x] [PSANet (ECCV'2018)](configs/psanet) +- [x] [DeepLabV3+ (CVPR'2018)](configs/deeplabv3plus) +- [x] [UPerNet (ECCV'2018)](configs/upernet) +- [x] [NonLocal Net (CVPR'2018)](configs/nonlocal_net) +- [x] [EncNet (CVPR'2018)](configs/encnet) +- [x] [Semantic FPN (CVPR'2019)](configs/sem_fpn) +- [x] [DANet (CVPR'2019)](configs/danet) +- [x] [APCNet (CVPR'2019)](configs/apcnet) +- [x] [EMANet (ICCV'2019)](configs/emanet) +- [x] [CCNet (ICCV'2019)](configs/ccnet) +- [x] [DMNet (ICCV'2019)](configs/dmnet) +- [x] [ANN (ICCV'2019)](configs/ann) +- [x] [GCNet (ICCVW'2019/TPAMI'2020)](configs/gcnet) +- [x] [Fast-SCNN (ArXiv'2019)](configs/fastscnn) +- [x] [OCRNet (ECCV'2020)](configs/ocrnet) +- [x] [DNLNet (ECCV'2020)](configs/dnlnet) +- [x] [PointRend (CVPR'2020)](configs/point_rend) +- [x] [CGNet (TIP'2020)](configs/cgnet) ## 安装 diff --git a/configs/cgnet/README.md b/configs/cgnet/README.md index 4859492ebf..0acdfb7138 100644 --- a/configs/cgnet/README.md +++ b/configs/cgnet/README.md @@ -5,11 +5,14 @@ [ALGORITHM] ```latext -@article{wu2018cgnet, - title={CGNet: A Light-weight Context Guided Network for Semantic Segmentation}, - author={Wu, Tianyi and Tang, Sheng and Zhang, Rui and Zhang, Yongdong}, - journal={arXiv preprint arXiv:1811.08201}, - year={2018} +@article{wu2020cgnet, + title={Cgnet: A light-weight context guided network for semantic segmentation}, + author={Wu, Tianyi and Tang, Sheng and Zhang, Rui and Cao, Juan and Zhang, Yongdong}, + journal={IEEE Transactions on Image Processing}, + volume={30}, + pages={1169--1179}, + year={2020}, + publisher={IEEE} } ``` diff --git a/configs/point_rend/README.md b/configs/point_rend/README.md index af429665e8..1d00f0ecf1 100644 --- a/configs/point_rend/README.md +++ b/configs/point_rend/README.md @@ -5,13 +5,12 @@ [ALGORITHM] ``` -@misc{alex2019pointrend, - title={PointRend: Image Segmentation as Rendering}, - author={Alexander Kirillov and Yuxin Wu and Kaiming He and Ross Girshick}, - year={2019}, - eprint={1912.08193}, - archivePrefix={arXiv}, - primaryClass={cs.CV} +@inproceedings{kirillov2020pointrend, + title={Pointrend: Image segmentation as rendering}, + author={Kirillov, Alexander and Wu, Yuxin and He, Kaiming and Girshick, Ross}, + booktitle={Proceedings of the IEEE/CVF conference on computer vision and pattern recognition}, + pages={9799--9808}, + year={2020} } ``` diff --git a/configs/unet/README.md b/configs/unet/README.md index 1059815af4..c3d0484b9c 100644 --- a/configs/unet/README.md +++ b/configs/unet/README.md @@ -35,16 +35,16 @@ ### CHASE_DB1 -| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | download | -| ----------- | --------- | ---------- | --------- | -----: | ------- | -------- | -------------: | ----: | ------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | config | download | +| ----------- | --------- | ---------- | --------- | -----: | ------- | -------- | -------------: | ----: | -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | UNet-S5-D16 | FCN | 960x999 | 128x128 | 85x85 | 40000 | 0.968 | - | 80.24 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_chase_db1/fcn_unet_s5-d16_128x128_40k_chase_db1_20201223_191051-95852f45.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_chase_db1/fcn_unet_s5-d16_128x128_40k_chase_db1-20201223_191051.log.json) | | UNet-S5-D16 | PSPNet | 960x999 | 128x128 | 85x85 | 40000 | 0.982 | - | 80.36 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1/pspnet_unet_s5-d16_128x128_40k_chase_db1_20201227_181818-68d4e609.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1/pspnet_unet_s5-d16_128x128_40k_chase_db1-20201227_181818.log.json) | | UNet-S5-D16 | DeepLabV3 | 960x999 | 128x128 | 85x85 | 40000 | 0.999 | - | 80.47 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1/deeplabv3_unet_s5-d16_128x128_40k_chase_db1_20201226_094047-4c5aefa3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1/deeplabv3_unet_s5-d16_128x128_40k_chase_db1-20201226_094047.log.json) | ### HRF -| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | download | -| ----------- | --------- | ---------- | --------- | ------: | ------- | -------- | -------------: | ----: | ------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | config | download | +| ----------- | --------- | ---------- | --------- | -----: | ------- | -------- | -------------: | ----: | -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | UNet-S5-D16 | FCN | 2336x3504 | 256x256 | 170x170 | 40000 | 2.525 | - | 79.45 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_256x256_40k_hrf/fcn_unet_s5-d16_256x256_40k_hrf_20201223_173724-df3ec8c4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_256x256_40k_hrf/fcn_unet_s5-d16_256x256_40k_hrf-20201223_173724.log.json) | | UNet-S5-D16 | PSPNet | 2336x3504 | 256x256 | 170x170 | 40000 | 2.588 | - | 80.07 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_256x256_40k_hrf/pspnet_unet_s5-d16_256x256_40k_hrf_20201227_181818-fdb7e29b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_256x256_40k_hrf/pspnet_unet_s5-d16_256x256_40k_hrf-20201227_181818.log.json) | | UNet-S5-D16 | DeepLabV3 | 2336x3504 | 256x256 | 170x170 | 40000 | 2.604 | - | 80.21 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf/deeplabv3_unet_s5-d16_256x256_40k_hrf_20201226_094047-3a1fdf85.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf/deeplabv3_unet_s5-d16_256x256_40k_hrf-20201226_094047.log.json) | From 995bcb39cdcf2da6ce32988bbecc16edf1745001 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Sat, 24 Apr 2021 09:58:59 -0700 Subject: [PATCH 128/706] comment tag (#505) --- configs/ann/README.md | 2 +- configs/apcnet/README.md | 2 +- configs/ccnet/README.md | 2 +- configs/cgnet/README.md | 2 +- configs/danet/README.md | 2 +- configs/deeplabv3/README.md | 2 +- configs/deeplabv3plus/README.md | 2 +- configs/dmnet/README.md | 2 +- configs/dnlnet/README.md | 2 +- configs/emanet/README.md | 2 +- configs/encnet/README.md | 2 +- configs/fastscnn/README.md | 2 +- configs/fcn/README.md | 2 +- configs/fp16/README.md | 2 +- configs/gcnet/README.md | 2 +- configs/hrnet/README.md | 2 +- configs/mobilenet_v2/README.md | 2 +- configs/mobilenet_v3/README.md | 2 +- configs/nonlocal_net/README.md | 2 +- configs/ocrnet/README.md | 2 +- configs/point_rend/README.md | 2 +- configs/psanet/README.md | 2 +- configs/pspnet/README.md | 2 +- configs/resnest/README.md | 2 +- configs/sem_fpn/README.md | 2 +- configs/unet/README.md | 2 +- configs/upernet/README.md | 2 +- docs/stat.py | 4 +++- 28 files changed, 30 insertions(+), 28 deletions(-) diff --git a/configs/ann/README.md b/configs/ann/README.md index 3bc332aa85..7b166152fd 100644 --- a/configs/ann/README.md +++ b/configs/ann/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] + ```latex @inproceedings{annn, diff --git a/configs/apcnet/README.md b/configs/apcnet/README.md index 9366cb3728..b89ac6d7b2 100644 --- a/configs/apcnet/README.md +++ b/configs/apcnet/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] + ```latex @InProceedings{He_2019_CVPR, diff --git a/configs/ccnet/README.md b/configs/ccnet/README.md index 9885239e99..1c8ba1cdf7 100644 --- a/configs/ccnet/README.md +++ b/configs/ccnet/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] + ```latex @article{huang2018ccnet, diff --git a/configs/cgnet/README.md b/configs/cgnet/README.md index 0acdfb7138..f1cad20510 100644 --- a/configs/cgnet/README.md +++ b/configs/cgnet/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] + ```latext @article{wu2020cgnet, diff --git a/configs/danet/README.md b/configs/danet/README.md index 90ddf6cab8..655a845c6a 100644 --- a/configs/danet/README.md +++ b/configs/danet/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] + ```latex @article{fu2018dual, diff --git a/configs/deeplabv3/README.md b/configs/deeplabv3/README.md index 970a779c7d..02c27753ab 100644 --- a/configs/deeplabv3/README.md +++ b/configs/deeplabv3/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] + ```latext @article{chen2017rethinking, diff --git a/configs/deeplabv3plus/README.md b/configs/deeplabv3plus/README.md index 84ef47effb..be46e329b6 100644 --- a/configs/deeplabv3plus/README.md +++ b/configs/deeplabv3plus/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] + ```latex @inproceedings{deeplabv3plus2018, diff --git a/configs/dmnet/README.md b/configs/dmnet/README.md index 3f3653aa9c..190373e879 100644 --- a/configs/dmnet/README.md +++ b/configs/dmnet/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] + ```latex @InProceedings{He_2019_ICCV, diff --git a/configs/dnlnet/README.md b/configs/dnlnet/README.md index fe99c4b7c5..73714122b9 100644 --- a/configs/dnlnet/README.md +++ b/configs/dnlnet/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] + This example is to reproduce ["Disentangled Non-Local Neural Networks"](https://arxiv.org/abs/2006.06668) for semantic segmentation. It is still in progress. diff --git a/configs/emanet/README.md b/configs/emanet/README.md index 615d2a7b2b..ec2d726bc3 100644 --- a/configs/emanet/README.md +++ b/configs/emanet/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] + ```latex @inproceedings{li2019expectation, diff --git a/configs/encnet/README.md b/configs/encnet/README.md index 12ab656da2..4246caa0de 100644 --- a/configs/encnet/README.md +++ b/configs/encnet/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] + ```latex @InProceedings{Zhang_2018_CVPR, diff --git a/configs/fastscnn/README.md b/configs/fastscnn/README.md index 8dae279b96..9cea8d0fd0 100644 --- a/configs/fastscnn/README.md +++ b/configs/fastscnn/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] + ```latex @article{poudel2019fast, diff --git a/configs/fcn/README.md b/configs/fcn/README.md index 851e387a84..549ceb532c 100644 --- a/configs/fcn/README.md +++ b/configs/fcn/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] + ```latex @article{shelhamer2017fully, diff --git a/configs/fp16/README.md b/configs/fp16/README.md index f19cd5675a..4b64cd96f2 100644 --- a/configs/fp16/README.md +++ b/configs/fp16/README.md @@ -2,7 +2,7 @@ ## Introduction -[OTHERS] + ```latex @article{micikevicius2017mixed, diff --git a/configs/gcnet/README.md b/configs/gcnet/README.md index 9c7856a1d1..72f10d14b3 100644 --- a/configs/gcnet/README.md +++ b/configs/gcnet/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] + ```latex @inproceedings{cao2019gcnet, diff --git a/configs/hrnet/README.md b/configs/hrnet/README.md index 1cf7597b75..ca51545f63 100644 --- a/configs/hrnet/README.md +++ b/configs/hrnet/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] + ```latext @inproceedings{SunXLW19, diff --git a/configs/mobilenet_v2/README.md b/configs/mobilenet_v2/README.md index 2e6fa264e0..7356a0ec4d 100644 --- a/configs/mobilenet_v2/README.md +++ b/configs/mobilenet_v2/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] + ```latex @inproceedings{sandler2018mobilenetv2, diff --git a/configs/mobilenet_v3/README.md b/configs/mobilenet_v3/README.md index 3d98765446..a843d355b6 100644 --- a/configs/mobilenet_v3/README.md +++ b/configs/mobilenet_v3/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] + ```latex @inproceedings{Howard_2019_ICCV, diff --git a/configs/nonlocal_net/README.md b/configs/nonlocal_net/README.md index a52c5db898..da0924ac60 100644 --- a/configs/nonlocal_net/README.md +++ b/configs/nonlocal_net/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] + ```latex @inproceedings{wang2018non, diff --git a/configs/ocrnet/README.md b/configs/ocrnet/README.md index 5eea86283a..136b49d4b6 100644 --- a/configs/ocrnet/README.md +++ b/configs/ocrnet/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] + ```latex @article{YuanW18, diff --git a/configs/point_rend/README.md b/configs/point_rend/README.md index 1d00f0ecf1..9031f2b70e 100644 --- a/configs/point_rend/README.md +++ b/configs/point_rend/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] + ``` @inproceedings{kirillov2020pointrend, diff --git a/configs/psanet/README.md b/configs/psanet/README.md index 16c2cf9596..01ed322587 100644 --- a/configs/psanet/README.md +++ b/configs/psanet/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] + ```latex @inproceedings{zhao2018psanet, diff --git a/configs/pspnet/README.md b/configs/pspnet/README.md index 34ca237c3e..66f3dc286f 100644 --- a/configs/pspnet/README.md +++ b/configs/pspnet/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] + ```latex @inproceedings{zhao2017pspnet, diff --git a/configs/resnest/README.md b/configs/resnest/README.md index c0980d9373..b610c14c3e 100644 --- a/configs/resnest/README.md +++ b/configs/resnest/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] + ```latex @article{zhang2020resnest, diff --git a/configs/sem_fpn/README.md b/configs/sem_fpn/README.md index 20601147db..c59698db58 100644 --- a/configs/sem_fpn/README.md +++ b/configs/sem_fpn/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] + ```latex @article{Kirillov_2019, diff --git a/configs/unet/README.md b/configs/unet/README.md index c3d0484b9c..6c419c05af 100644 --- a/configs/unet/README.md +++ b/configs/unet/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] + ```latex @inproceedings{ronneberger2015u, diff --git a/configs/upernet/README.md b/configs/upernet/README.md index 976227bb3f..312004a4d7 100644 --- a/configs/upernet/README.md +++ b/configs/upernet/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] + ```latex @inproceedings{xiao2018unified, diff --git a/docs/stat.py b/docs/stat.py index 3aaf060700..941296d1f5 100755 --- a/docs/stat.py +++ b/docs/stat.py @@ -27,7 +27,9 @@ if len(ckpts) == 0: continue - _papertype = [x for x in re.findall(r'\[([A-Z]+)\]', content)] + _papertype = [ + x for x in re.findall(r'', content) + ] assert len(_papertype) > 0 papertype = _papertype[0] From 7b5c56bc7684918b787c55e215a04a6eff1a5883 Mon Sep 17 00:00:00 2001 From: sennnnn <58427300+sennnnn@users.noreply.github.com> Date: Sun, 25 Apr 2021 06:31:29 +0800 Subject: [PATCH 129/706] Fix "the output num_classes of auxiliary head is not same as num_classes of ground truth seg_map". (#488) * Fix "the output num_classes of auxiliary head is not match num_classes of ground truth seg_map". * Fix spelling mistake; * Modify "model download link", "log link"; --- configs/fcn/README.md | 4 ++-- configs/fcn/fcn_r50-d8_480x480_40k_pascal_context.py | 1 + configs/fcn/fcn_r50-d8_480x480_80k_pascal_context.py | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/configs/fcn/README.md b/configs/fcn/README.md index 549ceb532c..270781b48b 100644 --- a/configs/fcn/README.md +++ b/configs/fcn/README.md @@ -74,8 +74,8 @@ | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | | ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| FCN | R-101-D8 | 480x480 | 40000 | - | 9.93 | 44.14 | 45.67 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101-d8_480x480_40k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context_20200911_212515-9b565a6d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context-20200911_212515.log.json) | -| FCN | R-101-D8 | 480x480 | 80000 | - | - | 44.47 | 45.74 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101-d8_480x480_80k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context_20200915_032644-a3828480.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context-20200915_032644.log.json) | +| FCN | R-101-D8 | 480x480 | 40000 | - | 9.93 | 44.43 | 45.63 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101-d8_480x480_40k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context-20210421_154757-b5e97937.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context-20210421_154757.log.json) | +| FCN | R-101-D8 | 480x480 | 80000 | - | - | 44.13 | 45.26 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101-d8_480x480_80k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context-20210421_163310-4711813f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context-20210421_163310.log.json) | ### Pascal Context 59 diff --git a/configs/fcn/fcn_r50-d8_480x480_40k_pascal_context.py b/configs/fcn/fcn_r50-d8_480x480_40k_pascal_context.py index fdc6314f70..7c57a6f8ff 100644 --- a/configs/fcn/fcn_r50-d8_480x480_40k_pascal_context.py +++ b/configs/fcn/fcn_r50-d8_480x480_40k_pascal_context.py @@ -4,5 +4,6 @@ ] model = dict( decode_head=dict(num_classes=60), + auxiliary_head=dict(num_classes=60), test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) diff --git a/configs/fcn/fcn_r50-d8_480x480_80k_pascal_context.py b/configs/fcn/fcn_r50-d8_480x480_80k_pascal_context.py index 0870f928b8..df6d25b6a9 100644 --- a/configs/fcn/fcn_r50-d8_480x480_80k_pascal_context.py +++ b/configs/fcn/fcn_r50-d8_480x480_80k_pascal_context.py @@ -4,5 +4,6 @@ ] model = dict( decode_head=dict(num_classes=60), + auxiliary_head=dict(num_classes=60), test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320))) optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001) From 07cc26ae5a16ad7f0814ad0f0f43586f67fe3ee3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=98=95=E8=BE=B0?= Date: Sun, 25 Apr 2021 12:22:09 +0800 Subject: [PATCH 130/706] add upsample neck (#512) * init * upsample v1.0 * fix errors * change to in_channels list * add unittest, docstring, norm/act config and rename Co-authored-by: xiexinch --- mmseg/models/necks/__init__.py | 3 +- mmseg/models/necks/multilevel_neck.py | 70 +++++++++++++++++++ .../test_necks/test_multilevel_neck.py | 28 ++++++++ 3 files changed, 100 insertions(+), 1 deletion(-) create mode 100644 mmseg/models/necks/multilevel_neck.py create mode 100644 tests/test_models/test_necks/test_multilevel_neck.py diff --git a/mmseg/models/necks/__init__.py b/mmseg/models/necks/__init__.py index 0093021eba..9b9d3d5b3f 100644 --- a/mmseg/models/necks/__init__.py +++ b/mmseg/models/necks/__init__.py @@ -1,3 +1,4 @@ from .fpn import FPN +from .multilevel_neck import MultiLevelNeck -__all__ = ['FPN'] +__all__ = ['FPN', 'MultiLevelNeck'] diff --git a/mmseg/models/necks/multilevel_neck.py b/mmseg/models/necks/multilevel_neck.py new file mode 100644 index 0000000000..7e13813b16 --- /dev/null +++ b/mmseg/models/necks/multilevel_neck.py @@ -0,0 +1,70 @@ +import torch.nn as nn +import torch.nn.functional as F +from mmcv.cnn import ConvModule + +from ..builder import NECKS + + +@NECKS.register_module() +class MultiLevelNeck(nn.Module): + """MultiLevelNeck. + + A neck structure connect vit backbone and decoder_heads. + Args: + in_channels (List[int]): Number of input channels per scale. + out_channels (int): Number of output channels (used at each scale). + scales (List[int]): Scale factors for each input feature map. + norm_cfg (dict): Config dict for normalization layer. Default: None. + act_cfg (dict): Config dict for activation layer in ConvModule. + Default: None. + """ + + def __init__(self, + in_channels, + out_channels, + scales=[0.5, 1, 2, 4], + norm_cfg=None, + act_cfg=None): + super(MultiLevelNeck, self).__init__() + assert isinstance(in_channels, list) + self.in_channels = in_channels + self.out_channels = out_channels + self.scales = scales + self.num_outs = len(scales) + self.lateral_convs = nn.ModuleList() + self.convs = nn.ModuleList() + for in_channel in in_channels: + self.lateral_convs.append( + ConvModule( + in_channel, + out_channels, + kernel_size=1, + norm_cfg=norm_cfg, + act_cfg=act_cfg)) + for _ in range(self.num_outs): + self.convs.append( + ConvModule( + out_channels, + out_channels, + kernel_size=3, + padding=1, + stride=1, + norm_cfg=norm_cfg, + act_cfg=act_cfg)) + + def forward(self, inputs): + assert len(inputs) == len(self.in_channels) + print(inputs[0].shape) + inputs = [ + lateral_conv(inputs[i]) + for i, lateral_conv in enumerate(self.lateral_convs) + ] + # for len(inputs) not equal to self.num_outs + if len(inputs) == 1: + inputs = [inputs[0] for _ in range(self.num_outs)] + outs = [] + for i in range(self.num_outs): + x_resize = F.interpolate( + inputs[i], scale_factor=self.scales[i], mode='bilinear') + outs.append(self.convs[i](x_resize)) + return tuple(outs) diff --git a/tests/test_models/test_necks/test_multilevel_neck.py b/tests/test_models/test_necks/test_multilevel_neck.py new file mode 100644 index 0000000000..8fb2fc9280 --- /dev/null +++ b/tests/test_models/test_necks/test_multilevel_neck.py @@ -0,0 +1,28 @@ +import torch + +from mmseg.models import MultiLevelNeck + + +def test_multilevel_neck(): + + # Test multi feature maps + in_channels = [256, 512, 1024, 2048] + inputs = [torch.randn(1, c, 14, 14) for i, c in enumerate(in_channels)] + + neck = MultiLevelNeck(in_channels, 256) + outputs = neck(inputs) + assert outputs[0].shape == torch.Size([1, 256, 7, 7]) + assert outputs[1].shape == torch.Size([1, 256, 14, 14]) + assert outputs[2].shape == torch.Size([1, 256, 28, 28]) + assert outputs[3].shape == torch.Size([1, 256, 56, 56]) + + # Test one feature map + in_channels = [768] + inputs = [torch.randn(1, 768, 14, 14)] + + neck = MultiLevelNeck(in_channels, 256) + outputs = neck(inputs) + assert outputs[0].shape == torch.Size([1, 256, 7, 7]) + assert outputs[1].shape == torch.Size([1, 256, 14, 14]) + assert outputs[2].shape == torch.Size([1, 256, 28, 28]) + assert outputs[3].shape == torch.Size([1, 256, 56, 56]) From b0413ef58d9fc842d19c2089d9191f6f6fb92885 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Sun, 25 Apr 2021 19:15:13 -0700 Subject: [PATCH 131/706] Add QR Code in Chinese README.md (#506) --- README.md | 1 + README_zh-CN.md | 22 +++++++++++++++++++++- docs/imgs/qq_group_qrcode.jpg | Bin 0 -> 204806 bytes docs/imgs/zhihu_qrcode.jpg | Bin 0 -> 397245 bytes 4 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 docs/imgs/qq_group_qrcode.jpg create mode 100644 docs/imgs/zhihu_qrcode.jpg diff --git a/README.md b/README.md index dea03e097c..16329ba000 100644 --- a/README.md +++ b/README.md @@ -138,3 +138,4 @@ and develop their own new semantic segmentation methods. - [MMPose](https://github.com/open-mmlab/mmpose): OpenMMLab pose estimation toolbox and benchmark. - [MMEditing](https://github.com/open-mmlab/mmediting): OpenMMLab image and video editing toolbox. - [MMOCR](https://github.com/open-mmlab/mmocr): A Comprehensive Toolbox for Text Detection, Recognition and Understanding. +- [MMGeneration](https://github.com/open-mmlab/mmgeneration): A powerful toolkit for generative models. diff --git a/README_zh-CN.md b/README_zh-CN.md index a99c24968a..283a045b99 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -132,4 +132,24 @@ MMSegmentation 是一个由来自不同高校和企业的研发人员共同参 - [MMTracking](https://github.com/open-mmlab/mmtracking): OpenMMLab 一体化视频目标感知平台 - [MMPose](https://github.com/open-mmlab/mmpose): OpenMMLab 姿态估计工具箱 - [MMEditing](https://github.com/open-mmlab/mmediting): OpenMMLab 图像视频编辑工具箱 -- [MMOCR](https://github.com/open-mmlab/mmocr): OpenMMLab 全流程文字检测识别理解工具包. +- [MMOCR](https://github.com/open-mmlab/mmocr): OpenMMLab 全流程文字检测识别理解工具包 +- [MMGeneration](https://github.com/open-mmlab/mmgeneration): OpenMMLab 生成模型工具箱 + +## 欢迎加入 OpenMMLab 社区 + + 扫描下方的二维码可关注 OpenMMLab 团队的 [知乎官方账号](https://www.zhihu.com/people/openmmlab),加入 OpenMMLab 团队的 [官方交流 QQ 群](https://jq.qq.com/?_wv=1027&k=aCvMxdr3) + +
+ +
+ + 我们会在 OpenMMLab 社区为大家 + +- 📢 分享 AI 框架的前沿核心技术 +- 💻 解读 PyTorch 常用模块源码 +- 📰 发布 OpenMMLab 的相关新闻 +- 🚀 介绍 OpenMMLab 开发的前沿算法 +- 🏃 获取更高效的问题答疑和意见反馈 +- 🔥 提供与各行各业开发者充分交流的平台 + + 干货满满 📘,等你来撩 💗,OpenMMLab 社区期待您的加入 👬 diff --git a/docs/imgs/qq_group_qrcode.jpg b/docs/imgs/qq_group_qrcode.jpg new file mode 100644 index 0000000000000000000000000000000000000000..417347449fe64cbb2c9076601f7a8206d8b54706 GIT binary patch literal 204806 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 literal 0 HcmV?d00001 diff --git a/docs/imgs/zhihu_qrcode.jpg b/docs/imgs/zhihu_qrcode.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c745fb027f06564d41794e9a40069b06c34e2bb5 GIT binary patch literal 397245 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�z}kBy(lpECAp?2$3?2Ce?C@=QTLjJV^{=f7xK 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 `>)#!#P|5Ci-PrOOx&3?kH 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

BleOu!O-<4iCWZ(G;i3}JnJvDT7{oZRkt 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

1*>=a5&H={)y-VSw4<4g%(qQgPf)0Dvi<^JD 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ֽUZ#?zv6#s zxF9y&I$jL~Pv-fV0z)k=x7=i3_)-P>SeuM`fWN78;nv{DWsm*adxXLtLqOJ2X9gW_ zUB>iY`rTzJaYFwtw%NXlyZwJ0orPOdkK4wFq_hIk3<&`#0qGb9EueG=6Da}d8Zb%e z1_?F#E9ZlEw=+xI=c_b=E5*SXGlp69;r&n?;OGE8{Y?DBPG;79Bs3BzUK zvcDbyIl`THuhXOBk^k_2AR-(cTE>~g=##;64K$A_Wxn{KnYOQ~^jaI;YsQ|Rgdn`E z#?dc#%9C{gl!ucCw-m7**}xbOwLH%q#x*q5!w!0=#&s>1QM}zrbD%&1oE)|%XwAr2 zc{GB~oQ2fof_dLsXO-EHE3#zaLqlC9nfHvxptc&TgtI-EV+bE_tYq-hO@_;hHNIl>9VTk zz6%E%r;s}sEP4A~8xqn}Trk!4tY(B@IYv9WT z;aZE#r_BxBE9v{Uv)}nV!0^2I20}9;e0zKw{Qtrud+DuB_Lnky315Y@2RT=`ZGO{F z;l@w0`&@rq+k7CN&r2G<;Q!>z9jw>bZ1?DXhJ?|sh~wowX=bC}yKBK-XN&_%5{%Z3 zsnVxAp9&&V5J?hG502c*%AUQtCrZK|0)3}bC};8;=-oileqN~48ayRFX#^euTn)0h z26a71(!W>F66|0`Xlzx}$RO)KcY(WAbm`U$)sYrVBJRLVL8?`Honx;i$_^6xx8ffu zJyfC0vtwJaOBHTOlQ<5ws7s;zA%n{9)_2$rSPH?BQk28|k4CySScSM|{}x+&M)!#Z z4EBHX6OEP`_&ORCCTR&HmwxODt!r`oms4)(Tzq&DSzfWNww3atcaWXDOe`drL>#l! zw+PI~c~GI#PrZbRfK5s<&Z}&*2Kz1;nIus7!k0Xi6bQw-|RqwyG$FScovh;-{~EK zDXlbKyH3Ukrw>yJ*10g?H0|lHm&;EF3W`@XyuCd+HRLX(eYm`iMhCf)p=v$mO!|H5 zQdu)=zyIwXVf};!u~gs)^mZz%jI`fg?xhEG&)2ZOGd6(QUkXS<&;qji+q>7h@FqbE zB3X@3L0l@dK2o40wU49Px`(?_sKSRV2XNNS^M`1_a@!IR0%!iXoKsu;XUfz> zdAO|qU3R4H(;rXyMWi?Jp-lkz#P)=2izkz5oozazQKL{)%gh@`NRvVljb{ohunu8+Kg}u zdK3EaHO{1go`;<69fm{eyFnM010pE`OHyRrmCG9d46N6mcuEj1y``x@A*NLu`!S5n zgCy@QA>*Kc3z5-I&Rz?_%Qm3zH~f_GP7@8j@|_&bK!~rmd*fxknVx#joFy?f#;X$% z<$tB+hxbPu&1RRgm!%Y?x3;#?N?3E_?}$@5Ve~f)8bVfR4GHet{s%IP_d(G|K8M^t zxR$w&6#g+&Ciw1Gs$V3*r;;DZL-H1BPH&*cPc3I0S3FY_9a3uQr3N;sM$ddk znt8IwDfzqU?g1s>TU3;vKJ2m>SbaMZ%%2L##86GZ;$!zCwc-db25oLTFTky%jGP(& zAYY+`a$iu5eJHeLR|`Cis);OfKu1sj@rV3UEe0euX&u>hucH*39$*2XgIiTMq6XuH za(itk3(yr zCw`mIrQ2c6mp;T17!5D#iK4Y`1|xM_GW)M0kv=MgzxSvujdtc2X zpKIesjtzN5{o`B9~d0f%m~*fi^IlAm%lCa2tOc8sR&- zT<~X|Jtj16eOZDlVk;7)uRkv8b^=-*Rr2ZYt2J9y^K|DNdpwz~U0J;^vd zNlh+!XfJ_H1loZdB>GVEiLc*X|M*F#&>u{={5IUcT9Q%0J#CEvK|eM$%nC&Uq8Q>1>MTesU!*>;)B(WL25*F-!YTfU}&LKAEmcO=!ZyV$Hw z2OuC@N15X6>?miV5|xV2eHQw>wcurJea555@PiiWE+SCua3Onu_~u?+ohH-(xnAi| z`AIU_?l$(@PX~ugZ;=t2n3z&ZAA*p@;1`<<-6(DREiogRs`vGsnVpsY+>b>m`TDI- zb=wdBY5#>(7%Uoc=2cE?EZ1JKPx^~7!tFMR>j5rWG)J&5*GuZuma;5b8aj5RC*D-g z`JMhyb^SqU1GVR*kL_R?-a-CyVoE-t!Bh`a*mS(tLg`)EZ;V3XMTqX>^Czido%sQR z7mX=J269ha+MLEzA=bb2b`ooo0w?kg_2pA(1o-B!ZUj-@AsAiYC;R9X=up42B~nV3 zn$~>x@z0yKWoSYVC9!4MGXtKIl z8|q3D@Y;t0owMG0r* zBEZl~g>>w9z%6ES9ct5nv>jBln)9%+j@mHS2isRGy)8*2iIO`ABR+@BQE6h`pmNIGbt%!wP04me%IP(Loc5##FHuKS!KVl4H&>LGy4fXC%>bHiJGmF1H zJ<5M{%{uUpl^L5iQQ@$3Q1G(tU?d~6mRy-F`;&|(-HZZl3vP1Ssk63z#8{x7kYxbN z;3mmWNg{QsZyoq&CH>$2Wo22%vo157+8YkKLdsVi4mS{A&Qu|WN-AeMjmxwX?EOa8rT@iC_jCsG>DJm7r*RYQ7yvo<6ZlU8Alz198-_4ahwT&q{DNdE8e` zmH3S^sHsG!ZC4)=AgI>Oa2)0Ru_{TOqbW{;tFC0x+(or$yZO`j$gc~v@yYuZQFR|0 zlVE3DaG4lTK!J==j0RUlcaR*p2QAajf>{c=#2SUkuFEVdeZSz9~I-~OZ z+S)j%a$4 z@>CcN5Okwv2TE#w&UZWWajNxicZ*83LK*U7e|Zv>O6qEgsSai=W!LbGc`-8%Mkk+)ue(NP$yl90@}7B=TH4o{ege@JLnK1QVqO zG`s;NrwmL@H2b`7#B$zLzs9tfU8_X{f(fobe=#3I&_lIS7X}Lh&5@+Jn?$YX4n+~eUK@F{r0%P=amSN?a*Oq~nlc0VBltT6mdXE$5=tsqik#KchUp(V zZ!{k32)I5(eRv)v1%ayH8cRBWDWulEd#l@8>7T!Sv7gE=LRxq@T{kMySJIczb(y@L zYS!#N6QHY4L;o=BCA|%fL&N|iTEvOgvLh$8G5|2+p#2cEZnSEk5(%DB?AU6&`jV`D zOd+!N<>YEFm$$^UoY>24;B=AVVZB4$n+Vl_%c9p9L=OC=58JD6hz#U}G_tuzUG&z%0J3H19ISG;=#Cet^+R+(dqQ|e1^t0@$xhy9CJ!KoZz z=pSe^Bt4;w5iR>g-Sw9}CirPTFvSN%v;Zd3v;4Zqj-_8tvL~yUsp8`ukuBE+yPGc} zP)nHMfDC=~UsTbj#(PRE8Z;EOFaHCrdB_#tF6{bLC`ERu|D!_y@c&%PYc25h8zBd+ zziWka0cq}~oZ=VpfX1-IyyZO@?Xafuww?(R^(2f2oi6obrg$0H|EGsAyqwgIvG8V@w5DwzvcaV83q@O$V;Bvn7v);Z(i z-cpZzPO)Q)Df2HE)%$#U97^5fF(q9wo5cnSQu0*0(0Onl1b|7Rv$sq)h|mL*P&@A< zg2bItem-*Gn{KF#_bu+LA>cJV)x4vGm2S!RPsA!P_q$fY6qC88lJ_?3mI$i9f#m+E zykp<>eRiOI{+@4}o5d}Tnf1(I8Ms$LcQzb5IZ^9eo5PEIe()!C|AFZK1A#`cnGmO3 zRyb`O6$!fj3Cb|^fo0VCx^a)0-2tP@*%OzQe7!%^%_|A5CL*ogXSsp?Phd3L{s|f9 zf&W_N?WYiN$_~c*Il|AK$OL>gXyRU|=mT|-cmz~CCqX=83v`E_q#eSr{msV6@Mt-F zSVP(vndxW^&v$ZU$Njk1Ttv))7OT`0cKvK@7VZpf%I4qrJ#ogqKqOVPhE23GNIi~! zqj0U=urLv;466n9L)3Vr>sBSbUBhz2caK(^y4DyCnyVq*RWJD$JBEmfQ+ePvfNnvi zi)}#4;Zb8WU<@^5f~fWH zqRIEkOVp=3#+*7U1~2G63H!5W8@v5gN<31CH@LrtQMSSv?hlCBS2@+dZvr62NBf=S-ZHzaKq59wuU_AGyLnF4RqHK}z zaes#dgg@ToJ9iSGz^z<5@hOvcY?QzseZDF@U?i~4QU$MnI4>NK=83*m#RMp9l^GZd z*&S=1{0Ew--hZx({;^4(aYxK=58v#aZa3VL?5+f3KB43b!{9W(#~|6FgRbx?>6+U2 zkAz*HmI^q8N=*o;zDrW9EDo^VSak2tW&Ev83xA=}Nr9FF>GJJv*sCLOX4k^Q1BmZqnUUA{pJmmw#e7jbx}dn z>mrHd9{`e(6nR(k*cTTVU2G*f{57&7)_a@kfq8eKT?2L7wWOgCXB01j@cZ|8MZl^$ z;Jlm+REAVIq#2qMqp3WvSXsCH{Kot&Oq;Xg#H?1rQ#0M9_y7)-9+n z(|%slFdHW>bfT?D_ks&Ycl+f|1TbJI)H~A(r2)wibFY+wRv#4Fa~oDEWQoIfyGtpb z&3WVZCRB^rmK_UZq5TK^AD|yN6GzrhW=zDI)3EmMA-J=v1hfPnOp&IVwSEu!9CMEt z+K~B)QNHwYT?qB$HwXH2@x`F6Q00_|x!*0=p%-&sD?|U1&c`F(SvM0|`4uC!`Q_nC zuL9-tsfXi}QOQJGYtmj)=Z_~ZdGQ5CjR9}RlOL$_SPTTY(S2JPC#Ng+qTt}_)ZOJk zQktwwj}cT`P5L82@<9@@`1GK=qnOOAr>axgWwc>WzaU{4dkWn*Gyh8O|7|yzXI_#0 zCNkmd$}~n^WRO}w*>B+6>NMqh{E>Qb`a8p?>PTAj{ zy1}lY?=D3SM3NxzPFu*5?AHFt<%b2C_W{c|j^>w*GIPr+SE0uDd=get-hK?M!LQ}Y zDI0aTxdK`eoq;bNQJWfllt1{$&1f~a15QwDvNrHFk+n~;C{bE!h`<)Oz_vnb!T)>W zn<~{F8Dhn<$)U0YAr`Oq44;l291Zuy7(rkYgOQZC4#%7k7ZrrV# zwZJFJH;s1<&8PhD0EhC`#?k(=)iW?RT=>oiw`?NW#RVlrn=G?B4@ll`>*j-4RmaDu zxz>f*IB&%ovF!u}`k!?HP1~qDNsJ^m&!f~7%(60?<_k+ckqOO=ICC6rTE%-DlJ``! zjO6T@PvxHrbu=k#QCl=5MX1=ned_j!qXxa)^LbK(+}y*Z-0`#0J4Lv~9F7C9GcD)# zU87*%{qpvDyz0kW6IR9vQY_82@B8DqU%)MCar_t%&vSc*-Fu6u6y8^*i zPj(i=qb%pxtrj%H7xVFg_H_;ZfaoDF-&=4FvVuk~KRUVClk9GFVPR%s^p2Nh+C__( zn8k1)w=V586Ud7_*FAXjS^S*7MLqE_wX95FSHvkyW7^2awU%zvdda=c6`HUqicyxR z>D~IUD>)Tl0xm#^)Va)N+h4qkI{QM0;@l1h27rNX$NdU2bL=w$f**bG62rgqL2qoy zErkVQR7oR#B`Nm%Q{twf4HI$xa)Xj#b+6NU*{D8D4Hfn)+?;n=hP5W%3;qRyrwsFr z8>7W9qNAi zP?PG?o?y`u&mU0ej;uM?+r>!KxI_!+1y%z{KiFX?kUW8oa_$Zlrs%+nDXJRN-GN#}WE2u9J

;)nHSEMCOR2qY<5vCck_q;_FvVeJ^-1MZ4|kL)BtQ z5B!h#% z$ohR+xBKl8C56x#Kihd)QnZt#3Nk#Q|Nok;)5fZ#!GZrkZ1Cu-BpNP%MzZwn#Omsb z--i58=Egtjue1`hQl)mX{aS0}?2S;m|?vvBpavj9~{VjHO zc8cYy8SZ}fKv_csz?VRip>+!wT7}`E&Mg`=z8w8b(y?cy8bj)$vfk%AhE>T9H}9Gh z1_p{8`S)oY{d+0cFiQF_P^G=4?hKp7&mHmged=pzh6nNUpDG-G`*21nd4)Ep((YS+ zU}5o)V&5)tkWon97JPdCYC-UE=gfJYpI@oz*N3m3ivnc~60d-35+@y|7sH4B<^R7* zfs}=4Imz-d&nJb?XO0Y7vXa(}H#A-2MSZp}={f!9^tEb-eQl=(R|Qp@5S?q9_x;kp*ztABDaX;Da@ z__K{x$tfU72YCf3D9e>s_%mBoZRj8*Q&<0U{yj6a6KK39=3<_tL^WZ5FCzOZRkGb5 zXI@|n+04apqDBg%{Kb|0w#Mj~ubEVJor_mno(+9d4gd2sPz8U~=|>SLcQvdxD%x6~ zQhvi-OtwwAjcym@LA=I8ct1ESMaQK{K-9OiR!KtYFF7Uq1#}d$S5*~)?f36FF4j%<(b9Sn`5!#(> z<9nvM@UlK7Mn}N8-DIl^DjoeHEAU59P=A1u`7@--SIn2ZiLFk?LxYy_OcxSAho)3L z@)vIp7+8~dE$bJ^f9*VgMuO{k0JUE`Y-$a*vc>e?A%`(YZX}xi$rtshcaj>9?=uM` z#QqA-cZ(xI@SMSA`mH=lFA({6d)OtlyAA_0aHaw@_SsUlx?xY}+CPneTn~TO$J-g7 z@MgEd{>Rtn_*HrEtrZ+C&A&wdJX`zSl(?*!tx8MA!0oVJ&N9%2qWem~N>oNBLH}D! zFr|`zhyN&0kT>7iG6Tm$ZEXhS!bM=e)eIOSZ{XkB;y>y0q)6fgW7js})8N4ro$joA z`u>-eK{Le%GEt;q$A2rcCSZPeS-Ku5kycYRXYg_DR9sj(j!bUYmR`UhObcN$c z`GC87S+C)=jPX9cTh(?a`TrL974SeO$Z2b`-dPrkbdWrMe*I~KQ?q^%Rqv>!yH zH>-cSHtVtrq2XMnXS=<7U5)H6Dw4C0wK@o>SV9?hsxg$nv zHQnXEtrJ#~_60z^T@8j_i~%qlHQXKTjw&2>t^J(Nk+W@Gq|`PmVDzqf`sbn5Vv7P|dec;luX(A>ip6{jjX&63@&Og$d6? zoXWrOqQxb9FTmlOPhe=!=qe}HD;gfBy2EVDs!a~?H`#u6J_VdnXdd(E(!o-o7L!Z& z&8(MvUk(dNv9)CCkCU3k)}M)0i?Pw1VxSI_xG&5=QADep7|Kjgjt=$W^e+`Xc&+yt zb}j6ed+38lJR|9G)z!UjZxa(B%3k-O-@U{QgDC<&35xul z+r$l{SVUACGUhTkCYp*!8}Y%N5p=qB3B!0K!(_Hd9t5-t648k#r`*AY>W{eCC!aS7 ztrlHc`-wD>WT#eE)(^D!Uz^Q&Pn&1R*pH&wYksdUU%*h!2_SSE>dNTgY1ppa>8v}z zo1c^ZW5;mq{f$PH%mN@F6TxZ+mrpyxF!aCH9Ar{P2;_zT|TsO`tUWniIB271;y`4b{tj<(0 z(*FF*MKy0fw;t1xVkzc=WU?-NJUv3z@b@^seslH@7Y)e2f->!uKY?!?U{9#tI-~B} zlPG`ZHgmo)c>}rf0uGe^Fsd#IBszS%PhwqgVU<5xEuZSQ@q^%d%1f68#AWe=nnk}J zZsgxE?EUb0$R!FH&gV|g0uj6U8SZ+Y0!&Lnyzm~w1qD1bt2^OdrGr4~a!&bkHplvE zve<^c?3&>+pO1{RF&1%(7=;I8uy|IR)qOPgE$2TKY<9vHBoz{Ey9lWRpK2h_uf9y_ z?3;Mad1iiRVs_*hP#qiir+K%(+SN-k9K2{VQbBte-#rl*P?y`c5ij%WnvJhBX+zZ~ z36NKol}*W<1z%QBC%0dw3hgu)A@E7%=ym7n&HVJ5=EX-=VwG{HqqS>h!!z3ajRrmd z_4muzr%y~o_1m!@Cwg%#)ww#emAgic<$?)A0yUDLr}6vKKygD3X}8s1T(xnr-Z4+j z-_zsf8wjkjK^oK?7pC}_HkBPDs&*Iz_3|Its8)$mkc3pQ zOh?01&xI#>Ew4Tt(2q#tj}I{t5K2Ai=*Ff6e4ya((WVCqTue>vZ>y}6MwF#8hSyk0 zEWDYEjdyOEbT9Z=?{|ZXsb41aB=p_;3Ho0@E(-|M1)>Zz9CLM!v?n!sQ}`w8KhO=` zEp}}pZ|jWk+jO6eX@Ky}l@wLj2ALcgGPBnOZP;a^)RAKOfO4CzcY^orZ@b*Gq?#ha z^dwjFC?Y<)ibEzwt`8;o+>u=%?o?~AQ%ZE2Qk?V4Y_UiC=D0MR-jBYy#O2M0n%3cR|t z0D#&Eakh?#$_N|}3cJ~samqv(u%<{`_TaVeSNu|sn|Np;{tSlGmZgKKn$%^N(!W{! zGNrWjC1bJ!B7uJc!|5p?BcA|D;Uu7JclaxVCYAauQ}Du=^J2(GA0-uTURU|VQ_OS( zv}#FGq=1swM!fCiSS@7<{1LmT!+_W*c;9a6^@jZIlNVZU+Vj|nH{sQ_$s`yO6i}HO`Aqz_3H7&M?Zu5+Gi1wD*`eZ+|`bUZ?qm4mygp>N?03AgqGtbJ}QJb)-+%pyNoaHN=WXIHlof4;-7Imw~Xr-Gp^ zNyLU{cA-4g+RaV>2$Q&PDKe$jO_j6fx1`zMd+v2)M;*hI&!i3}?9kRqd3K}5wJ^uK zWXwh^K0+xa{#HQn@@dTN_ODB|aT$Hjmmx>)hLgcw9$+5d(PsUW`TN<1aus-EMzUX< zk9gC&T{=vu8NRF!J`em{@|ZO78T3u!#J>KTt(3s3_upc8(~{w-M%tU899JD`QiR-F z`-tHmM5?F+QLj0EzXs9ftat(J08gUfJPVQDzDvJBlU~Eyh$wv532BHr!QAlWGr@K$ zw)*cb+>WCNX^_y7&j)du zsSJro;8)Jv%^?g;Jjb$PDOMe6qg>vhKlq1dU)mA*zW#+$zn(gJG*w%*{kF+d zp_xHEOmkb`$Zcj6G1~dv`Did3=B{4Wd@x@GlzgOD(?rPsx zHM}3pe+;Ivt@MUbDAio1Ud(`9~|V?-jMBPUg-Qs<}J3A?|tjHoRnX}vxriz?3lY|M{bvUO&hra_g*|He?^{pg&KRB!o#_D#Q&phX8V&e z=jf&d$%zB)p?4YW>Km=mq^9uzrga{f0!O38t?w`Un9LvB+uLg5;4jImm|7AJN zr964{ywjFjNQ^xpxczGTyXZ&JO}4yf+rQ==!?k|7+Y@KYg zz*#~_heB-Jc;T+KJPAkf2|oktp?=jfO`y;EX?M@h7Mmuxl06-ry{NrLi9!|H8b?tj{ScaK3+L1kXMIE3=IGT5u0l>kP?x1LivmNo z_dkWco!N&gFI>VH5yqUZVJdhj;d#U%dVgarH5UXv&U$2~pPd#k8gqOY{?c@QYVrkL z8T#$LS$!~vW+)O|fRj2|twib{pNJkY|Q2aJ_0zH;mZG6n|pW;v1lav=F zD~F}I)x?4NNhkrjbZaoeNsb$lE#b&%SWhy&yy__MNRiQq)&|HBxs@ryj!3}s{jl7D zi9jf&f*jhe4T6ZKxKL&-t0!~cT{j*bsZ*m3sgU{h;m_jDw2nBh5XZr3Pg@?Lo*KjS_V--Ga%fV}*ryK+8v z39zrS`Z@UK&|-fGrE1W}a@H+agiw(cGPJ1Pcv^Ele0oNxwdrjIx42WmjVQ=sbHsZZ zr$$QAHk*4R@53He0TaWBY@le>8%T>OCDHB~{hqiB44m!X8#m&X!_hTR@GTi_)d*eC zn;1jFPI|ffjn@>a{UFE9SXWp;pNw#{hpg}ewA+O&R_tAnkfW0YaGXf6HuB))EaGHG zD#{tsptLvld(UHV%+6%+7t=Fu>(;p<=VElbIsSescq0RTOG$D>5ugxIdwpsP1jruc zlQVr8Z5a#;N|?xdKdRJ9PrMfy)f^N8Us9Cx_|O}L-9gjcy}~GA<1381D2PPkmU!W=>MPw)q4SVl)JcCeGBo(ibS4 z7p^P}7{%D5XYTMY=1BS|L=D>05)%DaQ{DTK_X8h0!7A>kehNyNR9 zphdhuLI8ZLz09*U*yTv6@gIoZ9?-q)hMc+PW%L5%=a#fU`e0WLYRLxr3egw%I|0k? zI8wZ=4UqUoFpf&?QR6nPkK?&GySMS-_>T{LCX!LR7pm+JBlNqpXIs~5_%$S!}$aMXAuh_1IUGle|{@~62%x2$IlAWT?+tmd)#{yk`Ybw zaddJD_b>I%r+{FpH^Tc=4dskjn}j~HhgeP_5`Q&L3#gjKGp=(0v#Fqs*@HCsDQy} z4abkSO2Sm(JMRR`t6T$}RAp_F3HC&p#5Z>uwHGem9P@3Ba((*s^YpBrEAtZAVJ60r z(oPoHAEke;whsMOkimWjayYqc7>Bl*HtlUGtI0MhQNivGx1ZZMv1@}l>Bpw6RrsuU z<0@y`J@Fx(R5)_97ZnAJUL$UpVfLnxz`41}J$OQ(P@pd{%l6X=q3@U2^752Ag9evh z)ICv&gG`~XUo(&b$Uh=br4YIoRoVr>=Nc)zl{wu5K1cKIl|lYg1a87(}Db$|NjnY04y&`M_6_rvSk*sv5!g@R&j*7EW? z?dLP<-8xc$E}WhN0$DBWK>nAYB&5hLY(jbiv{Xzob3Y`K^z0)P|54(fbe%RFDrktk zh+zmwizHwx{2${cf#u91*DHJr2L93!P0;btC-A|ZCa<1dE&+nmKE8!W4f6CgXw!w* z9!vAJO(K;4&kNl{5E90QF{tU1RFaylH zkG|4}rJQTZY=Z0R`bCg|F~aNd1;d5EMOHAC_?W?Yiq9sUp~^+7Wn0|+ z&7_KAL}w5mt((~W++Nb0_ZBX41GR38ZJgU{A2@U{L(kf zaQNk!&B#Q|mF`*D~e_{Wr&U(W>@G^}N#3{p!xi|4?853)LU#w%w(B%_?(A3XKlBaL! zLA?74{x7)5*`wW$3)!^D>d*ma_Ll`AXP z-os=!#Yc=kozfXFUN*e8}edw30pPVNj$dzjWwZZ|q?qIxv!uwducb6E+EjqK2(h=vjb(tC)e%Km< zi%$6NM3i6X*%IPfPJxPds|{S|6>K_$(Fw@(58s)qHqP;j*lkTdX@KUTPFyDBXx3hl z$5WJq=e$<7iZt%C_{B~gWfmN~NEpF5bT5A;=FadRCvxS=AFYdQ?OsqIMve!4YH_@E z>@=QSZ9lZQWZX$_{d1p(bo6B$2xPbmILF-Yh#ebIyMEw@eN*`#cYo7|OXHN_d zzp)8)!=tUg^{ksj|8DlMP^ZiMA+Ly0>jKBw@1^~QI+$eV#QuJ5+t%3>HNVcTC@e7g zfcBvx<40mHQtTQw1M*>l7$aaROpj5y177nwQOW(x${QbNcCBSo#VsSh!|tglz91;6 zaM*3ikE&`Gr#(KFhVua)oFTS(&4g`tnYM2pQEOKaBAzfm(@005Z5U6Oa+FblPLc`- zi)c+1p%L4Um>I+J099}uDGxQHh_3^sE=Yx&!k zxFJiMx=isw_TAIpk z9f9B6?>~bZ-lzhHV;19}5Y>%13j1z(RhaGKpPM?WCqV&X0+S?lB zh*_5SkNoG5rOc~+R9bhC_2xNCSq>-Cx6YM)6KYrOB%49pb@`2GBIPlT`ayEm{vZPj zf+omyxB$mhmuwEamVHfeM3~3XT~qyqvF5QS@f*jcrVjj{PCsv{K8|oyMZAs3pXBYr zKQy;P86qTmCqkGW0{Rbi{inZ+JhpMm0*pdJzmx=Yco+6Q5{a%pO_F?&n48cc70~?x z#{dKOOll%~&Q|(c&hkO2BnxAvrg{mil`dYT&IImMBkVZAAHe~%xW{lk)CR!mRojjS zAJy8YjY|}}H}EFkB`PZzP5Sa;#{4yU+1L>7_x;}6dmP@JVP$=5{|a3G4`b+NAt>$h zxpVXy&=j?=hJbl%(C;|*UVp9<5>D^TUGPmn$1mcFVRlU>HSJ?Kta-7ks z$J5~#M4iQuh+F~%28D^AN&1r4@-R^7Gj#DYkLi$VM)0rgi$7K|h1nl}3&i)6gX~fV{{QIH^6T1qUbu70^ z{1C1+kIAETQ&%%Et!dH|Oz91zmlg~f``@~Ue8&pzy(df#C(PL}n*F{*zg&hAsSAEq zpzqjgIhN2ozAXW2a~fAE_8);%gF^w3n7I&Ycm)>HultIIHx-1mOWI5`l6*wI8fevZ zI7pmRcomP0QecC-Bx%ze+UKyMi~{?dPq!&3CSO}Ht-iWeBiHjOk?RU^QUy_smu|zL zcdnW*TKIvGB@oA=sC3R99$cF2MG;@UicY%fyb*7AcE}AefG~9M8KFl3V@^L)E{2Q3 zO=zc0Qn*FU+qt*Gi*^F(xDc8t_6!EeGRMb;0Q+eEHYb|1&*XInb9K#wp&|!KUhW#zEL$w&)YY1*FM$fP z_69HiRqrO`1cBVR@}CS#+dSqJ#2ozm4`k5V3;3dvl=r$w0+Z{h3Grula^2%a?0~x+Ra+muyS20kDAXlA?kkK*8wqL z5lTJo-XO<~Z3{mfm|j_36^OlZl+e3TlZwsHQTkl0h_Ji|{ylSJVEApjmg$({Yxwir zt)pA;Pee5u&dOu>KtUh-*&pzleljlDwwqpk*{GAR!9qBzK9z^}T~{_LSdojIe6B$$ zpnWXhsbMZthu|uD1NZ3lI{%z$U&*-c+dGZ2q6#&U-_!T{$K|T-;a!{#(%t^Md*Z+D z3fGyd+Xw}0tO8?&5xe#G9ZHohUlhN8!7SJDSv5*<$NJ@QOg>BHuvgd}`E_s1pkS|n z9=I;bFr{PSrV`S1lT{k~%xHOnN_=FgJ@-N$%NQ zUnq;*&4O-pWVYaatcn6u(r9AfKhKR~-iE|Dm18{UdvR=2Lgp*)G8lifG-YfHJZku= z#91Om@W}3&9<@Xg>|elg?$v*wg?jAE<1QewF3i;XN?*k6II&d4+r!wa&Ba;Y&r?Tr z9h8um!tROo+dLnfhy?bNx9i+Urvi5R&yc#$`_7_dJ8R8fOO|dXq!KI^02FC%%T`%u zWbw`%UrCgxos_!+SG)7?%qQ7x@!!U)eeg%~b(4;S*Ikz|ElXF8qqyicK_uB0_$&NT z4&Dr0%t9#X@w4H^w_KN6RNMtAv#kxj58b2&p7CD{Uc~?#8q6VwDb<-4Lt$M1<$2Bd zq?OA;!ab-*q9$j_5L0Z3B^;}@Cuay)*~lTzxxpR6NHTQzKuZ}L!@~1pXW4ht1w!M1 zWcMiC`Bn>akB$sz>_#L*(*pqBcrl6$Q9d>v`cnfE*2c(j6R_k`vx=`(UVhz_&))<-@w3y$ z8O>96i>*PoB6jQhL)*e6YbFtCBN;{$qb7&>(lKn$qPnXS77wA-GF0Jp5VFIB0~}jb z<4oD6lImtdtfe9?Aqy{~6v*llI`JRqWb4iieYaVci;PFtnZas%1$X)>+7_gms+2y< znzjX9NaS#QEKYc4$hB|??T=qM-<$}B-?!a{5UmexuR#sMqy_%A8ozdXSwmiH&StVP zf=?tWH@ySOb32|GkcLoiyA!InA3edYn_ghomn;QYj`-Q?V ziYFQ)wngIT1lKNJIjn}7bz3?uP|}YzH@mXDt8_C?r&5%b0%aV)ToYFfFS=3g2!Ki> z0jojuvx&~yCTjL-T7KlVbo`J-ph^>}Swdt4GOpR*`>4GHsa3(y68D?qWl)h|%>61K ze$t(weP^$u*>bKKPN=~;Y_k2#Mb&n-gmQJ0FQ&H#GZ04jk#9)dt2JK#;C5wqM~~PQZN>kh*LSOTof7M2A{C^==P;3X>3^{euMuXBahQHYQvCY+y5)CyLND?yJ zk2RP?vRB{Qr@37H&vuJi1t`;>nU0F8GF z=w$+uCRyRnkGDL(c-~JrT{VWUO`ANmhS|bJ@y<9QZQ5ZuVGAXDm-%+7+q{*Qo9K4t z!#s>V1;hsD?)P2ig(;R0R{dGaA~EZ2clf+m@vNHSdo%+z=0*YeGy_rw7Bc`LG)L$T zwb@D*{|t;`jn|Io><1}**wXtKV%N;+A5K*2&MHyXpj(W|u!eS#2U!nT@o!X)XokHgzDR)TjlzkxJ%T6(!} z=*bXZa(4q+_MZbY9i=6IGEW-M>aP}`&)zP7_HuD0(ybVHrddZZuuB zf?7N5t{(EuD{^R4|Gju*@XdH-_>QGH$vVm7upGdY;emGfvLooWm|~a)^JV9EW*hcA z@T9n<)Py)~<3+U8q+G=52_=}l?-OppPmRG$Fh*RE)K;(CHa~T%mNTjD?h?=^ZSS8E z_K@h{w_yo!hA{k4HlzXiyEr6Erm}qzYf_n$arOIs!Wa5CgN(kc9?V8F1o>!2ewqsF z0+PR{rE*z~B=(NeFO2M3^XkpCe?3vw;NSjbeJYIvC<@~`3*EwZLw-Q~y9E;-5~8SK z**`KG8at(8aUh`QwN~Vn+Qu&sBK-=Q0MRX?kj!%#f%Ez4)zjK7gf# z%bE}9LCfImAGuLIv>WlRRiGev+pM{eO0u%6i?E6yTbIIW*sLzgc4A(M6`wLJcWaKi21foWsUn+z?B8i`Vc2Og-XD1}e%i)+C zA}9HbFtnM#{57;6MK^cW&?z`3K+#$BM~y(>)iqu`;8`1h8)m_}s%7tZ z>R>ayBG@T0^UBGe;vS5%5KQAH^vajXHE@Lpo+ncqy|;B|<#1O%M>7l$8)l0uQzlt= z*LKI<0)}9iv>XQ|n0gChoC8dx*NUT7m zua$X!wIedLLT~~vuM`|z?Oh3{9E9pW6BE2I(5%w^{Oa?iWa55GgQ}J|!6JQKvXG9c znaK!*@>H2fqqxhJw|;*1L-f;MgN-rj9UP`A#cwMkRje(&(!C7zF3Y2yvm zoP5$gy@(_jOa@?9eU1%uRb~&;fAy?@NH-ar7r>Ml$}&mgBBuC_Y$VO<OoU)XQl%j0Gk|FF_hYUVu3e7`(v_^wICx%p{m|un#kV+(ic>=hay7I-u zZ^odYpmJImt{r_46#b#e^mQzQ0@ON4uJ|p@phZe|I4zKVkotdsfQ0A;=)%Ei7nABW zLvP!Rshs#bgf znHg`7b$KQ9!8ZztLd(GabtP4DjR#qgwKeTpV|!hkAfU%I=y-g*)@{I7iL-ix4+!Vs zz5r{chH<+Quu>2s11wz~tTgAtc>&DO*(D~`seDXSgiWh{Kh0NDdWCr z%({;^n<@Pw|ANLwcGK%xZ56zM0;;tmfx(>$fhBz>;=o?})VQ}zyhwN@W<5_{8dO&O#yg=}9*+U=p}3BJ()?PR;^G1{jmy!3q&Md~fglfxY~uvGuz;$7 zZDo6GiXNbN8N2uA+ZwF_oA`e!#M?S5792Ec_Uuw#L(=8tBX_(tq|bsE?<#aYD&aj- z#%TKjo-O+mUl&gP<(p8V0o-1O#pHE3VSr;Z3EnTXEhpLG4;D>T=5P{J+t#Lmq7-BO z584r~V+v7CeFjmrlc-8nu~n2t+zu*NKp74{(zF!d>dCYU)39Bb=ix+k7;ZB?w@jEO z(tONH4;lO(b4Lb`%s(EmA?Sb!r4EKfZ8F8>u&3}Yxzsz9z60cs>3{}UeWe*fUW`Cu z#E3Bp?DLn8dEbp0Hn)ZEqnoU@@~8dzLC{HidVYEOJfp`(skgQ4W>cKeqo zZ~&dWhl_iJa#2!S1-C89Q^1L361WiuNw$C0pA>|yosy^o71Pj~f{6|Um)?`tOSjik zW@F&o+24heBrURr{!1iNYijq@U>UOW$uJXcKyxbo(R{jpO(jrxdR(FQC-V^X-tCm{ zy8R?cOe^Z_yvp`-akK&_t0zmZ0ou9AIMf)-y~9L-z_e_FYeqDxB{3N^OsD%eub5#U zR}$*a+$mydx;s6PJQa4^$VP+dt|yg@=1#Z%g6stwzBy5z)Tnzz;omlx;eP*$r*a?8 z8kvJ+Mzq5$w{d!jNV}tuAtfU1xj#)8d!3{fhvB_^0Ov5$T){hPX7C{>CgJk*7F?6- z!dDX#w9v$TEXmQN}#0QVmxc)#*Srl7&d4v>|?p$#h6>JG6@{EBWue}!4K02ZADuTmh% z)rT#=fj2ELk_D+Rrrc$S-wLVz6;9()OahMd>T9dj3!n#vDy-L-IsURlb-Azkj7AiX zj?BVHSkzEy8)NBgkrr^3_ZSR zBED=>C=rbPs|?fO(Jy~)rMkb~*DM_g96A(!cvL}Wfc6Y6d{GU+epgU@$NR!a&%V7$ z)!%3hd zO8zoG2fo*-Xw)E_F=fwr&>RQkj6+49i26lkmo1p*dA-Nqp3vl9+D7o6yH|9*tH_kb z_H@!`u+=*3%?M}tGQxZfT!e1hnujyV)Y z22x^=NBUG~Rvy>AtD(!jjbKsyWb{vqtDIYkxE%02eZ9LxGrs$IC~ffPS?p9ekz$Mv zNg-S3^h0}v`<`(}b{65!ro_!lnc{AMtV7C@(*T;nRov_fHEepwin%d9P!~K@P4Hb{*Y5FBggq~gJla!cg#{&&sJ*YJBp+(WqY-s0koXf zKK{FjXWr;XGN7-(96>k46@tS^VAVL%zmHXxLs;9ZQ`#;MLnu|i)|ai-hWqt4di?G=jkQj*7O;s?cLp>w;S0|Z05sSIn{T?M4~Jn(+oBp!C$GZUYGg9SLwGF zPhA~0Tk1MQSV*guPPk%r;O%XbSR7Mc>B=N)fs7~iV-y#XpZ_wv^>w%VSxNHcGIwdS zb2g>IY7w0i03Fb_69+|LFr3^!3XNUyF%EHe8N1Q&qA$XQZh5d}G4nsJ>~;7$oOf3z zF-;XmJ>nn(=DRqX`}0hOq$L+boZ>|09?xV?+n2QaS@xBBUIAlh?!))HokB5DQ=xz- zFj9;$Yb!|qr+)s6!ucCNg8B^=>RxO7mN=DzaruUj07!vo@~WZ4Ha~^GQ{OjvuWc8T zah2$OD>w3HD9K9Uhn{cYBV+i)xBxG68Ys=DfDT|x>9aW-eDc%b6Sj-MUMkQC8n6LU$jxxh zRCq4q&d_bwB@k=|>+aRWGDBPpZa6s6`6|Ent!bDA)#a6T1efCOcztVSwr9me-i6M9 z8<_^eQu0|kB=b(&{GtgGZh7(66-{lEc}@e~%69%Z;F%oq*8)&K@Dm=|`*@^~#gsW3 z-sM)$h3L19PrzChs*TkMN~gG&dDH3~!cy-pPOJWhTd18QWuiw0G(~FX_}gUm%aKw= zyhMcDDY&z`1MsP>BiY?u0Z-=jHFa|?EH!gg+vu>0LOivV9KFYH0(4st<1IZv9MUtr z1in3j$MoJ8pxtT`ZXlH{654)JS5k|kEdc&56|=CFBIx(qqX-E|n+#gc+AA+Z?XTOP zTGE#=05@nYT^X_Bq)+X&-qRaq>&X=1%^QBvx~J^ycd(rp6ANF;DTz%0i}gW!vi6vy zPL92ICA!q3#yhK+Jb332KcB*?QffkZfLP05kP zHw?uDczRfV*=TS(3)q=X2^?JeN;>`!{6Xm&qtKH8yedqnuN+3)@dni+=Yiw{OMv z#bQ5&DKP*{5){DeWPr$!ZyH4Cx!?lNRW@!^_nQhXcn*w~=4@}b;wV!1DG*F2Sn-EE#_G{=HW z(QJZX%ZN!o&o5_HDiY7usm3Zeb|!!xr%Gu2c86~NBC<-d3kmMaOw;Vn%DX$Anqn9g zN)(kC0=E=)qNq^z-$NI=n>~@zEgc9qSU#ueKxqMAqiJlD>0%sN;17fMuL2|(I%=;7 zGN~bh)5K0Wka&^t3o=Cfxw*XlKX#{|m^Ms)=m&}L#fAT>!HHt+xh#fiCJmyhaKJz4svX2@%LVZSndCAxiDAy#GVHJ(po z+W?&mEgAA{x)YoI!LyYX@C+0Me0NIv#`q^DJ07;mAy+{LeYlk2^)yWW)&gM+iVL_6x|&I(Ze8G8@3`47MY#h(_rVm}jl1R!*W-OUl>TUec4U$zyD zS<}^ZnCIM#@&?W@iB;}mxt`U!{rE@_h|nazeE6|ZF-0i6GOKxGPKNfwf*z1q$t5wj zGmbi@gJED@*kX8p{A|OFNX6vqJM;S5mY*7P@1ClUfS;mY?qXfhzbwmzr*WV2FKOO# zFLVhW*CA4db(BgFY9CrNXZP`gN_RWjTfa8Akv0&bR0|;!6Y^qMGP>!Hky}hrOoSa2 zTk@L_LjNGmhQH<>(!ZJ&lQ(niiV28vhB4VLom|=AOgNbaM$W<^f7+G~+biyxSMAf> zU4aZlPWqQhCE3VAsSC@j(pO#cPd~a{H0h8yPL_C1eVWAnJmN{t=6&NOz*c^?dS{;1 z+#lI!*{|R8+$Z%%i_pG&`o9f%n%m$$rKZ1I4T-CkhiLdlXXd|A`=+#alwz*r?yB+%ge_|J#B^lzx5UiEI zv`b0SHK@k%CuCbZQ$&Hzz0g-objB!+d%}j!EBVQ3PKFBI4Za&bJyy0Ao-K3pqjl>Dx^*qdj`=@3z8wv4Nd#oTds(zEA2xj4TuNfvJBQOiZ{d z&ZqwpEz#XxFP!?&@kfJcKeaCm75cc@7dgTQ>dfBFqE3}Osff7FSK^-4N2quz0dK#3 z3|Er3B>o=_!4l29e3yf2rI%rWJC|ZwnkhnF=HrUj8_=YH?53wY<_WpaT83sQyK%OW z7KU-dW7UR)MxBphYkaX!K{0O@AE*@wf+75a!J}`mtPm*!v`SIJXhJfn(_B?`Uh&GP zkB`u^_a5)Xgg)BlOX01R--+Jd8C!u4`M((K>zC3W5YqEl)$v{)`CQg%P2cf+_ghl=@{l9 zf>8ZOwMWCyo(Ii%mR3Y0Oaq^nOfOlYWL~&1mgoGdM+7aQfjBFh#_1MylZqK>7!}_c zzwr1;p6I6Pv=VEwj}l4zwhcQ z*`ha&nsC@Y`=ORCt!oc*9fiOUNKD_T+=a_Kj@82|y-M&zo4Ya{`FL5Ld}c&aP;xW!N&LvN>VNrCa%o^QBgInzU#t)73L*;lwA`1P zMtUqh-|A`jOu=B)$QAQBG+|rDICqC7m~Oww#ft7qR?G#OwHXMaNE$!XPa8lVc=IZ| zs}DL+bN>NqHokTV#B~^Na-0QA@6fOXRI{<9&1pNx+~t?j*|vAN2^jLIY^3?|Z&Af{ zNR=a`1|(y?-XLZf)Kv4%Tz8TcGHh~WXygmH7NvV%bu0Y`aI{=G7zpK=uMTE_y+efn z`{6v_%#PuZjDR5Kk77L=q15gr4qLgR$_zOBJSnVo9dlCugPZPp8m}$xW&hZ%CmUtm z%~uZ$W!m%#eocZttE#Pq5m*j%S}M3??Rt8+0(l`O2#Sl4;-)a>Wv(DKhYP-fy85{N zmKL9Q>O!4ar|xgn^m{*Ov5MeDS5siCiv;1?k0+O;>IV)Cqe*Ce(iuzsI9HPem)CYk?w1 z9){Fgf}bzdz4X%B)UMoqi`Nm-5A5p%x9OU8U&`kGY1E zU+(_3()4icIeHL}e#4pKWif6NoKo-{`DNnyzTV}qjjq}IR)z08CnNiYVfcaKBQAkp z)e{y9Js4&JaX-rW^B|i0DWOeZ`yVUjash<>_FSK6Wl3 z_u6pJPG869;)W^AKXPE50al#v<3{F~8K{s}BkvI+X*$?)O}EP>7$RhnDV7#5!y=B&i+wG>Q+2hBacA8MbEh{}^427oRzeY`>vCN|J;bdhGC=T8s`+H#4xfxomxWNU=&Y< z8gj@-z0*PIMpUsq8>KPr;MaUFJAm|(+5#Dvi|M3vzPwn0BB#;7hfhoh4)yAC=MH@M zx?W@V;x`jSIDvv6=g0D9<#I|YE~N{c^Th~_i7yr&k2>h%!@FvvA|D6`_R9EF`10K< zB9VzN=qqqvP0x;(megZE4>CLgV5zvQ8p-hZ!1*P=uQ?@VNpso5%6$NvV#ydQhE|3J_iPIad=BV*DQ(nKeyArFvxx+HXl4tPdBKA%aon zFDI9{<1W82+SbC|;7N)~5+B-UChLI|p~tI>!^5)l)n_23>Z;+G4(d8g-VgMYnixFYE?*v+jK zXWgL@85{(KM2`Q0waA8|9aKFwCu{fo9j7A*C9;$~h*n7S#( z5^mH47fbL{;<6BS<~@xMS6wM&`f>66KCvLS2P0s5Rr!Z?;C`{icMr?(edB6&CS&NJ zW{&2=U*|5RQzL?IqR8K+TRV17u3|;{-Sa%&6)OBUG&@brQEDnYl@xkJI!;qEZ0L?i zSl<&br12z0@TetXh?I8QKw@|toFTrK!lXMG`Vpy)_`8jUPnaYoRjfW`sgRyG&b{*5 zVFS9_pSq5lqac^+#gaXhX))Wa+NNOpv{lB*m(w|R@W z_$aeBJ!)&k9_*jv-rS1h`MsPtza#mRuUaxvODq_ao->>?d*vG9hlgkgvjCA3*Zn14vw0^f65hkzC_O~D??$4Lsgm4PXG6QM2 z_96N&t=Z=3w=QC3*CJlhe*JexSNrFyj}^47{TkyDk?e5pD(ZQGCnq%2wZF7 zkT+hFrMr&6@7*rcJUD*;cKcankcm$y?Z6q|Q=91dcJx6<++~xgO-VT1!|a=b`-?%$ zJ@dj}rD`c}Fw&=`KR>HeO&vLENc8U6xhhWEx4#BhS4mQV1Tbg3i(N39qNaj&wO%W{ z@HDE$xfC8{BKRu`cnI?S>^C}HeqP4)>$1=I^fv~yijJU1& z(k33MQ=B~R+_>$1IN+L`?DYe2$3eh=^90cc>tf)P)`}>}JZNVT#{e4yzkZ3U|E!V^ogtMLz zmKR7K<`Ejv@o@IN;q#hU$rVJQhkE!Iq`yP4yGiLZl&M17k2-M9-BER5USvh;nT_x2 z4niT+{)Gfn>E8mKiUyKOWxzReh`JYTN*qfw8&8=3u?+n1rRQDSC#G0ct0GTPf@KneGg~?$sd-li{S8br1l9vB9i5E9RpfzL)`JQGi{@ zLP1Saw4nX-Gz~vSGz|O3K)0AOqdQYJ6-k!Iy{~_PoJB5~)tDAN>e=Mum)>_3SDPPs zj4~d46SgHSJ66zY@6`5Xep5#CI4n^e%`L9VHW2e1q9~3jvLP`jttp}Fk~{Incp$iC z1wSBYq3yOcye0Ne1$f?Q(Fc9IDCuU<%EfpKlIu|jV*&v zq^w-5m^|RJlGO(H*Aq#LJJ9%GgUVgeZGmYDYk#%=22oE>&AHD_9;+P9`W*qdCVXc(@_;=7M*i%kU4{eX%6djCIl7Ap0uE_T1To zgn4VF*4SzJLEbR{nV*(|3b6_s7n36-*jBfiwb6F5()QaM#&Enf)v008*Sv!b#@2W~ z$6RGN@djgllOG~IcMWwGVe_s7&z*+@%M*2TYIOJ67YaVBLfD0S2T~O`C!_^b-;&VZ zlxKfqXyJZx_$FnhXbZ$Jf=GLE5KpKblz;gyv6h~w-z*o7^HxBAZ(~XMuHb!gIYzJU zRLDzGe`_LaG(o^)1JmfO@UxYjphXrjVJDBTTr#cJ<(W@3;H5N zuq6>|@5`iun{+R$U?P!R{N{w#mOZVPn3IHT%#nX$NSD#qKzH9cu@H5mss(mjyBkxFqh z+~1uTXc@Q8KxcM&z4qxtcvQESr;`7VJ8560A3@N42`Ii{FTWEGnlaz0xh8I(oeOc{ON@JM@1@o4O_nqu>lmL3)0t)5x*BvD2#^)W5Z@^#rd75k= zPdBdL!@~Eqij>~-d91RtT?Q_`r4MRyqoyPRMJk%TLqzu-+F|GNxR-6*)o%|Zq~!Sd zOrFVs!7H@|Ym=yZEK+6VSy#8f&cqJQ*JRQnHP*`IzoP;F0ZeXW!Z7<~<%LTX5;yTd2Vm-{D@oTqC+?%oKZO$^ErVm12tv?imqSR0K8G z^drMdFXH%{#Zy(dK0Sl72o*v4A=2S<<}pU_g~ENd9FVWCX#ZG!lakA19oxNMEv8p) zJ(iXVp1`%=X)ih(TECfVuucr`@M8qRf*r>RRP{EDGTG|!N5&YX*Q|Z<1Xb%U>E^HhShW$eGYNRYT^2&T{-G|^)scO@;k=k&yK0O-dq!Ou|XJcnw-|7e;q?7;H(mSx?&# zQbc2sv(6o6DLb<-`>A{7Vh~JFTo20{^lO14*<9=yGSH%ClCByO08lDU-h)`Xp+a;I z$1^=C=C;2lj2OuP=kNFJ;zQ?WDa(p1qA%?e1xfWXSke>>6`zMJXa((HccRAf)WE9k^k8tWj7uiNB<)c2zY;U*#*AMVq~m z9vP7}9n7cSf>)dv+ZBqnJqli*A|Fuf6Sg3`*xu5=LtURy+{o!;extwM5aJ_46VYae zmp4(@{BB#-W#%Yej1rb4EA!!w$K(7!Txv?#EZN3o+Q3(G%VbK|q^R*A8Gk47Es zFYSqf(R3LqgCX=|)Pc}liBE3X?kGX+=(L2p-?yO^HXIF4^5A7eade1g=B?kpiT-!lS6N_}&3-f9NcmpCj(SB1I!Ir5#e zuvi2-TX!D z?NtMFS$mz!5@ctm6cdz~IazAXbh%p~%r0!@N(J8A2;(0LaJdE(OPMY&9@}uclqug^ zu5-|R{Qj-;R!EG_-{eV>AX%I_9u+uQmuO%d>+kF=VTX_vegN0mE#)&YDH!yt9zC7R zBYU69!`xPw0ORFoAcGpgoPYk<*6F#AX@w52b8*DGbRLhX!fAKy@ALt|(FB_xQ4&nC z`J(AV<8Ydrgw$;oU;eK3syg{ME~`;}XVdyav*JVIkRzs@lGAZm_icD%0*Wk%U0q}9 zb^Ne?qZh-!x>^Fm$21nJJ6nSu-i9)3r~6C91&nF1yB;0cQHnz9^EQsH3D+5Ex(Pea zEf-qZrLkGh)IXCkxS07SWLf8rc087AWfGE~8AAdeTKSqn+94Cjxg=P2hGYVXPVju2 zsfHzYXs71vbT}BM!;AMHK+T10r%wi4YP`}hTDAPnHsZdY{@p?i%V)M_LjruoU4hp! z822l;N$51c7hG;1cF=dw27^SgH@z`)GlJ@N*gv9dV{I?BFrtidN%39T!@KitIDF_y zv7L@T!wA*oDd96QISC7#_x#6eM0tZAp>~FNHOa-xqRnAKE1@q@GaD2#&n(O}VJEt3 zPEL2xYUA8Lbb_4HaYxoG1^-0owNZqWTzC(k$$mxW)xnX07yS(K+mt2P6;`j){+g~W zh9vDe@D&@_D!=~F(|aqkb_oRhsiC*uWLiqNC4^fJ{9KWx3N~y4zlSCCWW6zsAz44B zyVoL*uuj3`nT(L53)~I;hw$3U3h!XwJVY@aN>U^>#}t04TG6~TP-aVhD<7xdA5e7Z zmo;jQ=0_cLF@G|XHEFQHGrLK@E22zm)?3TlP;a=HdDM8>YflcFGDFq`alS@5n48|n z=3Oic-L@c79^bB+If$h$ zl(l*8jB8e&fMcuhQ{v8KI)+~b*XS7Z!mSVTH6IHhv85c$viVX(_~gaf-nZRR(3MKk z&+7Z5Huu=Q3uN(<-meiO`q=-z_F@pf2knroN?jT%%)=}I%`qcVKk>XfUKD~zO%Fsq$lUfTylDNIN=I5*=WxAfMN5dByq3nnKT0jWIkZ|KEenBY$X*B>G>)%?chf^r)5u?5`p)6wUGW{My>J zF8I7%<+BZ*XQ0Fswgm8Y$yzX!w%1sMy87ps=8gTH@X;rlbFRsz^$T?25qM=f`d!if za${TvQ)aG#@+f_d{X`pX`LD6NFC``ug(*w$YQ{OMFM4%3k9&LqTXgq;wbuEnTdF^J zrP<3eg{hI~6h8ol`X5mEYnHZH)GPz^uag*Dp6&Zsz$;@>?tx>)zvIsc{d;9)zahY1 zhpnZf{DVYMR3S_d`@8&gx1Jxl=&|lQi@&@NB1fypIT|UgXKM5W1eZ=h<}knbU;&5X zV@8%)H{lZ(YfK+2-U)SDvp&MvznPfKjGaS@fr%(6YOK2k5{+V5IkF^1u@63#Y$G<# z1dIa`c#|S4(#bgAjSK&L*R}0iCXVM$+jWA7fz9=XQ3P}PpeMIiZ z+}TFKf9%SS)jZHg$Zbx7bo#d7j+u;v?wacv{{gNupqQO~6Nz$M>D}tXbuvF@HIiK50DVb=xw<$kyMq9UFW+3FXXSjSq1=ev|krwLieU zzcr2dSt)PYZsZlfcOD)_Y)f6)MwWy2jo<0asvX#mKiq!m;7zwD7nm!;_2dXP{3n}n z^F)-`?I?@jFsQOCHA7c5bEzbq7t+P{-RhMz*bI+yJ-vF8Eg?-K$lAGnbhIukwaA7pyR>Be+A!Y)2JCjEQ;cW%MVu}{{2qlbhS=X zs%=hwN0jwU-26X)HyN<_^t$H+d0!Dje+QZ6U(&sW!P&!I8_*j~q)E$9eOMiHV||BF z{*HE|7pe^RdBY4^-D6&?Fw)EQrYj}ZIMgG)Pkis{X|40HiuH-fQghm7auaD`Do=)5 zV+ul3(6f$1kCV!~Rqs=7Bc3X{s8Q1kmY<-X(skeju_xTEX6 zKQL>J5)DVX8)MFHyteQ&5q_}1^`HpM)HrCg=mL%$)Xy!!$Sz#HBWiMdC`Cg+yt0k z`tMMjg3+7ndbB&TaVmAo+#|VrGvVz=7l}*(9~ZK;!Lwo(qq^FA8()t8T{>KXZhn8@ z)?I=OtA8{RzQ2(APrdo-0ObO+O~RtZE$xuSFU#HNcA8!HqI@5i0QeUf2A5oQTo?Ib zurHjVV`JTQg$n-1jICtNeg4lJ{#@PW%#l>8ho6<7&i6Jo#s&vMCV3&lMe zYH4mI{aNoxFAenQEkW7M`Fz{ozPUvqjT4xvT31)Y9IYdVQ(NJ|H>)9eQ&w@`+ejn! zQpz!OweZ|?+Tvh`|BM%XG&ydc-D!uH^yoXBery(8_4irYYa@vAbdGyI{(W^_?afC+ zk}RIu5GHRSMGr*KB?v@(Og~bRL zrRYU5Inl{BYH;2vQr*5-;ohVwzJQ3TJ zVFBvwh0wC8>`HswKNf+F|61C)iXcW~C5lF)It6a97c@iiL56u`UD`9FE%Pjyh$FaLvS^}MUeX`1W2eo2!-ZApsuFkIc@)JnFn6&j zL%@YrrSBa!hi$g3uUEsR#=53z4ZE!KxtzD1kl!kXbzYn z1&l2n24PxQc)3*^t)BNT@ApYAn_-9A^wN1v1<`h~C2!h74m2V@^D*IdV(djr{MIH2 zJE3z8Bo?xiqRf$YRlX5u#4Yp*^2Ooqxqj7AF(5V9+CRBmTw)Gc{3rnY8hBC-H?YmgFa!H|03`!W%YX} zwO1SOIvhtLY2~i6U&(dOjB0!gcCmpO`n`(&{ey&9D9-R6>Jd;XXHV^5n(KXG=31HP zBBz^FO{i2_?HiQM_|80mNyp1F5%KMNt==rka{lR}FSkhqmcga@r~AG0#tGDmjGnc8 z_xi->lW5EMh{n!*{tXYE1fQS+P?J2RNqWF<$L$I-b+4m3eD3ee!|6aSTv=QA3~5rFiY#x>Ar-Fpzx*& zf%3c6#7?xjuI7#s1t{m2!G=1Fpu zR`R``%$HY+zV8JxX~!RZ4Jh(;S1@)|Au}CHdY)(<`z2ynLUxVf2yLipHrG&gF_Hw? z?s`A>g@|^ykoHj;k?n#q7}NvB`c9P70@(3J28~LAnCWIqg=#NZ{p@5fIBu6Oi5TA7 z&J*YVm<&X{3`mJTd)@gD7_mfah~C!~rO5Pk+2D!~8K%pm2%24oWHf_j0|+=9{n-;2 zx?@1HRVPq&!aT<-EPxPGh8|eQX$d3-`*I*);WTF@k4^k4gH1`?E8pwP;;O_!(l^z) zDaWP57tR-IG|w?w{h>e3N+k#+Q+0F7Qxb`eD>e)sQPiCWut$ZyJQ5{UDmy9XtG>OW z=}l5Oo68M?7COn0!cdKNxA-d@=78lNT6jA%w^h8Brn3!nVjcfnw;SW+q>9{s?bJ-` zTE0f0ZBvQg19JQ#W{BlSM_-vWV~9}o7?tfg+ai=0rYE>#pt)zWRG_A@Sd>=Bc#%)xjAb&Z?#!y zyg6uOB@QTi5Pw*mT7V}+V*}lj7>0^Ggb+vvQWnK!31{iTD~F2klJ(#G-Ah;^SJu7U zDGAhfNi18O6%XE1MkKS?dxkYFs~s>x&i3-9yyCwL$7W~IU4gY9bX#sX zlyH^|#{{V)rZg=aIYHS6%B)Fon(M5ENr{rgOIW5e@%ieL>_2wNW66*%BFJ&C+_%Tx@mk;@b1x^OcQfW)m2IW#_A~JwokojV2Yekx9(L@7M z;^ZsfXky-HwlX1@rszr3T&?8({{UV=p}u*q%?ohSLPMTwqwuGTyhGr9OYPntocT`5 zZY-o@O3pr9a?YLW?I8!*6Y;$9?oeG zO7kxOd{pq?k6>u*WH#E2ITKjUK$&sDWgo{MqYe+&y)^x6^Gf)7l&0y_R%rdF4T`0R zrmE4BY4!|p#eDhuNql_K{{Ux?hm!ciQ?;J-;qMw~w;mkvR-0?9X?I`=?Jpu(p_6G0xkdzJFa#WMMr%wI=)$}u zh>tWA)opYvT{_dFDA1QI?W20?e=*+}{yqFi_~WnLYhE(dCHpMpJe?{DWEy?4$DM*W zOBE$@eqsv}NhZ8W%y6N38C6tdvk(9tq@FAE{{Z%f{{Vt@_@~1?Pq}g*KI)xq0c6c&!_y6NlJrO(CV!dbQ}8!C98oSVA0 zm-%!*4m?-jKOJ}$JvMI{XcyWvTErh|v3tmjYdlAIEnm3?oj z>30&^URp}CL2(0^<%&c(Rz_2mV0i>|uj<>!zYV+-@jt`zcxT62MYgf0xn@}I5HX5E zr38^T-ik#GcDfMDo(QkT&xk+pO^+XGUl26SBjNU^4gUaz^;um8p?$mU8h@7?$lq#M zqu9#9Hpc6;G>j01$R`|!#GD2;5~rBjoWA(A{(fD51E)6Nd}bC(rVHO*S~Pm!?0fri zYyKeDbl-&E71HZeyS*YEH&=owE^efei!*((RFknr0FhVa{w_Hmu1ZN9@n1B20{xi& z9ee`O;EO`FivIv!F_pa6Cxu1a<+)&|lN@>bs0qO8O?@l7Z&Uf#<2*@bZbg8UG$_Ptd1CFmw{h}-?GQ;=i@&HU)X#; z_@5pB0E+Z`tB)$$_C5Dny|YV&NYz=haS(os{;@+HrGQkgZT+#oZcTr|_qwmbFNU^S zhKa01!Yi$A@*{03#70T8ibW1X@~dz_1ZAS!Hb{Kh{0*7Y%vN2?cJ_TO-@nS&I_dF- z0$3-ElWN^9t4{@hQa~oa6qyv_OF>o+JAog^9BJD2p>5(R9LV~lS28W*xxgi+1Ubk69Fvj3&3@s2#~-$4 zrSZCT@DGi&Yl!?qX>QVgYFJymntbu6LpuWBW|e?Ex9;7P;gy+VK9>`Cd5p?vtVATI z1@Uxi<=gQ&GEOqX<~3a!k>qb~xBmcwbl`CB%jQ00_Bk-z2;olb#G~(jkHApoJ zhYOFk0Hl$X`|F0}lboFVh5J5#!8!a#KZs7V@#$l;(rjic2A69vl1ulA$lWZ8K1+50 zGKC@7ADAy9ziMfODLFl>#ldloYlgwR4LYxt?S0py=z3N7Q!TBESgF(Zmrjq>9RC1@ zd?VqH1?ceT9ud;5G<`bXK3%n(D-1xMrwRs1?oTJZL*ow__+P*t9=h>QjCCu0CrYvk zXS%s(b%F@Mau*a$11tcyORoe_wU@&s7Sw83)3_o{; zETe`n7nPwOKZ;NDZ2X#aGc5BL-cRmG`G4UDz)y+)030<@ruY|0d0xX*tu>;036rvm+blbD*QS41E!fYhz6;zOjymV-a{YSg18xqG6(MB2RH+g z42}&anF%bm){(4eU9q{yQOh<4N#xevwXW#i9Mfmkd_j9} zr&wC9`R=ZzSYe4rcXuIFeNBEN#awfY&R?*kxha1t-d?}uvHGS#!gzeTKH971so%G! z`JXC&(Lb@b!+(!9jj6{Jejo8neq+b0S;BzaGbzGdpaafL_+r@-4tB7~ufh+D-vquR zd=AxN(f%Q6O=j0mB3j)>M7DQEAf>#SMhjpt;gwHbI5qu7Xxi41;w>`UTF|c`zp%WG zWrF6~MV2XJag}9sC0G!02sO`m-{IGR{v>IC*q%Gk?6unL5y z_z$LA>Ux}Zz9I34nA1M9CAeR+7gC;GqOoHV1Y)JLx$;Ti?H{3WKN#@tFD|u6dr3)X zwrTmj<8Q~%_^gYDGn_U%_fq6bchRp-r_EosH|?$CF9qM+{4ekZmw%w$-Pp#{>eu$~ zZF3i%izaM{W=8@x+RxP_1a(^cZ`Ji}TVK>)Ro3tBbt~C$9^&q2o>s>LF66Pt*1xFV zjK2c@9{h9g-2NQ##+@9@(8&$1qa11W`x7BjUfNey*x6Mi5LK~;1aV)Ici-?#--$8& zMsE-4n$>~utCpTEUS@M~9k_4=Zvc!dTwwjxV1y0Zmpez9z+6v|;c(8CX!|OOYTmrx zJ^n|j#d#KIUlHvf+~D?0r_1#}KKvQre-->f@hz`}d>y9GscN^J#{?)_Y61gD=NL%W zBXgbxKqej#(cAS=;WmP9F$WetI0OGyHaz7gR&Mfg8 z6OXz`1AWrd^7!@^m#6P zS$wnW656%SpQAu?b$Q8E!NFMLEC?>#01g8YgYysVm-}ODUk9%4ei!&FNx6$%zOfR2 zZQUzJZ*G(2b7}?*vZ%@5xGZgs80Q~{-YD@Oh`eE}&*BdiYIl0RrE!lo>hflqSK2T# z%t_!3R-7Z@-Au|c#p7kmN$Qf`U*x|Z%&sKkIAEsmxK(mBrFRSY>;t`U{``RzzZ<|4oN5Zn!DlO4{M$&)vdG- z4cJ_2dX3}kg4WVDmRT6|3aSbGdJgy%`%U{W{{X>1G;ao!@ps1rwb%7mi4DGpRcF)e zi>_PF+zQ-Gr{&1~+TiWqkk$IeX`SVKJA+V)O5Y3?@A~T5`Q8UF$LDybH>-Qe?2n7T zX8!=#YsWts=3RTnt9Ri~3V|YtWQ@hAT*|DWL{Q9}L`LFdVc2a19FN@}hu;gl3-G%@ zgTsCW(e1RWNKsMD5rvXsx%uUAH%P>iNn&{>yZB*>-Xw+;SmTXCs;I)Mfq($)0IpwJ z@#lj4H>&Bn7Qe1(`gWtNOXO+xmp3uRHPoNoi5-JEpkDnSJ2mxi&}93DOuvkF}BT{}MZ>*#goSX^a%E2V*-EWfV359RjvQ`EJ4 z`;Ajqx|;U#>HNv(xRIrnM?7Vn$!0hJa(WC`Ti`#3-ZA)};yZr|co$2TRn%uIxgz0V zLcx5=U!q2&^2e~?6UBY?WB&jI%J`=zkIspx>pEm!7mg&C`)V-lB!J`?lGA?iDzM2d zAdhJb2|0{@w)`RZ8Sv-ej)=N1fb^Jc8KXqHyeb;*?UO$|(w~{mNyj)H2NnBfb>dC~ z2SF^l)00{yqF%q`epQxmMmrT<%NV(0o~`cv51Rh~W&Z%!f5CqTwCFYe03Tb~_?N}* z(a-105SH6ckra)Vp~pP2CPo<~0x^M)y*#x8Xy8+jQ;!^1;8~_+h|DX>zA9If`jtDjQ)B9t7!}H!<)p}c}sqx%vmgDNs=fg|) zYk2JaeAkiUzq2px$>V>7GTQi4$CA(DF9>UHlO0HX7(hxu!aT~T3w`WH%91jw&GGScm2iw4C8tGW8#m&KZhR}^aJ7l z037JHw}Loc8%wV(e$`{VV|}!Q6B{oCby7gw2;!qZ%=mVuZyM2{Uy>F{;Yp7J~8pPj68ed7V%e%b&JhkR$u_Tx|NjbEYL13HP@N#Z!T^Hwd8iz;a)>6lM?RuED%D@9H}kkjN|oJ z_ILf2J{|l7(Cr1at+uh^bXGSy^w!9?EY2{?5j%`g0l-ynQgTVJtm3X9;rZo|ry6Q^ zUhGxVj_UX6s{a6heC|P$=Mcxbu5LQ}&AX@NYwCSP9D+p$A9!SaE0*zx!|w!qLDN66 z{BNPyYnEen*sq{Tf^Np`rGY9=21=2fS6Xnm#c_H+#IJ|`A@LpWgfvePX_wmOoEY8d z*7tEqbpTQoi^Qy1c9H?e;G7!#I-j&s=c1mP-E{f%KUk^k`BgfW*G+n#jNczW;GLc| z@W+WX`Thx`>)Ix*bZyPG%z-D<8b)STl0rUvbxbLKTo5uFc1PWRvrp_v;2(n;Y&zeI zZLNGu;_1>kCb_wZWwx@BdD&==4lr?<2;4}>$3gckQq*-D9VWu#RMh8=*3!}^o_VEU zk;fchvokT^1p_44(_;9`HpO8U3Z+MGw%%T^`oB}>@VqCM;js@D2y5rE^gJWur|jAA z)8p2PYw)&i5MXs@F8ZG_0hEmG1Fguli+Eua!ayhTbtsDLcxABha;zXVv)~_t> zd?^&7R@UL0Gf8IhI-rUjoLuZcT^r<0!{%;9e&hIK#hw}Qu8{|bd?Tva>pEr5OgDBj zCBzbKI6GYl1cER}V_g9q>N0*U&2p&9jS1O3EcLVQliB|ORyE9ccQ4EwYSoR}>bm-# zFYssJKf}*~`T}U)4AY{D;p0TS)Lu0gccwhyrgZ~2$-o!`(!HE0pwg~u=W!T{xQed5 zc{xe$-siPL4^D+OPLi@iv5F|9Cl!gXw9?8t)E75)_Ez#;UC6OT5|?*!6;)JZl1~5u z-o6z0)B9J&YWIE__+aZam@!GL{pgUNz4md@$o}~|bDRU#y&ShI#AB+eIC$NjZfBce za1>p9Osu~X-u^HAd+@Kq+jg-MCZn&&fuPf(Z<#}Md5HUo`kuqM{K)u=@iWCA5+rmosF%IGx^FV#=2tHxx$0Q9N&M>; z{wd^&NRaGP&reGIr-%4E50|AW7r$_TAvYs25M3H1JF@iDD zu16XVl;8@&(e5RZ*A7{BF-@nZ2e0GSwb@aelPLonr)v8}1r?$35`50=#MG^=Zf0b| zz*PM6#sMs&wtH5tlMS2OW+UbWBq@Ga52>zXP3B)W*~`SChep~6?~r+}y^2HtjsYMY zNaGY(hOR+p4Xjgn5E9S0kYADs^d`H#BK}*gL+pwH@`elKmgDrUCu>|4F`$Tp_kqc; zPqBi|7zMYR95T&=@{BtibYq@#?OYh$Qt~|f98)`szm%0q<TE=8 z#4cS69DW@IUK-)IvALCyP2>UriAmhUpuo*^(tQqTJ0b;Cf<|la-YmFOTxaI)bJo7G z@GF(@wx1FyAyo9|iunV~yq+6rk~cqWU!6h7PLyJ)VXF-(Eb_9HcPbf_dQIvy)n$)|KgprowNC-D!2Ueq<_oC`?YT-%| z!Q<;+N2xi(epSZn{uH*pSGlnsT;n9D`>p;J>fy2W(xW&k;rkvs*#?{St9O={7IJx4 zF_dpYDw!D->cVPD=;3P4%!%7AfO=Bzk)%*C5CflF)in-61VXS*`aKMg{SLJBp`p?j#vv z7p+evviYkrg$xD{9Fb5=A>PahE6hqHn%CI3r zb}Rd*^sj@_{{V!lkG!AcO)A2Q ztbX%%^);5n#z{EOZgat@uC6}NK14eQAor>zmQjQ!Bd%-UIv=vZX{jtCX=CzsuOQ%O zo+(N`?Tx`B`Bg@Fp_E9h6aj_={{UKOmp2LXU=U7o+Ltk>DXhh1D{Ub-#&8ZY1v6)m zBX!A)w<-^%Q+2tLOu*>8V?FCdW{%nfOO^yLQax(ouG2G=ENBa{IV%dNk#WNu3dV02 zY0>J@XfjHTs5+Mjhbk0x$sOy$z99TkyRp8TMeyqza-$N=cyp1^dVOn#_+>5C*NtuE z4$V8qCLHoX$6EfW%ToHCEB^p2e!6US(++ zwm>9p6tel!clI^vzYebEp89)#D{7=;2R}Dn!o2dpSkJotIT}cibCto*^{$WM-;Cq% z-nDgmCZFcVa6l@<=1{ribJIEIxN}uGVWsSq+B&3jW5HreSC{Qq z>V&Kje8YEO&Dy^!sSI{1zpzn!-H+H|TQ0)kmL<({chma0>NCp?x-^n7MM08DzyiK^ z_<{RD=$;=*bpHSkFWc|AUEqNnXW!I{`HRON75rP{Mrf|Cn%>VmTflZM0m$4(E%?`! zcW{}WMUFVbe8q{zF=RrK^HHNaSDvRvxcx7wVq zad2min6b|}u6nt3TD4t8v5ic9D8<4|`m-&Z8kKq)l1--tMg>LExLxg`#E{dwJOPSA zsxVmKlYle*D0vw|h3dx@9I@_nIQf?*oJT7qVbT^D+A=FRTSpwJ%~_ip94xUB77Lu5vBz3iOE2!`V$Iz4s|=n{1QOrQ ztVUKv=*#TG6cR-7C*1%5d8o?uUezS%_$4{O;Aa&TxOZRP4Xutwb3hbsoW~O}A9RdT zpjJRndWuVVo_2XdDxNXBEA_`}S*KfUAq9(l-M`khi<3tr^m>j`QLw!#CWcvZB9O+% z_^5%I#^wZPps8S#I}zzktL{bJ^egNdRm2yz_bqLA0|$y|+iRnag-`PbgV2mu)SnLi zJwZ9Q(R^~t6!O294xob&Nt|QOAM(kG<3Duq(>Sk|-sLVXji;1ZqsCd+0|z|`>(Z;* zFWTBzfKmY}LBSQ{=GhJt9ZmaHY4mGz>iBnw@p)B6>|NmZi`e~3j##FRWr@|%fFYFR z5Pb;iPsp!?ejRxC#9t3v?Dx_e%@x>Y+21V)>6nT8ynhcvj@9;8hWu5b__I%4OGCL? zqAjt3`CT9Ttf!EFL)$g^7HN~#z|`fQtGd|!g2?mw8J!hUmXhlpsOa5G3O-#7^l%f5n5+hVR?45gi^&&ZexL*068S~1Fe1_{@0(j-^7he#agGs9|A?Fcsob5 z2HNUth-9+W?qx?IofwsSc$feb038#64op-@;Z-N?h1GHQu0s#?@HZ0S4sBVoQ}g4E^Ey^YH88r-A+z_;TCB z9tF~%(`>Dy5sivG*)U1nESTLRWS&@)U#;;ci8x#>K3uX&bst-475cv~y!_iE;B00h zT=?b51paQ{q4V$T+4~^;Jopo)TWYi0L#%kk?bR;zX@{Dq#fvi9EQ9w++jcjw9G=zb z9~%DvXHSKH9W=ML@xG4~nu^3@w$-2lEBkT-gxfF$nGu|@jrT{m?%SSg*>!ziOVBjS zooiaUips{$C!XTsW(gcoMx~wEj{quyNvz)sc*nxtInZr6f`$hvI!96 z1A~rL#&F2MGM*R%kzb0{&9e&FmzdP4CsO|a7iaoOqb9Er=B=Vn`*phGw+M|U4abBZ=oC{BQlWzhdtT=$4mX z6@DCQI$wru;fh%`4J%N%7S{7j(t@pKTlaAQ9D^9zfCUN%O8cAkko~Ou3HvkjJz6Myo#)gl>w)IOhJQXeo|N|>A|nS&y0T@Jah5S#Ye?HH@e>>ahNS_Vai)u zLFPNEB4-4R`%9mlg0A9lEA<}^@*L(^g_vQb?CE!U^LbmZuS4_xGR^YkN?2-eCG zyzlxSuHUjp>`mY=25DMf#D5!0r}(p9nPI)Mdue?83ldN=>?(Fn<8V8e6;c6QoHc%w zVR3*livDE20DjZo5x-}>aL=I5bu9|%9MQ@p*A{{Zmk;4g-x@ehr!u_^g&bnARcd37lt zD#spp2fMZvM)-tTDoU-4}D9P^5? zIh>vzish%ah>>y&~v@ytg0%Nlf9>o*fBNK^frJ^EIt$8mEUf zd(8u0wU)zC)8~@f=Gt+#NT!L3y0G>m85sw$rO|vtuXtBgxA6ytH4B|DQM8aeS2nV= zGOjv}$U(sz5zvkg6~7bkHWN69*C{m#^lNE(yKm}ak?}?|E1%WsUQz0v>(jCQb20ev@BT1q``;w;$TxCv1LV!(v ztR#sdtDy|60R$X^4{&Sw?>EV@nRRbri;cTJkI|p9WqGa}A4}Td-TSVq)RP#dmCI(7 zkOogm_}liI{jod^@FPo;Nz)~RT=8|nvfJs=NUoOb0Qs*96478VV22FDrySQd2QROV zuN*cSJkos*jBYlD5{s{hm7# zh^~st^2<`Sj`qT6?rr5=(aRHuM;@xn!5>QgRK6(uUh((FKNU~nza45)UEE69js<30 zTW}OEA%`U+`BVZx1+kNpUfKIQ{@0%oz5w1^>5$JRvEc@tUhhVo^RY-F&8&@+103$a z`51wb*1t@|cvXy!586|xrB|$adMDr1_-sFjSZU(DoZ-t)q`y{=-`|R#2tFVDWbo_w zYsdOrSN7mJf@}r3wUNdQkWGTow@l-PzzhiDzYhK+e#9Ol@W;m;8{uDvyh)?aZ{mNn zTxpWuU8FY=K?97(JZB8k`D__PYJ9*PpgR~3r@l1*0KrQ%r|{Hv9|P=X8pYf}rN7l7 zUoOeG$|N~qD`P(~Ax1hL-;#Qti@Z~>Ytne9S=DcEHHjw|Ci+{4Yk?}9t1Ow^r7$*a zBWME{#d`b;!@2ev6PG`;gp;yr`t)|Xw!eAj@n&0ii2NB#xY-tAF|Kw_pJD8 z>es-Z8!n{OG*Yo!S!)G%+*v9qRTJQEomlM!*zQruBxG0Z7LlvzTJE0?t)kxBYBpC3 zz8jlKQfOsdk(6{StTG75Jw<+P#W`MMg2lI)UCHasx_>{@q4wN8nP4$kb@dx0w_R8D z-1x8dw*9as{hwoh3+TE9-R8f4VfKqHLgEs-R4nXJZ+wF*E(zGZ@Cg~O!M_)H>&5>7 z5cS9LH;uK6&0|z&F1HsmGZ=R^{jjb=!hyL}j4F=8zp9@Tcvr)oG12ZcFBEB(x~`ve zjFQ{k#Ir_2sZ+xPgM-v^I~x2${i1(i{VU; zyAkjV@hofx=Gs93Gm`2n?mRxua*RA(3ee@M{?pd$ucniFD5pTKqWpwQ+yq8+~4DTP-J0NW}M6(y?U4!C&7_j9EtWy_b^5Xe55s zp)4{*e5Lz1{>nZA_ywgc-Kr+D;%k&owd(W6x!$?r-A+s?^AJLup5)in#jrDq_>L^b z<+!YTs^yU7hhEM1OQH4LIfTaH@R6sEpESC8FJ7QPt{cZc68r)1&c+Q-$J+IlgKKjr zf+?@2Sdru)oC1A^C!nvAKWZP_gTg-pWxMcahM--0#!Ct}k{o@G%*-ESPU=e*U8=?) z6qR6dEAYGGN5x+r{9N%Az9{&Cs>`b1Ny2VBVS#V~NMau(N^z1D44zGUd@bSrFEmQN zB3{mu+1pp>yLp~wdB#|56x|9Q{ZGMqv--BOzO>YBA-=GgC%3pok||?g$mqi=%0~nd z$Re#|0nL9npR;f6jpN^dHz!KD^E^Z0dCGa3ZPe~w4WU#utc*yD2r;t-KiSR*`qTD= z{{VuICH9uS9{33q(8+fJ`(CrCL*>hESdp^YEyQoY<=Z&j@_`Qgpzjs#w2gB^Hl+cON9HtQS%Gyb%e?>@Ach(1KV;9?x4|C_wB0|){wkWs#a<`6hC8ckxG_GT zXp*R9Ho%ri9C8Hz0L9gIgNpkz;t#_g1N>3&?A{mg#*=TU*vgF>i4b{^?#4_qV|-1( z`H+LfepAF5?n75Nje2-~XvMx~w>QhJyzO)D@@$_srT_2ZeMU>%a8FZ{t2JsyMG+VAHwZM&VLHuTmsL3 zD=p5O3qA^!!TU#+pD;U=x7|Ga$MkdH2kgJ_=imm76goYWI)=R9HRiW-61CKlZNU+- z1j87~!XX`b$t2g(aaR)X<|{6ZIK$dWuXRV=aDKMZ-L<*k@b*KVVR6n^agF`!>YwAU z;C^;~*Z%;wSBf<~QvU$qZ^EIdcy89l;(JX`Q;{Ch`ryRDO52>Qupo6{Ux#dbqz+H! zr-!^%;vWlmj@!ll9n`LDHLFR@%s0_W#&Iz@W-P?+-I5(!D(XtGDo8)kr|lK{DEvD8 zp>&09N+r@fLuirBZpzNxMFUroEzF11}Q)6TcOirsw0 zLXq(e%K}g*++qO-FSLGke$zj-&%_Up8r9a74A*)OgcP8IL<}QlzyzDJhcdA^I~bH) z0tRwx`V{adfP5qH-@|sE6!2b~2AQVXBBDnM0M1ke-y>smjzHy@mOagUt@}^@#Xbl4 z@ofGf(0rc__`(R7M|}hdRq7{sYuPK|b%a>DOjSbot8# z8{P$x7tH||Y=DOV0iC%A`X>FKzB%as0JH~yA@R16r(Wq~NY?jO_mMKHPP~y6xY;rl zD&dfkh5+HR2f#nGxBL@+4J!Bk5>JnB73`MR0j)GkIgFOBu|7lHNwrLY@IQ6{U8IK2 zc>QIt)9iH1NNhCgc&#mM(PN4j5o3-tQGlw70;mIk0OG5U^PHm_QAY&})K6Kh6}wxn zujWSvWqFnkoBGSN9?^QgTl6jfDb!LEftvi$A9yWsUO4ghhJGIClIy-Exe!2{Bx*NH zEB08>a>w)?O?jWi{{W5Je}HW#(zH)6Q1J;*-P@9Us0)49l>2qqIX>0-m*X!Hc(cY@ z)VkM^lDdxDMZ3kPUbXv{s;Ri_8Oz3VU5c3?%^| zuTzYSQ{lMD+(5wqsrAi%*_CBfGWuS^gl*^5pMhri#w#$Z?W@VZE{o6+nb&j&%kQ+F zYFI8IodA3@at?UrtIIS3UHot1bM>sdyHrNp&9IY^&sz0QF*}ytc(!y<#GmzNAY;~$ zM=F6SWs!)_CmeoNg$p&Lb2*GaX8YXl9C!R{R>DMUb22}gM>!)H{3`FD6))`#)*b+e z;DSn=jy-DH$1mB+VTp|HTphVT;ZOQsJSV3aCd{5*`rhlK!k&6^;`kawoPP4!+V6~5QUR1dt9tih8(!JUN z6qbT}ISi;HJJnk%SPp~UxN+Mf(98bU$huNei7xU4e>OWX#c}q!-K3M;SkE&}cN=A$ zRaG`IJ4YUaf@@<%y|+y&IV6fy^CT!^=0;LZIUR*mmr2nhyO#RO1YmMqp}{4GVg-57 zTArM?3FWyMF%T5?>}xhV75f~LY0|8C4APKtH~LnfSanNRMON~NDsrW9T<`XZ-Wjd! z-dlBryp$3TEq5sO{vq#OYSz%?Y}(PDMAM0yK`qV+01N^2_4?P=J^|d`6w~IE;IbV4 zb@67Rn$DcMT+oNPW_L0;JAlqO$6;S*_zGDi@Lrm3kVhj%OD1whC-ScoJfH3~?s_;C z?`U;58Ip2$7F-N|6fj6)EXV1)6y>&bB4pgk2Oyv2Rpo%(5G723)0+9n$4j2fmqt_6 z8YQy_a`}uh6miGUS0~%0bXvA!0Z8Zh3d6^>chJ!sHFvNMl#B;@QAoooMQeL%V=LIK z>-)gK^cd?-f+q8%X8WWJRAp5dZex?$q%w%myD(K9Njy|0?{Z@FGPSJ^%T|mf!T`(n zTy?J**0dY#B6bdep&W-&Pagi2?~KvN7v}(uah|o0cr9)rc%&j#ZmKyr`d6ig#!3%E znxzEwK71<{3xG0xI@D~e>-YYE^sc{L@T{?1eXmOep=IS5V5zPaQp(#i&Pc#Moom{q zUNcuXCrgxUQJZOGmPhj%PtXc*n7jFEhXiLMu&CpTM_}09f(=-e?*xO&QL%^4bAwxn zS*sO)d-kw{{a!ga=xJG_-I#V9edE;U@u;t0X#+TRQ^3NUQ{s{B;y}@69CG0D57WH^ zCtSkcK0bb*g;SC>`%4BmB=c4-OU`51rAKD=sn=kCz#IGq*c@9jpRop z3~l4|uRh1QuIF5~wp5soHm*n3xNYg{Tva|JWPktB{Ry^+pxv}CdSe{bhIZZ*DaWlg zIN2fEI}8ev*fPczPFuZx&ik|Qgl6i1i*tdR;Q>3&?BgcA4^v#)xL>`FKDFmJQall| zD-j{?EAej-Zn5!S-CwEwKj6eIlhpqJ8~l-AN)fj9runfmm6dV`#~d2X^T|a8cNXps zJXBFG*55M~FUqO(uY$WjVNukzC990IELn5FZgEkn%Oo4-E09X<3yz-RoYP4Xoz6C% zz+l#7mn`F8JZChm)Th}N?XJbCWefBalif*ndSH507{Jas`kIlxQI)MJy=-GsW8~i* z5BRF@f8G_<{286#@#VaVrT+kNGT?U%Fl&_Y!Ox1XbLuOt_%UqPemu9gR@hqJW4qI6 z2EVED`7f$cU)_)7e+Fl8<;T}g`Q`bu?C-NkB=aOjjDj|Y?VkN{Rp!v_q7qJIb!mQP zZZccg5sK5eg5DUjJhDj2xZ|FK>sS`{@#MON3vE*4AdVI0NY~eTy zfyl*6bWkuckaO1+R!tTeBfz>UpmMSgrc)TDWCPq?iv z?$r@FqZD(FE75E2Gv`ZCJaJA39cwh-&prC++8vylzM~+>wY3H09;AWL4|@7@;cx8Y zuU_3IweccxW{fi)l@SH{f~?LM_Q)d@$C~CCe7=jTikgpQ)%>?QvfQ^7kF2R-VC8+^ zMe5I!^`_0p3&<50I)k)INwI2pjrdhd$78EJLn?PAUYkXof6vK^&}8za`Y? z9@PMyd$OFAncwr8+T(Jze z$3Q z9G_ab3jY9S!t&fN?m+a;N$HBQ_S;q2v9|-y1EqP@Yc`#aZk7kx`_c)mZtzuPGK1Nb zaZ>neR`DK>sxGOg$Sfqczzm;uP!HUZGlo(){zM*W?Wn}5D-~?Qp!ECOvw%HM70p9& z1g|B?l2&;>@;h+9LE5~`RT_2ax^y!<)%;d$Zc;?lfX zG`g0W&xF5Yx_f0k1b}lQXZXJG?~&8sb8Z}+8`i_?9>?qX4;RA`YB;?m-=X$>6`!YS zmKwFJciL>pac?NfOBvj(J&3FM74pwVW_`MPTv{lifrw59Yrwube$ihJ{s3r6s`%34 zSGl_mwmN;Hi7sxP04x*|6#&S~NXov1o-4%v0BmpC(^LJPY^`(;4(Jy*TIRWI?_;Um zNB;m4t9DbhgB*sIR3A5%xZ@dM4SogqtHk~!@xHrt;(r%vGwQmv>u#Rv;fp&Ak`xY# zi=UNL1zy6xN#M=^shZmtikB@PE#LVc4aB@(3>%gg3$0GRU*>yv?Fsu%d`11BHJKY% zx|2`v;z%0LLWV+Zp#T*RCr>s~80FhI+(Ll31DW_M@$=$OzKi5Dkp44nBskECjP?x$^`=$4Y->Nk?CHrBT2WR_W6;Z;;*l1+48 zI{1C#Z-$!Z{3D(_(XO<6@}6SFa~WSTGmY`L-F46LDI&je{>jTJ&{<^T9$RS+{&wHy zeo*mQhqe0bXDhF@`hUPbqF>qj_O$fgd#xV%L{lB02_&~|%(KE6 zkO(`#!F61W{YXi#Vy|__b;GOGj_K{XW#SO+Q7`?lo;%<|{ip zNZMKFox(*FYBJ2sZ~z06PfGlj{ilE6q0mOM_&4@`xml!Tc<($y@#SMAjiSUc!yInR zuDBT+27Y1jkL@x0Tl`1(^{LCGNM-Q%h3zMqZS;s4E-n~NsOnPz_M7R(aPCI|P#v+L;TP45Gkq5n@#YgJg2UkwonFgj>u$bV zo*qTQxV+V>mHpU%H&%ZzSGKoWb>!N9qXd?>cG5IcK{^=aibObMbYK}-PXrN=YAgfD zujsS(mi>*q5Boq_uBm8Y@b8M?W|4JEdt@f>DYQp-w+$ljxP0zVIxynD3O+G>6!G`K zzZ1>j&l=cC6k_4wv(yn7S>G&R67V|#xNTraATZA(t#)v~9APtbsr)s1#r}`4=3&Gf zEs4upe-%IG{{Soc6{onA4#X;jjdDUL90SfzHT=dB9A!=qt$qIh z`z`+6o+S7?9lwHpBQ4K}d?v1m1i{){?Kut?3B8Y*0xmHSIZ!Z}&f4=lLdf%6!h-sY zuLZmojrrfNr|Na^hHHSq*S0D;y`|gw?tZ)cbN!mW8vK3Gj+x@CF>9#ARjoCPL`A-~ zAd*x$2Xt;3gCk{0JFpp5m+(vD=j_YzBldmPB)9Q3t6pexPGZyb%XrV(E|&$AHVYVL z+74oKoU3dui@g5;NZtzZw}k#7Xcqn`@NTJXt7(@x^6o8U5-vwoIQy(SgUIx)t!GBk zb^R{uMb~X&y|BKC;JCJ(cf~An0<5g3f(Sh;@=hP)9DYqdtI2ayPguU5ouA--iJb7x z6EvgkD85V49apr`(t2n;Q* zJD6CTsNA~kvm6N+6y%Z>M||KMaJU?!hOmxJsK>0Eyr1g*68RBd7nx^xl^J`_ve7T= z%=x3jo(u6`jvzi(lN);rces=!YFUX?1oR(?;AG$&38HA2$0#VuNGijS zN3DNS-v@pOd_VXl;g#^$f;7mWEQq(4?uu`3oim5HlmO0h%s~6Ale7x(AKHiZF7S89 zzdOY`G^?Qa(mQsJJHS8DFG_*st>OS%E3_z;K4nva90d#V7(W)Uv&Xs>Y4Xr+%3Xb0 z{{V-v^%$QIaWKOwv}C1Ita^Nz{P1l9kwyh~zY+cz_~YR>h#SK`JkqDq?#YnbnUsXN ziZ?0d!r#P&5>75cR2iN8^oJ>sr+2Ictl#42%Xz3V`s4x%p8*RU7~Su2_z= z+VS!Z63eor-V#3Z-MwF@lJrNdn(-DlGKyGgdDfmZoY2hD;^IYq` z4rUR??8aNoG#miY6Z1(5_lTYcDTDI2W&2P5-<~1y(_VNd;MCISz8qqUF0zJ5bsOaX zmsHNvZwoO40C|q9$yIhr{L8>2nwaBm4mhrQoDG#!$NvCm%9`h0KFjmBa_Mm-L(|5L}5ruq<69rNcQj||ZP(*U+|2bZ4bxO}G#^{iFx z(JfnNUR9P>$KnHstKvST;7i|$b{-zSpTjzI$qmk=u^%NGPK0EJbW?!t ztF;MG#1&Vhnd9E*2SN8&{RsPt3$*n*8f2 z@m7u_5h_^tdpJLZuAWl=05$&r1p7?S!|Jr@drUOBq_Oz-XDXX9)28ra?nn>;9W^3XtDOI3CgAQ zp*;lff=cI{Ff5Iam5vTSm@RWa*E}b!U3hcEwo~bvrIQ7@v${hZ(K9G;8BZfB!H2O1 zw>%N!zZHBo@jZu(d>eZ$mZzu49yUfHBus+QN~7+vrEVKaDrYYNmV z%T(9HFJE5k@jRS^i!oVb{;!BmRMWFhc=~^l{bW}y;{N~{_)oxECC7<8XR6w0+Fh>S zHtOEcg_Lhr)97eO1wuL)b-KuDp-kQ{AT!k%O~=YXw)kJ=-L$+&j_;Zi9> zXMJ3~S5xxmh|IH$Z#)}v>20I_UZ?1n>~;HE-28ab*TViM(r=T*`dlOJnw7n=Z8GTq z`DJM%8*S!t4(P}TSY;2*v3~If0=Qp?{{RoXA@Iw?mfjNZK9>fQrdt3+P_7J;Z3@yz z-+DO*!{~bp@^f0jXYHOq`HU)Iim#A zfgLN%{v-TZ@Q1@4HLo@MwKq(p+t|jy+)mwssXPx>I0C%*!cumMyE`X1!Y)#FM{}#{ z`gVn6M20eJMo<1e~Tk%)LtHUm{y3$)Sfh~|2x49;=HKS>9WPV_d zP7vccC$|}_3r$XUf;i=sq2v;C^JBW2=^3peNbRj~BW!%Cx%rQCU!viyLfneUADCj4 z>-*Im+2>lGn=Py>D8eZrUw9=>YNW;!h@I2{@~Grz>5BC^jlIU7D1EmGxebBbcKX+z z$!1nVG#0l25DK9Ls5$G5SGPkO34BL~iNQ@P#TnmZj#*+~o6Jw29hfhzP-~q+Nq>JF zaplUQxXEu!R@Lm+5vVaRS5i0prH?g?Ce+_kM7WJ7w+cyMHvWg4iu9G5Jk+hDA2Xzu zj+ZeV(jA~DVmtS!bjVCkOg4)(>$;x0#CP6uy#^WnMbJ&Lo*bE3eO+FiQ5Y;%WpILY-Ur@quyD4>r~wFVc# zmOwaPrrv74rM_KVZ5fZ2v2IiY?=>-Q-rhyDpHJQ#a#-Z!-nyZ&$oDj))c)CJB$|7} z_GrOeo!K}YF^c+^;i{y54%0R%8>7o|TPHrIzE0Gx5#koQe#=KWGA1$z`d8K84jx#1 zDW|-JWJZhSz`(B$IBVFuo`wabBhX#Pm*xfCgN$OcB)Rfs`#C2rODkg_dm6BlGr$*zD@e1k1<%U4R{?gBf?&C41=()aC8;aYLF$oM{8~* zWE0l8dhMk2IB`1w7^O6v_US?CS{O<#D;Y9Ly@}il0zgsJRN#4b>}EqJA9Y4^Q3;>S zlHNFWkU!QD$3BO>7N^N?Do5N;ZuM#xS0hw5NsuVUcOHrdHDca1WduT39mpL1R8P6k zsxVRRGgbb_D<~pWUt}2k>XyN&BF1Kwhv{B>;%^A9sLgq&ffdYo1~33wKE9uYcMWNH zv5_2~Ic^z2;Cu7USB}##i-pSP?v4rkYdRUl)zdPDQ5*fnISN4N zC?-UnL^jDinnJ-y!Ek+h^U|u=tQO4D$k+hjG31Y>OK_7|YUvr-?XGbi)e6{S)SBk9{=cPg)qe5NkN?vB z6^X==i4f&mk&s98=ANvi@Im@iBh7UolrPZcrh*Wwl7SmM;O8R0Ws>TC6&PKVwL;5h zBdOXz>*<>FbEiy&r+IwfNhdYvx~rA2n;@KE;8&Wgv%r%_ytHlebNn^<$B1_R(O=`2rYoj-qzk_l8C*6hd6{-gLh)cRj`bsqCmm{}LmleF6O4-9oVGBiv}eiQ zH~#>UruY5fU6;XEjeK zpL(tf4s+I*Gu!;O#jrRS9@NyDR*ZeCiFwU$&TwPZsMw1C0RB9r{{VKpYEhPAJxzNp z{{Z}X$?hw~?p(%LjP*6^Woqz}UC$M_eReGP4@7t~Di&;_y3pD;#c_B|#jJPfQHg z&F6XMCZ1)NZ0qXd)=S0O>iwRu$jdf039sDz5A29|f) z03A(IdoeVtGdqH~!iFJu^&KkWV9N{$Gkr$PAS-oVG9p>=w{HE5&$q9=X64bH4)QeRxMA{+m73Gr zM8S^T(wqXLIX?L5_|y^FEC5Jdm<~=`bxU%vM;iH1z9r7$owM#b8q1Ylk)=1uNL`%T~JT2k9t$f0Ke zy$^Bt*2+Fc6Ri3jCxiT9uXrlrDYPqswyh{@n@2f21L(wBLUOgejr!E%wdjb?Z)rkA!Pw_pbt~n)2$@9vAJ8@X&&BtX#>S9 zWUH<@1QE@A_HDzIaVgZItuyR+e~c^Oq^Q?!RNvv~ewYKATKSLR-^ZJ4*%L$YlX+J= zl_S3^vMEawfgl42M;!2{+rQGV&XXv3*fO4kSLZmq4Qw>sI?Bx-vtaSmaa7e>61rzI z;~xZgN5}d*=pHoDthK#8+i|zPg=Rq5BXaHsYhaPMVBnF^n*50PoBsd=*6}m^MThK&`_wm=d(f#MlU$f`zwea)cCV^!hoo8>Uc$p(2^In=2`&806A^fs(Vvh_| zDxbT-CcQJ_f5GpE{{R>KKK>o??voCoZc)}Lh}&~+WX9%#Ve`bt10_#58O|%zX}tPZ z1#Hh3R~7Zzl^dzv?*9NT-y^D?U514Zt40fxw?py6O8)?YUg~jtL{`~21Wu^SiT(=~_;3X+xVQc>YR`fn0{iOc@Vy^@I za-&0=u%L4XDPlUfz;^?^V<1(8{#wTiMlXT`c;aj6byR>>1+kg_jo|E%;v) z-XZX;v$K7YHEDGXHa6u|$0m4`85?MeFrX+AoZ=f@ugVz<(KK{L&Bd!`@V+3FHF2QiYtEu}08BreA-^KChL{fC5n zN0e=Z%_Zcg+x%bW_xC?A;ywuEZxxp>SpNW*`5%)X34S>INBAkN+v^?%)vhhz7g5~Z z>83^&SHeCDPZ&5Mm*p%lz+(r2kJ5h^f5A_*`@aRr7leE#b!p;Dl$te?>U5IY&9)CJ zP(p(-+)vAe#?W$ef%!S&j|=#N!J5_AhkR9GK9{LkOz=%@aJyVQWUFBGUYo0#-}>l$b{jp+viQo4DY&PlyLxsypBH%7#r{6j{{XhU zYpvgFm*q-}i}~7T3QlmjI6>^74{FBJG)-T`8jKn~gJW^2U)++g+SRP)yZB!5Ofvv=&h@U!5a zkp{WpxM0=1L3wDA+-uAUl4#flA|+>#LXr>*Di9lL=QtSU;*KiA@b(rEr%zY#q^z|3 zE%=*cIW8wTuKA^+_@woIhshtaC;Su2&q$Wf#{U2w65mpuNETQ;I5N>$%vo7Y%!=D4 zWk6M<89>DH*ap8=thDc%Rd4_Uu&K6e85Q#X0PR`v z^IZ4~;3U@kJ>jeUZue3%TETY$gKMYFv*eQG?U403RN09zM&+;PtY&4HXSmp@zG=zm zwoB8ZKW4&UaCtrz%9`bh-SvLGPigVj#V?273+y7)z94JXdL6yPh~aCe!%D@`Fo*$m z+Ff@Q1SmV3025tak*#R{BGWDPjSlwTP_VmCGT!FeMV1**@wr_IRvF`i)MCGs{{V>} z5`1a#Ys8ayyT@9LnvSD53zqpKi3dcAG4jTv(Lnd+y|eaf{ir@Bdu}M5&&u_e7v@+v-P2VaEcUQ4n@)`e^*2koiA}lv>W!mm-HeR?06-oS*JklQhV<_c zTxr)@OqzwXcMWBF5L`j#4Z&mx%%OnooQ{Mk$Q=vBlEzX+46FztxdeI|_}qhvvDr0u z>|Nv5FK_q{%^ypf@a_jRqNdfQ(o27zbNK^C$j(9ZBau(9*uUF*_D1+`rRX}h#$OET zcAgm25?L=b3p=?;x74Ja*KmMkjC1ZR%8|z2Yq10ZcMr!*spWba{*d9!`i5CQ0HnZc1Pi#40w;mdd;_n{3WK`>e{8*A{$#oGDz6! za5z;R*pQ>S75g#!F@M27G*1aM9y9pe4W_xPJWW4PBXuxiJ!dc7{n7BqfR3gpYGyOF2l8$j1t!B>M{f zed6yC@mRS_3zoi0TVH8E@?VeSe#ygp8A}Zq;&FDA`*dID`571f7x3n*qPK?iEiTUM zNhqvk+vP2klM*=yW78#ptib}@p zM>zur9>NG=kzW~<=XsV*T~?td7WHZEB>Shm`=3dV%P={e7fz+6Z7#Q8KhXX`@2s!% zoBNF~R=1YU^3}{!+s=&~u}Hm9(ST)P+!31ePlewXejxlD*MH$6_oDq{>zQ45R?2+LQ+5=9TRfMjW;~Q&1ZKrB%WH73%zHgT_D#2Y? zmR;mCF74QDp-;;H0JEq36P6zh>Tlvdj}2w3&21?A4wqvruWSkwVKlPlKQJ-erV}19 zhTM7&*rDPMO^nN>EPQ?bu(j{$<@q0&z6{JT*x0HsOX)7&zGvEhvj@lNzi4j)w~H=3 zJ9VH*1c?h7etTQCDtAk3F9p+bkU<$v0VLPbn5wq6&{@Q=TEvjVg9?$TRZ-{w;8A~d zC6$H6f2}eh-bQPOWK9ggIi~iubpb+4}Yt z6)DkCtv+cj-*e_4+C%ni_*?Ol!n(cZh^@5!7h6kXEM6utB28)JfJ4nDQ+z>J4jHkq zV;})voIkS%?2quT#{U2kwIA(|h#EhOth_IH-|;8YmPpO|CN@nWmm96gBr?UgWDLF- z1LEJcSM7E2JL3+$sCY(OdHgfsIA)Dw(PfWi%#8t7^Df zt@u}0v+);(?`G5W3ki~VCxN!QJZB^7GC2o>(2Q5^yf?ym#B!-nmMPPem%AP9r+wA- z(doZ)@|^EI%PM9nOAe%>^>=Fj04~2X`o_{cHK6DkJYF8rH0w(pG8Aai&fXM?0F9l) z%TO1bobk?iuYmsmX&=}R!e0|EA@L`|!DHbqWm;CewMaJDUwMSS?=CW;DT5R9uM7?t zaJcI~VvpKG;xETf4&GY$>%+GTE{upD#Au5Jo%FI6A|V#l3o<6s!ZRQ_+`=HpAMVWV z=D#C&jK?C(r4>6>i`LHR`t*16{Lj&Sh6^>otH$)?wCLBTWAlIZW&MFXG4SL5DvyiN zSa_peaU0uOG-gXH9n15fNeM~cIK#3GVBm9KqsbaZijjb-qY9&d0O$v`I1JLByw{zY zXE@BtyRVF!ll&K==yc_|ZW{qh*Q;xePdg? zj?&r%EYBgw&;iwn=m6x`!5<56;-nP674l zUjl2B-*}HypIg_blJ@%GhLTyBxi}<%Gr$8U0B|YqY($MHC0u|r)YD;0lqbyj$M>^? z`B&>XFAQPuDO7&+&&Tu5Da7OIa?^aY*H7~~`><`}X#*7t)QZlE;botClbxfIdskU? zXl^1gg$x^mlZ;n0eWFVO?@~qvPTp~j)$U54RCp?{HsZWUV=3x$`P6NCU>iiw76uCr z0LQ5!gniL(-ndcCM|j9>%xpJq#}$>Cvg~f?nv^n@g=ENVoMVDVf30emjl`?uOz24< z4nR2eHRo%oT4_$PPQoW6A)A3#Zgsep>N}}qx_68fi^)>R3wnTXMId_}B$`{!WL9;C z;4#U^1a_`M=ECyU>RXAIV-QtX6UhEm*IG$;1P!d}O}x#83I+fJryi!Zq_$m3*evU? z9&p?ceQVIeV<#4ro`;o)!YL-wJfUUOV~xwZ6~=cS-oR8*{kBlxNbe+Im2QWc-qh@6 zvW?}FGDeTJwsIHKHASuFxa#kY#+`Lo>Q%e&=1V9q_p zaaZjA&v>CO6tgj4Q#t#-ovJ^x!tb<^mgIZXvcn~&>0!$48CFra`;2$3E@asm8&RQz z$pe5&p=_KA^<5&(?3UM2xGZEY2dOQJSGUMSdeBERMyw9bKqImD z`d2j^%cxyXtIc^Oy~VKskdx4ijywJpvlzS5?8Dxa**_>lZQR|4F~K!<@(U|FL34Ww zd5odKOdMy_*6vLslc`GjJKa(UE@1u9g*VRXK@tPdH*sHOd^kaK;9V|qy9-2EuHeCN zdlAKag&mcoX5Rk*O_MQPsau5&m10M6Ut;_|5nA{!O|*(Vh_Mi%PXJ`si=0LK3%=*4 zmn+oN>86f03v$F^a5`kwi(pSkKaml7^wvH87a>*wEj>q1tF=$CL$h$v;XPWRX zne5AB4_4eG0G>TDT-GbC)!>p?mTiSY)LaN#4Amj?TWP4;DW@IdJpG?)8iDR{ge4B_JLiOjRQ8Fxrcb$>2 zC4)9e^b`QMA1U3tP6yogeiE8_vL9O^V>~}L=*jzl(ag`&5`g>OgaXfGmts6c%yk5qX4g>K{Cr_0;M81<^Q(8In+ z=ah!PA(xC+rlD&3bn;o=MdYfUp|=z7SW_%wQqeJGZ(8+ZCAv9Yj>YBsIDLhbz6n-- z_^ioZS!OZB*>2@JVxD4UfhTEH%FIG1P6aU~M{hDHp50%DW;h2P^cZT z)B0t9oq1b_k``ExC!rp-_{WG%Jjq-6SLV;@?*`*+j#vJ7`6D7&*=1$y38w8)(xzo~ zC1v4-RXN?pabE={&)1W^ixK0BiHP4$Qb5i#ie@*Qfl^hK^(;m+`Bk{%`EX8ZqJ{&C zu!Zqk!Wyfb)tX74CwS-nM$6Iu(5}PamA$ps#0zMymva4@;EZrX1>^OuKgS>PHQ#6Z z!}(Wf@HC?QLbrJaRV^-D{{X;KHT_YRul6cm;a`#b8=R}=75@OoFU_B4+{GQevzV2g zP-7iiKGfB*n&Q?7!!lzG*y~o(;yb=#Q-R+VE6H&f9$Z_q*ql@Ln%MKKh~u@E-ZhOU zB1Op=$Itcu0P9v%vs_OmXI;3!z!)4=$yVMeR(2VD=LeDxwKn9C<2fOKBR=)CS?A^| z)ES+9pRq}wO7Ux;#5OwQ*R)^rWhc<~uN#?_ceC)SNhi|1+_FwEZFfF)Hr_|0_zV6O zr-pnzW3Bv6x|_s$!`zk9^xU5<9OD2W!sM|d=ExQHzl^kx5O|-#QQ3G}f9#9d?SuIl zP3-}A*8NMNWMgIVVpHou027pYv*nE;opzQ-bhm&5RUN?O7#?G+uDnfKWSVNVN` zxnn8v!hY;|bd-|bZSMTKb~{hm@50x%-weD#;13+iV!pf7F5$UGmvp8l067Gc$rxZl?pr)ZuI@fV16Ti+7e+p}5PWu%$^0F39Iq@GSsHMMM-KHgZ2!l%1Yr^ua` zH>XwD=7xJEhK?TrPv54k&eh){zg~>%JQb)3rTH??a_c0Fd$}Z&UCsQ4TX_Ur ze5ac8--j`I&3uc<0yER=UW2GcEv@7&!tFJ_F3S?*9hHwMRJ{&nak1^-Rg4O$4jDt| ztxP4s+luU4A31xwfsIQRBA5v$K9w^z2TbOoW)a3rY60oet|l$$K)c+LxTyA}iru2i zJgq6tM&LLel?o*8zb_}fNovv%!azX>1RA3xhsafi-~c_nGw)QOx>av30)1dD=!XP)lj%&jgAAD%|nfq0TFFXws8qiCC<8k8bbwx>OO_>UUAGVIB`pO0)f& zVX&l*%t^?{v8_)mGlOtdwXk0mKgr>j(FqWlT?kx>7V5C zS`6bVa{2eANa8YLE&l*UInUuxUffw}dvhA5@_7Rs)(cHp()nZXnvFDQo8(+)zB#UP zOY20sc%s}HhECvlA6k}6^|(+}@OlreWnEiIE5<{V2-zbad)l*7>}$zwM%}|D(z+=C zHa79o6bL-!5v#K7;kM(NyBsdSEPR@l#@b74nUs=PmhLgynvXNF9MOlo%FP-=(Lk!l z%{zJIel@uSf-qoQF;UJdEr3g-BgpEHz(L3~`0Zt~l1X5F{$b7};{(#Ra7xE4>Nlz- zihnueRouIH&OeoAZ+I@^vvx9hnSU{{kOyx}RsHuS>0AXU%ZE|e`ijfdG}X9~B$n&T zWj`+%{5YC+ofg zXf0({ztI5!?XW!9Gsftck@Ao39z6)@UU_8#La#J(F&q*5mfuaZD6?Hk2g@3?gevYmSo9p=;}vj&oRnj`CUa1WoVG@` zud8X=C4}0Zt#b{XqzYPD=aFNL6nAD~0IxRqTk+4~f5tmo`@e_U5^Iw>s zvR~}6@OR<|kM%h<{{S25zAcZ!_wspKC7g0w{{U!3Zsk_yQ7V(;5b)oI0yFb z8RG1oj!`Ik9!SA^(Mi5${Px$+@;@ohczZIdnMaD1Xdn{plH4s(%{j&Jz;OA z*js`kwzP?1g*Ot%YA66@i6_*PTLj=|(!UkWaa1uFx!1$fRN&r`T|V>mEDaj8C`OfO zb4e{(;GZ6UXFrD@A9N#Q;|oz1rD+7Irs}a|Ph!#)Vs?gAl`^9!`54a9q?2FHhsF?Uzza|R{(v{`d9CM9b}n~4+yK*ti6=g z)Hk*I->0Jd&&RmiF~Q<-9JFcLYk6&dm+HV|8v391b^WfsB!15?Hj$>m7QNxSxjfl4 zo4Fb>9J@;Ix0nYpWNqBLSq|P55=rv!0(=qpx$!$nzSn#M;cM+@PSb(&?qE={mtIOn zT(6qoa#b=%exp84+m+cQLX3=2gK$GB!3VD(j2in~b{j6tV=NXS#&+H})jyW0_Ue4j z8n!b6<6f2G-p`}|05kfW_(Acr;qS)J4#(mT0_u@nA1zwy&6q9Ko1UpOS;~-m^dkfu z5ni%YB~p$9DHtGtLHsNEFz}C!{A2L{09#)W_#auk(KQuNpJ=m{qh^nAZH%RWw`YX@DkYbLej~J62a6dai7q5ymO7Ng)BIz3b>h#1cQENXrS0gN z=SiF_dU;uh5;P?g7LlY28 za7DR-1A)1TEZ)G7e#5{&GWV=ad&E8;@TQwKx8iM1(@E3q_W9RWvn9MKyzNlVPy0 zm387ZXNuxo$Ca}jG--i@BYe%C0)dnHNq2L5s9jBceKeOhHx6Z*X_(0*j@?!nlIrauXL5YsCJr{^uUhWDCVVdNC&gb3-FRciI$f>( zw9rc&a?2W-ty)o!HU}dy$QT9;2<1j=`PUc4Syc1y?GLMSMSPomC2gu8PP=ALW zKhtjY$t>V9MdCPP7*MB(?{=!7Y<<^WTOTmbC*-{s_FMP|b@BS^z&9Tkw9B6i#cq?u zwotb-Nibq9mhgX~7mws(>e*o4SY6L?zR?2eWB5Bquk)BgY$yd$eW!v6pZX?m}N^yhUi;vjaNQalD!w3!AXT<#JL z-eCX&6;D5wMJQW9CqHT6Z=)K3spM+N4Kab&z{wmXB z@f@S&vT49#<0s4A_k7F(b`zWqmFwz5FSUOl(p=ojboa7M?Qruo!^*^&8fR_oA#CKi zZ9afUu;-YdId zQ}>)l;jLT-4dUoj=22eqdVJUUGvjhjI)*P0@b&5Px3#tV`+Dqs=le%~$$t+&XnP}h zsUgyQO$j|>J>~fN_cFBIA5GD$E%dD>+AB*-NY*GIg#t$!D8N+%u&p2nsVX_8ju@Uo$=48UB5ae=y+U?uczBHQVd;6EXy?37CQ@Q1omywC? zS-Ca!`6mij#mCxK_hb2=A)ax492{Lb9`w$S$A1w#OYs9!I+nd~-dH$>);1ytLF}vC z`je7tl333Hg+|Hd$jZtI`68zzNoK`Z0 zjp0>nbJIa_KA&?1=}brt8yVUv9R}Le+8CNP44*DvKQQcS^~4vll0Yj71$Op-L!P3j zJne53VZU%8``nYe9lo{AV`S8ph4^QV#_6qQh%Kap0OgO(?VRGf2(9hqvBjJ3by5_& z9B%ELR|^%@uDGaBGJ($0Fl$)|u|X6BfZf5xAmv0h`i7#nO>2D&r4Pzjs49Oh-&%dm zm)k96dwVx88)I$&+&xBXXGPa+t`XBaWsSD5Zn*W$Y+Tw%>}9u*lQ17EISMi9k6P)W zRnvDz9wL&dqdcC|Mv~g$uWr=FUxkmH56-q;1a&@R9li0^yNm5I-|XIH>oD3lJ#cG+ zju}jBh{i<>aNeT5tUe)3@o^YAQ`F6ZSn^@CLJ`k06V69!^v^2!luZWQ2!J{6JxzI2 ziL6+8Yq?#9c<-O*Ubq)fZ7of#ZM>)fTwu4Ttnu#ZEgEJ20Bht?f+2Bm(D_PajRetT zkV|`Wim!8F{h;UjLECwiSfgWpN2wfR>0KNamP>gD+S?O^#8LFet!L^Mwz@^v+fqH| zXTaXXfKRtTE6;}Kr!9&%b~jIV6n8J1QaHB@l{o0x<$)gDR$iqG>azWU3ysegRg7`~ zKI0W~au2T4j@0|D(Ojcip#^0-%5Yeo%tdU~&PG(zwEN2&sXo;^ zO>8!mLxF?b3|HDd1%bce71Ohvd42uOe1ob^(MGXFZ1T**e%Qb+N47}M=U-L)D|^K7 z9+HI8j`TyQ|g*c^;VesW#PkjFLH75C!Nv*5?~S79w>E$Zn_7i@0Es8D+)@{AxLs zo$&z(st!ot15rs33bHXQ_`yA@l&nfB$>dwj=F1^M%Y{*ZtTEBEO&)VPLkwyVsb}B} zfBNd3{Fk?~iyK(cjAdDxL68UIQrs-Iq)f=tI2%DupnW=Gtvv+dw9 zJW#hKoL`9ay*F5Nw$yF0xZqqV!vXZ}E6X+C4UG~+GnaT-w#LXt)?UQdxn5tH3~*f8 z4ZFBJ^!3e4sOg%1p%ROTm&lLijYk}T(>3T(#JFg4%93ZzQd`}mVb(a(EyQ;$KVJ2f zBC(L*VN_!sje8Eg;Ym~eCR$i|VUc-+uif>P7H5>-VIj?4wMJV3qG~;KX z%jy7&86*G0b6?cicl(tu@UO`q!kNeX zj4S^Dj$fJgY&OjkIy>(NAUAqg?Z80~n8Yta+?-WwaukTAk)B*ZFbVBb=JWyhlluUk3}5k9ytvI=nthACzi+;4G|vcYdQXD<2c?}oF7J}od89zBKLMm8Nsp)FUXOCQvm#Po*LO9*ct2FrEq}FdBt^5c7=6zCAOzrYa!x%fjqw-8 zXz%q4eFwod(%n3hqDwhkfP~sk20@+Nbf~FSMAnua$%rkabDV+i+L;>59ne`Fe6TVZbAo^R)u58b@eP}~>$qU& z=}{YVBY@li&(^qVS8_dCcxc645ty3LMFp5eh;z`B_!^dJqYH@{e9qgB4L#gOSangr z=CLH3&AB7bRv6(5u1DjF%~a`QSD{8{lTXdvvy&lij6*IDrYb9<_ffo;U`Q7QK;r}4 zR2L|Bc`=Yvspp}nJkL7k$b{}HaKj{HiqYzhd1%WJtYoN-NX89Wca7gv$BXCrx146Zhlh83Uwlp%raWeo@M zDf!#;Jk=$4a#CwT0IQz|YdH`O-0EKfF)wo|Kx$#wW5A-o5@l5eJQpY zQ$lVd7lByef)2d(tfvJf%O#;uoS`mgyEEDT7W{kEY?d7(#)~z@u-c1xwT#Kz_ki;1 zJx4wHud=l5Lc>+Fi%`>UBf7SkcSkHt9T<9oIIqpw z>y?{HEgiG4Yl}I*Sc%3tPw zh|_kC{MQHIpNLu~jcpoBGS=5o9kW`@K#>oq!6BF2ab4&+uY;T=2g@a9eyL8RD#cC? z>7N~b(Vwx$!+(zpKD*_%hvLB*^7UIV7wrtFRy4ap2%0rJdE!L_3g8kC&7ZSx{1d-V z@b&yYGWg=q>UY+&$@Xmq77|#mmgQ1u+;cHt1EPGY0r}Lo%D<~5W|{yT*SkZCvsySe zfTvaaH}|F4K8W%vaP|gx#f_XVCHH#UxeOMz_K-(yYZ^lgN)kBG1yxlT00F=NcCRJ) zyYbWEx4|6@>mEJT;IooQJe4g(d)HT>Fm{{YASG5DY2yT2It>rk6f)vnIh zdAJeAx!V+JfFp@AcA|g*B%HBkKKBOjT(gOLdh_L^p0;VpzSimL&m)PrqB&ajG@*Kr zzKhq)`WyC+{jfeIe$ZDbVCVi3uMI#XMba#1lNT!{!~U500(L^bE)`I9+n#IYJp;sA z?}fFCZxDED`r}K~tny&Hw2`5jJ;Q5lbs&s_LG=}oze@Yd_8<5s@N43?jU=1mPl#>q zF0CSVw(z0zE#$g(Vyh!gb_r2epDq?Bb1w1#+TXh3p_gP?T%`(syNcN>x9jWGv+{aR z9h_sM&r|o0X5FpmevtmgzqDt?4~^OsQ25`%b1l7;4Ilg^7QjVgc{~9WqeR4h`SMxJ zM4)a0Ag{W>+&W|0vh?0sr@+-#?VqspZ8io5>+JzE*oBb96b z;g=x(cla;<35}&$d`i8#@t(HYkAiIGj%_;D7ct)6sU(3YA@MhXHH&Rt!caeX1A@`FIY|@mM&N=9umllZ!1b>D7ZGN;Z7JbsRFo6Z zuHEg~oLIb<0gtI1O<1Wlt^4}-M>pY52zY0~8U?q7yeFpH>3U6)?1IwS0z`oFNCT-S zl20V^YvKO@+TZp^_%q{uB7cb&nx&t^{Yu2|ywwUKSlyZARR-=cu(XBSYC1BxFNWMU zf%hki^?g@B@Xn>JXu3@L?e&$r%?6un=^WQiqarkE3aDe-C!T{OfPb3*0NOL-_r*Vr zUNX5pJ@d4y8w-c~4~PC_hQl8&8CU}IWA8}ACnsoCIInYn^1OaOG4|MM+>ScRTfe)l z{PaA|Eyv)nxJ5$|Pn(-at649fPnM_8H&I6g)b{bplcZ9-Vpz#2;TW#v+!W!lk&q5L ziej?^!NxFuDr=HmKvrgRfD{r*{43e-zh{4qdRKu{;!XbmgmoCS1~0nc$MeS$1wM3< zee{L54YComocbF6jjxKs(s5XtiY@4_(!26M6Qzf%SDV>Iw6)Ui$oix9eg6Q0fq3)b zW{`X_FSotfgSL8pr{nDgYYQz( z1e!V1_pwCn)+wEGBb7!sD;_h7@qDXrd-WCS!nHhZ7Ec9NbkdY;?ECgOXG(M`rCu97 zoz?#UQ~H+pH}E^*zrgpMp7HCJ!ARVgw6_x@DBBSp&XHr2>i+YgnwwCjUU_5 zd?bTMyz#Du1-LOZmn$5)L=dYG7HP1J8y%`6l2J^ZWmlX{xU465aCg_>?he6&!{89y z-QC^YAq01K5AFnaXK;e+zZ%q1)mh8y|C9ks__^Lj#UQV2LMFP6Qjw<+@lT`m}wS;L^xInua+z? zqwol{-@F%ygK(5d_&7zA2ImRGN{PJI$T z7p|2*mAusNC*q$KA{MOt8+pU67UH?x%t*1VWrv?MYoB0f_$62p7l%WjhA`yb-{yGb zc^hGbc_E6x^}%sCC}3ax%Gr$Bm49jG^rNx+J9#obn|AcLQ0J+rasYI|>?iC;VGrj= z;=Z0MPpK;*in3-V<-zNGBWwf+q1bsNc7OzOF@7FJ3o(Rw+27X@;y$e95ey}qv}1)j z0F8R%S!LkCpo;vWa9yYIHx zIz$ID&mC9lv|Yo)xF86l)%n{#DLlb{6nzSMfnNQf5A0bkhIa@T4=@tZ`7|>Xzlq46 zWXD7gC14XzvyUF*;|E|t_M!gP#>-6kZDJfn=S^?V;P04GIE9Of<-{q9!0kUe&MAEs zU-=&EA&V5rOJ*nlasJAWcVAdwSALOcUIwqL>X9w@^kv#>S!BzrdS82e^lk-&iyHhHqh3O94hQ?Oz`~*t zevYM^=NTN;;X3o2-><`k#K?YXWMxWemUv$o%K~_I zAxo5*1#5I={`8ZLYVcBF`Wb`q{4WgEv#Cu9sy7Rd{^NTYk2=xKiC`JA?FwM z0YVL3`8Ho z8DsN8eN?$L=|XjrOtDx0Xdmf~QaWw*0b^@R7!;OJPhtWNwpj)kqCTAT57#G%P`^aG z(xf-~b4mgjbg9tq3a&Vj9iE_ruf6L8hj(ai@#0vHmcViz&sglQ;(YOV4N}Aak@T^s zkOBd%Ge6NkT)&q6fVFO-Oa~&YwQ5QcSlfvKHOU&^Mra36r9?spX8hle4Ud441CvTh zS4pyS{U*Oe9_9A3J+R1G@F7@6t@-8grA!OaVH?4fY~~FG_igf1G^L);w97iN2Uf5d z)|EQ5S`3H)%gw$UAAU6_!#sYJ+Jy5|_EQ6?5^qCweE^?54@=V_e0$iJ!m14`8m3B{ z;| z)%_Mx8?IPrPO7=|M%qeU$jboX-=o7re?p$HR!duY^wx4Gi6B{5RHr}&iAMX{Ln6~d zD*)mF%fle|_B7T+FF`P3jLd~zPRw}I5MxOqrR9{l5I|YqO*E<`W><|;CdUfgDK02R zv_^Uo9Qsh{EJfdO`O|vkc1WnAp+%YvPHvq1nHbUhGTIUAtIP535u(%BMqO2HequH) zkbFc^R@tatcX+ABG(-ESBf&pyw-m;Q|g@kJ~D z?8>x%s04LGCpmRIoN#4;2uK_$1GEynV3v5x)tXnx8(L#5+PcLI#^K17=}-zpbuY9d zK2}_MC}UlsZ5|ASJW}PtJAvyb;`adt&OcfUK+j4UvzOi=f&^04d(%2b!#^`ca`p>~ zx%wEh2l(!zws8NHI|X)hN@XV1OEePS`#qFlo-V5wuW)&5>1&gI+fVp4VpM_ zLYJ@9%HK}>><9g6;<=1qeImU9b96TEU^$ouGVk_*;2%D%tQ(?U3ygb=5`f6kxAbEj0 zwA;Vy)dh6W_I17(c?yq(aCNd!VaS^bE-Pse7ew^@_-KtZEU!-&)OsaJO#0;z&@ot+ zrO`Ek!JxHMo+I^5mi#_}p~D1yb-KG?(;ox1qWIEn2 z_k0L_IY);Hcq$&bnG}itay6Zf^8_9cYlOZO3O#Q<)M%Ca^=bCeHnOvRcDY?Rg64}^`d;CCKM*g6oCb!ddQ&U zd02;{A3M49@aXFmpgO=m6ezIdAr(cFp)eAkm4;zikXt?D=eRe>$1A{cdcAhdAYzr} zIV(VToh4_A9uJLrbmC0#meWi;uvw%#FR*o7?NjPD~o5WSDA{rJ*(5C)J|fz z{z6B`z<*^pcu?Rb*H^vK6C)cS-W?*KbpVFkrm1i~abBC>Vh4{3v0fy zN%^Xh8w{m%m_g2Yh&x2ZDRtAYX#Xo22lj}jdlW*OdW%qOyxO;p^c=f5ao~3JLq2zW z)&KM6Q**@+7s6IUw;Ld!B*?vk>aTP;`5aLIGv0}Yb0)sxYeBl&`#Jx8Ti*8AM!%ZR ziSV@o$G06-swq*~7bSLr>bN@(B&kf_JILk;Dq)OssrP_tsgCLi?7*eiaWuQe!n~iB zbTE5wE3oTE+(C#PhlqoXkG1d7pHujLxSHf7#e6V_LR!K;Q7lJZpBF(xiMksRC;52> z#tR0MyoI-iydTb~{{h6g4>|$JtF4BCV{yBWqskvJt5MVVyt}YgUOj34MOxvA2=hzo zE#996WvcNZ^?MkkyW!+;>W7EtiTeDp{addsjcRcL_HqIi%Wj~joc-zg69JIwYse6T z`)->%4c=s1Y*(|(&d0)~Kf!JJ0gNH?Dl(yPn5lMWOQJw%RX3C0m1^PjQ+?8-y^-qb zb*{?twOMDUL*0pJsjtixi97Zue*)J}T}Hn2piA$17}YVHwmz1_Bt!2O;C z7V2pRWsZ8J_nz6^)pHxpc>~FhF7ePUgJb}{KAna8=25h4lAzsr(blX}#IsZqi z6G>Mqdc9QH2rNp&<{@!g25!$!|Jz&6DjJ_SQx~_Y3!8L;=N6nmM(jLRR^uN4 zGZMC5{T4Vg-qcE=(uTVh@VD91B)M00RLA$~gx@HR6jTD8P_Gu!%j-7Jm&2qdb4mv} z&{pXi*c-CvBwT-(7-PCPPf*27Ww_=&j@MlO{SBO#@pO_TMKiSJ(bLXu7u(SWV6)Ij_u-qmfwD-;RzbM;DsR|jD#{$0OYP|05L6mWh8;!$;Hl>K zbY|`~wVBa3lr=Ihtj$upA?L0&Sv>Cv0J2%4?ust)`7tAC33dQ?lIKf-^3LO%NnPtO zkS&^a-0&*{XNWcLgeyLPi@CrDlYx;Qb5FU=nwqHXKnf8%VVi-PE5cCz?pFe?CZ~(C zfA6^g&o_Ij*W+0)@;vf4L_b|K=jm0{b&E@14dv3!DUcNHbM&lpUI4MCJWvYPp$?PI z92UC+ntCr)V`EabC`F2~)hj&aZ&|Ucodg<#QueHDDVFSAVyomm#b)rmM#_Y7`T?I^jd+*k^FH_Bt1e!(T=_F>wb7@Mx*kiQdMU z`LbaznYr;^zzpYMuJ-5FIj@?bMDpt&3WiM7Tro1;D`tYYX)SWoI)>p*YC#RA_*3ga z?P%JO1aEuV7|^U`TSwwaf_AQHoo|R}ru-Z4e*YMw?@6rKZEkJvCT}LnDSpfkw|ieI zGNUfvgFdzJNBE`18Fp`bB4p@$WYX;_+YX8Zsc=uOc2QcvFFQSUn>3{f;W;f`oaap} zbi?L#f1it&IUmmXP17ZZ&(ED)%BhkNK2WVcyz0Y+aBfX?Zm`5l49Kofm?k2^Coshe z%6MnlcWqHRPsOQM*FFhufsqGOXjjaLS1iU8zyXTnNX?&4;$*b}23g12c_cE3jep%w z1OBF4cKq40?mlAzfXKoyUpjl1mL)r z+#!MIkjD?nArYFE6iBjI5u(Ujl}alY&@#yX(`1TY*28BI|EKdL5dM_v?O1KCg{ix< zK12NUjNT|mnL&%35XX;PVumrl`mlL>@nrF0|1M#j0Sw?sIN127lzi0M-(VgC66N|r zi8+3HzDCTEhmoA%`Xcx)_Bkbr*>8EJWbIxp(|Ihd@`{&mP$DPWLm}&cCa{|N@ zl!y(b#l%xm!oxgLd;I+i7TsE%^5%zs0h@*KCq0ZYQ@Pb>J~`*@hSiTEg)hpGqR?-* z?csh%6;?**Ekg&2HVf-`GE41O*2nk;?LF}W$UF~2>@cL-7&j0iLhPsT%kqKIi##~6 zviD=j>aU(u3pLMQPTX}&RBWGua%k@3LwG(ev){))3ASe(pZHS^+R-KrX|LwY;Qpa? zZ>rJZleJ4l8i`hgkwD$&*Mh>E_Ji_a(a=x2#Nk4e)~}b3U!AcVq>&qT=+B57T$=8m z#bH7h`bz_Ycld6Nh8-gW=;Hhwe~Cu4#!J(AKb&kK8ylqSGlEa4Rqz@821sr91J`8s z94}vK!;No^#FxfmdUTNCkV<>js!O(TDZt&F(+-2Oa)qv3-rpp;EgxReq_&f=10?#< zZ?QxMO`VZYB+;h$ge{hH@7f)C??g5B@~W{ShJ3A;ddypZmEODkNr&Tu|BTQ+*T}wz zz`dLdc9kaxxx3r$8(2(k$iy0oMGMWrcqh=KCpiS{A>j+&{z+2wBx~`!GQPQg@?Fqn zmR7BPN!i!2=kk@2&epSLWFFr^RyiT#-ErK9he;eTfwfky%c2?7CQ<%dka&+}Sl%a1jtYfQ*-3bI#ln>6qDd*h}tg(Ed&=O${sq!Ve zN;@?lw%emKP4zA% z(D1mWy)*c#?zi0UbRFshDacA?(@cv)7axTA8S|;+hjwU$<0p74Qg|o|XCRzWT{_*o zIi6Q{J4zC8Q4HOh9t?xYZq$Ygslf`ovUGkI()W`WMf&x*VtS&tHAKPAlB1E)CEzQ& zYBw$|cB+0dpnC6<=Q)J`93St!svfspJiX-Ym*TMU@SZ3d)_h6$XELN@F`;fM=hJiN z6H>pt2?_DT4+cVwm3y81@hL3~qwVjBnLUxgXA>CL?ww|1{iihv>o-vRQw{Zt(8tg_ z*XPWC0Js3mQx6g9o9}HqRLj@oUdOkTQzV1At{9X9e=`!eka>*x|LjK#R=-}{&L#M1 z-ja>*?y%qbgEQYUO6hZS@biO`TbOMBVrU&}62k)A>J4A8-j%>gFR%ebLs}8f(#g%v z#k*W7+6^w<+mu>HEGFn*DDT&f%(NCP{K)cw6UJc)^pmRFhLds+pzX~$X)kS3%Bf0= zrV#<$(2He}r~5n6(tJzFzhJrIZ7YF~G{T5{UyPW81rT=zfvH2)=|G6+hx=>%q2mi} zVrVOCG$F8jZ(GTp^$+Ltf-Rw4B1jRF96w=J0_h9;xXJLV>Gc!zm1wYNOW=@E;s$kB zV(9e-(gl~Kf9Vdk!j!>qkd9^+2PW#On#MbE@INW+20Mt8pZt%7PMw^gTZPqUII(ROV=}Y>BYOOcj-Vm>i6T) zPP|yb10ybh#3Bd~C;!NPX8TK~B~)D@_JZDdcm}~GbP*cm^x7AApp;QZDxf#{qQB|+a^^3Ja$OyK)F9N*t%E+~+p*z)SYYw)-AWAGa=N!zzKO51E_3%hAaY1S zP_SX2R_e;=>|bD_>*&n=BtD|w;)+2c@Fn|Q(%?eQ`PU2bge`!Erk~2Lel4n#&nTc* zKxC-LVRL@Yz4*0!}V8RM{=|!NC!U zOh%?FDEe0!>NxlEF(};(C%G-(dGG{fOJhr8B0|xZQGdS5!Sr4Bt}Y+g&sIa>aP{ z7af>N@DI+xF)FfJ!{(e({3*TA_98y&&sG2r{kEB4q41xFpJ=s0y5o=0&LICv!a%hn3EWC3} z2sTH5P9e`==$!aN>5|C&Q#dn0NotY#W_P0gttQhIowQy^zqgoOYTgHD44{$w;f$g+ zh7D})!pove!cZe%QG`>|c#elcm!rf(3FAmcJvJT^I|J6$#xaiw72zxt6-5q$F@707wTwY8mKPO-g;Ic5uX-L2q$>>uLRx*<*Yd-t0bnlv}wTj#pN z>n(p>^Rpo{d4;*fJYg=aK#?h<2yI-6J)zY?f{H=dzmia8n#xd`Gv_sub2m-HgYEjR z?MMCdCSRRts|R5gnI%hLXtI6*tcQwY(O^^*YPy0ARq>&Qrsv z50(UHHqL^*W9#v-{n(@zSjJ|KiKVWm!d$I1z-h=C|Mbh1Zofr{1uL!GC=j z85J*_mLUCM#bIWAm9N{u;CPHJ+41%e?e-aRCb1({elP=TW9tD~-lc;!FO23o%#PdS zWWVJAdm~+*&*4H7OL5QkNli2YGUA~#3iv{Tt`i7Cu&06A*^t4A3;A+XC~r_>0Yg2k zKTX@W%=o1r^;d!~AdW&39U@008)|<4#vA38K8^drg zFLvmiNu$5{rgD=Kd6bO(o1)M{3z@`w-smcF(PE}q+;qLfF|4rRV(PM$&(mFO< zzNloncnd8zV^YGCTKrnCAW)YUFei$=dNQ(KmC~d1Jwbf2EzRUbUCpH!Lgs| zCT%DqyL8LbS_t+zLyX=-2Fl)yb4&qRf>7_Qem;b!MV$whm}i))*@_$r<4*9=z)J9qrAn7RtjYk~em#g*smGj0qq zLj*HY@+&~0EfG$> zRfL>O)x-#@x#Y+W4kc*1D#ujR0tzcrE#CLuLxnAf>qv~c)TB9R9G zq&Tdvbx*;+zT<_0rTYIAXFeCBEwslmnfjh{UMje9Oi=)%&>rnNPcGDx9Wv$6(q}pF zS&@rL59iKZLXuqGo0Jo&qfiSo`(N_)T_fyAVyjix*(dA31_ z%crSB$Br_qsV8gbiUdX6i6t#a2MTv^uQ2oGAJAja7E#K!mEgVwW9bo8Sv~CRVa9u) zkd=bJH99T6-RwkG@teGXUd{}w=}w6s`<*B=lidK&MC&3xPFdWQ!PB9@Cl8;Se-R=r zETgM($uF4q0ctOwq3}|ZL+RYkv;Pulm$MY}heXW3Yd?$Y9RCZLwpanL>7MX}BQ9e* zxSi~WW-{y{P65BhcP)l2zNe}HX`ijWXl(S-#xI#g%(JfFWto!0Tg1XAw8sF2^0nMO z?F}_d?|LCRUPl@SCzn|X`r|_(>ouKvx;fI@(p$s&ucdyKjbksq%LJD6uE;-5PGH!c zuQX>?H|tX53bbMD!wrK@%DFwB7Le|Eoo?NX2dg7iu;{(DC~r;T1YlpY--^h#$NmEt z)(SD25=HgIQjQXl5wx^FT|GN=&7sp3$61K~2T1&KVU%Yn#IBCwljZIe zAaem099?qufJBWgcZ)@aYy4d${`Sa~ZdnD8H?}Xeytk|i*KR3rVb+NcjqX(=2YC~t zqv^JmodX40({v;91@!fP6cwj%c50K|FIH5WtxiZgpk7EP_NK(87fgdyK1u`k^1J#Y zJ{J#JgTJy=m-p1%y?96ab{jLsA!&(TP>3l{p7>NHLd0QkQ#wtAw|#m1VG02uJ;qWs zW6{Rsz#Re=3~5Av{offs{&%U*VKUS{jzQ;|7egc?#Fsjqu(^uCuXij8#1l_Z=)b%B zpI?6Z-q}9xVBWHnG8%JgdD)dO`#c-^z7^&`y;-ANI@h-gETvO?~1+C)Y(O(|jjI zQD>A}3LddQk~Bo1jTo%w2lZ==9C<6*?I+}EEUZ7jw~Gpw=9)GTzu34s^UNUdbSRa|;me$U2 zfz5KHMczcrtuvEo+k;rDH&`Gr6G<)l{sa2Ah0_1yW+_t`N@8Z{|jjkK0N96y2~#cFfG zgr9|Y!~T-MrrXTuD`OFlWG>0eH^Cn|;wd|t)6K@RItX{8a$-uWWObFq&a}fs8g9_P zNOwZdj3!va{45W4Bj1)psBVDup2g>Edta|;tfp8b?VJ!$!-C}7#K+`6@Rs}c%0xt$ z0`S`->|3;J{fwAMzvn!-d_mYkur_H&x|0jx0S`mZ3TPb>8w{+E@{&Eqa6Tocw$*LL zf_w4CKd>VB+F6H;1L}dqDGI;4GQni(^MQN6$Y4djcsVNPj^*%_TJHA~>QgJ?hT2fc zwyIcYq^Lq&-IZv#T#@hpap{gWg+LT~*>w#e_||A4gBs-nG#ndG-M&({k+QCy^s@Bm zlYi`d#5Zt&OGdH_qw>WP+H4w z{w2Bz&Y-F2C*v#_n?Vz>%a)8W#0BXP1ku5q#9Ry>+`VxJHs377qyzn57=rC$a+WUsUG)vIcn$GW+Wy+Xt}NzhRENByJ=r`$ zTe~EAJkq6!W3QSKAdXLd$M{V3`Ss)0^l&$^N7%Xa<#Y5zn>BD0Wluq;&J> zEQ?bI!5jK$&5&XBTQTzvsZA7nsf<;e3suXb8VBvYIZdNEq#qPwi3r&Sa9DE%B75gp zq#!Xhg+@CF1m6P?^gYO;>tPeNsUV}+ST$++g^_KFQ%QBeGxil;)43n5_sGN9P6igR zEAt<#yP~H`uFh&*X>WIaEN*(N{n5>rJv1>kSQ_#(1)~yUr?iHLpcwNqfbfe2?YL^jqmZsFa0w@0qPsUT%>SUu)i&m@U7)yAUJW>Q9GM_=THdO+c z+m$Y&h-ee5`4bDgP;CcHyBhnKTKmYYqsmU~T$R@-w!>0{b1dix;eeL0k6~jGOU83= z(RhhWm19ih?FqW?CLDnbf2WGFs+}l0G&<4)egCj*5hwb%%2EBg9{?gd!JoaU2{(GL zNVqm9mAHwtG_!!D`1e4i-POo$KTn)-P)3F$mdhKB_$mh;_VzxdW6ORPC}+%dJi_CP zJaT5mk%}wf{|p|xD}ixQKz8zOW;3WxEqD-Tn#~PC=tV*qSdlJfKIG8b7}onaAY=;P zIH%i6oH~a%LQZP;1L={NOlj#0dt*x%%ZYK)$G^;DQB`fwp9KRT{!ryzX4Zmm<>SRf zt>9*?0SA@Wr7B)Z?1YVit8wM`Ox)WmDyGt=@}(n@@Dd+63!l*2A`4S-pzv{_oBSHXu>HwGtB0g7F}to# z^rEqJY8;L8ESiNqL7T;z{?@cv!n6V*3qfh>36M0#3)HO$$v0_xNV-t6rXF`pr3mbM zjaaUqJqgIkl@4bjX5Vp0Sgu*d%tv^e_7bMgw0M|UJ=NWnwD$@8Rn%S?y<90DmujB{ zJIO+d30HKjIY%hBW=PlB<4^u!T>CCpy2p#iQQaSUdO|!)BOaf`z{d6z5Vfyo9JoU@ zwZq@`_uJN_(~qOaibpJL>G29p>Pc-g`}*nt!U_Bv!wmADlcv<+r>M#}_rjNyD=WYb zNzf&Angek{YzwF_;YE{c_a^l0$_GkhDcV{N=jyHCjH+hZH zQ)wq|;Zs&e&`e412S0!che^Q(PN1Dddn>pbsd5@NFL%4EyE*;mwGGTIl zmU5Oo-LPlHW)5~cXYxRUVK_b#mEjb9pdPOfgta6;aCl$k>4}@9YtMucMfFYEzY|oU z+dHM}H^IO?hMux1-!Wn5S#|$<;Wj~`%wUuqnZAUkHTO_~t>8_$ImOV0j*s(Mz7l&S z&NE?C73k4(zXVa_5j`_fB#B1b#YVw3-}esJE6}}HtYK{SRp7_%K5?W8e)lAhS2UU; zPAkctT#V@V$J~wLX5emQZE!eg10x)?*0TNs6zj;I#wQOTBQQVI*d;p{T0IF32|<;7 zyY#nSX>a#ruZcQ>a@y>yUi~{uu9HD|i>i}G>@RFR=1d8*m^Dc9FAGk2GU(^Yg>Glu z=B2M2FWG2*@Rg?hwb29|hcuW?O=Rx@I~6yDfcAX>>z;V;L#~#v?-#>B}v*CYEvbAGFY?HR)|CLcv^MK|5!;$_(JksY2=XoQp0$ZXK$%|a(I?^ z4Dshp=_LoxfeCTJINA+1f@#Me#+-qg}AOt?L1V)gM+^3XJ7K4)8KakTw0M&o1 zA8fxKenXys^+oaZ^2*~hL?Rh@CC&uBLSRatDg(NPfdvLEbnrR0TvE`Bu+9F@o8P27%LKea;aT^?!bGAIgDKqvtMHR5E^hN(=Y$|dr*!E2NGvy3Z!~5;$CH||Kty_d;1ti zOMX$!)@ElAaB`iszN^zP&53o25#j`lT}KEjx08Vv80y#d`GD1!-}rd&*~0> zN&E=%;ex)X0>Kvsd6+%HDQZZl_+J(}dw+cEW+(=r0_ti6mu~Ot_sT&Q|5r?6t9R^y z%wPol7jcDeU+d9@t55HCLk!Dj1s@0&V$@v4U=!e}pGXuv-{NV9t8rJ_dDReV54`ao z5IGGp!uR}@Rn}d73ckbVnK>9=of&4Ay_hU28Vih$m=XXjhztMpY$=%|I;PvqZr~#} zd-_oE4(h^=#$spU&7yAsJPP-rx)>|$)V-sijt(A$jfw2 z;xKM?f`aMHZfuC12ee3#Bs{f)8IT&>`EN{Qxnx{1dEIrRU&M+gjU4l0B$71M<1|t!hR9wI% zssfLmsFEviO?G;L6D4Z^`gMtCWdcO7ymn+tHuM=t*d3<^P{Y1YNJqBKQmuoZ4%>UP zs26V0xmVsLx!~07##Je)sX3p|~Nh$E*6xpWRD z{<^ej%{@n#o^Y$WL>1SaFW5hfv)@nPqpF3LvM%ns=au0o2?&?8d^pG_ZlsFZPV4X2 z&A@QFm$jgp-00>Toby{W3s3X@8^05}Qg=SY`G_zWT^#0Z&pOrVCA6S>CRZlA>MS7m z^BX4C*!+DC>~!jErLzNt=BPqm(pb6Vl`hkGjLS%7(TEH?qQKVg%o%g!1)Br{q&zc^ z%9PD32B8UJ7MEZ>hcB1T>K_S{dk)_WWCu}Fl~VW?ut3m_GUBq$LOp*C((co1e;aid zh(C+!N}`O+g14z6&RRW^U!H3gzrKD>cAK!26Q_t@q}ZCP38s71ZW!bROd=6m~84l^vqOx4Nr)NGKct@Oiwf{y=Wq2_!g?)mQ=F~vN&{xy~3 z{>49)vubSIXqP%%g0BpE=ptDKr&aHvlmEVHFC>!D>-{m<29&jd1 zlYCv*G!+!(7bfSqS3Zs&CS2C}h?LcJc_&aF``615j`q?`6Qoo;V(3jgGoMwB{eFkV z1t*l%0GEU=*4#x|J+GaJejRexJ=++lBz+ZS@wa8vSlnMajyaY-2AKPhl=o_8N;fxk zgdFRE09SGCJEHNZ^w)gtcy2ztVLi?VWRcHjJUP2o?LDcyxV5Q7$%`a^d&drQ-Z=-! zFt|jCHwCSyjk`n1tXeXoP3ijI<$c)>PhA-Ibky{s_VIAbtzSDGyJY5!M8W8 zU@W4cF6Cjy5B1TvLt8_vmK=JwcoFtv{jIvI>6}p5%~rr>lr!kW!*q1$txZ5hiE&}- zC6aAWH658-x|pT#c=O1`w229oqr}#PzMSU6b{AxBtqaWmefIRGlx~lbpI;(}jC(_# z@U1uwRzpe!s;UA2;KRA2yNbX0_vE$;Mq-Wo6om3e7z7w6uyZhxqyE5yKEltNBDgvQJ~^O1 zEAIpp^zKB)j`Ghi;bN@`Ktf>5!prC0@k<_m4HQZ861ls^{}50cG4HS`t(e1xG~!dk zk&|-xEHSPmtFDEKDPRJiQ{?uLwaz>*tKVU5MMMf%3H_{FIv4zes!}$r!?IZFCr&ur zto9hsBJ6IYIgRFZM!iF)*k=0}JnqhSi(XNo8AeRc-x-h$KQQh@2OZZ}4+_V+-(!sc z*5glYeg-zYDc-m$oQxb$FHFZ#qif6K<8(I1k-1)TgChR}-4onJcv)1+{juEgN=Uz# z=1DeOVs3!{v$~RDQd~`ZCQx$+<0dgu2x&C%p$Pb z$~9Q{m!WKnR~lv!m4v3;yZY>7BpY6!B|r?X8iXQxM^sZ+e`91mFs>LW!-TE4Zg zMiDx9>8Vq#Z;en%xmq&?(WlUc1#pj#R#5Yn%GaB8Lz?M zo&Nh7j%)&&;DHYb2sMhCWfVnFIh^^*zF4~`h8r;|h7AB61gH)|^!Ls#bB~|4D37Z+ zw(s`eBzg7FiWnFiLV?Bka7RZ*)J@Pa4dKbLK!`$uz|a8h)NhEdL8Aw zz9Azty$)*Zab&DZC&i?~@h-+}?#|pe4DwgGrtC{jEgz+pX1-{{iLnJlFa8c{`+chw z9h8i+QA}t;{h|y>db}kITjKqJ?^A^p%!Hf-90>ir^a5AmZH`DXuNpi;%bTY<0 z^iME{q)Q_~!b1u~(BwqQ52cB-GFG(io+KWYP>|+vAl^#bd~S8J6M7=|uqhLo%9pd8 zUc^b}6~mm228co8_j@sHEbSOy zqS)+OOLVC_^xLCxv|nd2{qEM5Zpj~|GINvHSDJ?2<;FN*DdX&(hS1j(0mODUOfPe9 zsBvR{Ml$#qfJNR);~aBWAHM0)ocOsgtX|HyB3h|b3vY7dqd@tQ@at=AZ{Ya6EWhbc zfH!~3Mri0NCXnGs~D#2%8FBcE<=S0jsj`<;)O=t@nUv(>&?#^ zBuD7rMBtSMb1lnW{_2k?4ut}NJ3;Vz<>d}YFYB^3YaG+T1S36J+YO#L#0tZK1W$g$ zm^>{N1n(?tTkH`kp=U3!@pn?c7>fh>a&vA*{-;|6S@ZAL?9FT?r~XKShgxr@9k=26 z>^6*6*Elo>DO2GY)5iR#84hLIyKidye?ShL-^PBglrFcWSL=L>SOd$6hcUN65M6@$!$5uF3T^;K&%01&Sn z@^B#95t#2}*|Ov`wX{iBO>e?|>5h9df@mx{QQ;u%geIf$ zWS^_GJd&Fxm^-070SAaNsxVVCb`+0WvynqCUwTvFjCm-#HmKid;ySW@*BWpno#PTy;Y{; zq*TtmV%pxkZR-?A64}%i`KjXJ!q1u#oBdnzIEBkh@Mh%*|H_z>)zW5ob_dWj_0=M0 zi(kiNg&x`Bkn9f|TC3U;rfn3DgsMS@yP6!M9)~_`q)mm|p^zIm-g5K*0pCC%zeJX| zEproNdf=RH3dg=HP%-qz78fJUfaLtGv#&ktQ&qCH5v|3kZR&7&IdslEHmCYk_mPQ)a6e@Kpba_Rz>jj+B}jrQ==S#&3yj=<%;@0#*$q_;X9SNiv~;* z`4~8_oIK%PzFSd7mAubC6Y(Ga(ETsSG^897US1^$y@nX=FjR+2~z&VZGSw!LbJz% zN`Q`)EW-@L(XmZjb@`tSSF{Mh#3;P&;V`7z4M@+f_ucOy9ZdQ)e$XNPHaZ(o0{Iu)PFz{F&K zdz$D<#~Xnph*UE|pt<#|8_hQI>wVNw76=CLImf+pQEycOW>VguV1GL4yewmRr;p55 z3<2BJ@t^UfQn#~@Ix?ODIKSM;@jLI9#%%G3q#yX{uMoi`C>b^OM~gfW9rdizX-l$a z1Q`DSgy;EJm00{aveG7x`%YB3yCfZjepDyhKi0j>w>6-tyY77Te2WtaaNvuX^A}^c9xGyRBX}jt5mBZ~(?DCFVb4xmf{lBYflr z94S5O%xfY}0h7!v#z`6csc+*y+1G9c3dH%q>%po^O-!eA%sfXT{{U-ADh*N6glmQe=hj+cEgl zS{zO;?dE%V$4MjMxa0%sJ*qi_2?D9Xa7g+Jt~}gfj%#mbxpgpgPVY+bh08iw>rD(& zF$$B9mN`E@6}`F|?iE*YR~+{h;p?%{qkJ;3!Od!EdfoPdg#dfoG0&DxW{eJgMn8Ce zvVQ|!P9p~QiaHf^maO&lh%Q2K4>b&y%2bj$to<`yu+<_H*vaOn0G@;&LJvdrtCHQn zo8^d`Z}+puon%ZZcDOPtxk2#G`%K85Ap)pz5eYlfpdGHVN zs&^Lu0P82qHqb~J$owi}b-m51#I6ob?Z9NOYGOp+l?a01}}06NZ21x{j&NUi|el1TNZZi&msyD}gd9+~Ny#Z|b9ea~`|Wc|Q4;C>|LoJ4Ir z!Jo^E;-HrD3u7Et2j-CAW}sJBmCQ$!#(x^CHjbA~EYeEh-3p8z21f_igH;vp zY9`C~OtB~c3?Is<&GxHlf?5P1@>u=cnx`4Rf;epBCUigpO8k?G(tDTriHHq@f(R$_ zt$A!F%t-8YDQ1S|>kvo_1Ld8|f=&-U*sUXGAh(ivq-WZ>IXq&dg|D2m+-(s8Jg`3T z80u=&@W*v(Rz=*Ws67oOQS5}G%%xZ-jya<_Vb7M|GT?h2pIWGu~_@W(W{Iem)bXwOX6z0IVS^2sDowB|vHHy^qO z0~F&M0(T&}xq{hXk~lFW{BM*DFRx6Rs|;6IT8v6-MeCX1`e^k8{Q|^Ku8_S^9MC zV&-eN-7avd&GK#aEu0F_VzR>5R}rerRE)1VQ`4tf0D1dp5?@_`96%EoQ^5z;tJz+k3)?S-wymAq?o?9Sx(GR>hN{43B7b!uJxpwIo_~b=-&*|FGsrPGOUl=Z>VC_S@lG2b6&XHR_C1V%MhMM( z$@@Y6%Krcjzi3-H4~Y_8Ggh+RVAVA6vD|#&0TSg%nLv#|51peSag$$7jzs`sysQ>7 zz80)&;pXEdvq#Y4@RV^hof`4HUqj&^+0*tI_#GEpM3Sc&vSAh{esyPx{lbo&zt#;HfG&XxSNhqw0yLUN(-9 zz3_rVYPST4T79R>5*7J^7RKT^#eX*c0JWEjzCP-o6K^zsj!gDfkOXUeI@U-2%kmd; z$1SoPE2|ykNJjE=oMQv}Tdyeit?+xmUl}|#H--FnrbmBj?y|=Fo++W4JneYpjI4-8 za6n)f5~m=Leclk_8aYlc+Sa6|o|pSk^H=`7(c|$xOCyV1%F>XkSeyVd zPo;i@e$8L7cZ_~3iys*LMrk}d;a4%w6aa3#)Zle<`?9Tw6FUy(1(`{}QUR~Kz6O86 zKfWFOCGkDai#$(%{{RV<+*2cI33qHEg2hnhb4Da|nqqN>U;^M3P)RlV2M|<28jJ-1 z06Jp6>xukMbBERPi>vQ9`6c?l_$SF^Tn5usb1nY>m2LB958ywCUJ>|h;p<-vcrQ$Y zOt7?yID*80NiUYWL(JfAmP6H@$t03{*Kh_p)Rc!E>+#B!B{{m1cW-m_`f!CfsKHqw zy$y1{F7daAJQJmzS6{qHBf;|1Ig(T8ia9@CgSoFU_@nXLK=3JjCrjI@>s*f^3G(72 z{(3M62mO)Ht}Ee9XI}9Ki}fjWe-zwFbu5SXXzjToUqoJtJ%%gX$}$Sr*(Wt)iaKGtBWA+KzRle=dN$VwClyrm)K3m1csHvI?&>%C4~I4P1<+;!7`;js`i;*EJ(X4?V>L zDakZe@ELC80S8jU*XdQRypcQ+#LA5MV59he>(kRUa^X|SZ!m69IUcngv{vgHy2b}} z_RR!IyAa*SzS-1eH{&IEJbQ}77V5+{_T0VmpU%1~w^0$UL+w(@axHB@Wnj$H1C>(0 z!}YD&D~;-MPqsQ%n+?MRaC(9t zf*6--E^r6A$*Dw`O?CDKl35Z$WB{BFL9IBZBFS!27A+#2f(GH5wD83$uwV}uAoExz zOQ^0@T4YOpimm&z_=Y*4M2fS>%G)v|{#kX$USf5c^=|IVjp)ssay(>?20mzskHfm#%5w!@zmp9nfY}-%bsfFm+5{M8)(yUOidy#0r$l}WY{W^NXgUnol^Z2 zUGI%oK3r~h1_!f_cYZZ`W}apbD#sTeaxsOgF~@Ic0)@%-?@XQHb;2BzU393WxyxF! zdli8rs}=*Gz~YF@d1pO&q$Dl|I?@&cA23|{*IZG=msT*y!45$+_CLd{zk+naI3)@F zYvba8uNC$OfP+Wiy)$q3KdpTK021BMg}UB2;5(lWRU%htIO{12juc-q{g}kTWo}Tp9Ko|h0 z>N-`N4&Z)NwYoB82;XsF++gCMnI(X{>foqfxKwrZ&sw)68Feb#26BDsmDiZ<y9Y6{PAI_uuI$Ufr z3>5i_o<>D#rO?d9vWghNmnBPdR8T4RlDa`Acf@h>a0xZ7G*eB$jUrX(;{>0;bgpjh z2L~-FWgSU9D&x76MSBShA2q@}W>5J2h(326qyhLEQf%7hGdj-5*62)y zfp!?c9+>v4h%Ln5=~DSgf=SLeA4-<%O|+IQ+epZ9!wxg=P-&J3k<0z1C!Pa*xg3T5 zb)8Lg6WrrGZ#em1aV!mbHAEkX3 zUCOAdo^~ox=hXkv{V@wqrNN^Hzg#~adLxbTx-)1`kNN7K&b+48g5b9SPI<3h@q|WA z6}kTama+c;I`T`HcBoqXPmN#vD15(Ge^2;Hra-^PFVLqsS8~hHoYZ*jND!gsrGYco zn)vhd$vp`oKx);!v&k;h86@_rF(%%6dRIqi@vLgFM7z73;L}R($2%c{&N#}zpcxyI zed_!c-dx>-dVMOgGBw#kuC70gPamCV!33!Lq>#wD7q40j(EsAd!+Y z(yk(fPzUqPRJ6-mjAZfOtzH1)zoBq-Er+DPy1yg%yEgv-f3N;2er!V9Mo&RacUFsV zVYP<_m4gAm$@HLkj+k}YLEr{Gah&WIwMZR8(%>--}OO3Yms%?LLz_3mq! zl!%vc1dnR!{4C1SNXy1nvc*5#vwQ?^h)nGAYk=0RVS@9_Rr%kNPpx;=!+3^I^x&B2 zqn}#f!#hhu(9C6ZW^?mKs>a~39ASa)>48d|uJt$rs3NM|sghB+3=g_oe4zT(wgutZ zt^;EmvDe=f>q%VjTTG`k5lb)(bG&puf~#J`Z4^lo@PB}I_p3tA-U!6ka_%Y7(Y`tRgqQXC5R-9oQxkz6BVpewvCqK<;Me_27fxScvgKn?PL4iRDh3s8goq`+?LV# zj;914lzw$yNo89rzdkV*A#wtoj+ES6FmIbf#Jp4*T}oIAupwjoa0O6x@?zbbU;)4x z2kTlMD%8qq(uso{B5cC@de=1#)Rzd&fTKKyM|Qk^!qi!s^B@o%6pVO>&Vng7~0IoB=j4o^6n+V%2&$=Ay3{1*!HX|;MCErELu*? z`cHs|9crB5g;!-K4lo8sKBpbMtIBkb7F=meEphX{Ezq~#BSFBpzS?X{k zmXmLfA--1YkEd$+iuh`jr1`cz7*&MyMr`_8G^SRNg2Onf62#G~1svmw=;j?U{zXM9 z`G~5k!8knQ0+OAOI9;67Y)4)x@<@s@><1aEH`;q9)``Adz@KWTD#FqR7%VGTG)F73 zj|BTJ2@#i#ixDO`8LdkjZz*MEa>7>KgV22{Pc}v25E1!MlTOkUC{?U%})<{%h{+k#X8Fgd~gE`KVuhfX_HW|1akxP+2d<7W*;XR=rU>3-Py{G6G&960nZse-nD5n3X$r}JIQV>ZzKNA zw@9KzJEhtP$@Cx|YfXGX8blRQo8|#cdQ@S+_=rF`V_??^i9J-fhb~ zQHD%pADf@ZRSG6l7rW+bksBn1ette$A-iKMq{{ek2yLJ)e!Wd-$7t^I`NT37-4+Mk z1EBm3Az^bPgA=yV&gJ0Zg3R)5Mcc=yz``Pc2^f5Y_Q9)?Ng23~-BhZKAE@=FCZhKv z>|)i>E(zScW7@5Q0a>MxmT0g(RQZ7V=B3KS*^RrI;GP#>xW^SFi#+lN6Nr#=gWjRI z5vzH!hHeLzr>0l9AI_;qdo9$WDb$4rjBr_f$6-x7kfK-^^IB94O)^#&7BCnLBg+MkH1NqgawTerK_6Xv(0GTj0u_vYv^P`N5h|u*E(9org+NXuPoeziueL#g!)bW z<^KR^ay!@6_Bw^0qi-GEjl_2l$^#^kFlAtU#eQi^6}0ONr}u(BV>#d-U#)hY5b>9Y zJQZ-48Z4$uc0awck&lw&uNeD{?mryY!RFj9la)*_+`h_ZysTDXorap=& zq-ZxB0ZIlb3t-~B`^VoCJU8(7O#5!HF8SmixwMS_`a|^o5$=Bs)kZRtQI6!)oM5@8 z?2g|4`qNCbmj3=_g5DL~B#v;Zqq#NlAH_e~67O4@PY-wkSuL&9;!Qyg*N}G!k;0!| z52bkzj{YThzv4yXKBaLbrkbu=8yJaL!2TWM_{i&%o@k$` zes`X6cQSNveL9bZ)m7T!OuWyM&c`f%rmRw_z~+*^_MI3~rm4jrpH{6pvvZrf3Mitq zMnOdsQvj%BxQZuO+~J(y3Q3-HWD!OkN%@IvWALXi5BG%vY@7@n(r--TJk&;AtP=#2 zQ7XqSW`%}N1gXzI<3P#XmA+bqm9VOSZST(`(-mEW(K3d0C5{GosNOwG?F%GwqQD2v zjJZEhXd+h|GEAu=$W@5>hSSk~>n<4JjW$36u1g$r+L|~fZK>dCQEG%xa9Tptzyh48}4fYxF8U7=~>bN6q}lxZyYW2z`ILz%`cH8 zs_%9J?9R{*M;#4x#x_@GaZ2DMYldOBXpOK2dht`n)4H-qo?bd1TvKcTk}}PMlfeTO zAWfML#e;TZky*EK%3VmERiN1 zK|ju?xn_zpCc?_2Bq`_c6u}qn4YI2=ZS#4Dmj}}n2+z~48xV8TNvY;eo4y`1#)^snw_=v#P`t8_FJ~hOR)Ki<^KSC*!Hc-WWCm{ zx7njuO0w-N$+7m1xIJ)a0>{{9cArpiB#sFiWNt9LcLt=ezIm;@;cRWj{kwmt_N_)+ zZ8t`ErD|3o-mgXxx98GUGmLCEt+-Dy3=+&g7 z9S%BG9OZUsDm<*^_Lcq;4N#d<5=cLVT887C1==%#ny-CqUO?oK2Vikri*vQ?LL}Y+ zBY{p4nHW9+0;2#R0dpRq$erMS1E)r6kqHUyh>_tR}dj9ZWiXsoV zhCEe+9&w8J*)@9~RFX3fc}1ki z*(Y(+f-Bu-^8*u(1%6`w*31vZaoqm^XWRb(TI<3=RF@&oh?gXJ&(hbpj{4Cqtyo+_ z<8m0=h6kYp8m${i6ktA3u|Ff!{PnRHsBctiIi*eJ07>OZrCDV?dR_m{#B641Es`i z`{KFWJ1G@zEBiZkEYcRp{`OR2nAYk?+hJgWPFYoQSXVmH>NeKLKj%)&W4A>ZUT}af zKc;I=Bx_q(((uO9uscGG;2&Pq4aB$Y8X_jf8 z$DkGXryFURwb?J!{-E%pHpnCXDSm}nV@Qi40&siPt0hKUN-_z+$;C!unV7L&Pinlu zLCSM(MNJlJ|~`>XOljdPoQezm`vUz-w& zegzm6-5n1wXzR~4()ege=1yf$I2#D`@1N4S%nIr}K2Mn^`=YV0{3#t+NZPboI-2v} z7F|OW#K;@uPCyyXYtXCDyia8;*YMm4nHD}mso}o0&4stL)alF-!-uks^ApGz{KtNF z$ioi~>14)@rTAmBV>1HcY^gAi>BO z&%YH3^(n0hqY}KUcCp6DZ8$!Z z!+SI<@`c*t10&Y6d$R;(BRG+=LRQNIG zMcQPLg>o`;^vzP13z?K&#=j}*eKA%bEZ}aFcc(m7vP+?wsO_mFkh5)mcISc(E2Amg z12?(FK^%&iV5PIu2Li0cHOnCl2rJ!}s1*#QC2OI=Hn~sU6;&J()jf>&Iwi{7X-+vD z#z_d@p~v7WFkhgX?AuP<<8k$?-gI!}lq}2BoC?Zxqa|r0YE`WsW7ceZSEp(wIER@W zq<-;aUAtS`laPBF=uTJ-roMf-noEe*Sc^p>467$le!i93cyq>z9c=ZYBF+^h{v7-I zX1pw3TGq7D-%A*!qdibW9X7Wh)+D-Gt))D@SqhRnQxfDq@G!@y#ZqD{w8(@bbu}zVm>?*@_Np?gOi-p2 zf-{kxD&Eq_W6m-$!KMXiCP?=futJ}luU;xEdy(fcEL(p?$4Yz}Y*wnmA%f>D$C6LE zrdzNQJ-$9={w=s4oggY*8{3&?haOaFP{hXsI6rtE^K-+^(oz`I_2n#S6 zIO72K{3@lbsEXVq-|0mdGLzJi$Ujk5W;scKvqf@HCoZbF1L{s{oY6--e`vH{v`9`F z!6QGJz^h7-f-*hLRhA2h z<5W0833p@L9jZC7Pwt}##ertV4QSm<1Qwf|l~Or9>t(T40WwNKGI7FMYXbqvIF;I@J4FXY=EnCr@onPBrlTZZuKCs zW8Vjgw{EwRHt?vir^}PeFvot`t9P)8AqH+zKbsvoRZC0R1TJQS$xz=QR^7RMX*n%` zCcKDTiw9k#p_3$FVMrg=n2Tk6OhuAyyp-mlx+73rd2CTmL4GhtrA?;WT3fS8uzAn- zr2ha9YH3&pX^}}Nk)(-ZjdGzuCxCkMS7)^|g93x)u*OI0SlWu+6C5_~%8vaNPb_^; zVOrL zp1H3FG{|UUAGF#>)#N-+jLYVserP_2={#<(p_PLJ$ROkpX;^?VPCe`5j{|&6*1Q;> zW4SM=X-EJN5icy!R=gc#UGCv$Bm?)K=97{9Uu^4xZwQk zJ-7$2HSsp3ae1w3lWQ8i#Fv+M4ZcYvJZ|nD z-b<{4QC~>ho4NB*@(L)TlHXF=uu(-ZH z!;*IKlg(hfAl@z8F)FG+UflPq+MJ1QuW>YzZ5)I^PadRID@%mExASAjQ_~%5cxZFf zzd~}Vq%rw(%|={L3#ncXM_=%$qSMtBmXX|Z!yNUdTEuO`BN59I0O?veT^Xe8OJ%kQ zmINPkaw+~(G~0>bR47BvWPuj|kt6rdrAgllTQ|x?FKr0RxZ{k0^`L1H zTU|lAJ9vXSla1b#%l%H;#$B?N+B$^{Tl^}{p9r>qBQ75wF~@&us|B>zLgUPBpfMqb z-XkBOq?qL!7ACriOK7EmcQm;XAU5$fQlE&_FsY*;yXs-LwPYs&?HLCLV`%i@6BXfUfkbIXSi}$lZDU90rV8cag5{>UalVr%C95J#bX+> ziDEH~`_dADy3-YjOp0bV9&6BwNoaX;lWy#?4tiH#45bt@o#9iF&Q#;KYT^-!vGf(+ zSl3G)cc>HVY z{{RCGz7NxKIr7i*uaBVIP8+3thv25qg*5*F`sMv==Qxx25%oP>r}&KN#F!l^JjOi- z>rdDlpv6G!W0hkgJBC58j*`5OsJ)R^{fW0A*EwAk?tGFBU~LuKLrua zZBN7cf@+#Y!`ocOL03cR&=JTZ>sbMt9cjUjdiLcL%x&Jt`_tg>?F-@kRKA1p4llCZ z%;_9AQKll4w*zoecAWbG?_XTo-$fiLZwq30k1$7_mNucxN$7N9(rW^n&6c=DIIj| z*E2FjrJkRBqSig-m-n7w+%S3!o|QUTc}82HPUz3doH7jhcdUzKx|TbamIwQ9Ax3hA zM?>vSwK}94Y?941XhG#b+(7*3ZS*pl)VFgaaoS|;Qs)Ywa(#PM2<9=wOhpEIsb0UO zYAm*b*hwRKfn(fCu6aJypQl|k)0*LKvq-y>Cvd{3KZiAA>=2cID|}O_z(Dy2(DbOLl4iG(*HRAdpamfIG^}X^x|}DE zQ_Jw&#jb?LK&+}WoPI!8&UN$`k7Nm;N|FU!U?9)TR=$1n6Vkq)Ew`{oiH&R8pa0YS zJftHuv{&mZbMfb~%6Pwx7^xWzGh?{rXkv)t`&& zvP7}&XwL^ckxVsvj+4#%NCA$_bnQ@Taj)3!o;3;@-bLOH1~J%otFy}_dq_gSo^jU| zPf%NTu)M)->2EI?;AKy0HRuf`7TNR1jgilYTLC~3$C3!iIO=g&_eR<6{HR!Yha7z? zL&XU>)+K3Q=19T9Ml=#FVJ#D+GvNGEd~VaGoF{o?|QoQrWYv#t=aJ=Kz zn6X>Dtbk=UjAz%qJX*?FLlT$W#s_+ta-v+N(4}Da7iDfGQ@1@>0a`OU%Wz8k%HRbf zq4lQ8ZY`w{%^5`}1$uK)Y+o^o7F3TLdC%!dIK7C2aaLu-M}!|R5D4JbJ;KK%oQ{=d zLoAmHUPd4f;yiu=ohaQF@&*M}kuFW@jh!c6ztbIjnHpG!SX|@*{?Da))|0Q<>h?sz zC`tJnNy7v5uL`r2B(7tKNaa8Ujxkb2JoYyqX}3O9=)t(;W7D41=Hl}8Q&{eLI6QAE zw9lh0MBYLRh7B$TBz-;QnIq;dy4tGn0eD} zNgmZYv6{SDLR&c8{^$Ypu6-eyCb$y^{{UIW?wG*)zJj{=*BPcu638&snyIag4s;-8 z!4(geNij2{S+FXDDCnu#-w`nAeUvMGDL0&Qs zaZ_GfV25TRF~Lj%8}q8u3#6G1s0fj$U4&p`(wuZ;v|5JND1q6WvB@OoCX3l#*4(sX zE!!uI`_yr?;_0{j%mM)9bpHSvo>z(745XX0^5;0mwGu>`VlwEG$YVlI=|~5swoON= zOM?@}QJ@Ku2;5JmD&5_b(u6Qc<$!)+jD}xA4N{A0J6+C(C=i&2@ql)mWDi5w){0sS z(2+=ZcCJtkpmElg3m}eWhBasH-x=>qa}wM%ep4rq-!z1r4mwn^T|6gh$GJ%3%R9LG z(*}+hUG5#&fmFa^omsL70RFX;YpF)_$!IN@TF408*&%`VrvCtB$1slK(ss8B{{V2O z{Iegz4r(S!O6H-s6JN?cW(b4~ecboWRtx6F_WuBI#(rKn=C;Pwi1{d^9^Gr7TLpqS zks0$j-b*ngf4iQ8*i=PWqgp70P)4Vm9I^JOWt|w|6$DJ7qL*;Xp5O|lEH^gaWhlXeoa^&_={6B?k0daqCWMZ1>aDe=dPB8UpWR~C`n>*By zMJJaW`y#!zR@&K6K4l(wTD*U_4 z0y>_wh7%;reBHu7yu5s*^Uo)>PKYE0kYo<^14U`BZ()u|t>fIgA9MFP73VhUs)2yP zZb+|BGWk~XDCCIP^(VD?s-43=wXHo_>0$NIc_4~y6jxeGIU?krE3YPizX1E(R+|Td9Pa*sTmAIT@F$^{QHio%YD~i5emsA&}tKjFPNaXW$+w z#zZ5N)|`BVW=#^q62}xGPBE7M0PEAB^A-)gSw{motr+76a>hw5$IM9-Y4$G^rY2L2 z?k(HsDj3Yr+Jv)PM8TmFxl&b09@)oC`qx_wHp6@&ywZc_H2EZw4=rPe$X&Ma*m|F8 zmIc~bTma4J0Hh4hmJha}wzQq?iV#Ur&H?GqV^zW(5(fr3FIqx(v2UCI0M%D7ZLi%} z*vuhu(2<&g8RN2;!ErCmAPz)_KU`1*bKOr1+sv`~P_musL1zcIPS~qgH?i8;o56+i z6tE0%2^|MMwD@oBZ}k|on@r1dD+NVSki_~|7vsG*S<*Ep)Adp1?jB@uXCNUY1Nnna zj5+H2KD&k@tEWraC3Ueve-`Sq##9L71Y-&gN8?<)&eHPal6snIj3KDl;dtwjUhO0!O zGN0M#jykPzJ3s)}Q5Enuh$4-*;00`C16=r}?&x*lz9VwRHX)k?Wk(0nmf|UK^X((s ztyhj#ir75lvBx+#KZYr-8#GvnnMvesB$1!3am85dmvJE*oP*k>^1{ejSdx2VimI(D z5Tq78&N|kVWto0z+9Wq+aigVugWzPxg=_)m_jU3KTKgBlV;&aMzw4cR-x7ZTdY-OG z?@~>jAp~?Z(x9m)lS8_YS3J`f&2#&&9BR>KkqU0JB%2mVY1QapS*&y-$|F#VslA zNnYzb@TnDm7^vu^7B)1Eds*=P>S|gQ?AA9CoQH+VXX*jLA6omf;b-kFWv{^ogX6iP zv%CrsE{=9i!=`;0`jd+M`=c2nHI(To4N0w!*~2Bp%u&l_Cg@~P%E)pGo`ez9Vwr9& z=Yn^*3_^UWa6u3B>-g8_$H700-YW3#h%~Pa+}u6popUl;s?6Cjd4wn+ka%BD(5CzZ!NJ63MXMp+t8%XI5=CfO6I3UGfK zu?^g2{bZ4ullYI`2h#vmEk?^wf&!`K&hj#XL*hgNw#H)>`$Phl@_)+ zABi^+&7|ByBaCfqs{!+JYv)~q)P8mJ7mtw#h9*~ad6k!QU$wpy7&t+lz9$j&`48R<0sQTMSG0`Hg(TN8i+)iwh#b8oS`De7IhwrqiA~iCtrjq6#yE z&ow=qXyF@f%nmXJKU%kL2$8nJ!?xj!AJ(>vQbrOrRQ#ZN3Q^XYqZI0;xr4oquFMa! zuh3PT3aw|%3-qfs{RM-U?kO+sugLy3&VS$Qe~Mq53<@wPqPtH%B8+3DbiN(~e4p;u zHP@Qyd_DK%{{VKeuly+;Sa$uiZgkbjYf>s)Dlr6+_}5!phPwck>2?sT2PXiU)sVP(OBh;B=-X#1ffOA?GTbaxwhqa*#+Cc2FGrx$bImvB8o+LFAd1X;8a0w4~!0A1Uiq1$LOE?5xk8 zJVPkG*Ct{Ld1)G!#xhFwu6r*TD?0(6pGwr%%gd|JEPwzufS|T7ep(p= zl4L8u$4cr_yE&w^5#^H#g?D50qNOnr~ixHbDq$>htGY~g_(mF?1TYesWbi-yIkdx-pxF?c=wstGS( zDtRTFzA285u5-vB@mbp(;4+L4O6o~DXmV6;*EDyzz-aJ2`3Ad9+|zjD>ceok8KgzV+&!8u5gBw2f_a1adD-{{RsB*UaNG+0%U852C_j;Xik& z+%hW+Fv#>Gv*)%Sc}L+|d>%(iV}-{&SC@8=O39qkTP$-+AQ)*npQi$h9M(*>?5xLc<5w9F;%3~%71XQeE<{8!pF>L``Rnq&NAjh(a|<-Rd$rR;g9$0L@f@G)p4P+t{-(Bmsa=1Ms0wxh)xw zazHj( z++kP`V~T~5qSIRD1DlnM1HT01e|QR#%6O-=-aM%1{{WVoI9=bBYGKK#cJkE6Xy;E= zjz-4fGm<-wY0zS5R#FZ~#tkwixH1%tgM?l(da?eM0lK=~5_u$V2XRsIsRzH-vzK#g zD-ZiUuw|b5QpN_|8!-cKw;e@4bg3-TqlOMLsz*cXnw6rCNJyOnk3us}je!b8Wq;W{ zN99kSOQK4#yo)S;dn$%pl1?&xg(UXZFCwfmGodWZTeq;QGg^z5+~^L|#zt{UuJEY} zto-AOmhY)fER0_?uGTjATZLcZ>C-gbHalx__Y$~SrvNx7)6i9>L=LU624jNQtlf!l zWF-M)Vxw>eIPN`-0$Y}+iC@lt2(4pt8J7f!f#wjs22U9^DaJA?oR*Q?su$!8Fdef> z$tLC6*a~^irE3{jz;TUk2hKWnseZ`vZH^wGcjli4#vq~Gq@0jCW9wTs#@qrTU{6Lq zhLypQ+S!QL!nS8E-e%-Qko)+?s z>T#j;b?O7|K>1;M%~c8;v4h}bEqu+BK@sZw8TRNA80%-xNKBABYGD)PcYk|MzxI9z z5MbqW`fv_sYF>STL!-GT93))owQWj<4B3q%j%qFC96Rc3b$fYn-y|7^hE${oK4AF) zkM^6d5V_;>L2ZDmZrYNvFhU~2;!tYaQh8)3Mjga@{IncAL?AOM>}S=j&3`Foq*%*e zisT|(=&r$zRojg(F5t6xdRv7w%ocJ!-wL#BYo$B;>`)N6hc`pkL<%I4XjaS=?zI_= zKW8Jr=vTz_C@@=D@kEmMVhhuv9#Cx*yy_^h({A7FtGwvm+&&|D&WPkt$9_4jtT!#+Yd zpj`?0#Vtd!Tf<7u1aZ1}!bWY?S)OOi$HedQmQ8kn!@hclL<7r!F}IWaU`GRa`G)lg zeq7dm$Dl-_d}@1=X0t8uNduwdI6w+2o9v;Y(E8+3g6Uoc%2{I-fCuY`t%3c@Lti;AXNL=AKVxF3Qtop z6)dG2w}iSvJd`Ey1L*Q%=dW4mPQqJEPN2Eml0WL3b z-e$>WmfrU>D%%+~N7FX^pjvkN7zDT-D*Kl5ZEDq^rvC%-_Sg=|3&UcVZBqNF98oOw zaA|g$?=@({w!xKl$6TB?%TGhFkF+M|whIoazAv$e+5E(l6zrhoO0HAUKRvw#tYa!G zPrdLU+E1Tu2A|nP@1|Yj101ku4<&|b1-7^R(&zoil6TV-?+m026nw_^{Ob*+pCuax zLXgfKn+si4afID7_c|P(*u55J{#$MD;ab;M_``F;Me+&{<^FO#w%XeGeJ|}OM%~XZ;BaVk0Q{n6ag2WEdWh3`SKfSYHxr;yT6!Dag0{5XbE5`gax%S zk6#C03ooWtJ{J?L8>WIog=u-W34T|MQ?A5sJU=xNK3g?>Hq|hVMn>kY#Ys4Lt2@0g z<|(iq34_av9?Y8Wo%9E&ozfb=M>3gSbe#b-WiZ78yT}66rGLKrUfnUrt7lSaDbgDF zcR@g-S`v?3LhiTsw5`Z{wk||!2%iR6r{Mcq($e&DO<_%ICLIy=0tj}#T^!a%;7qK) zdHTU}tJy_Z;AiR^*#2iJYEAk})h*Z4_^)9Cd_8WckWEhj`6i(taPu6bi8rySTkOuV z^_@D~*>HC0i}F}VF+;h5S|=imHsboAhqLn5-31O9eDiBOcWu2qlRB(=@biBCxYgsQtq2AK)Y<@=I>cnvi+j1RJj3v+2wF10oN5 z@elAfCx#X1FG`qfp9B5U*iG%7>golOQqZ%jrUoA&pkY@blQ@sLsSg~TQm15~ zTNs<*Vun#YYSNI0|0SxQN^z(rAfDx>BI??|EK7Oyu?`|Z&&2I<7?>`KJGt^%%ZObE zB+SfEX1Ft^c1!#{HHa6mYPca&D=~n;2=Rw#5O*oI7tM2jeF%?09&j6k|9bB5OdTov zHzY+TFET}HE)q5XDiBvMuv__1ol7e8J@H_!Sm9~WK{3&y(wDj~l$5Dro2g$>io9Rm zS{y0SF51mKdgA^A93YqB)`7Fs&uaIg?H%XsDywLIGT4l8m^$TLuxa&-hrB+xyj~sv zo%^f=)~Pz)Aq*s<0Q^U|&exl3_u9x*P3<1@ncusj8}9qC zdzxN*SFRzUp0ejQLUAIzH!b9Ym~9lw6ojZaN~tm4fuF146S1e zS%7YwB!y=v$fDowu0V)kDD?NTFDvW1p(DT)KY<584B(I9}T5c8*DdxMM!GLk2<>i?r|K&~VmW25pOzcxn73_T9XFbBlPI+fug0OC zP-C8q6;V^I*k$a7fo$OO@xgD{&0K+}VzAqHyc&JJf6=ZwmvJ_ookG*gBlxVOp z%_JVMPr){HyOoQLWLyQ)AP)6jaIvLvF;ihQ2GWSVM>Z!*%0(}q#0-lyITFNBZ)gx> z?+$ppepDO0$munUKp|%>DJLA#F8^gVe2&*TC1BxdR1WkIfQfcFy)zOjuJnqozir6H zPG0N5viEvu-bwOzJCR0Lu(wQa-;3%#nMnKKGzke?C7avWx@xhz4m{qhMR7?x?{btK zX_l_gC)Tf@r)0*yS`)geCi%3g!nkj(>fmNEDW*5PXV#Y*hbv+67A)B>$XLJ_=X(@2 zX_2&XQ&4O!pPLKH4bHqNR^6A$Q_&~Ck?Z`@q8x4Iwk5LDdO0dNGh;jf;S`Ql{*e#ddy;#FGmz-wE0gLERrxI#wzi*F zF}VYuOD6~O+#8ri1}I+sju)y)qYRe41&*1OX8z1YRKiZwiaE|gh|9veAncN$HsYuRTMT*4%P_a$pi$UT-FJWP2Ow+Vjy+e9>s({_S z`*2Z0W=9B~eVU8Ry&LR~GICe(divzx@m%mLj-1@BexE9_RB)uv{1nN1hnx;&c6z}1 zDWO4?11l+OQ$oE0w)9ZF(gr^5O;p} z!Bg=be!chM8P=J}D4j)uf`>nCWcHMBlrw)em(So)8#dd9kvgVllxw5VEiT)TfMM8H z7j{Sq^JRzUA2T?3j84=z*fxK&bxn{LS&wc;sDALfw@WQa?os(1uUp)@L~YG17H>K+ z)*8e1IIH1M7Di8-%8iSab5lwiSMF(4bw@%kko~7XLwd6HrwClp2mGn4%)-)((ro9ZI1P2oQB!u)0Wr0GT7HOs7sRx#rO#%(F2!=v4u2 zh>mx(>oxXuH^~wXy)5q-u#g_N>h~B*)ZF&UT6fh6WTgXw9<@z=KEUD|ppZ_H!y#*>@?}*zDDB%Is}TOh{_5tMfCfZw1R7TtBm*_3b9a ziSn+fuCGWqg%XASfCpc9g~|RLG<~4xOQZ$Hp*!UwS{?U$a1}ETYb|qv0;uKg)r^d5 zA)7`G*I!pLDjx!;n=0jc+4Vz1(er}4$rt9!@M$!3Y@8QLO3Q1#{sH=?XntRbr8vg% zZ9IOuPCGYkZL->X8uh}2pBgz!5?XNSOZHs3+(WICKe0()mYG=aSA~Q=7`k6p-pD_O~vNBwh)n1GKU5r8+QtiPeo~I<^-nCsxrDyDpl7w9vN>5Rc8kxt0$+K_Ctzn~ieHaD>eog%Dc*F5o6DSw$NJ z3{q9P&lgr!o-U<^^h+B!2_8p)Ws|6u+cB4r=9NhRZYF{cRW_PkE}L1qxn8JDX0dEd z7@r3xNTzrav75^t&GNblapOi&sX(=CEKf~nUM8iF3zVy8-uT2+m%LRB% z8%B7+=Lhta4XlLwB?QbsyboNN<{d*9j#PhI+=Ta&eC&{Q$z`8t|B!zTb-6vGeAD3^ z;ScWv+^HG`;OcxkD^0;8J+zRPh5l?=jSe^=0n8RWcDjENt>8QFIWbet`>0CSMG{0m zja{Ohig@Hv_(j54&8N*cKYmfMvtw6D`B=Bu8KpY;daY&{&wS>d1iOc9jG z6J(?`G{BX9g(1e>Af=Vg*}pDIp`v&A4c96L_S6P*w$rk)LI-J;57R!|G zEo$o&m{_Gr^;YJ1!poQ^JL22#Sajm>r6HDVMtXonqo6c2(=GimVQZ~d#e@CbX@=8F zA?oAyKLFH_)#y=k_W#%aIEvNq5Kt*9&aBd25*0V-94$-O&WznM33rT!N%8m3W5O%A<4+~p*`c+oSp78p==wj_3 z;134z!>f6eJ9bEfc>o?capFeiePxEXrMaf%TA0sQRhS0Dk{nyF{WZd$OaM?^7UbIW z<&KM=htx^9&}UdD8>n)+_9@x0r591)c}2@8cy)f+)V1X2ccfwXMpY^gDuZ+TKiFk> z0BFmojl+$+Wt=IT4d2g>f|(oyL;aI{4lk*;%3`@CE_MP=m`Sb?G9jBvw*+!q_PrAg zs6N7*SN$lX?%aTFH>@==ezN`G0hCG)1}S^g_upiVqUd)t&z@1b*ou;Wrb%A;qZ=x5 z?=O)LuhV-}Tq=4>Du2tZD{84K6EZOUy(;7U8T~}-cGWBW8oua1 z*A3aC#eQB5;$>dAf%3vKgeFk=EGPz3AI&?h@2nXPUfoKW6WoQ&6YaO!oi`@>$#I`Q zUy^vmWHHJW4Ikf)urJD}cAA93jcq|!s9(_7krjU6aWuc;82GWURgzm!GckM3?w`{0 zbNY+;V|Gx(EVk^!HZM`a?3Cw!peOGJCVvqAvkl!|Z?_lQ()R81=gY?OWAK1(Dn;P+ z`h9G=TG^G^v`^>VMxoJGBIO8TmGJxP2bc4Z_!kAXbzd6bH7VS5XQl_K7AKU}I--kl(@;DRJ76%!9sO>YbzZ;uZ18DQ2@IHKm7CNb<;UnPm zxf(DxUOkICl(~iBB*dgGGD5WCxzYCB{FD5mL#J`7AB32pRy2E~@n=qiUw6lBwAz$# zdl#8dxJ15}b8J(aZs3h+(U{Ov`c!N`gATyM6%o52x*cL;y+*HO^>}Vn%8l(pCNUZ5 zWT%gl-e|hDpA&5#u6V5bIz0{?+U)FLyeY4^S={dEEL%$h2Ed~nXG10r2@8L`L%*L$ z60UfGF-{o1@@?pv{f=LsM*Vvpv-Nu(f2R8ms04##8TXYui1$e5HHzUaLtN@UqW{HE zY#LC_$t_0aRH|N&p{X^`S|utWYCh_6Ojo>Py1?9pU3AJ+`T2zr=hch{>YL27D^3ys zw@O6Gh4Re{(5a=>RfiCLq4a#l@P^6%IZl=uHF2_1RdI2ZiaB~E3w?Rth2)GWiWq!b zg?6lv&gisIrXn4K&+T|>Fxmr5UHuu@jS|F=oNHq5YrnHbXZoss0~4@GP8Kq6AiaW! zBjp2~6dli}lk9TrQ`)uK16|6~s2ad#QSK<<6CkB-NWwlE+?>P$bZ3iy%SZB&RUm z2>Ii;if2rm3I9sZ@pEp%4JhY>+0f#)t7lW@r;27JgHXyJwL&4GT6-b~-AVsRFXR(h zQ5fQme2%a7GXG6lD0~V$xl?Wb2;G6-?6{qp}uj zUua!$@&TW&n{(Q^U;6P=B4XX8a)o30`J%YXxb@8Jgi5duBL_CX!uCX@U%}v)Ton9& z?dDX8&KW$N>ysiz%~-cnGBBpzu_fEXk{hp1LHg@PD9M1QDEaeUj6NUEUs8tE?!Sc8 z>VSok!A9y(Hy-t;Tq*I}f{HYDFlmLRM$wkGBW3e2tr(V{??Jr2qdvoJk{g>* zBJ1P39n(9`DsFoC;e=O>Y_j{LwK7o-CN^#X-zhJFZ39Dzypy-Obe_k%DBo#s^;k;6 zNPOy#@Mp5LkX{S*(>EGvA|z*--`hy8<)- zF~uu#G5C8h;l{jUqg0D-3OPH=)I_BYWRKrNM+S2e*;!XYKkb@P&pQBTP@qJRcVND0 z@H(&ZA%!Ev(*nUnT4TcWQvI*=TDm5!Ni)^4Zwz=GurI2KTwsj$qF)0i+ zp;UsUH{&;t%e2hh!t;KV9fKFy&yn-~x1*W^?}R;JpeL$7)>2^=aN1a)4^GYe1HiGF zbp_&C3n}&0%@Fw|21oU9il~MDM{*U=eYUfO_241~aNTR(sLyT6O_M!QeegPl0Xe+Z z!T~;^H`@o9#D#0u04ftsNJ=WJf6Jk}LPvyG@Lpv%{sDgfr+zjposy+NS0gbgg^qmv z&j$x6Q25yWbxeN=*zwtm%+I8dI>p7O#&VpFGwH_WiV0s?E{0x@v?W49h-W8V0z_ls z_E}xcG~NS%Fq>d#{!H|e#HEDG$p_D+QjsHN3u<#a4&=0 zxq{9I7m3ZEx<|aHAI)`=o{&d7a=}9L@c+ZdsUsYAl2=n7_=W*Kwv*X;bsYn;b8^$y zorY&!8ErhmH_Dwh?UzQrszlzO$nj_AzOUPdu*lF4N{UftjN>xbZn`#RoVtj8mRHg% zp&OnISoPxWB?>^SrFba|Bk>RV#ewT}$&B9af9d&mcH*3GN{y#&zBI)j#-)*;XF`An z2@MAiNeY$9kp;ea(kfT0&n0YiF_o*JxsT-5=DHd7?CP%%D_W0Pvp;a`ZQ|cXZK}}& z{J8uGT5w*^ZJ2uaGuc)Z)MPBL|AK6$U~Y5`NLV}@B-giu8}isEJmp_QOGmQLaITwwebugohp)*OaD9QRkRPMcg=v$fCpQJGnAn!3_M^M9 z6X7+hH}6OrXk|lk+wMy3X`vW4D!iEg&Vl>dz-0&(T~Q4xfWFuHVe9V$ky>NQj{gss z`#%8XC+_R#K^*XE6Mq-aa0AM|=AD6^O4W)KxxcHp%{|<$51cp@6-LzkxQ*Pxbyb

fqVur)!^utdG}}U@jlO$4zfR-yhDoY{M_@_U@`oJW0ps3z1UW9TYDAqs z=J=HOHEPlOptXir#Ty@~%bWCETSnOgGf_8aWauO1{xE>#aR$u)T+Iyo7D7l?FirYQU`#8`$KDmkyCV86> z98jd;mtns3?Cj&ReCBOzcI7NMtLUTJv!WW8s#H&=EI{Z+Om8}oR4P`zfHWMs);0-{&z-+hp4e?;Ik8;E#78=7OOyTcnNGuZVez_C;8KR&*8RuBf z{n`|D2c^Z4#nZ5;mY5Cw?IxUKxU_JWdhxga<+H6hy~&oYWp``!1UjE5I38KFUz(J0 z)fG&hS%Z+~+gQFWIq6x7XJ7h`GcGyGI zUx$>lT`3 z$7}TdWnGwI{eE&cY3pP>bm(+R$WG~J)Esd>iHbmmq9`Jf;L&^fBohX9OeL;De3qx; z1VXB)dG_}4GL<$}E&)qr?E2arf(ciCDseQ=)NuW5Ry8g%PaJ z#~x4jn6>fhwc>G{JRymw@p=CFO%2znv;4(;v^NyUQCT08jkv1BnE6(^UjewVH*pHR zw3drZ6~aDzD^P;&-qJSQ+Z^{ixdNU96q*U`0*AUbv%H4i-8wd9|CE{K%@V%*1B>3u zChSO8fTZLf;hi*MOGJjN;qAt{eCkP98$E_Kx~{HDWpO%}Zt3 ze9&Uax@B5AUAO9jfN_;=hILC7;bpd{syLo!FO?m0CjG%%nYtjtodADKy37_rv3IQq z8hY^vgh-HErs~}2LZp-v6xmA0wL2NE^GO}Tk zR{a|y?k9A6fVNq_pZ3cekWflOF0ZMS1B-v`VO=-3>ySf~z*2)skW6{^pLa2N>W(zVKv)tML7nd9HB%PcqlJXTu;)K3eK z@>VRJUJvG{;n6KEj*Egp74t`mvO&I%nrMkUTw;a|XGT#O@45*2o9`>Bs4b{*g@?d% zJf)PQ0UXXTX(bzVS0;<&dXMQT=97+x>gM9X6v?b798;e7+-EcJ%w1%6G?#ef299BY z-^g2h8)z(#Nb%Cqdn;sH6$3mEnvTyQYHD}_UmV6q;4uj8zGWU?wDV)M#+7GT?~%+a zqfEi#rbJhEGRC2+zol2$k$IUq0^rUv^$vO^Y*Ah>^hYJ|DyeQ;kf-au)RcyJ)agyh zkYGSDX;(SM4l`93=6=+hwQ5M>KDz1k&k*hKZrT`zwvcZbzu?*EH1OU`!>Bn_x*@-u zbtj-J4oiN!P^~ZryG)*X-TB_Jwq&BpdR9!Oc65=!m=PO9v)#7KVW0kfs ziWKE|iH3P)OdJrz(LfD>gl!0EXQ4s?4E!S80vzgdnOZ&0W5!q3r4gE$Y>FT$1(#+t;CB7%2PQ(azKJ7v5^WhWL-(HlD45GaAhsxS83kU5=^X0 z?b)tPc~+HnnNqv}Gvd9yPgPdL>*KikMu%|B_RY7W_6uzl&o!K9?b9S&+3HEf{>leW zG}$1|kScgqzIJ++rhvrC5rpYTrBBn(h1fi}+UUy<5Ag&d9BtdzV#$mI0)$ebl>NkC z+HLBUdzIC5&eFEchwDF0=Q4ky_6Sq{;k%BZ<>WT!*Xh+BMnHIN znu;;XaW1RFQ7^(l8JGgOmH{2CK zKxrFQo%6{ldG%wH4-%Sp3|uui7E!L4M9VNfJfMM@WSyi&CwbK=zT(HfG~mCfK&8i= zoz7Z3XZ~aEYB7do5k4Fiu-_cC@%ylD)%bn&TecOErtsfb>m95j;6{V_TGE(@9&NbF zA3mUEqrGC-w4*t$9B%oDThfbdDN|J>T?E{I`{q#Qsehwk`=(FUREY`sPj(@vbi@$B zE$v_|8yNR7aEym40Xzdxs~(JDQ0+rkVcZPhI^@$0G(!W&&+QimlJaThSSrihae1;$ ztUYReW8CC(fU0VzWX^fEs^?#$e=22t(=@+dCC6D1OaA!uQ8dhMW2E2U7dV2Bq=fFB`jWJ}?p`l24(v@}}Fwt_ECVU~Jx zJl&B8<9?#D<~xiufPwc8?~DqnwW+EcEmk%R*lTWJWUD-_cG~j~x{*42Fjolf zQdRpsscaZ|OVLJSOa1eiL21{3hlSZyW~s3@W%&0}t0h@bd*07f-9rPTYAdjTj6>N} zgRUbA;$P5<=AXNK*)n~dXRHwcdBcuklP_!UBi;-;;0M%@@CyB@qimjK+LUu!tazrX zKJ!&D_YEm-bFYclrb2nqz3hHQIn*878?$2fP1EZwltxFiAgwhlQv;g%Y1Yg_t{Cs@ zrNbuZyN$7if!_$Lc3ZGHD{4&6Sce@C)tKr_ayB>-nD znX#30eQDQ!RYzYL1C}{eMnmZ-Gg(&8FwRd6garKf7EU2%IY)m+1X{>YGvH36;8> z>s)q$^}nRrw;vifJG+~i0OCCpM!t`<`sA1#8%8-Q@Xn5vse)SFo?{RF-u9~I_S7BC zSxIu+wkKC4uc*rLn74GMGSP9@N;{OG=y{=CWRrMYo%gzv8_($V{3LU%OJaxYwwRL3 z`bP@Lr!Q&QUXy~ZxQ#r+77h;$^!+HKBAELDR8b43dWc;vSC2r_Xw8Z{rIUYv?&sKj zDE_l*Y5K6XfhH{p-`Xu)I<(_2R0ym*rcFMQoEqq`jy|@-u96fP=g`Pm`jTUwcp4Su zJV=nm8$LXOW)?{04_C)O<}E&dIb{1Fi90}~cP>~uM!d!(%n685 z%RDRD4j-&2S&=!{^k$Z^?xle&1*)$d8`xhOA4-LpfZRmf=?qwvU<(BUNN4?A4;kxi z`CCVW>6|}?dOo6DRjklt3y|3Hlzl{Pr6o_&_HR*iKv7kb`+Aufv%0`6^Q9t8!P0RAJ#`17B&fO72w)o#tX|%@*bxK1c?~ zivCJdJW)QsKB*TgRW5;Yduf3k;kn*bOz5xze|EWWt>!7bXGE26FhGWZIo*~+XG1Y$ zCDnD44-gUSPz2C-b{;hk66a}B-|e^xh6|V+U}E^QU$*`^rZxjl22~Wll|B$9WxScW z(|v);V=w#g!*U&_Sxv(fW($OSW=7K5o0gTffc^a&1@WaQN4_64WB2U{vU4AeE@Z=o zx5R@K6?q8IZ3bg70m|TX8}9l0#&y@W+`KCoohZ_$c%G1InnIT5@x6N}%lzsc0W?`kn}` zFGM~DF4q7#-%pFDx9JG!EDY7nRZ(g!#;G?V5ArJaW6AzWmNtJmo0mZ;bn&{|F4eCc zG($*4H`=fzan!qruuu`DlQNm_lq|l;zw(jYE&r+^wKu|K&NC%#s0ymErCO#|Uv?h6 zFJJK+L*&bB@In|WtC6FlkYpcw^j`R`AH#2`VR@K*!2Qs+ox{aEx`(oiU1O5N(0OqOjQev%g5|R?XB)jpa1|T8t-R$+-~E*0 z$h`wR>Iexd^s&b+ybYIddr_*|{JW{}@EQ(J!WG7;I}h=DJL_ZUH?-GZL`j92$%Id-pz{t2A-ZMUZBDww8{&n!``q>()E=f$O zcW*FvuXNJ9wH8@Gw6o|k^0#_$)Z?mD_t-}G19@FQ&hRSLu8wF5p@I=?u-G&}In zUbxskG7`1CXKdzq=VYxOoo`z?;bm5ml=R%V+|<1f@lsF1!qf_;vh5Nh>i2c>u zCtJAuRpd8wwX2Akv83-?QRb0>_e{!Z zgWrD_f%y1*`*GW+9kbD!(-NEz1*uP}xnRp4TU~l;2g)j3iV19RlX;)O> zrV+^6s_?sW`Qm%7i~WpvXhaAMTp_EU&}EC)lSJO&p)CSREbo28g_sIT-&D|ID5g6f zDKYe$cMH4R6cYzf_h6UC6qW1gdZO3X<>R`Yr-LhV(%(#HZiCOPJ!S3Ac29-XA%Fb& z7Plc%#*8yJ_P8rY+M&w3axuRy{E~L6*^%D=M$^dJFk_1%>u+)-Bv7>-AN@v~;QTif zi(==82-mL8*GTh*ETdUe)<%R_>l>JzQHv-wW>s+$*M>1`l4Yl_)#|O4@n==rfeD*< zgnqX5>cYUOX4P0_eKOIanou!8;Je`g)iCGGeiSaaxMUJCt<+9#msgvnMV58P5%C$U-gN*O?>Jap1fn9>UZD zWD9mBrzZE)8^4+yDdiquC^hwHI(w9^z3T4WE}&`;GB$8B9#thRd8&EyPYrJ z?4}4gH`xti&aQ-vyra!8DkKWJMV_wHn?8}a6)86jg73r8-2f8Iv`V6nyW^u--!2#TODd2xE`pf>S-`|P8G}u;r__jtn zDkUn@ijZw@!8FSL4eB%B8z*yT9=i0L!XVaxXbVS+G`z^@g2!2%6BdHErzan9P%WqtCovUF{{pSd5IMe> zp`c~2-`_!no7$UOooQ|=L~ZhduS(AK)h?#JGV2|G#DuPwZUG}R2W%>lXoGq;GreQx zz(w-&e3{(XrG#ci$3ttkWeeX4BvJQGubKzQ3xBkSw=hz$ZRemAdf^`wq)Vljb=aBv zVqLb|35ag`eu4F*F%4eRAfniW3*B!UQp=G1PS%#hdaK9>dTdp-6@Mj=D4fWkhI#~j zV?vO?A&2YYJG{K@>yzYj*WWR{d^|Mp$B zy;HsSkC}qn)PR*l7skmsuD9yJu0r*Ufatu3jY`{M)1Rx zc2QG#lN{9}vR^ZAMk2tLh+Y0!GQgD@!ULc4YG`@Lb#BHh=Bg1!j2LCks6Az?Y(R!V7OW{d_N+_^NAdY!nBN-xSU;xOjT#i+Zd zf{QX@Vdsi`nvu6au|j1QayySm5EN<4yK>0n@y6^YN% z_Mu`^tQ#YUA5zfpImB`3Ty@s^TNUb|ToYMRYjW79`WrH2osQv)!Id1X;B~kI?PZPc ziRO|YJpDNC13dFuPxC=@)bV{ArFR;0^NyV=s}+2rpMSWOu1UWZypulAXJyFfY2#Uu zBV9G@kBYad-@|znEX-C)lb)o(P1Rx4GXh??_GET2`evI6u|G)_N>_{;AdJ|fxXP?+21l-<@}P2syajlRP5>9 zKa=)pixpzW&O9bc+Ua!)?_Jn&7w2p?f5A zyxd8$H7?w5&f!vGkj1h#vBYE1(Gs?%;kj2@RQeAf3*ug8)wQ60+Gq>i6f3rBVn!zcT-fPY?6 z*vh;rO8q_wbrS0my6E$@v!>GS2oC8yphSGw59TOpYUl*f8EbD^cBp<^gJ%?h@?Fua zYQEc68EAlC&EJD#ozvH5q9XT*V$;w;2$IJMs)Ok+*aAR20wWKSE8wj(v)#ndSz0hz zhP|f;t_Eh!o0WzD1X4^Xolrw6`B_|^Gpdkp97I@`Pa28U`YVU6E?40PqN7<3-d^(# zp;$Pw5FaC@PjT8#C<}+W&93Hlv|u0UcwQHOHdFRiMFd`ImkHU6_M(meSYcs9R-r@+ zR@$FTuT!`|f@ZLzp=z?4VvvwMS$6#-Jj+Eb548U*zNNt3qw&?hq*+b53y~%^2QmFc zHq(q=2W97$K@!I~VTy>1r#ZAo7TB7HMBjt!;0cWqkl1<;#WASU*vzXIzv@*|5e|oc zs|U}nTQA~$Iw{L``pL`e-+xH@={FzwDqU6KYNc&+07haQ*W25&f0g{aoE~FjoONqV zc_!!Ro$%Pki5%HXQg$mOoqp2!YsfOPC+^M~iXW}Ub{ITJ5Lv1%OZ8Eiug*pi-<3Q> zzbR^vb((OXCC*=`Kc1$Mu3C;tdMwI~VqrzM^x%5(ZdPu!*YqnpMF;Q0C2OpwWR;}PE!Sp#?IzIwopVMo5YpSs_P53^p` zL|e9pkH<07XK~?}3n!6Z;;ceSt zmdd1Tx5&+AjEMrZzVwgrzs8JyY%qjd7akk}P=46u*R61W$EFzwv@( zx~^9J2|*$OB}D(#iT}QG@6Xqru^JLfgb%}`_1wXnom*M26l)a@Oe9y$oIJc{WRvwN zc~ZKwe<}U?N-l#E;^WJ|Zu#{y&T4kLoC=JH+GjKvR-1`A_jqdMYUOKznQO+drlT(z zKfr*k4DO=1K4N_6Zu~*y(+zPpG<}^gtc$+y(Tx2A`C^{kqdJ&VJ>;z%W#)Bx1lVg^ z)lgaWEu{8Jv$H3hy;EO*;<%&k4|x;Ca@j?8n^pE5e9-uV%zz&lRD4W~<{nx`*tTjt2?&x5^Ttqw=Jkt89$ZHc=WryefYCjS}4aj z?}HTActw1Dzgt|ZH193kE-Q48mrI~j8u)g zB}~)LIG<9AG@bVk&koylB>|jOCs4b2`SG9gS`<}! zZQczUwkyV~OJ6u}C=cur0C2I<6L>Qd#FDa$6ONqaZaLVGdlq;O+Ai4*7wFdk7;Ww-ldg z;<`oL_nfHoF~pXUA|etRn7epvNBzq2unGi5YQ(QwuG3SRYvat8Qz2d>qr{0GVTr5j zR{E{^=)6GM5HG!`T+76k&FeqmV3wPf)qX=6P6%RSGMRktfk{J${Xv~?Iw*W7Q%APs zM8Bm_2Qm7pEU@bgD@qeRO*J4q=plCZOL5&0qVL6gE@>w>=^w2ro6Ue6T+W{BYX;r2 z<-=-aJIxnMox)FF<`Q;H9zN}+Jj}$FJT8<+$T}n%s*V(E&m>xqg`IJCV;JzCV<;7! z(VVal$4c*yKwkx0+Ox{xJIYdU-<$grAjcanK{hpEA4r&+?4zHUW4<+MHrlyA5`XEtu49Z8nZ9MHoHmQ_mn zhM&S;%f+~uuF1$gr-AzL;5W=!?Z%mJYsHM{nmk5lKl1}fkd ziVNqFtr+_byj1`2@kw9v7d3)=h9;~x=F-U?f8BGaig)F3 zBD&v7?W)+~{1%j&;hNn1$u(Qf+kDjN@*idQS?xvC4ECDeHewz?G0#he7 zCsstL(w{Plu(!FNhXfJ{0n?Q-YOzcW?9qza`gYz$;4N?dn;5|r^Pj^{3o7ySB<|3Z zEr@B#4pRlOCC?#z)^q@2e){xYUpE2rMRM>FXPmLC&x`~LfebWD@>?Un}Q0R z?W&qdt#z$7TS909gY%<;1R0EY_u4#ZKbm_*{+%P)iLAaOC~5h0SR75Q&;)qgPVa?` zZ9N38VjZfZx+7Pp3f$(HaQ*`@-RF-~@`5qmpUYKC?;y$|({-2ZH7m!Y;3P?}1V|Nr z9~k))*ryOY#+AV7tiAXy6$Md1)dc)WBQk3wcE0FpoZ($wnpPSit`ZWuksAs`LDecg zxv-R{K7o8qc(^UB8Qw}AI^Svg|IfR_?q}RvzMS;*8+a4d5)%Lyb;ETWUZ35T=@62< z)+fexuiom_)_+HqL6$jS6pv{-RHk=BpbVmu8sz1yP&{&Ql&7WTN=UFl{1V+Cz@g@f zA-19zIhuL3gqCAkeODGm0{NwA&2ZARt1MUhRvjtc3&0oxC$nf?YKx+}=xKB$Hyjs8 zk2y4EZ<$46>CwdAF%pwlylk(R6K+3kB7Kid#S|HsZb#EHZQt{pyHql@7-$bZ`^)&b z+h*q)c2gh)l2E5jq!o_l)0$@=t$nZ_5dORyJ5#AC_B%O3i}GxQgT)Eha;HOL_@Sa< z58ox$8^vTLj-dcboJob(7@V!6cBP?hs>yC@N@7A-8qXcNaymut^z7-2ke|LB%~;N{ z{z_oDy6Rz}RXvxws@=lX-o}H(m_+ONBFu2nY>To&(~yXs&)R(hm4GSz6sq_3Hgk4k z`W22YT|SY@aekU#feXOKrZLdtD21 z8q%M+|*4(yY!krPml6|~uw z)m0l)Oznc?xB$BSiUnir_D8J@t=;0CmK)GtNku+f!b=`}3^Y*Qo`}>bjx6}r5P0Hp z%OgFR#L{`XvDNk|EtHX1*d%b8)Z$fYN}M4#FsyOlSSSu&DbGA>UP_5x__o4;-3^y% zr(Kbw%K`-}SDT*jyaqc5yjOqlOJb{Vsq#ijkD zdbo3n1{DM?mtNfSu@lMj_bG*ufjZY_T;58=wiQ^#A*t z#Rsm{Xel4#;sN|%lzP5;Weu8Kgm)a7#;q?5M4#sAkP z+-l(a-HGG6BM~R{ELG2LGxs~c6p&r0*#y7=ZRo-qG5UD#X-vAjiftLabapwcO5gm= zN#qbCEaf+FmJ`-O-XTy{)OtCkC!82ONnu4Ur*PN;Gw$#G&-2w#V_OuHeq%dm>dxYKR=2wrC_XgQ6j z0p~59{5ydPT~j6h%HaL9QmB1pSWM$T%TW5`b2O5dmrs+bmIOEQKFH4fqx_}GkJ8^2 zF*f!q&`NOwMyTm)8)&apr}0^XyDeW`K1^fmWy$ngD#>6a?tcI=(4lLyXHVXa8(B)( zBx1h=bYcC2cLLou0ZjJ2Bp-PvSF{DEyPf-jF@{f-9Q^L`R2H@(G24kdD0b23i`!3) zJ5mbX+!TV{PlIJ*Q)v=&iVuw6xgQ;=sULFTQ7wH5_z#e@UeupabYuT&J9ecvU&+cp z34`a$EESSc@=T@u2e40;T#ZlO1Hk=@JDW^fR8S$dp&rBaH(HVgba&U4xos0<3T${e ze#d`X(*BLi+dehjmWf1IE^eQgp(?KUCMAfZ&^!mltdug<2!BE|N*mu4dOrFrEko`@ zSR*XHK=NMqX=*v#N**P1jl2Qp#&$byd}N0v^4i`!=SVAG{ZFx)zzIvPoXO8Z%F*rP z=&Dj8^AGe9lD@N}g(HLpO8me(_jd^(%sEv~#jh`<;Ct8yI{Awz`c>rW{ngD9^=huL zxjc)={Lw!^3Z&qH%OewsXP4pnj7r$|;#XF@=hA(V1)z0`Q69^uBEBo@{@zA`MfZgE z9SdjFJBVhOW|Ehv=$OMlZFtbYm8b$(GCtN1aES5iv$(0MWNM5uxCkIygvUK|KDDArKeu3 zc|9t)eyC3eCKdtk)h@^`?>ioHav+yKb_U9R@zQ83gR#`Kh&`=SpCDI0f0+F)z{YkP zA@r56RHz&2`DSwCF_p6ePERhx9l^DtUt~!kg>Oe_e=U49)79%8E(BLUP5?)64T06IDW_^6dFaWF@v%8Q5Z4lSzk8?XtqiUC5)T!s|rMJuvUXzEL+xIpC(h zPNR@Wj91AFs&x}Ih6q*u&Q-m0X)xb(xsh081g>N#?a<~VIo=HLVJeRM{kA_9JIqsV zN$#;0le?h)rf#o0k@+Bnv?T=WU z#!<2IZ)uD8E;R_1AG|;DgdS+vG`HP`x^k3N7%@zYOAWg0_v8Y%tQHje=mq`cZ(Unw zzZHydgq`|_3u}Fm{xW@I$6Pz6KSzEf61KosH)_Yq&5=j@rf`Wi`sxh*S$5hZ88)wF zb6oj9t;uLvF@A#S{eenkzJt8W7trR>M&T#Vl>H}Geg-&0VzSuRhv|!!TW(FISVBJ< zZBJH<#82_zLUcJb@~V!L4eP3k&zCdqCrWbdnM$)KmNl&nW(i%wgz+REZ&k1ZKj**s zPUXsFtaKr=-VrPgI!MsJ&*;*A8n!vP5tKA&afJXKp-8VpgM6o^g27WSD<1BTH=_0f zv@s?D;jz^Zvrk;!`HLfj>ebi?M&ZNmdsJqp|!5Q8^Vi&w`k>x5N0t`J&zdCDl+RQKgKHt@X3@#|y;L zk4$Z~3Z*nkn^B))uK6w^V1e7tvxt+@sp_7Ib;q((F5)EQhPa-FSN;buaSar{7WBIR zb1nLObnkM*$(G4V$XzT7@Sd2e?Mq)?bwAFdz-gWHuX2d}$iz)E?5ow|@=Z$0B&h6aX=CCeoTq)nx}Q_vp10eFQ7J;tA>g%{2iRRKe8F!0}4&h70V1QVo_4i z9hQ5XW5`1XKbDN3Xnau66o%)92WI<*7w79Eic!02)b|$1yZV=H2GSi<7B7bnakt5G z)UgHr?{K-b=ofORp~EGUiAMxu9@rT2pA#0d3f0oKF?K9dL3>%!rUI= z5x_$ND%wCp=YYC1_1>04??0iw6y&nIssO-J$x2L0Q=EFd@%$@()Xfy`{% z*aV-@2F%1{ObyCng|r6&1YLa)wSPMa&E-!~W zZzinUjGvKm0_eDSrCm*5&WQK4SMJl;TEUmRktasMZYk_$II$w0yglQ}WZ6}L+VjfQ zkm^wP47D;9hViUroYAIRBF#XllCN~3yv0f>a&3yO;HOEJwyLFMidlX+6%y_J0U%*~ zSx~5MVeZs=LQ|N`7qJ%E1vUBGA^>eU?`R*Q6(6Lbut#`^s&Dgd1mU~>$+`XFgIhT> zU#)<6H}xN&IWXD#;4t8K^SKFDn@ZZV-CqP#{a65lS&~)qYl5BenhGg4*F+sdXD)VG zjVluJ%-oFjXXjg^XUDz1O)$v&#C1nzT<3g~e{ofBYH zVL5ekqhqx0$LQpd5aeG0v|dMgclauQioc@`iNW0Nb)-hm+#EKmlFFt~G@uUGd@!tO z<$ktIY16$kQwXw3^6NCwhtF37bX40~zV6utZ)~EGXSPBm4b;8D(YidH-((MniANAB z6v^@0?O4Mlkw5-SU@A=Tb~umfny|lnQ!zkxaPeJc#FU@`UW;}5iU$r{Xcwu<*q9Pr zu++v6u1YavcbkUacx~~gm|Z9@CeaJ5FdAOL z*vp!)^HZ3vB^4F>R&J|7WVV&pVD!0ymWk zOioaAX)JABBd`xamG@0g0&`T!e|7SLwnX9h;bh4& z)(d*Hv6P)c$6Cr-`c7Z;+m@aue%KT5p?oETbc6u7ahv#O&1UE0gfE}2OxR|`3oCR3;*l5PzHRxht332nZ-ZT zZ;TWr-g#aw_wWQZ(ANCCeej3O4{sAug?CVlH?DE@SZNesy2>oht*%<1_}~I|(nfy+ zOV;3uckOFzwc__RtaGOP-j`4iqFb8VoXU02THhF$hl`cco6eJ}pNwcJC3os+yJBB5d2&Jk&| zOQKIQ9B{lv@3CYQAQvnhakO(kyx^e(c0^HsnN~^_z$$ zu9sf~PusiS?m9mMy#GA3AOQU94i+me46$Vv$oQMNF9w+p%nKYSsz4%19P@hQc=p9D z|6h%nLt3fD4vB8~pBIF#Od9siFC_Xsn^lxS-75a8{qJ9iZ9H3qg{SeL(|7)|fe2Lo zUr{;S?iCq;2H#b>7+gfS@LT1U7XBjt3ViNB@1aoblR5r5$4MhXquD5zCPJyN3cL&C zV#1o=agx&X_dTTsd9ljfsA!vgnKqbSbj-o-+M-jnL2$CCeU7qOyKgj^ zo`d!i#~8KSMjhX4^@bCoaeu%q#N$Rd+<;-Mjk=?KXp5!Z8i;ERuXfl0Ij9B37CnP5SSp^V=T7UAS0lIaMf!f2ouq5f8~Iw-c?z3E zVRs~>gc;#t53RO0-bm;Vqz+F}^m`4_;`-NxM#QC)DwbGAiQ@Plp-UMUjoE!;HaoZ+ z(e#~Bmt(bK{nDgsLFVs0mKyEE3U&GHHPC3`vDv1fI^%G*g)i9^MG9KREpS%JRKB;L zV5t25vYpyI(jZ4P?gAIq0lJWd32-e9PCL*Lis!&Ubxm(ivKSeG-Ryao#?pn3XcGye z1Hi|<@OW^tvGL<;#QN(;xc0+iYmCwlc33RhHkI2R;@wFF*fLUgTeOd7_+Tq6LI} zhYC0q6;&LYHP&4w)zaf=GNA<26*yV3ZV)Uh>u%9CjhTZpX5vSEeAlXdH=th&wQ1P2L;#4(T)X?T-SK6|ox300 zlAi2D{=ey`v;MESbIY9LLKO2Eb`Uc#*mPN|b2vD5KKgo%u*&Y%O6c3#Tw{NRd{!7T zc9-BD@TvY?9+Z}9;F8~3{omu5mneb$--B}oyoJS-Y?@%Z%q)+ym$odq^Bq;!^Kb3a% zOLjiadb-vZnLQ}xB!{C(NCuV@vri7nbYIZg3qHuc1sV7i#eY+yPC_~|j`q@#vz*jx z7)8qP1h|cJJz^*saQQNxWuk}HCB+36=-YvUdgaYyq#g{#b>YieA*+T*?@`?<+^!3K zk)z4&Y_|t5%7VAVxEDUAZ$D^+tD{NE?};%7jQEp{u>Hxa&2n_)4~$`*40I;%^v>* zRe!gPhO6Lkx}A+_aF$ef|8$lsw;ukjy#xbq78!08eAWf+0oetXyV-lGWc#{~)Q0S- z;fS8WUwiqst{WhQGyhrk)d`d=O2*z6BU|}iwiEgM3u`r?AZmb?>c;zzY@ZfnnoLrN zR;VmXn2gzXo`uB+nybQp>Fc6ns*Kn-x93#g>+Zwgsfj}r6zJyvQoXy^xD9HKh%&d7 z4u`$nxqm%BG5A_AYOY@?J>JT(-e%sXQR}H#Ek|l}ITDvA)<`NQqBARweIHnGuVX(# z=w?I^%0ai)NLg*fR*~#fsK?5$mPVs|qApBuve?Wfe9QDE3JELl2PLRZO4VXfQ1zO*uX+;WrvB7l?E?QT{W}cX-aX#^-K6 zzX5y+*UZ3C{|GFORYcALQxv&xjItq;Zf*9&Aq{G=g*b5;Hwk{^IZfba;B=Wll~6nu z)%CJ7Ti8Y;8=m{JGEpZzt$Arw!45Qc%Mn+!`1;$w zxg5m3Ddzgb>FcCZN3DBthj*SWHi8Ts<{PW3c(?YyGWCXNK1grX;te!FPU4vQz=R$) zRQk2`ptR59*x$+|d#Y?!xMKQwLUxew`)=G`F{Mo<&Rz#ITloJ&w>^oyZuw*TecP&h zpx_I9d`f(npLE`NDQm;U6@I1gR}>bM(K8xX5qy{FMd!-t`3Zu9!;)O>K`K3FvR41r z_Ae1zgM{(T?Zv-)LyKR9!@L6ySes1JEkG>aS@I}6-N?a--@dc!mvk+^0QLOakDBY^a^2-rJA4G*6xX9#}+eWh9KCVsE4^sq0^`A>kB-!p&(e(#KPSC5Ocu<1YO0(yl zCEk^Y4hF%tV$-nRJGMm#SplVzMgh zy;U?(4jIq;ZDgDHKx`WV!Tb9HVv$dt$-^pjmO2F;INvAx_U-#68;T~C(_6(dp#6!> z%A)quY>*X*uwhk%BEyrX4&fB8zm0@$@t#q0D-QNG3aWe5`7OzP zWw;3alo(WSbn$c&FdO6EcF|V&{I1v@VH6GSQ@k2w(Cwr%&zO6`D)*O7PhnK$!O%S) z5Dn0pv!&un>6QZa)K()8)PqtRv3JWXm;hc!Y60s+!55A0DAs(?^Xo%fUI&%h^)rI~ zF%hkrnewSkRFZ&RX!J~<-;SLRLo#uWy$bO!*!LIEoFCU_;7O$CibJ&2y;Zw8aq@Wb z4zas$qiCN((aiEm(E8JyLtph_8)PohQVhqx4@+>xSks{Cs3;F^X({+ET5$o6M?-R? z_s2kqc$GpsDq5-fEu(aX3yMe4Qc=n0$3zMKDc|B(t*veBUhAexQ;CZc#;3vuow(zN ziDHKTPvS)`W%K>BTFk)oOz(zePbk)5|8z7F)lOo1Z*Tn8UFceN%d88Qj)pX=~G1UtaGu(;jsD;^EKRz@yYI&cJn1QW@eNL!9mf;>;Tj@tHe}DOfgkFGO7&&^OCEd+v`M2nh`8UGMd{ijZ zEEh(k8`)@Pjf3HE_xdSo%|;gc4PX`O{e1W(+}1B@CC~HA0`%fKAB9+LWl3OBK?+t< zNSDFT+I-nn^T~^P>mX-Otq**e>q97LU&IK{K9c8_v)rk-KotF?LL@K%y)XrBN>~e; zDAFN#REPg!8MO@>u_$TD*q{tcPG{{S<8Sorzv(|!)o%&-rKkCG1upv*U?Q9|xT?P% z+$9?1ix1k@73CxD6=PUFB3_kDAo(mw%W5Sb$Fg2TvL!Thv^2d(f-iU{=ZVGMgOTq+ zRd+4Xb7G?1c3!X=e;ejeT_4wj0WhpKm4@tPnL?g)!g6Gum^5SM9&)66>OP!UE0#=F z4kp&Kyneh8FWwY+sAE%?F})}msPhcU z20V)$aj3Tttd7o075Hzv3;`AWRHE?T1ZBC3;Mgg5uofz+l+LO8W-X*RL{@%L`>_+U zANe}wTFoNjh&_!U#ZR5_QPLIHG^YU95(q=kPn|oVvtBWC_$MwA%5O;yeXUB0XOMbZ z$k(tC0xYVCT+DpVVY{uw!Fe8%5;t*J@7Vx7--o zHeTw<+7YbghaFDpRRBSbi%AZg;k=@0gH6_m$GFzl*32Ql>Or;9F(TBYhAsiEjLo`d zQ6SRc3%te_d)dO&r>H{bWlC0V!>CnkK)1CWgd1f%m2ou-@p{M-mD}jY9&-Ai*&hH|)%AL`Ws2E)y2pBgCQ$I&QDw{xO$Q2o5lbJU_o`aEUn zvWTKRMDpUL`lTpf*(As&ld!OLT=e^I?UTO_&bzqmA4)>KA1SP=+gbhi{wo*h(*M1J z#@m1cW3)=nId}3*QiB~flBaTGBT+^B>s{CEVivP3e-^UiFJdsJa)qBeGmxrRkK2mq zOx{eX{{YJWBWMw%;v_^`O`G2#ssL96#) zCr7z{*KTv~^rW#5sc0+mHW+ZA%J#v@6|1Z391Po%V`=GV_8w^SS14LG5DZu4(nlpv zp2s4eM$w7wO9RJ`fUnAVpC@lt$v1!AhvICWPN(GD9>)s!YF#CtnvXW2dV2Hyf=zZVIM7g|(-EOBan* z$Jg^6Utz6;!}-HN_WQBauicx@uRXTR63uJ7R)-)b?#e~BA4TK36gd9DW7;unWhaZe zG!CWX#FfMrFy zOnZHcsSDJ-%h}nCg>rp7sp#GYoIiIYgO`SEhDU5r9G;b+RJLr|R|q?nFBcQU5pdRNC7&ujS5Ome-s$M<|7r3zr1!p?H+XzHeCMBh9o<;g;N*ZgZ36 zQ^&~ux1LiTa3m+ckTcK}TF+kUuSb8f(%g_q@&I_nJ5YuBGHcQ{j6pZTamD*f^bGW? zJYd=n3UqkSO@*1>_$IaZUPuk_o3`T$7|Be6HDlR5_wdtrds3KMOuyjXV(XvBzS?y- zIF8~({}CuU6cqH6t6utaQ1Ev14@WJU6Cid(U8>V+9~FF(8PN$pYtxBz%ygH>XdJ&-TWrY=?AEaDac@juu#d?Lj^3k-EHU-0RN*5`p4|WBQXl3U z1^mWLj>I4WV@cuwVPF2Vpum48RLDJOC1(>KaG)AcM|on!-w-UXQ12*;h$X_->ZY?v+ReWn%7;3Yz7I_eAEM$i=)F z?Azuz%h3nVA{*GMeZ-TCw(+OxYps43OgD(GZ)YIJ>5WoaW!>}A0<0=dy74vnhA%um z-C&t1 zl>cYth+E5t8ZSsQ7|x~N@J`4~$y@g!$bn?Dpa!Bgb(|l~R^Q8$MUkWbWZh+v6Yl)z zAA(?JN`mjZ$-QCv$`8@bK7!AsC)8-BejHH|s#S)8``9KNy{FfRb716S1<{XWaOG3k z!_k0EsD8ts2rS3;uXQY&%T(hux})A8@=uIF{Ubju-ttn}OL060HcfnIO&@dWk?75^ znQ~@1`lxYSTER!N_6TI6^S{P&Jyz-_dc}uhS|9Q>wa}rbw8dqA|Hye8Uba*E#VyTA+5C$ic@ROq{K@df&dhcWg%$?@!9@GNE;Fyv>EvRB%T1pYV$=Gp{qD8MC z4z#nUl_w0~1sl|n^Ua=Ye61_`L2nQlN;e#f%FAY@y3djBkNvwoIpSNzt>S7V;l*ZFl(0Dl^pYxk*guKuZ3D}>@TsE zIscnL761PesKuZI4y^ktl?xK0inrx!-v7?mPT>&;bL}1%bu}YfY!)=@MqK{^+NBVf_{tr5SeYqFtcJ@DN1J-1(>p#r%m+*(ax8NWat_ z=J%UcOcnU2gSelQp^TX=#{=ceQWg* ze+=!L&qWH9x-X3W0?885h=h%q$1C#QQWHl2;^h$tdH9-GBzkoY@o@_b82 zf6S5qh7R$OBqN)CJI{ca^sDY4S;hmS)R=)bcBM+!slCKwmPH>PoJeY<#gDO+^W)b# zP)RpCfT^3fk^}&`>mqS#Vo!2&*%Yo>7(|q@$Jv6Z7BV(ld%CdWP`LY|- zj5}4sw`%v^E-UC0FINbOyEe+r$TuN(Dr!g-kY}SU;hCkg~xR1(rXuKEw%INStfv0Ah4&GF_BJH#-#cJ)IZ&@X*McJY+ z7Qv+YA+2KapwGZAEHX(33nR;`bla1dyKx^1S0NqmGsxQBV4LLg!D&BC8-+^U>E;ig~W6O0et5hyYq$ zWV|ZG+3O18UTo$eV)V5YfUyr-iBnBV{{irRjo;Qs8z58JJheXh&T14g*9a#Q zYAtjG209f=?=8C@1BMtIfP3=|cf#?OW}odB7EaV;$F0ACTK0AyqU^1YrVlg-sE*&# zuC@t#f3CC6)B!S-h2W9B4`L$ON983w`P|QsfLn-o71i5YB|{pni}1`E*Ia4`ShB=V zIpsvHT6mSDllgBfh@GW*gw%jb;iTIy;DbnBmPnu{lnTTxv+@z>!tAKmIY5;Yrmy5l zpC+$?TwVNbrCUThW??vpo6|+f*_dzjI~D{wt3mg-)}TSu@n4|SnKq-*Fg|ieeD<@; zy;Ts;m+gK_^^H)M%i=z^snwPoTBocsVn?}^n`dyhfdZKiJDyfnRgVSybyitP6!K$5 z2HkrQ!(f^a$s=J;+>VZvtid1azdCcjmd}{|IYroUc$VE2XddEcB}XW`6eBG>CkCL`nqg8edr}v|P7DpOYKz@K;a^NC_94*sndd5s*UU+^>0IWT z2X0Re*m}^iTKmXM@Ew?-iGC@(_wAol@*a*K!HN?yk8RaNl$Wk}BAHG1R%mC3$aMd? ziGU7$?tXlXp6*Spzm4OTA#9|=tLaPvjM z>$CF|==HKpSD^JorP!Leu4HS`o%+Y>LTW+hx6%om4oWKgM3AZpGwfy&j4Haeul^&! z8Tj)SpuYK13oMl6S*5yI|8Jn$@o8!@M3n}%4g)V|MP7L6ErVK*IBH$^^rMQ}c4#w>MF4psou0rmUZqE%6;qK~hS%TV{z z_Frw9R5$lW1>T7o=exg}!(-g&yomk-xWuRV6&7uU!nZPBM=`3tpXk`BN!8LWWSM*UiA~?ATA{ zNk3rtkDnuKzK;q&fm{MlH!nZ9pXiV_1esr!)TN8>oIm&p+0Si;4_H5Ya&o<7e22@T z%ynGUnej4LFm(5P*c6|bM>)~A27DbQqDBem@$qtAOv&Zf+5ttzW#z=X`kE&u>JCi| z%Yk3GU-F+RR_V^M`-{Qo%~LL}C3*C--lpCYpHw$Y(g&B8IX(>_ADOh@`x_@KR|^`X zi%8rvUPVOB*iDUP7N7H-zSfhVe$#(+{DI(!;}QPyuoeSUgvy@hpB}jdY-rGw1iAVj z{oM)?44(nuev5u0yDw#kf9PJ^HBQZ2I;cj8Oz6BEXoCbqx|#7D+C?EF0~hyopGd@a zTUoUf6vZ!Q!|r36VY*XVT!Xnu(D$;ootx14oce*E)4uS)a&KwZy8g_B6=my3o$OkA z-8?9#AkDcfXkRqWMfdS{uz7Lr>MtQ*`MjKgxt0SnAN$aF-3vOSKm8I*CVM7e+g3dT zoK^L}4<;YL8Dh7I!gakCy%o4=@1y|p^NZdervF}dpsOfJUP;khu2$_LVI}t!%k3U+?%xgpd90C6B@up^;5gqM)09}dyn!B5`%X81Leo9vCL%u#l&yiw-6rq7!XQtfx1TROi>Xp8biwLvJK4GQ2D$|g ztz~B`wQyPQF+Yh-XVj>h#G_*4!2P|-^8Wyq0PLK|jx|K?d7-p0X8N_SWd1IY*TdWT z^n!>|yu##BIku@1k$+bCK*8l>0oU{@X_)fyj9*|YHq}9K7(&4R^|xJwB~H^S(1fUF zr}Wl7wQQ$nwS%|*;f|+o(;Ks=o?A_ zEi(jrSTkMA69NHtlV;IEvU`THkc%bEGULTw9L+)0l`f&10sULPI2oZ>ZtnO_WX#y| zfZ|TqR)#?S`;{**<``?X0XD-1vet07aBuGzO+=1NPTlvWw%$5MIeNkQyT>(O+3kqq zC%sYBjJ~Q-y{Kzai2`}HSyLBhS=CBXzDHiwF7W5^I=vgU1_89vhS((N#Zq)01&>_= zw}D|S{jWhaVNF3l+OcZYI(Txj%C>6w-Li@8uT_Eixr$akeqgOI*`#TM^pM8) zeK2C!iHoI&oF|3l%~qC|(20Q%ZOWjT${DDHe*nwJQ3~}p3p)QuTh0rZ+VG87$sEpX zihQ)gQ3iWKh^!$}f|yTkB7Lp`#!A0gI!gRC%_WbaQ)DZ}2!ZiIA-Ix_x^SxH2aOr3 zh4M%iqP=xLmqwt(pw1J*RdrL&Y{sbS0BhzWG^_BN^P3%3MmE2XxG7``el(3g81t>D z-mnw<#Ghf)OYl}i@gn1r{DkY6k#n#`#hb>I4^qpemRY?-n*QT`1V>{QEIVSVo&SFS zhyxa&kzF5;J6n39%0VHZc%Qdr`gO}EB=*58_My(R4_4Xj{W`2(TZFUTngGGsZHw*d zz~u1I{-HU?g&o|3B82lFAY52G%5Xz;r011n=2_0WzS&**q-EC?rxO7zKn)8Z*>6TM zb5KNSZK60$lwdw-AgRp#%WXc?}oS0&opt0GtO<&u7m>jMl|NqAdaXgN3(B(hMv&#y*>VjL*YeDH8+$sa+U zh6j>0nZdy!KP!0t-VzSY=CY67k-TXdKt3-nrzFSg8{yod?87D)sR-MK)0t-eKt;wr z(--z*?QO9T5M=!MJJKp#{*>MG0n8s}tm40qZ&KD<{EiW2ud&P$WaH5V0*h&V-{p7W z`r*V#%`OHy!9}|`|HJgc`xN`~_GmK`E!%Ifyo(%{E(_s=F0Nul+XMi66JIvIxeSU0 zXji6e$~H0ouY@PoF4cKveaP$ED4f@f60Kq_o5{JOrOtL!AK6u+`~EOW08ZdCDvU}0 zIdgJqZnR@x?oIL^0*^M=R3Cn(4KfSeVV@Vz%<$zH! zYbK-yQ6F^t9SyY7mj4eRZaYji!rVqI%6~IKH9$J1O7(A+(mLu6y1w@e`lGEXonn`k z$2Snk@HU({`tXW++n~C<(OS( zYE3Wes{DfRrK|icFwFWFU(dj54Yj%FIU)DXg3xgEqEfCe@{lVs(m*b?;_gMVR$hPMaAbk+JnL8S4heVz3ypN=vV=3T&|_`ISNBYQ2Qt5oCY z65rW%razIcW)7&VRMz_XK3>osxSQj!OG?H{%ql2Wqu0b1LyPGssU!m$aQ=ydku2sm z&-*Yv5mZX8MmM^7RIuwy;fH#bV&RU zz^3sKoqt3g%cXhBXRQ#(p;1q=H!c-hiZNW-#eop+>b5EZryV@UsZV1!e7n@7ejnR~ z@4s!TVga$~XTQff!RI;6Y*eXFep1IkzK7!UEKkcB28!EVk!Wrg{ceyuxC+VAPZ_u> z+==5{rn(M&({dI~MU~iXg7^GoqgYMu7F%&waK@TS!F3WZ%OfUfJ_la+2&ej$MVP8_ zg>bX-RC7Ci-pA^l&;DzjtT28@@7GI_ALMB%N+ozhS$awxDpAWU2b&w0iQe8RoMv#X zQhM2qyum({6FNkz3`!Nu)e3#{Jsibh>8@sp>ZS|UsZmVrea-2U4Q6BFxqIq17M^T1 zvY01xBiV^ONkNy#XTAXtBr^udc#L`h>^3VGN_zqr8Z%X9>ujaPlO5moWIdm7XGh(j z$8=tQY@drW>kuhN#ej*W-<^9!Cm#AGUzoqj8B{**;J$`{g6lOHzCvy$>b%x~2qK$D zGlFNPhL{xm*qF_m6hA2IDoJ4;JKiBPJf-VxQhmMf zojAm?0n;LSl#im`2ZDqb_yJNZ7t2G;Qjral?E zT?YR3E9f+>JEdXCAE9YM3j8L7}YTZmw1M1GYN8xG< zriC|mS$UjP1%=8xKC`E6Z$phdP|ZPzG)3_subc6gjX;uz5D~lErK-0RH zu?!0uokau0Z|H;CHyWyklD`o)dIi+2vNYzo`Oxwy&a`9;QJj#v#_Tfo09i3b#K35Q z=jF%Wv#f?25fy>ma5zL!^Vi9CNdBH!O~#+D&eaNF8)WLU@e|>C?34IPf*Cm+O}sW_ zm9a;8rE#|u{P~CfW%jTTE9x~6!j!MOrDukvh}^+Qc=}e}iffrK<#V;XOJgy~v+BEi zC6gMSkv*rubt*ugUNkie12?BvEGs}rLP|25o(T$tZiyHW1`P^uD>0_*VF}4n7KN*> zDh>nPvU{BeR?C-VD5}xSI^!fva1ipKase>XT}5- zL}P9vhw*vBw-WUogLAdaAkLcWn}5Q}%gO?$bl*c9_ilcoaag#o5HJ8lpS#Np>gf#n z0UYSHaKP`jicDk_j#N)lx`e>)O2gj7xW85Iu}FY@t|LkOUUlZ}7M!92=Xc(Zb2$;) zH4avzAA^qXx%Xf)-^%WxtVI!`5Y3BUbkS<|T__G^F7NjWn7nv%#TBb_tRT3tetcf0 zw}Fm&k|RJ?P7L@$=Yg?1E^FFSkR;8OiR961K-&h-CV9DJi|io&%(X~$${zgwXtCWt zL+y%!BMGUCW=|s9dHcpmVfxhwS4pT4{Cs3xoI^fF&Rxo5ejhclr>*a^ioHL^r7=zd z=t$cwM=LMTs5)~NhNEu2m9~kYe?ZAJ4Q^d0d|2h3pBD~s( zCpF1rH&(wOpEep*@!3ql@MT{=S|KkonD#Boy7kOV-JS$NrAp>c{X>xjq9u(#3112m zLX@kXCCkrijr1q;n_DQ-j@5gO8>?FQ>3&$L+|2$e6cmmZ>(vu>EwG3e$%%Sd(4d%C?}2A)a3_3cmb^1O+Yef|E&*f8T{?q9hNvMj3O2;b&# z^r%olYT1J@Xct}=KSzVg`^fYY%_^LE@>e=?p0ifdyOtM_NkfL<@u{ZF$0Dt7cPglX ziW|j%-KJ_@v6AZf(0)~1hPes1d7BE%FLS?ZMHm_6pKvx?L<|Nw2u6edh`=^mS?(3o zmmihcS%9;f!ryWV)Y*mSl0re6e${I?#rfAW*96TpgJR6X;+BuoxTFA6D|nmEk^YF4 z?YpLF>vijBiEXPniDP=7{{VUL_PUp(2DaEp3b%B&f!8n-dhfhfSqJmiZk?P*p`#;& zYL$_;ZC+;tj1XV)P4{2bD`^ErT*=9WA$qVI(`OPd403Z+kgy?SK0I0{)HB~1RZOR+ z1>n0rQq;CUQK5pSmmFEBCShKOhLi{Sh$UKO@Z(I5Q)Bv+Y*w`vZ5;aU9}9b?uVd0z z6&Ty5x0T}gj;FqYzOJjXLn%H#@~+jm8bf>@HLImxVO?oOlz+Is#C{F8v`ity&hCYA z4?thFtQP;Wc5lw0Qul?AOCYP4S5J~P#Il9ks>!kE+VQG`lH>fcd2%2(N6d5$VRQFE zegBY*&GQVR_)yZ`w^&i&2$S6$rF~U7crQ3a2M_7cSpVFXbsQ+-y?z$eT`-AwkV1q; zj(pWt&Dr%u)1sW3zkES~+oPV)TdE-`Q~4h*&l%g=j$;`Ggyc9*mLNIinQpj1=l3Ti z07)iXF%B$j8|mLH)e3D8403V$W_hnodq-r^E0xwOtDIq*@qtcz^H@lR0aNaxsk(*M z)AsfYQ&Pe*m}uslBNl7j_M-8XAVlQFZujv~V{7+~tt z`EHv8?SFGmnMN@MnJ+|gnMf*<+ZJwmI9KdlZn)_UrwI5&A8#X$?CA&A0hl z>YC@AsG{12?FLN5sC?M(Y#@>8v7bPl(Ng#zH|kb%qE2`sI8^TQtJX@r zna%bwgm3B~!LJ6dk*e3@`JjPEbRO_;DBTQ&>JYtrHet~U2Ug-X zD5^QFM6vTt_U!<8FGf#Rr+UeOH5PBaRe(Qb@A%X@wz?k;!L*^j;EbiV=2>Lyez9@s(`^tDkoBpc9{Wr=iPS!}Vn2{FYQDXx7M4!cx1Pwz}+rEhCr}cbN z0&Z`+MB5Xvp6^PqNlh64PF&Lvp!dZ|Pv+WrgAUkH0W%dyw9-|xbEVwy>GvBYG%vr; zgV!bqisTtf2|br8tx390o4xcji~vZN0SE9pmZfDq1i9An8At4`&a^($UF*G;;G(L~ z$2xXOr+evoKAN**o2Gn+#w8DKiARy=v1R8#;i+1KLM-U>HneI&v54)v^Fy4{uKAg% zX>>J8zu-!wEt;r#(U{wpUz?fV97N-n6$uGG2(s%u&M#5nXiH$2+KOLHSD+)TN8@%D zehWF;B)TxR>|P8+Ui)pq{Z}N%j)i&BXS~uK@8s9h%-4&XEcTrG(!d?-aVlQ#@p3HX zyi9UOmjv7t5eQ_S>h!$gbC=7~DdK{5B5L*Fhekt&qrgA?KfyDxtnL-WC;c{X9`Yiw zVOT(Tdk)Hc)%P6p^((&DdG(bA6sO(y3DBSBaAyPY!mI!-Pu=nMthvszd8Mab z5gp11@K~$$d&Xf*5R8ywt}i|~b*%Z5EZS1+;42V1IjvB8&CwsnbX9)m$e2eqC1I05 zOE}2_!Zl31pQBZ^uWr->*gJy)m}yd`7-X?8gZo@&TlLo7WiXSp*5MT*$+AQ*4MH!U zOBUAu4^w9u)m9g+YiMyOw75fY2u^WHffg-L+zG|q-QA^l@fJ!c5`w!FcPQ=_+zA>W z(3|g^d&juHGm^P%@2s`vJKrZ2bRcyMHMeA1J zXB0@p=(on2lng%yRg`O5d-Y(DLXk?!8JmmZHt}N&H14%_ZJ#yGJs9e;Q6`6Lt5^Bk z+xfVyX}Zd{K>u<_WuUkze=~s)la=_2&lYcon;czq^3Y(yV7X79B(Z?|18ir1m*VcW zBC~C((C@2zLLkRj<3@8&r(U%Lo;mIH(squ?dq&pO`Vy(_2*)z9&K{aj(QPLT%w4tY zQlu-vy-eKSE7*xGH|KgAWew*oG%+8NJt7j9P-s?XlN)Y7b>+2n`SQ+M^pfV61 zRMUoz`9yn#wIunT5bYK+GUkrl>NY0@FsOO{xDXxZv5rYQ|6MUdat=a$rZ(}J>1)h- zR!AkU5_%umc%F}ws_=Ybdd37>>F_0pst0tvu@`z!DI(=>wD>Za^?KkAc$O46N%Hvi zf^G{O9U&p^SXQYzN_%4;9~T3tqVY-j!5C;$L^Al;AbUN@?)I zlN+*}U%HC*lOvc9MHsjHeB5h;6u9HnN_Ra%_k_{B#=yu_%TKE(?1J)??hfbs+&q}`&ie&TCqL0h(k?waj#72O-4G3H?8}r zNxE^pb-3g^2D#MD>P-e})TYe4(ilzj4GL=X6-_=fSF#ZjH-+sI{7y5@iedLQ+6*f$ zta_%ubLUSPYbY9IoKb&lEkwn&NV5oXD& z5<9KbWsL;yw>x;j29Xo}gfANg_tljpmXOPFB}#`v!-UPufz@8 zrb_f3qb`Cjg=GLZ%j{Lf_tgo}j8Yj6Ln%mCux0r3R%N+nLdH)=IX8_N*_C&Jek%sm z`P&%6AH-*Gw;Pb}w+aLpkCBdVHLz~E6`)USn<~Lno*^j$kt_&MC@Eei-+Z)c&(YHx zD0Y>KU!G7mTB}s7@%NM{^sC_gDt2-@t38M%j;;yUmixdI10Vc!2a(U|!+ZQt(~RzW zSH_Z({*vPJ{&z+}I!@7@xJ)|1Z8^U0Z<9{fydFP)C;`W$S`YD?|CqoK{UwU0sEYmU zu@^sPrG8|SM8~-q_WsF+h%seJrkuaNx%=Mr$u{~FD{j1@8z}mcN>1E=4_xDRbkas9 zLLZ7aiti>s(rq0Ff1tqL6MnH&spRi)2`vA-=AL%I@$+*npQqbs9?e>327ODSA2m^4 z5N$fjtRAJz(RU$VkH<5s@86tM|p5%FA zvc775Kkx1rQYY&X`Xr_-N~tf~Z`(w6h7HP*Xpk9S=9hKjHELO4Sm z-4jz{)%BvxMCg=qHhZF8I=u*S`J<&;@Uc2YP85T22HGO~yC7Vp=gOwnmNB z^t$S1&bU#z@X|OOO%*tV-{c_L65Z{Z$0Qi#a)DCM1vX-`YY+&d#En@zm1(qExY zsXcrq{lMGMU zglU2n7qgy*gXI39^r{#)bYUDe)tU#Vn>+Xo^aD$H`o>@Iy!O#J!_=6>xt~IvZM}wY zz$wZ~qOyX2ft0@1j?^)ogeD9H(ae z4bORURMIe-UMrl`C{Y!#D_BFr5sx!2o=(Tp_}g#6GNqiL{_*Aiv)d+Psa#%Dv!%}@ z?Iq}=tWZTWEArSDv?akF;f9IFzw)Bk?w==o?~nh=u08C-8l4Pal*PPh7wiZ$E|~kk zpUj6zyQy2Ki;V?wx#RV1)le_@`ffqfQ$YNp`Q|r$OWe^LPKhW4JFF2z8=;%8Ayf(| zRLXID7liIpnoM*|@9{j{{tsnp5@h^5vMnapsD`+Wzo)z>=m%ZCvj^T1{_lq-K_gw4 zSo3hY>vWf!-&#q8Z@ zdJXrS>8ZtWx6R0VIk~L?yKoD(WenGGuIf}#VftaoNYfb&arVh?NA+!rPE}*mPRq3@ z3TN&n-R{i87#miM1HyjL_Ac4x)=ZnX+V{eQCwbw?1~=HOUUD83ZwlMi>JCA_FPPFI zPLlVNsVue=zqj>2M=Eaf|KTFzK$c&WS9Il0?Kz<}VE)FZrR=bx+4Q!n#Ks5BJ z>i2oZM{3l#tcvOuU-eBOT?vK?Z|Gg`_5~!5f9~3P5I!w5%{PQ|bCtOZ`Rj%QIpVE7 zzc0*#3H(Ee#71;6{#$sgeX!S^Wp;lZn-Se&c3zY_w{7c*I zZ3h0hm9OSKvzAUbFuxd2a7|+fAz;mWepfwC?8-FeEnxkoARAF<(6^J8F*4IjxKhbK z9?M9_Bd$!eB6&1zV6|Yg(u|Mmx%PRZQWuqKM9~D8Ycuh=aFBjB<(m?~>2lR=XgsY@ zRm|!~|5lOv0XPlQu(kfFjzL8XnM=(jc%3I3-1!hEhfVB-|DZs_=`#b=+U zGri1d^z|Fnlt^+>^d!leoZoj}3vQ{*IfaRQxrjb&$xRO@BD|#L$`edqHJc)7Vq9l$ zkhq&@>w%5*{iF_gl492vAXIVjw=qOXx!*j-Ej4r(4?bscP369t9%afR5>6Kfz^2>1 z2WLLyR9hR>$KaeECL7%5dZwNTe3G)bxq-Zf!LB^pf$Mr%j59gcm)?*22X>7j*pAcc zdk!cC5!7jL9c7f-lt0U^GlH!Z)fUZ+Gb#F-j)}1Y(9=m|;`D2-|F;RT)hLy!KLT$G zojBe#D*KYEes@DB8hL@|sUFwj{9Aw2u4WWl;Dz*;lzw$=mLZ{H0fj#nc{%!&YYc3$ zSA1wSr*Zk48x*EqNpsR+V~JN0Y$!O=qd_A5SSm!)cy6hhnjNadcAjA!jeOaZsBj#i!nVu=YKMPp`*#VD1*0-ZSZk zVz|d+h&%$d0vhkj`q6l*$gT6h@!U@Ac{u`nw{=0uUxIn={Y3oum7g zx%LB2_qQ_%_rYC_Vf5d$T1$it<&&om8idT*^Hg!k2?~wR&zs08E4p}SwxvvvN> z(L!s=t$Wa10XOI5Q*6nl;xRDz(N+a1k*I_PKcT+snh1Ut1u+xa8o3ql%6yOJ=>mzt+PmA9*?E(KX3m&0(d-W-1 zM7Dx^AMkYqYX}mqs~GVQh3YxunuQ;b7T;6Nd~Br1ZsSd=_oo}}q0sKM=fX)|j+?i) zBv|;_nifD8S2a^6{xne7vr@Nt9PUq&E}V2$`^ic8ON!se%aqG~rtLJ4N%C^V0QvsM z>EVaTe<*{1-EXFGYiO=`s84nV`;cx55`B|j6u`W$vGpj&gkoAHPtH!zPM|E(7)Kv^ zHS+;!sf1L$!*^djYQx*BfHnWO%bSUwy!>^9S_*dMg$@kJtMg)YXef{s0Re zSn~%hSk0cjJ7&wDBCfPjDYm&YvnL&e?$tP0teD$*|HjP50J1>%X1lgeJHyIZHBIL5 z@rQq)lW)y+fbI)E28xsV9v@Rk{T4LQ92;$sTy2&0!IojGQ%MV zoc6-y+$2}6W;M2dD22GNe<=Jxb-MS-NOS4P7O>;sA{XBcGU*;ynjF78{hQ9TezMBq z9}2W$xGi)!tY7+!{r|@E|A)f+Fb>+2)bHdz#)CC2Iw~gYSLPwfL311kvjy4vcuN~( z3U#ayq3uh-(ZzeNvYGc6uKfRk@;l z{bpVd49q0^B8T-#%Sgt3y*y>T)`%*N^%qUxIbvdH&*vw2!fzB|Iv+E58(6r{iq!O} z3-^Qd*N~p@^>`R!!~anFb<;Ns(&_vlH$dda|1+-0A_!Y(aNZ3BZs<3OfG-ER1;ezp zJK2wRo1T&usjpwL0IxYNFIA|ag%5>k!T-}vvfCuUJ@T2E18zCli{k`F&02W=H-w+M z$ORivp2B8AkN=BqA}41{ZjP+y2`;A)Mo#{Jlkq&&hg`2mGYI4PQdEP1xu7VuXO5y| zXjN5sJg%zW)&G3YxG_0br1$r$U>3R;u`~0tdpn-@dx%?d8_FZf<(_(;Y=2Uk6fT>;F*3)cBBbfjfTD2re#d z+2HTXi930F$j}9aBn{2q^&(5kKA9#X86I&Ec2BPZG4C?@HIy9SEF$+gfT!ah%C}%! zv*5gI1u3Q@uPcc|dk5tZzAWT|E8poN@$^>XTwJbp_Wo}Hj#4>GryZ-&Z;~7#7m?kT_ub=~O)@mIDy0>dN`rbQuTw5~Q+rRm zunS~hJcfzs_5c0Cm#320=is61Nw|T*`boU9X$xA}y7V9d2iay^kO5Qc(lYmUD(^oO z~n(1~hq3r;G%(O_d({UDK_+R&%z0SCgGX zv}bOMDel7*BzPSBx?OhjAIfWZrr|#nJi9kW1`32ShZ*8ELzbo#3Wr1e0j$IYpN_T{ zAoKNSRXh$=Kib3OViz(zL?jl5txU)*Z}@nK!qQ5G!1n7r=L@iV+BJNpK2FxT3TC#_ zV8MqV%vml^cZo9s(tfw9V$lb``TQKJW2+GPuU#B@G#fEh1Y5{@Pgvj$B&tEwtgbyj z!ew>H>%)oP%SF)>F`}6Qz?n?|5ZS^=F^MeAiJYVok8%=kC$}Kj`DK;-XR(ECBbA$k z%&xhLo*UX>hXs#EI_)&ebH3z;U#IA8fdsr4y1gra_%CHgWH7dbkf|E-7&@qn@1N_c z1wD8gM&d7?CDGK)wv+T+7KNy*Qgq zbJ;vfM5*skHa*owvr2@mJ7KP4uq5OYK<2GZ-3$0ZgHuD&WxvfsrjOz%=-;e#A*9s% zu<(voOtTJ@JfJ#w{;D9>9%c`9EP}4|Jyc5l;NCHMmP0-dxBl=77*Rj)_10erMJVo* z>WH#!$)n_4??^7R8`GZJ!m3jo>5D{gG6Dt0XX2|0*m?j3NjB0NYpy|eDNq=Z+o*ki zhp7HTDE@A`xP{*npsX|IDb^C`?c{Fcuaf#6alCNq=+FQ}ll+@NVVV%O_6(Ztl7|}c za2`NypR)Due+8L$Qhb~Fr{XHPn(1=kSU#LSzw>6bm%tqSzfaNK`BD`z7&Y7vjfE1o8Z3m# zQVA^1;R`CxKfn<$#C;Hl?nuzb#a?<}0?i+G`o}*vL&wwY<;@LTL{g=kL)yR%-L-3C z+o?a&GQEF^QdE~o1|;pJ7KhR#Lh34RCtp+*^SKtP8@acqsT54BCqPsGA~0dPh(yZC zrw9n}+I?XGY1LCscj9Q<8ZIGwEqF-~*R^9aAN>Ck+2c%Bl3t2Haa89gY685 z93(7*U@!inmfJ{O+5>qFaGg!3)(YTF2ofYjfM-hmS}4l`_H+E7a+syQuzFjbf2h+^}iyq1RfUg;5Y z67x?XM#f*6Y*w7n@TP~!vR=INbs)-7CVCuvntvAU?luaN1W<6Pj*tlcJ-+q_vTDl5 z9ebEwrWAlzzXE2t(v`+TFbIxKz7(0fTS$4k#xT;$fw^YtcOj-*5go@a1Q~71(>l!ECjq{P1q|dZfpgWt(OujQ64zG8IYaM-x$ny~Sk@sR~6&!fw zY%w_?sw8yxrmUw-yw$u!#pUkJ6|vpD#Lo7MRJL2-85WMh5OBIG_2;QXK||4uy2wF5 z+oNm%xF{51`xY45A20{{^gJb@Qbh1z&4W}32%731w2NfTzI6tUAtqz95Nv9@_jLdM zK5lE`H}O|HfxC~B{d)W(4D*rhH(r~l6MP1KnWKisu}+`=kY9##7E6VARKE1JW*&VX zM=OYu7@h%~=yC~f1*W)GNiC~Bf%e2$(ua3n(q-pmu;zC**sC{batgyvL2PCWgE)pi zM6Sza$TwZx0fc9Z+Fyn>`}I>X_~;r1x_5V2--f?D)q=QZ3Z=FJKD>>S%iooK*WO~{ z7Sv#}JObobo}#>e>Kn>*$E?b{;*;gKcB?kR`gmyZfMhW^&Ii&na)gesF z)WBaYR9ysPf8qidMxsGJqg!j#b|kg>Sk2|~pF&&J*81zqj-Fgih+u^4Y@YWYTXY#unO?A7O#LqO+oy{T1=UAoF@zeQ;0pXar zzgzE9VOCzC9r-kiI62=SkjJ3CrW@c3j=#EnSyeDMN8a;0!dyJu=^x6Cj#8b`7=+0b53%BBK3}iR7$=uHCH$fHB_>6g zWuIJ*G|$+3^}~MMFHUt8V&@vZD4SQB5_qFSZ=ytZqsec;{=9F528K?bCxKu~fZm!D zTjmE1Gv?w%x00;y*W-a5oBM!F12PLd|S7#YFYtLB_hRl<>*yl%NE9DkB=@2 z$;=t*pMNM83&Sv;i^JfUhjr3tLC{6rZZZjTy6)}ehLh;biEFYfiM!j1EX86aOX45K z1anwb@c_Eil+^_GTItdY$p~}7NTH%mzizC{A{;4GX}gC{R8M`}4|H#`*`BP58=I`` ze(?J$le;F7i6YAT{LSKIBG?_=)RYPq)zG4R7FDYTU0L(!>>4v&#V>2vBr!iFJI&3o zUrQkKrHNshH9j)yzbbtb9Dkv!TWatgw5h(*NyXG%WZ(`j4o~jADATdG*;zeiQQT() zPS>P*{XL5CHTl_P>93bE6;9|T>p=m|MsI15`tlJUiPxTN`26U=Pso&#x}?j*OTP#C zdFb!-s)A=o8ns#~-##1cDbCg-Y%9RBzQmF-FGyuh&EJT$)4fVNGmNF8~M$&3`|Pu+!^r>lx+zuAoK((>XhL z=5nhEISNOk9M;#^xvz>#QWL3)w{=gc&yNq1t!IndB-v>c$oV?N`2MAJ<0c1FhQ5Kw zgo`NSdZ8V}M#!}FX2;{#_dBfm#b35uQ2sJJx+K3V6$0{DS@X1U6-K6Mhc6QXvp5zO zvTvzgCTthXrRN+N{WJ>G$vI`*aG}D=Um;-D37OA0Fnvnab(rJT2buiG=yhyziHc z86@s*n+`=i9u(vh71zm&_}GuEO@R54e70tMnld=!#M`o2)C}fvQSIe!3z}PmwfX-pMZu@~I~PU0P=rvq zILihOj)Qs{3v{wAg=%QZzx`1-oqiwkRRo3G9i-a*$Oz{b*j0fME`|=AUk5MTWn3<0 zQCW)MNzr!ltI{sx*t(4vyenK%voCnYje;$fH`soGmYnQB*QVz{ZN|ybel9ix1oNHn zz1lD987 zndTFkYW1yo)5X)U46r0J>`--M%axQ6jJ@Z>Dc)~JpH5PBUvxL+Fp2$=m=-+zdQ~4cew51h+2&i|GmZ;}ydQWQ6dqg$jP^+M5?3P|^6U_rKOe65 z|2pQhl^7@Y{u7}QYQh30;=>r&oEB9Bd`eVjGGTlge6e9&GvCZZbK@E3$$lvqoaoij z5s*CjO8Hr8<$$B;)e_0w$E55>lFr;xnxNZLPr2Gg;c}Kv6r*no<0xz^iT8(tC7vc^ z7s4lBple<;y+O2@x993z?$od2b9Yy}m1*@*M9?nnYrA5Jc`wq-H~BdDIyP#jN4TlRIu^~snJ`9&iGsZ=8MRIloC2>alWKGQF^MmbR-JGN&Z0ua2Hsyd!6utx-;S17`CatqjIHRCnQT?~EZ-1YGr8dTrq3Yb zfNl~MZhXW(S8A%`&6FRl4r{c#ge0p$2eur*3yHN)W<1NWp228^puw$<2ReDC5bPEN z+2tl5om=FT7=_R2Xk$XZJ>onT-^M=`3L2aJL;27Mm){)qh{9qLUeFoGd&P*TAQZaO zQ2K4ADjwG>x=r21IaYn|#I3|#p0?*G$EUuM-Ppj8*i0E!Z}S4uO2(MHVcyl!Pmdv_tC$%t+gk&;_RgYM5sS0mha zcsgw{dz~j%K~P|lAn-I&38J4HF&c7C<>SH4j(X)vTlxm+M9d65PLJrFY`-VYB1+2Ij;0pqwd0SJ@I0- zGd^kCx!M9f$3=lm88=eW#SQe6e&?MO#y;Gm0}mF+bG$?1bA%r}>@U%FmQE#WX+qr8gyGUk@O4}B;wG!{zF5Mm9JEpw?RScCt{m0J% zRP`4a9nR2m?Dz3oiTq7U1vQ$4F`$bXrMRXHC8hkS2R9Ap>}}&ZHrX*3ZjMm81Dw$4NC7I@ci6 z8{>zLfdtvH@0!m|z_7;i9`9fx&z~0`6C0vZYKFea=eP&OO0&&QZnal>A#lz9BV5!`&oh3O+o#pyEF@?Lqzh; z%x(W{B$@lvKuPIvaJ2ZOKYr-=Z;yIE*j(e0)nlek?Mh^`OUMsdfd5(V23mDw5LEh8 zapy=Ui?o(xm9aUt$W8LS3%=y>=>|d2U=UrQ>P!QO2!4jeFk2jD!x+lgI2yJ=W}SJ zw^1H+4_RX+UOn<4&_f*p^ljZMkIB4FnH0qY$NH(*m~gyg3V9{Mk2E_d5K z{a9O0rSQPi7Q6yr0$XO5Y46=#qxm2Qcx)2vFfQ3k^hM_ooCldA*bMGZMhosCdv`~v zmXzM!bEJ#@%T!E8L_P*}%o<;mJ}ncH+er_{HG;}hgv zxN+f)d$g#NtsGyN*fb#)&m!el(}aa-T9N)E%o2|x^wvm=w7pI0@Bu*Xy_(X2BU-BM zL^xb}08r2+my{rN%9my=Psr)DpK(pz4Jnd9-S+PyF$@gX%PyUD_{-6jS6_pVdWWpB zJKj^+wsO$b-I6p=d*u^0Xb_#|$Wh0BFyvz?g@g}#$2JFLnun(onoJA325O!j+y)2B z)}d$5{?IsF=J5y|Eb;L@>+*LI8bH~+V`**vFN1*{Qn6gw>rT?AZnWHaVD&MTU%Vnj z8j&c?k76JbI03ki`nj{xxj)wwD6^GG<;&zoBEvT;P_vwuO+M5%RuTfB}2S&!_mg2eh+4nH4P0F5qs zF>Q4El))==-z4`{Cz#j)M_L!LU7SWIz+pQ z1OKMsl$*0eSE^KRuEFa+@((4nU$-S_VulGwe0}F0@;2RiDP-KoY0}lC;X)|5EX8{qFWTen{PT_Qs;y=MS92Vr+e&sZFG@l|EtRtu8X6qb!DKDIor#--R0OO>uGe1*PdboWB5Zv2C(`pD#0iekH6bi7lOZ9~N@k>yUox}PI9Wz0 zi$~iDYuWu^pZn{U`o9-oEHYZRr#SKYvInkf1SwKbY! z9DPbXy`C0tkq0YC|Nc0(e|Tu#tKL_GV4ViVqKu56`sS=V%Rk@T2u{qG1~jk_S~$XA zrTU7Hm))8>|CX4&x-Yu=@|f%MFpC?-l$2XD?#$I7@eqF(TNon6P63mv`-k!cF!@A% zbGvX-OnZ)X^rLJ4gl@W%6~;$*k$w!iee=JX8KB8TlMS zjL-3UvKiz0+@POffSlG&)Qg0w^Nde#B)*Gp4eygfi+avJZtu(I!*QEKoz&H#(bvZC z2{mf({hSHDg#3oGpOS;ib8k%r7MNbfji}F_YO`9*@2eL{6Z@^cvagRsH*_fNYCuXR z`xH`ILl>5tRrtsr^{un3v3f#y1&kLbRtW~W6gIUT1m&N$FMyQpiuJ@9iX!+_#v3j6Dg&AxKf*kVAW!_rM2HNsVB-+9%<~NN zaDLe3d5!?=RmMHBMl(8~Nd;%$7ZP^CKNpT(0{=}t#%pD&`@lZ!Sy}Ja{PjYVvxIyM zMUB%;s<;fQ822>DPpsD*C2UUlo57V}eN_qY_iS9>5_S#g0NgHWwYC9M`9y>%uj0Mu zvfY-OZWC*kC2HHgWtoRb3K-tO#6NXfyq!U*;#Udqh1qX=Ra`7UpBgfDxLk{ZtyhMb zYq#CnvqxWk6+H*Z!ECBEh((!v*O~e8u2^H4_j7`|g(t5O z*I;3N>o++Pg0;z;3IewRBmR;2xAa6cvagYMU<#}sGe1VjV|@Bjlg_wsY!EX_OrN|( z6YaNK;WNapv@D>cXjZU#Uy?2?ap9k zSb0?^_T4hUVTchUW8AEzoSo}$sw}eLUyx;8GAk6mmupkQ)t5FXl9EedKpv=D-rZ zOe9MZ-M8hVxRla1pvt~$QOHI)O_J)c|Cmkh82*x;^dTqgXszl+yQR;0K??-ZvUhaz zRz5{y(IVQ-oSoH(&JN;CJUt|gh^}FLmuh5Gglp;8Mj)ZpW#>vx*r-RH#3!R`Aq*bJ zW)zzKz0r$T^OD4EF}}IvikMffXGh1(Dc?X&6veyZq9uyqx15T~2dIHJOMTqixA^@= z9wCX-DC|@7L24(bm>VCLc+~+MbE4qFgOT%X}}-`iq@03L(so`sVPu($Mz6CTB4R zYaM&Tqe$;I@#pWg0{@+bl}?=dXJSTgG0$N{O2t+$b(|q;GqA@Mfy8d1B^KhmrERsG zLT2-6JI!N}NhdXg{M<$D(+%jNP{=3pS4L&3NUfnt?dWT)J?5LkxV^}B-nGC?y~fcd z<`6sug#FKj?+tBPYWzbax+*oA6QY;8al51i zci;5%$-8_X`f2gPo{Y6kjG<~Y9*_T>Q%z=UdM3Uo@lgGv?>_CPGO8c{P;}QJ(zo$0 z!%P;v-Dt4To6?CMA;&mfz;iWT@S|QVe2bV{WbC?u7#l>MeOYO>bKsCHwQT+9(XuzV?Mr zmRM#uR7lfmg?Oh-s=A4p)iYYXA09Z$Vi#L(ob>y8NYOe!J4Qa{VGdtiLLYu5SO3Ebj}E zZwdV@!l?%>Cd6}|98H^?&SxS|EO8^}-P9t;su}dTeLN{3oV937ck)z_WuJWL9YRC~ zgqOW&T)cynNwF6XZec8L+Z*?O6}z^(x7Gw6Y#)Of;ND7nqn3hgX$V3IhaR=%pO562 zjB!nlK^HX1Baa0cAHK3fl3oR_-H7Nf%1UT*!x!o7zTw~W_lx&z{oN*+S~}ueMI>H! zT@~$Q<-1jO2;*6Gsdl10PrC=ahnZw;l3lEIgpjH|XJ%2YJW=u?q%@vRg8jPqeQpL@ zBy2#DQ zJY}q?<&0VsbO^V~uU+8P34Z%%s=4DNHS=MC>!GR1xIyCTwh+E6RVN%HMHp<>i?amk z0oIe6Sp>h$RMi|MpH%Ary@>@$v;}$IC7%LZFL>l>nQNw}&Jo__CM%=vd}|EL4yi&Z zFI{54Es%FR`9X`S;gClb=E!>QAna7d?I^*F&WRw~7a@aB*6wLW5{$XMoI^IjR+bqh z6i%sgqnTud9XwHLTi1S!r7`^X=I%;e#sf2|;>IT}B{q*0KHw*BDdCI!9hgs+BHM}l z%4sbwHQhQ_V8^5L>d$rVi$B!Dx1LCH>OYi9gES>%Xx7nk16j+>Y{uqPC{yI~gxnHE zh~{%$O(nrf!hZiVSvT%;sO#|QMi7??p$OX5 zFeG`Td6c?t)yZBa!I&fC_mq=L8C%-`H^-W1T9-#4t#EWT1kh`0H*4oos_`q+wqw_O zx9FZ$o;14zZhtE=+t8M)Kzn6SppI872j+Mx@~lVKOGv;PCVyDSdLA?Y-j)u;8)h0+ z<(s>^5fpE!2TKlgh9pB-Pqr%&>=*mJ5GuQ?cYcBSKeJwUQ`bNbb=|{8O6e6&PyFWo zp+rlGKcz{LAssFUBRrL3xU0UrZW~Ke5_;K&LQKBbL9w?KDN!oe%}L^`)2CGqof8$g z9GOb$+ETNeh3erk!4|32=50AVigBwv{lO*$oz??DI#10CgeA;zQ9MJC{k!bqPu5Y; zlzsd~S7N*F=6&Jwn>G8-Q_xnM=eegsmy35X5!>Plt6D?}``|#sM^)scc>aK^$-$9g z|7L!8=1r;ZZpJrd;;C$DoIj4kqE(t(+{upu8$Lo5&#XrREB2iM-P5ARWFu(4)~Mue z0_$C}Bk(j-Zi-_4FXdXlz$)FcIl57a&1(mFK?Za*iNi2uu`-qU2$pjxYXCsmn9eKv z04Y67PLg2XEW``=0C(Q*BHB1G$a~AZ-#okLP1uYf>{v-6aP{^xFGVoXvTcD7ETOO_ ze?NZ1uq)7$=_~h7CnjOjSK16H%5A|9bxn}9?Gon$o=0Ig)Q7n$QwEC{`j&Wfbgl0($Vr$7 zr27Lv+dQ;BxdUWs7!_4^t)02fu7E}Pa%0KSK`Lqh%?6uWh!Z`|6DN!X@+c1H=~)22 zY{=KxR;&qu?#<~>`=TZ8rB0uS&s_~ulWdm+WW&tmpRzgIDI}1(l^d$~L=WZHal#p^ zU#`gL=eL3 zHbGJIVkJ%S2v)LKrj8s@dSBDV++i&v5?UW7i>v;i&;VL^B2w%^3Kuqpbs?20bkUV3 zxcwa6j?P4D~WKqLc7viB&_#UN6eRJJPPLR3?yOGbXi8<46;2CQ($Np{0 z`^DYlF|$dO34Aybd6(&gscswklKHK41+*gY6_`N3UuVfyqM>2VzFd~J2Pv5POF;7( zK_>reA!5|^&bX(#hD4BJ^M#$Q_Z?|Gb3{oWVZDD0d%`KBU>|(pHWF^UO@O!I6a4W4 zkJ6;1j9iCm%iby(ufR=Q2);0e79!19U|;mqr0}Q~hCI!^zi&ZkbesqR_Lo#Rn$e@0 zn(hJz#~+&?*UxfJt6FJ|?J`GTH|)@khNrBKbKCP#70;{Fva*Xijag6N;?*D-Wny2G z+x>D}EQ>oM`fI~Y%UF?N!TZNM-fjBALy#YW2M1`bMxB=SoKhBi5bt+Cx|!UQC=Ok3 z_-#vB(4K?mB{V9gbdbD9YStFyEj?(`aPCs|C34g<&kV+snFnZF5_a|iSmYj0(VF;2 zKoXKbGI8y@iiU=sf%?ZA_?={MAk_I!ptt(PG7|3A<5|R)X?n*ml43quE>Hf}Yn)aF z(bnES;HuYEGnU#k5QCO9_{@BlN2qo|`Jjf(&ejzpMD33!F%VjDJ%KVCCo>{Vjlo}e zP5->x^@fNmVxklptiUB7#Sgk(A$%l2w%b@YqiN`Ujt(__kqLjIf>U)RtR?wC=y|U5 z`kY;YJ%gl2GPO>ru4Ut7Y|H9xaZ18)&l$r)yM1;^6O-|@Zcd8kSBquIKTMsHsZPZ&b{i#7T{ znicH>6ic1ODxEEk)srelZ&peG;dw3e;{wGXKxs~j0qzf#IiM`LK4+AxUTOPKMf}cj zPkBgO4ry*~?0>5~g;1$n_X#(IXOoOSA;u;9z<4j+TZXq!$zT4(NB7+H*_@ zb4sF%ii&>doE67uIIq?zatZn!eTm!38~);|#rC)TXtpgaoogu9mdEeTIhgV4>lM^&Q-nvTi_}KC(3yBCsa?`JxkmAyeJ0sT|3jr+~tJLzU zmhF={m4cjRp6)_{UUJSUu?!c!@VecAGa7OBAe(Ct2Eqo;2#fAp=IMoPn!kNBN|Lp5 z0%mG#h{GySDgUurw8i@ZqQS8r3$&pN|A&Gepi&tCoIx-PmNoiBZro~vD}}D!RsRg9 z7bAUZvFuG?GUvQGiM%_!IPNas1(Eq^_Nzcv^?I4)NZydB)xY==D`$p}`f|Rell6JL z5MS_|{D>9+(@of!c52A}1jW{2`b?tD8@WnIi~@ks2E8tD=cL{@JSvz}c)mS@2%eAH zuVfj61J$NmM8ZVf`sCg{bxA$%ws6^l91)YmFx`RkrAeKOv(i$VE_{uF=e>D7a8+lI0v=afW-ROQH z3Qy|F@A`*A4T+cV{b5@`4$G|BdLq1fl@VH=;EX>;B8ynDPLf^n}acyb700g z-L{tcl|6LN``tucw_&HHT~&QdRz@b@{a%7)&HfGCdixIAUbULp=M`_}lLfLp-RzPy zs@hS8eUS+@LHW(QezkZLs@mE1Hy5`Qf}m4?ZvjA!b7H=#+(7Y%N%kVX7UJhs!cF1k zLN}Ha$C`ch@xu|^XaNXJKE5@FCvj?wzH6m8D>;BbKmJkcN4HTWR)0~!PNh{!ng zI5b&sNfI&mOewop=k_C3R0P^t{x{ef6yE9`Q{N#s3Dxp$BGqlYl6Jn0*STVf`)Kk0 zCDGMuOzNxt0CgB+cQu@7kTNU$#90nZlMqX3EcYEdzNiUR8NZa8$XK{%BbruxF2Hu{ zRA#VuIij)gp(K5JjBAz2b&y{`fDi)(CDr~G@0hcc^H;_v2-S^)*spuDbVsJSg~9Tf z{j&R8!^E7y3Gx%+#`3+Yv$GtpVEp7~)CY9f2J%0+7ZO9uQZv_Xyp4sB^hEy}Chnbz z#zXGq2+s&TQrJ!cfHn(zHc)*8KEi}zw|Ge8p;!&SwYf(W@uJo~Ig^XT%8DtX}a z_gaf8W_AbHXd|$wo#-y$LL}6Oq5SZ%C}JCN>$uXqs;H~k`gg`Rk8y8#PP3Pn{pw=e z^L11|zyXvc(#Li?E@Ix%znAaVM2W8MfLlwXQS{n(*jY&~J=Tb6!e}H+%`jK4ZGr2< z1j5Xdh*Hj;bVCE9Uf+Aunh(T@;@i|+MjK08Y@YqQ#6HKp(I5_oqTeesK3QXH?Ji03 z^5r5T5RXVsEAva$-ofND9KsooTa7^d}F;ev?@OWv@CIpEfD0p@z1q1+@m=27!+}nzY|IFswdfAV@w5P zL^v28fTce z-s6@*oN1bKb@&yvLP=FHltk!wBj5#mBm#}n!+Yg!m~tG>J{~`$Hbf zTi@m?NfO32`b;n_((p=sz}@`z?cf8C%i^0!|4$6fFGW*HTm1QGrpm#Xzbq+&kGa~618rj4O^h|s@&k%W7Uh(gv zi}j&kZ4*EVi5~U~!$jjG3N2hv{HEF*7J&@C(dWMs7JJi#krjE#TgB7)7jx8e!n1{V zf_&S%H=raUSO^v7q++DhHT_f4fRat`yhH+JAsx>wkdduDs$9YyS$BChJ#)#~-ciJ9}lAY(JdN#~lR+wJGvcK#KB2Ks+v5izo$Qvz4N28twmg3_+ z(jfIN>ZHAzUc}*AtO>`#{8e$Sl*F;xW;)cGuMOTxITL+;2;T_+eg0UT<$V0@lCeaB z*nJz?IVVfyr#1C)oO?;!%z+nzl<~X9aExBY&|*9(_Tf~sa&?Uucjps8c+L(FE&W{M z-SX@t@b822UCij(K|pIg2iZu7&yu06-_*WaX&&t>k@YpKxjOT1;ZTozefEn#y!v@4 zBIWx1@_(tD>8EA=HV#8+;VkEl8tTp7*u_T;0V{h#YyAvapPCR=0Eni`=FqO4l?eZ;$X$gyCxGSKstU=?nk6#2F*zdxzgK5$UVY-c)!0d^|NJmVP<=xg6_*N%nm^g ztdJ894a%<6#pH+#Nu=l|iO6PVv}H3_)EAHHhQC+Ym3i8Adv-}^$_;`Pr{uXEe=%&p zH=(>pC(#u{vCbKjpGewz$V8VoDHx*?`nTRwt^sR#Nd~l=g3y{n?sMFehBg@Zp|0_1 z7EtLih}UXUqLBoGjEVy{oZE`Du(v<4oUczIq1GP*g^Q8>SJW7?BLP*?Y(_OsY8uDq z=Bs(}Ztm9&&C1<&G`tb44O8T3la^h(P#a!tS8$)C}lrn_r3TQs|IIzsuV z&f3wb;3zecgCQkCAG$`nWvSH@=Qt<};mVZytLc?$U=@qdJaT|Sp7G?|(?|Bf)bQ-E zN#Y;iONS4??ZwmT*a=b~_{<+!3VziptAvU*WGb|nbS@J;L_XNj`nMLpviyCV{H!=% zZog|e-g>(dL7j~h?-|ZHhJX(Myo_FfGn*R{!9xkaLZcSN0+4}MjV#Oe zBYU|xnl)5^*oUWOgh6h4n4@KFAIkGurJ($_aM=p)`K-IGLnKjpyH{3LfBwVdr4f`> zD@*1Wrem9i9_Xe}xN z0Xf!biHid5)$Ok)r(s=aZ$r zO4BQ3hYxaSSDf_|i#)%V!Q};qnXhMeyt7LDi!Cp96sbj#Pfr|8Dy2MKt<)BHN=%Mw zgPE*oFqbtnJqoZlEM z@(Fr1Di97O;0rakTCpr^?s;L@gy0`KAGkN^=xw7T6^fmJ$`Vc_{hBsAjR~g9gY4BG z((|GtB)&Jm~XlUJEvY!1*NOOxrFrzWk>FyQrwVP$BG$_GK!%e02)Mu&X34K;Is23 zICjzf#QR{&lV?n!GV}?SMjm5tN`)=Wrooa^ox|5%ai7!D)`nmV1111cxRo=R&F&9L#p1( z-n#86AErJlMi&c+P7+mmuRrr3_dCMTq)Z=jA1$5XY1U&*`+hAnQatpuO-i6t7EVj? z=xk!0W?koU@}W6?g`yX%{oAjVow@u8m(`h7GA@{Vj~_=|zmD$6=8Lw5z3mu>)+7Ky za)hb~fP2exIx4bNc`;-UOIz_j7%1ajZ@iC-S)sW8Hl>M3@leEj_96U=2X`Dc$q{{D zE%H(%%mi0jneWKAG5D-o7}-0mW&WgY!qKwA3Wckry!CLQbHw0?xZoWhLn-aevMC?b zJ6?+encFk(muh+{kx}(;UTB5!DfTQ4r5rrk`*X~9naP}UVIue_)i!~0JnPTv`beF| zA+`=BQMsDDh-!&f6FnO1X*H^A>zmw@`QySC&d6Bz~$nhO>Tp9grMTZkoE;jbfriG z7rKT5xRg@zdyRApK1%`)IX7yKJ0hgPqh%j$e=+METaXLq;;K3<(-x{32y#4_p1)rJ zQ+sI}xTj2w(GE6fmJMcWK^H(tZpxKwsfQ~!$5D{Qz&%4=oi((89z5aPa}dooIClx) zp{zmrsi{@b@}$-`_)o4?Cd|2|=3!w7>eJ}3zAWpHl`};x!KrP&j&Iy-E@PaKleMsN z$Ml3@4PraGoN#x$WK9$Rhu;$5IqV=r2k4T<%4OWt`9zq_Su1J|fxHXfJ694;>oCyl zx3&!Zm@qJZKQPlfedx&ys=ST!_H!e60#Y6tzU#z0aE__1K$FYKA886Ed%@@wxUl^3 ztbK_LQpD@kacR0o6LkZI=czrb4*RJaR@3~U?r^?~giRS=`u7uh{;jlVn7Z*GBr@jx zKoz^s@PVMa1o&QP8kNGYcl&pw zv##2f?rq+smex@uduo-G_7J_ZeXa}U>WZUI^4Th`Y?~w9<>O)&&TBSHH{pU;Q5VDj zL#@MgY(Y%>Co27Co-{R$OX5TUrnEHbEsUbNxLiBPt!UHQ3wQ*=D~%mi7+9^*3QONA z8LgOpV%u9{3C+T8va5FfI|>VovH6*y(m>Car^*`TtKZ~n$pS+;s~3nvd7U@F2ot^h z+OGrZw)yp7R=*I!kmpR}=)+KJ+gl$u0I=LcLr}<1bm#SL_U*mVxBdh`%QbaV?Wk~if6XXV~f_V&Uooh7(sK3 z@Nyj5-8f^zB2rdZ(C^pLPNa*pfco(5*@kxsRPEte0?VmPt|B!FBQn>^3${K%7c|>B zaTo3i3&D>_UZJI4k@Gx};?2eZJLCIQ;=-^+b|tYRluHpjSd+o!LOAm?a7#DI+1F$F zXAUlo@2uo24zM>)*$x*%o@9owX46FQveQ5r=f=L9ni+e8;tum71A*B+eINzrEMk>PvAO?1+24S9Kj&lW+JXG@VEG4>38cVgCF?nhL#Gy8l>oAx*ExN*PI zu?%AL3;QD^bD;G8&`{aq_-^>pt?(rquP=`!Y`ZCV$fXHOSN~y>6*qZ=$QFPRgu7wF zYZ!6iF^)XDi@Me`4@{AoR^P=hDQzfEJ>;#5+%K0G7-7Tr0nOu-K4~a64=}V)uVmT( z))g}JCQaD1fA5jm<6p}YbK{R|eRbFra{IoY!*L|HA@<^jir>oyB9)#9h@ zcG=!vV76S9!Ew8equga@W9zYnhaf1Xdm)w(|2>}+&aA5@7?gkLFaO&a$3PmTE55qK z-&7rVS+o)YfD_yrI3d4qa9wx)cvQ84Iv-D^yUeu)uMHNaWGs7Ji!y{F6*)+A-Twmw zw%b0DKQql)TuKMKerTLU!bGJDebj`)AzCW(_$s>iV`TlB!jyYlsUTgZzRj|^Y%4js zUJRh(;W_8cdd*BvGrv8NGLdHe7eXiaHZoCpqpuwO%0C#kjTaT6qI{PGN7a~vM}vXe zXDqw={;};cf~MO{-~k4#5LbZ_yHDIb=2E;Wj)QIiS?*P;oeR|Ys-cGBA^KnOB}FuF z(yu+UwKN9iO3||l7V^J~zvI5EO6w&>zT}DH^0;Ane>iQp%16}5Oc|kk38$5I#anqL z5L9a?a^Gwt!?A8MV5zZ{mXe)0Z5%!)5~SK}ti}Bv`^z%Rr1S43=BfTh9Fn#2CM3X* zFm#SxdYR^j7>1X40wQHtvF)=kT$kj&CN3l>zWXrwdaaq1HXTLOY zw;6RR#i#FM9!ggT^*)Pa6Qo$(wH0bjR-4vC@XTlKO}xf_Nm#Rv-}jIRh@+4FO^eMy zAY_>1_uUd^vft<5VBeeR{}$X7WxZ{WG1N)0f^c<0q-nf5wSZv6hkos4x)JxuBj4aM zv|6}pOLxisyh_PHJClYaMOqU0m$ncev0xqNi#i|OKE+7m?_O*K8Kq@hV!_$esi6lFWu6~f?ov> z{uuOj)7%9vS6tK_c51Q8@jL-7U#1L6Jg&}rdDhrws|2yk?g-y!Me%B{E{_`U_+6yF zeZ8CZ)7$FI4CAO+$I|p5-bOi`4eS!sKO8G=J$G4qZf%%{Qua@>pL8ZuMvT>O$migy&w8+eNH5$imjBVM|-MS4k&V0~X_aPeM%-49s5V$@FN>$rPO^3k^|_ zPhfZGYmv`brTCV7y6pa5N|cf1pGo9D)#ZMy&mI?P5yIF9WaynFx~p2+{gm=B=8p^o zn!h})v}HlpR1af_iJ(0|mYN@-j{)q>X6{>SC`fu~KdB1Y>_SgfUMN^al3^kNH)%=)!@Yb~I=s`LmwxV+NdV*RgL0Tcdb}(h?&u#3he4PU?;T?J2qtkHg=a@o4M^8*6;t}u;^T2hEXbe$KY+u z88Cfmg_tjVH?%KMY9(O=ch?`cQ{-73R^c~NHkryVF1#~Sag{(O@rA0sLIlc7@}oL? zv=)ORRU&lQN;L%4srU(+SeMqmx|R1lzuLjI%IO6=S)kD_{61f?tLm8B^0vUGpzMO4+<4HogWgFkFADI&yn37d9JOBhTsW1i~gRtUEvT zZ7!#CeerNTX5(veS>kF>D6r6=BF0^%#{1#xJl_G@s6NHpoFMA$x~TMHIvmoxc=mXr znm}n`Ez2GwPH19`T*+tF_P`%Rxi*aR$2NuM{E{lQ3gQpBS(yq0<@;(8w0F#rPML>_ z{En(TCtMsfb+dQzTlom{$HEGZ_|#>c=2V;NuGN&c^wUg9zYdwFhmsaqp7NE=?f`>2 z4jV2X2P)gwoqH0w(|-^kc32I48W?1^5p4q?q;WlcNO%}Fo2`i_ku90TQxP9{qAjem(CDTCvyar0cm0?f9n?b_$6(GSvuDHj-Tz`(SYcsijJWX7RIv?MLL zb~@D*ovNuw+eb>9KX!%rvyTg#DZzKb$TO;vD7BwkOg#9U93S5p#4y+gL~;uqmDEK} zuYDjg8|OYs_#G5YkB0V&kh$e6B_z=26`Mzibj9?QJZIuh$cv-lC_$>gF@8pKi*M2H zeOs<^a9#x+3zeV#v&Mqi!n1ez>iBXrh+VfFBjk%o)FbNkh9v)%MQe_H+Gdek{EOZW zTv{fo2;E=Ml!1S)P*ry|cW#joHI@(uv?NQW;5V+r+4RcMF^hu0ATOnt<7a99+^WF> zbyMcp;^%ph$RmSYgDPG}TW$OKKUbH^{P@~`P{ZR?f@1&d)gE^Dvj-N<$`*yv`l9IT zl{c0+peybED&0LbNav`q&l1YE`{J**KQ-M7zYW(Y6CEhE<90Ri-SkE7Aj=*45Ru0X zc&P`UF1r#yiZBg(J4Mh=b(rp@*SB#Gl~!|i{Mz}FUaTL&xEN#gjj(7RB35J9b*inu zPBld2e1)oiR94He*&3lEAjkYwz1FdS{h(tzn13sD1eWE(3>`s2;}Oq%xKT?Kk-NC$ z{DSAcCNkZsFEH3dXc6REh_6u2E#7$YeR!W3#Dey>vhxlZIY-LzmTP-=(HfZY?XC^H z=S%7ymmgIemPOVzX6>mfd0#0zvzNrTjbHBALjK~YzG2qvNQ~^w)(vphzf0eIKfLa- zsTHpQ+QYxU;aWDREhcL8)KX}zqOiePC=D|3D!^84Hej*F4hF|x-*(d`I#&}HEf#HC^=2#x~J}PUYt&p*XouB zo;8L?_5=`6T}Ufsm!X6dp#9a8`u6i7`IFfBfW)4nwL@A|t-N*^BOV$$)y%5?=AIZ~ zzU@kJ8T{T!A7{EKUry86epN}CILRKn-YZQ>Qr7-h0Y+nMZ51p=!*PLB{%t*Sk8I&{dl`iHI0Y_=du&V8nvYr zo+1N9QpLbXamjFnjt1h2RFJ*9BjHQ-A9;+zR-eJr{){w>>{Dn%bWJSI7ZP6ltrl;Y z%Bs_EngtV_5`khG%8utcYI?}gx}`?&IO)m~q7bX^TZtkmrc zW2?C#-N92r0`>A=%So}m%G+w}KfK(FLb8bq`iXs~h3LD72u_vq>vj0PUXnqYB8Hwd z`2YR`l*IgxFlgGHj-JQo!?d8g!B>q->JG5bee|ujybM&^Z1$|TEczc{%%b`)+0sxS ze`wG~>F-(Y(8SYlROeV^owIEZkrQjrMFWC4l`Vdte(?jxs!4bq7Wra_#2+f`!vP!Z z!gkd(d@{Nbg8l1CA}u5>3%(Urj_FF?h}lxHTU=NSJ-1HotScM(i5Y+UM2EO+G~k2r zk4N>$Y4&6nhI+UJ^aSJQBEI)#Z!&rP?Y%(FF(M8VtAEROta4oAOQG(ye%=xp<_0f=V<;WY+vbH7Mqcq(U@Rt7PH`W zLj#xtC-8xtEhT8c&}&8b30F~#B;_D?ci1j0a1{{zD@#2Of4E%{GNW#)xw zeyc6V(>xYe|3oW9WV#L$8j`_bY))f8c3`tsZ8h(ew7xvL2~{jG^>gCI=d!e17GG|A zYv1k(T`%-&&M1o8Ypo|fnhmZ`crbl3{zd`IwW)HFO0d3trGJp>tbD1Zxawp^iD0Ch zu~ordG1`7u7}dCkp*!5HCkiX$5rMLN21W`@w185Q?y`FO4Y5(ZuMC%XLASIG%9v}i zU_oh0@WKER3Jr8-5J=CB6y^9rQJj2S231^Rfr<1uTeS1pzU-iAcB8C|CI z<~!HCfpmBY3b5RTrkN5ir+$o*&eS7lLb?k49sLexfW8HSKXj}~5|L?ffpe?sVehPv zfijaGdnNtG3j|$xNWJ~58$qh2N{6wll!C);H%g@;fWMLDQex_=xy^e+(U5UGQLp}X zD(Gd-0Og(&T02`g*v`$pesEUZ?DI5hhONsD^!%o8|5eM>(q_LX#{qO7Q`h{sAYUYC zE^Zc+A1|$ToH3X`BjJVh%|t-HbTvnWY0QBQT5npHh(}E)HSWMR38ub{gCwxS_+#l7)hxwnF| z)OrT(^(#Kq6*a`p%NK(5cU~Z8`;ES3R;F!{AUq@_K62@0()0?Tx2;t|S?9iUN8@cA z3H^=xr47b$t3qoqk*{Aix?bMbbBq*8GRF+6QNfmvW_$oueH!Rley}+??`mvbn9poN z{^0LvCC#r#(mEl`z0vZd8l8s{f#9^v^p%6uk_x7(`NKSBtuLd0c!$edlM~rlpt$ZE zCzR*dXEq-Mcv{|B=f#^PL?8n&B{FK<&6rGqpGbb0*E&NQtfpIAvP^Ej=h-^Dl^L5z zou9iss;(%1fl{EI@G>fsdrjH(YCDu2sax*xm0#j34o9piWV?OD@iQqq{*Ar3cSae@ zQAZ->PAXgaMKq$38>&3+z>zg~>ORczD+Z_yLjSX)>7uGz!H7e$Us_o@dax}wGh3IE zC}iO-J*pwbwM>)M044E+sO2Uwn#U|7@!r zbGtJNOr2z1DTTU{|G*N^HxwQHRQe*Ea{f6zp#W)vrkWU(_-sQ31LDQqZs+#4vA2&l zBH|KjkSuJq79VNI0ZTDt$q0A$aX))L2`*WCT)-5M#`(MZDpD6fP!v)Jp^T}wwP;qt#fHXA2d8UCPdM7qHo$nVi5`+f+Ba2XVwZy*F z>J74x)xHpKfkM!!(uywi4@ShFM9{LJ$a<0Om8UteW7U|{zMcst9#?8b6)iVMDY2~# zOdC14k`I}jWg!!@Oy1id`w1EUY-VT0?g>^IC6w;MyTYyb?GADiT!QjzozYq>Bt062WwL$=`97R42g9k`qjw*=fy!j*old+$%UEMO_g`gADJaF7T`YL*1c4Gz-I!k+3 zcnmWfeH2&BF71>4FpL878$a?y{3TqByC9EWXAx^eMZe1teTB&dQzmpgWz;J(=ksn? zyDyx2U|~M58dH27O_hb;2zif=x0S|bx^fdFsXYFM4)Z~Tz~g>w{`N<&fH}@wOlZUS z{Reyj;R_8{%bQm$gPyx!s0kH%9|06UvaNW)WON?RwW^WO{ANlDd^N6bP zh5A@recG1uWVOnV%iu8W(b=}EF?Agc#QsG^=I9OOyOKtP)Z>60q4ImYS1eyV;Iw3H zlP$P}&S^1`%Lijsnk>X;VA~L$!rQ#7EL#s}Tvklw8n?xMJt@b?6N;02Hi*?{)MPJ2 zqv-&@tU?aI_Yu~fG^U!y#4(ziuT7LM)?FYgeqBbvBdBZj{> z$^nKrT!q(CQ9@Z?#kB2`2V+h!xsKOxUeX$B9N*rDyCT(JWt%NwQ1Pk7V~BQF2aH{< zC{Y7b@bwM-!j6_29Rqu$R0h<6ZqJZ5#)43N{sl0C0@md}z#E(^efB)|uC+-?lf%2- zd968%Rbs~i)7Un37LgPe+aPRDcxA;8WHrOO8J|CTL)U`ar*ISmbeEQbV^qH8YSz-; z1Z)S9OakSO1h9v_{pq^`lH6QJhPY!cSC7anCyTQB6W%Opk}&rm0co+e9S{j_t3`0r z#f49}ET_%2v8!5+4$`(v4%SHj%xEbR%TWUxv=)?Y@F`d1SeF>$3N;&>n`ZGKO?=3W zLi{uN&Gg^c;|U_V&qS*+DyN3MQ-@Ko!yYQOJH?Mh6Y~H8{D><+Hxz$js9`O`YI}W8|-u zlGQ;x)3cx3H%X*$;}#lF<$9-xbV78o`kl(QyJq0HF!tg_LMg^F?g8D zq>)OoA}e^!e|2n1e7MWM}KX3IKPy?^P2TRE?a}Gce4_`@SjQL+)ezk2$eP& zzsxE0mDXEuy)d|1*SyGwU`OPG$t&#EdGh`G7*Yk7*74P`} zn|O6 zIWp1+-=fk^b1CF6ZME6{E2Lepu1;tI%^Nmq{Aqyw!C|v~bgc*zilW=_293Bra_ifd ztHG0eBK(8@0PV`NdP%a9xGR%Jza!}YI|N*ZT_~;-U<|V%xTz z5LlZqOdcq<)!zS!A7p#6m}75m%TM{$5i%$LALT@4e?fg@nIw+`Z{Jj zC=qnclRS}0XHPYJwcAf^Xm=X+sm1d8F@z&V!C0X1fj-M|LPslbvT&C5ge_}U0N0Kn zi_>Z-rZ0M7HJABU@8R4etUn4OH7Ft`Yb!JxX5=7xvK@CQFL=!u^`~?hLfIf!HLcJ` z^3LN_aiXIyK4nmD*r|2-zU(aF@`B~Az95a7663ci-j+T+58&k2h zDz)Wjx){lnpP|_=7v#PM!I9KT*O#f9mT-QbEWi;|kBm=UZ|Yw+5bWRlE991@Qp_QB zH)RTy+mj@g;oATjul1X+KX?)6ONDpULT;G{7(sGq2OO~iuGJmw^eWFR0cs(H-^*d& zZJu8i4SxxUR(C#=c0V)xxEai5dHpeWxuSic+H_53*~>h~@b$Uk0R(dSP%MG^$#vGk zv{6^UyEZc9p94>xEZjW9T3gD3F*BCVWSeDyTq+1MN_{Dmf@DC=>c)zlFQ0IQIKI{8 zg@4vi72>VRY^-qPZ7AdS*4L+0Z|pQOV;I~1B{X64!JE%^jkur;JCuaOz^cE+IzgVB zb>*(|gY2sM+k||Yb==?s<}h19jg$-lCcdiQO_&V08sFcXP8ZFd<*dpOP}obhW_CJAFQ56J%(`r({%Eli9SLTK<0Q9N_Na~A0&_(aNp#gH>D8C$k|Rus z$X)nxrOzZk7{P!zj&Pg1`K|?;cBwT>pCeEB45s79~~AGrYR8RczCL9bJdfMl>{bb_oxb| zvBjW!_9BXZeQ1>V_=n5|V|Ii(mWE9j+u?X7r?>p$0!lMApZX4a7UF5btom6Q)2w3P zZWu60jjEUA=TPYJJMl8d88SMAN~001XyQ-2!Z$-%UjWa2>lxx2bE)ize|p~>%d{am zmXXmrX5AxCw_9$PQ<36|;p{sm+e#tF!M|q0Tgy*$Z+{}@xD#I4$MVn%enrw%Kg&!# z?=HBb$Jie%+UR$eL1gP5sww@=KyDda7W_23l&@q)Mf~P**6rYz%sYUck_{cGT->IT zj(5aWhoi8UnLDwCQXc>#H=VDv12)kRJv#Vjt3Yen;T$dl3bG1f3_j)ElqJ=reV1#_ za)O;RnR7I-#jR9bv5u&Kd~3mi@3}@cmQj`x&G+408k%PW;>(+}8>z;z46fh4qkMlS z6jtft-!DEXk|6?npE*X$99<4Z9CxcmUgyetNfQ|h?Be$IcwtcG)#OcPL0`u$HMVy2 zrtd*bquLfuakxa}^|ygHWMRr%+<%wgv`%YA13y%u9=lY(JFbN`Opl=fS)OkgMefw} zwJ%nnz|cJh6y|sQSK#8tSbb^L&mf~H1=HcEbGuvQN01rsK2O6+{y)HvteGAar4a(C zWv@Nf(Y&=c*wq9JzL#EMz7*MbcA|UaaD=thJd-NJS!gA!KLf2AFAg>Pf8z3>uf!|c zbV8ax+ex82cZy8RX6(hiBE)Q`s@Uw0gD;W{{obC&`hJlA2N*2Vfbnfn3n=ae=HBH1 zA0ISs_`~PEb#{~u_v}>f(Hf9j`~ysoJ-_{QbwoBJY~vraMj>&nznIeje=Cnn7s|8L z45OiSEm2pL&rh-kjLs-3$Qu{MHr>O>d|6(>@fJs2sGd zHMYe_VM+f0F|!FiWS2x}QRTRg?Qqzh^}R_^8^YKcD4_CrIdo&o%lL;8ou%l2)rCq}in=lqkMIgc9v69gBb z2s4yf;uPVY$td=jO4E`r%PDpol$5_jW(g#v;V2^~`J(M`X%_*BcKvaV+2N!cnuo%W-_DE-_YK%En%w{`2y}d|SRf z`uH$wo1fui^G$b**bVNOd_UvnwE=Mb0eGS|^5=}M{`Go41Lju%hU@W0O3!H*EA zQT>M3x90xGOOEUIxq{!C)tz{&Unm?<#Yd%-&?|r_NH|s6s z8vQp}-(ZSccmzD3!6yd)wHN(1gK#ViFROk}nsZ~8bajK%_5TgLMZV)Es(XUu?7)Cq zZ*7bAAph&-nY2x%b`{pv+M%auxWW6ocsaMX0x{r2e!+!rmD4yOd?XRnzx^mIE)8+~ zFL1~fVTK~@4}%LE_YrpMW<1>A;2}G>w}`4DS$_C20tECASN;KJWc^`tz7m$jONSdj z#Muz4~<;k1YIS|PK#_DGCWS5^fy8hcAB0Q!38`V$U4duwd9YgD( zP9FFdH&}*s!7-qlpm>(U6Maq9?!QC-_(!HN1u|MZU!t#{;4}={Rbh)Xgj=cpKPzPa zSy|WsMQO3&d3hqfX2?Tc#eZW4x3)B* z7YjkNLj}tyf_?SF!WK?K`nAeJb)bUwNa|RX;CDV*7!8)E@6_5x-myCIM8Ar+3qr!L z8GDJF%O``;pu2l8Cyn$g}>y5Ng|D z|8^x=(!s)u!E&dJdT9kZ^r;8nT~MIMp*~Ij69Ff@;G}SF(r?NWRR%`pQ5FLEHOUX^ zTODGZv1S<{GpD0}!0~JjrJOt4 zXWLQ!2^I@P=EWcMCp>!Q+0>T+Nw{1Twxh1Ro0Pe&(yM->%+S~R zF=cM~2_g|u2W^*((<)R>sZU9O=s?$w(q!#T_;b@66Oj)MHaE{dEFb=fu#=nMD4CT0 zpv&);4KAjT02BTgLW=dgrEZv<6%d_p-nzU>4Zpq0A&vbkIM)y##TMgJif>EiLOb|Y z)BErB2M<#VDzmI@fLbAR$jwWQY5Nmeqtp97+ac2QYR>z_#^sM|{RzQsl4IZ4t}dj` zihf(A_arX$t-O68XtSJeL`C@d-7MM{Off5{Cdh7!MAi}O;N`4AR4Lc|)MHj?;QG$_ z{tW>EX>-YM*>ME9|=qE2{w{WqkH06*u9l1*?dEVzj*G z))i6Q>~=0}K3io{B}7%DQ}>EJiymt-{>oTzo)F0)K2!QdpR*`*6jJ|p0Q|LTP_#Sy zgm=HWJH{KG} zCG@^k?Sb^3zRz~Ze>GB#{|z_d9;q8VaZuPGO&0*-xCU>>5`aLaa11U=RA? zPdINvskZKFVz|*7(0y(wG@#n}<}v@I`IE>+Ne4lUw>b&)x(_2}1;oSEK3`DrBc7kf zR6q1{Iu&p%hj1kah(i>`Ko~g2kL$u==kWW-{oqr;esmV={Yk`kJK^&WU|8&M+L`y^;ni}NST6T2Mfd&%^WWTyMxs!tGLsnN zQcp!Kvnj>`73+=Uq3(EkLS~+62Bhs8Ya2x?Ou#MLRJf??n}&T2EZasFJo_B;(kS|$ zC>b^eqP3f4LeRaUkFTMb-->AUAb!xx`AH_rn00l`@vUCd%Y4%7kqF25_EGa`z1j~jby|K4DZImY-vBdSbZ8>0DPK7bY-4J?V{R)v3X-8+OX(Wkzh;V)5 z7~_>stV%$=u{7uHHMg9MeSFNmRX63|+v?6%Vd*qQsh>M>Ozc^?rjg%OSNgsWZ}2%k zQzBu^9&ER_ntpM6;*S;BiJjA^iqDJXG+s9P8cF%dnl^_W3#IGIXTeQVt0x6t+JPNBgXTVyHy=B?+Y4j zFLPzWBcwR-!wxb+{=M~#vz~8uC$F>AI#WMMb)$~M73AKpFo-HFD3lz1GcC9LQ&H~E zwG&A)md+=5qo%_q$eI^6q5X-uuj;Kiog2S(eQ|c8D<8rJL zKWJvdHSg_?52;CIRLS#_;4u!ce)?1aEzqlhN*2s6%}{D47>_|uU>2z@W1qsE+wQ#` zH(#n#ir&oj#mO;;p%!aKEoRxxe&Qty@I;2#OhcvdUUT`p{uk~mVJRy9_RC*J$L@l< zSP|az1@AzopWAUdMEdVxIfFN>BNQXMo3Y*f7#Qf*%hhRwe`tzW6^*(lO%voj?N(@! ziM=$6L$%VzK83mxr}7?8IL<9Nw?=>Om{HvG35gPD^69G~y%|eX4@_;_=2aP9>^aY& zOTGR{iB3*xtjBf?axZW|Zk?Q7u|0Zotaq#!v!a(0>-4D1Xxm%cq*?|)&>qi5rydh- zu{*t4@zX2^Eu@ZeFFlWAYV(^e<7$w4CJZmaPB15O3*E%sBKqic&g5zz977D)rH|G6 z(6BCvJQGQENy_;>mO{4*czzvg+EQ~{w~G%sEUT`LMl!eG6`WUNCtZbEWkWV zDtE-&G;vhkGmiV&MEUK+ldSVn?jF6BFkft=M^G0Ls5AI-c{h&vzGwILdPpS1YqkBo zU8jRJ843Kjs+6*`PP`MS{0<7CmUvie_i`yo&W? zB_JS3ih$(MB{0$@-J!H}*T4kl_WOI@C(e7G^T&D5ALqT!AN%4G@0-2vz1LcMt&I-$w_nA<^Lzp#mi8Z8Y-zk2;$?AG+Hu>kx6{qzkLDVkNS(C`YDyyd z{N8fqwsqRhZjQqPgWWgji4PwK?ZzgJ8kf}G8Z0EGk5NoU2|%g62P|h0Uxyyd_w*u~!ds-XY>jeu ztm?dRmBQAel2lB4y_ohSwA_w_cITWY=EsYYzMuZ;4l))wX+~Ku43m?De+Pg2MkJ@! zjU@7?PZ%+zhH5C9J}5b=9;k^=dNOGD95fKV?1ci#)+dRA?&@yDO& z&bGCDAEz{kRo+~%ch83#cUKM0CEV;iD~Pz&;C`tqu1z2Gy)JuOgMUF=@=Y}_E{B$e zhS%qn1#M5+9JkLtwC(X2f2l~u*Yr~&f=F{k)G>XH`)08NAXg@{hr&9aoBC+#M3fz=``(A*<{}NXT4ny6;`zNa^0PZD7DqQ zV!CpFDQpR}e^h1*Vw5PjHvK2(qtg$WaA=ZhV^sMXo$!~WuX9?}LEfTcx6KrVT!ZHB zeo(xTMdVP=`AoL0)X?^vq4G_L*OrD4%qh=y#Gv<&6t4s;&48J9lewzLaE^6Oh|Qk{ z6S|9v;i>1*MfHT&lFhq0Jxlg$czf>1&u4$wpMC`++FH)Ih9jiG!W|gF4Yf1j_Lf`WBZ)Jv`{0#>2u?h(0D!!i7 z=Pc7F>v{awI;u?WcK&&uQ^)p|eS(&B?N^Hq;|kL{bV)6eCt=33e!lyjTTf9{H;w;F z;JmZa_6d*_qAmg>VP7VFV8QJ?w5A@C{G6}8wP;HFLHDtcNi3MLcT?rJSHug>SButW z+ZUs*qa8fcDH?88p6hLMFEw1ub zRX`p1mnFKno{QfJCi-y!GNEib**DdY{fMu4T0%DpbdVC+tn`z=7t}dibRKCxAu?d` z2yWvMDZQQyG(u8Ib0c{=tRTJuTDh%nhxpPiRISwGeo>eBL8i#&SIdtckEB)%U`?OK z_^7-b%BT>_Eg?Ck_mECNeh%hM7E7Qc~l7Ts5bb7I4r0ZbEO!Odn5 z7jb(XzSeZRmypmB(U%GG)YWChe;NoMhd3{bFlwpu8*Z<8%lKKAC4H&0mdr-8?3``7 zl+Y);dRio8Pi4!ITTo#mn?1=%tGFgItkxyEO>bVl{bt!feevP;Y(G%p@+(l`+oO!j zZBlW=%cLclnKYd$fcH~hIeD22R(j&`=ZKa*qxlP0kKZEd5xMUvFi(a|EH3ojW;#9H zIlH#|wc=8~aW!O5>=uwFL~kiK!P*)~LtYo~gYK7ZKn0bOlpXP0>|{$62T;-ifys5GP#7XxNTyPu@f# zr_GEQW0^?0_FcB@&2r=Vy$qry*ZH1cc^}>9Xna~ZSLyvcPzl89L-o$?`aPF-H_Nn2 zLy9}1`jpyHevtxi`&FkCL^z-cPi{WZBW}2sf1Fo0CoG}IamP~H;`Cdtldxx_`R8ei zRY^MYihDoLd7YC-syMA&j-nIQf7Eo;k(WRMJ6tuV^0dH=P1lyy2MaZvNW3_bkv12QDd7^`;l{lPV9tCZ$+%qB>dF+`mJlm9zGK`d14uYMxW~)F{HE=d;rQ3~u&1uX`Mf$}J)7FStUFWh`R9WL0^hO~=TqPK zqN=NgQ_0W5m47CR)6dmhRLt_bJvSgUOIlZ;!Wk)F2t*lu9TVo z%lGeQ%53&~Ua~_JI#|V3_B)+TUG#Xpi;7yF!yNq+NQR`9p_P|!DMu&sV4dXc`0C?U zwn~|zt!l;|v&7BGmak~~GHZnOee)h=CzZwz!evv8#k@g1d9I}6g~ij6_Y>jFQ_~A|OipN%k-~Lm`EbAi{C29FXc=YHw}81Pc#wM(J+r`| z{cGV5(Q=xGt<;EV#E%bJN*cWLE!Xiw@LLEQ@U2IQOJwe$Z4-%@XS(%7Mzg#pgOc7i ziR}cr8wk_dX(IB%^0)O<`1E%(BuwtTQ8yUQVYn}oAT2H(D9O19*0$fw3IeJuo_A$2 zp>v;4`8{5;zXI)S2);_%FSEeN)IWDN*iW>P_JQr}|Ja}2Ut(xAwsE>suI}4Gn%!G$ z$5W}qczR?ZsgyECDEl?jerxesAm|4xi1%1}szc(}SgTIszTnXnDEJ6!*ozfR%7qCP zTVpGLuEa-hk#(HN5+Xb|LD`YBI%+`jHof%u2H5Bj%oNbqB5?>f6~&_1oKz$42eO+K zKa}=ax`}M!K}NS8DnQA^rG%AHoI~{;&aVwkNiz&;Q$9n*5ld0{+a!d@aM6%;ZZar< zPwSv|tXC$rb32%obS9n-z4OOw*q=B?oGmZF5U<&N-{A^mj$)Ee_P1BIX3aGZ0Hb>0xhGn9l=VNe3;xHu zZULR9Qr^r;r@Nf=+wp&wuHA`Y^ty0HA~#uxUsbK2s^B1B;!ZIVcy|D%&%OeMdnN$g zp|3zcQZMGA7EVmv$MR*iW;ms+EUfDn&FP`8D8Y310UnxGkmft+ek6|mOUmWNXCTJ| zcty*;9h>SO26XxmIc@__uXj~cIZla|qS`=!iy$1CTkZ5-YA|IH-SlXxHeYFHpxg>v zPMzo0Gbn7o!OR=R)af02UtT|9WWmz&RsA#mwg#z(c3VUGeuBjTeZTp~DH6L&Y`>k= zJ~}H=`kWl%taRbSJ^_Tu1Bt3VH~8ID^@$}rfS%3r0f8egKi025DxhN=u*HpgCpAg- zJ{TBu_C)-)ZY4ZZIdqA3ny5w!Wu;a;BnB!X76qRv9JWc$m2Mh?->9b}7U(Xo%NwuE z17X$xYQ7MfN^=EDak>IsL;Ue$0Pke1ForJdmWmM00uG%G+6}1X6^K#ZZ9T(U?e;nc zjT=xT2liW6_X>pcMja!u*Xe)`P;CK{Tuv?? zG@&XH(HRq=HTluNvA+a7BfyeB>LHMlb$?gPgranXUI59h2V8!F3_Hck^(lm~F}D-o zm?OTWoar2X;A1f!>&x^yt_0%_M_YCQ3R-{k?-b;gfEcO+hyZ#l%b+=9+&QvZR#iar zPLlc@ATe#hozfMeUv-9K0Zz6kbQ&f<629HyfZYb1Hh>L#Ynu}f_-}$lma2hT8%8vi zXV8Sav)NFT(ng`5eOmLMmQ@(`+0T>< z2%c!DOCCr7w#UK@uvN<_umyA;@W8L=9s=zZr_rTACPpS?1@{>V_(ZE{wShel(fk8< zz3=6li1>&2(UXY9&j{LnKqY)%+{xp7CHP`k_sAke=8I&YvDFA7OTT@8c|&jx<0x1ffxrg zKF+G(?%?5@ojJwPa9X(D`+?Q$h3D()0YXJ?5Rrjc-X>nqTc!c~BdOwiCdDc6;9>J^~!F|y%XF3xKJ zk@5G)*etXDH60(S5*7W-s-{%($7Z}Z1ic2#NnW>n{9(4`bDSBl5j1d@5mlVWKkp&_ z{R8QoW?)^{J!0%NSl5GifP#Vd5Al6?L4BfaX4~~lt|5F7+-*eNrRz=0EFd6Xp#Eb* zp@qu2sAu$XM&;|6HaPxnHl(s3`s{;y3?D>~#_jZicW>)HAVdDek!1KggUVO{kp%=u zIldSFF#HklV6x;UurMlZ$PB!j1E*h=Cy2e_gumOe_a&@bvI=AWZ!ER)KZFk;zg{3- zJ2AF=xP05#l|Cv2dUWr{Dr9d`5Gx!P9Wit^n0oPdt6{%I_3fjN<$aa?dp1o-KHhWu zhb0&H(N+*9#IUs*HXkT)b04wv(GPI>KFJU{0whB?aEk&N)i0~y03$&zBR>9%kq!`l z|2AqvBtJk0aY&13=Rx=5gQcw3{;nMErKNben}!g^d_a6lRs81!iT~>(0KJjtt_WU| zZ)SZ2q^19oJY>7p7Tdq~1pmbf@~^XFMp%KF*c<|mjOKU0ndAObmL zlg(H3lqka1zX!g>rS-3k>^?(P1vFdV45d)`VNrNjEeqMN1gI=^QDjzP>Jt9XQCM~V zV0m-&cVXXN{~pc2O2j`TEe)+Ih*Gu2n6|Tj2EKmTmgUU#P-{?3UD|pUj^}FW04~It zPgfw|o3cQw`(A%VFcWwN*_mnPF;NXfL;dBTQSqIrqY(59MsSah}TF4g5#}OH*v>%-S{9q0hHA~y*f_<|La!C)#Vp1yGK)VA9b!k z##MsArh`ujx&I|RmlH7}UhQve8e1}Iq}Hr@u^!{_gP*1X$A0a_oAs;~GzehEU%-qr zDSv0g-@&W@Yfn15&t4sxGIb#fyi-}cQV6HewwgP=%LhO5kp-ZDa~fCw79)&#By@78 z{~~2R_&>d<9nhb7|I?ck!wRb*=(Zcc)w=x{L9cic4*d$(8?>l27vPeangz6!y4UcZ zEvt}2aHZ2f8+sox6V-7fHzHeD;3&iBoeM$l>Od-|qQ0aIgc*!g$`RFnO!x8sopeqI zxGW~I|L2JTf%~&X=vcb7cr)r~g|u=J5cAcQ0Y6&=6NCy3$M9#G)GO>+9xYSAx%^7~ zOKMl3aq_Hx?uf|lo&Mzy`45XW=Ulp;qmcbZmkc{I#Rev#m$7-)!s)L?VXfU|^8UW^ zYV}nQ6Y8We@h=wnGKFbHV!@7*?9>lN;+DO>qR3AhEMW|jTf{F2k1zFd57u>Ns!iq~-<%GRW?xdy zCV5ed&>b~yr_M}?0M;$cl*2^rPrn&(R(s@N%97Zz(rCAvV@NC_jtFyTx+xEtGbr2M z1OMvSb zA@1GDt(m@+04V$Y!h@;~@@tyk=90P(!Uho!&h2>cbDigKXN1|(V`$TX7+Sf6E{(~F zU+qnOT-bcUQT~&IIHNkNIfSF!b_NhHZ+ZoihwlD_yPp&PYYHl$!=s97_2kcWbom8d z4>&zCv4|n@TJ#R(aolM0U?hC*6R;rgjx@LRc_s;QTgF=@`mMb_B{>O@>`s>73l#BQ zE}yolFiRP5s7t2jz~}y_7ihq3{whpH27CN8&V;0px}_Hb2gnZB9#*)~eUlZO*)|~l zkbYmX&h`WwF(J5+_kROWA_6G4b;{WHIyGI3F1U}1bC(2)a!BWANp4wqup(5>i+J$A z{(dy7+}S_t_Yf#-N#Hx%+3iy^^2MM9}iy+!5jc>G0+AP=){0yy9hZ zaPus}S6T;87h4KgAs!2fz!7NGqqR!ZFr8~iHCG6h_qR=%iH4PFlT3zU&RlT6jhUUV z5ieY4{R)KEHJXxdsUe((qP4}__}@g6ZNq^;nzojpFHLm{#8s>g2H*4jR-kQgs>=vX?#U@rMcEIzvnSRZ~ zfco$UToKDe)(@lXb4R@biJ`lc(Y)(UR9$$`79m`n|ElIcrm+~v;AM0f7TUK(16=QsjX zI5WRCK@6&x51AyqQYKMUci-NIC_LnA4}qdiS{)^=qn4Ipa%yUW*(GeG;nC1gf4Ced zlQ`!a_pELPdOb2$tnoM_pTok!hOID#KGc>r@dycxF^UDcldX55s)biNl5eNSQ+QGM z?(b4%p;h@>cR|Q&$VuV*i1M)$D95smv2aln(1I6nHHAZbf5zuTYspI$9UpJ-x~C&D zVQJyI^6rIxXNM=aA@{M$F#uuK-AgqL*JG`aK`~>(J)nFYPamH`*??ZeAlM2IprzeN zwaMKe==6L0i+9IqE~W#;G-)MiDEj@84!)O|?y#MG0&~LP-~$4<{a zb$KE|H|}NM+ISx6m|Zivd+*bHPrQPjTf=6CpFTJt-hnI7>xFkxnm-VskJzbe^b&Q_$(oHe2pa7hK=UHwU!Sc$86%W2 zm};3?OgHS%`RO8%A&&Xh%zzNT^ni<8J`0vG&4h*MJrG<_w!rs#B$^b)eGMGWg*e#`|ZplRUeW=Uknia z@LvNofG`&vudGBOrt_1h*a={%oJgGR3aGvT%Stzq`%19MhUFkrC#Tzf#*$VhFtXpg zeFPqDDF`!)x&Oq;7q{MXXj!1&ES0e9)Qu-GCyA3_oQrh-u5>R!8ML}+G4?xNXRKM0 z!}+4OdlRnY_c=7L`!s)#$U-_Yg`i%hsHKhdQV;&CT+BZ%67bh2fTJ7~UHC*u5exkJx3d+rNZd4da5W%>B1wek$|HDnEJW-R(2^@aAw# zN0!FK;LFdeWURMDf5wEiBcIJr&GQfSZ$B3M86bn7-?)n&jsMn`pJ++z3$kDNmXqd5 z^&^I(;)fm+=hUx-TFnr5O&Y9=5?`WS3|Ifpq?Rpbx5RlI?@-g@MSqs|jk0jA2F9Ny zQvL+UY1dDZW`NEd0*QXTt4ODX{Db%`-QR|yVAo~!|^0oE}$ zGq$#=c|+f_iM5nZM6D+S=_7fvul?^dnuxoNY$^_k61s#^RJa)Nhf64}tghzECgk#4 zj^6S{!X(c){3Qs$_-eLRPfZ@)_Z&Vv?t9>+e_0G2K1%A;$kwwGlS;!_{qYltY>*%< zmHu}3Q_bzo$a__Hc$Lr=XCa(kgJM^peCTA;-R8NokSkF940JmjNrId_y7%Tf^x0wN z-30FtO`WR|oWJh)%iqdOuoFZjsIOq?>lEwy;XW=DOz>hHxgrU)Hs*tueAiBk!5UO>GZ9Pu`ha~8@q9>hfa1& z;zUMdwuNo-gx|WoF2VM4prrQrd8g}^9-KH-Tk-ZO-6e`8qOGR`1ilkHW(r^4C$-HK zt4{0Iub>7Q_tk^f8X+&_cHw3pTsRME^TH<~@kgoal!`Q%S<=z%KLK_!0jUA)!Fc}l za4=5M7)T3n*j|LPqQM3SdfWUn43A8LmZQXTcy!%7bZg}N|aGBGoE6}L1 z&nfzxig|`JPyLrEG<9HUjbwDlf~nY6um@ul$%Fh6w-NZ?(=bUVh&J`)>$xb695KY` zsVzxRUJ>=dxaqz*SfaUCyf2M05`qOwaG1U($YT=6?J?y!5gv1 z?z+EaKQ5jS*oa9873CDkjT2aiHel^Q;|Dg^Gz(}OPV--9WEp|nX@6&_cp8CtzC`|S zF?a`BfY0r@3smPA1I93WGgs5tvUgXUEr7^c0E%t1=UUeOi&JUr6mB#iEav{7lENbU z$&x~3qvQGy;nB2DdhUfm8+N8`itUhUh^%<``CS0b@+Y4Pfz{!M)euWENr=sl@JkT# z7INz7zIagng2f>pP7pa>=XN!U3&!a52Z=s$czSIh@w>~VN0~1SmaO`E?Cb%@+8iH* zJ@dW4eL)bcC-hNbpUpVy%Hx(V#Y3x#oTcR^RM7;T{vY2$AC=^3OP8##dpU6@5Qy}z zeemD`6@$Mq(Zz6Od9SA~n~$uMhcTI+jxil~7ywO;7T?Btv zyGse`f?l3hTU)xAJ2jW-OuWtD&>eX_iriglh}~35Vs(_1%?ul!a=}QV*{6PFvP{0k z(0`bFX;{F!t)8 zV(sEy$GARh!AbT_LfxREV%{$2c6MB0-#CG@m^5<{S%hv_u>llK_(05ABUqq-E;@4UPD*G|CQ<`M4;z}m+V53c5S>qx+MBq zG5#oFS!(4sYT4u2tU9oYLj4$}HCYN=_9rmpr_7xw0CAyP`u*w@>43|TM2A6fE@8m0 zj1G24alst+TcV}YSXHRz_Nl)nP&*|czRWCD@J{qg<6h>Dk#_{o5>$itgrKCEM5LoH z+lq<^I3ZamN`~u>kD#JVt?_VNQOjO|4$=%ynp6tKL`0O z)E(^2O#^!?tGpRy>6mw$^=$(k!L|E3`!63>DPFfrQ05+1<}?nj=cAkBy4Ox>TNwby6 zPK!`I&kMqDUumoVgO1gN z6&UZlVmx8`lO=bZR_p(zp<_5f`~5?aRD$z$kW^$zO0uhv(t6CN6M|OmgJRMDm|gz= zIY<2uYA^VAYDdv@y^Yemyo6lxZ-3_p>VgKfr(S^?hlUTmE{e&t6vF7Fa*%avvUI$A z1{!WU{7)m*4fMA4Kd5t7%U;K2d!yrBAK$z^ggdBNo@Sreg+LIiUl*=GQ@nuR;H1~S z3p!+kbGvs1a>)zm!HP&btZXfOhXRSUv96=Wb8{v;UaQe}W~a%014SAuENhw=NN>Za z?(>jaQw25=1RqA;Pz27g^R(_OA7)sdU!@P&w)n6uD zRS;JmT$cpJy_w?m&9ke!K^$o_tK{`SC`WV2sLjJDoiSSKg(_l7tJt28o`Myf340uG zi7E1>d<-kYK1@D(Nxiu6;Om#w;Hsn_@?E?`mXUj8G-n^)@3zyepOzgjxuuE@JUJ5% z_VL);kc*X7ta1LMqY*5F&8N&17V_7@#%TbO{?Aa=|3vIOUu8dnGV#@88Zvf|L_w2c zWMYyra$SLpyPCC80}i|Aid%Lq1qMgdK>Pm6k@T36su27{#IeFV{V@}P^SF@8{URpo`HSk zqg}7X^rY;I5$}xaW_W9Tn|Du>Q|<4a<+{+7R&%^fR9lu9_NjUZ0+)K#WbKk1T!D02 znu6t-V~efLIGyM1r2M0&^y7QEACPsGxWsxA)CCU&82f3Wr&dsrbsAc z0qtOZUg@6-2xK*wvl`jcvGn)690FdK{tPCcn&{M^ycuc9g#~Y~KxKt9W!*VJKW)uF zex%Wkjpa8)>aC9y7mS3^YMEGj{k>a9KkKQlVL-eLO2k}@}5jy9>N zEp14lSjpzvY}yB1Qo9#6*VN8W^YSCLM*p$Gz~s1Wgbe}+5U+9yvN{~}=EYKo#D|KzCVeL*yp zwQbm4^7`S9Jp-PU=5SjF{R<<%JuL5KeX#z%?B2**n-723l6Pxur^bhP`0J1BY&Nb3 zWL|+<#ZcxD5*t~2ZnZQ0JOe%@8=7p{EHLiCM60_(3pfV#d^dt>yytiFyu{OVPu z9s<`Ne(gNk-lHSR-~HLqU{QjJi6Btyj155#CBO@Ky zu6aGKA?CvPoQ938TPqVS^b|1sNH+8t5jOL3QJwJ{{&zTmnN-Sl;$q7H#{_5mp&@@^xbVRedfSHOK=I64-h~< z!;^^|9BWT?|fajCJVHFm!+z}D8@*u zzy9;MnC);YtbP9cyC=W2OoBhmX#xvjkq=;)w{MX{NIJX2a}t-zK=_6;UPQ|jzn{u0mS((#E%7+ zRs%sl-@DUr2#b2IEZV4$arf?Q1jv#BM$usIsnhU+qgF`ig>F{tTL_w;IJ96wUyvFr z(o#K^@xyjkOk$5K;&B##PPCHCoa-?0?yeu;kGy{Sa3MN?HJ}fGN1KRCUfLLSFek^; z!fG|wenyC`Ds8a<#`cplWImn}YmN3kTxq38-I8UtvoExT@mV-4^zIhOk+n)&e_B(E z4sIp7rSd_u8*-orzYuYvx&lobKLc!Kv<=~bP8(27_IwxU$V|Oygj?^B@ztpvLptmg zRAjD-!nB?*eGO?fP2k~0Po35+Ix%c4+>&Pbf?jAJ%NzV$W-zxfrxNyHWH6{38q150 ztQtP`f2KYz7R6%7T{+s6Rr~W3FR1>tK|lFAd7pyZZT9*eYA3Ed$O*#!xfs%vA@ z_PMp*b7Ph}=#v`|pOIB|O zcXF4$LrPaeizLRwkr0F&{6InTf-8#(x+4bI$zRw5B~j=HKtAXdC<wTQtkmyLH;V@4fl*97`XJSFvu_#1PoQFLmewWJ}}1{bcClmOn|hq$yO97IK@j) z!COC-C9(ykLL7a{z&>Y}pbN}d9=hACBCquriEI;UCnohB^&f#?>q{_jN=2Crqj=kVRk(vfY4T)<;xfi#uxVdOPZL7>NH8> zJ8ADyn?{**DZ_VtgDaK~Q{TMud{8ejzhi(&!&Tw{3vG3xg$daF8{j_^SU`_y)qt)Z zV}S@I6Hx?C+<2IHAC9Hj?h4>V2Vr=;9(M*jns9V4H9t~UGcoDCwHg53?@#)U~y=B;Ginc-|UgsE4WKkgX)nxNEh z8Y5FFiM&6ISge+1Pd<}qQa$K8`aQ7#mdX5<&}6&C;l<#6_Pd$@6ATx`&$jA@v105iiW`PJR@3y!AHhSr`ZCsw9 zWEs#wOQpb1^6}l%7#7|4nzr6{n3W{()=g<3 z#Y^dS;1gPc(UJcJ^Xadm1^eu$Au-Ai-QGZKfK3xk9e~YwLZ5Yd0zDxv!&c$8*bC^b z@Vn4w-8y*&DiIV0a=g12aUmOO%@5?izIdn)ViX;(;WCC~As`ii19J(CozgANcQfjBji+N1foLwZ;c?T!Pm)BfPXbL3&=5yq_0!A zzZa=8Z6c8jZ*17f2)&P?7rn(l^x1`)+EYltZGPpXG&EL{W9D`rkZxw9{X>*wbQ}?M8y)9gwkYXOoNQk;x4Y{SVf0^4kW-wYmHk)wPxH$V}cH z3GvL~G&Bd|v`jO zq9kwJE=i=^TAZ#<)6MkQRMW4_r_fM-Ph7lLO7fqX(VcH5@4mj#fUyxz)_2#%J$QId z37ekEL-T$n3zbfk9Ks#dbjB2AaMQ-Y9^?v^K1lGH$w;ErGG#h7lc#+_@SlhJspyuI znH+@}3$wQv88av%M&F~*WCA8i;L#~;q;mqKrrPn)^hdzv(vtrLFFbwv?x!;`XPVLR z6)3WW3r_4OaR`Y}Qn06xS~eI}m_~B7QHgB*lw&(KUizleY@-!=WGkq@ZaN8Gb3Cg8fBK5%2-u206NZ7={Zl zL~Jzhu3~ksKnaeh66i^_|5OkFXq6e*pA}w#zA9n<08qDEv+FYEN{bsXE?t!Y)J;vF)19ed#cLfTfb@=drxi# zlJWLU(U#T^E3ZV=~gCtMv@;&fJJh8&WSkZQ7O%O z4zbuq_reb#T9Y&JLfH`i5bnLEB0D6cgZG-b?EDo#oiguFWdPVz;njj4!T3p z^Ic$u=zzX=u+KK>Bj9$b*p$gC^{NG8xRw0Jwm~K*M>3ZvB7V}g>A@04KQ#In{1D``m_|} zkC@&&aDz=;ABx116)k8MWs%rLSULH>eUfQxo2{H{coQ?kXr4F3KYnaFXX3TP(XRj2 zxVdEimuMP7bY#=Y3%%kz(xLFEc}z1m%Ef+gKrA3%e$?B|(ixIZe(j3|=jZidKDP{xu0A z_9xfvF&+m65uzwYG+gn}BjWaFjmaJU8Zu?#$BT_IR?&xBB|L-y0Ok%}u|I1)XwC}0 z0@;Bh@a*N`PaGJ+_pKxEVZNoroP8*I%tO6M*&c}x!xL^-dI90E4OT^Jo%2|k$yeqY zN*Gaw7eQzuI_x@rBJ*MS;r=eqsU2+2dnt<+ zT>2hI0_Y!-Z%!W9r;%8o-HSDPR_wtw#wLR##N$ff;bG#Vs-+kN>>&U9S9C%9@#mK? zh3~cFeAasU4__MfRCX*G(A|6aq?L%(l_KB}KL`YbslX|`vfA_)Zb5Awj19jZ3WmS1 z6W-KMxwf!_vc>%o`195~ui+DoGw&R1q1Ui9+?}Xk@ypPhY}>(H!!dVm!!rK6A3}`7 zt)8oo+>mg0X>h&ynu%}_x|ocDh&hEKs;?Kc^Y$lRfo@K9P)};Nb3g>xRCs>vzJ4++ z8lpxKbnK)Cbe9={bPqgg*GID*5^9c*u+PHDx8^#6fnx1FeciZ8g0OnzD)`L1v3?9M z<0sNwbwjxn3(xMoWm?vYARxqF9}R?l6-3{+-eoJsUPse6!rlu6^e;QHn8+sDNXo_m*%8R8nQtm2{A;pTJJmNp`#9lG~<=(>PBjm%^f@cWP%obgP7O1;S@k?bGj># z{ZN<@CDIlnF}qE@=~<`M`|Z)^T!AlHHqY-oQ!+~=w#77LgMVpKBU&GzEY&UA6Kt6U zq6#;pBBD!-YHEu;rMI~xUPt~>c9^y<3ZLQ#RMf)a(cN-%tdfVz|Ha8 z%)v8|K5xGV8K1BNXE0j_pLmxiLGrT%3V*~Ehynlyt}6q9_YffTY>5wrje!ed4G#)- zgAUs}2UfBoGD#2hOH0M7AH80*5pKnVtJ1!#01BJcA1U}BTn8ca7p~*)*)A})(0Lgz zJ0{ba9a4U#Sh>qu;zm_#(<&X$TGU6f9f{}10>RfD8Z~j3BrgFiaUHppizjK$Mc1{X zDzn0xper(5=knvC+ut|j^RQqism?$9+S+oAg!Lh=kLk_Hjtx3=m$t_Y8?Pj?eOPZ zfj0fb(181zsQC(%*n3cb^RfdpW5s&`eTY^)#Ogp35MONO00?f?rEGAo6PjziokDy? zW~vJs%3PEa2S2czd%i!)8!zd_Iiyvor|mK*{CFxgpksli20HWktZtOwPs6lpbnDWI z1pQ7j;0d!y-(8rqmlj2zA_vU~q0bZ${;Du^!S`Dd@XZ7O0KE!@HwsG!Tg>%)gv(Lv zU=x_{{OW~Yz&!IQyxI7X=-%x5_lGkN0j1$10q!yE7$BnScIXjEoUG&~5RWWc=r;!j z%?g_kNfK+LNH`-E&vPRzSP@>4IA=5oMt>vV4ldH6MF#!llzqExmhbFx^Y!(?ynMxq zU?5kdqyaZy)U26yJ%AG5y#RJc%_7fQ#!eA*3RBK(+6a1d(4gTpdBOAwYOi)REjmqI zB9Cma5w2X86cPx8&qIC)-u&HmcT#ZAz0}%Z$^%NF7&Ba5aPz^&X8EDM7(lA zhbD%?03gS(5I1*{&r>0(7&K*AsuU7tlb)mbr1EC5V$}!^H0a0SY>^om~<*kp4g5OlMc;zOCVoHhMLlidCT|K#W5Eu+(zRf=<~ zx`z1NcyJX5l^jG2(aIL^$N@ozy*9DF1cX%Oj7$v5zM^O8nUYb~q6uNU*05)P&S5%v zvOr@5lmH$0Nd6@=oS+(@#C{}S7(C&%8_^7rPD#M0Pjz&f)aV!jq@Mhen0U%n%6 zD9-WkL}l#-(VB&oL~X+X>Dj6V*yktG08g8o#Ni$p4HKVeVi>MKy~Tba!0C`f28u6$ zU3!;}=v_xI;OlJwW^$}UZup)F0{o?q214FnF+xAXj@tpcl>mMOfzUSe17<~yDBfaoE%fXf4fsDJ~bYVt^UlZVVv$3b6 z)yBg4dxwepj~D~vxfC{80+k3kmjj_ZS0Kwc^gTU%jX)t1KjGtkmPk=j(V4%I>{%ZC z_9mCIb=t45R!@FBS5V;QOm~6H;YT3{s+xhyK*%yX2U^A+v4o_u@p13Uv1e+@Jexe2 z?XtA7QcX@8?#&6WCHVWdF_Mf{{C6rFCXv_H2`Xb4 z*YOSUX)8^N7$ZchinLDl){B>$Qfrx?Wxj5DoZ;!c^!R5VQL~Mq;KcO75F2o=as58Qp zE6_6){0lrWqWARy6c^3xiH}pkBccEG0T5nMniz@x-Y&~G=8hmRF)>01S=#%{8b4`V zRQHH+3a{r>YI}Ms?$g8T&OexO2WY@HA__;_62Ipc6O3anD=tK5UfvO#NKOSJNj)@g z4}FAKD2qm9rJfV;iN~bWw{-duy*5fgnF6+l9BDGh7?JB*VqI=MQjS<_jx);|zUzvsa!+jwt=l z_kA>{b$7FIdlu~}I54fWH}Tn_UiD>YDs8l8e34Vt5hnV8FfT&3}V0kP1jibkY^*_GkEChcMxk<4gQ8VVLk0$Rl;7r^c4P zIL}Z8V_DsBFd!2}+N8VW^(`?^bGFb?bsD>k-g$Tk)rIZ=xN~;ok<^)HT>K8Ypy)cL zMGv_CTCx?Og<>ny0F)7T{s6wDxGXvGc%=x470m)Ne!n@U>#A$BC$TV}pUz+0SJkf4 z71R-vo4NZ5Sr($qJN%b7Z)4&v_W|k8?~ToxY$j}l9xk~6$u?J@Gx;(T_`x8S_%MEE zM4oOn6a5#a`OhQt!+G9Gei|sIh*(U7x$I9MZ^JhWmOsx=rN`z+tdC8CHzxVpbf;utYX}Ht>PR0FTH!IPpk8aQli=a6^($?jYcw_5h`*eIGvnuF zIi;X&jBhP(cAJdv?#^*j7T(x?*C#SGKwY?d?9aPXg#Cs?VYLOM?U#@@bKLO*V|gu! zS@AJDpJ}3TYxKKwfxnJi4l>ym1FAY0-=0PNL7Z(hV&4QLE_Yd+$})6{o~FHkpB)3b zTd$+vqblp1;%nx-IcU|T(8Gm}EJ`m`s!BVl_xFYSent)}`1PhdAiHL+K*-j!>dspG zZDei>=5Y{H(di<5dpiVn8{7jsegAOS{WqJRGWU@~-h~L-JYPp&!e)8)+=`oSoAxu7 zv*l=cQ1dQI74gb*A;+sbGo|()^y9l~?CR9!{tjsA1k7YnvzvmCN@(HkWLgO0y#y`* z6~&F;q*`ms*vCg%_;`*Jt}h8*=3dJQ@`|aET_th?Kj`l$y3*1FP19&kz4!Av)bZj~ zKR`tg_QcPkV|z5$UVS(2VY{c5K>RaW(Fp&t-&v%~+#0D zIYsTAX&UF?f@rt_^FbyTtuqodwZ~}#rQp@cwC8FVPmnVxG*?%Gb;V&;B>X2!W?!3h z+^=#i&gdt5Pj0g^B2z}qzHl_ogiI$ks>Xi z(nRS^T2w?jh;#@Epj0UWB1#KLuR*Hx-cdRTC>?162{n-7d4GHFIkWeknQLawH~YKJ zxvu?RLIQbt-Y3sm>t6SLFXDZo!*UjjMTJnOri=CnAb$f{FQ#d2E3CxCKQt0+>SzDP zvvw?4d0Z@VX4!W_mDG}uMZ8i8VQ3W#a+$URQm>Dw9FYy^%Q$58BJ<2d_ciGG9j0I= z+tvW$F`zt{0NPhP{>swjp#W=n8_1t$<9ujh3qSKz^73(TeQadgm|y=eL&&wgr*bgI zR#i}(Q+m&d^-LzH+TTGqYKAeL`WXaaES= z+4UAz_EO(pWgPqJqq#IM*ujRtyA|7(vQ@95CBofQ$zYz7kZRGJCqARHv!^%d@9?@` zOC`HtXc~R61`&Q)TbWIdGsieAGXr}pj!4yvrs&QT7PHcBJ_~Cb61^&PT_8;TP(%3X zuFnS9OJM5I#{Oy~o>yUzZTj|oJS{(@s9&d8;f=GS+D zuQGeA#7r&Fs@UJQ1HU#OMN%S`fT7|e3HwvcE^ZD>DngQn;yyQ$ey+bgJ}7saeP4N$ z@{s~JNpb+xHN|M^ZYYoz#a(T;yz44z^t5%_;}XA^HO+-h1cLJ8Bo`rET;b1{z^4&e)O?ibo)j`3*pPKa8M(Jd+?tg|~ud_nR6n%@url zK?-%25yFjs1`CVp^`~A6Ieju5)8aL(Th%LrR61>UgT>f5Uk;RVX(*o)* zs*djE>$ac1P*Z4fZMU-#J0Q=Hb6v}RyX;G1GSIQwAa=+VcK_b;oFT%;M$u;S!q)W>5 z&_YPfBAx-c;vT&+w9iQVGDO?3Owe4>nYiQf{@1>D`n|AYou=>}{J-BK0P%l|FF0W1W;Jd5c`rd6rrb;WmBl0$e zwnrWjev4PzoEJe(b)!vlj*78xp4Jp~5gImiX8P14y62y?jsv%q|Hyt836;u^%LI^+ zutm+Ne%`d-AoHe(g-els5T(Iw$X42|BPQG~j+NNk%1B6t@p`dYS5&VMJfA2|mob(- z)ku1GG8mxEE2^hI{L4>H!4!m@AyTuWa}8&RTv+*)y$>|W65$f=H+S#yB=Ocvk=Z|k zc~dJ3Wi8ml2*9VmBjmzZ(WmAZNXI^x^P8<3D>}QV8mrg9WbWEY=dmG@#LA+B3uWn1 zH0q=oq&UI~ih7ev4!w}S3}&3wDB5Ccsd?vDSABWx3r&gX+l1!`Dq;}A(F4ne>Y=0F z@l%}ng}Z5c1C6g@j?`^x&~-EVqOT-BY{WViD6;?X(o!)*3Pg+%N4frT?fe9i~ZJ?`{HxhjGDX@1sXH;b;j(RQPYaNREJX|~_ zS>N2Ik!HRN5qiTRMOI->M!XOC^$_=bTT_DOyFYLDi}~&jyO^MqYf<_fN?+DO0hcYp zMZ#O4$V;A!PpoiiRVCzAxN*ALTSYbBc-Fbjmq=^ATTcb6%89sd=wZ%j{UVR_gm-B_ zp%xqirD;~e&;iXk^!EksD&6%7!3=91GUKN`jT(2!nuDNwvE-<;9Fp$V`8 z9)W&;CE4S_pngHrvp0wS%0*LvwL;Pk@@B%LTo%y}!1Icy-E1kx^`Y1O-6h-w;@awt za^5DH*(=CDihVg6J4$h^;_@5BRS7gHWr??2fl4dv9bzB@ySionN4-1q!*_dt%<(&u z2F3P8SRu{>CW)!K7fJ1UNb+ z5Nijp8^1xeifzQi0caKS@7V}0%lqH7PB;k#tyIMERxmakBiQM=WqCQSAeZq}x5Vj` zpKE1yH8$Y6wa)dSD+DBwoYWA6)A)9$T)d zP4S@?={)4?8QiVQGJ~dOytxP;8X=Q6&~fo%8=~nS>yIZD;iX~XMyqoGMSYK4945Ip zjjj{S0J~cGnR;l+CS6N4JHx=n0>18#G|M zt#mUX)#HUDDdv<&t@9hiQ{Opq4#f6ZeO zPGUx3r1t2ScOJOAG3*<^JF`8R9vReqRZpMsL-&eXuNJI;gXoL0}v$ zkOrJ9&m;qH0{*H!T>`j9KVF%>41XQH?c$pzmlEU_#Je~FYLlf9cTg8sw>xGt9#b5mL*~yL1)z81VTNJU8Mt2X7!p!s_qrfajZ6yAJ z7Ipw$aS5K$3Ld+jAn>qtOwL43{|oOY?LM6F$F{Pzx%#CHXbp3_2NO)@?wz7V%Ybv^ z1}ff3x2Sisuen|h8?YxHBvArH17hzYT2CT=feA}k9$^Er$ZkcgNM*&5Vif+qs|O6X zsfJU2rsTBlN}>8}1$6Nu2tG<2hF%g=CBsvpBfFG*pb*`OF;t#mg53G)X}vV~G~ZVi z4{Wi&hgD{dqoE^(yL~unIFN6#BAk%Su)A2FWtQUyq^1uPEN$dU3+Gucx5Qo$%6fDG9n#Psr=b1lLL81o7w z5(>i8Eg_iaUW++sjz6hwsb}buj5ie&X%+BxZ!wKR0Zf_s^b=M>AzX$yp?U)wjo#=q z+)g9Ur%kJyc~IhX((|PyLrUk5D|qvGG~UF4mBWDI8x*ZK5(lPGzK-Mdmr%nvBq+;# z-1glsVJ)k@{N(HOPww;ZE^%yrijCh58fkKMvgaDX4FDp}iBkp+QUkODk&z8R$ib+e zxkS!5oHJtdB^{CW2uZvTJb(Sy&$H>aN;R+>X#MWA^1ATl#VFNlQ?ep`2fJmzYD-04 zM*4o7kqsU{MqvtXcc!) zP&$NU#3PA0)N&+{mq5VS`HoLc=Uman>FGNuQ#G^0h5^z7u+Q$cnrH86gp;9#(0ch_ z8U^sF^UD#{+0Z*5v8!tF+DEvda630Y_YKe5hS_(fi-&xn7C9qiQj8>PP_&K+~cuyMG1Lzjv9m*Zw9l%;2MgZWN>3RrNRYy_!) z0@LuC``FbqUA)LbdceNqhkxfm3M6(Ng^0}~)b`=YEP%!tVu8})(JjQ$O;jf|907bU z=Bc}&SCvIp#2nf&R$J%KKH2+u2~B&~&(cVjD!J*_J!_{3p_C|YA_sPHSp~Xs8set^^7`j26{lxYH|LAy#$B8~J{r?_ zaiGB8erA$5Q|HtMMl1oj1PAQuiWLy=Lmw+YUQYkO_wJI$q*-7}#?$pD9|RJw1!srT zU1h-Xee}+z`-E63g4QBKYert3A}+w_$}C+}xiQMo*Gfbk9*%eRQaog}_aC4ZEn^gR zxUS9z(nKi!0Z4;s_M80xn4ZXEk+IcES=~4-zD|1jwS8>94;Oq5D ztIJ3(w`7~P-f|ixz5DKDQwW;!0`}RCLyJX_lrL$xJ0utoRsSu6Yp!hJiKQnV|8vJm>v>YRZX?WzDa?5)qwN4_t@A|r0Uf(c2k-gwu+!y#1 z39viC0MJ~#jX3Td0d$C~C^nQm_BSBn8fMC$K_92L*!s|6aE+^a%Z9?_8jCS~D$1V147U27)l@7RVe zA+czH@=);`gyWf!lfb&}5B&zk#(xEv7~H3SFZLoU0N)EJ0Hd=nrIo5!IG6K-Oc2hg z`agX~P7y^#Pq|VAG7#hJKeP*Y-D8CEWX`^0dcJ3br&=vJLNw?46Ph5BgD(}BY+W3hAS3BX@BS5IL zTrh0l!zOsg(%oh^d_#|&c?~ldbyudwh;+AJ({AnbE;swB2U>Mj<0g!t@WP`{X?Pk!VY9WeIcB4mx&Poy z&b;q_H2)J{ghNsN^ISpao1dCOAT3#WGrtNWRrxLT(c&X3lP5|1RsIgR7rHjfYqLzB zJ|x3IqPJHSNM-SR-?z<~>yvGN3?5orYaa}WMtU_hhz@rj=m_$i%ATQK&AJw^N-3nh zw&15r_e1yzL(DKuH{)DsuTtu4$!#3m8^fI;zr#a_9bAkyUMs%ED<8sY0?CoJqy_tn zHg!|>?x87$E$AtXZ?$K=Mb@RzosSQguesYufPi4nu;vIIA=%}uhb zdiNP|!NaG421N99whqS+U|Z#~wQfYpXvD10^y+MZ9heS&wyk;{!bSUugii{YN$yhRxmHiA+p&Kv2_mY5)B<_aw+6On<-=|6F_meFb$j+ zk0XgONvQ6@)aC7=uaI*iDfCOap&pBX0R7(}?Zk5pC=YQ?bO4?9<4wxrQmZRkPnggy zJ0;kSlZE#k=&&D=!Is|;t5xPp-!B8*SG*v0j3Bo1)N0u}5PG<$)q>~1Xk${lz_k7$ zdxwIb;&1s?IsonALQyT>r()O{UYvnH2VR4Kgas@sj0ZR%wbHhyMIJXktSFQ6^I(YO zI7_}ArMC96$6xE$^;PgLl-y;3{%tQ?36{9_*jToBo=)8x zBhC|rCxZUx&@@PReEj8MGp{ax=VMu~!XXKh277D)g7akNGFiyW-T>6r)ssu;F@Uo9 zYc_kKDKa=PsN4V(_EGB~EbCVLYe*cN6mNxvEl^;;tRN$%M+aQ4Wum@so#@^YT^TFn znfjKT+)A!Bu=X;In2*1>jKbbgrqA}*724385EErxv5DIEVCenIT=&xm!A77121UvY z6&V#A6`i%}AWr(v;1>tayx2ZRmp^KN19e5a^3IBR)b#ucw2O}FqNdv&v$mFJKMu32 zD>E70ju6U+#F6Qi!PX0y)EH(nLPIk+M>vIzKYc#y1!qB3!)H+ncRnh3%IPlL6S-u@ zOc!QjuM0Gs<|opj;R%Jyuz^*nhPREk>v;ea%&7x{Puutc*m2Oph44>LFqhu|$m^xj zEvmE9rCd^sJ}|f&!%8+%x6Edk^rU*7=X`TQ?VSw`%I`zUxjAk)Q3U?0f?4EitE5w7L^V3K zcTP3gga60zX{4-+i;I86mOz?|j?qoSA0MJXfoVsULZoNPSP~o$5P`X{>*#sg891~5 zyFR@M<%ih|wl@0D%!I^t_p_58a%_a(H5v{gflhP&e~bqI-RSY3y&s4!B1CnwKhrva zzKG(V`yzi5$^m^5t3Uc8GQcz|WX|f2nNg{jpH-jp6Mf?9AI2#XQEh7uQ2c$smf{~9 zTL3Q`#>4wJNvKVogojKWvZ<1cMc<2!JG5&3yfJ>kE3LR`DDf#67^G4hwOy1)cIDD$ zKz^PKn(lToQRcnSE=GI}v95P-p3n@F0Y?Ci8|=Hc7jBq|1@_JuIKWZ@(2w6-Ke`~> z&q-OKtDX+7hXY$sL-9|)b6!ZK^7#0EBm{4O0$kHBt0aSu2MuQNmr$FItC<`)QrhIa z)pKIx;r*%}Xr$*sU1eE5AYLFAQZDbmZhJxqIY!X+it{u*2qMyd{uzJ&8nd1(`B%xi z&lX{PURjxxOlYRU4?%vH^Y{W%8ThpIAAG$XyPENI+8fS2byYi6UALG#Q>@dbrEdR6 z4W^W*U+Y1KMM&`FU@(r$U$z;6Q}cf^u;N!U{?pBJ7w|rr5`EkMnp>GHN$u0x>Er3v zq!g-Ks?5xS^k7>Ps=eq=r-tZCaxFQoAx@ zLH(*yuLJdm54!jsTccr_cslj*wsf~A!Hr*mt{Bu9;3xE=wlC4pm>+y88;NrPNWQ2c z0P;>`Yg0vM)oh#hnxs!1)b9jl!Ku-XZ8v}| zC`wR3MMFFuHYbFgjO>)nCE#D&!@0N80hw#W$Qq2c#>3{tBw{sbW*NpR;_%*qu!gvU z*;R#e^>j6}9!UIB!cY+D0r=Yx>$|c#REv?#t4k*f8cvlY73Jk-2q6*BQ`@9-CX}Go z7dzl`$PQcSF=ZRFq*BN8@Rrp8u{zCoLGrs~;ME61d$gAk`e{B#idjgvqWL#Z8p8!{ zU*dI*VR@mT%mx4wOlai~;mS{aGh7LFfUi~V3XHi&Hf6G12gugVZIgftMlQg$VUAdS zLMZ_EaG+&>c_Om0Y3vW+>-)yRHHVIlJ6;|v^I`B2H(Ha8%iMe+8t|5r3L{)cAZ_ld zm`I=B8%iIyYrQ9(gIZLbLbVj31@`^?)`U#+=e+Bp%@Gyys~fSrXmCdY3$_@KpWTwD zWVezVFtQ3=)7+kA5k4UAzs0hehK+ruT48@|ExaIQU|a8t7j4zrvVe&xw<^Ty&eqFs zxwQ3etdDf;vnFuD=gqSCV~2SreabDhjg}&k6g0|5?<$CrPk}&`AaB&1A`#YRN8KPm z$j3ANyyfeJiUyd&uHr9rR30GIYmXO%#^XfcT(NR-Liq&2E79a^aJ;X z5DSl<|3vInA1Q}A51QJS>Oh_ARKYp+fhL3!vMuA6z<7m?HUN)26AmmSyr>4cRQ@}? zrL%Ad5Q>ebAUi2YVsf9YEVKgPbX^uX(OR}vN9+op5}zRe+m?Uq!M=ARGGBS(0qFLW zO^>B>#Y%|K=Mp12=TT3SJj*-**R8{Vx+SjS17ugeZH1p+#vRY~`X9*&eYM^u?|IMW zNBJS>MG_#U$==%mOQiFb zEZw)RrSiTW75P=#RPx+B|A;=z;6N`Y|8c8DTjfq)nZ6eSb4>@n?N7i`Cw(n29dsq8 z9r*& z{ZT9pD!ga%SZ8&h(0l zzb&+`;O5Sf?54%yb1;YyWgql54kyv4cr7>Q`|d(%u$x%h2bL#cccq2*H0`< zS66Sy{EYulm9*=7yuQLot)0iS^qHnHxEns9c<1c?^hR$(F=A%Dj~MGrEZaGgnsKK% z*~@?V8zhkmK9?%pXcq9z5*!EPJa@58x>;Gw(+HfCr@I0RY6dXI6S$j>mt9?Sy8~qQ zV@5Npe1079{-|%jEBtF&4iUCHAs#@2 zR!ZO#Lfv=`wDL85rlG#$0`$cnY=#fLOf6Z455?9R;HRi%uO5Jixl@~Zl8u)3lW_*0 zdo-dp2iww+-!zx%cONdXL~o2tB97*LUCzx=h#q;^*Hl6f^xPyN6FnGNHMHG_+dt46 zY$LIPu&650>0jLfFl)Dn))Le^)eCbrJs6kO%h)d2FA{U^ zY_{D?!4&thuGOtcZboEKMvI!Xb068zZR#)Ax53lqD%pwIH{@Rb|Qku+vQZ zY)XdA2K>ToWzeZBs?`{Vjqa;9^Hz5Xw`PzI)&8bkgAE=ZhGZ`IhK|zKEJh<4WD}?W z;l3&}`naXGXQAOaZ|bh_?t1UnsIm*vr=ogZr;em^|K*s3x{0k`Rncv?y^QP*G?CQz zWE|~fSdxm3W~aFRP%rpa1*+4swzqBBjn}%#M5mUTJ?O(V$=f1d*czyl^hlJSrhzv9 z^jWAI*q+rE#2&xcJr8N zi!*cbHJ*^`C=9F$gvkBJ7yNl2jLpW%bj%e-8yc=xg{CnkD{&cjiadH5)=m0SjWdp^ z6EBCMtzH=+-y-tNJPup86tZvNsh_{rwR*XZ{j6Yd4@k z;Jo_31Ly8g+y4%n!Or8R0F&|0c-xUE3aEzEGKJw&+Hc`OFaUE;Dl9?#T|s30R|V0Y zK5_le1(5_H-}X0Xcm%MA`o~62l^b-2g~ma_LKmckDM|%$9;-2aH@$VOhQrj{@{xW2 zrCSs%74f~B)}53PMReCWQ8toiQu6*uHKlP@cVJ9V@~4?G!ye%WEJ-pcviv%lw$(YC zt-KTYV|ew)F2&#U>%Y`Chl_J3yO7(A^|M;hkg#&lr?t^Y&ff;0(N7u-ukNZbnVLKT zQ2@Q%3;7?BGWB9d%))K5wNyk?I6q7po3ix4!JrY78h-4?_G8aJ(V@8}NkL9m#8uT@ zxh=i&M>2HE)U2thdXn443d_?F{;BcS8|_F=>9R|x(q-ElS-M6qOwJ~EgWYOR78?#Z z^t&X#-sqG@ip1^apVps&`vbpxek#w^+vWgSO4);U0uH7LhJ@S#pg8&9vNaOjR@wIp zgSjDq#DV<1j8eZo4*n=V3;vS%@@B#na#kx9`5aQg=^BVVY8Fr!U%^)E)z8E?*rOKa zzgq^pTVc(P|G_CY*b&p;=li1MoDwEw)s7wN#aHx^{sXnILW;(79SA5_=Xz{G+*G=4W+5*`k1r(1`*ip8S$NwbSK{F_*4N! zFXbOAimr7k$V>B>vN&VoxEh%s70<)O=IMlbV;+Ooz|t=vqy0RBS1$Q|-M-Rbu;F|} zsuCV#%7lJzZR4s;$fr~oYE*5bkI1*>NU`&VB>*7Si5ONEz0sGZ)m=`--aS)eC!@9_ z+~?Zs|1`AzcJau7h~3Yx&s}z6gvzBFA_Q4wjjzfJq*UOphIbfrX>`6aG5*DrSYqP_ zt-gMiz8^$KY_V=`w6dt@vOwof&PY;guYX@lPI5`)&8gC!M)lT`xtP;C)lpvME)^D* zWs;6bOd`?WJuZkrAOK@WgDJ!sa{$o62iQHE0;s9W=0tTrig-|GbkS?zWT}#jwmysF5T;(T{VBMf)*NB00tF)EaC{~_cuIhqAvVaFZJ#W zo*psXz83p3w7m#n|3LMJHLo8os&ffpFe*5-7%9|^+>R({5(dIo1s_5N{ z%B-vCCYNGQU#{g>v03-u<1%iHFadnBE+;N%1e-|z3q-Yv!?zoxM@%b=Rc-i}_y<6^ z2WSwZj--C8BhfHBx8L=EIMeD4$rle}C@3W4nw&5_SBdAv?YIx(GmXVJ&3~x(|FpP8uj@1r_%O zduK%w9bfLk82Dr^J=)`b+)vWAnwZyI-x-E4gl6efJUd-E?P(x&Zqy19hg3y=%?d!M ztnPd+Nk~mlb9sk>r?{2FC+1Y*R!Y07SU*7D^e#}OXe#0RMSi7$4j~c9t2KydMc4Xk zo-O&iA1M8tZk(;!WzcWuy&S2d6$VE`8NEj$E3M`M^nd$w!!7d_1b$m@R0s4X53RtL z1(IFOVhe|<;O=jq`$RCz8&^B6#YlzIm|DG2gta5FOx_5#X6lulMfyzyy)yHKMW|yA zQ#q}?WZay_BbJaZQFT^|0-0~Xybxwp3CFrV3k-88tM}B|x@7-?t5ke`#KdUeO3Pv= zm*kkTTlSq5F=$^d<;BLKwfAz*CWU|fPzOHhRO(S2#%?4VB2kD=*(FXdbF*1Kvm{Zi!u_Z0SKy)=?v6x8^kU>*1gnuujdLcxc=eX(Y#r|n$X+RW|~dwd@NHIQ%Xn~B}> zW|`&rAhYX_#(zz*Mn0$%6g>I@+ri0O4V8?njBwh-4wY;R@Z0?`mX_k`9!Tg6Q3+as zbbp~+?oH>M{>b+8VDoKl^=mHIGDW04D=P#L7#w1PR;7CY#Q`W82Vsx-sW0zfz3Lu_ zsD8+XcUghVMLwADxx%&hpg!)S7OQp7RXs^M3UP$K^Z9v*^5ODKcP90U>f6&f+f8w| ze%(?X&!3%r1)fv-PZX9;nL7Mmuf}p+!^Zh6U$z}rINGr?e(v5K`^@hE))QwpA2$5W zlyxm_2?oA`-q@9@aAE_PZN!C#d~phDHb#&8-0~84lTD6Qgl8-WCD-elP5oEmMMBD? zsny+D{Pzz@)HqcDyA1Ga&*G_F7|HXrd+U7}&=D!0?;R$)tKViS@wc!EA7R>K@%j0C z5i8{MKP>yTK2T?U=rdJGfCs&_4To~Wl%o8DPGT`~(T~Hco5BL_8^-cvj`cVD&NoD^ zs&NfrL{@q~ERokw02$VlPtzjyr1E7dcLq7^f|_7xX!2JIrk@OWCv0K1&=kyS$?4Jf z3!19CP}seoj9A2?1xi6xqH#i11)I<g~{NHA+Rs2{8txE_z*YC>Wo=`UaXzBk_I~mAX zVznbb9|KpYr_LEw<`Gp_xqzjE)_*qW_r^tZY`neQb--=@9zHxiAlNzY?Ul&+V-)(x z`V&DXn>I+3kaNuWWYM&?27T5vUA|{VeOYx}E3puYgjM)nj!M_mSFU6dPsPl4H;T8o zXyTD0h(|8DpMp*@}X5-{t7|;4eR(%7E@e_%)McX$xvjz z3w&x!bAfWAP?#pscA5P%O(Z1iBFNFXjTPoqGISF_1(mORmO2?qnYO)^)Qu}7>&|}B z8hPuaVrW^vr^zEK+NTg|$thzwad`4tlMkQ0E7|};f0yLtp2@{N8(-+^YP8QRxwITH z&ZNN!x+L-wL819>v1TKNC&bmP{u#HQ1c&%yI>#tQj{nRm2b>af92s8AZV{2`C>pD@{JeqVKx*F%K-bEszTl8%C3V+-7ej zy^F{M0b8O^y~k%=BsYimh-4Cr9p_}^(Mm}-RT@ST&`B5;~s z=#NXtGi)vJ-qHs2(?(Y?Rn4v1chRoKcWPW-$|-+h3H5UyVd=939o&N7!uEB~$RIjD zq2HcYAgSNtyysI`BdtM_GJCTp6_M?WY$#a|22@zH*T;cn!js48&)3dgWH@*XlUxi@ z3Va#sAe+qGH$puhG0{x2oT+af!F;{7%h^aYYl){}seTcVGZSJByY3TS8_b^1Pi-_m{*n{pQCl*4tm;a5@lcBke)L18}_4=7h}t+Ym> z-nKc%sR|uEpzAhBmB-F`X9hQemx2ZK>30k<(zo?f=sDGeDfxqrKxjRec^{X;s_}h^C#*q10rrM7 zZ;iALP^oS9=`0nZ%33QAG5ot6+3n*JXEtijeyLFpTHt0JsIKsJy-Q*KP@t@`tnw#)hfw$Ly(6I+-<^cM?d%QncpWjJ9v*?(0ClcAsZ?V$CUW22Q@G z5W1_Tk3O#IwS<2}tacX;J)&EoJU5`I!A^8DV68eEQ=_uO-MKnRrMrhst;5JEL5VZt z%{*PJebF%8W!w!I=kmKL*$=Pcf@nl{J)Y*w+R+J&rTVakVM2m?eAtfh=Y_v;VuS&K zhu#)L@3yr8B*gkzI!^wf)jUk3@^kow0UwpgqTUcoV!CZgFQTHysUIRcp~D)5>r1JNouXDaX561 zaBV^9m6f=f3P{<>rL5KZ#ApUdgo8CNai5YmN1kL%uBkGQH;cIHq+3qf8NDpkqWjW* z@**V>Ckkuyi~h(Vye$&?4fdIsA{dKUsUUpBD`h8SEvnTs8^z~5{rQA$Qq&HUO_yII zCauD(Q8~`jJFn!J&9c8&R_plh*uDOH7O;Q(><|?VJ)i_m6co@r%T@^#3mEA} zosj{|#+lJSJgb{t?4Q2pxP`=(5$L$}cg&JX$^pR|(3mAq>-^D}<=2zCulq+|_Kzm) zUttcvkbkBDA^(L2#EzPI;Q+fVaTm_ieYttC2?2l*6aQEc;zDxU^t(5sqz^PZ^HpoQ z)R^9z`dNPN%(l;_IlETWUt6+c$|?LNjk~5f=$2BA!@k5Z)1-!|7k83O!-E$_f+|Aw zjcEg?T7$^umN*)nZ@(N%-py3nh#M?76>kgw(D`@yR;CpdA8Qj}ky%6E)5`sd@3>MG z?(-c1c03JzNmkJ`)f~y^K~%n1pC*0bpDcJtH|l#KKh7yJ-{x)sUt@wssbejh*h7tC zp}?3A8d4g7>ZaW&!BT%mFZ)9EvB%lP1;k8q+c{-9m5XrW+vltnk6!k3pWGxl*#A}H zwd{r zQ5YL7I-RiPS3h+29sM!iaPec7Y?7St3jpU(;N^|4A?d)2>dP;`d&%Y5+F=f{jyVIY zrn)cFEt?gtKxnZWUnkby9R{`~9b6trvA<3#`AfZnymhs%uC6*%%ymWkdX$^?szFrl zs8BoU*2A=f2)t71pdiqt5Sdj2sq{3zs3grEx}lIwYq#PS-WR3HzEcF##CD5_#a$EIjj|8=)KSB>pn=e{7*EYu&b17DQNc_M8HkfY`@AWz6e8AN7b`gjq z1i*VN+R$V^&T@=X!JbR$`-&8}%eA^UdSKj#`Sp!OUzMHs zDKYVpU9J2dm-r>AHOUR)D#2CvR8OR47Fr{k(GIVC*t?3Ln{~|0e0xszb#a*qr3`IS zfW73`HnO8#^Ilcu8MyfNG|K7XsH80lj6Z(z8If&TsEn0+EIULQl(g`&5R-FqY6 zEag@6An1~Bn&7RA`bsYp9?>nZlBS(}Ta6c*7JAFWO;wT$A{hlKQrY*^wya6G`7!9z zyrkoZ;baNC;(wFmuq~D-kLRAm%lJ7Tir36YR`uDRI8iGlhGuSGcyySg&e;G^DV{CT z?PPJG8IyJl2dEalv%mJY=3G(9cAt-pBdG1zwzw@J$RGX)uA8|t@iF7d-DnpUVJ*)C zH2i%=BMScp%}I34 zT{_#vL)^vlId2aQcY{wuV&Sq!>jkL=7P>c2V)#Qw+CTXULAidqb`DvqQRs&ar%BLQ}E+C8yO*OPAc$*I%V zamaq=*;MJ%&8<;X?1Vk-IKM!#Z0m>9>OoXUL@0CGF;)o_7QMU` z#~SuAMXftTt@j`Rl`keXK0eKE5kg7h!WKF~B`HL@j*LB*t6rw#assp5)HQ3auc5q_ z!{8u%mDjWPc}1+b3JK|SlK>%)$b4C5x76?X47=BfM76fSB4K#<;Bdc*>v;dKjGe5D z(1KwaBlF}h3!A-FuT1_Av8+_a@OfG!?rp`2ERotaZV}{E&1qdVs&y~_}8K7+8Sdw)J_@#%BD-eyQUR(0PLMO3=jJ)@gq(rSX0*( zzV2a0?bgt$j~XMF`&XGZ6_LAw=<%5cE}7EX!MA_qNLgxm2;YJ|XU#NK8!=AqyFb%1 zLdI;+(lYFH)97+Vl92tQpez174MX~5{&JmbwzH0bu&ZILPjwxq-o}S(L*Ejl)L0NS zc=eTiMt^@7xY$I_1lRhIWyh80y)-mR`%l#EGH7TegJz;&0uT%wA8_;;=n+Nj>?nSz z8>@M(G*HW~#O^4*C$pi?A(S+boZQk*Gpl@{f0HC`we5_-XCFuY1F>0v;vu|mz(Sb` zaBBePGdFQg+}x<9Ds zO@W?{QVb!h&W2m1fIz$n$(YK)nPmXhv&1%_r#^KAN9H=Q>8E*@vb#tqN2LBj=UMfC zrFJ9bdwP6a=&Y!hQg&PHI7lRD^X(p`7sFuodB{@iDCte;8L0&j$7>+KgoyVrVJ*BY zMRX)VF@ZpTG1xXLvFI*|sTy!*f;K^A*dsR{&f5ED2lAKLVo(sg0 zHA!*^i3MPmh!pgDfbRwnY_cCf@3|}mR?GBLU9+Sdwsnj_cfFpY zV#zm)f+s{->m+t{8DL5uV}K4yj%hIB?o{&~oT9~68qdvokB?j9qE4rI7US~Xqz(3D zb}d0uCz*xYzP%$xwGn&Y-`qFutj&S0~au>vUh~)-K+#Eunr+k&UW$$8#==;M(dJ9qX=sU;Fe<*Ku}0Wk4he zUYqOn(Qzhu{)f#s%MsZeV-LPJxy}4~n!Vg99jq+9mqGsWyJ~7!r{syrSIDDsMJkft|IKb-hwZ#-)JDue~hsV5*!rR5GU?M1Cj0 zkG`xpadh{QriSsP@~vfp<+O;H{)3vvu#59FFFNBtRe(A#sM>-!o`k4EFm2J0WdycK z3my3~=flx!*84N&6|pZ}9w{vy#TC`IwH_^%sm zc8!)^xCF#Y&L#b8bNIXHST=NZki}kC4<7^PH{SI}?4&QU`YyCSMrQ#kj{7c}xrlhzR7WUq1L?@hzoa7u&TP-pORdr$ z7)`VHQx3%YPv7m|k05&%qUwW5*rm()QV5*N_?u2X!M^A+vktMmS$260Jx|5zW;R#g zl6g=WR;%0gCe~OmvRPkRwZYGs&yT7o`Z?{fwK%Bnhv2qL<9IXwaxkr(XYQ7quNOyx zGz&eLqUbxh=Wg1jBk39>9LZ9Hys%liBoQ^Bni!NPbB7~=x=}e`FpTkE5G=;x?c-wnvTnjy||hSx-I@fm!uzLK7C#v(X4`cv}0+Xk1-5) zi89hO+++>qMVGSKzRulzlOD|0yU;6l%f3GP35}Ll4Gpp!6wudgBYpYm(q3tvRYs3} zei@ZMEB&rDvO?w|v>Js^dH^QiPy{f4kj9tt+TEr(+dCZSdveV$io73hnyk?u7yWV- z^&YaXo^Z>lslUG)LuRpRosl6NLasBg5~BJL+lg2?`NK%N0)yB*MwKq^$&XG4PbcI- zZ8{J^c5a?tu3j|boe6w*IqRq<@CUWD2MESynWZ ze0@8bCOudsx5h_58Z%ip&6hy=LOx-iwv7;2Ha6uOUzBM$-Qnl)9OAu%)QdbQW$I+) z#+W^slz5D*Vo+gEdqDU8S5bwN>_Fsse@g4C1WYNfO(b^3^N9P8@uIYw-#>mr)Qh!k zWFQN%lWrA#czUVxH;~@f7spyOyy(im*VFeF9}hsri-!FCAPoK8TwS4ORH7VxhMq;1 z^XQR=w#MeP&W6d2hQU5u%@L>mtfH7`Zx;IhmOT-=Oy| zrK*WxGAlIAGhN9y)V_Eji^5r5cOnL4ICHb+-wq+U{4KqHm%YXFi{f8Rbt@?0q2USV z>SEj$BFU$ZdXk+unmC^M7rzu^Ux8hm=DxL;-hZPe|Bq^Q;OF!y7H*F&sl2Wa?LYg_kc+~8Yn_A9f9QUhLs$Z>X@3JPvxO%t-y4nRhhzp zp^7Gi;%F895sw5caJT-JbMTja{I4wRz5C^%`I`xypFj?S}lH zo0J3mZ2&qX@wyE zMB9w}6Kzx8b^vHJ6YpgKb*8l|U;&n;h-oDF3HY^-9|25GwTa=xW5Y6pd3J|QV-!2?{0d;r;x;9##?mqlEMB&ADi{J2zL0h z1Qfy#_>d54VdxhuqC>etdvUyJ|6;Kfb?hk;2;!Cve24K#5W#Ef@>%E`%- z)25!*nDtL%k?pt}hlkb;z(~^T3;*FX(o998F}2I*#-93p`GT8{7o=~5J3qN`DVwUt zDcpH_?y)7P$mqRM1yjLpHdT<)xNDzfeO=u9Y^rn(!PM`jUux2YE>!9}```Oi_f`ya z`&u5Q(Z#~>>`R@Kp-%Ho-+(=nshiN5kPqTi98WM-LgY7Yd#3B~lwZ4#d+C^|j;p?^sKoL_vU~JoGE-@8^;*^ zmSndN{#qs?UyKK6fF5mUr@%?n&aixp2c-D;s|OUT>nUqUMj!cjO4j>wu#zOm>H_2* zX7Lve;1{2!60yKY>;<(x&IjW9#i)u7Y|^GdIJk5%#R}lM?&?PjD~rU7Tvfi^J^x|h zJCg7TP$eGzMU_}|p~<^s#LOz+ED%&EcwGKNiKucF*ma|Ek97zxetN$_33u^`BVIM; zqW^+{*nRr(GLXWkP4Xl9z6bCFp)2V8s6a)Hq!xEkj_{wD6Fl z>*gi#xqypC0v54(J47;A`D5IgzS;3Bkg7BO<^H)ubU z$QT?kMD*AC4T903OHKay(mz+@pL^qXz}O>1*Kg2mMv`#wacQ*4DiH33E(`)e&U7Zh>J3o)}h9fCJ(*B=4 zg8yF&UH{eV{XY$H6aQS_|B_na|8#vP|GB>Z(Dj}Ahp+FaW{pyT&}D+YO`@N8x`U^0 z*Q7f8EiiT$1argb!{>n$s^nDWzJ=@am^=J;# zvl&l7KYWo;c+6@)<-JiE)_YArduigD1usRm6Nikr%Dn6@^|T+6{F;U`i#ugBD*;^Ka0Q zS`P{Dbxm!;ZB(Z|RtVY-*u{xs>Rzu(kk1!nI;<@F&RmmvbcboZIJO@n1me-IDxOmS zI);}>kB}z<*vw#z)(K+Fqc$LI)o64r`EJvPd9VKI(EEDb2Nvy^Jwd)o!4?qYo^If-;9iI{R-so0`oS^*&**RxJ+=3`s z^hiPpfs}oJ&z*B;pR@OwIWud`z3a~G#mdT`(3J@50B18RGINI#6_lspy*^bF77`P6e_J2%ekRmJjv{2mRs z9BQ@)pTPiJM%-|EyrF*msO*el=MxPo=hD#GqerUxJjwpRP?=$nWLjIKTB%ze;^DAc za`z*aOiO+Ga>kXT?~$*=MRqHTDc|y@o~#r)%U^5Fb}QLT$?wlx)l)gA?JJn1ODQh; z<1}9k5ejrOy!7L43ueQoFU`4hnByiaqMu!sEEsn~zr3^_raK`zM+44h+%hT zqD)}!E9)a%^;6tdK057S>3PYQ+xF^lkbjR=AW(Fw{DVXWMcL{xZsBkkb#SWG%p7_6 z*W){XLr(oyqH0(=(Hh^fhziSM`hZQ3b0@wM_+mLzK!48z<;`=99!;{pla4X&M1RjFctF3pM6y zEGo={dhJcXX{xwtO|cb(Ng+lzVkvt04Ar@L*k@>U_D=tMa{tiwNzi(XDSY%Wtsz74 z?09+SIn57O>HGMU$3qk;3xgNnMl@d+>X6;L%tQ*jm5TRLDYwM+oh|u^V4wx#^>^1d zK88Q$xCMATV~7(#0w#xeA8>IjJD{mRc^6VKO@e6+AI`w5TzurGBU=~AW@CD?fzg_E zZJZb4JhL(7YCJ$BTAqtsq=FFLL!iK;r41+tbi*7o_#Gg6>e(I+W*{Nc(44((mp#2b!2C^drjLH@TW9_U%$8;LKK>@c*6T|B0nnX7 zY-uNix0S6hK}Fxrp>SS~G+vnUK#+MSw6gFh7M-$?fqz4$1&G&pkxbC-R-m?+qiHh? ze2x9F0}?mRE*&=hp1-!bdR$KFhvcRENnNaNA2VP56z$9a5$t+`6)}??NLpt#S*-W+ z-OYf9+V}F^3#;ETmi_oV1gZiB>yOfg04W0at-fw_AinCtCFby%U2q8xt&HyyV49l*{YDhYt5W z4xN%8>w`~v373QW8>M#k7qhEd`v%WB_wh7#VK}MB&Q@w|vfkrE`h8Eh4^qplXQ!CI z=wn>?t<^S`?K=LrK1`2N6)Z>?8~c6cn$7h%Vx1hI56qW3i;{ZemLbU-s7+`(*Zp0x z9F|427(2A)UW$&XbECb-H|8e$qPP6vvqv{x^FN5xX1pse{S)sjH4VX)0+PXMo81eh zDFj$&I!jvZaQR#R)@)t(LA*@bo{L4*)yolL8Mg>@rY5K@bT1$un&{HXQB0ZHD8 zpWVjwiH(&Goy?C{?+;;u5A9T&%;7uRgfsZkWvvs$ZPL3-Eny?r3AESLce|pk%d_c? ziJ6$(0Ee%(bEnSWo0j@h-@hRk;$a3=v082}D=jh{xm1Z&1^HY>y}gT!2VjyS(31;J zeeaT?6Xg{+$n0|TRp3qh?gg#!AJxq=5uKX{aMb19E#o9F; z?p$A}eWz~?goIy-t7Hte*h78u#F@3?Zx?Q5$>8&Iy4+UIxMxgv>I=f)kE&RHkz#p1 z$M)UF-tH)@K#~3_80(V)dA4Bt3uIA*#lmx&Io4vPLDee7`{EU*nP&913H z3oH&!3wM}0XV9u;mpXNwGaV_sKQdFZ?ovwcpQOe(`Dv9|o&O!F1OQGzdlsmgjj}G) zHOM$wxJ~5Rd2K(Jc<;6%Sr&gqd#_1%Lt~X!d=ElCGgY!x53dc1%zvTSFy{3JUtw(c z<-v`!#kQl*+0<2QcGV$;C_p6@vOG97*fD=$oG4o0H2t!%>!7~+eU6Y=OcEy;E;_U> z(CSw{IK{oP@Eql62-@PkjMdJzE3}&0l6sW%?F^MYn^`qt(laaQ30w-m4Cv1BB39z0%XgV%BkN{89eKN{{m^yVBaRpV5XRx=h2v2j(-Mc8Wvc5O|`jw<-$lbTzaz6h~9Q#|7{GW_z zC;p3lRvhMSDi4S2?TlPMtY0-{EEJO>sP4-qdz2s zomNsfA5ycVV*IEL7+eurkZK(?A5QHYR;?w+Sn)FaMBjt<+rYpEB9Bc$c!4Q zrC)#s8vLc`Pj4*uJp+qfjwV)PEqc9q9Hq&##(8gl1+}O{vH{-7?iOEM@)*3E3>jIk z$FN68n(Ebld_y~8y+D%^82;JcgnoxptfZ;ZqIDLSp>Ta=gd7%enJGDA>{fKuqY!rz z#bgHH_-gcokU0?Y7>7?4;JX%^K4`y_vHG+vN-+&?4W4S=vXRP1)kcu z517H7J@4%8nn#T7ug2^-#ewQVS0fYoH&4xrrvVa%!d>QkWdR$7^A%~t{ za!Fi5Dz0}x^alejCp?%wKmTTEA>_;(yWF4*=?AV~-XQrz&U{C&I9`y3zXXVhO%tN$ znMS=TXb~EtM_`p77($ZbO~x24!zu1&U~?bOHe z(p;?R%=UING!v5y-b~9LnAyJd0z}F-zW)JEgv|jUxN!s2QUGdGb>}*>zkT?3Htb)_ zA5s>2{t&IUfGfq)JR@rIRNwuEZ*iAgiKP^1bGmlkj3&0aC-kslGXRxQF>|%uH;b9{ z4&mk`CZkhi#c*@{SvUTDF2e`pjQY>cmx6o@3~fhnnVa>SpT{;UEEWr;%DxDEkzQ9z zP;?c!`+&4c^iFM~TKC|A4Wd}o=z;+}f3-ob!}8TY&w^=v`Mw~ycB7~32x(W+jHCNU zA3xe7fE=dA-5MzjB&QfqQ7XB4_34hT#904ez2`pY9#`0l;Hl{A@Tu$`2b(=2YG>m7 z{3GbfLG=r_k7OwYchwEbBvLHO$ufJIvJK{wC3JTMYZ!gY*!h&u)P=7mQG11ER2v#79cWZ+p9oFW2@9?i5JGC z$}XL$a0#uQ6Vm87V-KIdrMxVt^m(Jpk#esBH;-@g#iCZMcxf=Y&c$8@GFkZ-MI!M*VDH+6>7@tZgREH!(F?Sa5 z`*@(W$NCUTqTnL#8pgFsL#QQMsWxIJ8r54H#|}C9E|1JdsojtJ1i36tE!mOyBqgNo z|sgB~UjJmFgq_efUM-Qlv;x7%x1aodIuy|W@cluzvmRl@XUud?z`tBoQr`qhlB$RkRd^|*q zNzr5W8u=;886J9VVP_QkKzWd%8MC3VpQ+O^`PpEDOP=1X?^n>EE;om8+I1#jAE+Jb z;ovlHA5ewuDBAVl8L8Bzr?dl7+1TW!f5o1Ja(}?6zHU8^XNcxmY6Ie+}kxDX62DuYZ`wN_wE9_>90kMtoxtFP9CygUGB0?17eA19McnXvOa^_TT zCsePj_0S&kP<#ZPECYBlihuT2v<1a({G`#35IZymXz_rMh>3LC=oIVE>aS_S$#`cD zzyMh$0R!s5jugftX^CF>IZXd$b@|_BoQao6<;aI99-;(x?x+hIb>3GYn5(JDO%HBJ zKgp%qCy%2q-9H_kJp5VF7zn_rOEwlT#z30`o$m0t8?B=Uss<+_olZz!hikL-igWy0 zDo<(%k;Yqqp6sL$Gz3BCjqp~^W^|I7KWm9*vZK^b8QT?Y65dvagk>|Rok4hzs?-D< zVw;_WRs-x;e>sFQTWfxAuhI!!oi1SGY$p~ylh65Hd5sKs6~5{t2+^EPGUt%n#Hhgt z`dw{Z=rtXBF*Y3(WwO6;ip8)Nk966UcRgI7k`j;^We(^usBnm88HSD~T=ZLLx4G7g zZ^EQ?uMu>|+}{{~j5c7vl}jEy_DN!6dS&PPHFWZ&>pBmNatVbOfuRMKZVSn(-n<}w zFYR=vsCUV?eq3_}s7X^+3>}}JF1V++4sG=wgyVJE1Il}*4{x&@G-m_y3@`5HBTjzU z3j-b)dJBpffz}(w-*3zs*th%;>o4v4Y{n_T>vmk{xo68XpqjJy2Ef9h@Q=TOY6{yf zC@exc#357`UmMc9GPX^c&8CH$(z(B^XU2f;4BEb>(5-N(3jq$uPeh-3BlMNIw{cW!*zNoIcI{)trvBBm z`_Q-e9UX0gm+xM}f_oWq`1g@;zI9NDVX%-i?hV7@ZOh|2|oOiGL1_8Md3q8+C)2Xo1A$IbIHc zc<$>p6|&)V2+l-ZEKLtI{>&1bZfeeY(}p*jz^;GeIc|2ok3VmOGDOWuUENT<<*~~V zIR=FFm^xaL%*L25X-6;WtCxGaoql7KsZD=WgV`w*L`8$O@Ac+Y!A0+7k6SW#>DRDC|DbGGh0sIVrb9`vJ{P#@n@P4T< zuYNtGa{|-NiF7bcLK#QZb6hAXpL5_zY~bWUofgR7utyoi^$o#?^GWee4yDI3cLJ7C7XbJ*gq7%oBIWSa>7#83H$TQK5wAB?-@dFtQ9mWPuSWq_ z02|ILc?6K=OEA+GmMYbj9Xy809;rzb=^o~MPlNhF2v33!Q45Re$PVq^{$#4>f-HAV zbh>J#9y{9QqH?wO;Vv|hEaK#$hZZOpgzN|io`CG{djQte5!m`-aPX;JTqhuugv92yXE9*CJDGB~ z8p;{ISxa2JB+VMv8L9z)ts_T}1Fp70wi&s(zi(z+jI4{&i`hD&dN%ZtatA#LnzRH` zal`c=>hW^r`Cm=0_gK9Q<$tNTH(Eu3(k{wjlEn97vOADmtq|v6FjnS)c;|xKQ&!ou zbVsICmEa9S0fDD!rfqUWqMr?68MTv+ZP!cdUUUwIG`d)Bd+E3Y5)|6R6R!;Sb27$_ z*;|GwlG8+T7!{U|;%lXz+c1p+dVxKUs>T-YnLRW~zA?wE#CqW6T71Ow(9=5gKfvSs zueD{ifPb~DB9yeyZP?l39suxTM4bwtd`c^BR@Q<=HuZI{nGDhVUjbD8*0TPi<5K7e z!Q*6O;e--!9e;EDPZiPr(VPDD`QQ4YW`DD?ivCNmmjB88$Ug_WvTXDv1{4Aw`Y&9d zmVb|V`?s&#cwjA;kUtie8(ZG@FggkVI_2#8$wGA8o7v>8+`tY{vhL=c9gRJ zh(X%k_w0uqd~scdihO6U9+FFor#2d`*Q$z8=}xvD5?^=2W*$W9fBdw%q@l>Rn9Xjw zSlG2dW90|8z&?s(?KqlXFD|w`Q}!bfk=#B1NSn!cD4xL|=)`|!b9J1|j<}9@z;ey& zOcDih<|=S`_gm_7?N!TA4w?3x=8~m}8p@MdIYTs6_@)(xxT8;*F3Xc0mbH!XbfN`S zS$=mfCUdIP&vCmwprlZS-NV>*S)k(8&ilD^HDcrH7)*K{K3pkG=X|Pr3=^hIu)vRg zg6}1uHOXx!>EtxkAVUHW$n?@+V5IPK0PMpVw16MQo}XEQcUZf0n>1d=RdVc%A2az% z^_^X5Xnc09LU=IEw1GVa_qwwXrcC=(bu3D-!r-SgMfk3$0UlR-xj#%)~(c zsz!CcA)py^yHo{{U;Y+;O+0k!j{jFCdv!IO2<0T|5%M|j73@(*((>-J$@(*@Bp~X# zAJ11=SsS}U-R7D6kdcNmgel;Jo8X}PD=2&0gFwt)fxk=&9^hqoflG&n>lJNvXj*f? zcP*1^j`KNNF&uPBqihE~#48Q$6(@9l;lF|?699H^b;zSOPdBe9eJ2xp8tUBp9cr)H zQ~_3PWCWn91zkEODlPTB=zA0RqM*s4C4C@Kxuh6edF6v~S3u7!{f_yl+SU!-kVc zR1yRidp*$P{TIQr+M4dv3g8|qF5)_tEddQ)=|xy$DE9ARFr$d8c{8(cI(@b<>gP9} z_E2dt%T!tgFrLm~s%$+UJRHo5ZHbGF+zH5hpL;&OVLEbdEmJQ4nWLSi^5q}zRP&#U zhkxF*ImeDpQ5{cD_(AUSk>HC*s|fi!<E+_IXx+CNhJEvfgT!%{2UvIlGVr4oW4c&CZ~Lv1BYnphytWC+1noN0n`n#65gc=%r;D7 zYk{|Um&&GLsi`+V$Cx@=f8<-_nVeL+IF78WWze_WBLb*wr60}BE65aXwOQPNG(01l z(gWpaifP>PVDKyLXq1W~Lj3&;Zl0v(*m2a&$X3g~Vd^E!uI@?0gZ-lR37Sjtr2+1X zD5qxVQ?$2pTh8nLQg^>E7~^=|9%s-oyaQT?>@wus6n&3}Ey>}E3qS92S!wv>bLKuM zJ9URA?21bc(AFA>-~API0|sP*KIQ!iqFqKgsJbl6hZDq|d>7~rl#$Ha@EL_(obqdP z);+Fe>)nre&+K(=6nri0_I^?=awF9Vf`_pG3c3UX6U>~mfI2IMAJhmR zo!9ZsWdxrAsk=M#Stwqj_~|)%UUgqSnqA&n@QJh*W&Yo)Gyh8g{6FSD+8ATGS3EjA zB96}cv?`AyYw}P!$>7!AOW!rap2mD@Q{5ilUaCmI)lVm&r7=jukCBpgNk48Se*R@V zWeqBmb$aC>he;Fo|G$zlQ5%jBJRJZC;C`>!gQ|CEXIY%H!b3VY0A7))Y=WxA!~=Sw z8_iQ{V!vq<7Ses%eLZFd7hILWnlz!LHg#ViM^OBJy|#{Gp1?9qY%QF{k@qrQ$zjPw z=|Dm&cg#FcY0BN?tgU+0c|?sbWvmg+t1Wna^*thFNUApTY4>{16V<8-*Y~cgbeA6{ z$#i!(3y?+_b-Vor#D921q1X`Tur4}pEHSFs*82LF8cNd5kCbjkf71jfgV9|GI3~So zo(bcy6VR$WRvUM1-)uPTN4M<9Fa;;6$POKfj{=@dukS^9R&o(Mmm2$o!@S}EjRC#d zVW~rIMJcJvJEMK^qWS7wPbS3}8J}tZl(Q<6D@cF@nH2$P9G2_E%w{x1WX{PoZE$-{ z*v34Yvg1h_OZHQhVZ1s82iW#q3jJs&m)!d z=`DzCoaEZuDsFu*qYt#I)F9|mAv$$Q8O7;0vfV=#37gcg+?DD`TOR)!=UlelwW;%I?h;ZW@|IjkbybNPLzcelQT@X;Fuj zYVTLp7|E-9cDuO4-%T*_{XvJAK$_rNMw);_V*tm%WQjpW9~y%3Yoj-Y5~2(5Rf zzvpyI_g^4SZmRQE5u_0}u{vGQ=muT^tV^5FPC)thcW?Zf^Y(tZ&;Gs7Grmynz&h9~ zxFdt9(_`nO+-OAyz|oy-T+i3ZRJO5uTz;Ew=--}T3+g=3k z{|G>{SjZh{PQh+vCy*mtXm8Gq{t8+dheAlFho}LzGfB*zd;#4t0}QWvWe%e$u8@=!%t%zj3zz#9w)0-Nt$e30qmBQA z<(t>EWs}C*E3PTm-sZA=-t7vywGobcoYWrDzZh(wq&WJax8hB(FhZI1UhVScB%Fz; zJtyP$Qd&~Hhfx0EUbF}Uz@KL;H1xR(d>)a^pJMxpa5{lG|3evhU{R^g+3 zVd9%iQ-x$*Xc%gTBm3l>5ls&hCR_tAM^GoSV7g;(HJIuY^%pHDob;8ZoC{l5I)=TI zvi)HYT#T0>Kszvlomqld)H82^Wyo2Vh7`6jAuAOhS3;`NrodZH=^n5SUCJ7g3$=<4 zrbAAu0$*LLCFr9%Bm>T>qOc;xMxJ8I!=LM<>98pE3ud>(WZANmsIB%8G-D1Scw=N8 z4e9(nD28M56~bU#jSn!l^|#Vd^apQ(Tr7AYk>(R?#`KT)699!rCCWm%t!zvs%60cd z7|?^H2YktRBbtd;mQn9aNc)L->hcBkt;Wp!yeo4HEVZ*=V<>y$XAQZ8T~-7rDV;UZN0ZoiyOd zd08!wg&3#z$JH$$MbCpwa3eZ-FG*-KMW_3u+3-1{h6-9^dnsDApVC~1DeKXLyYIvT z)wX31FnJ&m04o*7N;Ye}_gm@0A>AhG=H%xdJ(v{dFHCJUbJa>y;yW)4;S1OZUe^p#;GX(GI#q@eu*PYx{IOa zO#^tyHF1@fojw8$I{U2x)vWXG8{TtCt#pYbeRJBW74oqzM7q!a@pQGMA*Uiw)>`XB zyxE7b7!0JOpk&GLH0J8XK?AwZ4OW`B9_Q?akBiSn#QUu^RZMa6 z!l#^8p6fT&*O!#Y=*fHmfu8DB2$C{e4*?!beJsEpa0cR`-@_Vf&bWSQke*xvehF(D15Og(Ul2cUdub9(|9Q&uc@+5O;#BjrN% z&0}&>4PEJv_8BoZth@xlJr>(p$W!R5P5zMZl*Y@>8M4C|#^|VIlWc=yF?5Xv3Bm+VY7|PwHxUr11>@wZSnk{yQ*0nXCrRHVz zi;2W0-Np4{!9*qi-r(vH0ikae#~{tHuxNymoo%T;l1_D2?3K}?GC9L>LojZbBlncVB&(64{LIc4_p0g<#ew)b24GhWzJPzN;XhFO~+FXWqX!M(@WZG|8&) zzqS&ZkCf<`kAwiq1eJBx0cMdoXLN2_XpE$VKmn4!-!!q9Ih5Wu%gzUxCO3Ei+1o?I z9v~qi7cJ!O^jC+;kple(aEpJ~=#Btm*>B)mFe|v%D16W2!fE~GmaDK4{z_2~{^DDL zVvGA9@5+M0Yl}^{M|V#|D3_y2zn~l`^0Y886Gojc7ON~-Q^z#>h2%k-v-s>^oB@AB z8lgFKyWr!px#bIM2|>7wR$bheZra!K?#jlVDYFUiI*}Zv0RT|Oqjs67i#b)ZXekwL zBRKlQyNJ5zL+Zn1#c-K4!Jw=wepK|8oJ#1yZ%Ar{REeL|l1^l^RC!K<(dfZ9yN|KV z^HzE84?i!a3OfnJ#*2?`f;5{IcWvE1<1FAhYLb z@_P-{7c6MF&9FM;bm0r6GcI-rB8woSSUvqh?I^_JgoHjp;~J2~Zt_e;d>tuZ4zMxM!Dt zo81I7m5Z)w_|mnBn16Vhmlt}MLW$?8_*My!vN!BeyExV?yd+`R8DNm4*5Yf+^oBRn z^=AK*Fz}srrMWO&u%2R9us6aI+tVdAtu4jq$8;MHufY2YOz<^l>>EYdM^Z%Hs%d87 z7b~ri7EFl+XQ7H@|Im1Wf19}d?J->3k8*K07P3`|Z_1|WGnjDukqWOe6cL05XWJEd9;5!zx0f<2VRg;n2nly1=aMHMsOj72T zV6*!^i5mPBbHu0k!Jt5w5^KcimJD2{u7pFH`Yuxj$Sv0H%a2b3r-2Z<5m-hQQyoi3 zopgYeA}l9#wXk^=H`~}Xytw_cG@&MLP5m<``8sV5)Bc4*0V-HNf)y`ROytJ0$GjW$ z4poToc1is>Dw`b9@-{AP{i`qsk#R8JX-EeNhI@p!$4uI!v7MhtJ9&G4M9=ODQqtk=*Q!(p z*TnCyY->_NV~*f#2+c_{J)W+e%*snY(X8)(Df~ihT%P)o^vvu`d(z97-3cLgF@YgZ z;Ksm=lnDOJ%ZwEcCo^k#ESH|~>YLLvZf-rFPHW=0@|t{m%ilzOfQgS+T?IB)`+GF> zKiuAaZiOae(3SDOz#`11^NWx@rDVtna}K@8*0kB(t!b|uIy&?7ITo3}K}U>{4vH)a zEYsE^uP_tt&SAU56bgl8s^C%!ZzbFWBR5=o9btc z)e9GmXaFvoLse(_ZIe3fF|c*XDK@7__4W`^#ghKE&!z9hO3OhWQ?qo>G$GB3wm^1q zvec|kL)lWlCBREy45mlld(A^L8*Z$A7663*&I|pQ?A?FE=e1;eDLgzA3{BNpY^><~ z^qHFdjCZZJ_MSTJ4;;ztx@Uq8Sow#jK8uaSL{i@ahDXAn#aWI`Y={!jz>{+t0|PuU zN2+31KNmZzy#%wc(a~0Fi}5QPQR}c-M_SvOO*vA$kYKUWcb&*u9b+VlII$K1!Xy%0P>uWnFjcN|6k58iTMtQ+M(7nf>A3v zIP@fO-*A%XNLljkBOEW2mk+X6&~omiXXzjmbUcUopc7)WV?rk=M3(bBpW_~o=iT%p^v?C7~=sp{A%W1 z5BKa$+rB3feeQ{5Hf!@jtsH8zQZdnzx@+YiRqDIOw~S4}(;>Xnx{9nrR}Ht-nE+yh zcR*A*Nx~O2lmi4x&tk_OKFZ&`Ezkmj*&0=kzf&H2Xhbb<5t>#Z^ONjNBl(>u?8}&z zBSq*<+ncQbNmqyn$ELj5$V-5dD?ME&9p+==?*%sO%k3-8vgWl0neJ`uZLI?@sIw9q zRT@8jAO1c>4V6rgeDCk|=ZXKrh9`dtCU0CFB6fOnN$m4Yznh@4v-xLCBYsl1rHa{G zBud;YRcA0OPIWSKHWC3Dn}o)wE02Zv=1^0z9v&7P7XO8&jS>J@;epmE@acY;ygUI} zz;of`O;xz*1iuLiiHR-0Cou8KJVY$D=*xI@?MUkw_*TAbxuvLHb%^Lr-jw+l6IXyo zPPJ$XePUMr(hZkG+oX!RDIXY|>f%wy9aKc|e$ZniE^8s*Vg{|f;0!9QnK{UHXxKEb zCm1(OhluUqNFsl^wsq{!i~k(3|K5|N*vBmMWs?X+{g=lUm1i@nL&Sl_S{!EDPB5a< za8|Fy0Dqt%(Zzt#kb^?%!yFK;_XVfL2O%J7{lA1_l0ZiqKz(*1&?28#kfhG=zn86S ztm#J1>COBgF)Lbk2G9+i@=L=eBlnG{gq-9FcV--C)S2B_-#7;q#MOdNP0Npc!{zdh zff@fi`g08a&pgNnCJCCgDX7G{Al(gg<9ueVDQ;xZh!XU39u}G`4pEqdX82G`fcQA_ z|H2^omKp@|Ed*MukN^=B@#jR$4-);*rKbhb(SkbWO*?{XO%_LtzMr~H2bcZfcA@&PiY z9Q{zo{G3yfhd+PBpBXhIPz?F`L;g*%J(mLbWuwc5M7RHOVg29C5B^8WCI64lrM)(a Q5e+X_`$G&2^w+8X1u%?H6#xJL literal 0 HcmV?d00001 From fb031c59c8916b27c31d93c5abb3d145a1e6aa9e Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Tue, 27 Apr 2021 23:51:09 -0700 Subject: [PATCH 132/706] [Refactor] Use MMCV MODEL_REGISTRY (#515) * [Refactor] Use MMCV MODEL_REGISTRY * fixed args --- mmseg/models/builder.py | 48 ++++++++++++----------------------------- 1 file changed, 14 insertions(+), 34 deletions(-) diff --git a/mmseg/models/builder.py b/mmseg/models/builder.py index c487dcdd32..9b68ff888c 100644 --- a/mmseg/models/builder.py +++ b/mmseg/models/builder.py @@ -1,56 +1,35 @@ import warnings -from mmcv.utils import Registry, build_from_cfg -from torch import nn +from mmcv.cnn import MODELS as MMCV_MODELS +from mmcv.utils import Registry -BACKBONES = Registry('backbone') -NECKS = Registry('neck') -HEADS = Registry('head') -LOSSES = Registry('loss') -SEGMENTORS = Registry('segmentor') +MODELS = Registry('models', parent=MMCV_MODELS) - -def build(cfg, registry, default_args=None): - """Build a module. - - Args: - cfg (dict, list[dict]): The config of modules, is is either a dict - or a list of configs. - registry (:obj:`Registry`): A registry the module belongs to. - default_args (dict, optional): Default arguments to build the module. - Defaults to None. - - Returns: - nn.Module: A built nn module. - """ - - if isinstance(cfg, list): - modules = [ - build_from_cfg(cfg_, registry, default_args) for cfg_ in cfg - ] - return nn.Sequential(*modules) - else: - return build_from_cfg(cfg, registry, default_args) +BACKBONES = MODELS +NECKS = MODELS +HEADS = MODELS +LOSSES = MODELS +SEGMENTORS = MODELS def build_backbone(cfg): """Build backbone.""" - return build(cfg, BACKBONES) + return BACKBONES.build(cfg) def build_neck(cfg): """Build neck.""" - return build(cfg, NECKS) + return NECKS.build(cfg) def build_head(cfg): """Build head.""" - return build(cfg, HEADS) + return HEADS.build(cfg) def build_loss(cfg): """Build loss.""" - return build(cfg, LOSSES) + return LOSSES.build(cfg) def build_segmentor(cfg, train_cfg=None, test_cfg=None): @@ -63,4 +42,5 @@ def build_segmentor(cfg, train_cfg=None, test_cfg=None): 'train_cfg specified in both outer field and model field ' assert cfg.get('test_cfg') is None or test_cfg is None, \ 'test_cfg specified in both outer field and model field ' - return build(cfg, SEGMENTORS, dict(train_cfg=train_cfg, test_cfg=test_cfg)) + return SEGMENTORS.build( + cfg, default_args=dict(train_cfg=train_cfg, test_cfg=test_cfg)) From 6ccb1c0fe5b721c41ed4c7842894d00c63d9a69f Mon Sep 17 00:00:00 2001 From: "q.yao" Date: Thu, 29 Apr 2021 11:38:01 +0800 Subject: [PATCH 133/706] [Feature] add onnxruntime test tool (#498) * add onnxruntime test tool, update pytorch2onnx to support slice export * onnx convert with custom output shape, update test code * update pytorch2onnx, add rescale_shape support, add document * update doc for lint error fixing * remove cpu flag in ort_test.py * change class name, fix cuda error * remote comment * fix bug of torch2onnx * mIOU to mIoU --- docs/useful_tools.md | 53 +++++++++++- tools/ort_test.py | 191 ++++++++++++++++++++++++++++++++++++++++++ tools/pytorch2onnx.py | 109 +++++++++++++++++------- 3 files changed, 320 insertions(+), 33 deletions(-) create mode 100644 tools/ort_test.py diff --git a/docs/useful_tools.md b/docs/useful_tools.md index 3e53152855..556c531663 100644 --- a/docs/useful_tools.md +++ b/docs/useful_tools.md @@ -53,6 +53,7 @@ python tools/pytorch2onnx.py \ --output-file ${ONNX_FILE} \ --input-img ${INPUT_IMG} \ --shape ${INPUT_SHAPE} \ + --rescale-shape ${RESCALE_SHAPE} \ --show \ --verify \ --dynamic-export \ @@ -66,7 +67,8 @@ Description of arguments: - `--checkpoint` : The path of a model checkpoint file. - `--output-file`: The path of output ONNX model. If not specified, it will be set to `tmp.onnx`. - `--input-img` : The path of an input image for conversion and visualize. -- `--shape`: The height and width of input tensor to the model. If not specified, it will be set to `256 256`. +- `--shape`: The height and width of input tensor to the model. If not specified, it will be set to img_scale of testpipeline. +- `--rescale-shape`: rescale shape of output, set this value to avoid OOM, only work on `slide` mode. - `--show`: Determines whether to print the architecture of the exported model. If not specified, it will be set to `False`. - `--verify`: Determines whether to verify the correctness of an exported model. If not specified, it will be set to `False`. - `--dynamic-export`: Determines whether to export ONNX model with dynamic input and output shapes. If not specified, it will be set to `False`. @@ -74,6 +76,55 @@ Description of arguments: **Note**: This tool is still experimental. Some customized operators are not supported for now. +### Evaluate ONNX model with ONNXRuntime + +We provide `tools/ort_test.py` to evaluate ONNX model with ONNXRuntime backend. + +#### Prerequisite + +- Install onnx and onnxruntime-gpu + + ```shell + pip install onnx onnxruntime-gpu + ``` + +#### Usage + +```python +python tools/ort_test.py \ + ${CONFIG_FILE} \ + ${ONNX_FILE} \ + --out ${OUTPUT_FILE} \ + --eval ${EVALUATION_METRICS} \ + --show \ + --show-dir ${SHOW_DIRECTORY} \ + --options ${CFG_OPTIONS} \ + --eval-options ${EVALUATION_OPTIONS} \ + --opacity ${OPACITY} \ +``` + +Description of all arguments + +- `config`: The path of a model config file. +- `model`: The path of a ONNX model file. +- `--out`: The path of output result file in pickle format. +- `--format-only` : Format the output results without perform evaluation. It is useful when you want to format the result to a specific format and submit it to the test server. If not specified, it will be set to `False`. Note that this argument is **mutually exclusive** with `--eval`. +- `--eval`: Evaluation metrics, which depends on the dataset, e.g., "mIoU" for generic datasets, and "cityscapes" for Cityscapes. Note that this argument is **mutually exclusive** with `--format-only`. +- `--show`: Show results flag. +- `--show-dir`: Directory where painted images will be saved +- `--options`: Override some settings in the used config file, the key-value pair in `xxx=yyy` format will be merged into config file. +- `--eval-options`: Custom options for evaluation, the key-value pair in `xxx=yyy` format will be kwargs for `dataset.evaluate()` function +- `--opacity`: Opacity of painted segmentation map. In (0, 1] range. + +#### Results and Models + +| Model | Config | Dataset | Metric | PyTorch | ONNXRuntime | +| :--------: | :--------------------------------------------: | :--------: | :----: | :-----: | :---------: | +| FCN | fcn_r50-d8_512x1024_40k_cityscapes.py | cityscapes | mIoU | 72.2 | 72.2 | +| PSPNet | pspnet_r50-d8_769x769_40k_cityscapes.py | cityscapes | mIoU | 78.2 | 78.1 | +| deeplabv3 | deeplabv3_r50-d8_769x769_40k_cityscapes.py | cityscapes | mIoU | 78.5 | 78.3 | +| deeplabv3+ | deeplabv3plus_r50-d8_769x769_40k_cityscapes.py | cityscapes | mIoU | 78.9 | 78.7 | + ### Convert to TorchScript (experimental) We also provide a script to convert model to [TorchScript](https://pytorch.org/docs/stable/jit.html) format. You can use the pytorch C++ API [LibTorch](https://pytorch.org/docs/stable/cpp_index.html) inference the trained model. The converted model could be visualized by tools like [Netron](https://github.com/lutzroeder/netron). Besides, we also support comparing the output results between Pytorch and TorchScript model. diff --git a/tools/ort_test.py b/tools/ort_test.py new file mode 100644 index 0000000000..807b21272a --- /dev/null +++ b/tools/ort_test.py @@ -0,0 +1,191 @@ +import argparse +import os +import os.path as osp +import warnings + +import mmcv +import numpy as np +import onnxruntime as ort +import torch +from mmcv.parallel import MMDataParallel +from mmcv.runner import get_dist_info +from mmcv.utils import DictAction + +from mmseg.apis import single_gpu_test +from mmseg.datasets import build_dataloader, build_dataset +from mmseg.models.segmentors.base import BaseSegmentor + + +class ONNXRuntimeSegmentor(BaseSegmentor): + + def __init__(self, onnx_file, cfg, device_id): + super(ONNXRuntimeSegmentor, self).__init__() + # get the custom op path + ort_custom_op_path = '' + try: + from mmcv.ops import get_onnxruntime_op_path + ort_custom_op_path = get_onnxruntime_op_path() + except (ImportError, ModuleNotFoundError): + warnings.warn('If input model has custom op from mmcv, \ + you may have to build mmcv with ONNXRuntime from source.') + session_options = ort.SessionOptions() + # register custom op for onnxruntime + if osp.exists(ort_custom_op_path): + session_options.register_custom_ops_library(ort_custom_op_path) + sess = ort.InferenceSession(onnx_file, session_options) + providers = ['CPUExecutionProvider'] + options = [{}] + is_cuda_available = ort.get_device() == 'GPU' + if is_cuda_available: + providers.insert(0, 'CUDAExecutionProvider') + options.insert(0, {'device_id': device_id}) + + sess.set_providers(providers, options) + + self.sess = sess + self.device_id = device_id + self.io_binding = sess.io_binding() + self.output_names = [_.name for _ in sess.get_outputs()] + for name in self.output_names: + self.io_binding.bind_output(name) + self.cfg = cfg + self.test_mode = cfg.model.test_cfg.mode + + def extract_feat(self, imgs): + raise NotImplementedError('This method is not implemented.') + + def encode_decode(self, img, img_metas): + raise NotImplementedError('This method is not implemented.') + + def forward_train(self, imgs, img_metas, **kwargs): + raise NotImplementedError('This method is not implemented.') + + def simple_test(self, img, img_meta, **kwargs): + device_type = img.device.type + self.io_binding.bind_input( + name='input', + device_type=device_type, + device_id=self.device_id, + element_type=np.float32, + shape=img.shape, + buffer_ptr=img.data_ptr()) + self.sess.run_with_iobinding(self.io_binding) + seg_pred = self.io_binding.copy_outputs_to_cpu()[0] + # whole might support dynamic reshape + ori_shape = img_meta[0]['ori_shape'] + if not (ori_shape[0] == seg_pred.shape[-2] + and ori_shape[1] == seg_pred.shape[-1]): + seg_pred = torch.from_numpy(seg_pred).float() + seg_pred = torch.nn.functional.interpolate( + seg_pred, size=tuple(ori_shape[:2]), mode='nearest') + seg_pred = seg_pred.long().detach().cpu().numpy() + seg_pred = seg_pred[0] + seg_pred = list(seg_pred) + return seg_pred + + def aug_test(self, imgs, img_metas, **kwargs): + raise NotImplementedError('This method is not implemented.') + + +def parse_args(): + parser = argparse.ArgumentParser( + description='mmseg onnxruntime backend test (and eval) a model') + parser.add_argument('config', help='test config file path') + parser.add_argument('model', help='Input model file') + parser.add_argument('--out', help='output result file in pickle format') + parser.add_argument( + '--format-only', + action='store_true', + help='Format the output results without perform evaluation. It is' + 'useful when you want to format the result to a specific format and ' + 'submit it to the test server') + parser.add_argument( + '--eval', + type=str, + nargs='+', + help='evaluation metrics, which depends on the dataset, e.g., "mIoU"' + ' for generic datasets, and "cityscapes" for Cityscapes') + parser.add_argument('--show', action='store_true', help='show results') + parser.add_argument( + '--show-dir', help='directory where painted images will be saved') + parser.add_argument( + '--options', nargs='+', action=DictAction, help='custom options') + parser.add_argument( + '--eval-options', + nargs='+', + action=DictAction, + help='custom options for evaluation') + parser.add_argument( + '--opacity', + type=float, + default=0.5, + help='Opacity of painted segmentation map. In (0, 1] range.') + parser.add_argument('--local_rank', type=int, default=0) + args = parser.parse_args() + if 'LOCAL_RANK' not in os.environ: + os.environ['LOCAL_RANK'] = str(args.local_rank) + return args + + +def main(): + args = parse_args() + + assert args.out or args.eval or args.format_only or args.show \ + or args.show_dir, \ + ('Please specify at least one operation (save/eval/format/show the ' + 'results / save the results) with the argument "--out", "--eval"' + ', "--format-only", "--show" or "--show-dir"') + + if args.eval and args.format_only: + raise ValueError('--eval and --format_only cannot be both specified') + + if args.out is not None and not args.out.endswith(('.pkl', '.pickle')): + raise ValueError('The output file must be a pkl file.') + + cfg = mmcv.Config.fromfile(args.config) + if args.options is not None: + cfg.merge_from_dict(args.options) + cfg.model.pretrained = None + cfg.data.test.test_mode = True + + # init distributed env first, since logger depends on the dist info. + distributed = False + + # build the dataloader + # TODO: support multiple images per gpu (only minor changes are needed) + dataset = build_dataset(cfg.data.test) + data_loader = build_dataloader( + dataset, + samples_per_gpu=1, + workers_per_gpu=cfg.data.workers_per_gpu, + dist=distributed, + shuffle=False) + + # load onnx config and meta + cfg.model.train_cfg = None + model = ONNXRuntimeSegmentor(args.model, cfg=cfg, device_id=0) + model.CLASSES = dataset.CLASSES + model.PALETTE = dataset.PALETTE + + efficient_test = False + if args.eval_options is not None: + efficient_test = args.eval_options.get('efficient_test', False) + + model = MMDataParallel(model, device_ids=[0]) + outputs = single_gpu_test(model, data_loader, args.show, args.show_dir, + efficient_test, args.opacity) + + rank, _ = get_dist_info() + if rank == 0: + if args.out: + print(f'\nwriting results to {args.out}') + mmcv.dump(outputs, args.out) + kwargs = {} if args.eval_options is None else args.eval_options + if args.format_only: + dataset.format_results(outputs, **kwargs) + if args.eval: + dataset.evaluate(outputs, args.eval, **kwargs) + + +if __name__ == '__main__': + main() diff --git a/tools/pytorch2onnx.py b/tools/pytorch2onnx.py index 71f1bb7227..5660ed9004 100644 --- a/tools/pytorch2onnx.py +++ b/tools/pytorch2onnx.py @@ -71,10 +71,13 @@ def _demo_mm_inputs(input_shape, num_classes): return mm_inputs -def _prepare_input_img(img_path, test_pipeline, shape=None): +def _prepare_input_img(img_path, + test_pipeline, + shape=None, + rescale_shape=None): # build the data pipeline if shape is not None: - test_pipeline[1]['img_scale'] = shape + test_pipeline[1]['img_scale'] = (shape[1], shape[0]) test_pipeline[1]['transforms'][0]['keep_ratio'] = False test_pipeline = [LoadImage()] + test_pipeline[1:] test_pipeline = Compose(test_pipeline) @@ -84,6 +87,10 @@ def _prepare_input_img(img_path, test_pipeline, shape=None): imgs = data['img'] img_metas = [i.data for i in data['img_metas']] + if rescale_shape is not None: + for img_meta in img_metas: + img_meta['ori_shape'] = tuple(rescale_shape) + (3, ) + mm_inputs = {'imgs': imgs, 'img_metas': img_metas} return mm_inputs @@ -91,15 +98,24 @@ def _prepare_input_img(img_path, test_pipeline, shape=None): def _update_input_img(img_list, img_meta_list): # update img and its meta list - N, C, H, W = img_list[0].shape + N = img_list[0].size(0) img_meta = img_meta_list[0][0] + img_shape = img_meta['img_shape'] + ori_shape = img_meta['ori_shape'] + pad_shape = img_meta['pad_shape'] new_img_meta_list = [[{ - 'img_shape': (H, W, C), - 'ori_shape': (H, W, C), - 'pad_shape': (H, W, C), - 'filename': img_meta['filename'], - 'scale_factor': 1., - 'flip': False, + 'img_shape': + img_shape, + 'ori_shape': + ori_shape, + 'pad_shape': + pad_shape, + 'filename': + img_meta['filename'], + 'scale_factor': + (img_shape[1] / ori_shape[1], img_shape[0] / ori_shape[0]) * 2, + 'flip': + False, } for _ in range(N)]] return img_list, new_img_meta_list @@ -128,6 +144,7 @@ def pytorch2onnx(model, Default: False. """ model.cpu().eval() + test_mode = model.test_cfg.mode if isinstance(model.decode_head, nn.ModuleList): num_classes = model.decode_head[-1].num_classes @@ -136,30 +153,36 @@ def pytorch2onnx(model, imgs = mm_inputs.pop('imgs') img_metas = mm_inputs.pop('img_metas') - ori_shape = img_metas[0]['ori_shape'] img_list = [img[None, :] for img in imgs] img_meta_list = [[img_meta] for img_meta in img_metas] + # update img_meta img_list, img_meta_list = _update_input_img(img_list, img_meta_list) # replace original forward function origin_forward = model.forward model.forward = partial( - model.forward, img_metas=img_meta_list, return_loss=False) + model.forward, + img_metas=img_meta_list, + return_loss=False, + rescale=True) dynamic_axes = None if dynamic_export: - dynamic_axes = { - 'input': { - 0: 'batch', - 2: 'height', - 3: 'width' - }, - 'output': { - 1: 'batch', - 2: 'height', - 3: 'width' + if test_mode == 'slide': + dynamic_axes = {'input': {0: 'batch'}, 'output': {1: 'batch'}} + else: + dynamic_axes = { + 'input': { + 0: 'batch', + 2: 'height', + 3: 'width' + }, + 'output': { + 1: 'batch', + 2: 'height', + 3: 'width' + } } - } register_extra_symbolics(opset_version) with torch.no_grad(): @@ -182,7 +205,7 @@ def pytorch2onnx(model, onnx_model = onnx.load(output_file) onnx.checker.check_model(onnx_model) - if dynamic_export: + if dynamic_export and test_mode == 'whole': # scale image for dynamic shape test img_list = [ nn.functional.interpolate(_, scale_factor=1.5) @@ -223,6 +246,10 @@ def pytorch2onnx(model, if not osp.exists(img): img = imgs[0][:3, ...].permute(1, 2, 0) * 255 img = img.detach().numpy().astype(np.uint8) + ori_shape = img.shape[:2] + else: + ori_shape = LoadImage()({'img': img})['ori_shape'] + # resize onnx_result to ori_shape onnx_result_ = cv2.resize(onnx_result[0].astype(np.uint8), (ori_shape[1], ori_shape[0])) @@ -271,8 +298,14 @@ def parse_args(): '--shape', type=int, nargs='+', - default=[256, 256], - help='input image size') + default=None, + help='input image height and width.') + parser.add_argument( + '--rescale_shape', + type=int, + nargs='+', + default=None, + help='output image rescale height and width, work for slide mode.') parser.add_argument( '--cfg-options', nargs='+', @@ -294,7 +327,15 @@ def parse_args(): if __name__ == '__main__': args = parse_args() - if len(args.shape) == 1: + cfg = mmcv.Config.fromfile(args.config) + if args.cfg_options is not None: + cfg.merge_from_dict(args.cfg_options) + cfg.model.pretrained = None + + if args.shape is None: + img_scale = cfg.test_pipeline[1]['img_scale'] + input_shape = (1, 3, img_scale[1], img_scale[0]) + elif len(args.shape) == 1: input_shape = (1, 3, args.shape[0], args.shape[0]) elif len(args.shape) == 2: input_shape = ( @@ -304,10 +345,7 @@ def parse_args(): else: raise ValueError('invalid input shape') - cfg = mmcv.Config.fromfile(args.config) - if args.cfg_options is not None: - cfg.merge_from_dict(args.cfg_options) - cfg.model.pretrained = None + test_mode = cfg.model.test_cfg.mode # build the model and load checkpoint cfg.model.train_cfg = None @@ -324,8 +362,15 @@ def parse_args(): # read input or create dummpy input if args.input_img is not None: - mm_inputs = _prepare_input_img(args.input_img, cfg.data.test.pipeline, - (input_shape[3], input_shape[2])) + preprocess_shape = (input_shape[2], input_shape[3]) + rescale_shape = None + if args.rescale_shape is not None: + rescale_shape = [args.rescale_shape[0], args.rescale_shape[1]] + mm_inputs = _prepare_input_img( + args.input_img, + cfg.data.test.pipeline, + shape=preprocess_shape, + rescale_shape=rescale_shape) else: if isinstance(segmentor.decode_head, nn.ModuleList): num_classes = segmentor.decode_head[-1].num_classes From ce56e68d303da6a214298eb6e4dd1fc6ed42e7fc Mon Sep 17 00:00:00 2001 From: Ziyi Wu Date: Thu, 29 Apr 2021 16:01:34 +0800 Subject: [PATCH 134/706] [Enhance] Replace data_dict calling 'img' key to support MMDet3D (#514) * remove dict calling img key for compatibility * fix unit test * infer batch size using len(result) to be consistent with mmcv --- mmseg/apis/test.py | 2 +- mmseg/models/segmentors/base.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mmseg/apis/test.py b/mmseg/apis/test.py index 2b9cc17033..1597df6aa3 100644 --- a/mmseg/apis/test.py +++ b/mmseg/apis/test.py @@ -97,7 +97,7 @@ def single_gpu_test(model, result = np2tmp(result) results.append(result) - batch_size = data['img'][0].size(0) + batch_size = len(result) for _ in range(batch_size): prog_bar.update() return results diff --git a/mmseg/models/segmentors/base.py b/mmseg/models/segmentors/base.py index 58c31887f3..7b53757537 100644 --- a/mmseg/models/segmentors/base.py +++ b/mmseg/models/segmentors/base.py @@ -155,7 +155,7 @@ def train_step(self, data_batch, optimizer, **kwargs): outputs = dict( loss=loss, log_vars=log_vars, - num_samples=len(data_batch['img'].data)) + num_samples=len(data_batch['img_metas'])) return outputs From 771ca7d3e08fd4e786d8b03c6c899303cac12281 Mon Sep 17 00:00:00 2001 From: Ziyi Wu Date: Thu, 29 Apr 2021 16:04:15 +0800 Subject: [PATCH 135/706] [Enhance] Support reading class_weight from file in loss functions to help MMDet3D (#513) * support reading class_weight from file in loss function * add unit test of loss with class_weight from file * minor fix * move get_class_weight to utils --- mmseg/models/losses/cross_entropy_loss.py | 8 ++--- mmseg/models/losses/dice_loss.py | 8 ++--- mmseg/models/losses/lovasz_loss.py | 8 ++--- mmseg/models/losses/utils.py | 20 +++++++++++++ tests/test_models/test_losses/test_ce_loss.py | 28 +++++++++++++++++ .../test_models/test_losses/test_dice_loss.py | 30 +++++++++++++++++++ .../test_losses/test_lovasz_loss.py | 30 +++++++++++++++++++ 7 files changed, 120 insertions(+), 12 deletions(-) diff --git a/mmseg/models/losses/cross_entropy_loss.py b/mmseg/models/losses/cross_entropy_loss.py index 44798421aa..42c0790c98 100644 --- a/mmseg/models/losses/cross_entropy_loss.py +++ b/mmseg/models/losses/cross_entropy_loss.py @@ -3,7 +3,7 @@ import torch.nn.functional as F from ..builder import LOSSES -from .utils import weight_reduce_loss +from .utils import get_class_weight, weight_reduce_loss def cross_entropy(pred, @@ -146,8 +146,8 @@ class CrossEntropyLoss(nn.Module): Defaults to False. reduction (str, optional): . Defaults to 'mean'. Options are "none", "mean" and "sum". - class_weight (list[float], optional): Weight of each class. - Defaults to None. + class_weight (list[float] | str, optional): Weight of each class. If in + str format, read them from a file. Defaults to None. loss_weight (float, optional): Weight of the loss. Defaults to 1.0. """ @@ -163,7 +163,7 @@ def __init__(self, self.use_mask = use_mask self.reduction = reduction self.loss_weight = loss_weight - self.class_weight = class_weight + self.class_weight = get_class_weight(class_weight) if self.use_sigmoid: self.cls_criterion = binary_cross_entropy diff --git a/mmseg/models/losses/dice_loss.py b/mmseg/models/losses/dice_loss.py index b94ece3a28..27a77b962d 100644 --- a/mmseg/models/losses/dice_loss.py +++ b/mmseg/models/losses/dice_loss.py @@ -5,7 +5,7 @@ import torch.nn.functional as F from ..builder import LOSSES -from .utils import weighted_loss +from .utils import get_class_weight, weighted_loss @weighted_loss @@ -63,8 +63,8 @@ class DiceLoss(nn.Module): reduction (str, optional): The method used to reduce the loss. Options are "none", "mean" and "sum". This parameter only works when per_image is True. Default: 'mean'. - class_weight (list[float], optional): The weight for each class. - Default: None. + class_weight (list[float] | str, optional): Weight of each class. If in + str format, read them from a file. Defaults to None. loss_weight (float, optional): Weight of the loss. Default to 1.0. ignore_index (int | None): The label index to be ignored. Default: 255. """ @@ -81,7 +81,7 @@ def __init__(self, self.smooth = smooth self.exponent = exponent self.reduction = reduction - self.class_weight = class_weight + self.class_weight = get_class_weight(class_weight) self.loss_weight = loss_weight self.ignore_index = ignore_index diff --git a/mmseg/models/losses/lovasz_loss.py b/mmseg/models/losses/lovasz_loss.py index 859a656b9f..e8df6e8307 100644 --- a/mmseg/models/losses/lovasz_loss.py +++ b/mmseg/models/losses/lovasz_loss.py @@ -8,7 +8,7 @@ import torch.nn.functional as F from ..builder import LOSSES -from .utils import weight_reduce_loss +from .utils import get_class_weight, weight_reduce_loss def lovasz_grad(gt_sorted): @@ -240,8 +240,8 @@ class LovaszLoss(nn.Module): reduction (str, optional): The method used to reduce the loss. Options are "none", "mean" and "sum". This parameter only works when per_image is True. Default: 'mean'. - class_weight (list[float], optional): The weight for each class. - Default: None. + class_weight (list[float] | str, optional): Weight of each class. If in + str format, read them from a file. Defaults to None. loss_weight (float, optional): Weight of the loss. Defaults to 1.0. """ @@ -269,7 +269,7 @@ def __init__(self, self.per_image = per_image self.reduction = reduction self.loss_weight = loss_weight - self.class_weight = class_weight + self.class_weight = get_class_weight(class_weight) def forward(self, cls_score, diff --git a/mmseg/models/losses/utils.py b/mmseg/models/losses/utils.py index a1153fa9f3..ab5876603e 100644 --- a/mmseg/models/losses/utils.py +++ b/mmseg/models/losses/utils.py @@ -1,8 +1,28 @@ import functools +import mmcv +import numpy as np import torch.nn.functional as F +def get_class_weight(class_weight): + """Get class weight for loss function. + + Args: + class_weight (list[float] | str | None): If class_weight is a str, + take it as a file name and read from it. + """ + if isinstance(class_weight, str): + # take it as a file path + if class_weight.endswith('.npy'): + class_weight = np.load(class_weight) + else: + # pkl, json or yaml + class_weight = mmcv.load(class_weight) + + return class_weight + + def reduce_loss(loss, reduction): """Reduce loss as specified. diff --git a/tests/test_models/test_losses/test_ce_loss.py b/tests/test_models/test_losses/test_ce_loss.py index 35ef84348d..9619b60a91 100644 --- a/tests/test_models/test_losses/test_ce_loss.py +++ b/tests/test_models/test_losses/test_ce_loss.py @@ -25,6 +25,34 @@ def test_ce_loss(): fake_label = torch.Tensor([1]).long() assert torch.allclose(loss_cls(fake_pred, fake_label), torch.tensor(40.)) + # test loss with class weights from file + import os + import tempfile + import mmcv + import numpy as np + tmp_file = tempfile.NamedTemporaryFile() + + mmcv.dump([0.8, 0.2], f'{tmp_file.name}.pkl', 'pkl') # from pkl file + loss_cls_cfg = dict( + type='CrossEntropyLoss', + use_sigmoid=False, + class_weight=f'{tmp_file.name}.pkl', + loss_weight=1.0) + loss_cls = build_loss(loss_cls_cfg) + assert torch.allclose(loss_cls(fake_pred, fake_label), torch.tensor(40.)) + + np.save(f'{tmp_file.name}.npy', np.array([0.8, 0.2])) # from npy file + loss_cls_cfg = dict( + type='CrossEntropyLoss', + use_sigmoid=False, + class_weight=f'{tmp_file.name}.npy', + loss_weight=1.0) + loss_cls = build_loss(loss_cls_cfg) + assert torch.allclose(loss_cls(fake_pred, fake_label), torch.tensor(40.)) + tmp_file.close() + os.remove(f'{tmp_file.name}.pkl') + os.remove(f'{tmp_file.name}.npy') + loss_cls_cfg = dict( type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0) loss_cls = build_loss(loss_cls_cfg) diff --git a/tests/test_models/test_losses/test_dice_loss.py b/tests/test_models/test_losses/test_dice_loss.py index 94b9faab71..01ded6fe74 100644 --- a/tests/test_models/test_losses/test_dice_loss.py +++ b/tests/test_models/test_losses/test_dice_loss.py @@ -16,6 +16,36 @@ def test_dice_lose(): labels = (torch.rand(8, 4, 4) * 3).long() dice_loss(logits, labels) + # test loss with class weights from file + import os + import tempfile + import mmcv + import numpy as np + tmp_file = tempfile.NamedTemporaryFile() + + mmcv.dump([1.0, 2.0, 3.0], f'{tmp_file.name}.pkl', 'pkl') # from pkl file + loss_cfg = dict( + type='DiceLoss', + reduction='none', + class_weight=f'{tmp_file.name}.pkl', + loss_weight=1.0, + ignore_index=1) + dice_loss = build_loss(loss_cfg) + dice_loss(logits, labels, ignore_index=None) + + np.save(f'{tmp_file.name}.npy', np.array([1.0, 2.0, 3.0])) # from npy file + loss_cfg = dict( + type='DiceLoss', + reduction='none', + class_weight=f'{tmp_file.name}.pkl', + loss_weight=1.0, + ignore_index=1) + dice_loss = build_loss(loss_cfg) + dice_loss(logits, labels, ignore_index=None) + tmp_file.close() + os.remove(f'{tmp_file.name}.pkl') + os.remove(f'{tmp_file.name}.npy') + # test dice loss with loss_type = 'binary' loss_cfg = dict( type='DiceLoss', diff --git a/tests/test_models/test_losses/test_lovasz_loss.py b/tests/test_models/test_losses/test_lovasz_loss.py index e11dd613fa..6fac4309a9 100644 --- a/tests/test_models/test_losses/test_lovasz_loss.py +++ b/tests/test_models/test_losses/test_lovasz_loss.py @@ -38,6 +38,36 @@ def test_lovasz_loss(): labels = (torch.rand(1, 4, 4) * 2).long() lovasz_loss(logits, labels, ignore_index=None) + # test loss with class weights from file + import os + import tempfile + import mmcv + import numpy as np + tmp_file = tempfile.NamedTemporaryFile() + + mmcv.dump([1.0, 2.0, 3.0], f'{tmp_file.name}.pkl', 'pkl') # from pkl file + loss_cfg = dict( + type='LovaszLoss', + per_image=True, + reduction='mean', + class_weight=f'{tmp_file.name}.pkl', + loss_weight=1.0) + lovasz_loss = build_loss(loss_cfg) + lovasz_loss(logits, labels, ignore_index=None) + + np.save(f'{tmp_file.name}.npy', np.array([1.0, 2.0, 3.0])) # from npy file + loss_cfg = dict( + type='LovaszLoss', + per_image=True, + reduction='mean', + class_weight=f'{tmp_file.name}.npy', + loss_weight=1.0) + lovasz_loss = build_loss(loss_cfg) + lovasz_loss(logits, labels, ignore_index=None) + tmp_file.close() + os.remove(f'{tmp_file.name}.pkl') + os.remove(f'{tmp_file.name}.npy') + # test lovasz loss with loss_type = 'binary' and per_image = False loss_cfg = dict( type='LovaszLoss', From c27ef91942e1cd10328b43c13084ec06d63aefcd Mon Sep 17 00:00:00 2001 From: sennnnn <58427300+sennnnn@users.noreply.github.com> Date: Sat, 1 May 2021 01:37:47 +0800 Subject: [PATCH 136/706] Adjust vision transformer backbone architectures (#524) * Adjust vision transformer backbone architectures; * Add DropPath, trunc_normal_ for VisionTransformer implementation; * Add class token buring intermediate period and remove it during final period; * Fix some parameters loss bug; * * Store intermediate token features and impose no processes on them; * Remove class token and reshape entire token feature from NLC to NCHW; * Fix some doc error * Add a arg for VisionTransformer backbone to control if input class token into transformer; * Add stochastic depth decay rule for DropPath; * * Fix output bug when input_cls_token=False; * Add related unit test; * * Add arg: out_indices to control model output; * Add unit test for DropPath; * Apply suggestions from code review Co-authored-by: Jerry Jiarui XU --- mmseg/models/backbones/vit.py | 145 +++++++++++++------ mmseg/models/utils/__init__.py | 4 +- mmseg/models/utils/drop.py | 31 ++++ mmseg/models/utils/weight_init.py | 62 ++++++++ tests/test_models/test_backbones/test_vit.py | 20 ++- tests/test_models/test_utils/test_drop.py | 28 ++++ 6 files changed, 243 insertions(+), 47 deletions(-) create mode 100644 mmseg/models/utils/drop.py create mode 100644 mmseg/models/utils/weight_init.py create mode 100644 tests/test_models/test_utils/test_drop.py diff --git a/mmseg/models/backbones/vit.py b/mmseg/models/backbones/vit.py index bda2a35453..1d730d863b 100644 --- a/mmseg/models/backbones/vit.py +++ b/mmseg/models/backbones/vit.py @@ -8,12 +8,13 @@ import torch.nn.functional as F import torch.utils.checkpoint as cp from mmcv.cnn import (Conv2d, Linear, build_activation_layer, build_norm_layer, - constant_init, kaiming_init, normal_init, xavier_init) + constant_init, kaiming_init, normal_init) from mmcv.runner import _load_checkpoint from mmcv.utils.parrots_wrapper import _BatchNorm from mmseg.utils import get_root_logger from ..builder import BACKBONES +from ..utils import DropPath, trunc_normal_ class Mlp(nn.Module): @@ -114,10 +115,14 @@ class Block(nn.Module): Default: 0. proj_drop (float): Drop rate for attn layer output weights. Default: 0. + drop_path (float): Drop rate for paths of model. + Default: 0. act_cfg (dict): Config dict for activation layer. Default: dict(type='GELU'). norm_cfg (dict): Config dict for normalization layer. Default: dict(type='LN', requires_grad=True). + with_cp (bool): Use checkpoint or not. Using checkpoint will save some + memory while slowing down the training speed. Default: False. """ def __init__(self, @@ -129,14 +134,17 @@ def __init__(self, drop=0., attn_drop=0., proj_drop=0., + drop_path=0., act_cfg=dict(type='GELU'), - norm_cfg=dict(type='LN'), + norm_cfg=dict(type='LN', eps=1e-6), with_cp=False): super(Block, self).__init__() self.with_cp = with_cp _, self.norm1 = build_norm_layer(norm_cfg, dim) self.attn = Attention(dim, num_heads, qkv_bias, qk_scale, attn_drop, proj_drop) + self.drop_path = DropPath( + drop_path) if drop_path > 0. else nn.Identity() _, self.norm2 = build_norm_layer(norm_cfg, dim) mlp_hidden_dim = int(dim * mlp_ratio) self.mlp = Mlp( @@ -148,8 +156,8 @@ def __init__(self, def forward(self, x): def _inner_forward(x): - out = x + self.attn(self.norm1(x)) - out = out + self.mlp(self.norm2(out)) + out = x + self.drop_path(self.attn(self.norm1(x))) + out = out + self.drop_path(self.mlp(self.norm2(out))) return out if self.with_cp and x.requires_grad: @@ -164,7 +172,7 @@ class PatchEmbed(nn.Module): """Image to Patch Embedding. Args: - img_size (int, tuple): Input image size. + img_size (int | tuple): Input image size. default: 224. patch_size (int): Width and height for a patch. default: 16. @@ -202,24 +210,34 @@ class VisionTransformer(nn.Module): Image Recognition at Scale` - https://arxiv.org/abs/2010.11929 Args: - img_size (tuple): input image size. Default: (224, 224). + img_size (tuple): input image size. Default: (224, 224). patch_size (int, tuple): patch size. Default: 16. in_channels (int): number of input channels. Default: 3. embed_dim (int): embedding dimension. Default: 768. depth (int): depth of transformer. Default: 12. num_heads (int): number of attention heads. Default: 12. - mlp_ratio (int): ratio of mlp hidden dim to embedding dim. Default: 4. + mlp_ratio (int): ratio of mlp hidden dim to embedding dim. + Default: 4. + out_indices (list | tuple | int): Output from which stages. + Default: -1. qkv_bias (bool): enable bias for qkv if True. Default: True. qk_scale (float): override default qk scale of head_dim ** -0.5 if set. drop_rate (float): dropout rate. Default: 0. attn_drop_rate (float): attention dropout rate. Default: 0. + drop_path_rate (float): Rate of DropPath. Default: 0. norm_cfg (dict): Config dict for normalization layer. - Default: dict(type='LN', requires_grad=True). + Default: dict(type='LN', eps=1e-6, requires_grad=True). act_cfg (dict): Config dict for activation layer. Default: dict(type='GELU'). norm_eval (bool): Whether to set norm layers to eval mode, namely, freeze running stats (mean and var). Note: Effect on Batch Norm and its variants only. Default: False. + final_norm (bool): Whether to add a additional layer to normalize + final feature map. Default: False. + interpolate_mode (str): Select the interpolate mode for position + embeding vector resize. Default: bicubic. + with_cls_token (bool): If concatenating class token into image tokens + as transformer input. Default: True. with_cp (bool): Use checkpoint or not. Using checkpoint will save some memory while slowing down the training speed. Default: False. @@ -233,13 +251,18 @@ def __init__(self, depth=12, num_heads=12, mlp_ratio=4, + out_indices=11, qkv_bias=True, qk_scale=None, drop_rate=0., attn_drop_rate=0., - norm_cfg=dict(type='LN'), + drop_path_rate=0., + norm_cfg=dict(type='LN', eps=1e-6, requires_grad=True), act_cfg=dict(type='GELU'), norm_eval=False, + final_norm=False, + with_cls_token=True, + interpolate_mode='bicubic', with_cp=False): super(VisionTransformer, self).__init__() self.img_size = img_size @@ -251,24 +274,39 @@ def __init__(self, in_channels=in_channels, embed_dim=embed_dim) + self.with_cls_token = with_cls_token + self.cls_token = nn.Parameter(torch.zeros(1, 1, self.embed_dim)) self.pos_embed = nn.Parameter( - torch.zeros(1, self.patch_embed.num_patches, embed_dim)) + torch.zeros(1, self.patch_embed.num_patches + 1, embed_dim)) self.pos_drop = nn.Dropout(p=drop_rate) - self.blocks = nn.Sequential(*[ + if isinstance(out_indices, int): + self.out_indices = [out_indices] + elif isinstance(out_indices, list) or isinstance(out_indices, tuple): + self.out_indices = out_indices + else: + raise TypeError('out_indices must be type of int, list or tuple') + + dpr = [x.item() for x in torch.linspace(0, drop_path_rate, depth) + ] # stochastic depth decay rule + self.blocks = nn.ModuleList([ Block( dim=embed_dim, num_heads=num_heads, mlp_ratio=mlp_ratio, qkv_bias=qkv_bias, qk_scale=qk_scale, - drop=drop_rate, + drop=dpr[i], attn_drop=attn_drop_rate, act_cfg=act_cfg, norm_cfg=norm_cfg, with_cp=with_cp) for i in range(depth) ]) - _, self.norm = build_norm_layer(norm_cfg, embed_dim) + + self.interpolate_mode = interpolate_mode + self.final_norm = final_norm + if final_norm: + _, self.norm = build_norm_layer(norm_cfg, embed_dim) self.norm_eval = norm_eval self.with_cp = with_cp @@ -283,28 +321,26 @@ def init_weights(self, pretrained=None): state_dict = checkpoint if 'pos_embed' in state_dict.keys(): - state_dict['pos_embed'] = state_dict['pos_embed'][:, 1:, :] - logger.info( - msg='Remove the "cls_token" dimension from the checkpoint') - if self.pos_embed.shape != state_dict['pos_embed'].shape: logger.info(msg=f'Resize the pos_embed shape from \ - {state_dict["pos_embed"].shape} to \ - {self.pos_embed.shape}') +{state_dict["pos_embed"].shape} to {self.pos_embed.shape}') h, w = self.img_size - pos_size = int(math.sqrt(state_dict['pos_embed'].shape[1])) + pos_size = int( + math.sqrt(state_dict['pos_embed'].shape[1] - 1)) state_dict['pos_embed'] = self.resize_pos_embed( state_dict['pos_embed'], (h, w), (pos_size, pos_size), - self.patch_size) + self.patch_size, self.interpolate_mode) + self.load_state_dict(state_dict, False) elif pretrained is None: # We only implement the 'jax_impl' initialization implemented at # https://github.com/rwightman/pytorch-image-models/blob/master/timm/models/vision_transformer.py#L353 # noqa: E501 - normal_init(self.pos_embed) + trunc_normal_(self.pos_embed, std=.02) + trunc_normal_(self.cls_token, std=.02) for n, m in self.named_modules(): if isinstance(m, Linear): - xavier_init(m.weight, distribution='uniform') + trunc_normal_(m.weight, std=.02) if m.bias is not None: if 'mlp' in n: normal_init(m.bias, std=1e-6) @@ -316,7 +352,7 @@ def init_weights(self, pretrained=None): constant_init(m.bias, 0) elif isinstance(m, (_BatchNorm, nn.GroupNorm, nn.LayerNorm)): constant_init(m.bias, 0) - constant_init(m.weight, 1) + constant_init(m.weight, 1.0) else: raise TypeError('pretrained must be a str or None') @@ -340,7 +376,7 @@ def _pos_embeding(self, img, patched_img, pos_embed): x_len, pos_len = patched_img.shape[1], pos_embed.shape[1] if x_len != pos_len: if pos_len == (self.img_size[0] // self.patch_size) * ( - self.img_size[1] // self.patch_size): + self.img_size[1] // self.patch_size) + 1: pos_h = self.img_size[0] // self.patch_size pos_w = self.img_size[1] // self.patch_size else: @@ -348,11 +384,12 @@ def _pos_embeding(self, img, patched_img, pos_embed): 'Unexpected shape of pos_embed, got {}.'.format( pos_embed.shape)) pos_embed = self.resize_pos_embed(pos_embed, img.shape[2:], - (pos_h, pos_w), self.patch_size) - return patched_img + pos_embed + (pos_h, pos_w), self.patch_size, + self.interpolate_mode) + return self.pos_drop(patched_img + pos_embed) @staticmethod - def resize_pos_embed(pos_embed, input_shpae, pos_shape, patch_size): + def resize_pos_embed(pos_embed, input_shpae, pos_shape, patch_size, mode): """Resize pos_embed weights. Resize pos_embed using bicubic interpolate method. @@ -367,26 +404,52 @@ def resize_pos_embed(pos_embed, input_shpae, pos_shape, patch_size): assert pos_embed.ndim == 3, 'shape of pos_embed must be [B, L, C]' input_h, input_w = input_shpae pos_h, pos_w = pos_shape - pos_embed = pos_embed.reshape(1, pos_h, pos_w, - pos_embed.shape[2]).permute(0, 3, 1, 2) - pos_embed = F.interpolate( - pos_embed, + cls_token_weight = pos_embed[:, 0] + pos_embed_weight = pos_embed[:, (-1 * pos_h * pos_w):] + pos_embed_weight = pos_embed_weight.reshape( + 1, pos_h, pos_w, pos_embed.shape[2]).permute(0, 3, 1, 2) + pos_embed_weight = F.interpolate( + pos_embed_weight, size=[input_h // patch_size, input_w // patch_size], align_corners=False, - mode='bicubic') - pos_embed = torch.flatten(pos_embed, 2).transpose(1, 2) + mode=mode) + cls_token_weight = cls_token_weight.unsqueeze(1) + pos_embed_weight = torch.flatten(pos_embed_weight, 2).transpose(1, 2) + pos_embed = torch.cat((cls_token_weight, pos_embed_weight), dim=1) return pos_embed def forward(self, inputs): + B = inputs.shape[0] + x = self.patch_embed(inputs) + + cls_tokens = self.cls_token.expand(B, -1, -1) + x = torch.cat((cls_tokens, x), dim=1) x = self._pos_embeding(inputs, x, self.pos_embed) - x = self.blocks(x) - x = self.norm(x) - B, _, C = x.shape - x = x.reshape(B, inputs.shape[2] // self.patch_size, - inputs.shape[3] // self.patch_size, - C).permute(0, 3, 1, 2) - return [x] + + if not self.with_cls_token: + # Remove class token for transformer input + x = x[:, 1:] + + outs = [] + for i, blk in enumerate(self.blocks): + x = blk(x) + if i == len(self.blocks) - 1: + if self.final_norm: + x = self.norm(x) + if i in self.out_indices: + if self.with_cls_token: + # Remove class token and reshape token for decoder head + out = x[:, 1:] + else: + out = x + B, _, C = out.shape + out = out.reshape(B, inputs.shape[2] // self.patch_size, + inputs.shape[3] // self.patch_size, + C).permute(0, 3, 1, 2) + outs.append(out) + + return tuple(outs) def train(self, mode=True): super(VisionTransformer, self).train(mode) diff --git a/mmseg/models/utils/__init__.py b/mmseg/models/utils/__init__.py index 8f0fc16ffc..3d3bdd349b 100644 --- a/mmseg/models/utils/__init__.py +++ b/mmseg/models/utils/__init__.py @@ -1,11 +1,13 @@ +from .drop import DropPath from .inverted_residual import InvertedResidual, InvertedResidualV3 from .make_divisible import make_divisible from .res_layer import ResLayer from .se_layer import SELayer from .self_attention_block import SelfAttentionBlock from .up_conv_block import UpConvBlock +from .weight_init import trunc_normal_ __all__ = [ 'ResLayer', 'SelfAttentionBlock', 'make_divisible', 'InvertedResidual', - 'UpConvBlock', 'InvertedResidualV3', 'SELayer' + 'UpConvBlock', 'InvertedResidualV3', 'SELayer', 'DropPath', 'trunc_normal_' ] diff --git a/mmseg/models/utils/drop.py b/mmseg/models/utils/drop.py new file mode 100644 index 0000000000..4520b0ff40 --- /dev/null +++ b/mmseg/models/utils/drop.py @@ -0,0 +1,31 @@ +"""Modified from https://github.com/rwightman/pytorch-image- +models/blob/master/timm/models/layers/drop.py.""" + +import torch +from torch import nn + + +class DropPath(nn.Module): + """Drop paths (Stochastic Depth) per sample (when applied in main path of + residual blocks). + + Args: + drop_prob (float): Drop rate for paths of model. Dropout rate has + to be between 0 and 1. Default: 0. + """ + + def __init__(self, drop_prob=0.): + super(DropPath, self).__init__() + self.drop_prob = drop_prob + self.keep_prob = 1 - drop_prob + + def forward(self, x): + if self.drop_prob == 0. or not self.training: + return x + shape = (x.shape[0], ) + (1, ) * ( + x.ndim - 1) # work with diff dim tensors, not just 2D ConvNets + random_tensor = self.keep_prob + torch.rand( + shape, dtype=x.dtype, device=x.device) + random_tensor.floor_() # binarize + output = x.div(self.keep_prob) * random_tensor + return output diff --git a/mmseg/models/utils/weight_init.py b/mmseg/models/utils/weight_init.py new file mode 100644 index 0000000000..38141ba3d6 --- /dev/null +++ b/mmseg/models/utils/weight_init.py @@ -0,0 +1,62 @@ +"""Modified from https://github.com/rwightman/pytorch-image- +models/blob/master/timm/models/layers/drop.py.""" + +import math +import warnings + +import torch + + +def _no_grad_trunc_normal_(tensor, mean, std, a, b): + """Reference: https://people.sc.fsu.edu/~jburkardt/presentations + /truncated_normal.pdf""" + + def norm_cdf(x): + # Computes standard normal cumulative distribution function + return (1. + math.erf(x / math.sqrt(2.))) / 2. + + if (mean < a - 2 * std) or (mean > b + 2 * std): + warnings.warn( + 'mean is more than 2 std from [a, b] in nn.init.trunc_normal_. ' + 'The distribution of values may be incorrect.', + stacklevel=2) + + with torch.no_grad(): + # Values are generated by using a truncated uniform distribution and + # then using the inverse CDF for the normal distribution. + # Get upper and lower cdf values + lower_bound = norm_cdf((a - mean) / std) + upper_bound = norm_cdf((b - mean) / std) + + # Uniformly fill tensor with values from [l, u], then translate to + # [2l-1, 2u-1]. + tensor.uniform_(2 * lower_bound - 1, 2 * upper_bound - 1) + + # Use inverse cdf transform for normal distribution to get truncated + # standard normal + tensor.erfinv_() + + # Transform to proper mean, std + tensor.mul_(std * math.sqrt(2.)) + tensor.add_(mean) + + # Clamp to ensure it's in the proper range + tensor.clamp_(min=a, max=b) + return tensor + + +def trunc_normal_(tensor, mean=0., std=1., a=-2., b=2.): + r"""Fills the input Tensor with values drawn from a truncated + normal distribution. The values are effectively drawn from the + normal distribution :math:`\mathcal{N}(\text{mean}, \text{std}^2)` + with values outside :math:`[a, b]` redrawn until they are within + the bounds. The method used for generating the random values works + best when :math:`a \leq \text{mean} \leq b`. + Args: + tensor (``torch.Tensor``): an n-dimensional `torch.Tensor` + mean (float): the mean of the normal distribution + std (float): the standard deviation of the normal distribution + a (float): the minimum cutoff value + b (float): the maximum cutoff value + """ + return _no_grad_trunc_normal_(tensor, mean, std, a, b) diff --git a/tests/test_models/test_backbones/test_vit.py b/tests/test_models/test_backbones/test_vit.py index 5c5572e430..c36894ec92 100644 --- a/tests/test_models/test_backbones/test_vit.py +++ b/tests/test_models/test_backbones/test_vit.py @@ -15,10 +15,14 @@ def test_vit_backbone(): # img_size must be int or tuple model = VisionTransformer(img_size=512.0) + with pytest.raises(TypeError): + # out_indices must be int ,list or tuple + model = VisionTransformer(out_indices=1.) + with pytest.raises(TypeError): # test upsample_pos_embed function x = torch.randn(1, 196) - VisionTransformer.resize_pos_embed(x, 512, 512, 224, 224) + VisionTransformer.resize_pos_embed(x, 512, 512, 224, 224, 'bilinear') with pytest.raises(RuntimeError): # forward inputs must be [N, C, H, W] @@ -46,19 +50,25 @@ def test_vit_backbone(): # Test large size input image imgs = torch.randn(1, 3, 256, 256) feat = model(imgs) - assert feat[0].shape == (1, 768, 16, 16) + assert feat[-1].shape == (1, 768, 16, 16) # Test small size input image imgs = torch.randn(1, 3, 32, 32) feat = model(imgs) - assert feat[0].shape == (1, 768, 2, 2) + assert feat[-1].shape == (1, 768, 2, 2) imgs = torch.randn(1, 3, 224, 224) feat = model(imgs) - assert feat[0].shape == (1, 768, 14, 14) + assert feat[-1].shape == (1, 768, 14, 14) # Test with_cp=True model = VisionTransformer(with_cp=True) imgs = torch.randn(1, 3, 224, 224) feat = model(imgs) - assert feat[0].shape == (1, 768, 14, 14) + assert feat[-1].shape == (1, 768, 14, 14) + + # Test with_cls_token=False + model = VisionTransformer(with_cls_token=False) + imgs = torch.randn(1, 3, 224, 224) + feat = model(imgs) + assert feat[-1].shape == (1, 768, 14, 14) diff --git a/tests/test_models/test_utils/test_drop.py b/tests/test_models/test_utils/test_drop.py new file mode 100644 index 0000000000..1331af8d01 --- /dev/null +++ b/tests/test_models/test_utils/test_drop.py @@ -0,0 +1,28 @@ +import torch + +from mmseg.models.utils import DropPath + + +def test_drop_path(): + + # zero drop + layer = DropPath() + + # input NLC format feature + x = torch.randn((1, 16, 32)) + layer(x) + + # input NLHW format feature + x = torch.randn((1, 32, 4, 4)) + layer(x) + + # non-zero drop + layer = DropPath(0.1) + + # input NLC format feature + x = torch.randn((1, 16, 32)) + layer(x) + + # input NLHW format feature + x = torch.randn((1, 32, 4, 4)) + layer(x) From 7fbdd6f197ec7bb1f93ed77bac8e689cebcd2efb Mon Sep 17 00:00:00 2001 From: sshuair Date: Sat, 1 May 2021 02:34:57 +0800 Subject: [PATCH 137/706] add metric mFscore (#509) * add mFscore and refactor the metrics return value * fix linting * some docstring and name fix --- mmseg/core/evaluation/__init__.py | 6 +- mmseg/core/evaluation/metrics.py | 129 ++++++++++++++++++----- mmseg/datasets/custom.py | 84 +++++++++------ requirements/runtime.txt | 2 +- setup.cfg | 2 +- tests/test_data/test_dataset.py | 14 ++- tests/test_metrics.py | 166 ++++++++++++++++++++++++++---- 7 files changed, 318 insertions(+), 85 deletions(-) diff --git a/mmseg/core/evaluation/__init__.py b/mmseg/core/evaluation/__init__.py index c58d926f06..f7cc4b2341 100644 --- a/mmseg/core/evaluation/__init__.py +++ b/mmseg/core/evaluation/__init__.py @@ -1,8 +1,8 @@ from .class_names import get_classes, get_palette from .eval_hooks import DistEvalHook, EvalHook -from .metrics import eval_metrics, mean_dice, mean_iou +from .metrics import eval_metrics, mean_dice, mean_fscore, mean_iou __all__ = [ - 'EvalHook', 'DistEvalHook', 'mean_dice', 'mean_iou', 'eval_metrics', - 'get_classes', 'get_palette' + 'EvalHook', 'DistEvalHook', 'mean_dice', 'mean_iou', 'mean_fscore', + 'eval_metrics', 'get_classes', 'get_palette' ] diff --git a/mmseg/core/evaluation/metrics.py b/mmseg/core/evaluation/metrics.py index c5924a4c86..a216afefe6 100644 --- a/mmseg/core/evaluation/metrics.py +++ b/mmseg/core/evaluation/metrics.py @@ -1,8 +1,27 @@ +from collections import OrderedDict + import mmcv import numpy as np import torch +def f_score(precision, recall, beta=1): + """calcuate the f-score value. + + Args: + precision (float | torch.Tensor): The precision value. + recall (float | torch.Tensor): The recall value. + beta (int): Determines the weight of recall in the combined score. + Default: False. + + Returns: + [torch.tensor]: The f-score value. + """ + score = (1 + beta**2) * (precision * recall) / ( + (beta**2 * precision) + recall) + return score + + def intersect_and_union(pred_label, label, num_classes, @@ -133,11 +152,12 @@ def mean_iou(results, reduce_zero_label (bool): Wether ignore zero label. Default: False. Returns: - float: Overall accuracy on all images. - ndarray: Per category accuracy, shape (num_classes, ). - ndarray: Per category IoU, shape (num_classes, ). + dict[str, float | ndarray]: + float: Overall accuracy on all images. + ndarray: Per category accuracy, shape (num_classes, ). + ndarray: Per category IoU, shape (num_classes, ). """ - all_acc, acc, iou = eval_metrics( + iou_result = eval_metrics( results=results, gt_seg_maps=gt_seg_maps, num_classes=num_classes, @@ -146,7 +166,7 @@ def mean_iou(results, nan_to_num=nan_to_num, label_map=label_map, reduce_zero_label=reduce_zero_label) - return all_acc, acc, iou + return iou_result def mean_dice(results, @@ -171,12 +191,13 @@ def mean_dice(results, reduce_zero_label (bool): Wether ignore zero label. Default: False. Returns: - float: Overall accuracy on all images. - ndarray: Per category accuracy, shape (num_classes, ). - ndarray: Per category dice, shape (num_classes, ). + dict[str, float | ndarray]: Default metrics. + float: Overall accuracy on all images. + ndarray: Per category accuracy, shape (num_classes, ). + ndarray: Per category dice, shape (num_classes, ). """ - all_acc, acc, dice = eval_metrics( + dice_result = eval_metrics( results=results, gt_seg_maps=gt_seg_maps, num_classes=num_classes, @@ -185,7 +206,52 @@ def mean_dice(results, nan_to_num=nan_to_num, label_map=label_map, reduce_zero_label=reduce_zero_label) - return all_acc, acc, dice + return dice_result + + +def mean_fscore(results, + gt_seg_maps, + num_classes, + ignore_index, + nan_to_num=None, + label_map=dict(), + reduce_zero_label=False, + beta=1): + """Calculate Mean Intersection and Union (mIoU) + + Args: + results (list[ndarray] | list[str]): List of prediction segmentation + maps or list of prediction result filenames. + gt_seg_maps (list[ndarray] | list[str]): list of ground truth + segmentation maps or list of label filenames. + num_classes (int): Number of categories. + ignore_index (int): Index that will be ignored in evaluation. + nan_to_num (int, optional): If specified, NaN values will be replaced + by the numbers defined by the user. Default: None. + label_map (dict): Mapping old labels to new labels. Default: dict(). + reduce_zero_label (bool): Wether ignore zero label. Default: False. + beta (int): Determines the weight of recall in the combined score. + Default: False. + + + Returns: + dict[str, float | ndarray]: Default metrics. + float: Overall accuracy on all images. + ndarray: Per category recall, shape (num_classes, ). + ndarray: Per category precision, shape (num_classes, ). + ndarray: Per category f-score, shape (num_classes, ). + """ + fscore_result = eval_metrics( + results=results, + gt_seg_maps=gt_seg_maps, + num_classes=num_classes, + ignore_index=ignore_index, + metrics=['mFscore'], + nan_to_num=nan_to_num, + label_map=label_map, + reduce_zero_label=reduce_zero_label, + beta=beta) + return fscore_result def eval_metrics(results, @@ -195,7 +261,8 @@ def eval_metrics(results, metrics=['mIoU'], nan_to_num=None, label_map=dict(), - reduce_zero_label=False): + reduce_zero_label=False, + beta=1): """Calculate evaluation metrics Args: results (list[ndarray] | list[str]): List of prediction segmentation @@ -210,13 +277,13 @@ def eval_metrics(results, label_map (dict): Mapping old labels to new labels. Default: dict(). reduce_zero_label (bool): Wether ignore zero label. Default: False. Returns: - float: Overall accuracy on all images. - ndarray: Per category accuracy, shape (num_classes, ). - ndarray: Per category evaluation metrics, shape (num_classes, ). + float: Overall accuracy on all images. + ndarray: Per category accuracy, shape (num_classes, ). + ndarray: Per category evaluation metrics, shape (num_classes, ). """ if isinstance(metrics, str): metrics = [metrics] - allowed_metrics = ['mIoU', 'mDice'] + allowed_metrics = ['mIoU', 'mDice', 'mFscore'] if not set(metrics).issubset(set(allowed_metrics)): raise KeyError('metrics {} is not supported'.format(metrics)) @@ -225,19 +292,35 @@ def eval_metrics(results, results, gt_seg_maps, num_classes, ignore_index, label_map, reduce_zero_label) all_acc = total_area_intersect.sum() / total_area_label.sum() - acc = total_area_intersect / total_area_label - ret_metrics = [all_acc, acc] + ret_metrics = OrderedDict({'aAcc': all_acc}) for metric in metrics: if metric == 'mIoU': iou = total_area_intersect / total_area_union - ret_metrics.append(iou) + acc = total_area_intersect / total_area_label + ret_metrics['IoU'] = iou + ret_metrics['Acc'] = acc elif metric == 'mDice': dice = 2 * total_area_intersect / ( total_area_pred_label + total_area_label) - ret_metrics.append(dice) - ret_metrics = [metric.numpy() for metric in ret_metrics] + acc = total_area_intersect / total_area_label + ret_metrics['Dice'] = dice + ret_metrics['Acc'] = acc + elif metric == 'mFscore': + precision = total_area_intersect / total_area_pred_label + recall = total_area_intersect / total_area_label + f_value = torch.tensor( + [f_score(x[0], x[1], beta) for x in zip(precision, recall)]) + ret_metrics['Fscore'] = f_value + ret_metrics['Precision'] = precision + ret_metrics['Recall'] = recall + + ret_metrics = { + metric: value.numpy() + for metric, value in ret_metrics.items() + } if nan_to_num is not None: - ret_metrics = [ - np.nan_to_num(metric, nan=nan_to_num) for metric in ret_metrics - ] + ret_metrics = OrderedDict({ + metric: np.nan_to_num(metric_value, nan=nan_to_num) + for metric, metric_value in ret_metrics.items() + }) return ret_metrics diff --git a/mmseg/datasets/custom.py b/mmseg/datasets/custom.py index 1456122f87..9c88235e39 100644 --- a/mmseg/datasets/custom.py +++ b/mmseg/datasets/custom.py @@ -1,11 +1,12 @@ import os import os.path as osp +from collections import OrderedDict from functools import reduce import mmcv import numpy as np from mmcv.utils import print_log -from terminaltables import AsciiTable +from prettytable import PrettyTable from torch.utils.data import Dataset from mmseg.core import eval_metrics @@ -312,8 +313,8 @@ def evaluate(self, Args: results (list): Testing results of the dataset. - metric (str | list[str]): Metrics to be evaluated. 'mIoU' and - 'mDice' are supported. + metric (str | list[str]): Metrics to be evaluated. 'mIoU', + 'mDice' and 'mFscore' are supported. logger (logging.Logger | None | str): Logger used for printing related information during evaluation. Default: None. @@ -323,7 +324,7 @@ def evaluate(self, if isinstance(metric, str): metric = [metric] - allowed_metrics = ['mIoU', 'mDice'] + allowed_metrics = ['mIoU', 'mDice', 'mFscore'] if not set(metric).issubset(set(allowed_metrics)): raise KeyError('metric {} is not supported'.format(metric)) eval_results = {} @@ -341,42 +342,57 @@ def evaluate(self, metric, label_map=self.label_map, reduce_zero_label=self.reduce_zero_label) - class_table_data = [['Class'] + [m[1:] for m in metric] + ['Acc']] + if self.CLASSES is None: class_names = tuple(range(num_classes)) else: class_names = self.CLASSES - ret_metrics_round = [ - np.round(ret_metric * 100, 2) for ret_metric in ret_metrics - ] - for i in range(num_classes): - class_table_data.append([class_names[i]] + - [m[i] for m in ret_metrics_round[2:]] + - [ret_metrics_round[1][i]]) - summary_table_data = [['Scope'] + - ['m' + head - for head in class_table_data[0][1:]] + ['aAcc']] - ret_metrics_mean = [ - np.round(np.nanmean(ret_metric) * 100, 2) - for ret_metric in ret_metrics - ] - summary_table_data.append(['global'] + ret_metrics_mean[2:] + - [ret_metrics_mean[1]] + - [ret_metrics_mean[0]]) + + # summary table + ret_metrics_summary = OrderedDict({ + ret_metric: np.round(np.nanmean(ret_metric_value) * 100, 2) + for ret_metric, ret_metric_value in ret_metrics.items() + }) + + # each class table + ret_metrics.pop('aAcc', None) + ret_metrics_class = OrderedDict({ + ret_metric: np.round(ret_metric_value * 100, 2) + for ret_metric, ret_metric_value in ret_metrics.items() + }) + ret_metrics_class.update({'Class': class_names}) + ret_metrics_class.move_to_end('Class', last=False) + + # for logger + class_table_data = PrettyTable() + for key, val in ret_metrics_class.items(): + class_table_data.add_column(key, val) + + summary_table_data = PrettyTable() + for key, val in ret_metrics_summary.items(): + if key == 'aAcc': + summary_table_data.add_column(key, [val]) + else: + summary_table_data.add_column('m' + key, [val]) + print_log('per class results:', logger) - table = AsciiTable(class_table_data) - print_log('\n' + table.table, logger=logger) + print_log('\n' + class_table_data.get_string(), logger=logger) print_log('Summary:', logger) - table = AsciiTable(summary_table_data) - print_log('\n' + table.table, logger=logger) - - for i in range(1, len(summary_table_data[0])): - eval_results[summary_table_data[0] - [i]] = summary_table_data[1][i] / 100.0 - for idx, sub_metric in enumerate(class_table_data[0][1:], 1): - for item in class_table_data[1:]: - eval_results[str(sub_metric) + '.' + - str(item[0])] = item[idx] / 100.0 + print_log('\n' + summary_table_data.get_string(), logger=logger) + + # each metric dict + for key, value in ret_metrics_summary.items(): + if key == 'aAcc': + eval_results[key] = value / 100.0 + else: + eval_results['m' + key] = value / 100.0 + + ret_metrics_class.pop('Class', None) + for key, value in ret_metrics_class.items(): + eval_results.update({ + key + '.' + str(name): value[idx] / 100.0 + for idx, name in enumerate(class_names) + }) if mmcv.is_list_of(results, str): for file_name in results: diff --git a/requirements/runtime.txt b/requirements/runtime.txt index a8347b9c0c..47048d029a 100644 --- a/requirements/runtime.txt +++ b/requirements/runtime.txt @@ -1,3 +1,3 @@ matplotlib numpy -terminaltables +prettytable diff --git a/setup.cfg b/setup.cfg index f4147e0f9a..43ba4a4d78 100644 --- a/setup.cfg +++ b/setup.cfg @@ -8,6 +8,6 @@ line_length = 79 multi_line_output = 0 known_standard_library = setuptools known_first_party = mmseg -known_third_party = PIL,cityscapesscripts,cv2,detail,matplotlib,mmcv,numpy,onnxruntime,oss2,pytest,scipy,seaborn,terminaltables,torch +known_third_party = PIL,cityscapesscripts,cv2,detail,matplotlib,mmcv,numpy,onnxruntime,oss2,prettytable,pytest,scipy,seaborn,torch no_lines_before = STDLIB,LOCALFOLDER default_section = THIRDPARTY diff --git a/tests/test_data/test_dataset.py b/tests/test_data/test_dataset.py index 2e19c30f08..57a33da6c3 100644 --- a/tests/test_data/test_dataset.py +++ b/tests/test_data/test_dataset.py @@ -159,7 +159,7 @@ def test_custom_dataset(): for gt_seg_map in gt_seg_maps: h, w = gt_seg_map.shape pseudo_results.append(np.random.randint(low=0, high=7, size=(h, w))) - eval_results = train_dataset.evaluate(pseudo_results, metric='mIoU') + eval_results = train_dataset.evaluate(pseudo_results, metric=['mIoU']) assert isinstance(eval_results, dict) assert 'mIoU' in eval_results assert 'mAcc' in eval_results @@ -193,13 +193,23 @@ def test_custom_dataset(): assert 'mAcc' in eval_results assert 'aAcc' in eval_results + eval_results = train_dataset.evaluate(pseudo_results, metric='mFscore') + assert isinstance(eval_results, dict) + assert 'mRecall' in eval_results + assert 'mPrecision' in eval_results + assert 'mFscore' in eval_results + assert 'aAcc' in eval_results + eval_results = train_dataset.evaluate( - pseudo_results, metric=['mIoU', 'mDice']) + pseudo_results, metric=['mIoU', 'mDice', 'mFscore']) assert isinstance(eval_results, dict) assert 'mIoU' in eval_results assert 'mDice' in eval_results assert 'mAcc' in eval_results assert 'aAcc' in eval_results + assert 'mFscore' in eval_results + assert 'mPrecision' in eval_results + assert 'mRecall' in eval_results @patch('mmseg.datasets.CustomDataset.load_annotations', MagicMock) diff --git a/tests/test_metrics.py b/tests/test_metrics.py index b50e165926..4030505b96 100644 --- a/tests/test_metrics.py +++ b/tests/test_metrics.py @@ -1,6 +1,8 @@ import numpy as np -from mmseg.core.evaluation import eval_metrics, mean_dice, mean_iou +from mmseg.core.evaluation import (eval_metrics, mean_dice, mean_fscore, + mean_iou) +from mmseg.core.evaluation.metrics import f_score def get_confusion_matrix(pred_label, label, num_classes, ignore_index): @@ -58,6 +60,28 @@ def legacy_mean_dice(results, gt_seg_maps, num_classes, ignore_index): return all_acc, acc, dice +# This func is deprecated since it's not memory efficient +def legacy_mean_fscore(results, + gt_seg_maps, + num_classes, + ignore_index, + beta=1): + num_imgs = len(results) + assert len(gt_seg_maps) == num_imgs + total_mat = np.zeros((num_classes, num_classes), dtype=np.float) + for i in range(num_imgs): + mat = get_confusion_matrix( + results[i], gt_seg_maps[i], num_classes, ignore_index=ignore_index) + total_mat += mat + all_acc = np.diag(total_mat).sum() / total_mat.sum() + recall = np.diag(total_mat) / total_mat.sum(axis=1) + precision = np.diag(total_mat) / total_mat.sum(axis=0) + fv = np.vectorize(f_score) + fscore = fv(precision, recall, beta=beta) + + return all_acc, recall, precision, fscore + + def test_metrics(): pred_size = (10, 30, 30) num_classes = 19 @@ -69,63 +93,113 @@ def test_metrics(): label[:, 2, 5:10] = ignore_index # Test the correctness of the implementation of mIoU calculation. - all_acc, acc, iou = eval_metrics( + ret_metrics = eval_metrics( results, label, num_classes, ignore_index, metrics='mIoU') + all_acc, acc, iou = ret_metrics['aAcc'], ret_metrics['Acc'], ret_metrics[ + 'IoU'] all_acc_l, acc_l, iou_l = legacy_mean_iou(results, label, num_classes, ignore_index) assert all_acc == all_acc_l assert np.allclose(acc, acc_l) assert np.allclose(iou, iou_l) # Test the correctness of the implementation of mDice calculation. - all_acc, acc, dice = eval_metrics( + ret_metrics = eval_metrics( results, label, num_classes, ignore_index, metrics='mDice') + all_acc, acc, dice = ret_metrics['aAcc'], ret_metrics['Acc'], ret_metrics[ + 'Dice'] all_acc_l, acc_l, dice_l = legacy_mean_dice(results, label, num_classes, ignore_index) assert all_acc == all_acc_l assert np.allclose(acc, acc_l) assert np.allclose(dice, dice_l) + # Test the correctness of the implementation of mDice calculation. + ret_metrics = eval_metrics( + results, label, num_classes, ignore_index, metrics='mFscore') + all_acc, recall, precision, fscore = ret_metrics['aAcc'], ret_metrics[ + 'Recall'], ret_metrics['Precision'], ret_metrics['Fscore'] + all_acc_l, recall_l, precision_l, fscore_l = legacy_mean_fscore( + results, label, num_classes, ignore_index) + assert all_acc == all_acc_l + assert np.allclose(recall, recall_l) + assert np.allclose(precision, precision_l) + assert np.allclose(fscore, fscore_l) # Test the correctness of the implementation of joint calculation. - all_acc, acc, iou, dice = eval_metrics( - results, label, num_classes, ignore_index, metrics=['mIoU', 'mDice']) + ret_metrics = eval_metrics( + results, + label, + num_classes, + ignore_index, + metrics=['mIoU', 'mDice', 'mFscore']) + all_acc, acc, iou, dice, precision, recall, fscore = ret_metrics[ + 'aAcc'], ret_metrics['Acc'], ret_metrics['IoU'], ret_metrics[ + 'Dice'], ret_metrics['Precision'], ret_metrics[ + 'Recall'], ret_metrics['Fscore'] assert all_acc == all_acc_l assert np.allclose(acc, acc_l) assert np.allclose(iou, iou_l) assert np.allclose(dice, dice_l) + assert np.allclose(precision, precision_l) + assert np.allclose(recall, recall_l) + assert np.allclose(fscore, fscore_l) # Test the correctness of calculation when arg: num_classes is larger # than the maximum value of input maps. results = np.random.randint(0, 5, size=pred_size) label = np.random.randint(0, 4, size=pred_size) - all_acc, acc, iou = eval_metrics( + ret_metrics = eval_metrics( results, label, num_classes, ignore_index=255, metrics='mIoU', nan_to_num=-1) + all_acc, acc, iou = ret_metrics['aAcc'], ret_metrics['Acc'], ret_metrics[ + 'IoU'] assert acc[-1] == -1 assert iou[-1] == -1 - all_acc, acc, dice = eval_metrics( + ret_metrics = eval_metrics( results, label, num_classes, ignore_index=255, metrics='mDice', nan_to_num=-1) + all_acc, acc, dice = ret_metrics['aAcc'], ret_metrics['Acc'], ret_metrics[ + 'Dice'] assert acc[-1] == -1 assert dice[-1] == -1 - all_acc, acc, dice, iou = eval_metrics( + ret_metrics = eval_metrics( + results, + label, + num_classes, + ignore_index=255, + metrics='mFscore', + nan_to_num=-1) + all_acc, precision, recall, fscore = ret_metrics['aAcc'], ret_metrics[ + 'Precision'], ret_metrics['Recall'], ret_metrics['Fscore'] + assert precision[-1] == -1 + assert recall[-1] == -1 + assert fscore[-1] == -1 + + ret_metrics = eval_metrics( results, label, num_classes, ignore_index=255, - metrics=['mDice', 'mIoU'], + metrics=['mDice', 'mIoU', 'mFscore'], nan_to_num=-1) + all_acc, acc, iou, dice, precision, recall, fscore = ret_metrics[ + 'aAcc'], ret_metrics['Acc'], ret_metrics['IoU'], ret_metrics[ + 'Dice'], ret_metrics['Precision'], ret_metrics[ + 'Recall'], ret_metrics['Fscore'] assert acc[-1] == -1 assert dice[-1] == -1 assert iou[-1] == -1 + assert precision[-1] == -1 + assert recall[-1] == -1 + assert fscore[-1] == -1 # Test the bug which is caused by torch.histc. # torch.histc: https://pytorch.org/docs/stable/generated/torch.histc.html @@ -134,8 +208,10 @@ def test_metrics(): results = np.array([np.repeat(31, 59)]) label = np.array([np.arange(59)]) num_classes = 59 - all_acc, acc, iou = eval_metrics( + ret_metrics = eval_metrics( results, label, num_classes, ignore_index=255, metrics='mIoU') + all_acc, acc, iou = ret_metrics['aAcc'], ret_metrics['Acc'], ret_metrics[ + 'IoU'] assert not np.any(np.isnan(iou)) @@ -146,7 +222,9 @@ def test_mean_iou(): results = np.random.randint(0, num_classes, size=pred_size) label = np.random.randint(0, num_classes, size=pred_size) label[:, 2, 5:10] = ignore_index - all_acc, acc, iou = mean_iou(results, label, num_classes, ignore_index) + ret_metrics = mean_iou(results, label, num_classes, ignore_index) + all_acc, acc, iou = ret_metrics['aAcc'], ret_metrics['Acc'], ret_metrics[ + 'IoU'] all_acc_l, acc_l, iou_l = legacy_mean_iou(results, label, num_classes, ignore_index) assert all_acc == all_acc_l @@ -155,10 +233,12 @@ def test_mean_iou(): results = np.random.randint(0, 5, size=pred_size) label = np.random.randint(0, 4, size=pred_size) - all_acc, acc, iou = mean_iou( + ret_metrics = mean_iou( results, label, num_classes, ignore_index=255, nan_to_num=-1) + all_acc, acc, iou = ret_metrics['aAcc'], ret_metrics['Acc'], ret_metrics[ + 'IoU'] + assert acc[-1] == -1 assert acc[-1] == -1 - assert iou[-1] == -1 def test_mean_dice(): @@ -168,19 +248,62 @@ def test_mean_dice(): results = np.random.randint(0, num_classes, size=pred_size) label = np.random.randint(0, num_classes, size=pred_size) label[:, 2, 5:10] = ignore_index - all_acc, acc, iou = mean_dice(results, label, num_classes, ignore_index) - all_acc_l, acc_l, iou_l = legacy_mean_dice(results, label, num_classes, - ignore_index) + ret_metrics = mean_dice(results, label, num_classes, ignore_index) + all_acc, acc, iou = ret_metrics['aAcc'], ret_metrics['Acc'], ret_metrics[ + 'Dice'] + all_acc_l, acc_l, dice_l = legacy_mean_dice(results, label, num_classes, + ignore_index) assert all_acc == all_acc_l assert np.allclose(acc, acc_l) - assert np.allclose(iou, iou_l) + assert np.allclose(iou, dice_l) results = np.random.randint(0, 5, size=pred_size) label = np.random.randint(0, 4, size=pred_size) - all_acc, acc, iou = mean_dice( + ret_metrics = mean_dice( results, label, num_classes, ignore_index=255, nan_to_num=-1) + all_acc, acc, dice = ret_metrics['aAcc'], ret_metrics['Acc'], ret_metrics[ + 'Dice'] assert acc[-1] == -1 - assert iou[-1] == -1 + assert dice[-1] == -1 + + +def test_mean_fscore(): + pred_size = (10, 30, 30) + num_classes = 19 + ignore_index = 255 + results = np.random.randint(0, num_classes, size=pred_size) + label = np.random.randint(0, num_classes, size=pred_size) + label[:, 2, 5:10] = ignore_index + ret_metrics = mean_fscore(results, label, num_classes, ignore_index) + all_acc, recall, precision, fscore = ret_metrics['aAcc'], ret_metrics[ + 'Recall'], ret_metrics['Precision'], ret_metrics['Fscore'] + all_acc_l, recall_l, precision_l, fscore_l = legacy_mean_fscore( + results, label, num_classes, ignore_index) + assert all_acc == all_acc_l + assert np.allclose(recall, recall_l) + assert np.allclose(precision, precision_l) + assert np.allclose(fscore, fscore_l) + + ret_metrics = mean_fscore( + results, label, num_classes, ignore_index, beta=2) + all_acc, recall, precision, fscore = ret_metrics['aAcc'], ret_metrics[ + 'Recall'], ret_metrics['Precision'], ret_metrics['Fscore'] + all_acc_l, recall_l, precision_l, fscore_l = legacy_mean_fscore( + results, label, num_classes, ignore_index, beta=2) + assert all_acc == all_acc_l + assert np.allclose(recall, recall_l) + assert np.allclose(precision, precision_l) + assert np.allclose(fscore, fscore_l) + + results = np.random.randint(0, 5, size=pred_size) + label = np.random.randint(0, 4, size=pred_size) + ret_metrics = mean_fscore( + results, label, num_classes, ignore_index=255, nan_to_num=-1) + all_acc, recall, precision, fscore = ret_metrics['aAcc'], ret_metrics[ + 'Recall'], ret_metrics['Precision'], ret_metrics['Fscore'] + assert recall[-1] == -1 + assert precision[-1] == -1 + assert fscore[-1] == -1 def test_filename_inputs(): @@ -211,13 +334,14 @@ def save_arr(input_arrays: list, title: str, is_image: bool, dir: str): result_files = save_arr(results, 'pred', False, temp_dir) label_files = save_arr(labels, 'label', True, temp_dir) - all_acc, acc, iou = eval_metrics( + ret_metrics = eval_metrics( result_files, label_files, num_classes, ignore_index, metrics='mIoU') - + all_acc, acc, iou = ret_metrics['aAcc'], ret_metrics[ + 'Acc'], ret_metrics['IoU'] all_acc_l, acc_l, iou_l = legacy_mean_iou(results, labels, num_classes, ignore_index) assert all_acc == all_acc_l From 4f2ef8af7830367168333fa544ebb188a2f30f3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=98=95=E8=BE=B0?= Date: Thu, 6 May 2021 07:19:54 +0800 Subject: [PATCH 138/706] Use MMCV's EvalHook in MMSegmentation (#438) * mmcv eval hook * mmcv evalhook compatible * add warnings * inherit from base class * fix unitest * adapt to mmcv 1.3.1 * fixed unittest * set by_epoch=False * fixed efficient test * update docstring Co-authored-by: Jiarui XU --- mmseg/__init__.py | 2 +- mmseg/core/evaluation/eval_hooks.py | 106 ++++++++++++++-------------- tests/test_eval_hook.py | 4 +- 3 files changed, 57 insertions(+), 55 deletions(-) diff --git a/mmseg/__init__.py b/mmseg/__init__.py index d1f472c044..96a8ca14fe 100644 --- a/mmseg/__init__.py +++ b/mmseg/__init__.py @@ -2,7 +2,7 @@ from .version import __version__, version_info -MMCV_MIN = '1.1.4' +MMCV_MIN = '1.3.1' MMCV_MAX = '1.4.0' diff --git a/mmseg/core/evaluation/eval_hooks.py b/mmseg/core/evaluation/eval_hooks.py index 09c6265ece..34c44c7fe3 100644 --- a/mmseg/core/evaluation/eval_hooks.py +++ b/mmseg/core/evaluation/eval_hooks.py @@ -1,37 +1,49 @@ import os.path as osp -from mmcv.runner import Hook -from torch.utils.data import DataLoader +from mmcv.runner import DistEvalHook as _DistEvalHook +from mmcv.runner import EvalHook as _EvalHook -class EvalHook(Hook): - """Evaluation hook. +class EvalHook(_EvalHook): + """Single GPU EvalHook, with efficient test support. - Attributes: - dataloader (DataLoader): A PyTorch dataloader. - interval (int): Evaluation interval (by epochs). Default: 1. + Args: + by_epoch (bool): Determine perform evaluation by epoch or by iteration. + If set to True, it will perform by epoch. Otherwise, by iteration. + Default: False. + efficient_test (bool): Whether save the results as local numpy files to + save CPU memory during evaluation. Default: False. + Returns: + list: The prediction results. """ - def __init__(self, dataloader, interval=1, by_epoch=False, **eval_kwargs): - if not isinstance(dataloader, DataLoader): - raise TypeError('dataloader must be a pytorch DataLoader, but got ' - f'{type(dataloader)}') - self.dataloader = dataloader - self.interval = interval - self.by_epoch = by_epoch - self.eval_kwargs = eval_kwargs + greater_keys = ['mIoU', 'mAcc', 'aAcc'] + + def __init__(self, *args, by_epoch=False, efficient_test=False, **kwargs): + super().__init__(*args, by_epoch=by_epoch, **kwargs) + self.efficient_test = efficient_test def after_train_iter(self, runner): - """After train epoch hook.""" + """After train epoch hook. + + Override default ``single_gpu_test``. + """ if self.by_epoch or not self.every_n_iters(runner, self.interval): return from mmseg.apis import single_gpu_test runner.log_buffer.clear() - results = single_gpu_test(runner.model, self.dataloader, show=False) + results = single_gpu_test( + runner.model, + self.dataloader, + show=False, + efficient_test=self.efficient_test) self.evaluate(runner, results) def after_train_epoch(self, runner): - """After train epoch hook.""" + """After train epoch hook. + + Override default ``single_gpu_test``. + """ if not self.by_epoch or not self.every_n_epochs(runner, self.interval): return from mmseg.apis import single_gpu_test @@ -39,45 +51,31 @@ def after_train_epoch(self, runner): results = single_gpu_test(runner.model, self.dataloader, show=False) self.evaluate(runner, results) - def evaluate(self, runner, results): - """Call evaluate function of dataset.""" - eval_res = self.dataloader.dataset.evaluate( - results, logger=runner.logger, **self.eval_kwargs) - for name, val in eval_res.items(): - runner.log_buffer.output[name] = val - runner.log_buffer.ready = True - -class DistEvalHook(EvalHook): - """Distributed evaluation hook. +class DistEvalHook(_DistEvalHook): + """Distributed EvalHook, with efficient test support. - Attributes: - dataloader (DataLoader): A PyTorch dataloader. - interval (int): Evaluation interval (by epochs). Default: 1. - tmpdir (str | None): Temporary directory to save the results of all - processes. Default: None. - gpu_collect (bool): Whether to use gpu or cpu to collect results. + Args: + by_epoch (bool): Determine perform evaluation by epoch or by iteration. + If set to True, it will perform by epoch. Otherwise, by iteration. Default: False. + efficient_test (bool): Whether save the results as local numpy files to + save CPU memory during evaluation. Default: False. + Returns: + list: The prediction results. """ - def __init__(self, - dataloader, - interval=1, - gpu_collect=False, - by_epoch=False, - **eval_kwargs): - if not isinstance(dataloader, DataLoader): - raise TypeError( - 'dataloader must be a pytorch DataLoader, but got {}'.format( - type(dataloader))) - self.dataloader = dataloader - self.interval = interval - self.gpu_collect = gpu_collect - self.by_epoch = by_epoch - self.eval_kwargs = eval_kwargs + greater_keys = ['mIoU', 'mAcc', 'aAcc'] + + def __init__(self, *args, by_epoch=False, efficient_test=False, **kwargs): + super().__init__(*args, by_epoch=by_epoch, **kwargs) + self.efficient_test = efficient_test def after_train_iter(self, runner): - """After train epoch hook.""" + """After train epoch hook. + + Override default ``multi_gpu_test``. + """ if self.by_epoch or not self.every_n_iters(runner, self.interval): return from mmseg.apis import multi_gpu_test @@ -86,13 +84,17 @@ def after_train_iter(self, runner): runner.model, self.dataloader, tmpdir=osp.join(runner.work_dir, '.eval_hook'), - gpu_collect=self.gpu_collect) + gpu_collect=self.gpu_collect, + efficient_test=self.efficient_test) if runner.rank == 0: print('\n') self.evaluate(runner, results) def after_train_epoch(self, runner): - """After train epoch hook.""" + """After train epoch hook. + + Override default ``multi_gpu_test``. + """ if not self.by_epoch or not self.every_n_epochs(runner, self.interval): return from mmseg.apis import multi_gpu_test diff --git a/tests/test_eval_hook.py b/tests/test_eval_hook.py index a6a1352ea5..c83623de0c 100644 --- a/tests/test_eval_hook.py +++ b/tests/test_eval_hook.py @@ -63,7 +63,7 @@ def test_iter_eval_hook(): # test EvalHook with tempfile.TemporaryDirectory() as tmpdir: - eval_hook = EvalHook(data_loader) + eval_hook = EvalHook(data_loader, by_epoch=False) runner = mmcv.runner.IterBasedRunner( model=model, optimizer=optimizer, @@ -143,7 +143,7 @@ def test_dist_eval_hook(): # test DistEvalHook with tempfile.TemporaryDirectory() as tmpdir: - eval_hook = DistEvalHook(data_loader) + eval_hook = DistEvalHook(data_loader, by_epoch=False) runner = mmcv.runner.IterBasedRunner( model=model, optimizer=optimizer, From 0d477ac5778a386f11791b452af3a80a0662853c Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Wed, 5 May 2021 16:56:19 -0700 Subject: [PATCH 139/706] Bump to v0.13 (#529) --- README.md | 2 +- docs/changelog.md | 40 ++++++++++++++++++++++++++++++++++++++++ mmseg/version.py | 2 +- tests/test_eval_hook.py | 6 +++++- 4 files changed, 47 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 16329ba000..17a4d05d99 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ This project is released under the [Apache 2.0 license](LICENSE). ## Changelog -v0.12.0 was released in 04/03/2021. +v0.13.0 was released in 05/05/2021. Please refer to [changelog.md](docs/changelog.md) for details and release history. ## Benchmark and model zoo diff --git a/docs/changelog.md b/docs/changelog.md index db3d005f93..7d4a0d8002 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,5 +1,45 @@ ## Changelog +### V0.13 (05/05/2021) + +**Highlights** + +- Support Pascal Context Class-59 dataset. +- Support Visual Transformer Backbone. +- Support mFscore metric. + +**Bug Fixes** + +- Fixed Colaboratory tutorial ([#451](https://github.com/open-mmlab/mmsegmentation/pull/451)) +- Fixed mIoU calculation range ([#471](https://github.com/open-mmlab/mmsegmentation/pull/471)) +- Fixed sem_fpn, unet README.md ([#492](https://github.com/open-mmlab/mmsegmentation/pull/492)) +- Fixed `num_classes` in FCN for Pascal Context 60-class dataset ([#488](https://github.com/open-mmlab/mmsegmentation/pull/488)) +- Fixed FP16 inference ([#497](https://github.com/open-mmlab/mmsegmentation/pull/497)) + +**New Features** + +- Support dynamic export and visualize to pytorch2onnx ([#463](https://github.com/open-mmlab/mmsegmentation/pull/463)) +- Support export to torchscript ([#469](https://github.com/open-mmlab/mmsegmentation/pull/469), [#499](https://github.com/open-mmlab/mmsegmentation/pull/499)) +- Support Pascal Context Class-59 dataset ([#459](https://github.com/open-mmlab/mmsegmentation/pull/459)) +- Support Visual Transformer backbone ([#465](https://github.com/open-mmlab/mmsegmentation/pull/465)) +- Support UpSample Neck ([#512](https://github.com/open-mmlab/mmsegmentation/pull/512)) +- Support mFscore metric ([#509](https://github.com/open-mmlab/mmsegmentation/pull/509)) + +**Improvements** + +- Add more CI for PyTorch ([#460](https://github.com/open-mmlab/mmsegmentation/pull/460)) +- Add print model graph args for tools/print_config.py ([#451](https://github.com/open-mmlab/mmsegmentation/pull/451)) +- Add cfg links in modelzoo README.md ([#468](https://github.com/open-mmlab/mmsegmentation/pull/469)) +- Add BaseSegmentor import to segmentors/__init__.py ([#495](https://github.com/open-mmlab/mmsegmentation/pull/495)) +- Add MMOCR, MMGeneration links ([#501](https://github.com/open-mmlab/mmsegmentation/pull/501), [#506](https://github.com/open-mmlab/mmsegmentation/pull/506)) +- Add Chinese QR code ([#506](https://github.com/open-mmlab/mmsegmentation/pull/506)) +- Use MMCV MODEL_REGISTRY ([#515](https://github.com/open-mmlab/mmsegmentation/pull/515)) +- Add ONNX testing tools ([#498](https://github.com/open-mmlab/mmsegmentation/pull/498)) +- Replace data_dict calling 'img' key to support MMDet3D ([#514](https://github.com/open-mmlab/mmsegmentation/pull/514)) +- Support reading class_weight from file in loss function ([#513](https://github.com/open-mmlab/mmsegmentation/pull/513)) +- Make tags as comment ([#505](https://github.com/open-mmlab/mmsegmentation/pull/505)) +- Use MMCV EvalHook ([#438](https://github.com/open-mmlab/mmsegmentation/pull/438)) + ### V0.12 (04/03/2021) **Highlights** diff --git a/mmseg/version.py b/mmseg/version.py index 6a9a6dddab..e090d9f31a 100644 --- a/mmseg/version.py +++ b/mmseg/version.py @@ -1,6 +1,6 @@ # Copyright (c) Open-MMLab. All rights reserved. -__version__ = '0.12.0' +__version__ = '0.13.0' def parse_version_info(version_str): diff --git a/tests/test_eval_hook.py b/tests/test_eval_hook.py index c83623de0c..394051b0ba 100644 --- a/tests/test_eval_hook.py +++ b/tests/test_eval_hook.py @@ -112,7 +112,11 @@ def test_epoch_eval_hook(): logger=runner.logger) -def multi_gpu_test(model, data_loader, tmpdir=None, gpu_collect=False): +def multi_gpu_test(model, + data_loader, + tmpdir=None, + gpu_collect=False, + efficient_test=False): results = single_gpu_test(model, data_loader) return results From 5c195db1bd1eb5f4903d7d39d5af4a82f6a435d4 Mon Sep 17 00:00:00 2001 From: sennnnn <58427300+sennnnn@users.noreply.github.com> Date: Thu, 6 May 2021 13:49:28 +0800 Subject: [PATCH 140/706] Add option for output shape of ViT (#530) * Add arg: final_reshape to control if converting output feature information from NLC to NCHW; * Fix the default value of final_reshape; * Modify arg: final_reshape to arg: out_shape; * Fix some unit test bug; --- mmseg/models/backbones/vit.py | 17 +++++++++++++---- tests/test_models/test_backbones/test_vit.py | 10 ++++++++++ 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/mmseg/models/backbones/vit.py b/mmseg/models/backbones/vit.py index 1d730d863b..3776857229 100644 --- a/mmseg/models/backbones/vit.py +++ b/mmseg/models/backbones/vit.py @@ -234,6 +234,8 @@ class VisionTransformer(nn.Module): and its variants only. Default: False. final_norm (bool): Whether to add a additional layer to normalize final feature map. Default: False. + out_reshape (str): Select the output format of feature information. + Default: NCHW. interpolate_mode (str): Select the interpolate mode for position embeding vector resize. Default: bicubic. with_cls_token (bool): If concatenating class token into image tokens @@ -261,6 +263,7 @@ def __init__(self, act_cfg=dict(type='GELU'), norm_eval=False, final_norm=False, + out_shape='NCHW', with_cls_token=True, interpolate_mode='bicubic', with_cp=False): @@ -303,6 +306,11 @@ def __init__(self, with_cp=with_cp) for i in range(depth) ]) + assert out_shape in ['NLC', + 'NCHW'], 'output shape must be "NLC" or "NCHW".' + + self.out_shape = out_shape + self.interpolate_mode = interpolate_mode self.final_norm = final_norm if final_norm: @@ -443,10 +451,11 @@ def forward(self, inputs): out = x[:, 1:] else: out = x - B, _, C = out.shape - out = out.reshape(B, inputs.shape[2] // self.patch_size, - inputs.shape[3] // self.patch_size, - C).permute(0, 3, 1, 2) + if self.out_shape == 'NCHW': + B, _, C = out.shape + out = out.reshape(B, inputs.shape[2] // self.patch_size, + inputs.shape[3] // self.patch_size, + C).permute(0, 3, 1, 2) outs.append(out) return tuple(outs) diff --git a/tests/test_models/test_backbones/test_vit.py b/tests/test_models/test_backbones/test_vit.py index c36894ec92..1ec42d34ea 100644 --- a/tests/test_models/test_backbones/test_vit.py +++ b/tests/test_models/test_backbones/test_vit.py @@ -30,6 +30,10 @@ def test_vit_backbone(): model = VisionTransformer() model(x) + with pytest.raises(AssertionError): + # out_shape must be 'NLC' or 'NCHW;' + VisionTransformer(out_shape='NCL') + # Test img_size isinstance int imgs = torch.randn(1, 3, 224, 224) model = VisionTransformer(img_size=224) @@ -72,3 +76,9 @@ def test_vit_backbone(): imgs = torch.randn(1, 3, 224, 224) feat = model(imgs) assert feat[-1].shape == (1, 768, 14, 14) + + # Test final reshape arg + imgs = torch.randn(1, 3, 224, 224) + model = VisionTransformer(out_shape='NLC') + feat = model(imgs) + assert feat[-1].shape == (1, 196, 768) From aa14be18711195748741db1d5067d048ca7a6f0a Mon Sep 17 00:00:00 2001 From: RangiLyu Date: Thu, 6 May 2021 23:16:06 +0800 Subject: [PATCH 141/706] fix typo (#533) --- mmseg/models/backbones/mobilenet_v2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mmseg/models/backbones/mobilenet_v2.py b/mmseg/models/backbones/mobilenet_v2.py index 5820b4b13c..9ab628e2ad 100644 --- a/mmseg/models/backbones/mobilenet_v2.py +++ b/mmseg/models/backbones/mobilenet_v2.py @@ -62,7 +62,7 @@ def __init__(self, for index in out_indices: if index not in range(0, 7): raise ValueError('the item in out_indices must in ' - f'range(0, 8). But received {index}') + f'range(0, 7). But received {index}') if frozen_stages not in range(-1, 7): raise ValueError('frozen_stages must be in range(-1, 7). ' From f253451b546d3047a28dafe00678bb1c8a5cfc87 Mon Sep 17 00:00:00 2001 From: Ziyi Wu Date: Thu, 6 May 2021 23:16:46 +0800 Subject: [PATCH 142/706] infer batch size using len(result) in test function (#532) --- mmseg/apis/test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mmseg/apis/test.py b/mmseg/apis/test.py index 1597df6aa3..9728de4c68 100644 --- a/mmseg/apis/test.py +++ b/mmseg/apis/test.py @@ -149,7 +149,7 @@ def multi_gpu_test(model, results.append(result) if rank == 0: - batch_size = data['img'][0].size(0) + batch_size = len(result) for _ in range(batch_size * world_size): prog_bar.update() From 1052f8d5d32d8c6fa034a6a816b0706778f625f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=98=95=E8=BE=B0?= Date: Sun, 9 May 2021 11:34:18 +0800 Subject: [PATCH 143/706] support loading deit weights (#538) --- mmseg/models/backbones/vit.py | 2 ++ mmseg/models/necks/multilevel_neck.py | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/mmseg/models/backbones/vit.py b/mmseg/models/backbones/vit.py index 3776857229..781c9c1cce 100644 --- a/mmseg/models/backbones/vit.py +++ b/mmseg/models/backbones/vit.py @@ -325,6 +325,8 @@ def init_weights(self, pretrained=None): checkpoint = _load_checkpoint(pretrained, logger=logger) if 'state_dict' in checkpoint: state_dict = checkpoint['state_dict'] + elif 'model' in checkpoint: + state_dict = checkpoint['model'] else: state_dict = checkpoint diff --git a/mmseg/models/necks/multilevel_neck.py b/mmseg/models/necks/multilevel_neck.py index 7e13813b16..941b82992e 100644 --- a/mmseg/models/necks/multilevel_neck.py +++ b/mmseg/models/necks/multilevel_neck.py @@ -54,7 +54,6 @@ def __init__(self, def forward(self, inputs): assert len(inputs) == len(self.in_channels) - print(inputs[0].shape) inputs = [ lateral_conv(inputs[i]) for i, lateral_conv in enumerate(self.lateral_convs) From 5182fa15234c0c9d7d4398b4db6dcb3e7fca7728 Mon Sep 17 00:00:00 2001 From: "q.yao" Date: Wed, 12 May 2021 11:02:27 +0800 Subject: [PATCH 144/706] add onnx to tensorrt tools (#542) --- docs/useful_tools.md | 42 ++++++- tools/onnx2tensorrt.py | 275 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 316 insertions(+), 1 deletion(-) create mode 100644 tools/onnx2tensorrt.py diff --git a/docs/useful_tools.md b/docs/useful_tools.md index 556c531663..8ae19f5bee 100644 --- a/docs/useful_tools.md +++ b/docs/useful_tools.md @@ -90,7 +90,7 @@ We provide `tools/ort_test.py` to evaluate ONNX model with ONNXRuntime backend. #### Usage -```python +```bash python tools/ort_test.py \ ${CONFIG_FILE} \ ${ONNX_FILE} \ @@ -164,6 +164,46 @@ Examples: --shape 512 1024 ``` +### Convert to TensorRT (experimental) + +A script to convert [ONNX](https://github.com/onnx/onnx) model to [TensorRT](https://developer.nvidia.com/tensorrt) format. + +Prerequisite + +- install `mmcv-full` with ONNXRuntime custom ops and TensorRT plugins follow [ONNXRuntime in mmcv](https://mmcv.readthedocs.io/en/latest/onnxruntime_op.html) and [TensorRT plugin in mmcv](https://github.com/open-mmlab/mmcv/blob/master/docs/tensorrt_plugin.md). +- Use [pytorch2onnx](#convert-to-onnx-experimental) to convert the model from PyTorch to ONNX. + +Usage + +```bash +python ${MMSEG_PATH}/tools/onnx2tensorrt.py \ + ${CFG_PATH} \ + ${ONNX_PATH} \ + --trt-file ${OUTPUT_TRT_PATH} \ + --min-shape ${MIN_SHAPE} \ + --max-shape ${MAX_SHAPE} \ + --input-img ${INPUT_IMG} \ + --show \ + --verify +``` + +Description of all arguments + +- `config` : Config file of the model. +- `model` : Path to the input ONNX model. +- `--trt-file` : Path to the output TensorRT engine. +- `--max-shape` : Maximum shape of model input. +- `--min-shape` : Minimum shape of model input. +- `--fp16` : Enable fp16 model conversion. +- `--workspace-size` : Max workspace size in GiB. +- `--input-img` : Image for visualize. +- `--show` : Enable result visualize. +- `--dataset` : Palette provider, `CityscapesDataset` as default. +- `--verify` : Verify the outputs of ONNXRuntime and TensorRT. +- `--verbose` : Whether to verbose logging messages while creating TensorRT engine. Defaults to False. + +**Note**: Only tested on whole mode. + ## Miscellaneous ### Print the entire config diff --git a/tools/onnx2tensorrt.py b/tools/onnx2tensorrt.py new file mode 100644 index 0000000000..203ae82a88 --- /dev/null +++ b/tools/onnx2tensorrt.py @@ -0,0 +1,275 @@ +import argparse +import os +import os.path as osp +from typing import Iterable, Optional, Union + +import matplotlib.pyplot as plt +import mmcv +import numpy as np +import onnxruntime as ort +import torch +from mmcv.ops import get_onnxruntime_op_path +from mmcv.tensorrt import (TRTWraper, is_tensorrt_plugin_loaded, onnx2trt, + save_trt_engine) + +from mmseg.apis.inference import LoadImage +from mmseg.datasets import DATASETS +from mmseg.datasets.pipelines import Compose + + +def get_GiB(x: int): + """return x GiB.""" + return x * (1 << 30) + + +def _prepare_input_img(img_path: str, + test_pipeline: Iterable[dict], + shape: Optional[Iterable] = None, + rescale_shape: Optional[Iterable] = None) -> dict: + # build the data pipeline + if shape is not None: + test_pipeline[1]['img_scale'] = (shape[1], shape[0]) + test_pipeline[1]['transforms'][0]['keep_ratio'] = False + test_pipeline = [LoadImage()] + test_pipeline[1:] + test_pipeline = Compose(test_pipeline) + # prepare data + data = dict(img=img_path) + data = test_pipeline(data) + imgs = data['img'] + img_metas = [i.data for i in data['img_metas']] + + if rescale_shape is not None: + for img_meta in img_metas: + img_meta['ori_shape'] = tuple(rescale_shape) + (3, ) + + mm_inputs = {'imgs': imgs, 'img_metas': img_metas} + + return mm_inputs + + +def _update_input_img(img_list: Iterable, img_meta_list: Iterable): + # update img and its meta list + N = img_list[0].size(0) + img_meta = img_meta_list[0][0] + img_shape = img_meta['img_shape'] + ori_shape = img_meta['ori_shape'] + pad_shape = img_meta['pad_shape'] + new_img_meta_list = [[{ + 'img_shape': + img_shape, + 'ori_shape': + ori_shape, + 'pad_shape': + pad_shape, + 'filename': + img_meta['filename'], + 'scale_factor': + (img_shape[1] / ori_shape[1], img_shape[0] / ori_shape[0]) * 2, + 'flip': + False, + } for _ in range(N)]] + + return img_list, new_img_meta_list + + +def show_result_pyplot(img: Union[str, np.ndarray], + result: np.ndarray, + palette: Optional[Iterable] = None, + fig_size: Iterable[int] = (15, 10), + opacity: float = 0.5, + title: str = '', + block: bool = True): + img = mmcv.imread(img) + img = img.copy() + seg = result[0] + seg = mmcv.imresize(seg, img.shape[:2][::-1]) + palette = np.array(palette) + assert palette.shape[1] == 3 + assert len(palette.shape) == 2 + assert 0 < opacity <= 1.0 + color_seg = np.zeros((seg.shape[0], seg.shape[1], 3), dtype=np.uint8) + for label, color in enumerate(palette): + color_seg[seg == label, :] = color + # convert to BGR + color_seg = color_seg[..., ::-1] + + img = img * (1 - opacity) + color_seg * opacity + img = img.astype(np.uint8) + + plt.figure(figsize=fig_size) + plt.imshow(mmcv.bgr2rgb(img)) + plt.title(title) + plt.tight_layout() + plt.show(block=block) + + +def onnx2tensorrt(onnx_file: str, + trt_file: str, + config: dict, + input_config: dict, + fp16: bool = False, + verify: bool = False, + show: bool = False, + dataset: str = 'CityscapesDataset', + workspace_size: int = 1, + verbose: bool = False): + import tensorrt as trt + min_shape = input_config['min_shape'] + max_shape = input_config['max_shape'] + # create trt engine and wraper + opt_shape_dict = {'input': [min_shape, min_shape, max_shape]} + max_workspace_size = get_GiB(workspace_size) + trt_engine = onnx2trt( + onnx_file, + opt_shape_dict, + log_level=trt.Logger.VERBOSE if verbose else trt.Logger.ERROR, + fp16_mode=fp16, + max_workspace_size=max_workspace_size) + save_dir, _ = osp.split(trt_file) + if save_dir: + os.makedirs(save_dir, exist_ok=True) + save_trt_engine(trt_engine, trt_file) + print(f'Successfully created TensorRT engine: {trt_file}') + + if verify: + inputs = _prepare_input_img( + input_config['input_path'], + config.data.test.pipeline, + shape=min_shape[2:]) + + imgs = inputs['imgs'] + img_metas = inputs['img_metas'] + img_list = [img[None, :] for img in imgs] + img_meta_list = [[img_meta] for img_meta in img_metas] + # update img_meta + img_list, img_meta_list = _update_input_img(img_list, img_meta_list) + + if max_shape[0] > 1: + # concate flip image for batch test + flip_img_list = [_.flip(-1) for _ in img_list] + img_list = [ + torch.cat((ori_img, flip_img), 0) + for ori_img, flip_img in zip(img_list, flip_img_list) + ] + + # Get results from ONNXRuntime + ort_custom_op_path = get_onnxruntime_op_path() + session_options = ort.SessionOptions() + if osp.exists(ort_custom_op_path): + session_options.register_custom_ops_library(ort_custom_op_path) + sess = ort.InferenceSession(onnx_file, session_options) + sess.set_providers(['CPUExecutionProvider'], [{}]) # use cpu mode + onnx_output = sess.run(['output'], + {'input': img_list[0].detach().numpy()})[0][0] + + # Get results from TensorRT + trt_model = TRTWraper(trt_file, ['input'], ['output']) + with torch.no_grad(): + trt_outputs = trt_model({'input': img_list[0].contiguous().cuda()}) + trt_output = trt_outputs['output'][0].cpu().detach().numpy() + + if show: + dataset = DATASETS.get(dataset) + assert dataset is not None + palette = dataset.PALETTE + + show_result_pyplot( + input_config['input_path'], + (onnx_output[0].astype(np.uint8), ), + palette=palette, + title='ONNXRuntime', + block=False) + show_result_pyplot( + input_config['input_path'], (trt_output[0].astype(np.uint8), ), + palette=palette, + title='TensorRT') + + np.testing.assert_allclose( + onnx_output, trt_output, rtol=1e-03, atol=1e-05) + print('TensorRT and ONNXRuntime output all close.') + + +def parse_args(): + parser = argparse.ArgumentParser( + description='Convert MMSegmentation models from ONNX to TensorRT') + parser.add_argument('config', help='Config file of the model') + parser.add_argument('model', help='Path to the input ONNX model') + parser.add_argument( + '--trt-file', type=str, help='Path to the output TensorRT engine') + parser.add_argument( + '--max-shape', + type=int, + nargs=4, + default=[1, 3, 400, 600], + help='Maximum shape of model input.') + parser.add_argument( + '--min-shape', + type=int, + nargs=4, + default=[1, 3, 400, 600], + help='Minimum shape of model input.') + parser.add_argument('--fp16', action='store_true', help='Enable fp16 mode') + parser.add_argument( + '--workspace-size', + type=int, + default=1, + help='Max workspace size in GiB') + parser.add_argument( + '--input-img', type=str, default='', help='Image for test') + parser.add_argument( + '--show', action='store_true', help='Whether to show output results') + parser.add_argument( + '--dataset', + type=str, + default='CityscapesDataset', + help='Dataset name') + parser.add_argument( + '--verify', + action='store_true', + help='Verify the outputs of ONNXRuntime and TensorRT') + parser.add_argument( + '--verbose', + action='store_true', + help='Whether to verbose logging messages while creating \ + TensorRT engine.') + args = parser.parse_args() + return args + + +if __name__ == '__main__': + + assert is_tensorrt_plugin_loaded(), 'TensorRT plugin should be compiled.' + args = parse_args() + + if not args.input_img: + args.input_img = osp.join(osp.dirname(__file__), '../demo/demo.png') + + # check arguments + assert osp.exists(args.config), 'Config {} not found.'.format(args.config) + assert osp.exists(args.model), \ + 'ONNX model {} not found.'.format(args.model) + assert args.workspace_size >= 0, 'Workspace size less than 0.' + assert DATASETS.get(args.dataset) is not None, \ + 'Dataset {} does not found.'.format(args.dataset) + for max_value, min_value in zip(args.max_shape, args.min_shape): + assert max_value >= min_value, \ + 'max_shape sould be larger than min shape' + + input_config = { + 'min_shape': args.min_shape, + 'max_shape': args.max_shape, + 'input_path': args.input_img + } + + cfg = mmcv.Config.fromfile(args.config) + onnx2tensorrt( + args.model, + args.trt_file, + cfg, + input_config, + fp16=args.fp16, + verify=args.verify, + show=args.show, + dataset=args.dataset, + workspace_size=args.workspace_size, + verbose=args.verbose) From b49e86a5b8e7ac0669c10a5b391b75bbf3092a04 Mon Sep 17 00:00:00 2001 From: "q.yao" Date: Thu, 13 May 2021 12:14:41 +0800 Subject: [PATCH 145/706] fix verify bugs (#547) * fix verify bugs * rename args --- tools/pytorch2onnx.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/tools/pytorch2onnx.py b/tools/pytorch2onnx.py index 5660ed9004..14f25056d5 100644 --- a/tools/pytorch2onnx.py +++ b/tools/pytorch2onnx.py @@ -96,13 +96,16 @@ def _prepare_input_img(img_path, return mm_inputs -def _update_input_img(img_list, img_meta_list): +def _update_input_img(img_list, img_meta_list, update_ori_shape=False): # update img and its meta list - N = img_list[0].size(0) + N, C, H, W = img_list[0].shape img_meta = img_meta_list[0][0] - img_shape = img_meta['img_shape'] - ori_shape = img_meta['ori_shape'] - pad_shape = img_meta['pad_shape'] + img_shape = (H, W, C) + if update_ori_shape: + ori_shape = img_shape + else: + ori_shape = img_meta['ori_shape'] + pad_shape = img_shape new_img_meta_list = [[{ 'img_shape': img_shape, @@ -220,7 +223,7 @@ def pytorch2onnx(model, # update img_meta img_list, img_meta_list = _update_input_img( - img_list, img_meta_list) + img_list, img_meta_list, test_mode == 'whole') # check the numerical value # get pytorch output From 83df7ec21a4ffdd5a84322184c33b8ab2941a42e Mon Sep 17 00:00:00 2001 From: sennnnn <58427300+sennnnn@users.noreply.github.com> Date: Mon, 17 May 2021 10:29:28 +0800 Subject: [PATCH 146/706] [Feature] Add results2img, format_results for ade dataset (#544) * [Feature] Add results2img, format_results for ade dataset. * clean rebundant code. --- mmseg/datasets/ade.py | 79 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/mmseg/datasets/ade.py b/mmseg/datasets/ade.py index 5913e43775..5daf7e3731 100644 --- a/mmseg/datasets/ade.py +++ b/mmseg/datasets/ade.py @@ -1,3 +1,10 @@ +import os.path as osp +import tempfile + +import mmcv +import numpy as np +from PIL import Image + from .builder import DATASETS from .custom import CustomDataset @@ -82,3 +89,75 @@ def __init__(self, **kwargs): seg_map_suffix='.png', reduce_zero_label=True, **kwargs) + + def results2img(self, results, imgfile_prefix, to_label_id): + """Write the segmentation results to images. + + Args: + results (list[list | tuple | ndarray]): Testing results of the + dataset. + imgfile_prefix (str): The filename prefix of the png files. + If the prefix is "somepath/xxx", + the png files will be named "somepath/xxx.png". + to_label_id (bool): whether convert output to label_id for + submission + + Returns: + list[str: str]: result txt files which contains corresponding + semantic segmentation images. + """ + mmcv.mkdir_or_exist(imgfile_prefix) + result_files = [] + prog_bar = mmcv.ProgressBar(len(self)) + for idx in range(len(self)): + result = results[idx] + + filename = self.img_infos[idx]['filename'] + basename = osp.splitext(osp.basename(filename))[0] + + png_filename = osp.join(imgfile_prefix, f'{basename}.png') + + # The index range of official requirement is from 0 to 150. + # But the index range of output is from 0 to 149. + # That is because we set reduce_zero_label=True. + result = result + 1 + + output = Image.fromarray(result.astype(np.uint8)) + output.save(png_filename) + result_files.append(png_filename) + + prog_bar.update() + + return result_files + + def format_results(self, results, imgfile_prefix=None, to_label_id=True): + """Format the results into dir (standard format for ade20k evaluation). + + Args: + results (list): Testing results of the dataset. + imgfile_prefix (str | None): The prefix of images files. It + includes the file path and the prefix of filename, e.g., + "a/b/prefix". If not specified, a temp file will be created. + Default: None. + to_label_id (bool): whether convert output to label_id for + submission. Default: False + + Returns: + tuple: (result_files, tmp_dir), result_files is a list containing + the image paths, tmp_dir is the temporal directory created + for saving json/png files when img_prefix is not specified. + """ + + assert isinstance(results, list), 'results must be a list' + assert len(results) == len(self), ( + 'The length of results is not equal to the dataset len: ' + f'{len(results)} != {len(self)}') + + if imgfile_prefix is None: + tmp_dir = tempfile.TemporaryDirectory() + imgfile_prefix = tmp_dir.name + else: + tmp_dir = None + + result_files = self.results2img(results, imgfile_prefix, to_label_id) + return result_files, tmp_dir From 9e037ae329f9c9632c30a21b3ef53e6db1325583 Mon Sep 17 00:00:00 2001 From: sennnnn <58427300+sennnnn@users.noreply.github.com> Date: Tue, 18 May 2021 01:43:13 +0800 Subject: [PATCH 147/706] Add compatible MMSegmentation and MMCV version table. (#558) --- docs/get_started.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/get_started.md b/docs/get_started.md index 58626d695e..aa6c7fe5b8 100644 --- a/docs/get_started.md +++ b/docs/get_started.md @@ -7,6 +7,20 @@ - GCC 5+ - [MMCV](https://mmcv.readthedocs.io/en/latest/#installation) +The compatible MMSegmentation and MMCV versions are as below. Please install the correct version of MMCV to avoid installation issues. + +| MMSegmentation version | MMCV version | +|:-------------------:|:-------------------:| +| master | mmcv-full>=1.3.1, <1.4.0 | +| 0.13.0 | mmcv-full>=1.3.1, <1.4.0 | +| 0.12.0 | mmcv-full>=1.1.4, <1.4.0 | +| 0.11.0 | mmcv-full>=1.1.4, <1.3.0 | +| 0.10.0 | mmcv-full>=1.1.4, <1.3.0 | +| 0.9.0 | mmcv-full>=1.1.4, <1.3.0 | +| 0.8.0 | mmcv-full>=1.1.4, <1.2.0 | +| 0.7.0 | mmcv-full>=1.1.2, <1.2.0 | +| 0.6.0 | mmcv-full>=1.1.2, <1.2.0 | + Note: You need to run `pip uninstall mmcv` first if you have mmcv installed. If mmcv and mmcv-full are both installed, there will be `ModuleNotFoundError`. From 1f2d354b705eca685ad986c62e5c70c6741f60b0 Mon Sep 17 00:00:00 2001 From: Edward <397044815@qq.com> Date: Wed, 19 May 2021 00:44:41 +0800 Subject: [PATCH 148/706] DeepLab V3 did not present in CVPR 2017 (#560) https://openaccess.thecvf.com/CVPR2017 does not contain DeepLabV3 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 17a4d05d99..eaf3dcb170 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,7 @@ Supported methods: - [x] [FCN (CVPR'2015/TPAMI'2017)](configs/fcn) - [x] [UNet (MICCAI'2016/Nat. Methods'2019)](configs/unet) - [x] [PSPNet (CVPR'2017)](configs/pspnet) -- [x] [DeepLabV3 (CVPR'2017)](configs/deeplabv3) +- [x] [DeepLabV3 (ArXiv'2017)](configs/deeplabv3) - [x] [Mixed Precision (FP16) Training (ArXiv'2017)](configs/fp16/README.md) - [x] [PSANet (ECCV'2018)](configs/psanet) - [x] [DeepLabV3+ (CVPR'2018)](configs/deeplabv3plus) From 597736288c9ef97bb4782ff8d7a19a449c46bee0 Mon Sep 17 00:00:00 2001 From: "q.yao" Date: Tue, 25 May 2021 11:37:46 +0800 Subject: [PATCH 149/706] [Feature] Update deploy test tools (#553) * add trt test tool * create deploy_test, update document * fix with isort * move import inside __init__ * remove comment, fix doc * update document --- docs/useful_tools.md | 31 ++++++++---- tools/{ort_test.py => deploy_test.py} | 72 ++++++++++++++++++++++++--- 2 files changed, 86 insertions(+), 17 deletions(-) rename tools/{ort_test.py => deploy_test.py} (71%) diff --git a/docs/useful_tools.md b/docs/useful_tools.md index 8ae19f5bee..de5e127b18 100644 --- a/docs/useful_tools.md +++ b/docs/useful_tools.md @@ -76,9 +76,9 @@ Description of arguments: **Note**: This tool is still experimental. Some customized operators are not supported for now. -### Evaluate ONNX model with ONNXRuntime +### Evaluate ONNX model -We provide `tools/ort_test.py` to evaluate ONNX model with ONNXRuntime backend. +We provide `tools/deploy_test.py` to evaluate ONNX model with different backend. #### Prerequisite @@ -88,12 +88,15 @@ We provide `tools/ort_test.py` to evaluate ONNX model with ONNXRuntime backend. pip install onnx onnxruntime-gpu ``` +- Install TensorRT following [how-to-build-tensorrt-plugins-in-mmcv](https://mmcv.readthedocs.io/en/latest/tensorrt_plugin.html#how-to-build-tensorrt-plugins-in-mmcv)(optional) + #### Usage ```bash -python tools/ort_test.py \ +python tools/deploy_test.py \ ${CONFIG_FILE} \ - ${ONNX_FILE} \ + ${MODEL_FILE} \ + ${BACKEND} \ --out ${OUTPUT_FILE} \ --eval ${EVALUATION_METRICS} \ --show \ @@ -106,7 +109,8 @@ python tools/ort_test.py \ Description of all arguments - `config`: The path of a model config file. -- `model`: The path of a ONNX model file. +- `model`: The path of a converted model file. +- `backend`: Backend of the inference, options: `onnxruntime`, `tensorrt`. - `--out`: The path of output result file in pickle format. - `--format-only` : Format the output results without perform evaluation. It is useful when you want to format the result to a specific format and submit it to the test server. If not specified, it will be set to `False`. Note that this argument is **mutually exclusive** with `--eval`. - `--eval`: Evaluation metrics, which depends on the dataset, e.g., "mIoU" for generic datasets, and "cityscapes" for Cityscapes. Note that this argument is **mutually exclusive** with `--format-only`. @@ -118,12 +122,17 @@ Description of all arguments #### Results and Models -| Model | Config | Dataset | Metric | PyTorch | ONNXRuntime | -| :--------: | :--------------------------------------------: | :--------: | :----: | :-----: | :---------: | -| FCN | fcn_r50-d8_512x1024_40k_cityscapes.py | cityscapes | mIoU | 72.2 | 72.2 | -| PSPNet | pspnet_r50-d8_769x769_40k_cityscapes.py | cityscapes | mIoU | 78.2 | 78.1 | -| deeplabv3 | deeplabv3_r50-d8_769x769_40k_cityscapes.py | cityscapes | mIoU | 78.5 | 78.3 | -| deeplabv3+ | deeplabv3plus_r50-d8_769x769_40k_cityscapes.py | cityscapes | mIoU | 78.9 | 78.7 | +| Model | Config | Dataset | Metric | PyTorch | ONNXRuntime | TensorRT-fp32 | TensorRT-fp16 | +| :--------: | :---------------------------------------------: | :--------: | :----: | :-----: | :---------: | :-----------: | :-----------: | +| FCN | fcn_r50-d8_512x1024_40k_cityscapes.py | cityscapes | mIoU | 72.2 | 72.2 | 72.2 | 72.2 | +| PSPNet | pspnet_r50-d8_512x1024_40k_cityscapes.py | cityscapes | mIoU | 77.8 | 77.8 | 77.8 | 77.8 | +| deeplabv3 | deeplabv3_r50-d8_512x1024_40k_cityscapes.py | cityscapes | mIoU | 79.0 | 79.0 | 79.0 | 79.0 | +| deeplabv3+ | deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py | cityscapes | mIoU | 79.6 | 79.5 | 79.5 | 79.5 | +| PSPNet | pspnet_r50-d8_769x769_40k_cityscapes.py | cityscapes | mIoU | 78.2 | 78.1 | | | +| deeplabv3 | deeplabv3_r50-d8_769x769_40k_cityscapes.py | cityscapes | mIoU | 78.5 | 78.3 | | | +| deeplabv3+ | deeplabv3plus_r50-d8_769x769_40k_cityscapes.py | cityscapes | mIoU | 78.9 | 78.7 | | | + +**Note**: TensorRT is only available on configs with `whole mode`. ### Convert to TorchScript (experimental) diff --git a/tools/ort_test.py b/tools/deploy_test.py similarity index 71% rename from tools/ort_test.py rename to tools/deploy_test.py index 807b21272a..bef3512d71 100644 --- a/tools/ort_test.py +++ b/tools/deploy_test.py @@ -2,10 +2,10 @@ import os import os.path as osp import warnings +from typing import Any, Iterable import mmcv import numpy as np -import onnxruntime as ort import torch from mmcv.parallel import MMDataParallel from mmcv.runner import get_dist_info @@ -18,8 +18,10 @@ class ONNXRuntimeSegmentor(BaseSegmentor): - def __init__(self, onnx_file, cfg, device_id): + def __init__(self, onnx_file: str, cfg: Any, device_id: int): super(ONNXRuntimeSegmentor, self).__init__() + import onnxruntime as ort + # get the custom op path ort_custom_op_path = '' try: @@ -60,7 +62,8 @@ def encode_decode(self, img, img_metas): def forward_train(self, imgs, img_metas, **kwargs): raise NotImplementedError('This method is not implemented.') - def simple_test(self, img, img_meta, **kwargs): + def simple_test(self, img: torch.Tensor, img_meta: Iterable, + **kwargs) -> list: device_type = img.device.type self.io_binding.bind_input( name='input', @@ -87,11 +90,63 @@ def aug_test(self, imgs, img_metas, **kwargs): raise NotImplementedError('This method is not implemented.') -def parse_args(): +class TensorRTSegmentor(BaseSegmentor): + + def __init__(self, trt_file: str, cfg: Any, device_id: int): + super(TensorRTSegmentor, self).__init__() + from mmcv.tensorrt import TRTWraper, load_tensorrt_plugin + try: + load_tensorrt_plugin() + except (ImportError, ModuleNotFoundError): + warnings.warn('If input model has custom op from mmcv, \ + you may have to build mmcv with TensorRT from source.') + model = TRTWraper( + trt_file, input_names=['input'], output_names=['output']) + + self.model = model + self.device_id = device_id + self.cfg = cfg + self.test_mode = cfg.model.test_cfg.mode + + def extract_feat(self, imgs): + raise NotImplementedError('This method is not implemented.') + + def encode_decode(self, img, img_metas): + raise NotImplementedError('This method is not implemented.') + + def forward_train(self, imgs, img_metas, **kwargs): + raise NotImplementedError('This method is not implemented.') + + def simple_test(self, img: torch.Tensor, img_meta: Iterable, + **kwargs) -> list: + with torch.cuda.device(self.device_id), torch.no_grad(): + seg_pred = self.model({'input': img})['output'] + seg_pred = seg_pred.detach().cpu().numpy() + # whole might support dynamic reshape + ori_shape = img_meta[0]['ori_shape'] + if not (ori_shape[0] == seg_pred.shape[-2] + and ori_shape[1] == seg_pred.shape[-1]): + seg_pred = torch.from_numpy(seg_pred).float() + seg_pred = torch.nn.functional.interpolate( + seg_pred, size=tuple(ori_shape[:2]), mode='nearest') + seg_pred = seg_pred.long().detach().cpu().numpy() + seg_pred = seg_pred[0] + seg_pred = list(seg_pred) + return seg_pred + + def aug_test(self, imgs, img_metas, **kwargs): + raise NotImplementedError('This method is not implemented.') + + +def parse_args() -> argparse.Namespace: parser = argparse.ArgumentParser( - description='mmseg onnxruntime backend test (and eval) a model') + description='mmseg backend test (and eval)') parser.add_argument('config', help='test config file path') parser.add_argument('model', help='Input model file') + parser.add_argument( + '--backend', + help='Backend of the model.', + choices=['onnxruntime', 'tensorrt']) parser.add_argument('--out', help='output result file in pickle format') parser.add_argument( '--format-only', @@ -163,7 +218,12 @@ def main(): # load onnx config and meta cfg.model.train_cfg = None - model = ONNXRuntimeSegmentor(args.model, cfg=cfg, device_id=0) + + if args.backend == 'onnxruntime': + model = ONNXRuntimeSegmentor(args.model, cfg=cfg, device_id=0) + elif args.backend == 'tensorrt': + model = TensorRTSegmentor(args.model, cfg=cfg, device_id=0) + model.CLASSES = dataset.CLASSES model.PALETTE = dataset.PALETTE From 725d5aa002a435595dd02c31e641a3363d7fe974 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=98=95=E8=BE=B0?= Date: Tue, 1 Jun 2021 06:07:24 +0800 Subject: [PATCH 150/706] [Feature] support mim (#549) * dice loss * format code, add docstring and calculate denominator without valid_mask * minor change * restore * add metafile * add manifest.in and add config at setup.py * add requirements * modify manifest * modify manifest * Update MANIFEST.in * add metafile * add metadata * fix typo * Update metafile.yml * Update metafile.yml * minor change * Update metafile.yml * add subfix * fix mmshow * add more metafile * add config to model_zoo * fix bug * Update mminstall.txt * [fix] Add models * [Fix] Add collections * [fix] Modify collection name * [Fix] Set datasets to unet metafile * [Fix] Modify collection names * complement inference time --- MANIFEST.in | 5 + configs/ann/metafile.yml | 231 +++++++++++++ configs/apcnet/metafile.yml | 174 ++++++++++ configs/ccnet/metafile.yml | 231 +++++++++++++ configs/cgnet/metafile.yml | 33 ++ configs/danet/metafile.yml | 231 +++++++++++++ configs/deeplabv3/metafile.yml | 428 ++++++++++++++++++++++++ configs/deeplabv3plus/metafile.yml | 428 ++++++++++++++++++++++++ configs/dmnet/metafile.yml | 174 ++++++++++ configs/dnlnet/metafile.yml | 174 ++++++++++ configs/emanet/metafile.yml | 61 ++++ configs/encnet/metafile.yml | 175 ++++++++++ configs/fastscnn/metafile.yml | 19 ++ configs/fcn/metafile.yml | 519 +++++++++++++++++++++++++++++ configs/fp16/metafile.yml | 56 ++++ configs/gcnet/metafile.yml | 231 +++++++++++++ configs/hrnet/metafile.yml | 348 +++++++++++++++++++ configs/mobilenet_v2/metafile.yml | 112 +++++++ configs/mobilenet_v3/metafile.yml | 61 ++++ configs/nonlocal_net/metafile.yml | 231 +++++++++++++ configs/ocrnet/metafile.yml | 343 +++++++++++++++++++ configs/point_rend/metafile.yml | 62 ++++ configs/psanet/metafile.yml | 231 +++++++++++++ configs/pspnet/metafile.yml | 400 ++++++++++++++++++++++ configs/resnest/metafile.yml | 118 +++++++ configs/sem_fpn/metafile.yml | 63 ++++ configs/unet/metafile.yml | 167 ++++++++++ configs/upernet/metafile.yml | 231 +++++++++++++ model_zoo.yml | 27 ++ requirements/mminstall.txt | 1 + setup.py | 1 + 31 files changed, 5566 insertions(+) create mode 100644 MANIFEST.in create mode 100644 configs/ann/metafile.yml create mode 100644 configs/apcnet/metafile.yml create mode 100644 configs/ccnet/metafile.yml create mode 100644 configs/cgnet/metafile.yml create mode 100644 configs/danet/metafile.yml create mode 100644 configs/deeplabv3/metafile.yml create mode 100644 configs/deeplabv3plus/metafile.yml create mode 100644 configs/dmnet/metafile.yml create mode 100644 configs/dnlnet/metafile.yml create mode 100644 configs/emanet/metafile.yml create mode 100644 configs/encnet/metafile.yml create mode 100644 configs/fastscnn/metafile.yml create mode 100644 configs/fcn/metafile.yml create mode 100644 configs/fp16/metafile.yml create mode 100644 configs/gcnet/metafile.yml create mode 100644 configs/hrnet/metafile.yml create mode 100644 configs/mobilenet_v2/metafile.yml create mode 100644 configs/mobilenet_v3/metafile.yml create mode 100644 configs/nonlocal_net/metafile.yml create mode 100644 configs/ocrnet/metafile.yml create mode 100644 configs/point_rend/metafile.yml create mode 100644 configs/psanet/metafile.yml create mode 100644 configs/pspnet/metafile.yml create mode 100644 configs/resnest/metafile.yml create mode 100644 configs/sem_fpn/metafile.yml create mode 100644 configs/unet/metafile.yml create mode 100644 configs/upernet/metafile.yml create mode 100644 model_zoo.yml create mode 100644 requirements/mminstall.txt diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000000..a1a7c9f8f5 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,5 @@ + +include requirements/*.txt +include mmseg/model_zoo.yml +recursive-include mmseg/configs *.py *.yml +recursive-include mmseg/tools *.sh *.py diff --git a/configs/ann/metafile.yml b/configs/ann/metafile.yml new file mode 100644 index 0000000000..17959f4282 --- /dev/null +++ b/configs/ann/metafile.yml @@ -0,0 +1,231 @@ +Collections: + - Name: ANN + Metadata: + Training Data: + - Cityscapes + - Pascal VOC 2012 + Aug + - ADE20K + +Models: + + - Name: ann_r50-d8_512x1024_40k_cityscapes + In Collection: ANN + Metadata: + inference time (fps): 3.71 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.40 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_40k_cityscapes/ann_r50-d8_512x1024_40k_cityscapes_20200605_095211-049fc292.pth + Config: configs/ann/ann_r50-d8_512x1024_40k_cityscapes.py + + + + - Name: ann_r101-d8_512x1024_40k_cityscapes + In Collection: ANN + Metadata: + inference time (fps): 2.55 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.55 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_40k_cityscapes/ann_r101-d8_512x1024_40k_cityscapes_20200605_095243-adf6eece.pth + Config: configs/ann/ann_r101-d8_512x1024_40k_cityscapes.py + + + + - Name: ann_r50-d8_769x769_40k_cityscapes + In Collection: ANN + Metadata: + inference time (fps): 1.70 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.89 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_40k_cityscapes/ann_r50-d8_769x769_40k_cityscapes_20200530_025712-2b46b04d.pth + Config: configs/ann/ann_r50-d8_769x769_40k_cityscapes.py + + + + - Name: ann_r101-d8_769x769_40k_cityscapes + In Collection: ANN + Metadata: + inference time (fps): 1.15 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.32 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_40k_cityscapes/ann_r101-d8_769x769_40k_cityscapes_20200530_025720-059bff28.pth + Config: configs/ann/ann_r101-d8_769x769_40k_cityscapes.py + + + + - Name: ann_r50-d8_512x1024_80k_cityscapes + In Collection: ANN + Metadata: + inference time (fps): 3.71 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.34 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_80k_cityscapes/ann_r50-d8_512x1024_80k_cityscapes_20200607_101911-5a9ad545.pth + Config: configs/ann/ann_r50-d8_512x1024_80k_cityscapes.py + + + + - Name: ann_r101-d8_512x1024_80k_cityscapes + In Collection: ANN + Metadata: + inference time (fps): 2.55 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.14 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_80k_cityscapes/ann_r101-d8_512x1024_80k_cityscapes_20200607_013728-aceccc6e.pth + Config: configs/ann/ann_r101-d8_512x1024_80k_cityscapes.py + + + + - Name: ann_r50-d8_769x769_80k_cityscapes + In Collection: ANN + Metadata: + inference time (fps): 1.70 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.88 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_80k_cityscapes/ann_r50-d8_769x769_80k_cityscapes_20200607_044426-cc7ff323.pth + Config: configs/ann/ann_r50-d8_769x769_80k_cityscapes.py + + + + - Name: ann_r101-d8_769x769_80k_cityscapes + In Collection: ANN + Metadata: + inference time (fps): + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.80 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_80k_cityscapes/ann_r101-d8_769x769_80k_cityscapes_20200607_013713-a9d4be8d.pth + Config: configs/ann/ann_r101-d8_769x769_80k_cityscapes.py + + + + - Name: ann_r50-d8_512x512_80k_ade20k + In Collection: ANN + Metadata: + inference time (fps): 21.01 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 41.01 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_80k_ade20k/ann_r50-d8_512x512_80k_ade20k_20200615_014818-26f75e11.pth + Config: configs/ann/ann_r50-d8_512x512_80k_ade20k.py + + + + - Name: ann_r101-d8_512x512_80k_ade20k + In Collection: ANN + Metadata: + inference time (fps): 14.12 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.94 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_80k_ade20k/ann_r101-d8_512x512_80k_ade20k_20200615_014818-c0153543.pth + Config: configs/ann/ann_r101-d8_512x512_80k_ade20k.py + + + + - Name: ann_r50-d8_512x512_160k_ade20k + In Collection: ANN + Metadata: + inference time (fps): 21.01 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 41.74 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_160k_ade20k/ann_r50-d8_512x512_160k_ade20k_20200615_231733-892247bc.pth + Config: configs/ann/ann_r50-d8_512x512_160k_ade20k.py + + + + - Name: ann_r101-d8_512x512_160k_ade20k + In Collection: ANN + Metadata: + inference time (fps): 14.12 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.94 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_160k_ade20k/ann_r101-d8_512x512_160k_ade20k_20200615_231733-955eb1ec.pth + Config: configs/ann/ann_r101-d8_512x512_160k_ade20k.py + + + + - Name: ann_r50-d8_512x512_20k_voc12aug + In Collection: ANN + Metadata: + inference time (fps): 20.92 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 74.86 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_20k_voc12aug/ann_r50-d8_512x512_20k_voc12aug_20200617_222246-dfcb1c62.pth + Config: configs/ann/ann_r50-d8_512x512_20k_voc12aug.py + + + + - Name: ann_r101-d8_512x512_20k_voc12aug + In Collection: ANN + Metadata: + inference time (fps): 13.94 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.47 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_20k_voc12aug/ann_r101-d8_512x512_20k_voc12aug_20200617_222246-2fad0042.pth + Config: configs/ann/ann_r101-d8_512x512_20k_voc12aug.py + + + + - Name: ann_r50-d8_512x512_40k_voc12aug + In Collection: ANN + Metadata: + inference time (fps): 20.92 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.56 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_40k_voc12aug/ann_r50-d8_512x512_40k_voc12aug_20200613_231314-b5dac322.pth + Config: configs/ann/ann_r50-d8_512x512_40k_voc12aug.py + + + + - Name: ann_r101-d8_512x512_40k_voc12aug + In Collection: ANN + Metadata: + inference time (fps): 13.94 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.70 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_40k_voc12aug/ann_r101-d8_512x512_40k_voc12aug_20200613_231314-bd205bbe.pth + Config: configs/ann/ann_r101-d8_512x512_40k_voc12aug.py diff --git a/configs/apcnet/metafile.yml b/configs/apcnet/metafile.yml new file mode 100644 index 0000000000..de3ab01729 --- /dev/null +++ b/configs/apcnet/metafile.yml @@ -0,0 +1,174 @@ +Collections: + - Name: APCNet + Metadata: + Training Data: + - Cityscapes + - ADE20K + +Models: + + - Name: apcnet_r50-d8_512x1024_40k_cityscapes + In Collection: APCNet + Metadata: + inference time (fps): 3.57 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.02 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes/apcnet_r50-d8_512x1024_40k_cityscapes_20201214_115717-5e88fa33.pth + Config: configs/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes.py + + + + - Name: apcnet_r101-d8_512x1024_40k_cityscapes + In Collection: APCNet + Metadata: + inference time (fps): 2.15 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.08 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes/apcnet_r101-d8_512x1024_40k_cityscapes_20201214_115716-abc9d111.pth + Config: configs/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes.py + + + + - Name: apcnet_r50-d8_769x769_40k_cityscapes + In Collection: APCNet + Metadata: + inference time (fps): 1.52 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.89 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_40k_cityscapes/apcnet_r50-d8_769x769_40k_cityscapes_20201214_115717-2a2628d7.pth + Config: configs/apcnet/apcnet_r50-d8_769x769_40k_cityscapes.py + + + + - Name: apcnet_r101-d8_769x769_40k_cityscapes + In Collection: APCNet + Metadata: + inference time (fps): 1.03 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.96 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_40k_cityscapes/apcnet_r101-d8_769x769_40k_cityscapes_20201214_115718-b650de90.pth + Config: configs/apcnet/apcnet_r101-d8_769x769_40k_cityscapes.py + + + + - Name: apcnet_r50-d8_512x1024_80k_cityscapes + In Collection: APCNet + Metadata: + inference time (fps): 3.57 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.96 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes/apcnet_r50-d8_512x1024_80k_cityscapes_20201214_115716-987f51e3.pth + Config: configs/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes.py + + + + - Name: apcnet_r101-d8_512x1024_80k_cityscapes + In Collection: APCNet + Metadata: + inference time (fps): 2.15 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.64 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes/apcnet_r101-d8_512x1024_80k_cityscapes_20201214_115705-b1ff208a.pth + Config: configs/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes.py + + + + - Name: apcnet_r50-d8_769x769_80k_cityscapes + In Collection: APCNet + Metadata: + inference time (fps): 1.52 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.79 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_80k_cityscapes/apcnet_r50-d8_769x769_80k_cityscapes_20201214_115718-7ea9fa12.pth + Config: configs/apcnet/apcnet_r50-d8_769x769_80k_cityscapes.py + + + + - Name: apcnet_r101-d8_769x769_80k_cityscapes + In Collection: APCNet + Metadata: + inference time (fps): 1.03 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.45 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_80k_cityscapes/apcnet_r101-d8_769x769_80k_cityscapes_20201214_115716-a7fbc2ab.pth + Config: configs/apcnet/apcnet_r101-d8_769x769_80k_cityscapes.py + + + + - Name: apcnet_r50-d8_512x512_80k_ade20k + In Collection: APCNet + Metadata: + inference time (fps): 19.61 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.20 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_80k_ade20k/apcnet_r50-d8_512x512_80k_ade20k_20201214_115705-a8626293.pth + Config: configs/apcnet/apcnet_r50-d8_512x512_80k_ade20k.py + + + + - Name: apcnet_r101-d8_512x512_80k_ade20k + In Collection: APCNet + Metadata: + inference time (fps): 13.10 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 45.54 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_80k_ade20k/apcnet_r101-d8_512x512_80k_ade20k_20201214_115704-c656c3fb.pth + Config: configs/apcnet/apcnet_r101-d8_512x512_80k_ade20k.py + + + + - Name: apcnet_r50-d8_512x512_160k_ade20k + In Collection: APCNet + Metadata: + inference time (fps): 19.61 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.40 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_160k_ade20k/apcnet_r50-d8_512x512_160k_ade20k_20201214_115706-25fb92c2.pth + Config: configs/apcnet/apcnet_r50-d8_512x512_160k_ade20k.py + + + + - Name: apcnet_r101-d8_512x512_160k_ade20k + In Collection: APCNet + Metadata: + inference time (fps): 13.10 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 45.41 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_160k_ade20k/apcnet_r101-d8_512x512_160k_ade20k_20201214_115705-73f9a8d7.pth + Config: configs/apcnet/apcnet_r101-d8_512x512_160k_ade20k.py diff --git a/configs/ccnet/metafile.yml b/configs/ccnet/metafile.yml new file mode 100644 index 0000000000..e9babb5b44 --- /dev/null +++ b/configs/ccnet/metafile.yml @@ -0,0 +1,231 @@ +Collections: + - Name: CCNet + Metadata: + Training Data: + - Cityscapes + - Pascal VOC 2012 + Aug + - ADE20K + +Models: + + - Name: ccnet_r50-d8_512x1024_40k_cityscapes + In Collection: CCNet + Metadata: + inference time (fps): 3.32 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.76 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes/ccnet_r50-d8_512x1024_40k_cityscapes_20200616_142517-4123f401.pth + Config: configs/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes.py + + + + - Name: ccnet_r101-d8_512x1024_40k_cityscapes + In Collection: CCNet + Metadata: + inference time (fps): 2.31 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.35 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes/ccnet_r101-d8_512x1024_40k_cityscapes_20200616_142540-a3b84ba6.pth + Config: configs/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes.py + + + + - Name: ccnet_r50-d8_769x769_40k_cityscapes + In Collection: CCNet + Metadata: + inference time (fps): 1.43 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.46 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_40k_cityscapes/ccnet_r50-d8_769x769_40k_cityscapes_20200616_145125-76d11884.pth + Config: configs/ccnet/ccnet_r50-d8_769x769_40k_cityscapes.py + + + + - Name: ccnet_r101-d8_769x769_40k_cityscapes + In Collection: CCNet + Metadata: + inference time (fps): 1.01 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.94 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_40k_cityscapes/ccnet_r101-d8_769x769_40k_cityscapes_20200617_101428-4f57c8d0.pth + Config: configs/ccnet/ccnet_r101-d8_769x769_40k_cityscapes.py + + + + - Name: ccnet_r50-d8_512x1024_80k_cityscapes + In Collection: CCNet + Metadata: + inference time (fps): 3.32 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.03 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes/ccnet_r50-d8_512x1024_80k_cityscapes_20200617_010421-869a3423.pth + Config: configs/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes.py + + + + - Name: ccnet_r101-d8_512x1024_80k_cityscapes + In Collection: CCNet + Metadata: + inference time (fps): 2.31 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.87 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes/ccnet_r101-d8_512x1024_80k_cityscapes_20200617_203935-ffae8917.pth + Config: configs/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes.py + + + + - Name: ccnet_r50-d8_769x769_80k_cityscapes + In Collection: CCNet + Metadata: + inference time (fps): 1.43 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.29 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_80k_cityscapes/ccnet_r50-d8_769x769_80k_cityscapes_20200617_010421-73eed8ca.pth + Config: configs/ccnet/ccnet_r50-d8_769x769_80k_cityscapes.py + + + + - Name: ccnet_r101-d8_769x769_80k_cityscapes + In Collection: CCNet + Metadata: + inference time (fps): 1.01 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.45 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_80k_cityscapes/ccnet_r101-d8_769x769_80k_cityscapes_20200618_011502-ad3cd481.pth + Config: configs/ccnet/ccnet_r101-d8_769x769_80k_cityscapes.py + + + + - Name: ccnet_r50-d8_512x512_80k_ade20k + In Collection: CCNet + Metadata: + inference time (fps): 20.89 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 41.78 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_80k_ade20k/ccnet_r50-d8_512x512_80k_ade20k_20200615_014848-aa37f61e.pth + Config: configs/ccnet/ccnet_r50-d8_512x512_80k_ade20k.py + + + + - Name: ccnet_r101-d8_512x512_80k_ade20k + In Collection: CCNet + Metadata: + inference time (fps): 14.11 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.97 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_80k_ade20k/ccnet_r101-d8_512x512_80k_ade20k_20200615_014848-1f4929a3.pth + Config: configs/ccnet/ccnet_r101-d8_512x512_80k_ade20k.py + + + + - Name: ccnet_r50-d8_512x512_160k_ade20k + In Collection: CCNet + Metadata: + inference time (fps): 20.89 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.08 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_160k_ade20k/ccnet_r50-d8_512x512_160k_ade20k_20200616_084435-7c97193b.pth + Config: configs/ccnet/ccnet_r50-d8_512x512_160k_ade20k.py + + + + - Name: ccnet_r101-d8_512x512_160k_ade20k + In Collection: CCNet + Metadata: + inference time (fps): 14.11 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.71 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_160k_ade20k/ccnet_r101-d8_512x512_160k_ade20k_20200616_000644-e849e007.pth + Config: configs/ccnet/ccnet_r101-d8_512x512_160k_ade20k.py + + + + - Name: ccnet_r50-d8_512x512_20k_voc12aug + In Collection: CCNet + Metadata: + inference time (fps): 20.45 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.17 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_20k_voc12aug/ccnet_r50-d8_512x512_20k_voc12aug_20200617_193212-fad81784.pth + Config: configs/ccnet/ccnet_r50-d8_512x512_20k_voc12aug.py + + + + - Name: ccnet_r101-d8_512x512_20k_voc12aug + In Collection: CCNet + Metadata: + inference time (fps): 13.64 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.27 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_20k_voc12aug/ccnet_r101-d8_512x512_20k_voc12aug_20200617_193212-0007b61d.pth + Config: configs/ccnet/ccnet_r101-d8_512x512_20k_voc12aug.py + + + + - Name: ccnet_r50-d8_512x512_40k_voc12aug + In Collection: CCNet + Metadata: + inference time (fps): 20.45 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 75.96 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_40k_voc12aug/ccnet_r50-d8_512x512_40k_voc12aug_20200613_232127-c2a15f02.pth + Config: configs/ccnet/ccnet_r50-d8_512x512_40k_voc12aug.py + + + + - Name: ccnet_r101-d8_512x512_40k_voc12aug + In Collection: CCNet + Metadata: + inference time (fps): 13.64 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.87 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_40k_voc12aug/ccnet_r101-d8_512x512_40k_voc12aug_20200613_232127-c30da577.pth + Config: configs/ccnet/ccnet_r101-d8_512x512_40k_voc12aug.py diff --git a/configs/cgnet/metafile.yml b/configs/cgnet/metafile.yml new file mode 100644 index 0000000000..29f1fbb416 --- /dev/null +++ b/configs/cgnet/metafile.yml @@ -0,0 +1,33 @@ +Collections: + - Name: CGNet + Metadata: + Training Data: + - Cityscapes + +Models: + + - Name: cgnet_680x680_60k_cityscapes + In Collection: CGNet + Metadata: + inference time (fps): 30.51 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 65.63 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_680x680_60k_cityscapes/cgnet_680x680_60k_cityscapes_20201101_110253-4c0b2f2d.pth + Config: configs/cgnet/cgnet_680x680_60k_cityscapes.py + + + + - Name: cgnet_512x1024_60k_cityscapes + In Collection: CGNet + Metadata: + inference time (fps): 31.14 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 68.27 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_512x1024_60k_cityscapes/cgnet_512x1024_60k_cityscapes_20201101_110254-124ea03b.pth + Config: configs/cgnet/cgnet_512x1024_60k_cityscapes.py diff --git a/configs/danet/metafile.yml b/configs/danet/metafile.yml new file mode 100644 index 0000000000..233cf19a15 --- /dev/null +++ b/configs/danet/metafile.yml @@ -0,0 +1,231 @@ +Collections: + - Name: DANet + Metadata: + Training Data: + - Cityscapes + - Pascal VOC 2012 + Aug + - ADE20K + +Models: + + - Name: danet_r50-d8_512x1024_40k_cityscapes + In Collection: DANet + Metadata: + inference time (fps): 2.66 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.74 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_40k_cityscapes/danet_r50-d8_512x1024_40k_cityscapes_20200605_191324-c0dbfa5f.pth + Config: configs/danet/danet_r50-d8_512x1024_40k_cityscapes.py + + + + - Name: danet_r101-d8_512x1024_40k_cityscapes + In Collection: DANet + Metadata: + inference time (fps): 1.99 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.52 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_40k_cityscapes/danet_r101-d8_512x1024_40k_cityscapes_20200605_200831-c57a7157.pth + Config: configs/danet/danet_r101-d8_512x1024_40k_cityscapes.py + + + + - Name: danet_r50-d8_769x769_40k_cityscapes + In Collection: DANet + Metadata: + inference time (fps): 1.56 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.88 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_40k_cityscapes/danet_r50-d8_769x769_40k_cityscapes_20200530_025703-76681c60.pth + Config: configs/danet/danet_r50-d8_769x769_40k_cityscapes.py + + + + - Name: danet_r101-d8_769x769_40k_cityscapes + In Collection: DANet + Metadata: + inference time (fps): 1.07 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.88 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_40k_cityscapes/danet_r101-d8_769x769_40k_cityscapes_20200530_025717-dcb7fd4e.pth + Config: configs/danet/danet_r101-d8_769x769_40k_cityscapes.py + + + + - Name: danet_r50-d8_512x1024_80k_cityscapes + In Collection: DANet + Metadata: + inference time (fps): 2.66 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.34 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_80k_cityscapes/danet_r50-d8_512x1024_80k_cityscapes_20200607_133029-2bfa2293.pth + Config: configs/danet/danet_r50-d8_512x1024_80k_cityscapes.py + + + + - Name: danet_r101-d8_512x1024_80k_cityscapes + In Collection: DANet + Metadata: + inference time (fps): 1.99 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.41 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_80k_cityscapes/danet_r101-d8_512x1024_80k_cityscapes_20200607_132918-955e6350.pth + Config: configs/danet/danet_r101-d8_512x1024_80k_cityscapes.py + + + + - Name: danet_r50-d8_769x769_80k_cityscapes + In Collection: DANet + Metadata: + inference time (fps): 1.56 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.27 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_80k_cityscapes/danet_r50-d8_769x769_80k_cityscapes_20200607_132954-495689b4.pth + Config: configs/danet/danet_r50-d8_769x769_80k_cityscapes.py + + + + - Name: danet_r101-d8_769x769_80k_cityscapes + In Collection: DANet + Metadata: + inference time (fps): 1.07 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.47 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_80k_cityscapes/danet_r101-d8_769x769_80k_cityscapes_20200607_132918-f3a929e7.pth + Config: configs/danet/danet_r101-d8_769x769_80k_cityscapes.py + + + + - Name: danet_r50-d8_512x512_80k_ade20k + In Collection: DANet + Metadata: + inference time (fps): 21.20 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 41.66 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_80k_ade20k/danet_r50-d8_512x512_80k_ade20k_20200615_015125-edb18e08.pth + Config: configs/danet/danet_r50-d8_512x512_80k_ade20k.py + + + + - Name: danet_r101-d8_512x512_80k_ade20k + In Collection: DANet + Metadata: + inference time (fps): 14.18 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.64 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_80k_ade20k/danet_r101-d8_512x512_80k_ade20k_20200615_015126-d0357c73.pth + Config: configs/danet/danet_r101-d8_512x512_80k_ade20k.py + + + + - Name: danet_r50-d8_512x512_160k_ade20k + In Collection: DANet + Metadata: + inference time (fps): 21.20 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.45 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_160k_ade20k/danet_r50-d8_512x512_160k_ade20k_20200616_082340-9cb35dcd.pth + Config: configs/danet/danet_r50-d8_512x512_160k_ade20k.py + + + + - Name: danet_r101-d8_512x512_160k_ade20k + In Collection: DANet + Metadata: + inference time (fps): 14.18 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 44.17 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_160k_ade20k/danet_r101-d8_512x512_160k_ade20k_20200616_082348-23bf12f9.pth + Config: configs/danet/danet_r101-d8_512x512_160k_ade20k.py + + + + - Name: danet_r50-d8_512x512_20k_voc12aug + In Collection: DANet + Metadata: + inference time (fps): 20.94 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 74.45 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_20k_voc12aug/danet_r50-d8_512x512_20k_voc12aug_20200618_070026-9e9e3ab3.pth + Config: configs/danet/danet_r50-d8_512x512_20k_voc12aug.py + + + + - Name: danet_r101-d8_512x512_20k_voc12aug + In Collection: DANet + Metadata: + inference time (fps): 13.76 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.02 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_20k_voc12aug/danet_r101-d8_512x512_20k_voc12aug_20200618_070026-d48d23b2.pth + Config: configs/danet/danet_r101-d8_512x512_20k_voc12aug.py + + + + - Name: danet_r50-d8_512x512_40k_voc12aug + In Collection: DANet + Metadata: + inference time (fps): 20.94 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.37 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_40k_voc12aug/danet_r50-d8_512x512_40k_voc12aug_20200613_235526-426e3a64.pth + Config: configs/danet/danet_r50-d8_512x512_40k_voc12aug.py + + + + - Name: danet_r101-d8_512x512_40k_voc12aug + In Collection: DANet + Metadata: + inference time (fps): 13.76 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.51 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_40k_voc12aug/danet_r101-d8_512x512_40k_voc12aug_20200613_223031-788e232a.pth + Config: configs/danet/danet_r101-d8_512x512_40k_voc12aug.py diff --git a/configs/deeplabv3/metafile.yml b/configs/deeplabv3/metafile.yml new file mode 100644 index 0000000000..8c7e416d36 --- /dev/null +++ b/configs/deeplabv3/metafile.yml @@ -0,0 +1,428 @@ +Collections: + - Name: DeepLabV3 + Metadata: + Training Data: + - Cityscapes + - Pascal Context + - Pascal VOC 2012 + Aug + - ADE20K + +Models: + + - Name: deeplabv3_r50-d8_512x1024_40k_cityscapes + In Collection: DeepLabV3 + Metadata: + inference time (fps): 2.57 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.09 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes/deeplabv3_r50-d8_512x1024_40k_cityscapes_20200605_022449-acadc2f8.pth + Config: configs/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes.py + + + + - Name: deeplabv3_r101-d8_512x1024_40k_cityscapes + In Collection: DeepLabV3 + Metadata: + inference time (fps): 1.92 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.12 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes/deeplabv3_r101-d8_512x1024_40k_cityscapes_20200605_012241-7fd3f799.pth + Config: configs/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes.py + + + + - Name: deeplabv3_r50-d8_769x769_40k_cityscapes + In Collection: DeepLabV3 + Metadata: + inference time (fps): 1.11 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.58 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes/deeplabv3_r50-d8_769x769_40k_cityscapes_20200606_113723-7eda553c.pth + Config: configs/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes.py + + + + - Name: deeplabv3_r101-d8_769x769_40k_cityscapes + In Collection: DeepLabV3 + Metadata: + inference time (fps): 0.83 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.27 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes/deeplabv3_r101-d8_769x769_40k_cityscapes_20200606_113809-c64f889f.pth + Config: configs/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes.py + + + + - Name: deeplabv3_r18-d8_512x1024_80k_cityscapes + In Collection: DeepLabV3 + Metadata: + inference time (fps): 13.78 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.70 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes/deeplabv3_r18-d8_512x1024_80k_cityscapes_20201225_021506-23dffbe2.pth + Config: configs/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes.py + + + + - Name: deeplabv3_r50-d8_512x1024_80k_cityscapes + In Collection: DeepLabV3 + Metadata: + inference time (fps): 2.57 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.32 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes/deeplabv3_r50-d8_512x1024_80k_cityscapes_20200606_113404-b92cfdd4.pth + Config: configs/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes.py + + + + - Name: deeplabv3_r101-d8_512x1024_80k_cityscapes + In Collection: DeepLabV3 + Metadata: + inference time (fps): 1.92 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.20 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes/deeplabv3_r101-d8_512x1024_80k_cityscapes_20200606_113503-9e428899.pth + Config: configs/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py + + + + - Name: deeplabv3_r18-d8_769x769_80k_cityscapes + In Collection: DeepLabV3 + Metadata: + inference time (fps): 5.55 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.60 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes/deeplabv3_r18-d8_769x769_80k_cityscapes_20201225_021506-6452126a.pth + Config: configs/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes.py + + + + - Name: deeplabv3_r50-d8_769x769_80k_cityscapes + In Collection: DeepLabV3 + Metadata: + inference time (fps): 1.11 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.89 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes/deeplabv3_r50-d8_769x769_80k_cityscapes_20200606_221338-788d6228.pth + Config: configs/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes.py + + + + - Name: deeplabv3_r101-d8_769x769_80k_cityscapes + In Collection: DeepLabV3 + Metadata: + inference time (fps): 0.83 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.67 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes/deeplabv3_r101-d8_769x769_80k_cityscapes_20200607_013353-60e95418.pth + Config: configs/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes.py + + + + - Name: deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes + In Collection: DeepLabV3 + Metadata: + inference time (fps): 6.96 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.71 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes_20200908_005644-67b0c992.pth + Config: configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py + + + + - Name: deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes + In Collection: DeepLabV3 + Metadata: + inference time (fps): 6.96 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.36 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes_20200908_005644-57bb8425.pth + Config: configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py + + + + - Name: deeplabv3_r18b-d8_512x1024_80k_cityscapes + In Collection: DeepLabV3 + Metadata: + inference time (fps): 13.93 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.26 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes/deeplabv3_r18b-d8_512x1024_80k_cityscapes_20201225_094144-46040cef.pth + Config: configs/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes.py + + + + - Name: deeplabv3_r50b-d8_512x1024_80k_cityscapes + In Collection: DeepLabV3 + Metadata: + inference time (fps): 2.74 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.63 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes/deeplabv3_r50b-d8_512x1024_80k_cityscapes_20201225_155148-ec368954.pth + Config: configs/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes.py + + + + - Name: deeplabv3_r101b-d8_512x1024_80k_cityscapes + In Collection: DeepLabV3 + Metadata: + inference time (fps): 1.81 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.01 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes/deeplabv3_r101b-d8_512x1024_80k_cityscapes_20201226_171821-8fd49503.pth + Config: configs/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes.py + + + + - Name: deeplabv3_r18b-d8_769x769_80k_cityscapes + In Collection: DeepLabV3 + Metadata: + inference time (fps): 5.79 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.63 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes/deeplabv3_r18b-d8_769x769_80k_cityscapes_20201225_094144-fdc985d9.pth + Config: configs/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes.py + + + + - Name: deeplabv3_r50b-d8_769x769_80k_cityscapes + In Collection: DeepLabV3 + Metadata: + inference time (fps): 1.16 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.80 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes/deeplabv3_r50b-d8_769x769_80k_cityscapes_20201225_155404-87fb0cf4.pth + Config: configs/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes.py + + + + - Name: deeplabv3_r101b-d8_769x769_80k_cityscapes + In Collection: DeepLabV3 + Metadata: + inference time (fps): 0.82 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.41 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes/deeplabv3_r101b-d8_769x769_80k_cityscapes_20201226_190843-9142ee57.pth + Config: configs/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes.py + + + + - Name: deeplabv3_r50-d8_512x512_80k_ade20k + In Collection: DeepLabV3 + Metadata: + inference time (fps): 14.76 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.42 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k/deeplabv3_r50-d8_512x512_80k_ade20k_20200614_185028-0bb3f844.pth + Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k.py + + + + - Name: deeplabv3_r101-d8_512x512_80k_ade20k + In Collection: DeepLabV3 + Metadata: + inference time (fps): 10.14 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 44.08 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k/deeplabv3_r101-d8_512x512_80k_ade20k_20200615_021256-d89c7fa4.pth + Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k.py + + + + - Name: deeplabv3_r50-d8_512x512_160k_ade20k + In Collection: DeepLabV3 + Metadata: + inference time (fps): 14.76 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.66 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k/deeplabv3_r50-d8_512x512_160k_ade20k_20200615_123227-5d0ee427.pth + Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k.py + + + + - Name: deeplabv3_r101-d8_512x512_160k_ade20k + In Collection: DeepLabV3 + Metadata: + inference time (fps): 10.14 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 45.00 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k/deeplabv3_r101-d8_512x512_160k_ade20k_20200615_105816-b1f72b3b.pth + Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k.py + + + + - Name: deeplabv3_r50-d8_512x512_20k_voc12aug + In Collection: DeepLabV3 + Metadata: + inference time (fps): 13.88 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.17 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug/deeplabv3_r50-d8_512x512_20k_voc12aug_20200617_010906-596905ef.pth + Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug.py + + + + - Name: deeplabv3_r101-d8_512x512_20k_voc12aug + In Collection: DeepLabV3 + Metadata: + inference time (fps): 9.81 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 78.70 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug/deeplabv3_r101-d8_512x512_20k_voc12aug_20200617_010932-8d13832f.pth + Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug.py + + + + - Name: deeplabv3_r50-d8_512x512_40k_voc12aug + In Collection: DeepLabV3 + Metadata: + inference time (fps): 13.88 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.68 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug/deeplabv3_r50-d8_512x512_40k_voc12aug_20200613_161546-2ae96e7e.pth + Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug.py + + + + - Name: deeplabv3_r101-d8_512x512_40k_voc12aug + In Collection: DeepLabV3 + Metadata: + inference time (fps): 9.81 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.92 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug/deeplabv3_r101-d8_512x512_40k_voc12aug_20200613_161432-0017d784.pth + Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug.py + + + + - Name: deeplabv3_r101-d8_480x480_40k_pascal_context + In Collection: DeepLabV3 + Metadata: + inference time (fps): 7.09 + Results: + - Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 46.55 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context/deeplabv3_r101-d8_480x480_40k_pascal_context_20200911_204118-1aa27336.pth + Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context.py + + + + - Name: deeplabv3_r101-d8_480x480_80k_pascal_context + In Collection: DeepLabV3 + Metadata: + inference time (fps): 7.09 + Results: + - Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 46.42 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context/deeplabv3_r101-d8_480x480_80k_pascal_context_20200911_170155-2a21fff3.pth + Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context.py + + + + - Name: deeplabv3_r101-d8_480x480_40k_pascal_context + In Collection: DeepLabV3 + Metadata: + inference time (fps): None + Results: + - Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 52.61 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context_59/deeplabv3_r101-d8_480x480_40k_pascal_context_59_20210416_110332-cb08ea46.pth + Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context.py + + + + - Name: deeplabv3_r101-d8_480x480_80k_pascal_context_59 + In Collection: DeepLabV3 + Metadata: + inference time (fps): None + Results: + - Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 52.46 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context_59/deeplabv3_r101-d8_480x480_80k_pascal_context_59_20210416_113002-26303993.pth + Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context_59.py diff --git a/configs/deeplabv3plus/metafile.yml b/configs/deeplabv3plus/metafile.yml new file mode 100644 index 0000000000..d5256b7894 --- /dev/null +++ b/configs/deeplabv3plus/metafile.yml @@ -0,0 +1,428 @@ +Collections: + - Name: DeepLabV3+ + Metadata: + Training Data: + - Cityscapes + - Pascal Context + - Pascal VOC 2012 + Aug + - ADE20K + +Models: + + - Name: deeplabv3plus_r50-d8_512x1024_40k_cityscapes + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 3.94 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.61 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes/deeplabv3plus_r50-d8_512x1024_40k_cityscapes_20200605_094610-d222ffcd.pth + Config: configs/deeplabv3+/deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py + + + + - Name: deeplabv3plus_r101-d8_512x1024_40k_cityscapes + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 2.60 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.21 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes/deeplabv3plus_r101-d8_512x1024_40k_cityscapes_20200605_094614-3769eecf.pth + Config: configs/deeplabv3+/deeplabv3plus_r101-d8_512x1024_40k_cityscapes.py + + + + - Name: deeplabv3plus_r50-d8_769x769_40k_cityscapes + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 1.72 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.97 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes/deeplabv3plus_r50-d8_769x769_40k_cityscapes_20200606_114143-1dcb0e3c.pth + Config: configs/deeplabv3+/deeplabv3plus_r50-d8_769x769_40k_cityscapes.py + + + + - Name: deeplabv3plus_r101-d8_769x769_40k_cityscapes + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 1.15 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.46 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes/deeplabv3plus_r101-d8_769x769_40k_cityscapes_20200606_114304-ff414b9e.pth + Config: configs/deeplabv3+/deeplabv3plus_r101-d8_769x769_40k_cityscapes.py + + + + - Name: deeplabv3plus_r18-d8_512x1024_80k_cityscapes + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 14.27 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.89 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes/deeplabv3plus_r18-d8_512x1024_80k_cityscapes_20201226_080942-cff257fe.pth + Config: configs/deeplabv3+/deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py + + + + - Name: deeplabv3plus_r50-d8_512x1024_80k_cityscapes + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 3.94 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.09 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes/deeplabv3plus_r50-d8_512x1024_80k_cityscapes_20200606_114049-f9fb496d.pth + Config: configs/deeplabv3+/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py + + + + - Name: deeplabv3plus_r101-d8_512x1024_80k_cityscapes + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 2.60 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.97 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143-068fcfe9.pth + Config: configs/deeplabv3+/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py + + + + - Name: deeplabv3plus_r18-d8_769x769_80k_cityscapes + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 5.74 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.26 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes/deeplabv3plus_r18-d8_769x769_80k_cityscapes_20201226_083346-f326e06a.pth + Config: configs/deeplabv3+/deeplabv3plus_r18-d8_769x769_80k_cityscapes.py + + + + - Name: deeplabv3plus_r50-d8_769x769_80k_cityscapes + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 1.72 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.83 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes/deeplabv3plus_r50-d8_769x769_80k_cityscapes_20200606_210233-0e9dfdc4.pth + Config: configs/deeplabv3+/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py + + + + - Name: deeplabv3plus_r101-d8_769x769_80k_cityscapes + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 1.15 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.98 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes/deeplabv3plus_r101-d8_769x769_80k_cityscapes_20200607_000405-a7573d20.pth + Config: configs/deeplabv3+/deeplabv3plus_r101-d8_769x769_80k_cityscapes.py + + + + - Name: deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 7.48 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.09 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes_20200908_005644-cf9ce186.pth + Config: configs/deeplabv3+/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py + + + + - Name: deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 7.48 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.90 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes_20200908_005644-ee6158e0.pth + Config: configs/deeplabv3+/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py + + + + - Name: deeplabv3plus_r18b-d8_512x1024_80k_cityscapes + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 14.95 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 75.87 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes_20201226_090828-e451abd9.pth + Config: configs/deeplabv3+/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py + + + + - Name: deeplabv3plus_r50b-d8_512x1024_80k_cityscapes + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 3.94 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.28 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes_20201225_213645-a97e4e43.pth + Config: configs/deeplabv3+/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes.py + + + + - Name: deeplabv3plus_r101b-d8_512x1024_80k_cityscapes + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 2.60 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.16 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes_20201226_190843-9c3c93a4.pth + Config: configs/deeplabv3+/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py + + + + - Name: deeplabv3plus_r18b-d8_769x769_80k_cityscapes + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 5.96 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.36 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes/deeplabv3plus_r18b-d8_769x769_80k_cityscapes_20201226_151312-2c868aff.pth + Config: configs/deeplabv3+/deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py + + + + - Name: deeplabv3plus_r50b-d8_769x769_80k_cityscapes + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 1.72 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.41 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes/deeplabv3plus_r50b-d8_769x769_80k_cityscapes_20201225_224655-8b596d1c.pth + Config: configs/deeplabv3+/deeplabv3plus_r50b-d8_769x769_80k_cityscapes.py + + + + - Name: deeplabv3plus_r101b-d8_769x769_80k_cityscapes + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 1.10 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.88 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes/deeplabv3plus_r101b-d8_769x769_80k_cityscapes_20201226_205041-227cdf7c.pth + Config: configs/deeplabv3+/deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py + + + + - Name: deeplabv3plus_r50-d8_512x512_80k_ade20k + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 21.01 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.72 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k/deeplabv3plus_r50-d8_512x512_80k_ade20k_20200614_185028-bf1400d8.pth + Config: configs/deeplabv3+/deeplabv3plus_r50-d8_512x512_80k_ade20k.py + + + + - Name: deeplabv3plus_r101-d8_512x512_80k_ade20k + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 14.16 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 44.60 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k/deeplabv3plus_r101-d8_512x512_80k_ade20k_20200615_014139-d5730af7.pth + Config: configs/deeplabv3+/deeplabv3plus_r101-d8_512x512_80k_ade20k.py + + + + - Name: deeplabv3plus_r50-d8_512x512_160k_ade20k + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 21.01 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.95 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k/deeplabv3plus_r50-d8_512x512_160k_ade20k_20200615_124504-6135c7e0.pth + Config: configs/deeplabv3+/deeplabv3plus_r50-d8_512x512_160k_ade20k.py + + + + - Name: deeplabv3plus_r101-d8_512x512_160k_ade20k + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 14.16 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 45.47 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k/deeplabv3plus_r101-d8_512x512_160k_ade20k_20200615_123232-38ed86bb.pth + Config: configs/deeplabv3+/deeplabv3plus_r101-d8_512x512_160k_ade20k.py + + + + - Name: deeplabv3plus_r50-d8_512x512_20k_voc12aug + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 21 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 75.93 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug/deeplabv3plus_r50-d8_512x512_20k_voc12aug_20200617_102323-aad58ef1.pth + Config: configs/deeplabv3+/deeplabv3plus_r50-d8_512x512_20k_voc12aug.py + + + + - Name: deeplabv3plus_r101-d8_512x512_20k_voc12aug + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 13.88 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.22 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug/deeplabv3plus_r101-d8_512x512_20k_voc12aug_20200617_102345-c7ff3d56.pth + Config: configs/deeplabv3+/deeplabv3plus_r101-d8_512x512_20k_voc12aug.py + + + + - Name: deeplabv3plus_r50-d8_512x512_40k_voc12aug + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 21 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.81 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug/deeplabv3plus_r50-d8_512x512_40k_voc12aug_20200613_161759-e1b43aa9.pth + Config: configs/deeplabv3+/deeplabv3plus_r50-d8_512x512_40k_voc12aug.py + + + + - Name: deeplabv3plus_r101-d8_512x512_40k_voc12aug + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 13.88 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 78.62 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug/deeplabv3plus_r101-d8_512x512_40k_voc12aug_20200613_205333-faf03387.pth + Config: configs/deeplabv3+/deeplabv3plus_r101-d8_512x512_40k_voc12aug.py + + + + - Name: deeplabv3plus_r101-d8_480x480_40k_pascal_context + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 9.09 + Results: + - Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 47.30 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context/deeplabv3plus_r101-d8_480x480_40k_pascal_context_20200911_165459-d3c8a29e.pth + Config: configs/deeplabv3+/deeplabv3plus_r101-d8_480x480_40k_pascal_context.py + + + + - Name: deeplabv3plus_r101-d8_480x480_80k_pascal_context + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 9.09 + Results: + - Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 47.23 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context/deeplabv3plus_r101-d8_480x480_80k_pascal_context_20200911_155322-145d3ee8.pth + Config: configs/deeplabv3+/deeplabv3plus_r101-d8_480x480_80k_pascal_context.py + + + + - Name: deeplabv3plus_r101-d8_480x480_40k_pascal_context + In Collection: DeepLabV3+ + Metadata: + inference time (fps): None + Results: + - Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 52.86 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59_20210416_111233-ed937f15.pth + Config: configs/deeplabv3+/deeplabv3plus_r101-d8_480x480_40k_pascal_context.py + + + + - Name: deeplabv3plus_r101-d8_480x480_80k_pascal_context + In Collection: DeepLabV3+ + Metadata: + inference time (fps): None + Results: + - Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 53.2 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59_20210416_111127-7ca0331d.pth + Config: configs/deeplabv3+/deeplabv3plus_r101-d8_480x480_80k_pascal_context.py diff --git a/configs/dmnet/metafile.yml b/configs/dmnet/metafile.yml new file mode 100644 index 0000000000..936b2e2d36 --- /dev/null +++ b/configs/dmnet/metafile.yml @@ -0,0 +1,174 @@ +Collections: + - Name: DMNet + Metadata: + Training Data: + - Cityscapes + - ADE20K + +Models: + + - Name: dmnet_r50-d8_512x1024_40k_cityscapes + In Collection: DMNet + Metadata: + inference time (fps): 3.66 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.78 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes/dmnet_r50-d8_512x1024_40k_cityscapes_20201214_115717-5e88fa33.pth + Config: configs/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes.py + + + + - Name: dmnet_r101-d8_512x1024_40k_cityscapes + In Collection: DMNet + Metadata: + inference time (fps): 2.54 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.37 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes/dmnet_r101-d8_512x1024_40k_cityscapes_20201214_115716-abc9d111.pth + Config: configs/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes.py + + + + - Name: dmnet_r50-d8_769x769_40k_cityscapes + In Collection: DMNet + Metadata: + inference time (fps): 1.57 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.49 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_40k_cityscapes/dmnet_r50-d8_769x769_40k_cityscapes_20201214_115717-2a2628d7.pth + Config: configs/dmnet/dmnet_r50-d8_769x769_40k_cityscapes.py + + + + - Name: dmnet_r101-d8_769x769_40k_cityscapes + In Collection: DMNet + Metadata: + inference time (fps): 1.01 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.62 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_40k_cityscapes/dmnet_r101-d8_769x769_40k_cityscapes_20201214_115718-b650de90.pth + Config: configs/dmnet/dmnet_r101-d8_769x769_40k_cityscapes.py + + + + - Name: dmnet_r50-d8_512x1024_80k_cityscapes + In Collection: DMNet + Metadata: + inference time (fps): 3.66 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.07 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes/dmnet_r50-d8_512x1024_80k_cityscapes_20201214_115716-987f51e3.pth + Config: configs/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes.py + + + + - Name: dmnet_r101-d8_512x1024_80k_cityscapes + In Collection: DMNet + Metadata: + inference time (fps): 2.54 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.64 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes/dmnet_r101-d8_512x1024_80k_cityscapes_20201214_115705-b1ff208a.pth + Config: configs/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes.py + + + + - Name: dmnet_r50-d8_769x769_80k_cityscapes + In Collection: DMNet + Metadata: + inference time (fps): 1.57 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.22 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_80k_cityscapes/dmnet_r50-d8_769x769_80k_cityscapes_20201214_115718-7ea9fa12.pth + Config: configs/dmnet/dmnet_r50-d8_769x769_80k_cityscapes.py + + + + - Name: dmnet_r101-d8_769x769_80k_cityscapes + In Collection: DMNet + Metadata: + inference time (fps): 1.01 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.19 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_80k_cityscapes/dmnet_r101-d8_769x769_80k_cityscapes_20201214_115716-a7fbc2ab.pth + Config: configs/dmnet/dmnet_r101-d8_769x769_80k_cityscapes.py + + + + - Name: dmnet_r50-d8_512x512_80k_ade20k + In Collection: DMNet + Metadata: + inference time (fps): 20.95 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.37 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_80k_ade20k/dmnet_r50-d8_512x512_80k_ade20k_20201214_115705-a8626293.pth + Config: configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py + + + + - Name: dmnet_r101-d8_512x512_80k_ade20k + In Collection: DMNet + Metadata: + inference time (fps): 13.88 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 45.34 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_80k_ade20k/dmnet_r101-d8_512x512_80k_ade20k_20201214_115704-c656c3fb.pth + Config: configs/dmnet/dmnet_r101-d8_512x512_80k_ade20k.py + + + + - Name: dmnet_r50-d8_512x512_160k_ade20k + In Collection: DMNet + Metadata: + inference time (fps): 20.95 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.15 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_160k_ade20k/dmnet_r50-d8_512x512_160k_ade20k_20201214_115706-25fb92c2.pth + Config: configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py + + + + - Name: dmnet_r101-d8_512x512_160k_ade20k + In Collection: DMNet + Metadata: + inference time (fps): 13.88 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 45.42 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_160k_ade20k/dmnet_r101-d8_512x512_160k_ade20k_20201214_115705-73f9a8d7.pth + Config: configs/dmnet/dmnet_r101-d8_512x512_160k_ade20k.py diff --git a/configs/dnlnet/metafile.yml b/configs/dnlnet/metafile.yml new file mode 100644 index 0000000000..e4df52fa1c --- /dev/null +++ b/configs/dnlnet/metafile.yml @@ -0,0 +1,174 @@ +Collections: + - Name: dnl + Metadata: + Training Data: + - Cityscapes + - ADE20K + +Models: + + - Name: dnl_r50-d8_512x1024_40k_cityscapes + In Collection: dnl + Metadata: + inference time (fps): 2.56 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.61 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes/dnl_r50-d8_512x1024_40k_cityscapes_20200904_233629-53d4ea93.pth + Config: configs/dnl/dnl_r50-d8_512x1024_40k_cityscapes.py + + + + - Name: dnl_r101-d8_512x1024_40k_cityscapes + In Collection: dnl + Metadata: + inference time (fps): 1.96 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.31 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes/dnl_r101-d8_512x1024_40k_cityscapes_20200904_233629-9928ffef.pth + Config: configs/dnl/dnl_r101-d8_512x1024_40k_cityscapes.py + + + + - Name: dnl_r50-d8_769x769_40k_cityscapes + In Collection: dnl + Metadata: + inference time (fps): 1.50 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.44 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_40k_cityscapes/dnl_r50-d8_769x769_40k_cityscapes_20200820_232206-0f283785.pth + Config: configs/dnl/dnl_r50-d8_769x769_40k_cityscapes.py + + + + - Name: dnl_r101-d8_769x769_40k_cityscapes + In Collection: dnl + Metadata: + inference time (fps): 1.02 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.39 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_40k_cityscapes/dnl_r101-d8_769x769_40k_cityscapes_20200820_171256-76c596df.pth + Config: configs/dnl/dnl_r101-d8_769x769_40k_cityscapes.py + + + + - Name: dnl_r50-d8_512x1024_80k_cityscapes + In Collection: dnl + Metadata: + inference time (fps): 2.56 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.33 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes/dnl_r50-d8_512x1024_80k_cityscapes_20200904_233629-58b2f778.pth + Config: configs/dnl/dnl_r50-d8_512x1024_80k_cityscapes.py + + + + - Name: dnl_r101-d8_512x1024_80k_cityscapes + In Collection: dnl + Metadata: + inference time (fps): 1.96 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.41 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes/dnl_r101-d8_512x1024_80k_cityscapes_20200904_233629-758e2dd4.pth + Config: configs/dnl/dnl_r101-d8_512x1024_80k_cityscapes.py + + + + - Name: dnl_r50-d8_769x769_80k_cityscapes + In Collection: dnl + Metadata: + inference time (fps): 1.50 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.36 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_80k_cityscapes/dnl_r50-d8_769x769_80k_cityscapes_20200820_011925-366bc4c7.pth + Config: configs/dnl/dnl_r50-d8_769x769_80k_cityscapes.py + + + + - Name: dnl_r101-d8_769x769_80k_cityscapes + In Collection: dnl + Metadata: + inference time (fps): 1.02 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.41 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_80k_cityscapes/dnl_r101-d8_769x769_80k_cityscapes_20200821_051111-95ff84ab.pth + Config: configs/dnl/dnl_r101-d8_769x769_80k_cityscapes.py + + + + - Name: dnl_r50-d8_512x512_80k_ade20k + In Collection: dnl + Metadata: + inference time (fps): 20.66 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 41.76 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_80k_ade20k/dnl_r50-d8_512x512_80k_ade20k_20200826_183354-1cf6e0c1.pth + Config: configs/dnl/dnl_r50-d8_512x512_80k_ade20k.py + + + + - Name: dnl_r101-d8_512x512_80k_ade20k + In Collection: dnl + Metadata: + inference time (fps): 12.54 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.76 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_80k_ade20k/dnl_r101-d8_512x512_80k_ade20k_20200826_183354-d820d6ea.pth + Config: configs/dnl/dnl_r101-d8_512x512_80k_ade20k.py + + + + - Name: dnl_r50-d8_512x512_160k_ade20k + In Collection: dnl + Metadata: + inference time (fps): 20.66 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 41.87 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_160k_ade20k/dnl_r50-d8_512x512_160k_ade20k_20200826_183350-37837798.pth + Config: configs/dnl/dnl_r50-d8_512x512_160k_ade20k.py + + + + - Name: dnl_r101-d8_512x512_160k_ade20k + In Collection: dnl + Metadata: + inference time (fps): 12.54 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 44.25 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_160k_ade20k/dnl_r101-d8_512x512_160k_ade20k_20200826_183350-ed522c61.pth + Config: configs/dnl/dnl_r101-d8_512x512_160k_ade20k.py diff --git a/configs/emanet/metafile.yml b/configs/emanet/metafile.yml new file mode 100644 index 0000000000..f37dcec6d6 --- /dev/null +++ b/configs/emanet/metafile.yml @@ -0,0 +1,61 @@ +Collections: + - Name: EMANet + Metadata: + Training Data: + - Cityscapes + +Models: + + - Name: emanet_r50-d8_512x1024_80k_cityscapes + In Collection: EMANet + Metadata: + inference time (fps): 4.58 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.59 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_512x1024_80k_cityscapes/emanet_r50-d8_512x1024_80k_cityscapes_20200901_100301-c43fcef1.pth + Config: configs/emanet/emanet_r50-d8_512x1024_80k_cityscapes.py + + + + - Name: emanet_r101-d8_512x1024_80k_cityscapes + In Collection: EMANet + Metadata: + inference time (fps): 2.87 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.10 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_512x1024_80k_cityscapes/emanet_r101-d8_512x1024_80k_cityscapes_20200901_100301-2d970745.pth + Config: configs/emanet/emanet_r101-d8_512x1024_80k_cityscapes.py + + + + - Name: emanet_r50-d8_769x769_80k_cityscapes + In Collection: EMANet + Metadata: + inference time (fps): 1.97 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.33 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_769x769_80k_cityscapes/emanet_r50-d8_769x769_80k_cityscapes_20200901_100301-16f8de52.pth + Config: configs/emanet/emanet_r50-d8_769x769_80k_cityscapes.py + + + + - Name: emanet_r101-d8_769x769_80k_cityscapes + In Collection: EMANet + Metadata: + inference time (fps): 1.22 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.62 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_769x769_80k_cityscapes/emanet_r101-d8_769x769_80k_cityscapes_20200901_100301-47a324ce.pth + Config: configs/emanet/emanet_r101-d8_769x769_80k_cityscapes.py diff --git a/configs/encnet/metafile.yml b/configs/encnet/metafile.yml new file mode 100644 index 0000000000..df8bc20074 --- /dev/null +++ b/configs/encnet/metafile.yml @@ -0,0 +1,175 @@ +Collections: + - Name: encnet + Metadata: + Training Data: + - Cityscapes + - Pascal VOC 2012 + Aug + - ADE20K + +Models: + + - Name: encnet_r50-d8_512x1024_40k_cityscapes + In Collection: encnet + Metadata: + inference time (fps): 4.58 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 75.67 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_40k_cityscapes/encnet_r50-d8_512x1024_40k_cityscapes_20200621_220958-68638a47.pth + Config: configs/encnet/encnet_r50-d8_512x1024_40k_cityscapes.py + + + + - Name: encnet_r101-d8_512x1024_40k_cityscapes + In Collection: encnet + Metadata: + inference time (fps): 2.66 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 75.81 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_40k_cityscapes/encnet_r101-d8_512x1024_40k_cityscapes_20200621_220933-35e0a3e8.pth + Config: configs/encnet/encnet_r101-d8_512x1024_40k_cityscapes.py + + + + - Name: encnet_r50-d8_769x769_40k_cityscapes + In Collection: encnet + Metadata: + inference time (fps): 1.82 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.24 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_40k_cityscapes/encnet_r50-d8_769x769_40k_cityscapes_20200621_220958-3bcd2884.pth + Config: configs/encnet/encnet_r50-d8_769x769_40k_cityscapes.py + + + + - Name: encnet_r101-d8_769x769_40k_cityscapes + In Collection: encnet + Metadata: + inference time (fps): 1.26 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 74.25 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_40k_cityscapes/encnet_r101-d8_769x769_40k_cityscapes_20200621_220933-2fafed55.pth + Config: configs/encnet/encnet_r101-d8_769x769_40k_cityscapes.py + + + + - Name: encnet_r50-d8_512x1024_80k_cityscapes + In Collection: encnet + Metadata: + inference time (fps): 4.58 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.94 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_80k_cityscapes/encnet_r50-d8_512x1024_80k_cityscapes_20200622_003554-fc5c5624.pth + Config: configs/encnet/encnet_r50-d8_512x1024_80k_cityscapes.py + + + + - Name: encnet_r101-d8_512x1024_80k_cityscapes + In Collection: encnet + Metadata: + inference time (fps): 2.66 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.55 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_80k_cityscapes/encnet_r101-d8_512x1024_80k_cityscapes_20200622_003555-1de64bec.pth + Config: configs/encnet/encnet_r101-d8_512x1024_80k_cityscapes.py + + + + - Name: encnet_r50-d8_769x769_80k_cityscapes + In Collection: encnet + Metadata: + inference time (fps): 1.82 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.44 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_80k_cityscapes/encnet_r50-d8_769x769_80k_cityscapes_20200622_003554-55096dcb.pth + Config: configs/encnet/encnet_r50-d8_769x769_80k_cityscapes.py + + + + - Name: encnet_r101-d8_769x769_80k_cityscapes + In Collection: encnet + Metadata: + inference time (fps): 1.26 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.10 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_80k_cityscapes/encnet_r101-d8_769x769_80k_cityscapes_20200622_003555-470ef79d.pth + Config: configs/encnet/encnet_r101-d8_769x769_80k_cityscapes.py + + + + - Name: encnet_r50-d8_512x512_80k_ade20k + In Collection: encnet + Metadata: + inference time (fps): 22.81 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 39.53 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_80k_ade20k/encnet_r50-d8_512x512_80k_ade20k_20200622_042412-44b46b04.pth + Config: configs/encnet/encnet_r50-d8_512x512_80k_ade20k.py + + + + - Name: encnet_r101-d8_512x512_80k_ade20k + In Collection: encnet + Metadata: + inference time (fps): 14.87 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.11 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_80k_ade20k/encnet_r101-d8_512x512_80k_ade20k_20200622_101128-dd35e237.pth + Config: configs/encnet/encnet_r101-d8_512x512_80k_ade20k.py + + + + - Name: encnet_r50-d8_512x512_160k_ade20k + In Collection: encnet + Metadata: + inference time (fps): 22.81 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 40.10 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_160k_ade20k/encnet_r50-d8_512x512_160k_ade20k_20200622_101059-b2db95e0.pth + Config: configs/encnet/encnet_r50-d8_512x512_160k_ade20k.py + + + + - Name: encnet_r101-d8_512x512_160k_ade20k + In Collection: encnet + Metadata: + inference time (fps): 14.87 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.61 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_160k_ade20k/encnet_r101-d8_512x512_160k_ade20k_20200622_073348-7989641f.pth + Config: configs/encnet/encnet_r101-d8_512x512_160k_ade20k.py diff --git a/configs/fastscnn/metafile.yml b/configs/fastscnn/metafile.yml new file mode 100644 index 0000000000..edae6f6aa3 --- /dev/null +++ b/configs/fastscnn/metafile.yml @@ -0,0 +1,19 @@ +Collections: + - Name: Fast-SCNN + Metadata: + Training Data: + - Cityscapes + +Models: + + - Name: fast_scnn_4x8_80k_lr0.12_cityscapes + In Collection: Fast-SCNN + Metadata: + inference time (fps): 63.61 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 69.06 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_4x8_80k_lr0.12_cityscapes-f5096c79.pth + Config: configs/fast-scnn/fast_scnn_4x8_80k_lr0.12_cityscapes.py diff --git a/configs/fcn/metafile.yml b/configs/fcn/metafile.yml new file mode 100644 index 0000000000..6419a40aa4 --- /dev/null +++ b/configs/fcn/metafile.yml @@ -0,0 +1,519 @@ +Collections: + - Name: FCN + Metadata: + Training Data: + - Cityscapes + - Pascal Context + - Pascal VOC 2012 + Aug + - ADE20K + - Name: FCN-D6 + Metadata: + Training Data: + - Cityscapes + - Pascal Context + - Pascal VOC 2012 + Aug + - ADE20K + +Models: + + - Name: fcn_r50-d8_512x1024_40k_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 4.17 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 72.25 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_40k_cityscapes/fcn_r50-d8_512x1024_40k_cityscapes_20200604_192608-efe53f0d.pth + Config: configs/fcn/fcn_r50-d8_512x1024_40k_cityscapes.py + + + + - Name: fcn_r101-d8_512x1024_40k_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 2.66 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 75.45 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_40k_cityscapes/fcn_r101-d8_512x1024_40k_cityscapes_20200604_181852-a883d3a1.pth + Config: configs/fcn/fcn_r101-d8_512x1024_40k_cityscapes.py + + + + - Name: fcn_r50-d8_769x769_40k_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 1.80 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 71.47 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_40k_cityscapes/fcn_r50-d8_769x769_40k_cityscapes_20200606_113104-977b5d02.pth + Config: configs/fcn/fcn_r50-d8_769x769_40k_cityscapes.py + + + + - Name: fcn_r101-d8_769x769_40k_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 1.19 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 73.93 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_40k_cityscapes/fcn_r101-d8_769x769_40k_cityscapes_20200606_113208-7d4ab69c.pth + Config: configs/fcn/fcn_r101-d8_769x769_40k_cityscapes.py + + + + - Name: fcn_r18-d8_512x1024_80k_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 14.65 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 71.11 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_512x1024_80k_cityscapes/fcn_r18-d8_512x1024_80k_cityscapes_20201225_021327-6c50f8b4.pth + Config: configs/fcn/fcn_r18-d8_512x1024_80k_cityscapes.py + + + + - Name: fcn_r50-d8_512x1024_80k_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 4.17 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 73.61 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_80k_cityscapes/fcn_r50-d8_512x1024_80k_cityscapes_20200606_113019-03aa804d.pth + Config: configs/fcn/fcn_r50-d8_512x1024_80k_cityscapes.py + + + + - Name: fcn_r101-d8_512x1024_80k_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 2.66 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 75.13 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_80k_cityscapes/fcn_r101-d8_512x1024_80k_cityscapes_20200606_113038-3fb937eb.pth + Config: configs/fcn/fcn_r101-d8_512x1024_80k_cityscapes.py + + + + - Name: fcn_r18-d8_769x769_80k_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 6.40 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 70.80 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_769x769_80k_cityscapes/fcn_r18-d8_769x769_80k_cityscapes_20201225_021451-9739d1b8.pth + Config: configs/fcn/fcn_r18-d8_769x769_80k_cityscapes.py + + + + - Name: fcn_r50-d8_769x769_80k_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 1.80 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 72.64 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_80k_cityscapes/fcn_r50-d8_769x769_80k_cityscapes_20200606_195749-f5caeabc.pth + Config: configs/fcn/fcn_r50-d8_769x769_80k_cityscapes.py + + + + - Name: fcn_r101-d8_769x769_80k_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 1.19 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 75.52 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_80k_cityscapes/fcn_r101-d8_769x769_80k_cityscapes_20200606_214354-45cbac68.pth + Config: configs/fcn/fcn_r101-d8_769x769_80k_cityscapes.py + + + + - Name: fcn_r18b-d8_512x1024_80k_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 16.74 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 70.24 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_512x1024_80k_cityscapes/fcn_r18b-d8_512x1024_80k_cityscapes_20201225_230143-92c0f445.pth + Config: configs/fcn/fcn_r18b-d8_512x1024_80k_cityscapes.py + + + + - Name: fcn_r50b-d8_512x1024_80k_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 4.20 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 75.65 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_512x1024_80k_cityscapes/fcn_r50b-d8_512x1024_80k_cityscapes_20201225_094221-82957416.pth + Config: configs/fcn/fcn_r50b-d8_512x1024_80k_cityscapes.py + + + + - Name: fcn_r101b-d8_512x1024_80k_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 2.73 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.37 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_512x1024_80k_cityscapes/fcn_r101b-d8_512x1024_80k_cityscapes_20201226_160213-4543858f.pth + Config: configs/fcn/fcn_r101b-d8_512x1024_80k_cityscapes.py + + + + - Name: fcn_r18b-d8_769x769_80k_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 6.70 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 69.66 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_769x769_80k_cityscapes/fcn_r18b-d8_769x769_80k_cityscapes_20201226_004430-32d504e5.pth + Config: configs/fcn/fcn_r18b-d8_769x769_80k_cityscapes.py + + + + - Name: fcn_r50b-d8_769x769_80k_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 1.82 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 73.83 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_769x769_80k_cityscapes/fcn_r50b-d8_769x769_80k_cityscapes_20201225_094223-94552d38.pth + Config: configs/fcn/fcn_r50b-d8_769x769_80k_cityscapes.py + + + + - Name: fcn_r101b-d8_769x769_80k_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 1.15 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.02 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_769x769_80k_cityscapes/fcn_r101b-d8_769x769_80k_cityscapes_20201226_170012-82be37e2.pth + Config: configs/fcn/fcn_r101b-d8_769x769_80k_cityscapes.py + + + + - Name: fcn_d6_r50-d16_512x1024_40k_cityscapes + In Collection: FCN-D6 + Metadata: + inference time (fps): 10.22 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.06 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes/fcn_d6_r50-d16_512x1024_40k_cityscapes-98d5d1bc.pth + Config: configs/fcn-d6/fcn_d6_r50-d16_512x1024_40k_cityscapes.py + + + + - Name: fcn_d6_r50-d16_512x1024_80k_cityscapes + In Collection: FCN-D6 + Metadata: + inference time (fps): 10.35 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.27 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes/fcn_d6_r50-d16_512x1024_40k_cityscapes-98d5d1bc.pth + Config: configs/fcn-d6/fcn_d6_r50-d16_512x1024_80k_cityscapes.py + + + + - Name: fcn_d6_r50-d16_769x769_40k_cityscapes + In Collection: FCN-D6 + Metadata: + inference time (fps): 4.17 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.82 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes/fcn_d6_r50-d16_769x769_40k_cityscapes-1aab18ed.pth + Config: configs/fcn-d6/fcn_d6_r50-d16_769x769_40k_cityscapes.py + + + + - Name: fcn_d6_r50-d16_769x769_80k_cityscapes + In Collection: FCN-D6 + Metadata: + inference time (fps): 4.15 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.04 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes/fcn_d6_r50-d16_769x769_80k_cityscapes-109d88eb.pth + Config: configs/fcn-d6/fcn_d6_r50-d16_769x769_80k_cityscapes.py + + + + - Name: fcn_d6_r101-d16_512x1024_40k_cityscapes + In Collection: FCN-D6 + Metadata: + inference time (fps): 8.04 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.36 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes/fcn_d6_r101-d16_512x1024_40k_cityscapes-9cf2b450.pth + Config: configs/fcn-d6/fcn_d6_r101-d16_512x1024_40k_cityscapes.py + + + + - Name: fcn_d6_r101-d16_512x1024_80k_cityscapes + In Collection: FCN-D6 + Metadata: + inference time (fps): 8.26 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.46 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes/fcn_d6_r101-d16_512x1024_80k_cityscapes-cb336445.pth + Config: configs/fcn-d6/fcn_d6_r101-d16_512x1024_80k_cityscapes.py + + + + - Name: fcn_d6_r101-d16_769x769_40k_cityscapes + In Collection: FCN-D6 + Metadata: + inference time (fps): 3.12 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.28 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes/fcn_d6_r101-d16_769x769_40k_cityscapes-60b114e9.pth + Config: configs/fcn-d6/fcn_d6_r101-d16_769x769_40k_cityscapes.py + + + + - Name: fcn_d6_r101-d16_769x769_80k_cityscapes + In Collection: FCN-D6 + Metadata: + inference time (fps): 3.21 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.06 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes/fcn_d6_r101-d16_769x769_80k_cityscapes-e33adc4f.pth + Config: configs/fcn-d6/fcn_d6_r101-d16_769x769_80k_cityscapes.py + + + + - Name: fcn_r50-d8_512x512_80k_ade20k + In Collection: FCN + Metadata: + inference time (fps): 23.49 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 35.94 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_80k_ade20k/fcn_r50-d8_512x512_80k_ade20k_20200614_144016-f8ac5082.pth + Config: configs/fcn/fcn_r50-d8_512x512_80k_ade20k.py + + + + - Name: fcn_r101-d8_512x512_80k_ade20k + In Collection: FCN + Metadata: + inference time (fps): 14.78 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 39.61 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_80k_ade20k/fcn_r101-d8_512x512_80k_ade20k_20200615_014143-bc1809f7.pth + Config: configs/fcn/fcn_r101-d8_512x512_80k_ade20k.py + + + + - Name: fcn_r50-d8_512x512_160k_ade20k + In Collection: FCN + Metadata: + inference time (fps): 23.49 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 36.10 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_160k_ade20k/fcn_r50-d8_512x512_160k_ade20k_20200615_100713-4edbc3b4.pth + Config: configs/fcn/fcn_r50-d8_512x512_160k_ade20k.py + + + + - Name: fcn_r101-d8_512x512_160k_ade20k + In Collection: FCN + Metadata: + inference time (fps): 14.78 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 39.91 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_160k_ade20k/fcn_r101-d8_512x512_160k_ade20k_20200615_105816-fd192bd5.pth + Config: configs/fcn/fcn_r101-d8_512x512_160k_ade20k.py + + + + - Name: fcn_r50-d8_512x512_20k_voc12aug + In Collection: FCN + Metadata: + inference time (fps): 23.28 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 67.08 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_20k_voc12aug/fcn_r50-d8_512x512_20k_voc12aug_20200617_010715-52dc5306.pth + Config: configs/fcn/fcn_r50-d8_512x512_20k_voc12aug.py + + + + - Name: fcn_r101-d8_512x512_20k_voc12aug + In Collection: FCN + Metadata: + inference time (fps): 14.81 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 71.16 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_20k_voc12aug/fcn_r101-d8_512x512_20k_voc12aug_20200617_010842-0bb4e798.pth + Config: configs/fcn/fcn_r101-d8_512x512_20k_voc12aug.py + + + + - Name: fcn_r50-d8_512x512_40k_voc12aug + In Collection: FCN + Metadata: + inference time (fps): 23.28 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 66.97 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_40k_voc12aug/fcn_r50-d8_512x512_40k_voc12aug_20200613_161222-5e2dbf40.pth + Config: configs/fcn/fcn_r50-d8_512x512_40k_voc12aug.py + + + + - Name: fcn_r101-d8_512x512_40k_voc12aug + In Collection: FCN + Metadata: + inference time (fps): 14.81 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 69.91 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_40k_voc12aug/fcn_r101-d8_512x512_40k_voc12aug_20200613_161240-4c8bcefd.pth + Config: configs/fcn/fcn_r101-d8_512x512_40k_voc12aug.py + + + + - Name: fcn_r101-d8_480x480_40k_pascal_context + In Collection: FCN + Metadata: + inference time (fps): 9.93 + Results: + - Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 44.43 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context-20210421_154757-b5e97937.pth + Config: configs/fcn/fcn_r101-d8_480x480_40k_pascal_context.py + + + + - Name: fcn_r101-d8_480x480_80k_pascal_context + In Collection: FCN + Metadata: + inference time (fps): 9.93 + Results: + - Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 44.13 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context-20210421_163310-4711813f.pth + Config: configs/fcn/fcn_r101-d8_480x480_80k_pascal_context.py + + + + - Name: fcn_r101-d8_480x480_40k_pascal_context_59 + In Collection: FCN + Metadata: + inference time (fps): None + Results: + - Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 48.42 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context_59/fcn_r101-d8_480x480_40k_pascal_context_59_20210415_230724-8cf83682.pth + Config: configs/fcn/fcn_r101-d8_480x480_40k_pascal_context_59.py + + + + - Name: fcn_r101-d8_480x480_80k_pascal_context_59 + In Collection: FCN + Metadata: + inference time (fps): None + Results: + - Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 49.35 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context_59/fcn_r101-d8_480x480_80k_pascal_context_59_20210416_110804-9a6f2c94.pth + Config: configs/fcn/fcn_r101-d8_480x480_80k_pascal_context_59.py diff --git a/configs/fp16/metafile.yml b/configs/fp16/metafile.yml new file mode 100644 index 0000000000..e4187bdad2 --- /dev/null +++ b/configs/fp16/metafile.yml @@ -0,0 +1,56 @@ + +Models: + + - Name: fcn_r101-d8_512x1024_80k_fp16_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 8.64 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.80 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes-50245227.pth + Config: configs/fcn/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py + + + + - Name: pspnet_r101-d8_512x1024_80k_fp16_cityscapes + In Collection: PSPNet + Metadata: + inference time (fps): 8.77 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.46 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes-ade37931.pth + Config: configs/pspnet/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py + + + + - Name: deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes + In Collection: DeepLabV3 + Metadata: + inference time (fps): 3.86 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.48 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes-bc86dc84.pth + Config: configs/deeplabv3/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py + + + + - Name: deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 7.87 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.46 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes-cc58bc8d.pth + Config: configs/deeplabv3+/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py diff --git a/configs/gcnet/metafile.yml b/configs/gcnet/metafile.yml new file mode 100644 index 0000000000..c10c918a4e --- /dev/null +++ b/configs/gcnet/metafile.yml @@ -0,0 +1,231 @@ +Collections: + - Name: GCNet + Metadata: + Training Data: + - Cityscapes + - Pascal VOC 2012 + Aug + - ADE20K + +Models: + + - Name: gcnet_r50-d8_512x1024_40k_cityscapes + In Collection: GCNet + Metadata: + inference time (fps): 3.93 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.69 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes/gcnet_r50-d8_512x1024_40k_cityscapes_20200618_074436-4b0fd17b.pth + Config: configs/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes.py + + + + - Name: gcnet_r101-d8_512x1024_40k_cityscapes + In Collection: GCNet + Metadata: + inference time (fps): 2.61 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.28 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes/gcnet_r101-d8_512x1024_40k_cityscapes_20200618_074436-5e62567f.pth + Config: configs/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes.py + + + + - Name: gcnet_r50-d8_769x769_40k_cityscapes + In Collection: GCNet + Metadata: + inference time (fps): 1.67 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.12 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_40k_cityscapes/gcnet_r50-d8_769x769_40k_cityscapes_20200618_182814-a26f4471.pth + Config: configs/gcnet/gcnet_r50-d8_769x769_40k_cityscapes.py + + + + - Name: gcnet_r101-d8_769x769_40k_cityscapes + In Collection: GCNet + Metadata: + inference time (fps): 1.13 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.95 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_40k_cityscapes/gcnet_r101-d8_769x769_40k_cityscapes_20200619_092550-ca4f0a84.pth + Config: configs/gcnet/gcnet_r101-d8_769x769_40k_cityscapes.py + + + + - Name: gcnet_r50-d8_512x1024_80k_cityscapes + In Collection: GCNet + Metadata: + inference time (fps): 3.93 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.48 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes/gcnet_r50-d8_512x1024_80k_cityscapes_20200618_074450-ef8f069b.pth + Config: configs/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes.py + + + + - Name: gcnet_r101-d8_512x1024_80k_cityscapes + In Collection: GCNet + Metadata: + inference time (fps): 2.61 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.03 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes/gcnet_r101-d8_512x1024_80k_cityscapes_20200618_074450-778ebf69.pth + Config: configs/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes.py + + + + - Name: gcnet_r50-d8_769x769_80k_cityscapes + In Collection: GCNet + Metadata: + inference time (fps): 1.67 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.68 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_80k_cityscapes/gcnet_r50-d8_769x769_80k_cityscapes_20200619_092516-4839565b.pth + Config: configs/gcnet/gcnet_r50-d8_769x769_80k_cityscapes.py + + + + - Name: gcnet_r101-d8_769x769_80k_cityscapes + In Collection: GCNet + Metadata: + inference time (fps): 1.13 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.18 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_80k_cityscapes/gcnet_r101-d8_769x769_80k_cityscapes_20200619_092628-8e043423.pth + Config: configs/gcnet/gcnet_r101-d8_769x769_80k_cityscapes.py + + + + - Name: gcnet_r50-d8_512x512_80k_ade20k + In Collection: GCNet + Metadata: + inference time (fps): 23.38 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 41.47 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_80k_ade20k/gcnet_r50-d8_512x512_80k_ade20k_20200614_185146-91a6da41.pth + Config: configs/gcnet/gcnet_r50-d8_512x512_80k_ade20k.py + + + + - Name: gcnet_r101-d8_512x512_80k_ade20k + In Collection: GCNet + Metadata: + inference time (fps): 15.20 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.82 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_80k_ade20k/gcnet_r101-d8_512x512_80k_ade20k_20200615_020811-c3fcb6dd.pth + Config: configs/gcnet/gcnet_r101-d8_512x512_80k_ade20k.py + + + + - Name: gcnet_r50-d8_512x512_160k_ade20k + In Collection: GCNet + Metadata: + inference time (fps): 23.38 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.37 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_160k_ade20k/gcnet_r50-d8_512x512_160k_ade20k_20200615_224122-d95f3e1f.pth + Config: configs/gcnet/gcnet_r50-d8_512x512_160k_ade20k.py + + + + - Name: gcnet_r101-d8_512x512_160k_ade20k + In Collection: GCNet + Metadata: + inference time (fps): 15.20 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.69 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_160k_ade20k/gcnet_r101-d8_512x512_160k_ade20k_20200615_225406-615528d7.pth + Config: configs/gcnet/gcnet_r101-d8_512x512_160k_ade20k.py + + + + - Name: gcnet_r50-d8_512x512_20k_voc12aug + In Collection: GCNet + Metadata: + inference time (fps): 23.35 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.42 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_20k_voc12aug/gcnet_r50-d8_512x512_20k_voc12aug_20200617_165701-3cbfdab1.pth + Config: configs/gcnet/gcnet_r50-d8_512x512_20k_voc12aug.py + + + + - Name: gcnet_r101-d8_512x512_20k_voc12aug + In Collection: GCNet + Metadata: + inference time (fps): 14.80 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.41 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_20k_voc12aug/gcnet_r101-d8_512x512_20k_voc12aug_20200617_165713-6c720aa9.pth + Config: configs/gcnet/gcnet_r101-d8_512x512_20k_voc12aug.py + + + + - Name: gcnet_r50-d8_512x512_40k_voc12aug + In Collection: GCNet + Metadata: + inference time (fps): 23.35 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.24 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_40k_voc12aug/gcnet_r50-d8_512x512_40k_voc12aug_20200613_195105-9797336d.pth + Config: configs/gcnet/gcnet_r50-d8_512x512_40k_voc12aug.py + + + + - Name: gcnet_r101-d8_512x512_40k_voc12aug + In Collection: GCNet + Metadata: + inference time (fps): 14.80 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.84 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_40k_voc12aug/gcnet_r101-d8_512x512_40k_voc12aug_20200613_185806-1e38208d.pth + Config: configs/gcnet/gcnet_r101-d8_512x512_40k_voc12aug.py diff --git a/configs/hrnet/metafile.yml b/configs/hrnet/metafile.yml new file mode 100644 index 0000000000..d2ac3bfa47 --- /dev/null +++ b/configs/hrnet/metafile.yml @@ -0,0 +1,348 @@ +Models: + - Name: fcn_hr18s_512x1024_40k_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 23.74 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 73.86 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_40k_cityscapes/fcn_hr18s_512x1024_40k_cityscapes_20200601_014216-93db27d0.pth + Config: configs/fcn/fcn_hr18s_512x1024_40k_cityscapes.py + + + + - Name: fcn_hr18_512x1024_40k_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 12.97 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.19 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_40k_cityscapes/fcn_hr18_512x1024_40k_cityscapes_20200601_014216-f196fb4e.pth + Config: configs/fcn/fcn_hr18_512x1024_40k_cityscapes.py + + + + - Name: fcn_hr48_512x1024_40k_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 6.42 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.48 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_40k_cityscapes/fcn_hr48_512x1024_40k_cityscapes_20200601_014240-a989b146.pth + Config: configs/fcn/fcn_hr48_512x1024_40k_cityscapes.py + + + + - Name: fcn_hr18s_512x1024_80k_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 23.74 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 75.31 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_80k_cityscapes/fcn_hr18s_512x1024_80k_cityscapes_20200601_202700-1462b75d.pth + Config: configs/fcn/fcn_hr18s_512x1024_80k_cityscapes.py + + + + - Name: fcn_hr18_512x1024_80k_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 12.97 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.65 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_80k_cityscapes/fcn_hr18_512x1024_80k_cityscapes_20200601_223255-4e7b345e.pth + Config: configs/fcn/fcn_hr18_512x1024_80k_cityscapes.py + + + + - Name: fcn_hr48_512x1024_80k_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 6.42 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.93 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_80k_cityscapes/fcn_hr48_512x1024_80k_cityscapes_20200601_202606-58ea95d6.pth + Config: configs/fcn/fcn_hr48_512x1024_80k_cityscapes.py + + + + - Name: fcn_hr18s_512x1024_160k_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 23.74 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.31 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_160k_cityscapes/fcn_hr18s_512x1024_160k_cityscapes_20200602_190901-4a0797ea.pth + Config: configs/fcn/fcn_hr18s_512x1024_160k_cityscapes.py + + + + - Name: fcn_hr18_512x1024_160k_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 12.97 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.80 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_160k_cityscapes/fcn_hr18_512x1024_160k_cityscapes_20200602_190822-221e4a4f.pth + Config: configs/fcn/fcn_hr18_512x1024_160k_cityscapes.py + + + + - Name: fcn_hr48_512x1024_160k_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 6.42 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.65 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_160k_cityscapes/fcn_hr48_512x1024_160k_cityscapes_20200602_190946-59b7973e.pth + Config: configs/fcn/fcn_hr48_512x1024_160k_cityscapes.py + + + + - Name: fcn_hr18s_512x512_80k_ade20k + In Collection: FCN + Metadata: + inference time (fps): 38.66 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 31.38 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_80k_ade20k/fcn_hr18s_512x512_80k_ade20k_20200614_144345-77fc814a.pth + Config: configs/fcn/fcn_hr18s_512x512_80k_ade20k.py + + + + - Name: fcn_hr18_512x512_80k_ade20k + In Collection: FCN + Metadata: + inference time (fps): 22.57 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 35.51 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_ade20k/fcn_hr18_512x512_80k_ade20k_20200614_185145-66f20cb7.pth + Config: configs/fcn/fcn_hr18_512x512_80k_ade20k.py + + + + - Name: fcn_hr48_512x512_80k_ade20k + In Collection: FCN + Metadata: + inference time (fps): 21.23 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 41.90 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_80k_ade20k/fcn_hr48_512x512_80k_ade20k_20200614_193946-7ba5258d.pth + Config: configs/fcn/fcn_hr48_512x512_80k_ade20k.py + + + + - Name: fcn_hr18s_512x512_160k_ade20k + In Collection: FCN + Metadata: + inference time (fps): 38.66 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 33.00 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_160k_ade20k/fcn_hr18s_512x512_160k_ade20k_20200614_214413-870f65ac.pth + Config: configs/fcn/fcn_hr18s_512x512_160k_ade20k.py + + + + - Name: fcn_hr18_512x512_160k_ade20k + In Collection: FCN + Metadata: + inference time (fps): 22.57 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 36.79 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_160k_ade20k/fcn_hr18_512x512_160k_ade20k_20200614_214426-ca961836.pth + Config: configs/fcn/fcn_hr18_512x512_160k_ade20k.py + + + + - Name: fcn_hr48_512x512_160k_ade20k + In Collection: FCN + Metadata: + inference time (fps): 21.23 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.02 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_160k_ade20k/fcn_hr48_512x512_160k_ade20k_20200614_214407-a52fc02c.pth + Config: configs/fcn/fcn_hr48_512x512_160k_ade20k.py + + + + - Name: fcn_hr18s_512x512_20k_voc12aug + In Collection: FCN + Metadata: + inference time (fps): 43.36 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 65.20 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_20k_voc12aug/fcn_hr18s_512x512_20k_voc12aug_20200617_224503-56e36088.pth + Config: configs/fcn/fcn_hr18s_512x512_20k_voc12aug.py + + + + - Name: fcn_hr18_512x512_20k_voc12aug + In Collection: FCN + Metadata: + inference time (fps): 23.48 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 72.30 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_20k_voc12aug/fcn_hr18_512x512_20k_voc12aug_20200617_224503-488d45f7.pth + Config: configs/fcn/fcn_hr18_512x512_20k_voc12aug.py + + + + - Name: fcn_hr48_512x512_20k_voc12aug + In Collection: FCN + Metadata: + inference time (fps): 22.05 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 75.87 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_20k_voc12aug/fcn_hr48_512x512_20k_voc12aug_20200617_224419-89de05cd.pth + Config: configs/fcn/fcn_hr48_512x512_20k_voc12aug.py + + + + - Name: fcn_hr18s_512x512_40k_voc12aug + In Collection: FCN + Metadata: + inference time (fps): 43.36 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 66.61 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_40k_voc12aug/fcn_hr18s_512x512_40k_voc12aug_20200614_000648-4f8d6e7f.pth + Config: configs/fcn/fcn_hr18s_512x512_40k_voc12aug.py + + + + - Name: fcn_hr18_512x512_40k_voc12aug + In Collection: FCN + Metadata: + inference time (fps): 23.48 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 72.90 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_40k_voc12aug/fcn_hr18_512x512_40k_voc12aug_20200613_224401-1b4b76cd.pth + Config: configs/fcn/fcn_hr18_512x512_40k_voc12aug.py + + + + - Name: fcn_hr48_512x512_40k_voc12aug + In Collection: FCN + Metadata: + inference time (fps): 22.05 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.24 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_40k_voc12aug/fcn_hr48_512x512_40k_voc12aug_20200613_222111-1b0f18bc.pth + Config: configs/fcn/fcn_hr48_512x512_40k_voc12aug.py + + + + - Name: fcn_hr48_480x480_40k_pascal_context + In Collection: FCN + Metadata: + inference time (fps): 8.86 + Results: + - Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 45.14 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context/fcn_hr48_480x480_40k_pascal_context_20200911_164852-667d00b0.pth + Config: configs/fcn/fcn_hr48_480x480_40k_pascal_context.py + + + + - Name: fcn_hr48_480x480_80k_pascal_context + In Collection: FCN + Metadata: + inference time (fps): 8.86 + Results: + - Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 45.84 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context/fcn_hr48_480x480_80k_pascal_context_20200911_155322-847a6711.pth + Config: configs/fcn/fcn_hr48_480x480_80k_pascal_context.py + + + + - Name: fcn_hr48_480x480_40k_pascal_context_59 + In Collection: FCN + Metadata: + inference time (fps): None + Results: + - Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 50.33 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context_59/fcn_hr48_480x480_40k_pascal_context_59_20210410_122738-b808b8b2.pth + Config: configs/fcn/fcn_hr48_480x480_40k_pascal_context_59.py + + + + - Name: fcn_hr48_480x480_80k_pascal_context + In Collection: FCN + Metadata: + inference time (fps): None + Results: + - Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 51.12 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context_59/fcn_hr48_480x480_80k_pascal_context_59_20210411_003240-3ae7081e.pth + Config: configs/fcn/fcn_hr48_480x480_80k_pascal_context.py diff --git a/configs/mobilenet_v2/metafile.yml b/configs/mobilenet_v2/metafile.yml new file mode 100644 index 0000000000..7146869385 --- /dev/null +++ b/configs/mobilenet_v2/metafile.yml @@ -0,0 +1,112 @@ + +Models: + + - Name: fcn_m-v2-d8_512x1024_80k_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 14.2 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 61.54 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes/fcn_m-v2-d8_512x1024_80k_cityscapes_20200825_124817-d24c28c1.pth + Config: configs/fcn/fcn_m-v2-d8_512x1024_80k_cityscapes.py + + + + - Name: pspnet_m-v2-d8_512x1024_80k_cityscapes + In Collection: PSPNet + Metadata: + inference time (fps): 11.2 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 70.23 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes/pspnet_m-v2-d8_512x1024_80k_cityscapes_20200825_124817-19e81d51.pth + Config: configs/pspnet/pspnet_m-v2-d8_512x1024_80k_cityscapes.py + + + + - Name: deeplabv3_m-v2-d8_512x1024_80k_cityscapes + In Collection: DeepLabV3 + Metadata: + inference time (fps): 8.4 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 73.84 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes/deeplabv3_m-v2-d8_512x1024_80k_cityscapes_20200825_124836-bef03590.pth + Config: configs/deeplabv3/deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py + + + + - Name: deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 8.4 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 75.20 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes_20200825_124836-d256dd4b.pth + Config: configs/deeplabv3+/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py + + + + - Name: fcn_m-v2-d8_512x512_160k_ade20k + In Collection: FCN + Metadata: + inference time (fps): 64.4 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 19.71 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k/fcn_m-v2-d8_512x512_160k_ade20k_20200825_214953-c40e1095.pth + Config: configs/fcn/fcn_m-v2-d8_512x512_160k_ade20k.py + + + + - Name: pspnet_m-v2-d8_512x512_160k_ade20k + In Collection: PSPNet + Metadata: + inference time (fps): 57.7 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 29.68 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k/pspnet_m-v2-d8_512x512_160k_ade20k_20200825_214953-f5942f7a.pth + Config: configs/pspnet/pspnet_m-v2-d8_512x512_160k_ade20k.py + + + + - Name: deeplabv3_m-v2-d8_512x512_160k_ade20k + In Collection: DeepLabV3 + Metadata: + inference time (fps): 39.9 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 34.08 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k/deeplabv3_m-v2-d8_512x512_160k_ade20k_20200825_223255-63986343.pth + Config: configs/deeplabv3/deeplabv3_m-v2-d8_512x512_160k_ade20k.py + + + + - Name: deeplabv3plus_m-v2-d8_512x512_160k_ade20k + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 43.1 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 34.02 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k/deeplabv3plus_m-v2-d8_512x512_160k_ade20k_20200825_223255-465a01d4.pth + Config: configs/deeplabv3+/deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py diff --git a/configs/mobilenet_v3/metafile.yml b/configs/mobilenet_v3/metafile.yml new file mode 100644 index 0000000000..efd700058e --- /dev/null +++ b/configs/mobilenet_v3/metafile.yml @@ -0,0 +1,61 @@ +Collections: + - Name: LRASPP + Metadata: + Training Data: + - Cityscapes + +Models: + + - Name: lraspp_m-v3-d8_512x1024_320k_cityscapes + In Collection: LRASPP + Metadata: + inference time (fps): 15.22 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 69.54 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes/lraspp_m-v3-d8_512x1024_320k_cityscapes_20201224_220337-cfe8fb07.pth + Config: configs/lraspp/lraspp_m-v3-d8_512x1024_320k_cityscapes.py + + + + - Name: lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes + In Collection: LRASPP + Metadata: + inference time (fps): 14.77 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 67.87 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes_20201224_220337-9f29cd72.pth + Config: configs/lraspp/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py + + + + - Name: lraspp_m-v3s-d8_512x1024_320k_cityscapes + In Collection: LRASPP + Metadata: + inference time (fps): 23.64 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 64.11 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes/lraspp_m-v3s-d8_512x1024_320k_cityscapes_20201224_223935-61565b34.pth + Config: configs/lraspp/lraspp_m-v3s-d8_512x1024_320k_cityscapes.py + + + + - Name: lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes + In Collection: LRASPP + Metadata: + inference time (fps): 24.50 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 62.74 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes_20201224_223935-03daeabb.pth + Config: configs/lraspp/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py diff --git a/configs/nonlocal_net/metafile.yml b/configs/nonlocal_net/metafile.yml new file mode 100644 index 0000000000..0f41ac015e --- /dev/null +++ b/configs/nonlocal_net/metafile.yml @@ -0,0 +1,231 @@ +Collections: + - Name: NonLocal + Metadata: + Training Data: + - Cityscapes + - Pascal VOC 2012 + Aug + - ADE20K + +Models: + + - Name: nonlocal_r50-d8_512x1024_40k_cityscapes + In Collection: NonLocal + Metadata: + inference time (fps): 2.72 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.24 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes/nonlocal_r50-d8_512x1024_40k_cityscapes_20200605_210748-c75e81e3.pth + Config: configs/nonlocal/nonlocal_r50-d8_512x1024_40k_cityscapes.py + + + + - Name: nonlocal_r101-d8_512x1024_40k_cityscapes + In Collection: NonLocal + Metadata: + inference time (fps): 1.95 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.66 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes/nonlocal_r101-d8_512x1024_40k_cityscapes_20200605_210748-d63729fa.pth + Config: configs/nonlocal/nonlocal_r101-d8_512x1024_40k_cityscapes.py + + + + - Name: nonlocal_r50-d8_769x769_40k_cityscapes + In Collection: NonLocal + Metadata: + inference time (fps): 1.52 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.33 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes/nonlocal_r50-d8_769x769_40k_cityscapes_20200530_045243-82ef6749.pth + Config: configs/nonlocal/nonlocal_r50-d8_769x769_40k_cityscapes.py + + + + - Name: nonlocal_r101-d8_769x769_40k_cityscapes + In Collection: NonLocal + Metadata: + inference time (fps): 1.05 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.57 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes/nonlocal_r101-d8_769x769_40k_cityscapes_20200530_045348-8fe9a9dc.pth + Config: configs/nonlocal/nonlocal_r101-d8_769x769_40k_cityscapes.py + + + + - Name: nonlocal_r50-d8_512x1024_80k_cityscapes + In Collection: NonLocal + Metadata: + inference time (fps): 2.72 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.01 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes/nonlocal_r50-d8_512x1024_80k_cityscapes_20200607_193518-d6839fae.pth + Config: configs/nonlocal/nonlocal_r50-d8_512x1024_80k_cityscapes.py + + + + - Name: nonlocal_r101-d8_512x1024_80k_cityscapes + In Collection: NonLocal + Metadata: + inference time (fps): 1.95 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.93 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes/nonlocal_r101-d8_512x1024_80k_cityscapes_20200607_183411-32700183.pth + Config: configs/nonlocal/nonlocal_r101-d8_512x1024_80k_cityscapes.py + + + + - Name: nonlocal_r50-d8_769x769_80k_cityscapes + In Collection: NonLocal + Metadata: + inference time (fps): 1.52 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.05 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes/nonlocal_r50-d8_769x769_80k_cityscapes_20200607_193506-1f9792f6.pth + Config: configs/nonlocal/nonlocal_r50-d8_769x769_80k_cityscapes.py + + + + - Name: nonlocal_r101-d8_769x769_80k_cityscapes + In Collection: NonLocal + Metadata: + inference time (fps): 1.05 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.40 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes/nonlocal_r101-d8_769x769_80k_cityscapes_20200607_183428-0e1fa4f9.pth + Config: configs/nonlocal/nonlocal_r101-d8_769x769_80k_cityscapes.py + + + + - Name: nonlocal_r50-d8_512x512_80k_ade20k + In Collection: NonLocal + Metadata: + inference time (fps): 21.37 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 40.75 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k/nonlocal_r50-d8_512x512_80k_ade20k_20200615_015801-5ae0aa33.pth + Config: configs/nonlocal/nonlocal_r50-d8_512x512_80k_ade20k.py + + + + - Name: nonlocal_r101-d8_512x512_80k_ade20k + In Collection: NonLocal + Metadata: + inference time (fps): 13.97 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.90 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k/nonlocal_r101-d8_512x512_80k_ade20k_20200615_015758-24105919.pth + Config: configs/nonlocal/nonlocal_r101-d8_512x512_80k_ade20k.py + + + + - Name: nonlocal_r50-d8_512x512_160k_ade20k + In Collection: NonLocal + Metadata: + inference time (fps): 21.37 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.03 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k/nonlocal_r50-d8_512x512_160k_ade20k_20200616_005410-baef45e3.pth + Config: configs/nonlocal/nonlocal_r50-d8_512x512_160k_ade20k.py + + + + - Name: nonlocal_r101-d8_512x512_160k_ade20k + In Collection: NonLocal + Metadata: + inference time (fps): 13.97 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.36 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k/nonlocal_r101-d8_512x512_160k_ade20k_20200616_003422-affd0f8d.pth + Config: configs/nonlocal/nonlocal_r101-d8_512x512_160k_ade20k.py + + + + - Name: nonlocal_r50-d8_512x512_20k_voc12aug + In Collection: NonLocal + Metadata: + inference time (fps): 21.21 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.20 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug/nonlocal_r50-d8_512x512_20k_voc12aug_20200617_222613-07f2a57c.pth + Config: configs/nonlocal/nonlocal_r50-d8_512x512_20k_voc12aug.py + + + + - Name: nonlocal_r101-d8_512x512_20k_voc12aug + In Collection: NonLocal + Metadata: + inference time (fps): 14.01 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 78.15 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug/nonlocal_r101-d8_512x512_20k_voc12aug_20200617_222615-948c68ab.pth + Config: configs/nonlocal/nonlocal_r101-d8_512x512_20k_voc12aug.py + + + + - Name: nonlocal_r50-d8_512x512_40k_voc12aug + In Collection: NonLocal + Metadata: + inference time (fps): 21.21 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.65 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug/nonlocal_r50-d8_512x512_40k_voc12aug_20200614_000028-0139d4a9.pth + Config: configs/nonlocal/nonlocal_r50-d8_512x512_40k_voc12aug.py + + + + - Name: nonlocal_r101-d8_512x512_40k_voc12aug + In Collection: NonLocal + Metadata: + inference time (fps): 14.01 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 78.27 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug/nonlocal_r101-d8_512x512_40k_voc12aug_20200614_000028-7e5ff470.pth + Config: configs/nonlocal/nonlocal_r101-d8_512x512_40k_voc12aug.py diff --git a/configs/ocrnet/metafile.yml b/configs/ocrnet/metafile.yml new file mode 100644 index 0000000000..fcdf72d791 --- /dev/null +++ b/configs/ocrnet/metafile.yml @@ -0,0 +1,343 @@ +Collections: + - Name: OCRNet + Metadata: + Training Data: + - Cityscapes + - Pascal VOC 2012 + Aug + - ADE20K + +Models: + + - Name: ocrnet_hr18s_512x1024_40k_cityscapes + In Collection: OCRNet + Metadata: + inference time (fps): 10.45 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 74.30 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes/ocrnet_hr18s_512x1024_40k_cityscapes_20200601_033304-fa2436c2.pth + Config: configs/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes.py + + + + - Name: ocrnet_hr18_512x1024_40k_cityscapes + In Collection: OCRNet + Metadata: + inference time (fps): 7.50 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.72 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes/ocrnet_hr18_512x1024_40k_cityscapes_20200601_033320-401c5bdd.pth + Config: configs/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes.py + + + + - Name: ocrnet_hr48_512x1024_40k_cityscapes + In Collection: OCRNet + Metadata: + inference time (fps): 4.22 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.58 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes/ocrnet_hr48_512x1024_40k_cityscapes_20200601_033336-55b32491.pth + Config: configs/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes.py + + + + - Name: ocrnet_hr18s_512x1024_80k_cityscapes + In Collection: OCRNet + Metadata: + inference time (fps): 10.45 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.16 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes/ocrnet_hr18s_512x1024_80k_cityscapes_20200601_222735-55979e63.pth + Config: configs/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes.py + + + + - Name: ocrnet_hr18_512x1024_80k_cityscapes + In Collection: OCRNet + Metadata: + inference time (fps): 7.50 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.57 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes/ocrnet_hr18_512x1024_80k_cityscapes_20200614_230521-c2e1dd4a.pth + Config: configs/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes.py + + + + - Name: ocrnet_hr48_512x1024_80k_cityscapes + In Collection: OCRNet + Metadata: + inference time (fps): 4.22 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.70 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes/ocrnet_hr48_512x1024_80k_cityscapes_20200601_222752-9076bcdf.pth + Config: configs/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes.py + + + + - Name: ocrnet_hr18s_512x1024_160k_cityscapes + In Collection: OCRNet + Metadata: + inference time (fps): 10.45 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.45 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes/ocrnet_hr18s_512x1024_160k_cityscapes_20200602_191005-f4a7af28.pth + Config: configs/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes.py + + + + - Name: ocrnet_hr18_512x1024_160k_cityscapes + In Collection: OCRNet + Metadata: + inference time (fps): 7.50 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.47 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes/ocrnet_hr18_512x1024_160k_cityscapes_20200602_191001-b9172d0c.pth + Config: configs/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes.py + + + + - Name: ocrnet_hr48_512x1024_160k_cityscapes + In Collection: OCRNet + Metadata: + inference time (fps): 4.22 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 81.35 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes/ocrnet_hr48_512x1024_160k_cityscapes_20200602_191037-dfbf1b0c.pth + Config: configs/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes.py + + + + - Name: ocrnet_r101-d8_512x1024_40k_b8_cityscapes + In Collection: OCRNet + Metadata: + inference time (fps): None + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: + Weights: https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py + Config: configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py + + + + - Name: ocrnet_r101-d8_512x1024_40k_b16_cityscapes + In Collection: OCRNet + Metadata: + inference time (fps): 8.8 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 3.02 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes/ocrnet_r101-d8_512x1024_40k_b8_cityscapes-02ac0f13.pth + Config: configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py + + + + - Name: ocrnet_r101-d8_512x1024_80k_b16_cityscapes + In Collection: OCRNet + Metadata: + inference time (fps): 8.8 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 3.02 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes/ocrnet_r101-d8_512x1024_40k_b16_cityscapes-db500f80.pth + Config: configs/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py + + + + - Name: ocrnet_hr18s_512x512_80k_ade20k + In Collection: OCRNet + Metadata: + inference time (fps): 28.98 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 35.06 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_80k_ade20k/ocrnet_hr18s_512x512_80k_ade20k_20200615_055600-e80b62af.pth + Config: configs/ocrnet/ocrnet_hr18s_512x512_80k_ade20k.py + + + + - Name: ocrnet_hr18_512x512_80k_ade20k + In Collection: OCRNet + Metadata: + inference time (fps): 18.93 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 37.79 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_80k_ade20k/ocrnet_hr18_512x512_80k_ade20k_20200615_053157-d173d83b.pth + Config: configs/ocrnet/ocrnet_hr18_512x512_80k_ade20k.py + + + + - Name: ocrnet_hr48_512x512_80k_ade20k + In Collection: OCRNet + Metadata: + inference time (fps): 16.99 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.00 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_80k_ade20k/ocrnet_hr48_512x512_80k_ade20k_20200615_021518-d168c2d1.pth + Config: configs/ocrnet/ocrnet_hr48_512x512_80k_ade20k.py + + + + - Name: ocrnet_hr18s_512x512_160k_ade20k + In Collection: OCRNet + Metadata: + inference time (fps): 28.98 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 37.19 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_160k_ade20k/ocrnet_hr18s_512x512_160k_ade20k_20200615_184505-8e913058.pth + Config: configs/ocrnet/ocrnet_hr18s_512x512_160k_ade20k.py + + + + - Name: ocrnet_hr18_512x512_160k_ade20k + In Collection: OCRNet + Metadata: + inference time (fps): 18.93 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 39.32 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_160k_ade20k/ocrnet_hr18_512x512_160k_ade20k_20200615_200940-d8fcd9d1.pth + Config: configs/ocrnet/ocrnet_hr18_512x512_160k_ade20k.py + + + + - Name: ocrnet_hr48_512x512_160k_ade20k + In Collection: OCRNet + Metadata: + inference time (fps): 16.99 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.25 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_160k_ade20k/ocrnet_hr48_512x512_160k_ade20k_20200615_184705-a073726d.pth + Config: configs/ocrnet/ocrnet_hr48_512x512_160k_ade20k.py + + + + - Name: ocrnet_hr18s_512x512_20k_voc12aug + In Collection: OCRNet + Metadata: + inference time (fps): 31.55 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 71.70 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug/ocrnet_hr18s_512x512_20k_voc12aug_20200617_233913-02b04fcb.pth + Config: configs/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug.py + + + + - Name: ocrnet_hr18_512x512_20k_voc12aug + In Collection: OCRNet + Metadata: + inference time (fps): 19.91 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 74.75 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_20k_voc12aug/ocrnet_hr18_512x512_20k_voc12aug_20200617_233932-8954cbb7.pth + Config: configs/ocrnet/ocrnet_hr18_512x512_20k_voc12aug.py + + + + - Name: ocrnet_hr48_512x512_20k_voc12aug + In Collection: OCRNet + Metadata: + inference time (fps): 17.83 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.72 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_20k_voc12aug/ocrnet_hr48_512x512_20k_voc12aug_20200617_233932-9e82080a.pth + Config: configs/ocrnet/ocrnet_hr48_512x512_20k_voc12aug.py + + + + - Name: ocrnet_hr18s_512x512_40k_voc12aug + In Collection: OCRNet + Metadata: + inference time (fps): 31.55 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 72.76 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug/ocrnet_hr18s_512x512_40k_voc12aug_20200614_002025-42b587ac.pth + Config: configs/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug.py + + + + - Name: ocrnet_hr18_512x512_40k_voc12aug + In Collection: OCRNet + Metadata: + inference time (fps): 19.91 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 74.98 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_40k_voc12aug/ocrnet_hr18_512x512_40k_voc12aug_20200614_015958-714302be.pth + Config: configs/ocrnet/ocrnet_hr18_512x512_40k_voc12aug.py + + + + - Name: ocrnet_hr48_512x512_40k_voc12aug + In Collection: OCRNet + Metadata: + inference time (fps): 17.83 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.14 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_40k_voc12aug/ocrnet_hr48_512x512_40k_voc12aug_20200614_015958-255bc5ce.pth + Config: configs/ocrnet/ocrnet_hr48_512x512_40k_voc12aug.py diff --git a/configs/point_rend/metafile.yml b/configs/point_rend/metafile.yml new file mode 100644 index 0000000000..aba00e0931 --- /dev/null +++ b/configs/point_rend/metafile.yml @@ -0,0 +1,62 @@ +Collections: + - Name: PointRend + Metadata: + Training Data: + - Cityscapes + - ADE20K + +Models: + + - Name: pointrend_r50_512x1024_80k_cityscapes + In Collection: PointRend + Metadata: + inference time (fps): 8.48 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.47 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x1024_80k_cityscapes/pointrend_r50_512x1024_80k_cityscapes_20200711_015821-bb1ff523.pth + Config: configs/pointrend/pointrend_r50_512x1024_80k_cityscapes.py + + + + - Name: pointrend_r101_512x1024_80k_cityscapes + In Collection: PointRend + Metadata: + inference time (fps): 7.00 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.30 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x1024_80k_cityscapes/pointrend_r101_512x1024_80k_cityscapes_20200711_170850-d0ca84be.pth + Config: configs/pointrend/pointrend_r101_512x1024_80k_cityscapes.py + + + + - Name: pointrend_r50_512x512_160k_ade20k + In Collection: PointRend + Metadata: + inference time (fps): 17.31 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 37.64 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x512_160k_ade20k/pointrend_r50_512x512_160k_ade20k_20200807_232644-ac3febf2.pth + Config: configs/pointrend/pointrend_r50_512x512_160k_ade20k.py + + + + - Name: pointrend_r101_512x512_160k_ade20k + In Collection: PointRend + Metadata: + inference time (fps): 15.50 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 40.02 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x512_160k_ade20k/pointrend_r101_512x512_160k_ade20k_20200808_030852-8834902a.pth + Config: configs/pointrend/pointrend_r101_512x512_160k_ade20k.py diff --git a/configs/psanet/metafile.yml b/configs/psanet/metafile.yml new file mode 100644 index 0000000000..7e2b3138ba --- /dev/null +++ b/configs/psanet/metafile.yml @@ -0,0 +1,231 @@ +Collections: + - Name: PSANet + Metadata: + Training Data: + - Cityscapes + - Pascal VOC 2012 + Aug + - ADE20K + +Models: + + - Name: psanet_r50-d8_512x1024_40k_cityscapes + In Collection: PSANet + Metadata: + inference time (fps): 3.17 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.63 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_40k_cityscapes/psanet_r50-d8_512x1024_40k_cityscapes_20200606_103117-99fac37c.pth + Config: configs/psanet/psanet_r50-d8_512x1024_40k_cityscapes.py + + + + - Name: psanet_r101-d8_512x1024_40k_cityscapes + In Collection: PSANet + Metadata: + inference time (fps): 2.20 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.14 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_40k_cityscapes/psanet_r101-d8_512x1024_40k_cityscapes_20200606_001418-27b9cfa7.pth + Config: configs/psanet/psanet_r101-d8_512x1024_40k_cityscapes.py + + + + - Name: psanet_r50-d8_769x769_40k_cityscapes + In Collection: PSANet + Metadata: + inference time (fps): 1.40 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.99 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_40k_cityscapes/psanet_r50-d8_769x769_40k_cityscapes_20200530_033717-d5365506.pth + Config: configs/psanet/psanet_r50-d8_769x769_40k_cityscapes.py + + + + - Name: psanet_r101-d8_769x769_40k_cityscapes + In Collection: PSANet + Metadata: + inference time (fps): 0.98 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.43 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_40k_cityscapes/psanet_r101-d8_769x769_40k_cityscapes_20200530_035107-997da1e6.pth + Config: configs/psanet/psanet_r101-d8_769x769_40k_cityscapes.py + + + + - Name: psanet_r50-d8_512x1024_80k_cityscapes + In Collection: PSANet + Metadata: + inference time (fps): 3.17 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.24 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_80k_cityscapes/psanet_r50-d8_512x1024_80k_cityscapes_20200606_161842-ab60a24f.pth + Config: configs/psanet/psanet_r50-d8_512x1024_80k_cityscapes.py + + + + - Name: psanet_r101-d8_512x1024_80k_cityscapes + In Collection: PSANet + Metadata: + inference time (fps): 2.20 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.31 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_80k_cityscapes/psanet_r101-d8_512x1024_80k_cityscapes_20200606_161823-0f73a169.pth + Config: configs/psanet/psanet_r101-d8_512x1024_80k_cityscapes.py + + + + - Name: psanet_r50-d8_769x769_80k_cityscapes + In Collection: PSANet + Metadata: + inference time (fps): 1.40 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.31 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_80k_cityscapes/psanet_r50-d8_769x769_80k_cityscapes_20200606_225134-fe42f49e.pth + Config: configs/psanet/psanet_r50-d8_769x769_80k_cityscapes.py + + + + - Name: psanet_r101-d8_769x769_80k_cityscapes + In Collection: PSANet + Metadata: + inference time (fps): 0.98 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.69 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_80k_cityscapes/psanet_r101-d8_769x769_80k_cityscapes_20200606_214550-7665827b.pth + Config: configs/psanet/psanet_r101-d8_769x769_80k_cityscapes.py + + + + - Name: psanet_r50-d8_512x512_80k_ade20k + In Collection: PSANet + Metadata: + inference time (fps): 18.91 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 41.14 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_80k_ade20k/psanet_r50-d8_512x512_80k_ade20k_20200614_144141-835e4b97.pth + Config: configs/psanet/psanet_r50-d8_512x512_80k_ade20k.py + + + + - Name: psanet_r101-d8_512x512_80k_ade20k + In Collection: PSANet + Metadata: + inference time (fps): 13.13 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.80 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_80k_ade20k/psanet_r101-d8_512x512_80k_ade20k_20200614_185117-1fab60d4.pth + Config: configs/psanet/psanet_r101-d8_512x512_80k_ade20k.py + + + + - Name: psanet_r50-d8_512x512_160k_ade20k + In Collection: PSANet + Metadata: + inference time (fps): 18.91 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 41.67 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_160k_ade20k/psanet_r50-d8_512x512_160k_ade20k_20200615_161258-148077dd.pth + Config: configs/psanet/psanet_r50-d8_512x512_160k_ade20k.py + + + + - Name: psanet_r101-d8_512x512_160k_ade20k + In Collection: PSANet + Metadata: + inference time (fps): 13.13 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.74 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_160k_ade20k/psanet_r101-d8_512x512_160k_ade20k_20200615_161537-dbfa564c.pth + Config: configs/psanet/psanet_r101-d8_512x512_160k_ade20k.py + + + + - Name: psanet_r50-d8_512x512_20k_voc12aug + In Collection: PSANet + Metadata: + inference time (fps): 18.24 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.39 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_20k_voc12aug/psanet_r50-d8_512x512_20k_voc12aug_20200617_102413-2f1bbaa1.pth + Config: configs/psanet/psanet_r50-d8_512x512_20k_voc12aug.py + + + + - Name: psanet_r101-d8_512x512_20k_voc12aug + In Collection: PSANet + Metadata: + inference time (fps): 12.63 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.91 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_20k_voc12aug/psanet_r101-d8_512x512_20k_voc12aug_20200617_110624-946fef11.pth + Config: configs/psanet/psanet_r101-d8_512x512_20k_voc12aug.py + + + + - Name: psanet_r50-d8_512x512_40k_voc12aug + In Collection: PSANet + Metadata: + inference time (fps): 18.24 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.30 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_40k_voc12aug/psanet_r50-d8_512x512_40k_voc12aug_20200613_161946-f596afb5.pth + Config: configs/psanet/psanet_r50-d8_512x512_40k_voc12aug.py + + + + - Name: psanet_r101-d8_512x512_40k_voc12aug + In Collection: PSANet + Metadata: + inference time (fps): 12.63 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.73 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_40k_voc12aug/psanet_r101-d8_512x512_40k_voc12aug_20200613_161946-1f560f9e.pth + Config: configs/psanet/psanet_r101-d8_512x512_40k_voc12aug.py diff --git a/configs/pspnet/metafile.yml b/configs/pspnet/metafile.yml new file mode 100644 index 0000000000..4981f02c32 --- /dev/null +++ b/configs/pspnet/metafile.yml @@ -0,0 +1,400 @@ +Collections: + - Name: PSPNet + Metadata: + Training Data: + - Cityscapes + - Pascal Context + - Pascal VOC 2012 + Aug + - ADE20K + +Models: + + - Name: pspnet_r50-d8_512x1024_40k_cityscapes + In Collection: PSPNet + Metadata: + inference time (fps): 4.07 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.85 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth + Config: configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py + + + + - Name: pspnet_r101-d8_512x1024_40k_cityscapes + In Collection: PSPNet + Metadata: + inference time (fps): 2.68 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.34 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes/pspnet_r101-d8_512x1024_40k_cityscapes_20200604_232751-467e7cf4.pth + Config: configs/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes.py + + + + - Name: pspnet_r50-d8_769x769_40k_cityscapes + In Collection: PSPNet + Metadata: + inference time (fps): 1.76 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.26 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_40k_cityscapes/pspnet_r50-d8_769x769_40k_cityscapes_20200606_112725-86638686.pth + Config: configs/pspnet/pspnet_r50-d8_769x769_40k_cityscapes.py + + + + - Name: pspnet_r101-d8_769x769_40k_cityscapes + In Collection: PSPNet + Metadata: + inference time (fps): 1.15 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.08 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_40k_cityscapes/pspnet_r101-d8_769x769_40k_cityscapes_20200606_112753-61c6f5be.pth + Config: configs/pspnet/pspnet_r101-d8_769x769_40k_cityscapes.py + + + + - Name: pspnet_r18-d8_512x1024_80k_cityscapes + In Collection: PSPNet + Metadata: + inference time (fps): 15.71 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 74.87 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes/pspnet_r18-d8_512x1024_80k_cityscapes_20201225_021458-09ffa746.pth + Config: configs/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes.py + + + + - Name: pspnet_r50-d8_512x1024_80k_cityscapes + In Collection: PSPNet + Metadata: + inference time (fps): 4.07 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.55 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes/pspnet_r50-d8_512x1024_80k_cityscapes_20200606_112131-2376f12b.pth + Config: configs/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes.py + + + + - Name: pspnet_r101-d8_512x1024_80k_cityscapes + In Collection: PSPNet + Metadata: + inference time (fps): 2.68 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.76 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes/pspnet_r101-d8_512x1024_80k_cityscapes_20200606_112211-e1e1100f.pth + Config: configs/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py + + + + - Name: pspnet_r18-d8_769x769_80k_cityscapes + In Collection: PSPNet + Metadata: + inference time (fps): 6.20 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 75.90 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_769x769_80k_cityscapes/pspnet_r18-d8_769x769_80k_cityscapes_20201225_021458-3deefc62.pth + Config: configs/pspnet/pspnet_r18-d8_769x769_80k_cityscapes.py + + + + - Name: pspnet_r50-d8_769x769_80k_cityscapes + In Collection: PSPNet + Metadata: + inference time (fps): 1.76 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.59 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_80k_cityscapes/pspnet_r50-d8_769x769_80k_cityscapes_20200606_210121-5ccf03dd.pth + Config: configs/pspnet/pspnet_r50-d8_769x769_80k_cityscapes.py + + + + - Name: pspnet_r101-d8_769x769_80k_cityscapes + In Collection: PSPNet + Metadata: + inference time (fps): 1.15 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.77 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_80k_cityscapes/pspnet_r101-d8_769x769_80k_cityscapes_20200606_225055-dba412fa.pth + Config: configs/pspnet/pspnet_r101-d8_769x769_80k_cityscapes.py + + + + - Name: pspnet_r18b-d8_512x1024_80k_cityscapes + In Collection: PSPNet + Metadata: + inference time (fps): 16.28 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 74.23 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes/pspnet_r18b-d8_512x1024_80k_cityscapes_20201226_063116-26928a60.pth + Config: configs/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes.py + + + + - Name: pspnet_r50b-d8_512x1024_80k_cityscapes + In Collection: PSPNet + Metadata: + inference time (fps): 4.30 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.22 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes/pspnet_r50b-d8_512x1024_80k_cityscapes_20201225_094315-6344287a.pth + Config: configs/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes.py + + + + - Name: pspnet_r101b-d8_512x1024_80k_cityscapes + In Collection: PSPNet + Metadata: + inference time (fps): 2.76 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.69 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes_20201226_170012-3a4d38ab.pth + Config: configs/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes.py + + + + - Name: pspnet_r18b-d8_769x769_80k_cityscapes + In Collection: PSPNet + Metadata: + inference time (fps): 6.41 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 74.92 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes/pspnet_r18b-d8_769x769_80k_cityscapes_20201226_080942-bf98d186.pth + Config: configs/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes.py + + + + - Name: pspnet_r50b-d8_769x769_80k_cityscapes + In Collection: PSPNet + Metadata: + inference time (fps): 1.88 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.50 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes/pspnet_r50b-d8_769x769_80k_cityscapes_20201225_094316-4c643cf6.pth + Config: configs/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes.py + + + + - Name: pspnet_r101b-d8_769x769_80k_cityscapes + In Collection: PSPNet + Metadata: + inference time (fps): 1.17 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.87 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes/pspnet_r101b-d8_769x769_80k_cityscapes_20201226_171823-f0e7c293.pth + Config: configs/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes.py + + + + - Name: pspnet_r50-d8_512x512_80k_ade20k + In Collection: PSPNet + Metadata: + inference time (fps): 23.53 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 41.13 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_80k_ade20k/pspnet_r50-d8_512x512_80k_ade20k_20200615_014128-15a8b914.pth + Config: configs/pspnet/pspnet_r50-d8_512x512_80k_ade20k.py + + + + - Name: pspnet_r101-d8_512x512_80k_ade20k + In Collection: PSPNet + Metadata: + inference time (fps): 15.30 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.57 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_80k_ade20k/pspnet_r101-d8_512x512_80k_ade20k_20200614_031423-b6e782f0.pth + Config: configs/pspnet/pspnet_r101-d8_512x512_80k_ade20k.py + + + + - Name: pspnet_r50-d8_512x512_160k_ade20k + In Collection: PSPNet + Metadata: + inference time (fps): 23.53 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.48 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_160k_ade20k/pspnet_r50-d8_512x512_160k_ade20k_20200615_184358-1890b0bd.pth + Config: configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py + + + + - Name: pspnet_r101-d8_512x512_160k_ade20k + In Collection: PSPNet + Metadata: + inference time (fps): 15.30 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 44.39 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_160k_ade20k/pspnet_r101-d8_512x512_160k_ade20k_20200615_100650-967c316f.pth + Config: configs/pspnet/pspnet_r101-d8_512x512_160k_ade20k.py + + + + - Name: pspnet_r50-d8_512x512_20k_voc12aug + In Collection: PSPNet + Metadata: + inference time (fps): 23.59 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.78 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_20k_voc12aug/pspnet_r50-d8_512x512_20k_voc12aug_20200617_101958-ed5dfbd9.pth + Config: configs/pspnet/pspnet_r50-d8_512x512_20k_voc12aug.py + + + + - Name: pspnet_r101-d8_512x512_20k_voc12aug + In Collection: PSPNet + Metadata: + inference time (fps): 15.02 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 78.47 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_20k_voc12aug/pspnet_r101-d8_512x512_20k_voc12aug_20200617_102003-4aef3c9a.pth + Config: configs/pspnet/pspnet_r101-d8_512x512_20k_voc12aug.py + + + + - Name: pspnet_r50-d8_512x512_40k_voc12aug + In Collection: PSPNet + Metadata: + inference time (fps): 23.59 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.29 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_40k_voc12aug/pspnet_r50-d8_512x512_40k_voc12aug_20200613_161222-ae9c1b8c.pth + Config: configs/pspnet/pspnet_r50-d8_512x512_40k_voc12aug.py + + + + - Name: pspnet_r101-d8_512x512_40k_voc12aug + In Collection: PSPNet + Metadata: + inference time (fps): 15.02 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 78.52 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_40k_voc12aug/pspnet_r101-d8_512x512_40k_voc12aug_20200613_161222-bc933b18.pth + Config: configs/pspnet/pspnet_r101-d8_512x512_40k_voc12aug.py + + + + - Name: pspnet_r101-d8_480x480_40k_pascal_context + In Collection: PSPNet + Metadata: + inference time (fps): 9.68 + Results: + - Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 46.60 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context/pspnet_r101-d8_480x480_40k_pascal_context_20200911_211210-bf0f5d7c.pth + Config: configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context.py + + + + - Name: pspnet_r101-d8_480x480_80k_pascal_context + In Collection: PSPNet + Metadata: + inference time (fps): 9.68 + Results: + - Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 46.03 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context/pspnet_r101-d8_480x480_80k_pascal_context_20200911_190530-c86d6233.pth + Config: configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context.py + + + + - Name: pspnet_r101-d8_480x480_40k_pascal_context + In Collection: PSPNet + Metadata: + inference time (fps): None + Results: + - Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 52.02 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context_59/pspnet_r101-d8_480x480_40k_pascal_context_59_20210416_114524-86d44cd4.pth + Config: configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context.py + + + + - Name: pspnet_r101-d8_480x480_80k_pascal_context_59 + In Collection: PSPNet + Metadata: + inference time (fps): None + Results: + - Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 52.47 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context_59/pspnet_r101-d8_480x480_80k_pascal_context_59_20210416_114418-fa6caaa2.pth + Config: configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context_59.py diff --git a/configs/resnest/metafile.yml b/configs/resnest/metafile.yml new file mode 100644 index 0000000000..d6775ac9d5 --- /dev/null +++ b/configs/resnest/metafile.yml @@ -0,0 +1,118 @@ +Collections: + - Name: ResNeSt + Metadata: + Training Data: + - Cityscapes + - ADE20K + +Models: + + - Name: fcn_s101-d8_512x1024_80k_cityscapes + In Collection: FCN + Metadata: + inference time (fps): 2.39 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.56 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x1024_80k_cityscapes/fcn_s101-d8_512x1024_80k_cityscapes_20200807_140631-f8d155b3.pth + Config: configs/fcn/fcn_s101-d8_512x1024_80k_cityscapes.py + + + + - Name: pspnet_s101-d8_512x1024_80k_cityscapes + In Collection: PSPNet + Metadata: + inference time (fps): 2.52 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.57 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x1024_80k_cityscapes/pspnet_s101-d8_512x1024_80k_cityscapes_20200807_140631-c75f3b99.pth + Config: configs/pspnet/pspnet_s101-d8_512x1024_80k_cityscapes.py + + + + - Name: deeplabv3_s101-d8_512x1024_80k_cityscapes + In Collection: DeepLabV3 + Metadata: + inference time (fps): 1.88 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.67 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes/deeplabv3_s101-d8_512x1024_80k_cityscapes_20200807_144429-b73c4270.pth + Config: configs/deeplabv3/deeplabv3_s101-d8_512x1024_80k_cityscapes.py + + + + - Name: deeplabv3plus_s101-d8_512x1024_80k_cityscapes + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 2.36 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.62 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes/deeplabv3plus_s101-d8_512x1024_80k_cityscapes_20200807_144429-1239eb43.pth + Config: configs/deeplabv3+/deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py + + + + - Name: fcn_s101-d8_512x512_160k_ade20k + In Collection: FCN + Metadata: + inference time (fps): 12.86 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 45.62 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x512_160k_ade20k/fcn_s101-d8_512x512_160k_ade20k_20200807_145416-d3160329.pth + Config: configs/fcn/fcn_s101-d8_512x512_160k_ade20k.py + + + + - Name: pspnet_s101-d8_512x512_160k_ade20k + In Collection: PSPNet + Metadata: + inference time (fps): 13.02 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 45.44 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x512_160k_ade20k/pspnet_s101-d8_512x512_160k_ade20k_20200807_145416-a6daa92a.pth + Config: configs/pspnet/pspnet_s101-d8_512x512_160k_ade20k.py + + + + - Name: deeplabv3_s101-d8_512x512_160k_ade20k + In Collection: DeepLabV3 + Metadata: + inference time (fps): 9.28 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 45.71 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x512_160k_ade20k/deeplabv3_s101-d8_512x512_160k_ade20k_20200807_144503-17ecabe5.pth + Config: configs/deeplabv3/deeplabv3_s101-d8_512x512_160k_ade20k.py + + + + - Name: deeplabv3plus_s101-d8_512x512_160k_ade20k + In Collection: DeepLabV3+ + Metadata: + inference time (fps): 11.96 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 46.47 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k/deeplabv3plus_s101-d8_512x512_160k_ade20k_20200807_144503-27b26226.pth + Config: configs/deeplabv3+/deeplabv3plus_s101-d8_512x512_160k_ade20k.py diff --git a/configs/sem_fpn/metafile.yml b/configs/sem_fpn/metafile.yml new file mode 100644 index 0000000000..781589ac0b --- /dev/null +++ b/configs/sem_fpn/metafile.yml @@ -0,0 +1,63 @@ +Collections: + - Name: FPN + Metadata: + Training Data: + - Cityscapes + - Pascal VOC 2012 + Aug + - ADE20K + +Models: + + - Name: fpn_r50_512x1024_80k_cityscapes + In Collection: FPN + Metadata: + inference time (fps): 13.54 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 74.52 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x1024_80k_cityscapes/fpn_r50_512x1024_80k_cityscapes_20200717_021437-94018a0d.pth + Config: configs/fpn/fpn_r50_512x1024_80k_cityscapes.py + + + + - Name: fpn_r101_512x1024_80k_cityscapes + In Collection: FPN + Metadata: + inference time (fps): 10.29 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 75.80 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x1024_80k_cityscapes/fpn_r101_512x1024_80k_cityscapes_20200717_012416-c5800d4c.pth + Config: configs/fpn/fpn_r101_512x1024_80k_cityscapes.py + + + + - Name: fpn_r50_512x512_160k_ade20k + In Collection: FPN + Metadata: + inference time (fps): 55.77 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 37.49 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x512_160k_ade20k/fpn_r50_512x512_160k_ade20k_20200718_131734-5b5a6ab9.pth + Config: configs/fpn/fpn_r50_512x512_160k_ade20k.py + + + + - Name: fpn_r101_512x512_160k_ade20k + In Collection: FPN + Metadata: + inference time (fps): 40.58 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 39.35 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x512_160k_ade20k/fpn_r101_512x512_160k_ade20k_20200718_131734-306b5004.pth + Config: configs/fpn/fpn_r101_512x512_160k_ade20k.py diff --git a/configs/unet/metafile.yml b/configs/unet/metafile.yml new file mode 100644 index 0000000000..51058d00af --- /dev/null +++ b/configs/unet/metafile.yml @@ -0,0 +1,167 @@ +Models: + + - Name: fcn_unet_s5-d16_64x64_40k_drive + In Collection: FCN + Metadata: + inference time (fps): None + Results: + - Task: Semantic Segmentation + Dataset: DRIVE + Metrics: + mIoU: 0.680 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_64x64_40k_drive/fcn_unet_s5-d16_64x64_40k_drive_20201223_191051-26cee593.pth + Config: configs/unet-s5-d16/fcn_unet_s5-d16_64x64_40k_drive.py + + + + - Name: pspnet_unet_s5-d16_64x64_40k_drive + In Collection: PSPNet + Metadata: + inference time (fps): None + Results: + - Task: Semantic Segmentation + Dataset: DRIVE + Metrics: + mIoU: 0.599 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_64x64_40k_drive/pspnet_unet_s5-d16_64x64_40k_drive_20201227_181818-aac73387.pth + Config: configs/unet-s5-d16/pspnet_unet_s5-d16_64x64_40k_drive.py + + + + - Name: deeplabv3_unet_s5-d16_64x64_40k_drive + In Collection: DeepLabV3 + Metadata: + inference time (fps): None + Results: + - Task: Semantic Segmentation + Dataset: DRIVE + Metrics: + mIoU: 0.596 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_64x64_40k_drive/deeplabv3_unet_s5-d16_64x64_40k_drive_20201226_094047-0671ff20.pth + Config: configs/unet-s5-d16/deeplabv3_unet_s5-d16_64x64_40k_drive.py + + + + - Name: fcn_unet_s5-d16_128x128_40k_stare + In Collection: FCN + Metadata: + inference time (fps): None + Results: + - Task: Semantic Segmentation + Dataset: STARE + Metrics: + mIoU: 0.968 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_stare/fcn_unet_s5-d16_128x128_40k_stare_20201223_191051-6ea7cfda.pth + Config: configs/unet-s5-d16/fcn_unet_s5-d16_128x128_40k_stare.py + + + + - Name: pspnet_unet_s5-d16_128x128_40k_stare + In Collection: PSPNet + Metadata: + inference time (fps): None + Results: + - Task: Semantic Segmentation + Dataset: STARE + Metrics: + mIoU: 0.982 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_stare/pspnet_unet_s5-d16_128x128_40k_stare_20201227_181818-3c2923c4.pth + Config: configs/unet-s5-d16/pspnet_unet_s5-d16_128x128_40k_stare.py + + + + - Name: deeplabv3_unet_s5-d16_128x128_40k_stare + In Collection: DeepLabV3 + Metadata: + inference time (fps): None + Results: + - Task: Semantic Segmentation + Dataset: STARE + Metrics: + mIoU: 0.999 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_stare/deeplabv3_unet_s5-d16_128x128_40k_stare_20201226_094047-93dcb93c.pth + Config: configs/unet-s5-d16/deeplabv3_unet_s5-d16_128x128_40k_stare.py + + + + - Name: fcn_unet_s5-d16_128x128_40k_chase_db1 + In Collection: FCN + Metadata: + inference time (fps): None + Results: + - Task: Semantic Segmentation + Dataset: CHASE_DB1 + Metrics: + mIoU: 0.968 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_chase_db1/fcn_unet_s5-d16_128x128_40k_chase_db1_20201223_191051-95852f45.pth + Config: configs/unet-s5-d16/fcn_unet_s5-d16_128x128_40k_chase_db1.py + + + + - Name: pspnet_unet_s5-d16_128x128_40k_chase_db1 + In Collection: PSPNet + Metadata: + inference time (fps): None + Results: + - Task: Semantic Segmentation + Dataset: CHASE_DB1 + Metrics: + mIoU: 0.982 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1/pspnet_unet_s5-d16_128x128_40k_chase_db1_20201227_181818-68d4e609.pth + Config: configs/unet-s5-d16/pspnet_unet_s5-d16_128x128_40k_chase_db1.py + + + + - Name: deeplabv3_unet_s5-d16_128x128_40k_chase_db1 + In Collection: DeepLabV3 + Metadata: + inference time (fps): None + Results: + - Task: Semantic Segmentation + Dataset: CHASE_DB1 + Metrics: + mIoU: 0.999 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1/deeplabv3_unet_s5-d16_128x128_40k_chase_db1_20201226_094047-4c5aefa3.pth + Config: configs/unet-s5-d16/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py + + + + - Name: fcn_unet_s5-d16_256x256_40k_hrf + In Collection: FCN + Metadata: + inference time (fps): None + Results: + - Task: Semantic Segmentation + Dataset: HRF + Metrics: + mIoU: 2.525 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_256x256_40k_hrf/fcn_unet_s5-d16_256x256_40k_hrf_20201223_173724-df3ec8c4.pth + Config: configs/unet-s5-d16/fcn_unet_s5-d16_256x256_40k_hrf.py + + + + - Name: pspnet_unet_s5-d16_256x256_40k_hrf + In Collection: PSPNet + Metadata: + inference time (fps): None + Results: + - Task: Semantic Segmentation + Dataset: HRF + Metrics: + mIoU: 2.588 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_256x256_40k_hrf/pspnet_unet_s5-d16_256x256_40k_hrf_20201227_181818-fdb7e29b.pth + Config: configs/unet-s5-d16/pspnet_unet_s5-d16_256x256_40k_hrf.py + + + + - Name: deeplabv3_unet_s5-d16_256x256_40k_hrf + In Collection: DeepLabV3 + Metadata: + inference time (fps): None + Results: + - Task: Semantic Segmentation + Dataset: HRF + Metrics: + mIoU: 2.604 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf/deeplabv3_unet_s5-d16_256x256_40k_hrf_20201226_094047-3a1fdf85.pth + Config: configs/unet-s5-d16/deeplabv3_unet_s5-d16_256x256_40k_hrf.py diff --git a/configs/upernet/metafile.yml b/configs/upernet/metafile.yml new file mode 100644 index 0000000000..315c25568e --- /dev/null +++ b/configs/upernet/metafile.yml @@ -0,0 +1,231 @@ +Collections: + - Name: UPerNet + Metadata: + Training Data: + - Cityscapes + - Pascal VOC 2012 + Aug + - ADE20K + +Models: + + - Name: upernet_r50_512x1024_40k_cityscapes + In Collection: UPerNet + Metadata: + inference time (fps): 4.25 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.10 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_40k_cityscapes/upernet_r50_512x1024_40k_cityscapes_20200605_094827-aa54cb54.pth + Config: configs/upernet/upernet_r50_512x1024_40k_cityscapes.py + + + + - Name: upernet_r101_512x1024_40k_cityscapes + In Collection: UPerNet + Metadata: + inference time (fps): 3.79 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.69 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_40k_cityscapes/upernet_r101_512x1024_40k_cityscapes_20200605_094933-ebce3b10.pth + Config: configs/upernet/upernet_r101_512x1024_40k_cityscapes.py + + + + - Name: upernet_r50_769x769_40k_cityscapes + In Collection: UPerNet + Metadata: + inference time (fps): 1.76 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.98 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_40k_cityscapes/upernet_r50_769x769_40k_cityscapes_20200530_033048-92d21539.pth + Config: configs/upernet/upernet_r50_769x769_40k_cityscapes.py + + + + - Name: upernet_r101_769x769_40k_cityscapes + In Collection: UPerNet + Metadata: + inference time (fps): 1.56 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.03 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_40k_cityscapes/upernet_r101_769x769_40k_cityscapes_20200530_040819-83c95d01.pth + Config: configs/upernet/upernet_r101_769x769_40k_cityscapes.py + + + + - Name: upernet_r50_512x1024_80k_cityscapes + In Collection: UPerNet + Metadata: + inference time (fps): 4.25 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.19 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_80k_cityscapes/upernet_r50_512x1024_80k_cityscapes_20200607_052207-848beca8.pth + Config: configs/upernet/upernet_r50_512x1024_80k_cityscapes.py + + + + - Name: upernet_r101_512x1024_80k_cityscapes + In Collection: UPerNet + Metadata: + inference time (fps): 3.79 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.40 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_80k_cityscapes/upernet_r101_512x1024_80k_cityscapes_20200607_002403-f05f2345.pth + Config: configs/upernet/upernet_r101_512x1024_80k_cityscapes.py + + + + - Name: upernet_r50_769x769_80k_cityscapes + In Collection: UPerNet + Metadata: + inference time (fps): 1.76 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.39 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_80k_cityscapes/upernet_r50_769x769_80k_cityscapes_20200607_005107-82ae7d15.pth + Config: configs/upernet/upernet_r50_769x769_80k_cityscapes.py + + + + - Name: upernet_r101_769x769_80k_cityscapes + In Collection: UPerNet + Metadata: + inference time (fps): 1.56 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.10 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_80k_cityscapes/upernet_r101_769x769_80k_cityscapes_20200607_001014-082fc334.pth + Config: configs/upernet/upernet_r101_769x769_80k_cityscapes.py + + + + - Name: upernet_r50_512x512_80k_ade20k + In Collection: UPerNet + Metadata: + inference time (fps): 23.40 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 40.70 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_80k_ade20k/upernet_r50_512x512_80k_ade20k_20200614_144127-ecc8377b.pth + Config: configs/upernet/upernet_r50_512x512_80k_ade20k.py + + + + - Name: upernet_r101_512x512_80k_ade20k + In Collection: UPerNet + Metadata: + inference time (fps): 20.34 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.91 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_80k_ade20k/upernet_r101_512x512_80k_ade20k_20200614_185117-32e4db94.pth + Config: configs/upernet/upernet_r101_512x512_80k_ade20k.py + + + + - Name: upernet_r50_512x512_160k_ade20k + In Collection: UPerNet + Metadata: + inference time (fps): 23.40 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.05 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_160k_ade20k/upernet_r50_512x512_160k_ade20k_20200615_184328-8534de8d.pth + Config: configs/upernet/upernet_r50_512x512_160k_ade20k.py + + + + - Name: upernet_r101_512x512_160k_ade20k + In Collection: UPerNet + Metadata: + inference time (fps): 20.34 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.82 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_160k_ade20k/upernet_r101_512x512_160k_ade20k_20200615_161951-91b32684.pth + Config: configs/upernet/upernet_r101_512x512_160k_ade20k.py + + + + - Name: upernet_r50_512x512_20k_voc12aug + In Collection: UPerNet + Metadata: + inference time (fps): 23.17 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 74.82 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_20k_voc12aug/upernet_r50_512x512_20k_voc12aug_20200617_165330-5b5890a7.pth + Config: configs/upernet/upernet_r50_512x512_20k_voc12aug.py + + + + - Name: upernet_r101_512x512_20k_voc12aug + In Collection: UPerNet + Metadata: + inference time (fps): 19.98 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.10 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_20k_voc12aug/upernet_r101_512x512_20k_voc12aug_20200617_165629-f14e7f27.pth + Config: configs/upernet/upernet_r101_512x512_20k_voc12aug.py + + + + - Name: upernet_r50_512x512_40k_voc12aug + In Collection: UPerNet + Metadata: + inference time (fps): 23.17 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 75.92 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_40k_voc12aug/upernet_r50_512x512_40k_voc12aug_20200613_162257-ca9bcc6b.pth + Config: configs/upernet/upernet_r50_512x512_40k_voc12aug.py + + + + - Name: upernet_r101_512x512_40k_voc12aug + In Collection: UPerNet + Metadata: + inference time (fps): 19.98 + Results: + - Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.43 + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_40k_voc12aug/upernet_r101_512x512_40k_voc12aug_20200613_163549-e26476ac.pth + Config: configs/upernet/upernet_r101_512x512_40k_voc12aug.py diff --git a/model_zoo.yml b/model_zoo.yml new file mode 100644 index 0000000000..6a95f49c32 --- /dev/null +++ b/model_zoo.yml @@ -0,0 +1,27 @@ +Import: + - configs/ann/metafile.yml + - configs/apcnet/metafile.yml + - configs/ccnet/metafile.yml + - configs/cgnet/metafile.yml + - configs/danet/metafile.yml + - configs/deeplabv3/metafile.yml + - configs/deeplabv3plus/metafile.yml + - configs/dnlnet/metafile.yml + - configs/emanet/metafile.yml + - configs/encnet/metafile.yml + - configs/fastscnn/metafile.yml + - configs/fcn/metafile.yml + - configs/fp16/metafile.yml + - configs/gcnet/metafile.yml + - configs/hrnet/metafile.yml + - configs/mobilenet_v2/metafile.yml + - configs/mobilenet_v3/metafile.yml + - configs/nonlocal_net/metafile.yml + - configs/ocrnet/metafile.yml + - configs/point_rend/metafile.yml + - configs/psanet/metafile.yml + - configs/pspnet/metafile.yml + - configs/resnest/metafile.yml + - configs/sem_fpn/metafile.yml + - configs/unet/metafile.yml + - configs/upernet/metafile.yml diff --git a/requirements/mminstall.txt b/requirements/mminstall.txt new file mode 100644 index 0000000000..b1c42eb464 --- /dev/null +++ b/requirements/mminstall.txt @@ -0,0 +1 @@ +mmcv-full>=1.3.1,<=1.4.0 diff --git a/setup.py b/setup.py index 2e69551b8f..321664bcdd 100755 --- a/setup.py +++ b/setup.py @@ -104,6 +104,7 @@ def gen_packages_items(): keywords='computer vision, semantic segmentation', url='http://github.com/open-mmlab/mmsegmentation', packages=find_packages(exclude=('configs', 'tools', 'demo')), + include_package_data=True, classifiers=[ 'Development Status :: 4 - Beta', 'License :: OSI Approved :: Apache Software License', From 02b5d768aa1b7a87e75a4b3cfa9fb1f7550815b6 Mon Sep 17 00:00:00 2001 From: Yinhao Li Date: Thu, 3 Jun 2021 07:25:26 +0800 Subject: [PATCH 151/706] [feature]: Able to use save_best option (#575) * Add save_best option in eval_hook. * Update meta to fix best model can not test bug * refactor with _do_evaluate * remove redundent * add meta Co-authored-by: Jiarui XU --- mmseg/core/evaluation/eval_hooks.py | 83 ++++++++++++----------------- tools/test.py | 12 ++++- tools/train.py | 2 + 3 files changed, 46 insertions(+), 51 deletions(-) diff --git a/mmseg/core/evaluation/eval_hooks.py b/mmseg/core/evaluation/eval_hooks.py index 34c44c7fe3..ce5809146f 100644 --- a/mmseg/core/evaluation/eval_hooks.py +++ b/mmseg/core/evaluation/eval_hooks.py @@ -1,7 +1,9 @@ import os.path as osp +import torch.distributed as dist from mmcv.runner import DistEvalHook as _DistEvalHook from mmcv.runner import EvalHook as _EvalHook +from torch.nn.modules.batchnorm import _BatchNorm class EvalHook(_EvalHook): @@ -23,33 +25,17 @@ def __init__(self, *args, by_epoch=False, efficient_test=False, **kwargs): super().__init__(*args, by_epoch=by_epoch, **kwargs) self.efficient_test = efficient_test - def after_train_iter(self, runner): - """After train epoch hook. - - Override default ``single_gpu_test``. - """ - if self.by_epoch or not self.every_n_iters(runner, self.interval): + def _do_evaluate(self, runner): + """perform evaluation and save ckpt.""" + if not self._should_evaluate(runner): return - from mmseg.apis import single_gpu_test - runner.log_buffer.clear() - results = single_gpu_test( - runner.model, - self.dataloader, - show=False, - efficient_test=self.efficient_test) - self.evaluate(runner, results) - def after_train_epoch(self, runner): - """After train epoch hook. - - Override default ``single_gpu_test``. - """ - if not self.by_epoch or not self.every_n_epochs(runner, self.interval): - return from mmseg.apis import single_gpu_test - runner.log_buffer.clear() results = single_gpu_test(runner.model, self.dataloader, show=False) - self.evaluate(runner, results) + runner.log_buffer.output['eval_iter_num'] = len(self.dataloader) + key_score = self.evaluate(runner, results) + if self.save_best: + self._save_ckpt(runner, key_score) class DistEvalHook(_DistEvalHook): @@ -71,39 +57,38 @@ def __init__(self, *args, by_epoch=False, efficient_test=False, **kwargs): super().__init__(*args, by_epoch=by_epoch, **kwargs) self.efficient_test = efficient_test - def after_train_iter(self, runner): - """After train epoch hook. - - Override default ``multi_gpu_test``. - """ - if self.by_epoch or not self.every_n_iters(runner, self.interval): + def _do_evaluate(self, runner): + """perform evaluation and save ckpt.""" + # Synchronization of BatchNorm's buffer (running_mean + # and running_var) is not supported in the DDP of pytorch, + # which may cause the inconsistent performance of models in + # different ranks, so we broadcast BatchNorm's buffers + # of rank 0 to other ranks to avoid this. + if self.broadcast_bn_buffer: + model = runner.model + for name, module in model.named_modules(): + if isinstance(module, + _BatchNorm) and module.track_running_stats: + dist.broadcast(module.running_var, 0) + dist.broadcast(module.running_mean, 0) + + if not self._should_evaluate(runner): return - from mmseg.apis import multi_gpu_test - runner.log_buffer.clear() - results = multi_gpu_test( - runner.model, - self.dataloader, - tmpdir=osp.join(runner.work_dir, '.eval_hook'), - gpu_collect=self.gpu_collect, - efficient_test=self.efficient_test) - if runner.rank == 0: - print('\n') - self.evaluate(runner, results) - def after_train_epoch(self, runner): - """After train epoch hook. + tmpdir = self.tmpdir + if tmpdir is None: + tmpdir = osp.join(runner.work_dir, '.eval_hook') - Override default ``multi_gpu_test``. - """ - if not self.by_epoch or not self.every_n_epochs(runner, self.interval): - return from mmseg.apis import multi_gpu_test - runner.log_buffer.clear() results = multi_gpu_test( runner.model, self.dataloader, - tmpdir=osp.join(runner.work_dir, '.eval_hook'), + tmpdir=tmpdir, gpu_collect=self.gpu_collect) if runner.rank == 0: print('\n') - self.evaluate(runner, results) + runner.log_buffer.output['eval_iter_num'] = len(self.dataloader) + key_score = self.evaluate(runner, results) + + if self.save_best: + self._save_ckpt(runner, key_score) diff --git a/tools/test.py b/tools/test.py index fd8589c029..ab2bd60175 100644 --- a/tools/test.py +++ b/tools/test.py @@ -122,8 +122,16 @@ def main(): if fp16_cfg is not None: wrap_fp16_model(model) checkpoint = load_checkpoint(model, args.checkpoint, map_location='cpu') - model.CLASSES = checkpoint['meta']['CLASSES'] - model.PALETTE = checkpoint['meta']['PALETTE'] + if 'CLASSES' in checkpoint.get('meta', {}): + model.CLASSES = checkpoint['meta']['CLASSES'] + else: + print('"CLASSES" not found in meta, use dataset.CLASSES instead') + model.CLASSES = dataset.CLASSES + if 'PALETTE' in checkpoint.get('meta', {}): + model.PALETTE = checkpoint['meta']['PALETTE'] + else: + print('"PALETTE" not found in meta, use dataset.PALETTE instead') + model.PALETTE = dataset.PALETTE efficient_test = False if args.eval_options is not None: diff --git a/tools/train.py b/tools/train.py index 51fe4065de..69ca7335db 100644 --- a/tools/train.py +++ b/tools/train.py @@ -149,6 +149,8 @@ def main(): PALETTE=datasets[0].PALETTE) # add an attribute for visualization convenience model.CLASSES = datasets[0].CLASSES + # passing checkpoint meta for saving best checkpoint + meta.update(cfg.checkpoint_config.meta) train_segmentor( model, datasets, From af6478dd7afa0c29a69fb3d5fd68be34b21ed1e9 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Wed, 2 Jun 2021 18:43:08 -0700 Subject: [PATCH 152/706] Bump to v0.14 (#580) --- README.md | 2 +- docs/changelog.md | 25 +++++++++++++++++++++++++ mmseg/version.py | 2 +- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index eaf3dcb170..cb2dd86ad2 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ This project is released under the [Apache 2.0 license](LICENSE). ## Changelog -v0.13.0 was released in 05/05/2021. +v0.14.0 was released in 06/02/2021. Please refer to [changelog.md](docs/changelog.md) for details and release history. ## Benchmark and model zoo diff --git a/docs/changelog.md b/docs/changelog.md index 7d4a0d8002..6533ebea5d 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,5 +1,30 @@ ## Changelog +### V0.14 (06/02/2021) + +**Highlights** + +- Support ONNX to TensorRT +- Support MIM + +**Bug Fixes** + +- Fix ONNX to TensorRT verify ([#547](https://github.com/open-mmlab/mmsegmentation/pull/547)) +- Fix save best for EvalHook ([#575](https://github.com/open-mmlab/mmsegmentation/pull/575)) + +**New Features** + +- Support loading DeiT weights ([#538](https://github.com/open-mmlab/mmsegmentation/pull/538)) +- Support ONNX to TensorRT ([#542](https://github.com/open-mmlab/mmsegmentation/pull/542)) +- Support output results for ADE20k ([#544](https://github.com/open-mmlab/mmsegmentation/pull/544)) +- Support MIM ([#549](https://github.com/open-mmlab/mmsegmentation/pull/549)) + +**Improvements** + +- Add option for ViT output shape ([#530](https://github.com/open-mmlab/mmsegmentation/pull/530)) +- Infer batch size using len(result) ([#532](https://github.com/open-mmlab/mmsegmentation/pull/532)) +- Add compatible table between MMSeg and MMCV ([#558](https://github.com/open-mmlab/mmsegmentation/pull/558)) + ### V0.13 (05/05/2021) **Highlights** diff --git a/mmseg/version.py b/mmseg/version.py index e090d9f31a..906660529d 100644 --- a/mmseg/version.py +++ b/mmseg/version.py @@ -1,6 +1,6 @@ # Copyright (c) Open-MMLab. All rights reserved. -__version__ = '0.13.0' +__version__ = '0.14.0' def parse_version_info(version_str): From 9849a8dc23b9d0f941b7d3fb0b1abad9d54bf588 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Wed, 16 Jun 2021 21:41:29 -0700 Subject: [PATCH 153/706] [Refactor]: Unified parameter initialization (#567) * [Refactor]: Unified parameter initialization * fixed pretrained --- mmseg/models/backbones/cgnet.py | 60 ++++----- mmseg/models/backbones/fast_scnn.py | 29 +++-- mmseg/models/backbones/hrnet.py | 119 +++++++++++------- mmseg/models/backbones/mobilenet_v2.py | 50 +++++--- mmseg/models/backbones/mobilenet_v3.py | 51 +++++--- mmseg/models/backbones/resnet.py | 101 ++++++++------- mmseg/models/backbones/unet.py | 57 +++++---- mmseg/models/backbones/vit.py | 18 ++- mmseg/models/decode_heads/decode_head.py | 16 ++- mmseg/models/decode_heads/point_head.py | 8 +- mmseg/models/necks/fpn.py | 19 ++- mmseg/models/segmentors/base.py | 23 +--- .../segmentors/cascade_encoder_decoder.py | 23 +--- mmseg/models/segmentors/encoder_decoder.py | 29 ++--- mmseg/models/utils/res_layer.py | 3 +- .../test_models/test_backbones/test_resnet.py | 9 +- tests/test_models/test_backbones/test_unet.py | 10 +- tests/test_models/test_forward.py | 1 + tools/train.py | 1 + 19 files changed, 329 insertions(+), 298 deletions(-) diff --git a/mmseg/models/backbones/cgnet.py b/mmseg/models/backbones/cgnet.py index 032a55d85f..32bdbc4c15 100644 --- a/mmseg/models/backbones/cgnet.py +++ b/mmseg/models/backbones/cgnet.py @@ -1,12 +1,12 @@ +import warnings + import torch import torch.nn as nn import torch.utils.checkpoint as cp -from mmcv.cnn import (ConvModule, build_conv_layer, build_norm_layer, - constant_init, kaiming_init) -from mmcv.runner import load_checkpoint +from mmcv.cnn import ConvModule, build_conv_layer, build_norm_layer +from mmcv.runner import BaseModule from mmcv.utils.parrots_wrapper import _BatchNorm -from mmseg.utils import get_root_logger from ..builder import BACKBONES @@ -183,7 +183,7 @@ def forward(self, x): @BACKBONES.register_module() -class CGNet(nn.Module): +class CGNet(BaseModule): """CGNet backbone. A Light-weight Context Guided Network for Semantic Segmentation @@ -210,6 +210,9 @@ class CGNet(nn.Module): and its variants only. Default: False. with_cp (bool): Use checkpoint or not. Using checkpoint will save some memory while slowing down the training speed. Default: False. + pretrained (str, optional): model pretrained path. Default: None + init_cfg (dict or list[dict], optional): Initialization config dict. + Default: None """ def __init__(self, @@ -222,9 +225,31 @@ def __init__(self, norm_cfg=dict(type='BN', requires_grad=True), act_cfg=dict(type='PReLU'), norm_eval=False, - with_cp=False): + with_cp=False, + pretrained=None, + init_cfg=None): + + super(CGNet, self).__init__(init_cfg) + + assert not (init_cfg and pretrained), \ + 'init_cfg and pretrained cannot be setting at the same time' + if isinstance(pretrained, str): + warnings.warn('DeprecationWarning: pretrained is a deprecated, ' + 'please use "init_cfg" instead') + self.init_cfg = dict(type='Pretrained', checkpoint=pretrained) + elif pretrained is None: + if init_cfg is None: + self.init_cfg = [ + dict(type='Kaiming', layer=['Conv2d', 'Linear']), + dict( + type='Constant', + val=1, + layer=['_BatchNorm', 'GroupNorm']), + dict(type='Constant', val=0, layer='PReLU') + ] + else: + raise TypeError('pretrained must be a str or None') - super(CGNet, self).__init__() self.in_channels = in_channels self.num_channels = num_channels assert isinstance(self.num_channels, tuple) and len( @@ -335,27 +360,6 @@ def forward(self, x): return output - def init_weights(self, pretrained=None): - """Initialize the weights in backbone. - - Args: - pretrained (str, optional): Path to pre-trained weights. - Defaults to None. - """ - if isinstance(pretrained, str): - logger = get_root_logger() - load_checkpoint(self, pretrained, strict=False, logger=logger) - elif pretrained is None: - for m in self.modules(): - if isinstance(m, (nn.Conv2d, nn.Linear)): - kaiming_init(m) - elif isinstance(m, (_BatchNorm, nn.GroupNorm)): - constant_init(m, 1) - elif isinstance(m, nn.PReLU): - constant_init(m, 0) - else: - raise TypeError('pretrained must be a str or None') - def train(self, mode=True): """Convert the model into training mode will keeping the normalization layer freezed.""" diff --git a/mmseg/models/backbones/fast_scnn.py b/mmseg/models/backbones/fast_scnn.py index ee115ffda1..e8a87037d5 100644 --- a/mmseg/models/backbones/fast_scnn.py +++ b/mmseg/models/backbones/fast_scnn.py @@ -1,8 +1,7 @@ import torch import torch.nn as nn -from mmcv.cnn import (ConvModule, DepthwiseSeparableConvModule, constant_init, - kaiming_init) -from torch.nn.modules.batchnorm import _BatchNorm +from mmcv.cnn import ConvModule, DepthwiseSeparableConvModule +from mmcv.runner import BaseModule from mmseg.models.decode_heads.psp_head import PPM from mmseg.ops import resize @@ -247,7 +246,7 @@ def forward(self, higher_res_feature, lower_res_feature): @BACKBONES.register_module() -class FastSCNN(nn.Module): +class FastSCNN(BaseModule): """Fast-SCNN Backbone. Args: @@ -291,6 +290,8 @@ class FastSCNN(nn.Module): dict(type='ReLU') align_corners (bool): align_corners argument of F.interpolate. Default: False + init_cfg (dict or list[dict], optional): Initialization config dict. + Default: None """ def __init__(self, @@ -307,9 +308,18 @@ def __init__(self, conv_cfg=None, norm_cfg=dict(type='BN'), act_cfg=dict(type='ReLU'), - align_corners=False): + align_corners=False, + init_cfg=None): + + super(FastSCNN, self).__init__(init_cfg) + + if init_cfg is None: + self.init_cfg = [ + dict(type='Kaiming', layer='Conv2d'), + dict( + type='Constant', val=1, layer=['_BatchNorm', 'GroupNorm']) + ] - super(FastSCNN, self).__init__() if global_in_channels != higher_in_channels: raise AssertionError('Global Input Channels must be the same \ with Higher Input Channels!') @@ -357,13 +367,6 @@ def __init__(self, act_cfg=self.act_cfg, align_corners=self.align_corners) - def init_weights(self, pretrained=None): - for m in self.modules(): - if isinstance(m, nn.Conv2d): - kaiming_init(m) - elif isinstance(m, (_BatchNorm, nn.GroupNorm)): - constant_init(m, 1) - def forward(self, x): higher_res_features = self.learning_to_downsample(x) lower_res_features = self.global_feature_extractor(higher_res_features) diff --git a/mmseg/models/backbones/hrnet.py b/mmseg/models/backbones/hrnet.py index 5010a2e767..055fc985bb 100644 --- a/mmseg/models/backbones/hrnet.py +++ b/mmseg/models/backbones/hrnet.py @@ -1,16 +1,16 @@ +import warnings + import torch.nn as nn -from mmcv.cnn import (build_conv_layer, build_norm_layer, constant_init, - kaiming_init) -from mmcv.runner import load_checkpoint +from mmcv.cnn import build_conv_layer, build_norm_layer +from mmcv.runner import BaseModule, ModuleList, Sequential from mmcv.utils.parrots_wrapper import _BatchNorm from mmseg.ops import Upsample, resize -from mmseg.utils import get_root_logger from ..builder import BACKBONES from .resnet import BasicBlock, Bottleneck -class HRModule(nn.Module): +class HRModule(BaseModule): """High-Resolution Module for HRNet. In this module, every branch has 4 BasicBlocks/Bottlenecks. Fusion/Exchange @@ -26,8 +26,11 @@ def __init__(self, multiscale_output=True, with_cp=False, conv_cfg=None, - norm_cfg=dict(type='BN', requires_grad=True)): - super(HRModule, self).__init__() + norm_cfg=dict(type='BN', requires_grad=True), + block_init_cfg=None, + init_cfg=None): + super(HRModule, self).__init__(init_cfg) + self.block_init_cfg = block_init_cfg self._check_branches(num_branches, num_blocks, in_channels, num_channels) @@ -92,7 +95,8 @@ def _make_one_branch(self, downsample=downsample, with_cp=self.with_cp, norm_cfg=self.norm_cfg, - conv_cfg=self.conv_cfg)) + conv_cfg=self.conv_cfg, + init_cfg=self.block_init_cfg)) self.in_channels[branch_index] = \ num_channels[branch_index] * block.expansion for i in range(1, num_blocks[branch_index]): @@ -102,9 +106,10 @@ def _make_one_branch(self, num_channels[branch_index], with_cp=self.with_cp, norm_cfg=self.norm_cfg, - conv_cfg=self.conv_cfg)) + conv_cfg=self.conv_cfg, + init_cfg=self.block_init_cfg)) - return nn.Sequential(*layers) + return Sequential(*layers) def _make_branches(self, num_branches, block, num_blocks, num_channels): """Build multiple branch.""" @@ -114,7 +119,7 @@ def _make_branches(self, num_branches, block, num_blocks, num_channels): branches.append( self._make_one_branch(i, block, num_blocks, num_channels)) - return nn.ModuleList(branches) + return ModuleList(branches) def _make_fuse_layers(self): """Build fuse layer.""" @@ -209,7 +214,7 @@ def forward(self, x): @BACKBONES.register_module() -class HRNet(nn.Module): +class HRNet(BaseModule): """HRNet backbone. High-Resolution Representations for Labeling Pixels and Regions @@ -227,6 +232,9 @@ class HRNet(nn.Module): memory while slowing down the training speed. zero_init_residual (bool): whether to use zero init for last norm layer in resblocks to let them behave as identity. + pretrained (str, optional): model pretrained path. Default: None + init_cfg (dict or list[dict], optional): Initialization config dict. + Default: None Example: >>> from mmseg.models import HRNet @@ -277,14 +285,36 @@ def __init__(self, norm_cfg=dict(type='BN', requires_grad=True), norm_eval=False, with_cp=False, - zero_init_residual=False): - super(HRNet, self).__init__() + zero_init_residual=False, + pretrained=None, + init_cfg=None): + super(HRNet, self).__init__(init_cfg) + + self.pretrained = pretrained + self.zero_init_residual = zero_init_residual + assert not (init_cfg and pretrained), \ + 'init_cfg and pretrained cannot be setting at the same time' + if isinstance(pretrained, str): + warnings.warn('DeprecationWarning: pretrained is a deprecated, ' + 'please use "init_cfg" instead') + self.init_cfg = dict(type='Pretrained', checkpoint=pretrained) + elif pretrained is None: + if init_cfg is None: + self.init_cfg = [ + dict(type='Kaiming', layer='Conv2d'), + dict( + type='Constant', + val=1, + layer=['_BatchNorm', 'GroupNorm']) + ] + else: + raise TypeError('pretrained must be a str or None') + self.extra = extra self.conv_cfg = conv_cfg self.norm_cfg = norm_cfg self.norm_eval = norm_eval self.with_cp = with_cp - self.zero_init_residual = zero_init_residual # stem net self.norm1_name, norm1 = build_norm_layer(self.norm_cfg, 64, postfix=1) @@ -430,6 +460,16 @@ def _make_layer(self, block, inplanes, planes, blocks, stride=1): build_norm_layer(self.norm_cfg, planes * block.expansion)[1]) layers = [] + block_init_cfg = None + if self.pretrained is None and not hasattr( + self, 'init_cfg') and self.zero_init_residual: + if block is BasicBlock: + block_init_cfg = dict( + type='Constant', val=0, override=dict(name='norm2')) + elif block is Bottleneck: + block_init_cfg = dict( + type='Constant', val=0, override=dict(name='norm3')) + layers.append( block( inplanes, @@ -438,7 +478,8 @@ def _make_layer(self, block, inplanes, planes, blocks, stride=1): downsample=downsample, with_cp=self.with_cp, norm_cfg=self.norm_cfg, - conv_cfg=self.conv_cfg)) + conv_cfg=self.conv_cfg, + init_cfg=block_init_cfg)) inplanes = planes * block.expansion for i in range(1, blocks): layers.append( @@ -447,9 +488,10 @@ def _make_layer(self, block, inplanes, planes, blocks, stride=1): planes, with_cp=self.with_cp, norm_cfg=self.norm_cfg, - conv_cfg=self.conv_cfg)) + conv_cfg=self.conv_cfg, + init_cfg=block_init_cfg)) - return nn.Sequential(*layers) + return Sequential(*layers) def _make_stage(self, layer_config, in_channels, multiscale_output=True): """Make each stage.""" @@ -460,6 +502,16 @@ def _make_stage(self, layer_config, in_channels, multiscale_output=True): block = self.blocks_dict[layer_config['block']] hr_modules = [] + block_init_cfg = None + if self.pretrained is None and not hasattr( + self, 'init_cfg') and self.zero_init_residual: + if block is BasicBlock: + block_init_cfg = dict( + type='Constant', val=0, override=dict(name='norm2')) + elif block is Bottleneck: + block_init_cfg = dict( + type='Constant', val=0, override=dict(name='norm3')) + for i in range(num_modules): # multi_scale_output is only used for the last module if not multiscale_output and i == num_modules - 1: @@ -477,35 +529,10 @@ def _make_stage(self, layer_config, in_channels, multiscale_output=True): reset_multiscale_output, with_cp=self.with_cp, norm_cfg=self.norm_cfg, - conv_cfg=self.conv_cfg)) - - return nn.Sequential(*hr_modules), in_channels + conv_cfg=self.conv_cfg, + block_init_cfg=block_init_cfg)) - def init_weights(self, pretrained=None): - """Initialize the weights in backbone. - - Args: - pretrained (str, optional): Path to pre-trained weights. - Defaults to None. - """ - if isinstance(pretrained, str): - logger = get_root_logger() - load_checkpoint(self, pretrained, strict=False, logger=logger) - elif pretrained is None: - for m in self.modules(): - if isinstance(m, nn.Conv2d): - kaiming_init(m) - elif isinstance(m, (_BatchNorm, nn.GroupNorm)): - constant_init(m, 1) - - if self.zero_init_residual: - for m in self.modules(): - if isinstance(m, Bottleneck): - constant_init(m.norm3, 0) - elif isinstance(m, BasicBlock): - constant_init(m.norm2, 0) - else: - raise TypeError('pretrained must be a str or None') + return Sequential(*hr_modules), in_channels def forward(self, x): """Forward function.""" diff --git a/mmseg/models/backbones/mobilenet_v2.py b/mmseg/models/backbones/mobilenet_v2.py index 9ab628e2ad..46d57fbb55 100644 --- a/mmseg/models/backbones/mobilenet_v2.py +++ b/mmseg/models/backbones/mobilenet_v2.py @@ -1,8 +1,8 @@ -import logging +import warnings import torch.nn as nn -from mmcv.cnn import ConvModule, constant_init, kaiming_init -from mmcv.runner import load_checkpoint +from mmcv.cnn import ConvModule +from mmcv.runner import BaseModule from torch.nn.modules.batchnorm import _BatchNorm from ..builder import BACKBONES @@ -10,7 +10,7 @@ @BACKBONES.register_module() -class MobileNetV2(nn.Module): +class MobileNetV2(BaseModule): """MobileNetV2 backbone. Args: @@ -35,6 +35,9 @@ class MobileNetV2(nn.Module): and its variants only. Default: False. with_cp (bool): Use checkpoint or not. Using checkpoint will save some memory while slowing down the training speed. Default: False. + pretrained (str, optional): model pretrained path. Default: None + init_cfg (dict or list[dict], optional): Initialization config dict. + Default: None """ # Parameters to build layers. 3 parameters are needed to construct a @@ -52,8 +55,30 @@ def __init__(self, norm_cfg=dict(type='BN'), act_cfg=dict(type='ReLU6'), norm_eval=False, - with_cp=False): - super(MobileNetV2, self).__init__() + with_cp=False, + pretrained=None, + init_cfg=None): + super(MobileNetV2, self).__init__(init_cfg) + + self.pretrained = pretrained + assert not (init_cfg and pretrained), \ + 'init_cfg and pretrained cannot be setting at the same time' + if isinstance(pretrained, str): + warnings.warn('DeprecationWarning: pretrained is a deprecated, ' + 'please use "init_cfg" instead') + self.init_cfg = dict(type='Pretrained', checkpoint=pretrained) + elif pretrained is None: + if init_cfg is None: + self.init_cfg = [ + dict(type='Kaiming', layer='Conv2d'), + dict( + type='Constant', + val=1, + layer=['_BatchNorm', 'GroupNorm']) + ] + else: + raise TypeError('pretrained must be a str or None') + self.widen_factor = widen_factor self.strides = strides self.dilations = dilations @@ -133,19 +158,6 @@ def make_layer(self, out_channels, num_blocks, stride, dilation, return nn.Sequential(*layers) - def init_weights(self, pretrained=None): - if isinstance(pretrained, str): - logger = logging.getLogger() - load_checkpoint(self, pretrained, strict=False, logger=logger) - elif pretrained is None: - for m in self.modules(): - if isinstance(m, nn.Conv2d): - kaiming_init(m) - elif isinstance(m, (_BatchNorm, nn.GroupNorm)): - constant_init(m, 1) - else: - raise TypeError('pretrained must be a str or None') - def forward(self, x): x = self.conv1(x) diff --git a/mmseg/models/backbones/mobilenet_v3.py b/mmseg/models/backbones/mobilenet_v3.py index f2e9a0cc00..ae0b45db81 100644 --- a/mmseg/models/backbones/mobilenet_v3.py +++ b/mmseg/models/backbones/mobilenet_v3.py @@ -1,10 +1,9 @@ -import logging +import warnings import mmcv -import torch.nn as nn -from mmcv.cnn import ConvModule, constant_init, kaiming_init +from mmcv.cnn import ConvModule from mmcv.cnn.bricks import Conv2dAdaptivePadding -from mmcv.runner import load_checkpoint +from mmcv.runner import BaseModule from torch.nn.modules.batchnorm import _BatchNorm from ..builder import BACKBONES @@ -12,7 +11,7 @@ @BACKBONES.register_module() -class MobileNetV3(nn.Module): +class MobileNetV3(BaseModule): """MobileNetV3 backbone. This backbone is the improved implementation of `Searching for MobileNetV3 @@ -35,6 +34,9 @@ class MobileNetV3(nn.Module): with_cp (bool): Use checkpoint or not. Using checkpoint will save some memory while slowing down the training speed. Default: False. + pretrained (str, optional): model pretrained path. Default: None + init_cfg (dict or list[dict], optional): Initialization config dict. + Default: None """ # Parameters to build each block: # [kernel size, mid channels, out channels, with_se, act type, stride] @@ -75,8 +77,30 @@ def __init__(self, frozen_stages=-1, reduction_factor=1, norm_eval=False, - with_cp=False): - super(MobileNetV3, self).__init__() + with_cp=False, + pretrained=None, + init_cfg=None): + super(MobileNetV3, self).__init__(init_cfg) + + self.pretrained = pretrained + assert not (init_cfg and pretrained), \ + 'init_cfg and pretrained cannot be setting at the same time' + if isinstance(pretrained, str): + warnings.warn('DeprecationWarning: pretrained is a deprecated, ' + 'please use "init_cfg" instead') + self.init_cfg = dict(type='Pretrained', checkpoint=pretrained) + elif pretrained is None: + if init_cfg is None: + self.init_cfg = [ + dict(type='Kaiming', layer='Conv2d'), + dict( + type='Constant', + val=1, + layer=['_BatchNorm', 'GroupNorm']) + ] + else: + raise TypeError('pretrained must be a str or None') + assert arch in self.arch_settings assert isinstance(reduction_factor, int) and reduction_factor > 0 assert mmcv.is_tuple_of(out_indices, int) @@ -217,19 +241,6 @@ def _make_layer(self): return layers - def init_weights(self, pretrained=None): - if isinstance(pretrained, str): - logger = logging.getLogger() - load_checkpoint(self, pretrained, strict=False, logger=logger) - elif pretrained is None: - for m in self.modules(): - if isinstance(m, nn.Conv2d): - kaiming_init(m) - elif isinstance(m, nn.BatchNorm2d): - constant_init(m, 1) - else: - raise TypeError('pretrained must be a str or None') - def forward(self, x): outs = [] for i, layer_name in enumerate(self.layers): diff --git a/mmseg/models/backbones/resnet.py b/mmseg/models/backbones/resnet.py index f6c4c08d47..e52e9122d7 100644 --- a/mmseg/models/backbones/resnet.py +++ b/mmseg/models/backbones/resnet.py @@ -1,16 +1,16 @@ +import warnings + import torch.nn as nn import torch.utils.checkpoint as cp -from mmcv.cnn import (build_conv_layer, build_norm_layer, build_plugin_layer, - constant_init, kaiming_init) -from mmcv.runner import load_checkpoint +from mmcv.cnn import build_conv_layer, build_norm_layer, build_plugin_layer +from mmcv.runner import BaseModule from mmcv.utils.parrots_wrapper import _BatchNorm -from mmseg.utils import get_root_logger from ..builder import BACKBONES from ..utils import ResLayer -class BasicBlock(nn.Module): +class BasicBlock(BaseModule): """Basic block for ResNet.""" expansion = 1 @@ -26,8 +26,9 @@ def __init__(self, conv_cfg=None, norm_cfg=dict(type='BN'), dcn=None, - plugins=None): - super(BasicBlock, self).__init__() + plugins=None, + init_cfg=None): + super(BasicBlock, self).__init__(init_cfg) assert dcn is None, 'Not implemented yet.' assert plugins is None, 'Not implemented yet.' @@ -94,7 +95,7 @@ def _inner_forward(x): return out -class Bottleneck(nn.Module): +class Bottleneck(BaseModule): """Bottleneck block for ResNet. If style is "pytorch", the stride-two layer is the 3x3 conv layer, if it is @@ -114,8 +115,9 @@ def __init__(self, conv_cfg=None, norm_cfg=dict(type='BN'), dcn=None, - plugins=None): - super(Bottleneck, self).__init__() + plugins=None, + init_cfg=None): + super(Bottleneck, self).__init__(init_cfg) assert style in ['pytorch', 'caffe'] assert dcn is None or isinstance(dcn, dict) assert plugins is None or isinstance(plugins, list) @@ -305,7 +307,7 @@ def _inner_forward(x): @BACKBONES.register_module() -class ResNet(nn.Module): +class ResNet(BaseModule): """ResNet backbone. Args: @@ -346,6 +348,9 @@ class ResNet(nn.Module): memory while slowing down the training speed. zero_init_residual (bool): Whether to use zero init for last norm layer in resblocks to let them behave as identity. + pretrained (str, optional): model pretrained path. Default: None + init_cfg (dict or list[dict], optional): Initialization config dict. + Default: None Example: >>> from mmseg.models import ResNet @@ -392,10 +397,46 @@ def __init__(self, multi_grid=None, contract_dilation=False, with_cp=False, - zero_init_residual=True): + zero_init_residual=True, + pretrained=None, + init_cfg=None): super(ResNet, self).__init__() if depth not in self.arch_settings: raise KeyError(f'invalid depth {depth} for resnet') + + self.pretrained = pretrained + self.zero_init_residual = zero_init_residual + block_init_cfg = None + assert not (init_cfg and pretrained), \ + 'init_cfg and pretrained cannot be setting at the same time' + if isinstance(pretrained, str): + warnings.warn('DeprecationWarning: pretrained is a deprecated, ' + 'please use "init_cfg" instead') + self.init_cfg = dict(type='Pretrained', checkpoint=pretrained) + elif pretrained is None: + if init_cfg is None: + self.init_cfg = [ + dict(type='Kaiming', layer='Conv2d'), + dict( + type='Constant', + val=1, + layer=['_BatchNorm', 'GroupNorm']) + ] + block = self.arch_settings[depth][0] + if self.zero_init_residual: + if block is BasicBlock: + block_init_cfg = dict( + type='Constant', + val=0, + override=dict(name='norm2')) + elif block is Bottleneck: + block_init_cfg = dict( + type='Constant', + val=0, + override=dict(name='norm3')) + else: + raise TypeError('pretrained must be a str or None') + self.depth = depth self.stem_channels = stem_channels self.base_channels = base_channels @@ -421,7 +462,6 @@ def __init__(self, self.plugins = plugins self.multi_grid = multi_grid self.contract_dilation = contract_dilation - self.zero_init_residual = zero_init_residual self.block, stage_blocks = self.arch_settings[depth] self.stage_blocks = stage_blocks[:num_stages] self.inplanes = stem_channels @@ -456,7 +496,8 @@ def __init__(self, dcn=dcn, plugins=stage_plugins, multi_grid=stage_multi_grid, - contract_dilation=contract_dilation) + contract_dilation=contract_dilation, + init_cfg=block_init_cfg) self.inplanes = planes * self.block.expansion layer_name = f'layer{i+1}' self.add_module(layer_name, res_layer) @@ -597,38 +638,6 @@ def _freeze_stages(self): for param in m.parameters(): param.requires_grad = False - def init_weights(self, pretrained=None): - """Initialize the weights in backbone. - - Args: - pretrained (str, optional): Path to pre-trained weights. - Defaults to None. - """ - if isinstance(pretrained, str): - logger = get_root_logger() - load_checkpoint(self, pretrained, strict=False, logger=logger) - elif pretrained is None: - for m in self.modules(): - if isinstance(m, nn.Conv2d): - kaiming_init(m) - elif isinstance(m, (_BatchNorm, nn.GroupNorm)): - constant_init(m, 1) - - if self.dcn is not None: - for m in self.modules(): - if isinstance(m, Bottleneck) and hasattr( - m, 'conv2_offset'): - constant_init(m.conv2_offset, 0) - - if self.zero_init_residual: - for m in self.modules(): - if isinstance(m, Bottleneck): - constant_init(m.norm3, 0) - elif isinstance(m, BasicBlock): - constant_init(m.norm2, 0) - else: - raise TypeError('pretrained must be a str or None') - def forward(self, x): """Forward function.""" if self.deep_stem: diff --git a/mmseg/models/backbones/unet.py b/mmseg/models/backbones/unet.py index 6cbda009df..a8cbe57f6c 100644 --- a/mmseg/models/backbones/unet.py +++ b/mmseg/models/backbones/unet.py @@ -1,11 +1,12 @@ +import warnings + import torch.nn as nn import torch.utils.checkpoint as cp from mmcv.cnn import (UPSAMPLE_LAYERS, ConvModule, build_activation_layer, - build_norm_layer, constant_init, kaiming_init) -from mmcv.runner import load_checkpoint + build_norm_layer) +from mmcv.runner import BaseModule from mmcv.utils.parrots_wrapper import _BatchNorm -from mmseg.utils import get_root_logger from ..builder import BACKBONES from ..utils import UpConvBlock @@ -219,7 +220,7 @@ def forward(self, x): @BACKBONES.register_module() -class UNet(nn.Module): +class UNet(BaseModule): """UNet backbone. U-Net: Convolutional Networks for Biomedical Image Segmentation. https://arxiv.org/pdf/1505.04597.pdf @@ -266,6 +267,9 @@ class UNet(nn.Module): dcn (bool): Use deformable convolution in convolutional layer or not. Default: None. plugins (dict): plugins for convolutional layers. Default: None. + pretrained (str, optional): model pretrained path. Default: None + init_cfg (dict or list[dict], optional): Initialization config dict. + Default: None Notice: The input image size should be divisible by the whole downsample rate @@ -291,8 +295,30 @@ def __init__(self, upsample_cfg=dict(type='InterpConv'), norm_eval=False, dcn=None, - plugins=None): - super(UNet, self).__init__() + plugins=None, + pretrained=None, + init_cfg=None): + super(UNet, self).__init__(init_cfg) + + self.pretrained = pretrained + assert not (init_cfg and pretrained), \ + 'init_cfg and pretrained cannot be setting at the same time' + if isinstance(pretrained, str): + warnings.warn('DeprecationWarning: pretrained is a deprecated, ' + 'please use "init_cfg" instead') + self.init_cfg = dict(type='Pretrained', checkpoint=pretrained) + elif pretrained is None: + if init_cfg is None: + self.init_cfg = [ + dict(type='Kaiming', layer='Conv2d'), + dict( + type='Constant', + val=1, + layer=['_BatchNorm', 'GroupNorm']) + ] + else: + raise TypeError('pretrained must be a str or None') + assert dcn is None, 'Not implemented yet.' assert plugins is None, 'Not implemented yet.' assert len(strides) == num_stages, \ @@ -408,22 +434,3 @@ def _check_input_divisible(self, x): f'downsample rate {whole_downsample_rate}, when num_stages is '\ f'{self.num_stages}, strides is {self.strides}, and downsamples '\ f'is {self.downsamples}.' - - def init_weights(self, pretrained=None): - """Initialize the weights in backbone. - - Args: - pretrained (str, optional): Path to pre-trained weights. - Defaults to None. - """ - if isinstance(pretrained, str): - logger = get_root_logger() - load_checkpoint(self, pretrained, strict=False, logger=logger) - elif pretrained is None: - for m in self.modules(): - if isinstance(m, nn.Conv2d): - kaiming_init(m) - elif isinstance(m, (_BatchNorm, nn.GroupNorm)): - constant_init(m, 1) - else: - raise TypeError('pretrained must be a str or None') diff --git a/mmseg/models/backbones/vit.py b/mmseg/models/backbones/vit.py index 781c9c1cce..b140700a9b 100644 --- a/mmseg/models/backbones/vit.py +++ b/mmseg/models/backbones/vit.py @@ -9,7 +9,7 @@ import torch.utils.checkpoint as cp from mmcv.cnn import (Conv2d, Linear, build_activation_layer, build_norm_layer, constant_init, kaiming_init, normal_init) -from mmcv.runner import _load_checkpoint +from mmcv.runner import BaseModule, _load_checkpoint from mmcv.utils.parrots_wrapper import _BatchNorm from mmseg.utils import get_root_logger @@ -203,7 +203,7 @@ def forward(self, x): @BACKBONES.register_module() -class VisionTransformer(nn.Module): +class VisionTransformer(BaseModule): """Vision transformer backbone. A PyTorch impl of : `An Image is Worth 16x16 Words: Transformers for @@ -243,6 +243,9 @@ class VisionTransformer(nn.Module): with_cp (bool): Use checkpoint or not. Using checkpoint will save some memory while slowing down the training speed. Default: False. + pretrained (str, optional): model pretrained path. Default: None + init_cfg (dict or list[dict], optional): Initialization config dict. + Default: None """ def __init__(self, @@ -266,8 +269,12 @@ def __init__(self, out_shape='NCHW', with_cls_token=True, interpolate_mode='bicubic', - with_cp=False): - super(VisionTransformer, self).__init__() + with_cp=False, + pretrained=None, + init_cfg=None): + super(VisionTransformer, self).__init__(init_cfg) + self.pretrained = pretrained + self.img_size = img_size self.patch_size = patch_size self.features = self.embed_dim = embed_dim @@ -319,7 +326,8 @@ def __init__(self, self.norm_eval = norm_eval self.with_cp = with_cp - def init_weights(self, pretrained=None): + def init_weights(self): + pretrained = self.pretrained if isinstance(pretrained, str): logger = get_root_logger() checkpoint = _load_checkpoint(pretrained, logger=logger) diff --git a/mmseg/models/decode_heads/decode_head.py b/mmseg/models/decode_heads/decode_head.py index 86b9b63f43..54d517f027 100644 --- a/mmseg/models/decode_heads/decode_head.py +++ b/mmseg/models/decode_heads/decode_head.py @@ -2,8 +2,7 @@ import torch import torch.nn as nn -from mmcv.cnn import normal_init -from mmcv.runner import auto_fp16, force_fp32 +from mmcv.runner import BaseModule, auto_fp16, force_fp32 from mmseg.core import build_pixel_sampler from mmseg.ops import resize @@ -11,7 +10,7 @@ from ..losses import accuracy -class BaseDecodeHead(nn.Module, metaclass=ABCMeta): +class BaseDecodeHead(BaseModule, metaclass=ABCMeta): """Base class for BaseDecodeHead. Args: @@ -41,6 +40,7 @@ class BaseDecodeHead(nn.Module, metaclass=ABCMeta): Default: None. align_corners (bool): align_corners argument of F.interpolate. Default: False. + init_cfg (dict or list[dict], optional): Initialization config dict. """ def __init__(self, @@ -60,8 +60,10 @@ def __init__(self, loss_weight=1.0), ignore_index=255, sampler=None, - align_corners=False): - super(BaseDecodeHead, self).__init__() + align_corners=False, + init_cfg=dict( + type='Normal', std=0.01, override=dict(name='conv_seg'))): + super(BaseDecodeHead, self).__init__(init_cfg) self._init_inputs(in_channels, in_index, input_transform) self.channels = channels self.num_classes = num_classes @@ -130,10 +132,6 @@ def _init_inputs(self, in_channels, in_index, input_transform): assert isinstance(in_index, int) self.in_channels = in_channels - def init_weights(self): - """Initialize weights of classification layer.""" - normal_init(self.conv_seg, mean=0, std=0.01) - def _transform_inputs(self, inputs): """Transform inputs for decoder. diff --git a/mmseg/models/decode_heads/point_head.py b/mmseg/models/decode_heads/point_head.py index 90a23635d9..f2d9fcc5a7 100644 --- a/mmseg/models/decode_heads/point_head.py +++ b/mmseg/models/decode_heads/point_head.py @@ -2,7 +2,7 @@ import torch import torch.nn as nn -from mmcv.cnn import ConvModule, normal_init +from mmcv.cnn import ConvModule from mmcv.ops import point_sample from mmseg.models.builder import HEADS @@ -69,6 +69,8 @@ def __init__(self, conv_cfg=conv_cfg, norm_cfg=norm_cfg, act_cfg=act_cfg, + init_cfg=dict( + type='Normal', std=0.01, override=dict(name='fc_seg')), **kwargs) self.num_fcs = num_fcs @@ -101,10 +103,6 @@ def __init__(self, self.dropout = nn.Dropout(self.dropout_ratio) delattr(self, 'conv_seg') - def init_weights(self): - """Initialize weights of classification layer.""" - normal_init(self.fc_seg, std=0.001) - def cls_seg(self, feat): """Classify each pixel with fc.""" if self.dropout is not None: diff --git a/mmseg/models/necks/fpn.py b/mmseg/models/necks/fpn.py index f43d1e62f6..4ba128ed48 100644 --- a/mmseg/models/necks/fpn.py +++ b/mmseg/models/necks/fpn.py @@ -1,12 +1,13 @@ import torch.nn as nn import torch.nn.functional as F -from mmcv.cnn import ConvModule, xavier_init +from mmcv.cnn import ConvModule +from mmcv.runner import BaseModule, auto_fp16 from ..builder import NECKS @NECKS.register_module() -class FPN(nn.Module): +class FPN(BaseModule): """Feature Pyramid Network. This is an implementation of - Feature Pyramid Networks for Object @@ -43,6 +44,7 @@ class FPN(nn.Module): Default: None. upsample_cfg (dict): Config dict for interpolate layer. Default: `dict(mode='nearest')` + init_cfg (dict or list[dict], optional): Initialization config dict. Example: >>> import torch @@ -73,8 +75,10 @@ def __init__(self, conv_cfg=None, norm_cfg=None, act_cfg=None, - upsample_cfg=dict(mode='nearest')): - super(FPN, self).__init__() + upsample_cfg=dict(mode='nearest'), + init_cfg=dict( + type='Xavier', layer='Conv2d', distribution='uniform')): + super(FPN, self).__init__(init_cfg) assert isinstance(in_channels, list) self.in_channels = in_channels self.out_channels = out_channels @@ -153,12 +157,7 @@ def __init__(self, inplace=False) self.fpn_convs.append(extra_fpn_conv) - # default init_weights for conv(msra) and norm in ConvModule - def init_weights(self): - for m in self.modules(): - if isinstance(m, nn.Conv2d): - xavier_init(m, distribution='uniform') - + @auto_fp16() def forward(self, inputs): assert len(inputs) == len(self.in_channels) diff --git a/mmseg/models/segmentors/base.py b/mmseg/models/segmentors/base.py index 7b53757537..0ace142ace 100644 --- a/mmseg/models/segmentors/base.py +++ b/mmseg/models/segmentors/base.py @@ -1,4 +1,3 @@ -import logging import warnings from abc import ABCMeta, abstractmethod from collections import OrderedDict @@ -7,17 +6,14 @@ import numpy as np import torch import torch.distributed as dist -import torch.nn as nn -from mmcv.runner import auto_fp16 +from mmcv.runner import BaseModule, auto_fp16 -class BaseSegmentor(nn.Module): +class BaseSegmentor(BaseModule, metaclass=ABCMeta): """Base class for segmentors.""" - __metaclass__ = ABCMeta - - def __init__(self): - super(BaseSegmentor, self).__init__() + def __init__(self, init_cfg=None): + super(BaseSegmentor, self).__init__(init_cfg) self.fp16_enabled = False @property @@ -62,17 +58,6 @@ def aug_test(self, imgs, img_metas, **kwargs): """Placeholder for augmentation test.""" pass - def init_weights(self, pretrained=None): - """Initialize the weights in segmentor. - - Args: - pretrained (str, optional): Path to pre-trained weights. - Defaults to None. - """ - if pretrained is not None: - logger = logging.getLogger() - logger.info(f'load model from: {pretrained}') - def forward_test(self, imgs, img_metas, **kwargs): """ Args: diff --git a/mmseg/models/segmentors/cascade_encoder_decoder.py b/mmseg/models/segmentors/cascade_encoder_decoder.py index 220ab2bb36..fb5a9aeb7b 100644 --- a/mmseg/models/segmentors/cascade_encoder_decoder.py +++ b/mmseg/models/segmentors/cascade_encoder_decoder.py @@ -24,7 +24,8 @@ def __init__(self, auxiliary_head=None, train_cfg=None, test_cfg=None, - pretrained=None): + pretrained=None, + init_cfg=None): self.num_stages = num_stages super(CascadeEncoderDecoder, self).__init__( backbone=backbone, @@ -33,7 +34,8 @@ def __init__(self, auxiliary_head=auxiliary_head, train_cfg=train_cfg, test_cfg=test_cfg, - pretrained=pretrained) + pretrained=pretrained, + init_cfg=init_cfg) def _init_decode_head(self, decode_head): """Initialize ``decode_head``""" @@ -45,23 +47,6 @@ def _init_decode_head(self, decode_head): self.align_corners = self.decode_head[-1].align_corners self.num_classes = self.decode_head[-1].num_classes - def init_weights(self, pretrained=None): - """Initialize the weights in backbone and heads. - - Args: - pretrained (str, optional): Path to pre-trained weights. - Defaults to None. - """ - self.backbone.init_weights(pretrained=pretrained) - for i in range(self.num_stages): - self.decode_head[i].init_weights() - if self.with_auxiliary_head: - if isinstance(self.auxiliary_head, nn.ModuleList): - for aux_head in self.auxiliary_head: - aux_head.init_weights() - else: - self.auxiliary_head.init_weights() - def encode_decode(self, img, img_metas): """Encode images with backbone and decode into a semantic segmentation map of the same size as input.""" diff --git a/mmseg/models/segmentors/encoder_decoder.py b/mmseg/models/segmentors/encoder_decoder.py index b2d067dcbe..04de3f4180 100644 --- a/mmseg/models/segmentors/encoder_decoder.py +++ b/mmseg/models/segmentors/encoder_decoder.py @@ -25,8 +25,13 @@ def __init__(self, auxiliary_head=None, train_cfg=None, test_cfg=None, - pretrained=None): - super(EncoderDecoder, self).__init__() + pretrained=None, + init_cfg=None): + super(EncoderDecoder, self).__init__(init_cfg) + if pretrained is not None: + assert backbone.get('pretrained') is None, \ + 'both backbone and segmentor set pretrained weight' + backbone.pretrained = pretrained self.backbone = builder.build_backbone(backbone) if neck is not None: self.neck = builder.build_neck(neck) @@ -36,8 +41,6 @@ def __init__(self, self.train_cfg = train_cfg self.test_cfg = test_cfg - self.init_weights(pretrained=pretrained) - assert self.with_decode_head def _init_decode_head(self, decode_head): @@ -56,24 +59,6 @@ def _init_auxiliary_head(self, auxiliary_head): else: self.auxiliary_head = builder.build_head(auxiliary_head) - def init_weights(self, pretrained=None): - """Initialize the weights in backbone and heads. - - Args: - pretrained (str, optional): Path to pre-trained weights. - Defaults to None. - """ - - super(EncoderDecoder, self).init_weights(pretrained) - self.backbone.init_weights(pretrained=pretrained) - self.decode_head.init_weights() - if self.with_auxiliary_head: - if isinstance(self.auxiliary_head, nn.ModuleList): - for aux_head in self.auxiliary_head: - aux_head.init_weights() - else: - self.auxiliary_head.init_weights() - def extract_feat(self, img): """Extract features from images.""" x = self.backbone(img) diff --git a/mmseg/models/utils/res_layer.py b/mmseg/models/utils/res_layer.py index 2585ab551a..9c474ede63 100644 --- a/mmseg/models/utils/res_layer.py +++ b/mmseg/models/utils/res_layer.py @@ -1,8 +1,9 @@ from mmcv.cnn import build_conv_layer, build_norm_layer +from mmcv.runner import Sequential from torch import nn as nn -class ResLayer(nn.Sequential): +class ResLayer(Sequential): """ResLayer to build ResNet style backbone. Args: diff --git a/tests/test_models/test_backbones/test_resnet.py b/tests/test_models/test_backbones/test_resnet.py index b95277ee4f..e0947dba71 100644 --- a/tests/test_models/test_backbones/test_resnet.py +++ b/tests/test_models/test_backbones/test_resnet.py @@ -300,8 +300,8 @@ def test_resnet_backbone(): with pytest.raises(TypeError): # pretrained must be a string path - model = ResNet(50) - model.init_weights(pretrained=0) + model = ResNet(50, pretrained=0) + model.init_weights() with pytest.raises(AssertionError): # Style must be in ['pytorch', 'caffe'] @@ -314,8 +314,9 @@ def test_resnet_backbone(): assert check_norm_state(model.modules(), False) # Test ResNet50 with torchvision pretrained weight - model = ResNet(depth=50, norm_eval=True) - model.init_weights('torchvision://resnet50') + model = ResNet( + depth=50, norm_eval=True, pretrained='torchvision://resnet50') + model.init_weights() model.train() assert check_norm_state(model.modules(), False) diff --git a/tests/test_models/test_backbones/test_unet.py b/tests/test_models/test_backbones/test_unet.py index b17b22a05d..defdf39216 100644 --- a/tests/test_models/test_backbones/test_unet.py +++ b/tests/test_models/test_backbones/test_unet.py @@ -734,7 +734,6 @@ def test_unet(): downsamples=(True, True, True, True), enc_dilations=(1, 1, 1, 1, 1), dec_dilations=(1, 1, 1, 1)) - print(unet) x = torch.randn(2, 3, 128, 128) x_outs = unet(x) assert x_outs[0].shape == torch.Size([2, 1024, 8, 8]) @@ -754,7 +753,6 @@ def test_unet(): downsamples=(True, True, True, False), enc_dilations=(1, 1, 1, 1, 1), dec_dilations=(1, 1, 1, 1)) - print(unet) x = torch.randn(2, 3, 128, 128) x_outs = unet(x) assert x_outs[0].shape == torch.Size([2, 1024, 16, 16]) @@ -774,7 +772,6 @@ def test_unet(): downsamples=(True, True, True, False), enc_dilations=(1, 1, 1, 1, 1), dec_dilations=(1, 1, 1, 1)) - print(unet) x = torch.randn(2, 3, 128, 128) x_outs = unet(x) assert x_outs[0].shape == torch.Size([2, 1024, 16, 16]) @@ -794,7 +791,6 @@ def test_unet(): downsamples=(True, True, False, False), enc_dilations=(1, 1, 1, 1, 1), dec_dilations=(1, 1, 1, 1)) - print(unet) x = torch.randn(2, 3, 128, 128) x_outs = unet(x) assert x_outs[0].shape == torch.Size([2, 1024, 32, 32]) @@ -813,9 +809,9 @@ def test_unet(): dec_num_convs=(2, 2, 2, 2), downsamples=(True, True, False, False), enc_dilations=(1, 1, 1, 1, 1), - dec_dilations=(1, 1, 1, 1)) - unet.init_weights(pretrained=None) - print(unet) + dec_dilations=(1, 1, 1, 1), + pretrained=None) + unet.init_weights() x = torch.randn(2, 3, 128, 128) x_outs = unet(x) assert x_outs[0].shape == torch.Size([2, 1024, 32, 32]) diff --git a/tests/test_models/test_forward.py b/tests/test_models/test_forward.py index ee8036246b..ea9d70b614 100644 --- a/tests/test_models/test_forward.py +++ b/tests/test_models/test_forward.py @@ -215,6 +215,7 @@ def _test_encoder_decoder_forward(cfg_file): from mmseg.models import build_segmentor segmentor = build_segmentor(model) + segmentor.init_weights() if isinstance(segmentor.decode_head, nn.ModuleList): num_classes = segmentor.decode_head[-1].num_classes diff --git a/tools/train.py b/tools/train.py index 69ca7335db..2d11df37ba 100644 --- a/tools/train.py +++ b/tools/train.py @@ -131,6 +131,7 @@ def main(): cfg.model, train_cfg=cfg.get('train_cfg'), test_cfg=cfg.get('test_cfg')) + model.init_weights() logger.info(model) From 7d52bc0caa34a6c2dc6674149112b16240d8ee71 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Wed, 16 Jun 2021 21:49:56 -0700 Subject: [PATCH 154/706] Bump to v0.14.1 (#604) --- README.md | 2 +- mmseg/version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index cb2dd86ad2..6b444d74f0 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ This project is released under the [Apache 2.0 license](LICENSE). ## Changelog -v0.14.0 was released in 06/02/2021. +v0.14.1 was released in 06/16/2021. Please refer to [changelog.md](docs/changelog.md) for details and release history. ## Benchmark and model zoo diff --git a/mmseg/version.py b/mmseg/version.py index 906660529d..3860421a46 100644 --- a/mmseg/version.py +++ b/mmseg/version.py @@ -1,6 +1,6 @@ # Copyright (c) Open-MMLab. All rights reserved. -__version__ = '0.14.0' +__version__ = '0.14.1' def parse_version_info(version_str): From 76e0d673e9a20540d393ddb11e80d0f1d2abda10 Mon Sep 17 00:00:00 2001 From: sennnnn <58427300+sennnnn@users.noreply.github.com> Date: Thu, 17 Jun 2021 22:57:46 +0800 Subject: [PATCH 155/706] [Feature] Move 'Install MMCV' to a independent CI item. (#602) * [Feature] Move 'Install MMCV' to a independent CI item. * Merge MMCV install into MMSEG dependencies install * Fix bug of 'Install MMCV' * Remove duplicate CI items * Fix torch device * Split cpu env and gpu env into two CI project * Fix some mmdet related bugs * Fix mmcv-full install bug of build_cpu CI project. --- .github/workflows/build.yml | 69 +++++++++++++++++++++++++------------ 1 file changed, 47 insertions(+), 22 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ac30118321..0136f2b4f8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,7 +22,41 @@ jobs: pip install interrogate interrogate -v --ignore-init-method --ignore-module --ignore-nested-functions --exclude mmseg/ops --ignore-regex "__repr__" --fail-under 80 mmseg - build: + build_cpu: + runs-on: ubuntu-18.04 + strategy: + matrix: + python-version: [ 3.6, 3.7 ] + torch: [ 1.3.0, 1.5.0 ] + include: + - torch: 1.3.0 + torchvision: 0.4.1 + - torch: 1.5.0 + torchvision: 0.6.0 + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install Pillow + if: ${{matrix.torchvision < 0.5}} + run: pip install Pillow==6.2.2 + - name: Install PyTorch + run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/torch_stable.html + - name: Install mmseg dependencies + run: | + pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cpu/torch${{matrix.torch}}/index.html + pip install -r requirements.txt + - name: Build and install + run: rm -rf .eggs && pip install -e . + - name: Run unittests and generate coverage report + run: | + coverage run --branch --source mmseg -m pytest tests/ + coverage xml + coverage report -m + + build_cuda: env: CUDA: 10.1.105-1 CUDA_SHORT: 10.1 @@ -33,23 +67,16 @@ jobs: strategy: matrix: python-version: [ 3.6, 3.7 ] - torch: [ 1.3.0+cpu, 1.5.0+cpu, 1.5.0+cu101, 1.6.0+cu101, 1.7.0+cu101, 1.8.0+cu101 ] + torch: [ 1.5.0, 1.6.0, 1.7.0, 1.8.0 ] include: - - torch: 1.3.0+cpu - torchvision: 0.4.1+cpu - - torch: 1.5.0+cpu - torchvision: 0.6.0+cpu - - torch: 1.5.0+cu101 - torchvision: 0.6.0+cu101 - - torch: 1.6.0+cu101 - torchvision: 0.7.0+cu101 - - torch: 1.7.0+cu101 - torchvision: 0.8.1+cu101 - - torch: 1.8.0+cu101 - torchvision: 0.9.0+cu101 - - torch: 1.8.0+cu101 - torchvision: 0.9.0+cu101 - + - torch: 1.5.0 + torchvision: 0.6.0 + - torch: 1.6.0 + torchvision: 0.7.0 + - torch: 1.7.0 + torchvision: 0.8.1 + - torch: 1.8.0 + torchvision: 0.9.0 steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} @@ -57,7 +84,6 @@ jobs: with: python-version: ${{ matrix.python-version }} - name: Install CUDA - if: ${{matrix.torch == '1.5.0+cu101' || matrix.torch == '1.6.0+cu101' || matrix.torch == '1.7.0+cu101' || matrix.torch == '1.8.0+cu101'}} run: | export INSTALLER=cuda-repo-${UBUNTU_VERSION}_${CUDA}_amd64.deb wget http://developer.download.nvidia.com/compute/cuda/repos/${UBUNTU_VERSION}/x86_64/${INSTALLER} @@ -72,13 +98,13 @@ jobs: export PATH=${CUDA_HOME}/bin:${PATH} sudo apt-get install -y ninja-build - name: Install Pillow - if: ${{matrix.torchvision == '0.4.1+cpu'}} + if: ${{matrix.torchvision < 0.5}} run: pip install Pillow==6.2.2 - name: Install PyTorch - run: pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html + run: pip install torch==${{matrix.torch}}+cu101 torchvision==${{matrix.torchvision}}+cu101 -f https://download.pytorch.org/whl/torch_stable.html - name: Install mmseg dependencies run: | - pip install mmcv-full==latest+torch${{matrix.torch}} -f https://download.openmmlab.com/mmcv/dist/index.html --use-deprecated=legacy-resolver + pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu101/torch${{matrix.torch}}/index.html pip install -r requirements.txt - name: Build and install run: rm -rf .eggs && pip install -e . @@ -89,7 +115,6 @@ jobs: coverage report -m # Only upload coverage report for python3.7 && pytorch1.5 - name: Upload coverage to Codecov - if: ${{matrix.torch == '1.8.0+cu101' && matrix.python-version == '3.7'}} uses: codecov/codecov-action@v1.0.10 with: file: ./coverage.xml From c01abb4f30ed45b15f142cb7ccb73675674a2648 Mon Sep 17 00:00:00 2001 From: sennnnn <58427300+sennnnn@users.noreply.github.com> Date: Fri, 18 Jun 2021 01:41:25 +0800 Subject: [PATCH 156/706] [Refactor] Using mmcv transformer bricks to refactor vit. (#571) * [Refactor] Using mmcv bricks to refactor vit * Follow the vit code structure from mmclassification * Add MMCV install into CI system. * Add to 'Install MMCV' CI item * Add 'Install MMCV_CPU' and 'Install MMCV_GPU CI' items * Fix & Add 1. Fix low code coverage of vit.py; 2. Remove HybirdEmbed; 3. Fix doc string of VisionTransformer; * Add helpers unit test. * Add converter to convert vit pretrain weights from timm style to mmcls style. * Clean some rebundant code and refactor init 1. Use timm style init_weights; 2. Remove to_xtuple and trunc_norm_; * Add comments for VisionTransformer.init_weights() * Add arg: pretrain_style to choose timm or mmcls vit pretrain weights. --- mmseg/models/backbones/vit.py | 484 +++++++++---------- mmseg/models/utils/__init__.py | 4 +- mmseg/models/utils/timm_convert.py | 33 ++ mmseg/models/utils/weight_init.py | 62 --- tests/test_models/test_backbones/test_vit.py | 20 +- 5 files changed, 276 insertions(+), 327 deletions(-) create mode 100644 mmseg/models/utils/timm_convert.py delete mode 100644 mmseg/models/utils/weight_init.py diff --git a/mmseg/models/backbones/vit.py b/mmseg/models/backbones/vit.py index b140700a9b..774f555c49 100644 --- a/mmseg/models/backbones/vit.py +++ b/mmseg/models/backbones/vit.py @@ -1,294 +1,257 @@ -"""Modified from https://github.com/rwightman/pytorch-image- -models/blob/master/timm/models/vision_transformer.py.""" - import math import torch import torch.nn as nn import torch.nn.functional as F -import torch.utils.checkpoint as cp -from mmcv.cnn import (Conv2d, Linear, build_activation_layer, build_norm_layer, - constant_init, kaiming_init, normal_init) -from mmcv.runner import BaseModule, _load_checkpoint -from mmcv.utils.parrots_wrapper import _BatchNorm +from mmcv.cnn import (build_conv_layer, build_norm_layer, constant_init, + kaiming_init, normal_init, trunc_normal_init) +from mmcv.cnn.bricks.transformer import FFN, MultiheadAttention +from mmcv.runner import _load_checkpoint +from mmcv.runner.base_module import BaseModule, ModuleList +from torch.nn.modules.batchnorm import _BatchNorm +from torch.nn.modules.utils import _pair as to_2tuple from mmseg.utils import get_root_logger from ..builder import BACKBONES -from ..utils import DropPath, trunc_normal_ +from ..utils import vit_convert -class Mlp(nn.Module): - """MLP layer for Encoder block. +class TransformerEncoderLayer(BaseModule): + """Implements one encoder layer in Vision Transformer. Args: - in_features(int): Input dimension for the first fully - connected layer. - hidden_features(int): Output dimension for the first fully - connected layer. - out_features(int): Output dementsion for the second fully - connected layer. - act_cfg(dict): Config dict for activation layer. - Default: dict(type='GELU'). - drop(float): Drop rate for the dropout layer. Dropout rate has - to be between 0 and 1. Default: 0. + embed_dims (int): The feature dimension + num_heads (int): Parallel attention heads + feedforward_channels (int): The hidden dimension for FFNs + drop_rate (float): Probability of an element to be zeroed + after the feed forward layer. Default 0.0 + attn_drop_rate (float): The drop out rate for attention layer. + Default 0.0 + drop_path_rate (float): stochastic depth rate. Default 0.0. + num_fcs (int): The number of fully-connected layers for FFNs. Default 2 + qkv_bias (bool): enable bias for qkv if True. Default True + act_cfg (dict): The activation config for FFNs. Defalut GELU + norm_cfg (dict): Config dict for normalization layer. Default + layer normalization + batch_first (bool): Key, Query and Value are shape of + (batch, n, embed_dim) + or (n, batch, embed_dim). Default to False. + init_cfg (dict, optional): Initialization config dict """ def __init__(self, - in_features, - hidden_features=None, - out_features=None, - act_cfg=dict(type='GELU'), - drop=0.): - super(Mlp, self).__init__() - out_features = out_features or in_features - hidden_features = hidden_features or in_features - self.fc1 = Linear(in_features, hidden_features) - self.act = build_activation_layer(act_cfg) - self.fc2 = Linear(hidden_features, out_features) - self.drop = nn.Dropout(drop) - - def forward(self, x): - x = self.fc1(x) - x = self.act(x) - x = self.drop(x) - x = self.fc2(x) - x = self.drop(x) - return x - - -class Attention(nn.Module): - """Attention layer for Encoder block. - - Args: - dim (int): Dimension for the input vector. - num_heads (int): Number of parallel attention heads. - qkv_bias (bool): Enable bias for qkv if True. Default: False. - qk_scale (float): Override default qk scale of head_dim ** -0.5 if set. - attn_drop (float): Drop rate for attention output weights. - Default: 0. - proj_drop (float): Drop rate for output weights. Default: 0. - """ - - def __init__(self, - dim, - num_heads=8, - qkv_bias=False, - qk_scale=None, - attn_drop=0., - proj_drop=0.): - super(Attention, self).__init__() - self.num_heads = num_heads - head_dim = dim // num_heads - self.scale = qk_scale or head_dim**-0.5 - - self.qkv = nn.Linear(dim, dim * 3, bias=qkv_bias) - self.attn_drop = nn.Dropout(attn_drop) - self.proj = Linear(dim, dim) - self.proj_drop = nn.Dropout(proj_drop) - - def forward(self, x): - b, n, c = x.shape - qkv = self.qkv(x).reshape(b, n, 3, self.num_heads, - c // self.num_heads).permute(2, 0, 3, 1, 4) - q, k, v = qkv[0], qkv[1], qkv[2] - - attn = (q @ k.transpose(-2, -1)) * self.scale - attn = attn.softmax(dim=-1) - attn = self.attn_drop(attn) - - x = (attn @ v).transpose(1, 2).reshape(b, n, c) - x = self.proj(x) - x = self.proj_drop(x) - return x - - -class Block(nn.Module): - """Implements encoder block with residual connection. - - Args: - dim (int): The feature dimension. - num_heads (int): Number of parallel attention heads. - mlp_ratio (int): Ratio of mlp hidden dim to embedding dim. - qk_scale (float): Override default qk scale of head_dim ** -0.5 if set. - drop (float): Drop rate for mlp output weights. Default: 0. - attn_drop (float): Drop rate for attention output weights. - Default: 0. - proj_drop (float): Drop rate for attn layer output weights. - Default: 0. - drop_path (float): Drop rate for paths of model. - Default: 0. - act_cfg (dict): Config dict for activation layer. - Default: dict(type='GELU'). - norm_cfg (dict): Config dict for normalization layer. - Default: dict(type='LN', requires_grad=True). - with_cp (bool): Use checkpoint or not. Using checkpoint will save some - memory while slowing down the training speed. Default: False. - """ - - def __init__(self, - dim, + embed_dims, num_heads, - mlp_ratio=4, - qkv_bias=False, - qk_scale=None, - drop=0., - attn_drop=0., - proj_drop=0., - drop_path=0., + feedforward_channels, + drop_rate=0., + attn_drop_rate=0., + drop_path_rate=0., + num_fcs=2, + qkv_bias=True, act_cfg=dict(type='GELU'), - norm_cfg=dict(type='LN', eps=1e-6), - with_cp=False): - super(Block, self).__init__() - self.with_cp = with_cp - _, self.norm1 = build_norm_layer(norm_cfg, dim) - self.attn = Attention(dim, num_heads, qkv_bias, qk_scale, attn_drop, - proj_drop) - self.drop_path = DropPath( - drop_path) if drop_path > 0. else nn.Identity() - _, self.norm2 = build_norm_layer(norm_cfg, dim) - mlp_hidden_dim = int(dim * mlp_ratio) - self.mlp = Mlp( - in_features=dim, - hidden_features=mlp_hidden_dim, - act_cfg=act_cfg, - drop=drop) + norm_cfg=dict(type='LN'), + batch_first=False): + super(TransformerEncoderLayer, self).__init__() + + self.norm1_name, norm1 = build_norm_layer( + norm_cfg, embed_dims, postfix=1) + self.add_module(self.norm1_name, norm1) + + self.attn = MultiheadAttention( + embed_dims=embed_dims, + num_heads=num_heads, + attn_drop=attn_drop_rate, + proj_drop=drop_rate, + dropout_layer=dict(type='DropPath', drop_prob=drop_path_rate), + batch_first=batch_first, + bias=qkv_bias) + + self.norm2_name, norm2 = build_norm_layer( + norm_cfg, embed_dims, postfix=2) + self.add_module(self.norm2_name, norm2) + + self.ffn = FFN( + embed_dims=embed_dims, + feedforward_channels=feedforward_channels, + num_fcs=num_fcs, + ffn_drop=drop_rate, + dropout_layer=None, + act_cfg=act_cfg) + + @property + def norm1(self): + return getattr(self, self.norm1_name) + + @property + def norm2(self): + return getattr(self, self.norm2_name) def forward(self, x): - - def _inner_forward(x): - out = x + self.drop_path(self.attn(self.norm1(x))) - out = out + self.drop_path(self.mlp(self.norm2(out))) - return out - - if self.with_cp and x.requires_grad: - out = cp.checkpoint(_inner_forward, x) - else: - out = _inner_forward(x) - - return out + x = self.attn(self.norm1(x), identity=x) + x = self.ffn(self.norm2(x), identity=x) + return x -class PatchEmbed(nn.Module): +# Modified from pytorch-image-models +class PatchEmbed(BaseModule): """Image to Patch Embedding. Args: - img_size (int | tuple): Input image size. - default: 224. - patch_size (int): Width and height for a patch. - default: 16. - in_channels (int): Input channels for images. Default: 3. - embed_dim (int): The embedding dimension. Default: 768. + img_size (int | tuple): The size of input image. + patch_size (int): The size of one patch + in_channels (int): The num of input channels. + embed_dim (int): The dimensions of embedding. + norm_cfg (dict, optional): Config dict for normalization layer. + conv_cfg (dict, optional): The config dict for conv layers. + Default: None. """ def __init__(self, img_size=224, patch_size=16, in_channels=3, - embed_dim=768): + embed_dim=768, + norm_cfg=None, + conv_cfg=None): super(PatchEmbed, self).__init__() - if isinstance(img_size, int): - self.img_size = (img_size, img_size) - elif isinstance(img_size, tuple): - self.img_size = img_size + + self.img_size = img_size + self.patch_size = to_2tuple(patch_size) + + patches_resolution = [ + img_size[0] // self.patch_size[0], + img_size[1] // self.patch_size[1] + ] + num_patches = patches_resolution[0] * patches_resolution[1] + self.patches_resolution = patches_resolution + self.num_patches = num_patches + + # Use conv layer to embed + self.projection = build_conv_layer( + conv_cfg, + in_channels, + embed_dim, + kernel_size=patch_size, + stride=patch_size) + + if norm_cfg is not None: + self.norm = build_norm_layer(norm_cfg, embed_dim)[1] else: - raise TypeError('img_size must be type of int or tuple') - h, w = self.img_size - self.patch_size = (patch_size, patch_size) - self.num_patches = (h // patch_size) * (w // patch_size) - self.proj = Conv2d( - in_channels, embed_dim, kernel_size=patch_size, stride=patch_size) + self.norm = None def forward(self, x): - return self.proj(x).flatten(2).transpose(1, 2) + B, C, H, W = x.shape + # FIXME look at relaxing size constraints + # assert H == self.img_size[0] and W == self.img_size[1], \ + # f"Input image size ({H}*{W}) doesn't " \ + # f'match model ({self.img_size[0]}*{self.img_size[1]}).' + # The output size is (B, N, D), where N=H*W/P/P, D is embid_dim + x = self.projection(x).flatten(2).transpose(1, 2) + + if self.norm is not None: + x = self.norm(x) + + return x @BACKBONES.register_module() class VisionTransformer(BaseModule): - """Vision transformer backbone. + """Vision Transformer. - A PyTorch impl of : `An Image is Worth 16x16 Words: Transformers for - Image Recognition at Scale` - https://arxiv.org/abs/2010.11929 + A PyTorch implement of : `An Image is Worth 16x16 Words: + Transformers for Image Recognition at Scale` - + https://arxiv.org/abs/2010.11929 Args: - img_size (tuple): input image size. Default: (224, 224). - patch_size (int, tuple): patch size. Default: 16. - in_channels (int): number of input channels. Default: 3. - embed_dim (int): embedding dimension. Default: 768. - depth (int): depth of transformer. Default: 12. + img_size (int | tuple): Input image size. Default: 224. + patch_size (int): The patch size. Default: 16. + in_channels (int): Number of input channels. Default: 3. + embed_dims (int): embedding dimension. Default: 768. + num_layers (int): depth of transformer. Default: 12. num_heads (int): number of attention heads. Default: 12. mlp_ratio (int): ratio of mlp hidden dim to embedding dim. Default: 4. out_indices (list | tuple | int): Output from which stages. Default: -1. qkv_bias (bool): enable bias for qkv if True. Default: True. - qk_scale (float): override default qk scale of head_dim ** -0.5 if set. - drop_rate (float): dropout rate. Default: 0. - attn_drop_rate (float): attention dropout rate. Default: 0. - drop_path_rate (float): Rate of DropPath. Default: 0. + drop_rate (float): Probability of an element to be zeroed. + Default 0.0 + attn_drop_rate (float): The drop out rate for attention layer. + Default 0.0 + drop_path_rate (float): stochastic depth rate. Default 0.0 + with_cls_token (bool): If concatenating class token into image tokens + as transformer input. Default: True. norm_cfg (dict): Config dict for normalization layer. - Default: dict(type='LN', eps=1e-6, requires_grad=True). - act_cfg (dict): Config dict for activation layer. - Default: dict(type='GELU'). - norm_eval (bool): Whether to set norm layers to eval mode, namely, - freeze running stats (mean and var). Note: Effect on Batch Norm - and its variants only. Default: False. + Default: dict(type='LN') + act_cfg (dict): The activation config for FFNs. + Defalut: dict(type='GELU'). final_norm (bool): Whether to add a additional layer to normalize final feature map. Default: False. - out_reshape (str): Select the output format of feature information. - Default: NCHW. interpolate_mode (str): Select the interpolate mode for position embeding vector resize. Default: bicubic. - with_cls_token (bool): If concatenating class token into image tokens - as transformer input. Default: True. - with_cp (bool): Use checkpoint or not. Using checkpoint - will save some memory while slowing down the training speed. - Default: False. - pretrained (str, optional): model pretrained path. Default: None - init_cfg (dict or list[dict], optional): Initialization config dict. - Default: None + num_fcs (int): The number of fully-connected layers for FFNs. + Default: 2. + norm_eval (bool): Whether to set norm layers to eval mode, namely, + freeze running stats (mean and var). Note: Effect on Batch Norm + and its variants only. Default: False. + with_cp (bool): Use checkpoint or not. Using checkpoint will save + some memory while slowing down the training speed. Default: False. + pretrain_style (str): Choose to use timm or mmcls pretrain weights. + Default: timm. """ def __init__(self, - img_size=(224, 224), + img_size=224, patch_size=16, in_channels=3, - embed_dim=768, - depth=12, + embed_dims=768, + num_layers=12, num_heads=12, mlp_ratio=4, out_indices=11, qkv_bias=True, - qk_scale=None, drop_rate=0., attn_drop_rate=0., drop_path_rate=0., - norm_cfg=dict(type='LN', eps=1e-6, requires_grad=True), + with_cls_token=True, + norm_cfg=dict(type='LN'), act_cfg=dict(type='GELU'), - norm_eval=False, final_norm=False, - out_shape='NCHW', - with_cls_token=True, interpolate_mode='bicubic', + num_fcs=2, + norm_eval=False, with_cp=False, - pretrained=None, - init_cfg=None): - super(VisionTransformer, self).__init__(init_cfg) - self.pretrained = pretrained + pretrain_style='timm'): + super(VisionTransformer, self).__init__() + + if isinstance(img_size, int): + img_size = to_2tuple(img_size) + elif isinstance(img_size, tuple): + if len(img_size) == 1: + img_size = to_2tuple(img_size[0]) + assert len(img_size) == 2, \ + f'The size of image should have length 1 or 2, ' \ + f'but got {len(img_size)}' + assert pretrain_style in ['timm', 'mmcls'] + + self.pretrain_style = pretrain_style self.img_size = img_size self.patch_size = patch_size - self.features = self.embed_dim = embed_dim + self.patch_embed = PatchEmbed( img_size=img_size, patch_size=patch_size, in_channels=in_channels, - embed_dim=embed_dim) + embed_dim=embed_dims, + norm_cfg=norm_cfg) + num_patches = self.patch_embed.num_patches self.with_cls_token = with_cls_token - self.cls_token = nn.Parameter(torch.zeros(1, 1, self.embed_dim)) + self.cls_token = nn.Parameter(torch.zeros(1, 1, embed_dims)) self.pos_embed = nn.Parameter( - torch.zeros(1, self.patch_embed.num_patches + 1, embed_dim)) - self.pos_drop = nn.Dropout(p=drop_rate) + torch.zeros(1, num_patches + 1, embed_dims)) + self.drop_after_pos = nn.Dropout(p=drop_rate) if isinstance(out_indices, int): self.out_indices = [out_indices] @@ -297,37 +260,41 @@ def __init__(self, else: raise TypeError('out_indices must be type of int, list or tuple') - dpr = [x.item() for x in torch.linspace(0, drop_path_rate, depth) - ] # stochastic depth decay rule - self.blocks = nn.ModuleList([ - Block( - dim=embed_dim, - num_heads=num_heads, - mlp_ratio=mlp_ratio, - qkv_bias=qkv_bias, - qk_scale=qk_scale, - drop=dpr[i], - attn_drop=attn_drop_rate, - act_cfg=act_cfg, - norm_cfg=norm_cfg, - with_cp=with_cp) for i in range(depth) - ]) - - assert out_shape in ['NLC', - 'NCHW'], 'output shape must be "NLC" or "NCHW".' - - self.out_shape = out_shape + dpr = [ + x.item() for x in torch.linspace(0, drop_path_rate, num_layers) + ] # stochastic depth decay rule + + self.layers = ModuleList() + for i in range(num_layers): + self.layers.append( + TransformerEncoderLayer( + embed_dims=embed_dims, + num_heads=num_heads, + feedforward_channels=mlp_ratio * embed_dims, + attn_drop_rate=attn_drop_rate, + drop_rate=drop_rate, + drop_path_rate=dpr[i], + num_fcs=num_fcs, + qkv_bias=qkv_bias, + act_cfg=act_cfg, + norm_cfg=norm_cfg, + batch_first=True)) self.interpolate_mode = interpolate_mode self.final_norm = final_norm if final_norm: - _, self.norm = build_norm_layer(norm_cfg, embed_dim) + self.norm1_name, norm1 = build_norm_layer( + norm_cfg, embed_dims, postfix=1) + self.add_module(self.norm1_name, norm1) self.norm_eval = norm_eval self.with_cp = with_cp - def init_weights(self): - pretrained = self.pretrained + @property + def norm1(self): + return getattr(self, self.norm1_name) + + def init_weights(self, pretrained=None): if isinstance(pretrained, str): logger = get_root_logger() checkpoint = _load_checkpoint(pretrained, logger=logger) @@ -338,10 +305,17 @@ def init_weights(self): else: state_dict = checkpoint + if self.pretrain_style == 'timm': + # Because the refactor of vit is blocked by mmcls, + # so we firstly use timm pretrain weights to train + # downstream model. + state_dict = vit_convert(state_dict) + if 'pos_embed' in state_dict.keys(): if self.pos_embed.shape != state_dict['pos_embed'].shape: - logger.info(msg=f'Resize the pos_embed shape from \ -{state_dict["pos_embed"].shape} to {self.pos_embed.shape}') + logger.info(msg=f'Resize the pos_embed shape from ' + f'{state_dict["pos_embed"].shape} to ' + f'{self.pos_embed.shape}') h, w = self.img_size pos_size = int( math.sqrt(state_dict['pos_embed'].shape[1] - 1)) @@ -354,17 +328,17 @@ def init_weights(self): elif pretrained is None: # We only implement the 'jax_impl' initialization implemented at # https://github.com/rwightman/pytorch-image-models/blob/master/timm/models/vision_transformer.py#L353 # noqa: E501 - trunc_normal_(self.pos_embed, std=.02) - trunc_normal_(self.cls_token, std=.02) + trunc_normal_init(self.pos_embed, std=.02) + trunc_normal_init(self.cls_token, std=.02) for n, m in self.named_modules(): - if isinstance(m, Linear): - trunc_normal_(m.weight, std=.02) + if isinstance(m, nn.Linear): + trunc_normal_init(m.weight, std=.02) if m.bias is not None: - if 'mlp' in n: + if 'ffn' in n: normal_init(m.bias, std=1e-6) else: constant_init(m.bias, 0) - elif isinstance(m, Conv2d): + elif isinstance(m, nn.Conv2d): kaiming_init(m.weight, mode='fan_in') if m.bias is not None: constant_init(m.bias, 0) @@ -404,7 +378,7 @@ def _pos_embeding(self, img, patched_img, pos_embed): pos_embed = self.resize_pos_embed(pos_embed, img.shape[2:], (pos_h, pos_w), self.patch_size, self.interpolate_mode) - return self.pos_drop(patched_img + pos_embed) + return self.drop_after_pos(patched_img + pos_embed) @staticmethod def resize_pos_embed(pos_embed, input_shpae, pos_shape, patch_size, mode): @@ -441,31 +415,31 @@ def forward(self, inputs): x = self.patch_embed(inputs) + # stole cls_tokens impl from Phil Wang, thanks cls_tokens = self.cls_token.expand(B, -1, -1) x = torch.cat((cls_tokens, x), dim=1) x = self._pos_embeding(inputs, x, self.pos_embed) if not self.with_cls_token: - # Remove class token for transformer input + # Remove class token for transformer encoder input x = x[:, 1:] outs = [] - for i, blk in enumerate(self.blocks): - x = blk(x) - if i == len(self.blocks) - 1: + for i, layer in enumerate(self.layers): + x = layer(x) + if i == len(self.layers) - 1: if self.final_norm: - x = self.norm(x) + x = self.norm1(x) if i in self.out_indices: if self.with_cls_token: # Remove class token and reshape token for decoder head out = x[:, 1:] else: out = x - if self.out_shape == 'NCHW': - B, _, C = out.shape - out = out.reshape(B, inputs.shape[2] // self.patch_size, - inputs.shape[3] // self.patch_size, - C).permute(0, 3, 1, 2) + B, _, C = out.shape + out = out.reshape(B, inputs.shape[2] // self.patch_size, + inputs.shape[3] // self.patch_size, + C).permute(0, 3, 1, 2) outs.append(out) return tuple(outs) diff --git a/mmseg/models/utils/__init__.py b/mmseg/models/utils/__init__.py index 3d3bdd349b..be11d77f4e 100644 --- a/mmseg/models/utils/__init__.py +++ b/mmseg/models/utils/__init__.py @@ -4,10 +4,10 @@ from .res_layer import ResLayer from .se_layer import SELayer from .self_attention_block import SelfAttentionBlock +from .timm_convert import vit_convert from .up_conv_block import UpConvBlock -from .weight_init import trunc_normal_ __all__ = [ 'ResLayer', 'SelfAttentionBlock', 'make_divisible', 'InvertedResidual', - 'UpConvBlock', 'InvertedResidualV3', 'SELayer', 'DropPath', 'trunc_normal_' + 'UpConvBlock', 'InvertedResidualV3', 'SELayer', 'DropPath', 'vit_convert' ] diff --git a/mmseg/models/utils/timm_convert.py b/mmseg/models/utils/timm_convert.py new file mode 100644 index 0000000000..f9a4d31109 --- /dev/null +++ b/mmseg/models/utils/timm_convert.py @@ -0,0 +1,33 @@ +from collections import OrderedDict + + +def vit_convert(timm_dict): + + mmseg_dict = OrderedDict() + + for k, v in timm_dict.items(): + if k.startswith('head'): + continue + if k.startswith('norm'): + new_k = k.replace('norm.', 'ln1.') + elif k.startswith('patch_embed'): + if 'proj' in k: + new_k = k.replace('proj', 'projection') + elif k.startswith('blocks'): + new_k = k.replace('blocks.', 'layers.') + if 'norm' in new_k: + new_k = new_k.replace('norm', 'ln') + elif 'mlp.fc1' in new_k: + new_k = new_k.replace('mlp.fc1', 'ffn.layers.0.0') + elif 'mlp.fc2' in new_k: + new_k = new_k.replace('mlp.fc2', 'ffn.layers.1') + elif 'attn.qkv' in new_k: + new_k = new_k.replace('attn.qkv.', 'attn.attn.in_proj_') + elif 'attn.proj' in new_k: + new_k = new_k.replace('attn.proj', 'attn.attn.out_proj') + else: + new_k = k + new_k = f'backbone.{new_k}' + mmseg_dict[new_k] = v + + return mmseg_dict diff --git a/mmseg/models/utils/weight_init.py b/mmseg/models/utils/weight_init.py deleted file mode 100644 index 38141ba3d6..0000000000 --- a/mmseg/models/utils/weight_init.py +++ /dev/null @@ -1,62 +0,0 @@ -"""Modified from https://github.com/rwightman/pytorch-image- -models/blob/master/timm/models/layers/drop.py.""" - -import math -import warnings - -import torch - - -def _no_grad_trunc_normal_(tensor, mean, std, a, b): - """Reference: https://people.sc.fsu.edu/~jburkardt/presentations - /truncated_normal.pdf""" - - def norm_cdf(x): - # Computes standard normal cumulative distribution function - return (1. + math.erf(x / math.sqrt(2.))) / 2. - - if (mean < a - 2 * std) or (mean > b + 2 * std): - warnings.warn( - 'mean is more than 2 std from [a, b] in nn.init.trunc_normal_. ' - 'The distribution of values may be incorrect.', - stacklevel=2) - - with torch.no_grad(): - # Values are generated by using a truncated uniform distribution and - # then using the inverse CDF for the normal distribution. - # Get upper and lower cdf values - lower_bound = norm_cdf((a - mean) / std) - upper_bound = norm_cdf((b - mean) / std) - - # Uniformly fill tensor with values from [l, u], then translate to - # [2l-1, 2u-1]. - tensor.uniform_(2 * lower_bound - 1, 2 * upper_bound - 1) - - # Use inverse cdf transform for normal distribution to get truncated - # standard normal - tensor.erfinv_() - - # Transform to proper mean, std - tensor.mul_(std * math.sqrt(2.)) - tensor.add_(mean) - - # Clamp to ensure it's in the proper range - tensor.clamp_(min=a, max=b) - return tensor - - -def trunc_normal_(tensor, mean=0., std=1., a=-2., b=2.): - r"""Fills the input Tensor with values drawn from a truncated - normal distribution. The values are effectively drawn from the - normal distribution :math:`\mathcal{N}(\text{mean}, \text{std}^2)` - with values outside :math:`[a, b]` redrawn until they are within - the bounds. The method used for generating the random values works - best when :math:`a \leq \text{mean} \leq b`. - Args: - tensor (``torch.Tensor``): an n-dimensional `torch.Tensor` - mean (float): the mean of the normal distribution - std (float): the standard deviation of the normal distribution - a (float): the minimum cutoff value - b (float): the maximum cutoff value - """ - return _no_grad_trunc_normal_(tensor, mean, std, a, b) diff --git a/tests/test_models/test_backbones/test_vit.py b/tests/test_models/test_backbones/test_vit.py index 1ec42d34ea..452eee05d8 100644 --- a/tests/test_models/test_backbones/test_vit.py +++ b/tests/test_models/test_backbones/test_vit.py @@ -24,19 +24,18 @@ def test_vit_backbone(): x = torch.randn(1, 196) VisionTransformer.resize_pos_embed(x, 512, 512, 224, 224, 'bilinear') - with pytest.raises(RuntimeError): + with pytest.raises(ValueError): # forward inputs must be [N, C, H, W] x = torch.randn(3, 30, 30) model = VisionTransformer() model(x) with pytest.raises(AssertionError): - # out_shape must be 'NLC' or 'NCHW;' - VisionTransformer(out_shape='NCL') + VisionTransformer(img_size=(224, 224, 224)) - # Test img_size isinstance int + # Test img_size isinstance tuple imgs = torch.randn(1, 3, 224, 224) - model = VisionTransformer(img_size=224) + model = VisionTransformer(img_size=(224, 224)) model.init_weights() model(imgs) @@ -65,6 +64,11 @@ def test_vit_backbone(): feat = model(imgs) assert feat[-1].shape == (1, 768, 14, 14) + # Test unbalanced size input image + imgs = torch.randn(1, 3, 112, 224) + feat = model(imgs) + assert feat[-1].shape == (1, 768, 7, 14) + # Test with_cp=True model = VisionTransformer(with_cp=True) imgs = torch.randn(1, 3, 224, 224) @@ -77,8 +81,8 @@ def test_vit_backbone(): feat = model(imgs) assert feat[-1].shape == (1, 768, 14, 14) - # Test final reshape arg + # Test final norm + model = VisionTransformer(final_norm=True) imgs = torch.randn(1, 3, 224, 224) - model = VisionTransformer(out_shape='NLC') feat = model(imgs) - assert feat[-1].shape == (1, 196, 768) + assert feat[-1].shape == (1, 768, 14, 14) From ec0e38011a3579137d6319f3bae1d2fc679750bd Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Sat, 19 Jun 2021 02:58:55 +0800 Subject: [PATCH 157/706] fix typo and link (#608) Co-authored-by: hejunjun --- README.md | 2 +- docs/get_started.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6b444d74f0..4b1eade1d2 100644 --- a/README.md +++ b/README.md @@ -92,7 +92,7 @@ Supported methods: ## Installation -Please refer to [get_started.md](docs/get_started.md#installation) for installation and dataset preparation. +Please refer to [get_started.md](docs/get_started.md#installation) for installation and [dataset_prepare.md](docs/dataset_prepare.md#prepare-datasets) for dataset preparation. ## Get Started diff --git a/docs/get_started.md b/docs/get_started.md index aa6c7fe5b8..23e6a52866 100644 --- a/docs/get_started.md +++ b/docs/get_started.md @@ -162,7 +162,7 @@ PYTHONPATH="$(dirname $0)/..":$PYTHONPATH ## Verification -To verify whether MMSegmentation and the required environment are installed correctly, we can run sample python codes to initialize a detector and inference a demo image: +To verify whether MMSegmentation and the required environment are installed correctly, we can run sample python codes to initialize a segmentor and inference a demo image: ```python from mmseg.apis import inference_segmentor, init_segmentor From 9249dbaeb082838aa4bd09d7649965483565c9f5 Mon Sep 17 00:00:00 2001 From: Amrit Krishnan Date: Sat, 19 Jun 2021 11:31:19 -0400 Subject: [PATCH 158/706] Add fixes to Dockerfile (#607) --- docker/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 8e090f73a9..7481b3a969 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -16,7 +16,7 @@ RUN apt-get update && apt-get install -y git ninja-build libglib2.0-0 libsm6 lib RUN conda clean --all RUN pip install mmcv-full==latest+torch1.6.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html -RUN git clone https://github.com/open-mmlab/mmsegmenation.git /mmsegmentation +RUN git clone https://github.com/open-mmlab/mmsegmentation.git /mmsegmentation WORKDIR /mmsegmentation -RUN pip install -r requirements/build.txt +RUN pip install -r requirements.txt RUN pip install --no-cache-dir -e . From 2a9bf2d21bb48ba5f7461f6e107f0a7846697ad6 Mon Sep 17 00:00:00 2001 From: sennnnn <58427300+sennnnn@users.noreply.github.com> Date: Sun, 20 Jun 2021 06:53:13 +0800 Subject: [PATCH 159/706] [Fix] Fix some vit init bugs (#609) * [Fix] Fix vit init bug * Add some vit unit tests * Modify module import * Fix pretrain weights bug * Modify pretrained judge * Add some unit tests to improve code cov * Optimize code * Fix vit unit test --- mmseg/models/backbones/vit.py | 69 ++++++++++++-------- mmseg/models/utils/timm_convert.py | 1 - tests/test_models/test_backbones/test_vit.py | 35 +++++++++- 3 files changed, 76 insertions(+), 29 deletions(-) diff --git a/mmseg/models/backbones/vit.py b/mmseg/models/backbones/vit.py index 774f555c49..a0b945bb23 100644 --- a/mmseg/models/backbones/vit.py +++ b/mmseg/models/backbones/vit.py @@ -1,4 +1,5 @@ import math +import warnings import torch import torch.nn as nn @@ -6,8 +7,7 @@ from mmcv.cnn import (build_conv_layer, build_norm_layer, constant_init, kaiming_init, normal_init, trunc_normal_init) from mmcv.cnn.bricks.transformer import FFN, MultiheadAttention -from mmcv.runner import _load_checkpoint -from mmcv.runner.base_module import BaseModule, ModuleList +from mmcv.runner import BaseModule, ModuleList, _load_checkpoint from torch.nn.modules.batchnorm import _BatchNorm from torch.nn.modules.utils import _pair as to_2tuple @@ -140,12 +140,6 @@ def __init__(self, self.norm = None def forward(self, x): - B, C, H, W = x.shape - # FIXME look at relaxing size constraints - # assert H == self.img_size[0] and W == self.img_size[1], \ - # f"Input image size ({H}*{W}) doesn't " \ - # f'match model ({self.img_size[0]}*{self.img_size[1]}).' - # The output size is (B, N, D), where N=H*W/P/P, D is embid_dim x = self.projection(x).flatten(2).transpose(1, 2) if self.norm is not None: @@ -185,8 +179,12 @@ class VisionTransformer(BaseModule): Default: dict(type='LN') act_cfg (dict): The activation config for FFNs. Defalut: dict(type='GELU'). - final_norm (bool): Whether to add a additional layer to normalize + patch_norm (bool): Whether to add a norm in PatchEmbed Block. + Default: False. + final_norm (bool): Whether to add a additional layer to normalize final feature map. Default: False. + out_shape (str): Select the output format of feature information. + Default: NCHW. interpolate_mode (str): Select the interpolate mode for position embeding vector resize. Default: bicubic. num_fcs (int): The number of fully-connected layers for FFNs. @@ -198,6 +196,9 @@ class VisionTransformer(BaseModule): some memory while slowing down the training speed. Default: False. pretrain_style (str): Choose to use timm or mmcls pretrain weights. Default: timm. + pretrained (str, optional): model pretrained path. Default: None. + init_cfg (dict or list[dict], optional): Initialization config dict. + Default: None. """ def __init__(self, @@ -216,12 +217,16 @@ def __init__(self, with_cls_token=True, norm_cfg=dict(type='LN'), act_cfg=dict(type='GELU'), + patch_norm=False, final_norm=False, + out_shape='NCHW', interpolate_mode='bicubic', num_fcs=2, norm_eval=False, with_cp=False, - pretrain_style='timm'): + pretrain_style='timm', + pretrained=None, + init_cfg=None): super(VisionTransformer, self).__init__() if isinstance(img_size, int): @@ -235,16 +240,32 @@ def __init__(self, assert pretrain_style in ['timm', 'mmcls'] - self.pretrain_style = pretrain_style + assert out_shape in ['NLC', + 'NCHW'], 'output shape must be "NLC" or "NCHW".' + + if isinstance(pretrained, str) or pretrained is None: + warnings.warn('DeprecationWarning: pretrained is a deprecated, ' + 'please use "init_cfg" instead') + else: + raise TypeError('pretrained must be a str or None') + self.img_size = img_size self.patch_size = patch_size + self.out_shape = out_shape + self.interpolate_mode = interpolate_mode + self.norm_eval = norm_eval + self.with_cp = with_cp + self.pretrain_style = pretrain_style + self.pretrained = pretrained + self.init_cfg = init_cfg self.patch_embed = PatchEmbed( img_size=img_size, patch_size=patch_size, in_channels=in_channels, embed_dim=embed_dims, - norm_cfg=norm_cfg) + norm_cfg=norm_cfg if patch_norm else None) + num_patches = self.patch_embed.num_patches self.with_cls_token = with_cls_token @@ -280,24 +301,20 @@ def __init__(self, norm_cfg=norm_cfg, batch_first=True)) - self.interpolate_mode = interpolate_mode self.final_norm = final_norm if final_norm: self.norm1_name, norm1 = build_norm_layer( norm_cfg, embed_dims, postfix=1) self.add_module(self.norm1_name, norm1) - self.norm_eval = norm_eval - self.with_cp = with_cp - @property def norm1(self): return getattr(self, self.norm1_name) - def init_weights(self, pretrained=None): - if isinstance(pretrained, str): + def init_weights(self): + if isinstance(self.pretrained, str): logger = get_root_logger() - checkpoint = _load_checkpoint(pretrained, logger=logger) + checkpoint = _load_checkpoint(self.pretrained, logger=logger) if 'state_dict' in checkpoint: state_dict = checkpoint['state_dict'] elif 'model' in checkpoint: @@ -325,7 +342,8 @@ def init_weights(self, pretrained=None): self.load_state_dict(state_dict, False) - elif pretrained is None: + elif self.pretrained is None: + super(VisionTransformer, self).init_weights() # We only implement the 'jax_impl' initialization implemented at # https://github.com/rwightman/pytorch-image-models/blob/master/timm/models/vision_transformer.py#L353 # noqa: E501 trunc_normal_init(self.pos_embed, std=.02) @@ -345,8 +363,6 @@ def init_weights(self, pretrained=None): elif isinstance(m, (_BatchNorm, nn.GroupNorm, nn.LayerNorm)): constant_init(m.bias, 0) constant_init(m.weight, 1.0) - else: - raise TypeError('pretrained must be a str or None') def _pos_embeding(self, img, patched_img, pos_embed): """Positiong embeding method. @@ -436,10 +452,11 @@ def forward(self, inputs): out = x[:, 1:] else: out = x - B, _, C = out.shape - out = out.reshape(B, inputs.shape[2] // self.patch_size, - inputs.shape[3] // self.patch_size, - C).permute(0, 3, 1, 2) + if self.out_shape == 'NCHW': + B, _, C = out.shape + out = out.reshape(B, inputs.shape[2] // self.patch_size, + inputs.shape[3] // self.patch_size, + C).permute(0, 3, 1, 2) outs.append(out) return tuple(outs) diff --git a/mmseg/models/utils/timm_convert.py b/mmseg/models/utils/timm_convert.py index f9a4d31109..2ce48b06d6 100644 --- a/mmseg/models/utils/timm_convert.py +++ b/mmseg/models/utils/timm_convert.py @@ -27,7 +27,6 @@ def vit_convert(timm_dict): new_k = new_k.replace('attn.proj', 'attn.attn.out_proj') else: new_k = k - new_k = f'backbone.{new_k}' mmseg_dict[new_k] = v return mmseg_dict diff --git a/tests/test_models/test_backbones/test_vit.py b/tests/test_models/test_backbones/test_vit.py index 452eee05d8..007781f2fb 100644 --- a/tests/test_models/test_backbones/test_vit.py +++ b/tests/test_models/test_backbones/test_vit.py @@ -24,21 +24,35 @@ def test_vit_backbone(): x = torch.randn(1, 196) VisionTransformer.resize_pos_embed(x, 512, 512, 224, 224, 'bilinear') - with pytest.raises(ValueError): + with pytest.raises(RuntimeError): # forward inputs must be [N, C, H, W] x = torch.randn(3, 30, 30) model = VisionTransformer() model(x) with pytest.raises(AssertionError): + # The length of img_size tuple must be lower than 3. VisionTransformer(img_size=(224, 224, 224)) + with pytest.raises(TypeError): + # Pretrained must be None or Str. + VisionTransformer(pretrained=123) + + with pytest.raises(AssertionError): + # out_shape must be 'NLC' or 'NCHW;' + VisionTransformer(out_shape='NCL') + # Test img_size isinstance tuple imgs = torch.randn(1, 3, 224, 224) - model = VisionTransformer(img_size=(224, 224)) + model = VisionTransformer(img_size=(224, )) model.init_weights() model(imgs) + # Test img_size isinstance tuple + imgs = torch.randn(1, 3, 224, 224) + model = VisionTransformer(img_size=(224, 224)) + model(imgs) + # Test norm_eval = True model = VisionTransformer(norm_eval=True) model.train() @@ -50,6 +64,11 @@ def test_vit_backbone(): assert check_norm_state(model.modules(), True) + # Test normal size input image + imgs = torch.randn(1, 3, 224, 224) + feat = model(imgs) + assert feat[-1].shape == (1, 768, 14, 14) + # Test large size input image imgs = torch.randn(1, 3, 256, 256) feat = model(imgs) @@ -81,8 +100,20 @@ def test_vit_backbone(): feat = model(imgs) assert feat[-1].shape == (1, 768, 14, 14) + # Test out_shape == 'NLC' + model = VisionTransformer(out_shape='NLC') + imgs = torch.randn(1, 3, 224, 224) + feat = model(imgs) + assert feat[-1].shape == (1, 196, 768) + # Test final norm model = VisionTransformer(final_norm=True) imgs = torch.randn(1, 3, 224, 224) feat = model(imgs) assert feat[-1].shape == (1, 768, 14, 14) + + # Test patch norm + model = VisionTransformer(patch_norm=True) + imgs = torch.randn(1, 3, 224, 224) + feat = model(imgs) + assert feat[-1].shape == (1, 768, 14, 14) From 34f40896839cef9a543ccaab8e870222605a3344 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Mon, 21 Jun 2021 22:08:03 +0800 Subject: [PATCH 160/706] change inference time from fps to ms/im --- configs/ann/metafile.yml | 32 ++++++------- configs/apcnet/metafile.yml | 24 +++++----- configs/ccnet/metafile.yml | 32 ++++++------- configs/cgnet/metafile.yml | 4 +- configs/danet/metafile.yml | 32 ++++++------- configs/deeplabv3/metafile.yml | 60 ++++++++++++------------- configs/deeplabv3plus/metafile.yml | 60 ++++++++++++------------- configs/dmnet/metafile.yml | 24 +++++----- configs/dnlnet/metafile.yml | 24 +++++----- configs/emanet/metafile.yml | 8 ++-- configs/encnet/metafile.yml | 24 +++++----- configs/fastscnn/metafile.yml | 2 +- configs/fcn/metafile.yml | 72 +++++++++++++++--------------- configs/fp16/metafile.yml | 8 ++-- configs/gcnet/metafile.yml | 32 ++++++------- configs/hrnet/metafile.yml | 50 ++++++++++----------- configs/mobilenet_v2/metafile.yml | 16 +++---- configs/mobilenet_v3/metafile.yml | 8 ++-- configs/nonlocal_net/metafile.yml | 32 ++++++------- configs/ocrnet/metafile.yml | 48 ++++++++++---------- configs/point_rend/metafile.yml | 8 ++-- configs/psanet/metafile.yml | 32 ++++++------- configs/pspnet/metafile.yml | 56 +++++++++++------------ configs/resnest/metafile.yml | 16 +++---- configs/sem_fpn/metafile.yml | 8 ++-- configs/unet/metafile.yml | 24 +++++----- configs/upernet/metafile.yml | 32 ++++++------- 27 files changed, 384 insertions(+), 384 deletions(-) diff --git a/configs/ann/metafile.yml b/configs/ann/metafile.yml index 17959f4282..03752dde54 100644 --- a/configs/ann/metafile.yml +++ b/configs/ann/metafile.yml @@ -11,7 +11,7 @@ Models: - Name: ann_r50-d8_512x1024_40k_cityscapes In Collection: ANN Metadata: - inference time (fps): 3.71 + inference time (ms/im): 269.54 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -25,7 +25,7 @@ Models: - Name: ann_r101-d8_512x1024_40k_cityscapes In Collection: ANN Metadata: - inference time (fps): 2.55 + inference time (ms/im): 392.16 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -39,7 +39,7 @@ Models: - Name: ann_r50-d8_769x769_40k_cityscapes In Collection: ANN Metadata: - inference time (fps): 1.70 + inference time (ms/im): 588.24 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -53,7 +53,7 @@ Models: - Name: ann_r101-d8_769x769_40k_cityscapes In Collection: ANN Metadata: - inference time (fps): 1.15 + inference time (ms/im): 869.57 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -67,7 +67,7 @@ Models: - Name: ann_r50-d8_512x1024_80k_cityscapes In Collection: ANN Metadata: - inference time (fps): 3.71 + inference time (ms/im): 269.54 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -81,7 +81,7 @@ Models: - Name: ann_r101-d8_512x1024_80k_cityscapes In Collection: ANN Metadata: - inference time (fps): 2.55 + inference time (ms/im): 392.16 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -95,7 +95,7 @@ Models: - Name: ann_r50-d8_769x769_80k_cityscapes In Collection: ANN Metadata: - inference time (fps): 1.70 + inference time (ms/im): 588.24 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -109,7 +109,7 @@ Models: - Name: ann_r101-d8_769x769_80k_cityscapes In Collection: ANN Metadata: - inference time (fps): + inference time (ms/im): 869.57 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -123,7 +123,7 @@ Models: - Name: ann_r50-d8_512x512_80k_ade20k In Collection: ANN Metadata: - inference time (fps): 21.01 + inference time (ms/im): 47.6 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -137,7 +137,7 @@ Models: - Name: ann_r101-d8_512x512_80k_ade20k In Collection: ANN Metadata: - inference time (fps): 14.12 + inference time (ms/im): 70.82 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -151,7 +151,7 @@ Models: - Name: ann_r50-d8_512x512_160k_ade20k In Collection: ANN Metadata: - inference time (fps): 21.01 + inference time (ms/im): 47.6 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -165,7 +165,7 @@ Models: - Name: ann_r101-d8_512x512_160k_ade20k In Collection: ANN Metadata: - inference time (fps): 14.12 + inference time (ms/im): 70.82 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -179,7 +179,7 @@ Models: - Name: ann_r50-d8_512x512_20k_voc12aug In Collection: ANN Metadata: - inference time (fps): 20.92 + inference time (ms/im): 47.8 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -193,7 +193,7 @@ Models: - Name: ann_r101-d8_512x512_20k_voc12aug In Collection: ANN Metadata: - inference time (fps): 13.94 + inference time (ms/im): 71.74 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -207,7 +207,7 @@ Models: - Name: ann_r50-d8_512x512_40k_voc12aug In Collection: ANN Metadata: - inference time (fps): 20.92 + inference time (ms/im): 47.8 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -221,7 +221,7 @@ Models: - Name: ann_r101-d8_512x512_40k_voc12aug In Collection: ANN Metadata: - inference time (fps): 13.94 + inference time (ms/im): 71.74 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug diff --git a/configs/apcnet/metafile.yml b/configs/apcnet/metafile.yml index de3ab01729..a5eb1012c8 100644 --- a/configs/apcnet/metafile.yml +++ b/configs/apcnet/metafile.yml @@ -10,7 +10,7 @@ Models: - Name: apcnet_r50-d8_512x1024_40k_cityscapes In Collection: APCNet Metadata: - inference time (fps): 3.57 + inference time (ms/im): 280.11 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -24,7 +24,7 @@ Models: - Name: apcnet_r101-d8_512x1024_40k_cityscapes In Collection: APCNet Metadata: - inference time (fps): 2.15 + inference time (ms/im): 465.12 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -38,7 +38,7 @@ Models: - Name: apcnet_r50-d8_769x769_40k_cityscapes In Collection: APCNet Metadata: - inference time (fps): 1.52 + inference time (ms/im): 657.89 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -52,7 +52,7 @@ Models: - Name: apcnet_r101-d8_769x769_40k_cityscapes In Collection: APCNet Metadata: - inference time (fps): 1.03 + inference time (ms/im): 970.87 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -66,7 +66,7 @@ Models: - Name: apcnet_r50-d8_512x1024_80k_cityscapes In Collection: APCNet Metadata: - inference time (fps): 3.57 + inference time (ms/im): 280.11 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -80,7 +80,7 @@ Models: - Name: apcnet_r101-d8_512x1024_80k_cityscapes In Collection: APCNet Metadata: - inference time (fps): 2.15 + inference time (ms/im): 465.12 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -94,7 +94,7 @@ Models: - Name: apcnet_r50-d8_769x769_80k_cityscapes In Collection: APCNet Metadata: - inference time (fps): 1.52 + inference time (ms/im): 657.89 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -108,7 +108,7 @@ Models: - Name: apcnet_r101-d8_769x769_80k_cityscapes In Collection: APCNet Metadata: - inference time (fps): 1.03 + inference time (ms/im): 970.87 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -122,7 +122,7 @@ Models: - Name: apcnet_r50-d8_512x512_80k_ade20k In Collection: APCNet Metadata: - inference time (fps): 19.61 + inference time (ms/im): 50.99 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -136,7 +136,7 @@ Models: - Name: apcnet_r101-d8_512x512_80k_ade20k In Collection: APCNet Metadata: - inference time (fps): 13.10 + inference time (ms/im): 76.34 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -150,7 +150,7 @@ Models: - Name: apcnet_r50-d8_512x512_160k_ade20k In Collection: APCNet Metadata: - inference time (fps): 19.61 + inference time (ms/im): 50.99 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -164,7 +164,7 @@ Models: - Name: apcnet_r101-d8_512x512_160k_ade20k In Collection: APCNet Metadata: - inference time (fps): 13.10 + inference time (ms/im): 76.34 Results: - Task: Semantic Segmentation Dataset: ADE20K diff --git a/configs/ccnet/metafile.yml b/configs/ccnet/metafile.yml index e9babb5b44..da712342c1 100644 --- a/configs/ccnet/metafile.yml +++ b/configs/ccnet/metafile.yml @@ -11,7 +11,7 @@ Models: - Name: ccnet_r50-d8_512x1024_40k_cityscapes In Collection: CCNet Metadata: - inference time (fps): 3.32 + inference time (ms/im): 301.2 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -25,7 +25,7 @@ Models: - Name: ccnet_r101-d8_512x1024_40k_cityscapes In Collection: CCNet Metadata: - inference time (fps): 2.31 + inference time (ms/im): 432.9 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -39,7 +39,7 @@ Models: - Name: ccnet_r50-d8_769x769_40k_cityscapes In Collection: CCNet Metadata: - inference time (fps): 1.43 + inference time (ms/im): 699.3 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -53,7 +53,7 @@ Models: - Name: ccnet_r101-d8_769x769_40k_cityscapes In Collection: CCNet Metadata: - inference time (fps): 1.01 + inference time (ms/im): 990.1 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -67,7 +67,7 @@ Models: - Name: ccnet_r50-d8_512x1024_80k_cityscapes In Collection: CCNet Metadata: - inference time (fps): 3.32 + inference time (ms/im): 301.2 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -81,7 +81,7 @@ Models: - Name: ccnet_r101-d8_512x1024_80k_cityscapes In Collection: CCNet Metadata: - inference time (fps): 2.31 + inference time (ms/im): 432.9 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -95,7 +95,7 @@ Models: - Name: ccnet_r50-d8_769x769_80k_cityscapes In Collection: CCNet Metadata: - inference time (fps): 1.43 + inference time (ms/im): 699.3 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -109,7 +109,7 @@ Models: - Name: ccnet_r101-d8_769x769_80k_cityscapes In Collection: CCNet Metadata: - inference time (fps): 1.01 + inference time (ms/im): 990.1 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -123,7 +123,7 @@ Models: - Name: ccnet_r50-d8_512x512_80k_ade20k In Collection: CCNet Metadata: - inference time (fps): 20.89 + inference time (ms/im): 47.87 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -137,7 +137,7 @@ Models: - Name: ccnet_r101-d8_512x512_80k_ade20k In Collection: CCNet Metadata: - inference time (fps): 14.11 + inference time (ms/im): 70.87 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -151,7 +151,7 @@ Models: - Name: ccnet_r50-d8_512x512_160k_ade20k In Collection: CCNet Metadata: - inference time (fps): 20.89 + inference time (ms/im): 47.87 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -165,7 +165,7 @@ Models: - Name: ccnet_r101-d8_512x512_160k_ade20k In Collection: CCNet Metadata: - inference time (fps): 14.11 + inference time (ms/im): 70.87 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -179,7 +179,7 @@ Models: - Name: ccnet_r50-d8_512x512_20k_voc12aug In Collection: CCNet Metadata: - inference time (fps): 20.45 + inference time (ms/im): 48.9 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -193,7 +193,7 @@ Models: - Name: ccnet_r101-d8_512x512_20k_voc12aug In Collection: CCNet Metadata: - inference time (fps): 13.64 + inference time (ms/im): 73.31 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -207,7 +207,7 @@ Models: - Name: ccnet_r50-d8_512x512_40k_voc12aug In Collection: CCNet Metadata: - inference time (fps): 20.45 + inference time (ms/im): 48.9 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -221,7 +221,7 @@ Models: - Name: ccnet_r101-d8_512x512_40k_voc12aug In Collection: CCNet Metadata: - inference time (fps): 13.64 + inference time (ms/im): 73.31 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug diff --git a/configs/cgnet/metafile.yml b/configs/cgnet/metafile.yml index 29f1fbb416..65ef6f8586 100644 --- a/configs/cgnet/metafile.yml +++ b/configs/cgnet/metafile.yml @@ -9,7 +9,7 @@ Models: - Name: cgnet_680x680_60k_cityscapes In Collection: CGNet Metadata: - inference time (fps): 30.51 + inference time (ms/im): 32.78 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -23,7 +23,7 @@ Models: - Name: cgnet_512x1024_60k_cityscapes In Collection: CGNet Metadata: - inference time (fps): 31.14 + inference time (ms/im): 32.11 Results: - Task: Semantic Segmentation Dataset: Cityscapes diff --git a/configs/danet/metafile.yml b/configs/danet/metafile.yml index 233cf19a15..6075fd610c 100644 --- a/configs/danet/metafile.yml +++ b/configs/danet/metafile.yml @@ -11,7 +11,7 @@ Models: - Name: danet_r50-d8_512x1024_40k_cityscapes In Collection: DANet Metadata: - inference time (fps): 2.66 + inference time (ms/im): 375.94 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -25,7 +25,7 @@ Models: - Name: danet_r101-d8_512x1024_40k_cityscapes In Collection: DANet Metadata: - inference time (fps): 1.99 + inference time (ms/im): 502.51 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -39,7 +39,7 @@ Models: - Name: danet_r50-d8_769x769_40k_cityscapes In Collection: DANet Metadata: - inference time (fps): 1.56 + inference time (ms/im): 641.03 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -53,7 +53,7 @@ Models: - Name: danet_r101-d8_769x769_40k_cityscapes In Collection: DANet Metadata: - inference time (fps): 1.07 + inference time (ms/im): 934.58 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -67,7 +67,7 @@ Models: - Name: danet_r50-d8_512x1024_80k_cityscapes In Collection: DANet Metadata: - inference time (fps): 2.66 + inference time (ms/im): 375.94 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -81,7 +81,7 @@ Models: - Name: danet_r101-d8_512x1024_80k_cityscapes In Collection: DANet Metadata: - inference time (fps): 1.99 + inference time (ms/im): 502.51 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -95,7 +95,7 @@ Models: - Name: danet_r50-d8_769x769_80k_cityscapes In Collection: DANet Metadata: - inference time (fps): 1.56 + inference time (ms/im): 641.03 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -109,7 +109,7 @@ Models: - Name: danet_r101-d8_769x769_80k_cityscapes In Collection: DANet Metadata: - inference time (fps): 1.07 + inference time (ms/im): 934.58 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -123,7 +123,7 @@ Models: - Name: danet_r50-d8_512x512_80k_ade20k In Collection: DANet Metadata: - inference time (fps): 21.20 + inference time (ms/im): 47.17 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -137,7 +137,7 @@ Models: - Name: danet_r101-d8_512x512_80k_ade20k In Collection: DANet Metadata: - inference time (fps): 14.18 + inference time (ms/im): 70.52 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -151,7 +151,7 @@ Models: - Name: danet_r50-d8_512x512_160k_ade20k In Collection: DANet Metadata: - inference time (fps): 21.20 + inference time (ms/im): 47.17 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -165,7 +165,7 @@ Models: - Name: danet_r101-d8_512x512_160k_ade20k In Collection: DANet Metadata: - inference time (fps): 14.18 + inference time (ms/im): 70.52 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -179,7 +179,7 @@ Models: - Name: danet_r50-d8_512x512_20k_voc12aug In Collection: DANet Metadata: - inference time (fps): 20.94 + inference time (ms/im): 47.76 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -193,7 +193,7 @@ Models: - Name: danet_r101-d8_512x512_20k_voc12aug In Collection: DANet Metadata: - inference time (fps): 13.76 + inference time (ms/im): 72.67 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -207,7 +207,7 @@ Models: - Name: danet_r50-d8_512x512_40k_voc12aug In Collection: DANet Metadata: - inference time (fps): 20.94 + inference time (ms/im): 47.76 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -221,7 +221,7 @@ Models: - Name: danet_r101-d8_512x512_40k_voc12aug In Collection: DANet Metadata: - inference time (fps): 13.76 + inference time (ms/im): 72.67 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug diff --git a/configs/deeplabv3/metafile.yml b/configs/deeplabv3/metafile.yml index 8c7e416d36..c3f154d83b 100644 --- a/configs/deeplabv3/metafile.yml +++ b/configs/deeplabv3/metafile.yml @@ -12,7 +12,7 @@ Models: - Name: deeplabv3_r50-d8_512x1024_40k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (fps): 2.57 + inference time (ms/im): 389.11 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -26,7 +26,7 @@ Models: - Name: deeplabv3_r101-d8_512x1024_40k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (fps): 1.92 + inference time (ms/im): 520.83 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -40,7 +40,7 @@ Models: - Name: deeplabv3_r50-d8_769x769_40k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (fps): 1.11 + inference time (ms/im): 900.9 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -54,7 +54,7 @@ Models: - Name: deeplabv3_r101-d8_769x769_40k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (fps): 0.83 + inference time (ms/im): 1204.82 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -68,7 +68,7 @@ Models: - Name: deeplabv3_r18-d8_512x1024_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (fps): 13.78 + inference time (ms/im): 72.57 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -82,7 +82,7 @@ Models: - Name: deeplabv3_r50-d8_512x1024_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (fps): 2.57 + inference time (ms/im): 389.11 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -96,7 +96,7 @@ Models: - Name: deeplabv3_r101-d8_512x1024_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (fps): 1.92 + inference time (ms/im): 520.83 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -110,7 +110,7 @@ Models: - Name: deeplabv3_r18-d8_769x769_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (fps): 5.55 + inference time (ms/im): 180.18 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -124,7 +124,7 @@ Models: - Name: deeplabv3_r50-d8_769x769_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (fps): 1.11 + inference time (ms/im): 900.9 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -138,7 +138,7 @@ Models: - Name: deeplabv3_r101-d8_769x769_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (fps): 0.83 + inference time (ms/im): 1204.82 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -152,7 +152,7 @@ Models: - Name: deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (fps): 6.96 + inference time (ms/im): 143.68 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -166,7 +166,7 @@ Models: - Name: deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (fps): 6.96 + inference time (ms/im): 143.68 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -180,7 +180,7 @@ Models: - Name: deeplabv3_r18b-d8_512x1024_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (fps): 13.93 + inference time (ms/im): 71.79 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -194,7 +194,7 @@ Models: - Name: deeplabv3_r50b-d8_512x1024_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (fps): 2.74 + inference time (ms/im): 364.96 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -208,7 +208,7 @@ Models: - Name: deeplabv3_r101b-d8_512x1024_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (fps): 1.81 + inference time (ms/im): 552.49 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -222,7 +222,7 @@ Models: - Name: deeplabv3_r18b-d8_769x769_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (fps): 5.79 + inference time (ms/im): 172.71 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -236,7 +236,7 @@ Models: - Name: deeplabv3_r50b-d8_769x769_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (fps): 1.16 + inference time (ms/im): 862.07 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -250,7 +250,7 @@ Models: - Name: deeplabv3_r101b-d8_769x769_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (fps): 0.82 + inference time (ms/im): 1219.51 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -264,7 +264,7 @@ Models: - Name: deeplabv3_r50-d8_512x512_80k_ade20k In Collection: DeepLabV3 Metadata: - inference time (fps): 14.76 + inference time (ms/im): 67.75 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -278,7 +278,7 @@ Models: - Name: deeplabv3_r101-d8_512x512_80k_ade20k In Collection: DeepLabV3 Metadata: - inference time (fps): 10.14 + inference time (ms/im): 98.62 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -292,7 +292,7 @@ Models: - Name: deeplabv3_r50-d8_512x512_160k_ade20k In Collection: DeepLabV3 Metadata: - inference time (fps): 14.76 + inference time (ms/im): 67.75 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -306,7 +306,7 @@ Models: - Name: deeplabv3_r101-d8_512x512_160k_ade20k In Collection: DeepLabV3 Metadata: - inference time (fps): 10.14 + inference time (ms/im): 98.62 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -320,7 +320,7 @@ Models: - Name: deeplabv3_r50-d8_512x512_20k_voc12aug In Collection: DeepLabV3 Metadata: - inference time (fps): 13.88 + inference time (ms/im): 72.05 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -334,7 +334,7 @@ Models: - Name: deeplabv3_r101-d8_512x512_20k_voc12aug In Collection: DeepLabV3 Metadata: - inference time (fps): 9.81 + inference time (ms/im): 101.94 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -348,7 +348,7 @@ Models: - Name: deeplabv3_r50-d8_512x512_40k_voc12aug In Collection: DeepLabV3 Metadata: - inference time (fps): 13.88 + inference time (ms/im): 72.05 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -362,7 +362,7 @@ Models: - Name: deeplabv3_r101-d8_512x512_40k_voc12aug In Collection: DeepLabV3 Metadata: - inference time (fps): 9.81 + inference time (ms/im): 101.94 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -376,7 +376,7 @@ Models: - Name: deeplabv3_r101-d8_480x480_40k_pascal_context In Collection: DeepLabV3 Metadata: - inference time (fps): 7.09 + inference time (ms/im): 141.04 Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -390,7 +390,7 @@ Models: - Name: deeplabv3_r101-d8_480x480_80k_pascal_context In Collection: DeepLabV3 Metadata: - inference time (fps): 7.09 + inference time (ms/im): 141.04 Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -404,7 +404,7 @@ Models: - Name: deeplabv3_r101-d8_480x480_40k_pascal_context In Collection: DeepLabV3 Metadata: - inference time (fps): None + inference time (ms/im): None Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -418,7 +418,7 @@ Models: - Name: deeplabv3_r101-d8_480x480_80k_pascal_context_59 In Collection: DeepLabV3 Metadata: - inference time (fps): None + inference time (ms/im): None Results: - Task: Semantic Segmentation Dataset: Pascal Context diff --git a/configs/deeplabv3plus/metafile.yml b/configs/deeplabv3plus/metafile.yml index d5256b7894..e515d30223 100644 --- a/configs/deeplabv3plus/metafile.yml +++ b/configs/deeplabv3plus/metafile.yml @@ -12,7 +12,7 @@ Models: - Name: deeplabv3plus_r50-d8_512x1024_40k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (fps): 3.94 + inference time (ms/im): 253.81 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -26,7 +26,7 @@ Models: - Name: deeplabv3plus_r101-d8_512x1024_40k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (fps): 2.60 + inference time (ms/im): 384.62 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -40,7 +40,7 @@ Models: - Name: deeplabv3plus_r50-d8_769x769_40k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (fps): 1.72 + inference time (ms/im): 581.4 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -54,7 +54,7 @@ Models: - Name: deeplabv3plus_r101-d8_769x769_40k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (fps): 1.15 + inference time (ms/im): 869.57 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -68,7 +68,7 @@ Models: - Name: deeplabv3plus_r18-d8_512x1024_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (fps): 14.27 + inference time (ms/im): 70.08 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -82,7 +82,7 @@ Models: - Name: deeplabv3plus_r50-d8_512x1024_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (fps): 3.94 + inference time (ms/im): 253.81 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -96,7 +96,7 @@ Models: - Name: deeplabv3plus_r101-d8_512x1024_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (fps): 2.60 + inference time (ms/im): 384.62 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -110,7 +110,7 @@ Models: - Name: deeplabv3plus_r18-d8_769x769_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (fps): 5.74 + inference time (ms/im): 174.22 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -124,7 +124,7 @@ Models: - Name: deeplabv3plus_r50-d8_769x769_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (fps): 1.72 + inference time (ms/im): 581.4 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -138,7 +138,7 @@ Models: - Name: deeplabv3plus_r101-d8_769x769_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (fps): 1.15 + inference time (ms/im): 869.57 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -152,7 +152,7 @@ Models: - Name: deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (fps): 7.48 + inference time (ms/im): 133.69 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -166,7 +166,7 @@ Models: - Name: deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (fps): 7.48 + inference time (ms/im): 133.69 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -180,7 +180,7 @@ Models: - Name: deeplabv3plus_r18b-d8_512x1024_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (fps): 14.95 + inference time (ms/im): 66.89 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -194,7 +194,7 @@ Models: - Name: deeplabv3plus_r50b-d8_512x1024_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (fps): 3.94 + inference time (ms/im): 253.81 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -208,7 +208,7 @@ Models: - Name: deeplabv3plus_r101b-d8_512x1024_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (fps): 2.60 + inference time (ms/im): 384.62 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -222,7 +222,7 @@ Models: - Name: deeplabv3plus_r18b-d8_769x769_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (fps): 5.96 + inference time (ms/im): 167.79 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -236,7 +236,7 @@ Models: - Name: deeplabv3plus_r50b-d8_769x769_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (fps): 1.72 + inference time (ms/im): 581.4 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -250,7 +250,7 @@ Models: - Name: deeplabv3plus_r101b-d8_769x769_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (fps): 1.10 + inference time (ms/im): 909.09 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -264,7 +264,7 @@ Models: - Name: deeplabv3plus_r50-d8_512x512_80k_ade20k In Collection: DeepLabV3+ Metadata: - inference time (fps): 21.01 + inference time (ms/im): 47.6 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -278,7 +278,7 @@ Models: - Name: deeplabv3plus_r101-d8_512x512_80k_ade20k In Collection: DeepLabV3+ Metadata: - inference time (fps): 14.16 + inference time (ms/im): 70.62 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -292,7 +292,7 @@ Models: - Name: deeplabv3plus_r50-d8_512x512_160k_ade20k In Collection: DeepLabV3+ Metadata: - inference time (fps): 21.01 + inference time (ms/im): 47.6 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -306,7 +306,7 @@ Models: - Name: deeplabv3plus_r101-d8_512x512_160k_ade20k In Collection: DeepLabV3+ Metadata: - inference time (fps): 14.16 + inference time (ms/im): 70.62 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -320,7 +320,7 @@ Models: - Name: deeplabv3plus_r50-d8_512x512_20k_voc12aug In Collection: DeepLabV3+ Metadata: - inference time (fps): 21 + inference time (ms/im): 47.62 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -334,7 +334,7 @@ Models: - Name: deeplabv3plus_r101-d8_512x512_20k_voc12aug In Collection: DeepLabV3+ Metadata: - inference time (fps): 13.88 + inference time (ms/im): 72.05 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -348,7 +348,7 @@ Models: - Name: deeplabv3plus_r50-d8_512x512_40k_voc12aug In Collection: DeepLabV3+ Metadata: - inference time (fps): 21 + inference time (ms/im): 47.62 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -362,7 +362,7 @@ Models: - Name: deeplabv3plus_r101-d8_512x512_40k_voc12aug In Collection: DeepLabV3+ Metadata: - inference time (fps): 13.88 + inference time (ms/im): 72.05 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -376,7 +376,7 @@ Models: - Name: deeplabv3plus_r101-d8_480x480_40k_pascal_context In Collection: DeepLabV3+ Metadata: - inference time (fps): 9.09 + inference time (ms/im): 110.01 Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -390,7 +390,7 @@ Models: - Name: deeplabv3plus_r101-d8_480x480_80k_pascal_context In Collection: DeepLabV3+ Metadata: - inference time (fps): 9.09 + inference time (ms/im): 110.01 Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -404,7 +404,7 @@ Models: - Name: deeplabv3plus_r101-d8_480x480_40k_pascal_context In Collection: DeepLabV3+ Metadata: - inference time (fps): None + inference time (ms/im): None Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -418,7 +418,7 @@ Models: - Name: deeplabv3plus_r101-d8_480x480_80k_pascal_context In Collection: DeepLabV3+ Metadata: - inference time (fps): None + inference time (ms/im): None Results: - Task: Semantic Segmentation Dataset: Pascal Context diff --git a/configs/dmnet/metafile.yml b/configs/dmnet/metafile.yml index 936b2e2d36..fe210d5073 100644 --- a/configs/dmnet/metafile.yml +++ b/configs/dmnet/metafile.yml @@ -10,7 +10,7 @@ Models: - Name: dmnet_r50-d8_512x1024_40k_cityscapes In Collection: DMNet Metadata: - inference time (fps): 3.66 + inference time (ms/im): 273.22 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -24,7 +24,7 @@ Models: - Name: dmnet_r101-d8_512x1024_40k_cityscapes In Collection: DMNet Metadata: - inference time (fps): 2.54 + inference time (ms/im): 393.7 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -38,7 +38,7 @@ Models: - Name: dmnet_r50-d8_769x769_40k_cityscapes In Collection: DMNet Metadata: - inference time (fps): 1.57 + inference time (ms/im): 636.94 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -52,7 +52,7 @@ Models: - Name: dmnet_r101-d8_769x769_40k_cityscapes In Collection: DMNet Metadata: - inference time (fps): 1.01 + inference time (ms/im): 990.1 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -66,7 +66,7 @@ Models: - Name: dmnet_r50-d8_512x1024_80k_cityscapes In Collection: DMNet Metadata: - inference time (fps): 3.66 + inference time (ms/im): 273.22 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -80,7 +80,7 @@ Models: - Name: dmnet_r101-d8_512x1024_80k_cityscapes In Collection: DMNet Metadata: - inference time (fps): 2.54 + inference time (ms/im): 393.7 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -94,7 +94,7 @@ Models: - Name: dmnet_r50-d8_769x769_80k_cityscapes In Collection: DMNet Metadata: - inference time (fps): 1.57 + inference time (ms/im): 636.94 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -108,7 +108,7 @@ Models: - Name: dmnet_r101-d8_769x769_80k_cityscapes In Collection: DMNet Metadata: - inference time (fps): 1.01 + inference time (ms/im): 990.1 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -122,7 +122,7 @@ Models: - Name: dmnet_r50-d8_512x512_80k_ade20k In Collection: DMNet Metadata: - inference time (fps): 20.95 + inference time (ms/im): 47.73 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -136,7 +136,7 @@ Models: - Name: dmnet_r101-d8_512x512_80k_ade20k In Collection: DMNet Metadata: - inference time (fps): 13.88 + inference time (ms/im): 72.05 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -150,7 +150,7 @@ Models: - Name: dmnet_r50-d8_512x512_160k_ade20k In Collection: DMNet Metadata: - inference time (fps): 20.95 + inference time (ms/im): 47.73 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -164,7 +164,7 @@ Models: - Name: dmnet_r101-d8_512x512_160k_ade20k In Collection: DMNet Metadata: - inference time (fps): 13.88 + inference time (ms/im): 72.05 Results: - Task: Semantic Segmentation Dataset: ADE20K diff --git a/configs/dnlnet/metafile.yml b/configs/dnlnet/metafile.yml index e4df52fa1c..7b672e1974 100644 --- a/configs/dnlnet/metafile.yml +++ b/configs/dnlnet/metafile.yml @@ -10,7 +10,7 @@ Models: - Name: dnl_r50-d8_512x1024_40k_cityscapes In Collection: dnl Metadata: - inference time (fps): 2.56 + inference time (ms/im): 390.62 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -24,7 +24,7 @@ Models: - Name: dnl_r101-d8_512x1024_40k_cityscapes In Collection: dnl Metadata: - inference time (fps): 1.96 + inference time (ms/im): 510.2 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -38,7 +38,7 @@ Models: - Name: dnl_r50-d8_769x769_40k_cityscapes In Collection: dnl Metadata: - inference time (fps): 1.50 + inference time (ms/im): 666.67 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -52,7 +52,7 @@ Models: - Name: dnl_r101-d8_769x769_40k_cityscapes In Collection: dnl Metadata: - inference time (fps): 1.02 + inference time (ms/im): 980.39 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -66,7 +66,7 @@ Models: - Name: dnl_r50-d8_512x1024_80k_cityscapes In Collection: dnl Metadata: - inference time (fps): 2.56 + inference time (ms/im): 390.62 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -80,7 +80,7 @@ Models: - Name: dnl_r101-d8_512x1024_80k_cityscapes In Collection: dnl Metadata: - inference time (fps): 1.96 + inference time (ms/im): 510.2 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -94,7 +94,7 @@ Models: - Name: dnl_r50-d8_769x769_80k_cityscapes In Collection: dnl Metadata: - inference time (fps): 1.50 + inference time (ms/im): 666.67 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -108,7 +108,7 @@ Models: - Name: dnl_r101-d8_769x769_80k_cityscapes In Collection: dnl Metadata: - inference time (fps): 1.02 + inference time (ms/im): 980.39 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -122,7 +122,7 @@ Models: - Name: dnl_r50-d8_512x512_80k_ade20k In Collection: dnl Metadata: - inference time (fps): 20.66 + inference time (ms/im): 48.4 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -136,7 +136,7 @@ Models: - Name: dnl_r101-d8_512x512_80k_ade20k In Collection: dnl Metadata: - inference time (fps): 12.54 + inference time (ms/im): 79.74 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -150,7 +150,7 @@ Models: - Name: dnl_r50-d8_512x512_160k_ade20k In Collection: dnl Metadata: - inference time (fps): 20.66 + inference time (ms/im): 48.4 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -164,7 +164,7 @@ Models: - Name: dnl_r101-d8_512x512_160k_ade20k In Collection: dnl Metadata: - inference time (fps): 12.54 + inference time (ms/im): 79.74 Results: - Task: Semantic Segmentation Dataset: ADE20K diff --git a/configs/emanet/metafile.yml b/configs/emanet/metafile.yml index f37dcec6d6..1a6bee86e9 100644 --- a/configs/emanet/metafile.yml +++ b/configs/emanet/metafile.yml @@ -9,7 +9,7 @@ Models: - Name: emanet_r50-d8_512x1024_80k_cityscapes In Collection: EMANet Metadata: - inference time (fps): 4.58 + inference time (ms/im): 218.34 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -23,7 +23,7 @@ Models: - Name: emanet_r101-d8_512x1024_80k_cityscapes In Collection: EMANet Metadata: - inference time (fps): 2.87 + inference time (ms/im): 348.43 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -37,7 +37,7 @@ Models: - Name: emanet_r50-d8_769x769_80k_cityscapes In Collection: EMANet Metadata: - inference time (fps): 1.97 + inference time (ms/im): 507.61 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -51,7 +51,7 @@ Models: - Name: emanet_r101-d8_769x769_80k_cityscapes In Collection: EMANet Metadata: - inference time (fps): 1.22 + inference time (ms/im): 819.67 Results: - Task: Semantic Segmentation Dataset: Cityscapes diff --git a/configs/encnet/metafile.yml b/configs/encnet/metafile.yml index df8bc20074..d756507729 100644 --- a/configs/encnet/metafile.yml +++ b/configs/encnet/metafile.yml @@ -11,7 +11,7 @@ Models: - Name: encnet_r50-d8_512x1024_40k_cityscapes In Collection: encnet Metadata: - inference time (fps): 4.58 + inference time (ms/im): 218.34 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -25,7 +25,7 @@ Models: - Name: encnet_r101-d8_512x1024_40k_cityscapes In Collection: encnet Metadata: - inference time (fps): 2.66 + inference time (ms/im): 375.94 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -39,7 +39,7 @@ Models: - Name: encnet_r50-d8_769x769_40k_cityscapes In Collection: encnet Metadata: - inference time (fps): 1.82 + inference time (ms/im): 549.45 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -53,7 +53,7 @@ Models: - Name: encnet_r101-d8_769x769_40k_cityscapes In Collection: encnet Metadata: - inference time (fps): 1.26 + inference time (ms/im): 793.65 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -67,7 +67,7 @@ Models: - Name: encnet_r50-d8_512x1024_80k_cityscapes In Collection: encnet Metadata: - inference time (fps): 4.58 + inference time (ms/im): 218.34 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -81,7 +81,7 @@ Models: - Name: encnet_r101-d8_512x1024_80k_cityscapes In Collection: encnet Metadata: - inference time (fps): 2.66 + inference time (ms/im): 375.94 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -95,7 +95,7 @@ Models: - Name: encnet_r50-d8_769x769_80k_cityscapes In Collection: encnet Metadata: - inference time (fps): 1.82 + inference time (ms/im): 549.45 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -109,7 +109,7 @@ Models: - Name: encnet_r101-d8_769x769_80k_cityscapes In Collection: encnet Metadata: - inference time (fps): 1.26 + inference time (ms/im): 793.65 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -123,7 +123,7 @@ Models: - Name: encnet_r50-d8_512x512_80k_ade20k In Collection: encnet Metadata: - inference time (fps): 22.81 + inference time (ms/im): 43.84 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -137,7 +137,7 @@ Models: - Name: encnet_r101-d8_512x512_80k_ade20k In Collection: encnet Metadata: - inference time (fps): 14.87 + inference time (ms/im): 67.25 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -151,7 +151,7 @@ Models: - Name: encnet_r50-d8_512x512_160k_ade20k In Collection: encnet Metadata: - inference time (fps): 22.81 + inference time (ms/im): 43.84 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -165,7 +165,7 @@ Models: - Name: encnet_r101-d8_512x512_160k_ade20k In Collection: encnet Metadata: - inference time (fps): 14.87 + inference time (ms/im): 67.25 Results: - Task: Semantic Segmentation Dataset: ADE20K diff --git a/configs/fastscnn/metafile.yml b/configs/fastscnn/metafile.yml index edae6f6aa3..f87fb321da 100644 --- a/configs/fastscnn/metafile.yml +++ b/configs/fastscnn/metafile.yml @@ -9,7 +9,7 @@ Models: - Name: fast_scnn_4x8_80k_lr0.12_cityscapes In Collection: Fast-SCNN Metadata: - inference time (fps): 63.61 + inference time (ms/im): 15.72 Results: - Task: Semantic Segmentation Dataset: Cityscapes diff --git a/configs/fcn/metafile.yml b/configs/fcn/metafile.yml index 6419a40aa4..e7927e0860 100644 --- a/configs/fcn/metafile.yml +++ b/configs/fcn/metafile.yml @@ -19,7 +19,7 @@ Models: - Name: fcn_r50-d8_512x1024_40k_cityscapes In Collection: FCN Metadata: - inference time (fps): 4.17 + inference time (ms/im): 239.81 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -33,7 +33,7 @@ Models: - Name: fcn_r101-d8_512x1024_40k_cityscapes In Collection: FCN Metadata: - inference time (fps): 2.66 + inference time (ms/im): 375.94 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -47,7 +47,7 @@ Models: - Name: fcn_r50-d8_769x769_40k_cityscapes In Collection: FCN Metadata: - inference time (fps): 1.80 + inference time (ms/im): 555.56 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -61,7 +61,7 @@ Models: - Name: fcn_r101-d8_769x769_40k_cityscapes In Collection: FCN Metadata: - inference time (fps): 1.19 + inference time (ms/im): 840.34 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -75,7 +75,7 @@ Models: - Name: fcn_r18-d8_512x1024_80k_cityscapes In Collection: FCN Metadata: - inference time (fps): 14.65 + inference time (ms/im): 68.26 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -89,7 +89,7 @@ Models: - Name: fcn_r50-d8_512x1024_80k_cityscapes In Collection: FCN Metadata: - inference time (fps): 4.17 + inference time (ms/im): 239.81 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -103,7 +103,7 @@ Models: - Name: fcn_r101-d8_512x1024_80k_cityscapes In Collection: FCN Metadata: - inference time (fps): 2.66 + inference time (ms/im): 375.94 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -117,7 +117,7 @@ Models: - Name: fcn_r18-d8_769x769_80k_cityscapes In Collection: FCN Metadata: - inference time (fps): 6.40 + inference time (ms/im): 156.25 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -131,7 +131,7 @@ Models: - Name: fcn_r50-d8_769x769_80k_cityscapes In Collection: FCN Metadata: - inference time (fps): 1.80 + inference time (ms/im): 555.56 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -145,7 +145,7 @@ Models: - Name: fcn_r101-d8_769x769_80k_cityscapes In Collection: FCN Metadata: - inference time (fps): 1.19 + inference time (ms/im): 840.34 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -159,7 +159,7 @@ Models: - Name: fcn_r18b-d8_512x1024_80k_cityscapes In Collection: FCN Metadata: - inference time (fps): 16.74 + inference time (ms/im): 59.74 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -173,7 +173,7 @@ Models: - Name: fcn_r50b-d8_512x1024_80k_cityscapes In Collection: FCN Metadata: - inference time (fps): 4.20 + inference time (ms/im): 238.1 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -187,7 +187,7 @@ Models: - Name: fcn_r101b-d8_512x1024_80k_cityscapes In Collection: FCN Metadata: - inference time (fps): 2.73 + inference time (ms/im): 366.3 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -201,7 +201,7 @@ Models: - Name: fcn_r18b-d8_769x769_80k_cityscapes In Collection: FCN Metadata: - inference time (fps): 6.70 + inference time (ms/im): 149.25 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -215,7 +215,7 @@ Models: - Name: fcn_r50b-d8_769x769_80k_cityscapes In Collection: FCN Metadata: - inference time (fps): 1.82 + inference time (ms/im): 549.45 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -229,7 +229,7 @@ Models: - Name: fcn_r101b-d8_769x769_80k_cityscapes In Collection: FCN Metadata: - inference time (fps): 1.15 + inference time (ms/im): 869.57 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -243,7 +243,7 @@ Models: - Name: fcn_d6_r50-d16_512x1024_40k_cityscapes In Collection: FCN-D6 Metadata: - inference time (fps): 10.22 + inference time (ms/im): 97.85 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -257,7 +257,7 @@ Models: - Name: fcn_d6_r50-d16_512x1024_80k_cityscapes In Collection: FCN-D6 Metadata: - inference time (fps): 10.35 + inference time (ms/im): 96.62 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -271,7 +271,7 @@ Models: - Name: fcn_d6_r50-d16_769x769_40k_cityscapes In Collection: FCN-D6 Metadata: - inference time (fps): 4.17 + inference time (ms/im): 239.81 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -285,7 +285,7 @@ Models: - Name: fcn_d6_r50-d16_769x769_80k_cityscapes In Collection: FCN-D6 Metadata: - inference time (fps): 4.15 + inference time (ms/im): 240.96 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -299,7 +299,7 @@ Models: - Name: fcn_d6_r101-d16_512x1024_40k_cityscapes In Collection: FCN-D6 Metadata: - inference time (fps): 8.04 + inference time (ms/im): 124.38 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -313,7 +313,7 @@ Models: - Name: fcn_d6_r101-d16_512x1024_80k_cityscapes In Collection: FCN-D6 Metadata: - inference time (fps): 8.26 + inference time (ms/im): 121.07 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -327,7 +327,7 @@ Models: - Name: fcn_d6_r101-d16_769x769_40k_cityscapes In Collection: FCN-D6 Metadata: - inference time (fps): 3.12 + inference time (ms/im): 320.51 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -341,7 +341,7 @@ Models: - Name: fcn_d6_r101-d16_769x769_80k_cityscapes In Collection: FCN-D6 Metadata: - inference time (fps): 3.21 + inference time (ms/im): 311.53 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -355,7 +355,7 @@ Models: - Name: fcn_r50-d8_512x512_80k_ade20k In Collection: FCN Metadata: - inference time (fps): 23.49 + inference time (ms/im): 42.57 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -369,7 +369,7 @@ Models: - Name: fcn_r101-d8_512x512_80k_ade20k In Collection: FCN Metadata: - inference time (fps): 14.78 + inference time (ms/im): 67.66 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -383,7 +383,7 @@ Models: - Name: fcn_r50-d8_512x512_160k_ade20k In Collection: FCN Metadata: - inference time (fps): 23.49 + inference time (ms/im): 42.57 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -397,7 +397,7 @@ Models: - Name: fcn_r101-d8_512x512_160k_ade20k In Collection: FCN Metadata: - inference time (fps): 14.78 + inference time (ms/im): 67.66 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -411,7 +411,7 @@ Models: - Name: fcn_r50-d8_512x512_20k_voc12aug In Collection: FCN Metadata: - inference time (fps): 23.28 + inference time (ms/im): 42.96 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -425,7 +425,7 @@ Models: - Name: fcn_r101-d8_512x512_20k_voc12aug In Collection: FCN Metadata: - inference time (fps): 14.81 + inference time (ms/im): 67.52 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -439,7 +439,7 @@ Models: - Name: fcn_r50-d8_512x512_40k_voc12aug In Collection: FCN Metadata: - inference time (fps): 23.28 + inference time (ms/im): 42.96 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -453,7 +453,7 @@ Models: - Name: fcn_r101-d8_512x512_40k_voc12aug In Collection: FCN Metadata: - inference time (fps): 14.81 + inference time (ms/im): 67.52 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -467,7 +467,7 @@ Models: - Name: fcn_r101-d8_480x480_40k_pascal_context In Collection: FCN Metadata: - inference time (fps): 9.93 + inference time (ms/im): 100.7 Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -481,7 +481,7 @@ Models: - Name: fcn_r101-d8_480x480_80k_pascal_context In Collection: FCN Metadata: - inference time (fps): 9.93 + inference time (ms/im): 100.7 Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -495,7 +495,7 @@ Models: - Name: fcn_r101-d8_480x480_40k_pascal_context_59 In Collection: FCN Metadata: - inference time (fps): None + inference time (ms/im): None Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -509,7 +509,7 @@ Models: - Name: fcn_r101-d8_480x480_80k_pascal_context_59 In Collection: FCN Metadata: - inference time (fps): None + inference time (ms/im): None Results: - Task: Semantic Segmentation Dataset: Pascal Context diff --git a/configs/fp16/metafile.yml b/configs/fp16/metafile.yml index e4187bdad2..f1bf8d3bb0 100644 --- a/configs/fp16/metafile.yml +++ b/configs/fp16/metafile.yml @@ -4,7 +4,7 @@ Models: - Name: fcn_r101-d8_512x1024_80k_fp16_cityscapes In Collection: FCN Metadata: - inference time (fps): 8.64 + inference time (ms/im): 115.74 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -18,7 +18,7 @@ Models: - Name: pspnet_r101-d8_512x1024_80k_fp16_cityscapes In Collection: PSPNet Metadata: - inference time (fps): 8.77 + inference time (ms/im): 114.03 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -32,7 +32,7 @@ Models: - Name: deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes In Collection: DeepLabV3 Metadata: - inference time (fps): 3.86 + inference time (ms/im): 259.07 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -46,7 +46,7 @@ Models: - Name: deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (fps): 7.87 + inference time (ms/im): 127.06 Results: - Task: Semantic Segmentation Dataset: Cityscapes diff --git a/configs/gcnet/metafile.yml b/configs/gcnet/metafile.yml index c10c918a4e..e5efcb85b1 100644 --- a/configs/gcnet/metafile.yml +++ b/configs/gcnet/metafile.yml @@ -11,7 +11,7 @@ Models: - Name: gcnet_r50-d8_512x1024_40k_cityscapes In Collection: GCNet Metadata: - inference time (fps): 3.93 + inference time (ms/im): 254.45 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -25,7 +25,7 @@ Models: - Name: gcnet_r101-d8_512x1024_40k_cityscapes In Collection: GCNet Metadata: - inference time (fps): 2.61 + inference time (ms/im): 383.14 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -39,7 +39,7 @@ Models: - Name: gcnet_r50-d8_769x769_40k_cityscapes In Collection: GCNet Metadata: - inference time (fps): 1.67 + inference time (ms/im): 598.8 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -53,7 +53,7 @@ Models: - Name: gcnet_r101-d8_769x769_40k_cityscapes In Collection: GCNet Metadata: - inference time (fps): 1.13 + inference time (ms/im): 884.96 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -67,7 +67,7 @@ Models: - Name: gcnet_r50-d8_512x1024_80k_cityscapes In Collection: GCNet Metadata: - inference time (fps): 3.93 + inference time (ms/im): 254.45 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -81,7 +81,7 @@ Models: - Name: gcnet_r101-d8_512x1024_80k_cityscapes In Collection: GCNet Metadata: - inference time (fps): 2.61 + inference time (ms/im): 383.14 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -95,7 +95,7 @@ Models: - Name: gcnet_r50-d8_769x769_80k_cityscapes In Collection: GCNet Metadata: - inference time (fps): 1.67 + inference time (ms/im): 598.8 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -109,7 +109,7 @@ Models: - Name: gcnet_r101-d8_769x769_80k_cityscapes In Collection: GCNet Metadata: - inference time (fps): 1.13 + inference time (ms/im): 884.96 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -123,7 +123,7 @@ Models: - Name: gcnet_r50-d8_512x512_80k_ade20k In Collection: GCNet Metadata: - inference time (fps): 23.38 + inference time (ms/im): 42.77 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -137,7 +137,7 @@ Models: - Name: gcnet_r101-d8_512x512_80k_ade20k In Collection: GCNet Metadata: - inference time (fps): 15.20 + inference time (ms/im): 65.79 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -151,7 +151,7 @@ Models: - Name: gcnet_r50-d8_512x512_160k_ade20k In Collection: GCNet Metadata: - inference time (fps): 23.38 + inference time (ms/im): 42.77 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -165,7 +165,7 @@ Models: - Name: gcnet_r101-d8_512x512_160k_ade20k In Collection: GCNet Metadata: - inference time (fps): 15.20 + inference time (ms/im): 65.79 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -179,7 +179,7 @@ Models: - Name: gcnet_r50-d8_512x512_20k_voc12aug In Collection: GCNet Metadata: - inference time (fps): 23.35 + inference time (ms/im): 42.83 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -193,7 +193,7 @@ Models: - Name: gcnet_r101-d8_512x512_20k_voc12aug In Collection: GCNet Metadata: - inference time (fps): 14.80 + inference time (ms/im): 67.57 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -207,7 +207,7 @@ Models: - Name: gcnet_r50-d8_512x512_40k_voc12aug In Collection: GCNet Metadata: - inference time (fps): 23.35 + inference time (ms/im): 42.83 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -221,7 +221,7 @@ Models: - Name: gcnet_r101-d8_512x512_40k_voc12aug In Collection: GCNet Metadata: - inference time (fps): 14.80 + inference time (ms/im): 67.57 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug diff --git a/configs/hrnet/metafile.yml b/configs/hrnet/metafile.yml index d2ac3bfa47..e96a05919b 100644 --- a/configs/hrnet/metafile.yml +++ b/configs/hrnet/metafile.yml @@ -2,7 +2,7 @@ Models: - Name: fcn_hr18s_512x1024_40k_cityscapes In Collection: FCN Metadata: - inference time (fps): 23.74 + inference time (ms/im): 42.12 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -16,7 +16,7 @@ Models: - Name: fcn_hr18_512x1024_40k_cityscapes In Collection: FCN Metadata: - inference time (fps): 12.97 + inference time (ms/im): 77.1 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -30,7 +30,7 @@ Models: - Name: fcn_hr48_512x1024_40k_cityscapes In Collection: FCN Metadata: - inference time (fps): 6.42 + inference time (ms/im): 155.76 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -44,7 +44,7 @@ Models: - Name: fcn_hr18s_512x1024_80k_cityscapes In Collection: FCN Metadata: - inference time (fps): 23.74 + inference time (ms/im): 42.12 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -58,7 +58,7 @@ Models: - Name: fcn_hr18_512x1024_80k_cityscapes In Collection: FCN Metadata: - inference time (fps): 12.97 + inference time (ms/im): 77.1 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -72,7 +72,7 @@ Models: - Name: fcn_hr48_512x1024_80k_cityscapes In Collection: FCN Metadata: - inference time (fps): 6.42 + inference time (ms/im): 155.76 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -86,7 +86,7 @@ Models: - Name: fcn_hr18s_512x1024_160k_cityscapes In Collection: FCN Metadata: - inference time (fps): 23.74 + inference time (ms/im): 42.12 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -100,7 +100,7 @@ Models: - Name: fcn_hr18_512x1024_160k_cityscapes In Collection: FCN Metadata: - inference time (fps): 12.97 + inference time (ms/im): 77.1 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -114,7 +114,7 @@ Models: - Name: fcn_hr48_512x1024_160k_cityscapes In Collection: FCN Metadata: - inference time (fps): 6.42 + inference time (ms/im): 155.76 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -128,7 +128,7 @@ Models: - Name: fcn_hr18s_512x512_80k_ade20k In Collection: FCN Metadata: - inference time (fps): 38.66 + inference time (ms/im): 25.87 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -142,7 +142,7 @@ Models: - Name: fcn_hr18_512x512_80k_ade20k In Collection: FCN Metadata: - inference time (fps): 22.57 + inference time (ms/im): 44.31 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -156,7 +156,7 @@ Models: - Name: fcn_hr48_512x512_80k_ade20k In Collection: FCN Metadata: - inference time (fps): 21.23 + inference time (ms/im): 47.1 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -170,7 +170,7 @@ Models: - Name: fcn_hr18s_512x512_160k_ade20k In Collection: FCN Metadata: - inference time (fps): 38.66 + inference time (ms/im): 25.87 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -184,7 +184,7 @@ Models: - Name: fcn_hr18_512x512_160k_ade20k In Collection: FCN Metadata: - inference time (fps): 22.57 + inference time (ms/im): 44.31 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -198,7 +198,7 @@ Models: - Name: fcn_hr48_512x512_160k_ade20k In Collection: FCN Metadata: - inference time (fps): 21.23 + inference time (ms/im): 47.1 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -212,7 +212,7 @@ Models: - Name: fcn_hr18s_512x512_20k_voc12aug In Collection: FCN Metadata: - inference time (fps): 43.36 + inference time (ms/im): 23.06 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -226,7 +226,7 @@ Models: - Name: fcn_hr18_512x512_20k_voc12aug In Collection: FCN Metadata: - inference time (fps): 23.48 + inference time (ms/im): 42.59 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -240,7 +240,7 @@ Models: - Name: fcn_hr48_512x512_20k_voc12aug In Collection: FCN Metadata: - inference time (fps): 22.05 + inference time (ms/im): 45.35 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -254,7 +254,7 @@ Models: - Name: fcn_hr18s_512x512_40k_voc12aug In Collection: FCN Metadata: - inference time (fps): 43.36 + inference time (ms/im): 23.06 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -268,7 +268,7 @@ Models: - Name: fcn_hr18_512x512_40k_voc12aug In Collection: FCN Metadata: - inference time (fps): 23.48 + inference time (ms/im): 42.59 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -282,7 +282,7 @@ Models: - Name: fcn_hr48_512x512_40k_voc12aug In Collection: FCN Metadata: - inference time (fps): 22.05 + inference time (ms/im): 45.35 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -296,7 +296,7 @@ Models: - Name: fcn_hr48_480x480_40k_pascal_context In Collection: FCN Metadata: - inference time (fps): 8.86 + inference time (ms/im): 112.87 Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -310,7 +310,7 @@ Models: - Name: fcn_hr48_480x480_80k_pascal_context In Collection: FCN Metadata: - inference time (fps): 8.86 + inference time (ms/im): 112.87 Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -324,7 +324,7 @@ Models: - Name: fcn_hr48_480x480_40k_pascal_context_59 In Collection: FCN Metadata: - inference time (fps): None + inference time (ms/im): None Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -338,7 +338,7 @@ Models: - Name: fcn_hr48_480x480_80k_pascal_context In Collection: FCN Metadata: - inference time (fps): None + inference time (ms/im): None Results: - Task: Semantic Segmentation Dataset: Pascal Context diff --git a/configs/mobilenet_v2/metafile.yml b/configs/mobilenet_v2/metafile.yml index 7146869385..1379bbae9c 100644 --- a/configs/mobilenet_v2/metafile.yml +++ b/configs/mobilenet_v2/metafile.yml @@ -4,7 +4,7 @@ Models: - Name: fcn_m-v2-d8_512x1024_80k_cityscapes In Collection: FCN Metadata: - inference time (fps): 14.2 + inference time (ms/im): 70.42 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -18,7 +18,7 @@ Models: - Name: pspnet_m-v2-d8_512x1024_80k_cityscapes In Collection: PSPNet Metadata: - inference time (fps): 11.2 + inference time (ms/im): 89.29 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -32,7 +32,7 @@ Models: - Name: deeplabv3_m-v2-d8_512x1024_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (fps): 8.4 + inference time (ms/im): 119.05 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -46,7 +46,7 @@ Models: - Name: deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (fps): 8.4 + inference time (ms/im): 119.05 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -60,7 +60,7 @@ Models: - Name: fcn_m-v2-d8_512x512_160k_ade20k In Collection: FCN Metadata: - inference time (fps): 64.4 + inference time (ms/im): 15.53 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -74,7 +74,7 @@ Models: - Name: pspnet_m-v2-d8_512x512_160k_ade20k In Collection: PSPNet Metadata: - inference time (fps): 57.7 + inference time (ms/im): 17.33 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -88,7 +88,7 @@ Models: - Name: deeplabv3_m-v2-d8_512x512_160k_ade20k In Collection: DeepLabV3 Metadata: - inference time (fps): 39.9 + inference time (ms/im): 25.06 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -102,7 +102,7 @@ Models: - Name: deeplabv3plus_m-v2-d8_512x512_160k_ade20k In Collection: DeepLabV3+ Metadata: - inference time (fps): 43.1 + inference time (ms/im): 23.2 Results: - Task: Semantic Segmentation Dataset: ADE20K diff --git a/configs/mobilenet_v3/metafile.yml b/configs/mobilenet_v3/metafile.yml index efd700058e..a7134c712e 100644 --- a/configs/mobilenet_v3/metafile.yml +++ b/configs/mobilenet_v3/metafile.yml @@ -9,7 +9,7 @@ Models: - Name: lraspp_m-v3-d8_512x1024_320k_cityscapes In Collection: LRASPP Metadata: - inference time (fps): 15.22 + inference time (ms/im): 65.7 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -23,7 +23,7 @@ Models: - Name: lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes In Collection: LRASPP Metadata: - inference time (fps): 14.77 + inference time (ms/im): 67.7 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -37,7 +37,7 @@ Models: - Name: lraspp_m-v3s-d8_512x1024_320k_cityscapes In Collection: LRASPP Metadata: - inference time (fps): 23.64 + inference time (ms/im): 42.3 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -51,7 +51,7 @@ Models: - Name: lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes In Collection: LRASPP Metadata: - inference time (fps): 24.50 + inference time (ms/im): 40.82 Results: - Task: Semantic Segmentation Dataset: Cityscapes diff --git a/configs/nonlocal_net/metafile.yml b/configs/nonlocal_net/metafile.yml index 0f41ac015e..c78fc30594 100644 --- a/configs/nonlocal_net/metafile.yml +++ b/configs/nonlocal_net/metafile.yml @@ -11,7 +11,7 @@ Models: - Name: nonlocal_r50-d8_512x1024_40k_cityscapes In Collection: NonLocal Metadata: - inference time (fps): 2.72 + inference time (ms/im): 367.65 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -25,7 +25,7 @@ Models: - Name: nonlocal_r101-d8_512x1024_40k_cityscapes In Collection: NonLocal Metadata: - inference time (fps): 1.95 + inference time (ms/im): 512.82 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -39,7 +39,7 @@ Models: - Name: nonlocal_r50-d8_769x769_40k_cityscapes In Collection: NonLocal Metadata: - inference time (fps): 1.52 + inference time (ms/im): 657.89 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -53,7 +53,7 @@ Models: - Name: nonlocal_r101-d8_769x769_40k_cityscapes In Collection: NonLocal Metadata: - inference time (fps): 1.05 + inference time (ms/im): 952.38 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -67,7 +67,7 @@ Models: - Name: nonlocal_r50-d8_512x1024_80k_cityscapes In Collection: NonLocal Metadata: - inference time (fps): 2.72 + inference time (ms/im): 367.65 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -81,7 +81,7 @@ Models: - Name: nonlocal_r101-d8_512x1024_80k_cityscapes In Collection: NonLocal Metadata: - inference time (fps): 1.95 + inference time (ms/im): 512.82 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -95,7 +95,7 @@ Models: - Name: nonlocal_r50-d8_769x769_80k_cityscapes In Collection: NonLocal Metadata: - inference time (fps): 1.52 + inference time (ms/im): 657.89 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -109,7 +109,7 @@ Models: - Name: nonlocal_r101-d8_769x769_80k_cityscapes In Collection: NonLocal Metadata: - inference time (fps): 1.05 + inference time (ms/im): 952.38 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -123,7 +123,7 @@ Models: - Name: nonlocal_r50-d8_512x512_80k_ade20k In Collection: NonLocal Metadata: - inference time (fps): 21.37 + inference time (ms/im): 46.79 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -137,7 +137,7 @@ Models: - Name: nonlocal_r101-d8_512x512_80k_ade20k In Collection: NonLocal Metadata: - inference time (fps): 13.97 + inference time (ms/im): 71.58 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -151,7 +151,7 @@ Models: - Name: nonlocal_r50-d8_512x512_160k_ade20k In Collection: NonLocal Metadata: - inference time (fps): 21.37 + inference time (ms/im): 46.79 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -165,7 +165,7 @@ Models: - Name: nonlocal_r101-d8_512x512_160k_ade20k In Collection: NonLocal Metadata: - inference time (fps): 13.97 + inference time (ms/im): 71.58 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -179,7 +179,7 @@ Models: - Name: nonlocal_r50-d8_512x512_20k_voc12aug In Collection: NonLocal Metadata: - inference time (fps): 21.21 + inference time (ms/im): 47.15 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -193,7 +193,7 @@ Models: - Name: nonlocal_r101-d8_512x512_20k_voc12aug In Collection: NonLocal Metadata: - inference time (fps): 14.01 + inference time (ms/im): 71.38 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -207,7 +207,7 @@ Models: - Name: nonlocal_r50-d8_512x512_40k_voc12aug In Collection: NonLocal Metadata: - inference time (fps): 21.21 + inference time (ms/im): 47.15 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -221,7 +221,7 @@ Models: - Name: nonlocal_r101-d8_512x512_40k_voc12aug In Collection: NonLocal Metadata: - inference time (fps): 14.01 + inference time (ms/im): 71.38 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug diff --git a/configs/ocrnet/metafile.yml b/configs/ocrnet/metafile.yml index fcdf72d791..1ba52dee18 100644 --- a/configs/ocrnet/metafile.yml +++ b/configs/ocrnet/metafile.yml @@ -11,7 +11,7 @@ Models: - Name: ocrnet_hr18s_512x1024_40k_cityscapes In Collection: OCRNet Metadata: - inference time (fps): 10.45 + inference time (ms/im): 95.69 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -25,7 +25,7 @@ Models: - Name: ocrnet_hr18_512x1024_40k_cityscapes In Collection: OCRNet Metadata: - inference time (fps): 7.50 + inference time (ms/im): 133.33 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -39,7 +39,7 @@ Models: - Name: ocrnet_hr48_512x1024_40k_cityscapes In Collection: OCRNet Metadata: - inference time (fps): 4.22 + inference time (ms/im): 236.97 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -53,7 +53,7 @@ Models: - Name: ocrnet_hr18s_512x1024_80k_cityscapes In Collection: OCRNet Metadata: - inference time (fps): 10.45 + inference time (ms/im): 95.69 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -67,7 +67,7 @@ Models: - Name: ocrnet_hr18_512x1024_80k_cityscapes In Collection: OCRNet Metadata: - inference time (fps): 7.50 + inference time (ms/im): 133.33 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -81,7 +81,7 @@ Models: - Name: ocrnet_hr48_512x1024_80k_cityscapes In Collection: OCRNet Metadata: - inference time (fps): 4.22 + inference time (ms/im): 236.97 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -95,7 +95,7 @@ Models: - Name: ocrnet_hr18s_512x1024_160k_cityscapes In Collection: OCRNet Metadata: - inference time (fps): 10.45 + inference time (ms/im): 95.69 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -109,7 +109,7 @@ Models: - Name: ocrnet_hr18_512x1024_160k_cityscapes In Collection: OCRNet Metadata: - inference time (fps): 7.50 + inference time (ms/im): 133.33 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -123,7 +123,7 @@ Models: - Name: ocrnet_hr48_512x1024_160k_cityscapes In Collection: OCRNet Metadata: - inference time (fps): 4.22 + inference time (ms/im): 236.97 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -137,7 +137,7 @@ Models: - Name: ocrnet_r101-d8_512x1024_40k_b8_cityscapes In Collection: OCRNet Metadata: - inference time (fps): None + inference time (ms/im): None Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -151,7 +151,7 @@ Models: - Name: ocrnet_r101-d8_512x1024_40k_b16_cityscapes In Collection: OCRNet Metadata: - inference time (fps): 8.8 + inference time (ms/im): 113.64 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -165,7 +165,7 @@ Models: - Name: ocrnet_r101-d8_512x1024_80k_b16_cityscapes In Collection: OCRNet Metadata: - inference time (fps): 8.8 + inference time (ms/im): 113.64 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -179,7 +179,7 @@ Models: - Name: ocrnet_hr18s_512x512_80k_ade20k In Collection: OCRNet Metadata: - inference time (fps): 28.98 + inference time (ms/im): 34.51 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -193,7 +193,7 @@ Models: - Name: ocrnet_hr18_512x512_80k_ade20k In Collection: OCRNet Metadata: - inference time (fps): 18.93 + inference time (ms/im): 52.83 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -207,7 +207,7 @@ Models: - Name: ocrnet_hr48_512x512_80k_ade20k In Collection: OCRNet Metadata: - inference time (fps): 16.99 + inference time (ms/im): 58.86 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -221,7 +221,7 @@ Models: - Name: ocrnet_hr18s_512x512_160k_ade20k In Collection: OCRNet Metadata: - inference time (fps): 28.98 + inference time (ms/im): 34.51 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -235,7 +235,7 @@ Models: - Name: ocrnet_hr18_512x512_160k_ade20k In Collection: OCRNet Metadata: - inference time (fps): 18.93 + inference time (ms/im): 52.83 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -249,7 +249,7 @@ Models: - Name: ocrnet_hr48_512x512_160k_ade20k In Collection: OCRNet Metadata: - inference time (fps): 16.99 + inference time (ms/im): 58.86 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -263,7 +263,7 @@ Models: - Name: ocrnet_hr18s_512x512_20k_voc12aug In Collection: OCRNet Metadata: - inference time (fps): 31.55 + inference time (ms/im): 31.7 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -277,7 +277,7 @@ Models: - Name: ocrnet_hr18_512x512_20k_voc12aug In Collection: OCRNet Metadata: - inference time (fps): 19.91 + inference time (ms/im): 50.23 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -291,7 +291,7 @@ Models: - Name: ocrnet_hr48_512x512_20k_voc12aug In Collection: OCRNet Metadata: - inference time (fps): 17.83 + inference time (ms/im): 56.09 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -305,7 +305,7 @@ Models: - Name: ocrnet_hr18s_512x512_40k_voc12aug In Collection: OCRNet Metadata: - inference time (fps): 31.55 + inference time (ms/im): 31.7 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -319,7 +319,7 @@ Models: - Name: ocrnet_hr18_512x512_40k_voc12aug In Collection: OCRNet Metadata: - inference time (fps): 19.91 + inference time (ms/im): 50.23 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -333,7 +333,7 @@ Models: - Name: ocrnet_hr48_512x512_40k_voc12aug In Collection: OCRNet Metadata: - inference time (fps): 17.83 + inference time (ms/im): 56.09 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug diff --git a/configs/point_rend/metafile.yml b/configs/point_rend/metafile.yml index aba00e0931..6a92fd489d 100644 --- a/configs/point_rend/metafile.yml +++ b/configs/point_rend/metafile.yml @@ -10,7 +10,7 @@ Models: - Name: pointrend_r50_512x1024_80k_cityscapes In Collection: PointRend Metadata: - inference time (fps): 8.48 + inference time (ms/im): 117.92 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -24,7 +24,7 @@ Models: - Name: pointrend_r101_512x1024_80k_cityscapes In Collection: PointRend Metadata: - inference time (fps): 7.00 + inference time (ms/im): 142.86 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -38,7 +38,7 @@ Models: - Name: pointrend_r50_512x512_160k_ade20k In Collection: PointRend Metadata: - inference time (fps): 17.31 + inference time (ms/im): 57.77 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -52,7 +52,7 @@ Models: - Name: pointrend_r101_512x512_160k_ade20k In Collection: PointRend Metadata: - inference time (fps): 15.50 + inference time (ms/im): 64.52 Results: - Task: Semantic Segmentation Dataset: ADE20K diff --git a/configs/psanet/metafile.yml b/configs/psanet/metafile.yml index 7e2b3138ba..801fcb4e6e 100644 --- a/configs/psanet/metafile.yml +++ b/configs/psanet/metafile.yml @@ -11,7 +11,7 @@ Models: - Name: psanet_r50-d8_512x1024_40k_cityscapes In Collection: PSANet Metadata: - inference time (fps): 3.17 + inference time (ms/im): 315.46 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -25,7 +25,7 @@ Models: - Name: psanet_r101-d8_512x1024_40k_cityscapes In Collection: PSANet Metadata: - inference time (fps): 2.20 + inference time (ms/im): 454.55 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -39,7 +39,7 @@ Models: - Name: psanet_r50-d8_769x769_40k_cityscapes In Collection: PSANet Metadata: - inference time (fps): 1.40 + inference time (ms/im): 714.29 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -53,7 +53,7 @@ Models: - Name: psanet_r101-d8_769x769_40k_cityscapes In Collection: PSANet Metadata: - inference time (fps): 0.98 + inference time (ms/im): 1020.41 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -67,7 +67,7 @@ Models: - Name: psanet_r50-d8_512x1024_80k_cityscapes In Collection: PSANet Metadata: - inference time (fps): 3.17 + inference time (ms/im): 315.46 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -81,7 +81,7 @@ Models: - Name: psanet_r101-d8_512x1024_80k_cityscapes In Collection: PSANet Metadata: - inference time (fps): 2.20 + inference time (ms/im): 454.55 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -95,7 +95,7 @@ Models: - Name: psanet_r50-d8_769x769_80k_cityscapes In Collection: PSANet Metadata: - inference time (fps): 1.40 + inference time (ms/im): 714.29 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -109,7 +109,7 @@ Models: - Name: psanet_r101-d8_769x769_80k_cityscapes In Collection: PSANet Metadata: - inference time (fps): 0.98 + inference time (ms/im): 1020.41 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -123,7 +123,7 @@ Models: - Name: psanet_r50-d8_512x512_80k_ade20k In Collection: PSANet Metadata: - inference time (fps): 18.91 + inference time (ms/im): 52.88 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -137,7 +137,7 @@ Models: - Name: psanet_r101-d8_512x512_80k_ade20k In Collection: PSANet Metadata: - inference time (fps): 13.13 + inference time (ms/im): 76.16 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -151,7 +151,7 @@ Models: - Name: psanet_r50-d8_512x512_160k_ade20k In Collection: PSANet Metadata: - inference time (fps): 18.91 + inference time (ms/im): 52.88 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -165,7 +165,7 @@ Models: - Name: psanet_r101-d8_512x512_160k_ade20k In Collection: PSANet Metadata: - inference time (fps): 13.13 + inference time (ms/im): 76.16 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -179,7 +179,7 @@ Models: - Name: psanet_r50-d8_512x512_20k_voc12aug In Collection: PSANet Metadata: - inference time (fps): 18.24 + inference time (ms/im): 54.82 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -193,7 +193,7 @@ Models: - Name: psanet_r101-d8_512x512_20k_voc12aug In Collection: PSANet Metadata: - inference time (fps): 12.63 + inference time (ms/im): 79.18 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -207,7 +207,7 @@ Models: - Name: psanet_r50-d8_512x512_40k_voc12aug In Collection: PSANet Metadata: - inference time (fps): 18.24 + inference time (ms/im): 54.82 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -221,7 +221,7 @@ Models: - Name: psanet_r101-d8_512x512_40k_voc12aug In Collection: PSANet Metadata: - inference time (fps): 12.63 + inference time (ms/im): 79.18 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug diff --git a/configs/pspnet/metafile.yml b/configs/pspnet/metafile.yml index 4981f02c32..d5db5b713a 100644 --- a/configs/pspnet/metafile.yml +++ b/configs/pspnet/metafile.yml @@ -12,7 +12,7 @@ Models: - Name: pspnet_r50-d8_512x1024_40k_cityscapes In Collection: PSPNet Metadata: - inference time (fps): 4.07 + inference time (ms/im): 245.7 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -26,7 +26,7 @@ Models: - Name: pspnet_r101-d8_512x1024_40k_cityscapes In Collection: PSPNet Metadata: - inference time (fps): 2.68 + inference time (ms/im): 373.13 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -40,7 +40,7 @@ Models: - Name: pspnet_r50-d8_769x769_40k_cityscapes In Collection: PSPNet Metadata: - inference time (fps): 1.76 + inference time (ms/im): 568.18 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -54,7 +54,7 @@ Models: - Name: pspnet_r101-d8_769x769_40k_cityscapes In Collection: PSPNet Metadata: - inference time (fps): 1.15 + inference time (ms/im): 869.57 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -68,7 +68,7 @@ Models: - Name: pspnet_r18-d8_512x1024_80k_cityscapes In Collection: PSPNet Metadata: - inference time (fps): 15.71 + inference time (ms/im): 63.65 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -82,7 +82,7 @@ Models: - Name: pspnet_r50-d8_512x1024_80k_cityscapes In Collection: PSPNet Metadata: - inference time (fps): 4.07 + inference time (ms/im): 245.7 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -96,7 +96,7 @@ Models: - Name: pspnet_r101-d8_512x1024_80k_cityscapes In Collection: PSPNet Metadata: - inference time (fps): 2.68 + inference time (ms/im): 373.13 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -110,7 +110,7 @@ Models: - Name: pspnet_r18-d8_769x769_80k_cityscapes In Collection: PSPNet Metadata: - inference time (fps): 6.20 + inference time (ms/im): 161.29 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -124,7 +124,7 @@ Models: - Name: pspnet_r50-d8_769x769_80k_cityscapes In Collection: PSPNet Metadata: - inference time (fps): 1.76 + inference time (ms/im): 568.18 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -138,7 +138,7 @@ Models: - Name: pspnet_r101-d8_769x769_80k_cityscapes In Collection: PSPNet Metadata: - inference time (fps): 1.15 + inference time (ms/im): 869.57 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -152,7 +152,7 @@ Models: - Name: pspnet_r18b-d8_512x1024_80k_cityscapes In Collection: PSPNet Metadata: - inference time (fps): 16.28 + inference time (ms/im): 61.43 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -166,7 +166,7 @@ Models: - Name: pspnet_r50b-d8_512x1024_80k_cityscapes In Collection: PSPNet Metadata: - inference time (fps): 4.30 + inference time (ms/im): 232.56 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -180,7 +180,7 @@ Models: - Name: pspnet_r101b-d8_512x1024_80k_cityscapes In Collection: PSPNet Metadata: - inference time (fps): 2.76 + inference time (ms/im): 362.32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -194,7 +194,7 @@ Models: - Name: pspnet_r18b-d8_769x769_80k_cityscapes In Collection: PSPNet Metadata: - inference time (fps): 6.41 + inference time (ms/im): 156.01 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -208,7 +208,7 @@ Models: - Name: pspnet_r50b-d8_769x769_80k_cityscapes In Collection: PSPNet Metadata: - inference time (fps): 1.88 + inference time (ms/im): 531.91 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -222,7 +222,7 @@ Models: - Name: pspnet_r101b-d8_769x769_80k_cityscapes In Collection: PSPNet Metadata: - inference time (fps): 1.17 + inference time (ms/im): 854.7 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -236,7 +236,7 @@ Models: - Name: pspnet_r50-d8_512x512_80k_ade20k In Collection: PSPNet Metadata: - inference time (fps): 23.53 + inference time (ms/im): 42.5 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -250,7 +250,7 @@ Models: - Name: pspnet_r101-d8_512x512_80k_ade20k In Collection: PSPNet Metadata: - inference time (fps): 15.30 + inference time (ms/im): 65.36 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -264,7 +264,7 @@ Models: - Name: pspnet_r50-d8_512x512_160k_ade20k In Collection: PSPNet Metadata: - inference time (fps): 23.53 + inference time (ms/im): 42.5 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -278,7 +278,7 @@ Models: - Name: pspnet_r101-d8_512x512_160k_ade20k In Collection: PSPNet Metadata: - inference time (fps): 15.30 + inference time (ms/im): 65.36 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -292,7 +292,7 @@ Models: - Name: pspnet_r50-d8_512x512_20k_voc12aug In Collection: PSPNet Metadata: - inference time (fps): 23.59 + inference time (ms/im): 42.39 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -306,7 +306,7 @@ Models: - Name: pspnet_r101-d8_512x512_20k_voc12aug In Collection: PSPNet Metadata: - inference time (fps): 15.02 + inference time (ms/im): 66.58 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -320,7 +320,7 @@ Models: - Name: pspnet_r50-d8_512x512_40k_voc12aug In Collection: PSPNet Metadata: - inference time (fps): 23.59 + inference time (ms/im): 42.39 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -334,7 +334,7 @@ Models: - Name: pspnet_r101-d8_512x512_40k_voc12aug In Collection: PSPNet Metadata: - inference time (fps): 15.02 + inference time (ms/im): 66.58 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -348,7 +348,7 @@ Models: - Name: pspnet_r101-d8_480x480_40k_pascal_context In Collection: PSPNet Metadata: - inference time (fps): 9.68 + inference time (ms/im): 103.31 Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -362,7 +362,7 @@ Models: - Name: pspnet_r101-d8_480x480_80k_pascal_context In Collection: PSPNet Metadata: - inference time (fps): 9.68 + inference time (ms/im): 103.31 Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -376,7 +376,7 @@ Models: - Name: pspnet_r101-d8_480x480_40k_pascal_context In Collection: PSPNet Metadata: - inference time (fps): None + inference time (ms/im): None Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -390,7 +390,7 @@ Models: - Name: pspnet_r101-d8_480x480_80k_pascal_context_59 In Collection: PSPNet Metadata: - inference time (fps): None + inference time (ms/im): None Results: - Task: Semantic Segmentation Dataset: Pascal Context diff --git a/configs/resnest/metafile.yml b/configs/resnest/metafile.yml index d6775ac9d5..598d61fb50 100644 --- a/configs/resnest/metafile.yml +++ b/configs/resnest/metafile.yml @@ -10,7 +10,7 @@ Models: - Name: fcn_s101-d8_512x1024_80k_cityscapes In Collection: FCN Metadata: - inference time (fps): 2.39 + inference time (ms/im): 418.41 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -24,7 +24,7 @@ Models: - Name: pspnet_s101-d8_512x1024_80k_cityscapes In Collection: PSPNet Metadata: - inference time (fps): 2.52 + inference time (ms/im): 396.83 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -38,7 +38,7 @@ Models: - Name: deeplabv3_s101-d8_512x1024_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (fps): 1.88 + inference time (ms/im): 531.91 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -52,7 +52,7 @@ Models: - Name: deeplabv3plus_s101-d8_512x1024_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (fps): 2.36 + inference time (ms/im): 423.73 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -66,7 +66,7 @@ Models: - Name: fcn_s101-d8_512x512_160k_ade20k In Collection: FCN Metadata: - inference time (fps): 12.86 + inference time (ms/im): 77.76 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -80,7 +80,7 @@ Models: - Name: pspnet_s101-d8_512x512_160k_ade20k In Collection: PSPNet Metadata: - inference time (fps): 13.02 + inference time (ms/im): 76.8 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -94,7 +94,7 @@ Models: - Name: deeplabv3_s101-d8_512x512_160k_ade20k In Collection: DeepLabV3 Metadata: - inference time (fps): 9.28 + inference time (ms/im): 107.76 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -108,7 +108,7 @@ Models: - Name: deeplabv3plus_s101-d8_512x512_160k_ade20k In Collection: DeepLabV3+ Metadata: - inference time (fps): 11.96 + inference time (ms/im): 83.61 Results: - Task: Semantic Segmentation Dataset: ADE20K diff --git a/configs/sem_fpn/metafile.yml b/configs/sem_fpn/metafile.yml index 781589ac0b..b6a019d582 100644 --- a/configs/sem_fpn/metafile.yml +++ b/configs/sem_fpn/metafile.yml @@ -11,7 +11,7 @@ Models: - Name: fpn_r50_512x1024_80k_cityscapes In Collection: FPN Metadata: - inference time (fps): 13.54 + inference time (ms/im): 73.86 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -25,7 +25,7 @@ Models: - Name: fpn_r101_512x1024_80k_cityscapes In Collection: FPN Metadata: - inference time (fps): 10.29 + inference time (ms/im): 97.18 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -39,7 +39,7 @@ Models: - Name: fpn_r50_512x512_160k_ade20k In Collection: FPN Metadata: - inference time (fps): 55.77 + inference time (ms/im): 17.93 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -53,7 +53,7 @@ Models: - Name: fpn_r101_512x512_160k_ade20k In Collection: FPN Metadata: - inference time (fps): 40.58 + inference time (ms/im): 24.64 Results: - Task: Semantic Segmentation Dataset: ADE20K diff --git a/configs/unet/metafile.yml b/configs/unet/metafile.yml index 51058d00af..8c9bfc3e83 100644 --- a/configs/unet/metafile.yml +++ b/configs/unet/metafile.yml @@ -3,7 +3,7 @@ Models: - Name: fcn_unet_s5-d16_64x64_40k_drive In Collection: FCN Metadata: - inference time (fps): None + inference time (ms/im): None Results: - Task: Semantic Segmentation Dataset: DRIVE @@ -17,7 +17,7 @@ Models: - Name: pspnet_unet_s5-d16_64x64_40k_drive In Collection: PSPNet Metadata: - inference time (fps): None + inference time (ms/im): None Results: - Task: Semantic Segmentation Dataset: DRIVE @@ -31,7 +31,7 @@ Models: - Name: deeplabv3_unet_s5-d16_64x64_40k_drive In Collection: DeepLabV3 Metadata: - inference time (fps): None + inference time (ms/im): None Results: - Task: Semantic Segmentation Dataset: DRIVE @@ -45,7 +45,7 @@ Models: - Name: fcn_unet_s5-d16_128x128_40k_stare In Collection: FCN Metadata: - inference time (fps): None + inference time (ms/im): None Results: - Task: Semantic Segmentation Dataset: STARE @@ -59,7 +59,7 @@ Models: - Name: pspnet_unet_s5-d16_128x128_40k_stare In Collection: PSPNet Metadata: - inference time (fps): None + inference time (ms/im): None Results: - Task: Semantic Segmentation Dataset: STARE @@ -73,7 +73,7 @@ Models: - Name: deeplabv3_unet_s5-d16_128x128_40k_stare In Collection: DeepLabV3 Metadata: - inference time (fps): None + inference time (ms/im): None Results: - Task: Semantic Segmentation Dataset: STARE @@ -87,7 +87,7 @@ Models: - Name: fcn_unet_s5-d16_128x128_40k_chase_db1 In Collection: FCN Metadata: - inference time (fps): None + inference time (ms/im): None Results: - Task: Semantic Segmentation Dataset: CHASE_DB1 @@ -101,7 +101,7 @@ Models: - Name: pspnet_unet_s5-d16_128x128_40k_chase_db1 In Collection: PSPNet Metadata: - inference time (fps): None + inference time (ms/im): None Results: - Task: Semantic Segmentation Dataset: CHASE_DB1 @@ -115,7 +115,7 @@ Models: - Name: deeplabv3_unet_s5-d16_128x128_40k_chase_db1 In Collection: DeepLabV3 Metadata: - inference time (fps): None + inference time (ms/im): None Results: - Task: Semantic Segmentation Dataset: CHASE_DB1 @@ -129,7 +129,7 @@ Models: - Name: fcn_unet_s5-d16_256x256_40k_hrf In Collection: FCN Metadata: - inference time (fps): None + inference time (ms/im): None Results: - Task: Semantic Segmentation Dataset: HRF @@ -143,7 +143,7 @@ Models: - Name: pspnet_unet_s5-d16_256x256_40k_hrf In Collection: PSPNet Metadata: - inference time (fps): None + inference time (ms/im): None Results: - Task: Semantic Segmentation Dataset: HRF @@ -157,7 +157,7 @@ Models: - Name: deeplabv3_unet_s5-d16_256x256_40k_hrf In Collection: DeepLabV3 Metadata: - inference time (fps): None + inference time (ms/im): None Results: - Task: Semantic Segmentation Dataset: HRF diff --git a/configs/upernet/metafile.yml b/configs/upernet/metafile.yml index 315c25568e..3bf226af8c 100644 --- a/configs/upernet/metafile.yml +++ b/configs/upernet/metafile.yml @@ -11,7 +11,7 @@ Models: - Name: upernet_r50_512x1024_40k_cityscapes In Collection: UPerNet Metadata: - inference time (fps): 4.25 + inference time (ms/im): 235.29 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -25,7 +25,7 @@ Models: - Name: upernet_r101_512x1024_40k_cityscapes In Collection: UPerNet Metadata: - inference time (fps): 3.79 + inference time (ms/im): 263.85 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -39,7 +39,7 @@ Models: - Name: upernet_r50_769x769_40k_cityscapes In Collection: UPerNet Metadata: - inference time (fps): 1.76 + inference time (ms/im): 568.18 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -53,7 +53,7 @@ Models: - Name: upernet_r101_769x769_40k_cityscapes In Collection: UPerNet Metadata: - inference time (fps): 1.56 + inference time (ms/im): 641.03 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -67,7 +67,7 @@ Models: - Name: upernet_r50_512x1024_80k_cityscapes In Collection: UPerNet Metadata: - inference time (fps): 4.25 + inference time (ms/im): 235.29 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -81,7 +81,7 @@ Models: - Name: upernet_r101_512x1024_80k_cityscapes In Collection: UPerNet Metadata: - inference time (fps): 3.79 + inference time (ms/im): 263.85 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -95,7 +95,7 @@ Models: - Name: upernet_r50_769x769_80k_cityscapes In Collection: UPerNet Metadata: - inference time (fps): 1.76 + inference time (ms/im): 568.18 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -109,7 +109,7 @@ Models: - Name: upernet_r101_769x769_80k_cityscapes In Collection: UPerNet Metadata: - inference time (fps): 1.56 + inference time (ms/im): 641.03 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -123,7 +123,7 @@ Models: - Name: upernet_r50_512x512_80k_ade20k In Collection: UPerNet Metadata: - inference time (fps): 23.40 + inference time (ms/im): 42.74 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -137,7 +137,7 @@ Models: - Name: upernet_r101_512x512_80k_ade20k In Collection: UPerNet Metadata: - inference time (fps): 20.34 + inference time (ms/im): 49.16 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -151,7 +151,7 @@ Models: - Name: upernet_r50_512x512_160k_ade20k In Collection: UPerNet Metadata: - inference time (fps): 23.40 + inference time (ms/im): 42.74 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -165,7 +165,7 @@ Models: - Name: upernet_r101_512x512_160k_ade20k In Collection: UPerNet Metadata: - inference time (fps): 20.34 + inference time (ms/im): 49.16 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -179,7 +179,7 @@ Models: - Name: upernet_r50_512x512_20k_voc12aug In Collection: UPerNet Metadata: - inference time (fps): 23.17 + inference time (ms/im): 43.16 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -193,7 +193,7 @@ Models: - Name: upernet_r101_512x512_20k_voc12aug In Collection: UPerNet Metadata: - inference time (fps): 19.98 + inference time (ms/im): 50.05 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -207,7 +207,7 @@ Models: - Name: upernet_r50_512x512_40k_voc12aug In Collection: UPerNet Metadata: - inference time (fps): 23.17 + inference time (ms/im): 43.16 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -221,7 +221,7 @@ Models: - Name: upernet_r101_512x512_40k_voc12aug In Collection: UPerNet Metadata: - inference time (fps): 19.98 + inference time (ms/im): 50.05 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug From 87dac0fe82b5248aad0540a34aec54bdbff4f8f2 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Mon, 21 Jun 2021 22:31:59 +0800 Subject: [PATCH 161/706] add_pr_template --- .github/pull_request_template.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .github/pull_request_template.md diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000000..84ddcb9ffc --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,21 @@ +Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily get feedback. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers. + +## Motivation +Please describe the motivation of this PR and the goal you want to achieve through this PR. + +## Modification +Please briefly describe what modification is made in this PR. + +## BC-breaking (Optional) +Does the modification introduce changes that break the back-compatibility of the downstream repos? +If so, please describe how it breaks the compatibility and how the downstream projects should modify their code to keep compatibility with this PR. + +## Use cases (Optional) +If this PR introduces a new feature, it is better to list some use cases here, and update the documentation. + +## Checklist + +1. Pre-commit or other linting tools are used to fix the potential lint issues. +2. The modification is covered by complete unit tests. If not, please add more unit test to ensure the correctness. +3. If the modification has potential influence on downstream projects, this PR should be tested with downstream projects, like MMDet or MMDet3D. +4. The documentation has been modified accordingly, like docstring or example tutorials. \ No newline at end of file From 52a8112d60dc19525136b311ad7d3f2bbf610439 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Tue, 22 Jun 2021 00:41:31 +0800 Subject: [PATCH 162/706] fix lint error --- .github/pull_request_template.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 84ddcb9ffc..670b486479 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,16 +1,20 @@ Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily get feedback. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers. ## Motivation + Please describe the motivation of this PR and the goal you want to achieve through this PR. ## Modification + Please briefly describe what modification is made in this PR. ## BC-breaking (Optional) + Does the modification introduce changes that break the back-compatibility of the downstream repos? If so, please describe how it breaks the compatibility and how the downstream projects should modify their code to keep compatibility with this PR. ## Use cases (Optional) + If this PR introduces a new feature, it is better to list some use cases here, and update the documentation. ## Checklist @@ -18,4 +22,4 @@ If this PR introduces a new feature, it is better to list some use cases here, a 1. Pre-commit or other linting tools are used to fix the potential lint issues. 2. The modification is covered by complete unit tests. If not, please add more unit test to ensure the correctness. 3. If the modification has potential influence on downstream projects, this PR should be tested with downstream projects, like MMDet or MMDet3D. -4. The documentation has been modified accordingly, like docstring or example tutorials. \ No newline at end of file +4. The documentation has been modified accordingly, like docstring or example tutorials. From 7eeb0aa56a1ae696a1375dce957dfc6135793f8a Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Tue, 22 Jun 2021 19:07:55 +0800 Subject: [PATCH 163/706] fix typos --- .github/pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 670b486479..09d5305ede 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -10,7 +10,7 @@ Please briefly describe what modification is made in this PR. ## BC-breaking (Optional) -Does the modification introduce changes that break the back-compatibility of the downstream repos? +Does the modification introduce changes that break the backward-compatibility of the downstream repos? If so, please describe how it breaks the compatibility and how the downstream projects should modify their code to keep compatibility with this PR. ## Use cases (Optional) From 5876868a48a267fb48e99e35179ac55ea7455cd0 Mon Sep 17 00:00:00 2001 From: Sixiao Zheng <34769435+sixiaozheng@users.noreply.github.com> Date: Thu, 24 Jun 2021 00:39:29 +0800 Subject: [PATCH 164/706] [Feature] Official implementation of SETR (#531) * Adjust vision transformer backbone architectures; * Add DropPath, trunc_normal_ for VisionTransformer implementation; * Add class token buring intermediate period and remove it during final period; * Fix some parameters loss bug; * * Store intermediate token features and impose no processes on them; * Remove class token and reshape entire token feature from NLC to NCHW; * Fix some doc error * Add a arg for VisionTransformer backbone to control if input class token into transformer; * Add stochastic depth decay rule for DropPath; * * Fix output bug when input_cls_token=False; * Add related unit test; * Re-implement of SETR * Add two head -- SETRUPHead (Naive, PUP) & SETRMLAHead (MLA); * * Modify some docs of heads of SETR; * Add MLA auxiliary head of SETR; * * Modify some arg of setr heads; * Add unit test for setr heads; * * Add 768x768 cityscapes dataset config; * Add Backbone: SETR -- Backbone: MLA, PUP, Naive; * Add SETR cityscapes training & testing config; * * Fix the low code coverage of unit test about heads of setr; * Remove some rebundant error capture; * * Add pascal context dataset & ade20k dataset config; * Modify auxiliary head relative config; * Modify folder structure. * add setr * modify vit * Fix the test_cfg arg position; * Fix some learning schedule bug; * optimize setr code * Add arg: final_reshape to control if converting output feature information from NLC to NCHW; * Fix the default value of final_reshape; * Modify arg: final_reshape to arg: out_shape; * Fix some unit test bug; * Add MLA neck; * Modify setr configs to add MLA neck; * Modify MLA decode head to remove rebundant structure; * Remove some rebundant files. * * Fix the code style bug; * Remove some rebundant files; * Modify some unit tests of SETR; * Ignoring CityscapesCoarseDataset and MapillaryDataset. * Fix the activation function loss bug; * Fix the img_size bug of SETR_PUP_ADE20K * * Fix the lint bug of transformers.py; * Add mla neck unit test; * Convert vit of setr out shape from NLC to NCHW. * * Modify Resize action of data pipeline; * Fix deit related bug; * Set find_unused_parameters=False for pascal context dataset; * Remove arg: find_unused_parameters which is False by default. * Error auxiliary head of PUP deit * Remove the minimal restrict of slide inference. * Modify doc string of Resize * Seperate this part of code to a new PR #544 * * Remove some rebundant codes; * Modify unit tests of SETR heads; * Fix the tuple in_channels of mla_deit. * Modify code style * Move detailed definition of auxiliary head into model config dict; * Add some setr config for default cityscapes.py; * Fix the doc string of SETR head; * Modify implementation of SETR Heads * Remove setr aux head and use fcn head to replace it; * Remove arg: img_size and remove last interpolate op of heads; * Rename arg: conv3x3_conv1x1 to kernel_size of SETRUPHead; * non-square input support for setr heads * Modify config argument for above commits * Remove norm_layer argument of SETRMLAHead * Add mla_align_corners for MLAModule interpolate * [Refactor]Refactor of SETRMLAHead * Modify Head implementation; * Modify Head unit test; * Modify related config file; * [Refactor]MLA Neck * Fix config bug * [Refactor]SETR Naive Head and SETR PUP Head * [Fix]Fix the lack of arg: act_cfg and arg: norm_cfg * Fix config error * Refactor of SETR MLA, Naive, PUP heads. * Modify some attribute name of SETR Heads. * Modify setr configs to adapt new vit code. * Fix trunc_normal_ bug * Parameters init adjustment. * Remove redundant doc string of SETRUPHead * Fix pretrained bug * [Fix] Fix vit init bug * Add some vit unit tests * Modify module import * Remove norm from PatchEmbed * Fix pretrain weights bug * Modify pretrained judge * Fix some gradient backward bugs. * Add some unit tests to improve code cov * Fix init_weights of setr up head * Add DropPath in FFN * Finish benchmark of SETR 1. Add benchmark information into README.MD of SETR; 2. Fix some name bugs of vit; * Remove DropPath implementation and use DropPath from mmcv. * Modify out_indices arg * Fix out_indices bug. * Remove cityscapes base dataset config. Co-authored-by: sennnnn <201730271412@mail.scut.edu.cn> Co-authored-by: CuttlefishXuan --- configs/_base_/models/setr_mla.py | 96 ++++++++++++++ configs/_base_/models/setr_naive.py | 81 ++++++++++++ configs/_base_/models/setr_pup.py | 81 ++++++++++++ configs/setr/README.md | 25 ++++ .../setr/setr_mla_512x512_160k_b16_ade20k.py | 4 + .../setr/setr_mla_512x512_160k_b8_ade20k.py | 80 ++++++++++++ .../setr_naive_512x512_160k_b16_ade20k.py | 62 ++++++++++ .../setr/setr_pup_512x512_160k_b16_ade20k.py | 62 ++++++++++ mmseg/datasets/pipelines/transforms.py | 7 +- mmseg/models/backbones/vit.py | 64 +++++----- mmseg/models/decode_heads/__init__.py | 4 +- mmseg/models/decode_heads/setr_mla_head.py | 61 +++++++++ mmseg/models/decode_heads/setr_up_head.py | 75 +++++++++++ mmseg/models/necks/__init__.py | 3 +- mmseg/models/necks/mla_neck.py | 117 ++++++++++++++++++ mmseg/models/utils/__init__.py | 3 +- mmseg/models/utils/drop.py | 31 ----- .../test_heads/test_setr_mla_head.py | 62 ++++++++++ .../test_heads/test_setr_up_head.py | 54 ++++++++ tests/test_models/test_necks/test_mla_neck.py | 15 +++ tests/test_models/test_utils/test_drop.py | 28 ----- 21 files changed, 914 insertions(+), 101 deletions(-) create mode 100644 configs/_base_/models/setr_mla.py create mode 100644 configs/_base_/models/setr_naive.py create mode 100644 configs/_base_/models/setr_pup.py create mode 100644 configs/setr/README.md create mode 100644 configs/setr/setr_mla_512x512_160k_b16_ade20k.py create mode 100644 configs/setr/setr_mla_512x512_160k_b8_ade20k.py create mode 100644 configs/setr/setr_naive_512x512_160k_b16_ade20k.py create mode 100644 configs/setr/setr_pup_512x512_160k_b16_ade20k.py create mode 100644 mmseg/models/decode_heads/setr_mla_head.py create mode 100644 mmseg/models/decode_heads/setr_up_head.py create mode 100644 mmseg/models/necks/mla_neck.py delete mode 100644 mmseg/models/utils/drop.py create mode 100644 tests/test_models/test_heads/test_setr_mla_head.py create mode 100644 tests/test_models/test_heads/test_setr_up_head.py create mode 100644 tests/test_models/test_necks/test_mla_neck.py delete mode 100644 tests/test_models/test_utils/test_drop.py diff --git a/configs/_base_/models/setr_mla.py b/configs/_base_/models/setr_mla.py new file mode 100644 index 0000000000..facd255f97 --- /dev/null +++ b/configs/_base_/models/setr_mla.py @@ -0,0 +1,96 @@ +# model settings +backbone_norm_cfg = dict(type='LN', eps=1e-6, requires_grad=True) +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + type='EncoderDecoder', + pretrained=\ + 'https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-vitjx/jx_vit_large_p16_384-b3be5167.pth', # noqa + backbone=dict( + type='VisionTransformer', + img_size=(768, 768), + patch_size=16, + in_channels=3, + embed_dims=1024, + num_layers=24, + num_heads=16, + out_indices=(5, 11, 17, 23), + drop_rate=0.1, + norm_cfg=backbone_norm_cfg, + with_cls_token=False, + interpolate_mode='bilinear', + ), + neck=dict( + type='MLANeck', + in_channels=[1024, 1024, 1024, 1024], + out_channels=256, + norm_cfg=norm_cfg, + act_cfg=dict(type='ReLU'), + ), + decode_head=dict( + type='SETRMLAHead', + in_channels=(256, 256, 256, 256), + channels=512, + in_index=(0, 1, 2, 3), + dropout_ratio=0, + mla_channels=128, + num_classes=19, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + auxiliary_head=[ + dict( + type='FCNHead', + in_channels=256, + channels=256, + in_index=0, + dropout_ratio=0, + num_convs=0, + kernel_size=1, + concat_input=False, + num_classes=19, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + dict( + type='FCNHead', + in_channels=256, + channels=256, + in_index=1, + dropout_ratio=0, + num_convs=0, + kernel_size=1, + concat_input=False, + num_classes=19, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + dict( + type='FCNHead', + in_channels=256, + channels=256, + in_index=2, + dropout_ratio=0, + num_convs=0, + kernel_size=1, + concat_input=False, + num_classes=19, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + dict( + type='FCNHead', + in_channels=256, + channels=256, + in_index=3, + dropout_ratio=0, + num_convs=0, + kernel_size=1, + concat_input=False, + num_classes=19, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + ], + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/_base_/models/setr_naive.py b/configs/_base_/models/setr_naive.py new file mode 100644 index 0000000000..64d1395b5d --- /dev/null +++ b/configs/_base_/models/setr_naive.py @@ -0,0 +1,81 @@ +# model settings +backbone_norm_cfg = dict(type='LN', eps=1e-6, requires_grad=True) +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + type='EncoderDecoder', + pretrained=\ + 'https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-vitjx/jx_vit_large_p16_384-b3be5167.pth', # noqa + backbone=dict( + type='VisionTransformer', + img_size=(768, 768), + patch_size=16, + in_channels=3, + embed_dims=1024, + num_layers=24, + num_heads=16, + out_indices=(9, 14, 19, 23), + drop_rate=0.1, + norm_cfg=backbone_norm_cfg, + with_cls_token=True, + interpolate_mode='bilinear', + ), + decode_head=dict( + type='SETRUPHead', + in_channels=1024, + channels=256, + in_index=3, + num_classes=19, + dropout_ratio=0, + norm_cfg=norm_cfg, + num_convs=1, + up_scale=4, + kernel_size=1, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + auxiliary_head=[ + dict( + type='SETRUPHead', + in_channels=1024, + channels=256, + in_index=0, + num_classes=19, + dropout_ratio=0, + norm_cfg=norm_cfg, + num_convs=1, + up_scale=4, + kernel_size=1, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + dict( + type='SETRUPHead', + in_channels=1024, + channels=256, + in_index=1, + num_classes=19, + dropout_ratio=0, + norm_cfg=norm_cfg, + num_convs=1, + up_scale=4, + kernel_size=1, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + dict( + type='SETRUPHead', + in_channels=1024, + channels=256, + in_index=2, + num_classes=19, + dropout_ratio=0, + norm_cfg=norm_cfg, + num_convs=1, + up_scale=4, + kernel_size=1, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)) + ], + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/_base_/models/setr_pup.py b/configs/_base_/models/setr_pup.py new file mode 100644 index 0000000000..f87e88b8ae --- /dev/null +++ b/configs/_base_/models/setr_pup.py @@ -0,0 +1,81 @@ +# model settings +backbone_norm_cfg = dict(type='LN', eps=1e-6, requires_grad=True) +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + type='EncoderDecoder', + pretrained=\ + 'https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-vitjx/jx_vit_large_p16_384-b3be5167.pth', # noqa + backbone=dict( + type='VisionTransformer', + img_size=(768, 768), + patch_size=16, + in_channels=3, + embed_dims=1024, + num_layers=24, + num_heads=16, + out_indices=(9, 14, 19, 23), + drop_rate=0.1, + norm_cfg=backbone_norm_cfg, + with_cls_token=True, + interpolate_mode='bilinear', + ), + decode_head=dict( + type='SETRUPHead', + in_channels=1024, + channels=256, + in_index=3, + num_classes=19, + dropout_ratio=0, + norm_cfg=norm_cfg, + num_convs=4, + up_scale=2, + kernel_size=3, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + auxiliary_head=[ + dict( + type='SETRUPHead', + in_channels=1024, + channels=256, + in_index=0, + num_classes=19, + dropout_ratio=0, + norm_cfg=norm_cfg, + num_convs=1, + up_scale=4, + kernel_size=3, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + dict( + type='SETRUPHead', + in_channels=1024, + channels=256, + in_index=1, + num_classes=19, + dropout_ratio=0, + norm_cfg=norm_cfg, + num_convs=1, + up_scale=4, + kernel_size=3, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + dict( + type='SETRUPHead', + in_channels=1024, + channels=256, + in_index=2, + num_classes=19, + dropout_ratio=0, + norm_cfg=norm_cfg, + num_convs=1, + up_scale=4, + kernel_size=3, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + ], + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/setr/README.md b/configs/setr/README.md new file mode 100644 index 0000000000..925d250b20 --- /dev/null +++ b/configs/setr/README.md @@ -0,0 +1,25 @@ +# Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformers + +## Introduction + + + +```latex +@article{zheng2020rethinking, + title={Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformers}, + author={Zheng, Sixiao and Lu, Jiachen and Zhao, Hengshuang and Zhu, Xiatian and Luo, Zekun and Wang, Yabiao and Fu, Yanwei and Feng, Jianfeng and Xiang, Tao and Torr, Philip HS and others}, + journal={arXiv preprint arXiv:2012.15840}, + year={2020} +} +``` + +## Results and models + +### ADE20K + +| Method | Backbone | Crop Size | Batch Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ---------- | ------- | -------- | -------------- | ----- | ------------: | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| SETR-Naive | ViT-L | 512x512 | 16 | 160000 | 18.40 | 4.72 | 48.28 | 49.56 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/setr/setr_naive_512x512_160k_b16_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/setr/setr_naive_512x512_160k_b16_ade20k/setr_naive_512x512_160k_b16_ade20k_20210619_191258-061f24f5.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/setr/setr_naive_512x512_160k_b16_ade20k/setr_naive_512x512_160k_b16_ade20k_20210619_191258.log.json) | +| SETR-PUP | ViT-L | 512x512 | 16 | 160000 | 19.54 | 4.50 | 48.24 | 49.99 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/setr/setr_pup_512x512_160k_b16_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/setr/setr_pup_512x512_160k_b16_ade20k/setr_pup_512x512_160k_b16_ade20k_20210619_191343-7e0ce826.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/setr/setr_pup_512x512_160k_b16_ade20k/setr_pup_512x512_160k_b16_ade20k_20210619_191343.log.json) | +| SETR-MLA | ViT-L | 512x512 | 8 | 160000 | 10.96 | - | 47.34 | 49.05 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/setr/setr_mla_512x512_160k_b8_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/setr/setr_mla_512x512_160k_b8_ade20k/setr_mla_512x512_160k_b8_ade20k_20210619_191118-c6d21df0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/setr/setr_mla_512x512_160k_b8_ade20k/setr_mla_512x512_160k_b8_ade20k_20210619_191118.log.json) | +| SETR-MLA | ViT-L | 512x512 | 16 | 160000 | 17.30 | 5.25 | 47.54 | 49.37 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/setr/setr_mla_512x512_160k_b16_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/setr/setr_mla_512x512_160k_b16_ade20k/setr_mla_512x512_160k_b16_ade20k_20210619_191057-f9741de7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/setr/setr_mla_512x512_160k_b16_ade20k/setr_mla_512x512_160k_b16_ade20k_20210619_191057.log.json) | diff --git a/configs/setr/setr_mla_512x512_160k_b16_ade20k.py b/configs/setr/setr_mla_512x512_160k_b16_ade20k.py new file mode 100644 index 0000000000..c8418c6348 --- /dev/null +++ b/configs/setr/setr_mla_512x512_160k_b16_ade20k.py @@ -0,0 +1,4 @@ +_base_ = ['./setr_mla_512x512_160k_b8_ade20k.py'] + +# num_gpus: 8 -> batch_size: 16 +data = dict(samples_per_gpu=2) diff --git a/configs/setr/setr_mla_512x512_160k_b8_ade20k.py b/configs/setr/setr_mla_512x512_160k_b8_ade20k.py new file mode 100644 index 0000000000..b47cc60afd --- /dev/null +++ b/configs/setr/setr_mla_512x512_160k_b8_ade20k.py @@ -0,0 +1,80 @@ +_base_ = [ + '../_base_/models/setr_mla.py', '../_base_/datasets/ade20k.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' +] +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + backbone=dict(img_size=(512, 512), drop_rate=0.), + decode_head=dict(num_classes=150), + auxiliary_head=[ + dict( + type='FCNHead', + in_channels=256, + channels=256, + in_index=0, + dropout_ratio=0, + norm_cfg=norm_cfg, + act_cfg=dict(type='ReLU'), + num_convs=0, + kernel_size=1, + concat_input=False, + num_classes=150, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + dict( + type='FCNHead', + in_channels=256, + channels=256, + in_index=1, + dropout_ratio=0, + norm_cfg=norm_cfg, + act_cfg=dict(type='ReLU'), + num_convs=0, + kernel_size=1, + concat_input=False, + num_classes=150, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + dict( + type='FCNHead', + in_channels=256, + channels=256, + in_index=2, + dropout_ratio=0, + norm_cfg=norm_cfg, + act_cfg=dict(type='ReLU'), + num_convs=0, + kernel_size=1, + concat_input=False, + num_classes=150, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + dict( + type='FCNHead', + in_channels=256, + channels=256, + in_index=3, + dropout_ratio=0, + norm_cfg=norm_cfg, + act_cfg=dict(type='ReLU'), + num_convs=0, + kernel_size=1, + concat_input=False, + num_classes=150, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + ], + test_cfg=dict(mode='slide', crop_size=(512, 512), stride=(341, 341)), +) + +optimizer = dict( + lr=0.001, + weight_decay=0.0, + paramwise_cfg=dict(custom_keys={'head': dict(lr_mult=10.)})) + +# num_gpus: 8 -> batch_size: 8 +data = dict(samples_per_gpu=1) diff --git a/configs/setr/setr_naive_512x512_160k_b16_ade20k.py b/configs/setr/setr_naive_512x512_160k_b16_ade20k.py new file mode 100644 index 0000000000..f01b1b876a --- /dev/null +++ b/configs/setr/setr_naive_512x512_160k_b16_ade20k.py @@ -0,0 +1,62 @@ +_base_ = [ + '../_base_/models/setr_naive.py', '../_base_/datasets/ade20k.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' +] +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + backbone=dict(img_size=(512, 512), drop_rate=0.), + decode_head=dict(num_classes=150), + auxiliary_head=[ + dict( + type='SETRUPHead', + in_channels=1024, + channels=256, + in_index=0, + num_classes=150, + dropout_ratio=0, + norm_cfg=norm_cfg, + act_cfg=dict(type='ReLU'), + num_convs=2, + kernel_size=1, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + dict( + type='SETRUPHead', + in_channels=1024, + channels=256, + in_index=1, + num_classes=150, + dropout_ratio=0, + norm_cfg=norm_cfg, + act_cfg=dict(type='ReLU'), + num_convs=2, + kernel_size=1, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + dict( + type='SETRUPHead', + in_channels=1024, + channels=256, + in_index=2, + num_classes=150, + dropout_ratio=0, + norm_cfg=norm_cfg, + act_cfg=dict(type='ReLU'), + num_convs=2, + kernel_size=1, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)) + ], + test_cfg=dict(mode='slide', crop_size=(512, 512), stride=(341, 341)), +) + +optimizer = dict( + lr=0.01, + weight_decay=0.0, + paramwise_cfg=dict(custom_keys={'head': dict(lr_mult=10.)})) + +# num_gpus: 8 -> batch_size: 16 +data = dict(samples_per_gpu=2) diff --git a/configs/setr/setr_pup_512x512_160k_b16_ade20k.py b/configs/setr/setr_pup_512x512_160k_b16_ade20k.py new file mode 100644 index 0000000000..31c24de657 --- /dev/null +++ b/configs/setr/setr_pup_512x512_160k_b16_ade20k.py @@ -0,0 +1,62 @@ +_base_ = [ + '../_base_/models/setr_pup.py', '../_base_/datasets/ade20k.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' +] +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + backbone=dict(img_size=(512, 512), drop_rate=0.), + decode_head=dict(num_classes=150), + auxiliary_head=[ + dict( + type='SETRUPHead', + in_channels=1024, + channels=256, + in_index=0, + num_classes=150, + dropout_ratio=0, + norm_cfg=norm_cfg, + act_cfg=dict(type='ReLU'), + num_convs=2, + kernel_size=3, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + dict( + type='SETRUPHead', + in_channels=1024, + channels=256, + in_index=1, + num_classes=150, + dropout_ratio=0, + norm_cfg=norm_cfg, + act_cfg=dict(type='ReLU'), + num_convs=2, + kernel_size=3, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + dict( + type='SETRUPHead', + in_channels=1024, + channels=256, + in_index=2, + num_classes=150, + dropout_ratio=0, + norm_cfg=norm_cfg, + act_cfg=dict(type='ReLU'), + num_convs=2, + kernel_size=3, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + ], + test_cfg=dict(mode='slide', crop_size=(512, 512), stride=(341, 341)), +) + +optimizer = dict( + lr=0.001, + weight_decay=0.0, + paramwise_cfg=dict(custom_keys={'head': dict(lr_mult=10.)})) + +# num_gpus: 8 -> batch_size: 16 +data = dict(samples_per_gpu=2) diff --git a/mmseg/datasets/pipelines/transforms.py b/mmseg/datasets/pipelines/transforms.py index 20753bb0fa..1fcba69a2c 100644 --- a/mmseg/datasets/pipelines/transforms.py +++ b/mmseg/datasets/pipelines/transforms.py @@ -32,10 +32,13 @@ class Resize(object): Args: img_scale (tuple or list[tuple]): Images scales for resizing. + Default:None. multiscale_mode (str): Either "range" or "value". - ratio_range (tuple[float]): (min_ratio, max_ratio) + Default: 'range' + ratio_range (tuple[float]): (min_ratio, max_ratio). + Default: None keep_ratio (bool): Whether to keep the aspect ratio when resizing the - image. + image. Default: True """ def __init__(self, diff --git a/mmseg/models/backbones/vit.py b/mmseg/models/backbones/vit.py index a0b945bb23..440b463109 100644 --- a/mmseg/models/backbones/vit.py +++ b/mmseg/models/backbones/vit.py @@ -20,23 +20,24 @@ class TransformerEncoderLayer(BaseModule): """Implements one encoder layer in Vision Transformer. Args: - embed_dims (int): The feature dimension - num_heads (int): Parallel attention heads - feedforward_channels (int): The hidden dimension for FFNs + embed_dims (int): The feature dimension. + num_heads (int): Parallel attention heads. + feedforward_channels (int): The hidden dimension for FFNs. drop_rate (float): Probability of an element to be zeroed - after the feed forward layer. Default 0.0 + after the feed forward layer. Default: 0.0. attn_drop_rate (float): The drop out rate for attention layer. - Default 0.0 + Default: 0.0. drop_path_rate (float): stochastic depth rate. Default 0.0. - num_fcs (int): The number of fully-connected layers for FFNs. Default 2 - qkv_bias (bool): enable bias for qkv if True. Default True - act_cfg (dict): The activation config for FFNs. Defalut GELU - norm_cfg (dict): Config dict for normalization layer. Default - layer normalization + num_fcs (int): The number of fully-connected layers for FFNs. + Default: 2. + qkv_bias (bool): enable bias for qkv if True. Default: True + act_cfg (dict): The activation config for FFNs. + Defalut: dict(type='GELU'). + norm_cfg (dict): Config dict for normalization layer. + Default: dict(type='LN'). batch_first (bool): Key, Query and Value are shape of (batch, n, embed_dim) - or (n, batch, embed_dim). Default to False. - init_cfg (dict, optional): Initialization config dict + or (n, batch, embed_dim). Default: True. """ def __init__(self, @@ -50,7 +51,7 @@ def __init__(self, qkv_bias=True, act_cfg=dict(type='GELU'), norm_cfg=dict(type='LN'), - batch_first=False): + batch_first=True): super(TransformerEncoderLayer, self).__init__() self.norm1_name, norm1 = build_norm_layer( @@ -75,7 +76,7 @@ def __init__(self, feedforward_channels=feedforward_channels, num_fcs=num_fcs, ffn_drop=drop_rate, - dropout_layer=None, + dropout_layer=dict(type='DropPath', drop_prob=drop_path_rate), act_cfg=act_cfg) @property @@ -97,45 +98,32 @@ class PatchEmbed(BaseModule): """Image to Patch Embedding. Args: - img_size (int | tuple): The size of input image. patch_size (int): The size of one patch in_channels (int): The num of input channels. - embed_dim (int): The dimensions of embedding. + embed_dims (int): The dimensions of embedding. norm_cfg (dict, optional): Config dict for normalization layer. conv_cfg (dict, optional): The config dict for conv layers. Default: None. """ def __init__(self, - img_size=224, patch_size=16, in_channels=3, - embed_dim=768, + embed_dims=768, norm_cfg=None, conv_cfg=None): super(PatchEmbed, self).__init__() - self.img_size = img_size - self.patch_size = to_2tuple(patch_size) - - patches_resolution = [ - img_size[0] // self.patch_size[0], - img_size[1] // self.patch_size[1] - ] - num_patches = patches_resolution[0] * patches_resolution[1] - self.patches_resolution = patches_resolution - self.num_patches = num_patches - # Use conv layer to embed self.projection = build_conv_layer( conv_cfg, in_channels, - embed_dim, + embed_dims, kernel_size=patch_size, stride=patch_size) if norm_cfg is not None: - self.norm = build_norm_layer(norm_cfg, embed_dim)[1] + self.norm = build_norm_layer(norm_cfg, embed_dims)[1] else: self.norm = None @@ -209,7 +197,7 @@ def __init__(self, num_layers=12, num_heads=12, mlp_ratio=4, - out_indices=11, + out_indices=-1, qkv_bias=True, drop_rate=0., attn_drop_rate=0., @@ -260,13 +248,13 @@ def __init__(self, self.init_cfg = init_cfg self.patch_embed = PatchEmbed( - img_size=img_size, patch_size=patch_size, in_channels=in_channels, - embed_dim=embed_dims, + embed_dims=embed_dims, norm_cfg=norm_cfg if patch_norm else None) - num_patches = self.patch_embed.num_patches + num_patches = (img_size[0] // patch_size) * \ + (img_size[1] // patch_size) self.with_cls_token = with_cls_token self.cls_token = nn.Parameter(torch.zeros(1, 1, embed_dims)) @@ -275,6 +263,8 @@ def __init__(self, self.drop_after_pos = nn.Dropout(p=drop_rate) if isinstance(out_indices, int): + if out_indices == -1: + out_indices = num_layers - 1 self.out_indices = [out_indices] elif isinstance(out_indices, list) or isinstance(out_indices, tuple): self.out_indices = out_indices @@ -302,6 +292,7 @@ def __init__(self, batch_first=True)) self.final_norm = final_norm + self.out_shape = out_shape if final_norm: self.norm1_name, norm1 = build_norm_layer( norm_cfg, embed_dims, postfix=1) @@ -314,7 +305,8 @@ def norm1(self): def init_weights(self): if isinstance(self.pretrained, str): logger = get_root_logger() - checkpoint = _load_checkpoint(self.pretrained, logger=logger) + checkpoint = _load_checkpoint( + self.pretrained, logger=logger, map_location='cpu') if 'state_dict' in checkpoint: state_dict = checkpoint['state_dict'] elif 'model' in checkpoint: diff --git a/mmseg/models/decode_heads/__init__.py b/mmseg/models/decode_heads/__init__.py index 662aae3c00..fcd0fa60bc 100644 --- a/mmseg/models/decode_heads/__init__.py +++ b/mmseg/models/decode_heads/__init__.py @@ -18,11 +18,13 @@ from .psp_head import PSPHead from .sep_aspp_head import DepthwiseSeparableASPPHead from .sep_fcn_head import DepthwiseSeparableFCNHead +from .setr_mla_head import SETRMLAHead +from .setr_up_head import SETRUPHead from .uper_head import UPerHead __all__ = [ 'FCNHead', 'PSPHead', 'ASPPHead', 'PSAHead', 'NLHead', 'GCHead', 'CCHead', 'UPerHead', 'DepthwiseSeparableASPPHead', 'ANNHead', 'DAHead', 'OCRHead', 'EncHead', 'DepthwiseSeparableFCNHead', 'FPNHead', 'EMAHead', 'DNLHead', - 'PointHead', 'APCHead', 'DMHead', 'LRASPPHead' + 'PointHead', 'APCHead', 'DMHead', 'LRASPPHead', 'SETRUPHead', 'SETRMLAHead' ] diff --git a/mmseg/models/decode_heads/setr_mla_head.py b/mmseg/models/decode_heads/setr_mla_head.py new file mode 100644 index 0000000000..016a82a41c --- /dev/null +++ b/mmseg/models/decode_heads/setr_mla_head.py @@ -0,0 +1,61 @@ +import torch +import torch.nn as nn +from mmcv.cnn import ConvModule + +from ..builder import HEADS +from .decode_head import BaseDecodeHead + + +@HEADS.register_module() +class SETRMLAHead(BaseDecodeHead): + """Multi level feature aggretation head of SETR. + + MLA head of `SETR `. + + Args: + mlahead_channels (int): Channels of conv-conv-4x of multi-level feature + aggregation. Default: 128. + up_scale (int): The scale factor of interpolate. Default:4. + """ + + def __init__(self, mla_channels=128, up_scale=4, **kwargs): + super(SETRMLAHead, self).__init__( + input_transform='multiple_select', **kwargs) + self.mla_channels = mla_channels + + num_inputs = len(self.in_channels) + + # Refer to self.cls_seg settings of BaseDecodeHead + assert self.channels == num_inputs * mla_channels + + self.up_convs = nn.ModuleList() + for i in range(num_inputs): + self.up_convs.append( + nn.Sequential( + ConvModule( + in_channels=self.in_channels[i], + out_channels=mla_channels, + kernel_size=3, + padding=1, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg), + ConvModule( + in_channels=mla_channels, + out_channels=mla_channels, + kernel_size=3, + padding=1, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg), + nn.Upsample( + scale_factor=up_scale, + mode='bilinear', + align_corners=self.align_corners))) + + def forward(self, inputs): + inputs = self._transform_inputs(inputs) + outs = [] + for x, up_conv in zip(inputs, self.up_convs): + outs.append(up_conv(x)) + out = torch.cat(outs, dim=1) + out = self.cls_seg(out) + return out diff --git a/mmseg/models/decode_heads/setr_up_head.py b/mmseg/models/decode_heads/setr_up_head.py new file mode 100644 index 0000000000..2088ec7d7e --- /dev/null +++ b/mmseg/models/decode_heads/setr_up_head.py @@ -0,0 +1,75 @@ +import torch.nn as nn +from mmcv.cnn import ConvModule, build_norm_layer, constant_init + +from ..builder import HEADS +from .decode_head import BaseDecodeHead + + +@HEADS.register_module() +class SETRUPHead(BaseDecodeHead): + """Naive upsampling head and Progressive upsampling head of SETR. + + Naive or PUP head of `SETR `. + + Args: + norm_layer (dict): Config dict for input normalization. + Default: norm_layer=dict(type='LN', eps=1e-6, requires_grad=True). + num_convs (int): Number of decoder convolutions. Default: 1. + up_scale (int): The scale factor of interpolate. Default:4. + kernel_size (int): The kernel size of convolution when decoding + feature information from backbone. Default: 3. + """ + + def __init__(self, + norm_layer=dict(type='LN', eps=1e-6, requires_grad=True), + num_convs=1, + up_scale=4, + kernel_size=3, + **kwargs): + + assert kernel_size in [1, 3], 'kernel_size must be 1 or 3.' + + super(SETRUPHead, self).__init__(**kwargs) + + assert isinstance(self.in_channels, int) + + _, self.norm = build_norm_layer(norm_layer, self.in_channels) + + self.up_convs = nn.ModuleList() + in_channels = self.in_channels + out_channels = self.channels + for i in range(num_convs): + self.up_convs.append( + nn.Sequential( + ConvModule( + in_channels=in_channels, + out_channels=out_channels, + kernel_size=kernel_size, + stride=1, + padding=int(kernel_size - 1) // 2, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg), + nn.Upsample( + scale_factor=up_scale, + mode='bilinear', + align_corners=self.align_corners))) + in_channels = out_channels + + def init_weights(self): + for m in self.modules(): + if isinstance(m, nn.LayerNorm): + constant_init(m.bias, 0) + constant_init(m.weight, 1.0) + + def forward(self, x): + x = self._transform_inputs(x) + + n, c, h, w = x.shape + x = x.reshape(n, c, h * w).transpose(2, 1).contiguous() + x = self.norm(x) + x = x.transpose(1, 2).reshape(n, c, h, w).contiguous() + + for up_conv in self.up_convs: + x = up_conv(x) + out = self.cls_seg(x) + return out diff --git a/mmseg/models/necks/__init__.py b/mmseg/models/necks/__init__.py index 9b9d3d5b3f..3d6a4c050b 100644 --- a/mmseg/models/necks/__init__.py +++ b/mmseg/models/necks/__init__.py @@ -1,4 +1,5 @@ from .fpn import FPN +from .mla_neck import MLANeck from .multilevel_neck import MultiLevelNeck -__all__ = ['FPN', 'MultiLevelNeck'] +__all__ = ['FPN', 'MultiLevelNeck', 'MLANeck'] diff --git a/mmseg/models/necks/mla_neck.py b/mmseg/models/necks/mla_neck.py new file mode 100644 index 0000000000..010c43d406 --- /dev/null +++ b/mmseg/models/necks/mla_neck.py @@ -0,0 +1,117 @@ +import torch.nn as nn +from mmcv.cnn import ConvModule, build_norm_layer + +from ..builder import NECKS + + +class MLAModule(nn.Module): + + def __init__(self, + in_channels=[1024, 1024, 1024, 1024], + out_channels=256, + norm_cfg=None, + act_cfg=None): + super(MLAModule, self).__init__() + self.channel_proj = nn.ModuleList() + for i in range(len(in_channels)): + self.channel_proj.append( + ConvModule( + in_channels=in_channels[i], + out_channels=out_channels, + kernel_size=1, + norm_cfg=norm_cfg, + act_cfg=act_cfg)) + self.feat_extract = nn.ModuleList() + for i in range(len(in_channels)): + self.feat_extract.append( + ConvModule( + in_channels=out_channels, + out_channels=out_channels, + kernel_size=3, + padding=1, + norm_cfg=norm_cfg, + act_cfg=act_cfg)) + + def forward(self, inputs): + + # feat_list -> [p2, p3, p4, p5] + feat_list = [] + for x, conv in zip(inputs, self.channel_proj): + feat_list.append(conv(x)) + + # feat_list -> [p5, p4, p3, p2] + # mid_list -> [m5, m4, m3, m2] + feat_list = feat_list[::-1] + mid_list = [] + for feat in feat_list: + if len(mid_list) == 0: + mid_list.append(feat) + else: + mid_list.append(mid_list[-1] + feat) + + # mid_list -> [m5, m4, m3, m2] + # out_list -> [o2, o3, o4, o5] + out_list = [] + for mid, conv in zip(mid_list, self.feat_extract): + out_list.append(conv(mid)) + + return tuple(out_list) + + +@NECKS.register_module() +class MLANeck(nn.Module): + """Multi-level Feature Aggregation. + + The Multi-level Feature Aggregation construction of SETR: + https://arxiv.org/pdf/2012.15840.pdf + + + Args: + in_channels (List[int]): Number of input channels per scale. + out_channels (int): Number of output channels (used at each scale). + norm_layer (dict): Config dict for input normalization. + Default: norm_layer=dict(type='LN', eps=1e-6, requires_grad=True). + norm_cfg (dict): Config dict for normalization layer. Default: None. + act_cfg (dict): Config dict for activation layer in ConvModule. + Default: None. + """ + + def __init__(self, + in_channels, + out_channels, + norm_layer=dict(type='LN', eps=1e-6, requires_grad=True), + norm_cfg=None, + act_cfg=None): + super(MLANeck, self).__init__() + assert isinstance(in_channels, list) + self.in_channels = in_channels + self.out_channels = out_channels + + # In order to build general vision transformer backbone, we have to + # move MLA to neck. + self.norm = nn.ModuleList([ + build_norm_layer(norm_layer, in_channels[i])[1] + for i in range(len(in_channels)) + ]) + + self.mla = MLAModule( + in_channels=in_channels, + out_channels=out_channels, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + + def forward(self, inputs): + assert len(inputs) == len(self.in_channels) + + # Convert from nchw to nlc + outs = [] + for i in range(len(inputs)): + x = inputs[i] + n, c, h, w = x.shape + x = x.reshape(n, c, h * w).transpose(2, 1).contiguous() + x = self.norm[i](x) + x = x.transpose(1, 2).reshape(n, c, h, w).contiguous() + outs.append(x) + + outs = self.mla(outs) + return tuple(outs) diff --git a/mmseg/models/utils/__init__.py b/mmseg/models/utils/__init__.py index be11d77f4e..b7066eb03e 100644 --- a/mmseg/models/utils/__init__.py +++ b/mmseg/models/utils/__init__.py @@ -1,4 +1,3 @@ -from .drop import DropPath from .inverted_residual import InvertedResidual, InvertedResidualV3 from .make_divisible import make_divisible from .res_layer import ResLayer @@ -9,5 +8,5 @@ __all__ = [ 'ResLayer', 'SelfAttentionBlock', 'make_divisible', 'InvertedResidual', - 'UpConvBlock', 'InvertedResidualV3', 'SELayer', 'DropPath', 'vit_convert' + 'UpConvBlock', 'InvertedResidualV3', 'SELayer', 'vit_convert' ] diff --git a/mmseg/models/utils/drop.py b/mmseg/models/utils/drop.py deleted file mode 100644 index 4520b0ff40..0000000000 --- a/mmseg/models/utils/drop.py +++ /dev/null @@ -1,31 +0,0 @@ -"""Modified from https://github.com/rwightman/pytorch-image- -models/blob/master/timm/models/layers/drop.py.""" - -import torch -from torch import nn - - -class DropPath(nn.Module): - """Drop paths (Stochastic Depth) per sample (when applied in main path of - residual blocks). - - Args: - drop_prob (float): Drop rate for paths of model. Dropout rate has - to be between 0 and 1. Default: 0. - """ - - def __init__(self, drop_prob=0.): - super(DropPath, self).__init__() - self.drop_prob = drop_prob - self.keep_prob = 1 - drop_prob - - def forward(self, x): - if self.drop_prob == 0. or not self.training: - return x - shape = (x.shape[0], ) + (1, ) * ( - x.ndim - 1) # work with diff dim tensors, not just 2D ConvNets - random_tensor = self.keep_prob + torch.rand( - shape, dtype=x.dtype, device=x.device) - random_tensor.floor_() # binarize - output = x.div(self.keep_prob) * random_tensor - return output diff --git a/tests/test_models/test_heads/test_setr_mla_head.py b/tests/test_models/test_heads/test_setr_mla_head.py new file mode 100644 index 0000000000..d43aab02f9 --- /dev/null +++ b/tests/test_models/test_heads/test_setr_mla_head.py @@ -0,0 +1,62 @@ +import pytest +import torch + +from mmseg.models.decode_heads import SETRMLAHead +from .utils import to_cuda + + +def test_setr_mla_head(capsys): + + with pytest.raises(AssertionError): + # MLA requires input multiple stage feature information. + SETRMLAHead(in_channels=32, channels=16, num_classes=19, in_index=1) + + with pytest.raises(AssertionError): + # multiple in_indexs requires multiple in_channels. + SETRMLAHead( + in_channels=32, channels=16, num_classes=19, in_index=(0, 1, 2, 3)) + + with pytest.raises(AssertionError): + # channels should be len(in_channels) * mla_channels + SETRMLAHead( + in_channels=(32, 32, 32, 32), + channels=32, + mla_channels=16, + in_index=(0, 1, 2, 3), + num_classes=19) + + # test inference of MLA head + img_size = (32, 32) + patch_size = 16 + head = SETRMLAHead( + in_channels=(32, 32, 32, 32), + channels=64, + mla_channels=16, + in_index=(0, 1, 2, 3), + num_classes=19, + norm_cfg=dict(type='BN')) + + h, w = img_size[0] // patch_size, img_size[1] // patch_size + # Input square NCHW format feature information + x = [ + torch.randn(1, 32, h, w), + torch.randn(1, 32, h, w), + torch.randn(1, 32, h, w), + torch.randn(1, 32, h, w) + ] + if torch.cuda.is_available(): + head, x = to_cuda(head, x) + out = head(x) + assert out.shape == (1, head.num_classes, h * 4, w * 4) + + # Input non-square NCHW format feature information + x = [ + torch.randn(1, 32, h, w * 2), + torch.randn(1, 32, h, w * 2), + torch.randn(1, 32, h, w * 2), + torch.randn(1, 32, h, w * 2) + ] + if torch.cuda.is_available(): + head, x = to_cuda(head, x) + out = head(x) + assert out.shape == (1, head.num_classes, h * 4, w * 8) diff --git a/tests/test_models/test_heads/test_setr_up_head.py b/tests/test_models/test_heads/test_setr_up_head.py new file mode 100644 index 0000000000..4b89621daa --- /dev/null +++ b/tests/test_models/test_heads/test_setr_up_head.py @@ -0,0 +1,54 @@ +import pytest +import torch + +from mmseg.models.decode_heads import SETRUPHead +from .utils import to_cuda + + +def test_setr_up_head(capsys): + + with pytest.raises(AssertionError): + # kernel_size must be [1/3] + SETRUPHead(num_classes=19, kernel_size=2) + + with pytest.raises(AssertionError): + # in_channels must be int type and in_channels must be same + # as embed_dim. + SETRUPHead(in_channels=(32, 32), channels=16, num_classes=19) + + # test init_weights of head + head = SETRUPHead( + in_channels=32, + channels=16, + norm_cfg=dict(type='SyncBN'), + num_classes=19) + head.init_weights() + + # test inference of Naive head + # the auxiliary head of Naive head is same as Naive head + img_size = (32, 32) + patch_size = 16 + head = SETRUPHead( + in_channels=32, + channels=16, + num_classes=19, + num_convs=1, + up_scale=4, + kernel_size=1, + norm_cfg=dict(type='BN')) + + h, w = img_size[0] // patch_size, img_size[1] // patch_size + + # Input square NCHW format feature information + x = [torch.randn(1, 32, h, w)] + if torch.cuda.is_available(): + head, x = to_cuda(head, x) + out = head(x) + assert out.shape == (1, head.num_classes, h * 4, w * 4) + + # Input non-square NCHW format feature information + x = [torch.randn(1, 32, h, w * 2)] + if torch.cuda.is_available(): + head, x = to_cuda(head, x) + out = head(x) + assert out.shape == (1, head.num_classes, h * 4, w * 8) diff --git a/tests/test_models/test_necks/test_mla_neck.py b/tests/test_models/test_necks/test_mla_neck.py new file mode 100644 index 0000000000..75f0401685 --- /dev/null +++ b/tests/test_models/test_necks/test_mla_neck.py @@ -0,0 +1,15 @@ +import torch + +from mmseg.models import MLANeck + + +def test_mla(): + in_channels = [1024, 1024, 1024, 1024] + mla = MLANeck(in_channels, 256) + + inputs = [torch.randn(1, c, 24, 24) for i, c in enumerate(in_channels)] + outputs = mla(inputs) + assert outputs[0].shape == torch.Size([1, 256, 24, 24]) + assert outputs[1].shape == torch.Size([1, 256, 24, 24]) + assert outputs[2].shape == torch.Size([1, 256, 24, 24]) + assert outputs[3].shape == torch.Size([1, 256, 24, 24]) diff --git a/tests/test_models/test_utils/test_drop.py b/tests/test_models/test_utils/test_drop.py deleted file mode 100644 index 1331af8d01..0000000000 --- a/tests/test_models/test_utils/test_drop.py +++ /dev/null @@ -1,28 +0,0 @@ -import torch - -from mmseg.models.utils import DropPath - - -def test_drop_path(): - - # zero drop - layer = DropPath() - - # input NLC format feature - x = torch.randn((1, 16, 32)) - layer(x) - - # input NLHW format feature - x = torch.randn((1, 32, 4, 4)) - layer(x) - - # non-zero drop - layer = DropPath(0.1) - - # input NLC format feature - x = torch.randn((1, 16, 32)) - layer(x) - - # input NLHW format feature - x = torch.randn((1, 32, 4, 4)) - layer(x) From 60baa4e84102bdb9f81b4de665b0c63d98a96369 Mon Sep 17 00:00:00 2001 From: sennnnn <58427300+sennnnn@users.noreply.github.com> Date: Thu, 24 Jun 2021 13:25:06 +0800 Subject: [PATCH 165/706] [Fix] Add setr & vit msg. (#635) * [Fix] Add setr & vit msg. * Fix init bug * Modify init_cfg arg * Add conv_seg init --- README.md | 2 ++ README_zh-CN.md | 2 ++ mmseg/models/decode_heads/setr_up_head.py | 22 +++++++++++-------- .../test_heads/test_setr_up_head.py | 7 +++--- 4 files changed, 21 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 4b1eade1d2..bbf24ec852 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,7 @@ Supported backbones: - [x] [ResNeSt (ArXiv'2020)](configs/resnest/README.md) - [x] [MobileNetV2 (CVPR'2018)](configs/mobilenet_v2/README.md) - [x] [MobileNetV3 (ICCV'2019)](configs/mobilenet_v3/README.md) +- [x] [Vision Transformer (ICLR'2021)] Supported methods: @@ -89,6 +90,7 @@ Supported methods: - [x] [DNLNet (ECCV'2020)](configs/dnlnet) - [x] [PointRend (CVPR'2020)](configs/point_rend) - [x] [CGNet (TIP'2020)](configs/cgnet) +- [x] [SETR (CVPR'2021)](configs/setr) ## Installation diff --git a/README_zh-CN.md b/README_zh-CN.md index 283a045b99..2341e4768d 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -62,6 +62,7 @@ MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 O - [x] [ResNeSt (ArXiv'2020)](configs/resnest/README.md) - [x] [MobileNetV2 (CVPR'2018)](configs/mobilenet_v2/README.md) - [x] [MobileNetV3 (ICCV'2019)](configs/mobilenet_v3/README.md) +- [x] [Vision Transformer (ICLR'2021)] 已支持的算法: @@ -87,6 +88,7 @@ MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 O - [x] [DNLNet (ECCV'2020)](configs/dnlnet) - [x] [PointRend (CVPR'2020)](configs/point_rend) - [x] [CGNet (TIP'2020)](configs/cgnet) +- [x] [SETR (CVPR'2021)](configs/setr) ## 安装 diff --git a/mmseg/models/decode_heads/setr_up_head.py b/mmseg/models/decode_heads/setr_up_head.py index 2088ec7d7e..322a56dc79 100644 --- a/mmseg/models/decode_heads/setr_up_head.py +++ b/mmseg/models/decode_heads/setr_up_head.py @@ -1,5 +1,5 @@ import torch.nn as nn -from mmcv.cnn import ConvModule, build_norm_layer, constant_init +from mmcv.cnn import ConvModule, build_norm_layer from ..builder import HEADS from .decode_head import BaseDecodeHead @@ -18,6 +18,9 @@ class SETRUPHead(BaseDecodeHead): up_scale (int): The scale factor of interpolate. Default:4. kernel_size (int): The kernel size of convolution when decoding feature information from backbone. Default: 3. + init_cfg (dict | list[dict] | None): Initialization config dict. + Default: dict( + type='Constant', val=1.0, bias=0, layer='LayerNorm'). """ def __init__(self, @@ -25,11 +28,18 @@ def __init__(self, num_convs=1, up_scale=4, kernel_size=3, + init_cfg=[ + dict(type='Constant', val=1.0, bias=0, layer='LayerNorm'), + dict( + type='Normal', + std=0.01, + override=dict(name='conv_seg')) + ], **kwargs): assert kernel_size in [1, 3], 'kernel_size must be 1 or 3.' - super(SETRUPHead, self).__init__(**kwargs) + super(SETRUPHead, self).__init__(init_cfg=init_cfg, **kwargs) assert isinstance(self.in_channels, int) @@ -38,7 +48,7 @@ def __init__(self, self.up_convs = nn.ModuleList() in_channels = self.in_channels out_channels = self.channels - for i in range(num_convs): + for _ in range(num_convs): self.up_convs.append( nn.Sequential( ConvModule( @@ -55,12 +65,6 @@ def __init__(self, align_corners=self.align_corners))) in_channels = out_channels - def init_weights(self): - for m in self.modules(): - if isinstance(m, nn.LayerNorm): - constant_init(m.bias, 0) - constant_init(m.weight, 1.0) - def forward(self, x): x = self._transform_inputs(x) diff --git a/tests/test_models/test_heads/test_setr_up_head.py b/tests/test_models/test_heads/test_setr_up_head.py index 4b89621daa..ad6ca56d2d 100644 --- a/tests/test_models/test_heads/test_setr_up_head.py +++ b/tests/test_models/test_heads/test_setr_up_head.py @@ -16,13 +16,14 @@ def test_setr_up_head(capsys): # as embed_dim. SETRUPHead(in_channels=(32, 32), channels=16, num_classes=19) - # test init_weights of head + # test init_cfg of head head = SETRUPHead( in_channels=32, channels=16, norm_cfg=dict(type='SyncBN'), - num_classes=19) - head.init_weights() + num_classes=19, + init_cfg=dict(type='Kaiming')) + super(SETRUPHead, head).init_weights() # test inference of Naive head # the auxiliary head of Naive head is same as Naive head From bf746bf737825b3cd350b38cb59486dc9c39a08e Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Mon, 28 Jun 2021 02:39:32 -0700 Subject: [PATCH 166/706] [Feature] Support persistent_workers in DataLoader (PyTorch>=1.7.0) (#646) --- mmseg/datasets/builder.py | 57 ++++++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 24 deletions(-) diff --git a/mmseg/datasets/builder.py b/mmseg/datasets/builder.py index f7a9926111..3ef328d0d6 100644 --- a/mmseg/datasets/builder.py +++ b/mmseg/datasets/builder.py @@ -4,11 +4,11 @@ from functools import partial import numpy as np +import torch from mmcv.parallel import collate from mmcv.runner import get_dist_info from mmcv.utils import Registry, build_from_cfg -from mmcv.utils.parrots_wrapper import DataLoader, PoolDataLoader -from torch.utils.data import DistributedSampler +from torch.utils.data import DataLoader, DistributedSampler if platform.system() != 'Windows': # https://github.com/pytorch/pytorch/issues/973 @@ -84,7 +84,7 @@ def build_dataloader(dataset, seed=None, drop_last=False, pin_memory=True, - dataloader_type='PoolDataLoader', + persistent_workers=True, **kwargs): """Build PyTorch DataLoader. @@ -106,7 +106,11 @@ def build_dataloader(dataset, Default: False pin_memory (bool): Whether to use pin_memory in DataLoader. Default: True - dataloader_type (str): Type of dataloader. Default: 'PoolDataLoader' + persistent_workers (bool): If True, the data loader will not shutdown + the worker processes after a dataset has been consumed once. + This allows to maintain the workers Dataset instances alive. + The argument also has effect in PyTorch>=1.7.0. + Default: True kwargs: any keyword argument to be used to initialize DataLoader Returns: @@ -128,26 +132,31 @@ def build_dataloader(dataset, worker_init_fn, num_workers=num_workers, rank=rank, seed=seed) if seed is not None else None - assert dataloader_type in ( - 'DataLoader', - 'PoolDataLoader'), f'unsupported dataloader {dataloader_type}' - - if dataloader_type == 'PoolDataLoader': - dataloader = PoolDataLoader - elif dataloader_type == 'DataLoader': - dataloader = DataLoader - - data_loader = dataloader( - dataset, - batch_size=batch_size, - sampler=sampler, - num_workers=num_workers, - collate_fn=partial(collate, samples_per_gpu=samples_per_gpu), - pin_memory=pin_memory, - shuffle=shuffle, - worker_init_fn=init_fn, - drop_last=drop_last, - **kwargs) + if torch.__version__ >= '1.7.0': + data_loader = DataLoader( + dataset, + batch_size=batch_size, + sampler=sampler, + num_workers=num_workers, + collate_fn=partial(collate, samples_per_gpu=samples_per_gpu), + pin_memory=pin_memory, + shuffle=shuffle, + worker_init_fn=init_fn, + drop_last=drop_last, + persistent_workers=persistent_workers, + **kwargs) + else: + data_loader = DataLoader( + dataset, + batch_size=batch_size, + sampler=sampler, + num_workers=num_workers, + collate_fn=partial(collate, samples_per_gpu=samples_per_gpu), + pin_memory=pin_memory, + shuffle=shuffle, + worker_init_fn=init_fn, + drop_last=drop_last, + **kwargs) return data_loader From 372646caf5c7b78817e3b29c02e4b2d27f5ac08f Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Thu, 1 Jul 2021 22:31:00 +0800 Subject: [PATCH 167/706] update metafiles (#661) * update metafiles * update metafiles --- configs/ann/metafile.yml | 112 +++++++++++-- configs/apcnet/metafile.yml | 84 ++++++++-- configs/ccnet/metafile.yml | 112 +++++++++++-- configs/cgnet/metafile.yml | 14 +- configs/danet/metafile.yml | 112 +++++++++++-- configs/deeplabv3/metafile.yml | 210 ++++++++++++++++++++---- configs/deeplabv3plus/metafile.yml | 210 ++++++++++++++++++++---- configs/dmnet/metafile.yml | 84 ++++++++-- configs/dnlnet/metafile.yml | 84 ++++++++-- configs/emanet/metafile.yml | 28 +++- configs/encnet/metafile.yml | 84 ++++++++-- configs/fastscnn/metafile.yml | 7 +- configs/fcn/metafile.yml | 252 ++++++++++++++++++++++++----- configs/fp16/metafile.yml | 28 +++- configs/gcnet/metafile.yml | 112 +++++++++++-- configs/hrnet/metafile.yml | 175 +++++++++++++++++--- configs/mobilenet_v2/metafile.yml | 56 ++++++- configs/mobilenet_v3/metafile.yml | 28 +++- configs/nonlocal_net/metafile.yml | 112 +++++++++++-- configs/ocrnet/metafile.yml | 168 ++++++++++++++++--- configs/point_rend/metafile.yml | 28 +++- configs/psanet/metafile.yml | 112 +++++++++++-- configs/pspnet/metafile.yml | 196 ++++++++++++++++++---- configs/resnest/metafile.yml | 56 ++++++- configs/sem_fpn/metafile.yml | 28 +++- configs/unet/metafile.yml | 84 ++++++++-- configs/upernet/metafile.yml | 112 +++++++++++-- model_zoo.yml => model-index.yml | 0 28 files changed, 2304 insertions(+), 384 deletions(-) rename model_zoo.yml => model-index.yml (100%) diff --git a/configs/ann/metafile.yml b/configs/ann/metafile.yml index 03752dde54..485da6c481 100644 --- a/configs/ann/metafile.yml +++ b/configs/ann/metafile.yml @@ -11,7 +11,12 @@ Models: - Name: ann_r50-d8_512x1024_40k_cityscapes In Collection: ANN Metadata: - inference time (ms/im): 269.54 + inference time (ms/im): + - value: 269.54 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -25,7 +30,12 @@ Models: - Name: ann_r101-d8_512x1024_40k_cityscapes In Collection: ANN Metadata: - inference time (ms/im): 392.16 + inference time (ms/im): + - value: 392.16 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -39,7 +49,12 @@ Models: - Name: ann_r50-d8_769x769_40k_cityscapes In Collection: ANN Metadata: - inference time (ms/im): 588.24 + inference time (ms/im): + - value: 588.24 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -53,7 +68,12 @@ Models: - Name: ann_r101-d8_769x769_40k_cityscapes In Collection: ANN Metadata: - inference time (ms/im): 869.57 + inference time (ms/im): + - value: 869.57 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -67,7 +87,12 @@ Models: - Name: ann_r50-d8_512x1024_80k_cityscapes In Collection: ANN Metadata: - inference time (ms/im): 269.54 + inference time (ms/im): + - value: 269.54 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -81,7 +106,12 @@ Models: - Name: ann_r101-d8_512x1024_80k_cityscapes In Collection: ANN Metadata: - inference time (ms/im): 392.16 + inference time (ms/im): + - value: 392.16 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -95,7 +125,12 @@ Models: - Name: ann_r50-d8_769x769_80k_cityscapes In Collection: ANN Metadata: - inference time (ms/im): 588.24 + inference time (ms/im): + - value: 588.24 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -109,7 +144,12 @@ Models: - Name: ann_r101-d8_769x769_80k_cityscapes In Collection: ANN Metadata: - inference time (ms/im): 869.57 + inference time (ms/im): + - value: 869.57 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -123,7 +163,12 @@ Models: - Name: ann_r50-d8_512x512_80k_ade20k In Collection: ANN Metadata: - inference time (ms/im): 47.6 + inference time (ms/im): + - value: 47.6 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -137,7 +182,12 @@ Models: - Name: ann_r101-d8_512x512_80k_ade20k In Collection: ANN Metadata: - inference time (ms/im): 70.82 + inference time (ms/im): + - value: 70.82 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -151,7 +201,12 @@ Models: - Name: ann_r50-d8_512x512_160k_ade20k In Collection: ANN Metadata: - inference time (ms/im): 47.6 + inference time (ms/im): + - value: 47.6 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -165,7 +220,12 @@ Models: - Name: ann_r101-d8_512x512_160k_ade20k In Collection: ANN Metadata: - inference time (ms/im): 70.82 + inference time (ms/im): + - value: 70.82 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -179,7 +239,12 @@ Models: - Name: ann_r50-d8_512x512_20k_voc12aug In Collection: ANN Metadata: - inference time (ms/im): 47.8 + inference time (ms/im): + - value: 47.8 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -193,7 +258,12 @@ Models: - Name: ann_r101-d8_512x512_20k_voc12aug In Collection: ANN Metadata: - inference time (ms/im): 71.74 + inference time (ms/im): + - value: 71.74 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -207,7 +277,12 @@ Models: - Name: ann_r50-d8_512x512_40k_voc12aug In Collection: ANN Metadata: - inference time (ms/im): 47.8 + inference time (ms/im): + - value: 47.8 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -221,7 +296,12 @@ Models: - Name: ann_r101-d8_512x512_40k_voc12aug In Collection: ANN Metadata: - inference time (ms/im): 71.74 + inference time (ms/im): + - value: 71.74 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug diff --git a/configs/apcnet/metafile.yml b/configs/apcnet/metafile.yml index a5eb1012c8..1bf635ef82 100644 --- a/configs/apcnet/metafile.yml +++ b/configs/apcnet/metafile.yml @@ -10,7 +10,12 @@ Models: - Name: apcnet_r50-d8_512x1024_40k_cityscapes In Collection: APCNet Metadata: - inference time (ms/im): 280.11 + inference time (ms/im): + - value: 280.11 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -24,7 +29,12 @@ Models: - Name: apcnet_r101-d8_512x1024_40k_cityscapes In Collection: APCNet Metadata: - inference time (ms/im): 465.12 + inference time (ms/im): + - value: 465.12 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -38,7 +48,12 @@ Models: - Name: apcnet_r50-d8_769x769_40k_cityscapes In Collection: APCNet Metadata: - inference time (ms/im): 657.89 + inference time (ms/im): + - value: 657.89 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -52,7 +67,12 @@ Models: - Name: apcnet_r101-d8_769x769_40k_cityscapes In Collection: APCNet Metadata: - inference time (ms/im): 970.87 + inference time (ms/im): + - value: 970.87 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -66,7 +86,12 @@ Models: - Name: apcnet_r50-d8_512x1024_80k_cityscapes In Collection: APCNet Metadata: - inference time (ms/im): 280.11 + inference time (ms/im): + - value: 280.11 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -80,7 +105,12 @@ Models: - Name: apcnet_r101-d8_512x1024_80k_cityscapes In Collection: APCNet Metadata: - inference time (ms/im): 465.12 + inference time (ms/im): + - value: 465.12 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -94,7 +124,12 @@ Models: - Name: apcnet_r50-d8_769x769_80k_cityscapes In Collection: APCNet Metadata: - inference time (ms/im): 657.89 + inference time (ms/im): + - value: 657.89 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -108,7 +143,12 @@ Models: - Name: apcnet_r101-d8_769x769_80k_cityscapes In Collection: APCNet Metadata: - inference time (ms/im): 970.87 + inference time (ms/im): + - value: 970.87 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -122,7 +162,12 @@ Models: - Name: apcnet_r50-d8_512x512_80k_ade20k In Collection: APCNet Metadata: - inference time (ms/im): 50.99 + inference time (ms/im): + - value: 50.99 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -136,7 +181,12 @@ Models: - Name: apcnet_r101-d8_512x512_80k_ade20k In Collection: APCNet Metadata: - inference time (ms/im): 76.34 + inference time (ms/im): + - value: 76.34 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -150,7 +200,12 @@ Models: - Name: apcnet_r50-d8_512x512_160k_ade20k In Collection: APCNet Metadata: - inference time (ms/im): 50.99 + inference time (ms/im): + - value: 50.99 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -164,7 +219,12 @@ Models: - Name: apcnet_r101-d8_512x512_160k_ade20k In Collection: APCNet Metadata: - inference time (ms/im): 76.34 + inference time (ms/im): + - value: 76.34 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K diff --git a/configs/ccnet/metafile.yml b/configs/ccnet/metafile.yml index da712342c1..3f3c2dd4fd 100644 --- a/configs/ccnet/metafile.yml +++ b/configs/ccnet/metafile.yml @@ -11,7 +11,12 @@ Models: - Name: ccnet_r50-d8_512x1024_40k_cityscapes In Collection: CCNet Metadata: - inference time (ms/im): 301.2 + inference time (ms/im): + - value: 301.2 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -25,7 +30,12 @@ Models: - Name: ccnet_r101-d8_512x1024_40k_cityscapes In Collection: CCNet Metadata: - inference time (ms/im): 432.9 + inference time (ms/im): + - value: 432.9 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -39,7 +49,12 @@ Models: - Name: ccnet_r50-d8_769x769_40k_cityscapes In Collection: CCNet Metadata: - inference time (ms/im): 699.3 + inference time (ms/im): + - value: 699.3 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -53,7 +68,12 @@ Models: - Name: ccnet_r101-d8_769x769_40k_cityscapes In Collection: CCNet Metadata: - inference time (ms/im): 990.1 + inference time (ms/im): + - value: 990.1 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -67,7 +87,12 @@ Models: - Name: ccnet_r50-d8_512x1024_80k_cityscapes In Collection: CCNet Metadata: - inference time (ms/im): 301.2 + inference time (ms/im): + - value: 301.2 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -81,7 +106,12 @@ Models: - Name: ccnet_r101-d8_512x1024_80k_cityscapes In Collection: CCNet Metadata: - inference time (ms/im): 432.9 + inference time (ms/im): + - value: 432.9 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -95,7 +125,12 @@ Models: - Name: ccnet_r50-d8_769x769_80k_cityscapes In Collection: CCNet Metadata: - inference time (ms/im): 699.3 + inference time (ms/im): + - value: 699.3 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -109,7 +144,12 @@ Models: - Name: ccnet_r101-d8_769x769_80k_cityscapes In Collection: CCNet Metadata: - inference time (ms/im): 990.1 + inference time (ms/im): + - value: 990.1 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -123,7 +163,12 @@ Models: - Name: ccnet_r50-d8_512x512_80k_ade20k In Collection: CCNet Metadata: - inference time (ms/im): 47.87 + inference time (ms/im): + - value: 47.87 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -137,7 +182,12 @@ Models: - Name: ccnet_r101-d8_512x512_80k_ade20k In Collection: CCNet Metadata: - inference time (ms/im): 70.87 + inference time (ms/im): + - value: 70.87 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -151,7 +201,12 @@ Models: - Name: ccnet_r50-d8_512x512_160k_ade20k In Collection: CCNet Metadata: - inference time (ms/im): 47.87 + inference time (ms/im): + - value: 47.87 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -165,7 +220,12 @@ Models: - Name: ccnet_r101-d8_512x512_160k_ade20k In Collection: CCNet Metadata: - inference time (ms/im): 70.87 + inference time (ms/im): + - value: 70.87 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -179,7 +239,12 @@ Models: - Name: ccnet_r50-d8_512x512_20k_voc12aug In Collection: CCNet Metadata: - inference time (ms/im): 48.9 + inference time (ms/im): + - value: 48.9 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -193,7 +258,12 @@ Models: - Name: ccnet_r101-d8_512x512_20k_voc12aug In Collection: CCNet Metadata: - inference time (ms/im): 73.31 + inference time (ms/im): + - value: 73.31 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -207,7 +277,12 @@ Models: - Name: ccnet_r50-d8_512x512_40k_voc12aug In Collection: CCNet Metadata: - inference time (ms/im): 48.9 + inference time (ms/im): + - value: 48.9 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -221,7 +296,12 @@ Models: - Name: ccnet_r101-d8_512x512_40k_voc12aug In Collection: CCNet Metadata: - inference time (ms/im): 73.31 + inference time (ms/im): + - value: 73.31 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug diff --git a/configs/cgnet/metafile.yml b/configs/cgnet/metafile.yml index 65ef6f8586..b138ae68ab 100644 --- a/configs/cgnet/metafile.yml +++ b/configs/cgnet/metafile.yml @@ -9,7 +9,12 @@ Models: - Name: cgnet_680x680_60k_cityscapes In Collection: CGNet Metadata: - inference time (ms/im): 32.78 + inference time (ms/im): + - value: 32.78 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -23,7 +28,12 @@ Models: - Name: cgnet_512x1024_60k_cityscapes In Collection: CGNet Metadata: - inference time (ms/im): 32.11 + inference time (ms/im): + - value: 32.11 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes diff --git a/configs/danet/metafile.yml b/configs/danet/metafile.yml index 6075fd610c..d4b537c27e 100644 --- a/configs/danet/metafile.yml +++ b/configs/danet/metafile.yml @@ -11,7 +11,12 @@ Models: - Name: danet_r50-d8_512x1024_40k_cityscapes In Collection: DANet Metadata: - inference time (ms/im): 375.94 + inference time (ms/im): + - value: 375.94 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -25,7 +30,12 @@ Models: - Name: danet_r101-d8_512x1024_40k_cityscapes In Collection: DANet Metadata: - inference time (ms/im): 502.51 + inference time (ms/im): + - value: 502.51 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -39,7 +49,12 @@ Models: - Name: danet_r50-d8_769x769_40k_cityscapes In Collection: DANet Metadata: - inference time (ms/im): 641.03 + inference time (ms/im): + - value: 641.03 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -53,7 +68,12 @@ Models: - Name: danet_r101-d8_769x769_40k_cityscapes In Collection: DANet Metadata: - inference time (ms/im): 934.58 + inference time (ms/im): + - value: 934.58 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -67,7 +87,12 @@ Models: - Name: danet_r50-d8_512x1024_80k_cityscapes In Collection: DANet Metadata: - inference time (ms/im): 375.94 + inference time (ms/im): + - value: 375.94 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -81,7 +106,12 @@ Models: - Name: danet_r101-d8_512x1024_80k_cityscapes In Collection: DANet Metadata: - inference time (ms/im): 502.51 + inference time (ms/im): + - value: 502.51 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -95,7 +125,12 @@ Models: - Name: danet_r50-d8_769x769_80k_cityscapes In Collection: DANet Metadata: - inference time (ms/im): 641.03 + inference time (ms/im): + - value: 641.03 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -109,7 +144,12 @@ Models: - Name: danet_r101-d8_769x769_80k_cityscapes In Collection: DANet Metadata: - inference time (ms/im): 934.58 + inference time (ms/im): + - value: 934.58 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -123,7 +163,12 @@ Models: - Name: danet_r50-d8_512x512_80k_ade20k In Collection: DANet Metadata: - inference time (ms/im): 47.17 + inference time (ms/im): + - value: 47.17 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -137,7 +182,12 @@ Models: - Name: danet_r101-d8_512x512_80k_ade20k In Collection: DANet Metadata: - inference time (ms/im): 70.52 + inference time (ms/im): + - value: 70.52 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -151,7 +201,12 @@ Models: - Name: danet_r50-d8_512x512_160k_ade20k In Collection: DANet Metadata: - inference time (ms/im): 47.17 + inference time (ms/im): + - value: 47.17 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -165,7 +220,12 @@ Models: - Name: danet_r101-d8_512x512_160k_ade20k In Collection: DANet Metadata: - inference time (ms/im): 70.52 + inference time (ms/im): + - value: 70.52 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -179,7 +239,12 @@ Models: - Name: danet_r50-d8_512x512_20k_voc12aug In Collection: DANet Metadata: - inference time (ms/im): 47.76 + inference time (ms/im): + - value: 47.76 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -193,7 +258,12 @@ Models: - Name: danet_r101-d8_512x512_20k_voc12aug In Collection: DANet Metadata: - inference time (ms/im): 72.67 + inference time (ms/im): + - value: 72.67 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -207,7 +277,12 @@ Models: - Name: danet_r50-d8_512x512_40k_voc12aug In Collection: DANet Metadata: - inference time (ms/im): 47.76 + inference time (ms/im): + - value: 47.76 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -221,7 +296,12 @@ Models: - Name: danet_r101-d8_512x512_40k_voc12aug In Collection: DANet Metadata: - inference time (ms/im): 72.67 + inference time (ms/im): + - value: 72.67 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug diff --git a/configs/deeplabv3/metafile.yml b/configs/deeplabv3/metafile.yml index c3f154d83b..bf8c490c68 100644 --- a/configs/deeplabv3/metafile.yml +++ b/configs/deeplabv3/metafile.yml @@ -12,7 +12,12 @@ Models: - Name: deeplabv3_r50-d8_512x1024_40k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (ms/im): 389.11 + inference time (ms/im): + - value: 389.11 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -26,7 +31,12 @@ Models: - Name: deeplabv3_r101-d8_512x1024_40k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (ms/im): 520.83 + inference time (ms/im): + - value: 520.83 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -40,7 +50,12 @@ Models: - Name: deeplabv3_r50-d8_769x769_40k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (ms/im): 900.9 + inference time (ms/im): + - value: 900.9 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -54,7 +69,12 @@ Models: - Name: deeplabv3_r101-d8_769x769_40k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (ms/im): 1204.82 + inference time (ms/im): + - value: 1204.82 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -68,7 +88,12 @@ Models: - Name: deeplabv3_r18-d8_512x1024_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (ms/im): 72.57 + inference time (ms/im): + - value: 72.57 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -82,7 +107,12 @@ Models: - Name: deeplabv3_r50-d8_512x1024_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (ms/im): 389.11 + inference time (ms/im): + - value: 389.11 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -96,7 +126,12 @@ Models: - Name: deeplabv3_r101-d8_512x1024_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (ms/im): 520.83 + inference time (ms/im): + - value: 520.83 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -110,7 +145,12 @@ Models: - Name: deeplabv3_r18-d8_769x769_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (ms/im): 180.18 + inference time (ms/im): + - value: 180.18 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -124,7 +164,12 @@ Models: - Name: deeplabv3_r50-d8_769x769_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (ms/im): 900.9 + inference time (ms/im): + - value: 900.9 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -138,7 +183,12 @@ Models: - Name: deeplabv3_r101-d8_769x769_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (ms/im): 1204.82 + inference time (ms/im): + - value: 1204.82 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -152,7 +202,12 @@ Models: - Name: deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (ms/im): 143.68 + inference time (ms/im): + - value: 143.68 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -166,7 +221,12 @@ Models: - Name: deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (ms/im): 143.68 + inference time (ms/im): + - value: 143.68 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -180,7 +240,12 @@ Models: - Name: deeplabv3_r18b-d8_512x1024_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (ms/im): 71.79 + inference time (ms/im): + - value: 71.79 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -194,7 +259,12 @@ Models: - Name: deeplabv3_r50b-d8_512x1024_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (ms/im): 364.96 + inference time (ms/im): + - value: 364.96 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -208,7 +278,12 @@ Models: - Name: deeplabv3_r101b-d8_512x1024_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (ms/im): 552.49 + inference time (ms/im): + - value: 552.49 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -222,7 +297,12 @@ Models: - Name: deeplabv3_r18b-d8_769x769_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (ms/im): 172.71 + inference time (ms/im): + - value: 172.71 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -236,7 +316,12 @@ Models: - Name: deeplabv3_r50b-d8_769x769_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (ms/im): 862.07 + inference time (ms/im): + - value: 862.07 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -250,7 +335,12 @@ Models: - Name: deeplabv3_r101b-d8_769x769_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (ms/im): 1219.51 + inference time (ms/im): + - value: 1219.51 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -264,7 +354,12 @@ Models: - Name: deeplabv3_r50-d8_512x512_80k_ade20k In Collection: DeepLabV3 Metadata: - inference time (ms/im): 67.75 + inference time (ms/im): + - value: 67.75 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -278,7 +373,12 @@ Models: - Name: deeplabv3_r101-d8_512x512_80k_ade20k In Collection: DeepLabV3 Metadata: - inference time (ms/im): 98.62 + inference time (ms/im): + - value: 98.62 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -292,7 +392,12 @@ Models: - Name: deeplabv3_r50-d8_512x512_160k_ade20k In Collection: DeepLabV3 Metadata: - inference time (ms/im): 67.75 + inference time (ms/im): + - value: 67.75 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -306,7 +411,12 @@ Models: - Name: deeplabv3_r101-d8_512x512_160k_ade20k In Collection: DeepLabV3 Metadata: - inference time (ms/im): 98.62 + inference time (ms/im): + - value: 98.62 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -320,7 +430,12 @@ Models: - Name: deeplabv3_r50-d8_512x512_20k_voc12aug In Collection: DeepLabV3 Metadata: - inference time (ms/im): 72.05 + inference time (ms/im): + - value: 72.05 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -334,7 +449,12 @@ Models: - Name: deeplabv3_r101-d8_512x512_20k_voc12aug In Collection: DeepLabV3 Metadata: - inference time (ms/im): 101.94 + inference time (ms/im): + - value: 101.94 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -348,7 +468,12 @@ Models: - Name: deeplabv3_r50-d8_512x512_40k_voc12aug In Collection: DeepLabV3 Metadata: - inference time (ms/im): 72.05 + inference time (ms/im): + - value: 72.05 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -362,7 +487,12 @@ Models: - Name: deeplabv3_r101-d8_512x512_40k_voc12aug In Collection: DeepLabV3 Metadata: - inference time (ms/im): 101.94 + inference time (ms/im): + - value: 101.94 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -376,7 +506,12 @@ Models: - Name: deeplabv3_r101-d8_480x480_40k_pascal_context In Collection: DeepLabV3 Metadata: - inference time (ms/im): 141.04 + inference time (ms/im): + - value: 141.04 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -390,7 +525,12 @@ Models: - Name: deeplabv3_r101-d8_480x480_80k_pascal_context In Collection: DeepLabV3 Metadata: - inference time (ms/im): 141.04 + inference time (ms/im): + - value: 141.04 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -404,7 +544,12 @@ Models: - Name: deeplabv3_r101-d8_480x480_40k_pascal_context In Collection: DeepLabV3 Metadata: - inference time (ms/im): None + inference time (ms/im): + - value: None + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -418,7 +563,12 @@ Models: - Name: deeplabv3_r101-d8_480x480_80k_pascal_context_59 In Collection: DeepLabV3 Metadata: - inference time (ms/im): None + inference time (ms/im): + - value: None + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal Context diff --git a/configs/deeplabv3plus/metafile.yml b/configs/deeplabv3plus/metafile.yml index e515d30223..f2bbc551a3 100644 --- a/configs/deeplabv3plus/metafile.yml +++ b/configs/deeplabv3plus/metafile.yml @@ -12,7 +12,12 @@ Models: - Name: deeplabv3plus_r50-d8_512x1024_40k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 253.81 + inference time (ms/im): + - value: 253.81 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -26,7 +31,12 @@ Models: - Name: deeplabv3plus_r101-d8_512x1024_40k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 384.62 + inference time (ms/im): + - value: 384.62 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -40,7 +50,12 @@ Models: - Name: deeplabv3plus_r50-d8_769x769_40k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 581.4 + inference time (ms/im): + - value: 581.4 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -54,7 +69,12 @@ Models: - Name: deeplabv3plus_r101-d8_769x769_40k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 869.57 + inference time (ms/im): + - value: 869.57 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -68,7 +88,12 @@ Models: - Name: deeplabv3plus_r18-d8_512x1024_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 70.08 + inference time (ms/im): + - value: 70.08 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -82,7 +107,12 @@ Models: - Name: deeplabv3plus_r50-d8_512x1024_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 253.81 + inference time (ms/im): + - value: 253.81 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -96,7 +126,12 @@ Models: - Name: deeplabv3plus_r101-d8_512x1024_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 384.62 + inference time (ms/im): + - value: 384.62 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -110,7 +145,12 @@ Models: - Name: deeplabv3plus_r18-d8_769x769_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 174.22 + inference time (ms/im): + - value: 174.22 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -124,7 +164,12 @@ Models: - Name: deeplabv3plus_r50-d8_769x769_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 581.4 + inference time (ms/im): + - value: 581.4 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -138,7 +183,12 @@ Models: - Name: deeplabv3plus_r101-d8_769x769_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 869.57 + inference time (ms/im): + - value: 869.57 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -152,7 +202,12 @@ Models: - Name: deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 133.69 + inference time (ms/im): + - value: 133.69 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -166,7 +221,12 @@ Models: - Name: deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 133.69 + inference time (ms/im): + - value: 133.69 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -180,7 +240,12 @@ Models: - Name: deeplabv3plus_r18b-d8_512x1024_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 66.89 + inference time (ms/im): + - value: 66.89 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -194,7 +259,12 @@ Models: - Name: deeplabv3plus_r50b-d8_512x1024_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 253.81 + inference time (ms/im): + - value: 253.81 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -208,7 +278,12 @@ Models: - Name: deeplabv3plus_r101b-d8_512x1024_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 384.62 + inference time (ms/im): + - value: 384.62 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -222,7 +297,12 @@ Models: - Name: deeplabv3plus_r18b-d8_769x769_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 167.79 + inference time (ms/im): + - value: 167.79 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -236,7 +316,12 @@ Models: - Name: deeplabv3plus_r50b-d8_769x769_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 581.4 + inference time (ms/im): + - value: 581.4 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -250,7 +335,12 @@ Models: - Name: deeplabv3plus_r101b-d8_769x769_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 909.09 + inference time (ms/im): + - value: 909.09 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -264,7 +354,12 @@ Models: - Name: deeplabv3plus_r50-d8_512x512_80k_ade20k In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 47.6 + inference time (ms/im): + - value: 47.6 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -278,7 +373,12 @@ Models: - Name: deeplabv3plus_r101-d8_512x512_80k_ade20k In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 70.62 + inference time (ms/im): + - value: 70.62 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -292,7 +392,12 @@ Models: - Name: deeplabv3plus_r50-d8_512x512_160k_ade20k In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 47.6 + inference time (ms/im): + - value: 47.6 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -306,7 +411,12 @@ Models: - Name: deeplabv3plus_r101-d8_512x512_160k_ade20k In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 70.62 + inference time (ms/im): + - value: 70.62 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -320,7 +430,12 @@ Models: - Name: deeplabv3plus_r50-d8_512x512_20k_voc12aug In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 47.62 + inference time (ms/im): + - value: 47.62 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -334,7 +449,12 @@ Models: - Name: deeplabv3plus_r101-d8_512x512_20k_voc12aug In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 72.05 + inference time (ms/im): + - value: 72.05 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -348,7 +468,12 @@ Models: - Name: deeplabv3plus_r50-d8_512x512_40k_voc12aug In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 47.62 + inference time (ms/im): + - value: 47.62 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -362,7 +487,12 @@ Models: - Name: deeplabv3plus_r101-d8_512x512_40k_voc12aug In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 72.05 + inference time (ms/im): + - value: 72.05 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -376,7 +506,12 @@ Models: - Name: deeplabv3plus_r101-d8_480x480_40k_pascal_context In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 110.01 + inference time (ms/im): + - value: 110.01 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -390,7 +525,12 @@ Models: - Name: deeplabv3plus_r101-d8_480x480_80k_pascal_context In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 110.01 + inference time (ms/im): + - value: 110.01 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -404,7 +544,12 @@ Models: - Name: deeplabv3plus_r101-d8_480x480_40k_pascal_context In Collection: DeepLabV3+ Metadata: - inference time (ms/im): None + inference time (ms/im): + - value: None + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -418,7 +563,12 @@ Models: - Name: deeplabv3plus_r101-d8_480x480_80k_pascal_context In Collection: DeepLabV3+ Metadata: - inference time (ms/im): None + inference time (ms/im): + - value: None + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal Context diff --git a/configs/dmnet/metafile.yml b/configs/dmnet/metafile.yml index fe210d5073..8ab1baa7a1 100644 --- a/configs/dmnet/metafile.yml +++ b/configs/dmnet/metafile.yml @@ -10,7 +10,12 @@ Models: - Name: dmnet_r50-d8_512x1024_40k_cityscapes In Collection: DMNet Metadata: - inference time (ms/im): 273.22 + inference time (ms/im): + - value: 273.22 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -24,7 +29,12 @@ Models: - Name: dmnet_r101-d8_512x1024_40k_cityscapes In Collection: DMNet Metadata: - inference time (ms/im): 393.7 + inference time (ms/im): + - value: 393.7 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -38,7 +48,12 @@ Models: - Name: dmnet_r50-d8_769x769_40k_cityscapes In Collection: DMNet Metadata: - inference time (ms/im): 636.94 + inference time (ms/im): + - value: 636.94 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -52,7 +67,12 @@ Models: - Name: dmnet_r101-d8_769x769_40k_cityscapes In Collection: DMNet Metadata: - inference time (ms/im): 990.1 + inference time (ms/im): + - value: 990.1 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -66,7 +86,12 @@ Models: - Name: dmnet_r50-d8_512x1024_80k_cityscapes In Collection: DMNet Metadata: - inference time (ms/im): 273.22 + inference time (ms/im): + - value: 273.22 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -80,7 +105,12 @@ Models: - Name: dmnet_r101-d8_512x1024_80k_cityscapes In Collection: DMNet Metadata: - inference time (ms/im): 393.7 + inference time (ms/im): + - value: 393.7 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -94,7 +124,12 @@ Models: - Name: dmnet_r50-d8_769x769_80k_cityscapes In Collection: DMNet Metadata: - inference time (ms/im): 636.94 + inference time (ms/im): + - value: 636.94 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -108,7 +143,12 @@ Models: - Name: dmnet_r101-d8_769x769_80k_cityscapes In Collection: DMNet Metadata: - inference time (ms/im): 990.1 + inference time (ms/im): + - value: 990.1 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -122,7 +162,12 @@ Models: - Name: dmnet_r50-d8_512x512_80k_ade20k In Collection: DMNet Metadata: - inference time (ms/im): 47.73 + inference time (ms/im): + - value: 47.73 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -136,7 +181,12 @@ Models: - Name: dmnet_r101-d8_512x512_80k_ade20k In Collection: DMNet Metadata: - inference time (ms/im): 72.05 + inference time (ms/im): + - value: 72.05 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -150,7 +200,12 @@ Models: - Name: dmnet_r50-d8_512x512_160k_ade20k In Collection: DMNet Metadata: - inference time (ms/im): 47.73 + inference time (ms/im): + - value: 47.73 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -164,7 +219,12 @@ Models: - Name: dmnet_r101-d8_512x512_160k_ade20k In Collection: DMNet Metadata: - inference time (ms/im): 72.05 + inference time (ms/im): + - value: 72.05 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K diff --git a/configs/dnlnet/metafile.yml b/configs/dnlnet/metafile.yml index 7b672e1974..2ae289be14 100644 --- a/configs/dnlnet/metafile.yml +++ b/configs/dnlnet/metafile.yml @@ -10,7 +10,12 @@ Models: - Name: dnl_r50-d8_512x1024_40k_cityscapes In Collection: dnl Metadata: - inference time (ms/im): 390.62 + inference time (ms/im): + - value: 390.62 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -24,7 +29,12 @@ Models: - Name: dnl_r101-d8_512x1024_40k_cityscapes In Collection: dnl Metadata: - inference time (ms/im): 510.2 + inference time (ms/im): + - value: 510.2 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -38,7 +48,12 @@ Models: - Name: dnl_r50-d8_769x769_40k_cityscapes In Collection: dnl Metadata: - inference time (ms/im): 666.67 + inference time (ms/im): + - value: 666.67 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -52,7 +67,12 @@ Models: - Name: dnl_r101-d8_769x769_40k_cityscapes In Collection: dnl Metadata: - inference time (ms/im): 980.39 + inference time (ms/im): + - value: 980.39 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -66,7 +86,12 @@ Models: - Name: dnl_r50-d8_512x1024_80k_cityscapes In Collection: dnl Metadata: - inference time (ms/im): 390.62 + inference time (ms/im): + - value: 390.62 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -80,7 +105,12 @@ Models: - Name: dnl_r101-d8_512x1024_80k_cityscapes In Collection: dnl Metadata: - inference time (ms/im): 510.2 + inference time (ms/im): + - value: 510.2 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -94,7 +124,12 @@ Models: - Name: dnl_r50-d8_769x769_80k_cityscapes In Collection: dnl Metadata: - inference time (ms/im): 666.67 + inference time (ms/im): + - value: 666.67 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -108,7 +143,12 @@ Models: - Name: dnl_r101-d8_769x769_80k_cityscapes In Collection: dnl Metadata: - inference time (ms/im): 980.39 + inference time (ms/im): + - value: 980.39 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -122,7 +162,12 @@ Models: - Name: dnl_r50-d8_512x512_80k_ade20k In Collection: dnl Metadata: - inference time (ms/im): 48.4 + inference time (ms/im): + - value: 48.4 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -136,7 +181,12 @@ Models: - Name: dnl_r101-d8_512x512_80k_ade20k In Collection: dnl Metadata: - inference time (ms/im): 79.74 + inference time (ms/im): + - value: 79.74 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -150,7 +200,12 @@ Models: - Name: dnl_r50-d8_512x512_160k_ade20k In Collection: dnl Metadata: - inference time (ms/im): 48.4 + inference time (ms/im): + - value: 48.4 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -164,7 +219,12 @@ Models: - Name: dnl_r101-d8_512x512_160k_ade20k In Collection: dnl Metadata: - inference time (ms/im): 79.74 + inference time (ms/im): + - value: 79.74 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K diff --git a/configs/emanet/metafile.yml b/configs/emanet/metafile.yml index 1a6bee86e9..0fa562abd6 100644 --- a/configs/emanet/metafile.yml +++ b/configs/emanet/metafile.yml @@ -9,7 +9,12 @@ Models: - Name: emanet_r50-d8_512x1024_80k_cityscapes In Collection: EMANet Metadata: - inference time (ms/im): 218.34 + inference time (ms/im): + - value: 218.34 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -23,7 +28,12 @@ Models: - Name: emanet_r101-d8_512x1024_80k_cityscapes In Collection: EMANet Metadata: - inference time (ms/im): 348.43 + inference time (ms/im): + - value: 348.43 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -37,7 +47,12 @@ Models: - Name: emanet_r50-d8_769x769_80k_cityscapes In Collection: EMANet Metadata: - inference time (ms/im): 507.61 + inference time (ms/im): + - value: 507.61 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -51,7 +66,12 @@ Models: - Name: emanet_r101-d8_769x769_80k_cityscapes In Collection: EMANet Metadata: - inference time (ms/im): 819.67 + inference time (ms/im): + - value: 819.67 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes diff --git a/configs/encnet/metafile.yml b/configs/encnet/metafile.yml index d756507729..1e97baa509 100644 --- a/configs/encnet/metafile.yml +++ b/configs/encnet/metafile.yml @@ -11,7 +11,12 @@ Models: - Name: encnet_r50-d8_512x1024_40k_cityscapes In Collection: encnet Metadata: - inference time (ms/im): 218.34 + inference time (ms/im): + - value: 218.34 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -25,7 +30,12 @@ Models: - Name: encnet_r101-d8_512x1024_40k_cityscapes In Collection: encnet Metadata: - inference time (ms/im): 375.94 + inference time (ms/im): + - value: 375.94 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -39,7 +49,12 @@ Models: - Name: encnet_r50-d8_769x769_40k_cityscapes In Collection: encnet Metadata: - inference time (ms/im): 549.45 + inference time (ms/im): + - value: 549.45 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -53,7 +68,12 @@ Models: - Name: encnet_r101-d8_769x769_40k_cityscapes In Collection: encnet Metadata: - inference time (ms/im): 793.65 + inference time (ms/im): + - value: 793.65 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -67,7 +87,12 @@ Models: - Name: encnet_r50-d8_512x1024_80k_cityscapes In Collection: encnet Metadata: - inference time (ms/im): 218.34 + inference time (ms/im): + - value: 218.34 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -81,7 +106,12 @@ Models: - Name: encnet_r101-d8_512x1024_80k_cityscapes In Collection: encnet Metadata: - inference time (ms/im): 375.94 + inference time (ms/im): + - value: 375.94 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -95,7 +125,12 @@ Models: - Name: encnet_r50-d8_769x769_80k_cityscapes In Collection: encnet Metadata: - inference time (ms/im): 549.45 + inference time (ms/im): + - value: 549.45 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -109,7 +144,12 @@ Models: - Name: encnet_r101-d8_769x769_80k_cityscapes In Collection: encnet Metadata: - inference time (ms/im): 793.65 + inference time (ms/im): + - value: 793.65 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -123,7 +163,12 @@ Models: - Name: encnet_r50-d8_512x512_80k_ade20k In Collection: encnet Metadata: - inference time (ms/im): 43.84 + inference time (ms/im): + - value: 43.84 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -137,7 +182,12 @@ Models: - Name: encnet_r101-d8_512x512_80k_ade20k In Collection: encnet Metadata: - inference time (ms/im): 67.25 + inference time (ms/im): + - value: 67.25 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -151,7 +201,12 @@ Models: - Name: encnet_r50-d8_512x512_160k_ade20k In Collection: encnet Metadata: - inference time (ms/im): 43.84 + inference time (ms/im): + - value: 43.84 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -165,7 +220,12 @@ Models: - Name: encnet_r101-d8_512x512_160k_ade20k In Collection: encnet Metadata: - inference time (ms/im): 67.25 + inference time (ms/im): + - value: 67.25 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K diff --git a/configs/fastscnn/metafile.yml b/configs/fastscnn/metafile.yml index f87fb321da..019f1d2fdb 100644 --- a/configs/fastscnn/metafile.yml +++ b/configs/fastscnn/metafile.yml @@ -9,7 +9,12 @@ Models: - Name: fast_scnn_4x8_80k_lr0.12_cityscapes In Collection: Fast-SCNN Metadata: - inference time (ms/im): 15.72 + inference time (ms/im): + - value: 15.72 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes diff --git a/configs/fcn/metafile.yml b/configs/fcn/metafile.yml index e7927e0860..530de45559 100644 --- a/configs/fcn/metafile.yml +++ b/configs/fcn/metafile.yml @@ -19,7 +19,12 @@ Models: - Name: fcn_r50-d8_512x1024_40k_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 239.81 + inference time (ms/im): + - value: 239.81 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -33,7 +38,12 @@ Models: - Name: fcn_r101-d8_512x1024_40k_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 375.94 + inference time (ms/im): + - value: 375.94 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -47,7 +57,12 @@ Models: - Name: fcn_r50-d8_769x769_40k_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 555.56 + inference time (ms/im): + - value: 555.56 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -61,7 +76,12 @@ Models: - Name: fcn_r101-d8_769x769_40k_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 840.34 + inference time (ms/im): + - value: 840.34 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -75,7 +95,12 @@ Models: - Name: fcn_r18-d8_512x1024_80k_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 68.26 + inference time (ms/im): + - value: 68.26 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -89,7 +114,12 @@ Models: - Name: fcn_r50-d8_512x1024_80k_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 239.81 + inference time (ms/im): + - value: 239.81 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -103,7 +133,12 @@ Models: - Name: fcn_r101-d8_512x1024_80k_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 375.94 + inference time (ms/im): + - value: 375.94 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -117,7 +152,12 @@ Models: - Name: fcn_r18-d8_769x769_80k_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 156.25 + inference time (ms/im): + - value: 156.25 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -131,7 +171,12 @@ Models: - Name: fcn_r50-d8_769x769_80k_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 555.56 + inference time (ms/im): + - value: 555.56 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -145,7 +190,12 @@ Models: - Name: fcn_r101-d8_769x769_80k_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 840.34 + inference time (ms/im): + - value: 840.34 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -159,7 +209,12 @@ Models: - Name: fcn_r18b-d8_512x1024_80k_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 59.74 + inference time (ms/im): + - value: 59.74 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -173,7 +228,12 @@ Models: - Name: fcn_r50b-d8_512x1024_80k_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 238.1 + inference time (ms/im): + - value: 238.1 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -187,7 +247,12 @@ Models: - Name: fcn_r101b-d8_512x1024_80k_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 366.3 + inference time (ms/im): + - value: 366.3 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -201,7 +266,12 @@ Models: - Name: fcn_r18b-d8_769x769_80k_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 149.25 + inference time (ms/im): + - value: 149.25 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -215,7 +285,12 @@ Models: - Name: fcn_r50b-d8_769x769_80k_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 549.45 + inference time (ms/im): + - value: 549.45 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -229,7 +304,12 @@ Models: - Name: fcn_r101b-d8_769x769_80k_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 869.57 + inference time (ms/im): + - value: 869.57 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -243,7 +323,12 @@ Models: - Name: fcn_d6_r50-d16_512x1024_40k_cityscapes In Collection: FCN-D6 Metadata: - inference time (ms/im): 97.85 + inference time (ms/im): + - value: 97.85 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -257,7 +342,12 @@ Models: - Name: fcn_d6_r50-d16_512x1024_80k_cityscapes In Collection: FCN-D6 Metadata: - inference time (ms/im): 96.62 + inference time (ms/im): + - value: 96.62 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -271,7 +361,12 @@ Models: - Name: fcn_d6_r50-d16_769x769_40k_cityscapes In Collection: FCN-D6 Metadata: - inference time (ms/im): 239.81 + inference time (ms/im): + - value: 239.81 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -285,7 +380,12 @@ Models: - Name: fcn_d6_r50-d16_769x769_80k_cityscapes In Collection: FCN-D6 Metadata: - inference time (ms/im): 240.96 + inference time (ms/im): + - value: 240.96 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -299,7 +399,12 @@ Models: - Name: fcn_d6_r101-d16_512x1024_40k_cityscapes In Collection: FCN-D6 Metadata: - inference time (ms/im): 124.38 + inference time (ms/im): + - value: 124.38 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -313,7 +418,12 @@ Models: - Name: fcn_d6_r101-d16_512x1024_80k_cityscapes In Collection: FCN-D6 Metadata: - inference time (ms/im): 121.07 + inference time (ms/im): + - value: 121.07 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -327,7 +437,12 @@ Models: - Name: fcn_d6_r101-d16_769x769_40k_cityscapes In Collection: FCN-D6 Metadata: - inference time (ms/im): 320.51 + inference time (ms/im): + - value: 320.51 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -341,7 +456,12 @@ Models: - Name: fcn_d6_r101-d16_769x769_80k_cityscapes In Collection: FCN-D6 Metadata: - inference time (ms/im): 311.53 + inference time (ms/im): + - value: 311.53 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -355,7 +475,12 @@ Models: - Name: fcn_r50-d8_512x512_80k_ade20k In Collection: FCN Metadata: - inference time (ms/im): 42.57 + inference time (ms/im): + - value: 42.57 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -369,7 +494,12 @@ Models: - Name: fcn_r101-d8_512x512_80k_ade20k In Collection: FCN Metadata: - inference time (ms/im): 67.66 + inference time (ms/im): + - value: 67.66 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -383,7 +513,12 @@ Models: - Name: fcn_r50-d8_512x512_160k_ade20k In Collection: FCN Metadata: - inference time (ms/im): 42.57 + inference time (ms/im): + - value: 42.57 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -397,7 +532,12 @@ Models: - Name: fcn_r101-d8_512x512_160k_ade20k In Collection: FCN Metadata: - inference time (ms/im): 67.66 + inference time (ms/im): + - value: 67.66 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -411,7 +551,12 @@ Models: - Name: fcn_r50-d8_512x512_20k_voc12aug In Collection: FCN Metadata: - inference time (ms/im): 42.96 + inference time (ms/im): + - value: 42.96 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -425,7 +570,12 @@ Models: - Name: fcn_r101-d8_512x512_20k_voc12aug In Collection: FCN Metadata: - inference time (ms/im): 67.52 + inference time (ms/im): + - value: 67.52 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -439,7 +589,12 @@ Models: - Name: fcn_r50-d8_512x512_40k_voc12aug In Collection: FCN Metadata: - inference time (ms/im): 42.96 + inference time (ms/im): + - value: 42.96 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -453,7 +608,12 @@ Models: - Name: fcn_r101-d8_512x512_40k_voc12aug In Collection: FCN Metadata: - inference time (ms/im): 67.52 + inference time (ms/im): + - value: 67.52 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -467,7 +627,12 @@ Models: - Name: fcn_r101-d8_480x480_40k_pascal_context In Collection: FCN Metadata: - inference time (ms/im): 100.7 + inference time (ms/im): + - value: 100.7 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -481,7 +646,12 @@ Models: - Name: fcn_r101-d8_480x480_80k_pascal_context In Collection: FCN Metadata: - inference time (ms/im): 100.7 + inference time (ms/im): + - value: 100.7 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -495,7 +665,12 @@ Models: - Name: fcn_r101-d8_480x480_40k_pascal_context_59 In Collection: FCN Metadata: - inference time (ms/im): None + inference time (ms/im): + - value: None + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -509,7 +684,12 @@ Models: - Name: fcn_r101-d8_480x480_80k_pascal_context_59 In Collection: FCN Metadata: - inference time (ms/im): None + inference time (ms/im): + - value: None + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal Context diff --git a/configs/fp16/metafile.yml b/configs/fp16/metafile.yml index f1bf8d3bb0..841429b361 100644 --- a/configs/fp16/metafile.yml +++ b/configs/fp16/metafile.yml @@ -4,7 +4,12 @@ Models: - Name: fcn_r101-d8_512x1024_80k_fp16_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 115.74 + inference time (ms/im): + - value: 115.74 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -18,7 +23,12 @@ Models: - Name: pspnet_r101-d8_512x1024_80k_fp16_cityscapes In Collection: PSPNet Metadata: - inference time (ms/im): 114.03 + inference time (ms/im): + - value: 114.03 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -32,7 +42,12 @@ Models: - Name: deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes In Collection: DeepLabV3 Metadata: - inference time (ms/im): 259.07 + inference time (ms/im): + - value: 259.07 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -46,7 +61,12 @@ Models: - Name: deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 127.06 + inference time (ms/im): + - value: 127.06 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes diff --git a/configs/gcnet/metafile.yml b/configs/gcnet/metafile.yml index e5efcb85b1..c1ddc1c0b2 100644 --- a/configs/gcnet/metafile.yml +++ b/configs/gcnet/metafile.yml @@ -11,7 +11,12 @@ Models: - Name: gcnet_r50-d8_512x1024_40k_cityscapes In Collection: GCNet Metadata: - inference time (ms/im): 254.45 + inference time (ms/im): + - value: 254.45 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -25,7 +30,12 @@ Models: - Name: gcnet_r101-d8_512x1024_40k_cityscapes In Collection: GCNet Metadata: - inference time (ms/im): 383.14 + inference time (ms/im): + - value: 383.14 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -39,7 +49,12 @@ Models: - Name: gcnet_r50-d8_769x769_40k_cityscapes In Collection: GCNet Metadata: - inference time (ms/im): 598.8 + inference time (ms/im): + - value: 598.8 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -53,7 +68,12 @@ Models: - Name: gcnet_r101-d8_769x769_40k_cityscapes In Collection: GCNet Metadata: - inference time (ms/im): 884.96 + inference time (ms/im): + - value: 884.96 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -67,7 +87,12 @@ Models: - Name: gcnet_r50-d8_512x1024_80k_cityscapes In Collection: GCNet Metadata: - inference time (ms/im): 254.45 + inference time (ms/im): + - value: 254.45 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -81,7 +106,12 @@ Models: - Name: gcnet_r101-d8_512x1024_80k_cityscapes In Collection: GCNet Metadata: - inference time (ms/im): 383.14 + inference time (ms/im): + - value: 383.14 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -95,7 +125,12 @@ Models: - Name: gcnet_r50-d8_769x769_80k_cityscapes In Collection: GCNet Metadata: - inference time (ms/im): 598.8 + inference time (ms/im): + - value: 598.8 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -109,7 +144,12 @@ Models: - Name: gcnet_r101-d8_769x769_80k_cityscapes In Collection: GCNet Metadata: - inference time (ms/im): 884.96 + inference time (ms/im): + - value: 884.96 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -123,7 +163,12 @@ Models: - Name: gcnet_r50-d8_512x512_80k_ade20k In Collection: GCNet Metadata: - inference time (ms/im): 42.77 + inference time (ms/im): + - value: 42.77 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -137,7 +182,12 @@ Models: - Name: gcnet_r101-d8_512x512_80k_ade20k In Collection: GCNet Metadata: - inference time (ms/im): 65.79 + inference time (ms/im): + - value: 65.79 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -151,7 +201,12 @@ Models: - Name: gcnet_r50-d8_512x512_160k_ade20k In Collection: GCNet Metadata: - inference time (ms/im): 42.77 + inference time (ms/im): + - value: 42.77 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -165,7 +220,12 @@ Models: - Name: gcnet_r101-d8_512x512_160k_ade20k In Collection: GCNet Metadata: - inference time (ms/im): 65.79 + inference time (ms/im): + - value: 65.79 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -179,7 +239,12 @@ Models: - Name: gcnet_r50-d8_512x512_20k_voc12aug In Collection: GCNet Metadata: - inference time (ms/im): 42.83 + inference time (ms/im): + - value: 42.83 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -193,7 +258,12 @@ Models: - Name: gcnet_r101-d8_512x512_20k_voc12aug In Collection: GCNet Metadata: - inference time (ms/im): 67.57 + inference time (ms/im): + - value: 67.57 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -207,7 +277,12 @@ Models: - Name: gcnet_r50-d8_512x512_40k_voc12aug In Collection: GCNet Metadata: - inference time (ms/im): 42.83 + inference time (ms/im): + - value: 42.83 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -221,7 +296,12 @@ Models: - Name: gcnet_r101-d8_512x512_40k_voc12aug In Collection: GCNet Metadata: - inference time (ms/im): 67.57 + inference time (ms/im): + - value: 67.57 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug diff --git a/configs/hrnet/metafile.yml b/configs/hrnet/metafile.yml index e96a05919b..b57776bc56 100644 --- a/configs/hrnet/metafile.yml +++ b/configs/hrnet/metafile.yml @@ -2,7 +2,12 @@ Models: - Name: fcn_hr18s_512x1024_40k_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 42.12 + inference time (ms/im): + - value: 42.12 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -16,7 +21,12 @@ Models: - Name: fcn_hr18_512x1024_40k_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 77.1 + inference time (ms/im): + - value: 77.1 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -30,7 +40,12 @@ Models: - Name: fcn_hr48_512x1024_40k_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 155.76 + inference time (ms/im): + - value: 155.76 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -44,7 +59,12 @@ Models: - Name: fcn_hr18s_512x1024_80k_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 42.12 + inference time (ms/im): + - value: 42.12 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -58,7 +78,12 @@ Models: - Name: fcn_hr18_512x1024_80k_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 77.1 + inference time (ms/im): + - value: 77.1 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -72,7 +97,12 @@ Models: - Name: fcn_hr48_512x1024_80k_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 155.76 + inference time (ms/im): + - value: 155.76 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -86,7 +116,12 @@ Models: - Name: fcn_hr18s_512x1024_160k_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 42.12 + inference time (ms/im): + - value: 42.12 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -100,7 +135,12 @@ Models: - Name: fcn_hr18_512x1024_160k_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 77.1 + inference time (ms/im): + - value: 77.1 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -114,7 +154,12 @@ Models: - Name: fcn_hr48_512x1024_160k_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 155.76 + inference time (ms/im): + - value: 155.76 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -128,7 +173,12 @@ Models: - Name: fcn_hr18s_512x512_80k_ade20k In Collection: FCN Metadata: - inference time (ms/im): 25.87 + inference time (ms/im): + - value: 25.87 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -142,7 +192,12 @@ Models: - Name: fcn_hr18_512x512_80k_ade20k In Collection: FCN Metadata: - inference time (ms/im): 44.31 + inference time (ms/im): + - value: 44.31 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -156,7 +211,12 @@ Models: - Name: fcn_hr48_512x512_80k_ade20k In Collection: FCN Metadata: - inference time (ms/im): 47.1 + inference time (ms/im): + - value: 47.1 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -170,7 +230,12 @@ Models: - Name: fcn_hr18s_512x512_160k_ade20k In Collection: FCN Metadata: - inference time (ms/im): 25.87 + inference time (ms/im): + - value: 25.87 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -184,7 +249,12 @@ Models: - Name: fcn_hr18_512x512_160k_ade20k In Collection: FCN Metadata: - inference time (ms/im): 44.31 + inference time (ms/im): + - value: 44.31 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -198,7 +268,12 @@ Models: - Name: fcn_hr48_512x512_160k_ade20k In Collection: FCN Metadata: - inference time (ms/im): 47.1 + inference time (ms/im): + - value: 47.1 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -212,7 +287,12 @@ Models: - Name: fcn_hr18s_512x512_20k_voc12aug In Collection: FCN Metadata: - inference time (ms/im): 23.06 + inference time (ms/im): + - value: 23.06 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -226,7 +306,12 @@ Models: - Name: fcn_hr18_512x512_20k_voc12aug In Collection: FCN Metadata: - inference time (ms/im): 42.59 + inference time (ms/im): + - value: 42.59 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -240,7 +325,12 @@ Models: - Name: fcn_hr48_512x512_20k_voc12aug In Collection: FCN Metadata: - inference time (ms/im): 45.35 + inference time (ms/im): + - value: 45.35 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -254,7 +344,12 @@ Models: - Name: fcn_hr18s_512x512_40k_voc12aug In Collection: FCN Metadata: - inference time (ms/im): 23.06 + inference time (ms/im): + - value: 23.06 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -268,7 +363,12 @@ Models: - Name: fcn_hr18_512x512_40k_voc12aug In Collection: FCN Metadata: - inference time (ms/im): 42.59 + inference time (ms/im): + - value: 42.59 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -282,7 +382,12 @@ Models: - Name: fcn_hr48_512x512_40k_voc12aug In Collection: FCN Metadata: - inference time (ms/im): 45.35 + inference time (ms/im): + - value: 45.35 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -296,7 +401,12 @@ Models: - Name: fcn_hr48_480x480_40k_pascal_context In Collection: FCN Metadata: - inference time (ms/im): 112.87 + inference time (ms/im): + - value: 112.87 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -310,7 +420,12 @@ Models: - Name: fcn_hr48_480x480_80k_pascal_context In Collection: FCN Metadata: - inference time (ms/im): 112.87 + inference time (ms/im): + - value: 112.87 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -324,7 +439,12 @@ Models: - Name: fcn_hr48_480x480_40k_pascal_context_59 In Collection: FCN Metadata: - inference time (ms/im): None + inference time (ms/im): + - value: None + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -338,7 +458,12 @@ Models: - Name: fcn_hr48_480x480_80k_pascal_context In Collection: FCN Metadata: - inference time (ms/im): None + inference time (ms/im): + - value: None + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal Context diff --git a/configs/mobilenet_v2/metafile.yml b/configs/mobilenet_v2/metafile.yml index 1379bbae9c..627a88d5f3 100644 --- a/configs/mobilenet_v2/metafile.yml +++ b/configs/mobilenet_v2/metafile.yml @@ -4,7 +4,12 @@ Models: - Name: fcn_m-v2-d8_512x1024_80k_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 70.42 + inference time (ms/im): + - value: 70.42 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -18,7 +23,12 @@ Models: - Name: pspnet_m-v2-d8_512x1024_80k_cityscapes In Collection: PSPNet Metadata: - inference time (ms/im): 89.29 + inference time (ms/im): + - value: 89.29 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -32,7 +42,12 @@ Models: - Name: deeplabv3_m-v2-d8_512x1024_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (ms/im): 119.05 + inference time (ms/im): + - value: 119.05 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -46,7 +61,12 @@ Models: - Name: deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 119.05 + inference time (ms/im): + - value: 119.05 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -60,7 +80,12 @@ Models: - Name: fcn_m-v2-d8_512x512_160k_ade20k In Collection: FCN Metadata: - inference time (ms/im): 15.53 + inference time (ms/im): + - value: 15.53 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -74,7 +99,12 @@ Models: - Name: pspnet_m-v2-d8_512x512_160k_ade20k In Collection: PSPNet Metadata: - inference time (ms/im): 17.33 + inference time (ms/im): + - value: 17.33 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -88,7 +118,12 @@ Models: - Name: deeplabv3_m-v2-d8_512x512_160k_ade20k In Collection: DeepLabV3 Metadata: - inference time (ms/im): 25.06 + inference time (ms/im): + - value: 25.06 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -102,7 +137,12 @@ Models: - Name: deeplabv3plus_m-v2-d8_512x512_160k_ade20k In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 23.2 + inference time (ms/im): + - value: 23.2 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K diff --git a/configs/mobilenet_v3/metafile.yml b/configs/mobilenet_v3/metafile.yml index a7134c712e..22da770e92 100644 --- a/configs/mobilenet_v3/metafile.yml +++ b/configs/mobilenet_v3/metafile.yml @@ -9,7 +9,12 @@ Models: - Name: lraspp_m-v3-d8_512x1024_320k_cityscapes In Collection: LRASPP Metadata: - inference time (ms/im): 65.7 + inference time (ms/im): + - value: 65.7 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -23,7 +28,12 @@ Models: - Name: lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes In Collection: LRASPP Metadata: - inference time (ms/im): 67.7 + inference time (ms/im): + - value: 67.7 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -37,7 +47,12 @@ Models: - Name: lraspp_m-v3s-d8_512x1024_320k_cityscapes In Collection: LRASPP Metadata: - inference time (ms/im): 42.3 + inference time (ms/im): + - value: 42.3 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -51,7 +66,12 @@ Models: - Name: lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes In Collection: LRASPP Metadata: - inference time (ms/im): 40.82 + inference time (ms/im): + - value: 40.82 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes diff --git a/configs/nonlocal_net/metafile.yml b/configs/nonlocal_net/metafile.yml index c78fc30594..aae1b54643 100644 --- a/configs/nonlocal_net/metafile.yml +++ b/configs/nonlocal_net/metafile.yml @@ -11,7 +11,12 @@ Models: - Name: nonlocal_r50-d8_512x1024_40k_cityscapes In Collection: NonLocal Metadata: - inference time (ms/im): 367.65 + inference time (ms/im): + - value: 367.65 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -25,7 +30,12 @@ Models: - Name: nonlocal_r101-d8_512x1024_40k_cityscapes In Collection: NonLocal Metadata: - inference time (ms/im): 512.82 + inference time (ms/im): + - value: 512.82 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -39,7 +49,12 @@ Models: - Name: nonlocal_r50-d8_769x769_40k_cityscapes In Collection: NonLocal Metadata: - inference time (ms/im): 657.89 + inference time (ms/im): + - value: 657.89 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -53,7 +68,12 @@ Models: - Name: nonlocal_r101-d8_769x769_40k_cityscapes In Collection: NonLocal Metadata: - inference time (ms/im): 952.38 + inference time (ms/im): + - value: 952.38 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -67,7 +87,12 @@ Models: - Name: nonlocal_r50-d8_512x1024_80k_cityscapes In Collection: NonLocal Metadata: - inference time (ms/im): 367.65 + inference time (ms/im): + - value: 367.65 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -81,7 +106,12 @@ Models: - Name: nonlocal_r101-d8_512x1024_80k_cityscapes In Collection: NonLocal Metadata: - inference time (ms/im): 512.82 + inference time (ms/im): + - value: 512.82 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -95,7 +125,12 @@ Models: - Name: nonlocal_r50-d8_769x769_80k_cityscapes In Collection: NonLocal Metadata: - inference time (ms/im): 657.89 + inference time (ms/im): + - value: 657.89 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -109,7 +144,12 @@ Models: - Name: nonlocal_r101-d8_769x769_80k_cityscapes In Collection: NonLocal Metadata: - inference time (ms/im): 952.38 + inference time (ms/im): + - value: 952.38 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -123,7 +163,12 @@ Models: - Name: nonlocal_r50-d8_512x512_80k_ade20k In Collection: NonLocal Metadata: - inference time (ms/im): 46.79 + inference time (ms/im): + - value: 46.79 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -137,7 +182,12 @@ Models: - Name: nonlocal_r101-d8_512x512_80k_ade20k In Collection: NonLocal Metadata: - inference time (ms/im): 71.58 + inference time (ms/im): + - value: 71.58 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -151,7 +201,12 @@ Models: - Name: nonlocal_r50-d8_512x512_160k_ade20k In Collection: NonLocal Metadata: - inference time (ms/im): 46.79 + inference time (ms/im): + - value: 46.79 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -165,7 +220,12 @@ Models: - Name: nonlocal_r101-d8_512x512_160k_ade20k In Collection: NonLocal Metadata: - inference time (ms/im): 71.58 + inference time (ms/im): + - value: 71.58 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -179,7 +239,12 @@ Models: - Name: nonlocal_r50-d8_512x512_20k_voc12aug In Collection: NonLocal Metadata: - inference time (ms/im): 47.15 + inference time (ms/im): + - value: 47.15 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -193,7 +258,12 @@ Models: - Name: nonlocal_r101-d8_512x512_20k_voc12aug In Collection: NonLocal Metadata: - inference time (ms/im): 71.38 + inference time (ms/im): + - value: 71.38 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -207,7 +277,12 @@ Models: - Name: nonlocal_r50-d8_512x512_40k_voc12aug In Collection: NonLocal Metadata: - inference time (ms/im): 47.15 + inference time (ms/im): + - value: 47.15 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -221,7 +296,12 @@ Models: - Name: nonlocal_r101-d8_512x512_40k_voc12aug In Collection: NonLocal Metadata: - inference time (ms/im): 71.38 + inference time (ms/im): + - value: 71.38 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug diff --git a/configs/ocrnet/metafile.yml b/configs/ocrnet/metafile.yml index 1ba52dee18..b3383776f9 100644 --- a/configs/ocrnet/metafile.yml +++ b/configs/ocrnet/metafile.yml @@ -11,7 +11,12 @@ Models: - Name: ocrnet_hr18s_512x1024_40k_cityscapes In Collection: OCRNet Metadata: - inference time (ms/im): 95.69 + inference time (ms/im): + - value: 95.69 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -25,7 +30,12 @@ Models: - Name: ocrnet_hr18_512x1024_40k_cityscapes In Collection: OCRNet Metadata: - inference time (ms/im): 133.33 + inference time (ms/im): + - value: 133.33 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -39,7 +49,12 @@ Models: - Name: ocrnet_hr48_512x1024_40k_cityscapes In Collection: OCRNet Metadata: - inference time (ms/im): 236.97 + inference time (ms/im): + - value: 236.97 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -53,7 +68,12 @@ Models: - Name: ocrnet_hr18s_512x1024_80k_cityscapes In Collection: OCRNet Metadata: - inference time (ms/im): 95.69 + inference time (ms/im): + - value: 95.69 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -67,7 +87,12 @@ Models: - Name: ocrnet_hr18_512x1024_80k_cityscapes In Collection: OCRNet Metadata: - inference time (ms/im): 133.33 + inference time (ms/im): + - value: 133.33 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -81,7 +106,12 @@ Models: - Name: ocrnet_hr48_512x1024_80k_cityscapes In Collection: OCRNet Metadata: - inference time (ms/im): 236.97 + inference time (ms/im): + - value: 236.97 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -95,7 +125,12 @@ Models: - Name: ocrnet_hr18s_512x1024_160k_cityscapes In Collection: OCRNet Metadata: - inference time (ms/im): 95.69 + inference time (ms/im): + - value: 95.69 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -109,7 +144,12 @@ Models: - Name: ocrnet_hr18_512x1024_160k_cityscapes In Collection: OCRNet Metadata: - inference time (ms/im): 133.33 + inference time (ms/im): + - value: 133.33 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -123,7 +163,12 @@ Models: - Name: ocrnet_hr48_512x1024_160k_cityscapes In Collection: OCRNet Metadata: - inference time (ms/im): 236.97 + inference time (ms/im): + - value: 236.97 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -137,7 +182,12 @@ Models: - Name: ocrnet_r101-d8_512x1024_40k_b8_cityscapes In Collection: OCRNet Metadata: - inference time (ms/im): None + inference time (ms/im): + - value: None + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -151,7 +201,12 @@ Models: - Name: ocrnet_r101-d8_512x1024_40k_b16_cityscapes In Collection: OCRNet Metadata: - inference time (ms/im): 113.64 + inference time (ms/im): + - value: 113.64 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -165,7 +220,12 @@ Models: - Name: ocrnet_r101-d8_512x1024_80k_b16_cityscapes In Collection: OCRNet Metadata: - inference time (ms/im): 113.64 + inference time (ms/im): + - value: 113.64 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -179,7 +239,12 @@ Models: - Name: ocrnet_hr18s_512x512_80k_ade20k In Collection: OCRNet Metadata: - inference time (ms/im): 34.51 + inference time (ms/im): + - value: 34.51 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -193,7 +258,12 @@ Models: - Name: ocrnet_hr18_512x512_80k_ade20k In Collection: OCRNet Metadata: - inference time (ms/im): 52.83 + inference time (ms/im): + - value: 52.83 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -207,7 +277,12 @@ Models: - Name: ocrnet_hr48_512x512_80k_ade20k In Collection: OCRNet Metadata: - inference time (ms/im): 58.86 + inference time (ms/im): + - value: 58.86 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -221,7 +296,12 @@ Models: - Name: ocrnet_hr18s_512x512_160k_ade20k In Collection: OCRNet Metadata: - inference time (ms/im): 34.51 + inference time (ms/im): + - value: 34.51 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -235,7 +315,12 @@ Models: - Name: ocrnet_hr18_512x512_160k_ade20k In Collection: OCRNet Metadata: - inference time (ms/im): 52.83 + inference time (ms/im): + - value: 52.83 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -249,7 +334,12 @@ Models: - Name: ocrnet_hr48_512x512_160k_ade20k In Collection: OCRNet Metadata: - inference time (ms/im): 58.86 + inference time (ms/im): + - value: 58.86 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -263,7 +353,12 @@ Models: - Name: ocrnet_hr18s_512x512_20k_voc12aug In Collection: OCRNet Metadata: - inference time (ms/im): 31.7 + inference time (ms/im): + - value: 31.7 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -277,7 +372,12 @@ Models: - Name: ocrnet_hr18_512x512_20k_voc12aug In Collection: OCRNet Metadata: - inference time (ms/im): 50.23 + inference time (ms/im): + - value: 50.23 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -291,7 +391,12 @@ Models: - Name: ocrnet_hr48_512x512_20k_voc12aug In Collection: OCRNet Metadata: - inference time (ms/im): 56.09 + inference time (ms/im): + - value: 56.09 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -305,7 +410,12 @@ Models: - Name: ocrnet_hr18s_512x512_40k_voc12aug In Collection: OCRNet Metadata: - inference time (ms/im): 31.7 + inference time (ms/im): + - value: 31.7 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -319,7 +429,12 @@ Models: - Name: ocrnet_hr18_512x512_40k_voc12aug In Collection: OCRNet Metadata: - inference time (ms/im): 50.23 + inference time (ms/im): + - value: 50.23 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -333,7 +448,12 @@ Models: - Name: ocrnet_hr48_512x512_40k_voc12aug In Collection: OCRNet Metadata: - inference time (ms/im): 56.09 + inference time (ms/im): + - value: 56.09 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug diff --git a/configs/point_rend/metafile.yml b/configs/point_rend/metafile.yml index 6a92fd489d..72682fa081 100644 --- a/configs/point_rend/metafile.yml +++ b/configs/point_rend/metafile.yml @@ -10,7 +10,12 @@ Models: - Name: pointrend_r50_512x1024_80k_cityscapes In Collection: PointRend Metadata: - inference time (ms/im): 117.92 + inference time (ms/im): + - value: 117.92 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -24,7 +29,12 @@ Models: - Name: pointrend_r101_512x1024_80k_cityscapes In Collection: PointRend Metadata: - inference time (ms/im): 142.86 + inference time (ms/im): + - value: 142.86 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -38,7 +48,12 @@ Models: - Name: pointrend_r50_512x512_160k_ade20k In Collection: PointRend Metadata: - inference time (ms/im): 57.77 + inference time (ms/im): + - value: 57.77 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -52,7 +67,12 @@ Models: - Name: pointrend_r101_512x512_160k_ade20k In Collection: PointRend Metadata: - inference time (ms/im): 64.52 + inference time (ms/im): + - value: 64.52 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K diff --git a/configs/psanet/metafile.yml b/configs/psanet/metafile.yml index 801fcb4e6e..2372494554 100644 --- a/configs/psanet/metafile.yml +++ b/configs/psanet/metafile.yml @@ -11,7 +11,12 @@ Models: - Name: psanet_r50-d8_512x1024_40k_cityscapes In Collection: PSANet Metadata: - inference time (ms/im): 315.46 + inference time (ms/im): + - value: 315.46 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -25,7 +30,12 @@ Models: - Name: psanet_r101-d8_512x1024_40k_cityscapes In Collection: PSANet Metadata: - inference time (ms/im): 454.55 + inference time (ms/im): + - value: 454.55 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -39,7 +49,12 @@ Models: - Name: psanet_r50-d8_769x769_40k_cityscapes In Collection: PSANet Metadata: - inference time (ms/im): 714.29 + inference time (ms/im): + - value: 714.29 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -53,7 +68,12 @@ Models: - Name: psanet_r101-d8_769x769_40k_cityscapes In Collection: PSANet Metadata: - inference time (ms/im): 1020.41 + inference time (ms/im): + - value: 1020.41 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -67,7 +87,12 @@ Models: - Name: psanet_r50-d8_512x1024_80k_cityscapes In Collection: PSANet Metadata: - inference time (ms/im): 315.46 + inference time (ms/im): + - value: 315.46 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -81,7 +106,12 @@ Models: - Name: psanet_r101-d8_512x1024_80k_cityscapes In Collection: PSANet Metadata: - inference time (ms/im): 454.55 + inference time (ms/im): + - value: 454.55 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -95,7 +125,12 @@ Models: - Name: psanet_r50-d8_769x769_80k_cityscapes In Collection: PSANet Metadata: - inference time (ms/im): 714.29 + inference time (ms/im): + - value: 714.29 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -109,7 +144,12 @@ Models: - Name: psanet_r101-d8_769x769_80k_cityscapes In Collection: PSANet Metadata: - inference time (ms/im): 1020.41 + inference time (ms/im): + - value: 1020.41 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -123,7 +163,12 @@ Models: - Name: psanet_r50-d8_512x512_80k_ade20k In Collection: PSANet Metadata: - inference time (ms/im): 52.88 + inference time (ms/im): + - value: 52.88 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -137,7 +182,12 @@ Models: - Name: psanet_r101-d8_512x512_80k_ade20k In Collection: PSANet Metadata: - inference time (ms/im): 76.16 + inference time (ms/im): + - value: 76.16 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -151,7 +201,12 @@ Models: - Name: psanet_r50-d8_512x512_160k_ade20k In Collection: PSANet Metadata: - inference time (ms/im): 52.88 + inference time (ms/im): + - value: 52.88 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -165,7 +220,12 @@ Models: - Name: psanet_r101-d8_512x512_160k_ade20k In Collection: PSANet Metadata: - inference time (ms/im): 76.16 + inference time (ms/im): + - value: 76.16 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -179,7 +239,12 @@ Models: - Name: psanet_r50-d8_512x512_20k_voc12aug In Collection: PSANet Metadata: - inference time (ms/im): 54.82 + inference time (ms/im): + - value: 54.82 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -193,7 +258,12 @@ Models: - Name: psanet_r101-d8_512x512_20k_voc12aug In Collection: PSANet Metadata: - inference time (ms/im): 79.18 + inference time (ms/im): + - value: 79.18 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -207,7 +277,12 @@ Models: - Name: psanet_r50-d8_512x512_40k_voc12aug In Collection: PSANet Metadata: - inference time (ms/im): 54.82 + inference time (ms/im): + - value: 54.82 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -221,7 +296,12 @@ Models: - Name: psanet_r101-d8_512x512_40k_voc12aug In Collection: PSANet Metadata: - inference time (ms/im): 79.18 + inference time (ms/im): + - value: 79.18 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug diff --git a/configs/pspnet/metafile.yml b/configs/pspnet/metafile.yml index d5db5b713a..992708a2eb 100644 --- a/configs/pspnet/metafile.yml +++ b/configs/pspnet/metafile.yml @@ -12,7 +12,12 @@ Models: - Name: pspnet_r50-d8_512x1024_40k_cityscapes In Collection: PSPNet Metadata: - inference time (ms/im): 245.7 + inference time (ms/im): + - value: 245.7 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -26,7 +31,12 @@ Models: - Name: pspnet_r101-d8_512x1024_40k_cityscapes In Collection: PSPNet Metadata: - inference time (ms/im): 373.13 + inference time (ms/im): + - value: 373.13 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -40,7 +50,12 @@ Models: - Name: pspnet_r50-d8_769x769_40k_cityscapes In Collection: PSPNet Metadata: - inference time (ms/im): 568.18 + inference time (ms/im): + - value: 568.18 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -54,7 +69,12 @@ Models: - Name: pspnet_r101-d8_769x769_40k_cityscapes In Collection: PSPNet Metadata: - inference time (ms/im): 869.57 + inference time (ms/im): + - value: 869.57 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -68,7 +88,12 @@ Models: - Name: pspnet_r18-d8_512x1024_80k_cityscapes In Collection: PSPNet Metadata: - inference time (ms/im): 63.65 + inference time (ms/im): + - value: 63.65 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -82,7 +107,12 @@ Models: - Name: pspnet_r50-d8_512x1024_80k_cityscapes In Collection: PSPNet Metadata: - inference time (ms/im): 245.7 + inference time (ms/im): + - value: 245.7 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -96,7 +126,12 @@ Models: - Name: pspnet_r101-d8_512x1024_80k_cityscapes In Collection: PSPNet Metadata: - inference time (ms/im): 373.13 + inference time (ms/im): + - value: 373.13 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -110,7 +145,12 @@ Models: - Name: pspnet_r18-d8_769x769_80k_cityscapes In Collection: PSPNet Metadata: - inference time (ms/im): 161.29 + inference time (ms/im): + - value: 161.29 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -124,7 +164,12 @@ Models: - Name: pspnet_r50-d8_769x769_80k_cityscapes In Collection: PSPNet Metadata: - inference time (ms/im): 568.18 + inference time (ms/im): + - value: 568.18 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -138,7 +183,12 @@ Models: - Name: pspnet_r101-d8_769x769_80k_cityscapes In Collection: PSPNet Metadata: - inference time (ms/im): 869.57 + inference time (ms/im): + - value: 869.57 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -152,7 +202,12 @@ Models: - Name: pspnet_r18b-d8_512x1024_80k_cityscapes In Collection: PSPNet Metadata: - inference time (ms/im): 61.43 + inference time (ms/im): + - value: 61.43 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -166,7 +221,12 @@ Models: - Name: pspnet_r50b-d8_512x1024_80k_cityscapes In Collection: PSPNet Metadata: - inference time (ms/im): 232.56 + inference time (ms/im): + - value: 232.56 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -180,7 +240,12 @@ Models: - Name: pspnet_r101b-d8_512x1024_80k_cityscapes In Collection: PSPNet Metadata: - inference time (ms/im): 362.32 + inference time (ms/im): + - value: 362.32 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -194,7 +259,12 @@ Models: - Name: pspnet_r18b-d8_769x769_80k_cityscapes In Collection: PSPNet Metadata: - inference time (ms/im): 156.01 + inference time (ms/im): + - value: 156.01 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -208,7 +278,12 @@ Models: - Name: pspnet_r50b-d8_769x769_80k_cityscapes In Collection: PSPNet Metadata: - inference time (ms/im): 531.91 + inference time (ms/im): + - value: 531.91 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -222,7 +297,12 @@ Models: - Name: pspnet_r101b-d8_769x769_80k_cityscapes In Collection: PSPNet Metadata: - inference time (ms/im): 854.7 + inference time (ms/im): + - value: 854.7 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -236,7 +316,12 @@ Models: - Name: pspnet_r50-d8_512x512_80k_ade20k In Collection: PSPNet Metadata: - inference time (ms/im): 42.5 + inference time (ms/im): + - value: 42.5 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -250,7 +335,12 @@ Models: - Name: pspnet_r101-d8_512x512_80k_ade20k In Collection: PSPNet Metadata: - inference time (ms/im): 65.36 + inference time (ms/im): + - value: 65.36 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -264,7 +354,12 @@ Models: - Name: pspnet_r50-d8_512x512_160k_ade20k In Collection: PSPNet Metadata: - inference time (ms/im): 42.5 + inference time (ms/im): + - value: 42.5 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -278,7 +373,12 @@ Models: - Name: pspnet_r101-d8_512x512_160k_ade20k In Collection: PSPNet Metadata: - inference time (ms/im): 65.36 + inference time (ms/im): + - value: 65.36 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -292,7 +392,12 @@ Models: - Name: pspnet_r50-d8_512x512_20k_voc12aug In Collection: PSPNet Metadata: - inference time (ms/im): 42.39 + inference time (ms/im): + - value: 42.39 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -306,7 +411,12 @@ Models: - Name: pspnet_r101-d8_512x512_20k_voc12aug In Collection: PSPNet Metadata: - inference time (ms/im): 66.58 + inference time (ms/im): + - value: 66.58 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -320,7 +430,12 @@ Models: - Name: pspnet_r50-d8_512x512_40k_voc12aug In Collection: PSPNet Metadata: - inference time (ms/im): 42.39 + inference time (ms/im): + - value: 42.39 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -334,7 +449,12 @@ Models: - Name: pspnet_r101-d8_512x512_40k_voc12aug In Collection: PSPNet Metadata: - inference time (ms/im): 66.58 + inference time (ms/im): + - value: 66.58 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -348,7 +468,12 @@ Models: - Name: pspnet_r101-d8_480x480_40k_pascal_context In Collection: PSPNet Metadata: - inference time (ms/im): 103.31 + inference time (ms/im): + - value: 103.31 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -362,7 +487,12 @@ Models: - Name: pspnet_r101-d8_480x480_80k_pascal_context In Collection: PSPNet Metadata: - inference time (ms/im): 103.31 + inference time (ms/im): + - value: 103.31 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -376,7 +506,12 @@ Models: - Name: pspnet_r101-d8_480x480_40k_pascal_context In Collection: PSPNet Metadata: - inference time (ms/im): None + inference time (ms/im): + - value: None + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal Context @@ -390,7 +525,12 @@ Models: - Name: pspnet_r101-d8_480x480_80k_pascal_context_59 In Collection: PSPNet Metadata: - inference time (ms/im): None + inference time (ms/im): + - value: None + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal Context diff --git a/configs/resnest/metafile.yml b/configs/resnest/metafile.yml index 598d61fb50..a778a85757 100644 --- a/configs/resnest/metafile.yml +++ b/configs/resnest/metafile.yml @@ -10,7 +10,12 @@ Models: - Name: fcn_s101-d8_512x1024_80k_cityscapes In Collection: FCN Metadata: - inference time (ms/im): 418.41 + inference time (ms/im): + - value: 418.41 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -24,7 +29,12 @@ Models: - Name: pspnet_s101-d8_512x1024_80k_cityscapes In Collection: PSPNet Metadata: - inference time (ms/im): 396.83 + inference time (ms/im): + - value: 396.83 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -38,7 +48,12 @@ Models: - Name: deeplabv3_s101-d8_512x1024_80k_cityscapes In Collection: DeepLabV3 Metadata: - inference time (ms/im): 531.91 + inference time (ms/im): + - value: 531.91 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -52,7 +67,12 @@ Models: - Name: deeplabv3plus_s101-d8_512x1024_80k_cityscapes In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 423.73 + inference time (ms/im): + - value: 423.73 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -66,7 +86,12 @@ Models: - Name: fcn_s101-d8_512x512_160k_ade20k In Collection: FCN Metadata: - inference time (ms/im): 77.76 + inference time (ms/im): + - value: 77.76 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -80,7 +105,12 @@ Models: - Name: pspnet_s101-d8_512x512_160k_ade20k In Collection: PSPNet Metadata: - inference time (ms/im): 76.8 + inference time (ms/im): + - value: 76.8 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -94,7 +124,12 @@ Models: - Name: deeplabv3_s101-d8_512x512_160k_ade20k In Collection: DeepLabV3 Metadata: - inference time (ms/im): 107.76 + inference time (ms/im): + - value: 107.76 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -108,7 +143,12 @@ Models: - Name: deeplabv3plus_s101-d8_512x512_160k_ade20k In Collection: DeepLabV3+ Metadata: - inference time (ms/im): 83.61 + inference time (ms/im): + - value: 83.61 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K diff --git a/configs/sem_fpn/metafile.yml b/configs/sem_fpn/metafile.yml index b6a019d582..52cd379797 100644 --- a/configs/sem_fpn/metafile.yml +++ b/configs/sem_fpn/metafile.yml @@ -11,7 +11,12 @@ Models: - Name: fpn_r50_512x1024_80k_cityscapes In Collection: FPN Metadata: - inference time (ms/im): 73.86 + inference time (ms/im): + - value: 73.86 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -25,7 +30,12 @@ Models: - Name: fpn_r101_512x1024_80k_cityscapes In Collection: FPN Metadata: - inference time (ms/im): 97.18 + inference time (ms/im): + - value: 97.18 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -39,7 +49,12 @@ Models: - Name: fpn_r50_512x512_160k_ade20k In Collection: FPN Metadata: - inference time (ms/im): 17.93 + inference time (ms/im): + - value: 17.93 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -53,7 +68,12 @@ Models: - Name: fpn_r101_512x512_160k_ade20k In Collection: FPN Metadata: - inference time (ms/im): 24.64 + inference time (ms/im): + - value: 24.64 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K diff --git a/configs/unet/metafile.yml b/configs/unet/metafile.yml index 8c9bfc3e83..7e22509656 100644 --- a/configs/unet/metafile.yml +++ b/configs/unet/metafile.yml @@ -3,7 +3,12 @@ Models: - Name: fcn_unet_s5-d16_64x64_40k_drive In Collection: FCN Metadata: - inference time (ms/im): None + inference time (ms/im): + - value: None + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: DRIVE @@ -17,7 +22,12 @@ Models: - Name: pspnet_unet_s5-d16_64x64_40k_drive In Collection: PSPNet Metadata: - inference time (ms/im): None + inference time (ms/im): + - value: None + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: DRIVE @@ -31,7 +41,12 @@ Models: - Name: deeplabv3_unet_s5-d16_64x64_40k_drive In Collection: DeepLabV3 Metadata: - inference time (ms/im): None + inference time (ms/im): + - value: None + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: DRIVE @@ -45,7 +60,12 @@ Models: - Name: fcn_unet_s5-d16_128x128_40k_stare In Collection: FCN Metadata: - inference time (ms/im): None + inference time (ms/im): + - value: None + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: STARE @@ -59,7 +79,12 @@ Models: - Name: pspnet_unet_s5-d16_128x128_40k_stare In Collection: PSPNet Metadata: - inference time (ms/im): None + inference time (ms/im): + - value: None + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: STARE @@ -73,7 +98,12 @@ Models: - Name: deeplabv3_unet_s5-d16_128x128_40k_stare In Collection: DeepLabV3 Metadata: - inference time (ms/im): None + inference time (ms/im): + - value: None + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: STARE @@ -87,7 +117,12 @@ Models: - Name: fcn_unet_s5-d16_128x128_40k_chase_db1 In Collection: FCN Metadata: - inference time (ms/im): None + inference time (ms/im): + - value: None + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: CHASE_DB1 @@ -101,7 +136,12 @@ Models: - Name: pspnet_unet_s5-d16_128x128_40k_chase_db1 In Collection: PSPNet Metadata: - inference time (ms/im): None + inference time (ms/im): + - value: None + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: CHASE_DB1 @@ -115,7 +155,12 @@ Models: - Name: deeplabv3_unet_s5-d16_128x128_40k_chase_db1 In Collection: DeepLabV3 Metadata: - inference time (ms/im): None + inference time (ms/im): + - value: None + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: CHASE_DB1 @@ -129,7 +174,12 @@ Models: - Name: fcn_unet_s5-d16_256x256_40k_hrf In Collection: FCN Metadata: - inference time (ms/im): None + inference time (ms/im): + - value: None + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: HRF @@ -143,7 +193,12 @@ Models: - Name: pspnet_unet_s5-d16_256x256_40k_hrf In Collection: PSPNet Metadata: - inference time (ms/im): None + inference time (ms/im): + - value: None + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: HRF @@ -157,7 +212,12 @@ Models: - Name: deeplabv3_unet_s5-d16_256x256_40k_hrf In Collection: DeepLabV3 Metadata: - inference time (ms/im): None + inference time (ms/im): + - value: None + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: HRF diff --git a/configs/upernet/metafile.yml b/configs/upernet/metafile.yml index 3bf226af8c..53361b6290 100644 --- a/configs/upernet/metafile.yml +++ b/configs/upernet/metafile.yml @@ -11,7 +11,12 @@ Models: - Name: upernet_r50_512x1024_40k_cityscapes In Collection: UPerNet Metadata: - inference time (ms/im): 235.29 + inference time (ms/im): + - value: 235.29 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -25,7 +30,12 @@ Models: - Name: upernet_r101_512x1024_40k_cityscapes In Collection: UPerNet Metadata: - inference time (ms/im): 263.85 + inference time (ms/im): + - value: 263.85 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -39,7 +49,12 @@ Models: - Name: upernet_r50_769x769_40k_cityscapes In Collection: UPerNet Metadata: - inference time (ms/im): 568.18 + inference time (ms/im): + - value: 568.18 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -53,7 +68,12 @@ Models: - Name: upernet_r101_769x769_40k_cityscapes In Collection: UPerNet Metadata: - inference time (ms/im): 641.03 + inference time (ms/im): + - value: 641.03 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -67,7 +87,12 @@ Models: - Name: upernet_r50_512x1024_80k_cityscapes In Collection: UPerNet Metadata: - inference time (ms/im): 235.29 + inference time (ms/im): + - value: 235.29 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -81,7 +106,12 @@ Models: - Name: upernet_r101_512x1024_80k_cityscapes In Collection: UPerNet Metadata: - inference time (ms/im): 263.85 + inference time (ms/im): + - value: 263.85 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -95,7 +125,12 @@ Models: - Name: upernet_r50_769x769_80k_cityscapes In Collection: UPerNet Metadata: - inference time (ms/im): 568.18 + inference time (ms/im): + - value: 568.18 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -109,7 +144,12 @@ Models: - Name: upernet_r101_769x769_80k_cityscapes In Collection: UPerNet Metadata: - inference time (ms/im): 641.03 + inference time (ms/im): + - value: 641.03 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Cityscapes @@ -123,7 +163,12 @@ Models: - Name: upernet_r50_512x512_80k_ade20k In Collection: UPerNet Metadata: - inference time (ms/im): 42.74 + inference time (ms/im): + - value: 42.74 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -137,7 +182,12 @@ Models: - Name: upernet_r101_512x512_80k_ade20k In Collection: UPerNet Metadata: - inference time (ms/im): 49.16 + inference time (ms/im): + - value: 49.16 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -151,7 +201,12 @@ Models: - Name: upernet_r50_512x512_160k_ade20k In Collection: UPerNet Metadata: - inference time (ms/im): 42.74 + inference time (ms/im): + - value: 42.74 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -165,7 +220,12 @@ Models: - Name: upernet_r101_512x512_160k_ade20k In Collection: UPerNet Metadata: - inference time (ms/im): 49.16 + inference time (ms/im): + - value: 49.16 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: ADE20K @@ -179,7 +239,12 @@ Models: - Name: upernet_r50_512x512_20k_voc12aug In Collection: UPerNet Metadata: - inference time (ms/im): 43.16 + inference time (ms/im): + - value: 43.16 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -193,7 +258,12 @@ Models: - Name: upernet_r101_512x512_20k_voc12aug In Collection: UPerNet Metadata: - inference time (ms/im): 50.05 + inference time (ms/im): + - value: 50.05 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -207,7 +277,12 @@ Models: - Name: upernet_r50_512x512_40k_voc12aug In Collection: UPerNet Metadata: - inference time (ms/im): 43.16 + inference time (ms/im): + - value: 43.16 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug @@ -221,7 +296,12 @@ Models: - Name: upernet_r101_512x512_40k_voc12aug In Collection: UPerNet Metadata: - inference time (ms/im): 50.05 + inference time (ms/im): + - value: 50.05 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug diff --git a/model_zoo.yml b/model-index.yml similarity index 100% rename from model_zoo.yml rename to model-index.yml From 5245edb0a0964ed71dff8272d013d10a56acdb9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=98=95=E8=BE=B0?= Date: Thu, 1 Jul 2021 23:00:39 +0800 Subject: [PATCH 168/706] add configs for vit backbone plus decode_heads (#520) * add config * add cityscapes config * add default value to docstring * fix lint * add deit-s and deit-b * add readme * add eps at norm_cfg * add drop_path_rate experiment * add deit case at init_weight * add upernet result * update result and add upernet 160k config * update upernet result and fix settings * Update iters number * update result and delete some configs * fix import error * fix drop_path_rate * update result and restore config * update benchmark result * remove cityscapes exp * remove neck * neck exp * add more configs * fix init error * fix ffn setting * update result * update results * update result * update results and fill table * delete or rename configs * fix link delimiter * rename configs and fix link * rename neck to mln --- .../_base_/models/upernet_vit-b16_ln_mln.py | 58 +++++++++++++++++++ configs/vit/README.md | 32 ++++++++++ .../upernet_deit-b16_512x512_160k_ade20k.py | 6 ++ .../upernet_deit-b16_512x512_80k_ade20k.py | 6 ++ ...net_deit-b16_ln_mln_512x512_160k_ade20k.py | 5 ++ ...pernet_deit-b16_mln_512x512_160k_ade20k.py | 5 ++ .../upernet_deit-s16_512x512_160k_ade20k.py | 8 +++ .../upernet_deit-s16_512x512_80k_ade20k.py | 8 +++ ...net_deit-s16_ln_mln_512x512_160k_ade20k.py | 12 ++++ ...pernet_deit-s16_mln_512x512_160k_ade20k.py | 8 +++ ...rnet_vit-b16_ln_mln_512x512_160k_ade20k.py | 38 ++++++++++++ ...upernet_vit-b16_mln_512x512_160k_ade20k.py | 36 ++++++++++++ .../upernet_vit-b16_mln_512x512_80k_ade20k.py | 36 ++++++++++++ mmseg/models/necks/multilevel_neck.py | 11 +++- .../test_necks/test_multilevel_neck.py | 3 + 15 files changed, 270 insertions(+), 2 deletions(-) create mode 100644 configs/_base_/models/upernet_vit-b16_ln_mln.py create mode 100644 configs/vit/README.md create mode 100644 configs/vit/upernet_deit-b16_512x512_160k_ade20k.py create mode 100644 configs/vit/upernet_deit-b16_512x512_80k_ade20k.py create mode 100644 configs/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k.py create mode 100644 configs/vit/upernet_deit-b16_mln_512x512_160k_ade20k.py create mode 100644 configs/vit/upernet_deit-s16_512x512_160k_ade20k.py create mode 100644 configs/vit/upernet_deit-s16_512x512_80k_ade20k.py create mode 100644 configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py create mode 100644 configs/vit/upernet_deit-s16_mln_512x512_160k_ade20k.py create mode 100644 configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py create mode 100644 configs/vit/upernet_vit-b16_mln_512x512_160k_ade20k.py create mode 100644 configs/vit/upernet_vit-b16_mln_512x512_80k_ade20k.py diff --git a/configs/_base_/models/upernet_vit-b16_ln_mln.py b/configs/_base_/models/upernet_vit-b16_ln_mln.py new file mode 100644 index 0000000000..573612e13a --- /dev/null +++ b/configs/_base_/models/upernet_vit-b16_ln_mln.py @@ -0,0 +1,58 @@ +# model settings +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + type='EncoderDecoder', + pretrained='https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-vitjx/jx_vit_base_p16_224-80ecf9dd.pth', # noqa + backbone=dict( + type='VisionTransformer', + img_size=(512, 512), + patch_size=16, + in_channels=3, + embed_dims=768, + num_layers=12, + num_heads=12, + mlp_ratio=4, + out_indices=(2, 5, 8, 11), + qkv_bias=True, + drop_rate=0.0, + attn_drop_rate=0.0, + drop_path_rate=0.0, + with_cls_token=True, + norm_cfg=dict(type='LN', eps=1e-6), + act_cfg=dict(type='GELU'), + norm_eval=False, + out_shape='NCHW', + interpolate_mode='bicubic'), + neck=dict( + type='MultiLevelNeck', + in_channels=[768, 768, 768, 768], + out_channels=768, + scales=[4, 2, 1, 0.5]), + decode_head=dict( + type='UPerHead', + in_channels=[768, 768, 768, 768], + in_index=[0, 1, 2, 3], + pool_scales=(1, 2, 3, 6), + channels=512, + dropout_ratio=0.1, + num_classes=19, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + auxiliary_head=dict( + type='FCNHead', + in_channels=768, + in_index=3, + channels=256, + num_convs=1, + concat_input=False, + dropout_ratio=0.1, + num_classes=19, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) # yapf: disable diff --git a/configs/vit/README.md b/configs/vit/README.md new file mode 100644 index 0000000000..f0b0e16887 --- /dev/null +++ b/configs/vit/README.md @@ -0,0 +1,32 @@ +# Vision Transformer + +## Introduction + + + +```latex +@article{dosoViTskiy2020, + title={An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale}, + author={DosoViTskiy, Alexey and Beyer, Lucas and Kolesnikov, Alexander and Weissenborn, Dirk and Zhai, Xiaohua and Unterthiner, Thomas and Dehghani, Mostafa and Minderer, Matthias and Heigold, Georg and Gelly, Sylvain and Uszkoreit, Jakob and Houlsby, Neil}, + journal={arXiv preprint arXiv:2010.11929}, + year={2020} +} +``` + +## Results and models + +### ADE20K + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ---------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| UPerNet | ViT-B + MLN | 512x512 | 80000 | 9.20 | 6.94 | 47.71 | 49.51 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_vit-b16_mln_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_mln_512x512_80k_ade20k/upernet_vit-b16_mln_512x512_80k_ade20k-0403cee1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_mln_512x512_80k_ade20k/20210624_130547.log.json) | +| UPerNet | ViT-B + MLN | 512x512 | 160000 | 9.20 | 7.58 | 46.75 | 48.46 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_vit-b16_mln_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_mln_512x512_160k_ade20k/upernet_vit-b16_mln_512x512_160k_ade20k-852fa768.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_mln_512x512_160k_ade20k/20210623_192432.log.json) | +| UPerNet | ViT-B + LN + MLN | 512x512 | 160000 | 9.21 | 6.82 | 47.73 | 49.95 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k/upernet_vit-b16_ln_mln_512x512_160k_ade20k-f444c077.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k/20210621_172828.log.json) | +| UPerNet | DeiT-S | 512x512 | 80000 | 4.68 | 29.85 | 42.96 | 43.79 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_deit-s16_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_512x512_80k_ade20k/upernet_deit-s16_512x512_80k_ade20k-afc93ec2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_512x512_80k_ade20k/20210624_095228.log.json) | +| UPerNet | DeiT-S | 512x512 | 160000 | 4.68 | 29.19 | 42.87 | 43.79 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_deit-s16_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_512x512_160k_ade20k/upernet_deit-s16_512x512_160k_ade20k-5110d916.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_512x512_160k_ade20k/20210621_160903.log.json) | +| UPerNet | DeiT-S + MLN | 512x512 | 160000 | 5.69 | 11.18 | 43.82 | 45.07 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_deit-s16_mln_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_mln_512x512_160k_ade20k/upernet_deit-s16_mln_512x512_160k_ade20k-fb9a5dfb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_mln_512x512_160k_ade20k/20210621_161021.log.json) | +| UPerNet | DeiT-S + LN + MLN | 512x512 | 160000 | 5.69 | 12.39 | 43.52 | 45.01 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k/upernet_deit-s16_ln_mln_512x512_160k_ade20k-c0cd652f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k/20210621_161021.log.json) | +| UPerNet | DeiT-B | 512x512 | 80000 | 7.75 | 9.69 | 45.24 | 46.73 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_deit-b16_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_512x512_80k_ade20k/upernet_deit-b16_512x512_80k_ade20k-1e090789.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_512x512_80k_ade20k/20210624_130529.log.json) | +| UPerNet | DeiT-B | 512x512 | 160000 | 7.75 | 10.39 | 45.36 | 47.16 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_deit-b16_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_512x512_160k_ade20k/upernet_deit-b16_512x512_160k_ade20k-828705d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_512x512_160k_ade20k/20210621_180100.log.json) | +| UPerNet | DeiT-B + MLN | 512x512 | 160000 | 9.21 | 7.78 | 45.46 | 47.16 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_deit-b16_mln_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_mln_512x512_160k_ade20k/upernet_deit-b16_mln_512x512_160k_ade20k-4e1450f3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_mln_512x512_160k_ade20k/20210621_191949.log.json) | +| UPerNet | DeiT-B + LN + MLN | 512x512 | 160000 | 9.21 | 7.75 | 45.37 | 47.23 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k/upernet_deit-b16_ln_mln_512x512_160k_ade20k-8a959c14.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k/20210623_153535.log.json) | diff --git a/configs/vit/upernet_deit-b16_512x512_160k_ade20k.py b/configs/vit/upernet_deit-b16_512x512_160k_ade20k.py new file mode 100644 index 0000000000..6f17d7a646 --- /dev/null +++ b/configs/vit/upernet_deit-b16_512x512_160k_ade20k.py @@ -0,0 +1,6 @@ +_base_ = './upernet_vit-b16_mln_512x512_160k_ade20k.py' + +model = dict( + pretrained='https://dl.fbaipublicfiles.com/deit/deit_base_patch16_224-b5f2ef4d.pth', # noqa + backbone=dict(drop_path_rate=0.1), + neck=None) # yapf: disable diff --git a/configs/vit/upernet_deit-b16_512x512_80k_ade20k.py b/configs/vit/upernet_deit-b16_512x512_80k_ade20k.py new file mode 100644 index 0000000000..7bff28a10d --- /dev/null +++ b/configs/vit/upernet_deit-b16_512x512_80k_ade20k.py @@ -0,0 +1,6 @@ +_base_ = './upernet_vit-b16_mln_512x512_80k_ade20k.py' + +model = dict( + pretrained='https://dl.fbaipublicfiles.com/deit/deit_base_patch16_224-b5f2ef4d.pth', # noqa + backbone=dict(drop_path_rate=0.1), + neck=None) # yapf: disable diff --git a/configs/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k.py b/configs/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k.py new file mode 100644 index 0000000000..f5b2411df1 --- /dev/null +++ b/configs/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k.py @@ -0,0 +1,5 @@ +_base_ = './upernet_vit-b16_mln_512x512_160k_ade20k.py' + +model = dict( + pretrained='https://dl.fbaipublicfiles.com/deit/deit_base_patch16_224-b5f2ef4d.pth', # noqa + backbone=dict(drop_path_rate=0.1, final_norm=True)) # yapf: disable diff --git a/configs/vit/upernet_deit-b16_mln_512x512_160k_ade20k.py b/configs/vit/upernet_deit-b16_mln_512x512_160k_ade20k.py new file mode 100644 index 0000000000..68efd48937 --- /dev/null +++ b/configs/vit/upernet_deit-b16_mln_512x512_160k_ade20k.py @@ -0,0 +1,5 @@ +_base_ = './upernet_vit-b16_mln_512x512_160k_ade20k.py' + +model = dict( + pretrained='https://dl.fbaipublicfiles.com/deit/deit_base_patch16_224-b5f2ef4d.pth', # noqa + backbone=dict(drop_path_rate=0.1),) # yapf: disable diff --git a/configs/vit/upernet_deit-s16_512x512_160k_ade20k.py b/configs/vit/upernet_deit-s16_512x512_160k_ade20k.py new file mode 100644 index 0000000000..cae6f466c5 --- /dev/null +++ b/configs/vit/upernet_deit-s16_512x512_160k_ade20k.py @@ -0,0 +1,8 @@ +_base_ = './upernet_vit-b16_mln_512x512_160k_ade20k.py' + +model = dict( + pretrained='https://dl.fbaipublicfiles.com/deit/deit_small_patch16_224-cd65a155.pth', # noqa + backbone=dict(num_heads=6, embed_dims=384, drop_path_rate=0.1), + decode_head=dict(num_classes=150, in_channels=[384, 384, 384, 384]), + neck=None, + auxiliary_head=dict(num_classes=150, in_channels=384)) # yapf: disable diff --git a/configs/vit/upernet_deit-s16_512x512_80k_ade20k.py b/configs/vit/upernet_deit-s16_512x512_80k_ade20k.py new file mode 100644 index 0000000000..b176abb792 --- /dev/null +++ b/configs/vit/upernet_deit-s16_512x512_80k_ade20k.py @@ -0,0 +1,8 @@ +_base_ = './upernet_vit-b16_mln_512x512_80k_ade20k.py' + +model = dict( + pretrained='https://dl.fbaipublicfiles.com/deit/deit_small_patch16_224-cd65a155.pth', # noqa + backbone=dict(num_heads=6, embed_dims=384, drop_path_rate=0.1), + decode_head=dict(num_classes=150, in_channels=[384, 384, 384, 384]), + neck=None, + auxiliary_head=dict(num_classes=150, in_channels=384)) # yapf: disable diff --git a/configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py b/configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py new file mode 100644 index 0000000000..f328ca860a --- /dev/null +++ b/configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py @@ -0,0 +1,12 @@ +_base_ = './upernet_vit-b16_mln_512x512_160k_ade20k.py' + +model = dict( + pretrained='https://dl.fbaipublicfiles.com/deit/deit_small_patch16_224-cd65a155.pth', # noqa + backbone=dict( + num_heads=6, + embed_dims=384, + drop_path_rate=0.1, + final_norm=True), + decode_head=dict(num_classes=150, in_channels=[384, 384, 384, 384]), + neck=dict(in_channels=[384, 384, 384, 384], out_channels=384), + auxiliary_head=dict(num_classes=150, in_channels=384)) # yapf: disable diff --git a/configs/vit/upernet_deit-s16_mln_512x512_160k_ade20k.py b/configs/vit/upernet_deit-s16_mln_512x512_160k_ade20k.py new file mode 100644 index 0000000000..a1e1c2a4e2 --- /dev/null +++ b/configs/vit/upernet_deit-s16_mln_512x512_160k_ade20k.py @@ -0,0 +1,8 @@ +_base_ = './upernet_vit-b16_mln_512x512_160k_ade20k.py' + +model = dict( + pretrained='https://dl.fbaipublicfiles.com/deit/deit_small_patch16_224-cd65a155.pth', # noqa + backbone=dict(num_heads=6, embed_dims=384, drop_path_rate=0.1), + decode_head=dict(num_classes=150, in_channels=[384, 384, 384, 384]), + neck=dict(in_channels=[384, 384, 384, 384], out_channels=384), + auxiliary_head=dict(num_classes=150, in_channels=384)) # yapf: disable diff --git a/configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py b/configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py new file mode 100644 index 0000000000..f6f85378b0 --- /dev/null +++ b/configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py @@ -0,0 +1,38 @@ +_base_ = [ + '../_base_/models/upernet_vit-b16_ln_mln.py', + '../_base_/datasets/ade20k.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_160k.py' +] + +model = dict( + backbone=dict(drop_path_rate=0.1, final_norm=True), + decode_head=dict(num_classes=150), + auxiliary_head=dict(num_classes=150)) + +# AdamW optimizer, no weight decay for position embedding & layer norm +# in backbone +optimizer = dict( + _delete_=True, + type='AdamW', + lr=0.00006, + betas=(0.9, 0.999), + weight_decay=0.01, + paramwise_cfg=dict( + custom_keys={ + 'pos_embed': dict(decay_mult=0.), + 'cls_token': dict(decay_mult=0.), + 'norm': dict(decay_mult=0.) + })) + +lr_config = dict( + _delete_=True, + policy='poly', + warmup='linear', + warmup_iters=1500, + warmup_ratio=1e-6, + power=1.0, + min_lr=0.0, + by_epoch=False) + +# By default, models are trained on 8 GPUs with 2 images per GPU +data = dict(samples_per_gpu=2) diff --git a/configs/vit/upernet_vit-b16_mln_512x512_160k_ade20k.py b/configs/vit/upernet_vit-b16_mln_512x512_160k_ade20k.py new file mode 100644 index 0000000000..cc286f1fb2 --- /dev/null +++ b/configs/vit/upernet_vit-b16_mln_512x512_160k_ade20k.py @@ -0,0 +1,36 @@ +_base_ = [ + '../_base_/models/upernet_vit-b16_ln_mln.py', + '../_base_/datasets/ade20k.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_160k.py' +] + +model = dict( + decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) + +# AdamW optimizer, no weight decay for position embedding & layer norm +# in backbone +optimizer = dict( + _delete_=True, + type='AdamW', + lr=0.00006, + betas=(0.9, 0.999), + weight_decay=0.01, + paramwise_cfg=dict( + custom_keys={ + 'pos_embed': dict(decay_mult=0.), + 'cls_token': dict(decay_mult=0.), + 'norm': dict(decay_mult=0.) + })) + +lr_config = dict( + _delete_=True, + policy='poly', + warmup='linear', + warmup_iters=1500, + warmup_ratio=1e-6, + power=1.0, + min_lr=0.0, + by_epoch=False) + +# By default, models are trained on 8 GPUs with 2 images per GPU +data = dict(samples_per_gpu=2) diff --git a/configs/vit/upernet_vit-b16_mln_512x512_80k_ade20k.py b/configs/vit/upernet_vit-b16_mln_512x512_80k_ade20k.py new file mode 100644 index 0000000000..d80b0d9fd8 --- /dev/null +++ b/configs/vit/upernet_vit-b16_mln_512x512_80k_ade20k.py @@ -0,0 +1,36 @@ +_base_ = [ + '../_base_/models/upernet_vit-b16_ln_mln.py', + '../_base_/datasets/ade20k.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_80k.py' +] + +model = dict( + decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) + +# AdamW optimizer, no weight decay for position embedding & layer norm +# in backbone +optimizer = dict( + _delete_=True, + type='AdamW', + lr=0.00006, + betas=(0.9, 0.999), + weight_decay=0.01, + paramwise_cfg=dict( + custom_keys={ + 'pos_embed': dict(decay_mult=0.), + 'cls_token': dict(decay_mult=0.), + 'norm': dict(decay_mult=0.) + })) + +lr_config = dict( + _delete_=True, + policy='poly', + warmup='linear', + warmup_iters=1500, + warmup_ratio=1e-6, + power=1.0, + min_lr=0.0, + by_epoch=False) + +# By default, models are trained on 8 GPUs with 2 images per GPU +data = dict(samples_per_gpu=2) diff --git a/mmseg/models/necks/multilevel_neck.py b/mmseg/models/necks/multilevel_neck.py index 941b82992e..eb32240bc6 100644 --- a/mmseg/models/necks/multilevel_neck.py +++ b/mmseg/models/necks/multilevel_neck.py @@ -1,6 +1,6 @@ import torch.nn as nn import torch.nn.functional as F -from mmcv.cnn import ConvModule +from mmcv.cnn import ConvModule, xavier_init from ..builder import NECKS @@ -13,7 +13,8 @@ class MultiLevelNeck(nn.Module): Args: in_channels (List[int]): Number of input channels per scale. out_channels (int): Number of output channels (used at each scale). - scales (List[int]): Scale factors for each input feature map. + scales (List[float]): Scale factors for each input feature map. + Default: [0.5, 1, 2, 4] norm_cfg (dict): Config dict for normalization layer. Default: None. act_cfg (dict): Config dict for activation layer in ConvModule. Default: None. @@ -52,6 +53,12 @@ def __init__(self, norm_cfg=norm_cfg, act_cfg=act_cfg)) + # default init_weights for conv(msra) and norm in ConvModule + def init_weights(self): + for m in self.modules(): + if isinstance(m, nn.Conv2d): + xavier_init(m, distribution='uniform') + def forward(self, inputs): assert len(inputs) == len(self.in_channels) inputs = [ diff --git a/tests/test_models/test_necks/test_multilevel_neck.py b/tests/test_models/test_necks/test_multilevel_neck.py index 8fb2fc9280..c5a567d988 100644 --- a/tests/test_models/test_necks/test_multilevel_neck.py +++ b/tests/test_models/test_necks/test_multilevel_neck.py @@ -5,6 +5,9 @@ def test_multilevel_neck(): + # Test init_weights + MultiLevelNeck([266], 256).init_weights() + # Test multi feature maps in_channels = [256, 512, 1024, 2048] inputs = [torch.randn(1, c, 14, 14) for i, c in enumerate(in_channels)] From 214d083ccefcecd01a59308aeea02359e8292f03 Mon Sep 17 00:00:00 2001 From: Ze Liu Date: Thu, 1 Jul 2021 23:41:55 +0800 Subject: [PATCH 169/706] [WIP] Add Swin Transformer (#511) * add Swin Transformer * add Swin Transformer * fixed import * Add some swin training settings. * Fix some filename error. * Fix attribute name: pretrain -> pretrained * Upload mmcls implementation of swin transformer. * Refactor Swin Transformer to follow mmcls style. * Refactor init_weigths of swin_transformer.py * Fix lint * Match inference precision * Add some comments * Add swin_convert to load official style ckpt * Remove arg: auto_pad * 1. Complete comments for each block; 2. Correct weight convert function; 3. Fix the pad of Patch Merging; * Clean function args. * Fix vit unit test. * 1. Add swin transformer unit tests; 2. Fix some pad bug; 3. Modify config to adapt new swin implementation; * Modify config arg * Update readme.md of swin * Fix config arg error and Add some swin benchmark msg. * Add MeM and ms test content for readme.md of swin transformer. * Fix doc string of swin module * 1. Register swin transformer to model list; 2. Modify pth url which keep meta attribute; * Update swin.py * Merge config settings. * Modify config style. * Update README.md Add ViT link * Modify main readme.md Co-authored-by: Jiarui XU Co-authored-by: sennnnn <201730271412@mail.scut.edu.cn> Co-authored-by: Junjun2016 --- README.md | 13 +- README_zh-CN.md | 16 +- configs/_base_/models/upernet_swin.py | 55 ++ configs/swin/README.md | 27 + ...512x512_160k_ade20k_pretrain_384x384_1K.py | 15 + ...12x512_160k_ade20k_pretrain_384x384_22K.py | 8 + ...512x512_160k_ade20k_pretrain_224x224_1K.py | 13 + ...12x512_160k_ade20k_pretrain_224x224_22K.py | 8 + ...512x512_160k_ade20k_pretrain_224x224_1K.py | 17 + ...512x512_160k_ade20k_pretrain_224x224_1K.py | 46 ++ mmseg/models/backbones/__init__.py | 3 +- mmseg/models/backbones/swin.py | 778 ++++++++++++++++++ mmseg/models/backbones/vit.py | 57 +- mmseg/models/utils/__init__.py | 6 +- mmseg/models/utils/ckpt_convert.py | 90 ++ mmseg/models/utils/embed.py | 89 ++ mmseg/models/utils/timm_convert.py | 32 - tests/test_models/test_backbones/test_swin.py | 64 ++ tests/test_models/test_backbones/test_vit.py | 2 +- 19 files changed, 1242 insertions(+), 97 deletions(-) create mode 100644 configs/_base_/models/upernet_swin.py create mode 100644 configs/swin/README.md create mode 100644 configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K.py create mode 100644 configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K.py create mode 100644 configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py create mode 100644 configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K.py create mode 100644 configs/swin/upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py create mode 100644 configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py create mode 100644 mmseg/models/backbones/swin.py create mode 100644 mmseg/models/utils/ckpt_convert.py create mode 100644 mmseg/models/utils/embed.py delete mode 100644 mmseg/models/utils/timm_convert.py create mode 100644 tests/test_models/test_backbones/test_swin.py diff --git a/README.md b/README.md index bbf24ec852..e13c6a7803 100644 --- a/README.md +++ b/README.md @@ -59,11 +59,12 @@ Supported backbones: - [x] ResNet (CVPR'2016) - [x] ResNeXt (CVPR'2017) -- [x] [HRNet (CVPR'2019)](configs/hrnet/README.md) -- [x] [ResNeSt (ArXiv'2020)](configs/resnest/README.md) -- [x] [MobileNetV2 (CVPR'2018)](configs/mobilenet_v2/README.md) -- [x] [MobileNetV3 (ICCV'2019)](configs/mobilenet_v3/README.md) -- [x] [Vision Transformer (ICLR'2021)] +- [x] [HRNet (CVPR'2019)](configs/hrnet) +- [x] [ResNeSt (ArXiv'2020)](configs/resnest) +- [x] [MobileNetV2 (CVPR'2018)](configs/mobilenet_v2) +- [x] [MobileNetV3 (ICCV'2019)](configs/mobilenet_v3) +- [x] [Vision Transformer (ICLR'2021)](configs/vit) +- [x] [Swin Transformer (arXiV'2021)](configs/swin) Supported methods: @@ -71,7 +72,7 @@ Supported methods: - [x] [UNet (MICCAI'2016/Nat. Methods'2019)](configs/unet) - [x] [PSPNet (CVPR'2017)](configs/pspnet) - [x] [DeepLabV3 (ArXiv'2017)](configs/deeplabv3) -- [x] [Mixed Precision (FP16) Training (ArXiv'2017)](configs/fp16/README.md) +- [x] [Mixed Precision (FP16) Training (ArXiv'2017)](configs/fp16) - [x] [PSANet (ECCV'2018)](configs/psanet) - [x] [DeepLabV3+ (CVPR'2018)](configs/deeplabv3plus) - [x] [UPerNet (ECCV'2018)](configs/upernet) diff --git a/README_zh-CN.md b/README_zh-CN.md index 2341e4768d..04191bd02e 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -58,18 +58,20 @@ MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 O - [x] ResNet (CVPR'2016) - [x] ResNeXt (CVPR'2017) -- [x] [HRNet (CVPR'2019)](configs/hrnet/README.md) -- [x] [ResNeSt (ArXiv'2020)](configs/resnest/README.md) -- [x] [MobileNetV2 (CVPR'2018)](configs/mobilenet_v2/README.md) -- [x] [MobileNetV3 (ICCV'2019)](configs/mobilenet_v3/README.md) -- [x] [Vision Transformer (ICLR'2021)] +- [x] [HRNet (CVPR'2019)](configs/hrnet) +- [x] [ResNeSt (ArXiv'2020)](configs/resnest) +- [x] [MobileNetV2 (CVPR'2018)](configs/mobilenet_v2) +- [x] [MobileNetV3 (ICCV'2019)](configs/mobilenet_v3) +- [x] [Vision Transformer (ICLR'2021)](configs/vit) +- [x] [Swin Transformer (arXiV'2021)](configs/swin) 已支持的算法: - [x] [FCN (CVPR'2015/TPAMI'2017)](configs/fcn) +- [x] [UNet (MICCAI'2016/Nat. Methods'2019)](configs/unet) - [x] [PSPNet (CVPR'2017)](configs/pspnet) -- [x] [DeepLabV3 (CVPR'2017)](configs/deeplabv3) -- [x] [Mixed Precision (FP16) Training (ArXiv'2017)](configs/fp16/README.md) +- [x] [DeepLabV3 (ArXiv'2017)](configs/deeplabv3) +- [x] [Mixed Precision (FP16) Training (ArXiv'2017)](configs/fp16) - [x] [PSANet (ECCV'2018)](configs/psanet) - [x] [DeepLabV3+ (CVPR'2018)](configs/deeplabv3plus) - [x] [UPerNet (ECCV'2018)](configs/upernet) diff --git a/configs/_base_/models/upernet_swin.py b/configs/_base_/models/upernet_swin.py new file mode 100644 index 0000000000..30ee0503d6 --- /dev/null +++ b/configs/_base_/models/upernet_swin.py @@ -0,0 +1,55 @@ +# model settings +norm_cfg = dict(type='SyncBN', requires_grad=True) +backbone_norm_cfg = dict(type='LN', requires_grad=True) +model = dict( + type='EncoderDecoder', + pretrained=None, + backbone=dict( + type='SwinTransformer', + pretrain_img_size=224, + embed_dims=96, + patch_size=4, + window_size=7, + mlp_ratio=4, + depths=[2, 2, 6, 2], + num_heads=[3, 6, 12, 24], + strides=(4, 2, 2, 2), + out_indices=(0, 1, 2, 3), + qkv_bias=True, + qk_scale=None, + patch_norm=True, + drop_rate=0., + attn_drop_rate=0., + drop_path_rate=0.3, + use_abs_pos_embed=False, + act_cfg=dict(type='GELU'), + norm_cfg=backbone_norm_cfg, + pretrain_style='official'), + decode_head=dict( + type='UPerHead', + in_channels=[96, 192, 384, 768], + in_index=[0, 1, 2, 3], + pool_scales=(1, 2, 3, 6), + channels=512, + dropout_ratio=0.1, + num_classes=19, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + auxiliary_head=dict( + type='FCNHead', + in_channels=384, + in_index=2, + channels=256, + num_convs=1, + concat_input=False, + dropout_ratio=0.1, + num_classes=19, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/swin/README.md b/configs/swin/README.md new file mode 100644 index 0000000000..8bf3a8ab65 --- /dev/null +++ b/configs/swin/README.md @@ -0,0 +1,27 @@ +# Swin Transformer: Hierarchical Vision Transformer using Shifted Windows + +## Introduction + +[ALGORITHM] + +```latex +@article{liu2021Swin, + title={Swin Transformer: Hierarchical Vision Transformer using Shifted Windows}, + author={Liu, Ze and Lin, Yutong and Cao, Yue and Hu, Han and Wei, Yixuan and Zhang, Zheng and Lin, Stephen and Guo, Baining}, + journal={arXiv preprint arXiv:2103.14030}, + year={2021} +} +``` + +## Results and models + +### ADE20K + +| Method | Backbone | Crop Size | pretrain | pretrain img size | Batch Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ---------- | ------- | -------- | --- | --- | -------------- | ----- | ------------: | -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| UperNet | Swin-T | 512x512 | ImageNet-1K | 224x224 | 16 | 160000 | 5.02 | 21.06 | 44.41 | 45.79 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K_20210531_112542-e380ad3e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K_20210531_112542.log.json) | +| UperNet | Swin-S | 512x512 | ImageNet-1K | 224x224 | 16 | 160000 | 6.17 | 14.72 | 47.72 | 49.24 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/swin/upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K/upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K_20210526_192015-ee2fff1c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K/upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K_20210526_192015.log.json) | +| UperNet | Swin-B | 512x512 | ImageNet-1K | 224x224 | 16 | 160000 | 7.61 | 12.65 | 47.99 | 49.57 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K_20210526_192340-593b0e13.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K_20210526_192340.log.json) | +| UperNet | Swin-B | 512x512 | ImageNet-22K | 224x224 | 16 | 160000 | - | - | 50.31 | 51.9 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K_20210526_211650-762e2178.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K_20210526_211650.log.json) | +| UperNet | Swin-B | 512x512 | ImageNet-1K | 384x384 | 16 | 160000 | 8.52 | 12.10 | 48.35 | 49.65 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K_20210531_132020-05b22ea4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K_20210531_132020.log.json) | +| UperNet | Swin-B | 512x512 | ImageNet-22K | 384x384 | 16 | 160000 | - | - | 50.76 | 52.4 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K_20210531_125459-429057bf.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K_20210531_125459.log.json) | diff --git a/configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K.py b/configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K.py new file mode 100644 index 0000000000..d89f57cab0 --- /dev/null +++ b/configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K.py @@ -0,0 +1,15 @@ +_base_ = [ + 'upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_' + 'pretrain_224x224_1K.py' +] +model = dict( + pretrained=\ + 'https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_base_patch4_window12_384.pth', # noqa + backbone=dict( + pretrain_img_size=384, + embed_dims=128, + depths=[2, 2, 18, 2], + num_heads=[4, 8, 16, 32], + window_size=12), + decode_head=dict(in_channels=[128, 256, 512, 1024], num_classes=150), + auxiliary_head=dict(in_channels=512, num_classes=150)) diff --git a/configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K.py b/configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K.py new file mode 100644 index 0000000000..38fed26486 --- /dev/null +++ b/configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K.py @@ -0,0 +1,8 @@ +_base_ = [ + './upernet_swin_base_patch4_window12_512x512_160k_ade20k_' + 'pretrain_384x384_1K.py' +] +model = dict( + pretrained=\ + 'https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_base_patch4_window12_384_22k.pth', # noqa +) diff --git a/configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py b/configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py new file mode 100644 index 0000000000..c34594a460 --- /dev/null +++ b/configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py @@ -0,0 +1,13 @@ +_base_ = [ + './upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_' + 'pretrain_224x224_1K.py' +] +model = dict( + pretrained=\ + 'https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_base_patch4_window7_224.pth', # noqa + backbone=dict( + embed_dims=128, + depths=[2, 2, 18, 2], + num_heads=[4, 8, 16, 32]), + decode_head=dict(in_channels=[128, 256, 512, 1024], num_classes=150), + auxiliary_head=dict(in_channels=512, num_classes=150)) diff --git a/configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K.py b/configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K.py new file mode 100644 index 0000000000..5bb51d8788 --- /dev/null +++ b/configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K.py @@ -0,0 +1,8 @@ +_base_ = [ + './upernet_swin_base_patch4_window7_512x512_160k_ade20k_' + 'pretrain_224x224_1K.py' +] +model = dict( + pretrained=\ + 'https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_base_patch4_window7_224_22k.pth', # noqa +) diff --git a/configs/swin/upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py b/configs/swin/upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py new file mode 100644 index 0000000000..469b957c25 --- /dev/null +++ b/configs/swin/upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py @@ -0,0 +1,17 @@ +_base_ = [ + './upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_' + 'pretrain_224x224_1K.py' +] +model = dict( + pretrained=\ + 'https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_small_patch4_window7_224.pth', # noqa + backbone=dict( + depths=[2, 2, 18, 2]), + decode_head=dict( + in_channels=[96, 192, 384, 768], + num_classes=150 + ), + auxiliary_head=dict( + in_channels=384, + num_classes=150 + )) diff --git a/configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py b/configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py new file mode 100644 index 0000000000..7be1cf5821 --- /dev/null +++ b/configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py @@ -0,0 +1,46 @@ +_base_ = [ + '../_base_/models/upernet_swin.py', '../_base_/datasets/ade20k.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' +] +model = dict( + pretrained=\ + 'https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_tiny_patch4_window7_224.pth', # noqa + backbone=dict( + embed_dims=96, + depths=[2, 2, 6, 2], + num_heads=[3, 6, 12, 24], + window_size=7, + use_abs_pos_embed=False, + drop_path_rate=0.3, + patch_norm=True, + pretrain_style='official'), + decode_head=dict(in_channels=[96, 192, 384, 768], num_classes=150), + auxiliary_head=dict(in_channels=384, num_classes=150)) + +# AdamW optimizer, no weight decay for position embedding & layer norm +# in backbone +optimizer = dict( + _delete_=True, + type='AdamW', + lr=0.00006, + betas=(0.9, 0.999), + weight_decay=0.01, + paramwise_cfg=dict( + custom_keys={ + 'absolute_pos_embed': dict(decay_mult=0.), + 'relative_position_bias_table': dict(decay_mult=0.), + 'norm': dict(decay_mult=0.) + })) + +lr_config = dict( + _delete_=True, + policy='poly', + warmup='linear', + warmup_iters=1500, + warmup_ratio=1e-6, + power=1.0, + min_lr=0.0, + by_epoch=False) + +# By default, models are trained on 8 GPUs with 2 images per GPU +data = dict(samples_per_gpu=2) diff --git a/mmseg/models/backbones/__init__.py b/mmseg/models/backbones/__init__.py index eae064b6e5..43690d6c87 100644 --- a/mmseg/models/backbones/__init__.py +++ b/mmseg/models/backbones/__init__.py @@ -6,11 +6,12 @@ from .resnest import ResNeSt from .resnet import ResNet, ResNetV1c, ResNetV1d from .resnext import ResNeXt +from .swin import SwinTransformer from .unet import UNet from .vit import VisionTransformer __all__ = [ 'ResNet', 'ResNetV1c', 'ResNetV1d', 'ResNeXt', 'HRNet', 'FastSCNN', 'ResNeSt', 'MobileNetV2', 'UNet', 'CGNet', 'MobileNetV3', - 'VisionTransformer' + 'VisionTransformer', 'SwinTransformer' ] diff --git a/mmseg/models/backbones/swin.py b/mmseg/models/backbones/swin.py new file mode 100644 index 0000000000..a798ad1ebf --- /dev/null +++ b/mmseg/models/backbones/swin.py @@ -0,0 +1,778 @@ +import warnings +from copy import deepcopy + +import torch +import torch.nn as nn +import torch.nn.functional as F +from mmcv.cnn import build_norm_layer, trunc_normal_init +from mmcv.cnn.bricks.registry import ATTENTION +from mmcv.cnn.bricks.transformer import FFN, build_dropout +from mmcv.cnn.utils.weight_init import constant_init +from mmcv.runner import _load_checkpoint +from mmcv.runner.base_module import BaseModule, ModuleList +from torch.nn.modules.linear import Linear +from torch.nn.modules.normalization import LayerNorm +from torch.nn.modules.utils import _pair as to_2tuple + +from ...utils import get_root_logger +from ..builder import BACKBONES +from ..utils import PatchEmbed, swin_convert + + +class PatchMerging(BaseModule): + """Merge patch feature map. + + This layer use nn.Unfold to group feature map by kernel_size, and use norm + and linear layer to embed grouped feature map. + Args: + in_channels (int): The num of input channels. + out_channels (int): The num of output channels. + stride (int | tuple): the stride of the sliding length in the + unfold layer. Defaults: 2. (Default to be equal with kernel_size). + bias (bool, optional): Whether to add bias in linear layer or not. + Defaults: False. + norm_cfg (dict, optional): Config dict for normalization layer. + Defaults: dict(type='LN'). + init_cfg (dict, optional): The extra config for initialization. + Defaults: None. + """ + + def __init__(self, + in_channels, + out_channels, + stride=2, + bias=False, + norm_cfg=dict(type='LN'), + init_cfg=None): + super().__init__(init_cfg) + self.in_channels = in_channels + self.out_channels = out_channels + self.stride = stride + + self.sampler = nn.Unfold( + kernel_size=stride, dilation=1, padding=0, stride=stride) + + sample_dim = stride**2 * in_channels + + if norm_cfg is not None: + self.norm = build_norm_layer(norm_cfg, sample_dim)[1] + else: + self.norm = None + + self.reduction = nn.Linear(sample_dim, out_channels, bias=bias) + + def forward(self, x, hw_shape): + """ + x: x.shape -> [B, H*W, C] + hw_shape: (H, W) + """ + B, L, C = x.shape + H, W = hw_shape + assert L == H * W, 'input feature has wrong size' + + x = x.view(B, H, W, C).permute([0, 3, 1, 2]) # B, C, H, W + + # stride is fixed to be equal to kernel_size. + if (H % self.stride != 0) or (W % self.stride != 0): + x = F.pad(x, (0, W % self.stride, 0, H % self.stride)) + + # Use nn.Unfold to merge patch. About 25% faster than original method, + # but need to modify pretrained model for compatibility + x = self.sampler(x) # B, 4*C, H/2*W/2 + x = x.transpose(1, 2) # B, H/2*W/2, 4*C + + x = self.norm(x) if self.norm else x + x = self.reduction(x) + + down_hw_shape = (H + 1) // 2, (W + 1) // 2 + return x, down_hw_shape + + +@ATTENTION.register_module() +class WindowMSA(BaseModule): + """Window based multi-head self-attention (W-MSA) module with relative + position bias. + + Args: + embed_dims (int): Number of input channels. + window_size (tuple[int]): The height and width of the window. + num_heads (int): Number of attention heads. + qkv_bias (bool, optional): If True, add a learnable bias to q, k, v. + Default: True. + qk_scale (float | None, optional): Override default qk scale of + head_dim ** -0.5 if set. Default: None. + attn_drop_rate (float, optional): Dropout ratio of attention weight. + Default: 0.0 + proj_drop_rate (float, optional): Dropout ratio of output. Default: 0.0 + init_cfg (dict | None, optional): The Config for initialization. + Default: None. + """ + + def __init__(self, + embed_dims, + num_heads, + window_size, + qkv_bias=True, + qk_scale=None, + attn_drop_rate=0., + proj_drop_rate=0., + init_cfg=None): + + super().__init__() + self.embed_dims = embed_dims + self.window_size = window_size # Wh, Ww + self.num_heads = num_heads + head_embed_dims = embed_dims // num_heads + self.scale = qk_scale or head_embed_dims**-0.5 + self.init_cfg = init_cfg + + # define a parameter table of relative position bias + self.relative_position_bias_table = nn.Parameter( + torch.zeros((2 * window_size[0] - 1) * (2 * window_size[1] - 1), + num_heads)) # 2*Wh-1 * 2*Ww-1, nH + + # About 2x faster than original impl + Wh, Ww = self.window_size + rel_index_coords = self.double_step_seq(2 * Ww - 1, Wh, 1, Ww) + rel_position_index = rel_index_coords + rel_index_coords.T + rel_position_index = rel_position_index.flip(1).contiguous() + self.register_buffer('relative_position_index', rel_position_index) + + self.qkv = nn.Linear(embed_dims, embed_dims * 3, bias=qkv_bias) + self.attn_drop = nn.Dropout(attn_drop_rate) + self.proj = nn.Linear(embed_dims, embed_dims) + self.proj_drop = nn.Dropout(proj_drop_rate) + + self.softmax = nn.Softmax(dim=-1) + + def init_weights(self): + trunc_normal_init(self.relative_position_bias_table, std=0.02) + + def forward(self, x, mask=None): + """ + Args: + + x (tensor): input features with shape of (num_windows*B, N, C) + mask (tensor | None, Optional): mask with shape of (num_windows, + Wh*Ww, Wh*Ww), value should be between (-inf, 0]. + """ + B, N, C = x.shape + qkv = self.qkv(x).reshape(B, N, 3, self.num_heads, + C // self.num_heads).permute(2, 0, 3, 1, 4) + q, k, v = qkv[0], qkv[1], qkv[ + 2] # make torchscript happy (cannot use tensor as tuple) + + q = q * self.scale + attn = (q @ k.transpose(-2, -1)) + + relative_position_bias = self.relative_position_bias_table[ + self.relative_position_index.view(-1)].view( + self.window_size[0] * self.window_size[1], + self.window_size[0] * self.window_size[1], + -1) # Wh*Ww,Wh*Ww,nH + relative_position_bias = relative_position_bias.permute( + 2, 0, 1).contiguous() # nH, Wh*Ww, Wh*Ww + attn = attn + relative_position_bias.unsqueeze(0) + + if mask is not None: + nW = mask.shape[0] + attn = attn.view(B // nW, nW, self.num_heads, N, + N) + mask.unsqueeze(1).unsqueeze(0) + attn = attn.view(-1, self.num_heads, N, N) + attn = self.softmax(attn) + else: + attn = self.softmax(attn) + + attn = self.attn_drop(attn) + + x = (attn @ v).transpose(1, 2).reshape(B, N, C) + x = self.proj(x) + x = self.proj_drop(x) + return x + + @staticmethod + def double_step_seq(step1, len1, step2, len2): + seq1 = torch.arange(0, step1 * len1, step1) + seq2 = torch.arange(0, step2 * len2, step2) + return (seq1[:, None] + seq2[None, :]).reshape(1, -1) + + +@ATTENTION.register_module() +class ShiftWindowMSA(BaseModule): + """Shift Window Multihead Self-Attention Module. + + Args: + embed_dims (int): Number of input channels. + num_heads (int): Number of attention heads. + window_size (int): The height and width of the window. + shift_size (int, optional): The shift step of each window towards + right-bottom. If zero, act as regular window-msa. Defaults to 0. + qkv_bias (bool, optional): If True, add a learnable bias to q, k, v. + Default: True + qk_scale (float | None, optional): Override default qk scale of + head_dim ** -0.5 if set. Defaults: None. + attn_drop_rate (float, optional): Dropout ratio of attention weight. + Defaults: 0. + proj_drop_rate (float, optional): Dropout ratio of output. + Defaults: 0. + dropout_layer (dict, optional): The dropout_layer used before output. + Defaults: dict(type='DropPath', drop_prob=0.). + init_cfg (dict, optional): The extra config for initialization. + Default: None. + """ + + def __init__(self, + embed_dims, + num_heads, + window_size, + shift_size=0, + qkv_bias=True, + qk_scale=None, + attn_drop_rate=0, + proj_drop_rate=0, + dropout_layer=dict(type='DropPath', drop_prob=0.), + init_cfg=None): + super().__init__(init_cfg) + + self.window_size = window_size + self.shift_size = shift_size + assert 0 <= self.shift_size < self.window_size + + self.w_msa = WindowMSA( + embed_dims=embed_dims, + num_heads=num_heads, + window_size=to_2tuple(window_size), + qkv_bias=qkv_bias, + qk_scale=qk_scale, + attn_drop_rate=attn_drop_rate, + proj_drop_rate=proj_drop_rate, + init_cfg=None) + + self.drop = build_dropout(dropout_layer) + + def forward(self, query, hw_shape): + B, L, C = query.shape + H, W = hw_shape + assert L == H * W, 'input feature has wrong size' + query = query.view(B, H, W, C) + + # pad feature maps to multiples of window size + pad_r = (self.window_size - W % self.window_size) % self.window_size + pad_b = (self.window_size - H % self.window_size) % self.window_size + query = F.pad(query, (0, 0, 0, pad_r, 0, pad_b)) + H_pad, W_pad = query.shape[1], query.shape[2] + + # cyclic shift + if self.shift_size > 0: + shifted_query = torch.roll( + query, + shifts=(-self.shift_size, -self.shift_size), + dims=(1, 2)) + + # calculate attention mask for SW-MSA + img_mask = torch.zeros((1, H_pad, W_pad, 1), + device=query.device) # 1 H W 1 + h_slices = (slice(0, -self.window_size), + slice(-self.window_size, + -self.shift_size), slice(-self.shift_size, None)) + w_slices = (slice(0, -self.window_size), + slice(-self.window_size, + -self.shift_size), slice(-self.shift_size, None)) + cnt = 0 + for h in h_slices: + for w in w_slices: + img_mask[:, h, w, :] = cnt + cnt += 1 + + # nW, window_size, window_size, 1 + mask_windows = self.window_partition(img_mask) + mask_windows = mask_windows.view( + -1, self.window_size * self.window_size) + attn_mask = mask_windows.unsqueeze(1) - mask_windows.unsqueeze(2) + attn_mask = attn_mask.masked_fill(attn_mask != 0, + float(-100.0)).masked_fill( + attn_mask == 0, float(0.0)) + else: + shifted_query = query + attn_mask = None + + # nW*B, window_size, window_size, C + query_windows = self.window_partition(shifted_query) + # nW*B, window_size*window_size, C + query_windows = query_windows.view(-1, self.window_size**2, C) + + # W-MSA/SW-MSA (nW*B, window_size*window_size, C) + attn_windows = self.w_msa(query_windows, mask=attn_mask) + + # merge windows + attn_windows = attn_windows.view(-1, self.window_size, + self.window_size, C) + + # B H' W' C + shifted_x = self.window_reverse(attn_windows, H_pad, W_pad) + # reverse cyclic shift + if self.shift_size > 0: + x = torch.roll( + shifted_x, + shifts=(self.shift_size, self.shift_size), + dims=(1, 2)) + else: + x = shifted_x + + if pad_r > 0 or pad_b: + x = x[:, :H, :W, :].contiguous() + + x = x.view(B, H * W, C) + + x = self.drop(x) + return x + + def window_reverse(self, windows, H, W): + """ + Args: + windows: (num_windows*B, window_size, window_size, C) + window_size (int): Window size + H (int): Height of image + W (int): Width of image + Returns: + x: (B, H, W, C) + """ + window_size = self.window_size + B = int(windows.shape[0] / (H * W / window_size / window_size)) + x = windows.view(B, H // window_size, W // window_size, window_size, + window_size, -1) + x = x.permute(0, 1, 3, 2, 4, 5).contiguous().view(B, H, W, -1) + return x + + def window_partition(self, x): + """ + Args: + x: (B, H, W, C) + window_size (int): window size + Returns: + windows: (num_windows*B, window_size, window_size, C) + """ + B, H, W, C = x.shape + window_size = self.window_size + x = x.view(B, H // window_size, window_size, W // window_size, + window_size, C) + windows = x.permute(0, 1, 3, 2, 4, 5).contiguous() + windows = windows.view(-1, window_size, window_size, C) + return windows + + +class SwinBlock(BaseModule): + """" + Args: + embed_dims (int): The feature dimension. + num_heads (int): Parallel attention heads. + feedforward_channels (int): The hidden dimension for FFNs. + window size (int, optional): The local window scale. Default: 7. + shift (bool): whether to shift window or not. Default False. + qkv_bias (int, optional): enable bias for qkv if True. Default: True. + qk_scale (float | None, optional): Override default qk scale of + head_dim ** -0.5 if set. Default: None. + drop_rate (float, optional): Dropout rate. Default: 0. + attn_drop_rate (float, optional): Attention dropout rate. Default: 0. + drop_path_rate (float, optional): Stochastic depth rate. Default: 0.2. + act_cfg (dict, optional): The config dict of activation function. + Default: dict(type='GELU'). + norm_cfg (dict, optional): The config dict of nomalization. + Default: dict(type='LN'). + init_cfg (dict | list | None, optional): The init config. + Default: None. + """ + + def __init__(self, + embed_dims, + num_heads, + feedforward_channels, + window_size=7, + shift=False, + qkv_bias=True, + qk_scale=None, + drop_rate=0., + attn_drop_rate=0., + drop_path_rate=0., + act_cfg=dict(type='GELU'), + norm_cfg=dict(type='LN'), + init_cfg=None): + + super(SwinBlock, self).__init__() + + self.init_cfg = init_cfg + + self.norm1 = build_norm_layer(norm_cfg, embed_dims)[1] + self.attn = ShiftWindowMSA( + embed_dims=embed_dims, + num_heads=num_heads, + window_size=window_size, + shift_size=window_size // 2 if shift else 0, + qkv_bias=qkv_bias, + qk_scale=qk_scale, + attn_drop_rate=attn_drop_rate, + proj_drop_rate=drop_rate, + dropout_layer=dict(type='DropPath', drop_prob=drop_path_rate), + init_cfg=None) + + self.norm2 = build_norm_layer(norm_cfg, embed_dims)[1] + self.ffn = FFN( + embed_dims=embed_dims, + feedforward_channels=feedforward_channels, + num_fcs=2, + ffn_drop=drop_rate, + dropout_layer=dict(type='DropPath', drop_prob=drop_path_rate), + act_cfg=act_cfg, + add_identity=True, + init_cfg=None) + + def forward(self, x, hw_shape): + identity = x + x = self.norm1(x) + x = self.attn(x, hw_shape) + + x = x + identity + + identity = x + x = self.norm2(x) + x = self.ffn(x, identity=identity) + + return x + + +class SwinBlockSequence(BaseModule): + """Implements one stage in Swin Transformer. + + Args: + embed_dims (int): The feature dimension. + num_heads (int): Parallel attention heads. + feedforward_channels (int): The hidden dimension for FFNs. + depth (int): The number of blocks in this stage. + window size (int): The local window scale. Default: 7. + qkv_bias (int): enable bias for qkv if True. Default: True. + qk_scale (float | None, optional): Override default qk scale of + head_dim ** -0.5 if set. Default: None. + drop_rate (float, optional): Dropout rate. Default: 0. + attn_drop_rate (float, optional): Attention dropout rate. Default: 0. + drop_path_rate (float, optional): Stochastic depth rate. Default: 0.2. + downsample (BaseModule | None, optional): The downsample operation + module. Default: None. + act_cfg (dict, optional): The config dict of activation function. + Default: dict(type='GELU'). + norm_cfg (dict, optional): The config dict of nomalization. + Default: dict(type='LN'). + init_cfg (dict | list | None, optional): The init config. + Default: None. + """ + + def __init__(self, + embed_dims, + num_heads, + feedforward_channels, + depth, + window_size=7, + qkv_bias=True, + qk_scale=None, + drop_rate=0., + attn_drop_rate=0., + drop_path_rate=0., + downsample=None, + act_cfg=dict(type='GELU'), + norm_cfg=dict(type='LN'), + init_cfg=None): + super().__init__() + + self.init_cfg = init_cfg + + drop_path_rate = drop_path_rate if isinstance( + drop_path_rate, + list) else [deepcopy(drop_path_rate) for _ in range(depth)] + + self.blocks = ModuleList() + for i in range(depth): + block = SwinBlock( + embed_dims=embed_dims, + num_heads=num_heads, + feedforward_channels=feedforward_channels, + window_size=window_size, + shift=False if i % 2 == 0 else True, + qkv_bias=qkv_bias, + qk_scale=qk_scale, + drop_rate=drop_rate, + attn_drop_rate=attn_drop_rate, + drop_path_rate=drop_path_rate[i], + act_cfg=act_cfg, + norm_cfg=norm_cfg, + init_cfg=None) + self.blocks.append(block) + + self.downsample = downsample + + def forward(self, x, hw_shape): + for block in self.blocks: + x = block(x, hw_shape) + + if self.downsample: + x_down, down_hw_shape = self.downsample(x, hw_shape) + return x_down, down_hw_shape, x, hw_shape + else: + return x, hw_shape, x, hw_shape + + +@BACKBONES.register_module() +class SwinTransformer(BaseModule): + """ Swin Transformer + A PyTorch implement of : `Swin Transformer: + Hierarchical Vision Transformer using Shifted Windows` - + https://arxiv.org/abs/2103.14030 + + Inspiration from + https://github.com/microsoft/Swin-Transformer + + Args: + pretrain_img_size (int | tuple[int]): The size of input image when + pretrain. Defaults: 224. + in_channels (int): The num of input channels. + Defaults: 3. + embed_dims (int): The feature dimension. Default: 96. + patch_size (int | tuple[int]): Patch size. Default: 4. + window_size (int): Window size. Default: 7. + mlp_ratio (float): Ratio of mlp hidden dim to embedding dim. + Default: 4. + depths (tuple[int]): Depths of each Swin Transformer stage. + Default: (2, 2, 6, 2). + num_heads (tuple[int]): Parallel attention heads of each Swin + Transformer stage. Default: (3, 6, 12, 24). + strides (tuple[int]): The patch merging or patch embedding stride of + each Swin Transformer stage. (In swin, we set kernel size equal to + stride.) Default: (4, 2, 2, 2). + out_indices (tuple[int]): Output from which stages. + Default: (0, 1, 2, 3). + qkv_bias (bool, optional): If True, add a learnable bias to query, key, + value. Default: True + qk_scale (float | None, optional): Override default qk scale of + head_dim ** -0.5 if set. Default: None. + patch_norm (bool): If add a norm layer for patch embed and patch + merging. Default: True. + drop_rate (float): Dropout rate. Defaults: 0. + attn_drop_rate (float): Attention dropout rate. Default: 0. + drop_path_rate (float): Stochastic depth rate. Defaults: 0.1. + use_abs_pos_embed (bool): If True, add absolute position embedding to + the patch embedding. Defaults: False. + act_cfg (dict): Config dict for activation layer. + Default: dict(type='LN'). + norm_cfg (dict): Config dict for normalization layer at + output of backone. Defaults: dict(type='LN'). + pretrain_style (str): Choose to use official or mmcls pretrain weights. + Default: official. + pretrained (str, optional): model pretrained path. Default: None. + init_cfg (dict, optional): The Config for initialization. + Defaults to None. + """ + + def __init__(self, + pretrain_img_size=224, + in_channels=3, + embed_dims=96, + patch_size=4, + window_size=7, + mlp_ratio=4, + depths=(2, 2, 6, 2), + num_heads=(3, 6, 12, 24), + strides=(4, 2, 2, 2), + out_indices=(0, 1, 2, 3), + qkv_bias=True, + qk_scale=None, + patch_norm=True, + drop_rate=0., + attn_drop_rate=0., + drop_path_rate=0.1, + use_abs_pos_embed=False, + act_cfg=dict(type='GELU'), + norm_cfg=dict(type='LN'), + pretrain_style='official', + pretrained=None, + init_cfg=None): + super(SwinTransformer, self).__init__() + + if isinstance(pretrain_img_size, int): + pretrain_img_size = to_2tuple(pretrain_img_size) + elif isinstance(pretrain_img_size, tuple): + if len(pretrain_img_size) == 1: + pretrain_img_size = to_2tuple(pretrain_img_size[0]) + assert len(pretrain_img_size) == 2, \ + f'The size of image should have length 1 or 2, ' \ + f'but got {len(pretrain_img_size)}' + + assert pretrain_style in ['official', 'mmcls'], 'We only support load ' + 'official ckpt and mmcls ckpt.' + + if isinstance(pretrained, str) or pretrained is None: + warnings.warn('DeprecationWarning: pretrained is a deprecated, ' + 'please use "init_cfg" instead') + else: + raise TypeError('pretrained must be a str or None') + + num_layers = len(depths) + self.out_indices = out_indices + self.use_abs_pos_embed = use_abs_pos_embed + self.pretrain_style = pretrain_style + self.pretrained = pretrained + self.init_cfg = init_cfg + + assert strides[0] == patch_size, 'Use non-overlapping patch embed.' + + self.patch_embed = PatchEmbed( + in_channels=in_channels, + embed_dims=embed_dims, + conv_type='Conv2d', + kernel_size=patch_size, + stride=strides[0], + norm_cfg=norm_cfg if patch_norm else None, + init_cfg=None) + + if self.use_abs_pos_embed: + patch_row = pretrain_img_size[0] // patch_size + patch_col = pretrain_img_size[1] // patch_size + num_patches = patch_row * patch_col + self.absolute_pos_embed = nn.Parameter( + torch.zeros((1, num_patches, embed_dims))) + + self.drop_after_pos = nn.Dropout(p=drop_rate) + + # stochastic depth + total_depth = sum(depths) + dpr = [ + x.item() for x in torch.linspace(0, drop_path_rate, total_depth) + ] # stochastic depth decay rule + + self.stages = ModuleList() + in_channels = embed_dims + for i in range(num_layers): + if i < num_layers - 1: + downsample = PatchMerging( + in_channels=in_channels, + out_channels=2 * in_channels, + stride=strides[i + 1], + norm_cfg=norm_cfg if patch_norm else None, + init_cfg=None) + else: + downsample = None + + stage = SwinBlockSequence( + embed_dims=in_channels, + num_heads=num_heads[i], + feedforward_channels=mlp_ratio * in_channels, + depth=depths[i], + window_size=window_size, + qkv_bias=qkv_bias, + qk_scale=qk_scale, + drop_rate=drop_rate, + attn_drop_rate=attn_drop_rate, + drop_path_rate=dpr[:depths[i]], + downsample=downsample, + act_cfg=act_cfg, + norm_cfg=norm_cfg, + init_cfg=None) + self.stages.append(stage) + + dpr = dpr[depths[i]:] + if downsample: + in_channels = downsample.out_channels + + self.num_features = [int(embed_dims * 2**i) for i in range(num_layers)] + # Add a norm layer for each output + for i in out_indices: + layer = build_norm_layer(norm_cfg, self.num_features[i])[1] + layer_name = f'norm{i}' + self.add_module(layer_name, layer) + + def init_weights(self): + if self.pretrained is None: + super().init_weights() + if self.use_abs_pos_embed: + trunc_normal_init(self.absolute_pos_embed, std=0.02) + for m in self.modules(): + if isinstance(m, Linear): + trunc_normal_init(m.weight, std=.02) + if m.bias is not None: + constant_init(m.bias, 0) + elif isinstance(m, LayerNorm): + constant_init(m.bias, 0) + constant_init(m.weight, 1.0) + elif isinstance(self.pretrained, str): + logger = get_root_logger() + ckpt = _load_checkpoint( + self.pretrained, logger=logger, map_location='cpu') + if 'state_dict' in ckpt: + state_dict = ckpt['state_dict'] + elif 'model' in ckpt: + state_dict = ckpt['model'] + else: + state_dict = ckpt + + if self.pretrain_style == 'official': + state_dict = swin_convert(state_dict) + + # strip prefix of state_dict + if list(state_dict.keys())[0].startswith('module.'): + state_dict = {k[7:]: v for k, v in state_dict.items()} + + # reshape absolute position embedding + if state_dict.get('absolute_pos_embed') is not None: + absolute_pos_embed = state_dict['absolute_pos_embed'] + N1, L, C1 = absolute_pos_embed.size() + N2, C2, H, W = self.absolute_pos_embed.size() + if N1 != N2 or C1 != C2 or L != H * W: + logger.warning('Error in loading absolute_pos_embed, pass') + else: + state_dict['absolute_pos_embed'] = absolute_pos_embed.view( + N2, H, W, C2).permute(0, 3, 1, 2).contiguous() + + # interpolate position bias table if needed + relative_position_bias_table_keys = [ + k for k in state_dict.keys() + if 'relative_position_bias_table' in k + ] + for table_key in relative_position_bias_table_keys: + table_pretrained = state_dict[table_key] + table_current = self.state_dict()[table_key] + L1, nH1 = table_pretrained.size() + L2, nH2 = table_current.size() + if nH1 != nH2: + logger.warning(f'Error in loading {table_key}, pass') + else: + if L1 != L2: + S1 = int(L1**0.5) + S2 = int(L2**0.5) + table_pretrained_resized = F.interpolate( + table_pretrained.permute(1, 0).reshape( + 1, nH1, S1, S1), + size=(S2, S2), + mode='bicubic') + state_dict[table_key] = table_pretrained_resized.view( + nH2, L2).permute(1, 0).contiguous() + + # load state_dict + self.load_state_dict(state_dict, False) + + def forward(self, x): + x = self.patch_embed(x) + + hw_shape = (self.patch_embed.DH, self.patch_embed.DW) + if self.use_abs_pos_embed: + x = x + self.absolute_pos_embed + x = self.drop_after_pos(x) + + outs = [] + for i, stage in enumerate(self.stages): + x, hw_shape, out, out_hw_shape = stage(x, hw_shape) + if i in self.out_indices: + norm_layer = getattr(self, f'norm{i}') + out = norm_layer(out) + out = out.view(-1, *out_hw_shape, + self.num_features[i]).permute(0, 3, 1, + 2).contiguous() + outs.append(out) + + return outs diff --git a/mmseg/models/backbones/vit.py b/mmseg/models/backbones/vit.py index 440b463109..1ad20a1ca6 100644 --- a/mmseg/models/backbones/vit.py +++ b/mmseg/models/backbones/vit.py @@ -4,8 +4,8 @@ import torch import torch.nn as nn import torch.nn.functional as F -from mmcv.cnn import (build_conv_layer, build_norm_layer, constant_init, - kaiming_init, normal_init, trunc_normal_init) +from mmcv.cnn import (build_norm_layer, constant_init, kaiming_init, + normal_init, trunc_normal_init) from mmcv.cnn.bricks.transformer import FFN, MultiheadAttention from mmcv.runner import BaseModule, ModuleList, _load_checkpoint from torch.nn.modules.batchnorm import _BatchNorm @@ -13,7 +13,7 @@ from mmseg.utils import get_root_logger from ..builder import BACKBONES -from ..utils import vit_convert +from ..utils import PatchEmbed, vit_convert class TransformerEncoderLayer(BaseModule): @@ -93,49 +93,6 @@ def forward(self, x): return x -# Modified from pytorch-image-models -class PatchEmbed(BaseModule): - """Image to Patch Embedding. - - Args: - patch_size (int): The size of one patch - in_channels (int): The num of input channels. - embed_dims (int): The dimensions of embedding. - norm_cfg (dict, optional): Config dict for normalization layer. - conv_cfg (dict, optional): The config dict for conv layers. - Default: None. - """ - - def __init__(self, - patch_size=16, - in_channels=3, - embed_dims=768, - norm_cfg=None, - conv_cfg=None): - super(PatchEmbed, self).__init__() - - # Use conv layer to embed - self.projection = build_conv_layer( - conv_cfg, - in_channels, - embed_dims, - kernel_size=patch_size, - stride=patch_size) - - if norm_cfg is not None: - self.norm = build_norm_layer(norm_cfg, embed_dims)[1] - else: - self.norm = None - - def forward(self, x): - x = self.projection(x).flatten(2).transpose(1, 2) - - if self.norm is not None: - x = self.norm(x) - - return x - - @BACKBONES.register_module() class VisionTransformer(BaseModule): """Vision Transformer. @@ -248,10 +205,14 @@ def __init__(self, self.init_cfg = init_cfg self.patch_embed = PatchEmbed( - patch_size=patch_size, in_channels=in_channels, embed_dims=embed_dims, - norm_cfg=norm_cfg if patch_norm else None) + conv_type='Conv2d', + kernel_size=patch_size, + stride=patch_size, + norm_cfg=norm_cfg if patch_norm else None, + init_cfg=None, + ) num_patches = (img_size[0] // patch_size) * \ (img_size[1] // patch_size) diff --git a/mmseg/models/utils/__init__.py b/mmseg/models/utils/__init__.py index b7066eb03e..277dd2676b 100644 --- a/mmseg/models/utils/__init__.py +++ b/mmseg/models/utils/__init__.py @@ -1,12 +1,14 @@ +from .ckpt_convert import swin_convert, vit_convert +from .embed import PatchEmbed from .inverted_residual import InvertedResidual, InvertedResidualV3 from .make_divisible import make_divisible from .res_layer import ResLayer from .se_layer import SELayer from .self_attention_block import SelfAttentionBlock -from .timm_convert import vit_convert from .up_conv_block import UpConvBlock __all__ = [ 'ResLayer', 'SelfAttentionBlock', 'make_divisible', 'InvertedResidual', - 'UpConvBlock', 'InvertedResidualV3', 'SELayer', 'vit_convert' + 'UpConvBlock', 'InvertedResidualV3', 'SELayer', 'vit_convert', + 'swin_convert', 'PatchEmbed' ] diff --git a/mmseg/models/utils/ckpt_convert.py b/mmseg/models/utils/ckpt_convert.py new file mode 100644 index 0000000000..0b1b27707d --- /dev/null +++ b/mmseg/models/utils/ckpt_convert.py @@ -0,0 +1,90 @@ +from collections import OrderedDict + + +def swin_convert(ckpt): + new_ckpt = OrderedDict() + + def correct_unfold_reduction_order(x): + out_channel, in_channel = x.shape + x = x.reshape(out_channel, 4, in_channel // 4) + x = x[:, [0, 2, 1, 3], :].transpose(1, + 2).reshape(out_channel, in_channel) + return x + + def correct_unfold_norm_order(x): + in_channel = x.shape[0] + x = x.reshape(4, in_channel // 4) + x = x[[0, 2, 1, 3], :].transpose(0, 1).reshape(in_channel) + return x + + for k, v in ckpt.items(): + if k.startswith('head'): + continue + elif k.startswith('layers'): + new_v = v + if 'attn.' in k: + new_k = k.replace('attn.', 'attn.w_msa.') + elif 'mlp.' in k: + if 'mlp.fc1.' in k: + new_k = k.replace('mlp.fc1.', 'ffn.layers.0.0.') + elif 'mlp.fc2.' in k: + new_k = k.replace('mlp.fc2.', 'ffn.layers.1.') + else: + new_k = k.replace('mlp.', 'ffn.') + elif 'downsample' in k: + new_k = k + if 'reduction.' in k: + new_v = correct_unfold_reduction_order(v) + elif 'norm.' in k: + new_v = correct_unfold_norm_order(v) + else: + new_k = k + new_k = new_k.replace('layers', 'stages', 1) + elif k.startswith('patch_embed'): + new_v = v + if 'proj' in k: + new_k = k.replace('proj', 'projection') + else: + new_k = k + else: + new_v = v + new_k = k + + new_ckpt[new_k] = new_v + + return new_ckpt + + +def vit_convert(ckpt): + + new_ckpt = OrderedDict() + + for k, v in ckpt.items(): + if k.startswith('head'): + continue + if k.startswith('norm'): + new_k = k.replace('norm.', 'ln1.') + elif k.startswith('patch_embed'): + if 'proj' in k: + new_k = k.replace('proj', 'projection') + else: + new_k = k + elif k.startswith('blocks'): + if 'norm' in k: + new_k = k.replace('norm', 'ln') + elif 'mlp.fc1' in k: + new_k = k.replace('mlp.fc1', 'ffn.layers.0.0') + elif 'mlp.fc2' in k: + new_k = k.replace('mlp.fc2', 'ffn.layers.1') + elif 'attn.qkv' in k: + new_k = k.replace('attn.qkv.', 'attn.attn.in_proj_') + elif 'attn.proj' in k: + new_k = k.replace('attn.proj', 'attn.attn.out_proj') + else: + new_k = k + new_k = new_k.replace('blocks.', 'layers.') + else: + new_k = k + new_ckpt[new_k] = v + + return new_ckpt diff --git a/mmseg/models/utils/embed.py b/mmseg/models/utils/embed.py new file mode 100644 index 0000000000..3bbb45b37a --- /dev/null +++ b/mmseg/models/utils/embed.py @@ -0,0 +1,89 @@ +import torch.nn.functional as F +from mmcv.cnn import build_conv_layer, build_norm_layer +from mmcv.runner.base_module import BaseModule +from torch.nn.modules.utils import _pair as to_2tuple + + +# Modified from Pytorch-Image-Models +class PatchEmbed(BaseModule): + """Image to Patch Embedding V2. + + We use a conv layer to implement PatchEmbed. + Args: + in_channels (int): The num of input channels. Default: 3 + embed_dims (int): The dimensions of embedding. Default: 768 + conv_type (dict, optional): The config dict for conv layers type + selection. Default: None. + kernel_size (int): The kernel_size of embedding conv. Default: 16. + stride (int): The slide stride of embedding conv. + Default: None (Default to be equal with kernel_size). + padding (int): The padding length of embedding conv. Default: 0. + dilation (int): The dilation rate of embedding conv. Default: 1. + norm_cfg (dict, optional): Config dict for normalization layer. + init_cfg (`mmcv.ConfigDict`, optional): The Config for initialization. + Default: None. + """ + + def __init__(self, + in_channels=3, + embed_dims=768, + conv_type=None, + kernel_size=16, + stride=16, + padding=0, + dilation=1, + norm_cfg=None, + init_cfg=None): + super(PatchEmbed, self).__init__() + + self.embed_dims = embed_dims + self.init_cfg = init_cfg + + if stride is None: + stride = kernel_size + + # The default setting of patch size is eaual to kernel size. + patch_size = kernel_size + if isinstance(patch_size, int): + patch_size = to_2tuple(patch_size) + elif isinstance(patch_size, tuple): + if len(patch_size) == 1: + patch_size = to_2tuple(patch_size[0]) + assert len(patch_size) == 2, \ + f'The size of patch should have length 1 or 2, ' \ + f'but got {len(patch_size)}' + + self.patch_size = patch_size + + # Use conv layer to embed + conv_type = conv_type or dict(type='Conv2d') + self.projection = build_conv_layer( + dict(type=conv_type), + in_channels=in_channels, + out_channels=embed_dims, + kernel_size=kernel_size, + stride=stride, + padding=padding, + dilation=dilation) + + if norm_cfg is not None: + self.norm = build_norm_layer(norm_cfg, embed_dims)[1] + else: + self.norm = None + + def forward(self, x): + H, W = x.shape[2], x.shape[3] + if H % self.patch_size[0] != 0: + x = F.pad(x, + (0, 0, 0, self.patch_size[0] - H % self.patch_size[0])) + if W % self.patch_size[1] != 0: + x = F.pad(x, + (0, self.patch_size[1] - W % self.patch_size[1], 0, 0)) + x = self.projection(x) + self.DH, self.DW = x.shape[2], x.shape[3] + x = x.flatten(2).transpose(1, 2) + + if self.norm is not None: + x = self.norm(x) + + return x diff --git a/mmseg/models/utils/timm_convert.py b/mmseg/models/utils/timm_convert.py deleted file mode 100644 index 2ce48b06d6..0000000000 --- a/mmseg/models/utils/timm_convert.py +++ /dev/null @@ -1,32 +0,0 @@ -from collections import OrderedDict - - -def vit_convert(timm_dict): - - mmseg_dict = OrderedDict() - - for k, v in timm_dict.items(): - if k.startswith('head'): - continue - if k.startswith('norm'): - new_k = k.replace('norm.', 'ln1.') - elif k.startswith('patch_embed'): - if 'proj' in k: - new_k = k.replace('proj', 'projection') - elif k.startswith('blocks'): - new_k = k.replace('blocks.', 'layers.') - if 'norm' in new_k: - new_k = new_k.replace('norm', 'ln') - elif 'mlp.fc1' in new_k: - new_k = new_k.replace('mlp.fc1', 'ffn.layers.0.0') - elif 'mlp.fc2' in new_k: - new_k = new_k.replace('mlp.fc2', 'ffn.layers.1') - elif 'attn.qkv' in new_k: - new_k = new_k.replace('attn.qkv.', 'attn.attn.in_proj_') - elif 'attn.proj' in new_k: - new_k = new_k.replace('attn.proj', 'attn.attn.out_proj') - else: - new_k = k - mmseg_dict[new_k] = v - - return mmseg_dict diff --git a/tests/test_models/test_backbones/test_swin.py b/tests/test_models/test_backbones/test_swin.py new file mode 100644 index 0000000000..42e3086673 --- /dev/null +++ b/tests/test_models/test_backbones/test_swin.py @@ -0,0 +1,64 @@ +import pytest +import torch + +from mmseg.models.backbones import SwinTransformer + + +def test_swin_transformer(): + """Test Swin Transformer backbone.""" + + with pytest.raises(AssertionError): + # We only support 'official' or 'mmcls' for this arg. + model = SwinTransformer(pretrain_style='swin') + + with pytest.raises(TypeError): + # Pretrained arg must be str or None. + model = SwinTransformer(pretrained=123) + + with pytest.raises(AssertionError): + # Because swin use non-overlapping patch embed, so the stride of patch + # embed must be equal to patch size. + model = SwinTransformer(strides=(2, 2, 2, 2), patch_size=4) + + # Test absolute position embedding + temp = torch.randn((1, 3, 224, 224)) + model = SwinTransformer(pretrain_img_size=224, use_abs_pos_embed=True) + model.init_weights() + model(temp) + + # Test patch norm + model = SwinTransformer(patch_norm=False) + model(temp) + + # Test pretrain img size + model = SwinTransformer(pretrain_img_size=(224, )) + + with pytest.raises(AssertionError): + model = SwinTransformer(pretrain_img_size=(224, 224, 224)) + + # Test normal inference + temp = torch.randn((1, 3, 512, 512)) + model = SwinTransformer() + outs = model(temp) + assert outs[0].shape == (1, 96, 128, 128) + assert outs[1].shape == (1, 192, 64, 64) + assert outs[2].shape == (1, 384, 32, 32) + assert outs[3].shape == (1, 768, 16, 16) + + # Test abnormal inference + temp = torch.randn((1, 3, 511, 511)) + model = SwinTransformer() + outs = model(temp) + assert outs[0].shape == (1, 96, 128, 128) + assert outs[1].shape == (1, 192, 64, 64) + assert outs[2].shape == (1, 384, 32, 32) + assert outs[3].shape == (1, 768, 16, 16) + + # Test abnormal inference + temp = torch.randn((1, 3, 112, 137)) + model = SwinTransformer() + outs = model(temp) + assert outs[0].shape == (1, 96, 28, 35) + assert outs[1].shape == (1, 192, 14, 18) + assert outs[2].shape == (1, 384, 7, 9) + assert outs[3].shape == (1, 768, 4, 5) diff --git a/tests/test_models/test_backbones/test_vit.py b/tests/test_models/test_backbones/test_vit.py index 007781f2fb..4577b97b86 100644 --- a/tests/test_models/test_backbones/test_vit.py +++ b/tests/test_models/test_backbones/test_vit.py @@ -24,7 +24,7 @@ def test_vit_backbone(): x = torch.randn(1, 196) VisionTransformer.resize_pos_embed(x, 512, 512, 224, 224, 'bilinear') - with pytest.raises(RuntimeError): + with pytest.raises(IndexError): # forward inputs must be [N, C, H, W] x = torch.randn(3, 30, 30) model = VisionTransformer() From 5864f3f8078bdbe02e92103167926b7e83841127 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Fri, 2 Jul 2021 00:41:52 +0800 Subject: [PATCH 170/706] [Fix] Fix mmcv version compatible in get_started.md (#658) * fix mmcv version compatible * update version compatible --- docs/get_started.md | 8 +++++--- mmseg/__init__.py | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/get_started.md b/docs/get_started.md index 23e6a52866..05f2ddc916 100644 --- a/docs/get_started.md +++ b/docs/get_started.md @@ -11,9 +11,11 @@ The compatible MMSegmentation and MMCV versions are as below. Please install the | MMSegmentation version | MMCV version | |:-------------------:|:-------------------:| -| master | mmcv-full>=1.3.1, <1.4.0 | -| 0.13.0 | mmcv-full>=1.3.1, <1.4.0 | -| 0.12.0 | mmcv-full>=1.1.4, <1.4.0 | +| master | mmcv-full>=1.3.7, <1.4.0 | +| 0.14.1 | mmcv-full>=1.3.7, <1.4.0 | +| 0.14.0 | mmcv-full>=1.3.1, <1.3.2 | +| 0.13.0 | mmcv-full>=1.3.1, <1.3.2 | +| 0.12.0 | mmcv-full>=1.1.4, <1.3.2 | | 0.11.0 | mmcv-full>=1.1.4, <1.3.0 | | 0.10.0 | mmcv-full>=1.1.4, <1.3.0 | | 0.9.0 | mmcv-full>=1.1.4, <1.3.0 | diff --git a/mmseg/__init__.py b/mmseg/__init__.py index 96a8ca14fe..dbdebf9943 100644 --- a/mmseg/__init__.py +++ b/mmseg/__init__.py @@ -2,7 +2,7 @@ from .version import __version__, version_info -MMCV_MIN = '1.3.1' +MMCV_MIN = '1.3.7' MMCV_MAX = '1.4.0' From 26a93f201cf73ded95fa6834ce4d48b83e0e9425 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Fri, 2 Jul 2021 14:12:23 +0800 Subject: [PATCH 171/706] update metafiles (#664) --- MANIFEST.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MANIFEST.in b/MANIFEST.in index a1a7c9f8f5..54f5b5ca80 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,5 +1,5 @@ include requirements/*.txt -include mmseg/model_zoo.yml +include mmseg/model-index.yml recursive-include mmseg/configs *.py *.yml recursive-include mmseg/tools *.sh *.py From fb9462fc7c2093827b3b7c1506ba8de081ba4221 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=98=95=E8=BE=B0?= Date: Fri, 2 Jul 2021 17:58:35 +0800 Subject: [PATCH 172/706] [Fix] fix fast scnn (#606) * [Refactor] Match paddle seg weight * Match inference * fix exp setting * delete comment and rename config files * replace hard code with config parameters * fix ppm concat order * remove hardcode * update result * fix typo * complement docstring * complement FutureFusionModule docstring * modify log link --- configs/_base_/models/fast_scnn.py | 2 +- configs/fastscnn/README.md | 2 +- ...> fast_scnn_lr0.12_8x4_160k_cityscapes.py} | 4 +- mmseg/models/backbones/fast_scnn.py | 63 +++++++++++++------ mmseg/models/decode_heads/psp_head.py | 5 +- mmseg/models/decode_heads/sep_fcn_head.py | 14 +++-- mmseg/models/utils/inverted_residual.py | 12 ++-- 7 files changed, 70 insertions(+), 32 deletions(-) rename configs/fastscnn/{fast_scnn_4x8_80k_lr0.12_cityscapes.py => fast_scnn_lr0.12_8x4_160k_cityscapes.py} (82%) diff --git a/configs/_base_/models/fast_scnn.py b/configs/_base_/models/fast_scnn.py index 32fdeb6593..8e89d911dd 100644 --- a/configs/_base_/models/fast_scnn.py +++ b/configs/_base_/models/fast_scnn.py @@ -25,7 +25,7 @@ norm_cfg=norm_cfg, align_corners=False, loss_decode=dict( - type='CrossEntropyLoss', use_sigmoid=True, loss_weight=0.4)), + type='CrossEntropyLoss', use_sigmoid=True, loss_weight=1)), auxiliary_head=[ dict( type='FCNHead', diff --git a/configs/fastscnn/README.md b/configs/fastscnn/README.md index 9cea8d0fd0..f81b4b8b4b 100644 --- a/configs/fastscnn/README.md +++ b/configs/fastscnn/README.md @@ -19,4 +19,4 @@ | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | | --------- | --------- | --------- | ------: | -------- | -------------- | ----: | ------------- | --------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Fast-SCNN | Fast-SCNN | 512x1024 | 80000 | 8.4 | 63.61 | 69.06 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fast_scnn.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_4x8_80k_lr0.12_cityscapes-f5096c79.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_4x8_80k_lr0.12_cityscapes-20200807_165744.log.json) | +| Fast-SCNN | Fast-SCNN | 512x1024 | 160000 | 3.3 | 56.45 | 70.96 | 72.65 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fast_scnn.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_8x4_160k_lr0.12_cityscapes-0cec9937.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_8x4_160k_lr0.12_cityscapes-20210630_164853.log.json) | diff --git a/configs/fastscnn/fast_scnn_4x8_80k_lr0.12_cityscapes.py b/configs/fastscnn/fast_scnn_lr0.12_8x4_160k_cityscapes.py similarity index 82% rename from configs/fastscnn/fast_scnn_4x8_80k_lr0.12_cityscapes.py rename to configs/fastscnn/fast_scnn_lr0.12_8x4_160k_cityscapes.py index 3d9c999937..469812503c 100644 --- a/configs/fastscnn/fast_scnn_4x8_80k_lr0.12_cityscapes.py +++ b/configs/fastscnn/fast_scnn_lr0.12_8x4_160k_cityscapes.py @@ -1,10 +1,10 @@ _base_ = [ '../_base_/models/fast_scnn.py', '../_base_/datasets/cityscapes.py', - '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' + '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' ] # Re-config the data sampler. -data = dict(samples_per_gpu=2, workers_per_gpu=4) +data = dict(samples_per_gpu=4, workers_per_gpu=4) # Re-config the optimizer. optimizer = dict(type='SGD', lr=0.12, momentum=0.9, weight_decay=4e-5) diff --git a/mmseg/models/backbones/fast_scnn.py b/mmseg/models/backbones/fast_scnn.py index e8a87037d5..84289da481 100644 --- a/mmseg/models/backbones/fast_scnn.py +++ b/mmseg/models/backbones/fast_scnn.py @@ -6,7 +6,7 @@ from mmseg.models.decode_heads.psp_head import PPM from mmseg.ops import resize from ..builder import BACKBONES -from ..utils.inverted_residual import InvertedResidual +from ..utils import InvertedResidual class LearningToDownsample(nn.Module): @@ -23,6 +23,9 @@ class LearningToDownsample(nn.Module): dict(type='BN') act_cfg (dict): Config of activation layers. Default: dict(type='ReLU') + dw_act_cfg (dict): In DepthwiseSeparableConvModule, activation config + of depthwise ConvModule. If it is 'default', it will be the same + as `act_cfg`. Default: None. """ def __init__(self, @@ -31,11 +34,13 @@ def __init__(self, out_channels, conv_cfg=None, norm_cfg=dict(type='BN'), - act_cfg=dict(type='ReLU')): + act_cfg=dict(type='ReLU'), + dw_act_cfg=None): super(LearningToDownsample, self).__init__() self.conv_cfg = conv_cfg self.norm_cfg = norm_cfg self.act_cfg = act_cfg + self.dw_act_cfg = dw_act_cfg dw_channels1 = dw_channels[0] dw_channels2 = dw_channels[1] @@ -44,23 +49,28 @@ def __init__(self, dw_channels1, 3, stride=2, + padding=1, conv_cfg=self.conv_cfg, norm_cfg=self.norm_cfg, act_cfg=self.act_cfg) + self.dsconv1 = DepthwiseSeparableConvModule( dw_channels1, dw_channels2, kernel_size=3, stride=2, padding=1, - norm_cfg=self.norm_cfg) + norm_cfg=self.norm_cfg, + dw_act_cfg=self.dw_act_cfg) + self.dsconv2 = DepthwiseSeparableConvModule( dw_channels2, out_channels, kernel_size=3, stride=2, padding=1, - norm_cfg=self.norm_cfg) + norm_cfg=self.norm_cfg, + dw_act_cfg=self.dw_act_cfg) def forward(self, x): x = self.conv(x) @@ -136,10 +146,12 @@ def __init__(self, norm_cfg=self.norm_cfg, act_cfg=self.act_cfg, align_corners=align_corners) + self.out = ConvModule( block_channels[2] * 2, out_channels, - 1, + 3, + padding=1, conv_cfg=self.conv_cfg, norm_cfg=self.norm_cfg, act_cfg=self.act_cfg) @@ -156,7 +168,8 @@ def _make_layer(self, out_channels, stride, expand_ratio, - norm_cfg=self.norm_cfg) + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) ] for i in range(1, blocks): layers.append( @@ -165,7 +178,8 @@ def _make_layer(self, out_channels, 1, expand_ratio, - norm_cfg=self.norm_cfg)) + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg)) return nn.Sequential(*layers) def forward(self, x): @@ -189,10 +203,12 @@ class FeatureFusionModule(nn.Module): conv_cfg (dict | None): Config of conv layers. Default: None norm_cfg (dict | None): Config of norm layers. Default: dict(type='BN') - act_cfg (dict): Config of activation layers. Default: - dict(type='ReLU') + dwconv_act_cfg (dict): Config of activation layers in 3x3 conv. + Default: dict(type='ReLU'). + conv_act_cfg (dict): Config of activation layers in the two 1x1 conv. + Default: None. align_corners (bool): align_corners argument of F.interpolate. - Default: False + Default: False. """ def __init__(self, @@ -201,34 +217,40 @@ def __init__(self, out_channels, conv_cfg=None, norm_cfg=dict(type='BN'), - act_cfg=dict(type='ReLU'), + dwconv_act_cfg=dict(type='ReLU'), + conv_act_cfg=None, align_corners=False): super(FeatureFusionModule, self).__init__() self.conv_cfg = conv_cfg self.norm_cfg = norm_cfg - self.act_cfg = act_cfg + self.dwconv_act_cfg = dwconv_act_cfg + self.conv_act_cfg = conv_act_cfg self.align_corners = align_corners self.dwconv = ConvModule( lower_in_channels, out_channels, - 1, + 3, + padding=1, + groups=out_channels, conv_cfg=self.conv_cfg, norm_cfg=self.norm_cfg, - act_cfg=self.act_cfg) + act_cfg=self.dwconv_act_cfg) self.conv_lower_res = ConvModule( out_channels, out_channels, 1, conv_cfg=self.conv_cfg, norm_cfg=self.norm_cfg, - act_cfg=None) + act_cfg=self.conv_act_cfg) + self.conv_higher_res = ConvModule( higher_in_channels, out_channels, 1, conv_cfg=self.conv_cfg, norm_cfg=self.norm_cfg, - act_cfg=None) + act_cfg=self.conv_act_cfg) + self.relu = nn.ReLU(True) def forward(self, higher_res_feature, lower_res_feature): @@ -290,6 +312,9 @@ class FastSCNN(BaseModule): dict(type='ReLU') align_corners (bool): align_corners argument of F.interpolate. Default: False + dw_act_cfg (dict): In DepthwiseSeparableConvModule, activation config + of depthwise ConvModule. If it is 'default', it will be the same + as `act_cfg`. Default: None. init_cfg (dict or list[dict], optional): Initialization config dict. Default: None """ @@ -309,6 +334,7 @@ def __init__(self, norm_cfg=dict(type='BN'), act_cfg=dict(type='ReLU'), align_corners=False, + dw_act_cfg=None, init_cfg=None): super(FastSCNN, self).__init__(init_cfg) @@ -348,7 +374,8 @@ def __init__(self, global_in_channels, conv_cfg=self.conv_cfg, norm_cfg=self.norm_cfg, - act_cfg=self.act_cfg) + act_cfg=self.act_cfg, + dw_act_cfg=dw_act_cfg) self.global_feature_extractor = GlobalFeatureExtractor( global_in_channels, global_block_channels, @@ -364,7 +391,7 @@ def __init__(self, fusion_out_channels, conv_cfg=self.conv_cfg, norm_cfg=self.norm_cfg, - act_cfg=self.act_cfg, + dwconv_act_cfg=self.act_cfg, align_corners=self.align_corners) def forward(self, x): diff --git a/mmseg/models/decode_heads/psp_head.py b/mmseg/models/decode_heads/psp_head.py index bdbe2c8ac8..4416199860 100644 --- a/mmseg/models/decode_heads/psp_head.py +++ b/mmseg/models/decode_heads/psp_head.py @@ -22,7 +22,7 @@ class PPM(nn.ModuleList): """ def __init__(self, pool_scales, in_channels, channels, conv_cfg, norm_cfg, - act_cfg, align_corners): + act_cfg, align_corners, **kwargs): super(PPM, self).__init__() self.pool_scales = pool_scales self.align_corners = align_corners @@ -41,7 +41,8 @@ def __init__(self, pool_scales, in_channels, channels, conv_cfg, norm_cfg, 1, conv_cfg=self.conv_cfg, norm_cfg=self.norm_cfg, - act_cfg=self.act_cfg))) + act_cfg=self.act_cfg, + **kwargs))) def forward(self, x): """Forward function.""" diff --git a/mmseg/models/decode_heads/sep_fcn_head.py b/mmseg/models/decode_heads/sep_fcn_head.py index a636f702e7..39844c9ee8 100644 --- a/mmseg/models/decode_heads/sep_fcn_head.py +++ b/mmseg/models/decode_heads/sep_fcn_head.py @@ -24,23 +24,28 @@ class DepthwiseSeparableFCNHead(FCNHead): Default: False. loss_decode(dict): Config of loss type and some relevant additional options. + dw_act_cfg (dict):Activation config of depthwise ConvModule. If it is + 'default', it will be the same as `act_cfg`. Default: None. """ - def __init__(self, **kwargs): + def __init__(self, dw_act_cfg=None, **kwargs): super(DepthwiseSeparableFCNHead, self).__init__(**kwargs) self.convs[0] = DepthwiseSeparableConvModule( self.in_channels, self.channels, kernel_size=self.kernel_size, padding=self.kernel_size // 2, - norm_cfg=self.norm_cfg) + norm_cfg=self.norm_cfg, + dw_act_cfg=dw_act_cfg) + for i in range(1, self.num_convs): self.convs[i] = DepthwiseSeparableConvModule( self.channels, self.channels, kernel_size=self.kernel_size, padding=self.kernel_size // 2, - norm_cfg=self.norm_cfg) + norm_cfg=self.norm_cfg, + dw_act_cfg=dw_act_cfg) if self.concat_input: self.conv_cat = DepthwiseSeparableConvModule( @@ -48,4 +53,5 @@ def __init__(self, **kwargs): self.channels, kernel_size=self.kernel_size, padding=self.kernel_size // 2, - norm_cfg=self.norm_cfg) + norm_cfg=self.norm_cfg, + dw_act_cfg=dw_act_cfg) diff --git a/mmseg/models/utils/inverted_residual.py b/mmseg/models/utils/inverted_residual.py index ede71a2914..5a209a57bc 100644 --- a/mmseg/models/utils/inverted_residual.py +++ b/mmseg/models/utils/inverted_residual.py @@ -37,7 +37,8 @@ def __init__(self, conv_cfg=None, norm_cfg=dict(type='BN'), act_cfg=dict(type='ReLU6'), - with_cp=False): + with_cp=False, + **kwargs): super(InvertedResidual, self).__init__() self.stride = stride assert stride in [1, 2], f'stride must in [1, 2]. ' \ @@ -55,7 +56,8 @@ def __init__(self, kernel_size=1, conv_cfg=conv_cfg, norm_cfg=norm_cfg, - act_cfg=act_cfg)) + act_cfg=act_cfg, + **kwargs)) layers.extend([ ConvModule( in_channels=hidden_dim, @@ -67,14 +69,16 @@ def __init__(self, groups=hidden_dim, conv_cfg=conv_cfg, norm_cfg=norm_cfg, - act_cfg=act_cfg), + act_cfg=act_cfg, + **kwargs), ConvModule( in_channels=hidden_dim, out_channels=out_channels, kernel_size=1, conv_cfg=conv_cfg, norm_cfg=norm_cfg, - act_cfg=None) + act_cfg=None, + **kwargs) ]) self.conv = nn.Sequential(*layers) From 54c87dd4b55cc1f54a24d40cd5b9cffaf908d1a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=9F=E6=99=93=E9=94=AE?= Date: Fri, 2 Jul 2021 21:05:03 +0800 Subject: [PATCH 173/706] correct model URLs (#665) --- docs/model_zoo.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/model_zoo.md b/docs/model_zoo.md index 2d4c1c2ac9..b514d84312 100644 --- a/docs/model_zoo.md +++ b/docs/model_zoo.md @@ -53,7 +53,7 @@ Please refer to [UPerNet](https://github.com/open-mmlab/mmsegmentation/blob/mast ### NonLocal Net -Please refer to [NonLocal Net](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/nlnet) for details. +Please refer to [NonLocal Net](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/nonlocal_net) for details. ### EncNet @@ -101,7 +101,7 @@ Please refer to [ResNeSt](https://github.com/open-mmlab/mmsegmentation/blob/mast ### Semantic FPN -Please refer to [Semantic FPN](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/semfpn) for details. +Please refer to [Semantic FPN](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/sem_fpn) for details. ### PointRend @@ -129,7 +129,7 @@ Please refer to [CGNet](https://github.com/open-mmlab/mmsegmentation/blob/master ### Mixed Precision (FP16) Training -Please refer [Mixed Precision (FP16) Training](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/README.md) for details. +Please refer [Mixed Precision (FP16) Training](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16) for details. ## Speed benchmark From 425e574b2619b7005b35cd3344de7a882a6e8f10 Mon Sep 17 00:00:00 2001 From: MengzhangLI Date: Fri, 2 Jul 2021 21:12:22 +0800 Subject: [PATCH 174/706] [Fix] Fix wrong links of .pth and .json file in DMNet and UNet(FCN) README.md (#660) * readme_link_fix * readme_link_fix * readme_link_fix * Fix UNet FCN Download link [#415] * Fix UNet FCN Download link [#415] * Fix DMNet Download link [#548] * Fix DMNet Download link [#548] --- configs/dmnet/README.md | 24 ++++++++++++------------ configs/unet/README.md | 8 ++++---- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/configs/dmnet/README.md b/configs/dmnet/README.md index 190373e879..0cea6bf818 100644 --- a/configs/dmnet/README.md +++ b/configs/dmnet/README.md @@ -20,20 +20,20 @@ year = {2019} | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | | ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| DMNet | R-50-D8 | 512x1024 | 40000 | 7.0 | 3.66 | 77.78 | 79.14 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes/dmnet_r50-d8_512x1024_40k_cityscapes_20201214_115717-5e88fa33.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes/dmnet_r50-d8_512x1024_40k_cityscapes-20201214_115717.log.json) | -| DMNet | R-101-D8 | 512x1024 | 40000 | 10.6 | 2.54 | 78.37 | 79.72 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes/dmnet_r101-d8_512x1024_40k_cityscapes_20201214_115716-abc9d111.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes/dmnet_r101-d8_512x1024_40k_cityscapes-20201214_115716.log.json) | -| DMNet | R-50-D8 | 769x769 | 40000 | 7.9 | 1.57 | 78.49 | 80.27 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r50-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_40k_cityscapes/dmnet_r50-d8_769x769_40k_cityscapes_20201214_115717-2a2628d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_40k_cityscapes/dmnet_r50-d8_769x769_40k_cityscapes-20201214_115717.log.json) | -| DMNet | R-101-D8 | 769x769 | 40000 | 12.0 | 1.01 | 77.62 | 78.94 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r101-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_40k_cityscapes/dmnet_r101-d8_769x769_40k_cityscapes_20201214_115718-b650de90.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_40k_cityscapes/dmnet_r101-d8_769x769_40k_cityscapes-20201214_115718.log.json) | -| DMNet | R-50-D8 | 512x1024 | 80000 | - | - | 79.07 | 80.22 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes/dmnet_r50-d8_512x1024_80k_cityscapes_20201214_115716-987f51e3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes/dmnet_r50-d8_512x1024_80k_cityscapes-20201214_115716.log.json) | -| DMNet | R-101-D8 | 512x1024 | 80000 | - | - | 79.64 | 80.67 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes/dmnet_r101-d8_512x1024_80k_cityscapes_20201214_115705-b1ff208a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes/dmnet_r101-d8_512x1024_80k_cityscapes-20201214_115705.log.json) | -| DMNet | R-50-D8 | 769x769 | 80000 | - | - | 79.22 | 80.55 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r50-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_80k_cityscapes/dmnet_r50-d8_769x769_80k_cityscapes_20201214_115718-7ea9fa12.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_80k_cityscapes/dmnet_r50-d8_769x769_80k_cityscapes-20201214_115718.log.json) | -| DMNet | R-101-D8 | 769x769 | 80000 | - | - | 79.19 | 80.65 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r101-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_80k_cityscapes/dmnet_r101-d8_769x769_80k_cityscapes_20201214_115716-a7fbc2ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_80k_cityscapes/dmnet_r101-d8_769x769_80k_cityscapes-20201214_115716.log.json) | +| DMNet | R-50-D8 | 512x1024 | 40000 | 7.0 | 3.66 | 77.78 | 79.14 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes/dmnet_r50-d8_512x1024_40k_cityscapes_20201215_042326-615373cf.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes/dmnet_r50-d8_512x1024_40k_cityscapes-20201215_042326.log.json) | +| DMNet | R-101-D8 | 512x1024 | 40000 | 10.6 | 2.54 | 78.37 | 79.72 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes/dmnet_r101-d8_512x1024_40k_cityscapes_20201215_043100-8291e976.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes/dmnet_r101-d8_512x1024_40k_cityscapes-20201215_043100.log.json) | +| DMNet | R-50-D8 | 769x769 | 40000 | 7.9 | 1.57 | 78.49 | 80.27 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r50-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_40k_cityscapes/dmnet_r50-d8_769x769_40k_cityscapes_20201215_093706-e7f0e23e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_40k_cityscapes/dmnet_r50-d8_769x769_40k_cityscapes-20201215_093706.log.json) | +| DMNet | R-101-D8 | 769x769 | 40000 | 12.0 | 1.01 | 77.62 | 78.94 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r101-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_40k_cityscapes/dmnet_r101-d8_769x769_40k_cityscapes_20201215_081348-a74261f6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_40k_cityscapes/dmnet_r101-d8_769x769_40k_cityscapes-20201215_081348.log.json) | +| DMNet | R-50-D8 | 512x1024 | 80000 | - | - | 79.07 | 80.22 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes/dmnet_r50-d8_512x1024_80k_cityscapes_20201215_053728-3c8893b9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes/dmnet_r50-d8_512x1024_80k_cityscapes-20201215_053728.log.json) | +| DMNet | R-101-D8 | 512x1024 | 80000 | - | - | 79.64 | 80.67 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes/dmnet_r101-d8_512x1024_80k_cityscapes_20201215_031718-fa081cb8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes/dmnet_r101-d8_512x1024_80k_cityscapes-20201215_031718.log.json) | +| DMNet | R-50-D8 | 769x769 | 80000 | - | - | 79.22 | 80.55 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r50-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_80k_cityscapes/dmnet_r50-d8_769x769_80k_cityscapes_20201215_034006-6060840e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_80k_cityscapes/dmnet_r50-d8_769x769_80k_cityscapes-20201215_034006.log.json) | +| DMNet | R-101-D8 | 769x769 | 80000 | - | - | 79.19 | 80.65 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r101-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_80k_cityscapes/dmnet_r101-d8_769x769_80k_cityscapes_20201215_082810-7f0de59a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_80k_cityscapes/dmnet_r101-d8_769x769_80k_cityscapes-20201215_082810.log.json) | ### ADE20K | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | | ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | --------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| DMNet | R-50-D8 | 512x512 | 80000 | 9.4 | 20.95 | 42.37 | 43.62 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_80k_ade20k/dmnet_r50-d8_512x512_80k_ade20k_20201214_115705-a8626293.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_80k_ade20k/dmnet_r50-d8_512x512_80k_ade20k-20201214_115705.log.json) | -| DMNet | R-101-D8 | 512x512 | 80000 | 13.0 | 13.88 | 45.34 | 46.13 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r101-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_80k_ade20k/dmnet_r101-d8_512x512_80k_ade20k_20201214_115704-c656c3fb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_80k_ade20k/dmnet_r101-d8_512x512_80k_ade20k-20201214_115704.log.json) | -| DMNet | R-50-D8 | 512x512 | 160000 | - | - | 43.15 | 44.17 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_160k_ade20k/dmnet_r50-d8_512x512_160k_ade20k_20201214_115706-25fb92c2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_160k_ade20k/dmnet_r50-d8_512x512_160k_ade20k-20201214_115706.log.json) | -| DMNet | R-101-D8 | 512x512 | 160000 | - | - | 45.42 | 46.76 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r101-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_160k_ade20k/dmnet_r101-d8_512x512_160k_ade20k_20201214_115705-73f9a8d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_160k_ade20k/dmnet_r101-d8_512x512_160k_ade20k-20201214_115705.log.json) | +| DMNet | R-50-D8 | 512x512 | 80000 | 9.4 | 20.95 | 42.37 | 43.62 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_80k_ade20k/dmnet_r50-d8_512x512_80k_ade20k_20201215_144744-f89092a6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_80k_ade20k/dmnet_r50-d8_512x512_80k_ade20k-20201215_144744.log.json) | +| DMNet | R-101-D8 | 512x512 | 80000 | 13.0 | 13.88 | 45.34 | 46.13 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r101-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_80k_ade20k/dmnet_r101-d8_512x512_80k_ade20k_20201215_104812-bfa45311.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_80k_ade20k/dmnet_r101-d8_512x512_80k_ade20k-20201215_104812.log.json) | +| DMNet | R-50-D8 | 512x512 | 160000 | - | - | 43.15 | 44.17 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_160k_ade20k/dmnet_r50-d8_512x512_160k_ade20k_20201215_115313-025ab3f9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_160k_ade20k/dmnet_r50-d8_512x512_160k_ade20k-20201215_115313.log.json) | +| DMNet | R-101-D8 | 512x512 | 160000 | - | - | 45.42 | 46.76 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet/dmnet_r101-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_160k_ade20k/dmnet_r101-d8_512x512_160k_ade20k_20201215_111145-a0bc02ef.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_160k_ade20k/dmnet_r101-d8_512x512_160k_ade20k-20201215_111145.log.json) | diff --git a/configs/unet/README.md b/configs/unet/README.md index 6c419c05af..19eef45a1c 100644 --- a/configs/unet/README.md +++ b/configs/unet/README.md @@ -21,7 +21,7 @@ | Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | config | download | | ----------- | --------- | ---------- | --------- | -----: | ------- | -------- | -------------: | ----: | ------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| UNet-S5-D16 | FCN | 584x565 | 64x64 | 42x42 | 40000 | 0.680 | - | 78.67 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_64x64_40k_drive/fcn_unet_s5-d16_64x64_40k_drive_20201223_191051-26cee593.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_64x64_40k_drive/fcn_unet_s5-d16_64x64_40k_drive-20201223_191051.log.json) | +| UNet-S5-D16 | FCN | 584x565 | 64x64 | 42x42 | 40000 | 0.680 | - | 78.67 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_64x64_40k_drive/unet_s5-d16_64x64_40k_drive_20201223_191051-5daf6d3b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_64x64_40k_drive/fcn_unet_s5-d16_64x64_40k_drive-20201223_191051.log.json) | | UNet-S5-D16 | PSPNet | 584x565 | 64x64 | 42x42 | 40000 | 0.599 | - | 78.62 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_64x64_40k_drive/pspnet_unet_s5-d16_64x64_40k_drive_20201227_181818-aac73387.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_64x64_40k_drive/pspnet_unet_s5-d16_64x64_40k_drive-20201227_181818.log.json) | | UNet-S5-D16 | DeepLabV3 | 584x565 | 64x64 | 42x42 | 40000 | 0.596 | - | 78.69 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/deeplabv3_unet_s5-d16_64x64_40k_drive.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_64x64_40k_drive/deeplabv3_unet_s5-d16_64x64_40k_drive_20201226_094047-0671ff20.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_64x64_40k_drive/deeplabv3_unet_s5-d16_64x64_40k_drive-20201226_094047.log.json) | @@ -29,7 +29,7 @@ | Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | config | download | | ----------- | --------- | ---------- | --------- | -----: | ------- | -------- | -------------: | ----: | -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| UNet-S5-D16 | FCN | 605x700 | 128x128 | 85x85 | 40000 | 0.968 | - | 81.02 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_stare/fcn_unet_s5-d16_128x128_40k_stare_20201223_191051-6ea7cfda.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_stare/fcn_unet_s5-d16_128x128_40k_stare-20201223_191051.log.json) | +| UNet-S5-D16 | FCN | 605x700 | 128x128 | 85x85 | 40000 | 0.968 | - | 81.02 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_stare/unet_s5-d16_128x128_40k_stare_20201223_191051-7d77e78b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_stare/unet_s5-d16_128x128_40k_stare-20201223_191051.log.json) | | UNet-S5-D16 | PSPNet | 605x700 | 128x128 | 85x85 | 40000 | 0.982 | - | 81.22 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/pspnet_unet_s5-d16_128x128_40k_stare.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_stare/pspnet_unet_s5-d16_128x128_40k_stare_20201227_181818-3c2923c4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_stare/pspnet_unet_s5-d16_128x128_40k_stare-20201227_181818.log.json) | | UNet-S5-D16 | DeepLabV3 | 605x700 | 128x128 | 85x85 | 40000 | 0.999 | - | 80.93 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_stare.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_stare/deeplabv3_unet_s5-d16_128x128_40k_stare_20201226_094047-93dcb93c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_stare/deeplabv3_unet_s5-d16_128x128_40k_stare-20201226_094047.log.json) | @@ -37,7 +37,7 @@ | Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | config | download | | ----------- | --------- | ---------- | --------- | -----: | ------- | -------- | -------------: | ----: | -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| UNet-S5-D16 | FCN | 960x999 | 128x128 | 85x85 | 40000 | 0.968 | - | 80.24 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_chase_db1/fcn_unet_s5-d16_128x128_40k_chase_db1_20201223_191051-95852f45.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_chase_db1/fcn_unet_s5-d16_128x128_40k_chase_db1-20201223_191051.log.json) | +| UNet-S5-D16 | FCN | 960x999 | 128x128 | 85x85 | 40000 | 0.968 | - | 80.24 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_chase_db1/unet_s5-d16_128x128_40k_chase_db1_20201223_191051-11543527.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_chase_db1/unet_s5-d16_128x128_40k_chase_db1-20201223_191051.log.json) | | UNet-S5-D16 | PSPNet | 960x999 | 128x128 | 85x85 | 40000 | 0.982 | - | 80.36 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1/pspnet_unet_s5-d16_128x128_40k_chase_db1_20201227_181818-68d4e609.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1/pspnet_unet_s5-d16_128x128_40k_chase_db1-20201227_181818.log.json) | | UNet-S5-D16 | DeepLabV3 | 960x999 | 128x128 | 85x85 | 40000 | 0.999 | - | 80.47 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1/deeplabv3_unet_s5-d16_128x128_40k_chase_db1_20201226_094047-4c5aefa3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1/deeplabv3_unet_s5-d16_128x128_40k_chase_db1-20201226_094047.log.json) | @@ -45,6 +45,6 @@ | Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | config | download | | ----------- | --------- | ---------- | --------- | -----: | ------- | -------- | -------------: | ----: | -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| UNet-S5-D16 | FCN | 2336x3504 | 256x256 | 170x170 | 40000 | 2.525 | - | 79.45 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_256x256_40k_hrf/fcn_unet_s5-d16_256x256_40k_hrf_20201223_173724-df3ec8c4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_256x256_40k_hrf/fcn_unet_s5-d16_256x256_40k_hrf-20201223_173724.log.json) | +| UNet-S5-D16 | FCN | 2336x3504 | 256x256 | 170x170 | 40000 | 2.525 | - | 79.45 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_256x256_40k_hrf/unet_s5-d16_256x256_40k_hrf_20201223_173724-d89cf1ed.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_256x256_40k_hrf/unet_s5-d16_256x256_40k_hrf-20201223_173724.log.json) | | UNet-S5-D16 | PSPNet | 2336x3504 | 256x256 | 170x170 | 40000 | 2.588 | - | 80.07 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_256x256_40k_hrf/pspnet_unet_s5-d16_256x256_40k_hrf_20201227_181818-fdb7e29b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_256x256_40k_hrf/pspnet_unet_s5-d16_256x256_40k_hrf-20201227_181818.log.json) | | UNet-S5-D16 | DeepLabV3 | 2336x3504 | 256x256 | 170x170 | 40000 | 2.604 | - | 80.21 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf/deeplabv3_unet_s5-d16_256x256_40k_hrf_20201226_094047-3a1fdf85.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf/deeplabv3_unet_s5-d16_256x256_40k_hrf-20201226_094047.log.json) | From f201c4fe0c196e7ad362276354f50fe3ed116af9 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Fri, 2 Jul 2021 21:34:08 +0800 Subject: [PATCH 175/706] Update useful_tools.md --- docs/useful_tools.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/useful_tools.md b/docs/useful_tools.md index de5e127b18..b39bf5dc5a 100644 --- a/docs/useful_tools.md +++ b/docs/useful_tools.md @@ -67,7 +67,7 @@ Description of arguments: - `--checkpoint` : The path of a model checkpoint file. - `--output-file`: The path of output ONNX model. If not specified, it will be set to `tmp.onnx`. - `--input-img` : The path of an input image for conversion and visualize. -- `--shape`: The height and width of input tensor to the model. If not specified, it will be set to img_scale of testpipeline. +- `--shape`: The height and width of input tensor to the model. If not specified, it will be set to img_scale of test_pipeline. - `--rescale-shape`: rescale shape of output, set this value to avoid OOM, only work on `slide` mode. - `--show`: Determines whether to print the architecture of the exported model. If not specified, it will be set to `False`. - `--verify`: Determines whether to verify the correctness of an exported model. If not specified, it will be set to `False`. From 75c825b45ca308a2e2190568d91b84f5ce1dd517 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Fri, 2 Jul 2021 21:39:50 +0800 Subject: [PATCH 176/706] Update useful_tools.md --- docs/useful_tools.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/useful_tools.md b/docs/useful_tools.md index b39bf5dc5a..b2c11f6e80 100644 --- a/docs/useful_tools.md +++ b/docs/useful_tools.md @@ -44,7 +44,7 @@ The final output filename will be `psp_r50_512x1024_40ki_cityscapes-{hash id}.pt ### Convert to ONNX (experimental) -We provide a script to convert model to [ONNX](https://github.com/onnx/onnx) format. The converted model could be visualized by tools like [Netron](https://github.com/lutzroeder/netron). Besides, we also support comparing the output results between Pytorch and ONNX model. +We provide a script to convert model to [ONNX](https://github.com/onnx/onnx) format. The converted model could be visualized by tools like [Netron](https://github.com/lutzroeder/netron). Besides, we also support comparing the output results between PyTorch and ONNX model. ```bash python tools/pytorch2onnx.py \ @@ -136,7 +136,7 @@ Description of all arguments ### Convert to TorchScript (experimental) -We also provide a script to convert model to [TorchScript](https://pytorch.org/docs/stable/jit.html) format. You can use the pytorch C++ API [LibTorch](https://pytorch.org/docs/stable/cpp_index.html) inference the trained model. The converted model could be visualized by tools like [Netron](https://github.com/lutzroeder/netron). Besides, we also support comparing the output results between Pytorch and TorchScript model. +We also provide a script to convert model to [TorchScript](https://pytorch.org/docs/stable/jit.html) format. You can use the pytorch C++ API [LibTorch](https://pytorch.org/docs/stable/cpp_index.html) inference the trained model. The converted model could be visualized by tools like [Netron](https://github.com/lutzroeder/netron). Besides, we also support comparing the output results between PyTorch and TorchScript model. ```shell python tools/pytorch2torchscript.py \ From 686d8427f743b337041e88fe6ff81ab87171ae41 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Sat, 3 Jul 2021 08:54:32 -0700 Subject: [PATCH 177/706] [Doc] Add Chinese Documentation (#666) * Add chinese doc base (#593) * [Doc] Add Chinese doc for useful_tools_md (#642) * get_started_docs_zh * inference_zh.md * train_zh.md * get_started_zh.md * train_zh.md * get_started_zh * fix nospace between ZH and ENG * change README_zh-CN link * checkout space again * checkout space again * checkout space again * pipeline * cus_model * cus_model * cus_model * runtime_md * dataset_prepare * useful_tools * refine * Update useful_tools.md * Update useful_tools.md Co-authored-by: Junjun2016 * [Doc] Add Chinese doc for get_started (#615) * get_started_docs_zh * inference_zh.md * train_zh.md * get_started_zh.md * train_zh.md * get_started_zh * fix nospace between ZH and ENG * change README_zh-CN link * checkout space again * checkout space again * checkout space again * get_started_md * refine_get_started_md * [Doc] Add Chinese doc for tutorial03_tutorial_datapipeline_md (#629) * get_started_docs_zh * inference_zh.md * train_zh.md * get_started_zh.md * train_zh.md * get_started_zh * fix nospace between ZH and ENG * change README_zh-CN link * checkout space again * checkout space again * checkout space again * pipeline * refine * Update data_pipeline.md Co-authored-by: Junjun2016 * [Doc] Add Chinese doc for tutorials04_customized_models_md (#630) * get_started_docs_zh * inference_zh.md * train_zh.md * get_started_zh.md * train_zh.md * get_started_zh * fix nospace between ZH and ENG * change README_zh-CN link * checkout space again * checkout space again * checkout space again * pipeline * cus_model * cus_model * cus_model * refine * refine * Update customize_models.md Co-authored-by: Junjun2016 * [Doc] Add Chinese doc for dataset_prepare_md (#640) * get_started_docs_zh * inference_zh.md * train_zh.md * get_started_zh.md * train_zh.md * get_started_zh * fix nospace between ZH and ENG * change README_zh-CN link * checkout space again * checkout space again * checkout space again * pipeline * cus_model * cus_model * cus_model * runtime_md * dataset_prepare * Update dataset_prepare.md Co-authored-by: Junjun2016 * [Doc] Add Chinese doc for tutorials05_training_tricks_md (#631) * get_started_docs_zh * inference_zh.md * train_zh.md * get_started_zh.md * train_zh.md * get_started_zh * fix nospace between ZH and ENG * change README_zh-CN link * checkout space again * checkout space again * checkout space again * pipeline * cus_model * cus_model * cus_model * traning tricks md * traning tricks md * refine * refine * refine * Update training_tricks.md Co-authored-by: Junjun2016 * [Doc] Add Chinese doc for tutorials06_customized_runtime_md (#637) * get_started_docs_zh * inference_zh.md * train_zh.md * get_started_zh.md * train_zh.md * get_started_zh * fix nospace between ZH and ENG * change README_zh-CN link * checkout space again * checkout space again * checkout space again * pipeline * cus_model * cus_model * cus_model * runtime_md * Update customize_runtime.md Co-authored-by: Junjun2016 * [Doc] Add Chinese doc for tutorials01_config_md (#628) * get_started_docs_zh * inference_zh.md * train_zh.md * get_started_zh.md * train_zh.md * get_started_zh * fix nospace between ZH and ENG * change README_zh-CN link * checkout space again * checkout space again * checkout space again * new_config_md * new_config_md1 * new_config_md1 * refine * refine * Update config.md Co-authored-by: Junjun2016 * [Doc] Add Chinese for modelzoo (#597) * [Doc] Add Chinese for modelzoo * add missing * [Doc] Add Chinese doc for tutorial02_customized_dataset_md (#620) * get_started_docs_zh * inference_zh.md * train_zh.md * get_started_zh.md * train_zh.md * get_started_zh * fix nospace between ZH and ENG * change README_zh-CN link * checkout space again * checkout space again * checkout space again * tutorial_customized_dataset * refine * Update customize_datasets.md * fixconflict Co-authored-by: Junjun2016 * [Doc] Add Chinese doc for train.md (#616) * get_started_docs_zh * inference_zh.md * train_zh.md * get_started_zh.md * train_zh.md * get_started_zh * fix nospace between ZH and ENG * change README_zh-CN link * checkout space again * checkout space again * checkout space again * train_md * refine * refine_last * refine_last * refine_last * refine_last * refine_last * temp * refine_last * qwe Co-authored-by: yuanzhang * [Doc] Add Chinese doc for inference.md (#617) * get_started_docs_zh * inference_zh.md * train_zh.md * get_started_zh.md * train_zh.md * get_started_zh * fix nospace between ZH and ENG * change README_zh-CN link * checkout space again * checkout space again * checkout space again * inference_zh_md * Update docs_zh-CN/inference.md Directly delete this sentence? Co-authored-by: Junjun2016 * qwe * temp * qw * Update docs_zh-CN/inference.md * Update docs_zh-CN/inference.md * Update docs_zh-CN/inference.md * Update docs_zh-CN/inference.md * Update docs_zh-CN/inference.md * Update inference.md Co-authored-by: Junjun2016 * fixed some dir * fixed typo Co-authored-by: MengzhangLI Co-authored-by: Junjun2016 Co-authored-by: yuanzhang --- README_zh-CN.md | 16 +- docs/conf.py | 4 +- docs/index.rst | 5 + docs/switch_language.md | 3 + docs_zh-CN/Makefile | 20 + docs_zh-CN/api.rst | 61 +++ docs_zh-CN/conf.py | 90 +++++ docs_zh-CN/dataset_prepare.md | 169 ++++++++ docs_zh-CN/get_started.md | 210 ++++++++++ {docs => docs_zh-CN}/imgs/qq_group_qrcode.jpg | Bin {docs => docs_zh-CN}/imgs/zhihu_qrcode.jpg | Bin docs_zh-CN/index.rst | 62 +++ docs_zh-CN/inference.md | 99 +++++ docs_zh-CN/make.bat | 35 ++ docs_zh-CN/model_zoo.md | 152 +++++++ docs_zh-CN/stat.py | 64 +++ docs_zh-CN/switch_language.md | 3 + docs_zh-CN/train.md | 82 ++++ docs_zh-CN/tutorials/config.md | 377 ++++++++++++++++++ docs_zh-CN/tutorials/customize_datasets.md | 173 ++++++++ docs_zh-CN/tutorials/customize_models.md | 230 +++++++++++ docs_zh-CN/tutorials/customize_runtime.md | 246 ++++++++++++ docs_zh-CN/tutorials/data_pipeline.md | 166 ++++++++ docs_zh-CN/tutorials/index.rst | 9 + docs_zh-CN/tutorials/training_tricks.md | 51 +++ docs_zh-CN/useful_tools.md | 260 ++++++++++++ 26 files changed, 2578 insertions(+), 9 deletions(-) create mode 100644 docs/switch_language.md create mode 100644 docs_zh-CN/Makefile create mode 100644 docs_zh-CN/api.rst create mode 100644 docs_zh-CN/conf.py create mode 100644 docs_zh-CN/dataset_prepare.md create mode 100644 docs_zh-CN/get_started.md rename {docs => docs_zh-CN}/imgs/qq_group_qrcode.jpg (100%) rename {docs => docs_zh-CN}/imgs/zhihu_qrcode.jpg (100%) create mode 100644 docs_zh-CN/index.rst create mode 100644 docs_zh-CN/inference.md create mode 100644 docs_zh-CN/make.bat create mode 100644 docs_zh-CN/model_zoo.md create mode 100755 docs_zh-CN/stat.py create mode 100644 docs_zh-CN/switch_language.md create mode 100644 docs_zh-CN/train.md create mode 100644 docs_zh-CN/tutorials/config.md create mode 100644 docs_zh-CN/tutorials/customize_datasets.md create mode 100644 docs_zh-CN/tutorials/customize_models.md create mode 100644 docs_zh-CN/tutorials/customize_runtime.md create mode 100644 docs_zh-CN/tutorials/data_pipeline.md create mode 100644 docs_zh-CN/tutorials/index.rst create mode 100644 docs_zh-CN/tutorials/training_tricks.md create mode 100644 docs_zh-CN/useful_tools.md diff --git a/README_zh-CN.md b/README_zh-CN.md index 04191bd02e..a4b0b207d2 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -4,14 +4,14 @@
[![PyPI](https://img.shields.io/pypi/v/mmsegmentation)](https://pypi.org/project/mmsegmentation) -[![docs](https://img.shields.io/badge/docs-latest-blue)](https://mmsegmentation.readthedocs.io/en/latest/) +[![docs](https://img.shields.io/badge/docs-latest-blue)](https://mmsegmentation.readthedocs.io/zh_CN/latest/) [![badge](https://github.com/open-mmlab/mmsegmentation/workflows/build/badge.svg)](https://github.com/open-mmlab/mmsegmentation/actions) [![codecov](https://codecov.io/gh/open-mmlab/mmsegmentation/branch/master/graph/badge.svg)](https://codecov.io/gh/open-mmlab/mmsegmentation) [![license](https://img.shields.io/github/license/open-mmlab/mmsegmentation.svg)](https://github.com/open-mmlab/mmsegmentation/blob/master/LICENSE) [![issue resolution](https://isitmaintained.com/badge/resolution/open-mmlab/mmsegmentation.svg)](https://github.com/open-mmlab/mmsegmentation/issues) [![open issues](https://isitmaintained.com/badge/open/open-mmlab/mmsegmentation.svg)](https://github.com/open-mmlab/mmsegmentation/issues) -文档: https://mmsegmentation.readthedocs.io/ +文档: https://mmsegmentation.readthedocs.io/zh_CN/latest [English](README.md) | 简体中文 @@ -52,7 +52,7 @@ MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 O ## 基准测试和模型库 -测试结果和模型可以在[模型库](docs/model_zoo.md)中找到。 +测试结果和模型可以在[模型库](docs_zh-CN/model_zoo.md)中找到。 已支持的骨干网络: @@ -94,13 +94,13 @@ MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 O ## 安装 -请参考[快速入门文档](docs/get_started.md#installation)进行安装和数据集准备。 +请参考[快速入门文档](docs_zh-CN/get_started.md#installation)进行安装和数据集准备。 ## 快速入门 -请参考[训练教程](docs/train.md)和[测试教程](docs/inference.md)学习 MMSegmentation 的基本使用。 -我们也提供了一些进阶教程,内容覆盖了[增加自定义数据集](docs/tutorials/customize_datasets.md),[设计新的数据预处理流程](docs/tutorials/data_pipeline.md),[增加自定义模型](docs/tutorials/customize_models.md),[增加自定义的运行时配置](docs/tutorials/customize_runtime.md)。 -除此之外,我们也提供了很多实用的[训练技巧说明](docs/tutorials/training_tricks.md)。 +请参考[训练教程](docs_zh-CN/train.md)和[测试教程](docs_zh-CN/inference.md)学习 MMSegmentation 的基本使用。 +我们也提供了一些进阶教程,内容覆盖了[增加自定义数据集](docs_zh-CN/tutorials/customize_datasets.md),[设计新的数据预处理流程](docs_zh-CN/tutorials/data_pipeline.md),[增加自定义模型](docs_zh-CN/tutorials/customize_models.md),[增加自定义的运行时配置](docs_zh-CN/tutorials/customize_runtime.md)。 +除此之外,我们也提供了很多实用的[训练技巧说明](docs_zh-CN/tutorials/training_tricks.md)。 同时,我们提供了 Colab 教程。你可以在[这里](demo/MMSegmentation_Tutorial.ipynb)浏览教程,或者直接在 Colab 上[运行](https://colab.research.google.com/github/open-mmlab/mmsegmentation/blob/master/demo/MMSegmentation_Tutorial.ipynb)。 @@ -144,7 +144,7 @@ MMSegmentation 是一个由来自不同高校和企业的研发人员共同参 扫描下方的二维码可关注 OpenMMLab 团队的 [知乎官方账号](https://www.zhihu.com/people/openmmlab),加入 OpenMMLab 团队的 [官方交流 QQ 群](https://jq.qq.com/?_wv=1027&k=aCvMxdr3)

- +
我们会在 OpenMMLab 社区为大家 diff --git a/docs/conf.py b/docs/conf.py index f472acb30a..72c8c5210c 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -19,7 +19,7 @@ # -- Project information ----------------------------------------------------- project = 'MMSegmentation' -copyright = '2020-2020, OpenMMLab' +copyright = '2020-2021, OpenMMLab' author = 'MMSegmentation Authors' version_file = '../mmseg/version.py' @@ -79,6 +79,8 @@ def get_version(): # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] +language = 'zh_CN' + def builder_inited_handler(app): subprocess.run(['./stat.py']) diff --git a/docs/index.rst b/docs/index.rst index 94db902657..b778e18cb7 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -45,6 +45,11 @@ Welcome to MMSegmenation's documentation! changelog.md +.. toctree:: + :caption: Switch Language + + switch_language.md + .. toctree:: :caption: API Reference diff --git a/docs/switch_language.md b/docs/switch_language.md new file mode 100644 index 0000000000..f58efc42be --- /dev/null +++ b/docs/switch_language.md @@ -0,0 +1,3 @@ +##
English + +## 简体中文 diff --git a/docs_zh-CN/Makefile b/docs_zh-CN/Makefile new file mode 100644 index 0000000000..d4bb2cbb9e --- /dev/null +++ b/docs_zh-CN/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs_zh-CN/api.rst b/docs_zh-CN/api.rst new file mode 100644 index 0000000000..9c14a67564 --- /dev/null +++ b/docs_zh-CN/api.rst @@ -0,0 +1,61 @@ +API Reference +============== + +mmseg.apis +-------------- +.. automodule:: mmseg.apis + :members: + +mmseg.core +-------------- + +seg +^^^^^^^^^^ +.. automodule:: mmseg.core.seg + :members: + +evaluation +^^^^^^^^^^ +.. automodule:: mmseg.core.evaluation + :members: + +utils +^^^^^^^^^^ +.. automodule:: mmseg.core.utils + :members: + +mmseg.datasets +-------------- + +datasets +^^^^^^^^^^ +.. automodule:: mmseg.datasets + :members: + +pipelines +^^^^^^^^^^ +.. automodule:: mmseg.datasets.pipelines + :members: + +mmseg.models +-------------- + +segmentors +^^^^^^^^^^ +.. automodule:: mmseg.models.segmentors + :members: + +backbones +^^^^^^^^^^ +.. automodule:: mmseg.models.backbones + :members: + +decode_heads +^^^^^^^^^^^^ +.. automodule:: mmseg.models.decode_heads + :members: + +losses +^^^^^^^^^^ +.. automodule:: mmseg.models.losses + :members: diff --git a/docs_zh-CN/conf.py b/docs_zh-CN/conf.py new file mode 100644 index 0000000000..72c8c5210c --- /dev/null +++ b/docs_zh-CN/conf.py @@ -0,0 +1,90 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +import os +import subprocess +import sys + +sys.path.insert(0, os.path.abspath('..')) + +# -- Project information ----------------------------------------------------- + +project = 'MMSegmentation' +copyright = '2020-2021, OpenMMLab' +author = 'MMSegmentation Authors' +version_file = '../mmseg/version.py' + + +def get_version(): + with open(version_file, 'r') as f: + exec(compile(f.read(), version_file, 'exec')) + return locals()['__version__'] + + +# The full version, including alpha/beta/rc tags +release = get_version() + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'sphinx.ext.autodoc', + 'sphinx.ext.napoleon', + 'sphinx.ext.viewcode', + 'recommonmark', + 'sphinx_markdown_tables', +] + +autodoc_mock_imports = ['matplotlib', 'pycocotools', 'mmseg.version'] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +# +source_suffix = { + '.rst': 'restructuredtext', + '.md': 'markdown', +} + +# The master toctree document. +master_doc = 'index' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'sphinx_rtd_theme' + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +language = 'zh_CN' + + +def builder_inited_handler(app): + subprocess.run(['./stat.py']) + + +def setup(app): + app.connect('builder-inited', builder_inited_handler) diff --git a/docs_zh-CN/dataset_prepare.md b/docs_zh-CN/dataset_prepare.md new file mode 100644 index 0000000000..5f566d40fa --- /dev/null +++ b/docs_zh-CN/dataset_prepare.md @@ -0,0 +1,169 @@ +## 准备数据集 + +推荐用软链接,将数据集根目录链接到 `$MMSEGMENTATION/data` 里。如果您的文件夹结构是不同的,您也许可以试着修改配置文件里对应的路径。 + +```none +mmsegmentation +├── mmseg +├── tools +├── configs +├── data +│ ├── cityscapes +│ │ ├── leftImg8bit +│ │ │ ├── train +│ │ │ ├── val +│ │ ├── gtFine +│ │ │ ├── train +│ │ │ ├── val +│ ├── VOCdevkit +│ │ ├── VOC2012 +│ │ │ ├── JPEGImages +│ │ │ ├── SegmentationClass +│ │ │ ├── ImageSets +│ │ │ │ ├── Segmentation +│ │ ├── VOC2010 +│ │ │ ├── JPEGImages +│ │ │ ├── SegmentationClassContext +│ │ │ ├── ImageSets +│ │ │ │ ├── SegmentationContext +│ │ │ │ │ ├── train.txt +│ │ │ │ │ ├── val.txt +│ │ │ ├── trainval_merged.json +│ │ ├── VOCaug +│ │ │ ├── dataset +│ │ │ │ ├── cls +│ ├── ade +│ │ ├── ADEChallengeData2016 +│ │ │ ├── annotations +│ │ │ │ ├── training +│ │ │ │ ├── validation +│ │ │ ├── images +│ │ │ │ ├── training +│ │ │ │ ├── validation +│ ├── CHASE_DB1 +│ │ ├── images +│ │ │ ├── training +│ │ │ ├── validation +│ │ ├── annotations +│ │ │ ├── training +│ │ │ ├── validation +│ ├── DRIVE +│ │ ├── images +│ │ │ ├── training +│ │ │ ├── validation +│ │ ├── annotations +│ │ │ ├── training +│ │ │ ├── validation +│ ├── HRF +│ │ ├── images +│ │ │ ├── training +│ │ │ ├── validation +│ │ ├── annotations +│ │ │ ├── training +│ │ │ ├── validation +│ ├── STARE +│ │ ├── images +│ │ │ ├── training +│ │ │ ├── validation +│ │ ├── annotations +│ │ │ ├── training +│ │ │ ├── validation + +``` + +### Cityscapes + +注册成功后,数据集可以在 [这里](https://www.cityscapes-dataset.com/downloads/) 下载。 + +通常情况下,`**labelTrainIds.png` 被用来训练 cityscapes。 +基于 [cityscapesscripts](https://github.com/mcordts/cityscapesScripts), +我们提供了一个 [脚本](https://github.com/open-mmlab/mmsegmentation/blob/master/tools/convert_datasets/cityscapes.py), +去生成 `**labelTrainIds.png`。 + +```shell +# --nproc 8 意味着有 8 个进程用来转换,它也可以被忽略。 +python tools/convert_datasets/cityscapes.py data/cityscapes --nproc 8 +``` + +### Pascal VOC + +Pascal VOC 2012 可以在 [这里](http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar) 下载。 +此外,许多最近在 Pascal VOC 数据集上的工作都会利用增广的数据,它们可以在 [这里](http://www.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/semantic_contours/benchmark.tgz) 找到。 + +如果您想使用增广后的 VOC 数据集,请运行下面的命令来将数据增广的标注转成正确的格式。 + +```shell +# --nproc 8 意味着有 8 个进程用来转换,它也可以被忽略。 +python tools/convert_datasets/voc_aug.py data/VOCdevkit data/VOCdevkit/VOCaug --nproc 8 +``` + +关于如何拼接数据集 (concatenate) 并一起训练它们,更多细节请参考 [拼接连接 数据集](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/tutorials/new_dataset.md#concatenate-dataset) 。 + +### ADE20K + +ADE20K 的训练集和验证集可以在 [这里](http://data.csail.mit.edu/places/ADEchallenge/ADEChallengeData2016.zip) 下载。 +您还可以在 [这里](http://data.csail.mit.edu/places/ADEchallenge/release_test.zip) 下载验证集。 + +### Pascal Context + +Pascal Context 的训练集和验证集可以在 [这里](http://host.robots.ox.ac.uk/pascal/VOC/voc2010/VOCtrainval_03-May-2010.tar) 下载。 +注册成功后,您还可以在 [这里](http://host.robots.ox.ac.uk:8080/eval/downloads/VOC2010test.tar) 下载验证集。 + +为了从原始数据集里切分训练集和验证集, 您可以在 [这里](https://codalabuser.blob.core.windows.net/public/trainval_merged.json) +下载 trainval_merged.json。 + +如果您想使用 Pascal Context 数据集, +请安装 [细节](https://github.com/zhanghang1989/detail-api) 然后再运行如下命令来把标注转换成正确的格式。 + +```shell +python tools/convert_datasets/pascal_context.py data/VOCdevkit data/VOCdevkit/VOC2010/trainval_merged.json +``` + +### CHASE DB1 + +CHASE DB1 的训练集和验证集可以在 [这里](https://staffnet.kingston.ac.uk/~ku15565/CHASE_DB1/assets/CHASEDB1.zip) 下载。 + +为了将 CHASE DB1 数据集转换成 MMSegmentation 的格式,您需要运行如下命令: + +```shell +python tools/convert_datasets/chase_db1.py /path/to/CHASEDB1.zip +``` + +这个脚本将自动生成正确的文件夹结构。 + +### DRIVE + +DRIVE 的训练集和验证集可以在 [这里](https://drive.grand-challenge.org/) 下载。 +在此之前,您需要注册一个账号,当前 '1st_manual' 并未被官方提供,因此需要您从其他地方获取。 + +为了将 DRIVE 数据集转换成 MMSegmentation 格式,您需要运行如下命令: + +```shell +python tools/convert_datasets/drive.py /path/to/training.zip /path/to/test.zip +``` + +这个脚本将自动生成正确的文件夹结构。 + +### HRF + +首先,下载 [healthy.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/healthy.zip), [glaucoma.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/glaucoma.zip), [diabetic_retinopathy.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/diabetic_retinopathy.zip), [healthy_manualsegm.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/healthy_manualsegm.zip), [glaucoma_manualsegm.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/glaucoma_manualsegm.zip) 以及 [diabetic_retinopathy_manualsegm.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/diabetic_retinopathy_manualsegm.zip). + +为了将 HRF 数据集转换成 MMSegmentation 格式,您需要运行如下命令: + +```shell +python tools/convert_datasets/hrf.py /path/to/healthy.zip /path/to/healthy_manualsegm.zip /path/to/glaucoma.zip /path/to/glaucoma_manualsegm.zip /path/to/diabetic_retinopathy.zip /path/to/diabetic_retinopathy_manualsegm.zip +``` + +这个脚本将自动生成正确的文件夹结构。 + +### STARE + +首先,下载 [stare-images.tar](http://cecas.clemson.edu/~ahoover/stare/probing/stare-images.tar), [labels-ah.tar](http://cecas.clemson.edu/~ahoover/stare/probing/labels-ah.tar) 和 [labels-vk.tar](http://cecas.clemson.edu/~ahoover/stare/probing/labels-vk.tar). + +为了将 STARE 数据集转换成 MMSegmentation 格式,您需要运行如下命令: + +```shell +python tools/convert_datasets/stare.py /path/to/stare-images.tar /path/to/labels-ah.tar /path/to/labels-vk.tar +``` + +这个脚本将自动生成正确的文件夹结构。 diff --git a/docs_zh-CN/get_started.md b/docs_zh-CN/get_started.md new file mode 100644 index 0000000000..54d19453e6 --- /dev/null +++ b/docs_zh-CN/get_started.md @@ -0,0 +1,210 @@ +## 依赖 + +- Linux or macOS (Windows下支持需要 mmcv-full,但运行时可能会有一些问题。) +- Python 3.6+ +- PyTorch 1.3+ +- CUDA 9.2+ (如果您基于源文件编译 PyTorch, CUDA 9.0也可以使用) +- GCC 5+ +- [MMCV](https://mmcv.readthedocs.io/en/latest/#installation) + +可编译的 MMSegmentation 和 MMCV 版本如下所示,请对照对应版本安装以避免安装问题。 + +| MMSegmentation 版本 | MMCV 版本 | +|:-------------------:|:-------------------:| +| master | mmcv-full>=1.3.7, <1.4.0 | +| 0.14.1 | mmcv-full>=1.3.7, <1.4.0 | +| 0.14.0 | mmcv-full>=1.3.1, <1.4.0 | +| 0.13.0 | mmcv-full>=1.3.1, <1.4.0 | +| 0.12.0 | mmcv-full>=1.1.4, <1.4.0 | +| 0.11.0 | mmcv-full>=1.1.4, <1.3.0 | +| 0.10.0 | mmcv-full>=1.1.4, <1.3.0 | +| 0.9.0 | mmcv-full>=1.1.4, <1.3.0 | +| 0.8.0 | mmcv-full>=1.1.4, <1.2.0 | +| 0.7.0 | mmcv-full>=1.1.2, <1.2.0 | +| 0.6.0 | mmcv-full>=1.1.2, <1.2.0 | + +注意: 如果您已经安装好 mmcv, 您首先需要运行 `pip uninstall mmcv`。如果 mmcv 和 mmcv-full 同时被安装,会报错 `ModuleNotFoundError`。 + +## 安装 + +a. 创建一个 conda 虚拟环境并激活它。 + +```shell +conda create -n open-mmlab python=3.7 -y +conda activate open-mmlab + +``` + +b. 按照[官方教程](https://pytorch.org/) 安装 PyTorch 和 totchvision。 +这里我们使用 PyTorch1.6.0 和 CUDA10.1。 +您也可以切换至其他版本。 + +```shell +conda install pytorch=1.6.0 torchvision cudatoolkit=10.1 -c pytorch +``` + +c. 按照 [官方教程](https://mmcv.readthedocs.io/en/latest/#installation) 安装 [MMCV](https://mmcv.readthedocs.io/en/latest/) 。 +`mmcv` 或 `mmcv-full` 和 MMSegmentation 均兼容,但对于 CCNet 和 PSANet,`mmcv-full` 里的 CUDA 运算是必须的。 + +**在 Linux 下安装 mmcv:** + +通过运行 + +```shell +pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.5.0/index.html +``` + +可以安装好 mmcv-full (PyTorch 1.5 和 CUDA 10.1) 版本。 +其他 PyTorch 和 CUDA 版本的 MMCV 安装请参照[这里](https://mmcv.readthedocs.io/en/latest/#install-with-pip) + +**在 Windows 下安装 mmcv (有风险):** + +对于 Windows, MMCV 的安装需要本地 C++ 编译工具, 例如 cl.exe. 请添加编译工具至 %PATH%. + +如果您已经在电脑上安装好Windows SDK 和 Visual Studio,cl.exe 的一个典型路径看起来如下: + +```shell +C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.26.28801\bin\Hostx86\x64 +``` + +或者您需要从网上下载 cl 编译工具并安装至路径。 + +随后,从 github 克隆 mmcv 并通过 pip 安装: + +```shell +git clone https://github.com/open-mmlab/mmcv.git +cd mmcv +pip install -e . +``` + +或直接: + +```shell +pip install mmcv +``` + +当前,mmcv-full 并不完全在 windows 上支持。 + +d. 安装 MMSegmentation. + +```shell +pip install mmsegmentation # 安装最新版本 +``` + +或者 + +```shell +pip install git+https://github.com/open-mmlab/mmsegmentation.git # 安装 master 分支 +``` + +此外,如果您想安装 `dev` 模式的 MMSegmentation, 运行如下命令: + +```shell +git clone https://github.com/open-mmlab/mmsegmentation.git +cd mmsegmentation +pip install -e . # 或者 "python setup.py develop" +``` + +注意: + +1. 当在 windows 下训练和测试模型时,请确保路径下所有的'\\' 被替换成 '/'。在 python 代码里可以使用`.replace('\\', '/')`处理路径的字符串。 +2. `version+git_hash` 也将被保存进 meta 训练模型里,即0.5.0+c415a2e。 +3. 当 MMsegmentation 以 `dev` 模式被安装时,本地对代码的修改将不需要重新安装即可产生作用。 +4. 如果您想使用 `opencv-python-headless` 替换 `opencv-python`,您可以在安装 MMCV 前安装它。 +5. 一些依赖项是可选的。简单的运行 `pip install -e .` 将仅安装最必要的一些依赖。为了使用可选的依赖项如`cityscapessripts`,要么手动使用 `pip install -r requirements/optional.txt` 安装,要么专门从pip下安装(即 `pip install -e .[optional]`, 其中选项可设置为 `all`, `tests`, `build`, 和 `optional`). + +### 完成的安装脚本 + +#### Linux + +这里便是一个完整安装 MMSegmentation 的脚本,使用 conda 并链接了数据集的路径(以您的数据集路径为 $DATA_ROOT 来安装)。 + +```shell +conda create -n open-mmlab python=3.7 -y +conda activate open-mmlab + +conda install pytorch=1.6.0 torchvision cudatoolkit=10.1 -c pytorch +pip install mmcv-full==latest+torch1.5.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html +git clone https://github.com/open-mmlab/mmsegmentation.git +cd mmsegmentation +pip install -e . # 或者 "python setup.py develop" + +mkdir data +ln -s $DATA_ROOT data +``` + +#### Windows(有风险) + +这里便是一个完整安装 MMSegmentation 的脚本,使用 conda 并链接了数据集的路径(以您的数据集路径为 %DATA_ROOT% 来安装)。注意:它必须是一个绝对路径。 + +```shell +conda create -n open-mmlab python=3.7 -y +conda activate open-mmlab + +conda install pytorch=1.6.0 torchvision cudatoolkit=10.1 -c pytorch +set PATH=full\path\to\your\cpp\compiler;%PATH% +pip install mmcv + +git clone https://github.com/open-mmlab/mmsegmentation.git +cd mmsegmentation +pip install -e . # 或者 "python setup.py develop" + +mklink /D data %DATA_ROOT% +``` + +#### 使用多版本 MMSegmentation 进行开发 + +训练和测试脚本已经修改了 `PYTHONPATH` 来确保使用当前路径的MMSegmentation。 + +为了使用当前环境默认安装的 MMSegmentation 而不是正在工作的 MMSegmentation,您可以在那些脚本里移除下面的内容: + +```shell +PYTHONPATH="$(dirname $0)/..":$PYTHONPATH +``` + +## 验证 + +为了验证 MMSegmentation 和它所需要的环境是否正确安装,我们可以使用样例 python 代码来初始化一个 segmentor 并推理一张 demo 图像。 + +```python +from mmseg.apis import inference_segmentor, init_segmentor +import mmcv + +config_file = 'configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py' +checkpoint_file = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth' + +# 从一个 config 配置文件和 checkpoint 文件里创建分割模型 +model = init_segmentor(config_file, checkpoint_file, device='cuda:0') + +# 测试一张样例图片并得到结果 +img = 'test.jpg' # 或者 img = mmcv.imread(img), 这将只加载图像一次. +result = inference_segmentor(model, img) +# 在新的窗口里可视化结果 +model.show_result(img, result, show=True) +# 或者保存图片文件的可视化结果 +# 您可以改变 segmentation map 的不透明度(opacity),在(0, 1]之间。 +model.show_result(img, result, out_file='result.jpg', opacity=0.5) + +# 测试一个视频并得到分割结果 +video = mmcv.VideoReader('video.mp4') +for frame in video: + result = inference_segmentor(model, frame) + model.show_result(frame, result, wait_time=1) +``` + +当您完成 MMSegmentation 的安装时,上述代码应该可以成功运行。 + +我们还提供一个 demo 脚本去可视化单张图片 + +```shell +python demo/image_demo.py ${IMAGE_FILE} ${CONFIG_FILE} ${CHECKPOINT_FILE} [--device ${DEVICE_NAME}] [--palette-thr ${PALETTE}] +``` + +样例: + +```shell +python demo/image_demo.py demo/demo.jpg configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \ + checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth --device cuda:0 --palette cityscapes +``` + +推理的 demo 文档可在此查询:[demo/inference_demo.ipynb](../demo/inference_demo.ipynb). diff --git a/docs/imgs/qq_group_qrcode.jpg b/docs_zh-CN/imgs/qq_group_qrcode.jpg similarity index 100% rename from docs/imgs/qq_group_qrcode.jpg rename to docs_zh-CN/imgs/qq_group_qrcode.jpg diff --git a/docs/imgs/zhihu_qrcode.jpg b/docs_zh-CN/imgs/zhihu_qrcode.jpg similarity index 100% rename from docs/imgs/zhihu_qrcode.jpg rename to docs_zh-CN/imgs/zhihu_qrcode.jpg diff --git a/docs_zh-CN/index.rst b/docs_zh-CN/index.rst new file mode 100644 index 0000000000..8df766213b --- /dev/null +++ b/docs_zh-CN/index.rst @@ -0,0 +1,62 @@ +欢迎来到 MMSegmenation 的文档! +======================================= + +.. toctree:: + :maxdepth: 2 + :caption: 开始你的第一步 + + get_started.md + +.. toctree:: + :maxdepth: 1 + :caption: 数据集准备 + + dataset_prepare.md + +.. toctree:: + :maxdepth: 1 + :caption: 模型库 + + model_zoo.md + modelzoo_statistics.md + +.. toctree:: + :maxdepth: 2 + :caption: 快速启动 + + train.md + inference.md + +.. toctree:: + :maxdepth: 2 + :caption: 教程 + + tutorials/index.rst + +.. toctree:: + :maxdepth: 2 + :caption: 实用工具与脚本 + + useful_tools.md + +.. toctree:: + :maxdepth: 2 + :caption: 说明 + + changelog.md + +.. toctree:: + :caption: 语言切换 + + switch_language.md + +.. toctree:: + :caption: 接口文档(英文) + + api.rst + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`search` diff --git a/docs_zh-CN/inference.md b/docs_zh-CN/inference.md new file mode 100644 index 0000000000..669ef7989b --- /dev/null +++ b/docs_zh-CN/inference.md @@ -0,0 +1,99 @@ +## 使用预训练模型推理 + +我们提供测试脚本来评估完整数据集(Cityscapes, PASCAL VOC, ADE20k 等) 上的结果,同时为了使其他项目的整合更容易,也提供一些高级 API。 + +### 测试一个数据集 + +- 单卡 GPU +- 单节点多卡 GPU +- 多节点 + +您可以使用以下命令来测试一个数据集。 + +```shell +# 单卡 GPU 测试 +python tools/test.py ${配置文件} ${检查点文件} [--out ${结果文件}] [--eval ${评估指标}] [--show] + +# 多卡GPU 测试 +./tools/dist_test.sh ${配置文件} ${检查点文件} ${GPU数目} [--out ${结果文件}] [--eval ${评估指标}] +``` + +可选参数: + +- `RESULT_FILE`: pickle 格式的输出结果的文件名,如果不专门指定,结果将不会被专门保存成文件。 +- `EVAL_METRICS`: 在结果里将被评估的指标。这主要取决于数据集, `mIoU` 对于所有数据集都可获得,像 Cityscapes 数据集可以通过 `cityscapes` 命令来专门评估,就像标准的 `mIoU`一样。 +- `--show`: 如果被指定,分割结果将会在一张图像里画出来并且在另一个窗口展示。它仅仅是用来调试与可视化,并且仅针对单卡 GPU 测试。请确认 GUI 在您的环境里可用,否则您也许会遇到报错 `cannot connect to X server` +- `--show-dir`: 如果被指定,分割结果将会在一张图像里画出来并且保存在指定文件夹里。它仅仅是用来调试与可视化,并且仅针对单卡GPU测试。使用该参数时,您的环境不需要 GUI。 +- `--eval-options`: 评估时的可选参数,当设置 `efficient_test=True` 时,它将会保存中间结果至本地文件里以节约 CPU 内存。请确认您本地硬盘有足够的存储空间(大于20GB)。 + +例子: + +假设您已经下载检查点文件至文件夹 `checkpoints/` 里。 + +1. 测试 PSPNet 并可视化结果。按下任何键会进行到下一张图。 + + ```shell + python tools/test.py configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \ + checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth \ + --show + ``` + +2. 测试 PSPNet 并保存画出的图以便于之后的可视化。 + + ```shell + python tools/test.py configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \ + checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth \ + --show-dir psp_r50_512x1024_40ki_cityscapes_results + ``` + +3. 在数据集 PASCAL VOC (不保存测试结果) 上测试 PSPNet 并评估 mIoU。 + + ```shell + python tools/test.py configs/pspnet/pspnet_r50-d8_512x1024_20k_voc12aug.py \ + checkpoints/pspnet_r50-d8_512x1024_20k_voc12aug_20200605_003338-c57ef100.pth \ + --eval mAP + ``` + +4. 使用4卡 GPU 测试 PSPNet,并且在标准 mIoU 和 cityscapes 指标里评估模型。 + + ```shell + ./tools/dist_test.sh configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \ + checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth \ + 4 --out results.pkl --eval mIoU cityscapes + ``` + + 注意:在 cityscapes mIoU 和我们的 mIoU 指标会有一些差异 (~0.1%) 。因为 cityscapes 默认是根据类别样本数的多少进行加权平均,而我们对所有的数据集都是采取直接平均的方法来得到 mIoU。 + +5. 在 cityscapes 数据集上4卡 GPU 测试 PSPNet, 并生成 png 文件以便提交给官方评估服务器。 + + 首先,在配置文件里添加内容: `configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py`, + + ```python + data = dict( + test=dict( + img_dir='leftImg8bit/test', + ann_dir='gtFine/test')) + ``` + + 随后,进行测试。 + + ```shell + ./tools/dist_test.sh configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \ + checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth \ + 4 --format-only --eval-options "imgfile_prefix=./pspnet_test_results" + ``` + + 您会在文件夹 `./pspnet_test_results` 里得到生成的 png 文件。 + 您也许可以运行 `zip -r results.zip pspnet_test_results/` 并提交 zip 文件给 [evaluation server](https://www.cityscapes-dataset.com/submit/)。 + +6. 在 Cityscapes 数据集上使用 CPU 高效内存选项来测试 DeeplabV3+ `mIoU` 指标 (没有保存测试结果)。 + + ```shell + python tools/test.py \ + configs/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py \ + deeplabv3plus_r18-d8_512x1024_80k_cityscapes_20201226_080942-cff257fe.pth \ + --eval-options efficient_test=True \ + --eval mIoU + ``` + + 使用 ```pmap``` 可查看 CPU 内存情况, ```efficient_test=True``` 会使用约 2.25GB 的 CPU 内存, ```efficient_test=False``` 会使用约 11.06GB 的 CPU 内存。 这个可选参数可以节约很多 CPU 内存。 diff --git a/docs_zh-CN/make.bat b/docs_zh-CN/make.bat new file mode 100644 index 0000000000..922152e96a --- /dev/null +++ b/docs_zh-CN/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs_zh-CN/model_zoo.md b/docs_zh-CN/model_zoo.md new file mode 100644 index 0000000000..56fb663a23 --- /dev/null +++ b/docs_zh-CN/model_zoo.md @@ -0,0 +1,152 @@ +# 标准与模型库 + +## 共同设定 + +* 我们默认使用 4 卡分布式训练 +* 所有 PyTorch 风格的 ImageNet 预训练网络由我们自己训练,和 [论文](https://arxiv.org/pdf/1812.01187.pdf) 保持一致。 + 我们的 ResNet 网络是基于 ResNetV1c 的变种,在这里输入层的 7x7 卷积被 3个 3x3 取代。 +* 为了在不同的硬件上保持一致,我们以 `torch.cuda.max_memory_allocated()` 的最大值作为 GPU 占用率,同时设置 `torch.backends.cudnn.benchmark=False`。 + 注意,这通常比 `nvidia-smi` 显示的要少。 +* 我们以网络 forward 和后处理的时间加和作为推理时间,除去数据加载时间。我们使用脚本 `tools/benchmark.py` 来获取推理时间,它在 `torch.backends.cudnn.benchmark=False` 的设定下,计算 200 张图片的平均推理时间。 +* 在框架中,有两种推理模式。 + * `slide` 模式(滑动模式):测试的配置文件字段 `test_cfg` 会是 `dict(mode='slide', crop_size=(769, 769), stride=(513, 513))`. + 在这个模式下,从原图中裁剪多个小图分别输入网络中进行推理。小图的大小和小图之间的距离由 `crop_size` 和 `stride` 决定,重合区域会进行平均。 + * `whole` 模式 (全图模式):测试的配置文件字段 `test_cfg` 会是 `dict(mode='whole')`. 在这个模式下,全图会被直接输入到网络中进行推理。 + 对于 769x769 下训练的模型,我们默认使用 `slide` 进行推理,其余模型用 `whole` 进行推理。 +* 对于输入大小为 8x+1 (比如769),我们使用 `align_corners=True`。其余情况,对于输入大小为 8x+1 (比如 512,1024),我们使用 `align_corners=False`。 + +## 基线 + +### FCN + +请参考 [FCN](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn) for details. + +### PSPNet + +请参考 [PSPNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet) for details. + +### DeepLabV3 + +请参考 [DeepLabV3](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3) for details. + +### PSANet + +请参考 [PSANet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/psanet) for details. + +### DeepLabV3+ + +请参考 [DeepLabV3+](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus) for details. + +### UPerNet + +请参考 [UPerNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/upernet) for details. + +### NonLocal Net + +请参考 [NonLocal Net](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/nlnet) for details. + +### EncNet + +请参考 [EncNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet) for details. + +### CCNet + +请参考 [CCNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ccnet) for details. + +### DANet + +请参考 [DANet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/danet) for details. + +### APCNet + +请参考 [APCNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/apcnet) for details. + +### HRNet + +请参考 [HRNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet) for details. + +### GCNet + +请参考 [GCNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/gcnet) for details. + +### DMNet + +请参考 [DMNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet) for details. + +### ANN + +请参考 [ANN](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ann) for details. + +### OCRNet + +请参考 [OCRNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet) for details. + +### Fast-SCNN + +请参考 [Fast-SCNN](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fastscnn) for details. + +### ResNeSt + +请参考 [ResNeSt](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/resnest) for details. + +### Semantic FPN + +请参考 [Semantic FPN](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/semfpn) for details. + +### PointRend + +请参考 [PointRend](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/point_rend) for details. + +### MobileNetV2 + +请参考 [MobileNetV2](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/mobilenet_v2) for details. + +### MobileNetV3 + +请参考 [MobileNetV3](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/mobilenet_v3) for details. + +### EMANet + +请参考 [EMANet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/emanet) for details. + +### DNLNet + +请参考 [DNLNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dnlnet) for details. + +### CGNet + +请参考 [CGNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/cgnet) for details. + +### Mixed Precision (FP16) Training + +Please refer [Mixed Precision (FP16) Training](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/README.md) for details. + +## 速度标定 + +### 硬件 + +* 8 NVIDIA Tesla V100 (32G) GPUs +* Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz + +### 软件环境 + +* Python 3.7 +* PyTorch 1.5 +* CUDA 10.1 +* CUDNN 7.6.03 +* NCCL 2.4.08 + +### 训练速度 + +为了公平比较,我们全部使用 ResNet-101V1c 进行标定。输入大小为 1024x512,批量样本数为 2。 + +训练速度如下表,指标为每次迭代的时间,以秒为单位,越低越快。 + +| Implementation | PSPNet (s/iter) | DeepLabV3+ (s/iter) | +|----------------|-----------------|---------------------| +| [MMSegmentation](https://github.com/open-mmlab/mmsegmentation) | **0.83** | **0.85** | +| [SegmenTron](https://github.com/LikeLy-Journey/SegmenTron) | 0.84 | 0.85 | +| [CASILVision](https://github.com/CSAILVision/semantic-segmentation-pytorch) | 1.15 | N/A | +| [vedaseg](https://github.com/Media-Smart/vedaseg) | 0.95 | 1.25 | + +注意:DeepLabV3+ 的输出步长为 8。 diff --git a/docs_zh-CN/stat.py b/docs_zh-CN/stat.py new file mode 100755 index 0000000000..dc7c90f411 --- /dev/null +++ b/docs_zh-CN/stat.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python +import functools as func +import glob +import os.path as osp +import re + +import numpy as np + +url_prefix = 'https://github.com/open-mmlab/mmsegmentation/blob/master/' + +files = sorted(glob.glob('../configs/*/README.md')) + +stats = [] +titles = [] +num_ckpts = 0 + +for f in files: + url = osp.dirname(f.replace('../', url_prefix)) + + with open(f, 'r') as content_file: + content = content_file.read() + + title = content.split('\n')[0].replace('#', '').strip() + ckpts = set(x.lower().strip() + for x in re.findall(r'https?://download.*\.pth', content) + if 'mmsegmentation' in x) + if len(ckpts) == 0: + continue + + _papertype = [ + x for x in re.findall(r'', content) + ] + assert len(_papertype) > 0 + papertype = _papertype[0] + + paper = set([(papertype, title)]) + + titles.append(title) + num_ckpts += len(ckpts) + statsmsg = f""" +\t* [{papertype}] [{title}]({url}) ({len(ckpts)} ckpts) +""" + stats.append((paper, ckpts, statsmsg)) + +allpapers = func.reduce(lambda a, b: a.union(b), [p for p, _, _ in stats]) +msglist = '\n'.join(x for _, _, x in stats) + +papertypes, papercounts = np.unique([t for t, _ in allpapers], + return_counts=True) +countstr = '\n'.join( + [f' - {t}: {c}' for t, c in zip(papertypes, papercounts)]) + +modelzoo = f""" +# 模型库统计数据 + +* 论文数量: {len(set(titles))} +{countstr} + +* 模型数量: {num_ckpts} +{msglist} +""" + +with open('modelzoo_statistics.md', 'w') as f: + f.write(modelzoo) diff --git a/docs_zh-CN/switch_language.md b/docs_zh-CN/switch_language.md new file mode 100644 index 0000000000..f58efc42be --- /dev/null +++ b/docs_zh-CN/switch_language.md @@ -0,0 +1,3 @@ +## English + +## 简体中文 diff --git a/docs_zh-CN/train.md b/docs_zh-CN/train.md new file mode 100644 index 0000000000..52fd9cffdf --- /dev/null +++ b/docs_zh-CN/train.md @@ -0,0 +1,82 @@ +## 训练一个模型 + +MMSegmentation 可以执行分布式训练和非分布式训练,分别使用 `MMDistributedDataParallel` 和 `MMDataParallel` 命令。 + +所有的输出(日志 log 和检查点 checkpoints )将被保存到工作路径文件夹里,它可以通过配置文件里的 `work_dir` 指定。 + +在一定迭代轮次后,我们默认在验证集上评估模型表现。您可以在训练配置文件中添加间隔参数来改变评估间隔。 + +```python +evaluation = dict(interval=4000) # 每4000 iterations 评估一次模型的性能 +``` + +**\*Important\***: 在配置文件里的默认学习率是针对4卡 GPU 和2张图/GPU (此时 batchsize = 4x2 = 8)来设置的。 +同样,您也可以使用8卡 GPU 和 1张图/GPU 的设置,因为所有的模型均使用 cross-GPU 的 SyncBN 模式。 + +我们可以在训练速度和 GPU 显存之间做平衡。当模型或者 Batch Size 比较大的时,可以传递`--options model.backbone.with_cp=True` ,使用 `with_cp` 来节省显存,但是速度会更慢,因为原先使用 `ith_cp` 时,是逐层反向传播(Back Propagation, BP),不会保存所有的梯度。 + +### 使用单卡 GPU 训练 + +```shell +python tools/train.py ${配置文件} [可选参数] +``` + +如果您想在命令里定义工作文件夹路径,您可以添加一个参数`--work-dir ${YOUR_WORK_DIR}`。 + +### 使用多卡 GPU 训练 + +```shell +./tools/dist_train.sh ${配置文件} ${GPU 个数} [可选参数] +``` + +可选参数可以为: + +- `--no-validate` (**不推荐**): 训练时代码库默认会在每 k 轮迭代后在验证集上进行评估,如果不需评估使用命令 `--no-validate`。 +- `--work-dir ${工作路径}`: 在配置文件里重写工作路径文件夹。 +- `--resume-from ${检查点文件}`: 继续使用先前的检查点 (checkpoint) 文件(可以继续训练过程)。 +- `--load-from ${检查点文件}`: 从一个检查点 (checkpoint) 文件里加载权重(对另一个任务进行精调)。 + +`resume-from` 和 `load-from` 的区别: + +- `resume-from` 加载出模型权重和优化器状态包括迭代轮数等。 +- `load-from` 仅加载模型权重,从第0轮开始训练。 + +### 使用多个机器训练 + +如果您在一个集群上以[slurm](https://slurm.schedmd.com/) 运行 MMSegmentation, +您可以使用脚本 `slurm_train.sh`(这个脚本同样支持单个机器的训练)。 + +```shell +[GPUS=${GPU 数量}] ./tools/slurm_train.sh ${分区} ${任务名称} ${配置文件} --work-dir ${工作路径} +``` + +这里是在 dev 分区里使用16块 GPU 训练 PSPNet 的例子。 + +```shell +GPUS=16 ./tools/slurm_train.sh dev pspr50 configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py /nfs/xxxx/psp_r50_512x1024_40ki_cityscapes +``` + +您可以查看 [slurm_train.sh](../tools/slurm_train.sh) 以熟悉全部的参数与环境变量。 + +如果您多个机器已经有以太网连接, 您可以参考 PyTorch +[launch utility](https://pytorch.org/docs/stable/distributed_deprecated.html#launch-utility) 。 +若您没有像 InfiniBand 这样高速的网络连接,多机器训练通常会比较慢。 + +### 在单个机器上启动多个任务 + +如果您在单个机器上启动多个任务,例如在8卡 GPU 的一个机器上有2个4卡 GPU 的训练任务,您需要特别对每个任务指定不同的端口(默认为29500)来避免通讯冲突。 +否则,将会有报错信息 `RuntimeError: Address already in use`。 + +如果您使用命令 `dist_train.sh` 来启动一个训练任务,您可以在命令行的用环境变量 `PORT` 设置端口。 + +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 PORT=29500 ./tools/dist_train.sh ${配置文件} 4 +CUDA_VISIBLE_DEVICES=4,5,6,7 PORT=29501 ./tools/dist_train.sh ${配置文件} 4 +``` + +如果您使用命令 `slurm_train.sh` 来启动训练任务,您可以在命令行的用环境变量 `MASTER_PORT` 设置端口。 + +```shell +MASTER_PORT=29500 ./tools/slurm_train.sh ${分区} ${任务名称} ${配置文件} +MASTER_PORT=29501 ./tools/slurm_train.sh ${分区} ${任务名称} ${配置文件} +``` diff --git a/docs_zh-CN/tutorials/config.md b/docs_zh-CN/tutorials/config.md new file mode 100644 index 0000000000..91ffaab5ef --- /dev/null +++ b/docs_zh-CN/tutorials/config.md @@ -0,0 +1,377 @@ +# 教程 1: 学习配置文件 + +我们整合了模块和继承设计到我们的配置里,这便于做很多实验。如果您想查看配置文件,您可以运行 `python tools/print_config.py /PATH/TO/CONFIG` 去查看完整的配置文件。您还可以传递参数 +`--options xxx.yyy=zzz` 去查看更新的配置。 + +## 配置文件的结构 + +在 `config/_base_` 文件夹下面有4种基本组件类型: 数据集(dataset),模型(model),训练策略(schedule)和运行时的默认设置(default runtime)。许多方法都可以方便地通过组合这些组件进行实现。 +这样,像 DeepLabV3, PSPNet 这样的模型可以容易地被构造。被来自 `_base_` 下的组件来构建的配置叫做 _原始配置 (primitive)_。 + +对于所有在同一个文件夹下的配置文件,推荐**只有一个**对应的**原始配置**文件。所有其他的配置文件都应该继承自这个**原始配置**文件。这样就能保证配置文件的最大继承深度为 3。 + +为了便于理解,我们推荐社区贡献者继承已有的方法配置文件。 +例如,如果一些修改是基于 DeepLabV3,使用者首先首先应该通过指定 `_base_ = ../deeplabv3/deeplabv3_r50_512x1024_40ki_cityscapes.py`来继承基础 DeepLabV3 结构,再去修改配置文件里其他内容以完成继承。 + +如果您正在构建一个完整的新模型,它完全没有和已有的方法共享一些结构,您可能需要在 `configs` 下面创建一个文件夹 `xxxnet`。 +更详细的文档,请参照 [mmcv](https://mmcv.readthedocs.io/en/latest/utils.html#config) 。 + +## 配置文件命名风格 + +我们按照下面的风格去命名配置文件。社区贡献者被建议使用同样的风格。 + +``` +{model}_{backbone}_[misc]_[gpu x batch_per_gpu]_{resolution}_{schedule}_{dataset} +``` + +`{xxx}` 是被要求的文件 `[yyy]` 是可选的。 + +- `{model}`: 模型种类,例如 `psp`, `deeplabv3` 等等。 +- `{backbone}`: 主干网络种类,例如 `r50` (ResNet-50), `x101` (ResNeXt-101)。 +- `[misc]`: 模型中各式各样的设置/插件,例如 `dconv`, `gcb`, `attention`, `mstrain`。 +- `[gpu x batch_per_gpu]`: GPU数目 和每个 GPU 的样本数, 默认为 `8x2` 。 +- `{schedule}`: 训练方案, `20ki` 意思是 20k 迭代轮数. +- `{dataset}`: 数据集,如 `cityscapes`, `voc12aug`, `ade`。 + +## PSPNet 的一个例子 + +为了帮助使用者熟悉这个流行的语义分割框架的完整配置文件和模块,我们在下面对使用 ResNet50V1c 的 PSPNet 的配置文件做了详细的注释说明。 +更多的详细使用和其他模块的替代项请参考 API 文档。 + +```python +norm_cfg = dict(type='SyncBN', requires_grad=True) # 分割框架通常使用 SyncBN +model = dict( + type='EncoderDecoder', # 分割器(segmentor)的名字 + pretrained='open-mmlab://resnet50_v1c', # 将被加载的 ImageNet 预训练主干网络 + backbone=dict( + type='ResNetV1c', # 主干网络的类别。 可用选项请参考 mmseg/backbone/resnet.py + depth=50, # 主干网络的深度。通常为 50 和 101。 + num_stages=4, # 主干网络状态(stages)的数目,这些状态产生的特征图作为后续的 head 的输入。 + out_indices=(0, 1, 2, 3), # 每个状态产生的特征图输出的索引。 + dilations=(1, 1, 2, 4), # 每一层(layer)的空心率(dilation rate)。 + strides=(1, 2, 1, 1), # 每一层(layer)的步长(stride)。 + norm_cfg=dict( # 归一化层(norm layer)的配置项。 + type='SyncBN', # 归一化层的类别。通常是 SyncBN。 + requires_grad=True), # 是否训练归一化里的 gamma 和 beta。 + norm_eval=False, # 是否冻结 BN 里的统计项。 + style='pytorch', # 主干网络的风格,'pytorch' 意思是步长为2的层为 3x3 卷积, 'caffe' 意思是步长为2的层为 1x1 卷积。 + contract_dilation=True), # 当空洞 > 1, 是否压缩第一个空洞层。 + decode_head=dict( + type='PSPHead', # 解码头(decode head)的类别。 可用选项请参考 mmseg/models/decode_heads。 + in_channels=2048, # 解码头的输入通道数。 + in_index=3, # 被选择的特征图(feature map)的索引。 + channels=512, # 解码头中间态(intermediate)的通道数。 + pool_scales=(1, 2, 3, 6), # PSPHead 平均池化(avg pooling)的规模(scales)。 细节请参考文章内容。 + dropout_ratio=0.1, # 进入最后分类层(classification layer)之前的 dropout 比例。 + num_classes=19, # 分割前景的种类数目。 通常情况下,cityscapes 为19,VOC为21,ADE20k 为150。 + norm_cfg=dict(type='SyncBN', requires_grad=True), # 归一化层的配置项。 + align_corners=False, # 解码里调整大小(resize)的 align_corners 参数。 + loss_decode=dict( # 解码头(decode_head)里的损失函数的配置项。 + type='CrossEntropyLoss', # 在分割里使用的损失函数的类别。 + use_sigmoid=False, # 在分割里是否使用 sigmoid 激活。 + loss_weight=1.0)), # 解码头里损失的权重。 + auxiliary_head=dict( + type='FCNHead', # 辅助头(auxiliary head)的种类。可用选项请参考 mmseg/models/decode_heads。 + in_channels=1024, # 辅助头的输入通道数。 + in_index=2, # 被选择的特征图(feature map)的索引。 + channels=256, # 辅助头中间态(intermediate)的通道数。 + num_convs=1, # FCNHead 里卷积(convs)的数目. 辅助头里通常为1。 + concat_input=False, # 在分类层(classification layer)之前是否连接(concat)输入和卷积的输出。 + dropout_ratio=0.1, # 进入最后分类层(classification layer)之前的 dropout 比例。 + num_classes=19, # 分割前景的种类数目。 通常情况下,cityscapes 为19,VOC为21,ADE20k 为150。 + norm_cfg=dict(type='SyncBN', requires_grad=True), # 归一化层的配置项。 + align_corners=False, # 解码里调整大小(resize)的 align_corners 参数。 + loss_decode=dict( # 辅助头(auxiliary head)里的损失函数的配置项。 + type='CrossEntropyLoss', # 在分割里使用的损失函数的类别。 + use_sigmoid=False, # 在分割里是否使用 sigmoid 激活。 + loss_weight=0.4))) # 辅助头里损失的权重。默认设置为0.4。 +train_cfg = dict() # train_cfg 当前仅是一个占位符。 +test_cfg = dict(mode='whole') # 测试模式, 选项是 'whole' 和 'sliding'. 'whole': 整张图像全卷积(fully-convolutional)测试。 'sliding': 图像上做滑动裁剪窗口(sliding crop window)。 +dataset_type = 'CityscapesDataset' # 数据集类型,这将被用来定义数据集。 +data_root = 'data/cityscapes/' # 数据的根路径。 +img_norm_cfg = dict( # 图像归一化配置,用来归一化输入的图像。 + mean=[123.675, 116.28, 103.53], # 预训练里用于预训练主干网络模型的平均值。 + std=[58.395, 57.12, 57.375], # 预训练里用于预训练主干网络模型的标准差。 + to_rgb=True) # 预训练里用于预训练主干网络的图像的通道顺序。 +crop_size = (512, 1024) # 训练时的裁剪大小 +train_pipeline = [ #训练流程 + dict(type='LoadImageFromFile'), # 第1个流程,从文件路径里加载图像。 + dict(type='LoadAnnotations'), # 第2个流程,对于当前图像,加载它的注释信息。 + dict(type='Resize', # 变化图像和其注释大小的数据增广的流程。 + img_scale=(2048, 1024), # 图像的最大规模。 + ratio_range=(0.5, 2.0)), # 数据增广的比例范围。 + dict(type='RandomCrop', # 随机裁剪当前图像和其注释大小的数据增广的流程。 + crop_size=(512, 1024), # 随机裁剪图像生成 patch 的大小。 + cat_max_ratio=0.75), # 单个类别可以填充的最大区域的比例。 + dict( + type='RandomFlip', # 翻转图像和其注释大小的数据增广的流程。 + flip_ratio=0.5), # 翻转图像的概率 + dict(type='PhotoMetricDistortion'), # 光学上使用一些方法扭曲当前图像和其注释的数据增广的流程。 + dict( + type='Normalize', # 归一化当前图像的数据增广的流程。 + mean=[123.675, 116.28, 103.53], # 这些键与 img_norm_cfg 一致,因为 img_norm_cfg 被 + std=[58.395, 57.12, 57.375], # 用作参数。 + to_rgb=True), + dict(type='Pad', # 填充当前图像到指定大小的数据增广的流程。 + size=(512, 1024), # 填充的图像大小。 + pad_val=0, # 图像的填充值。 + seg_pad_val=255), # 'gt_semantic_seg'的填充值。 + dict(type='DefaultFormatBundle'), # 流程里收集数据的默认格式捆。 + dict(type='Collect', # 决定数据里哪些键被传递到分割器里的流程。 + keys=['img', 'gt_semantic_seg']) +] +test_pipeline = [ + dict(type='LoadImageFromFile'), # 第1个流程,从文件路径里加载图像。 + dict( + type='MultiScaleFlipAug', # 封装测试时数据增广(test time augmentations)。 + img_scale=(2048, 1024), # 决定测试时可改变图像的最大规模。用于改变图像大小的流程。 + flip=False, # 测试时是否翻转图像。 + transforms=[ + dict(type='Resize', # 使用改变图像大小的数据增广。 + keep_ratio=True), # 是否保持宽和高的比例,这里的图像比例设置将覆盖上面的图像规模大小的设置。 + dict(type='RandomFlip'), # 考虑到 RandomFlip 已经被添加到流程里,当 flip=False 时它将不被使用。 + dict( + type='Normalize', # 归一化配置项,值来自 img_norm_cfg。 + mean=[123.675, 116.28, 103.53], + std=[58.395, 57.12, 57.375], + to_rgb=True), + dict(type='ImageToTensor', # 将图像转为张量 + keys=['img']), + dict(type='Collect', # 收集测试时必须的键的收集流程。 + keys=['img']) + ]) +] +data = dict( + samples_per_gpu=2, # 单个 GPU 的 Batch size + workers_per_gpu=2, # 单个 GPU 分配的数据加载线程数 + train=dict( # 训练数据集配置 + type='CityscapesDataset', # 数据集的类别, 细节参考自 mmseg/datasets/。 + data_root='data/cityscapes/', # 数据集的根目录。 + img_dir='leftImg8bit/train', # 数据集图像的文件夹。 + ann_dir='gtFine/train', # 数据集注释的文件夹。 + pipeline=[ # 流程, 由之前创建的 train_pipeline 传递进来。 + dict(type='LoadImageFromFile'), + dict(type='LoadAnnotations'), + dict( + type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)), + dict(type='RandomCrop', crop_size=(512, 1024), cat_max_ratio=0.75), + dict(type='RandomFlip', flip_ratio=0.5), + dict(type='PhotoMetricDistortion'), + dict( + type='Normalize', + mean=[123.675, 116.28, 103.53], + std=[58.395, 57.12, 57.375], + to_rgb=True), + dict(type='Pad', size=(512, 1024), pad_val=0, seg_pad_val=255), + dict(type='DefaultFormatBundle'), + dict(type='Collect', keys=['img', 'gt_semantic_seg']) + ]), + val=dict( # 验证数据集的配置 + type='CityscapesDataset', + data_root='data/cityscapes/', + img_dir='leftImg8bit/val', + ann_dir='gtFine/val', + pipeline=[ # 由之前创建的 test_pipeline 传递的流程。 + dict(type='LoadImageFromFile'), + dict( + type='MultiScaleFlipAug', + img_scale=(2048, 1024), + flip=False, + transforms=[ + dict(type='Resize', keep_ratio=True), + dict(type='RandomFlip'), + dict( + type='Normalize', + mean=[123.675, 116.28, 103.53], + std=[58.395, 57.12, 57.375], + to_rgb=True), + dict(type='ImageToTensor', keys=['img']), + dict(type='Collect', keys=['img']) + ]) + ]), + test=dict( + type='CityscapesDataset', + data_root='data/cityscapes/', + img_dir='leftImg8bit/val', + ann_dir='gtFine/val', + pipeline=[ + dict(type='LoadImageFromFile'), + dict( + type='MultiScaleFlipAug', + img_scale=(2048, 1024), + flip=False, + transforms=[ + dict(type='Resize', keep_ratio=True), + dict(type='RandomFlip'), + dict( + type='Normalize', + mean=[123.675, 116.28, 103.53], + std=[58.395, 57.12, 57.375], + to_rgb=True), + dict(type='ImageToTensor', keys=['img']), + dict(type='Collect', keys=['img']) + ]) + ])) +log_config = dict( # 注册日志钩 (register logger hook) 的配置文件。 + interval=50, # 打印日志的间隔 + hooks=[ + # dict(type='TensorboardLoggerHook') # 同样支持 Tensorboard 日志 + dict(type='TextLoggerHook', by_epoch=False) + ]) +dist_params = dict(backend='nccl') # 用于设置分布式训练的参数,端口也同样可被设置。 +log_level = 'INFO' # 日志的级别。 +load_from = None # 从一个给定路径里加载模型作为预训练模型,它并不会消耗训练时间。 +resume_from = None # 从给定路径里恢复检查点(checkpoints),训练模式将从检查点保存的轮次开始恢复训练。 +workflow = [('train', 1)] # runner 的工作流程。 [('train', 1)] 意思是只有一个工作流程而且工作流程 'train' 仅执行一次。根据 `runner.max_iters` 工作流程训练模型的迭代轮数为40000次。 +cudnn_benchmark = True # 是否是使用 cudnn_benchmark 去加速,它对于固定输入大小的可以提高训练速度。 +optimizer = dict( # 用于构建优化器的配置文件。支持 PyTorch 中的所有优化器,同时它们的参数与PyTorch里的优化器参数一致。 + type='SGD', # 优化器种类,更多细节可参考 https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/optimizer/default_constructor.py#L13。 + lr=0.01, # 优化器的学习率,参数的使用细节请参照对应的 PyTorch 文档。 + momentum=0.9, # 动量 (Momentum) + weight_decay=0.0005) # SGD 的衰减权重 (weight decay)。 +optimizer_config = dict() # 用于构建优化器钩 (optimizer hook) 的配置文件,执行细节请参考 https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/optimizer.py#L8。 +lr_config = dict( + policy='poly', # 调度流程的策略,同样支持 Step, CosineAnnealing, Cyclic 等. 请从 https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/lr_updater.py#L9 参考 LrUpdater 的细节。 + power=0.9, # 多项式衰减 (polynomial decay) 的幂。 + min_lr=0.0001, # 用来稳定训练的最小学习率。 + by_epoch=False) # 是否按照每个 epoch 去算学习率。 +runner = dict( + type='IterBasedRunner', # 将使用的 runner 的类别 (例如 IterBasedRunner 或 EpochBasedRunner)。 + max_iters=40000) # 全部迭代轮数大小,对于 EpochBasedRunner 使用 `max_epochs` 。 +checkpoint_config = dict( # 设置检查点钩子 (checkpoint hook) 的配置文件。执行时请参考 https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/checkpoint.py。 + by_epoch=False, # 是否按照每个 epoch 去算 runner。 + interval=4000) # 保存的间隔 +evaluation = dict( # 构建评估钩 (evaluation hook) 的配置文件。细节请参考 mmseg/core/evaulation/eval_hook.py。 + interval=4000, # 评估的间歇点 + metric='mIoU') # 评估的指标 + + +``` + +## FAQ + +### 忽略基础配置文件里的一些域内容。 + +有时,您也许会设置 `_delete_=True` 去忽略基础配置文件里的一些域内容。 +您也许可以参照 [mmcv](https://mmcv.readthedocs.io/en/latest/utils.html#inherit-from-base-config-with-ignored-fields) 来获得一些简单的指导。 + +在 MMSegmentation 里,例如为了改变 PSPNet 的主干网络的某些内容: + +```python +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + type='MaskRCNN', + pretrained='torchvision://resnet50', + backbone=dict( + type='ResNetV1c', + depth=50, + num_stages=4, + out_indices=(0, 1, 2, 3), + dilations=(1, 1, 2, 4), + strides=(1, 2, 1, 1), + norm_cfg=norm_cfg, + norm_eval=False, + style='pytorch', + contract_dilation=True), + decode_head=dict(...), + auxiliary_head=dict(...)) +``` + +`ResNet` 和 `HRNet` 使用不同的关键词去构建。 + +```python +_base_ = '../pspnet/psp_r50_512x1024_40ki_cityscpaes.py' +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + pretrained='open-mmlab://msra/hrnetv2_w32', + backbone=dict( + _delete_=True, + type='HRNet', + norm_cfg=norm_cfg, + extra=dict( + stage1=dict( + num_modules=1, + num_branches=1, + block='BOTTLENECK', + num_blocks=(4, ), + num_channels=(64, )), + stage2=dict( + num_modules=1, + num_branches=2, + block='BASIC', + num_blocks=(4, 4), + num_channels=(32, 64)), + stage3=dict( + num_modules=4, + num_branches=3, + block='BASIC', + num_blocks=(4, 4, 4), + num_channels=(32, 64, 128)), + stage4=dict( + num_modules=3, + num_branches=4, + block='BASIC', + num_blocks=(4, 4, 4, 4), + num_channels=(32, 64, 128, 256)))), + decode_head=dict(...), + auxiliary_head=dict(...)) +``` + +`_delete_=True` 将用新的键去替换 `backbone` 域内所有老的键。 + +### 使用配置文件里的中间变量 + +配置文件里会使用一些中间变量,例如数据集里的 `train_pipeline`/`test_pipeline`。 +需要注意的是,在子配置文件里修改中间变量时,使用者需要再次传递这些变量给对应的域。 +例如,我们想改变在训练或测试时,PSPNet 的多尺度策略 (multi scale strategy),`train_pipeline`/`test_pipeline` 是我们想要修改的中间变量。 + +```python +_base_ = '../pspnet/psp_r50_512x1024_40ki_cityscapes.py' +crop_size = (512, 1024) +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) +train_pipeline = [ + dict(type='LoadImageFromFile'), + dict(type='LoadAnnotations'), + dict(type='Resize', img_scale=(2048, 1024), ratio_range=(1.0, 2.0)), # 改成 [1., 2.] + dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='RandomFlip', flip_ratio=0.5), + dict(type='PhotoMetricDistortion'), + dict(type='Normalize', **img_norm_cfg), + dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255), + dict(type='DefaultFormatBundle'), + dict(type='Collect', keys=['img', 'gt_semantic_seg']), +] +test_pipeline = [ + dict(type='LoadImageFromFile'), + dict( + type='MultiScaleFlipAug', + img_scale=(2048, 1024), + img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75], # 改成多尺度测试 (multi scale testing)。 + flip=False, + transforms=[ + dict(type='Resize', keep_ratio=True), + dict(type='RandomFlip'), + dict(type='Normalize', **img_norm_cfg), + dict(type='ImageToTensor', keys=['img']), + dict(type='Collect', keys=['img']), + ]) +] +data = dict( + train=dict(pipeline=train_pipeline), + val=dict(pipeline=test_pipeline), + test=dict(pipeline=test_pipeline)) +``` + +我们首先定义新的 `train_pipeline`/`test_pipeline` 然后传递到 `data` 里。 + +同样的,如果我们想从 `SyncBN` 切换到 `BN` 或者 `MMSyncBN`,我们需要配置文件里的每一个 `norm_cfg`。 + +```python +_base_ = '../pspnet/psp_r50_512x1024_40ki_cityscpaes.py' +norm_cfg = dict(type='BN', requires_grad=True) +model = dict( + backbone=dict(norm_cfg=norm_cfg), + decode_head=dict(norm_cfg=norm_cfg), + auxiliary_head=dict(norm_cfg=norm_cfg)) +``` diff --git a/docs_zh-CN/tutorials/customize_datasets.md b/docs_zh-CN/tutorials/customize_datasets.md new file mode 100644 index 0000000000..fc4975a259 --- /dev/null +++ b/docs_zh-CN/tutorials/customize_datasets.md @@ -0,0 +1,173 @@ +# 教程 2: 自定义数据集 + +## 通过重新组织数据来定制数据集 + +最简单的方法是将您的数据集进行转化,并组织成文件夹的形式。 + +如下的文件结构就是一个例子。 + +```none +├── data +│ ├── my_dataset +│ │ ├── img_dir +│ │ │ ├── train +│ │ │ │ ├── xxx{img_suffix} +│ │ │ │ ├── yyy{img_suffix} +│ │ │ │ ├── zzz{img_suffix} +│ │ │ ├── val +│ │ ├── ann_dir +│ │ │ ├── train +│ │ │ │ ├── xxx{seg_map_suffix} +│ │ │ │ ├── yyy{seg_map_suffix} +│ │ │ │ ├── zzz{seg_map_suffix} +│ │ │ ├── val + +``` + +一个训练对将由 img_dir/ann_dir 里同样首缀的文件组成。 + +如果给定 `split` 参数,只有部分在 img_dir/ann_dir 里的文件会被加载。 +我们可以对被包括在 split 文本里的文件指定前缀。 + +除此以外,一个 split 文本如下所示: + +```none +xxx +zzz +``` + +只有 + +`data/my_dataset/img_dir/train/xxx{img_suffix}`, +`data/my_dataset/img_dir/train/zzz{img_suffix}`, +`data/my_dataset/ann_dir/train/xxx{seg_map_suffix}`, +`data/my_dataset/ann_dir/train/zzz{seg_map_suffix}` 将被加载。 + +注意:标注是跟图像同样的形状 (H, W),其中的像素值的范围是 `[0, num_classes - 1]`。 +您也可以使用 [pillow](https://pillow.readthedocs.io/en/stable/handbook/concepts.html#palette) 的 `'P'` 模式去创建包含颜色的标注。 + +## 通过混合数据去定制数据集 + +MMSegmentation 同样支持混合数据集去训练。 +当前它支持拼接 (concat) 和 重复 (repeat) 数据集。 + +### 重复数据集 + +我们使用 `RepeatDataset` 作为包装 (wrapper) 去重复数据集。 +例如,假设原始数据集是 `Dataset_A`,为了重复它,配置文件如下: + +```python +dataset_A_train = dict( + type='RepeatDataset', + times=N, + dataset=dict( # 这是 Dataset_A 数据集的原始配置 + type='Dataset_A', + ... + pipeline=train_pipeline + ) + ) +``` + +### 拼接数据集 + +有2种方式去拼接数据集。 + +1. 如果您想拼接的数据集是同样的类型,但有不同的标注文件, + 您可以按如下操作去拼接数据集的配置文件: + + 1. 您也许可以拼接两个标注文件夹 `ann_dir`。 + + ```python + dataset_A_train = dict( + type='Dataset_A', + img_dir = 'img_dir', + ann_dir = ['anno_dir_1', 'anno_dir_2'], + pipeline=train_pipeline + ) + ``` + + 2. 您也可以去拼接两个 `split` 文件列表。 + + ```python + dataset_A_train = dict( + type='Dataset_A', + img_dir = 'img_dir', + ann_dir = 'anno_dir', + split = ['split_1.txt', 'split_2.txt'], + pipeline=train_pipeline + ) + ``` + + 3. 您也可以同时拼接 `ann_dir` 文件夹和 `split` 文件列表。 + + ```python + dataset_A_train = dict( + type='Dataset_A', + img_dir = 'img_dir', + ann_dir = ['anno_dir_1', 'anno_dir_2'], + split = ['split_1.txt', 'split_2.txt'], + pipeline=train_pipeline + ) + ``` + + 在这样的情况下, `ann_dir_1` 和 `ann_dir_2` 分别对应于 `split_1.txt` 和 `split_2.txt`。 + +2. 如果您想拼接不同的数据集,您可以如下去拼接数据集的配置文件: + + ```python + dataset_A_train = dict() + dataset_B_train = dict() + + data = dict( + imgs_per_gpu=2, + workers_per_gpu=2, + train = [ + dataset_A_train, + dataset_B_train + ], + val = dataset_A_val, + test = dataset_A_test + ) + ``` + +一个更复杂的例子如下:分别重复 `Dataset_A` 和 `Dataset_B` N 次和 M 次,然后再去拼接重复后的数据集。 + +```python +dataset_A_train = dict( + type='RepeatDataset', + times=N, + dataset=dict( + type='Dataset_A', + ... + pipeline=train_pipeline + ) +) +dataset_A_val = dict( + ... + pipeline=test_pipeline +) +dataset_A_test = dict( + ... + pipeline=test_pipeline +) +dataset_B_train = dict( + type='RepeatDataset', + times=M, + dataset=dict( + type='Dataset_B', + ... + pipeline=train_pipeline + ) +) +data = dict( + imgs_per_gpu=2, + workers_per_gpu=2, + train = [ + dataset_A_train, + dataset_B_train + ], + val = dataset_A_val, + test = dataset_A_test +) + +``` diff --git a/docs_zh-CN/tutorials/customize_models.md b/docs_zh-CN/tutorials/customize_models.md new file mode 100644 index 0000000000..6d929dc22d --- /dev/null +++ b/docs_zh-CN/tutorials/customize_models.md @@ -0,0 +1,230 @@ +# 教程 4: 自定义模型 + +## 自定义优化器 (optimizer) + +假设您想增加一个新的叫 `MyOptimizer` 的优化器,它的参数分别为 `a`, `b`, 和 `c`。 +您首先需要在一个文件里实现这个新的优化器,例如在 `mmseg/core/optimizer/my_optimizer.py` 里面: + +```python +from mmcv.runner import OPTIMIZERS +from torch.optim import Optimizer + + +@OPTIMIZERS.register_module +class MyOptimizer(Optimizer): + + def __init__(self, a, b, c) + +``` + +然后增加这个模块到 `mmseg/core/optimizer/__init__.py` 里面,这样注册器 (registry) 将会发现这个新的模块并添加它: + +```python +from .my_optimizer import MyOptimizer +``` + +之后您可以在配置文件的 `optimizer` 域里使用 `MyOptimizer`, +如下所示,在配置文件里,优化器被 `optimizer` 域所定义: + +```python +optimizer = dict(type='SGD', lr=0.02, momentum=0.9, weight_decay=0.0001) +``` + +为了使用您自己的优化器,域可以被修改为: + +```python +optimizer = dict(type='MyOptimizer', a=a_value, b=b_value, c=c_value) +``` + +我们已经支持了 PyTorch 自带的全部优化器,唯一修改的地方是在配置文件里的 `optimizer` 域。例如,如果您想使用 `ADAM`,尽管数值表现会掉点,还是可以如下修改: + +```python +optimizer = dict(type='Adam', lr=0.0003, weight_decay=0.0001) +``` + +使用者可以直接按照 PyTorch [文档教程](https://pytorch.org/docs/stable/optim.html?highlight=optim#module-torch.optim) 去设置参数。 + +## 定制优化器的构造器 (optimizer constructor) + +对于优化,一些模型可能会有一些特别定义的参数,例如批归一化 (BatchNorm) 层里面的权重衰减 (weight decay)。 +使用者可以通过定制优化器的构造器来微调这些细粒度的优化器参数。 + +```python +from mmcv.utils import build_from_cfg + +from mmcv.runner import OPTIMIZER_BUILDERS +from .cocktail_optimizer import CocktailOptimizer + + +@OPTIMIZER_BUILDERS.register_module +class CocktailOptimizerConstructor(object): + + def __init__(self, optimizer_cfg, paramwise_cfg=None): + + def __call__(self, model): + + return my_optimizer + +``` + +## 开发和增加新的组件(Module) + +MMSegmentation 里主要有2种组件: + +- 主干网络 (backbone): 通常是卷积网络的堆叠,来做特征提取,例如 ResNet, HRNet。 +- 解码头 (decoder head): 用于语义分割图的解码的组件(得到分割结果)。 + +### 添加新的主干网络 + +这里我们以 MobileNet 为例,展示如何增加新的主干组件: + +1. 创建一个新的文件 `mmseg/models/backbones/mobilenet.py`. + +```python +import torch.nn as nn + +from ..registry import BACKBONES + + +@BACKBONES.register_module +class MobileNet(nn.Module): + + def __init__(self, arg1, arg2): + pass + + def forward(self, x): # should return a tuple + pass + + def init_weights(self, pretrained=None): + pass +``` + +2. 在 `mmseg/models/backbones/__init__.py` 里面导入模块。 + +```python +from .mobilenet import MobileNet +``` + +3. 在您的配置文件里使用它。 + +```python +model = dict( + ... + backbone=dict( + type='MobileNet', + arg1=xxx, + arg2=xxx), + ... +``` + +### 增加新的解码头 (decoder head)组件 + +在 MMSegmentation 里面,对于所有的分割头,我们提供一个基类解码头 [BaseDecodeHead](https://github.com/open-mmlab/mmsegmentation/blob/master/mmseg/models/decode_heads/decode_head.py) 。 +所有新建的解码头都应该继承它。这里我们以 [PSPNet](https://arxiv.org/abs/1612.01105) 为例, +展示如何开发和增加一个新的解码头组件: + +首先,在 `mmseg/models/decode_heads/psp_head.py` 里添加一个新的解码头。 +PSPNet 中实现了一个语义分割的解码头。为了实现一个解码头,我们只需要在新构造的解码头中实现如下的3个函数: + +```python +@HEADS.register_module() +class PSPHead(BaseDecodeHead): + + def __init__(self, pool_scales=(1, 2, 3, 6), **kwargs): + super(PSPHead, self).__init__(**kwargs) + + def init_weights(self): + + def forward(self, inputs): + +``` + +接着,使用者需要在 `mmseg/models/decode_heads/__init__.py` 里面添加这个模块,这样对应的注册器 (registry) 可以查找并加载它们。 + +PSPNet的配置文件如下所示: + +```python +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + type='EncoderDecoder', + pretrained='pretrain_model/resnet50_v1c_trick-2cccc1ad.pth', + backbone=dict( + type='ResNetV1c', + depth=50, + num_stages=4, + out_indices=(0, 1, 2, 3), + dilations=(1, 1, 2, 4), + strides=(1, 2, 1, 1), + norm_cfg=norm_cfg, + norm_eval=False, + style='pytorch', + contract_dilation=True), + decode_head=dict( + type='PSPHead', + in_channels=2048, + in_index=3, + channels=512, + pool_scales=(1, 2, 3, 6), + dropout_ratio=0.1, + num_classes=19, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))) + +``` + +### 增加新的损失函数 + +假设您想添加一个新的损失函数 `MyLoss` 到语义分割解码器里。 +为了添加一个新的损失函数,使用者需要在 `mmseg/models/losses/my_loss.py` 里面去实现它。 +`weighted_loss` 可以对计算损失时的每个样本做加权。 + +```python +import torch +import torch.nn as nn + +from ..builder import LOSSES +from .utils import weighted_loss + +@weighted_loss +def my_loss(pred, target): + assert pred.size() == target.size() and target.numel() > 0 + loss = torch.abs(pred - target) + return loss + +@LOSSES.register_module +class MyLoss(nn.Module): + + def __init__(self, reduction='mean', loss_weight=1.0): + super(MyLoss, self).__init__() + self.reduction = reduction + self.loss_weight = loss_weight + + def forward(self, + pred, + target, + weight=None, + avg_factor=None, + reduction_override=None): + assert reduction_override in (None, 'none', 'mean', 'sum') + reduction = ( + reduction_override if reduction_override else self.reduction) + loss = self.loss_weight * my_loss( + pred, target, weight, reduction=reduction, avg_factor=avg_factor) + return loss +``` + +然后使用者需要在 `mmseg/models/losses/__init__.py` 里面添加它: + +```python +from .my_loss import MyLoss, my_loss + +``` + +为了使用它,修改 `loss_xxx` 域。之后您需要在解码头组件里修改 `loss_decode` 域。 +`loss_weight` 可以被用来对不同的损失函数做加权。 + +```python +loss_decode=dict(type='MyLoss', loss_weight=1.0)) +``` diff --git a/docs_zh-CN/tutorials/customize_runtime.md b/docs_zh-CN/tutorials/customize_runtime.md new file mode 100644 index 0000000000..f67dd00b8a --- /dev/null +++ b/docs_zh-CN/tutorials/customize_runtime.md @@ -0,0 +1,246 @@ +# 教程 6: 自定义运行设定 + +## 自定义优化设定 + +### 自定义 PyTorch 支持的优化器 + +我们已经支持 PyTorch 自带的所有优化器,唯一需要修改的地方是在配置文件里的 `optimizer` 域里面。 +例如,如果您想使用 `ADAM` (注意如下操作可能会让模型表现下降),可以使用如下修改: + +```python +optimizer = dict(type='Adam', lr=0.0003, weight_decay=0.0001) +``` + +为了修改模型的学习率,使用者仅需要修改配置文件里 optimizer 的 `lr` 即可。 +使用者可以参照 PyTorch 的 [API 文档](https://pytorch.org/docs/stable/optim.html?highlight=optim#module-torch.optim) +直接设置参数。 + +### 自定义 自己实现的优化器 + +#### 1. 定义一个新的优化器 + +一个自定义的优化器可以按照如下去定义: + +假如您想增加一个叫做 `MyOptimizer` 的优化器,它的参数分别有 `a`, `b`, 和 `c`。 +您需要创建一个叫 `mmseg/core/optimizer` 的新文件夹。 +然后再在文件,即 `mmseg/core/optimizer/my_optimizer.py` 里面去实现这个新优化器: + +```python +from .registry import OPTIMIZERS +from torch.optim import Optimizer + + +@OPTIMIZERS.register_module() +class MyOptimizer(Optimizer): + + def __init__(self, a, b, c) + +``` + +#### 2. 增加优化器到注册表 (registry) + +为了让上述定义的模块被框架发现,首先这个模块应该被导入到主命名空间 (main namespace) 里。 +有两种方式可以实现它。 + +- 修改 `mmseg/core/optimizer/__init__.py` 来导入它。 + + 新的被定义的模块应该被导入到 `mmseg/core/optimizer/__init__.py` 这样注册表将会发现新的模块并添加它。 + +```python +from .my_optimizer import MyOptimizer +``` + +- 在配置文件里使用 `custom_imports` 去手动导入它。 + +```python +custom_imports = dict(imports=['mmseg.core.optimizer.my_optimizer'], allow_failed_imports=False) +``` + +`mmseg.core.optimizer.my_optimizer` 模块将会在程序运行的开始被导入,并且 `MyOptimizer` 类将会自动注册。 +需要注意只有包含 `MyOptimizer` 类的包 (package) 应当被导入。 +而 `mmseg.core.optimizer.my_optimizer.MyOptimizer` **不能** 被直接导入。 + +事实上,使用者完全可以用另一个按这样导入方法的文件夹结构,只要模块的根路径已经被添加到 `PYTHONPATH` 里面。 + +#### 3. 在配置文件里定义优化器 + +之后您可以在配置文件的 `optimizer` 域里面使用 `MyOptimizer` +在配置文件里,优化器被定义在 `optimizer` 域里,如下所示: + +```python +optimizer = dict(type='SGD', lr=0.02, momentum=0.9, weight_decay=0.0001) +``` + +为了使用您自己的优化器,这个域可以被改成: + +```python +optimizer = dict(type='MyOptimizer', a=a_value, b=b_value, c=c_value) +``` + +### 自定义优化器的构造器 (constructor) + +有些模型可能需要在优化器里有一些特别参数的设置,例如 批归一化层 (BatchNorm layers) 的 权重衰减 (weight decay)。 +使用者可以通过自定义优化器的构造器去微调这些细粒度参数。 + +```python +from mmcv.utils import build_from_cfg + +from mmcv.runner.optimizer import OPTIMIZER_BUILDERS, OPTIMIZERS +from mmseg.utils import get_root_logger +from .my_optimizer import MyOptimizer + + +@OPTIMIZER_BUILDERS.register_module() +class MyOptimizerConstructor(object): + + def __init__(self, optimizer_cfg, paramwise_cfg=None): + + def __call__(self, model): + + return my_optimizer + +``` + +默认的优化器构造器的实现可以参照 [这里](https://github.com/open-mmlab/mmcv/blob/9ecd6b0d5ff9d2172c49a182eaa669e9f27bb8e7/mmcv/runner/optimizer/default_constructor.py#L11) ,它也可以被用作新的优化器构造器的模板。 + +### 额外的设置 + +优化器没有实现的一些技巧应该通过优化器构造器 (optimizer constructor) 或者钩子 (hook) 去实现,如设置基于参数的学习率 (parameter-wise learning rates)。我们列出一些常见的设置,它们可以稳定或加速模型的训练。 +如果您有更多的设置,欢迎在 PR 和 issue 里面提交。 + +- __使用梯度截断 (gradient clip) 去稳定训练__: + 一些模型需要梯度截断去稳定训练过程,如下所示: + + ```python + optimizer_config = dict( + _delete_=True, grad_clip=dict(max_norm=35, norm_type=2)) + ``` + + 如果您的配置继承自已经设置了 `optimizer_config` 的基础配置 (base config),您可能需要 `_delete_=True` 来重写那些不需要的设置。更多细节请参照 [配置文件文档](https://mmsegmentation.readthedocs.io/en/latest/config.html) 。 + +- __使用动量计划表 (momentum schedule) 去加速模型收敛__: + 我们支持动量计划表去让模型基于学习率修改动量,这样可能让模型收敛地更快。 + 动量计划表经常和学习率计划表 (LR scheduler) 一起使用,例如如下配置文件就在 3D 检测里经常使用以加速收敛。 + 更多细节请参考 [CyclicLrUpdater](https://github.com/open-mmlab/mmcv/blob/f48241a65aebfe07db122e9db320c31b685dc674/mmcv/runner/hooks/lr_updater.py#L327) 和 [CyclicMomentumUpdater](https://github.com/open-mmlab/mmcv/blob/f48241a65aebfe07db122e9db320c31b685dc674/mmcv/runner/hooks/momentum_updater.py#L130) 的实现。 + + ```python + lr_config = dict( + policy='cyclic', + target_ratio=(10, 1e-4), + cyclic_times=1, + step_ratio_up=0.4, + ) + momentum_config = dict( + policy='cyclic', + target_ratio=(0.85 / 0.95, 1), + cyclic_times=1, + step_ratio_up=0.4, + ) + ``` + +## 自定义训练计划表 + +我们根据默认的训练迭代步数 40k/80k 来设置学习率,这在 MMCV 里叫做 [`PolyLrUpdaterHook`](https://github.com/open-mmlab/mmcv/blob/826d3a7b68596c824fa1e2cb89b6ac274f52179c/mmcv/runner/hooks/lr_updater.py#L196) 。 +我们也支持许多其他的学习率计划表:[这里](https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/lr_updater.py) ,例如 `CosineAnnealing` 和 `Poly` 计划表。下面是一些例子: + +- 步计划表 Step schedule: + + ```python + lr_config = dict(policy='step', step=[9, 10]) + ``` + +- 余弦退火计划表 ConsineAnnealing schedule: + + ```python + lr_config = dict( + policy='CosineAnnealing', + warmup='linear', + warmup_iters=1000, + warmup_ratio=1.0 / 10, + min_lr_ratio=1e-5) + ``` + +## 自定义工作流 (workflow) + +工作流是一个专门定义运行顺序和轮数 (running order and epochs) 的列表 (phase, epochs)。 +默认情况下它设置成: + +```python +workflow = [('train', 1)] +``` + +意思是训练是跑 1 个 epoch。有时候使用者可能想检查模型在验证集上的一些指标(如 损失 loss,精确性 accuracy),我们可以这样设置工作流: + +```python +[('train', 1), ('val', 1)] +``` + +于是 1 个 epoch 训练,1 个 epoch 验证将交替运行。 + +**注意**: + +1. 模型的参数在验证的阶段不会被自动更新。 +2. 配置文件里的关键词 `total_epochs` 仅控制训练的 epochs 数目,而不会影响验证时的工作流。 +3. 工作流 `[('train', 1), ('val', 1)]` 和 `[('train', 1)]` 将不会改变 `EvalHook` 的行为,因为 `EvalHook` 被 `after_train_epoch` + 调用而且验证的工作流仅仅影响通过调用 `after_val_epoch` 的钩子 (hooks)。因此, `[('train', 1), ('val', 1)]` 和 `[('train', 1)]` + 的区别仅在于 runner 将在每次训练 epoch 结束后计算在验证集上的损失。 + +## 自定义钩 (hooks) + +### 使用 MMCV 实现的钩子 (hooks) + +如果钩子已经在 MMCV 里被实现,如下所示,您可以直接修改配置文件来使用钩子: + +```python +custom_hooks = [ + dict(type='MyHook', a=a_value, b=b_value, priority='NORMAL') +] +``` + +### 修改默认的运行时间钩子 (runtime hooks) + +以下的常用的钩子没有被 `custom_hooks` 注册: + +- log_config +- checkpoint_config +- evaluation +- lr_config +- optimizer_config +- momentum_config + +在这些钩子里,只有 logger hook 有 `VERY_LOW` 优先级,其他的优先级都是 `NORMAL`。 +上述提及的教程已经包括了如何修改 `optimizer_config`,`momentum_config` 和 `lr_config`。 +这里我们展示我们如何处理 `log_config`, `checkpoint_config` 和 `evaluation`。 + +#### 检查点配置文件 (Checkpoint config) + +MMCV runner 将使用 `checkpoint_config` 去初始化 [`CheckpointHook`](https://github.com/open-mmlab/mmcv/blob/9ecd6b0d5ff9d2172c49a182eaa669e9f27bb8e7/mmcv/runner/hooks/checkpoint.py#L9). + +```python +checkpoint_config = dict(interval=1) +``` + +使用者可以设置 `max_keep_ckpts` 来仅保存一小部分检查点或者通过 `save_optimizer` 来决定是否保存优化器的状态字典 (state dict of optimizer)。 更多使用参数的细节请参考 [这里](https://mmcv.readthedocs.io/en/latest/api.html#mmcv.runner.CheckpointHook) 。 + +#### 日志配置文件 (Log config) + +`log_config` 包裹了许多日志钩 (logger hooks) 而且能去设置间隔 (intervals)。现在 MMCV 支持 `WandbLoggerHook`, `MlflowLoggerHook` 和 `TensorboardLoggerHook`。 +详细的使用请参照 [文档](https://mmcv.readthedocs.io/en/latest/api.html#mmcv.runner.LoggerHook) 。 + +```python +log_config = dict( + interval=50, + hooks=[ + dict(type='TextLoggerHook'), + dict(type='TensorboardLoggerHook') + ]) +``` + +#### 评估配置文件 (Evaluation config) + +`evaluation` 的配置文件将被用来初始化 [`EvalHook`](https://github.com/open-mmlab/mmsegmentation/blob/e3f6f655d69b777341aec2fe8829871cc0beadcb/mmseg/core/evaluation/eval_hooks.py#L7) 。 +除了 `interval` 键,其他的像 `metric` 这样的参数将被传递给 `dataset.evaluate()` 。 + +```python +evaluation = dict(interval=1, metric='mIoU') +``` diff --git a/docs_zh-CN/tutorials/data_pipeline.md b/docs_zh-CN/tutorials/data_pipeline.md new file mode 100644 index 0000000000..6ac16aec68 --- /dev/null +++ b/docs_zh-CN/tutorials/data_pipeline.md @@ -0,0 +1,166 @@ +# 教程 3: 自定义数据流程 + +## 数据流程的设计 + +按照通常的惯例,我们使用 `Dataset` 和 `DataLoader` 做多线程的数据加载。`Dataset` 返回一个数据内容的字典,里面对应于模型前传方法的各个参数。 +因为在语义分割中,输入的图像数据具有不同的大小,我们在 MMCV 里引入一个新的 `DataContainer` 类别去帮助收集和分发不同大小的输入数据。 + +更多细节,请查看[这里](https://github.com/open-mmlab/mmcv/blob/master/mmcv/parallel/data_container.py). + +数据的准备流程和数据集是解耦的。通常一个数据集定义了如何处理标注数据(annotations)信息,而一个数据流程定义了准备一个数据字典的所有步骤。一个流程包括了一系列操作,每个操作里都把一个字典作为输入,然后再输出一个新的字典给下一个变换操作。 + +这些操作可分为数据加载 (data loading),预处理 (pre-processing),格式变化 (formatting) 和测试时数据增强 (test-time augmentation) 。 + +下面的例子就是 PSPNet 的一个流程: + +```python +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) +crop_size = (512, 1024) +train_pipeline = [ + dict(type='LoadImageFromFile'), + dict(type='LoadAnnotations'), + dict(type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)), + dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='RandomFlip', flip_ratio=0.5), + dict(type='PhotoMetricDistortion'), + dict(type='Normalize', **img_norm_cfg), + dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255), + dict(type='DefaultFormatBundle'), + dict(type='Collect', keys=['img', 'gt_semantic_seg']), +] +test_pipeline = [ + dict(type='LoadImageFromFile'), + dict( + type='MultiScaleFlipAug', + img_scale=(2048, 1024), + # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75], + flip=False, + transforms=[ + dict(type='Resize', keep_ratio=True), + dict(type='RandomFlip'), + dict(type='Normalize', **img_norm_cfg), + dict(type='ImageToTensor', keys=['img']), + dict(type='Collect', keys=['img']), + ]) +] +``` + +对于每个操作,我们列出它添加、更新、移除的相关字典域 (dict fields): + +### 数据加载 Data loading + +`LoadImageFromFile` + +- 增加: img, img_shape, ori_shape + +`LoadAnnotations` + +- 增加: gt_semantic_seg, seg_fields + +### 预处理 Pre-processing + +`Resize` + +- 增加: scale, scale_idx, pad_shape, scale_factor, keep_ratio +- 更新: img, img_shape, *seg_fields + +`RandomFlip` + +- 增加: flip +- 更新: img, *seg_fields + +`Pad` + +- 增加: pad_fixed_size, pad_size_divisor +- 更新: img, pad_shape, *seg_fields + +`RandomCrop` + +- 更新: img, pad_shape, *seg_fields + +`Normalize` + +- 增加: img_norm_cfg +- 更新: img + +`SegRescale` + +- 更新: gt_semantic_seg + +`PhotoMetricDistortion` + +- 更新: img + +### 格式 Formatting + +`ToTensor` + +- 更新: 由 `keys` 指定. + +`ImageToTensor` + +- 更新: 由 `keys` 指定. + +`Transpose` + +- 更新: 由 `keys` 指定. + +`ToDataContainer` + +- 更新: 由 `keys` 指定. + +`DefaultFormatBundle` + +- 更新: img, gt_semantic_seg + +`Collect` + +- 增加: img_meta (the keys of img_meta is specified by `meta_keys`) +- 移除: all other keys except for those specified by `keys` + +### 测试时数据增强 Test time augmentation + +`MultiScaleFlipAug` + +## 拓展和使用自定义的流程 + +1. 在任何一个文件里写一个新的流程,例如 `my_pipeline.py`。它以一个字典作为输入并且输出一个字典。 + + ```python + from mmseg.datasets import PIPELINES + + @PIPELINES.register_module() + class MyTransform: + + def __call__(self, results): + results['dummy'] = True + return results + ``` + +2. 导入一个新类 + + ```python + from .my_pipeline import MyTransform + ``` + +3. 在配置文件里使用它 + + ```python + img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) + crop_size = (512, 1024) + train_pipeline = [ + dict(type='LoadImageFromFile'), + dict(type='LoadAnnotations'), + dict(type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)), + dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='RandomFlip', flip_ratio=0.5), + dict(type='PhotoMetricDistortion'), + dict(type='Normalize', **img_norm_cfg), + dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255), + dict(type='MyTransform'), + dict(type='DefaultFormatBundle'), + dict(type='Collect', keys=['img', 'gt_semantic_seg']), + ] + ``` diff --git a/docs_zh-CN/tutorials/index.rst b/docs_zh-CN/tutorials/index.rst new file mode 100644 index 0000000000..e1a67a8b44 --- /dev/null +++ b/docs_zh-CN/tutorials/index.rst @@ -0,0 +1,9 @@ +.. toctree:: + :maxdepth: 2 + + config.md + customize_datasets.md + data_pipeline.md + customize_models.md + training_tricks.md + customize_runtime.md diff --git a/docs_zh-CN/tutorials/training_tricks.md b/docs_zh-CN/tutorials/training_tricks.md new file mode 100644 index 0000000000..9248e5a14b --- /dev/null +++ b/docs_zh-CN/tutorials/training_tricks.md @@ -0,0 +1,51 @@ +# 教程 5: 训练技巧 + +MMSegmentation 支持如下训练技巧: + +## 主干网络和解码头组件使用不同的学习率 (Learning Rate, LR) + +在语义分割里,一些方法会让解码头组件的学习率大于主干网络的学习率,这样可以获得更好的表现或更快的收敛。 + +在 MMSegmentation 里面,您也可以在配置文件里添加如下行来让解码头组件的学习率是主干组件的10倍。 + +```python +optimizer=dict( + paramwise_cfg = dict( + custom_keys={ + 'head': dict(lr_mult=10.)})) +``` + +通过这种修改,任何被分组到 `'head'` 的参数的学习率都将乘以10。您也可以参照 [MMCV 文档](https://mmcv.readthedocs.io/en/latest/api.html#mmcv.runner.DefaultOptimizerConstructor) 获取更详细的信息。 + +## 在线难样本挖掘 (Online Hard Example Mining, OHEM) + +对于训练时采样,我们在 [这里](https://github.com/open-mmlab/mmsegmentation/tree/master/mmseg/core/seg/sampler) 做了像素采样器。 +如下例子是使用 PSPNet 训练并采用 OHEM 策略的配置: + +```python +_base_ = './pspnet_r50-d8_512x1024_40k_cityscapes.py' +model=dict( + decode_head=dict( + sampler=dict(type='OHEMPixelSampler', thresh=0.7, min_kept=100000)) ) +``` + +通过这种方式,只有置信分数在0.7以下的像素值点会被拿来训练。在训练时我们至少要保留100000个像素值点。如果 `thresh` 并未被指定,前 ``min_kept`` +个损失的像素值点才会被选择。 + +## 类别平衡损失 (Class Balanced Loss) + +对于不平衡类别分布的数据集,您也许可以改变每个类别的损失权重。这里以 cityscapes 数据集为例: + +```python +_base_ = './pspnet_r50-d8_512x1024_40k_cityscapes.py' +model=dict( + decode_head=dict( + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0, + # DeepLab 对 cityscapes 使用这种权重 + class_weight=[0.8373, 0.9180, 0.8660, 1.0345, 1.0166, 0.9969, 0.9754, + 1.0489, 0.8786, 1.0023, 0.9539, 0.9843, 1.1116, 0.9037, + 1.0865, 1.0955, 1.0865, 1.1529, 1.0507]))) +``` + +`class_weight` 将被作为 `weight` 参数,传递给 `CrossEntropyLoss`。详细信息请参照 [PyTorch 文档](https://pytorch.org/docs/stable/nn.html?highlight=crossentropy#torch.nn.CrossEntropyLoss) 。 diff --git a/docs_zh-CN/useful_tools.md b/docs_zh-CN/useful_tools.md new file mode 100644 index 0000000000..e274fee834 --- /dev/null +++ b/docs_zh-CN/useful_tools.md @@ -0,0 +1,260 @@ +## 常用工具 + +除了训练和测试的脚本,我们在 `tools/` 文件夹路径下还提供许多有用的工具。 + +### 计算参数量(params)和计算量( FLOPs) (试验性) + +我们基于 [flops-counter.pytorch](https://github.com/sovrasov/flops-counter.pytorch) +提供了一个用于计算给定模型参数量和计算量的脚本。 + +```shell +python tools/get_flops.py ${CONFIG_FILE} [--shape ${INPUT_SHAPE}] +``` + +您将得到如下的结果: + +```none +============================== +Input shape: (3, 2048, 1024) +Flops: 1429.68 GMac +Params: 48.98 M +============================== +``` + +**注意**: 这个工具仍然是试验性的,我们无法保证数字是正确的。您可以拿这些结果做简单的实验的对照,在写技术文档报告或者论文前您需要再次确认一下。 + +(1) 计算量与输入的形状有关,而参数量与输入的形状无关,默认的输入形状是 (1, 3, 1280, 800); +(2) 一些运算操作,如 GN 和其他定制的运算操作没有加入到计算量的计算中。 + +### 发布模型 + +在您上传一个模型到云服务器之前,您需要做以下几步: +(1) 将模型权重转成 CPU 张量; +(2) 删除记录优化器状态 (optimizer states)的相关信息; +(3) 计算检查点文件 (checkpoint file) 的哈希编码(hash id)并且将哈希编码加到文件名中。 + +```shell +python tools/publish_model.py ${INPUT_FILENAME} ${OUTPUT_FILENAME} +``` + +例如, + +```shell +python tools/publish_model.py work_dirs/pspnet/latest.pth psp_r50_hszhao_200ep.pth +``` + +最终输出文件将是 `psp_r50_512x1024_40ki_cityscapes-{hash id}.pth`. + +### 导出 ONNX (试验性) + +我们提供了一个脚本来导出模型到 [ONNX](https://github.com/onnx/onnx) 格式。被转换的模型可以通过工具 [Netron](https://github.com/lutzroeder/netron) +来可视化。除此以外,我们同样支持对 PyTorch 和 ONNX 模型的输出结果做对比。 + +```bash +python tools/pytorch2onnx.py \ + ${CONFIG_FILE} \ + --checkpoint ${CHECKPOINT_FILE} \ + --output-file ${ONNX_FILE} \ + --input-img ${INPUT_IMG} \ + --shape ${INPUT_SHAPE} \ + --rescale-shape ${RESCALE_SHAPE} \ + --show \ + --verify \ + --dynamic-export \ + --cfg-options \ + model.test_cfg.mode="whole" +``` + +各个参数的描述: + +- `config` : 模型配置文件的路径。 +- `--checkpoint` : 模型检查点文件的路径。 +- `--output-file`: 输出的 ONNX 模型的路径。如果没有专门指定,它默认是 `tmp.onnx`。 +- `--input-img` : 用来转换和可视化的一张输入图像的路径。 +- `--shape`: 模型的输入张量的高和宽。如果没有专门指定,它将被设置成 `test_pipeline` 的 `img_scale`。 +- `--rescale-shape`: 改变输出的形状。设置这个值来避免 OOM,它仅在 `slide` 模式下可以用。 +- `--show`: 是否打印输出模型的结构。如果没有被专门指定,它将被设置成 `False`。 +- `--verify`: 是否验证一个输出模型的正确性 (correctness)。如果没有被专门指定,它将被设置成 `False`。 +- `--dynamic-export`: 是否导出形状变化的输入与输出的 ONNX 模型。如果没有被专门指定,它将被设置成 `False`。 +- `--cfg-options`: 更新配置选项。 + +**注意**: 这个工具仍然是试验性的,目前一些自定义操作还没有被支持。 + +### 评估 ONNX 模型 + +我们提供 `tools/deploy_test.py` 去评估不同后端的 ONNX 模型。 + +#### 先决条件 + +- 安装 onnx 和 onnxruntime-gpu + + ```shell + pip install onnx onnxruntime-gpu + ``` + +- 参考 [如何在 MMCV 里构建 tensorrt 插件](https://mmcv.readthedocs.io/en/latest/tensorrt_plugin.html#how-to-build-tensorrt-plugins-in-mmcv) 安装TensorRT (可选)。 + +#### 使用方法 + +```bash +python tools/deploy_test.py \ + ${CONFIG_FILE} \ + ${MODEL_FILE} \ + ${BACKEND} \ + --out ${OUTPUT_FILE} \ + --eval ${EVALUATION_METRICS} \ + --show \ + --show-dir ${SHOW_DIRECTORY} \ + --options ${CFG_OPTIONS} \ + --eval-options ${EVALUATION_OPTIONS} \ + --opacity ${OPACITY} \ +``` + +各个参数的描述: + +- `config`: 模型配置文件的路径。 +- `model`: 被转换的模型文件的路径。 +- `backend`: 推理的后端,可选项:`onnxruntime`, `tensorrt`。 +- `--out`: 输出结果成 pickle 格式文件的路径。 +- `--format-only` : 不评估直接给输出结果的格式。通常用在当您想把结果输出成一些测试服务器需要的特定格式时。如果没有被专门指定,它将被设置成 `False`。 注意这个参数是用 `--eval` 来 **手动添加** +- `--eval`: 评估指标,取决于每个数据集的要求,例如 "mIoU" 是大多数据集的指标而 "cityscapes" 仅针对 Cityscapes 数据集。注意这个参数是用 `--format-only` 来 **手动添加**。 +- `--show`: 是否展示结果 +- `--show-dir`: 涂上结果的图像被保存的文件夹的路径。 +- `--options`: 重写配置文件里的一些设置。`xxx=yyy` 格式的键值对将被覆盖到配置文件里。 +- `--eval-options`: 自定义的评估的选项。 `xxx=yyy` 格式的键值对将成为 `dataset.evaluate()` 函数的参数变量。 +- `--opacity`: 涂上结果的分割图的透明度。范围在 (0, 1] 之间。 + +#### 结果和模型 + +| 模型 | 配置文件 | 数据集 | 评价指标 | PyTorch | ONNX 运行时间 | TensorRT-fp32 | TensorRT-fp16 | +| :--------: | :---------------------------------------------: | :--------: | :----: | :-----: | :---------: | :-----------: | :-----------: | +| FCN | fcn_r50-d8_512x1024_40k_cityscapes.py | cityscapes | mIoU | 72.2 | 72.2 | 72.2 | 72.2 | +| PSPNet | pspnet_r50-d8_512x1024_40k_cityscapes.py | cityscapes | mIoU | 77.8 | 77.8 | 77.8 | 77.8 | +| deeplabv3 | deeplabv3_r50-d8_512x1024_40k_cityscapes.py | cityscapes | mIoU | 79.0 | 79.0 | 79.0 | 79.0 | +| deeplabv3+ | deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py | cityscapes | mIoU | 79.6 | 79.5 | 79.5 | 79.5 | +| PSPNet | pspnet_r50-d8_769x769_40k_cityscapes.py | cityscapes | mIoU | 78.2 | 78.1 | | | +| deeplabv3 | deeplabv3_r50-d8_769x769_40k_cityscapes.py | cityscapes | mIoU | 78.5 | 78.3 | | | +| deeplabv3+ | deeplabv3plus_r50-d8_769x769_40k_cityscapes.py | cityscapes | mIoU | 78.9 | 78.7 | | | + +**注意**: TensorRT 仅在使用 `whole mode` 测试模式时的配置文件里可用。 + +### 导出 TorchScript (试验性) + +我们同样提供一个脚本去把模型导出成 [TorchScript](https://pytorch.org/docs/stable/jit.html) 格式。您可以使用 pytorch C++ API [LibTorch](https://pytorch.org/docs/stable/cpp_index.html) 去推理训练好的模型。 +被转换的模型能被像 [Netron](https://github.com/lutzroeder/netron) 的工具来可视化。此外,我们还支持 PyTorch 和 TorchScript 模型的输出结果的比较。 + +```shell +python tools/pytorch2torchscript.py \ + ${CONFIG_FILE} \ + --checkpoint ${CHECKPOINT_FILE} \ + --output-file ${ONNX_FILE} + --shape ${INPUT_SHAPE} + --verify \ + --show +``` + +各个参数的描述: + +- `config` : pytorch 模型的配置文件的路径。 +- `--checkpoint` : pytorch 模型的检查点文件的路径。 +- `--output-file`: TorchScript 模型输出的路径。 如果没有被专门指定,它将被设置成 `tmp.pt`。 +- `--input-img` : 用来转换和可视化的输入图像的路径。 +- `--shape`: 模型的输入张量的宽和高。如果没有被专门指定,它将被设置成 `512 512`。 +- `--show`: 是否打印输出模型的追踪图 (traced graph)。如果没有被专门指定,它将被设置成 `False`。 +- `--verify`: 是否验证一个输出模型的正确性 (correctness)。如果没有被专门指定,它将被设置成 `False`。 + +**注意**: 目前仅支持 PyTorch>=1.8.0 版本. + +**注意**: 这个工具仍然是试验性的,一些自定义操作符目前还不被支持。 + +例子: + +- 导出 PSPNet 在 cityscapes 数据集上的 pytorch 模型。 + + ```shell + python tools/pytorch2torchscript.py configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \ + --checkpoint checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth \ + --output-file checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pt \ + --shape 512 1024 + ``` + +### 导出 TensorRT (试验性) + +一个导出 [ONNX](https://github.com/onnx/onnx) 模型成 [TensorRT](https://developer.nvidia.com/tensorrt) 格式的脚本。 + +先决条件 + +- 按照 [ONNXRuntime in mmcv](https://mmcv.readthedocs.io/en/latest/onnxruntime_op.html) 和 [TensorRT plugin in mmcv](https://github.com/open-mmlab/mmcv/blob/master/docs/tensorrt_plugin.md) ,用 ONNXRuntime 自定义运算 (custom ops) 和 TensorRT 插件安装 `mmcv-full`。 +- 使用 [pytorch2onnx](#convert-to-onnx-experimental) 将模型从 PyTorch 转成 ONNX。 + +使用方法 + +```bash +python ${MMSEG_PATH}/tools/onnx2tensorrt.py \ + ${CFG_PATH} \ + ${ONNX_PATH} \ + --trt-file ${OUTPUT_TRT_PATH} \ + --min-shape ${MIN_SHAPE} \ + --max-shape ${MAX_SHAPE} \ + --input-img ${INPUT_IMG} \ + --show \ + --verify +``` + +各个参数的描述: + +- `config` : 模型的配置文件。 +- `model` : 输入的 ONNX 模型的路径。 +- `--trt-file` : 输出的 TensorRT 引擎的路径。 +- `--max-shape` : 模型的输入的最大形状。 +- `--min-shape` : 模型的输入的最小形状。 +- `--fp16` : 做 fp16 模型转换。 +- `--workspace-size` : 在 GiB 里的最大工作空间大小 (Max workspace size)。 +- `--input-img` : 用来可视化的图像。 +- `--show` : 做结果的可视化。 +- `--dataset` : Palette provider, 默认为 `CityscapesDataset`。 +- `--verify` : 验证 ONNXRuntime 和 TensorRT 的输出。 +- `--verbose` : 当创建 TensorRT 引擎时,是否详细做信息日志。默认为 False。 + +**注意**: 仅在全图测试模式 (whole mode) 下测试过。 + +## 其他内容 + +### 打印完整的配置文件 + +`tools/print_config.py` 会逐字逐句的打印整个配置文件,展开所有的导入。 + +```shell +python tools/print_config.py \ + ${CONFIG} \ + --graph \ + --options ${OPTIONS [OPTIONS...]} \ +``` + +各个参数的描述: + +- `config` : pytorch 模型的配置文件的路径。 +- `--graph` : 是否打印模型的图 (models graph)。 +- `--options`: 自定义替换配置文件的选项。 + +### 对训练日志 (training logs) 画图 + +`tools/analyze_logs.py` 会画出给定的训练日志文件的 loss/mIoU 曲线,首先需要 `pip install seaborn` 安装依赖包。 + +```shell +python tools/analyze_logs.py xxx.log.json [--keys ${KEYS}] [--legend ${LEGEND}] [--backend ${BACKEND}] [--style ${STYLE}] [--out ${OUT_FILE}] +``` + +示例: + +- 对 mIoU, mAcc, aAcc 指标画图。 + + ```shell + python tools/analyze_logs.py log.json --keys mIoU mAcc aAcc --legend mIoU mAcc aAcc + ``` + +- 对 loss 指标画图。 + + ```shell + python tools/analyze_logs.py log.json --keys loss --legend loss + ``` From ae61e66521bdcbced00e0d5b28c7b2c7465ec4de Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Sun, 4 Jul 2021 01:09:17 -0700 Subject: [PATCH 178/706] Bump to v0.15.0 (#669) * Bump to v0.15.0 * fixed version --- README.md | 2 +- README_zh-CN.md | 2 +- docs/changelog.md | 32 ++++++++++++++++++++++++++++++++ docs/get_started.md | 1 + docs_zh-CN/get_started.md | 1 + mmseg/datasets/builder.py | 2 +- mmseg/version.py | 2 +- 7 files changed, 38 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index e13c6a7803..20e8f93831 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ This project is released under the [Apache 2.0 license](LICENSE). ## Changelog -v0.14.1 was released in 06/16/2021. +v0.15.0 was released in 07/04/2021. Please refer to [changelog.md](docs/changelog.md) for details and release history. ## Benchmark and model zoo diff --git a/README_zh-CN.md b/README_zh-CN.md index a4b0b207d2..325f4deedb 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -47,7 +47,7 @@ MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 O ## 更新日志 -最新的月度版本 v0.11.0 在 2021.02.02 发布。 +最新的月度版本 v0.15.0 在 2021.07.04 发布。 如果想了解更多版本更新细节和历史信息,请阅读[更新日志](docs/changelog.md)。 ## 基准测试和模型库 diff --git a/docs/changelog.md b/docs/changelog.md index 6533ebea5d..54edfa1238 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,5 +1,37 @@ ## Changelog +### V0.15 (07/04/2021) + +**Highlights** + +- Support ViT, SETR, and Swin-Transformer +- Add Chinese documentation +- Unified parameter initialization + +**Bug Fixes** + +- Fix typo and links ([#608](https://github.com/open-mmlab/mmsegmentation/pull/608)) +- Fix Dockerfile ([#607](https://github.com/open-mmlab/mmsegmentation/pull/607)) +- Fix ViT init ([#609](https://github.com/open-mmlab/mmsegmentation/pull/609)) +- Fix mmcv version compatible table ([#658](https://github.com/open-mmlab/mmsegmentation/pull/658)) +- Fix model links of DMNEt ([#660](https://github.com/open-mmlab/mmsegmentation/pull/660)) + +**New Features** + +- Support loading DeiT weights ([#538](https://github.com/open-mmlab/mmsegmentation/pull/538)) +- Support SETR ([#531](https://github.com/open-mmlab/mmsegmentation/pull/531), [#635](https://github.com/open-mmlab/mmsegmentation/pull/635)) +- Add config and models for ViT backbone with UperHead ([#520](https://github.com/open-mmlab/mmsegmentation/pull/531), [#635](https://github.com/open-mmlab/mmsegmentation/pull/520)) +- Support Swin-Transformer ([#511](https://github.com/open-mmlab/mmsegmentation/pull/511)) +- Add higher accuracy FastSCNN ([#606](https://github.com/open-mmlab/mmsegmentation/pull/606)) +- Add Chinese documentation ([#666](https://github.com/open-mmlab/mmsegmentation/pull/666)) + +**Improvements** + +- Unified parameter initialization ([#567](https://github.com/open-mmlab/mmsegmentation/pull/567)) +- Separate CUDA and CPU in github action CI ([#602](https://github.com/open-mmlab/mmsegmentation/pull/602)) +- Support persistent dataloader worker ([#646](https://github.com/open-mmlab/mmsegmentation/pull/646)) +- Update meta file fields ([#661](https://github.com/open-mmlab/mmsegmentation/pull/661), [#664](https://github.com/open-mmlab/mmsegmentation/pull/664)) + ### V0.14 (06/02/2021) **Highlights** diff --git a/docs/get_started.md b/docs/get_started.md index 05f2ddc916..0822241ab2 100644 --- a/docs/get_started.md +++ b/docs/get_started.md @@ -12,6 +12,7 @@ The compatible MMSegmentation and MMCV versions are as below. Please install the | MMSegmentation version | MMCV version | |:-------------------:|:-------------------:| | master | mmcv-full>=1.3.7, <1.4.0 | +| 0.15.0 | mmcv-full>=1.3.7, <1.4.0 | | 0.14.1 | mmcv-full>=1.3.7, <1.4.0 | | 0.14.0 | mmcv-full>=1.3.1, <1.3.2 | | 0.13.0 | mmcv-full>=1.3.1, <1.3.2 | diff --git a/docs_zh-CN/get_started.md b/docs_zh-CN/get_started.md index 54d19453e6..e74cd7538a 100644 --- a/docs_zh-CN/get_started.md +++ b/docs_zh-CN/get_started.md @@ -12,6 +12,7 @@ | MMSegmentation 版本 | MMCV 版本 | |:-------------------:|:-------------------:| | master | mmcv-full>=1.3.7, <1.4.0 | +| 0.15.0 | mmcv-full>=1.3.7, <1.4.0 | | 0.14.1 | mmcv-full>=1.3.7, <1.4.0 | | 0.14.0 | mmcv-full>=1.3.1, <1.4.0 | | 0.13.0 | mmcv-full>=1.3.1, <1.4.0 | diff --git a/mmseg/datasets/builder.py b/mmseg/datasets/builder.py index 3ef328d0d6..e6284e5c96 100644 --- a/mmseg/datasets/builder.py +++ b/mmseg/datasets/builder.py @@ -132,7 +132,7 @@ def build_dataloader(dataset, worker_init_fn, num_workers=num_workers, rank=rank, seed=seed) if seed is not None else None - if torch.__version__ >= '1.7.0': + if torch.__version__ >= '1.8.0': data_loader = DataLoader( dataset, batch_size=batch_size, diff --git a/mmseg/version.py b/mmseg/version.py index 3860421a46..32ea1c548d 100644 --- a/mmseg/version.py +++ b/mmseg/version.py @@ -1,6 +1,6 @@ # Copyright (c) Open-MMLab. All rights reserved. -__version__ = '0.14.1' +__version__ = '0.15.0' def parse_version_info(version_str): From 2fd8e60370d9c0a004995272e858ac3de13ede88 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Mon, 5 Jul 2021 13:11:43 +0800 Subject: [PATCH 179/706] fix typos (#670) --- docs/get_started.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/get_started.md b/docs/get_started.md index 0822241ab2..1956c7adef 100644 --- a/docs/get_started.md +++ b/docs/get_started.md @@ -49,10 +49,10 @@ Either `mmcv` or `mmcv-full` is compatible with MMSegmentation, but for methods **Install mmcv for Linux:** -The pre-build mmcv-full (with PyTorch 1.5 and CUDA 10.1) can be installed by running: (other available versions could be found [here](https://mmcv.readthedocs.io/en/latest/#install-with-pip)) +The pre-build mmcv-full (with PyTorch 1.6 and CUDA 10.1) can be installed by running: (other available versions could be found [here](https://mmcv.readthedocs.io/en/latest/#install-with-pip)) ```shell -pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.5.0/index.html +pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.6.0/index.html ``` **Install mmcv for Windows (Experimental):** @@ -124,7 +124,7 @@ conda create -n open-mmlab python=3.7 -y conda activate open-mmlab conda install pytorch=1.6.0 torchvision cudatoolkit=10.1 -c pytorch -pip install mmcv-full==latest+torch1.5.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html +pip install mmcv-full==latest+torch1.6.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html git clone https://github.com/open-mmlab/mmsegmentation.git cd mmsegmentation pip install -e . # or "python setup.py develop" From 61ca8c7294b7b1df6a28a996512f30bb317afa8c Mon Sep 17 00:00:00 2001 From: David de la Iglesia Castro Date: Mon, 5 Jul 2021 13:11:47 +0000 Subject: [PATCH 180/706] Add mmseg2torchserve tool (#552) * Add docker/serve * Add handler * Add mmseg2torchserve * Fix mmv minimum version * Update docs with model serving section * Update useful_tools.md * pre-commit * Update useful_tools.md * Add 3dogs to resources * Move mask to resources --- docker/serve/Dockerfile | 47 ++++++++++++++ docker/serve/config.properties | 5 ++ docker/serve/entrypoint.sh | 12 ++++ docs/useful_tools.md | 61 ++++++++++++++++++ resources/3dogs.jpg | Bin 0 -> 185234 bytes resources/3dogs_mask.png | Bin 0 -> 19655 bytes setup.cfg | 2 +- tools/mmseg2torchserve.py | 110 +++++++++++++++++++++++++++++++++ tools/mmseg_handler.py | 53 ++++++++++++++++ 9 files changed, 289 insertions(+), 1 deletion(-) create mode 100644 docker/serve/Dockerfile create mode 100644 docker/serve/config.properties create mode 100644 docker/serve/entrypoint.sh create mode 100644 resources/3dogs.jpg create mode 100644 resources/3dogs_mask.png create mode 100644 tools/mmseg2torchserve.py create mode 100644 tools/mmseg_handler.py diff --git a/docker/serve/Dockerfile b/docker/serve/Dockerfile new file mode 100644 index 0000000000..b9c5589eb1 --- /dev/null +++ b/docker/serve/Dockerfile @@ -0,0 +1,47 @@ +ARG PYTORCH="1.6.0" +ARG CUDA="10.1" +ARG CUDNN="7" +FROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel + +ARG MMCV="1.3.1" +ARG MMSEG="0.13.0" + +ENV PYTHONUNBUFFERED TRUE + +RUN apt-get update && \ + DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ + ca-certificates \ + g++ \ + openjdk-11-jre-headless \ + # MMDet Requirements + ffmpeg libsm6 libxext6 git ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 \ + && rm -rf /var/lib/apt/lists/* + +ENV PATH="/opt/conda/bin:$PATH" +RUN export FORCE_CUDA=1 + +# TORCHSEVER +RUN pip install torchserve torch-model-archiver + +# MMLAB +RUN pip install mmcv-full==${MMCV} -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.6.0/index.html +RUN pip install mmsegmentation==${MMSEG} + +RUN useradd -m model-server \ + && mkdir -p /home/model-server/tmp + +COPY entrypoint.sh /usr/local/bin/entrypoint.sh + +RUN chmod +x /usr/local/bin/entrypoint.sh \ + && chown -R model-server /home/model-server + +COPY config.properties /home/model-server/config.properties +RUN mkdir /home/model-server/model-store && chown -R model-server /home/model-server/model-store + +EXPOSE 8080 8081 8082 + +USER model-server +WORKDIR /home/model-server +ENV TEMP=/home/model-server/tmp +ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] +CMD ["serve"] diff --git a/docker/serve/config.properties b/docker/serve/config.properties new file mode 100644 index 0000000000..efb9c47e40 --- /dev/null +++ b/docker/serve/config.properties @@ -0,0 +1,5 @@ +inference_address=http://0.0.0.0:8080 +management_address=http://0.0.0.0:8081 +metrics_address=http://0.0.0.0:8082 +model_store=/home/model-server/model-store +load_models=all diff --git a/docker/serve/entrypoint.sh b/docker/serve/entrypoint.sh new file mode 100644 index 0000000000..41ba00b048 --- /dev/null +++ b/docker/serve/entrypoint.sh @@ -0,0 +1,12 @@ +#!/bin/bash +set -e + +if [[ "$1" = "serve" ]]; then + shift 1 + torchserve --start --ts-config /home/model-server/config.properties +else + eval "$@" +fi + +# prevent docker exit +tail -f /dev/null diff --git a/docs/useful_tools.md b/docs/useful_tools.md index b2c11f6e80..080e3d9dc7 100644 --- a/docs/useful_tools.md +++ b/docs/useful_tools.md @@ -254,3 +254,64 @@ Examples: ```shell python tools/analyze_logs.py log.json --keys loss --legend loss ``` + +## Model Serving + +In order to serve an `MMSegmentation` model with [`TorchServe`](https://pytorch.org/serve/), you can follow the steps: + +### 1. Convert model from MMSegmentation to TorchServe + +```shell +python tools/mmseg2torchserve.py ${CONFIG_FILE} ${CHECKPOINT_FILE} \ +--output-folder ${MODEL_STORE} \ +--model-name ${MODEL_NAME} +``` + +**Note**: ${MODEL_STORE} needs to be an absolute path to a folder. + +### 2. Build `mmseg-serve` docker image + +```shell +docker build -t mmseg-serve:latest docker/serve/ +``` + +### 3. Run `mmseg-serve` + +Check the official docs for [running TorchServe with docker](https://github.com/pytorch/serve/blob/master/docker/README.md#running-torchserve-in-a-production-docker-environment). + +In order to run in GPU, you need to install [nvidia-docker](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html). You can omit the `--gpus` argument in order to run in CPU. + +Example: + +```shell +docker run --rm \ +--cpus 8 \ +--gpus device=0 \ +-p8080:8080 -p8081:8081 -p8082:8082 \ +--mount type=bind,source=$MODEL_STORE,target=/home/model-server/model-store \ +mmseg-serve:latest +``` + +[Read the docs](https://github.com/pytorch/serve/blob/072f5d088cce9bb64b2a18af065886c9b01b317b/docs/rest_api.md) about the Inference (8080), Management (8081) and Metrics (8082) APis + +### 4. Test deployment + +```shell +curl -O https://raw.githubusercontent.com/open-mmlab/mmsegmentation/master/resources/3dogs.jpg +curl http://127.0.0.1:8080/predictions/${MODEL_NAME} -T 3dogs.jpg -o 3dogs_mask.png +``` + +The response will be a ".png" mask. + +You can visualize the output as follows: + +```python +import matplotlib.pyplot as plt +import mmcv +plt.imshow(mmcv.imread("3dogs_mask.png", "grayscale")) +plt.show() +``` + +You should see something similar to: + +![3dogs_mask](../resources/3dogs_mask.png) diff --git a/resources/3dogs.jpg b/resources/3dogs.jpg new file mode 100644 index 0000000000000000000000000000000000000000..02ef6fc849b9ff906a905944efb6ecc6be96496b GIT binary patch literal 185234 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�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%0DWdL~7zvDVGdnQWzdd^Nx+R^ALd3UwX*uB!*z< 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 我们会在 OpenMMLab 社区为大家 diff --git a/docs_zh-CN/imgs/seggroup_qrcode.jpg b/docs_zh-CN/imgs/seggroup_qrcode.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9684582ee1c004b29c44540fd0891a7d134171a4 GIT binary patch literal 71187 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 literal 0 HcmV?d00001 From ff37336d29532c6c5d34a43775e0da28a77910e5 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Mon, 9 Aug 2021 05:10:00 +0800 Subject: [PATCH 204/706] fix swin readme (#764) --- configs/swin/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/swin/README.md b/configs/swin/README.md index 8bf3a8ab65..2e50049a76 100644 --- a/configs/swin/README.md +++ b/configs/swin/README.md @@ -2,7 +2,7 @@ ## Introduction -[ALGORITHM] + ```latex @article{liu2021Swin, From f6b1dc5eb5d31207f268585ddf2fd2b93086fad8 Mon Sep 17 00:00:00 2001 From: MengzhangLI Date: Mon, 9 Aug 2021 18:12:52 +0800 Subject: [PATCH 205/706] fix citations of ANN (#759) --- configs/ann/README.md | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/configs/ann/README.md b/configs/ann/README.md index 7b166152fd..94b180601a 100644 --- a/configs/ann/README.md +++ b/configs/ann/README.md @@ -5,16 +5,12 @@ ```latex -@inproceedings{annn, - author = {Zhen Zhu and - Mengde Xu and - Song Bai and - Tengteng Huang and - Xiang Bai}, - title = {Asymmetric Non-local Neural Networks for Semantic Segmentation}, - booktitle={International Conference on Computer Vision}, - year = {2019}, - url = {http://arxiv.org/abs/1908.07678}, +@inproceedings{zhu2019asymmetric, + title={Asymmetric non-local neural networks for semantic segmentation}, + author={Zhu, Zhen and Xu, Mengde and Bai, Song and Huang, Tengteng and Bai, Xiang}, + booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision}, + pages={593--602}, + year={2019} } ``` From 6ee419917f9ae78ce9a25307e9f473b639700f8e Mon Sep 17 00:00:00 2001 From: MengzhangLI Date: Mon, 9 Aug 2021 18:13:09 +0800 Subject: [PATCH 206/706] fix fastscnn path (#760) --- configs/fastscnn/README.md | 2 +- configs/fastscnn/fastscnn.yml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/configs/fastscnn/README.md b/configs/fastscnn/README.md index f81b4b8b4b..82b9b2037c 100644 --- a/configs/fastscnn/README.md +++ b/configs/fastscnn/README.md @@ -19,4 +19,4 @@ | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | | --------- | --------- | --------- | ------: | -------- | -------------- | ----: | ------------- | --------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Fast-SCNN | Fast-SCNN | 512x1024 | 160000 | 3.3 | 56.45 | 70.96 | 72.65 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fast_scnn.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_8x4_160k_lr0.12_cityscapes-0cec9937.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_8x4_160k_lr0.12_cityscapes-20210630_164853.log.json) | +| Fast-SCNN | Fast-SCNN | 512x1024 | 160000 | 3.3 | 56.45 | 70.96 | 72.65 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fastscnn/fast_scnn_lr0.12_8x4_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_8x4_160k_lr0.12_cityscapes-0cec9937.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_8x4_160k_lr0.12_cityscapes-20210630_164853.log.json) | diff --git a/configs/fastscnn/fastscnn.yml b/configs/fastscnn/fastscnn.yml index daf5119696..d34e77396c 100644 --- a/configs/fastscnn/fastscnn.yml +++ b/configs/fastscnn/fastscnn.yml @@ -4,7 +4,7 @@ Collections: Training Data: - Cityscapes Models: -- Name: '' +- Name: fast_scnn_lr0.12_8x4_160k_cityscapes In Collection: fastscnn Metadata: backbone: Fast-SCNN @@ -24,5 +24,5 @@ Models: Metrics: mIoU: 70.96 mIoU(ms+flip): 72.65 - Config: '' - Weights: '' + Config: configs/fastscnn/fast_scnn_lr0.12_8x4_160k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_8x4_160k_lr0.12_cityscapes-0cec9937.pth From b539a43dd7752082f81d38a158de751a808cb5e4 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Tue, 10 Aug 2021 08:20:02 +0800 Subject: [PATCH 207/706] [Fix] Fix the log error (#766) * set the priority of EvalHook to LOW * add comment for priority change * fix comment --- mmseg/apis/train.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mmseg/apis/train.py b/mmseg/apis/train.py index 5f526df2b0..e1e771b697 100644 --- a/mmseg/apis/train.py +++ b/mmseg/apis/train.py @@ -107,7 +107,10 @@ def train_segmentor(model, eval_cfg = cfg.get('evaluation', {}) eval_cfg['by_epoch'] = cfg.runner['type'] != 'IterBasedRunner' eval_hook = DistEvalHook if distributed else EvalHook - runner.register_hook(eval_hook(val_dataloader, **eval_cfg)) + # In this PR (https://github.com/open-mmlab/mmcv/pull/1193), the + # priority of IterTimerHook has been modified from 'NORMAL' to 'LOW'. + runner.register_hook( + eval_hook(val_dataloader, **eval_cfg), priority='LOW') if cfg.resume_from: runner.resume(cfg.resume_from) From 06a053ce9cd737d87ce142df1f2d694f9e90af5e Mon Sep 17 00:00:00 2001 From: "q.yao" Date: Tue, 10 Aug 2021 20:47:08 +0800 Subject: [PATCH 208/706] support cpu deploy_test (#769) --- tools/deploy_test.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tools/deploy_test.py b/tools/deploy_test.py index 51f16b4a2a..56fd61ca88 100644 --- a/tools/deploy_test.py +++ b/tools/deploy_test.py @@ -53,6 +53,7 @@ def __init__(self, onnx_file: str, cfg: Any, device_id: int): self.io_binding.bind_output(name) self.cfg = cfg self.test_mode = cfg.model.test_cfg.mode + self.is_cuda_available = is_cuda_available def extract_feat(self, imgs): raise NotImplementedError('This method is not implemented.') @@ -65,6 +66,10 @@ def forward_train(self, imgs, img_metas, **kwargs): def simple_test(self, img: torch.Tensor, img_meta: Iterable, **kwargs) -> list: + if not self.is_cuda_available: + img = img.detach().cpu() + elif self.device_id >= 0: + img = img.cuda(self.device_id) device_type = img.device.type self.io_binding.bind_input( name='input', From 93a558f0d77a154ec42de19637fc0b2613eeb9d8 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Thu, 12 Aug 2021 14:34:02 +0800 Subject: [PATCH 209/706] [Fix] Update digit_version (#778) * update digit_version * add unittest * fix import --- mmseg/__init__.py | 53 +++++++++++++++++++++++++++++-------- mmseg/datasets/builder.py | 4 +-- requirements/runtime.txt | 1 + setup.cfg | 2 +- tests/test_digit_version.py | 20 ++++++++++++++ 5 files changed, 66 insertions(+), 14 deletions(-) create mode 100644 tests/test_digit_version.py diff --git a/mmseg/__init__.py b/mmseg/__init__.py index dbdebf9943..317622c924 100644 --- a/mmseg/__init__.py +++ b/mmseg/__init__.py @@ -1,4 +1,7 @@ +import warnings + import mmcv +from packaging.version import parse from .version import __version__, version_info @@ -6,16 +9,44 @@ MMCV_MAX = '1.4.0' -def digit_version(version_str): - digit_version = [] - for x in version_str.split('.'): - if x.isdigit(): - digit_version.append(int(x)) - elif x.find('rc') != -1: - patch_version = x.split('rc') - digit_version.append(int(patch_version[0]) - 1) - digit_version.append(int(patch_version[1])) - return digit_version +def digit_version(version_str: str, length: int = 4): + """Convert a version string into a tuple of integers. + + This method is usually used for comparing two versions. For pre-release + versions: alpha < beta < rc. + + Args: + version_str (str): The version string. + length (int): The maximum number of version levels. Default: 4. + + Returns: + tuple[int]: The version info in digits (integers). + """ + version = parse(version_str) + assert version.release, f'failed to parse version {version_str}' + release = list(version.release) + release = release[:length] + if len(release) < length: + release = release + [0] * (length - len(release)) + if version.is_prerelease: + mapping = {'a': -3, 'b': -2, 'rc': -1} + val = -4 + # version.pre can be None + if version.pre: + if version.pre[0] not in mapping: + warnings.warn(f'unknown prerelease version {version.pre[0]}, ' + 'version checking may go wrong') + else: + val = mapping[version.pre[0]] + release.extend([val, version.pre[-1]]) + else: + release.extend([val, 0]) + + elif version.is_postrelease: + release.extend([1, version.post]) + else: + release.extend([0, 0]) + return tuple(release) mmcv_min_version = digit_version(MMCV_MIN) @@ -27,4 +58,4 @@ def digit_version(version_str): f'MMCV=={mmcv.__version__} is used but incompatible. ' \ f'Please install mmcv>={mmcv_min_version}, <={mmcv_max_version}.' -__all__ = ['__version__', 'version_info'] +__all__ = ['__version__', 'version_info', 'digit_version'] diff --git a/mmseg/datasets/builder.py b/mmseg/datasets/builder.py index 5994ab233b..82f6f460fb 100644 --- a/mmseg/datasets/builder.py +++ b/mmseg/datasets/builder.py @@ -7,7 +7,7 @@ import torch from mmcv.parallel import collate from mmcv.runner import get_dist_info -from mmcv.utils import Registry, build_from_cfg +from mmcv.utils import Registry, build_from_cfg, digit_version from torch.utils.data import DataLoader, DistributedSampler if platform.system() != 'Windows': @@ -133,7 +133,7 @@ def build_dataloader(dataset, worker_init_fn, num_workers=num_workers, rank=rank, seed=seed) if seed is not None else None - if torch.__version__ >= '1.8.0': + if digit_version(torch.__version__) >= digit_version('1.8.0'): data_loader = DataLoader( dataset, batch_size=batch_size, diff --git a/requirements/runtime.txt b/requirements/runtime.txt index 47048d029a..2712f504c7 100644 --- a/requirements/runtime.txt +++ b/requirements/runtime.txt @@ -1,3 +1,4 @@ matplotlib numpy +packaging prettytable diff --git a/setup.cfg b/setup.cfg index 0dbe479fa7..0c80b37ce7 100644 --- a/setup.cfg +++ b/setup.cfg @@ -8,6 +8,6 @@ line_length = 79 multi_line_output = 0 known_standard_library = setuptools known_first_party = mmseg -known_third_party = PIL,cityscapesscripts,cv2,detail,matplotlib,mmcv,numpy,onnxruntime,oss2,prettytable,pytest,scipy,seaborn,torch,ts +known_third_party = PIL,cityscapesscripts,cv2,detail,matplotlib,mmcv,numpy,onnxruntime,oss2,packaging,prettytable,pytest,scipy,seaborn,torch,ts no_lines_before = STDLIB,LOCALFOLDER default_section = THIRDPARTY diff --git a/tests/test_digit_version.py b/tests/test_digit_version.py new file mode 100644 index 0000000000..4d6649005c --- /dev/null +++ b/tests/test_digit_version.py @@ -0,0 +1,20 @@ +from mmseg import digit_version + + +def test_digit_version(): + assert digit_version('0.2.16') == (0, 2, 16, 0, 0, 0) + assert digit_version('1.2.3') == (1, 2, 3, 0, 0, 0) + assert digit_version('1.2.3rc0') == (1, 2, 3, 0, -1, 0) + assert digit_version('1.2.3rc1') == (1, 2, 3, 0, -1, 1) + assert digit_version('1.0rc0') == (1, 0, 0, 0, -1, 0) + assert digit_version('1.0') == digit_version('1.0.0') + assert digit_version('1.5.0+cuda90_cudnn7.6.3_lms') == digit_version('1.5') + assert digit_version('1.0.0dev') < digit_version('1.0.0a') + assert digit_version('1.0.0a') < digit_version('1.0.0a1') + assert digit_version('1.0.0a') < digit_version('1.0.0b') + assert digit_version('1.0.0b') < digit_version('1.0.0rc') + assert digit_version('1.0.0rc1') < digit_version('1.0.0') + assert digit_version('1.0.0') < digit_version('1.0.0post') + assert digit_version('1.0.0post') < digit_version('1.0.0post1') + assert digit_version('v1') == (1, 0, 0, 0, 0, 0) + assert digit_version('v1.1.5') == (1, 1, 5, 0, 0, 0) From 0abacd8bc5137f10fd453ba8c4123053359063b4 Mon Sep 17 00:00:00 2001 From: MengzhangLI Date: Thu, 12 Aug 2021 16:23:47 +0800 Subject: [PATCH 210/706] [Doc] "Model Serving" Chinese doc in useful_tools.md (#761) * Add Model Serving Chinese docs * Update docs_zh-CN/useful_tools.md Co-authored-by: Junjun2016 * Update useful_tools.md * fix lint error Co-authored-by: Junjun2016 --- docs/useful_tools.md | 2 +- docs_zh-CN/useful_tools.md | 61 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 1 deletion(-) diff --git a/docs/useful_tools.md b/docs/useful_tools.md index 080e3d9dc7..e11d9322ed 100644 --- a/docs/useful_tools.md +++ b/docs/useful_tools.md @@ -292,7 +292,7 @@ docker run --rm \ mmseg-serve:latest ``` -[Read the docs](https://github.com/pytorch/serve/blob/072f5d088cce9bb64b2a18af065886c9b01b317b/docs/rest_api.md) about the Inference (8080), Management (8081) and Metrics (8082) APis +[Read the docs](https://github.com/pytorch/serve/blob/072f5d088cce9bb64b2a18af065886c9b01b317b/docs/rest_api.md) about the Inference (8080), Management (8081) and Metrics (8082) APIs ### 4. Test deployment diff --git a/docs_zh-CN/useful_tools.md b/docs_zh-CN/useful_tools.md index 65b571d23d..63bc8eeaeb 100644 --- a/docs_zh-CN/useful_tools.md +++ b/docs_zh-CN/useful_tools.md @@ -258,3 +258,64 @@ python tools/analyze_logs.py xxx.log.json [--keys ${KEYS}] [--legend ${LEGEND}] ```shell python tools/analyze_logs.py log.json --keys loss --legend loss ``` + +## 模型服务 + +为了用 [`TorchServe`](https://pytorch.org/serve/) 服务 `MMSegmentation` 的模型 , 您可以遵循如下流程: + +### 1. 将 model 从 MMSegmentation 转换到 TorchServe + +```shell +python tools/mmseg2torchserve.py ${CONFIG_FILE} ${CHECKPOINT_FILE} \ +--output-folder ${MODEL_STORE} \ +--model-name ${MODEL_NAME} +``` + +**注意**: ${MODEL_STORE} 需要设置为某个文件夹的绝对路径 + +### 2. 构建 `mmseg-serve` 容器镜像 (docker image) + +```shell +docker build -t mmseg-serve:latest docker/serve/ +``` + +### 3. 运行 `mmseg-serve` + +请查阅官方文档: [使用容器运行 TorchServe](https://github.com/pytorch/serve/blob/master/docker/README.md#running-torchserve-in-a-production-docker-environment) + +为了在 GPU 环境下使用, 您需要安装 [nvidia-docker](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html). 若在 CPU 环境下使用,您可以忽略添加 `--gpus` 参数。 + +示例: + +```shell +docker run --rm \ +--cpus 8 \ +--gpus device=0 \ +-p8080:8080 -p8081:8081 -p8082:8082 \ +--mount type=bind,source=$MODEL_STORE,target=/home/model-server/model-store \ +mmseg-serve:latest +``` + +阅读关于推理 (8080), 管理 (8081) 和指标 (8082) APIs 的 [文档](https://github.com/pytorch/serve/blob/072f5d088cce9bb64b2a18af065886c9b01b317b/docs/rest_api.md) 。 + +### 4. 测试部署 + +```shell +curl -O https://raw.githubusercontent.com/open-mmlab/mmsegmentation/master/resources/3dogs.jpg +curl http://127.0.0.1:8080/predictions/${MODEL_NAME} -T 3dogs.jpg -o 3dogs_mask.png +``` + +得到的响应将是一个 ".png" 的分割掩码. + +您可以按照如下方法可视化输出: + +```python +import matplotlib.pyplot as plt +import mmcv +plt.imshow(mmcv.imread("3dogs_mask.png", "grayscale")) +plt.show() +``` + +看到的东西将会和下图类似: + +![3dogs_mask](../resources/3dogs_mask.png) From b4fd32d049fb910cd6765f4ae35fc3992ef2e178 Mon Sep 17 00:00:00 2001 From: sennnnn <58427300+sennnnn@users.noreply.github.com> Date: Fri, 13 Aug 2021 13:31:19 +0800 Subject: [PATCH 211/706] [Feature] Add segformer decode head and related train config (#599) * [Feature]Segformer re-implementation * Using act_cfg and norm_cfg to control activation and normalization * Split this PR into several little PRs * Fix lint error * Remove SegFormerHead * [Feature] Add segformer decode head and related train config * Add ade20K trainval support for segformer 1. Add related train and val configs; 2. Add AlignedResize; * Set arg: find_unused_parameters = True * parameters init refactor * 1. Refactor segformer backbone parameters init; 2. Remove rebundant functions and unit tests; * Remove rebundant codes * Replace Linear Layer to 1X1 Conv * Use nn.ModuleList to refactor segformer head. * Remove local to_xtuple * 1. Remove rebundant codes; 2. Modify module name; * Refactor the backbone of segformer using mmcv.cnn.bricks.transformer.py * Fix some code logic bugs. * Add mit_convert.py to match pretrain keys of segformer. * Resolve some comments. * 1. Add some assert to ensure right params; 2. Support flexible peconv position; * Add pe_index assert and fix unit test. * 1. Add doc string for MixVisionTransformer; 2. Add some unit tests for MixVisionTransformer; * Use hw_shape to pass shape of feature map. * 1. Fix doc string of MixVisionTransformer; 2. Simplify MixFFN; 3. Modify H, W to hw_shape; * Add more unit tests. * Add doc string for shape convertion functions. * Add some unit tests to improve code coverage. * Fix Segformer backbone pretrain weights match bug. * Modify configs of segformer. * resolve the shape convertion functions doc string. * Add pad_to_patch_size arg. * Support progressive test with fewer memory cost. * Modify default value of pad_to_patch_size arg. * Temp code * Using processor to refactor evaluation workflow. * refactor eval hook. * Fix process bar. * Fix middle save argument. * Modify some variable name of dataset evaluate api. * Modify some viriable name of eval hook. * Fix some priority bugs of eval hook. * Fix some bugs about model loading and eval hook. * Add ade20k 640x640 dataset. * Fix related segformer configs. * Depreciated efficient_test. * Fix training progress blocked by eval hook. * Depreciated old test api. * Modify error patch size. * Fix pretrain of mit_b0 * Fix the test api error. * Modify dataset base config. * Fix test api error. * Modify outer api. * Build a sampler test api. * TODO: Refactor format_results. * Modify variable names. * Fix num_classes bug. * Fix sampler index bug. * Fix grammaly bug. * Add part of benchmark results. * Support batch sampler. * More readable test api. * Remove some command arg and fix eval hook bug. * Support format-only arg. * Modify format_results of datasets. * Modify tool which use test apis. * Update readme. * Update readme of segformer. * Updata readme of segformer. * Update segformer readme and fix segformer mit_b4. * Update readme of segformer. * Clean AlignedResize related config. * Clean code from pr #709 * Clean code from pr #709 * Add 512x512 segformer_mit-b5. * Fix lint. * Fix some segformer head bugs. * Add segformer unit tests. * Replace AlignedResize to ResizeToMultiple. * Modify readme of segformer. * Fix bug of ResizeToMultiple. * Add ResizeToMultiple unit tests. * Resolve conflict. * Simplify the implementation of ResizeToMultiple. * Update test results. * Fix multi-scale test error when resize_ratio=1.75 and input size=640x640. * Update segformer results. * Update Segformer results. * Fix some url bugs and pipelines bug. * Move ckpt convertion to tools. * Add segformer official pretrain weights usage. * Clean redundant codes. * Remove redundant codes. * Unfied format. * Add description for segformer converter. * Update workers. --- configs/_base_/models/segformer_mit-b0.py | 34 +++++++++ configs/segformer/readme.md | 73 ++++++++++++++++++ .../segformer_mit-b0_512x512_160k_ade20k.py | 33 ++++++++ .../segformer_mit-b1_512x512_160k_ade20k.py | 8 ++ .../segformer_mit-b2_512x512_160k_ade20k.py | 8 ++ .../segformer_mit-b3_512x512_160k_ade20k.py | 8 ++ .../segformer_mit-b4_512x512_160k_ade20k.py | 8 ++ .../segformer_mit-b5_512x512_160k_ade20k.py | 8 ++ .../segformer_mit-b5_640x640_160k_ade20k.py | 44 +++++++++++ mmseg/datasets/pipelines/transforms.py | 57 ++++++++++++++ mmseg/models/backbones/mit.py | 18 ++--- mmseg/models/decode_heads/__init__.py | 4 +- mmseg/models/decode_heads/segformer_head.py | 65 ++++++++++++++++ mmseg/models/utils/__init__.py | 4 +- mmseg/models/utils/ckpt_convert.py | 49 ------------ tests/test_data/test_transform.py | 20 +++++ .../test_heads/test_segformer_head.py | 39 ++++++++++ tools/model_converters/mit_convert.py | 76 +++++++++++++++++++ 18 files changed, 494 insertions(+), 62 deletions(-) create mode 100644 configs/_base_/models/segformer_mit-b0.py create mode 100644 configs/segformer/readme.md create mode 100644 configs/segformer/segformer_mit-b0_512x512_160k_ade20k.py create mode 100644 configs/segformer/segformer_mit-b1_512x512_160k_ade20k.py create mode 100644 configs/segformer/segformer_mit-b2_512x512_160k_ade20k.py create mode 100644 configs/segformer/segformer_mit-b3_512x512_160k_ade20k.py create mode 100644 configs/segformer/segformer_mit-b4_512x512_160k_ade20k.py create mode 100644 configs/segformer/segformer_mit-b5_512x512_160k_ade20k.py create mode 100644 configs/segformer/segformer_mit-b5_640x640_160k_ade20k.py create mode 100644 mmseg/models/decode_heads/segformer_head.py create mode 100644 tests/test_models/test_heads/test_segformer_head.py create mode 100644 tools/model_converters/mit_convert.py diff --git a/configs/_base_/models/segformer_mit-b0.py b/configs/_base_/models/segformer_mit-b0.py new file mode 100644 index 0000000000..5b3e07331d --- /dev/null +++ b/configs/_base_/models/segformer_mit-b0.py @@ -0,0 +1,34 @@ +# model settings +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + type='EncoderDecoder', + pretrained=None, + backbone=dict( + type='MixVisionTransformer', + in_channels=3, + embed_dims=32, + num_stages=4, + num_layers=[2, 2, 2, 2], + num_heads=[1, 2, 5, 8], + patch_sizes=[7, 3, 3, 3], + sr_ratios=[8, 4, 2, 1], + out_indices=(0, 1, 2, 3), + mlp_ratio=4, + qkv_bias=True, + drop_rate=0.0, + attn_drop_rate=0.0, + drop_path_rate=0.1), + decode_head=dict( + type='SegformerHead', + in_channels=[32, 64, 160, 256], + in_index=[0, 1, 2, 3], + channels=256, + dropout_ratio=0.1, + num_classes=19, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/segformer/readme.md b/configs/segformer/readme.md new file mode 100644 index 0000000000..cf2fece512 --- /dev/null +++ b/configs/segformer/readme.md @@ -0,0 +1,73 @@ +# SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers + +## Introduction + + + +```latex +@article{xie2021segformer, + title={SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers}, + author={Xie, Enze and Wang, Wenhai and Yu, Zhiding and Anandkumar, Anima and Alvarez, Jose M and Luo, Ping}, + journal={arXiv preprint arXiv:2105.15203}, + year={2021} +} +``` + +## Results and models + +### ADE20k + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------: | -------------- | ---: | ------------- | ------ | -------- | +|Segformer | MIT-B0 | 512x512 | 160000 | 2.1 | 51.32 | 37.41 | 38.34 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/segformer/segformer_mit-b0_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b0_512x512_160k_ade20k/segformer_mit-b0_512x512_160k_ade20k_20210726_101530-8ffa8fda.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b0_512x512_160k_ade20k/segformer_mit-b0_512x512_160k_ade20k_20210726_101530.log.json) | +|Segformer | MIT-B1 | 512x512 | 160000 | 2.6 | 47.66 | 40.97 | 42.54 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/segformer/segformer_mit-b1_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b1_512x512_160k_ade20k/segformer_mit-b1_512x512_160k_ade20k_20210726_112106-d70e859d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b1_512x512_160k_ade20k/segformer_mit-b1_512x512_160k_ade20k_20210726_112106.log.json) | +|Segformer | MIT-B2 | 512x512 | 160000 | 3.6 | 30.88 | 45.58 | 47.03 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/segformer/segformer_mit-b2_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b2_512x512_160k_ade20k/segformer_mit-b2_512x512_160k_ade20k_20210726_112103-cbd414ac.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b2_512x512_160k_ade20k/segformer_mit-b2_512x512_160k_ade20k_20210726_112103.log.json) | +|Segformer | MIT-B3 | 512x512 | 160000 | 4.8 | 22.11 | 47.82 | 48.81 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/segformer/segformer_mit-b3_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b3_512x512_160k_ade20k/segformer_mit-b3_512x512_160k_ade20k_20210726_081410-962b98d2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b3_512x512_160k_ade20k/segformer_mit-b3_512x512_160k_ade20k_20210726_081410.log.json) | +|Segformer | MIT-B4 | 512x512 | 160000 | 6.1 | 15.45 | 48.46 | 49.76 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/segformer/segformer_mit-b4_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b4_512x512_160k_ade20k/segformer_mit-b4_512x512_160k_ade20k_20210728_183055-7f509d7d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b4_512x512_160k_ade20k/segformer_mit-b4_512x512_160k_ade20k_20210728_183055.log.json) | +|Segformer | MIT-B5 | 512x512 | 160000 | 7.2 | 11.89 | 49.13 | 50.22 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/segformer/segformer_mit-b5_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b5_512x512_160k_ade20k/segformer_mit-b5_512x512_160k_ade20k_20210726_145235-94cedf59.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b5_512x512_160k_ade20k/segformer_mit-b5_512x512_160k_ade20k_20210726_145235.log.json) | +|Segformer | MIT-B5 | 640x640 | 160000 | 11.5 | 11.30 | 49.62 | 50.36 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/segformer/segformer_mit-b5_640x640_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b5_640x640_160k_ade20k/segformer_mit-b5_640x640_160k_ade20k_20210801_121243-41d2845b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b5_640x640_160k_ade20k/segformer_mit-b5_640x640_160k_ade20k_20210801_121243.log.json) | + +Evaluation with AlignedResize: + +| Method | Backbone | Crop Size | Lr schd | mIoU | mIoU(ms+flip) | +| ------ | -------- | --------- | ------: | ---: | ------------- | +|Segformer | MIT-B0 | 512x512 | 160000 | 38.1 | 38.57 | +|Segformer | MIT-B1 | 512x512 | 160000 | 41.64 | 42.76 | +|Segformer | MIT-B2 | 512x512 | 160000 | 46.53 | 47.49 | +|Segformer | MIT-B3 | 512x512 | 160000 | 48.46 | 49.14 | +|Segformer | MIT-B4 | 512x512 | 160000 | 49.34 | 50.29 | +|Segformer | MIT-B5 | 512x512 | 160000 | 50.08 | 50.72 | +|Segformer | MIT-B5 | 640x640 | 160000 | 50.58 | 50.8 | + +We replace `AlignedResize` in original implementatiuon to `Resize + ResizeToMultiple`. If you want to test by +using `AlignedResize`, you can change the dataset pipeline like this: + +```python +test_pipeline = [ + dict(type='LoadImageFromFile'), + dict( + type='MultiScaleFlipAug', + img_scale=(2048, 512), + # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75], + flip=False, + transforms=[ + dict(type='Resize', keep_ratio=True), + # resize image to multiple of 32, improve SegFormer by 0.5-1.0 mIoU. + dict(type='ResizeToMultiple', size_divisor=32), + dict(type='RandomFlip'), + dict(type='Normalize', **img_norm_cfg), + dict(type='ImageToTensor', keys=['img']), + dict(type='Collect', keys=['img']), + ]) +] +``` + +## How to use segformer official pretrain weights + +We convert the backbone weights from the official repo (https://github.com/NVlabs/SegFormer) with `tools/model_converters/mit_convert.py`. + +You may follow below steps to start segformer training preparation: + +1. Download segformer pretrain weights (Suggest put in `pretrain/`); +2. Run convert script to convert official pretrain weights: `python tools/model_converters/mit_convert.py pretrain/mit_b0.pth pretrain/mit_b0.pth`; +3. Modify `pretrained` of segformer model config, for example, `pretrained` of `segformer_mit-b0_512x512_160k_ade20k.py` is set to `pretrain/mit_b0.pth`; diff --git a/configs/segformer/segformer_mit-b0_512x512_160k_ade20k.py b/configs/segformer/segformer_mit-b0_512x512_160k_ade20k.py new file mode 100644 index 0000000000..03065a7940 --- /dev/null +++ b/configs/segformer/segformer_mit-b0_512x512_160k_ade20k.py @@ -0,0 +1,33 @@ +_base_ = [ + '../_base_/models/segformer_mit-b0.py', '../_base_/datasets/ade20k.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' +] + +model = dict( + pretrained='pretrain/mit_b0.pth', decode_head=dict(num_classes=150)) + +# optimizer +optimizer = dict( + _delete_=True, + type='AdamW', + lr=0.00006, + betas=(0.9, 0.999), + weight_decay=0.01, + paramwise_cfg=dict( + custom_keys={ + 'pos_block': dict(decay_mult=0.), + 'norm': dict(decay_mult=0.), + 'head': dict(lr_mult=10.) + })) + +lr_config = dict( + _delete_=True, + policy='poly', + warmup='linear', + warmup_iters=1500, + warmup_ratio=1e-6, + power=1.0, + min_lr=0.0, + by_epoch=False) + +data = dict(samples_per_gpu=2, workers_per_gpu=2) diff --git a/configs/segformer/segformer_mit-b1_512x512_160k_ade20k.py b/configs/segformer/segformer_mit-b1_512x512_160k_ade20k.py new file mode 100644 index 0000000000..5fce602144 --- /dev/null +++ b/configs/segformer/segformer_mit-b1_512x512_160k_ade20k.py @@ -0,0 +1,8 @@ +_base_ = ['./segformer_mit-b0_512x512_160k_ade20k.py'] + +# model settings +model = dict( + pretrained='pretrain/mit_b1.pth', + backbone=dict( + embed_dims=64, num_heads=[1, 2, 5, 8], num_layers=[2, 2, 2, 2]), + decode_head=dict(in_channels=[64, 128, 320, 512])) diff --git a/configs/segformer/segformer_mit-b2_512x512_160k_ade20k.py b/configs/segformer/segformer_mit-b2_512x512_160k_ade20k.py new file mode 100644 index 0000000000..afb24b0170 --- /dev/null +++ b/configs/segformer/segformer_mit-b2_512x512_160k_ade20k.py @@ -0,0 +1,8 @@ +_base_ = ['./segformer_mit-b0_512x512_160k_ade20k.py'] + +# model settings +model = dict( + pretrained='pretrain/mit_b2.pth', + backbone=dict( + embed_dims=64, num_heads=[1, 2, 5, 8], num_layers=[3, 4, 6, 3]), + decode_head=dict(in_channels=[64, 128, 320, 512])) diff --git a/configs/segformer/segformer_mit-b3_512x512_160k_ade20k.py b/configs/segformer/segformer_mit-b3_512x512_160k_ade20k.py new file mode 100644 index 0000000000..52348f6fcc --- /dev/null +++ b/configs/segformer/segformer_mit-b3_512x512_160k_ade20k.py @@ -0,0 +1,8 @@ +_base_ = ['./segformer_mit-b0_512x512_160k_ade20k.py'] + +# model settings +model = dict( + pretrained='pretrain/mit_b3.pth', + backbone=dict( + embed_dims=64, num_heads=[1, 2, 5, 8], num_layers=[3, 4, 18, 3]), + decode_head=dict(in_channels=[64, 128, 320, 512])) diff --git a/configs/segformer/segformer_mit-b4_512x512_160k_ade20k.py b/configs/segformer/segformer_mit-b4_512x512_160k_ade20k.py new file mode 100644 index 0000000000..7b50b75608 --- /dev/null +++ b/configs/segformer/segformer_mit-b4_512x512_160k_ade20k.py @@ -0,0 +1,8 @@ +_base_ = ['./segformer_mit-b0_512x512_160k_ade20k.py'] + +# model settings +model = dict( + pretrained='pretrain/mit_b4.pth', + backbone=dict( + embed_dims=64, num_heads=[1, 2, 5, 8], num_layers=[3, 8, 27, 3]), + decode_head=dict(in_channels=[64, 128, 320, 512])) diff --git a/configs/segformer/segformer_mit-b5_512x512_160k_ade20k.py b/configs/segformer/segformer_mit-b5_512x512_160k_ade20k.py new file mode 100644 index 0000000000..5212fb1f6a --- /dev/null +++ b/configs/segformer/segformer_mit-b5_512x512_160k_ade20k.py @@ -0,0 +1,8 @@ +_base_ = ['./segformer_mit-b0_512x512_160k_ade20k.py'] + +# model settings +model = dict( + pretrained='pretrain/mit_b5.pth', + backbone=dict( + embed_dims=64, num_heads=[1, 2, 5, 8], num_layers=[3, 6, 40, 3]), + decode_head=dict(in_channels=[64, 128, 320, 512])) diff --git a/configs/segformer/segformer_mit-b5_640x640_160k_ade20k.py b/configs/segformer/segformer_mit-b5_640x640_160k_ade20k.py new file mode 100644 index 0000000000..d21774c4d6 --- /dev/null +++ b/configs/segformer/segformer_mit-b5_640x640_160k_ade20k.py @@ -0,0 +1,44 @@ +_base_ = ['./segformer_mit-b0_512x512_160k_ade20k.py'] + +# dataset settings +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) +crop_size = (640, 640) +train_pipeline = [ + dict(type='LoadImageFromFile'), + dict(type='LoadAnnotations', reduce_zero_label=True), + dict(type='Resize', img_scale=(2048, 640), ratio_range=(0.5, 2.0)), + dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='RandomFlip', prob=0.5), + dict(type='PhotoMetricDistortion'), + dict(type='Normalize', **img_norm_cfg), + dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255), + dict(type='DefaultFormatBundle'), + dict(type='Collect', keys=['img', 'gt_semantic_seg']), +] +test_pipeline = [ + dict(type='LoadImageFromFile'), + dict( + type='MultiScaleFlipAug', + img_scale=(2048, 640), + # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75], + flip=False, + transforms=[ + dict(type='Resize', keep_ratio=True), + dict(type='RandomFlip'), + dict(type='Normalize', **img_norm_cfg), + dict(type='ImageToTensor', keys=['img']), + dict(type='Collect', keys=['img']), + ]) +] +data = dict( + train=dict(pipeline=train_pipeline), + val=dict(pipeline=test_pipeline), + test=dict(pipeline=test_pipeline)) + +# model settings +model = dict( + pretrained='pretrain/mit_b5.pth', + backbone=dict( + embed_dims=64, num_heads=[1, 2, 5, 8], num_layers=[3, 6, 40, 3]), + decode_head=dict(in_channels=[64, 128, 320, 512])) diff --git a/mmseg/datasets/pipelines/transforms.py b/mmseg/datasets/pipelines/transforms.py index 1fcba69a2c..c5e94a0f14 100644 --- a/mmseg/datasets/pipelines/transforms.py +++ b/mmseg/datasets/pipelines/transforms.py @@ -6,6 +6,63 @@ from ..builder import PIPELINES +@PIPELINES.register_module() +class ResizeToMultiple(object): + """Resize images & seg to multiple of divisor. + + Args: + size_divisor (int): images and gt seg maps need to resize to multiple + of size_divisor. Default: 32. + interpolation (str, optional): The interpolation mode of image resize. + Default: None + """ + + def __init__(self, size_divisor=32, interpolation=None): + self.size_divisor = size_divisor + self.interpolation = interpolation + + def __call__(self, results): + """Call function to resize images, semantic segmentation map to + multiple of size divisor. + + Args: + results (dict): Result dict from loading pipeline. + + Returns: + dict: Resized results, 'img_shape', 'pad_shape' keys are updated. + """ + # Align image to multiple of size divisor. + img = results['img'] + img = mmcv.imresize_to_multiple( + img, + self.size_divisor, + scale_factor=1, + interpolation=self.interpolation + if self.interpolation else 'bilinear') + + results['img'] = img + results['img_shape'] = img.shape + results['pad_shape'] = img.shape + + # Align segmentation map to multiple of size divisor. + for key in results.get('seg_fields', []): + gt_seg = results[key] + gt_seg = mmcv.imresize_to_multiple( + gt_seg, + self.size_divisor, + scale_factor=1, + interpolation='nearest') + results[key] = gt_seg + + return results + + def __repr__(self): + repr_str = self.__class__.__name__ + repr_str += (f'(size_divisor={self.size_divisor}, ' + f'interpolation={self.interpolation})') + return repr_str + + @PIPELINES.register_module() class Resize(object): """Resize images & seg. diff --git a/mmseg/models/backbones/mit.py b/mmseg/models/backbones/mit.py index cad0b43134..9d41ea58c1 100644 --- a/mmseg/models/backbones/mit.py +++ b/mmseg/models/backbones/mit.py @@ -11,7 +11,7 @@ from ...utils import get_root_logger from ..builder import BACKBONES -from ..utils import PatchEmbed, mit_convert, nchw_to_nlc, nlc_to_nchw +from ..utils import PatchEmbed, nchw_to_nlc, nlc_to_nchw class MixFFN(BaseModule): @@ -159,7 +159,13 @@ def forward(self, x, hw_shape, identity=None): if identity is None: identity = x_q - out = self.attn(query=x_q, key=x_kv, value=x_kv)[0] + # `need_weights=True` will let nn.MultiHeadAttention + # `return attn_output, attn_output_weights.sum(dim=1) / num_heads` + # The `attn_output_weights.sum(dim=1)` may cause cuda error. So, we set + # `need_weights=False` to ignore `attn_output_weights.sum(dim=1)`. + # This issue - `https://github.com/pytorch/pytorch/issues/37583` report + # the error that large scale tensor sum operation may cause cuda error. + out = self.attn(query=x_q, key=x_kv, value=x_kv, need_weights=False)[0] return identity + self.dropout_layer(self.proj_drop(out)) @@ -387,17 +393,9 @@ def init_weights(self): self.pretrained, logger=logger, map_location='cpu') if 'state_dict' in checkpoint: state_dict = checkpoint['state_dict'] - elif 'model' in checkpoint: - state_dict = checkpoint['model'] else: state_dict = checkpoint - if self.pretrain_style == 'official': - # Because segformer backbone is not support by mmcls, - # so we need to convert pretrain weights to match this - # implementation. - state_dict = mit_convert(state_dict) - self.load_state_dict(state_dict, False) def forward(self, x): diff --git a/mmseg/models/decode_heads/__init__.py b/mmseg/models/decode_heads/__init__.py index fcd0fa60bc..5b64125056 100644 --- a/mmseg/models/decode_heads/__init__.py +++ b/mmseg/models/decode_heads/__init__.py @@ -16,6 +16,7 @@ from .point_head import PointHead from .psa_head import PSAHead from .psp_head import PSPHead +from .segformer_head import SegformerHead from .sep_aspp_head import DepthwiseSeparableASPPHead from .sep_fcn_head import DepthwiseSeparableFCNHead from .setr_mla_head import SETRMLAHead @@ -26,5 +27,6 @@ 'FCNHead', 'PSPHead', 'ASPPHead', 'PSAHead', 'NLHead', 'GCHead', 'CCHead', 'UPerHead', 'DepthwiseSeparableASPPHead', 'ANNHead', 'DAHead', 'OCRHead', 'EncHead', 'DepthwiseSeparableFCNHead', 'FPNHead', 'EMAHead', 'DNLHead', - 'PointHead', 'APCHead', 'DMHead', 'LRASPPHead', 'SETRUPHead', 'SETRMLAHead' + 'PointHead', 'APCHead', 'DMHead', 'LRASPPHead', 'SETRUPHead', + 'SETRMLAHead', 'SegformerHead' ] diff --git a/mmseg/models/decode_heads/segformer_head.py b/mmseg/models/decode_heads/segformer_head.py new file mode 100644 index 0000000000..9ae1ff69d8 --- /dev/null +++ b/mmseg/models/decode_heads/segformer_head.py @@ -0,0 +1,65 @@ +import torch +import torch.nn as nn +from mmcv.cnn import ConvModule + +from mmseg.models.builder import HEADS +from mmseg.models.decode_heads.decode_head import BaseDecodeHead +from mmseg.ops import resize + + +@HEADS.register_module() +class SegformerHead(BaseDecodeHead): + """The all mlp Head of segformer. + + This head is the implementation of + `Segformer ` _. + + Args: + interpolate_mode: The interpolate mode of MLP head upsample operation. + Default: 'bilinear'. + """ + + def __init__(self, interpolate_mode='bilinear', **kwargs): + super().__init__(input_transform='multiple_select', **kwargs) + + self.interpolate_mode = interpolate_mode + num_inputs = len(self.in_channels) + + assert num_inputs == len(self.in_index) + + self.convs = nn.ModuleList() + for i in range(num_inputs): + self.convs.append( + ConvModule( + in_channels=self.in_channels[i], + out_channels=self.channels, + kernel_size=1, + stride=1, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg)) + + self.fusion_conv = ConvModule( + in_channels=self.channels * num_inputs, + out_channels=self.channels, + kernel_size=1, + norm_cfg=self.norm_cfg) + + def forward(self, inputs): + # Receive 4 stage backbone feature map: 1/4, 1/8, 1/16, 1/32 + inputs = self._transform_inputs(inputs) + outs = [] + for idx in range(len(inputs)): + x = inputs[idx] + conv = self.convs[idx] + outs.append( + resize( + input=conv(x), + size=inputs[0].shape[2:], + mode=self.interpolate_mode, + align_corners=self.align_corners)) + + out = self.fusion_conv(torch.cat(outs, dim=1)) + + out = self.cls_seg(out) + + return out diff --git a/mmseg/models/utils/__init__.py b/mmseg/models/utils/__init__.py index 32a953b834..6ef12bb9ba 100644 --- a/mmseg/models/utils/__init__.py +++ b/mmseg/models/utils/__init__.py @@ -1,4 +1,4 @@ -from .ckpt_convert import mit_convert, swin_convert, vit_convert +from .ckpt_convert import swin_convert, vit_convert from .embed import PatchEmbed from .inverted_residual import InvertedResidual, InvertedResidualV3 from .make_divisible import make_divisible @@ -11,5 +11,5 @@ __all__ = [ 'ResLayer', 'SelfAttentionBlock', 'make_divisible', 'InvertedResidual', 'UpConvBlock', 'InvertedResidualV3', 'SELayer', 'vit_convert', - 'mit_convert', 'swin_convert', 'PatchEmbed', 'nchw_to_nlc', 'nlc_to_nchw' + 'swin_convert', 'PatchEmbed', 'nchw_to_nlc', 'nlc_to_nchw' ] diff --git a/mmseg/models/utils/ckpt_convert.py b/mmseg/models/utils/ckpt_convert.py index 26a1b96df9..0b1b27707d 100644 --- a/mmseg/models/utils/ckpt_convert.py +++ b/mmseg/models/utils/ckpt_convert.py @@ -1,7 +1,5 @@ from collections import OrderedDict -import torch - def swin_convert(ckpt): new_ckpt = OrderedDict() @@ -90,50 +88,3 @@ def vit_convert(ckpt): new_ckpt[new_k] = v return new_ckpt - - -def mit_convert(ckpt): - new_ckpt = OrderedDict() - # Process the concat between q linear weights and kv linear weights - for k, v in ckpt.items(): - if k.startswith('head'): - continue - elif k.startswith('patch_embed'): - stage_i = int(k.split('.')[0].replace('patch_embed', '')) - new_k = k.replace(f'patch_embed{stage_i}', f'layers.{stage_i-1}.0') - new_v = v - if 'proj.' in new_k: - new_k = new_k.replace('proj.', 'projection.') - elif k.startswith('block'): - stage_i = int(k.split('.')[0].replace('block', '')) - new_k = k.replace(f'block{stage_i}', f'layers.{stage_i-1}.1') - new_v = v - if 'attn.q.' in new_k: - sub_item_k = k.replace('q.', 'kv.') - new_k = new_k.replace('q.', 'attn.in_proj_') - new_v = torch.cat([v, ckpt[sub_item_k]], dim=0) - elif 'attn.kv.' in new_k: - continue - elif 'attn.proj.' in new_k: - new_k = new_k.replace('proj.', 'attn.out_proj.') - elif 'attn.sr.' in new_k: - new_k = new_k.replace('sr.', 'sr.') - elif 'mlp.' in new_k: - string = f'{new_k}-' - new_k = new_k.replace('mlp.', 'ffn.layers.') - if 'fc1.weight' in new_k or 'fc2.weight' in new_k: - new_v = v.reshape((*v.shape, 1, 1)) - new_k = new_k.replace('fc1.', '0.') - new_k = new_k.replace('dwconv.dwconv.', '1.') - new_k = new_k.replace('fc2.', '4.') - string += f'{new_k} {v.shape}-{new_v.shape}' - # print(string) - elif k.startswith('norm'): - stage_i = int(k.split('.')[0].replace('norm', '')) - new_k = k.replace(f'norm{stage_i}', f'layers.{stage_i-1}.2') - new_v = v - else: - new_k = k - new_v = v - new_ckpt[new_k] = new_v - return new_ckpt diff --git a/tests/test_data/test_transform.py b/tests/test_data/test_transform.py index a6417575c3..33ed4ecb14 100644 --- a/tests/test_data/test_transform.py +++ b/tests/test_data/test_transform.py @@ -10,6 +10,26 @@ from mmseg.datasets.builder import PIPELINES +def test_resize_to_multiple(): + transform = dict(type='ResizeToMultiple', size_divisor=32) + transform = build_from_cfg(transform, PIPELINES) + + img = np.random.randn(213, 232, 3) + seg = np.random.randint(0, 19, (213, 232)) + results = dict() + results['img'] = img + results['gt_semantic_seg'] = seg + results['seg_fields'] = ['gt_semantic_seg'] + results['img_shape'] = img.shape + results['pad_shape'] = img.shape + + results = transform(results) + assert results['img'].shape == (224, 256, 3) + assert results['gt_semantic_seg'].shape == (224, 256) + assert results['img_shape'] == (224, 256, 3) + assert results['pad_shape'] == (224, 256, 3) + + def test_resize(): # test assertion if img_scale is a list with pytest.raises(AssertionError): diff --git a/tests/test_models/test_heads/test_segformer_head.py b/tests/test_models/test_heads/test_segformer_head.py new file mode 100644 index 0000000000..aa8dedb1a8 --- /dev/null +++ b/tests/test_models/test_heads/test_segformer_head.py @@ -0,0 +1,39 @@ +import pytest +import torch + +from mmseg.models.decode_heads import SegformerHead + + +def test_segformer_head(): + with pytest.raises(AssertionError): + # `in_channels` must have same length as `in_index` + SegformerHead( + in_channels=(1, 2, 3), in_index=(0, 1), channels=5, num_classes=2) + + H, W = (64, 64) + in_channels = (32, 64, 160, 256) + shapes = [(H // 2**(i + 2), W // 2**(i + 2)) + for i in range(len(in_channels))] + model = SegformerHead( + in_channels=in_channels, + in_index=[0, 1, 2, 3], + channels=256, + num_classes=19) + + with pytest.raises(IndexError): + # in_index must match the input feature maps. + inputs = [ + torch.randn((1, in_channel, *shape)) + for in_channel, shape in zip(in_channels, shapes) + ][:3] + temp = model(inputs) + + # Normal Input + # ((1, 32, 16, 16), (1, 64, 8, 8), (1, 160, 4, 4), (1, 256, 2, 2) + inputs = [ + torch.randn((1, in_channel, *shape)) + for in_channel, shape in zip(in_channels, shapes) + ] + temp = model(inputs) + + assert temp.shape == (1, 19, H // 4, W // 4) diff --git a/tools/model_converters/mit_convert.py b/tools/model_converters/mit_convert.py new file mode 100644 index 0000000000..c914c4edba --- /dev/null +++ b/tools/model_converters/mit_convert.py @@ -0,0 +1,76 @@ +import argparse +from collections import OrderedDict + +import torch + + +def mit_convert(ckpt): + new_ckpt = OrderedDict() + # Process the concat between q linear weights and kv linear weights + for k, v in ckpt.items(): + if k.startswith('head'): + continue + # patch embedding convertion + elif k.startswith('patch_embed'): + stage_i = int(k.split('.')[0].replace('patch_embed', '')) + new_k = k.replace(f'patch_embed{stage_i}', f'layers.{stage_i-1}.0') + new_v = v + if 'proj.' in new_k: + new_k = new_k.replace('proj.', 'projection.') + # transformer encoder layer convertion + elif k.startswith('block'): + stage_i = int(k.split('.')[0].replace('block', '')) + new_k = k.replace(f'block{stage_i}', f'layers.{stage_i-1}.1') + new_v = v + if 'attn.q.' in new_k: + sub_item_k = k.replace('q.', 'kv.') + new_k = new_k.replace('q.', 'attn.in_proj_') + new_v = torch.cat([v, ckpt[sub_item_k]], dim=0) + elif 'attn.kv.' in new_k: + continue + elif 'attn.proj.' in new_k: + new_k = new_k.replace('proj.', 'attn.out_proj.') + elif 'attn.sr.' in new_k: + new_k = new_k.replace('sr.', 'sr.') + elif 'mlp.' in new_k: + string = f'{new_k}-' + new_k = new_k.replace('mlp.', 'ffn.layers.') + if 'fc1.weight' in new_k or 'fc2.weight' in new_k: + new_v = v.reshape((*v.shape, 1, 1)) + new_k = new_k.replace('fc1.', '0.') + new_k = new_k.replace('dwconv.dwconv.', '1.') + new_k = new_k.replace('fc2.', '4.') + string += f'{new_k} {v.shape}-{new_v.shape}' + # norm layer convertion + elif k.startswith('norm'): + stage_i = int(k.split('.')[0].replace('norm', '')) + new_k = k.replace(f'norm{stage_i}', f'layers.{stage_i-1}.2') + new_v = v + else: + new_k = k + new_v = v + new_ckpt[new_k] = new_v + return new_ckpt + + +def parse_args(): + parser = argparse.ArgumentParser( + 'Convert official segformer backbone weights to mmseg style.') + parser.add_argument( + 'src', help='Source path of official segformer backbone weights.') + parser.add_argument( + 'dst', + help='Destination path of converted segformer backbone weights.') + + return parser.parse_args() + + +if __name__ == '__main__': + args = parse_args() + src_path = args.src + dst_path = args.dst + + ckpt = torch.load(src_path, map_location='cpu') + + ckpt = mit_convert(ckpt) + torch.save(ckpt, dst_path) From 94a1946351a0a875d139c4ea6f49e859776559ce Mon Sep 17 00:00:00 2001 From: sennnnn <58427300+sennnnn@users.noreply.github.com> Date: Fri, 13 Aug 2021 14:55:29 +0800 Subject: [PATCH 212/706] [Fix] Fix setr decode head typos. (#787) --- mmseg/models/decode_heads/setr_mla_head.py | 2 +- mmseg/models/decode_heads/setr_up_head.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mmseg/models/decode_heads/setr_mla_head.py b/mmseg/models/decode_heads/setr_mla_head.py index 86e493d2e8..c4e22bf7d6 100644 --- a/mmseg/models/decode_heads/setr_mla_head.py +++ b/mmseg/models/decode_heads/setr_mla_head.py @@ -11,7 +11,7 @@ class SETRMLAHead(BaseDecodeHead): """Multi level feature aggretation head of SETR. - MLA head of `SETR `. + MLA head of `SETR `_. Args: mlahead_channels (int): Channels of conv-conv-4x of multi-level feature diff --git a/mmseg/models/decode_heads/setr_up_head.py b/mmseg/models/decode_heads/setr_up_head.py index d64896f76b..a2595ad514 100644 --- a/mmseg/models/decode_heads/setr_up_head.py +++ b/mmseg/models/decode_heads/setr_up_head.py @@ -10,7 +10,7 @@ class SETRUPHead(BaseDecodeHead): """Naive upsampling head and Progressive upsampling head of SETR. - Naive or PUP head of `SETR `. + Naive or PUP head of `SETR `_. Args: norm_layer (dict): Config dict for input normalization. From 18bbad97f8d601193778ff1a6624781fc4a24e9a Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Sun, 15 Aug 2021 23:33:08 +0800 Subject: [PATCH 213/706] Fix random behavior of update_model_index in pre-commit hook (#784) --- .dev/md2yml.py | 28 +- .pre-commit-config.yaml | 1 + configs/ann/ann.yml | 164 ++++---- configs/apcnet/apcnet.yml | 124 +++--- configs/ccnet/ccnet.yml | 164 ++++---- configs/cgnet/cgnet.yml | 32 +- configs/danet/danet.yml | 164 ++++---- configs/deeplabv3/deeplabv3.yml | 314 ++++++++-------- configs/deeplabv3plus/deeplabv3plus.yml | 328 ++++++++-------- configs/dmnet/dmnet.yml | 124 +++--- configs/dnlnet/dnlnet.yml | 124 +++--- configs/emanet/emanet.yml | 60 +-- configs/encnet/encnet.yml | 124 +++--- configs/fastscnn/fastscnn.yml | 18 +- configs/fcn/fcn.yml | 476 ++++++++++++------------ configs/fp16/fp16.yml | 60 +-- configs/gcnet/gcnet.yml | 164 ++++---- configs/hrnet/hrnet.yml | 234 ++++++------ configs/mobilenet_v2/mobilenet_v2.yml | 116 +++--- configs/mobilenet_v3/mobilenet_v3.yml | 60 +-- configs/nonlocal_net/nonlocal_net.yml | 164 ++++---- configs/ocrnet/ocrnet.yml | 236 ++++++------ configs/point_rend/point_rend.yml | 60 +-- configs/psanet/psanet.yml | 164 ++++---- configs/pspnet/pspnet.yml | 308 +++++++-------- configs/resnest/resnest.yml | 116 +++--- configs/sem_fpn/sem_fpn.yml | 60 +-- configs/setr/setr.yml | 52 +-- configs/swin/swin.yml | 72 ++-- configs/unet/unet.yml | 76 ++-- configs/upernet/upernet.yml | 164 ++++---- configs/vit/vit.yml | 158 ++++---- 32 files changed, 2258 insertions(+), 2251 deletions(-) diff --git a/.dev/md2yml.py b/.dev/md2yml.py index 5ffebbc187..36c82ff742 100755 --- a/.dev/md2yml.py +++ b/.dev/md2yml.py @@ -25,17 +25,23 @@ def dump_yaml_and_check_difference(obj, filename): Returns: Bool: If the target YAML file is different from the original. """ - original = None + + str_dump = mmcv.dump(obj, None, file_format='yaml', sort_keys=True) if osp.isfile(filename): + file_exists = True with open(filename, 'r', encoding='utf-8') as f: - original = f.read() - with open(filename, 'w', encoding='utf-8') as f: - mmcv.dump(obj, f, file_format='yaml', sort_keys=False) - is_different = True - if original is not None: - with open(filename, 'r') as f: - new = f.read() - is_different = (original != new) + str_orig = f.read() + else: + file_exists = False + str_orig = None + + if file_exists and str_orig == str_dump: + is_different = False + else: + is_different = True + with open(filename, 'w', encoding='utf-8') as f: + f.write(str_dump) + return is_different @@ -183,11 +189,11 @@ def update_model_index(): if __name__ == '__main__': file_list = [fn for fn in sys.argv[1:] if osp.basename(fn) == 'README.md'] if not file_list: - exit(0) + sys.exit(0) file_modified = False for fn in file_list: file_modified |= parse_md(fn) file_modified |= update_model_index() - exit(1 if file_modified else 0) + sys.exit(1 if file_modified else 0) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 4a63054362..263bc18b25 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -47,3 +47,4 @@ repos: additional_dependencies: [mmcv] language: python files: ^configs/.*\.md$ + require_serial: true diff --git a/configs/ann/ann.yml b/configs/ann/ann.yml index 77589d835d..e1fba7562b 100644 --- a/configs/ann/ann.yml +++ b/configs/ann/ann.yml @@ -1,296 +1,296 @@ Collections: -- Name: ann - Metadata: +- Metadata: Training Data: - Cityscapes - ADE20K - Pascal VOC 2012 + Aug + Name: ann Models: -- Name: ann_r50-d8_512x1024_40k_cityscapes +- Config: configs/ann/ann_r50-d8_512x1024_40k_cityscapes.py In Collection: ann Metadata: backbone: R-50-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 269.54 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 269.54 + lr schd: 40000 memory (GB): 6.0 + Name: ann_r50-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.4 mIoU(ms+flip): 78.57 - Config: configs/ann/ann_r50-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_40k_cityscapes/ann_r50-d8_512x1024_40k_cityscapes_20200605_095211-049fc292.pth -- Name: ann_r101-d8_512x1024_40k_cityscapes +- Config: configs/ann/ann_r101-d8_512x1024_40k_cityscapes.py In Collection: ann Metadata: backbone: R-101-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 392.16 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 392.16 + lr schd: 40000 memory (GB): 9.5 + Name: ann_r101-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.55 mIoU(ms+flip): 78.85 - Config: configs/ann/ann_r101-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_40k_cityscapes/ann_r101-d8_512x1024_40k_cityscapes_20200605_095243-adf6eece.pth -- Name: ann_r50-d8_769x769_40k_cityscapes +- Config: configs/ann/ann_r50-d8_769x769_40k_cityscapes.py In Collection: ann Metadata: backbone: R-50-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 588.24 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 588.24 + lr schd: 40000 memory (GB): 6.8 + Name: ann_r50-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.89 mIoU(ms+flip): 80.46 - Config: configs/ann/ann_r50-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_40k_cityscapes/ann_r50-d8_769x769_40k_cityscapes_20200530_025712-2b46b04d.pth -- Name: ann_r101-d8_769x769_40k_cityscapes +- Config: configs/ann/ann_r101-d8_769x769_40k_cityscapes.py In Collection: ann Metadata: backbone: R-101-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 869.57 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 869.57 + lr schd: 40000 memory (GB): 10.7 + Name: ann_r101-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.32 mIoU(ms+flip): 80.94 - Config: configs/ann/ann_r101-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_40k_cityscapes/ann_r101-d8_769x769_40k_cityscapes_20200530_025720-059bff28.pth -- Name: ann_r50-d8_512x1024_80k_cityscapes +- Config: configs/ann/ann_r50-d8_512x1024_80k_cityscapes.py In Collection: ann Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 + Name: ann_r50-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.34 mIoU(ms+flip): 78.65 - Config: configs/ann/ann_r50-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_80k_cityscapes/ann_r50-d8_512x1024_80k_cityscapes_20200607_101911-5a9ad545.pth -- Name: ann_r101-d8_512x1024_80k_cityscapes +- Config: configs/ann/ann_r101-d8_512x1024_80k_cityscapes.py In Collection: ann Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 + Name: ann_r101-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.14 mIoU(ms+flip): 78.81 - Config: configs/ann/ann_r101-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_80k_cityscapes/ann_r101-d8_512x1024_80k_cityscapes_20200607_013728-aceccc6e.pth -- Name: ann_r50-d8_769x769_80k_cityscapes +- Config: configs/ann/ann_r50-d8_769x769_80k_cityscapes.py In Collection: ann Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 + Name: ann_r50-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.88 mIoU(ms+flip): 80.57 - Config: configs/ann/ann_r50-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_80k_cityscapes/ann_r50-d8_769x769_80k_cityscapes_20200607_044426-cc7ff323.pth -- Name: ann_r101-d8_769x769_80k_cityscapes +- Config: configs/ann/ann_r101-d8_769x769_80k_cityscapes.py In Collection: ann Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 + Name: ann_r101-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.8 mIoU(ms+flip): 80.34 - Config: configs/ann/ann_r101-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_80k_cityscapes/ann_r101-d8_769x769_80k_cityscapes_20200607_013713-a9d4be8d.pth -- Name: ann_r50-d8_512x512_80k_ade20k +- Config: configs/ann/ann_r50-d8_512x512_80k_ade20k.py In Collection: ann Metadata: backbone: R-50-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 47.6 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 47.6 + lr schd: 80000 memory (GB): 9.1 + Name: ann_r50-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 41.01 mIoU(ms+flip): 42.3 - Config: configs/ann/ann_r50-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_80k_ade20k/ann_r50-d8_512x512_80k_ade20k_20200615_014818-26f75e11.pth -- Name: ann_r101-d8_512x512_80k_ade20k +- Config: configs/ann/ann_r101-d8_512x512_80k_ade20k.py In Collection: ann Metadata: backbone: R-101-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 70.82 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 70.82 + lr schd: 80000 memory (GB): 12.5 + Name: ann_r101-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.94 mIoU(ms+flip): 44.18 - Config: configs/ann/ann_r101-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_80k_ade20k/ann_r101-d8_512x512_80k_ade20k_20200615_014818-c0153543.pth -- Name: ann_r50-d8_512x512_160k_ade20k +- Config: configs/ann/ann_r50-d8_512x512_160k_ade20k.py In Collection: ann Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 + Name: ann_r50-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 41.74 mIoU(ms+flip): 42.62 - Config: configs/ann/ann_r50-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_160k_ade20k/ann_r50-d8_512x512_160k_ade20k_20200615_231733-892247bc.pth -- Name: ann_r101-d8_512x512_160k_ade20k +- Config: configs/ann/ann_r101-d8_512x512_160k_ade20k.py In Collection: ann Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 + Name: ann_r101-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.94 mIoU(ms+flip): 44.06 - Config: configs/ann/ann_r101-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_160k_ade20k/ann_r101-d8_512x512_160k_ade20k_20200615_231733-955eb1ec.pth -- Name: ann_r50-d8_512x512_20k_voc12aug +- Config: configs/ann/ann_r50-d8_512x512_20k_voc12aug.py In Collection: ann Metadata: backbone: R-50-D8 crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 47.8 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 47.8 + lr schd: 20000 memory (GB): 6.0 + Name: ann_r50-d8_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 74.86 mIoU(ms+flip): 76.13 - Config: configs/ann/ann_r50-d8_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_20k_voc12aug/ann_r50-d8_512x512_20k_voc12aug_20200617_222246-dfcb1c62.pth -- Name: ann_r101-d8_512x512_20k_voc12aug +- Config: configs/ann/ann_r101-d8_512x512_20k_voc12aug.py In Collection: ann Metadata: backbone: R-101-D8 crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 71.74 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 71.74 + lr schd: 20000 memory (GB): 9.5 + Name: ann_r101-d8_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.47 mIoU(ms+flip): 78.7 - Config: configs/ann/ann_r101-d8_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_20k_voc12aug/ann_r101-d8_512x512_20k_voc12aug_20200617_222246-2fad0042.pth -- Name: ann_r50-d8_512x512_40k_voc12aug +- Config: configs/ann/ann_r50-d8_512x512_40k_voc12aug.py In Collection: ann Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 40000 + Name: ann_r50-d8_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.56 mIoU(ms+flip): 77.51 - Config: configs/ann/ann_r50-d8_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_40k_voc12aug/ann_r50-d8_512x512_40k_voc12aug_20200613_231314-b5dac322.pth -- Name: ann_r101-d8_512x512_40k_voc12aug +- Config: configs/ann/ann_r101-d8_512x512_40k_voc12aug.py In Collection: ann Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 40000 + Name: ann_r101-d8_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.7 mIoU(ms+flip): 78.06 - Config: configs/ann/ann_r101-d8_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_40k_voc12aug/ann_r101-d8_512x512_40k_voc12aug_20200613_231314-bd205bbe.pth diff --git a/configs/apcnet/apcnet.yml b/configs/apcnet/apcnet.yml index 053636523e..1ec25ed586 100644 --- a/configs/apcnet/apcnet.yml +++ b/configs/apcnet/apcnet.yml @@ -1,223 +1,223 @@ Collections: -- Name: apcnet - Metadata: +- Metadata: Training Data: - Cityscapes - ADE20K + Name: apcnet Models: -- Name: apcnet_r50-d8_512x1024_40k_cityscapes +- Config: configs/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes.py In Collection: apcnet Metadata: backbone: R-50-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 280.11 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 280.11 + lr schd: 40000 memory (GB): 7.7 + Name: apcnet_r50-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.02 mIoU(ms+flip): 79.26 - Config: configs/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes/apcnet_r50-d8_512x1024_40k_cityscapes_20201214_115717-5e88fa33.pth -- Name: apcnet_r101-d8_512x1024_40k_cityscapes +- Config: configs/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes.py In Collection: apcnet Metadata: backbone: R-101-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 465.12 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 465.12 + lr schd: 40000 memory (GB): 11.2 + Name: apcnet_r101-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.08 mIoU(ms+flip): 80.34 - Config: configs/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes/apcnet_r101-d8_512x1024_40k_cityscapes_20201214_115716-abc9d111.pth -- Name: apcnet_r50-d8_769x769_40k_cityscapes +- Config: configs/apcnet/apcnet_r50-d8_769x769_40k_cityscapes.py In Collection: apcnet Metadata: backbone: R-50-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 657.89 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 657.89 + lr schd: 40000 memory (GB): 8.7 + Name: apcnet_r50-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.89 mIoU(ms+flip): 79.75 - Config: configs/apcnet/apcnet_r50-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_40k_cityscapes/apcnet_r50-d8_769x769_40k_cityscapes_20201214_115717-2a2628d7.pth -- Name: apcnet_r101-d8_769x769_40k_cityscapes +- Config: configs/apcnet/apcnet_r101-d8_769x769_40k_cityscapes.py In Collection: apcnet Metadata: backbone: R-101-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 970.87 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 970.87 + lr schd: 40000 memory (GB): 12.7 + Name: apcnet_r101-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.96 mIoU(ms+flip): 79.24 - Config: configs/apcnet/apcnet_r101-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_40k_cityscapes/apcnet_r101-d8_769x769_40k_cityscapes_20201214_115718-b650de90.pth -- Name: apcnet_r50-d8_512x1024_80k_cityscapes +- Config: configs/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes.py In Collection: apcnet Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 + Name: apcnet_r50-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.96 mIoU(ms+flip): 79.94 - Config: configs/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes/apcnet_r50-d8_512x1024_80k_cityscapes_20201214_115716-987f51e3.pth -- Name: apcnet_r101-d8_512x1024_80k_cityscapes +- Config: configs/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes.py In Collection: apcnet Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 + Name: apcnet_r101-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.64 mIoU(ms+flip): 80.61 - Config: configs/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes/apcnet_r101-d8_512x1024_80k_cityscapes_20201214_115705-b1ff208a.pth -- Name: apcnet_r50-d8_769x769_80k_cityscapes +- Config: configs/apcnet/apcnet_r50-d8_769x769_80k_cityscapes.py In Collection: apcnet Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 + Name: apcnet_r50-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.79 mIoU(ms+flip): 80.35 - Config: configs/apcnet/apcnet_r50-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_80k_cityscapes/apcnet_r50-d8_769x769_80k_cityscapes_20201214_115718-7ea9fa12.pth -- Name: apcnet_r101-d8_769x769_80k_cityscapes +- Config: configs/apcnet/apcnet_r101-d8_769x769_80k_cityscapes.py In Collection: apcnet Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 + Name: apcnet_r101-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.45 mIoU(ms+flip): 79.91 - Config: configs/apcnet/apcnet_r101-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_80k_cityscapes/apcnet_r101-d8_769x769_80k_cityscapes_20201214_115716-a7fbc2ab.pth -- Name: apcnet_r50-d8_512x512_80k_ade20k +- Config: configs/apcnet/apcnet_r50-d8_512x512_80k_ade20k.py In Collection: apcnet Metadata: backbone: R-50-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 50.99 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 50.99 + lr schd: 80000 memory (GB): 10.1 + Name: apcnet_r50-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.2 mIoU(ms+flip): 43.3 - Config: configs/apcnet/apcnet_r50-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_80k_ade20k/apcnet_r50-d8_512x512_80k_ade20k_20201214_115705-a8626293.pth -- Name: apcnet_r101-d8_512x512_80k_ade20k +- Config: configs/apcnet/apcnet_r101-d8_512x512_80k_ade20k.py In Collection: apcnet Metadata: backbone: R-101-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 76.34 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 76.34 + lr schd: 80000 memory (GB): 13.6 + Name: apcnet_r101-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 45.54 mIoU(ms+flip): 46.65 - Config: configs/apcnet/apcnet_r101-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_80k_ade20k/apcnet_r101-d8_512x512_80k_ade20k_20201214_115704-c656c3fb.pth -- Name: apcnet_r50-d8_512x512_160k_ade20k +- Config: configs/apcnet/apcnet_r50-d8_512x512_160k_ade20k.py In Collection: apcnet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 + Name: apcnet_r50-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.4 mIoU(ms+flip): 43.94 - Config: configs/apcnet/apcnet_r50-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_160k_ade20k/apcnet_r50-d8_512x512_160k_ade20k_20201214_115706-25fb92c2.pth -- Name: apcnet_r101-d8_512x512_160k_ade20k +- Config: configs/apcnet/apcnet_r101-d8_512x512_160k_ade20k.py In Collection: apcnet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 + Name: apcnet_r101-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 45.41 mIoU(ms+flip): 46.63 - Config: configs/apcnet/apcnet_r101-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_160k_ade20k/apcnet_r101-d8_512x512_160k_ade20k_20201214_115705-73f9a8d7.pth diff --git a/configs/ccnet/ccnet.yml b/configs/ccnet/ccnet.yml index f29a7ca555..85a1c28953 100644 --- a/configs/ccnet/ccnet.yml +++ b/configs/ccnet/ccnet.yml @@ -1,296 +1,296 @@ Collections: -- Name: ccnet - Metadata: +- Metadata: Training Data: - Cityscapes - ADE20K - Pascal VOC 2012 + Aug + Name: ccnet Models: -- Name: ccnet_r50-d8_512x1024_40k_cityscapes +- Config: configs/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes.py In Collection: ccnet Metadata: backbone: R-50-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 301.2 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 301.2 + lr schd: 40000 memory (GB): 6.0 + Name: ccnet_r50-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.76 mIoU(ms+flip): 78.87 - Config: configs/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes/ccnet_r50-d8_512x1024_40k_cityscapes_20200616_142517-4123f401.pth -- Name: ccnet_r101-d8_512x1024_40k_cityscapes +- Config: configs/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes.py In Collection: ccnet Metadata: backbone: R-101-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 432.9 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 432.9 + lr schd: 40000 memory (GB): 9.5 + Name: ccnet_r101-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.35 mIoU(ms+flip): 78.19 - Config: configs/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes/ccnet_r101-d8_512x1024_40k_cityscapes_20200616_142540-a3b84ba6.pth -- Name: ccnet_r50-d8_769x769_40k_cityscapes +- Config: configs/ccnet/ccnet_r50-d8_769x769_40k_cityscapes.py In Collection: ccnet Metadata: backbone: R-50-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 699.3 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 699.3 + lr schd: 40000 memory (GB): 6.8 + Name: ccnet_r50-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.46 mIoU(ms+flip): 79.93 - Config: configs/ccnet/ccnet_r50-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_40k_cityscapes/ccnet_r50-d8_769x769_40k_cityscapes_20200616_145125-76d11884.pth -- Name: ccnet_r101-d8_769x769_40k_cityscapes +- Config: configs/ccnet/ccnet_r101-d8_769x769_40k_cityscapes.py In Collection: ccnet Metadata: backbone: R-101-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 990.1 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 990.1 + lr schd: 40000 memory (GB): 10.7 + Name: ccnet_r101-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.94 mIoU(ms+flip): 78.62 - Config: configs/ccnet/ccnet_r101-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_40k_cityscapes/ccnet_r101-d8_769x769_40k_cityscapes_20200617_101428-4f57c8d0.pth -- Name: ccnet_r50-d8_512x1024_80k_cityscapes +- Config: configs/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes.py In Collection: ccnet Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 + Name: ccnet_r50-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.03 mIoU(ms+flip): 80.16 - Config: configs/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes/ccnet_r50-d8_512x1024_80k_cityscapes_20200617_010421-869a3423.pth -- Name: ccnet_r101-d8_512x1024_80k_cityscapes +- Config: configs/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes.py In Collection: ccnet Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 + Name: ccnet_r101-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.87 mIoU(ms+flip): 79.9 - Config: configs/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes/ccnet_r101-d8_512x1024_80k_cityscapes_20200617_203935-ffae8917.pth -- Name: ccnet_r50-d8_769x769_80k_cityscapes +- Config: configs/ccnet/ccnet_r50-d8_769x769_80k_cityscapes.py In Collection: ccnet Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 + Name: ccnet_r50-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.29 mIoU(ms+flip): 81.08 - Config: configs/ccnet/ccnet_r50-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_80k_cityscapes/ccnet_r50-d8_769x769_80k_cityscapes_20200617_010421-73eed8ca.pth -- Name: ccnet_r101-d8_769x769_80k_cityscapes +- Config: configs/ccnet/ccnet_r101-d8_769x769_80k_cityscapes.py In Collection: ccnet Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 + Name: ccnet_r101-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.45 mIoU(ms+flip): 80.66 - Config: configs/ccnet/ccnet_r101-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_80k_cityscapes/ccnet_r101-d8_769x769_80k_cityscapes_20200618_011502-ad3cd481.pth -- Name: ccnet_r50-d8_512x512_80k_ade20k +- Config: configs/ccnet/ccnet_r50-d8_512x512_80k_ade20k.py In Collection: ccnet Metadata: backbone: R-50-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 47.87 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 47.87 + lr schd: 80000 memory (GB): 8.8 + Name: ccnet_r50-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 41.78 mIoU(ms+flip): 42.98 - Config: configs/ccnet/ccnet_r50-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_80k_ade20k/ccnet_r50-d8_512x512_80k_ade20k_20200615_014848-aa37f61e.pth -- Name: ccnet_r101-d8_512x512_80k_ade20k +- Config: configs/ccnet/ccnet_r101-d8_512x512_80k_ade20k.py In Collection: ccnet Metadata: backbone: R-101-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 70.87 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 70.87 + lr schd: 80000 memory (GB): 12.2 + Name: ccnet_r101-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.97 mIoU(ms+flip): 45.13 - Config: configs/ccnet/ccnet_r101-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_80k_ade20k/ccnet_r101-d8_512x512_80k_ade20k_20200615_014848-1f4929a3.pth -- Name: ccnet_r50-d8_512x512_160k_ade20k +- Config: configs/ccnet/ccnet_r50-d8_512x512_160k_ade20k.py In Collection: ccnet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 + Name: ccnet_r50-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.08 mIoU(ms+flip): 43.13 - Config: configs/ccnet/ccnet_r50-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_160k_ade20k/ccnet_r50-d8_512x512_160k_ade20k_20200616_084435-7c97193b.pth -- Name: ccnet_r101-d8_512x512_160k_ade20k +- Config: configs/ccnet/ccnet_r101-d8_512x512_160k_ade20k.py In Collection: ccnet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 + Name: ccnet_r101-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.71 mIoU(ms+flip): 45.04 - Config: configs/ccnet/ccnet_r101-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_160k_ade20k/ccnet_r101-d8_512x512_160k_ade20k_20200616_000644-e849e007.pth -- Name: ccnet_r50-d8_512x512_20k_voc12aug +- Config: configs/ccnet/ccnet_r50-d8_512x512_20k_voc12aug.py In Collection: ccnet Metadata: backbone: R-50-D8 crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 48.9 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 48.9 + lr schd: 20000 memory (GB): 6.0 + Name: ccnet_r50-d8_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.17 mIoU(ms+flip): 77.51 - Config: configs/ccnet/ccnet_r50-d8_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_20k_voc12aug/ccnet_r50-d8_512x512_20k_voc12aug_20200617_193212-fad81784.pth -- Name: ccnet_r101-d8_512x512_20k_voc12aug +- Config: configs/ccnet/ccnet_r101-d8_512x512_20k_voc12aug.py In Collection: ccnet Metadata: backbone: R-101-D8 crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 73.31 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 73.31 + lr schd: 20000 memory (GB): 9.5 + Name: ccnet_r101-d8_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.27 mIoU(ms+flip): 79.02 - Config: configs/ccnet/ccnet_r101-d8_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_20k_voc12aug/ccnet_r101-d8_512x512_20k_voc12aug_20200617_193212-0007b61d.pth -- Name: ccnet_r50-d8_512x512_40k_voc12aug +- Config: configs/ccnet/ccnet_r50-d8_512x512_40k_voc12aug.py In Collection: ccnet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 40000 + Name: ccnet_r50-d8_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 75.96 mIoU(ms+flip): 77.04 - Config: configs/ccnet/ccnet_r50-d8_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_40k_voc12aug/ccnet_r50-d8_512x512_40k_voc12aug_20200613_232127-c2a15f02.pth -- Name: ccnet_r101-d8_512x512_40k_voc12aug +- Config: configs/ccnet/ccnet_r101-d8_512x512_40k_voc12aug.py In Collection: ccnet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 40000 + Name: ccnet_r101-d8_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.87 mIoU(ms+flip): 78.9 - Config: configs/ccnet/ccnet_r101-d8_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_40k_voc12aug/ccnet_r101-d8_512x512_40k_voc12aug_20200613_232127-c30da577.pth diff --git a/configs/cgnet/cgnet.yml b/configs/cgnet/cgnet.yml index e7a517d59f..c4a41aa7b3 100644 --- a/configs/cgnet/cgnet.yml +++ b/configs/cgnet/cgnet.yml @@ -1,50 +1,50 @@ Collections: -- Name: cgnet - Metadata: +- Metadata: Training Data: - Cityscapes + Name: cgnet Models: -- Name: cgnet_680x680_60k_cityscapes +- Config: configs/cgnet/cgnet_680x680_60k_cityscapes.py In Collection: cgnet Metadata: backbone: M3N21 crop size: (680,680) - lr schd: 60000 inference time (ms/im): - - value: 32.78 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (680,680) + value: 32.78 + lr schd: 60000 memory (GB): 7.5 + Name: cgnet_680x680_60k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 65.63 mIoU(ms+flip): 68.04 - Config: configs/cgnet/cgnet_680x680_60k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_680x680_60k_cityscapes/cgnet_680x680_60k_cityscapes_20201101_110253-4c0b2f2d.pth -- Name: cgnet_512x1024_60k_cityscapes +- Config: configs/cgnet/cgnet_512x1024_60k_cityscapes.py In Collection: cgnet Metadata: backbone: M3N21 crop size: (512,1024) - lr schd: 60000 inference time (ms/im): - - value: 32.11 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 32.11 + lr schd: 60000 memory (GB): 8.3 + Name: cgnet_512x1024_60k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 68.27 mIoU(ms+flip): 70.33 - Config: configs/cgnet/cgnet_512x1024_60k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_512x1024_60k_cityscapes/cgnet_512x1024_60k_cityscapes_20201101_110254-124ea03b.pth diff --git a/configs/danet/danet.yml b/configs/danet/danet.yml index 236bc2980a..c7857aeb88 100644 --- a/configs/danet/danet.yml +++ b/configs/danet/danet.yml @@ -1,292 +1,292 @@ Collections: -- Name: danet - Metadata: +- Metadata: Training Data: - Cityscapes - ADE20K - Pascal VOC 2012 + Aug + Name: danet Models: -- Name: danet_r50-d8_512x1024_40k_cityscapes +- Config: configs/danet/danet_r50-d8_512x1024_40k_cityscapes.py In Collection: danet Metadata: backbone: R-50-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 375.94 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 375.94 + lr schd: 40000 memory (GB): 7.4 + Name: danet_r50-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.74 - Config: configs/danet/danet_r50-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_40k_cityscapes/danet_r50-d8_512x1024_40k_cityscapes_20200605_191324-c0dbfa5f.pth -- Name: danet_r101-d8_512x1024_40k_cityscapes +- Config: configs/danet/danet_r101-d8_512x1024_40k_cityscapes.py In Collection: danet Metadata: backbone: R-101-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 502.51 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 502.51 + lr schd: 40000 memory (GB): 10.9 + Name: danet_r101-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.52 - Config: configs/danet/danet_r101-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_40k_cityscapes/danet_r101-d8_512x1024_40k_cityscapes_20200605_200831-c57a7157.pth -- Name: danet_r50-d8_769x769_40k_cityscapes +- Config: configs/danet/danet_r50-d8_769x769_40k_cityscapes.py In Collection: danet Metadata: backbone: R-50-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 641.03 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 641.03 + lr schd: 40000 memory (GB): 8.8 + Name: danet_r50-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.88 mIoU(ms+flip): 80.62 - Config: configs/danet/danet_r50-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_40k_cityscapes/danet_r50-d8_769x769_40k_cityscapes_20200530_025703-76681c60.pth -- Name: danet_r101-d8_769x769_40k_cityscapes +- Config: configs/danet/danet_r101-d8_769x769_40k_cityscapes.py In Collection: danet Metadata: backbone: R-101-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 934.58 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 934.58 + lr schd: 40000 memory (GB): 12.8 + Name: danet_r101-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.88 mIoU(ms+flip): 81.47 - Config: configs/danet/danet_r101-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_40k_cityscapes/danet_r101-d8_769x769_40k_cityscapes_20200530_025717-dcb7fd4e.pth -- Name: danet_r50-d8_512x1024_80k_cityscapes +- Config: configs/danet/danet_r50-d8_512x1024_80k_cityscapes.py In Collection: danet Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 + Name: danet_r50-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.34 - Config: configs/danet/danet_r50-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_80k_cityscapes/danet_r50-d8_512x1024_80k_cityscapes_20200607_133029-2bfa2293.pth -- Name: danet_r101-d8_512x1024_80k_cityscapes +- Config: configs/danet/danet_r101-d8_512x1024_80k_cityscapes.py In Collection: danet Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 + Name: danet_r101-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.41 - Config: configs/danet/danet_r101-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_80k_cityscapes/danet_r101-d8_512x1024_80k_cityscapes_20200607_132918-955e6350.pth -- Name: danet_r50-d8_769x769_80k_cityscapes +- Config: configs/danet/danet_r50-d8_769x769_80k_cityscapes.py In Collection: danet Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 + Name: danet_r50-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.27 mIoU(ms+flip): 80.96 - Config: configs/danet/danet_r50-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_80k_cityscapes/danet_r50-d8_769x769_80k_cityscapes_20200607_132954-495689b4.pth -- Name: danet_r101-d8_769x769_80k_cityscapes +- Config: configs/danet/danet_r101-d8_769x769_80k_cityscapes.py In Collection: danet Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 + Name: danet_r101-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.47 mIoU(ms+flip): 82.02 - Config: configs/danet/danet_r101-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_80k_cityscapes/danet_r101-d8_769x769_80k_cityscapes_20200607_132918-f3a929e7.pth -- Name: danet_r50-d8_512x512_80k_ade20k +- Config: configs/danet/danet_r50-d8_512x512_80k_ade20k.py In Collection: danet Metadata: backbone: R-50-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 47.17 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 47.17 + lr schd: 80000 memory (GB): 11.5 + Name: danet_r50-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 41.66 mIoU(ms+flip): 42.9 - Config: configs/danet/danet_r50-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_80k_ade20k/danet_r50-d8_512x512_80k_ade20k_20200615_015125-edb18e08.pth -- Name: danet_r101-d8_512x512_80k_ade20k +- Config: configs/danet/danet_r101-d8_512x512_80k_ade20k.py In Collection: danet Metadata: backbone: R-101-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 70.52 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 70.52 + lr schd: 80000 memory (GB): 15.0 + Name: danet_r101-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.64 mIoU(ms+flip): 45.19 - Config: configs/danet/danet_r101-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_80k_ade20k/danet_r101-d8_512x512_80k_ade20k_20200615_015126-d0357c73.pth -- Name: danet_r50-d8_512x512_160k_ade20k +- Config: configs/danet/danet_r50-d8_512x512_160k_ade20k.py In Collection: danet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 + Name: danet_r50-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.45 mIoU(ms+flip): 43.25 - Config: configs/danet/danet_r50-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_160k_ade20k/danet_r50-d8_512x512_160k_ade20k_20200616_082340-9cb35dcd.pth -- Name: danet_r101-d8_512x512_160k_ade20k +- Config: configs/danet/danet_r101-d8_512x512_160k_ade20k.py In Collection: danet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 + Name: danet_r101-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 44.17 mIoU(ms+flip): 45.02 - Config: configs/danet/danet_r101-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_160k_ade20k/danet_r101-d8_512x512_160k_ade20k_20200616_082348-23bf12f9.pth -- Name: danet_r50-d8_512x512_20k_voc12aug +- Config: configs/danet/danet_r50-d8_512x512_20k_voc12aug.py In Collection: danet Metadata: backbone: R-50-D8 crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 47.76 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 47.76 + lr schd: 20000 memory (GB): 6.5 + Name: danet_r50-d8_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 74.45 mIoU(ms+flip): 75.69 - Config: configs/danet/danet_r50-d8_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_20k_voc12aug/danet_r50-d8_512x512_20k_voc12aug_20200618_070026-9e9e3ab3.pth -- Name: danet_r101-d8_512x512_20k_voc12aug +- Config: configs/danet/danet_r101-d8_512x512_20k_voc12aug.py In Collection: danet Metadata: backbone: R-101-D8 crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 72.67 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 72.67 + lr schd: 20000 memory (GB): 9.9 + Name: danet_r101-d8_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.02 mIoU(ms+flip): 77.23 - Config: configs/danet/danet_r101-d8_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_20k_voc12aug/danet_r101-d8_512x512_20k_voc12aug_20200618_070026-d48d23b2.pth -- Name: danet_r50-d8_512x512_40k_voc12aug +- Config: configs/danet/danet_r50-d8_512x512_40k_voc12aug.py In Collection: danet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 40000 + Name: danet_r50-d8_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.37 mIoU(ms+flip): 77.29 - Config: configs/danet/danet_r50-d8_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_40k_voc12aug/danet_r50-d8_512x512_40k_voc12aug_20200613_235526-426e3a64.pth -- Name: danet_r101-d8_512x512_40k_voc12aug +- Config: configs/danet/danet_r101-d8_512x512_40k_voc12aug.py In Collection: danet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 40000 + Name: danet_r101-d8_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.51 mIoU(ms+flip): 77.32 - Config: configs/danet/danet_r101-d8_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_40k_voc12aug/danet_r101-d8_512x512_40k_voc12aug_20200613_223031-788e232a.pth diff --git a/configs/deeplabv3/deeplabv3.yml b/configs/deeplabv3/deeplabv3.yml index e4e051956b..f82ea8e9a9 100644 --- a/configs/deeplabv3/deeplabv3.yml +++ b/configs/deeplabv3/deeplabv3.yml @@ -1,552 +1,552 @@ Collections: -- Name: deeplabv3 - Metadata: +- Metadata: Training Data: - Cityscapes - ADE20K - Pascal VOC 2012 + Aug - Pascal Context - Pascal Context 59 + Name: deeplabv3 Models: -- Name: deeplabv3_r50-d8_512x1024_40k_cityscapes +- Config: configs/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes.py In Collection: deeplabv3 Metadata: backbone: R-50-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 389.11 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 389.11 + lr schd: 40000 memory (GB): 6.1 + Name: deeplabv3_r50-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.09 mIoU(ms+flip): 80.45 - Config: configs/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes/deeplabv3_r50-d8_512x1024_40k_cityscapes_20200605_022449-acadc2f8.pth -- Name: deeplabv3_r101-d8_512x1024_40k_cityscapes +- Config: configs/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes.py In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 520.83 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 520.83 + lr schd: 40000 memory (GB): 9.6 + Name: deeplabv3_r101-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.12 mIoU(ms+flip): 79.61 - Config: configs/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes/deeplabv3_r101-d8_512x1024_40k_cityscapes_20200605_012241-7fd3f799.pth -- Name: deeplabv3_r50-d8_769x769_40k_cityscapes +- Config: configs/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes.py In Collection: deeplabv3 Metadata: backbone: R-50-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 900.9 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 900.9 + lr schd: 40000 memory (GB): 6.9 + Name: deeplabv3_r50-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.58 mIoU(ms+flip): 79.89 - Config: configs/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes/deeplabv3_r50-d8_769x769_40k_cityscapes_20200606_113723-7eda553c.pth -- Name: deeplabv3_r101-d8_769x769_40k_cityscapes +- Config: configs/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes.py In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 1204.82 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 1204.82 + lr schd: 40000 memory (GB): 10.9 + Name: deeplabv3_r101-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.27 mIoU(ms+flip): 80.11 - Config: configs/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes/deeplabv3_r101-d8_769x769_40k_cityscapes_20200606_113809-c64f889f.pth -- Name: deeplabv3_r18-d8_512x1024_80k_cityscapes +- Config: configs/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes.py In Collection: deeplabv3 Metadata: backbone: R-18-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 72.57 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 72.57 + lr schd: 80000 memory (GB): 1.7 + Name: deeplabv3_r18-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.7 mIoU(ms+flip): 78.27 - Config: configs/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes/deeplabv3_r18-d8_512x1024_80k_cityscapes_20201225_021506-23dffbe2.pth -- Name: deeplabv3_r50-d8_512x1024_80k_cityscapes +- Config: configs/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes.py In Collection: deeplabv3 Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 + Name: deeplabv3_r50-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.32 mIoU(ms+flip): 80.57 - Config: configs/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes/deeplabv3_r50-d8_512x1024_80k_cityscapes_20200606_113404-b92cfdd4.pth -- Name: deeplabv3_r101-d8_512x1024_80k_cityscapes +- Config: configs/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 + Name: deeplabv3_r101-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.2 mIoU(ms+flip): 81.21 - Config: configs/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes/deeplabv3_r101-d8_512x1024_80k_cityscapes_20200606_113503-9e428899.pth -- Name: deeplabv3_r18-d8_769x769_80k_cityscapes +- Config: configs/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes.py In Collection: deeplabv3 Metadata: backbone: R-18-D8 crop size: (769,769) - lr schd: 80000 inference time (ms/im): - - value: 180.18 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 180.18 + lr schd: 80000 memory (GB): 1.9 + Name: deeplabv3_r18-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.6 mIoU(ms+flip): 78.26 - Config: configs/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes/deeplabv3_r18-d8_769x769_80k_cityscapes_20201225_021506-6452126a.pth -- Name: deeplabv3_r50-d8_769x769_80k_cityscapes +- Config: configs/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes.py In Collection: deeplabv3 Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 + Name: deeplabv3_r50-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.89 mIoU(ms+flip): 81.06 - Config: configs/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes/deeplabv3_r50-d8_769x769_80k_cityscapes_20200606_221338-788d6228.pth -- Name: deeplabv3_r101-d8_769x769_80k_cityscapes +- Config: configs/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes.py In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 + Name: deeplabv3_r101-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.67 mIoU(ms+flip): 80.81 - Config: configs/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes/deeplabv3_r101-d8_769x769_80k_cityscapes_20200607_013353-60e95418.pth -- Name: deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes +- Config: configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py In Collection: deeplabv3 Metadata: backbone: R-101-D16-MG124 crop size: (512,1024) lr schd: 80000 + Name: deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.36 mIoU(ms+flip): 79.84 - Config: configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes_20200908_005644-57bb8425.pth -- Name: deeplabv3_r18b-d8_512x1024_80k_cityscapes +- Config: configs/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes.py In Collection: deeplabv3 Metadata: backbone: R-18b-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 71.79 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 71.79 + lr schd: 80000 memory (GB): 1.6 + Name: deeplabv3_r18b-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.26 mIoU(ms+flip): 77.88 - Config: configs/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes/deeplabv3_r18b-d8_512x1024_80k_cityscapes_20201225_094144-46040cef.pth -- Name: deeplabv3_r50b-d8_512x1024_80k_cityscapes +- Config: configs/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes.py In Collection: deeplabv3 Metadata: backbone: R-50b-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 364.96 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 364.96 + lr schd: 80000 memory (GB): 6.0 + Name: deeplabv3_r50b-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.63 mIoU(ms+flip): 80.98 - Config: configs/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes/deeplabv3_r50b-d8_512x1024_80k_cityscapes_20201225_155148-ec368954.pth -- Name: deeplabv3_r101b-d8_512x1024_80k_cityscapes +- Config: configs/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes.py In Collection: deeplabv3 Metadata: backbone: R-101b-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 552.49 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 552.49 + lr schd: 80000 memory (GB): 9.5 + Name: deeplabv3_r101b-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.01 mIoU(ms+flip): 81.21 - Config: configs/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes/deeplabv3_r101b-d8_512x1024_80k_cityscapes_20201226_171821-8fd49503.pth -- Name: deeplabv3_r18b-d8_769x769_80k_cityscapes +- Config: configs/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes.py In Collection: deeplabv3 Metadata: backbone: R-18b-D8 crop size: (769,769) - lr schd: 80000 inference time (ms/im): - - value: 172.71 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 172.71 + lr schd: 80000 memory (GB): 1.8 + Name: deeplabv3_r18b-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.63 mIoU(ms+flip): 77.51 - Config: configs/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes/deeplabv3_r18b-d8_769x769_80k_cityscapes_20201225_094144-fdc985d9.pth -- Name: deeplabv3_r50b-d8_769x769_80k_cityscapes +- Config: configs/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes.py In Collection: deeplabv3 Metadata: backbone: R-50b-D8 crop size: (769,769) - lr schd: 80000 inference time (ms/im): - - value: 862.07 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 862.07 + lr schd: 80000 memory (GB): 6.8 + Name: deeplabv3_r50b-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.8 mIoU(ms+flip): 80.27 - Config: configs/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes/deeplabv3_r50b-d8_769x769_80k_cityscapes_20201225_155404-87fb0cf4.pth -- Name: deeplabv3_r101b-d8_769x769_80k_cityscapes +- Config: configs/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes.py In Collection: deeplabv3 Metadata: backbone: R-101b-D8 crop size: (769,769) - lr schd: 80000 inference time (ms/im): - - value: 1219.51 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 1219.51 + lr schd: 80000 memory (GB): 10.7 + Name: deeplabv3_r101b-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.41 mIoU(ms+flip): 80.73 - Config: configs/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes/deeplabv3_r101b-d8_769x769_80k_cityscapes_20201226_190843-9142ee57.pth -- Name: deeplabv3_r50-d8_512x512_80k_ade20k +- Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k.py In Collection: deeplabv3 Metadata: backbone: R-50-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 67.75 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 67.75 + lr schd: 80000 memory (GB): 8.9 + Name: deeplabv3_r50-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.42 mIoU(ms+flip): 43.28 - Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k/deeplabv3_r50-d8_512x512_80k_ade20k_20200614_185028-0bb3f844.pth -- Name: deeplabv3_r101-d8_512x512_80k_ade20k +- Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k.py In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 98.62 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 98.62 + lr schd: 80000 memory (GB): 12.4 + Name: deeplabv3_r101-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 44.08 mIoU(ms+flip): 45.19 - Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k/deeplabv3_r101-d8_512x512_80k_ade20k_20200615_021256-d89c7fa4.pth -- Name: deeplabv3_r50-d8_512x512_160k_ade20k +- Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k.py In Collection: deeplabv3 Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 + Name: deeplabv3_r50-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.66 mIoU(ms+flip): 44.09 - Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k/deeplabv3_r50-d8_512x512_160k_ade20k_20200615_123227-5d0ee427.pth -- Name: deeplabv3_r101-d8_512x512_160k_ade20k +- Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k.py In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 + Name: deeplabv3_r101-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 45.0 mIoU(ms+flip): 46.66 - Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k/deeplabv3_r101-d8_512x512_160k_ade20k_20200615_105816-b1f72b3b.pth -- Name: deeplabv3_r50-d8_512x512_20k_voc12aug +- Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug.py In Collection: deeplabv3 Metadata: backbone: R-50-D8 crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 72.05 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 72.05 + lr schd: 20000 memory (GB): 6.1 + Name: deeplabv3_r50-d8_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.17 mIoU(ms+flip): 77.42 - Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug/deeplabv3_r50-d8_512x512_20k_voc12aug_20200617_010906-596905ef.pth -- Name: deeplabv3_r101-d8_512x512_20k_voc12aug +- Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug.py In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 101.94 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 101.94 + lr schd: 20000 memory (GB): 9.6 + Name: deeplabv3_r101-d8_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 78.7 mIoU(ms+flip): 79.95 - Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug/deeplabv3_r101-d8_512x512_20k_voc12aug_20200617_010932-8d13832f.pth -- Name: deeplabv3_r50-d8_512x512_40k_voc12aug +- Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug.py In Collection: deeplabv3 Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 40000 + Name: deeplabv3_r50-d8_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.68 mIoU(ms+flip): 78.78 - Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug/deeplabv3_r50-d8_512x512_40k_voc12aug_20200613_161546-2ae96e7e.pth -- Name: deeplabv3_r101-d8_512x512_40k_voc12aug +- Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug.py In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 40000 + Name: deeplabv3_r101-d8_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.92 mIoU(ms+flip): 79.18 - Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug/deeplabv3_r101-d8_512x512_40k_voc12aug_20200613_161432-0017d784.pth -- Name: deeplabv3_r101-d8_480x480_40k_pascal_context +- Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context.py In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (480,480) - lr schd: 40000 inference time (ms/im): - - value: 141.04 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (480,480) + value: 141.04 + lr schd: 40000 memory (GB): 9.2 + Name: deeplabv3_r101-d8_480x480_40k_pascal_context Results: - Task: Semantic Segmentation Dataset: Pascal Context Metrics: mIoU: 46.55 mIoU(ms+flip): 47.81 - Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context/deeplabv3_r101-d8_480x480_40k_pascal_context_20200911_204118-1aa27336.pth -- Name: deeplabv3_r101-d8_480x480_80k_pascal_context +- Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context.py In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (480,480) lr schd: 80000 + Name: deeplabv3_r101-d8_480x480_80k_pascal_context Results: - Task: Semantic Segmentation Dataset: Pascal Context Metrics: mIoU: 46.42 mIoU(ms+flip): 47.53 - Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context/deeplabv3_r101-d8_480x480_80k_pascal_context_20200911_170155-2a21fff3.pth -- Name: deeplabv3_r101-d8_480x480_40k_pascal_context_59 +- Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context_59.py In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (480,480) lr schd: 40000 + Name: deeplabv3_r101-d8_480x480_40k_pascal_context_59 Results: - Task: Semantic Segmentation Dataset: Pascal Context 59 Metrics: mIoU: 52.61 mIoU(ms+flip): 54.28 - Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context_59.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context_59/deeplabv3_r101-d8_480x480_40k_pascal_context_59_20210416_110332-cb08ea46.pth -- Name: deeplabv3_r101-d8_480x480_80k_pascal_context_59 +- Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context_59.py In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (480,480) lr schd: 80000 + Name: deeplabv3_r101-d8_480x480_80k_pascal_context_59 Results: - Task: Semantic Segmentation Dataset: Pascal Context 59 Metrics: mIoU: 52.46 mIoU(ms+flip): 54.09 - Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context_59.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context_59/deeplabv3_r101-d8_480x480_80k_pascal_context_59_20210416_113002-26303993.pth diff --git a/configs/deeplabv3plus/deeplabv3plus.yml b/configs/deeplabv3plus/deeplabv3plus.yml index c84dbcac65..d681d3089d 100644 --- a/configs/deeplabv3plus/deeplabv3plus.yml +++ b/configs/deeplabv3plus/deeplabv3plus.yml @@ -1,574 +1,574 @@ Collections: -- Name: deeplabv3plus - Metadata: +- Metadata: Training Data: - Cityscapes - ADE20K - ' Pascal VOC 2012 + Aug' - ' Pascal Context' - ' Pascal Context 59' + Name: deeplabv3plus Models: -- Name: deeplabv3plus_r50-d8_512x1024_40k_cityscapes +- Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py In Collection: deeplabv3plus Metadata: backbone: R-50-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 253.81 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 253.81 + lr schd: 40000 memory (GB): 7.5 + Name: deeplabv3plus_r50-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.61 mIoU(ms+flip): 81.01 - Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes/deeplabv3plus_r50-d8_512x1024_40k_cityscapes_20200605_094610-d222ffcd.pth -- Name: deeplabv3plus_r101-d8_512x1024_40k_cityscapes +- Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes.py In Collection: deeplabv3plus Metadata: backbone: R-101-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 384.62 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 384.62 + lr schd: 40000 memory (GB): 11.0 + Name: deeplabv3plus_r101-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.21 mIoU(ms+flip): 81.82 - Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes/deeplabv3plus_r101-d8_512x1024_40k_cityscapes_20200605_094614-3769eecf.pth -- Name: deeplabv3plus_r50-d8_769x769_40k_cityscapes +- Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes.py In Collection: deeplabv3plus Metadata: backbone: R-50-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 581.4 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 581.4 + lr schd: 40000 memory (GB): 8.5 + Name: deeplabv3plus_r50-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.97 mIoU(ms+flip): 80.46 - Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes/deeplabv3plus_r50-d8_769x769_40k_cityscapes_20200606_114143-1dcb0e3c.pth -- Name: deeplabv3plus_r101-d8_769x769_40k_cityscapes +- Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes.py In Collection: deeplabv3plus Metadata: backbone: R-101-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 869.57 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 869.57 + lr schd: 40000 memory (GB): 12.5 + Name: deeplabv3plus_r101-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.46 mIoU(ms+flip): 80.5 - Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes/deeplabv3plus_r101-d8_769x769_40k_cityscapes_20200606_114304-ff414b9e.pth -- Name: deeplabv3plus_r18-d8_512x1024_80k_cityscapes +- Config: configs/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py In Collection: deeplabv3plus Metadata: backbone: R-18-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 70.08 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 70.08 + lr schd: 80000 memory (GB): 2.2 + Name: deeplabv3plus_r18-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.89 mIoU(ms+flip): 78.76 - Config: configs/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes/deeplabv3plus_r18-d8_512x1024_80k_cityscapes_20201226_080942-cff257fe.pth -- Name: deeplabv3plus_r50-d8_512x1024_80k_cityscapes +- Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py In Collection: deeplabv3plus Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 + Name: deeplabv3plus_r50-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.09 mIoU(ms+flip): 81.13 - Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes/deeplabv3plus_r50-d8_512x1024_80k_cityscapes_20200606_114049-f9fb496d.pth -- Name: deeplabv3plus_r101-d8_512x1024_80k_cityscapes +- Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py In Collection: deeplabv3plus Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 + Name: deeplabv3plus_r101-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.97 mIoU(ms+flip): 82.03 - Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143-068fcfe9.pth -- Name: deeplabv3plus_r18-d8_769x769_80k_cityscapes +- Config: configs/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes.py In Collection: deeplabv3plus Metadata: backbone: R-18-D8 crop size: (769,769) - lr schd: 80000 inference time (ms/im): - - value: 174.22 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 174.22 + lr schd: 80000 memory (GB): 2.5 + Name: deeplabv3plus_r18-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.26 mIoU(ms+flip): 77.91 - Config: configs/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes/deeplabv3plus_r18-d8_769x769_80k_cityscapes_20201226_083346-f326e06a.pth -- Name: deeplabv3plus_r50-d8_769x769_80k_cityscapes +- Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py In Collection: deeplabv3plus Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 + Name: deeplabv3plus_r50-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.83 mIoU(ms+flip): 81.48 - Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes/deeplabv3plus_r50-d8_769x769_80k_cityscapes_20200606_210233-0e9dfdc4.pth -- Name: deeplabv3plus_r101-d8_769x769_80k_cityscapes +- Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes.py In Collection: deeplabv3plus Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 + Name: deeplabv3plus_r101-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.98 mIoU(ms+flip): 82.18 - Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes/deeplabv3plus_r101-d8_769x769_80k_cityscapes_20200607_000405-a7573d20.pth -- Name: deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes +- Config: configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py In Collection: deeplabv3plus Metadata: backbone: R-101-D16-MG124 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 133.69 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 133.69 + lr schd: 40000 memory (GB): 5.8 + Name: deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.09 mIoU(ms+flip): 80.36 - Config: configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes_20200908_005644-cf9ce186.pth -- Name: deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes +- Config: configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py In Collection: deeplabv3plus Metadata: backbone: R-101-D16-MG124 crop size: (512,1024) lr schd: 80000 memory (GB): 9.9 + Name: deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.9 mIoU(ms+flip): 81.33 - Config: configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes_20200908_005644-ee6158e0.pth -- Name: deeplabv3plus_r18b-d8_512x1024_80k_cityscapes +- Config: configs/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py In Collection: deeplabv3plus Metadata: backbone: R-18b-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 66.89 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 66.89 + lr schd: 80000 memory (GB): 2.1 + Name: deeplabv3plus_r18b-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 75.87 mIoU(ms+flip): 77.52 - Config: configs/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes_20201226_090828-e451abd9.pth -- Name: deeplabv3plus_r50b-d8_512x1024_80k_cityscapes +- Config: configs/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes.py In Collection: deeplabv3plus Metadata: backbone: R-50b-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 253.81 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 253.81 + lr schd: 80000 memory (GB): 7.4 + Name: deeplabv3plus_r50b-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.28 mIoU(ms+flip): 81.44 - Config: configs/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes_20201225_213645-a97e4e43.pth -- Name: deeplabv3plus_r101b-d8_512x1024_80k_cityscapes +- Config: configs/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py In Collection: deeplabv3plus Metadata: backbone: R-101b-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 384.62 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 384.62 + lr schd: 80000 memory (GB): 10.9 + Name: deeplabv3plus_r101b-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.16 mIoU(ms+flip): 81.41 - Config: configs/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes_20201226_190843-9c3c93a4.pth -- Name: deeplabv3plus_r18b-d8_769x769_80k_cityscapes +- Config: configs/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py In Collection: deeplabv3plus Metadata: backbone: R-18b-D8 crop size: (769,769) - lr schd: 80000 inference time (ms/im): - - value: 167.79 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 167.79 + lr schd: 80000 memory (GB): 2.4 + Name: deeplabv3plus_r18b-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.36 mIoU(ms+flip): 78.24 - Config: configs/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes/deeplabv3plus_r18b-d8_769x769_80k_cityscapes_20201226_151312-2c868aff.pth -- Name: deeplabv3plus_r50b-d8_769x769_80k_cityscapes +- Config: configs/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes.py In Collection: deeplabv3plus Metadata: backbone: R-50b-D8 crop size: (769,769) - lr schd: 80000 inference time (ms/im): - - value: 581.4 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 581.4 + lr schd: 80000 memory (GB): 8.4 + Name: deeplabv3plus_r50b-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.41 mIoU(ms+flip): 80.56 - Config: configs/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes/deeplabv3plus_r50b-d8_769x769_80k_cityscapes_20201225_224655-8b596d1c.pth -- Name: deeplabv3plus_r101b-d8_769x769_80k_cityscapes +- Config: configs/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py In Collection: deeplabv3plus Metadata: backbone: R-101b-D8 crop size: (769,769) - lr schd: 80000 inference time (ms/im): - - value: 909.09 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 909.09 + lr schd: 80000 memory (GB): 12.3 + Name: deeplabv3plus_r101b-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.88 mIoU(ms+flip): 81.46 - Config: configs/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes/deeplabv3plus_r101b-d8_769x769_80k_cityscapes_20201226_205041-227cdf7c.pth -- Name: deeplabv3plus_r50-d8_512x512_80k_ade20k +- Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k.py In Collection: deeplabv3plus Metadata: backbone: R-50-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 47.6 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 47.6 + lr schd: 80000 memory (GB): 10.6 + Name: deeplabv3plus_r50-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.72 mIoU(ms+flip): 43.75 - Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k/deeplabv3plus_r50-d8_512x512_80k_ade20k_20200614_185028-bf1400d8.pth -- Name: deeplabv3plus_r101-d8_512x512_80k_ade20k +- Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k.py In Collection: deeplabv3plus Metadata: backbone: R-101-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 70.62 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 70.62 + lr schd: 80000 memory (GB): 14.1 + Name: deeplabv3plus_r101-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 44.6 mIoU(ms+flip): 46.06 - Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k/deeplabv3plus_r101-d8_512x512_80k_ade20k_20200615_014139-d5730af7.pth -- Name: deeplabv3plus_r50-d8_512x512_160k_ade20k +- Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k.py In Collection: deeplabv3plus Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 + Name: deeplabv3plus_r50-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.95 mIoU(ms+flip): 44.93 - Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k/deeplabv3plus_r50-d8_512x512_160k_ade20k_20200615_124504-6135c7e0.pth -- Name: deeplabv3plus_r101-d8_512x512_160k_ade20k +- Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k.py In Collection: deeplabv3plus Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 + Name: deeplabv3plus_r101-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 45.47 mIoU(ms+flip): 46.35 - Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k/deeplabv3plus_r101-d8_512x512_160k_ade20k_20200615_123232-38ed86bb.pth -- Name: deeplabv3plus_r50-d8_512x512_20k_voc12aug +- Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug.py In Collection: deeplabv3plus Metadata: backbone: R-50-D8 crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 47.62 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 47.62 + lr schd: 20000 memory (GB): 7.6 + Name: deeplabv3plus_r50-d8_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: ' Pascal VOC 2012 + Aug' Metrics: mIoU: 75.93 mIoU(ms+flip): 77.5 - Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug/deeplabv3plus_r50-d8_512x512_20k_voc12aug_20200617_102323-aad58ef1.pth -- Name: deeplabv3plus_r101-d8_512x512_20k_voc12aug +- Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug.py In Collection: deeplabv3plus Metadata: backbone: R-101-D8 crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 72.05 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 72.05 + lr schd: 20000 memory (GB): 11.0 + Name: deeplabv3plus_r101-d8_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: ' Pascal VOC 2012 + Aug' Metrics: mIoU: 77.22 mIoU(ms+flip): 78.59 - Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug/deeplabv3plus_r101-d8_512x512_20k_voc12aug_20200617_102345-c7ff3d56.pth -- Name: deeplabv3plus_r50-d8_512x512_40k_voc12aug +- Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug.py In Collection: deeplabv3plus Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 40000 + Name: deeplabv3plus_r50-d8_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: ' Pascal VOC 2012 + Aug' Metrics: mIoU: 76.81 mIoU(ms+flip): 77.57 - Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug/deeplabv3plus_r50-d8_512x512_40k_voc12aug_20200613_161759-e1b43aa9.pth -- Name: deeplabv3plus_r101-d8_512x512_40k_voc12aug +- Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug.py In Collection: deeplabv3plus Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 40000 + Name: deeplabv3plus_r101-d8_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: ' Pascal VOC 2012 + Aug' Metrics: mIoU: 78.62 mIoU(ms+flip): 79.53 - Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug/deeplabv3plus_r101-d8_512x512_40k_voc12aug_20200613_205333-faf03387.pth -- Name: deeplabv3plus_r101-d8_480x480_40k_pascal_context +- Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context.py In Collection: deeplabv3plus Metadata: backbone: R-101-D8 crop size: (480,480) - lr schd: 40000 inference time (ms/im): - - value: 110.01 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (480,480) + value: 110.01 + lr schd: 40000 + Name: deeplabv3plus_r101-d8_480x480_40k_pascal_context Results: - Task: Semantic Segmentation Dataset: ' Pascal Context' Metrics: mIoU: 47.3 mIoU(ms+flip): 48.47 - Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context/deeplabv3plus_r101-d8_480x480_40k_pascal_context_20200911_165459-d3c8a29e.pth -- Name: deeplabv3plus_r101-d8_480x480_80k_pascal_context +- Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context.py In Collection: deeplabv3plus Metadata: backbone: R-101-D8 crop size: (480,480) lr schd: 80000 + Name: deeplabv3plus_r101-d8_480x480_80k_pascal_context Results: - Task: Semantic Segmentation Dataset: ' Pascal Context' Metrics: mIoU: 47.23 mIoU(ms+flip): 48.26 - Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context/deeplabv3plus_r101-d8_480x480_80k_pascal_context_20200911_155322-145d3ee8.pth -- Name: deeplabv3plus_r101-d8_480x480_40k_pascal_context_59 +- Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59.py In Collection: deeplabv3plus Metadata: backbone: R-101-D8 crop size: (480,480) lr schd: 40000 + Name: deeplabv3plus_r101-d8_480x480_40k_pascal_context_59 Results: - Task: Semantic Segmentation Dataset: ' Pascal Context 59' Metrics: mIoU: 52.86 mIoU(ms+flip): 54.54 - Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59_20210416_111233-ed937f15.pth -- Name: deeplabv3plus_r101-d8_480x480_80k_pascal_context_59 +- Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59.py In Collection: deeplabv3plus Metadata: backbone: R-101-D8 crop size: (480,480) lr schd: 80000 + Name: deeplabv3plus_r101-d8_480x480_80k_pascal_context_59 Results: - Task: Semantic Segmentation Dataset: ' Pascal Context 59' Metrics: mIoU: 53.2 mIoU(ms+flip): 54.67 - Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59_20210416_111127-7ca0331d.pth diff --git a/configs/dmnet/dmnet.yml b/configs/dmnet/dmnet.yml index e4e4fcb84e..3c179b588a 100644 --- a/configs/dmnet/dmnet.yml +++ b/configs/dmnet/dmnet.yml @@ -1,223 +1,223 @@ Collections: -- Name: dmnet - Metadata: +- Metadata: Training Data: - Cityscapes - ADE20K + Name: dmnet Models: -- Name: dmnet_r50-d8_512x1024_40k_cityscapes +- Config: configs/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes.py In Collection: dmnet Metadata: backbone: R-50-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 273.22 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 273.22 + lr schd: 40000 memory (GB): 7.0 + Name: dmnet_r50-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.78 mIoU(ms+flip): 79.14 - Config: configs/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes/dmnet_r50-d8_512x1024_40k_cityscapes_20201215_042326-615373cf.pth -- Name: dmnet_r101-d8_512x1024_40k_cityscapes +- Config: configs/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes.py In Collection: dmnet Metadata: backbone: R-101-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 393.7 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 393.7 + lr schd: 40000 memory (GB): 10.6 + Name: dmnet_r101-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.37 mIoU(ms+flip): 79.72 - Config: configs/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes/dmnet_r101-d8_512x1024_40k_cityscapes_20201215_043100-8291e976.pth -- Name: dmnet_r50-d8_769x769_40k_cityscapes +- Config: configs/dmnet/dmnet_r50-d8_769x769_40k_cityscapes.py In Collection: dmnet Metadata: backbone: R-50-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 636.94 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 636.94 + lr schd: 40000 memory (GB): 7.9 + Name: dmnet_r50-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.49 mIoU(ms+flip): 80.27 - Config: configs/dmnet/dmnet_r50-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_40k_cityscapes/dmnet_r50-d8_769x769_40k_cityscapes_20201215_093706-e7f0e23e.pth -- Name: dmnet_r101-d8_769x769_40k_cityscapes +- Config: configs/dmnet/dmnet_r101-d8_769x769_40k_cityscapes.py In Collection: dmnet Metadata: backbone: R-101-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 990.1 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 990.1 + lr schd: 40000 memory (GB): 12.0 + Name: dmnet_r101-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.62 mIoU(ms+flip): 78.94 - Config: configs/dmnet/dmnet_r101-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_40k_cityscapes/dmnet_r101-d8_769x769_40k_cityscapes_20201215_081348-a74261f6.pth -- Name: dmnet_r50-d8_512x1024_80k_cityscapes +- Config: configs/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes.py In Collection: dmnet Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 + Name: dmnet_r50-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.07 mIoU(ms+flip): 80.22 - Config: configs/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes/dmnet_r50-d8_512x1024_80k_cityscapes_20201215_053728-3c8893b9.pth -- Name: dmnet_r101-d8_512x1024_80k_cityscapes +- Config: configs/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes.py In Collection: dmnet Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 + Name: dmnet_r101-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.64 mIoU(ms+flip): 80.67 - Config: configs/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes/dmnet_r101-d8_512x1024_80k_cityscapes_20201215_031718-fa081cb8.pth -- Name: dmnet_r50-d8_769x769_80k_cityscapes +- Config: configs/dmnet/dmnet_r50-d8_769x769_80k_cityscapes.py In Collection: dmnet Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 + Name: dmnet_r50-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.22 mIoU(ms+flip): 80.55 - Config: configs/dmnet/dmnet_r50-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_80k_cityscapes/dmnet_r50-d8_769x769_80k_cityscapes_20201215_034006-6060840e.pth -- Name: dmnet_r101-d8_769x769_80k_cityscapes +- Config: configs/dmnet/dmnet_r101-d8_769x769_80k_cityscapes.py In Collection: dmnet Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 + Name: dmnet_r101-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.19 mIoU(ms+flip): 80.65 - Config: configs/dmnet/dmnet_r101-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_80k_cityscapes/dmnet_r101-d8_769x769_80k_cityscapes_20201215_082810-7f0de59a.pth -- Name: dmnet_r50-d8_512x512_80k_ade20k +- Config: configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py In Collection: dmnet Metadata: backbone: R-50-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 47.73 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 47.73 + lr schd: 80000 memory (GB): 9.4 + Name: dmnet_r50-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.37 mIoU(ms+flip): 43.62 - Config: configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_80k_ade20k/dmnet_r50-d8_512x512_80k_ade20k_20201215_144744-f89092a6.pth -- Name: dmnet_r101-d8_512x512_80k_ade20k +- Config: configs/dmnet/dmnet_r101-d8_512x512_80k_ade20k.py In Collection: dmnet Metadata: backbone: R-101-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 72.05 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 72.05 + lr schd: 80000 memory (GB): 13.0 + Name: dmnet_r101-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 45.34 mIoU(ms+flip): 46.13 - Config: configs/dmnet/dmnet_r101-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_80k_ade20k/dmnet_r101-d8_512x512_80k_ade20k_20201215_104812-bfa45311.pth -- Name: dmnet_r50-d8_512x512_160k_ade20k +- Config: configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py In Collection: dmnet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 + Name: dmnet_r50-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.15 mIoU(ms+flip): 44.17 - Config: configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_160k_ade20k/dmnet_r50-d8_512x512_160k_ade20k_20201215_115313-025ab3f9.pth -- Name: dmnet_r101-d8_512x512_160k_ade20k +- Config: configs/dmnet/dmnet_r101-d8_512x512_160k_ade20k.py In Collection: dmnet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 + Name: dmnet_r101-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 45.42 mIoU(ms+flip): 46.76 - Config: configs/dmnet/dmnet_r101-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_160k_ade20k/dmnet_r101-d8_512x512_160k_ade20k_20201215_111145-a0bc02ef.pth diff --git a/configs/dnlnet/dnlnet.yml b/configs/dnlnet/dnlnet.yml index 20cd36f626..03de1c7aa5 100644 --- a/configs/dnlnet/dnlnet.yml +++ b/configs/dnlnet/dnlnet.yml @@ -1,219 +1,219 @@ Collections: -- Name: dnlnet - Metadata: +- Metadata: Training Data: - Cityscapes - ADE20K + Name: dnlnet Models: -- Name: dnl_r50-d8_512x1024_40k_cityscapes +- Config: configs/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes.py In Collection: dnlnet Metadata: backbone: R-50-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 390.62 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 390.62 + lr schd: 40000 memory (GB): 7.3 + Name: dnl_r50-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.61 - Config: configs/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes/dnl_r50-d8_512x1024_40k_cityscapes_20200904_233629-53d4ea93.pth -- Name: dnl_r101-d8_512x1024_40k_cityscapes +- Config: configs/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes.py In Collection: dnlnet Metadata: backbone: R-101-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 510.2 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 510.2 + lr schd: 40000 memory (GB): 10.9 + Name: dnl_r101-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.31 - Config: configs/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes/dnl_r101-d8_512x1024_40k_cityscapes_20200904_233629-9928ffef.pth -- Name: dnl_r50-d8_769x769_40k_cityscapes +- Config: configs/dnlnet/dnl_r50-d8_769x769_40k_cityscapes.py In Collection: dnlnet Metadata: backbone: R-50-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 666.67 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 666.67 + lr schd: 40000 memory (GB): 9.2 + Name: dnl_r50-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.44 mIoU(ms+flip): 80.27 - Config: configs/dnlnet/dnl_r50-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_40k_cityscapes/dnl_r50-d8_769x769_40k_cityscapes_20200820_232206-0f283785.pth -- Name: dnl_r101-d8_769x769_40k_cityscapes +- Config: configs/dnlnet/dnl_r101-d8_769x769_40k_cityscapes.py In Collection: dnlnet Metadata: backbone: R-101-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 980.39 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 980.39 + lr schd: 40000 memory (GB): 12.6 + Name: dnl_r101-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.39 mIoU(ms+flip): 77.77 - Config: configs/dnlnet/dnl_r101-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_40k_cityscapes/dnl_r101-d8_769x769_40k_cityscapes_20200820_171256-76c596df.pth -- Name: dnl_r50-d8_512x1024_80k_cityscapes +- Config: configs/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes.py In Collection: dnlnet Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 + Name: dnl_r50-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.33 - Config: configs/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes/dnl_r50-d8_512x1024_80k_cityscapes_20200904_233629-58b2f778.pth -- Name: dnl_r101-d8_512x1024_80k_cityscapes +- Config: configs/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes.py In Collection: dnlnet Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 + Name: dnl_r101-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.41 - Config: configs/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes/dnl_r101-d8_512x1024_80k_cityscapes_20200904_233629-758e2dd4.pth -- Name: dnl_r50-d8_769x769_80k_cityscapes +- Config: configs/dnlnet/dnl_r50-d8_769x769_80k_cityscapes.py In Collection: dnlnet Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 + Name: dnl_r50-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.36 mIoU(ms+flip): 80.7 - Config: configs/dnlnet/dnl_r50-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_80k_cityscapes/dnl_r50-d8_769x769_80k_cityscapes_20200820_011925-366bc4c7.pth -- Name: dnl_r101-d8_769x769_80k_cityscapes +- Config: configs/dnlnet/dnl_r101-d8_769x769_80k_cityscapes.py In Collection: dnlnet Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 + Name: dnl_r101-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.41 mIoU(ms+flip): 80.68 - Config: configs/dnlnet/dnl_r101-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_80k_cityscapes/dnl_r101-d8_769x769_80k_cityscapes_20200821_051111-95ff84ab.pth -- Name: dnl_r50-d8_512x512_80k_ade20k +- Config: configs/dnlnet/dnl_r50-d8_512x512_80k_ade20k.py In Collection: dnlnet Metadata: backbone: R-50-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 48.4 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 48.4 + lr schd: 80000 memory (GB): 8.8 + Name: dnl_r50-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 41.76 mIoU(ms+flip): 42.99 - Config: configs/dnlnet/dnl_r50-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_80k_ade20k/dnl_r50-d8_512x512_80k_ade20k_20200826_183354-1cf6e0c1.pth -- Name: dnl_r101-d8_512x512_80k_ade20k +- Config: configs/dnlnet/dnl_r101-d8_512x512_80k_ade20k.py In Collection: dnlnet Metadata: backbone: R-101-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 79.74 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 79.74 + lr schd: 80000 memory (GB): 12.8 + Name: dnl_r101-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.76 mIoU(ms+flip): 44.91 - Config: configs/dnlnet/dnl_r101-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_80k_ade20k/dnl_r101-d8_512x512_80k_ade20k_20200826_183354-d820d6ea.pth -- Name: dnl_r50-d8_512x512_160k_ade20k +- Config: configs/dnlnet/dnl_r50-d8_512x512_160k_ade20k.py In Collection: dnlnet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 + Name: dnl_r50-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 41.87 mIoU(ms+flip): 43.01 - Config: configs/dnlnet/dnl_r50-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_160k_ade20k/dnl_r50-d8_512x512_160k_ade20k_20200826_183350-37837798.pth -- Name: dnl_r101-d8_512x512_160k_ade20k +- Config: configs/dnlnet/dnl_r101-d8_512x512_160k_ade20k.py In Collection: dnlnet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 + Name: dnl_r101-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 44.25 mIoU(ms+flip): 45.78 - Config: configs/dnlnet/dnl_r101-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_160k_ade20k/dnl_r101-d8_512x512_160k_ade20k_20200826_183350-ed522c61.pth diff --git a/configs/emanet/emanet.yml b/configs/emanet/emanet.yml index 031b98f87e..be2d37779f 100644 --- a/configs/emanet/emanet.yml +++ b/configs/emanet/emanet.yml @@ -1,94 +1,94 @@ Collections: -- Name: emanet - Metadata: +- Metadata: Training Data: - Cityscapes + Name: emanet Models: -- Name: emanet_r50-d8_512x1024_80k_cityscapes +- Config: configs/emanet/emanet_r50-d8_512x1024_80k_cityscapes.py In Collection: emanet Metadata: backbone: R-50-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 218.34 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 218.34 + lr schd: 80000 memory (GB): 5.4 + Name: emanet_r50-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.59 mIoU(ms+flip): 79.44 - Config: configs/emanet/emanet_r50-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_512x1024_80k_cityscapes/emanet_r50-d8_512x1024_80k_cityscapes_20200901_100301-c43fcef1.pth -- Name: emanet_r101-d8_512x1024_80k_cityscapes +- Config: configs/emanet/emanet_r101-d8_512x1024_80k_cityscapes.py In Collection: emanet Metadata: backbone: R-101-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 348.43 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 348.43 + lr schd: 80000 memory (GB): 6.2 + Name: emanet_r101-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.1 mIoU(ms+flip): 81.21 - Config: configs/emanet/emanet_r101-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_512x1024_80k_cityscapes/emanet_r101-d8_512x1024_80k_cityscapes_20200901_100301-2d970745.pth -- Name: emanet_r50-d8_769x769_80k_cityscapes +- Config: configs/emanet/emanet_r50-d8_769x769_80k_cityscapes.py In Collection: emanet Metadata: backbone: R-50-D8 crop size: (769,769) - lr schd: 80000 inference time (ms/im): - - value: 507.61 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 507.61 + lr schd: 80000 memory (GB): 8.9 + Name: emanet_r50-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.33 mIoU(ms+flip): 80.49 - Config: configs/emanet/emanet_r50-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_769x769_80k_cityscapes/emanet_r50-d8_769x769_80k_cityscapes_20200901_100301-16f8de52.pth -- Name: emanet_r101-d8_769x769_80k_cityscapes +- Config: configs/emanet/emanet_r101-d8_769x769_80k_cityscapes.py In Collection: emanet Metadata: backbone: R-101-D8 crop size: (769,769) - lr schd: 80000 inference time (ms/im): - - value: 819.67 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 819.67 + lr schd: 80000 memory (GB): 10.1 + Name: emanet_r101-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.62 mIoU(ms+flip): 81.0 - Config: configs/emanet/emanet_r101-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_769x769_80k_cityscapes/emanet_r101-d8_769x769_80k_cityscapes_20200901_100301-47a324ce.pth diff --git a/configs/encnet/encnet.yml b/configs/encnet/encnet.yml index 7bbeea6a12..bbde966f13 100644 --- a/configs/encnet/encnet.yml +++ b/configs/encnet/encnet.yml @@ -1,223 +1,223 @@ Collections: -- Name: encnet - Metadata: +- Metadata: Training Data: - Cityscapes - ADE20K + Name: encnet Models: -- Name: encnet_r50-d8_512x1024_40k_cityscapes +- Config: configs/encnet/encnet_r50-d8_512x1024_40k_cityscapes.py In Collection: encnet Metadata: backbone: R-50-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 218.34 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 218.34 + lr schd: 40000 memory (GB): 8.6 + Name: encnet_r50-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 75.67 mIoU(ms+flip): 77.08 - Config: configs/encnet/encnet_r50-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_40k_cityscapes/encnet_r50-d8_512x1024_40k_cityscapes_20200621_220958-68638a47.pth -- Name: encnet_r101-d8_512x1024_40k_cityscapes +- Config: configs/encnet/encnet_r101-d8_512x1024_40k_cityscapes.py In Collection: encnet Metadata: backbone: R-101-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 375.94 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 375.94 + lr schd: 40000 memory (GB): 12.1 + Name: encnet_r101-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 75.81 mIoU(ms+flip): 77.21 - Config: configs/encnet/encnet_r101-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_40k_cityscapes/encnet_r101-d8_512x1024_40k_cityscapes_20200621_220933-35e0a3e8.pth -- Name: encnet_r50-d8_769x769_40k_cityscapes +- Config: configs/encnet/encnet_r50-d8_769x769_40k_cityscapes.py In Collection: encnet Metadata: backbone: R-50-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 549.45 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 549.45 + lr schd: 40000 memory (GB): 9.8 + Name: encnet_r50-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.24 mIoU(ms+flip): 77.85 - Config: configs/encnet/encnet_r50-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_40k_cityscapes/encnet_r50-d8_769x769_40k_cityscapes_20200621_220958-3bcd2884.pth -- Name: encnet_r101-d8_769x769_40k_cityscapes +- Config: configs/encnet/encnet_r101-d8_769x769_40k_cityscapes.py In Collection: encnet Metadata: backbone: R-101-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 793.65 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 793.65 + lr schd: 40000 memory (GB): 13.7 + Name: encnet_r101-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 74.25 mIoU(ms+flip): 76.25 - Config: configs/encnet/encnet_r101-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_40k_cityscapes/encnet_r101-d8_769x769_40k_cityscapes_20200621_220933-2fafed55.pth -- Name: encnet_r50-d8_512x1024_80k_cityscapes +- Config: configs/encnet/encnet_r50-d8_512x1024_80k_cityscapes.py In Collection: encnet Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 + Name: encnet_r50-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.94 mIoU(ms+flip): 79.13 - Config: configs/encnet/encnet_r50-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_80k_cityscapes/encnet_r50-d8_512x1024_80k_cityscapes_20200622_003554-fc5c5624.pth -- Name: encnet_r101-d8_512x1024_80k_cityscapes +- Config: configs/encnet/encnet_r101-d8_512x1024_80k_cityscapes.py In Collection: encnet Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 + Name: encnet_r101-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.55 mIoU(ms+flip): 79.47 - Config: configs/encnet/encnet_r101-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_80k_cityscapes/encnet_r101-d8_512x1024_80k_cityscapes_20200622_003555-1de64bec.pth -- Name: encnet_r50-d8_769x769_80k_cityscapes +- Config: configs/encnet/encnet_r50-d8_769x769_80k_cityscapes.py In Collection: encnet Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 + Name: encnet_r50-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.44 mIoU(ms+flip): 78.72 - Config: configs/encnet/encnet_r50-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_80k_cityscapes/encnet_r50-d8_769x769_80k_cityscapes_20200622_003554-55096dcb.pth -- Name: encnet_r101-d8_769x769_80k_cityscapes +- Config: configs/encnet/encnet_r101-d8_769x769_80k_cityscapes.py In Collection: encnet Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 + Name: encnet_r101-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.1 mIoU(ms+flip): 76.97 - Config: configs/encnet/encnet_r101-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_80k_cityscapes/encnet_r101-d8_769x769_80k_cityscapes_20200622_003555-470ef79d.pth -- Name: encnet_r50-d8_512x512_80k_ade20k +- Config: configs/encnet/encnet_r50-d8_512x512_80k_ade20k.py In Collection: encnet Metadata: backbone: R-50-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 43.84 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 43.84 + lr schd: 80000 memory (GB): 10.1 + Name: encnet_r50-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 39.53 mIoU(ms+flip): 41.17 - Config: configs/encnet/encnet_r50-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_80k_ade20k/encnet_r50-d8_512x512_80k_ade20k_20200622_042412-44b46b04.pth -- Name: encnet_r101-d8_512x512_80k_ade20k +- Config: configs/encnet/encnet_r101-d8_512x512_80k_ade20k.py In Collection: encnet Metadata: backbone: R-101-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 67.25 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 67.25 + lr schd: 80000 memory (GB): 13.6 + Name: encnet_r101-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.11 mIoU(ms+flip): 43.61 - Config: configs/encnet/encnet_r101-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_80k_ade20k/encnet_r101-d8_512x512_80k_ade20k_20200622_101128-dd35e237.pth -- Name: encnet_r50-d8_512x512_160k_ade20k +- Config: configs/encnet/encnet_r50-d8_512x512_160k_ade20k.py In Collection: encnet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 + Name: encnet_r50-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 40.1 mIoU(ms+flip): 41.71 - Config: configs/encnet/encnet_r50-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_160k_ade20k/encnet_r50-d8_512x512_160k_ade20k_20200622_101059-b2db95e0.pth -- Name: encnet_r101-d8_512x512_160k_ade20k +- Config: configs/encnet/encnet_r101-d8_512x512_160k_ade20k.py In Collection: encnet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 + Name: encnet_r101-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.61 mIoU(ms+flip): 44.01 - Config: configs/encnet/encnet_r101-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_160k_ade20k/encnet_r101-d8_512x512_160k_ade20k_20200622_073348-7989641f.pth diff --git a/configs/fastscnn/fastscnn.yml b/configs/fastscnn/fastscnn.yml index d34e77396c..f56e0e9e21 100644 --- a/configs/fastscnn/fastscnn.yml +++ b/configs/fastscnn/fastscnn.yml @@ -1,28 +1,28 @@ Collections: -- Name: fastscnn - Metadata: +- Metadata: Training Data: - Cityscapes + Name: fastscnn Models: -- Name: fast_scnn_lr0.12_8x4_160k_cityscapes +- Config: configs/fastscnn/fast_scnn_lr0.12_8x4_160k_cityscapes.py In Collection: fastscnn Metadata: backbone: Fast-SCNN crop size: (512,1024) - lr schd: 160000 inference time (ms/im): - - value: 17.71 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 17.71 + lr schd: 160000 memory (GB): 3.3 + Name: fast_scnn_lr0.12_8x4_160k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 70.96 mIoU(ms+flip): 72.65 - Config: configs/fastscnn/fast_scnn_lr0.12_8x4_160k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_8x4_160k_lr0.12_cityscapes-0cec9937.pth diff --git a/configs/fcn/fcn.yml b/configs/fcn/fcn.yml index 995dc36af3..21ee86736d 100644 --- a/configs/fcn/fcn.yml +++ b/configs/fcn/fcn.yml @@ -1,797 +1,797 @@ Collections: -- Name: fcn - Metadata: +- Metadata: Training Data: - Cityscapes - ADE20K - Pascal VOC 2012 + Aug - Pascal Context - Pascal Context 59 + Name: fcn Models: -- Name: fcn_r50-d8_512x1024_40k_cityscapes +- Config: configs/fcn/fcn_r50-d8_512x1024_40k_cityscapes.py In Collection: fcn Metadata: backbone: R-50-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 239.81 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 239.81 + lr schd: 40000 memory (GB): 5.7 + Name: fcn_r50-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 72.25 mIoU(ms+flip): 73.36 - Config: configs/fcn/fcn_r50-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_40k_cityscapes/fcn_r50-d8_512x1024_40k_cityscapes_20200604_192608-efe53f0d.pth -- Name: fcn_r101-d8_512x1024_40k_cityscapes +- Config: configs/fcn/fcn_r101-d8_512x1024_40k_cityscapes.py In Collection: fcn Metadata: backbone: R-101-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 375.94 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 375.94 + lr schd: 40000 memory (GB): 9.2 + Name: fcn_r101-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 75.45 mIoU(ms+flip): 76.58 - Config: configs/fcn/fcn_r101-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_40k_cityscapes/fcn_r101-d8_512x1024_40k_cityscapes_20200604_181852-a883d3a1.pth -- Name: fcn_r50-d8_769x769_40k_cityscapes +- Config: configs/fcn/fcn_r50-d8_769x769_40k_cityscapes.py In Collection: fcn Metadata: backbone: R-50-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 555.56 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 555.56 + lr schd: 40000 memory (GB): 6.5 + Name: fcn_r50-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 71.47 mIoU(ms+flip): 72.54 - Config: configs/fcn/fcn_r50-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_40k_cityscapes/fcn_r50-d8_769x769_40k_cityscapes_20200606_113104-977b5d02.pth -- Name: fcn_r101-d8_769x769_40k_cityscapes +- Config: configs/fcn/fcn_r101-d8_769x769_40k_cityscapes.py In Collection: fcn Metadata: backbone: R-101-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 840.34 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 840.34 + lr schd: 40000 memory (GB): 10.4 + Name: fcn_r101-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 73.93 mIoU(ms+flip): 75.14 - Config: configs/fcn/fcn_r101-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_40k_cityscapes/fcn_r101-d8_769x769_40k_cityscapes_20200606_113208-7d4ab69c.pth -- Name: fcn_r18-d8_512x1024_80k_cityscapes +- Config: configs/fcn/fcn_r18-d8_512x1024_80k_cityscapes.py In Collection: fcn Metadata: backbone: R-18-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 68.26 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 68.26 + lr schd: 80000 memory (GB): 1.7 + Name: fcn_r18-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 71.11 mIoU(ms+flip): 72.91 - Config: configs/fcn/fcn_r18-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_512x1024_80k_cityscapes/fcn_r18-d8_512x1024_80k_cityscapes_20201225_021327-6c50f8b4.pth -- Name: fcn_r50-d8_512x1024_80k_cityscapes +- Config: configs/fcn/fcn_r50-d8_512x1024_80k_cityscapes.py In Collection: fcn Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 + Name: fcn_r50-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 73.61 mIoU(ms+flip): 74.24 - Config: configs/fcn/fcn_r50-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_80k_cityscapes/fcn_r50-d8_512x1024_80k_cityscapes_20200606_113019-03aa804d.pth -- Name: fcn_r101-d8_512x1024_80k_cityscapes +- Config: configs/fcn/fcn_r101-d8_512x1024_80k_cityscapes.py In Collection: fcn Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 + Name: fcn_r101-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 75.13 mIoU(ms+flip): 75.94 - Config: configs/fcn/fcn_r101-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_80k_cityscapes/fcn_r101-d8_512x1024_80k_cityscapes_20200606_113038-3fb937eb.pth -- Name: fcn_r18-d8_769x769_80k_cityscapes +- Config: configs/fcn/fcn_r18-d8_769x769_80k_cityscapes.py In Collection: fcn Metadata: backbone: R-18-D8 crop size: (769,769) - lr schd: 80000 inference time (ms/im): - - value: 156.25 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 156.25 + lr schd: 80000 memory (GB): 1.9 + Name: fcn_r18-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 70.8 mIoU(ms+flip): 73.16 - Config: configs/fcn/fcn_r18-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_769x769_80k_cityscapes/fcn_r18-d8_769x769_80k_cityscapes_20201225_021451-9739d1b8.pth -- Name: fcn_r50-d8_769x769_80k_cityscapes +- Config: configs/fcn/fcn_r50-d8_769x769_80k_cityscapes.py In Collection: fcn Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 + Name: fcn_r50-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 72.64 mIoU(ms+flip): 73.32 - Config: configs/fcn/fcn_r50-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_80k_cityscapes/fcn_r50-d8_769x769_80k_cityscapes_20200606_195749-f5caeabc.pth -- Name: fcn_r101-d8_769x769_80k_cityscapes +- Config: configs/fcn/fcn_r101-d8_769x769_80k_cityscapes.py In Collection: fcn Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 + Name: fcn_r101-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 75.52 mIoU(ms+flip): 76.61 - Config: configs/fcn/fcn_r101-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_80k_cityscapes/fcn_r101-d8_769x769_80k_cityscapes_20200606_214354-45cbac68.pth -- Name: fcn_r18b-d8_512x1024_80k_cityscapes +- Config: configs/fcn/fcn_r18b-d8_512x1024_80k_cityscapes.py In Collection: fcn Metadata: backbone: R-18b-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 59.74 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 59.74 + lr schd: 80000 memory (GB): 1.6 + Name: fcn_r18b-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 70.24 mIoU(ms+flip): 72.77 - Config: configs/fcn/fcn_r18b-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_512x1024_80k_cityscapes/fcn_r18b-d8_512x1024_80k_cityscapes_20201225_230143-92c0f445.pth -- Name: fcn_r50b-d8_512x1024_80k_cityscapes +- Config: configs/fcn/fcn_r50b-d8_512x1024_80k_cityscapes.py In Collection: fcn Metadata: backbone: R-50b-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 238.1 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 238.1 + lr schd: 80000 memory (GB): 5.6 + Name: fcn_r50b-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 75.65 mIoU(ms+flip): 77.59 - Config: configs/fcn/fcn_r50b-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_512x1024_80k_cityscapes/fcn_r50b-d8_512x1024_80k_cityscapes_20201225_094221-82957416.pth -- Name: fcn_r101b-d8_512x1024_80k_cityscapes +- Config: configs/fcn/fcn_r101b-d8_512x1024_80k_cityscapes.py In Collection: fcn Metadata: backbone: R-101b-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 366.3 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 366.3 + lr schd: 80000 memory (GB): 9.1 + Name: fcn_r101b-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.37 mIoU(ms+flip): 78.77 - Config: configs/fcn/fcn_r101b-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_512x1024_80k_cityscapes/fcn_r101b-d8_512x1024_80k_cityscapes_20201226_160213-4543858f.pth -- Name: fcn_r18b-d8_769x769_80k_cityscapes +- Config: configs/fcn/fcn_r18b-d8_769x769_80k_cityscapes.py In Collection: fcn Metadata: backbone: R-18b-D8 crop size: (769,769) - lr schd: 80000 inference time (ms/im): - - value: 149.25 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 149.25 + lr schd: 80000 memory (GB): 1.7 + Name: fcn_r18b-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 69.66 mIoU(ms+flip): 72.07 - Config: configs/fcn/fcn_r18b-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_769x769_80k_cityscapes/fcn_r18b-d8_769x769_80k_cityscapes_20201226_004430-32d504e5.pth -- Name: fcn_r50b-d8_769x769_80k_cityscapes +- Config: configs/fcn/fcn_r50b-d8_769x769_80k_cityscapes.py In Collection: fcn Metadata: backbone: R-50b-D8 crop size: (769,769) - lr schd: 80000 inference time (ms/im): - - value: 549.45 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 549.45 + lr schd: 80000 memory (GB): 6.3 + Name: fcn_r50b-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 73.83 mIoU(ms+flip): 76.6 - Config: configs/fcn/fcn_r50b-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_769x769_80k_cityscapes/fcn_r50b-d8_769x769_80k_cityscapes_20201225_094223-94552d38.pth -- Name: fcn_r101b-d8_769x769_80k_cityscapes +- Config: configs/fcn/fcn_r101b-d8_769x769_80k_cityscapes.py In Collection: fcn Metadata: backbone: R-101b-D8 crop size: (769,769) - lr schd: 80000 inference time (ms/im): - - value: 869.57 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 869.57 + lr schd: 80000 memory (GB): 10.3 + Name: fcn_r101b-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.02 mIoU(ms+flip): 78.67 - Config: configs/fcn/fcn_r101b-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_769x769_80k_cityscapes/fcn_r101b-d8_769x769_80k_cityscapes_20201226_170012-82be37e2.pth -- Name: fcn_d6_r50-d16_512x1024_40k_cityscapes +- Config: configs/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes.py In Collection: fcn Metadata: backbone: R-50-D16 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 97.85 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 97.85 + lr schd: 40000 memory (GB): 3.4 + Name: fcn_d6_r50-d16_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.06 mIoU(ms+flip): 78.85 - Config: configs/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes/fcn_d6_r50-d16_512x1024_40k_cityscapes-98d5d1bc.pth -- Name: fcn_d6_r50-d16_512x1024_80k_cityscapes +- Config: configs/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes.py In Collection: fcn Metadata: backbone: R-50-D16 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 96.62 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 96.62 + lr schd: 80000 + Name: fcn_d6_r50-d16_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.27 mIoU(ms+flip): 78.88 - Config: configs/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes/fcn_d6_r50-d16_512x1024_40k_cityscapes-98d5d1bc.pth -- Name: fcn_d6_r50-d16_769x769_40k_cityscapes +- Config: configs/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes.py In Collection: fcn Metadata: backbone: R-50-D16 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 239.81 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 239.81 + lr schd: 40000 memory (GB): 3.7 + Name: fcn_d6_r50-d16_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.82 mIoU(ms+flip): 78.22 - Config: configs/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes/fcn_d6_r50-d16_769x769_40k_cityscapes-1aab18ed.pth -- Name: fcn_d6_r50-d16_769x769_80k_cityscapes +- Config: configs/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes.py In Collection: fcn Metadata: backbone: R-50-D16 crop size: (769,769) - lr schd: 80000 inference time (ms/im): - - value: 240.96 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 240.96 + lr schd: 80000 + Name: fcn_d6_r50-d16_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.04 mIoU(ms+flip): 78.4 - Config: configs/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes/fcn_d6_r50-d16_769x769_80k_cityscapes-109d88eb.pth -- Name: fcn_d6_r101-d16_512x1024_40k_cityscapes +- Config: configs/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes.py In Collection: fcn Metadata: backbone: R-101-D16 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 124.38 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 124.38 + lr schd: 40000 memory (GB): 4.5 + Name: fcn_d6_r101-d16_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.36 mIoU(ms+flip): 79.18 - Config: configs/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes/fcn_d6_r101-d16_512x1024_40k_cityscapes-9cf2b450.pth -- Name: fcn_d6_r101-d16_512x1024_80k_cityscapes +- Config: configs/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes.py In Collection: fcn Metadata: backbone: R-101-D16 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 121.07 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 121.07 + lr schd: 80000 + Name: fcn_d6_r101-d16_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.46 mIoU(ms+flip): 80.42 - Config: configs/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes/fcn_d6_r101-d16_512x1024_80k_cityscapes-cb336445.pth -- Name: fcn_d6_r101-d16_769x769_40k_cityscapes +- Config: configs/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes.py In Collection: fcn Metadata: backbone: R-101-D16 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 320.51 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 320.51 + lr schd: 40000 memory (GB): 5.0 + Name: fcn_d6_r101-d16_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.28 mIoU(ms+flip): 78.95 - Config: configs/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes/fcn_d6_r101-d16_769x769_40k_cityscapes-60b114e9.pth -- Name: fcn_d6_r101-d16_769x769_80k_cityscapes +- Config: configs/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes.py In Collection: fcn Metadata: backbone: R-101-D16 crop size: (769,769) - lr schd: 80000 inference time (ms/im): - - value: 311.53 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 311.53 + lr schd: 80000 + Name: fcn_d6_r101-d16_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.06 mIoU(ms+flip): 79.58 - Config: configs/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes/fcn_d6_r101-d16_769x769_80k_cityscapes-e33adc4f.pth -- Name: fcn_d6_r50b-d16_512x1024_80k_cityscapes +- Config: configs/fcn/fcn_d6_r50b-d16_512x1024_80k_cityscapes.py In Collection: fcn Metadata: backbone: R-50b-D16 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 98.43 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 98.43 + lr schd: 80000 memory (GB): 3.2 + Name: fcn_d6_r50b-d16_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.99 mIoU(ms+flip): 79.03 - Config: configs/fcn/fcn_d6_r50b-d16_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_512x1024_80k_cityscapes/fcn_d6_r50b_d16_512x1024_80k_cityscapes-6a0b62e9.pth -- Name: fcn_d6_r50b-d16_769x769_80k_cityscapes +- Config: configs/fcn/fcn_d6_r50b-d16_769x769_80k_cityscapes.py In Collection: fcn Metadata: backbone: R-50b-D16 crop size: (769,769) - lr schd: 80000 inference time (ms/im): - - value: 239.81 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 239.81 + lr schd: 80000 memory (GB): 3.6 + Name: fcn_d6_r50b-d16_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.86 mIoU(ms+flip): 78.52 - Config: configs/fcn/fcn_d6_r50b-d16_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_769x769_80k_cityscapes/fcn_d6_r50b_d16_769x769_80k_cityscapes-d665f231.pth -- Name: fcn_d6_r101b-d16_512x1024_80k_cityscapes +- Config: configs/fcn/fcn_d6_r101b-d16_512x1024_80k_cityscapes.py In Collection: fcn Metadata: backbone: R-101b-D16 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 118.2 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 118.2 + lr schd: 80000 memory (GB): 4.3 + Name: fcn_d6_r101b-d16_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.72 mIoU(ms+flip): 79.53 - Config: configs/fcn/fcn_d6_r101b-d16_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_512x1024_80k_cityscapes/fcn_d6_r101b_d16_512x1024_80k_cityscapes-3f2eb5b4.pth -- Name: fcn_d6_r101b-d16_769x769_80k_cityscapes +- Config: configs/fcn/fcn_d6_r101b-d16_769x769_80k_cityscapes.py In Collection: fcn Metadata: backbone: R-101b-D16 crop size: (769,769) - lr schd: 80000 inference time (ms/im): - - value: 301.2 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 301.2 + lr schd: 80000 memory (GB): 4.8 + Name: fcn_d6_r101b-d16_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.34 mIoU(ms+flip): 78.91 - Config: configs/fcn/fcn_d6_r101b-d16_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_769x769_80k_cityscapes/fcn_d6_r101b_d16_769x769_80k_cityscapes-c4d8bfbc.pth -- Name: fcn_r50-d8_512x512_80k_ade20k +- Config: configs/fcn/fcn_r50-d8_512x512_80k_ade20k.py In Collection: fcn Metadata: backbone: R-50-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 42.57 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 42.57 + lr schd: 80000 memory (GB): 8.5 + Name: fcn_r50-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 35.94 mIoU(ms+flip): 37.94 - Config: configs/fcn/fcn_r50-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_80k_ade20k/fcn_r50-d8_512x512_80k_ade20k_20200614_144016-f8ac5082.pth -- Name: fcn_r101-d8_512x512_80k_ade20k +- Config: configs/fcn/fcn_r101-d8_512x512_80k_ade20k.py In Collection: fcn Metadata: backbone: R-101-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 67.66 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 67.66 + lr schd: 80000 memory (GB): 12.0 + Name: fcn_r101-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 39.61 mIoU(ms+flip): 40.83 - Config: configs/fcn/fcn_r101-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_80k_ade20k/fcn_r101-d8_512x512_80k_ade20k_20200615_014143-bc1809f7.pth -- Name: fcn_r50-d8_512x512_160k_ade20k +- Config: configs/fcn/fcn_r50-d8_512x512_160k_ade20k.py In Collection: fcn Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 + Name: fcn_r50-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 36.1 mIoU(ms+flip): 38.08 - Config: configs/fcn/fcn_r50-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_160k_ade20k/fcn_r50-d8_512x512_160k_ade20k_20200615_100713-4edbc3b4.pth -- Name: fcn_r101-d8_512x512_160k_ade20k +- Config: configs/fcn/fcn_r101-d8_512x512_160k_ade20k.py In Collection: fcn Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 + Name: fcn_r101-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 39.91 mIoU(ms+flip): 41.4 - Config: configs/fcn/fcn_r101-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_160k_ade20k/fcn_r101-d8_512x512_160k_ade20k_20200615_105816-fd192bd5.pth -- Name: fcn_r50-d8_512x512_20k_voc12aug +- Config: configs/fcn/fcn_r50-d8_512x512_20k_voc12aug.py In Collection: fcn Metadata: backbone: R-50-D8 crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 42.96 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 42.96 + lr schd: 20000 memory (GB): 5.7 + Name: fcn_r50-d8_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 67.08 mIoU(ms+flip): 69.94 - Config: configs/fcn/fcn_r50-d8_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_20k_voc12aug/fcn_r50-d8_512x512_20k_voc12aug_20200617_010715-52dc5306.pth -- Name: fcn_r101-d8_512x512_20k_voc12aug +- Config: configs/fcn/fcn_r101-d8_512x512_20k_voc12aug.py In Collection: fcn Metadata: backbone: R-101-D8 crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 67.52 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 67.52 + lr schd: 20000 memory (GB): 9.2 + Name: fcn_r101-d8_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 71.16 mIoU(ms+flip): 73.57 - Config: configs/fcn/fcn_r101-d8_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_20k_voc12aug/fcn_r101-d8_512x512_20k_voc12aug_20200617_010842-0bb4e798.pth -- Name: fcn_r50-d8_512x512_40k_voc12aug +- Config: configs/fcn/fcn_r50-d8_512x512_40k_voc12aug.py In Collection: fcn Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 40000 + Name: fcn_r50-d8_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 66.97 mIoU(ms+flip): 69.04 - Config: configs/fcn/fcn_r50-d8_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_40k_voc12aug/fcn_r50-d8_512x512_40k_voc12aug_20200613_161222-5e2dbf40.pth -- Name: fcn_r101-d8_512x512_40k_voc12aug +- Config: configs/fcn/fcn_r101-d8_512x512_40k_voc12aug.py In Collection: fcn Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 40000 + Name: fcn_r101-d8_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 69.91 mIoU(ms+flip): 72.38 - Config: configs/fcn/fcn_r101-d8_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_40k_voc12aug/fcn_r101-d8_512x512_40k_voc12aug_20200613_161240-4c8bcefd.pth -- Name: fcn_r101-d8_480x480_40k_pascal_context +- Config: configs/fcn/fcn_r101-d8_480x480_40k_pascal_context.py In Collection: fcn Metadata: backbone: R-101-D8 crop size: (480,480) - lr schd: 40000 inference time (ms/im): - - value: 100.7 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (480,480) + value: 100.7 + lr schd: 40000 + Name: fcn_r101-d8_480x480_40k_pascal_context Results: - Task: Semantic Segmentation Dataset: Pascal Context Metrics: mIoU: 44.43 mIoU(ms+flip): 45.63 - Config: configs/fcn/fcn_r101-d8_480x480_40k_pascal_context.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context-20210421_154757-b5e97937.pth -- Name: fcn_r101-d8_480x480_80k_pascal_context +- Config: configs/fcn/fcn_r101-d8_480x480_80k_pascal_context.py In Collection: fcn Metadata: backbone: R-101-D8 crop size: (480,480) lr schd: 80000 + Name: fcn_r101-d8_480x480_80k_pascal_context Results: - Task: Semantic Segmentation Dataset: Pascal Context Metrics: mIoU: 44.13 mIoU(ms+flip): 45.26 - Config: configs/fcn/fcn_r101-d8_480x480_80k_pascal_context.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context-20210421_163310-4711813f.pth -- Name: fcn_r101-d8_480x480_40k_pascal_context_59 +- Config: configs/fcn/fcn_r101-d8_480x480_40k_pascal_context_59.py In Collection: fcn Metadata: backbone: R-101-D8 crop size: (480,480) lr schd: 40000 + Name: fcn_r101-d8_480x480_40k_pascal_context_59 Results: - Task: Semantic Segmentation Dataset: Pascal Context 59 Metrics: mIoU: 48.42 mIoU(ms+flip): 50.4 - Config: configs/fcn/fcn_r101-d8_480x480_40k_pascal_context_59.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context_59/fcn_r101-d8_480x480_40k_pascal_context_59_20210415_230724-8cf83682.pth -- Name: fcn_r101-d8_480x480_80k_pascal_context_59 +- Config: configs/fcn/fcn_r101-d8_480x480_80k_pascal_context_59.py In Collection: fcn Metadata: backbone: R-101-D8 crop size: (480,480) lr schd: 80000 + Name: fcn_r101-d8_480x480_80k_pascal_context_59 Results: - Task: Semantic Segmentation Dataset: Pascal Context 59 Metrics: mIoU: 49.35 mIoU(ms+flip): 51.38 - Config: configs/fcn/fcn_r101-d8_480x480_80k_pascal_context_59.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context_59/fcn_r101-d8_480x480_80k_pascal_context_59_20210416_110804-9a6f2c94.pth diff --git a/configs/fp16/fp16.yml b/configs/fp16/fp16.yml index 18f2104fa8..81a2a912b3 100644 --- a/configs/fp16/fp16.yml +++ b/configs/fp16/fp16.yml @@ -1,90 +1,90 @@ Collections: -- Name: fp16 - Metadata: +- Metadata: Training Data: - Cityscapes + Name: fp16 Models: -- Name: fcn_r101-d8_512x1024_80k_fp16_cityscapes +- Config: configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py In Collection: fp16 Metadata: backbone: R-101-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 115.74 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 115.74 + lr schd: 80000 memory (GB): 5.37 + Name: fcn_r101-d8_512x1024_80k_fp16_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.8 - Config: configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes-50245227.pth -- Name: pspnet_r101-d8_512x1024_80k_fp16_cityscapes +- Config: configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py In Collection: fp16 Metadata: backbone: R-101-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 114.03 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 114.03 + lr schd: 80000 memory (GB): 5.34 + Name: pspnet_r101-d8_512x1024_80k_fp16_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.46 - Config: configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes-ade37931.pth -- Name: deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes +- Config: configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py In Collection: fp16 Metadata: backbone: R-101-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 259.07 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 259.07 + lr schd: 80000 memory (GB): 5.75 + Name: deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.48 - Config: configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes-bc86dc84.pth -- Name: deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes +- Config: configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py In Collection: fp16 Metadata: backbone: R-101-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 127.06 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 127.06 + lr schd: 80000 memory (GB): 6.35 + Name: deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.46 - Config: configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes-cc58bc8d.pth diff --git a/configs/gcnet/gcnet.yml b/configs/gcnet/gcnet.yml index 61436a2f73..da53ac8e18 100644 --- a/configs/gcnet/gcnet.yml +++ b/configs/gcnet/gcnet.yml @@ -1,296 +1,296 @@ Collections: -- Name: gcnet - Metadata: +- Metadata: Training Data: - Cityscapes - ADE20K - Pascal VOC 2012 + Aug + Name: gcnet Models: -- Name: gcnet_r50-d8_512x1024_40k_cityscapes +- Config: configs/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes.py In Collection: gcnet Metadata: backbone: R-50-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 254.45 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 254.45 + lr schd: 40000 memory (GB): 5.8 + Name: gcnet_r50-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.69 mIoU(ms+flip): 78.56 - Config: configs/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes/gcnet_r50-d8_512x1024_40k_cityscapes_20200618_074436-4b0fd17b.pth -- Name: gcnet_r101-d8_512x1024_40k_cityscapes +- Config: configs/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes.py In Collection: gcnet Metadata: backbone: R-101-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 383.14 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 383.14 + lr schd: 40000 memory (GB): 9.2 + Name: gcnet_r101-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.28 mIoU(ms+flip): 79.34 - Config: configs/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes/gcnet_r101-d8_512x1024_40k_cityscapes_20200618_074436-5e62567f.pth -- Name: gcnet_r50-d8_769x769_40k_cityscapes +- Config: configs/gcnet/gcnet_r50-d8_769x769_40k_cityscapes.py In Collection: gcnet Metadata: backbone: R-50-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 598.8 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 598.8 + lr schd: 40000 memory (GB): 6.5 + Name: gcnet_r50-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.12 mIoU(ms+flip): 80.09 - Config: configs/gcnet/gcnet_r50-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_40k_cityscapes/gcnet_r50-d8_769x769_40k_cityscapes_20200618_182814-a26f4471.pth -- Name: gcnet_r101-d8_769x769_40k_cityscapes +- Config: configs/gcnet/gcnet_r101-d8_769x769_40k_cityscapes.py In Collection: gcnet Metadata: backbone: R-101-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 884.96 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 884.96 + lr schd: 40000 memory (GB): 10.5 + Name: gcnet_r101-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.95 mIoU(ms+flip): 80.71 - Config: configs/gcnet/gcnet_r101-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_40k_cityscapes/gcnet_r101-d8_769x769_40k_cityscapes_20200619_092550-ca4f0a84.pth -- Name: gcnet_r50-d8_512x1024_80k_cityscapes +- Config: configs/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes.py In Collection: gcnet Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 + Name: gcnet_r50-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.48 mIoU(ms+flip): 80.01 - Config: configs/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes/gcnet_r50-d8_512x1024_80k_cityscapes_20200618_074450-ef8f069b.pth -- Name: gcnet_r101-d8_512x1024_80k_cityscapes +- Config: configs/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes.py In Collection: gcnet Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 + Name: gcnet_r101-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.03 mIoU(ms+flip): 79.84 - Config: configs/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes/gcnet_r101-d8_512x1024_80k_cityscapes_20200618_074450-778ebf69.pth -- Name: gcnet_r50-d8_769x769_80k_cityscapes +- Config: configs/gcnet/gcnet_r50-d8_769x769_80k_cityscapes.py In Collection: gcnet Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 + Name: gcnet_r50-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.68 mIoU(ms+flip): 80.66 - Config: configs/gcnet/gcnet_r50-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_80k_cityscapes/gcnet_r50-d8_769x769_80k_cityscapes_20200619_092516-4839565b.pth -- Name: gcnet_r101-d8_769x769_80k_cityscapes +- Config: configs/gcnet/gcnet_r101-d8_769x769_80k_cityscapes.py In Collection: gcnet Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 + Name: gcnet_r101-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.18 mIoU(ms+flip): 80.71 - Config: configs/gcnet/gcnet_r101-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_80k_cityscapes/gcnet_r101-d8_769x769_80k_cityscapes_20200619_092628-8e043423.pth -- Name: gcnet_r50-d8_512x512_80k_ade20k +- Config: configs/gcnet/gcnet_r50-d8_512x512_80k_ade20k.py In Collection: gcnet Metadata: backbone: R-50-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 42.77 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 42.77 + lr schd: 80000 memory (GB): 8.5 + Name: gcnet_r50-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 41.47 mIoU(ms+flip): 42.85 - Config: configs/gcnet/gcnet_r50-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_80k_ade20k/gcnet_r50-d8_512x512_80k_ade20k_20200614_185146-91a6da41.pth -- Name: gcnet_r101-d8_512x512_80k_ade20k +- Config: configs/gcnet/gcnet_r101-d8_512x512_80k_ade20k.py In Collection: gcnet Metadata: backbone: R-101-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 65.79 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 65.79 + lr schd: 80000 memory (GB): 12.0 + Name: gcnet_r101-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.82 mIoU(ms+flip): 44.54 - Config: configs/gcnet/gcnet_r101-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_80k_ade20k/gcnet_r101-d8_512x512_80k_ade20k_20200615_020811-c3fcb6dd.pth -- Name: gcnet_r50-d8_512x512_160k_ade20k +- Config: configs/gcnet/gcnet_r50-d8_512x512_160k_ade20k.py In Collection: gcnet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 + Name: gcnet_r50-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.37 mIoU(ms+flip): 43.52 - Config: configs/gcnet/gcnet_r50-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_160k_ade20k/gcnet_r50-d8_512x512_160k_ade20k_20200615_224122-d95f3e1f.pth -- Name: gcnet_r101-d8_512x512_160k_ade20k +- Config: configs/gcnet/gcnet_r101-d8_512x512_160k_ade20k.py In Collection: gcnet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 + Name: gcnet_r101-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.69 mIoU(ms+flip): 45.21 - Config: configs/gcnet/gcnet_r101-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_160k_ade20k/gcnet_r101-d8_512x512_160k_ade20k_20200615_225406-615528d7.pth -- Name: gcnet_r50-d8_512x512_20k_voc12aug +- Config: configs/gcnet/gcnet_r50-d8_512x512_20k_voc12aug.py In Collection: gcnet Metadata: backbone: R-50-D8 crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 42.83 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 42.83 + lr schd: 20000 memory (GB): 5.8 + Name: gcnet_r50-d8_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.42 mIoU(ms+flip): 77.51 - Config: configs/gcnet/gcnet_r50-d8_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_20k_voc12aug/gcnet_r50-d8_512x512_20k_voc12aug_20200617_165701-3cbfdab1.pth -- Name: gcnet_r101-d8_512x512_20k_voc12aug +- Config: configs/gcnet/gcnet_r101-d8_512x512_20k_voc12aug.py In Collection: gcnet Metadata: backbone: R-101-D8 crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 67.57 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 67.57 + lr schd: 20000 memory (GB): 9.2 + Name: gcnet_r101-d8_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.41 mIoU(ms+flip): 78.56 - Config: configs/gcnet/gcnet_r101-d8_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_20k_voc12aug/gcnet_r101-d8_512x512_20k_voc12aug_20200617_165713-6c720aa9.pth -- Name: gcnet_r50-d8_512x512_40k_voc12aug +- Config: configs/gcnet/gcnet_r50-d8_512x512_40k_voc12aug.py In Collection: gcnet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 40000 + Name: gcnet_r50-d8_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.24 mIoU(ms+flip): 77.63 - Config: configs/gcnet/gcnet_r50-d8_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_40k_voc12aug/gcnet_r50-d8_512x512_40k_voc12aug_20200613_195105-9797336d.pth -- Name: gcnet_r101-d8_512x512_40k_voc12aug +- Config: configs/gcnet/gcnet_r101-d8_512x512_40k_voc12aug.py In Collection: gcnet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 40000 + Name: gcnet_r101-d8_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.84 mIoU(ms+flip): 78.59 - Config: configs/gcnet/gcnet_r101-d8_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_40k_voc12aug/gcnet_r101-d8_512x512_40k_voc12aug_20200613_185806-1e38208d.pth diff --git a/configs/hrnet/hrnet.yml b/configs/hrnet/hrnet.yml index 3686f6913c..4dbd88e12c 100644 --- a/configs/hrnet/hrnet.yml +++ b/configs/hrnet/hrnet.yml @@ -1,440 +1,440 @@ Collections: -- Name: hrnet - Metadata: +- Metadata: Training Data: - Cityscapes - ADE20K - Pascal VOC 2012 + Aug - Pascal Context - Pascal Context 59 + Name: hrnet Models: -- Name: fcn_hr18s_512x1024_40k_cityscapes +- Config: configs/hrnet/fcn_hr18s_512x1024_40k_cityscapes.py In Collection: hrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 42.12 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 42.12 + lr schd: 40000 memory (GB): 1.7 + Name: fcn_hr18s_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 73.86 mIoU(ms+flip): 75.91 - Config: configs/hrnet/fcn_hr18s_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_40k_cityscapes/fcn_hr18s_512x1024_40k_cityscapes_20200601_014216-93db27d0.pth -- Name: fcn_hr18_512x1024_40k_cityscapes +- Config: configs/hrnet/fcn_hr18_512x1024_40k_cityscapes.py In Collection: hrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 77.1 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 77.1 + lr schd: 40000 memory (GB): 2.9 + Name: fcn_hr18_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.19 mIoU(ms+flip): 78.92 - Config: configs/hrnet/fcn_hr18_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_40k_cityscapes/fcn_hr18_512x1024_40k_cityscapes_20200601_014216-f196fb4e.pth -- Name: fcn_hr48_512x1024_40k_cityscapes +- Config: configs/hrnet/fcn_hr48_512x1024_40k_cityscapes.py In Collection: hrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 155.76 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 155.76 + lr schd: 40000 memory (GB): 6.2 + Name: fcn_hr48_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.48 mIoU(ms+flip): 79.69 - Config: configs/hrnet/fcn_hr48_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_40k_cityscapes/fcn_hr48_512x1024_40k_cityscapes_20200601_014240-a989b146.pth -- Name: fcn_hr18s_512x1024_80k_cityscapes +- Config: configs/hrnet/fcn_hr18s_512x1024_80k_cityscapes.py In Collection: hrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,1024) lr schd: 80000 + Name: fcn_hr18s_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 75.31 mIoU(ms+flip): 77.48 - Config: configs/hrnet/fcn_hr18s_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_80k_cityscapes/fcn_hr18s_512x1024_80k_cityscapes_20200601_202700-1462b75d.pth -- Name: fcn_hr18_512x1024_80k_cityscapes +- Config: configs/hrnet/fcn_hr18_512x1024_80k_cityscapes.py In Collection: hrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,1024) lr schd: 80000 + Name: fcn_hr18_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.65 mIoU(ms+flip): 80.35 - Config: configs/hrnet/fcn_hr18_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_80k_cityscapes/fcn_hr18_512x1024_80k_cityscapes_20200601_223255-4e7b345e.pth -- Name: fcn_hr48_512x1024_80k_cityscapes +- Config: configs/hrnet/fcn_hr48_512x1024_80k_cityscapes.py In Collection: hrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,1024) lr schd: 80000 + Name: fcn_hr48_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.93 mIoU(ms+flip): 80.72 - Config: configs/hrnet/fcn_hr48_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_80k_cityscapes/fcn_hr48_512x1024_80k_cityscapes_20200601_202606-58ea95d6.pth -- Name: fcn_hr18s_512x1024_160k_cityscapes +- Config: configs/hrnet/fcn_hr18s_512x1024_160k_cityscapes.py In Collection: hrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,1024) lr schd: 160000 + Name: fcn_hr18s_512x1024_160k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.31 mIoU(ms+flip): 78.31 - Config: configs/hrnet/fcn_hr18s_512x1024_160k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_160k_cityscapes/fcn_hr18s_512x1024_160k_cityscapes_20200602_190901-4a0797ea.pth -- Name: fcn_hr18_512x1024_160k_cityscapes +- Config: configs/hrnet/fcn_hr18_512x1024_160k_cityscapes.py In Collection: hrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,1024) lr schd: 160000 + Name: fcn_hr18_512x1024_160k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.8 mIoU(ms+flip): 80.74 - Config: configs/hrnet/fcn_hr18_512x1024_160k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_160k_cityscapes/fcn_hr18_512x1024_160k_cityscapes_20200602_190822-221e4a4f.pth -- Name: fcn_hr48_512x1024_160k_cityscapes +- Config: configs/hrnet/fcn_hr48_512x1024_160k_cityscapes.py In Collection: hrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,1024) lr schd: 160000 + Name: fcn_hr48_512x1024_160k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.65 mIoU(ms+flip): 81.92 - Config: configs/hrnet/fcn_hr48_512x1024_160k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_160k_cityscapes/fcn_hr48_512x1024_160k_cityscapes_20200602_190946-59b7973e.pth -- Name: fcn_hr18s_512x512_80k_ade20k +- Config: configs/hrnet/fcn_hr18s_512x512_80k_ade20k.py In Collection: hrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 25.87 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 25.87 + lr schd: 80000 memory (GB): 3.8 + Name: fcn_hr18s_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 31.38 mIoU(ms+flip): 32.45 - Config: configs/hrnet/fcn_hr18s_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_80k_ade20k/fcn_hr18s_512x512_80k_ade20k_20200614_144345-77fc814a.pth -- Name: fcn_hr18_512x512_80k_ade20k +- Config: configs/hrnet/fcn_hr18_512x512_80k_ade20k.py In Collection: hrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 44.31 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 44.31 + lr schd: 80000 memory (GB): 4.9 + Name: fcn_hr18_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 35.51 mIoU(ms+flip): 36.8 - Config: configs/hrnet/fcn_hr18_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_ade20k/fcn_hr18_512x512_80k_ade20k_20200614_185145-66f20cb7.pth -- Name: fcn_hr48_512x512_80k_ade20k +- Config: configs/hrnet/fcn_hr48_512x512_80k_ade20k.py In Collection: hrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 47.1 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 47.1 + lr schd: 80000 memory (GB): 8.2 + Name: fcn_hr48_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 41.9 mIoU(ms+flip): 43.27 - Config: configs/hrnet/fcn_hr48_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_80k_ade20k/fcn_hr48_512x512_80k_ade20k_20200614_193946-7ba5258d.pth -- Name: fcn_hr18s_512x512_160k_ade20k +- Config: configs/hrnet/fcn_hr18s_512x512_160k_ade20k.py In Collection: hrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,512) lr schd: 160000 + Name: fcn_hr18s_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 33.0 mIoU(ms+flip): 34.55 - Config: configs/hrnet/fcn_hr18s_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_160k_ade20k/fcn_hr18s_512x512_160k_ade20k_20200614_214413-870f65ac.pth -- Name: fcn_hr18_512x512_160k_ade20k +- Config: configs/hrnet/fcn_hr18_512x512_160k_ade20k.py In Collection: hrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,512) lr schd: 160000 + Name: fcn_hr18_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 36.79 mIoU(ms+flip): 38.58 - Config: configs/hrnet/fcn_hr18_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_160k_ade20k/fcn_hr18_512x512_160k_ade20k_20200614_214426-ca961836.pth -- Name: fcn_hr48_512x512_160k_ade20k +- Config: configs/hrnet/fcn_hr48_512x512_160k_ade20k.py In Collection: hrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,512) lr schd: 160000 + Name: fcn_hr48_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.02 mIoU(ms+flip): 43.86 - Config: configs/hrnet/fcn_hr48_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_160k_ade20k/fcn_hr48_512x512_160k_ade20k_20200614_214407-a52fc02c.pth -- Name: fcn_hr18s_512x512_20k_voc12aug +- Config: configs/hrnet/fcn_hr18s_512x512_20k_voc12aug.py In Collection: hrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 23.06 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 23.06 + lr schd: 20000 memory (GB): 1.8 + Name: fcn_hr18s_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 65.2 mIoU(ms+flip): 68.55 - Config: configs/hrnet/fcn_hr18s_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_20k_voc12aug/fcn_hr18s_512x512_20k_voc12aug_20200617_224503-56e36088.pth -- Name: fcn_hr18_512x512_20k_voc12aug +- Config: configs/hrnet/fcn_hr18_512x512_20k_voc12aug.py In Collection: hrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 42.59 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 42.59 + lr schd: 20000 memory (GB): 2.9 + Name: fcn_hr18_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 72.3 mIoU(ms+flip): 74.71 - Config: configs/hrnet/fcn_hr18_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_20k_voc12aug/fcn_hr18_512x512_20k_voc12aug_20200617_224503-488d45f7.pth -- Name: fcn_hr48_512x512_20k_voc12aug +- Config: configs/hrnet/fcn_hr48_512x512_20k_voc12aug.py In Collection: hrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 45.35 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 45.35 + lr schd: 20000 memory (GB): 6.2 + Name: fcn_hr48_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 75.87 mIoU(ms+flip): 78.58 - Config: configs/hrnet/fcn_hr48_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_20k_voc12aug/fcn_hr48_512x512_20k_voc12aug_20200617_224419-89de05cd.pth -- Name: fcn_hr18s_512x512_40k_voc12aug +- Config: configs/hrnet/fcn_hr18s_512x512_40k_voc12aug.py In Collection: hrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,512) lr schd: 40000 + Name: fcn_hr18s_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 66.61 mIoU(ms+flip): 70.0 - Config: configs/hrnet/fcn_hr18s_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_40k_voc12aug/fcn_hr18s_512x512_40k_voc12aug_20200614_000648-4f8d6e7f.pth -- Name: fcn_hr18_512x512_40k_voc12aug +- Config: configs/hrnet/fcn_hr18_512x512_40k_voc12aug.py In Collection: hrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,512) lr schd: 40000 + Name: fcn_hr18_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 72.9 mIoU(ms+flip): 75.59 - Config: configs/hrnet/fcn_hr18_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_40k_voc12aug/fcn_hr18_512x512_40k_voc12aug_20200613_224401-1b4b76cd.pth -- Name: fcn_hr48_512x512_40k_voc12aug +- Config: configs/hrnet/fcn_hr48_512x512_40k_voc12aug.py In Collection: hrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,512) lr schd: 40000 + Name: fcn_hr48_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.24 mIoU(ms+flip): 78.49 - Config: configs/hrnet/fcn_hr48_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_40k_voc12aug/fcn_hr48_512x512_40k_voc12aug_20200613_222111-1b0f18bc.pth -- Name: fcn_hr48_480x480_40k_pascal_context +- Config: configs/hrnet/fcn_hr48_480x480_40k_pascal_context.py In Collection: hrnet Metadata: backbone: HRNetV2p-W48 crop size: (480,480) - lr schd: 40000 inference time (ms/im): - - value: 112.87 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (480,480) + value: 112.87 + lr schd: 40000 memory (GB): 6.1 + Name: fcn_hr48_480x480_40k_pascal_context Results: - Task: Semantic Segmentation Dataset: Pascal Context Metrics: mIoU: 45.14 mIoU(ms+flip): 47.42 - Config: configs/hrnet/fcn_hr48_480x480_40k_pascal_context.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context/fcn_hr48_480x480_40k_pascal_context_20200911_164852-667d00b0.pth -- Name: fcn_hr48_480x480_80k_pascal_context +- Config: configs/hrnet/fcn_hr48_480x480_80k_pascal_context.py In Collection: hrnet Metadata: backbone: HRNetV2p-W48 crop size: (480,480) lr schd: 80000 + Name: fcn_hr48_480x480_80k_pascal_context Results: - Task: Semantic Segmentation Dataset: Pascal Context Metrics: mIoU: 45.84 mIoU(ms+flip): 47.84 - Config: configs/hrnet/fcn_hr48_480x480_80k_pascal_context.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context/fcn_hr48_480x480_80k_pascal_context_20200911_155322-847a6711.pth -- Name: fcn_hr48_480x480_40k_pascal_context_59 +- Config: configs/hrnet/fcn_hr48_480x480_40k_pascal_context_59.py In Collection: hrnet Metadata: backbone: HRNetV2p-W48 crop size: (480,480) lr schd: 40000 + Name: fcn_hr48_480x480_40k_pascal_context_59 Results: - Task: Semantic Segmentation Dataset: Pascal Context 59 Metrics: mIoU: 50.33 mIoU(ms+flip): 52.83 - Config: configs/hrnet/fcn_hr48_480x480_40k_pascal_context_59.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context_59/fcn_hr48_480x480_40k_pascal_context_59_20210410_122738-b808b8b2.pth -- Name: fcn_hr48_480x480_80k_pascal_context_59 +- Config: configs/hrnet/fcn_hr48_480x480_80k_pascal_context_59.py In Collection: hrnet Metadata: backbone: HRNetV2p-W48 crop size: (480,480) lr schd: 80000 + Name: fcn_hr48_480x480_80k_pascal_context_59 Results: - Task: Semantic Segmentation Dataset: Pascal Context 59 Metrics: mIoU: 51.12 mIoU(ms+flip): 53.56 - Config: configs/hrnet/fcn_hr48_480x480_80k_pascal_context_59.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context_59/fcn_hr48_480x480_80k_pascal_context_59_20210411_003240-3ae7081e.pth diff --git a/configs/mobilenet_v2/mobilenet_v2.yml b/configs/mobilenet_v2/mobilenet_v2.yml index 17d2af1273..b23a02a018 100644 --- a/configs/mobilenet_v2/mobilenet_v2.yml +++ b/configs/mobilenet_v2/mobilenet_v2.yml @@ -1,175 +1,175 @@ Collections: -- Name: mobilenet_v2 - Metadata: +- Metadata: Training Data: - Cityscapes - ADE20k + Name: mobilenet_v2 Models: -- Name: fcn_m-v2-d8_512x1024_80k_cityscapes +- Config: configs/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes.py In Collection: mobilenet_v2 Metadata: backbone: M-V2-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 70.42 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 70.42 + lr schd: 80000 memory (GB): 3.4 + Name: fcn_m-v2-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 61.54 - Config: configs/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes/fcn_m-v2-d8_512x1024_80k_cityscapes_20200825_124817-d24c28c1.pth -- Name: pspnet_m-v2-d8_512x1024_80k_cityscapes +- Config: configs/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes.py In Collection: mobilenet_v2 Metadata: backbone: M-V2-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 89.29 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 89.29 + lr schd: 80000 memory (GB): 3.6 + Name: pspnet_m-v2-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 70.23 - Config: configs/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes/pspnet_m-v2-d8_512x1024_80k_cityscapes_20200825_124817-19e81d51.pth -- Name: deeplabv3_m-v2-d8_512x1024_80k_cityscapes +- Config: configs/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py In Collection: mobilenet_v2 Metadata: backbone: M-V2-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 119.05 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 119.05 + lr schd: 80000 memory (GB): 3.9 + Name: deeplabv3_m-v2-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 73.84 - Config: configs/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes/deeplabv3_m-v2-d8_512x1024_80k_cityscapes_20200825_124836-bef03590.pth -- Name: deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes +- Config: configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py In Collection: mobilenet_v2 Metadata: backbone: M-V2-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 119.05 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 119.05 + lr schd: 80000 memory (GB): 5.1 + Name: deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 75.2 - Config: configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes_20200825_124836-d256dd4b.pth -- Name: fcn_m-v2-d8_512x512_160k_ade20k +- Config: configs/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k.py In Collection: mobilenet_v2 Metadata: backbone: M-V2-D8 crop size: (512,512) - lr schd: 160000 inference time (ms/im): - - value: 15.53 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 15.53 + lr schd: 160000 memory (GB): 6.5 + Name: fcn_m-v2-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20k Metrics: mIoU: 19.71 - Config: configs/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k/fcn_m-v2-d8_512x512_160k_ade20k_20200825_214953-c40e1095.pth -- Name: pspnet_m-v2-d8_512x512_160k_ade20k +- Config: configs/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k.py In Collection: mobilenet_v2 Metadata: backbone: M-V2-D8 crop size: (512,512) - lr schd: 160000 inference time (ms/im): - - value: 17.33 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 17.33 + lr schd: 160000 memory (GB): 6.5 + Name: pspnet_m-v2-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20k Metrics: mIoU: 29.68 - Config: configs/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k/pspnet_m-v2-d8_512x512_160k_ade20k_20200825_214953-f5942f7a.pth -- Name: deeplabv3_m-v2-d8_512x512_160k_ade20k +- Config: configs/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k.py In Collection: mobilenet_v2 Metadata: backbone: M-V2-D8 crop size: (512,512) - lr schd: 160000 inference time (ms/im): - - value: 25.06 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 25.06 + lr schd: 160000 memory (GB): 6.8 + Name: deeplabv3_m-v2-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20k Metrics: mIoU: 34.08 - Config: configs/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k/deeplabv3_m-v2-d8_512x512_160k_ade20k_20200825_223255-63986343.pth -- Name: deeplabv3plus_m-v2-d8_512x512_160k_ade20k +- Config: configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py In Collection: mobilenet_v2 Metadata: backbone: M-V2-D8 crop size: (512,512) - lr schd: 160000 inference time (ms/im): - - value: 23.2 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 23.2 + lr schd: 160000 memory (GB): 8.2 + Name: deeplabv3plus_m-v2-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20k Metrics: mIoU: 34.02 - Config: configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k/deeplabv3plus_m-v2-d8_512x512_160k_ade20k_20200825_223255-465a01d4.pth diff --git a/configs/mobilenet_v3/mobilenet_v3.yml b/configs/mobilenet_v3/mobilenet_v3.yml index 8240cfffd6..68e6368ad6 100644 --- a/configs/mobilenet_v3/mobilenet_v3.yml +++ b/configs/mobilenet_v3/mobilenet_v3.yml @@ -1,94 +1,94 @@ Collections: -- Name: mobilenet_v3 - Metadata: +- Metadata: Training Data: - Cityscapes + Name: mobilenet_v3 Models: -- Name: lraspp_m-v3-d8_512x1024_320k_cityscapes +- Config: configs/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes.py In Collection: mobilenet_v3 Metadata: backbone: M-V3-D8 crop size: (512,1024) - lr schd: 320000 inference time (ms/im): - - value: 65.7 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 65.7 + lr schd: 320000 memory (GB): 8.9 + Name: lraspp_m-v3-d8_512x1024_320k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 69.54 mIoU(ms+flip): 70.89 - Config: configs/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes/lraspp_m-v3-d8_512x1024_320k_cityscapes_20201224_220337-cfe8fb07.pth -- Name: lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes +- Config: configs/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py In Collection: mobilenet_v3 Metadata: backbone: M-V3-D8 (scratch) crop size: (512,1024) - lr schd: 320000 inference time (ms/im): - - value: 67.7 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 67.7 + lr schd: 320000 memory (GB): 8.9 + Name: lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 67.87 mIoU(ms+flip): 69.78 - Config: configs/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes_20201224_220337-9f29cd72.pth -- Name: lraspp_m-v3s-d8_512x1024_320k_cityscapes +- Config: configs/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes.py In Collection: mobilenet_v3 Metadata: backbone: M-V3s-D8 crop size: (512,1024) - lr schd: 320000 inference time (ms/im): - - value: 42.3 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 42.3 + lr schd: 320000 memory (GB): 5.3 + Name: lraspp_m-v3s-d8_512x1024_320k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 64.11 mIoU(ms+flip): 66.42 - Config: configs/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes/lraspp_m-v3s-d8_512x1024_320k_cityscapes_20201224_223935-61565b34.pth -- Name: lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes +- Config: configs/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py In Collection: mobilenet_v3 Metadata: backbone: M-V3s-D8 (scratch) crop size: (512,1024) - lr schd: 320000 inference time (ms/im): - - value: 40.82 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 40.82 + lr schd: 320000 memory (GB): 5.3 + Name: lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 62.74 mIoU(ms+flip): 65.01 - Config: configs/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes_20201224_223935-03daeabb.pth diff --git a/configs/nonlocal_net/nonlocal_net.yml b/configs/nonlocal_net/nonlocal_net.yml index 53ac230cf0..e349f5c069 100644 --- a/configs/nonlocal_net/nonlocal_net.yml +++ b/configs/nonlocal_net/nonlocal_net.yml @@ -1,292 +1,292 @@ Collections: -- Name: nonlocal_net - Metadata: +- Metadata: Training Data: - Cityscapes - ADE20K - Pascal VOC 2012 + Aug + Name: nonlocal_net Models: -- Name: nonlocal_r50-d8_512x1024_40k_cityscapes +- Config: configs/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes.py In Collection: nonlocal_net Metadata: backbone: R-50-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 367.65 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 367.65 + lr schd: 40000 memory (GB): 7.4 + Name: nonlocal_r50-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.24 - Config: configs/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes/nonlocal_r50-d8_512x1024_40k_cityscapes_20200605_210748-c75e81e3.pth -- Name: nonlocal_r101-d8_512x1024_40k_cityscapes +- Config: configs/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes.py In Collection: nonlocal_net Metadata: backbone: R-101-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 512.82 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 512.82 + lr schd: 40000 memory (GB): 10.9 + Name: nonlocal_r101-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.66 - Config: configs/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes/nonlocal_r101-d8_512x1024_40k_cityscapes_20200605_210748-d63729fa.pth -- Name: nonlocal_r50-d8_769x769_40k_cityscapes +- Config: configs/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes.py In Collection: nonlocal_net Metadata: backbone: R-50-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 657.89 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 657.89 + lr schd: 40000 memory (GB): 8.9 + Name: nonlocal_r50-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.33 mIoU(ms+flip): 79.92 - Config: configs/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes/nonlocal_r50-d8_769x769_40k_cityscapes_20200530_045243-82ef6749.pth -- Name: nonlocal_r101-d8_769x769_40k_cityscapes +- Config: configs/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes.py In Collection: nonlocal_net Metadata: backbone: R-101-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 952.38 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 952.38 + lr schd: 40000 memory (GB): 12.8 + Name: nonlocal_r101-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.57 mIoU(ms+flip): 80.29 - Config: configs/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes/nonlocal_r101-d8_769x769_40k_cityscapes_20200530_045348-8fe9a9dc.pth -- Name: nonlocal_r50-d8_512x1024_80k_cityscapes +- Config: configs/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes.py In Collection: nonlocal_net Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 + Name: nonlocal_r50-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.01 - Config: configs/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes/nonlocal_r50-d8_512x1024_80k_cityscapes_20200607_193518-d6839fae.pth -- Name: nonlocal_r101-d8_512x1024_80k_cityscapes +- Config: configs/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes.py In Collection: nonlocal_net Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 + Name: nonlocal_r101-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.93 - Config: configs/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes/nonlocal_r101-d8_512x1024_80k_cityscapes_20200607_183411-32700183.pth -- Name: nonlocal_r50-d8_769x769_80k_cityscapes +- Config: configs/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes.py In Collection: nonlocal_net Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 + Name: nonlocal_r50-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.05 mIoU(ms+flip): 80.68 - Config: configs/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes/nonlocal_r50-d8_769x769_80k_cityscapes_20200607_193506-1f9792f6.pth -- Name: nonlocal_r101-d8_769x769_80k_cityscapes +- Config: configs/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes.py In Collection: nonlocal_net Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 + Name: nonlocal_r101-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.4 mIoU(ms+flip): 80.85 - Config: configs/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes/nonlocal_r101-d8_769x769_80k_cityscapes_20200607_183428-0e1fa4f9.pth -- Name: nonlocal_r50-d8_512x512_80k_ade20k +- Config: configs/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k.py In Collection: nonlocal_net Metadata: backbone: R-50-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 46.79 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 46.79 + lr schd: 80000 memory (GB): 9.1 + Name: nonlocal_r50-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 40.75 mIoU(ms+flip): 42.05 - Config: configs/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k/nonlocal_r50-d8_512x512_80k_ade20k_20200615_015801-5ae0aa33.pth -- Name: nonlocal_r101-d8_512x512_80k_ade20k +- Config: configs/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k.py In Collection: nonlocal_net Metadata: backbone: R-101-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 71.58 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 71.58 + lr schd: 80000 memory (GB): 12.6 + Name: nonlocal_r101-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.9 mIoU(ms+flip): 44.27 - Config: configs/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k/nonlocal_r101-d8_512x512_80k_ade20k_20200615_015758-24105919.pth -- Name: nonlocal_r50-d8_512x512_160k_ade20k +- Config: configs/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k.py In Collection: nonlocal_net Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 + Name: nonlocal_r50-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.03 mIoU(ms+flip): 43.04 - Config: configs/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k/nonlocal_r50-d8_512x512_160k_ade20k_20200616_005410-baef45e3.pth -- Name: nonlocal_r101-d8_512x512_160k_ade20k +- Config: configs/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k.py In Collection: nonlocal_net Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 + Name: nonlocal_r101-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.36 mIoU(ms+flip): 44.83 - Config: configs/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k/nonlocal_r101-d8_512x512_160k_ade20k_20200616_003422-affd0f8d.pth -- Name: nonlocal_r50-d8_512x512_20k_voc12aug +- Config: configs/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug.py In Collection: nonlocal_net Metadata: backbone: R-50-D8 crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 47.15 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 47.15 + lr schd: 20000 memory (GB): 6.4 + Name: nonlocal_r50-d8_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.2 mIoU(ms+flip): 77.12 - Config: configs/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug/nonlocal_r50-d8_512x512_20k_voc12aug_20200617_222613-07f2a57c.pth -- Name: nonlocal_r101-d8_512x512_20k_voc12aug +- Config: configs/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug.py In Collection: nonlocal_net Metadata: backbone: R-101-D8 crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 71.38 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 71.38 + lr schd: 20000 memory (GB): 9.8 + Name: nonlocal_r101-d8_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 78.15 mIoU(ms+flip): 78.86 - Config: configs/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug/nonlocal_r101-d8_512x512_20k_voc12aug_20200617_222615-948c68ab.pth -- Name: nonlocal_r50-d8_512x512_40k_voc12aug +- Config: configs/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug.py In Collection: nonlocal_net Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 40000 + Name: nonlocal_r50-d8_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.65 mIoU(ms+flip): 77.47 - Config: configs/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug/nonlocal_r50-d8_512x512_40k_voc12aug_20200614_000028-0139d4a9.pth -- Name: nonlocal_r101-d8_512x512_40k_voc12aug +- Config: configs/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug.py In Collection: nonlocal_net Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 40000 + Name: nonlocal_r101-d8_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 78.27 mIoU(ms+flip): 79.12 - Config: configs/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug/nonlocal_r101-d8_512x512_40k_voc12aug_20200614_000028-7e5ff470.pth diff --git a/configs/ocrnet/ocrnet.yml b/configs/ocrnet/ocrnet.yml index 8e93f2e941..63ead6a120 100644 --- a/configs/ocrnet/ocrnet.yml +++ b/configs/ocrnet/ocrnet.yml @@ -1,431 +1,431 @@ Collections: -- Name: ocrnet - Metadata: +- Metadata: Training Data: - Cityscapes - ' HRNet backbone' - ' ResNet backbone' - ADE20K - Pascal VOC 2012 + Aug + Name: ocrnet Models: -- Name: ocrnet_hr18s_512x1024_40k_cityscapes +- Config: configs/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes.py In Collection: ocrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 95.69 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 95.69 + lr schd: 40000 memory (GB): 3.5 + Name: ocrnet_hr18s_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: ' HRNet backbone' Metrics: mIoU: 74.3 mIoU(ms+flip): 75.95 - Config: configs/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes/ocrnet_hr18s_512x1024_40k_cityscapes_20200601_033304-fa2436c2.pth -- Name: ocrnet_hr18_512x1024_40k_cityscapes +- Config: configs/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes.py In Collection: ocrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 133.33 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 133.33 + lr schd: 40000 memory (GB): 4.7 + Name: ocrnet_hr18_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: ' HRNet backbone' Metrics: mIoU: 77.72 mIoU(ms+flip): 79.49 - Config: configs/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes/ocrnet_hr18_512x1024_40k_cityscapes_20200601_033320-401c5bdd.pth -- Name: ocrnet_hr48_512x1024_40k_cityscapes +- Config: configs/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes.py In Collection: ocrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 236.97 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 236.97 + lr schd: 40000 memory (GB): 8.0 + Name: ocrnet_hr48_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: ' HRNet backbone' Metrics: mIoU: 80.58 mIoU(ms+flip): 81.79 - Config: configs/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes/ocrnet_hr48_512x1024_40k_cityscapes_20200601_033336-55b32491.pth -- Name: ocrnet_hr18s_512x1024_80k_cityscapes +- Config: configs/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes.py In Collection: ocrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,1024) lr schd: 80000 + Name: ocrnet_hr18s_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: ' HRNet backbone' Metrics: mIoU: 77.16 mIoU(ms+flip): 78.66 - Config: configs/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes/ocrnet_hr18s_512x1024_80k_cityscapes_20200601_222735-55979e63.pth -- Name: ocrnet_hr18_512x1024_80k_cityscapes +- Config: configs/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes.py In Collection: ocrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,1024) lr schd: 80000 + Name: ocrnet_hr18_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: ' HRNet backbone' Metrics: mIoU: 78.57 mIoU(ms+flip): 80.46 - Config: configs/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes/ocrnet_hr18_512x1024_80k_cityscapes_20200614_230521-c2e1dd4a.pth -- Name: ocrnet_hr48_512x1024_80k_cityscapes +- Config: configs/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes.py In Collection: ocrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,1024) lr schd: 80000 + Name: ocrnet_hr48_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: ' HRNet backbone' Metrics: mIoU: 80.7 mIoU(ms+flip): 81.87 - Config: configs/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes/ocrnet_hr48_512x1024_80k_cityscapes_20200601_222752-9076bcdf.pth -- Name: ocrnet_hr18s_512x1024_160k_cityscapes +- Config: configs/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes.py In Collection: ocrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,1024) lr schd: 160000 + Name: ocrnet_hr18s_512x1024_160k_cityscapes Results: - Task: Semantic Segmentation Dataset: ' HRNet backbone' Metrics: mIoU: 78.45 mIoU(ms+flip): 79.97 - Config: configs/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes/ocrnet_hr18s_512x1024_160k_cityscapes_20200602_191005-f4a7af28.pth -- Name: ocrnet_hr18_512x1024_160k_cityscapes +- Config: configs/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes.py In Collection: ocrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,1024) lr schd: 160000 + Name: ocrnet_hr18_512x1024_160k_cityscapes Results: - Task: Semantic Segmentation Dataset: ' HRNet backbone' Metrics: mIoU: 79.47 mIoU(ms+flip): 80.91 - Config: configs/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes/ocrnet_hr18_512x1024_160k_cityscapes_20200602_191001-b9172d0c.pth -- Name: ocrnet_hr48_512x1024_160k_cityscapes +- Config: configs/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes.py In Collection: ocrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,1024) lr schd: 160000 + Name: ocrnet_hr48_512x1024_160k_cityscapes Results: - Task: Semantic Segmentation Dataset: ' HRNet backbone' Metrics: mIoU: 81.35 mIoU(ms+flip): 82.7 - Config: configs/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes/ocrnet_hr48_512x1024_160k_cityscapes_20200602_191037-dfbf1b0c.pth -- Name: ocrnet_r101-d8_512x1024_40k_b8_cityscapes +- Config: configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py In Collection: ocrnet Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 40000 + Name: ocrnet_r101-d8_512x1024_40k_b8_cityscapes Results: - Task: Semantic Segmentation Dataset: ' ResNet backbone' Metrics: mIoU: 80.09 - Config: configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes/ocrnet_r101-d8_512x1024_40k_b8_cityscapes-02ac0f13.pth -- Name: ocrnet_r101-d8_512x1024_40k_b16_cityscapes +- Config: configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py In Collection: ocrnet Metadata: backbone: R-101-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 331.13 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 331.13 + lr schd: 40000 memory (GB): 8.8 + Name: ocrnet_r101-d8_512x1024_40k_b16_cityscapes Results: - Task: Semantic Segmentation Dataset: ' ResNet backbone' Metrics: mIoU: 80.3 - Config: configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes/ocrnet_r101-d8_512x1024_40k_b16_cityscapes-db500f80.pth -- Name: ocrnet_r101-d8_512x1024_80k_b16_cityscapes +- Config: configs/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py In Collection: ocrnet Metadata: backbone: R-101-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 331.13 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 331.13 + lr schd: 80000 memory (GB): 8.8 + Name: ocrnet_r101-d8_512x1024_80k_b16_cityscapes Results: - Task: Semantic Segmentation Dataset: ' ResNet backbone' Metrics: mIoU: 80.81 - Config: configs/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes/ocrnet_r101-d8_512x1024_80k_b16_cityscapes-78688424.pth -- Name: ocrnet_hr18s_512x512_80k_ade20k +- Config: configs/ocrnet/ocrnet_hr18s_512x512_80k_ade20k.py In Collection: ocrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 34.51 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 34.51 + lr schd: 80000 memory (GB): 6.7 + Name: ocrnet_hr18s_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 35.06 mIoU(ms+flip): 35.8 - Config: configs/ocrnet/ocrnet_hr18s_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_80k_ade20k/ocrnet_hr18s_512x512_80k_ade20k_20200615_055600-e80b62af.pth -- Name: ocrnet_hr18_512x512_80k_ade20k +- Config: configs/ocrnet/ocrnet_hr18_512x512_80k_ade20k.py In Collection: ocrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 52.83 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 52.83 + lr schd: 80000 memory (GB): 7.9 + Name: ocrnet_hr18_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 37.79 mIoU(ms+flip): 39.16 - Config: configs/ocrnet/ocrnet_hr18_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_80k_ade20k/ocrnet_hr18_512x512_80k_ade20k_20200615_053157-d173d83b.pth -- Name: ocrnet_hr48_512x512_80k_ade20k +- Config: configs/ocrnet/ocrnet_hr48_512x512_80k_ade20k.py In Collection: ocrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 58.86 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 58.86 + lr schd: 80000 memory (GB): 11.2 + Name: ocrnet_hr48_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.0 mIoU(ms+flip): 44.3 - Config: configs/ocrnet/ocrnet_hr48_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_80k_ade20k/ocrnet_hr48_512x512_80k_ade20k_20200615_021518-d168c2d1.pth -- Name: ocrnet_hr18s_512x512_160k_ade20k +- Config: configs/ocrnet/ocrnet_hr18s_512x512_160k_ade20k.py In Collection: ocrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,512) lr schd: 160000 + Name: ocrnet_hr18s_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 37.19 mIoU(ms+flip): 38.4 - Config: configs/ocrnet/ocrnet_hr18s_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_160k_ade20k/ocrnet_hr18s_512x512_160k_ade20k_20200615_184505-8e913058.pth -- Name: ocrnet_hr18_512x512_160k_ade20k +- Config: configs/ocrnet/ocrnet_hr18_512x512_160k_ade20k.py In Collection: ocrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,512) lr schd: 160000 + Name: ocrnet_hr18_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 39.32 mIoU(ms+flip): 40.8 - Config: configs/ocrnet/ocrnet_hr18_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_160k_ade20k/ocrnet_hr18_512x512_160k_ade20k_20200615_200940-d8fcd9d1.pth -- Name: ocrnet_hr48_512x512_160k_ade20k +- Config: configs/ocrnet/ocrnet_hr48_512x512_160k_ade20k.py In Collection: ocrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,512) lr schd: 160000 + Name: ocrnet_hr48_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.25 mIoU(ms+flip): 44.88 - Config: configs/ocrnet/ocrnet_hr48_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_160k_ade20k/ocrnet_hr48_512x512_160k_ade20k_20200615_184705-a073726d.pth -- Name: ocrnet_hr18s_512x512_20k_voc12aug +- Config: configs/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug.py In Collection: ocrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 31.7 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 31.7 + lr schd: 20000 memory (GB): 3.5 + Name: ocrnet_hr18s_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 71.7 mIoU(ms+flip): 73.84 - Config: configs/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug/ocrnet_hr18s_512x512_20k_voc12aug_20200617_233913-02b04fcb.pth -- Name: ocrnet_hr18_512x512_20k_voc12aug +- Config: configs/ocrnet/ocrnet_hr18_512x512_20k_voc12aug.py In Collection: ocrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 50.23 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 50.23 + lr schd: 20000 memory (GB): 4.7 + Name: ocrnet_hr18_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 74.75 mIoU(ms+flip): 77.11 - Config: configs/ocrnet/ocrnet_hr18_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_20k_voc12aug/ocrnet_hr18_512x512_20k_voc12aug_20200617_233932-8954cbb7.pth -- Name: ocrnet_hr48_512x512_20k_voc12aug +- Config: configs/ocrnet/ocrnet_hr48_512x512_20k_voc12aug.py In Collection: ocrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 56.09 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 56.09 + lr schd: 20000 memory (GB): 8.1 + Name: ocrnet_hr48_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.72 mIoU(ms+flip): 79.87 - Config: configs/ocrnet/ocrnet_hr48_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_20k_voc12aug/ocrnet_hr48_512x512_20k_voc12aug_20200617_233932-9e82080a.pth -- Name: ocrnet_hr18s_512x512_40k_voc12aug +- Config: configs/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug.py In Collection: ocrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,512) lr schd: 40000 + Name: ocrnet_hr18s_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 72.76 mIoU(ms+flip): 74.6 - Config: configs/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug/ocrnet_hr18s_512x512_40k_voc12aug_20200614_002025-42b587ac.pth -- Name: ocrnet_hr18_512x512_40k_voc12aug +- Config: configs/ocrnet/ocrnet_hr18_512x512_40k_voc12aug.py In Collection: ocrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,512) lr schd: 40000 + Name: ocrnet_hr18_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 74.98 mIoU(ms+flip): 77.4 - Config: configs/ocrnet/ocrnet_hr18_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_40k_voc12aug/ocrnet_hr18_512x512_40k_voc12aug_20200614_015958-714302be.pth -- Name: ocrnet_hr48_512x512_40k_voc12aug +- Config: configs/ocrnet/ocrnet_hr48_512x512_40k_voc12aug.py In Collection: ocrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,512) lr schd: 40000 + Name: ocrnet_hr48_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.14 mIoU(ms+flip): 79.71 - Config: configs/ocrnet/ocrnet_hr48_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_40k_voc12aug/ocrnet_hr48_512x512_40k_voc12aug_20200614_015958-255bc5ce.pth diff --git a/configs/point_rend/point_rend.yml b/configs/point_rend/point_rend.yml index ecb443a659..064af5300c 100644 --- a/configs/point_rend/point_rend.yml +++ b/configs/point_rend/point_rend.yml @@ -1,95 +1,95 @@ Collections: -- Name: point_rend - Metadata: +- Metadata: Training Data: - Cityscapes - ADE20K + Name: point_rend Models: -- Name: pointrend_r50_512x1024_80k_cityscapes +- Config: configs/point_rend/pointrend_r50_512x1024_80k_cityscapes.py In Collection: point_rend Metadata: backbone: R-50 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 117.92 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 117.92 + lr schd: 80000 memory (GB): 3.1 + Name: pointrend_r50_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.47 mIoU(ms+flip): 78.13 - Config: configs/point_rend/pointrend_r50_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x1024_80k_cityscapes/pointrend_r50_512x1024_80k_cityscapes_20200711_015821-bb1ff523.pth -- Name: pointrend_r101_512x1024_80k_cityscapes +- Config: configs/point_rend/pointrend_r101_512x1024_80k_cityscapes.py In Collection: point_rend Metadata: backbone: R-101 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 142.86 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 142.86 + lr schd: 80000 memory (GB): 4.2 + Name: pointrend_r101_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.3 mIoU(ms+flip): 79.97 - Config: configs/point_rend/pointrend_r101_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x1024_80k_cityscapes/pointrend_r101_512x1024_80k_cityscapes_20200711_170850-d0ca84be.pth -- Name: pointrend_r50_512x512_160k_ade20k +- Config: configs/point_rend/pointrend_r50_512x512_160k_ade20k.py In Collection: point_rend Metadata: backbone: R-50 crop size: (512,512) - lr schd: 160000 inference time (ms/im): - - value: 57.77 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 57.77 + lr schd: 160000 memory (GB): 5.1 + Name: pointrend_r50_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 37.64 mIoU(ms+flip): 39.17 - Config: configs/point_rend/pointrend_r50_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x512_160k_ade20k/pointrend_r50_512x512_160k_ade20k_20200807_232644-ac3febf2.pth -- Name: pointrend_r101_512x512_160k_ade20k +- Config: configs/point_rend/pointrend_r101_512x512_160k_ade20k.py In Collection: point_rend Metadata: backbone: R-101 crop size: (512,512) - lr schd: 160000 inference time (ms/im): - - value: 64.52 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 64.52 + lr schd: 160000 memory (GB): 6.1 + Name: pointrend_r101_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 40.02 mIoU(ms+flip): 41.6 - Config: configs/point_rend/pointrend_r101_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x512_160k_ade20k/pointrend_r101_512x512_160k_ade20k_20200808_030852-8834902a.pth diff --git a/configs/psanet/psanet.yml b/configs/psanet/psanet.yml index a542e5cf3b..ae069485df 100644 --- a/configs/psanet/psanet.yml +++ b/configs/psanet/psanet.yml @@ -1,296 +1,296 @@ Collections: -- Name: psanet - Metadata: +- Metadata: Training Data: - Cityscapes - ADE20K - Pascal VOC 2012 + Aug + Name: psanet Models: -- Name: psanet_r50-d8_512x1024_40k_cityscapes +- Config: configs/psanet/psanet_r50-d8_512x1024_40k_cityscapes.py In Collection: psanet Metadata: backbone: R-50-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 315.46 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 315.46 + lr schd: 40000 memory (GB): 7.0 + Name: psanet_r50-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.63 mIoU(ms+flip): 79.04 - Config: configs/psanet/psanet_r50-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_40k_cityscapes/psanet_r50-d8_512x1024_40k_cityscapes_20200606_103117-99fac37c.pth -- Name: psanet_r101-d8_512x1024_40k_cityscapes +- Config: configs/psanet/psanet_r101-d8_512x1024_40k_cityscapes.py In Collection: psanet Metadata: backbone: R-101-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 454.55 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 454.55 + lr schd: 40000 memory (GB): 10.5 + Name: psanet_r101-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.14 mIoU(ms+flip): 80.19 - Config: configs/psanet/psanet_r101-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_40k_cityscapes/psanet_r101-d8_512x1024_40k_cityscapes_20200606_001418-27b9cfa7.pth -- Name: psanet_r50-d8_769x769_40k_cityscapes +- Config: configs/psanet/psanet_r50-d8_769x769_40k_cityscapes.py In Collection: psanet Metadata: backbone: R-50-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 714.29 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 714.29 + lr schd: 40000 memory (GB): 7.9 + Name: psanet_r50-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.99 mIoU(ms+flip): 79.64 - Config: configs/psanet/psanet_r50-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_40k_cityscapes/psanet_r50-d8_769x769_40k_cityscapes_20200530_033717-d5365506.pth -- Name: psanet_r101-d8_769x769_40k_cityscapes +- Config: configs/psanet/psanet_r101-d8_769x769_40k_cityscapes.py In Collection: psanet Metadata: backbone: R-101-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 1020.41 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 1020.41 + lr schd: 40000 memory (GB): 11.9 + Name: psanet_r101-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.43 mIoU(ms+flip): 80.26 - Config: configs/psanet/psanet_r101-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_40k_cityscapes/psanet_r101-d8_769x769_40k_cityscapes_20200530_035107-997da1e6.pth -- Name: psanet_r50-d8_512x1024_80k_cityscapes +- Config: configs/psanet/psanet_r50-d8_512x1024_80k_cityscapes.py In Collection: psanet Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 + Name: psanet_r50-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.24 mIoU(ms+flip): 78.69 - Config: configs/psanet/psanet_r50-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_80k_cityscapes/psanet_r50-d8_512x1024_80k_cityscapes_20200606_161842-ab60a24f.pth -- Name: psanet_r101-d8_512x1024_80k_cityscapes +- Config: configs/psanet/psanet_r101-d8_512x1024_80k_cityscapes.py In Collection: psanet Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 + Name: psanet_r101-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.31 mIoU(ms+flip): 80.53 - Config: configs/psanet/psanet_r101-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_80k_cityscapes/psanet_r101-d8_512x1024_80k_cityscapes_20200606_161823-0f73a169.pth -- Name: psanet_r50-d8_769x769_80k_cityscapes +- Config: configs/psanet/psanet_r50-d8_769x769_80k_cityscapes.py In Collection: psanet Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 + Name: psanet_r50-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.31 mIoU(ms+flip): 80.91 - Config: configs/psanet/psanet_r50-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_80k_cityscapes/psanet_r50-d8_769x769_80k_cityscapes_20200606_225134-fe42f49e.pth -- Name: psanet_r101-d8_769x769_80k_cityscapes +- Config: configs/psanet/psanet_r101-d8_769x769_80k_cityscapes.py In Collection: psanet Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 + Name: psanet_r101-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.69 mIoU(ms+flip): 80.89 - Config: configs/psanet/psanet_r101-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_80k_cityscapes/psanet_r101-d8_769x769_80k_cityscapes_20200606_214550-7665827b.pth -- Name: psanet_r50-d8_512x512_80k_ade20k +- Config: configs/psanet/psanet_r50-d8_512x512_80k_ade20k.py In Collection: psanet Metadata: backbone: R-50-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 52.88 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 52.88 + lr schd: 80000 memory (GB): 9.0 + Name: psanet_r50-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 41.14 mIoU(ms+flip): 41.91 - Config: configs/psanet/psanet_r50-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_80k_ade20k/psanet_r50-d8_512x512_80k_ade20k_20200614_144141-835e4b97.pth -- Name: psanet_r101-d8_512x512_80k_ade20k +- Config: configs/psanet/psanet_r101-d8_512x512_80k_ade20k.py In Collection: psanet Metadata: backbone: R-101-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 76.16 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 76.16 + lr schd: 80000 memory (GB): 12.5 + Name: psanet_r101-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.8 mIoU(ms+flip): 44.75 - Config: configs/psanet/psanet_r101-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_80k_ade20k/psanet_r101-d8_512x512_80k_ade20k_20200614_185117-1fab60d4.pth -- Name: psanet_r50-d8_512x512_160k_ade20k +- Config: configs/psanet/psanet_r50-d8_512x512_160k_ade20k.py In Collection: psanet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 + Name: psanet_r50-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 41.67 mIoU(ms+flip): 42.95 - Config: configs/psanet/psanet_r50-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_160k_ade20k/psanet_r50-d8_512x512_160k_ade20k_20200615_161258-148077dd.pth -- Name: psanet_r101-d8_512x512_160k_ade20k +- Config: configs/psanet/psanet_r101-d8_512x512_160k_ade20k.py In Collection: psanet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 + Name: psanet_r101-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.74 mIoU(ms+flip): 45.38 - Config: configs/psanet/psanet_r101-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_160k_ade20k/psanet_r101-d8_512x512_160k_ade20k_20200615_161537-dbfa564c.pth -- Name: psanet_r50-d8_512x512_20k_voc12aug +- Config: configs/psanet/psanet_r50-d8_512x512_20k_voc12aug.py In Collection: psanet Metadata: backbone: R-50-D8 crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 54.82 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 54.82 + lr schd: 20000 memory (GB): 6.9 + Name: psanet_r50-d8_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.39 mIoU(ms+flip): 77.34 - Config: configs/psanet/psanet_r50-d8_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_20k_voc12aug/psanet_r50-d8_512x512_20k_voc12aug_20200617_102413-2f1bbaa1.pth -- Name: psanet_r101-d8_512x512_20k_voc12aug +- Config: configs/psanet/psanet_r101-d8_512x512_20k_voc12aug.py In Collection: psanet Metadata: backbone: R-101-D8 crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 79.18 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 79.18 + lr schd: 20000 memory (GB): 10.4 + Name: psanet_r101-d8_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.91 mIoU(ms+flip): 79.3 - Config: configs/psanet/psanet_r101-d8_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_20k_voc12aug/psanet_r101-d8_512x512_20k_voc12aug_20200617_110624-946fef11.pth -- Name: psanet_r50-d8_512x512_40k_voc12aug +- Config: configs/psanet/psanet_r50-d8_512x512_40k_voc12aug.py In Collection: psanet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 40000 + Name: psanet_r50-d8_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.3 mIoU(ms+flip): 77.35 - Config: configs/psanet/psanet_r50-d8_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_40k_voc12aug/psanet_r50-d8_512x512_40k_voc12aug_20200613_161946-f596afb5.pth -- Name: psanet_r101-d8_512x512_40k_voc12aug +- Config: configs/psanet/psanet_r101-d8_512x512_40k_voc12aug.py In Collection: psanet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 40000 + Name: psanet_r101-d8_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.73 mIoU(ms+flip): 79.05 - Config: configs/psanet/psanet_r101-d8_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_40k_voc12aug/psanet_r101-d8_512x512_40k_voc12aug_20200613_161946-1f560f9e.pth diff --git a/configs/pspnet/pspnet.yml b/configs/pspnet/pspnet.yml index bf0f3a79ec..7e3c58d8a6 100644 --- a/configs/pspnet/pspnet.yml +++ b/configs/pspnet/pspnet.yml @@ -1,538 +1,538 @@ Collections: -- Name: pspnet - Metadata: +- Metadata: Training Data: - Cityscapes - ADE20K - Pascal VOC 2012 + Aug - Pascal Context - Pascal Context 59 + Name: pspnet Models: -- Name: pspnet_r50-d8_512x1024_40k_cityscapes +- Config: configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py In Collection: pspnet Metadata: backbone: R-50-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 245.7 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 245.7 + lr schd: 40000 memory (GB): 6.1 + Name: pspnet_r50-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.85 mIoU(ms+flip): 79.18 - Config: configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth -- Name: pspnet_r101-d8_512x1024_40k_cityscapes +- Config: configs/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes.py In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 373.13 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 373.13 + lr schd: 40000 memory (GB): 9.6 + Name: pspnet_r101-d8_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.34 mIoU(ms+flip): 79.74 - Config: configs/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes/pspnet_r101-d8_512x1024_40k_cityscapes_20200604_232751-467e7cf4.pth -- Name: pspnet_r50-d8_769x769_40k_cityscapes +- Config: configs/pspnet/pspnet_r50-d8_769x769_40k_cityscapes.py In Collection: pspnet Metadata: backbone: R-50-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 568.18 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 568.18 + lr schd: 40000 memory (GB): 6.9 + Name: pspnet_r50-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.26 mIoU(ms+flip): 79.88 - Config: configs/pspnet/pspnet_r50-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_40k_cityscapes/pspnet_r50-d8_769x769_40k_cityscapes_20200606_112725-86638686.pth -- Name: pspnet_r101-d8_769x769_40k_cityscapes +- Config: configs/pspnet/pspnet_r101-d8_769x769_40k_cityscapes.py In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 869.57 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 869.57 + lr schd: 40000 memory (GB): 10.9 + Name: pspnet_r101-d8_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.08 mIoU(ms+flip): 80.28 - Config: configs/pspnet/pspnet_r101-d8_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_40k_cityscapes/pspnet_r101-d8_769x769_40k_cityscapes_20200606_112753-61c6f5be.pth -- Name: pspnet_r18-d8_512x1024_80k_cityscapes +- Config: configs/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes.py In Collection: pspnet Metadata: backbone: R-18-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 63.65 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 63.65 + lr schd: 80000 memory (GB): 1.7 + Name: pspnet_r18-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 74.87 mIoU(ms+flip): 76.04 - Config: configs/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes/pspnet_r18-d8_512x1024_80k_cityscapes_20201225_021458-09ffa746.pth -- Name: pspnet_r50-d8_512x1024_80k_cityscapes +- Config: configs/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes.py In Collection: pspnet Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 + Name: pspnet_r50-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.55 mIoU(ms+flip): 79.79 - Config: configs/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes/pspnet_r50-d8_512x1024_80k_cityscapes_20200606_112131-2376f12b.pth -- Name: pspnet_r101-d8_512x1024_80k_cityscapes +- Config: configs/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 + Name: pspnet_r101-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.76 mIoU(ms+flip): 81.01 - Config: configs/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes/pspnet_r101-d8_512x1024_80k_cityscapes_20200606_112211-e1e1100f.pth -- Name: pspnet_r18-d8_769x769_80k_cityscapes +- Config: configs/pspnet/pspnet_r18-d8_769x769_80k_cityscapes.py In Collection: pspnet Metadata: backbone: R-18-D8 crop size: (769,769) - lr schd: 80000 inference time (ms/im): - - value: 161.29 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 161.29 + lr schd: 80000 memory (GB): 1.9 + Name: pspnet_r18-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 75.9 mIoU(ms+flip): 77.86 - Config: configs/pspnet/pspnet_r18-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_769x769_80k_cityscapes/pspnet_r18-d8_769x769_80k_cityscapes_20201225_021458-3deefc62.pth -- Name: pspnet_r50-d8_769x769_80k_cityscapes +- Config: configs/pspnet/pspnet_r50-d8_769x769_80k_cityscapes.py In Collection: pspnet Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 + Name: pspnet_r50-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.59 mIoU(ms+flip): 80.69 - Config: configs/pspnet/pspnet_r50-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_80k_cityscapes/pspnet_r50-d8_769x769_80k_cityscapes_20200606_210121-5ccf03dd.pth -- Name: pspnet_r101-d8_769x769_80k_cityscapes +- Config: configs/pspnet/pspnet_r101-d8_769x769_80k_cityscapes.py In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 + Name: pspnet_r101-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.77 mIoU(ms+flip): 81.06 - Config: configs/pspnet/pspnet_r101-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_80k_cityscapes/pspnet_r101-d8_769x769_80k_cityscapes_20200606_225055-dba412fa.pth -- Name: pspnet_r18b-d8_512x1024_80k_cityscapes +- Config: configs/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes.py In Collection: pspnet Metadata: backbone: R-18b-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 61.43 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 61.43 + lr schd: 80000 memory (GB): 1.5 + Name: pspnet_r18b-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 74.23 mIoU(ms+flip): 75.79 - Config: configs/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes/pspnet_r18b-d8_512x1024_80k_cityscapes_20201226_063116-26928a60.pth -- Name: pspnet_r50b-d8_512x1024_80k_cityscapes +- Config: configs/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes.py In Collection: pspnet Metadata: backbone: R-50b-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 232.56 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 232.56 + lr schd: 80000 memory (GB): 6.0 + Name: pspnet_r50b-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.22 mIoU(ms+flip): 79.46 - Config: configs/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes/pspnet_r50b-d8_512x1024_80k_cityscapes_20201225_094315-6344287a.pth -- Name: pspnet_r101b-d8_512x1024_80k_cityscapes +- Config: configs/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes.py In Collection: pspnet Metadata: backbone: R-101b-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 362.32 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 362.32 + lr schd: 80000 memory (GB): 9.5 + Name: pspnet_r101b-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.69 mIoU(ms+flip): 80.79 - Config: configs/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes_20201226_170012-3a4d38ab.pth -- Name: pspnet_r18b-d8_769x769_80k_cityscapes +- Config: configs/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes.py In Collection: pspnet Metadata: backbone: R-18b-D8 crop size: (769,769) - lr schd: 80000 inference time (ms/im): - - value: 156.01 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 156.01 + lr schd: 80000 memory (GB): 1.7 + Name: pspnet_r18b-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 74.92 mIoU(ms+flip): 76.9 - Config: configs/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes/pspnet_r18b-d8_769x769_80k_cityscapes_20201226_080942-bf98d186.pth -- Name: pspnet_r50b-d8_769x769_80k_cityscapes +- Config: configs/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes.py In Collection: pspnet Metadata: backbone: R-50b-D8 crop size: (769,769) - lr schd: 80000 inference time (ms/im): - - value: 531.91 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 531.91 + lr schd: 80000 memory (GB): 6.8 + Name: pspnet_r50b-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.5 mIoU(ms+flip): 79.96 - Config: configs/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes/pspnet_r50b-d8_769x769_80k_cityscapes_20201225_094316-4c643cf6.pth -- Name: pspnet_r101b-d8_769x769_80k_cityscapes +- Config: configs/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes.py In Collection: pspnet Metadata: backbone: R-101b-D8 crop size: (769,769) - lr schd: 80000 inference time (ms/im): - - value: 854.7 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 854.7 + lr schd: 80000 memory (GB): 10.8 + Name: pspnet_r101b-d8_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.87 mIoU(ms+flip): 80.04 - Config: configs/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes/pspnet_r101b-d8_769x769_80k_cityscapes_20201226_171823-f0e7c293.pth -- Name: pspnet_r50-d8_512x512_80k_ade20k +- Config: configs/pspnet/pspnet_r50-d8_512x512_80k_ade20k.py In Collection: pspnet Metadata: backbone: R-50-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 42.5 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 42.5 + lr schd: 80000 memory (GB): 8.5 + Name: pspnet_r50-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 41.13 mIoU(ms+flip): 41.94 - Config: configs/pspnet/pspnet_r50-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_80k_ade20k/pspnet_r50-d8_512x512_80k_ade20k_20200615_014128-15a8b914.pth -- Name: pspnet_r101-d8_512x512_80k_ade20k +- Config: configs/pspnet/pspnet_r101-d8_512x512_80k_ade20k.py In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 65.36 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 65.36 + lr schd: 80000 memory (GB): 12.0 + Name: pspnet_r101-d8_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.57 mIoU(ms+flip): 44.35 - Config: configs/pspnet/pspnet_r101-d8_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_80k_ade20k/pspnet_r101-d8_512x512_80k_ade20k_20200614_031423-b6e782f0.pth -- Name: pspnet_r50-d8_512x512_160k_ade20k +- Config: configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py In Collection: pspnet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 + Name: pspnet_r50-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.48 mIoU(ms+flip): 43.44 - Config: configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_160k_ade20k/pspnet_r50-d8_512x512_160k_ade20k_20200615_184358-1890b0bd.pth -- Name: pspnet_r101-d8_512x512_160k_ade20k +- Config: configs/pspnet/pspnet_r101-d8_512x512_160k_ade20k.py In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 + Name: pspnet_r101-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 44.39 mIoU(ms+flip): 45.35 - Config: configs/pspnet/pspnet_r101-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_160k_ade20k/pspnet_r101-d8_512x512_160k_ade20k_20200615_100650-967c316f.pth -- Name: pspnet_r50-d8_512x512_20k_voc12aug +- Config: configs/pspnet/pspnet_r50-d8_512x512_20k_voc12aug.py In Collection: pspnet Metadata: backbone: R-50-D8 crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 42.39 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 42.39 + lr schd: 20000 memory (GB): 6.1 + Name: pspnet_r50-d8_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.78 mIoU(ms+flip): 77.61 - Config: configs/pspnet/pspnet_r50-d8_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_20k_voc12aug/pspnet_r50-d8_512x512_20k_voc12aug_20200617_101958-ed5dfbd9.pth -- Name: pspnet_r101-d8_512x512_20k_voc12aug +- Config: configs/pspnet/pspnet_r101-d8_512x512_20k_voc12aug.py In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 66.58 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 66.58 + lr schd: 20000 memory (GB): 9.6 + Name: pspnet_r101-d8_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 78.47 mIoU(ms+flip): 79.25 - Config: configs/pspnet/pspnet_r101-d8_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_20k_voc12aug/pspnet_r101-d8_512x512_20k_voc12aug_20200617_102003-4aef3c9a.pth -- Name: pspnet_r50-d8_512x512_40k_voc12aug +- Config: configs/pspnet/pspnet_r50-d8_512x512_40k_voc12aug.py In Collection: pspnet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 40000 + Name: pspnet_r50-d8_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.29 mIoU(ms+flip): 78.48 - Config: configs/pspnet/pspnet_r50-d8_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_40k_voc12aug/pspnet_r50-d8_512x512_40k_voc12aug_20200613_161222-ae9c1b8c.pth -- Name: pspnet_r101-d8_512x512_40k_voc12aug +- Config: configs/pspnet/pspnet_r101-d8_512x512_40k_voc12aug.py In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 40000 + Name: pspnet_r101-d8_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 78.52 mIoU(ms+flip): 79.57 - Config: configs/pspnet/pspnet_r101-d8_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_40k_voc12aug/pspnet_r101-d8_512x512_40k_voc12aug_20200613_161222-bc933b18.pth -- Name: pspnet_r101-d8_480x480_40k_pascal_context +- Config: configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context.py In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (480,480) - lr schd: 40000 inference time (ms/im): - - value: 103.31 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (480,480) + value: 103.31 + lr schd: 40000 memory (GB): 8.8 + Name: pspnet_r101-d8_480x480_40k_pascal_context Results: - Task: Semantic Segmentation Dataset: Pascal Context Metrics: mIoU: 46.6 mIoU(ms+flip): 47.78 - Config: configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context/pspnet_r101-d8_480x480_40k_pascal_context_20200911_211210-bf0f5d7c.pth -- Name: pspnet_r101-d8_480x480_80k_pascal_context +- Config: configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context.py In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (480,480) lr schd: 80000 + Name: pspnet_r101-d8_480x480_80k_pascal_context Results: - Task: Semantic Segmentation Dataset: Pascal Context Metrics: mIoU: 46.03 mIoU(ms+flip): 47.15 - Config: configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context/pspnet_r101-d8_480x480_80k_pascal_context_20200911_190530-c86d6233.pth -- Name: pspnet_r101-d8_480x480_40k_pascal_context_59 +- Config: configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context_59.py In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (480,480) lr schd: 40000 + Name: pspnet_r101-d8_480x480_40k_pascal_context_59 Results: - Task: Semantic Segmentation Dataset: Pascal Context 59 Metrics: mIoU: 52.02 mIoU(ms+flip): 53.54 - Config: configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context_59.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context_59/pspnet_r101-d8_480x480_40k_pascal_context_59_20210416_114524-86d44cd4.pth -- Name: pspnet_r101-d8_480x480_80k_pascal_context_59 +- Config: configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context_59.py In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (480,480) lr schd: 80000 + Name: pspnet_r101-d8_480x480_80k_pascal_context_59 Results: - Task: Semantic Segmentation Dataset: Pascal Context 59 Metrics: mIoU: 52.47 mIoU(ms+flip): 53.99 - Config: configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context_59.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context_59/pspnet_r101-d8_480x480_80k_pascal_context_59_20210416_114418-fa6caaa2.pth diff --git a/configs/resnest/resnest.yml b/configs/resnest/resnest.yml index 0da8342160..417cce92a0 100644 --- a/configs/resnest/resnest.yml +++ b/configs/resnest/resnest.yml @@ -1,183 +1,183 @@ Collections: -- Name: resnest - Metadata: +- Metadata: Training Data: - Cityscapes - ADE20k + Name: resnest Models: -- Name: fcn_s101-d8_512x1024_80k_cityscapes +- Config: configs/resnest/fcn_s101-d8_512x1024_80k_cityscapes.py In Collection: resnest Metadata: backbone: S-101-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 418.41 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 418.41 + lr schd: 80000 memory (GB): 11.4 + Name: fcn_s101-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.56 mIoU(ms+flip): 78.98 - Config: configs/resnest/fcn_s101-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x1024_80k_cityscapes/fcn_s101-d8_512x1024_80k_cityscapes_20200807_140631-f8d155b3.pth -- Name: pspnet_s101-d8_512x1024_80k_cityscapes +- Config: configs/resnest/pspnet_s101-d8_512x1024_80k_cityscapes.py In Collection: resnest Metadata: backbone: S-101-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 396.83 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 396.83 + lr schd: 80000 memory (GB): 11.8 + Name: pspnet_s101-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.57 mIoU(ms+flip): 79.19 - Config: configs/resnest/pspnet_s101-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x1024_80k_cityscapes/pspnet_s101-d8_512x1024_80k_cityscapes_20200807_140631-c75f3b99.pth -- Name: deeplabv3_s101-d8_512x1024_80k_cityscapes +- Config: configs/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes.py In Collection: resnest Metadata: backbone: S-101-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 531.91 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 531.91 + lr schd: 80000 memory (GB): 11.9 + Name: deeplabv3_s101-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.67 mIoU(ms+flip): 80.51 - Config: configs/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes/deeplabv3_s101-d8_512x1024_80k_cityscapes_20200807_144429-b73c4270.pth -- Name: deeplabv3plus_s101-d8_512x1024_80k_cityscapes +- Config: configs/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py In Collection: resnest Metadata: backbone: S-101-D8 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 423.73 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 423.73 + lr schd: 80000 memory (GB): 13.2 + Name: deeplabv3plus_s101-d8_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.62 mIoU(ms+flip): 80.27 - Config: configs/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes/deeplabv3plus_s101-d8_512x1024_80k_cityscapes_20200807_144429-1239eb43.pth -- Name: fcn_s101-d8_512x512_160k_ade20k +- Config: configs/resnest/fcn_s101-d8_512x512_160k_ade20k.py In Collection: resnest Metadata: backbone: S-101-D8 crop size: (512,512) - lr schd: 160000 inference time (ms/im): - - value: 77.76 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 77.76 + lr schd: 160000 memory (GB): 14.2 + Name: fcn_s101-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20k Metrics: mIoU: 45.62 mIoU(ms+flip): 46.16 - Config: configs/resnest/fcn_s101-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x512_160k_ade20k/fcn_s101-d8_512x512_160k_ade20k_20200807_145416-d3160329.pth -- Name: pspnet_s101-d8_512x512_160k_ade20k +- Config: configs/resnest/pspnet_s101-d8_512x512_160k_ade20k.py In Collection: resnest Metadata: backbone: S-101-D8 crop size: (512,512) - lr schd: 160000 inference time (ms/im): - - value: 76.8 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 76.8 + lr schd: 160000 memory (GB): 14.2 + Name: pspnet_s101-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20k Metrics: mIoU: 45.44 mIoU(ms+flip): 46.28 - Config: configs/resnest/pspnet_s101-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x512_160k_ade20k/pspnet_s101-d8_512x512_160k_ade20k_20200807_145416-a6daa92a.pth -- Name: deeplabv3_s101-d8_512x512_160k_ade20k +- Config: configs/resnest/deeplabv3_s101-d8_512x512_160k_ade20k.py In Collection: resnest Metadata: backbone: S-101-D8 crop size: (512,512) - lr schd: 160000 inference time (ms/im): - - value: 107.76 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 107.76 + lr schd: 160000 memory (GB): 14.6 + Name: deeplabv3_s101-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20k Metrics: mIoU: 45.71 mIoU(ms+flip): 46.59 - Config: configs/resnest/deeplabv3_s101-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x512_160k_ade20k/deeplabv3_s101-d8_512x512_160k_ade20k_20200807_144503-17ecabe5.pth -- Name: deeplabv3plus_s101-d8_512x512_160k_ade20k +- Config: configs/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k.py In Collection: resnest Metadata: backbone: S-101-D8 crop size: (512,512) - lr schd: 160000 inference time (ms/im): - - value: 83.61 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 83.61 + lr schd: 160000 memory (GB): 16.2 + Name: deeplabv3plus_s101-d8_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20k Metrics: mIoU: 46.47 mIoU(ms+flip): 47.27 - Config: configs/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k/deeplabv3plus_s101-d8_512x512_160k_ade20k_20200807_144503-27b26226.pth diff --git a/configs/sem_fpn/sem_fpn.yml b/configs/sem_fpn/sem_fpn.yml index 4de85aa5f8..2644242181 100644 --- a/configs/sem_fpn/sem_fpn.yml +++ b/configs/sem_fpn/sem_fpn.yml @@ -1,95 +1,95 @@ Collections: -- Name: sem_fpn - Metadata: +- Metadata: Training Data: - Cityscapes - ADE20K + Name: sem_fpn Models: -- Name: fpn_r50_512x1024_80k_cityscapes +- Config: configs/sem_fpn/fpn_r50_512x1024_80k_cityscapes.py In Collection: sem_fpn Metadata: backbone: R-50 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 73.86 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 73.86 + lr schd: 80000 memory (GB): 2.8 + Name: fpn_r50_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 74.52 mIoU(ms+flip): 76.08 - Config: configs/sem_fpn/fpn_r50_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x1024_80k_cityscapes/fpn_r50_512x1024_80k_cityscapes_20200717_021437-94018a0d.pth -- Name: fpn_r101_512x1024_80k_cityscapes +- Config: configs/sem_fpn/fpn_r101_512x1024_80k_cityscapes.py In Collection: sem_fpn Metadata: backbone: R-101 crop size: (512,1024) - lr schd: 80000 inference time (ms/im): - - value: 97.18 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 97.18 + lr schd: 80000 memory (GB): 3.9 + Name: fpn_r101_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 75.8 mIoU(ms+flip): 77.4 - Config: configs/sem_fpn/fpn_r101_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x1024_80k_cityscapes/fpn_r101_512x1024_80k_cityscapes_20200717_012416-c5800d4c.pth -- Name: fpn_r50_512x512_160k_ade20k +- Config: configs/sem_fpn/fpn_r50_512x512_160k_ade20k.py In Collection: sem_fpn Metadata: backbone: R-50 crop size: (512,512) - lr schd: 160000 inference time (ms/im): - - value: 17.93 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 17.93 + lr schd: 160000 memory (GB): 4.9 + Name: fpn_r50_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 37.49 mIoU(ms+flip): 39.09 - Config: configs/sem_fpn/fpn_r50_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x512_160k_ade20k/fpn_r50_512x512_160k_ade20k_20200718_131734-5b5a6ab9.pth -- Name: fpn_r101_512x512_160k_ade20k +- Config: configs/sem_fpn/fpn_r101_512x512_160k_ade20k.py In Collection: sem_fpn Metadata: backbone: R-101 crop size: (512,512) - lr schd: 160000 inference time (ms/im): - - value: 24.64 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 24.64 + lr schd: 160000 memory (GB): 5.9 + Name: fpn_r101_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 39.35 mIoU(ms+flip): 40.72 - Config: configs/sem_fpn/fpn_r101_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x512_160k_ade20k/fpn_r101_512x512_160k_ade20k_20200718_131734-306b5004.pth diff --git a/configs/setr/setr.yml b/configs/setr/setr.yml index 4a0fb6f55a..42e17a9f11 100644 --- a/configs/setr/setr.yml +++ b/configs/setr/setr.yml @@ -1,87 +1,87 @@ Collections: -- Name: setr - Metadata: +- Metadata: Training Data: - ADE20K + Name: setr Models: -- Name: setr_naive_512x512_160k_b16_ade20k +- Config: configs/setr/setr_naive_512x512_160k_b16_ade20k.py In Collection: setr Metadata: backbone: ViT-L crop size: (512,512) - lr schd: 160000 inference time (ms/im): - - value: 211.86 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 211.86 + lr schd: 160000 memory (GB): 18.4 + Name: setr_naive_512x512_160k_b16_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 48.28 mIoU(ms+flip): 49.56 - Config: configs/setr/setr_naive_512x512_160k_b16_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/setr/setr_naive_512x512_160k_b16_ade20k/setr_naive_512x512_160k_b16_ade20k_20210619_191258-061f24f5.pth -- Name: setr_pup_512x512_160k_b16_ade20k +- Config: configs/setr/setr_pup_512x512_160k_b16_ade20k.py In Collection: setr Metadata: backbone: ViT-L crop size: (512,512) - lr schd: 160000 inference time (ms/im): - - value: 222.22 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 222.22 + lr schd: 160000 memory (GB): 19.54 + Name: setr_pup_512x512_160k_b16_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 48.24 mIoU(ms+flip): 49.99 - Config: configs/setr/setr_pup_512x512_160k_b16_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/setr/setr_pup_512x512_160k_b16_ade20k/setr_pup_512x512_160k_b16_ade20k_20210619_191343-7e0ce826.pth -- Name: setr_mla_512x512_160k_b8_ade20k +- Config: configs/setr/setr_mla_512x512_160k_b8_ade20k.py In Collection: setr Metadata: backbone: ViT-L crop size: (512,512) lr schd: 160000 memory (GB): 10.96 + Name: setr_mla_512x512_160k_b8_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 47.34 mIoU(ms+flip): 49.05 - Config: configs/setr/setr_mla_512x512_160k_b8_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/setr/setr_mla_512x512_160k_b8_ade20k/setr_mla_512x512_160k_b8_ade20k_20210619_191118-c6d21df0.pth -- Name: setr_mla_512x512_160k_b16_ade20k +- Config: configs/setr/setr_mla_512x512_160k_b16_ade20k.py In Collection: setr Metadata: backbone: ViT-L crop size: (512,512) - lr schd: 160000 inference time (ms/im): - - value: 190.48 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 190.48 + lr schd: 160000 memory (GB): 17.3 + Name: setr_mla_512x512_160k_b16_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 47.54 mIoU(ms+flip): 49.37 - Config: configs/setr/setr_mla_512x512_160k_b16_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/setr/setr_mla_512x512_160k_b16_ade20k/setr_mla_512x512_160k_b16_ade20k_20210619_191057-f9741de7.pth diff --git a/configs/swin/swin.yml b/configs/swin/swin.yml index 0f7c769793..0fccb2be34 100644 --- a/configs/swin/swin.yml +++ b/configs/swin/swin.yml @@ -1,122 +1,122 @@ Collections: -- Name: swin - Metadata: +- Metadata: Training Data: - ADE20K + Name: swin Models: -- Name: upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K +- Config: configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py In Collection: swin Metadata: backbone: Swin-T crop size: (512,512) - lr schd: 160000 inference time (ms/im): - - value: 47.48 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 47.48 + lr schd: 160000 memory (GB): 5.02 + Name: upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 44.41 mIoU(ms+flip): 45.79 - Config: configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K_20210531_112542-e380ad3e.pth -- Name: upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K +- Config: configs/swin/upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py In Collection: swin Metadata: backbone: Swin-S crop size: (512,512) - lr schd: 160000 inference time (ms/im): - - value: 67.93 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 67.93 + lr schd: 160000 memory (GB): 6.17 + Name: upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 47.72 mIoU(ms+flip): 49.24 - Config: configs/swin/upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K/upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K_20210526_192015-ee2fff1c.pth -- Name: upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K +- Config: configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py In Collection: swin Metadata: backbone: Swin-B crop size: (512,512) - lr schd: 160000 inference time (ms/im): - - value: 79.05 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 79.05 + lr schd: 160000 memory (GB): 7.61 + Name: upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 47.99 mIoU(ms+flip): 49.57 - Config: configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K_20210526_192340-593b0e13.pth -- Name: upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K +- Config: configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K.py In Collection: swin Metadata: backbone: Swin-B crop size: (512,512) lr schd: 160000 + Name: upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 50.31 mIoU(ms+flip): 51.9 - Config: configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K_20210526_211650-762e2178.pth -- Name: upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K +- Config: configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K.py In Collection: swin Metadata: backbone: Swin-B crop size: (512,512) - lr schd: 160000 inference time (ms/im): - - value: 82.64 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 82.64 + lr schd: 160000 memory (GB): 8.52 + Name: upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 48.35 mIoU(ms+flip): 49.65 - Config: configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K_20210531_132020-05b22ea4.pth -- Name: upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K +- Config: configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K.py In Collection: swin Metadata: backbone: Swin-B crop size: (512,512) lr schd: 160000 + Name: upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 50.76 mIoU(ms+flip): 52.4 - Config: configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K_20210531_125459-429057bf.pth diff --git a/configs/unet/unet.yml b/configs/unet/unet.yml index 22967323c6..b9275c6d0a 100644 --- a/configs/unet/unet.yml +++ b/configs/unet/unet.yml @@ -1,177 +1,177 @@ Collections: -- Name: unet - Metadata: +- Metadata: Training Data: - DRIVE - STARE - CHASE_DB1 - HRF + Name: unet Models: -- Name: fcn_unet_s5-d16_64x64_40k_drive +- Config: configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py In Collection: unet Metadata: backbone: UNet-S5-D16 crop size: (64,64) lr schd: 40000 memory (GB): 0.68 + Name: fcn_unet_s5-d16_64x64_40k_drive Results: - Task: Semantic Segmentation Dataset: DRIVE Metrics: mIoU: 78.67 - Config: configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_64x64_40k_drive/unet_s5-d16_64x64_40k_drive_20201223_191051-5daf6d3b.pth -- Name: pspnet_unet_s5-d16_64x64_40k_drive +- Config: configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py In Collection: unet Metadata: backbone: UNet-S5-D16 crop size: (64,64) lr schd: 40000 memory (GB): 0.599 + Name: pspnet_unet_s5-d16_64x64_40k_drive Results: - Task: Semantic Segmentation Dataset: DRIVE Metrics: mIoU: 78.62 - Config: configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_64x64_40k_drive/pspnet_unet_s5-d16_64x64_40k_drive_20201227_181818-aac73387.pth -- Name: deeplabv3_unet_s5-d16_64x64_40k_drive +- Config: configs/unet/deeplabv3_unet_s5-d16_64x64_40k_drive.py In Collection: unet Metadata: backbone: UNet-S5-D16 crop size: (64,64) lr schd: 40000 memory (GB): 0.596 + Name: deeplabv3_unet_s5-d16_64x64_40k_drive Results: - Task: Semantic Segmentation Dataset: DRIVE Metrics: mIoU: 78.69 - Config: configs/unet/deeplabv3_unet_s5-d16_64x64_40k_drive.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_64x64_40k_drive/deeplabv3_unet_s5-d16_64x64_40k_drive_20201226_094047-0671ff20.pth -- Name: fcn_unet_s5-d16_128x128_40k_stare +- Config: configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py In Collection: unet Metadata: backbone: UNet-S5-D16 crop size: (128,128) lr schd: 40000 memory (GB): 0.968 + Name: fcn_unet_s5-d16_128x128_40k_stare Results: - Task: Semantic Segmentation Dataset: STARE Metrics: mIoU: 81.02 - Config: configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_stare/unet_s5-d16_128x128_40k_stare_20201223_191051-7d77e78b.pth -- Name: pspnet_unet_s5-d16_128x128_40k_stare +- Config: configs/unet/pspnet_unet_s5-d16_128x128_40k_stare.py In Collection: unet Metadata: backbone: UNet-S5-D16 crop size: (128,128) lr schd: 40000 memory (GB): 0.982 + Name: pspnet_unet_s5-d16_128x128_40k_stare Results: - Task: Semantic Segmentation Dataset: STARE Metrics: mIoU: 81.22 - Config: configs/unet/pspnet_unet_s5-d16_128x128_40k_stare.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_stare/pspnet_unet_s5-d16_128x128_40k_stare_20201227_181818-3c2923c4.pth -- Name: deeplabv3_unet_s5-d16_128x128_40k_stare +- Config: configs/unet/deeplabv3_unet_s5-d16_128x128_40k_stare.py In Collection: unet Metadata: backbone: UNet-S5-D16 crop size: (128,128) lr schd: 40000 memory (GB): 0.999 + Name: deeplabv3_unet_s5-d16_128x128_40k_stare Results: - Task: Semantic Segmentation Dataset: STARE Metrics: mIoU: 80.93 - Config: configs/unet/deeplabv3_unet_s5-d16_128x128_40k_stare.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_stare/deeplabv3_unet_s5-d16_128x128_40k_stare_20201226_094047-93dcb93c.pth -- Name: fcn_unet_s5-d16_128x128_40k_chase_db1 +- Config: configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py In Collection: unet Metadata: backbone: UNet-S5-D16 crop size: (128,128) lr schd: 40000 memory (GB): 0.968 + Name: fcn_unet_s5-d16_128x128_40k_chase_db1 Results: - Task: Semantic Segmentation Dataset: CHASE_DB1 Metrics: mIoU: 80.24 - Config: configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_chase_db1/unet_s5-d16_128x128_40k_chase_db1_20201223_191051-11543527.pth -- Name: pspnet_unet_s5-d16_128x128_40k_chase_db1 +- Config: configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py In Collection: unet Metadata: backbone: UNet-S5-D16 crop size: (128,128) lr schd: 40000 memory (GB): 0.982 + Name: pspnet_unet_s5-d16_128x128_40k_chase_db1 Results: - Task: Semantic Segmentation Dataset: CHASE_DB1 Metrics: mIoU: 80.36 - Config: configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1/pspnet_unet_s5-d16_128x128_40k_chase_db1_20201227_181818-68d4e609.pth -- Name: deeplabv3_unet_s5-d16_128x128_40k_chase_db1 +- Config: configs/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py In Collection: unet Metadata: backbone: UNet-S5-D16 crop size: (128,128) lr schd: 40000 memory (GB): 0.999 + Name: deeplabv3_unet_s5-d16_128x128_40k_chase_db1 Results: - Task: Semantic Segmentation Dataset: CHASE_DB1 Metrics: mIoU: 80.47 - Config: configs/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1/deeplabv3_unet_s5-d16_128x128_40k_chase_db1_20201226_094047-4c5aefa3.pth -- Name: fcn_unet_s5-d16_256x256_40k_hrf +- Config: configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py In Collection: unet Metadata: backbone: UNet-S5-D16 crop size: (256,256) lr schd: 40000 memory (GB): 2.525 + Name: fcn_unet_s5-d16_256x256_40k_hrf Results: - Task: Semantic Segmentation Dataset: HRF Metrics: mIoU: 79.45 - Config: configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_256x256_40k_hrf/unet_s5-d16_256x256_40k_hrf_20201223_173724-d89cf1ed.pth -- Name: pspnet_unet_s5-d16_256x256_40k_hrf +- Config: configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py In Collection: unet Metadata: backbone: UNet-S5-D16 crop size: (256,256) lr schd: 40000 memory (GB): 2.588 + Name: pspnet_unet_s5-d16_256x256_40k_hrf Results: - Task: Semantic Segmentation Dataset: HRF Metrics: mIoU: 80.07 - Config: configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_256x256_40k_hrf/pspnet_unet_s5-d16_256x256_40k_hrf_20201227_181818-fdb7e29b.pth -- Name: deeplabv3_unet_s5-d16_256x256_40k_hrf +- Config: configs/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf.py In Collection: unet Metadata: backbone: UNet-S5-D16 crop size: (256,256) lr schd: 40000 memory (GB): 2.604 + Name: deeplabv3_unet_s5-d16_256x256_40k_hrf Results: - Task: Semantic Segmentation Dataset: HRF Metrics: mIoU: 80.21 - Config: configs/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf/deeplabv3_unet_s5-d16_256x256_40k_hrf_20201226_094047-3a1fdf85.pth diff --git a/configs/upernet/upernet.yml b/configs/upernet/upernet.yml index f95747a49c..91503cb80c 100644 --- a/configs/upernet/upernet.yml +++ b/configs/upernet/upernet.yml @@ -1,296 +1,296 @@ Collections: -- Name: upernet - Metadata: +- Metadata: Training Data: - Cityscapes - ADE20K - Pascal VOC 2012 + Aug + Name: upernet Models: -- Name: upernet_r50_512x1024_40k_cityscapes +- Config: configs/upernet/upernet_r50_512x1024_40k_cityscapes.py In Collection: upernet Metadata: backbone: R-50 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 235.29 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 235.29 + lr schd: 40000 memory (GB): 6.4 + Name: upernet_r50_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.1 mIoU(ms+flip): 78.37 - Config: configs/upernet/upernet_r50_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_40k_cityscapes/upernet_r50_512x1024_40k_cityscapes_20200605_094827-aa54cb54.pth -- Name: upernet_r101_512x1024_40k_cityscapes +- Config: configs/upernet/upernet_r101_512x1024_40k_cityscapes.py In Collection: upernet Metadata: backbone: R-101 crop size: (512,1024) - lr schd: 40000 inference time (ms/im): - - value: 263.85 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,1024) + value: 263.85 + lr schd: 40000 memory (GB): 7.4 + Name: upernet_r101_512x1024_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.69 mIoU(ms+flip): 80.11 - Config: configs/upernet/upernet_r101_512x1024_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_40k_cityscapes/upernet_r101_512x1024_40k_cityscapes_20200605_094933-ebce3b10.pth -- Name: upernet_r50_769x769_40k_cityscapes +- Config: configs/upernet/upernet_r50_769x769_40k_cityscapes.py In Collection: upernet Metadata: backbone: R-50 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 568.18 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 568.18 + lr schd: 40000 memory (GB): 7.2 + Name: upernet_r50_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.98 mIoU(ms+flip): 79.7 - Config: configs/upernet/upernet_r50_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_40k_cityscapes/upernet_r50_769x769_40k_cityscapes_20200530_033048-92d21539.pth -- Name: upernet_r101_769x769_40k_cityscapes +- Config: configs/upernet/upernet_r101_769x769_40k_cityscapes.py In Collection: upernet Metadata: backbone: R-101 crop size: (769,769) - lr schd: 40000 inference time (ms/im): - - value: 641.03 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (769,769) + value: 641.03 + lr schd: 40000 memory (GB): 8.4 + Name: upernet_r101_769x769_40k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.03 mIoU(ms+flip): 80.77 - Config: configs/upernet/upernet_r101_769x769_40k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_40k_cityscapes/upernet_r101_769x769_40k_cityscapes_20200530_040819-83c95d01.pth -- Name: upernet_r50_512x1024_80k_cityscapes +- Config: configs/upernet/upernet_r50_512x1024_80k_cityscapes.py In Collection: upernet Metadata: backbone: R-50 crop size: (512,1024) lr schd: 80000 + Name: upernet_r50_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.19 mIoU(ms+flip): 79.19 - Config: configs/upernet/upernet_r50_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_80k_cityscapes/upernet_r50_512x1024_80k_cityscapes_20200607_052207-848beca8.pth -- Name: upernet_r101_512x1024_80k_cityscapes +- Config: configs/upernet/upernet_r101_512x1024_80k_cityscapes.py In Collection: upernet Metadata: backbone: R-101 crop size: (512,1024) lr schd: 80000 + Name: upernet_r101_512x1024_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.4 mIoU(ms+flip): 80.46 - Config: configs/upernet/upernet_r101_512x1024_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_80k_cityscapes/upernet_r101_512x1024_80k_cityscapes_20200607_002403-f05f2345.pth -- Name: upernet_r50_769x769_80k_cityscapes +- Config: configs/upernet/upernet_r50_769x769_80k_cityscapes.py In Collection: upernet Metadata: backbone: R-50 crop size: (769,769) lr schd: 80000 + Name: upernet_r50_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.39 mIoU(ms+flip): 80.92 - Config: configs/upernet/upernet_r50_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_80k_cityscapes/upernet_r50_769x769_80k_cityscapes_20200607_005107-82ae7d15.pth -- Name: upernet_r101_769x769_80k_cityscapes +- Config: configs/upernet/upernet_r101_769x769_80k_cityscapes.py In Collection: upernet Metadata: backbone: R-101 crop size: (769,769) lr schd: 80000 + Name: upernet_r101_769x769_80k_cityscapes Results: - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.1 mIoU(ms+flip): 81.49 - Config: configs/upernet/upernet_r101_769x769_80k_cityscapes.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_80k_cityscapes/upernet_r101_769x769_80k_cityscapes_20200607_001014-082fc334.pth -- Name: upernet_r50_512x512_80k_ade20k +- Config: configs/upernet/upernet_r50_512x512_80k_ade20k.py In Collection: upernet Metadata: backbone: R-50 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 42.74 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 42.74 + lr schd: 80000 memory (GB): 8.1 + Name: upernet_r50_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 40.7 mIoU(ms+flip): 41.81 - Config: configs/upernet/upernet_r50_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_80k_ade20k/upernet_r50_512x512_80k_ade20k_20200614_144127-ecc8377b.pth -- Name: upernet_r101_512x512_80k_ade20k +- Config: configs/upernet/upernet_r101_512x512_80k_ade20k.py In Collection: upernet Metadata: backbone: R-101 crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 49.16 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 49.16 + lr schd: 80000 memory (GB): 9.1 + Name: upernet_r101_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.91 mIoU(ms+flip): 43.96 - Config: configs/upernet/upernet_r101_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_80k_ade20k/upernet_r101_512x512_80k_ade20k_20200614_185117-32e4db94.pth -- Name: upernet_r50_512x512_160k_ade20k +- Config: configs/upernet/upernet_r50_512x512_160k_ade20k.py In Collection: upernet Metadata: backbone: R-50 crop size: (512,512) lr schd: 160000 + Name: upernet_r50_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.05 mIoU(ms+flip): 42.78 - Config: configs/upernet/upernet_r50_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_160k_ade20k/upernet_r50_512x512_160k_ade20k_20200615_184328-8534de8d.pth -- Name: upernet_r101_512x512_160k_ade20k +- Config: configs/upernet/upernet_r101_512x512_160k_ade20k.py In Collection: upernet Metadata: backbone: R-101 crop size: (512,512) lr schd: 160000 + Name: upernet_r101_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.82 mIoU(ms+flip): 44.85 - Config: configs/upernet/upernet_r101_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_160k_ade20k/upernet_r101_512x512_160k_ade20k_20200615_161951-91b32684.pth -- Name: upernet_r50_512x512_20k_voc12aug +- Config: configs/upernet/upernet_r50_512x512_20k_voc12aug.py In Collection: upernet Metadata: backbone: R-50 crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 43.16 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 43.16 + lr schd: 20000 memory (GB): 6.4 + Name: upernet_r50_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 74.82 mIoU(ms+flip): 76.35 - Config: configs/upernet/upernet_r50_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_20k_voc12aug/upernet_r50_512x512_20k_voc12aug_20200617_165330-5b5890a7.pth -- Name: upernet_r101_512x512_20k_voc12aug +- Config: configs/upernet/upernet_r101_512x512_20k_voc12aug.py In Collection: upernet Metadata: backbone: R-101 crop size: (512,512) - lr schd: 20000 inference time (ms/im): - - value: 50.05 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 50.05 + lr schd: 20000 memory (GB): 7.5 + Name: upernet_r101_512x512_20k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.1 mIoU(ms+flip): 78.29 - Config: configs/upernet/upernet_r101_512x512_20k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_20k_voc12aug/upernet_r101_512x512_20k_voc12aug_20200617_165629-f14e7f27.pth -- Name: upernet_r50_512x512_40k_voc12aug +- Config: configs/upernet/upernet_r50_512x512_40k_voc12aug.py In Collection: upernet Metadata: backbone: R-50 crop size: (512,512) lr schd: 40000 + Name: upernet_r50_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 75.92 mIoU(ms+flip): 77.44 - Config: configs/upernet/upernet_r50_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_40k_voc12aug/upernet_r50_512x512_40k_voc12aug_20200613_162257-ca9bcc6b.pth -- Name: upernet_r101_512x512_40k_voc12aug +- Config: configs/upernet/upernet_r101_512x512_40k_voc12aug.py In Collection: upernet Metadata: backbone: R-101 crop size: (512,512) lr schd: 40000 + Name: upernet_r101_512x512_40k_voc12aug Results: - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.43 mIoU(ms+flip): 78.56 - Config: configs/upernet/upernet_r101_512x512_40k_voc12aug.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_40k_voc12aug/upernet_r101_512x512_40k_voc12aug_20200613_163549-e26476ac.pth diff --git a/configs/vit/vit.yml b/configs/vit/vit.yml index 3430915281..a821e347d9 100644 --- a/configs/vit/vit.yml +++ b/configs/vit/vit.yml @@ -1,248 +1,248 @@ Collections: -- Name: vit - Metadata: +- Metadata: Training Data: - ADE20K + Name: vit Models: -- Name: upernet_vit-b16_mln_512x512_80k_ade20k +- Config: configs/vit/upernet_vit-b16_mln_512x512_80k_ade20k.py In Collection: vit Metadata: backbone: ViT-B + MLN crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 144.09 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 144.09 + lr schd: 80000 memory (GB): 9.2 + Name: upernet_vit-b16_mln_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 47.71 mIoU(ms+flip): 49.51 - Config: configs/vit/upernet_vit-b16_mln_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_mln_512x512_80k_ade20k/upernet_vit-b16_mln_512x512_80k_ade20k-0403cee1.pth -- Name: upernet_vit-b16_mln_512x512_160k_ade20k +- Config: configs/vit/upernet_vit-b16_mln_512x512_160k_ade20k.py In Collection: vit Metadata: backbone: ViT-B + MLN crop size: (512,512) - lr schd: 160000 inference time (ms/im): - - value: 131.93 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 131.93 + lr schd: 160000 memory (GB): 9.2 + Name: upernet_vit-b16_mln_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 46.75 mIoU(ms+flip): 48.46 - Config: configs/vit/upernet_vit-b16_mln_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_mln_512x512_160k_ade20k/upernet_vit-b16_mln_512x512_160k_ade20k-852fa768.pth -- Name: upernet_vit-b16_ln_mln_512x512_160k_ade20k +- Config: configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py In Collection: vit Metadata: backbone: ViT-B + LN + MLN crop size: (512,512) - lr schd: 160000 inference time (ms/im): - - value: 146.63 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 146.63 + lr schd: 160000 memory (GB): 9.21 + Name: upernet_vit-b16_ln_mln_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 47.73 mIoU(ms+flip): 49.95 - Config: configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k/upernet_vit-b16_ln_mln_512x512_160k_ade20k-f444c077.pth -- Name: upernet_deit-s16_512x512_80k_ade20k +- Config: configs/vit/upernet_deit-s16_512x512_80k_ade20k.py In Collection: vit Metadata: backbone: DeiT-S crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 33.5 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 33.5 + lr schd: 80000 memory (GB): 4.68 + Name: upernet_deit-s16_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.96 mIoU(ms+flip): 43.79 - Config: configs/vit/upernet_deit-s16_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_512x512_80k_ade20k/upernet_deit-s16_512x512_80k_ade20k-afc93ec2.pth -- Name: upernet_deit-s16_512x512_160k_ade20k +- Config: configs/vit/upernet_deit-s16_512x512_160k_ade20k.py In Collection: vit Metadata: backbone: DeiT-S crop size: (512,512) - lr schd: 160000 inference time (ms/im): - - value: 34.26 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 34.26 + lr schd: 160000 memory (GB): 4.68 + Name: upernet_deit-s16_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.87 mIoU(ms+flip): 43.79 - Config: configs/vit/upernet_deit-s16_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_512x512_160k_ade20k/upernet_deit-s16_512x512_160k_ade20k-5110d916.pth -- Name: upernet_deit-s16_mln_512x512_160k_ade20k +- Config: configs/vit/upernet_deit-s16_mln_512x512_160k_ade20k.py In Collection: vit Metadata: backbone: DeiT-S + MLN crop size: (512,512) - lr schd: 160000 inference time (ms/im): - - value: 89.45 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 89.45 + lr schd: 160000 memory (GB): 5.69 + Name: upernet_deit-s16_mln_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.82 mIoU(ms+flip): 45.07 - Config: configs/vit/upernet_deit-s16_mln_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_mln_512x512_160k_ade20k/upernet_deit-s16_mln_512x512_160k_ade20k-fb9a5dfb.pth -- Name: upernet_deit-s16_ln_mln_512x512_160k_ade20k +- Config: configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py In Collection: vit Metadata: backbone: DeiT-S + LN + MLN crop size: (512,512) - lr schd: 160000 inference time (ms/im): - - value: 80.71 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 80.71 + lr schd: 160000 memory (GB): 5.69 + Name: upernet_deit-s16_ln_mln_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.52 mIoU(ms+flip): 45.01 - Config: configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k/upernet_deit-s16_ln_mln_512x512_160k_ade20k-c0cd652f.pth -- Name: upernet_deit-b16_512x512_80k_ade20k +- Config: configs/vit/upernet_deit-b16_512x512_80k_ade20k.py In Collection: vit Metadata: backbone: DeiT-B crop size: (512,512) - lr schd: 80000 inference time (ms/im): - - value: 103.2 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 103.2 + lr schd: 80000 memory (GB): 7.75 + Name: upernet_deit-b16_512x512_80k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 45.24 mIoU(ms+flip): 46.73 - Config: configs/vit/upernet_deit-b16_512x512_80k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_512x512_80k_ade20k/upernet_deit-b16_512x512_80k_ade20k-1e090789.pth -- Name: upernet_deit-b16_512x512_160k_ade20k +- Config: configs/vit/upernet_deit-b16_512x512_160k_ade20k.py In Collection: vit Metadata: backbone: DeiT-B crop size: (512,512) - lr schd: 160000 inference time (ms/im): - - value: 96.25 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 96.25 + lr schd: 160000 memory (GB): 7.75 + Name: upernet_deit-b16_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 45.36 mIoU(ms+flip): 47.16 - Config: configs/vit/upernet_deit-b16_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_512x512_160k_ade20k/upernet_deit-b16_512x512_160k_ade20k-828705d7.pth -- Name: upernet_deit-b16_mln_512x512_160k_ade20k +- Config: configs/vit/upernet_deit-b16_mln_512x512_160k_ade20k.py In Collection: vit Metadata: backbone: DeiT-B + MLN crop size: (512,512) - lr schd: 160000 inference time (ms/im): - - value: 128.53 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 128.53 + lr schd: 160000 memory (GB): 9.21 + Name: upernet_deit-b16_mln_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 45.46 mIoU(ms+flip): 47.16 - Config: configs/vit/upernet_deit-b16_mln_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_mln_512x512_160k_ade20k/upernet_deit-b16_mln_512x512_160k_ade20k-4e1450f3.pth -- Name: upernet_deit-b16_ln_mln_512x512_160k_ade20k +- Config: configs/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k.py In Collection: vit Metadata: backbone: DeiT-B + LN + MLN crop size: (512,512) - lr schd: 160000 inference time (ms/im): - - value: 129.03 - hardware: V100 - backend: PyTorch + - backend: PyTorch batch size: 1 + hardware: V100 mode: FP32 resolution: (512,512) + value: 129.03 + lr schd: 160000 memory (GB): 9.21 + Name: upernet_deit-b16_ln_mln_512x512_160k_ade20k Results: - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 45.37 mIoU(ms+flip): 47.23 - Config: configs/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k.py + Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k/upernet_deit-b16_ln_mln_512x512_160k_ade20k-8a959c14.pth From 2fe0bddf5e7b067385923043f5b72ce243e1139b Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Tue, 17 Aug 2021 14:16:55 +0800 Subject: [PATCH 214/706] [Dcos] Add header for files (#796) * Add header for files * Delete header in config files --- .dev/gather_models.py | 1 + .dev/md2yml.py | 1 + .dev/upload_modelzoo.py | 1 + demo/image_demo.py | 1 + docs/conf.py | 1 + docs/stat.py | 1 + docs_zh-CN/conf.py | 1 + docs_zh-CN/stat.py | 1 + mmseg/__init__.py | 1 + mmseg/apis/__init__.py | 1 + mmseg/apis/inference.py | 1 + mmseg/apis/test.py | 1 + mmseg/apis/train.py | 1 + mmseg/core/__init__.py | 1 + mmseg/core/evaluation/__init__.py | 1 + mmseg/core/evaluation/class_names.py | 1 + mmseg/core/evaluation/eval_hooks.py | 1 + mmseg/core/evaluation/metrics.py | 1 + mmseg/core/seg/__init__.py | 1 + mmseg/core/seg/builder.py | 1 + mmseg/core/seg/sampler/__init__.py | 1 + mmseg/core/seg/sampler/base_pixel_sampler.py | 1 + mmseg/core/seg/sampler/ohem_pixel_sampler.py | 1 + mmseg/core/utils/__init__.py | 1 + mmseg/core/utils/misc.py | 1 + mmseg/datasets/__init__.py | 1 + mmseg/datasets/ade.py | 1 + mmseg/datasets/builder.py | 1 + mmseg/datasets/chase_db1.py | 1 + mmseg/datasets/cityscapes.py | 1 + mmseg/datasets/custom.py | 1 + mmseg/datasets/dataset_wrappers.py | 1 + mmseg/datasets/drive.py | 1 + mmseg/datasets/hrf.py | 1 + mmseg/datasets/pascal_context.py | 1 + mmseg/datasets/pipelines/__init__.py | 1 + mmseg/datasets/pipelines/compose.py | 1 + mmseg/datasets/pipelines/formating.py | 1 + mmseg/datasets/pipelines/loading.py | 1 + mmseg/datasets/pipelines/test_time_aug.py | 1 + mmseg/datasets/pipelines/transforms.py | 1 + mmseg/datasets/stare.py | 1 + mmseg/datasets/voc.py | 1 + mmseg/models/__init__.py | 1 + mmseg/models/backbones/__init__.py | 1 + mmseg/models/backbones/cgnet.py | 1 + mmseg/models/backbones/fast_scnn.py | 1 + mmseg/models/backbones/hrnet.py | 1 + mmseg/models/backbones/mit.py | 1 + mmseg/models/backbones/mobilenet_v2.py | 1 + mmseg/models/backbones/mobilenet_v3.py | 1 + mmseg/models/backbones/resnest.py | 1 + mmseg/models/backbones/resnet.py | 1 + mmseg/models/backbones/resnext.py | 1 + mmseg/models/backbones/swin.py | 1 + mmseg/models/backbones/unet.py | 1 + mmseg/models/backbones/vit.py | 1 + mmseg/models/builder.py | 1 + mmseg/models/decode_heads/__init__.py | 1 + mmseg/models/decode_heads/ann_head.py | 1 + mmseg/models/decode_heads/apc_head.py | 1 + mmseg/models/decode_heads/aspp_head.py | 1 + mmseg/models/decode_heads/cascade_decode_head.py | 1 + mmseg/models/decode_heads/cc_head.py | 1 + mmseg/models/decode_heads/da_head.py | 1 + mmseg/models/decode_heads/decode_head.py | 1 + mmseg/models/decode_heads/dm_head.py | 1 + mmseg/models/decode_heads/dnl_head.py | 1 + mmseg/models/decode_heads/ema_head.py | 1 + mmseg/models/decode_heads/enc_head.py | 1 + mmseg/models/decode_heads/fcn_head.py | 1 + mmseg/models/decode_heads/fpn_head.py | 1 + mmseg/models/decode_heads/gc_head.py | 1 + mmseg/models/decode_heads/lraspp_head.py | 1 + mmseg/models/decode_heads/nl_head.py | 1 + mmseg/models/decode_heads/ocr_head.py | 1 + mmseg/models/decode_heads/point_head.py | 1 + mmseg/models/decode_heads/psa_head.py | 1 + mmseg/models/decode_heads/psp_head.py | 1 + mmseg/models/decode_heads/segformer_head.py | 1 + mmseg/models/decode_heads/sep_aspp_head.py | 1 + mmseg/models/decode_heads/sep_fcn_head.py | 1 + mmseg/models/decode_heads/setr_mla_head.py | 1 + mmseg/models/decode_heads/setr_up_head.py | 1 + mmseg/models/decode_heads/uper_head.py | 1 + mmseg/models/losses/__init__.py | 1 + mmseg/models/losses/accuracy.py | 1 + mmseg/models/losses/cross_entropy_loss.py | 1 + mmseg/models/losses/dice_loss.py | 1 + mmseg/models/losses/lovasz_loss.py | 1 + mmseg/models/losses/utils.py | 1 + mmseg/models/necks/__init__.py | 1 + mmseg/models/necks/fpn.py | 1 + mmseg/models/necks/mla_neck.py | 1 + mmseg/models/necks/multilevel_neck.py | 1 + mmseg/models/segmentors/__init__.py | 1 + mmseg/models/segmentors/base.py | 1 + mmseg/models/segmentors/cascade_encoder_decoder.py | 1 + mmseg/models/segmentors/encoder_decoder.py | 1 + mmseg/models/utils/__init__.py | 1 + mmseg/models/utils/ckpt_convert.py | 1 + mmseg/models/utils/embed.py | 1 + mmseg/models/utils/inverted_residual.py | 1 + mmseg/models/utils/make_divisible.py | 1 + mmseg/models/utils/res_layer.py | 1 + mmseg/models/utils/se_layer.py | 1 + mmseg/models/utils/self_attention_block.py | 1 + mmseg/models/utils/shape_convert.py | 1 + mmseg/models/utils/up_conv_block.py | 1 + mmseg/ops/__init__.py | 1 + mmseg/ops/encoding.py | 1 + mmseg/ops/wrappers.py | 1 + mmseg/utils/__init__.py | 1 + mmseg/utils/collect_env.py | 1 + mmseg/utils/logger.py | 1 + setup.py | 3 ++- tests/__init__.py | 1 + tests/test_config.py | 1 + tests/test_data/test_dataset.py | 1 + tests/test_data/test_dataset_builder.py | 1 + tests/test_data/test_loading.py | 1 + tests/test_data/test_transform.py | 1 + tests/test_data/test_tta.py | 1 + tests/test_digit_version.py | 1 + tests/test_eval_hook.py | 1 + tests/test_inference.py | 1 + tests/test_metrics.py | 1 + tests/test_models/__init__.py | 1 + tests/test_models/test_backbones/__init__.py | 1 + tests/test_models/test_backbones/test_blocks.py | 1 + tests/test_models/test_backbones/test_cgnet.py | 1 + tests/test_models/test_backbones/test_fast_scnn.py | 1 + tests/test_models/test_backbones/test_hrnet.py | 1 + tests/test_models/test_backbones/test_mit.py | 1 + tests/test_models/test_backbones/test_mobilenet_v3.py | 1 + tests/test_models/test_backbones/test_resnest.py | 1 + tests/test_models/test_backbones/test_resnet.py | 1 + tests/test_models/test_backbones/test_resnext.py | 1 + tests/test_models/test_backbones/test_swin.py | 1 + tests/test_models/test_backbones/test_unet.py | 1 + tests/test_models/test_backbones/test_vit.py | 1 + tests/test_models/test_backbones/utils.py | 1 + tests/test_models/test_forward.py | 1 + tests/test_models/test_heads/__init__.py | 1 + tests/test_models/test_heads/test_ann_head.py | 1 + tests/test_models/test_heads/test_apc_head.py | 1 + tests/test_models/test_heads/test_aspp_head.py | 1 + tests/test_models/test_heads/test_cc_head.py | 1 + tests/test_models/test_heads/test_da_head.py | 1 + tests/test_models/test_heads/test_decode_head.py | 1 + tests/test_models/test_heads/test_dm_head.py | 1 + tests/test_models/test_heads/test_dnl_head.py | 1 + tests/test_models/test_heads/test_ema_head.py | 1 + tests/test_models/test_heads/test_enc_head.py | 1 + tests/test_models/test_heads/test_fcn_head.py | 1 + tests/test_models/test_heads/test_gc_head.py | 1 + tests/test_models/test_heads/test_lraspp_head.py | 1 + tests/test_models/test_heads/test_nl_head.py | 1 + tests/test_models/test_heads/test_ocr_head.py | 1 + tests/test_models/test_heads/test_point_head.py | 1 + tests/test_models/test_heads/test_psa_head.py | 1 + tests/test_models/test_heads/test_psp_head.py | 1 + tests/test_models/test_heads/test_segformer_head.py | 1 + tests/test_models/test_heads/test_setr_mla_head.py | 1 + tests/test_models/test_heads/test_setr_up_head.py | 1 + tests/test_models/test_heads/test_uper_head.py | 1 + tests/test_models/test_heads/utils.py | 1 + tests/test_models/test_losses/__init__.py | 1 + tests/test_models/test_losses/test_ce_loss.py | 1 + tests/test_models/test_losses/test_dice_loss.py | 1 + tests/test_models/test_losses/test_lovasz_loss.py | 1 + tests/test_models/test_losses/test_utils.py | 1 + tests/test_models/test_necks/__init__.py | 1 + tests/test_models/test_necks/test_fpn.py | 1 + tests/test_models/test_necks/test_mla_neck.py | 1 + tests/test_models/test_necks/test_multilevel_neck.py | 1 + tests/test_models/test_segmentors/__init__.py | 1 + .../test_segmentors/test_cascade_encoder_decoder.py | 1 + tests/test_models/test_segmentors/test_encoder_decoder.py | 1 + tests/test_models/test_segmentors/utils.py | 1 + tests/test_sampler.py | 1 + tools/analyze_logs.py | 1 + tools/benchmark.py | 1 + tools/convert_datasets/chase_db1.py | 1 + tools/convert_datasets/cityscapes.py | 1 + tools/convert_datasets/drive.py | 1 + tools/convert_datasets/hrf.py | 1 + tools/convert_datasets/pascal_context.py | 1 + tools/convert_datasets/stare.py | 1 + tools/convert_datasets/voc_aug.py | 1 + tools/deploy_test.py | 1 + tools/get_flops.py | 1 + tools/mmseg2torchserve.py | 1 + tools/mmseg_handler.py | 1 + tools/model_converters/mit_convert.py | 1 + tools/onnx2tensorrt.py | 1 + tools/print_config.py | 1 + tools/publish_model.py | 1 + tools/pytorch2onnx.py | 1 + tools/pytorch2torchscript.py | 1 + tools/test.py | 1 + tools/train.py | 1 + 202 files changed, 203 insertions(+), 1 deletion(-) diff --git a/.dev/gather_models.py b/.dev/gather_models.py index 1899195d7d..0db26a55e4 100644 --- a/.dev/gather_models.py +++ b/.dev/gather_models.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import argparse import glob import json diff --git a/.dev/md2yml.py b/.dev/md2yml.py index 36c82ff742..3f118c12a2 100755 --- a/.dev/md2yml.py +++ b/.dev/md2yml.py @@ -1,5 +1,6 @@ #!/usr/bin/env python +# Copyright (c) OpenMMLab. All rights reserved. # This tool is used to update model-index.yml which is required by MIM, and # will be automatically called as a pre-commit hook. The updating will be # triggered if any change of model information (.md files in configs/) has been diff --git a/.dev/upload_modelzoo.py b/.dev/upload_modelzoo.py index bd78bc41e6..303c80d2e3 100644 --- a/.dev/upload_modelzoo.py +++ b/.dev/upload_modelzoo.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import argparse import os import os.path as osp diff --git a/demo/image_demo.py b/demo/image_demo.py index 2698e422eb..05e1a79130 100644 --- a/demo/image_demo.py +++ b/demo/image_demo.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from argparse import ArgumentParser from mmseg.apis import inference_segmentor, init_segmentor, show_result_pyplot diff --git a/docs/conf.py b/docs/conf.py index 758b5ff8ff..aaea4244b2 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. # Configuration file for the Sphinx documentation builder. # # This file only contains a selection of the most common options. For a full diff --git a/docs/stat.py b/docs/stat.py index 941296d1f5..eef00af6ac 100755 --- a/docs/stat.py +++ b/docs/stat.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (c) OpenMMLab. All rights reserved. import functools as func import glob import os.path as osp diff --git a/docs_zh-CN/conf.py b/docs_zh-CN/conf.py index 72c8c5210c..ed5eb523f7 100644 --- a/docs_zh-CN/conf.py +++ b/docs_zh-CN/conf.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. # Configuration file for the Sphinx documentation builder. # # This file only contains a selection of the most common options. For a full diff --git a/docs_zh-CN/stat.py b/docs_zh-CN/stat.py index dc7c90f411..955bee856d 100755 --- a/docs_zh-CN/stat.py +++ b/docs_zh-CN/stat.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (c) OpenMMLab. All rights reserved. import functools as func import glob import os.path as osp diff --git a/mmseg/__init__.py b/mmseg/__init__.py index 317622c924..08c810257b 100644 --- a/mmseg/__init__.py +++ b/mmseg/__init__.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import warnings import mmcv diff --git a/mmseg/apis/__init__.py b/mmseg/apis/__init__.py index 170724be38..ba5ab7736c 100644 --- a/mmseg/apis/__init__.py +++ b/mmseg/apis/__init__.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from .inference import inference_segmentor, init_segmentor, show_result_pyplot from .test import multi_gpu_test, single_gpu_test from .train import get_root_logger, set_random_seed, train_segmentor diff --git a/mmseg/apis/inference.py b/mmseg/apis/inference.py index bf875cb262..906943804d 100644 --- a/mmseg/apis/inference.py +++ b/mmseg/apis/inference.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import matplotlib.pyplot as plt import mmcv import torch diff --git a/mmseg/apis/test.py b/mmseg/apis/test.py index 0034159689..fb0bb93619 100644 --- a/mmseg/apis/test.py +++ b/mmseg/apis/test.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import os.path as osp import tempfile diff --git a/mmseg/apis/train.py b/mmseg/apis/train.py index e1e771b697..fe85e9116a 100644 --- a/mmseg/apis/train.py +++ b/mmseg/apis/train.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import random import warnings diff --git a/mmseg/core/__init__.py b/mmseg/core/__init__.py index 9656055872..402278618e 100644 --- a/mmseg/core/__init__.py +++ b/mmseg/core/__init__.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from .evaluation import * # noqa: F401, F403 from .seg import * # noqa: F401, F403 from .utils import * # noqa: F401, F403 diff --git a/mmseg/core/evaluation/__init__.py b/mmseg/core/evaluation/__init__.py index f7cc4b2341..237cf24769 100644 --- a/mmseg/core/evaluation/__init__.py +++ b/mmseg/core/evaluation/__init__.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from .class_names import get_classes, get_palette from .eval_hooks import DistEvalHook, EvalHook from .metrics import eval_metrics, mean_dice, mean_fscore, mean_iou diff --git a/mmseg/core/evaluation/class_names.py b/mmseg/core/evaluation/class_names.py index 0d8e66d54b..4527fbaf17 100644 --- a/mmseg/core/evaluation/class_names.py +++ b/mmseg/core/evaluation/class_names.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import mmcv diff --git a/mmseg/core/evaluation/eval_hooks.py b/mmseg/core/evaluation/eval_hooks.py index 928f2ba612..a2f08d7750 100644 --- a/mmseg/core/evaluation/eval_hooks.py +++ b/mmseg/core/evaluation/eval_hooks.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import os.path as osp import torch.distributed as dist diff --git a/mmseg/core/evaluation/metrics.py b/mmseg/core/evaluation/metrics.py index a216afefe6..3c5f63fb4b 100644 --- a/mmseg/core/evaluation/metrics.py +++ b/mmseg/core/evaluation/metrics.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from collections import OrderedDict import mmcv diff --git a/mmseg/core/seg/__init__.py b/mmseg/core/seg/__init__.py index 93bc129b68..5206b96be6 100644 --- a/mmseg/core/seg/__init__.py +++ b/mmseg/core/seg/__init__.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from .builder import build_pixel_sampler from .sampler import BasePixelSampler, OHEMPixelSampler diff --git a/mmseg/core/seg/builder.py b/mmseg/core/seg/builder.py index f5a117ce7b..1cecd347bf 100644 --- a/mmseg/core/seg/builder.py +++ b/mmseg/core/seg/builder.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from mmcv.utils import Registry, build_from_cfg PIXEL_SAMPLERS = Registry('pixel sampler') diff --git a/mmseg/core/seg/sampler/__init__.py b/mmseg/core/seg/sampler/__init__.py index 332b242c03..5a7648564a 100644 --- a/mmseg/core/seg/sampler/__init__.py +++ b/mmseg/core/seg/sampler/__init__.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from .base_pixel_sampler import BasePixelSampler from .ohem_pixel_sampler import OHEMPixelSampler diff --git a/mmseg/core/seg/sampler/base_pixel_sampler.py b/mmseg/core/seg/sampler/base_pixel_sampler.py index b75b1566c9..03672cd478 100644 --- a/mmseg/core/seg/sampler/base_pixel_sampler.py +++ b/mmseg/core/seg/sampler/base_pixel_sampler.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from abc import ABCMeta, abstractmethod diff --git a/mmseg/core/seg/sampler/ohem_pixel_sampler.py b/mmseg/core/seg/sampler/ohem_pixel_sampler.py index 88bb10d440..bcd481a965 100644 --- a/mmseg/core/seg/sampler/ohem_pixel_sampler.py +++ b/mmseg/core/seg/sampler/ohem_pixel_sampler.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn.functional as F diff --git a/mmseg/core/utils/__init__.py b/mmseg/core/utils/__init__.py index f2678b321c..be9de558d4 100644 --- a/mmseg/core/utils/__init__.py +++ b/mmseg/core/utils/__init__.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from .misc import add_prefix __all__ = ['add_prefix'] diff --git a/mmseg/core/utils/misc.py b/mmseg/core/utils/misc.py index eb862a82bd..282bb8d969 100644 --- a/mmseg/core/utils/misc.py +++ b/mmseg/core/utils/misc.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. def add_prefix(inputs, prefix): """Add prefix for dict. diff --git a/mmseg/datasets/__init__.py b/mmseg/datasets/__init__.py index ebeaef4a28..bdea832485 100644 --- a/mmseg/datasets/__init__.py +++ b/mmseg/datasets/__init__.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from .ade import ADE20KDataset from .builder import DATASETS, PIPELINES, build_dataloader, build_dataset from .chase_db1 import ChaseDB1Dataset diff --git a/mmseg/datasets/ade.py b/mmseg/datasets/ade.py index 5daf7e3731..9af4371263 100644 --- a/mmseg/datasets/ade.py +++ b/mmseg/datasets/ade.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import os.path as osp import tempfile diff --git a/mmseg/datasets/builder.py b/mmseg/datasets/builder.py index 82f6f460fb..bfb54ef002 100644 --- a/mmseg/datasets/builder.py +++ b/mmseg/datasets/builder.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import copy import platform import random diff --git a/mmseg/datasets/chase_db1.py b/mmseg/datasets/chase_db1.py index 8bc29bea14..7f14b2da0e 100644 --- a/mmseg/datasets/chase_db1.py +++ b/mmseg/datasets/chase_db1.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import os.path as osp from .builder import DATASETS diff --git a/mmseg/datasets/cityscapes.py b/mmseg/datasets/cityscapes.py index fa9958ac14..fd814f92c0 100644 --- a/mmseg/datasets/cityscapes.py +++ b/mmseg/datasets/cityscapes.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import os.path as osp import tempfile diff --git a/mmseg/datasets/custom.py b/mmseg/datasets/custom.py index 9c88235e39..719ca013f4 100644 --- a/mmseg/datasets/custom.py +++ b/mmseg/datasets/custom.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import os import os.path as osp from collections import OrderedDict diff --git a/mmseg/datasets/dataset_wrappers.py b/mmseg/datasets/dataset_wrappers.py index d6a5e957ec..f161f71469 100644 --- a/mmseg/datasets/dataset_wrappers.py +++ b/mmseg/datasets/dataset_wrappers.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from torch.utils.data.dataset import ConcatDataset as _ConcatDataset from .builder import DATASETS diff --git a/mmseg/datasets/drive.py b/mmseg/datasets/drive.py index 3cbfda8ae7..650991147c 100644 --- a/mmseg/datasets/drive.py +++ b/mmseg/datasets/drive.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import os.path as osp from .builder import DATASETS diff --git a/mmseg/datasets/hrf.py b/mmseg/datasets/hrf.py index 923203b513..e4e10aeafd 100644 --- a/mmseg/datasets/hrf.py +++ b/mmseg/datasets/hrf.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import os.path as osp from .builder import DATASETS diff --git a/mmseg/datasets/pascal_context.py b/mmseg/datasets/pascal_context.py index 541a63c66a..1e7a09d723 100644 --- a/mmseg/datasets/pascal_context.py +++ b/mmseg/datasets/pascal_context.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import os.path as osp from .builder import DATASETS diff --git a/mmseg/datasets/pipelines/__init__.py b/mmseg/datasets/pipelines/__init__.py index 8b9046b07b..660291e256 100644 --- a/mmseg/datasets/pipelines/__init__.py +++ b/mmseg/datasets/pipelines/__init__.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from .compose import Compose from .formating import (Collect, ImageToTensor, ToDataContainer, ToTensor, Transpose, to_tensor) diff --git a/mmseg/datasets/pipelines/compose.py b/mmseg/datasets/pipelines/compose.py index ca48f1c935..30280c1332 100644 --- a/mmseg/datasets/pipelines/compose.py +++ b/mmseg/datasets/pipelines/compose.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import collections from mmcv.utils import build_from_cfg diff --git a/mmseg/datasets/pipelines/formating.py b/mmseg/datasets/pipelines/formating.py index 34061c1dd1..45824fc405 100644 --- a/mmseg/datasets/pipelines/formating.py +++ b/mmseg/datasets/pipelines/formating.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from collections.abc import Sequence import mmcv diff --git a/mmseg/datasets/pipelines/loading.py b/mmseg/datasets/pipelines/loading.py index fdfc496ba9..e1c82bd397 100644 --- a/mmseg/datasets/pipelines/loading.py +++ b/mmseg/datasets/pipelines/loading.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import os.path as osp import mmcv diff --git a/mmseg/datasets/pipelines/test_time_aug.py b/mmseg/datasets/pipelines/test_time_aug.py index 473a12bc86..5c17cbbba1 100644 --- a/mmseg/datasets/pipelines/test_time_aug.py +++ b/mmseg/datasets/pipelines/test_time_aug.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import warnings import mmcv diff --git a/mmseg/datasets/pipelines/transforms.py b/mmseg/datasets/pipelines/transforms.py index c5e94a0f14..f2a642c141 100644 --- a/mmseg/datasets/pipelines/transforms.py +++ b/mmseg/datasets/pipelines/transforms.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import mmcv import numpy as np from mmcv.utils import deprecated_api_warning, is_tuple_of diff --git a/mmseg/datasets/stare.py b/mmseg/datasets/stare.py index cbd14e0920..a24d1d9570 100644 --- a/mmseg/datasets/stare.py +++ b/mmseg/datasets/stare.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import os.path as osp from .builder import DATASETS diff --git a/mmseg/datasets/voc.py b/mmseg/datasets/voc.py index a8855203b1..3cec9e3505 100644 --- a/mmseg/datasets/voc.py +++ b/mmseg/datasets/voc.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import os.path as osp from .builder import DATASETS diff --git a/mmseg/models/__init__.py b/mmseg/models/__init__.py index 3cf93f8bec..87d8108e3f 100644 --- a/mmseg/models/__init__.py +++ b/mmseg/models/__init__.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from .backbones import * # noqa: F401,F403 from .builder import (BACKBONES, HEADS, LOSSES, SEGMENTORS, build_backbone, build_head, build_loss, build_segmentor) diff --git a/mmseg/models/backbones/__init__.py b/mmseg/models/backbones/__init__.py index b8c17b2184..75ef2c3a86 100644 --- a/mmseg/models/backbones/__init__.py +++ b/mmseg/models/backbones/__init__.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from .cgnet import CGNet from .fast_scnn import FastSCNN from .hrnet import HRNet diff --git a/mmseg/models/backbones/cgnet.py b/mmseg/models/backbones/cgnet.py index 32bdbc4c15..67c06717ba 100644 --- a/mmseg/models/backbones/cgnet.py +++ b/mmseg/models/backbones/cgnet.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import warnings import torch diff --git a/mmseg/models/backbones/fast_scnn.py b/mmseg/models/backbones/fast_scnn.py index 84289da481..95a434413b 100644 --- a/mmseg/models/backbones/fast_scnn.py +++ b/mmseg/models/backbones/fast_scnn.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn from mmcv.cnn import ConvModule, DepthwiseSeparableConvModule diff --git a/mmseg/models/backbones/hrnet.py b/mmseg/models/backbones/hrnet.py index 0f064cff7d..c8ec50654e 100644 --- a/mmseg/models/backbones/hrnet.py +++ b/mmseg/models/backbones/hrnet.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import warnings import torch.nn as nn diff --git a/mmseg/models/backbones/mit.py b/mmseg/models/backbones/mit.py index 9d41ea58c1..90abfe539b 100644 --- a/mmseg/models/backbones/mit.py +++ b/mmseg/models/backbones/mit.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import math import warnings diff --git a/mmseg/models/backbones/mobilenet_v2.py b/mmseg/models/backbones/mobilenet_v2.py index 46d57fbb55..988e29cdea 100644 --- a/mmseg/models/backbones/mobilenet_v2.py +++ b/mmseg/models/backbones/mobilenet_v2.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import warnings import torch.nn as nn diff --git a/mmseg/models/backbones/mobilenet_v3.py b/mmseg/models/backbones/mobilenet_v3.py index ae0b45db81..dd3d6eb176 100644 --- a/mmseg/models/backbones/mobilenet_v3.py +++ b/mmseg/models/backbones/mobilenet_v3.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import warnings import mmcv diff --git a/mmseg/models/backbones/resnest.py b/mmseg/models/backbones/resnest.py index 8931decb87..f47adb5302 100644 --- a/mmseg/models/backbones/resnest.py +++ b/mmseg/models/backbones/resnest.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import math import torch diff --git a/mmseg/models/backbones/resnet.py b/mmseg/models/backbones/resnet.py index f7238f02f6..f9a1ceb4e0 100644 --- a/mmseg/models/backbones/resnet.py +++ b/mmseg/models/backbones/resnet.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import warnings import torch.nn as nn diff --git a/mmseg/models/backbones/resnext.py b/mmseg/models/backbones/resnext.py index fa8149ce2f..450b77bb76 100644 --- a/mmseg/models/backbones/resnext.py +++ b/mmseg/models/backbones/resnext.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import math from mmcv.cnn import build_conv_layer, build_norm_layer diff --git a/mmseg/models/backbones/swin.py b/mmseg/models/backbones/swin.py index 68a989b5d7..c75bf5fc8f 100644 --- a/mmseg/models/backbones/swin.py +++ b/mmseg/models/backbones/swin.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import warnings from copy import deepcopy diff --git a/mmseg/models/backbones/unet.py b/mmseg/models/backbones/unet.py index 705dd2b8f8..680c79e320 100644 --- a/mmseg/models/backbones/unet.py +++ b/mmseg/models/backbones/unet.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import warnings import torch.nn as nn diff --git a/mmseg/models/backbones/vit.py b/mmseg/models/backbones/vit.py index e4f1839bdb..5bee596fec 100644 --- a/mmseg/models/backbones/vit.py +++ b/mmseg/models/backbones/vit.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import math import warnings diff --git a/mmseg/models/builder.py b/mmseg/models/builder.py index 05d0606807..5e18e4e643 100644 --- a/mmseg/models/builder.py +++ b/mmseg/models/builder.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import warnings from mmcv.cnn import MODELS as MMCV_MODELS diff --git a/mmseg/models/decode_heads/__init__.py b/mmseg/models/decode_heads/__init__.py index 5b64125056..b0daf0e1cb 100644 --- a/mmseg/models/decode_heads/__init__.py +++ b/mmseg/models/decode_heads/__init__.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from .ann_head import ANNHead from .apc_head import APCHead from .aspp_head import ASPPHead diff --git a/mmseg/models/decode_heads/ann_head.py b/mmseg/models/decode_heads/ann_head.py index 396c54e150..c8d882e319 100644 --- a/mmseg/models/decode_heads/ann_head.py +++ b/mmseg/models/decode_heads/ann_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn from mmcv.cnn import ConvModule diff --git a/mmseg/models/decode_heads/apc_head.py b/mmseg/models/decode_heads/apc_head.py index 2118232c96..3198fd1881 100644 --- a/mmseg/models/decode_heads/apc_head.py +++ b/mmseg/models/decode_heads/apc_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn import torch.nn.functional as F diff --git a/mmseg/models/decode_heads/aspp_head.py b/mmseg/models/decode_heads/aspp_head.py index 6332ab120c..1fbd1bc880 100644 --- a/mmseg/models/decode_heads/aspp_head.py +++ b/mmseg/models/decode_heads/aspp_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn from mmcv.cnn import ConvModule diff --git a/mmseg/models/decode_heads/cascade_decode_head.py b/mmseg/models/decode_heads/cascade_decode_head.py index d02122ca0e..f7c3da0d67 100644 --- a/mmseg/models/decode_heads/cascade_decode_head.py +++ b/mmseg/models/decode_heads/cascade_decode_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from abc import ABCMeta, abstractmethod from .decode_head import BaseDecodeHead diff --git a/mmseg/models/decode_heads/cc_head.py b/mmseg/models/decode_heads/cc_head.py index 95c2706a5d..ed19eb46d1 100644 --- a/mmseg/models/decode_heads/cc_head.py +++ b/mmseg/models/decode_heads/cc_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch from ..builder import HEADS diff --git a/mmseg/models/decode_heads/da_head.py b/mmseg/models/decode_heads/da_head.py index 8ee0e08c3d..77fd6639c0 100644 --- a/mmseg/models/decode_heads/da_head.py +++ b/mmseg/models/decode_heads/da_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn.functional as F from mmcv.cnn import ConvModule, Scale diff --git a/mmseg/models/decode_heads/decode_head.py b/mmseg/models/decode_heads/decode_head.py index 54d517f027..b38701a92e 100644 --- a/mmseg/models/decode_heads/decode_head.py +++ b/mmseg/models/decode_heads/decode_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from abc import ABCMeta, abstractmethod import torch diff --git a/mmseg/models/decode_heads/dm_head.py b/mmseg/models/decode_heads/dm_head.py index 3161b06488..ffaa870ab3 100644 --- a/mmseg/models/decode_heads/dm_head.py +++ b/mmseg/models/decode_heads/dm_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn import torch.nn.functional as F diff --git a/mmseg/models/decode_heads/dnl_head.py b/mmseg/models/decode_heads/dnl_head.py index 52a662ccb6..ab53d9a24c 100644 --- a/mmseg/models/decode_heads/dnl_head.py +++ b/mmseg/models/decode_heads/dnl_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch from mmcv.cnn import NonLocal2d from torch import nn diff --git a/mmseg/models/decode_heads/ema_head.py b/mmseg/models/decode_heads/ema_head.py index 619d757046..f6de167111 100644 --- a/mmseg/models/decode_heads/ema_head.py +++ b/mmseg/models/decode_heads/ema_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import math import torch diff --git a/mmseg/models/decode_heads/enc_head.py b/mmseg/models/decode_heads/enc_head.py index 0c11994cf6..648c8906b9 100644 --- a/mmseg/models/decode_heads/enc_head.py +++ b/mmseg/models/decode_heads/enc_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn import torch.nn.functional as F diff --git a/mmseg/models/decode_heads/fcn_head.py b/mmseg/models/decode_heads/fcn_head.py index 4ea3742f0b..3c8de51f61 100644 --- a/mmseg/models/decode_heads/fcn_head.py +++ b/mmseg/models/decode_heads/fcn_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn from mmcv.cnn import ConvModule diff --git a/mmseg/models/decode_heads/fpn_head.py b/mmseg/models/decode_heads/fpn_head.py index 1e5bfd63fc..e41f324cca 100644 --- a/mmseg/models/decode_heads/fpn_head.py +++ b/mmseg/models/decode_heads/fpn_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import numpy as np import torch.nn as nn from mmcv.cnn import ConvModule diff --git a/mmseg/models/decode_heads/gc_head.py b/mmseg/models/decode_heads/gc_head.py index 93f60ad61c..eed5074251 100644 --- a/mmseg/models/decode_heads/gc_head.py +++ b/mmseg/models/decode_heads/gc_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch from mmcv.cnn import ContextBlock diff --git a/mmseg/models/decode_heads/lraspp_head.py b/mmseg/models/decode_heads/lraspp_head.py index 32a093cade..c10ff0d822 100644 --- a/mmseg/models/decode_heads/lraspp_head.py +++ b/mmseg/models/decode_heads/lraspp_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn from mmcv import is_tuple_of diff --git a/mmseg/models/decode_heads/nl_head.py b/mmseg/models/decode_heads/nl_head.py index 31658755a6..637517e7a0 100644 --- a/mmseg/models/decode_heads/nl_head.py +++ b/mmseg/models/decode_heads/nl_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch from mmcv.cnn import NonLocal2d diff --git a/mmseg/models/decode_heads/ocr_head.py b/mmseg/models/decode_heads/ocr_head.py index e180e10276..09eadfb1a6 100644 --- a/mmseg/models/decode_heads/ocr_head.py +++ b/mmseg/models/decode_heads/ocr_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn import torch.nn.functional as F diff --git a/mmseg/models/decode_heads/point_head.py b/mmseg/models/decode_heads/point_head.py index f2d9fcc5a7..4bc388cbc0 100644 --- a/mmseg/models/decode_heads/point_head.py +++ b/mmseg/models/decode_heads/point_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. # Modified from https://github.com/facebookresearch/detectron2/tree/master/projects/PointRend/point_head/point_head.py # noqa import torch diff --git a/mmseg/models/decode_heads/psa_head.py b/mmseg/models/decode_heads/psa_head.py index 8d915e57f4..df7593cbcb 100644 --- a/mmseg/models/decode_heads/psa_head.py +++ b/mmseg/models/decode_heads/psa_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn import torch.nn.functional as F diff --git a/mmseg/models/decode_heads/psp_head.py b/mmseg/models/decode_heads/psp_head.py index 4416199860..a27ae4bd0a 100644 --- a/mmseg/models/decode_heads/psp_head.py +++ b/mmseg/models/decode_heads/psp_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn from mmcv.cnn import ConvModule diff --git a/mmseg/models/decode_heads/segformer_head.py b/mmseg/models/decode_heads/segformer_head.py index 9ae1ff69d8..2e75d5069b 100644 --- a/mmseg/models/decode_heads/segformer_head.py +++ b/mmseg/models/decode_heads/segformer_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn from mmcv.cnn import ConvModule diff --git a/mmseg/models/decode_heads/sep_aspp_head.py b/mmseg/models/decode_heads/sep_aspp_head.py index 50bd52bcff..4e894e28e3 100644 --- a/mmseg/models/decode_heads/sep_aspp_head.py +++ b/mmseg/models/decode_heads/sep_aspp_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn from mmcv.cnn import ConvModule, DepthwiseSeparableConvModule diff --git a/mmseg/models/decode_heads/sep_fcn_head.py b/mmseg/models/decode_heads/sep_fcn_head.py index 39844c9ee8..5e22a66f7c 100644 --- a/mmseg/models/decode_heads/sep_fcn_head.py +++ b/mmseg/models/decode_heads/sep_fcn_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from mmcv.cnn import DepthwiseSeparableConvModule from ..builder import HEADS diff --git a/mmseg/models/decode_heads/setr_mla_head.py b/mmseg/models/decode_heads/setr_mla_head.py index c4e22bf7d6..6bb94ae330 100644 --- a/mmseg/models/decode_heads/setr_mla_head.py +++ b/mmseg/models/decode_heads/setr_mla_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn from mmcv.cnn import ConvModule diff --git a/mmseg/models/decode_heads/setr_up_head.py b/mmseg/models/decode_heads/setr_up_head.py index a2595ad514..87e7ea7faa 100644 --- a/mmseg/models/decode_heads/setr_up_head.py +++ b/mmseg/models/decode_heads/setr_up_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch.nn as nn from mmcv.cnn import ConvModule, build_norm_layer diff --git a/mmseg/models/decode_heads/uper_head.py b/mmseg/models/decode_heads/uper_head.py index bb617f6b13..4a50316a58 100644 --- a/mmseg/models/decode_heads/uper_head.py +++ b/mmseg/models/decode_heads/uper_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn from mmcv.cnn import ConvModule diff --git a/mmseg/models/losses/__init__.py b/mmseg/models/losses/__init__.py index beca720456..e85d8e0038 100644 --- a/mmseg/models/losses/__init__.py +++ b/mmseg/models/losses/__init__.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from .accuracy import Accuracy, accuracy from .cross_entropy_loss import (CrossEntropyLoss, binary_cross_entropy, cross_entropy, mask_cross_entropy) diff --git a/mmseg/models/losses/accuracy.py b/mmseg/models/losses/accuracy.py index c0fd2e7e74..f2cd16b7f9 100644 --- a/mmseg/models/losses/accuracy.py +++ b/mmseg/models/losses/accuracy.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch.nn as nn diff --git a/mmseg/models/losses/cross_entropy_loss.py b/mmseg/models/losses/cross_entropy_loss.py index 42c0790c98..9a7ccea937 100644 --- a/mmseg/models/losses/cross_entropy_loss.py +++ b/mmseg/models/losses/cross_entropy_loss.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn import torch.nn.functional as F diff --git a/mmseg/models/losses/dice_loss.py b/mmseg/models/losses/dice_loss.py index 27a77b962d..0b07e97648 100644 --- a/mmseg/models/losses/dice_loss.py +++ b/mmseg/models/losses/dice_loss.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. """Modified from https://github.com/LikeLy-Journey/SegmenTron/blob/master/ segmentron/solver/loss.py (Apache-2.0 License)""" import torch diff --git a/mmseg/models/losses/lovasz_loss.py b/mmseg/models/losses/lovasz_loss.py index e8df6e8307..275c4c5432 100644 --- a/mmseg/models/losses/lovasz_loss.py +++ b/mmseg/models/losses/lovasz_loss.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. """Modified from https://github.com/bermanmaxim/LovaszSoftmax/blob/master/pytor ch/lovasz_losses.py Lovasz-Softmax and Jaccard hinge loss in PyTorch Maxim Berman 2018 ESAT-PSI KU Leuven (MIT License)""" diff --git a/mmseg/models/losses/utils.py b/mmseg/models/losses/utils.py index ab5876603e..c57e4b18a8 100644 --- a/mmseg/models/losses/utils.py +++ b/mmseg/models/losses/utils.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import functools import mmcv diff --git a/mmseg/models/necks/__init__.py b/mmseg/models/necks/__init__.py index 3d6a4c050b..c496853c83 100644 --- a/mmseg/models/necks/__init__.py +++ b/mmseg/models/necks/__init__.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from .fpn import FPN from .mla_neck import MLANeck from .multilevel_neck import MultiLevelNeck diff --git a/mmseg/models/necks/fpn.py b/mmseg/models/necks/fpn.py index 5e1bd21836..8461a75e49 100644 --- a/mmseg/models/necks/fpn.py +++ b/mmseg/models/necks/fpn.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch.nn as nn import torch.nn.functional as F from mmcv.cnn import ConvModule diff --git a/mmseg/models/necks/mla_neck.py b/mmseg/models/necks/mla_neck.py index 010c43d406..5fc3b98b0b 100644 --- a/mmseg/models/necks/mla_neck.py +++ b/mmseg/models/necks/mla_neck.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch.nn as nn from mmcv.cnn import ConvModule, build_norm_layer diff --git a/mmseg/models/necks/multilevel_neck.py b/mmseg/models/necks/multilevel_neck.py index 9f638932f4..cbf4b01176 100644 --- a/mmseg/models/necks/multilevel_neck.py +++ b/mmseg/models/necks/multilevel_neck.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch.nn as nn from mmcv.cnn import ConvModule, xavier_init diff --git a/mmseg/models/segmentors/__init__.py b/mmseg/models/segmentors/__init__.py index dca2f09405..387c858bd7 100644 --- a/mmseg/models/segmentors/__init__.py +++ b/mmseg/models/segmentors/__init__.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from .base import BaseSegmentor from .cascade_encoder_decoder import CascadeEncoderDecoder from .encoder_decoder import EncoderDecoder diff --git a/mmseg/models/segmentors/base.py b/mmseg/models/segmentors/base.py index 0ace142ace..906c6fe564 100644 --- a/mmseg/models/segmentors/base.py +++ b/mmseg/models/segmentors/base.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import warnings from abc import ABCMeta, abstractmethod from collections import OrderedDict diff --git a/mmseg/models/segmentors/cascade_encoder_decoder.py b/mmseg/models/segmentors/cascade_encoder_decoder.py index fb5a9aeb7b..7f9f9006c8 100644 --- a/mmseg/models/segmentors/cascade_encoder_decoder.py +++ b/mmseg/models/segmentors/cascade_encoder_decoder.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from torch import nn from mmseg.core import add_prefix diff --git a/mmseg/models/segmentors/encoder_decoder.py b/mmseg/models/segmentors/encoder_decoder.py index 04de3f4180..72467b4690 100644 --- a/mmseg/models/segmentors/encoder_decoder.py +++ b/mmseg/models/segmentors/encoder_decoder.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn import torch.nn.functional as F diff --git a/mmseg/models/utils/__init__.py b/mmseg/models/utils/__init__.py index 6ef12bb9ba..817ab9cc60 100644 --- a/mmseg/models/utils/__init__.py +++ b/mmseg/models/utils/__init__.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from .ckpt_convert import swin_convert, vit_convert from .embed import PatchEmbed from .inverted_residual import InvertedResidual, InvertedResidualV3 diff --git a/mmseg/models/utils/ckpt_convert.py b/mmseg/models/utils/ckpt_convert.py index 0b1b27707d..fd4632065c 100644 --- a/mmseg/models/utils/ckpt_convert.py +++ b/mmseg/models/utils/ckpt_convert.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from collections import OrderedDict diff --git a/mmseg/models/utils/embed.py b/mmseg/models/utils/embed.py index 73d8ed1f11..c0cf143488 100644 --- a/mmseg/models/utils/embed.py +++ b/mmseg/models/utils/embed.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch.nn.functional as F from mmcv.cnn import build_conv_layer, build_norm_layer from mmcv.runner.base_module import BaseModule diff --git a/mmseg/models/utils/inverted_residual.py b/mmseg/models/utils/inverted_residual.py index 5a209a57bc..c9cda76822 100644 --- a/mmseg/models/utils/inverted_residual.py +++ b/mmseg/models/utils/inverted_residual.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from mmcv.cnn import ConvModule from torch import nn from torch.utils import checkpoint as cp diff --git a/mmseg/models/utils/make_divisible.py b/mmseg/models/utils/make_divisible.py index 75ad756052..ed42c2eeea 100644 --- a/mmseg/models/utils/make_divisible.py +++ b/mmseg/models/utils/make_divisible.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. def make_divisible(value, divisor, min_value=None, min_ratio=0.9): """Make divisible function. diff --git a/mmseg/models/utils/res_layer.py b/mmseg/models/utils/res_layer.py index 9c474ede63..190a0c5d5a 100644 --- a/mmseg/models/utils/res_layer.py +++ b/mmseg/models/utils/res_layer.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from mmcv.cnn import build_conv_layer, build_norm_layer from mmcv.runner import Sequential from torch import nn as nn diff --git a/mmseg/models/utils/se_layer.py b/mmseg/models/utils/se_layer.py index e08340457b..16f52aa5c0 100644 --- a/mmseg/models/utils/se_layer.py +++ b/mmseg/models/utils/se_layer.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import mmcv import torch.nn as nn from mmcv.cnn import ConvModule diff --git a/mmseg/models/utils/self_attention_block.py b/mmseg/models/utils/self_attention_block.py index 372fad2e00..c945fa7168 100644 --- a/mmseg/models/utils/self_attention_block.py +++ b/mmseg/models/utils/self_attention_block.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch from mmcv.cnn import ConvModule, constant_init from torch import nn as nn diff --git a/mmseg/models/utils/shape_convert.py b/mmseg/models/utils/shape_convert.py index 744416092c..34c8648c4a 100644 --- a/mmseg/models/utils/shape_convert.py +++ b/mmseg/models/utils/shape_convert.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. def nlc_to_nchw(x, hw_shape): """Convert [N, L, C] shape tensor to [N, C, H, W] shape tensor. diff --git a/mmseg/models/utils/up_conv_block.py b/mmseg/models/utils/up_conv_block.py index 6566b749db..d8396d9c2c 100644 --- a/mmseg/models/utils/up_conv_block.py +++ b/mmseg/models/utils/up_conv_block.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn from mmcv.cnn import ConvModule, build_upsample_layer diff --git a/mmseg/ops/__init__.py b/mmseg/ops/__init__.py index bec51c75b9..bc075cd4eb 100644 --- a/mmseg/ops/__init__.py +++ b/mmseg/ops/__init__.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from .encoding import Encoding from .wrappers import Upsample, resize diff --git a/mmseg/ops/encoding.py b/mmseg/ops/encoding.py index 7eb3629a64..f397cc54e8 100644 --- a/mmseg/ops/encoding.py +++ b/mmseg/ops/encoding.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch from torch import nn from torch.nn import functional as F diff --git a/mmseg/ops/wrappers.py b/mmseg/ops/wrappers.py index 0ed9a0cb8d..ce67e4bebe 100644 --- a/mmseg/ops/wrappers.py +++ b/mmseg/ops/wrappers.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import warnings import torch.nn as nn diff --git a/mmseg/utils/__init__.py b/mmseg/utils/__init__.py index ac489e2dbb..3f15580521 100644 --- a/mmseg/utils/__init__.py +++ b/mmseg/utils/__init__.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from .collect_env import collect_env from .logger import get_root_logger diff --git a/mmseg/utils/collect_env.py b/mmseg/utils/collect_env.py index 8293a05fb3..3379ecb06b 100644 --- a/mmseg/utils/collect_env.py +++ b/mmseg/utils/collect_env.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from mmcv.utils import collect_env as collect_base_env from mmcv.utils import get_git_hash diff --git a/mmseg/utils/logger.py b/mmseg/utils/logger.py index 05d2f13439..0cb3c78d6d 100644 --- a/mmseg/utils/logger.py +++ b/mmseg/utils/logger.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import logging from mmcv.utils import get_logger diff --git a/setup.py b/setup.py index 92c0950462..bc85294970 100755 --- a/setup.py +++ b/setup.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import os import os.path as osp import shutil @@ -35,9 +36,9 @@ def parse_requirements(fname='requirements.txt', with_version=True): CommandLine: python -c "import setup; print(setup.parse_requirements())" """ + import re import sys from os.path import exists - import re require_fpath = fname def parse_line(line): diff --git a/tests/__init__.py b/tests/__init__.py index e69de29bb2..ef101fec61 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -0,0 +1 @@ +# Copyright (c) OpenMMLab. All rights reserved. diff --git a/tests/test_config.py b/tests/test_config.py index b991fbfd31..e6cec409d6 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import glob import os from os.path import dirname, exists, isdir, join, relpath diff --git a/tests/test_data/test_dataset.py b/tests/test_data/test_dataset.py index 57a33da6c3..7ef59f27de 100644 --- a/tests/test_data/test_dataset.py +++ b/tests/test_data/test_dataset.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import os.path as osp from unittest.mock import MagicMock, patch diff --git a/tests/test_data/test_dataset_builder.py b/tests/test_data/test_dataset_builder.py index c6827e4d17..c945fe5527 100644 --- a/tests/test_data/test_dataset_builder.py +++ b/tests/test_data/test_dataset_builder.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import math import os.path as osp diff --git a/tests/test_data/test_loading.py b/tests/test_data/test_loading.py index e8aa5d3130..fdda93ef97 100644 --- a/tests/test_data/test_loading.py +++ b/tests/test_data/test_loading.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import copy import os.path as osp import tempfile diff --git a/tests/test_data/test_transform.py b/tests/test_data/test_transform.py index 33ed4ecb14..3862e75a34 100644 --- a/tests/test_data/test_transform.py +++ b/tests/test_data/test_transform.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import copy import os.path as osp diff --git a/tests/test_data/test_tta.py b/tests/test_data/test_tta.py index cc8c71e57c..d61af27ae0 100644 --- a/tests/test_data/test_tta.py +++ b/tests/test_data/test_tta.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import os.path as osp import mmcv diff --git a/tests/test_digit_version.py b/tests/test_digit_version.py index 4d6649005c..45daf09ca1 100644 --- a/tests/test_digit_version.py +++ b/tests/test_digit_version.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from mmseg import digit_version diff --git a/tests/test_eval_hook.py b/tests/test_eval_hook.py index 394051b0ba..54d2a43539 100644 --- a/tests/test_eval_hook.py +++ b/tests/test_eval_hook.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import logging import tempfile from unittest.mock import MagicMock, patch diff --git a/tests/test_inference.py b/tests/test_inference.py index 046e036281..f71a7ea56d 100644 --- a/tests/test_inference.py +++ b/tests/test_inference.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import os.path as osp import mmcv diff --git a/tests/test_metrics.py b/tests/test_metrics.py index 4030505b96..a8db8025df 100644 --- a/tests/test_metrics.py +++ b/tests/test_metrics.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import numpy as np from mmseg.core.evaluation import (eval_metrics, mean_dice, mean_fscore, diff --git a/tests/test_models/__init__.py b/tests/test_models/__init__.py index e69de29bb2..ef101fec61 100644 --- a/tests/test_models/__init__.py +++ b/tests/test_models/__init__.py @@ -0,0 +1 @@ +# Copyright (c) OpenMMLab. All rights reserved. diff --git a/tests/test_models/test_backbones/__init__.py b/tests/test_models/test_backbones/__init__.py index 78a93a54f2..8b673fa5c3 100644 --- a/tests/test_models/test_backbones/__init__.py +++ b/tests/test_models/test_backbones/__init__.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from .utils import all_zeros, check_norm_state, is_block, is_norm __all__ = ['is_norm', 'is_block', 'all_zeros', 'check_norm_state'] diff --git a/tests/test_models/test_backbones/test_blocks.py b/tests/test_models/test_backbones/test_blocks.py index f459fbba87..ad3ad2d8c1 100644 --- a/tests/test_models/test_backbones/test_blocks.py +++ b/tests/test_models/test_backbones/test_blocks.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import mmcv import pytest import torch diff --git a/tests/test_models/test_backbones/test_cgnet.py b/tests/test_models/test_backbones/test_cgnet.py index dfc4e9adea..f938525d0a 100644 --- a/tests/test_models/test_backbones/test_cgnet.py +++ b/tests/test_models/test_backbones/test_cgnet.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import pytest import torch diff --git a/tests/test_models/test_backbones/test_fast_scnn.py b/tests/test_models/test_backbones/test_fast_scnn.py index f4a580987f..e6390469a2 100644 --- a/tests/test_models/test_backbones/test_fast_scnn.py +++ b/tests/test_models/test_backbones/test_fast_scnn.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import pytest import torch diff --git a/tests/test_models/test_backbones/test_hrnet.py b/tests/test_models/test_backbones/test_hrnet.py index 81611a0d11..aa42c85814 100644 --- a/tests/test_models/test_backbones/test_hrnet.py +++ b/tests/test_models/test_backbones/test_hrnet.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from mmcv.utils.parrots_wrapper import _BatchNorm from mmseg.models.backbones import HRNet diff --git a/tests/test_models/test_backbones/test_mit.py b/tests/test_models/test_backbones/test_mit.py index bf6cca1649..86d98bf88b 100644 --- a/tests/test_models/test_backbones/test_mit.py +++ b/tests/test_models/test_backbones/test_mit.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import pytest import torch diff --git a/tests/test_models/test_backbones/test_mobilenet_v3.py b/tests/test_models/test_backbones/test_mobilenet_v3.py index 1ebeac410f..a238035677 100644 --- a/tests/test_models/test_backbones/test_mobilenet_v3.py +++ b/tests/test_models/test_backbones/test_mobilenet_v3.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import pytest import torch diff --git a/tests/test_models/test_backbones/test_resnest.py b/tests/test_models/test_backbones/test_resnest.py index 78d97de0c3..3013f34fcc 100644 --- a/tests/test_models/test_backbones/test_resnest.py +++ b/tests/test_models/test_backbones/test_resnest.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import pytest import torch diff --git a/tests/test_models/test_backbones/test_resnet.py b/tests/test_models/test_backbones/test_resnet.py index e0947dba71..2efb4986b0 100644 --- a/tests/test_models/test_backbones/test_resnet.py +++ b/tests/test_models/test_backbones/test_resnet.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import pytest import torch from mmcv.ops import DeformConv2dPack diff --git a/tests/test_models/test_backbones/test_resnext.py b/tests/test_models/test_backbones/test_resnext.py index 2ba5f8ec2d..2aecaf0d3d 100644 --- a/tests/test_models/test_backbones/test_resnext.py +++ b/tests/test_models/test_backbones/test_resnext.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import pytest import torch diff --git a/tests/test_models/test_backbones/test_swin.py b/tests/test_models/test_backbones/test_swin.py index 42e3086673..d82a4ba10b 100644 --- a/tests/test_models/test_backbones/test_swin.py +++ b/tests/test_models/test_backbones/test_swin.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import pytest import torch diff --git a/tests/test_models/test_backbones/test_unet.py b/tests/test_models/test_backbones/test_unet.py index 52f2123a3c..3a035c8f0b 100644 --- a/tests/test_models/test_backbones/test_unet.py +++ b/tests/test_models/test_backbones/test_unet.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import pytest import torch from mmcv.cnn import ConvModule diff --git a/tests/test_models/test_backbones/test_vit.py b/tests/test_models/test_backbones/test_vit.py index 16d6aba68f..c9afe075b9 100644 --- a/tests/test_models/test_backbones/test_vit.py +++ b/tests/test_models/test_backbones/test_vit.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import pytest import torch diff --git a/tests/test_models/test_backbones/utils.py b/tests/test_models/test_backbones/utils.py index d50b772c5f..54b6404c60 100644 --- a/tests/test_models/test_backbones/utils.py +++ b/tests/test_models/test_backbones/utils.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch from torch.nn.modules import GroupNorm from torch.nn.modules.batchnorm import _BatchNorm diff --git a/tests/test_models/test_forward.py b/tests/test_models/test_forward.py index ea9d70b614..5aa3a2fe99 100644 --- a/tests/test_models/test_forward.py +++ b/tests/test_models/test_forward.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. """pytest tests/test_forward.py.""" import copy from os.path import dirname, exists, join diff --git a/tests/test_models/test_heads/__init__.py b/tests/test_models/test_heads/__init__.py index e69de29bb2..ef101fec61 100644 --- a/tests/test_models/test_heads/__init__.py +++ b/tests/test_models/test_heads/__init__.py @@ -0,0 +1 @@ +# Copyright (c) OpenMMLab. All rights reserved. diff --git a/tests/test_models/test_heads/test_ann_head.py b/tests/test_models/test_heads/test_ann_head.py index 61556c0a08..22caf03642 100644 --- a/tests/test_models/test_heads/test_ann_head.py +++ b/tests/test_models/test_heads/test_ann_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch from mmseg.models.decode_heads import ANNHead diff --git a/tests/test_models/test_heads/test_apc_head.py b/tests/test_models/test_heads/test_apc_head.py index 37f1a559bb..a79d66fcff 100644 --- a/tests/test_models/test_heads/test_apc_head.py +++ b/tests/test_models/test_heads/test_apc_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import pytest import torch diff --git a/tests/test_models/test_heads/test_aspp_head.py b/tests/test_models/test_heads/test_aspp_head.py index bd4ce56a35..203fef0a47 100644 --- a/tests/test_models/test_heads/test_aspp_head.py +++ b/tests/test_models/test_heads/test_aspp_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import pytest import torch diff --git a/tests/test_models/test_heads/test_cc_head.py b/tests/test_models/test_heads/test_cc_head.py index 12a19bf0a4..ff284ef067 100644 --- a/tests/test_models/test_heads/test_cc_head.py +++ b/tests/test_models/test_heads/test_cc_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import pytest import torch diff --git a/tests/test_models/test_heads/test_da_head.py b/tests/test_models/test_heads/test_da_head.py index 20f3a2181b..7bc46aa960 100644 --- a/tests/test_models/test_heads/test_da_head.py +++ b/tests/test_models/test_heads/test_da_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch from mmseg.models.decode_heads import DAHead diff --git a/tests/test_models/test_heads/test_decode_head.py b/tests/test_models/test_heads/test_decode_head.py index 97262b92c7..421043d398 100644 --- a/tests/test_models/test_heads/test_decode_head.py +++ b/tests/test_models/test_heads/test_decode_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from unittest.mock import patch import pytest diff --git a/tests/test_models/test_heads/test_dm_head.py b/tests/test_models/test_heads/test_dm_head.py index e85127b30c..f85d547e81 100644 --- a/tests/test_models/test_heads/test_dm_head.py +++ b/tests/test_models/test_heads/test_dm_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import pytest import torch diff --git a/tests/test_models/test_heads/test_dnl_head.py b/tests/test_models/test_heads/test_dnl_head.py index b3e98aa276..17242018e0 100644 --- a/tests/test_models/test_heads/test_dnl_head.py +++ b/tests/test_models/test_heads/test_dnl_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch from mmseg.models.decode_heads import DNLHead diff --git a/tests/test_models/test_heads/test_ema_head.py b/tests/test_models/test_heads/test_ema_head.py index 4214b0c961..8947e0d584 100644 --- a/tests/test_models/test_heads/test_ema_head.py +++ b/tests/test_models/test_heads/test_ema_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch from mmseg.models.decode_heads import EMAHead diff --git a/tests/test_models/test_heads/test_enc_head.py b/tests/test_models/test_heads/test_enc_head.py index 3a293300f4..db5383d76a 100644 --- a/tests/test_models/test_heads/test_enc_head.py +++ b/tests/test_models/test_heads/test_enc_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch from mmseg.models.decode_heads import EncHead diff --git a/tests/test_models/test_heads/test_fcn_head.py b/tests/test_models/test_heads/test_fcn_head.py index 24ae086d65..3783fe3ad5 100644 --- a/tests/test_models/test_heads/test_fcn_head.py +++ b/tests/test_models/test_heads/test_fcn_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import pytest import torch from mmcv.cnn import ConvModule, DepthwiseSeparableConvModule diff --git a/tests/test_models/test_heads/test_gc_head.py b/tests/test_models/test_heads/test_gc_head.py index 5201730b06..4540222e29 100644 --- a/tests/test_models/test_heads/test_gc_head.py +++ b/tests/test_models/test_heads/test_gc_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch from mmseg.models.decode_heads import GCHead diff --git a/tests/test_models/test_heads/test_lraspp_head.py b/tests/test_models/test_heads/test_lraspp_head.py index 5031936c78..c83377f3d8 100644 --- a/tests/test_models/test_heads/test_lraspp_head.py +++ b/tests/test_models/test_heads/test_lraspp_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import pytest import torch diff --git a/tests/test_models/test_heads/test_nl_head.py b/tests/test_models/test_heads/test_nl_head.py index 6f4bede5e7..04b173f08f 100644 --- a/tests/test_models/test_heads/test_nl_head.py +++ b/tests/test_models/test_heads/test_nl_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch from mmseg.models.decode_heads import NLHead diff --git a/tests/test_models/test_heads/test_ocr_head.py b/tests/test_models/test_heads/test_ocr_head.py index bc2af75ad5..c6551f83ed 100644 --- a/tests/test_models/test_heads/test_ocr_head.py +++ b/tests/test_models/test_heads/test_ocr_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch from mmseg.models.decode_heads import FCNHead, OCRHead diff --git a/tests/test_models/test_heads/test_point_head.py b/tests/test_models/test_heads/test_point_head.py index b54b979de9..6c5ea65768 100644 --- a/tests/test_models/test_heads/test_point_head.py +++ b/tests/test_models/test_heads/test_point_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch from mmcv.utils import ConfigDict diff --git a/tests/test_models/test_heads/test_psa_head.py b/tests/test_models/test_heads/test_psa_head.py index d8f38b6aae..21450b5eab 100644 --- a/tests/test_models/test_heads/test_psa_head.py +++ b/tests/test_models/test_heads/test_psa_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import pytest import torch diff --git a/tests/test_models/test_heads/test_psp_head.py b/tests/test_models/test_heads/test_psp_head.py index 38b39d7ba8..f4a8781a0c 100644 --- a/tests/test_models/test_heads/test_psp_head.py +++ b/tests/test_models/test_heads/test_psp_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import pytest import torch diff --git a/tests/test_models/test_heads/test_segformer_head.py b/tests/test_models/test_heads/test_segformer_head.py index aa8dedb1a8..73afaba2ca 100644 --- a/tests/test_models/test_heads/test_segformer_head.py +++ b/tests/test_models/test_heads/test_segformer_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import pytest import torch diff --git a/tests/test_models/test_heads/test_setr_mla_head.py b/tests/test_models/test_heads/test_setr_mla_head.py index d43aab02f9..07992d0d92 100644 --- a/tests/test_models/test_heads/test_setr_mla_head.py +++ b/tests/test_models/test_heads/test_setr_mla_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import pytest import torch diff --git a/tests/test_models/test_heads/test_setr_up_head.py b/tests/test_models/test_heads/test_setr_up_head.py index ad6ca56d2d..d552e175e2 100644 --- a/tests/test_models/test_heads/test_setr_up_head.py +++ b/tests/test_models/test_heads/test_setr_up_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import pytest import torch diff --git a/tests/test_models/test_heads/test_uper_head.py b/tests/test_models/test_heads/test_uper_head.py index 2c66db8921..961b01bb16 100644 --- a/tests/test_models/test_heads/test_uper_head.py +++ b/tests/test_models/test_heads/test_uper_head.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import pytest import torch diff --git a/tests/test_models/test_heads/utils.py b/tests/test_models/test_heads/utils.py index 1407f0a916..675241c21c 100644 --- a/tests/test_models/test_heads/utils.py +++ b/tests/test_models/test_heads/utils.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from mmcv.cnn import ConvModule from mmcv.utils.parrots_wrapper import SyncBatchNorm diff --git a/tests/test_models/test_losses/__init__.py b/tests/test_models/test_losses/__init__.py index e69de29bb2..ef101fec61 100644 --- a/tests/test_models/test_losses/__init__.py +++ b/tests/test_models/test_losses/__init__.py @@ -0,0 +1 @@ +# Copyright (c) OpenMMLab. All rights reserved. diff --git a/tests/test_models/test_losses/test_ce_loss.py b/tests/test_models/test_losses/test_ce_loss.py index 9619b60a91..73217ec8c0 100644 --- a/tests/test_models/test_losses/test_ce_loss.py +++ b/tests/test_models/test_losses/test_ce_loss.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import pytest import torch diff --git a/tests/test_models/test_losses/test_dice_loss.py b/tests/test_models/test_losses/test_dice_loss.py index 01ded6fe74..05d1b1e053 100644 --- a/tests/test_models/test_losses/test_dice_loss.py +++ b/tests/test_models/test_losses/test_dice_loss.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch diff --git a/tests/test_models/test_losses/test_lovasz_loss.py b/tests/test_models/test_losses/test_lovasz_loss.py index 6fac4309a9..e2dee81de8 100644 --- a/tests/test_models/test_losses/test_lovasz_loss.py +++ b/tests/test_models/test_losses/test_lovasz_loss.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import pytest import torch diff --git a/tests/test_models/test_losses/test_utils.py b/tests/test_models/test_losses/test_utils.py index a5251e49fb..1d94387ed7 100644 --- a/tests/test_models/test_losses/test_utils.py +++ b/tests/test_models/test_losses/test_utils.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import numpy as np import pytest import torch diff --git a/tests/test_models/test_necks/__init__.py b/tests/test_models/test_necks/__init__.py index e69de29bb2..ef101fec61 100644 --- a/tests/test_models/test_necks/__init__.py +++ b/tests/test_models/test_necks/__init__.py @@ -0,0 +1 @@ +# Copyright (c) OpenMMLab. All rights reserved. diff --git a/tests/test_models/test_necks/test_fpn.py b/tests/test_models/test_necks/test_fpn.py index 8fc968450f..f7b8e414b3 100644 --- a/tests/test_models/test_necks/test_fpn.py +++ b/tests/test_models/test_necks/test_fpn.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch from mmseg.models import FPN diff --git a/tests/test_models/test_necks/test_mla_neck.py b/tests/test_models/test_necks/test_mla_neck.py index 75f0401685..a20c132d05 100644 --- a/tests/test_models/test_necks/test_mla_neck.py +++ b/tests/test_models/test_necks/test_mla_neck.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch from mmseg.models import MLANeck diff --git a/tests/test_models/test_necks/test_multilevel_neck.py b/tests/test_models/test_necks/test_multilevel_neck.py index c5a567d988..641a212c22 100644 --- a/tests/test_models/test_necks/test_multilevel_neck.py +++ b/tests/test_models/test_necks/test_multilevel_neck.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch from mmseg.models import MultiLevelNeck diff --git a/tests/test_models/test_segmentors/__init__.py b/tests/test_models/test_segmentors/__init__.py index e69de29bb2..ef101fec61 100644 --- a/tests/test_models/test_segmentors/__init__.py +++ b/tests/test_models/test_segmentors/__init__.py @@ -0,0 +1 @@ +# Copyright (c) OpenMMLab. All rights reserved. diff --git a/tests/test_models/test_segmentors/test_cascade_encoder_decoder.py b/tests/test_models/test_segmentors/test_cascade_encoder_decoder.py index 142e81f122..07ad5c3fbb 100644 --- a/tests/test_models/test_segmentors/test_cascade_encoder_decoder.py +++ b/tests/test_models/test_segmentors/test_cascade_encoder_decoder.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from mmcv import ConfigDict from mmseg.models import build_segmentor diff --git a/tests/test_models/test_segmentors/test_encoder_decoder.py b/tests/test_models/test_segmentors/test_encoder_decoder.py index f40c4ea473..4ed143727d 100644 --- a/tests/test_models/test_segmentors/test_encoder_decoder.py +++ b/tests/test_models/test_segmentors/test_encoder_decoder.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from mmcv import ConfigDict from mmseg.models import build_segmentor diff --git a/tests/test_models/test_segmentors/utils.py b/tests/test_models/test_segmentors/utils.py index cfe9a17da2..0f51a4b1f5 100644 --- a/tests/test_models/test_segmentors/utils.py +++ b/tests/test_models/test_segmentors/utils.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import numpy as np import torch from torch import nn diff --git a/tests/test_sampler.py b/tests/test_sampler.py index 3c79c16277..8e613a5a1f 100644 --- a/tests/test_sampler.py +++ b/tests/test_sampler.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import pytest import torch diff --git a/tools/analyze_logs.py b/tools/analyze_logs.py index fb017efaaf..8c62a34fc8 100644 --- a/tools/analyze_logs.py +++ b/tools/analyze_logs.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. """Modified from https://github.com/open- mmlab/mmdetection/blob/master/tools/analysis_tools/analyze_logs.py.""" import argparse diff --git a/tools/benchmark.py b/tools/benchmark.py index 0a61793585..d72980ebde 100644 --- a/tools/benchmark.py +++ b/tools/benchmark.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import argparse import time diff --git a/tools/convert_datasets/chase_db1.py b/tools/convert_datasets/chase_db1.py index 56bb210edb..580e6e7ec5 100644 --- a/tools/convert_datasets/chase_db1.py +++ b/tools/convert_datasets/chase_db1.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import argparse import os import os.path as osp diff --git a/tools/convert_datasets/cityscapes.py b/tools/convert_datasets/cityscapes.py index 99d05b41f5..17b6168478 100644 --- a/tools/convert_datasets/cityscapes.py +++ b/tools/convert_datasets/cityscapes.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import argparse import os.path as osp diff --git a/tools/convert_datasets/drive.py b/tools/convert_datasets/drive.py index 891f06f725..f547579b2d 100644 --- a/tools/convert_datasets/drive.py +++ b/tools/convert_datasets/drive.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import argparse import os import os.path as osp diff --git a/tools/convert_datasets/hrf.py b/tools/convert_datasets/hrf.py index bdeb6e7e56..5e016e3cae 100644 --- a/tools/convert_datasets/hrf.py +++ b/tools/convert_datasets/hrf.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import argparse import os import os.path as osp diff --git a/tools/convert_datasets/pascal_context.py b/tools/convert_datasets/pascal_context.py index dc49ab7ad8..03b79d5186 100644 --- a/tools/convert_datasets/pascal_context.py +++ b/tools/convert_datasets/pascal_context.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import argparse import os.path as osp from functools import partial diff --git a/tools/convert_datasets/stare.py b/tools/convert_datasets/stare.py index 6238d62f64..29b78c0003 100644 --- a/tools/convert_datasets/stare.py +++ b/tools/convert_datasets/stare.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import argparse import gzip import os diff --git a/tools/convert_datasets/voc_aug.py b/tools/convert_datasets/voc_aug.py index 942746351b..1d42c27047 100644 --- a/tools/convert_datasets/voc_aug.py +++ b/tools/convert_datasets/voc_aug.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import argparse import os.path as osp from functools import partial diff --git a/tools/deploy_test.py b/tools/deploy_test.py index 56fd61ca88..6e709b8c90 100644 --- a/tools/deploy_test.py +++ b/tools/deploy_test.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import argparse import os import os.path as osp diff --git a/tools/get_flops.py b/tools/get_flops.py index bc98c52525..83dea0a030 100644 --- a/tools/get_flops.py +++ b/tools/get_flops.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import argparse from mmcv import Config diff --git a/tools/mmseg2torchserve.py b/tools/mmseg2torchserve.py index 373f5cae16..9063634845 100644 --- a/tools/mmseg2torchserve.py +++ b/tools/mmseg2torchserve.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from argparse import ArgumentParser, Namespace from pathlib import Path from tempfile import TemporaryDirectory diff --git a/tools/mmseg_handler.py b/tools/mmseg_handler.py index b0cb248866..7fabd46b9c 100644 --- a/tools/mmseg_handler.py +++ b/tools/mmseg_handler.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import base64 import io import os diff --git a/tools/model_converters/mit_convert.py b/tools/model_converters/mit_convert.py index c914c4edba..125345c04a 100644 --- a/tools/model_converters/mit_convert.py +++ b/tools/model_converters/mit_convert.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import argparse from collections import OrderedDict diff --git a/tools/onnx2tensorrt.py b/tools/onnx2tensorrt.py index 203ae82a88..1cda22249f 100644 --- a/tools/onnx2tensorrt.py +++ b/tools/onnx2tensorrt.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import argparse import os import os.path as osp diff --git a/tools/print_config.py b/tools/print_config.py index 88984e420b..fb978c9b6e 100644 --- a/tools/print_config.py +++ b/tools/print_config.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import argparse from mmcv import Config, DictAction diff --git a/tools/publish_model.py b/tools/publish_model.py index a049f17674..e2660578af 100644 --- a/tools/publish_model.py +++ b/tools/publish_model.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import argparse import subprocess diff --git a/tools/pytorch2onnx.py b/tools/pytorch2onnx.py index 17f10932a6..1751a7b750 100644 --- a/tools/pytorch2onnx.py +++ b/tools/pytorch2onnx.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import argparse from functools import partial diff --git a/tools/pytorch2torchscript.py b/tools/pytorch2torchscript.py index 206c4bb457..fad6fd142f 100644 --- a/tools/pytorch2torchscript.py +++ b/tools/pytorch2torchscript.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import argparse import mmcv diff --git a/tools/test.py b/tools/test.py index ab2bd60175..87bd3659d6 100644 --- a/tools/test.py +++ b/tools/test.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import argparse import os diff --git a/tools/train.py b/tools/train.py index 2d11df37ba..490b3ff5f8 100644 --- a/tools/train.py +++ b/tools/train.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import argparse import copy import os From ebf3c084ace8e9ab238685e3fa473002bd5c7b9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=98=95=E8=BE=B0?= Date: Wed, 18 Aug 2021 09:42:42 +0800 Subject: [PATCH 215/706] [Tools] Add vit/swin/mit convert weight scripts (#783) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * init scripts * update markdown * update markdown * add docs * delete mit converter and use torch load function * rename segformer readme * update doc * modify doc * 更新中文文档 * Update useful_tools.md * Update useful_tools.md * modify doc * update segformer.yml --- configs/segformer/{readme.md => README.md} | 18 +-- configs/segformer/segformer.yml | 160 +++++++++++++++++++++ docs/useful_tools.md | 30 ++++ docs_zh-CN/useful_tools.md | 30 ++++ model-index.yml | 1 + tools/model_converters/mit_convert.py | 4 +- tools/model_converters/swin2mmseg.py | 83 +++++++++++ tools/model_converters/vit2mmseg.py | 66 +++++++++ 8 files changed, 381 insertions(+), 11 deletions(-) rename configs/segformer/{readme.md => README.md} (91%) create mode 100644 configs/segformer/segformer.yml create mode 100644 tools/model_converters/swin2mmseg.py create mode 100644 tools/model_converters/vit2mmseg.py diff --git a/configs/segformer/readme.md b/configs/segformer/README.md similarity index 91% rename from configs/segformer/readme.md rename to configs/segformer/README.md index cf2fece512..7a9a5ef742 100644 --- a/configs/segformer/readme.md +++ b/configs/segformer/README.md @@ -29,15 +29,15 @@ Evaluation with AlignedResize: -| Method | Backbone | Crop Size | Lr schd | mIoU | mIoU(ms+flip) | -| ------ | -------- | --------- | ------: | ---: | ------------- | -|Segformer | MIT-B0 | 512x512 | 160000 | 38.1 | 38.57 | -|Segformer | MIT-B1 | 512x512 | 160000 | 41.64 | 42.76 | -|Segformer | MIT-B2 | 512x512 | 160000 | 46.53 | 47.49 | -|Segformer | MIT-B3 | 512x512 | 160000 | 48.46 | 49.14 | -|Segformer | MIT-B4 | 512x512 | 160000 | 49.34 | 50.29 | -|Segformer | MIT-B5 | 512x512 | 160000 | 50.08 | 50.72 | -|Segformer | MIT-B5 | 640x640 | 160000 | 50.58 | 50.8 | + | Method | Backbone | Crop Size | Lr schd | mIoU | mIoU(ms+flip) | + | ------ | -------- | --------- | ------: | ---: | ------------- | + |Segformer | MIT-B0 | 512x512 | 160000 | 38.1 | 38.57 | + |Segformer | MIT-B1 | 512x512 | 160000 | 41.64 | 42.76 | + |Segformer | MIT-B2 | 512x512 | 160000 | 46.53 | 47.49 | + |Segformer | MIT-B3 | 512x512 | 160000 | 48.46 | 49.14 | + |Segformer | MIT-B4 | 512x512 | 160000 | 49.34 | 50.29 | + |Segformer | MIT-B5 | 512x512 | 160000 | 50.08 | 50.72 | + |Segformer | MIT-B5 | 640x640 | 160000 | 50.58 | 50.8 | We replace `AlignedResize` in original implementatiuon to `Resize + ResizeToMultiple`. If you want to test by using `AlignedResize`, you can change the dataset pipeline like this: diff --git a/configs/segformer/segformer.yml b/configs/segformer/segformer.yml new file mode 100644 index 0000000000..f945ecc714 --- /dev/null +++ b/configs/segformer/segformer.yml @@ -0,0 +1,160 @@ +Collections: +- Metadata: + Training Data: + - ADE20k + Name: segformer +Models: +- Config: configs/segformer/segformer_mit-b0_512x512_160k_ade20k.py + In Collection: segformer + Metadata: + backbone: MIT-B0 + crop size: (512,512) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (512,512) + value: 19.49 + lr schd: 160000 + memory (GB): 2.1 + Name: segformer_mit-b0_512x512_160k_ade20k + Results: + Dataset: ADE20k + Metrics: + mIoU: 37.41 + mIoU(ms+flip): 38.34 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b0_512x512_160k_ade20k/segformer_mit-b0_512x512_160k_ade20k_20210726_101530-8ffa8fda.pth +- Config: configs/segformer/segformer_mit-b1_512x512_160k_ade20k.py + In Collection: segformer + Metadata: + backbone: MIT-B1 + crop size: (512,512) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (512,512) + value: 20.98 + lr schd: 160000 + memory (GB): 2.6 + Name: segformer_mit-b1_512x512_160k_ade20k + Results: + Dataset: ADE20k + Metrics: + mIoU: 40.97 + mIoU(ms+flip): 42.54 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b1_512x512_160k_ade20k/segformer_mit-b1_512x512_160k_ade20k_20210726_112106-d70e859d.pth +- Config: configs/segformer/segformer_mit-b2_512x512_160k_ade20k.py + In Collection: segformer + Metadata: + backbone: MIT-B2 + crop size: (512,512) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (512,512) + value: 32.38 + lr schd: 160000 + memory (GB): 3.6 + Name: segformer_mit-b2_512x512_160k_ade20k + Results: + Dataset: ADE20k + Metrics: + mIoU: 45.58 + mIoU(ms+flip): 47.03 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b2_512x512_160k_ade20k/segformer_mit-b2_512x512_160k_ade20k_20210726_112103-cbd414ac.pth +- Config: configs/segformer/segformer_mit-b3_512x512_160k_ade20k.py + In Collection: segformer + Metadata: + backbone: MIT-B3 + crop size: (512,512) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (512,512) + value: 45.23 + lr schd: 160000 + memory (GB): 4.8 + Name: segformer_mit-b3_512x512_160k_ade20k + Results: + Dataset: ADE20k + Metrics: + mIoU: 47.82 + mIoU(ms+flip): 48.81 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b3_512x512_160k_ade20k/segformer_mit-b3_512x512_160k_ade20k_20210726_081410-962b98d2.pth +- Config: configs/segformer/segformer_mit-b4_512x512_160k_ade20k.py + In Collection: segformer + Metadata: + backbone: MIT-B4 + crop size: (512,512) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (512,512) + value: 64.72 + lr schd: 160000 + memory (GB): 6.1 + Name: segformer_mit-b4_512x512_160k_ade20k + Results: + Dataset: ADE20k + Metrics: + mIoU: 48.46 + mIoU(ms+flip): 49.76 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b4_512x512_160k_ade20k/segformer_mit-b4_512x512_160k_ade20k_20210728_183055-7f509d7d.pth +- Config: configs/segformer/segformer_mit-b5_512x512_160k_ade20k.py + In Collection: segformer + Metadata: + backbone: MIT-B5 + crop size: (512,512) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (512,512) + value: 84.1 + lr schd: 160000 + memory (GB): 7.2 + Name: segformer_mit-b5_512x512_160k_ade20k + Results: + Dataset: ADE20k + Metrics: + mIoU: 49.13 + mIoU(ms+flip): 50.22 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b5_512x512_160k_ade20k/segformer_mit-b5_512x512_160k_ade20k_20210726_145235-94cedf59.pth +- Config: configs/segformer/segformer_mit-b5_640x640_160k_ade20k.py + In Collection: segformer + Metadata: + backbone: MIT-B5 + crop size: (640,640) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (640,640) + value: 88.5 + lr schd: 160000 + memory (GB): 11.5 + Name: segformer_mit-b5_640x640_160k_ade20k + Results: + Dataset: ADE20k + Metrics: + mIoU: 49.62 + mIoU(ms+flip): 50.36 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b5_640x640_160k_ade20k/segformer_mit-b5_640x640_160k_ade20k_20210801_121243-41d2845b.pth diff --git a/docs/useful_tools.md b/docs/useful_tools.md index e11d9322ed..b18fd89908 100644 --- a/docs/useful_tools.md +++ b/docs/useful_tools.md @@ -255,6 +255,36 @@ Examples: python tools/analyze_logs.py log.json --keys loss --legend loss ``` +### Model conversion + +`tools/model_converters/` provide several scripts to convert pretrain models released by other repos to MMSegmentation style. + +#### ViT Swin MiT Transformer Models + +- ViT + + `tools/model_converters/vit2mmseg.py` convert keys in timm pretrained vit models to MMSegmentation style. + + ```shell + python tools/model_converters/vit2mmseg.py ${SRC} ${DST} + ``` + +- Swin + + `tools/model_converters/swin2mmseg.py` convert keys in official pretrained swin models to MMSegmentation style. + + ```shell + python tools/model_converters/swin2mmseg.py ${SRC} ${DST} + ``` + +- SegFormer + + `tools/model_converters/mit2mmseg.py` convert keys in official pretrained mit models to MMSegmentation style. + + ```shell + python tools/model_converters/mit2mmseg.py ${SRC} ${DST} + ``` + ## Model Serving In order to serve an `MMSegmentation` model with [`TorchServe`](https://pytorch.org/serve/), you can follow the steps: diff --git a/docs_zh-CN/useful_tools.md b/docs_zh-CN/useful_tools.md index 63bc8eeaeb..f688f18916 100644 --- a/docs_zh-CN/useful_tools.md +++ b/docs_zh-CN/useful_tools.md @@ -259,6 +259,36 @@ python tools/analyze_logs.py xxx.log.json [--keys ${KEYS}] [--legend ${LEGEND}] python tools/analyze_logs.py log.json --keys loss --legend loss ``` +### 转换其他仓库的权重 + +`tools/model_converters/` 提供了若干个预训练权重转换脚本,支持将其他仓库的预训练权重的 key 转换为与 MMSegmentation 相匹配的 key。 + +#### ViT Swin MiT Transformer 模型 + +- ViT + +`tools/model_converters/vit2mmseg.py` 将 timm 预训练模型转换到 MMSegmentation。 + + ```shell + python tools/model_converters/vit2mmseg.py ${SRC} ${DST} + ``` + +- Swin + + `tools/model_converters/swin2mmseg.py` 将官方预训练模型转换到 MMSegmentation。 + + ```shell + python tools/model_converters/swin2mmseg.py ${SRC} ${DST} + ``` + +- SegFormer + + `tools/model_converters/mit2mmseg.py` 将官方预训练模型转换到 MMSegmentation。 + + ```shell + python tools/model_converters/mit2mmseg.py ${SRC} ${DST} + ``` + ## 模型服务 为了用 [`TorchServe`](https://pytorch.org/serve/) 服务 `MMSegmentation` 的模型 , 您可以遵循如下流程: diff --git a/model-index.yml b/model-index.yml index f834162e26..1e39e30197 100644 --- a/model-index.yml +++ b/model-index.yml @@ -23,6 +23,7 @@ Import: - configs/psanet/psanet.yml - configs/pspnet/pspnet.yml - configs/resnest/resnest.yml +- configs/segformer/segformer.yml - configs/sem_fpn/sem_fpn.yml - configs/setr/setr.yml - configs/swin/swin.yml diff --git a/tools/model_converters/mit_convert.py b/tools/model_converters/mit_convert.py index 125345c04a..5138e55c6e 100644 --- a/tools/model_converters/mit_convert.py +++ b/tools/model_converters/mit_convert.py @@ -5,7 +5,7 @@ import torch -def mit_convert(ckpt): +def convert_mit(ckpt): new_ckpt = OrderedDict() # Process the concat between q linear weights and kv linear weights for k, v in ckpt.items(): @@ -73,5 +73,5 @@ def parse_args(): ckpt = torch.load(src_path, map_location='cpu') - ckpt = mit_convert(ckpt) + ckpt = convert_mit(ckpt) torch.save(ckpt, dst_path) diff --git a/tools/model_converters/swin2mmseg.py b/tools/model_converters/swin2mmseg.py new file mode 100644 index 0000000000..5a720f3768 --- /dev/null +++ b/tools/model_converters/swin2mmseg.py @@ -0,0 +1,83 @@ +import argparse +from collections import OrderedDict + +import torch + + +def convert_swin(ckpt): + new_ckpt = OrderedDict() + + def correct_unfold_reduction_order(x): + out_channel, in_channel = x.shape + x = x.reshape(out_channel, 4, in_channel // 4) + x = x[:, [0, 2, 1, 3], :].transpose(1, + 2).reshape(out_channel, in_channel) + return x + + def correct_unfold_norm_order(x): + in_channel = x.shape[0] + x = x.reshape(4, in_channel // 4) + x = x[[0, 2, 1, 3], :].transpose(0, 1).reshape(in_channel) + return x + + for k, v in ckpt.items(): + if k.startswith('head'): + continue + elif k.startswith('layers'): + new_v = v + if 'attn.' in k: + new_k = k.replace('attn.', 'attn.w_msa.') + elif 'mlp.' in k: + if 'mlp.fc1.' in k: + new_k = k.replace('mlp.fc1.', 'ffn.layers.0.0.') + elif 'mlp.fc2.' in k: + new_k = k.replace('mlp.fc2.', 'ffn.layers.1.') + else: + new_k = k.replace('mlp.', 'ffn.') + elif 'downsample' in k: + new_k = k + if 'reduction.' in k: + new_v = correct_unfold_reduction_order(v) + elif 'norm.' in k: + new_v = correct_unfold_norm_order(v) + else: + new_k = k + new_k = new_k.replace('layers', 'stages', 1) + elif k.startswith('patch_embed'): + new_v = v + if 'proj' in k: + new_k = k.replace('proj', 'projection') + else: + new_k = k + else: + new_v = v + new_k = k + + new_ckpt[new_k] = new_v + + return new_ckpt + + +def main(): + parser = argparse.ArgumentParser( + description='Convert keys in official pretrained swin models to' + 'MMSegmentation style.') + parser.add_argument('src', help='src segmentation model path') + # The dst path must be a full path of the new checkpoint. + parser.add_argument('dst', help='save path') + args = parser.parse_args() + + checkpoint = torch.load(args.src, map_location='cpu') + if 'state_dict' in checkpoint: + state_dict = checkpoint['state_dict'] + elif 'model' in checkpoint: + state_dict = checkpoint['model'] + else: + state_dict = checkpoint + weight = convert_swin(state_dict) + with open(args.dst, 'wb') as f: + torch.save(weight, f) + + +if __name__ == '__main__': + main() diff --git a/tools/model_converters/vit2mmseg.py b/tools/model_converters/vit2mmseg.py new file mode 100644 index 0000000000..176c03a530 --- /dev/null +++ b/tools/model_converters/vit2mmseg.py @@ -0,0 +1,66 @@ +import argparse +from collections import OrderedDict + +import torch + + +def convert_vit(ckpt): + + new_ckpt = OrderedDict() + + for k, v in ckpt.items(): + if k.startswith('head'): + continue + if k.startswith('norm'): + new_k = k.replace('norm.', 'ln1.') + elif k.startswith('patch_embed'): + if 'proj' in k: + new_k = k.replace('proj', 'projection') + else: + new_k = k + elif k.startswith('blocks'): + if 'norm' in k: + new_k = k.replace('norm', 'ln') + elif 'mlp.fc1' in k: + new_k = k.replace('mlp.fc1', 'ffn.layers.0.0') + elif 'mlp.fc2' in k: + new_k = k.replace('mlp.fc2', 'ffn.layers.1') + elif 'attn.qkv' in k: + new_k = k.replace('attn.qkv.', 'attn.attn.in_proj_') + elif 'attn.proj' in k: + new_k = k.replace('attn.proj', 'attn.attn.out_proj') + else: + new_k = k + new_k = new_k.replace('blocks.', 'layers.') + else: + new_k = k + new_ckpt[new_k] = v + + return new_ckpt + + +def main(): + parser = argparse.ArgumentParser( + description='Convert keys in timm pretrained vit models to ' + 'MMSegmentation style.') + parser.add_argument('src', help='src segmentation model path') + # The dst path must be a full path of the new checkpoint. + parser.add_argument('dst', help='save path') + args = parser.parse_args() + + checkpoint = torch.load(args.src, map_location='cpu') + if 'state_dict' in checkpoint: + # timm checkpoint + state_dict = checkpoint['state_dict'] + elif 'model' in checkpoint: + # deit checkpoint + state_dict = checkpoint['model'] + else: + state_dict = checkpoint + weight = convert_vit(state_dict) + with open(args.dst, 'wb') as f: + torch.save(weight, f) + + +if __name__ == '__main__': + main() From 6dc3f7bd7f5395ebbf7ec6bc2bf76c3b47862937 Mon Sep 17 00:00:00 2001 From: uni19 Date: Fri, 20 Aug 2021 02:42:21 +0800 Subject: [PATCH 216/706] ensure items in dataset have the same order across multi machine (#780) --- mmseg/datasets/custom.py | 1 + 1 file changed, 1 insertion(+) diff --git a/mmseg/datasets/custom.py b/mmseg/datasets/custom.py index 719ca013f4..a86fabb972 100644 --- a/mmseg/datasets/custom.py +++ b/mmseg/datasets/custom.py @@ -152,6 +152,7 @@ def load_annotations(self, img_dir, img_suffix, ann_dir, seg_map_suffix, seg_map = img.replace(img_suffix, seg_map_suffix) img_info['ann'] = dict(seg_map=seg_map) img_infos.append(img_info) + img_infos = sorted(img_infos, key=lambda x: x['filename']) print_log(f'Loaded {len(img_infos)} images', logger=get_root_logger()) return img_infos From 4e9c26bbbcbb65faeb5b19425df3b4658e23c0d6 Mon Sep 17 00:00:00 2001 From: sennnnn <58427300+sennnnn@users.noreply.github.com> Date: Fri, 20 Aug 2021 11:44:58 +0800 Subject: [PATCH 217/706] [Refactor] Support progressive test with fewer memory cost (#709) * Support progressive test with fewer memory cost. * Temp code * Using processor to refactor evaluation workflow. * refactor eval hook. * Fix process bar. * Fix middle save argument. * Modify some variable name of dataset evaluate api. * Modify some viriable name of eval hook. * Fix some priority bugs of eval hook. * Depreciated efficient_test. * Fix training progress blocked by eval hook. * Depreciated old test api. * Fix test api error. * Modify outer api. * Build a sampler test api. * TODO: Refactor format_results. * Modify variable names. * Fix num_classes bug. * Fix sampler index bug. * Fix grammaly bug. * Support batch sampler. * More readable test api. * Remove some command arg and fix eval hook bug. * Support format-only arg. * Modify format_results of datasets. * Modify tool which use test apis. * support cityscapes eval * fixed cityscapes * 1. Add comments for batch_sampler; 2. Keep eval hook api same and add deprecated warning; 3. Add doc string for dataset.pre_eval; * Add efficient_test doc string. * Modify test tool to compat old version. * Modify eval hook to compat with old version. * Modify test api to compat old version api. * Sampler explanation. * update warning * Modify deploy_test.py * compatible with old output, add efficient test back * clear logic of exclusive * Warning about efficient_test. * Modify format_results save folder. * Fix bugs of format_results. * Modify deploy_test.py. * Update doc * Fix deploy test bugs. * Fix custom dataset unit tests. * Fix dataset unit tests. * Fix eval hook unit tests. * Fix some imcompatible. * Add pre_eval argument for eval hooks. * Update eval hook doc string. * Make pre_eval false in default. * Add unit tests for dataset format_results. * Fix some comments and bc-breaking bug. * Fix pre_eval set cfg field. * Remove redundant codes. Co-authored-by: Jiarui XU --- configs/_base_/schedules/schedule_160k.py | 2 +- configs/_base_/schedules/schedule_20k.py | 2 +- configs/_base_/schedules/schedule_40k.py | 2 +- configs/_base_/schedules/schedule_80k.py | 2 +- docs/inference.md | 6 +- docs_zh-CN/inference.md | 12 +- mmseg/apis/test.py | 136 +++++++++++++----- mmseg/core/evaluation/__init__.py | 6 +- mmseg/core/evaluation/eval_hooks.py | 46 ++++-- mmseg/core/evaluation/metrics.py | 92 ++++++++++-- mmseg/datasets/ade.py | 47 +++--- mmseg/datasets/cityscapes.py | 63 ++++---- mmseg/datasets/custom.py | 109 +++++++++----- ...kfurt_000000_000294_gtFine_instanceIds.png | Bin 0 -> 1912 bytes ...rankfurt_000000_000294_gtFine_labelIds.png | Bin 0 -> 1578 bytes ...urt_000000_000294_gtFine_labelTrainIds.png | Bin 0 -> 1500 bytes .../frankfurt_000000_000294_leftImg8bit.png | Bin 0 -> 51662 bytes tests/test_apis/test_single_gpu.py | 72 ++++++++++ tests/test_data/test_dataset.py | 104 +++++++++++++- tests/test_eval_hook.py | 14 +- tools/deploy_test.py | 58 ++++++-- tools/test.py | 70 +++++++-- 22 files changed, 652 insertions(+), 191 deletions(-) create mode 100644 tests/data/pseudo_cityscapes_dataset/gtFine/frankfurt_000000_000294_gtFine_instanceIds.png create mode 100644 tests/data/pseudo_cityscapes_dataset/gtFine/frankfurt_000000_000294_gtFine_labelIds.png create mode 100644 tests/data/pseudo_cityscapes_dataset/gtFine/frankfurt_000000_000294_gtFine_labelTrainIds.png create mode 100644 tests/data/pseudo_cityscapes_dataset/leftImg8bit/frankfurt_000000_000294_leftImg8bit.png create mode 100644 tests/test_apis/test_single_gpu.py diff --git a/configs/_base_/schedules/schedule_160k.py b/configs/_base_/schedules/schedule_160k.py index 52603890b1..39630f215b 100644 --- a/configs/_base_/schedules/schedule_160k.py +++ b/configs/_base_/schedules/schedule_160k.py @@ -6,4 +6,4 @@ # runtime settings runner = dict(type='IterBasedRunner', max_iters=160000) checkpoint_config = dict(by_epoch=False, interval=16000) -evaluation = dict(interval=16000, metric='mIoU') +evaluation = dict(interval=16000, metric='mIoU', pre_eval=True) diff --git a/configs/_base_/schedules/schedule_20k.py b/configs/_base_/schedules/schedule_20k.py index bf780a1b6f..73c7021972 100644 --- a/configs/_base_/schedules/schedule_20k.py +++ b/configs/_base_/schedules/schedule_20k.py @@ -6,4 +6,4 @@ # runtime settings runner = dict(type='IterBasedRunner', max_iters=20000) checkpoint_config = dict(by_epoch=False, interval=2000) -evaluation = dict(interval=2000, metric='mIoU') +evaluation = dict(interval=2000, metric='mIoU', pre_eval=True) diff --git a/configs/_base_/schedules/schedule_40k.py b/configs/_base_/schedules/schedule_40k.py index cdbf841abc..d2c5023259 100644 --- a/configs/_base_/schedules/schedule_40k.py +++ b/configs/_base_/schedules/schedule_40k.py @@ -6,4 +6,4 @@ # runtime settings runner = dict(type='IterBasedRunner', max_iters=40000) checkpoint_config = dict(by_epoch=False, interval=4000) -evaluation = dict(interval=4000, metric='mIoU') +evaluation = dict(interval=4000, metric='mIoU', pre_eval=True) diff --git a/configs/_base_/schedules/schedule_80k.py b/configs/_base_/schedules/schedule_80k.py index c190cee6bd..8365a878e9 100644 --- a/configs/_base_/schedules/schedule_80k.py +++ b/configs/_base_/schedules/schedule_80k.py @@ -6,4 +6,4 @@ # runtime settings runner = dict(type='IterBasedRunner', max_iters=80000) checkpoint_config = dict(by_epoch=False, interval=8000) -evaluation = dict(interval=8000, metric='mIoU') +evaluation = dict(interval=8000, metric='mIoU', pre_eval=True) diff --git a/docs/inference.md b/docs/inference.md index d7bc21b65a..65f1e4602b 100644 --- a/docs/inference.md +++ b/docs/inference.md @@ -21,11 +21,11 @@ python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--out ${RESULT_FILE}] [- Optional arguments: -- `RESULT_FILE`: Filename of the output results in pickle format. If not specified, the results will not be saved to a file. +- `RESULT_FILE`: Filename of the output results in pickle format. If not specified, the results will not be saved to a file. (After mmseg v0.17, the output results become pre-evaluation results or format result paths) - `EVAL_METRICS`: Items to be evaluated on the results. Allowed values depend on the dataset, e.g., `mIoU` is available for all dataset. Cityscapes could be evaluated by `cityscapes` as well as standard `mIoU` metrics. - `--show`: If specified, segmentation results will be plotted on the images and shown in a new window. It is only applicable to single GPU testing and used for debugging and visualization. Please make sure that GUI is available in your environment, otherwise you may encounter the error like `cannot connect to X server`. - `--show-dir`: If specified, segmentation results will be plotted on the images and saved to the specified directory. It is only applicable to single GPU testing and used for debugging and visualization. You do NOT need a GUI available in your environment for using this option. -- `--eval-options`: Optional parameters during evaluation. When `efficient_test=True`, it will save intermediate results to local files to save CPU memory. Make sure that you have enough local storage space (more than 20GB). +- `--eval-options`: Optional parameters for `dataset.format_results` and `dataset.evaluate` during evaluation. When `efficient_test=True`, it will save intermediate results to local files to save CPU memory. Make sure that you have enough local storage space (more than 20GB). (`efficient_test` argument does not have effect after mmseg v0.17, we use a progressive mode to evaluation and format results which can largely save memory cost and evaluation time.) Examples: @@ -98,4 +98,4 @@ Assume that you have already downloaded the checkpoints to the directory `checkp --eval mIoU ``` - Using ```pmap``` to view CPU memory footprint, it used 2.25GB CPU memory with ```efficient_test=True``` and 11.06GB CPU memory with ```efficient_test=False``` . This optional parameter can save a lot of memory. + Using ```pmap``` to view CPU memory footprint, it used 2.25GB CPU memory with ```efficient_test=True``` and 11.06GB CPU memory with ```efficient_test=False``` . This optional parameter can save a lot of memory. (After mmseg v0.17, efficient_test has not effect and we use a progressive mode to evaluation and format results efficiently by default.) diff --git a/docs_zh-CN/inference.md b/docs_zh-CN/inference.md index 85d9ff0857..7d14bb980d 100644 --- a/docs_zh-CN/inference.md +++ b/docs_zh-CN/inference.md @@ -20,11 +20,11 @@ python tools/test.py ${配置文件} ${检查点文件} [--out ${结果文件}] 可选参数: -- `RESULT_FILE`: pickle 格式的输出结果的文件名,如果不专门指定,结果将不会被专门保存成文件 -- `EVAL_METRICS`: 在结果里将被评估的指标,这主要取决于数据集, `mIoU` 对于所有数据集都可获得,像 Cityscapes 数据集可以通过 `cityscapes` 命令来专门评估,就像标准的 `mIoU`一样 -- `--show`: 如果被指定,分割结果将会在一张图像里画出来并且在另一个窗口展示,它仅仅是用来调试与可视化,并且仅针对单卡 GPU 测试,请确认 GUI 在您的环境里可用,否则您也许会遇到报错 `cannot connect to X server` -- `--show-dir`: 如果被指定,分割结果将会在一张图像里画出来并且保存在指定文件夹里,它仅仅是用来调试与可视化,并且仅针对单卡GPU测试,使用该参数时,您的环境不需要 GUI -- `--eval-options`: 评估时的可选参数,当设置 `efficient_test=True` 时,它将会保存中间结果至本地文件里以节约 CPU 内存,请确认您本地硬盘有足够的存储空间(大于20GB) +- `RESULT_FILE`: pickle 格式的输出结果的文件名,如果不专门指定,结果将不会被专门保存成文件。(MMseg v0.17 之后,args.out 将只会保存评估时的中间结果或者是分割图的保存路径。) +- `EVAL_METRICS`: 在结果里将被评估的指标。这主要取决于数据集, `mIoU` 对于所有数据集都可获得,像 Cityscapes 数据集可以通过 `cityscapes` 命令来专门评估,就像标准的 `mIoU`一样。 +- `--show`: 如果被指定,分割结果将会在一张图像里画出来并且在另一个窗口展示。它仅仅是用来调试与可视化,并且仅针对单卡 GPU 测试。请确认 GUI 在您的环境里可用,否则您也许会遇到报错 `cannot connect to X server` +- `--show-dir`: 如果被指定,分割结果将会在一张图像里画出来并且保存在指定文件夹里。它仅仅是用来调试与可视化,并且仅针对单卡GPU测试。使用该参数时,您的环境不需要 GUI。 +- `--eval-options`: 评估时的可选参数,当设置 `efficient_test=True` 时,它将会保存中间结果至本地文件里以节约 CPU 内存。请确认您本地硬盘有足够的存储空间(大于20GB)。(MMseg v0.17 之后,`efficient_test` 不再生效,我们重构了 test api,通过使用一种渐近式的方式来提升评估和保存结果的效率。) 例子: @@ -96,4 +96,4 @@ python tools/test.py ${配置文件} ${检查点文件} [--out ${结果文件}] --eval mIoU ``` - 使用 ```pmap``` 可查看 CPU 内存情况, ```efficient_test=True``` 会使用约 2.25GB 的 CPU 内存, ```efficient_test=False``` 会使用约 11.06GB 的 CPU 内存。 这个可选参数可以节约很多 CPU 内存。 + 使用 ```pmap``` 可查看 CPU 内存情况, ```efficient_test=True``` 会使用约 2.25GB 的 CPU 内存, ```efficient_test=False``` 会使用约 11.06GB 的 CPU 内存。 这个可选参数可以节约很多 CPU 内存。(MMseg v0.17 之后, `efficient_test` 参数将不再生效, 我们使用了一种渐近的方式来更加有效快速地评估和保存结果。) diff --git a/mmseg/apis/test.py b/mmseg/apis/test.py index fb0bb93619..2b11adfdcb 100644 --- a/mmseg/apis/test.py +++ b/mmseg/apis/test.py @@ -1,6 +1,7 @@ # Copyright (c) OpenMMLab. All rights reserved. import os.path as osp import tempfile +import warnings import mmcv import numpy as np @@ -19,7 +20,6 @@ def np2tmp(array, temp_file_name=None, tmpdir=None): function will generate a file name with tempfile.NamedTemporaryFile to save ndarray. Default: None. tmpdir (str): Temporary directory to save Ndarray files. Default: None. - Returns: str: The numpy file name. """ @@ -36,8 +36,11 @@ def single_gpu_test(model, show=False, out_dir=None, efficient_test=False, - opacity=0.5): - """Test with single GPU. + opacity=0.5, + pre_eval=False, + format_only=False, + format_args={}): + """Test with single GPU by progressive mode. Args: model (nn.Module): Model to be tested. @@ -46,24 +49,60 @@ def single_gpu_test(model, out_dir (str, optional): If specified, the results will be dumped into the directory to save output results. efficient_test (bool): Whether save the results as local numpy files to - save CPU memory during evaluation. Default: False. + save CPU memory during evaluation. Mutually exclusive with + pre_eval and format_results. Default: False. opacity(float): Opacity of painted segmentation map. Default 0.5. Must be in (0, 1] range. + pre_eval (bool): Use dataset.pre_eval() function to generate + pre_results for metric evaluation. Mutually exclusive with + efficient_test and format_results. Default: False. + format_only (bool): Only format result for results commit. + Mutually exclusive with pre_eval and efficient_test. + Default: False. + format_args (dict): The args for format_results. Default: {}. Returns: - list: The prediction results. + list: list of evaluation pre-results or list of save file names. """ + if efficient_test: + warnings.warn( + 'DeprecationWarning: ``efficient_test`` will be deprecated, the ' + 'evaluation is CPU memory friendly with pre_eval=True') + mmcv.mkdir_or_exist('.efficient_test') + # when none of them is set true, return segmentation results as + # a list of np.array. + assert [efficient_test, pre_eval, format_only].count(True) <= 1, \ + '``efficient_test``, ``pre_eval`` and ``format_only`` are mutually ' \ + 'exclusive, only one of them could be true .' model.eval() results = [] dataset = data_loader.dataset prog_bar = mmcv.ProgressBar(len(dataset)) - if efficient_test: - mmcv.mkdir_or_exist('.efficient_test') - for i, data in enumerate(data_loader): + # The pipeline about how the data_loader retrieval samples from dataset: + # sampler -> batch_sampler -> indices + # The indices are passed to dataset_fetcher to get data from dataset. + # data_fetcher -> collate_fn(dataset[index]) -> data_sample + # we use batch_sampler to get correct data idx + loader_indices = data_loader.batch_sampler + + for batch_indices, data in zip(loader_indices, data_loader): with torch.no_grad(): result = model(return_loss=False, **data) + if efficient_test: + result = [np2tmp(_, tmpdir='.efficient_test') for _ in result] + + if format_only: + result = dataset.format_results( + result, indices=batch_indices, **format_args) + if pre_eval: + # TODO: adapt samples_per_gpu > 1. + # only samples_per_gpu=1 valid now + result = dataset.pre_eval(result, indices=batch_indices) + + results.extend(result) + if show or out_dir: img_tensor = data['img'][0] img_metas = data['img_metas'][0].data[0] @@ -90,18 +129,10 @@ def single_gpu_test(model, out_file=out_file, opacity=opacity) - if isinstance(result, list): - if efficient_test: - result = [np2tmp(_, tmpdir='.efficient_test') for _ in result] - results.extend(result) - else: - if efficient_test: - result = np2tmp(result, tmpdir='.efficient_test') - results.append(result) - batch_size = len(result) for _ in range(batch_size): prog_bar.update() + return results @@ -109,8 +140,11 @@ def multi_gpu_test(model, data_loader, tmpdir=None, gpu_collect=False, - efficient_test=False): - """Test model with multiple gpus. + efficient_test=False, + pre_eval=False, + format_only=False, + format_args={}): + """Test model with multiple gpus by progressive mode. This method tests model with multiple gpus and collects the results under two different modes: gpu and cpu modes. By setting 'gpu_collect=True' @@ -123,39 +157,71 @@ def multi_gpu_test(model, data_loader (utils.data.Dataloader): Pytorch data loader. tmpdir (str): Path of directory to save the temporary results from different gpus under cpu mode. The same path is used for efficient - test. + test. Default: None. gpu_collect (bool): Option to use either gpu or cpu to collect results. + Default: False. efficient_test (bool): Whether save the results as local numpy files to - save CPU memory during evaluation. Default: False. + save CPU memory during evaluation. Mutually exclusive with + pre_eval and format_results. Default: False. + pre_eval (bool): Use dataset.pre_eval() function to generate + pre_results for metric evaluation. Mutually exclusive with + efficient_test and format_results. Default: False. + format_only (bool): Only format result for results commit. + Mutually exclusive with pre_eval and efficient_test. + Default: False. + format_args (dict): The args for format_results. Default: {}. Returns: - list: The prediction results. + list: list of evaluation pre-results or list of save file names. """ + if efficient_test: + warnings.warn( + 'DeprecationWarning: ``efficient_test`` will be deprecated, the ' + 'evaluation is CPU memory friendly with pre_eval=True') + mmcv.mkdir_or_exist('.efficient_test') + # when none of them is set true, return segmentation results as + # a list of np.array. + assert [efficient_test, pre_eval, format_only].count(True) <= 1, \ + '``efficient_test``, ``pre_eval`` and ``format_only`` are mutually ' \ + 'exclusive, only one of them could be true .' model.eval() results = [] dataset = data_loader.dataset + # The pipeline about how the data_loader retrieval samples from dataset: + # sampler -> batch_sampler -> indices + # The indices are passed to dataset_fetcher to get data from dataset. + # data_fetcher -> collate_fn(dataset[index]) -> data_sample + # we use batch_sampler to get correct data idx + + # batch_sampler based on DistributedSampler, the indices only point to data + # samples of related machine. + loader_indices = data_loader.batch_sampler + rank, world_size = get_dist_info() if rank == 0: prog_bar = mmcv.ProgressBar(len(dataset)) - if efficient_test: - mmcv.mkdir_or_exist('.efficient_test') - for i, data in enumerate(data_loader): + + for batch_indices, data in zip(loader_indices, data_loader): with torch.no_grad(): result = model(return_loss=False, rescale=True, **data) - if isinstance(result, list): - if efficient_test: - result = [np2tmp(_, tmpdir='.efficient_test') for _ in result] - results.extend(result) - else: - if efficient_test: - result = np2tmp(result, tmpdir='.efficient_test') - results.append(result) + if efficient_test: + result = [np2tmp(_, tmpdir='.efficient_test') for _ in result] + + if format_only: + result = dataset.format_results( + result, indices=batch_indices, **format_args) + if pre_eval: + # TODO: adapt samples_per_gpu > 1. + # only samples_per_gpu=1 valid now + result = dataset.pre_eval(result, indices=batch_indices) + + results.extend(result) if rank == 0: - batch_size = len(result) - for _ in range(batch_size * world_size): + batch_size = len(result) * world_size + for _ in range(batch_size): prog_bar.update() # collect results from all ranks diff --git a/mmseg/core/evaluation/__init__.py b/mmseg/core/evaluation/__init__.py index 237cf24769..3d16d17e54 100644 --- a/mmseg/core/evaluation/__init__.py +++ b/mmseg/core/evaluation/__init__.py @@ -1,9 +1,11 @@ # Copyright (c) OpenMMLab. All rights reserved. from .class_names import get_classes, get_palette from .eval_hooks import DistEvalHook, EvalHook -from .metrics import eval_metrics, mean_dice, mean_fscore, mean_iou +from .metrics import (eval_metrics, intersect_and_union, mean_dice, + mean_fscore, mean_iou, pre_eval_to_metrics) __all__ = [ 'EvalHook', 'DistEvalHook', 'mean_dice', 'mean_iou', 'mean_fscore', - 'eval_metrics', 'get_classes', 'get_palette' + 'eval_metrics', 'get_classes', 'get_palette', 'pre_eval_to_metrics', + 'intersect_and_union' ] diff --git a/mmseg/core/evaluation/eval_hooks.py b/mmseg/core/evaluation/eval_hooks.py index a2f08d7750..952db3b0b4 100644 --- a/mmseg/core/evaluation/eval_hooks.py +++ b/mmseg/core/evaluation/eval_hooks.py @@ -1,5 +1,6 @@ # Copyright (c) OpenMMLab. All rights reserved. import os.path as osp +import warnings import torch.distributed as dist from mmcv.runner import DistEvalHook as _DistEvalHook @@ -16,15 +17,28 @@ class EvalHook(_EvalHook): Default: False. efficient_test (bool): Whether save the results as local numpy files to save CPU memory during evaluation. Default: False. + pre_eval (bool): Whether to use progressive mode to evaluate model. + Default: False. Returns: list: The prediction results. """ greater_keys = ['mIoU', 'mAcc', 'aAcc'] - def __init__(self, *args, by_epoch=False, efficient_test=False, **kwargs): + def __init__(self, + *args, + by_epoch=False, + efficient_test=False, + pre_eval=False, + **kwargs): super().__init__(*args, by_epoch=by_epoch, **kwargs) - self.efficient_test = efficient_test + self.pre_eval = pre_eval + if efficient_test: + warnings.warn( + 'DeprecationWarning: ``efficient_test`` for evaluation hook ' + 'is deprecated, the evaluation hook is CPU memory friendly ' + 'with ``pre_eval=True`` as argument for ``single_gpu_test()`` ' + 'function') def _do_evaluate(self, runner): """perform evaluation and save ckpt.""" @@ -33,10 +47,8 @@ def _do_evaluate(self, runner): from mmseg.apis import single_gpu_test results = single_gpu_test( - runner.model, - self.dataloader, - show=False, - efficient_test=self.efficient_test) + runner.model, self.dataloader, show=False, pre_eval=self.pre_eval) + runner.log_buffer.clear() runner.log_buffer.output['eval_iter_num'] = len(self.dataloader) key_score = self.evaluate(runner, results) if self.save_best: @@ -52,15 +64,28 @@ class DistEvalHook(_DistEvalHook): Default: False. efficient_test (bool): Whether save the results as local numpy files to save CPU memory during evaluation. Default: False. + pre_eval (bool): Whether to use progressive mode to evaluate model. + Default: False. Returns: list: The prediction results. """ greater_keys = ['mIoU', 'mAcc', 'aAcc'] - def __init__(self, *args, by_epoch=False, efficient_test=False, **kwargs): + def __init__(self, + *args, + by_epoch=False, + efficient_test=False, + pre_eval=False, + **kwargs): super().__init__(*args, by_epoch=by_epoch, **kwargs) - self.efficient_test = efficient_test + self.pre_eval = pre_eval + if efficient_test: + warnings.warn( + 'DeprecationWarning: ``efficient_test`` for evaluation hook ' + 'is deprecated, the evaluation hook is CPU memory friendly ' + 'with ``pre_eval=True`` as argument for ``multi_gpu_test()`` ' + 'function') def _do_evaluate(self, runner): """perform evaluation and save ckpt.""" @@ -90,7 +115,10 @@ def _do_evaluate(self, runner): self.dataloader, tmpdir=tmpdir, gpu_collect=self.gpu_collect, - efficient_test=self.efficient_test) + pre_eval=self.pre_eval) + + runner.log_buffer.clear() + if runner.rank == 0: print('\n') runner.log_buffer.output['eval_iter_num'] = len(self.dataloader) diff --git a/mmseg/core/evaluation/metrics.py b/mmseg/core/evaluation/metrics.py index 3c5f63fb4b..f64967c6c2 100644 --- a/mmseg/core/evaluation/metrics.py +++ b/mmseg/core/evaluation/metrics.py @@ -97,8 +97,8 @@ def total_intersect_and_union(results, Args: results (list[ndarray] | list[str]): List of prediction segmentation maps or list of prediction result filenames. - gt_seg_maps (list[ndarray] | list[str]): list of ground truth - segmentation maps or list of label filenames. + gt_seg_maps (list[ndarray] | list[str] | Iterables): list of ground + truth segmentation maps or list of label filenames. num_classes (int): Number of categories. ignore_index (int): Index that will be ignored in evaluation. label_map (dict): Mapping old labels to new labels. Default: dict(). @@ -113,15 +113,15 @@ def total_intersect_and_union(results, ndarray: The ground truth histogram on all classes. """ num_imgs = len(results) - assert len(gt_seg_maps) == num_imgs + assert len(list(gt_seg_maps)) == num_imgs total_area_intersect = torch.zeros((num_classes, ), dtype=torch.float64) total_area_union = torch.zeros((num_classes, ), dtype=torch.float64) total_area_pred_label = torch.zeros((num_classes, ), dtype=torch.float64) total_area_label = torch.zeros((num_classes, ), dtype=torch.float64) - for i in range(num_imgs): + for result, gt_seg_map in zip(results, gt_seg_maps): area_intersect, area_union, area_pred_label, area_label = \ intersect_and_union( - results[i], gt_seg_maps[i], num_classes, ignore_index, + result, gt_seg_map, num_classes, ignore_index, label_map, reduce_zero_label) total_area_intersect += area_intersect total_area_union += area_union @@ -268,8 +268,8 @@ def eval_metrics(results, Args: results (list[ndarray] | list[str]): List of prediction segmentation maps or list of prediction result filenames. - gt_seg_maps (list[ndarray] | list[str]): list of ground truth - segmentation maps or list of label filenames. + gt_seg_maps (list[ndarray] | list[str] | Iterables): list of ground + truth segmentation maps or list of label filenames. num_classes (int): Number of categories. ignore_index (int): Index that will be ignored in evaluation. metrics (list[str] | str): Metrics to be evaluated, 'mIoU' and 'mDice'. @@ -282,16 +282,86 @@ def eval_metrics(results, ndarray: Per category accuracy, shape (num_classes, ). ndarray: Per category evaluation metrics, shape (num_classes, ). """ + + total_area_intersect, total_area_union, total_area_pred_label, \ + total_area_label = total_intersect_and_union( + results, gt_seg_maps, num_classes, ignore_index, label_map, + reduce_zero_label) + ret_metrics = total_area_to_metrics(total_area_intersect, total_area_union, + total_area_pred_label, + total_area_label, metrics, nan_to_num, + beta) + + return ret_metrics + + +def pre_eval_to_metrics(pre_eval_results, + metrics=['mIoU'], + nan_to_num=None, + beta=1): + """Convert pre-eval results to metrics. + + Args: + pre_eval_results (list[tuple[torch.Tensor]]): per image eval results + for computing evaluation metric + metrics (list[str] | str): Metrics to be evaluated, 'mIoU' and 'mDice'. + nan_to_num (int, optional): If specified, NaN values will be replaced + by the numbers defined by the user. Default: None. + Returns: + float: Overall accuracy on all images. + ndarray: Per category accuracy, shape (num_classes, ). + ndarray: Per category evaluation metrics, shape (num_classes, ). + """ + + # convert list of tuples to tuple of lists, e.g. + # [(A_1, B_1, C_1, D_1), ..., (A_n, B_n, C_n, D_n)] to + # ([A_1, ..., A_n], ..., [D_1, ..., D_n]) + pre_eval_results = tuple(zip(*pre_eval_results)) + assert len(pre_eval_results) == 4 + + total_area_intersect = sum(pre_eval_results[0]) + total_area_union = sum(pre_eval_results[1]) + total_area_pred_label = sum(pre_eval_results[2]) + total_area_label = sum(pre_eval_results[3]) + + ret_metrics = total_area_to_metrics(total_area_intersect, total_area_union, + total_area_pred_label, + total_area_label, metrics, nan_to_num, + beta) + + return ret_metrics + + +def total_area_to_metrics(total_area_intersect, + total_area_union, + total_area_pred_label, + total_area_label, + metrics=['mIoU'], + nan_to_num=None, + beta=1): + """Calculate evaluation metrics + Args: + total_area_intersect (ndarray): The intersection of prediction and + ground truth histogram on all classes. + total_area_union (ndarray): The union of prediction and ground truth + histogram on all classes. + total_area_pred_label (ndarray): The prediction histogram on all + classes. + total_area_label (ndarray): The ground truth histogram on all classes. + metrics (list[str] | str): Metrics to be evaluated, 'mIoU' and 'mDice'. + nan_to_num (int, optional): If specified, NaN values will be replaced + by the numbers defined by the user. Default: None. + Returns: + float: Overall accuracy on all images. + ndarray: Per category accuracy, shape (num_classes, ). + ndarray: Per category evaluation metrics, shape (num_classes, ). + """ if isinstance(metrics, str): metrics = [metrics] allowed_metrics = ['mIoU', 'mDice', 'mFscore'] if not set(metrics).issubset(set(allowed_metrics)): raise KeyError('metrics {} is not supported'.format(metrics)) - total_area_intersect, total_area_union, total_area_pred_label, \ - total_area_label = total_intersect_and_union( - results, gt_seg_maps, num_classes, ignore_index, label_map, - reduce_zero_label) all_acc = total_area_intersect.sum() / total_area_label.sum() ret_metrics = OrderedDict({'aAcc': all_acc}) for metric in metrics: diff --git a/mmseg/datasets/ade.py b/mmseg/datasets/ade.py index 9af4371263..d807a001a0 100644 --- a/mmseg/datasets/ade.py +++ b/mmseg/datasets/ade.py @@ -1,6 +1,5 @@ # Copyright (c) OpenMMLab. All rights reserved. import os.path as osp -import tempfile import mmcv import numpy as np @@ -91,7 +90,7 @@ def __init__(self, **kwargs): reduce_zero_label=True, **kwargs) - def results2img(self, results, imgfile_prefix, to_label_id): + def results2img(self, results, imgfile_prefix, to_label_id, indices=None): """Write the segmentation results to images. Args: @@ -101,17 +100,21 @@ def results2img(self, results, imgfile_prefix, to_label_id): If the prefix is "somepath/xxx", the png files will be named "somepath/xxx.png". to_label_id (bool): whether convert output to label_id for - submission + submission. + indices (list[int], optional): Indices of input results, if not + set, all the indices of the dataset will be used. + Default: None. Returns: list[str: str]: result txt files which contains corresponding semantic segmentation images. """ + if indices is None: + indices = list(range(len(self))) + mmcv.mkdir_or_exist(imgfile_prefix) result_files = [] - prog_bar = mmcv.ProgressBar(len(self)) - for idx in range(len(self)): - result = results[idx] + for result, idx in zip(results, indices): filename = self.img_infos[idx]['filename'] basename = osp.splitext(osp.basename(filename))[0] @@ -127,21 +130,25 @@ def results2img(self, results, imgfile_prefix, to_label_id): output.save(png_filename) result_files.append(png_filename) - prog_bar.update() - return result_files - def format_results(self, results, imgfile_prefix=None, to_label_id=True): + def format_results(self, + results, + imgfile_prefix, + to_label_id=True, + indices=None): """Format the results into dir (standard format for ade20k evaluation). Args: results (list): Testing results of the dataset. imgfile_prefix (str | None): The prefix of images files. It includes the file path and the prefix of filename, e.g., - "a/b/prefix". If not specified, a temp file will be created. - Default: None. + "a/b/prefix". to_label_id (bool): whether convert output to label_id for submission. Default: False + indices (list[int], optional): Indices of input results, if not + set, all the indices of the dataset will be used. + Default: None. Returns: tuple: (result_files, tmp_dir), result_files is a list containing @@ -149,16 +156,12 @@ def format_results(self, results, imgfile_prefix=None, to_label_id=True): for saving json/png files when img_prefix is not specified. """ - assert isinstance(results, list), 'results must be a list' - assert len(results) == len(self), ( - 'The length of results is not equal to the dataset len: ' - f'{len(results)} != {len(self)}') + if indices is None: + indices = list(range(len(self))) - if imgfile_prefix is None: - tmp_dir = tempfile.TemporaryDirectory() - imgfile_prefix = tmp_dir.name - else: - tmp_dir = None + assert isinstance(results, list), 'results must be a list.' + assert isinstance(indices, list), 'indices must be a list.' - result_files = self.results2img(results, imgfile_prefix, to_label_id) - return result_files, tmp_dir + result_files = self.results2img(results, imgfile_prefix, to_label_id, + indices) + return result_files diff --git a/mmseg/datasets/cityscapes.py b/mmseg/datasets/cityscapes.py index fd814f92c0..5802622e74 100644 --- a/mmseg/datasets/cityscapes.py +++ b/mmseg/datasets/cityscapes.py @@ -1,6 +1,5 @@ # Copyright (c) OpenMMLab. All rights reserved. import os.path as osp -import tempfile import mmcv import numpy as np @@ -48,7 +47,7 @@ def _convert_to_label_id(result): return result_copy - def results2img(self, results, imgfile_prefix, to_label_id): + def results2img(self, results, imgfile_prefix, to_label_id, indices=None): """Write the segmentation results to images. Args: @@ -58,17 +57,21 @@ def results2img(self, results, imgfile_prefix, to_label_id): If the prefix is "somepath/xxx", the png files will be named "somepath/xxx.png". to_label_id (bool): whether convert output to label_id for - submission + submission. + indices (list[int], optional): Indices of input results, + if not set, all the indices of the dataset will be used. + Default: None. Returns: list[str: str]: result txt files which contains corresponding semantic segmentation images. """ + if indices is None: + indices = list(range(len(self))) + mmcv.mkdir_or_exist(imgfile_prefix) result_files = [] - prog_bar = mmcv.ProgressBar(len(self)) - for idx in range(len(self)): - result = results[idx] + for result, idx in zip(results, indices): if to_label_id: result = self._convert_to_label_id(result) filename = self.img_infos[idx]['filename'] @@ -85,49 +88,49 @@ def results2img(self, results, imgfile_prefix, to_label_id): output.putpalette(palette) output.save(png_filename) result_files.append(png_filename) - prog_bar.update() return result_files - def format_results(self, results, imgfile_prefix=None, to_label_id=True): + def format_results(self, + results, + imgfile_prefix, + to_label_id=True, + indices=None): """Format the results into dir (standard format for Cityscapes evaluation). Args: results (list): Testing results of the dataset. - imgfile_prefix (str | None): The prefix of images files. It + imgfile_prefix (str): The prefix of images files. It includes the file path and the prefix of filename, e.g., - "a/b/prefix". If not specified, a temp file will be created. - Default: None. + "a/b/prefix". to_label_id (bool): whether convert output to label_id for submission. Default: False + indices (list[int], optional): Indices of input results, + if not set, all the indices of the dataset will be used. + Default: None. Returns: tuple: (result_files, tmp_dir), result_files is a list containing the image paths, tmp_dir is the temporal directory created for saving json/png files when img_prefix is not specified. """ + if indices is None: + indices = list(range(len(self))) - assert isinstance(results, list), 'results must be a list' - assert len(results) == len(self), ( - 'The length of results is not equal to the dataset len: ' - f'{len(results)} != {len(self)}') + assert isinstance(results, list), 'results must be a list.' + assert isinstance(indices, list), 'indices must be a list.' - if imgfile_prefix is None: - tmp_dir = tempfile.TemporaryDirectory() - imgfile_prefix = tmp_dir.name - else: - tmp_dir = None - result_files = self.results2img(results, imgfile_prefix, to_label_id) + result_files = self.results2img(results, imgfile_prefix, to_label_id, + indices) - return result_files, tmp_dir + return result_files def evaluate(self, results, metric='mIoU', logger=None, - imgfile_prefix=None, - efficient_test=False): + imgfile_prefix=None): """Evaluation in Cityscapes/default protocol. Args: @@ -158,7 +161,7 @@ def evaluate(self, if len(metrics) > 0: eval_results.update( super(CityscapesDataset, - self).evaluate(results, metrics, logger, efficient_test)) + self).evaluate(results, metrics, logger)) return eval_results @@ -184,12 +187,7 @@ def _evaluate_cityscapes(self, results, logger, imgfile_prefix): msg = '\n' + msg print_log(msg, logger=logger) - result_files, tmp_dir = self.format_results(results, imgfile_prefix) - - if tmp_dir is None: - result_dir = imgfile_prefix - else: - result_dir = tmp_dir.name + result_dir = imgfile_prefix eval_results = dict() print_log(f'Evaluating results under {result_dir} ...', logger=logger) @@ -212,7 +210,4 @@ def _evaluate_cityscapes(self, results, logger, imgfile_prefix): eval_results.update( CSEval.evaluateImgLists(pred_list, seg_map_list, CSEval.args)) - if tmp_dir is not None: - tmp_dir.cleanup() - return eval_results diff --git a/mmseg/datasets/custom.py b/mmseg/datasets/custom.py index a86fabb972..e366c0da2d 100644 --- a/mmseg/datasets/custom.py +++ b/mmseg/datasets/custom.py @@ -1,6 +1,6 @@ # Copyright (c) OpenMMLab. All rights reserved. -import os import os.path as osp +import warnings from collections import OrderedDict from functools import reduce @@ -10,7 +10,7 @@ from prettytable import PrettyTable from torch.utils.data import Dataset -from mmseg.core import eval_metrics +from mmseg.core import eval_metrics, intersect_and_union, pre_eval_to_metrics from mmseg.utils import get_root_logger from .builder import DATASETS from .pipelines import Compose @@ -226,21 +226,55 @@ def prepare_test_img(self, idx): self.pre_pipeline(results) return self.pipeline(results) - def format_results(self, results, **kwargs): + def format_results(self, results, imgfile_prefix, indices=None, **kwargs): """Place holder to format result to dataset specific output.""" + raise NotImplementedError - def get_gt_seg_maps(self, efficient_test=False): + def get_gt_seg_maps(self, efficient_test=None): """Get ground truth segmentation maps for evaluation.""" - gt_seg_maps = [] + if efficient_test is not None: + warnings.warn( + 'DeprecationWarning: ``efficient_test`` has been deprecated ' + 'since MMSeg v0.16, the ``get_gt_seg_maps()`` is CPU memory ' + 'friendly by default. ') + for img_info in self.img_infos: seg_map = osp.join(self.ann_dir, img_info['ann']['seg_map']) - if efficient_test: - gt_seg_map = seg_map - else: - gt_seg_map = mmcv.imread( - seg_map, flag='unchanged', backend='pillow') - gt_seg_maps.append(gt_seg_map) - return gt_seg_maps + gt_seg_map = mmcv.imread( + seg_map, flag='unchanged', backend='pillow') + yield gt_seg_map + + def pre_eval(self, preds, indices): + """Collect eval result from each iteration. + + Args: + preds (list[torch.Tensor] | torch.Tensor): the segmentation logit + after argmax, shape (N, H, W). + indices (list[int] | int): the prediction related ground truth + indices. + + Returns: + list[torch.Tensor]: (area_intersect, area_union, area_prediction, + area_ground_truth). + """ + # In order to compat with batch inference + if not isinstance(indices, list): + indices = [indices] + if not isinstance(preds, list): + preds = [preds] + + pre_eval_results = [] + + for pred, index in zip(preds, indices): + seg_map = osp.join(self.ann_dir, + self.img_infos[index]['ann']['seg_map']) + seg_map = mmcv.imread(seg_map, flag='unchanged', backend='pillow') + pre_eval_results.append( + intersect_and_union(pred, seg_map, len(self.CLASSES), + self.ignore_index, self.label_map, + self.reduce_zero_label)) + + return pre_eval_results def get_classes_and_palette(self, classes=None, palette=None): """Get class names of current dataset. @@ -305,16 +339,13 @@ def get_palette_for_custom_classes(self, class_names, palette=None): return palette - def evaluate(self, - results, - metric='mIoU', - logger=None, - efficient_test=False, - **kwargs): + def evaluate(self, results, metric='mIoU', logger=None, **kwargs): """Evaluate the dataset. Args: - results (list): Testing results of the dataset. + results (list[tuple[torch.Tensor]] | list[str]): per image pre_eval + results or predict segmentation map for computing evaluation + metric. metric (str | list[str]): Metrics to be evaluated. 'mIoU', 'mDice' and 'mFscore' are supported. logger (logging.Logger | None | str): Logger used for printing @@ -323,28 +354,37 @@ def evaluate(self, Returns: dict[str, float]: Default metrics. """ - if isinstance(metric, str): metric = [metric] allowed_metrics = ['mIoU', 'mDice', 'mFscore'] if not set(metric).issubset(set(allowed_metrics)): raise KeyError('metric {} is not supported'.format(metric)) + eval_results = {} - gt_seg_maps = self.get_gt_seg_maps(efficient_test) - if self.CLASSES is None: - num_classes = len( - reduce(np.union1d, [np.unique(_) for _ in gt_seg_maps])) + # test a list of files + if mmcv.is_list_of(results, np.ndarray) or mmcv.is_list_of( + results, str): + gt_seg_maps = self.get_gt_seg_maps() + if self.CLASSES is None: + num_classes = len( + reduce(np.union1d, [np.unique(_) for _ in gt_seg_maps])) + else: + num_classes = len(self.CLASSES) + # reset generator + gt_seg_maps = self.get_gt_seg_maps() + ret_metrics = eval_metrics( + results, + gt_seg_maps, + num_classes, + self.ignore_index, + metric, + label_map=self.label_map, + reduce_zero_label=self.reduce_zero_label) + # test a list of pre_eval_results else: - num_classes = len(self.CLASSES) - ret_metrics = eval_metrics( - results, - gt_seg_maps, - num_classes, - self.ignore_index, - metric, - label_map=self.label_map, - reduce_zero_label=self.reduce_zero_label) + ret_metrics = pre_eval_to_metrics(results, metric) + # Because dataset.CLASSES is required for per-eval. if self.CLASSES is None: class_names = tuple(range(num_classes)) else: @@ -396,7 +436,4 @@ def evaluate(self, for idx, name in enumerate(class_names) }) - if mmcv.is_list_of(results, str): - for file_name in results: - os.remove(file_name) return eval_results diff --git a/tests/data/pseudo_cityscapes_dataset/gtFine/frankfurt_000000_000294_gtFine_instanceIds.png b/tests/data/pseudo_cityscapes_dataset/gtFine/frankfurt_000000_000294_gtFine_instanceIds.png new file mode 100644 index 0000000000000000000000000000000000000000..dfe7aea9b5eaaad80490306f76981bcb5b7f96bd GIT binary patch literal 1912 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%0DqRtumoS5;lr&JzVx+E@mINJ?j} z4hW)>OpxlT-akCNx3hKa<~w=b*NT+Vhyuu|tt0D^CKVcF17zZ z|J^TKzj}NBU^+P(X@ej5z@w)&Pu#qHeRuyTN$kb+w-j7BHTi?2O_vXD~ zUSz3J%=3f&>8!3D`nq0PO1&E;)`3)jG#&>5-A)w}5VAWOi!PE>3(0cNVlM#zrLo;f z0JL|cjX@;l;40^R5EcgUKGc<~Yo8cvwP9vLx^wk*UAcC*m1SmpG{1LkTVEor)oeJq zef>_{=l=Q|FaD4J==N|Xd7j_Cel%D`r50+qhZz=;q?Hk92_d+;4Blu?5L_Lqz|-m2 z<}DPc%bJDLR;$x(EiHAYld)H#jLt|Ui51U801^<`lF}l?0vwtnix>T_SX{zl^HkHl zwZ(0&6mFO&42QbDwC!}M5IV5 zt+dh>3AIv)q!n441PofsXgd7w|A&8^CB|A~6PxF)#HQ0?_TF1>-@CmFh{o!F9e(BJ z&8w-+(k%VPH@^M9{pRjRo`1&GnAl`C-ZKcDb{k2)`bU4#?$~yk7o$V(oDi(H6uHs; z;pn}cgUP%+bzMe}(H z06X{h1q=&MX7dCTqs+$>B0PO^<@}l6_SQ_FXz@mxBuXhHti8_=)!nxa>Gt;MXg|5o z>6}_wT|NECBkfOq0!WcIpp_VHluooFjC=Ex6h*--t-O<1s|f`)lF}q`X2i!+g8_*& z2n3N3d_!~Fx{r>O2)XS3#E3Nz6_r*_Gu)li#M?UqwqsjDe zfB(+SJ6EsWMr^`yJgz(Xfw5Mh4$RfGTv^rKT%}e6LRD~C)+Wsm5Q%hR+PyrFFIF=zdW^}AXX0a@AP8$z zK#HS2E;cPdfa#$ri>7}pakLO)-)vEGH}3*|h#?3z2eUQgAR-B~_daeS zLnLFZfOBHfI=zikwX0wF z_6wanK_YHif5;-kqeG=sS=3cg-@Sh4MUvR4xx0O^yLZ$}ll6@a0N&f)>31`20Dz~% z?blzsbL;Nb%2LN#GRbn9RPVg|p1OZ9nYlA3H*BI@Icw({(U7&NxTUkF`j0$zZTRAB zB1njd!C<@#by02K*d^x>5rh%J2eFwE@CT!6U@~jXd_M0l^)6pnw~E(S?5Xu7fS@&c zSJh4%4M$t^Qq+lFVgnz&ykCr~aAm$5cf>5dScGea03yPS$lz5FMMf*7;z=~@JZ|sR zfdLhq+Q?gpb^-2exxh*plV$1hAn*4vPxCCb#+W->^WoT&ji)HWxpOD}=3o2t=fC{5 z*I&KfUs?a)M?dx>Km5LPt8EFhU;L-P`_|hx7ZxG#&=v^}K`E8B@}<>f!Xts8trkkL zF6(Mkmey6FD(6Q>ql5AO{KSg3q~fZ0fvR+~y~C`nS2Hrcfbl-KpbvHrIRtQZtKU}< zuE*{%J~%cT;8+gP@T8HN6lspnjJD zpz^++%(B!NZM+X6aDVSGPt$&547j!v#EU)$Q*IK5sL!xI~w5Oh0V;!$zu?)~|!xP1Bv zW$^6TlLz}pfckJap~3RX<4=}l*-B8Y_a>8hIWHkGns9k#5JDJ6P9_9nwaHU}NdMz_ zH12f4d+*B97(JW0s>0d@?|d;E*RJ-CPi!PriRr10%FvjsS(n3`*RT&sM)AIfAb=oc zaQg|WoP8Zz`vJ#l6#_$53zFG9v9Wdg-XDBr+XX?w559lt(wVF%!XJHg|8VR8ghiCb z%@fJ9kM+_-J1=+c%iHe_r=$7$iKT9<^WM8}{=z?e`)l9YMWwht`k(&0|M6e_V*ArS zaAu`zUw`8$P6f!ZmS#aEa`28tsjgB49)0OJm)fE8iY1WNiNbOoRyLN>R@QE()XJwv zW9Mr^kib5$Fl&Pt*j3KvnLgYdkB0}-qsiqbu5>!B*xw;$1tbKE^8y;f2joRzyf}s# zAPBQaqEurS-_=2r1=%igtSD-l%CZ=TX6C4!j>maJ-~cRzuO&!eY3B(bhEOw0q+10* z5yhSshY**R6QI@xMI+M2#%6E~B1#!R;vks?rD*SP{K6|&KldLLqT@`1~;0zmPsNt`Pr z1Yx;->&|SvH%ef&r&ThTO>Mv1(>8UrYqfiT*zM+8>la^meRuZ=0Xm)B*L96ldB6SA zEAyjKXt(OhjfS%jg0MKh-|2O-c56H?M8q1c7%L9in&3e=9PRG|h)wNubdaT;ZaecK zK)|`yMa2k`7@E0Y+gX~Wq^uZ2TU+xZmt?6xlu{yqgdie_I*Bx*c;{;rk^O^m=OEZ5 z6CIAmOoWDr8TR(;^QSVcD9_Yz#w*KaeMR5ARc_z&Z|ZrsrRRYzUU|Z)owr}Q$^l3b z2ie-1lm(wVpT6($&MU8s-n+W}Vyk@OVtYJkW@?(E@j)3N0AMq#w5m#H4C+J!07;Ef z6Cn@|dRaZ4uu_>(p(xABhtO=GsB1Tz&RRMT0CiQ3?~hEH>ecm??jUJpiM6^pMw7YG zy)8~NI-Z>)jvK8WtgQ>o!eX=*fLPf^KLJn+WD!#;N0F|nuipvI3A53p6jjyC z`#dlY`t7Whm8C;KButd)4|>2Hvwydpmy>y1^+_Cl<=Y2`yL-1KNRnk*(ZNwM9Ubj$ zAF%he3&p$$488f}?klfN@7z0_*W0)6$8+-Hm~SyJwb8A1PKsEB0$0-+b=!HKdZ#(K zvaFp8gcMwDRV_t;ss{17g)A`u5(1Z%81PirN`p@lyRtGrxYJ#?2;e;v5)pu=+KzoW zQkIZFj8IM@YJDYLUqxmFx#z2r1(*7IIP!->H!nCfU^I$IlBmZo_Y$I)-9Z+~k#=Rwan5v7!?c|Hw5kfzFLI&(TDi>*}q5DAk9bMX(TP(klpRbW+CTG^6) zw?lwvZD7yAIae1}kx^i(*<7r3Uh%y)PYC-qlDl zn@@__%)3Iw&!@B1Q)dN8E0gDG2;sP^msstck7aw*5wHjn0x2S5&v|YYp@1kwgF(9} z4jW~PKnNj(pfr&Jn`k7MJ2xpyO6}+W@M}O&*G>ey4~#V2Iodlsnos8ds1(+f3yQpV zlkt?j_qDI;z|0IV+S-|o4m&4Lv}YAxy}4M8)^sc8vqCG47?0_|(g)+b(JBs9AfkwP z?`rH6zTe7|yifDlcwWwftG#!wcCHATJhn0kF6`}LF$YI=#ad$wL!Ln^N|%ywJh>|Z zfFVF!#->OR^?c5NxW1Yc1<&VUG;zrw9xn;raqU9CXN<G|KreXjgxFE=*Ndd}&31tNa6@mmtV-<)R9lF|y z$!ywgOK{bEuC)rz$1yYkuvwyrY{IKvvC%r7EJ>tQV&{`d;DC;mR!EILuR;7QJ_G^) zjAyEea~_yUsi0jfZVAbG$IcsTngatx6e55yGa-XgahW$LLV*yN14jge&BQ~j2tr_H z4~!DLQ(8+9=c}r!{czY(noxqP#k;C5>!OqpIQYrrXfhj@zMjqtCVjZSvvVhRRe5rK zMP}nr1pr`X00`bM>Tb!hBs4SQ(Cc?>Vv*vO0V1P(C7o8jI0ytOu0=pr1}!L5n6!Zf#Y zL1rd^d}U?x{m<>Z`nECmqGVVA5@r;fv-rSq-Ji))o2N(^ya$jpwIJeLP=vux5BKJw zzY_B7@Tl59s^ZxKB1#SVrP8;i)2x+}ma3acH>up{cqe|OAPG_F=6DDZ2|=6>$P3yd z@MIp8!d}<3(rPveqp@EbSgi>WS%4XoBCXM}R8=S{3W8at20gVs3IM`FQ55XGgl488 zO5PrbYG9$TKh6To!a)d45vZMlH7ai@1aJveT8`!@7B63hlojSYG zj%RuRg1{4xUl9>5XUyF1{?UA1mt`FbZkBj(l@bx}eOyp`crYo7a*C8BChGi5CtrT< zS)FE5*T!ffj0Hf+5CR7Q1nBl!qmd+;HAahwD3#?I5+W(bvb@sXSV59%JUTi!m?3at zbh}RmCQ2h|2%$n!uH1FbXBLDdGzaVg5yq;T2t~lT5SWQb5iJ%T10uSbXGPGO+AZB_ z>)l}(jy(%#)hrG23{4CLK>$~UD0k6TX$pXdinJyGa9)A{d)YrMm8G>ovQSPoED$L~ zYR&*6MX1PHV~rxEn0YiF0+O%8&h`k>npHlYcs-kO+vn#PwUakisI0grX{TcJ_1h+L}J_C!f8t zztJ)T@4oOgA7HY#?TWE@E~>I#d2DC*z+J!7ePojT@ zL+raDf+?saV}eqODwryWR6t?|B6@K(ef@lQd6}oIA<(^h-8+vLr_12khbd{!W(c4B zV!PQ06W-k9-6&loVk`oiopgjq*mXpRV=^Lq@qBvqa-tZKh?)B(UtHsEuiJgmqMv-W z?U#IK#g&DyA|Q`Rt3L=aP~`Nc1{5hJXYVIbDU4WhF%?nS-ELk78BqH!xZ;TlDg5+b|H)5({`u-# z_hR5I0;QZI$e5n}?G13WJgOw_20~8LR#lCATipBl)z#Dc=l#h7h)R+5)va%bLavL` zh>)0!5CEA25%-JOb^P%UKkkW#)siWIp%hEGj5$x!e*66SvzIT&eG*Y15`gV`8#u&J zR~C4b0&Viub4otyP)f2=m@o!voFfPTAp|fLwUpA!Pk+As^fOVBQgkjusv!U(nHm^` z5D@0+3!GnvIHYW)D59L5N#KnEi}+9`N-23P0GQL1vq&)!@VfrY5|@(x;>-2Vez6%x ze@8U6m#@ZOeYyF;$9LX;yoiA|TM%r5tZw!o0DZ+-8&-yRV6J5U}aPU zDe5!t;54G5q5@LH;hPkw6VDE>(F{zSn$O6rF;AK&SSo5#4@MD8nHfz0Nex6|nbPL= zY6nWpVCX|PuYd9LbiK|GgN7&yY>J@+3KSO1ETO;MuCHF-K7IOL=!ej;jx>q=`QLo; zAO3diPfw62#NbpP+yxgVF(Klv?_<}WELSHdOEpSaPF6$gql$`v7^oRX972qJJUd(7 zzkmLlKl~mre*XDaFJ8VG_v!p(1&Ar-?RE#EQVJ0|0SpoQN-Y&BIhB;m6cJO-Y06SW z#ZFF!u8$=b5gYg8pZ%M^9+r#iRAO+81B5h=$x%EqDT0>VfC;pwtjf=(Mq(gEMYqi4 zc*c8gRkWy@K`B;>snp8?sC?$TvHbj(>!1H>V?aY6LL>ytxs+-wi zrySd?l@X&guB(tsiGWhVxZ93zo+q$t1SdsD=Y}*9^=1Ws8wDg^i%|(sDnnf*%B$@W zbyP;dDo-;JL*>~8M{}kIh|WXSup)vPnh{bX=_e%gH9Py9W4EB;1Sl{NwKyF^4@eQ@ zi!WdP=trOb&;H}b_uf4XU6&PzLf^&MpLEMRs>;k=*8$Sd#lGu8?9?m{!w@IT*SaI(1#zst7f;?x8pSJcY7^zaWANluyBVHo=hznjlqG1u^l=gqf9;7R&p?(91X?RPI4L znqE?cltbUM0T^P+1waUe5M!v93IJxF^{TrZn8D2c_Gjx~ezj$$dk@a;-#>r;)oU^P z;M?zAUtV8b+~%xbe!V?i^6k19z@z*9qkCZ-wJuEPR=+2Ukz|L*z4IuFAT zP{(nPp*P7Ug&1|RaVn+;P!><`_g#Opp7vv|4;VN^&PhyFi+E@q);G6Z>}{#BTTz|} zYCZ?6{Q6GhHm2V?*s3oE0|1?=B%7XALOej{*gFh9wzR4%wE-cb7+77YWOH0f^pxEDc#;~#(nzD zAAGy-;%2+wZ1>ZYbCFWiiy<{hfaE-qfJjw)RaI5I-?naVHZu-%=kA@@bvc!klTV^z z>&X?7hY#*D6MAEUL7LKjKQa*!kd;23gw<-?Zd3&4miKDRakJO`K3}iLZ@qKk3lQ0- z?bOp5QnF4->Z)6-EKoPM`Nivmh+WsMmdlgX>fVE#MDLv6>ANuQrtNOJUFYkYsqgW< zC$W#P+lv%^=Se8VmV?1StJMH#%+y69ggl9wefxtx1WZW`Y_Y%*3;=Vs$nehNzFxmU zD%y8cCT+qrD|P*~UvFPdsbClPaUat1#84&xpn!{>cUkVAS)S6(HZzXMaR1TW{cfLf zCgyJFyDp?Lr74$E5OG)xVYlApE(bukdtyZ5RWL9o-qk}NgqoLyeP@RuknctHi7^rn zcM%au5q&ovARsalim3S#nx;X-3?@Ki3To;v1VGkY#5fi*Ax15A9r4wAdUS?m+&IIw zQUpac5@JPCjSn9``Ul)~r{|m7o9~?ca2Ie`o`3J7?~SEgZ#Uon_&YByt~Q^4v!BwG ziiv*WwNE;hZq&QlU1B%-gs zd>Ok)0Z$ggxSyVV{d&0^#xbX&yGhUQa0q~4MGV01o&~7nwQU3n5X?jr2_sR6=p0>@ z5sT0OvZ9H*0yBdmCSn9IWmFqxI-p|}nD(ip!Xa;8q&?YqC&WO3F+`4wuFn|(x`2HI zDjUt=&Z$igm-$r*A^5qUo}Um=o>EbJ|Dz8>H}qZCg)SI?Vn7n`-3wk1Y90J$Zm@q=*_Pv6Ka+`2JQ; zy}h~GK0RLEfW$3z4i$OSFvP6xp3u6_5>-u7srT&$FhRxkZ+qdb(PL+uf98no1r(1OUX$dkDd^RBEk@z$yw(MSR1$n^rY2pnFdQ5nsF*$8p~e zJ#!!?U$hs3ZKia) z6jW72Q}EIfqO%BN!M0AgE)Z`Wan4(#28gvk6Ge+mW+__%@~xaqriuoZP%!qexD)zi zXV%9)_Di4a5mPPl@^*c3dwY3(vtDm@qdWK->^O}wWh%Ko7&!uNWLU=zP^SRVQ!I{t0&k-MzLOSThrOf?niN; zXq%8i;!xkBQDXTI5h@h%COtEN&<*zJnpBLukhwNo-DW&Va8f$ zGc|?lwK$%=d+*NOyQk~*X0cj^E{c_Jefw!1GXUJZe>SX61&RB(T&~Q3BZm-Ffq=4R z;&66)7MO_%iFVuV)z$6o%_ij{QnuUOi)WY1^Gsm-y+G{V{qTK4CPEVfF!wB9e(|ye zDgXen3&EHJBO-gPO`#uR$)$K6S^R=EC)sTk0dKBae$s~`iI6Zmhfoq^Su8C}3f}ZA zB2!9WzV_7+tee?3_5C8CwH@CZsD|>SRBE{cLRo{K@u@>2n*ZyHQ>&-asZ*O)VeCyr5 z?_RvT85UjH=QzZF_CNh6chAm>h+7a5$vKxIIp>@ur)f<2&BaZc(l}1zeo84%DW!2r zspM3rXG9eZiSYVj{ckS+c0LV1h7iNud*@h#U;~4`@1V8gTTKW6kca_)LscRc_i-K?)(zhMsHi_boDTmAl>;XnA{2l3v6fBn;6y?*ur!HR+3qpyV` zwwk`Ig=_^;_wcH~P{$~>Xf_B8W?&-b$!`(l&Qy?nwRug2G83|Q2~h|{fx8fkDHDC~ z`yUZtKXhG;F>pUD`mQ@UU0qCa`R1F~Z*DfXyPR_ot?eSsZvq(Av^a?tuP*sw6(pj_ zT_4S8x816g0JPh0FD`FDk(v9`QxRJ%dk)dZom35wVi!_MDHSQw8WbzpyD$C3MiW!< z9<=t^Ixv7v=Is(pjGn;^Ow7a_A`>yW)nxKA5d{J!rVyBjodv=1It4g1%NT$MWR66j zG5J+m_z?{fB?>^4aSj{p6F&H#b`J>f&~F zwp^}yAD-H6_tTX2w<9qA`Jeq*a>+R-r_s!%6p>O?&9}d)Rxmj4lk<;?(8dc9y{rV( zR=l{AhWhC_aBVN$AAd9b&bM~w!M-l$Tb+E>)AB@sIfqL;fO2M!dN5KGPk+I8J>F~k@{2vrlf zmg1P4&)k_~0Rc>FH%#jXbI|00llaAfnSi1JA|W%Fvwzla7EuGuCFfL1E;*-E$~2Xf z#%WAB=kq&vZm)OQi=$v1*pmJ8Km3=ul$46&wNhle+2h%Av)QR=*LS`wd?q|RBJuZ{#;i~v<^e6cwO=Q-r3pt%BkeLE_PjvT{jGUWc>7}U%sAFdl5yb zB#JN>1)yQQnK^e3zX9rAcLM_`sSrVE!4`7>#u!5`qM~6+MHMpQIF;+0akn1(lf?+p z`J$>Dsvx?VH?dlJKqNpy^7R;fv6v=q6(^j#1y<;*;=HbYRHHPg|Otw1UN
+ANN (ICCV'2019) + ```latex @inproceedings{zhu2019asymmetric, title={Asymmetric non-local neural networks for semantic segmentation}, @@ -14,6 +21,8 @@ } ``` +
+ ## Results and models ### Cityscapes diff --git a/configs/ann/ann.yml b/configs/ann/ann.yml index e1fba7562b..b819c223c6 100644 --- a/configs/ann/ann.yml +++ b/configs/ann/ann.yml @@ -1,296 +1,305 @@ Collections: -- Metadata: +- Name: ann + Metadata: Training Data: - Cityscapes - ADE20K - Pascal VOC 2012 + Aug - Name: ann + Paper: + URL: https://arxiv.org/abs/1908.07678 + Title: Asymmetric Non-local Neural Networks for Semantic Segmentation + README: configs/ann/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/decode_heads/ann_head.py#L185 + Version: v0.17.0 + Converted From: + Code: https://github.com/MendelXu/ANN Models: -- Config: configs/ann/ann_r50-d8_512x1024_40k_cityscapes.py +- Name: ann_r50-d8_512x1024_40k_cityscapes In Collection: ann Metadata: backbone: R-50-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 269.54 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 269.54 - lr schd: 40000 memory (GB): 6.0 - Name: ann_r50-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.4 mIoU(ms+flip): 78.57 - Task: Semantic Segmentation + Config: configs/ann/ann_r50-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_40k_cityscapes/ann_r50-d8_512x1024_40k_cityscapes_20200605_095211-049fc292.pth -- Config: configs/ann/ann_r101-d8_512x1024_40k_cityscapes.py +- Name: ann_r101-d8_512x1024_40k_cityscapes In Collection: ann Metadata: backbone: R-101-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 392.16 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 392.16 - lr schd: 40000 memory (GB): 9.5 - Name: ann_r101-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.55 mIoU(ms+flip): 78.85 - Task: Semantic Segmentation + Config: configs/ann/ann_r101-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_40k_cityscapes/ann_r101-d8_512x1024_40k_cityscapes_20200605_095243-adf6eece.pth -- Config: configs/ann/ann_r50-d8_769x769_40k_cityscapes.py +- Name: ann_r50-d8_769x769_40k_cityscapes In Collection: ann Metadata: backbone: R-50-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 588.24 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 588.24 - lr schd: 40000 memory (GB): 6.8 - Name: ann_r50-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.89 mIoU(ms+flip): 80.46 - Task: Semantic Segmentation + Config: configs/ann/ann_r50-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_40k_cityscapes/ann_r50-d8_769x769_40k_cityscapes_20200530_025712-2b46b04d.pth -- Config: configs/ann/ann_r101-d8_769x769_40k_cityscapes.py +- Name: ann_r101-d8_769x769_40k_cityscapes In Collection: ann Metadata: backbone: R-101-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 869.57 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 869.57 - lr schd: 40000 memory (GB): 10.7 - Name: ann_r101-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.32 mIoU(ms+flip): 80.94 - Task: Semantic Segmentation + Config: configs/ann/ann_r101-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_40k_cityscapes/ann_r101-d8_769x769_40k_cityscapes_20200530_025720-059bff28.pth -- Config: configs/ann/ann_r50-d8_512x1024_80k_cityscapes.py +- Name: ann_r50-d8_512x1024_80k_cityscapes In Collection: ann Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 - Name: ann_r50-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.34 mIoU(ms+flip): 78.65 - Task: Semantic Segmentation + Config: configs/ann/ann_r50-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_80k_cityscapes/ann_r50-d8_512x1024_80k_cityscapes_20200607_101911-5a9ad545.pth -- Config: configs/ann/ann_r101-d8_512x1024_80k_cityscapes.py +- Name: ann_r101-d8_512x1024_80k_cityscapes In Collection: ann Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 - Name: ann_r101-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.14 mIoU(ms+flip): 78.81 - Task: Semantic Segmentation + Config: configs/ann/ann_r101-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_80k_cityscapes/ann_r101-d8_512x1024_80k_cityscapes_20200607_013728-aceccc6e.pth -- Config: configs/ann/ann_r50-d8_769x769_80k_cityscapes.py +- Name: ann_r50-d8_769x769_80k_cityscapes In Collection: ann Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 - Name: ann_r50-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.88 mIoU(ms+flip): 80.57 - Task: Semantic Segmentation + Config: configs/ann/ann_r50-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_80k_cityscapes/ann_r50-d8_769x769_80k_cityscapes_20200607_044426-cc7ff323.pth -- Config: configs/ann/ann_r101-d8_769x769_80k_cityscapes.py +- Name: ann_r101-d8_769x769_80k_cityscapes In Collection: ann Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 - Name: ann_r101-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.8 mIoU(ms+flip): 80.34 - Task: Semantic Segmentation + Config: configs/ann/ann_r101-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_80k_cityscapes/ann_r101-d8_769x769_80k_cityscapes_20200607_013713-a9d4be8d.pth -- Config: configs/ann/ann_r50-d8_512x512_80k_ade20k.py +- Name: ann_r50-d8_512x512_80k_ade20k In Collection: ann Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 47.6 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 47.6 - lr schd: 80000 memory (GB): 9.1 - Name: ann_r50-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 41.01 mIoU(ms+flip): 42.3 - Task: Semantic Segmentation + Config: configs/ann/ann_r50-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_80k_ade20k/ann_r50-d8_512x512_80k_ade20k_20200615_014818-26f75e11.pth -- Config: configs/ann/ann_r101-d8_512x512_80k_ade20k.py +- Name: ann_r101-d8_512x512_80k_ade20k In Collection: ann Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 70.82 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 70.82 - lr schd: 80000 memory (GB): 12.5 - Name: ann_r101-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.94 mIoU(ms+flip): 44.18 - Task: Semantic Segmentation + Config: configs/ann/ann_r101-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_80k_ade20k/ann_r101-d8_512x512_80k_ade20k_20200615_014818-c0153543.pth -- Config: configs/ann/ann_r50-d8_512x512_160k_ade20k.py +- Name: ann_r50-d8_512x512_160k_ade20k In Collection: ann Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 - Name: ann_r50-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 41.74 mIoU(ms+flip): 42.62 - Task: Semantic Segmentation + Config: configs/ann/ann_r50-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_160k_ade20k/ann_r50-d8_512x512_160k_ade20k_20200615_231733-892247bc.pth -- Config: configs/ann/ann_r101-d8_512x512_160k_ade20k.py +- Name: ann_r101-d8_512x512_160k_ade20k In Collection: ann Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 - Name: ann_r101-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.94 mIoU(ms+flip): 44.06 - Task: Semantic Segmentation + Config: configs/ann/ann_r101-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_160k_ade20k/ann_r101-d8_512x512_160k_ade20k_20200615_231733-955eb1ec.pth -- Config: configs/ann/ann_r50-d8_512x512_20k_voc12aug.py +- Name: ann_r50-d8_512x512_20k_voc12aug In Collection: ann Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 47.8 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 47.8 - lr schd: 20000 memory (GB): 6.0 - Name: ann_r50-d8_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 74.86 mIoU(ms+flip): 76.13 - Task: Semantic Segmentation + Config: configs/ann/ann_r50-d8_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_20k_voc12aug/ann_r50-d8_512x512_20k_voc12aug_20200617_222246-dfcb1c62.pth -- Config: configs/ann/ann_r101-d8_512x512_20k_voc12aug.py +- Name: ann_r101-d8_512x512_20k_voc12aug In Collection: ann Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 71.74 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 71.74 - lr schd: 20000 memory (GB): 9.5 - Name: ann_r101-d8_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.47 mIoU(ms+flip): 78.7 - Task: Semantic Segmentation + Config: configs/ann/ann_r101-d8_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_20k_voc12aug/ann_r101-d8_512x512_20k_voc12aug_20200617_222246-2fad0042.pth -- Config: configs/ann/ann_r50-d8_512x512_40k_voc12aug.py +- Name: ann_r50-d8_512x512_40k_voc12aug In Collection: ann Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 40000 - Name: ann_r50-d8_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.56 mIoU(ms+flip): 77.51 - Task: Semantic Segmentation + Config: configs/ann/ann_r50-d8_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_40k_voc12aug/ann_r50-d8_512x512_40k_voc12aug_20200613_231314-b5dac322.pth -- Config: configs/ann/ann_r101-d8_512x512_40k_voc12aug.py +- Name: ann_r101-d8_512x512_40k_voc12aug In Collection: ann Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 40000 - Name: ann_r101-d8_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.7 mIoU(ms+flip): 78.06 - Task: Semantic Segmentation + Config: configs/ann/ann_r101-d8_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_40k_voc12aug/ann_r101-d8_512x512_40k_voc12aug_20200613_231314-bd205bbe.pth diff --git a/configs/apcnet/README.md b/configs/apcnet/README.md index b89ac6d7b2..6393a81b26 100644 --- a/configs/apcnet/README.md +++ b/configs/apcnet/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+APCNet (CVPR'2019) + ```latex @InProceedings{He_2019_CVPR, author = {He, Junjun and Deng, Zhongying and Zhou, Lei and Wang, Yali and Qiao, Yu}, @@ -14,6 +21,8 @@ year = {2019} } ``` +
+ ## Results and models ### Cityscapes diff --git a/configs/apcnet/apcnet.yml b/configs/apcnet/apcnet.yml index 1ec25ed586..32bcfc3bf5 100644 --- a/configs/apcnet/apcnet.yml +++ b/configs/apcnet/apcnet.yml @@ -1,223 +1,232 @@ Collections: -- Metadata: +- Name: apcnet + Metadata: Training Data: - Cityscapes - ADE20K - Name: apcnet + Paper: + URL: https://openaccess.thecvf.com/content_CVPR_2019/html/He_Adaptive_Pyramid_Context_Network_for_Semantic_Segmentation_CVPR_2019_paper.html + Title: Adaptive Pyramid Context Network for Semantic Segmentation + README: configs/apcnet/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/decode_heads/apc_head.py#L111 + Version: v0.17.0 + Converted From: + Code: https://github.com/Junjun2016/APCNet Models: -- Config: configs/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes.py +- Name: apcnet_r50-d8_512x1024_40k_cityscapes In Collection: apcnet Metadata: backbone: R-50-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 280.11 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 280.11 - lr schd: 40000 memory (GB): 7.7 - Name: apcnet_r50-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.02 mIoU(ms+flip): 79.26 - Task: Semantic Segmentation + Config: configs/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes/apcnet_r50-d8_512x1024_40k_cityscapes_20201214_115717-5e88fa33.pth -- Config: configs/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes.py +- Name: apcnet_r101-d8_512x1024_40k_cityscapes In Collection: apcnet Metadata: backbone: R-101-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 465.12 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 465.12 - lr schd: 40000 memory (GB): 11.2 - Name: apcnet_r101-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.08 mIoU(ms+flip): 80.34 - Task: Semantic Segmentation + Config: configs/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes/apcnet_r101-d8_512x1024_40k_cityscapes_20201214_115716-abc9d111.pth -- Config: configs/apcnet/apcnet_r50-d8_769x769_40k_cityscapes.py +- Name: apcnet_r50-d8_769x769_40k_cityscapes In Collection: apcnet Metadata: backbone: R-50-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 657.89 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 657.89 - lr schd: 40000 memory (GB): 8.7 - Name: apcnet_r50-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.89 mIoU(ms+flip): 79.75 - Task: Semantic Segmentation + Config: configs/apcnet/apcnet_r50-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_40k_cityscapes/apcnet_r50-d8_769x769_40k_cityscapes_20201214_115717-2a2628d7.pth -- Config: configs/apcnet/apcnet_r101-d8_769x769_40k_cityscapes.py +- Name: apcnet_r101-d8_769x769_40k_cityscapes In Collection: apcnet Metadata: backbone: R-101-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 970.87 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 970.87 - lr schd: 40000 memory (GB): 12.7 - Name: apcnet_r101-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.96 mIoU(ms+flip): 79.24 - Task: Semantic Segmentation + Config: configs/apcnet/apcnet_r101-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_40k_cityscapes/apcnet_r101-d8_769x769_40k_cityscapes_20201214_115718-b650de90.pth -- Config: configs/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes.py +- Name: apcnet_r50-d8_512x1024_80k_cityscapes In Collection: apcnet Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 - Name: apcnet_r50-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.96 mIoU(ms+flip): 79.94 - Task: Semantic Segmentation + Config: configs/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes/apcnet_r50-d8_512x1024_80k_cityscapes_20201214_115716-987f51e3.pth -- Config: configs/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes.py +- Name: apcnet_r101-d8_512x1024_80k_cityscapes In Collection: apcnet Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 - Name: apcnet_r101-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.64 mIoU(ms+flip): 80.61 - Task: Semantic Segmentation + Config: configs/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes/apcnet_r101-d8_512x1024_80k_cityscapes_20201214_115705-b1ff208a.pth -- Config: configs/apcnet/apcnet_r50-d8_769x769_80k_cityscapes.py +- Name: apcnet_r50-d8_769x769_80k_cityscapes In Collection: apcnet Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 - Name: apcnet_r50-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.79 mIoU(ms+flip): 80.35 - Task: Semantic Segmentation + Config: configs/apcnet/apcnet_r50-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_80k_cityscapes/apcnet_r50-d8_769x769_80k_cityscapes_20201214_115718-7ea9fa12.pth -- Config: configs/apcnet/apcnet_r101-d8_769x769_80k_cityscapes.py +- Name: apcnet_r101-d8_769x769_80k_cityscapes In Collection: apcnet Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 - Name: apcnet_r101-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.45 mIoU(ms+flip): 79.91 - Task: Semantic Segmentation + Config: configs/apcnet/apcnet_r101-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_80k_cityscapes/apcnet_r101-d8_769x769_80k_cityscapes_20201214_115716-a7fbc2ab.pth -- Config: configs/apcnet/apcnet_r50-d8_512x512_80k_ade20k.py +- Name: apcnet_r50-d8_512x512_80k_ade20k In Collection: apcnet Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 50.99 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 50.99 - lr schd: 80000 memory (GB): 10.1 - Name: apcnet_r50-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.2 mIoU(ms+flip): 43.3 - Task: Semantic Segmentation + Config: configs/apcnet/apcnet_r50-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_80k_ade20k/apcnet_r50-d8_512x512_80k_ade20k_20201214_115705-a8626293.pth -- Config: configs/apcnet/apcnet_r101-d8_512x512_80k_ade20k.py +- Name: apcnet_r101-d8_512x512_80k_ade20k In Collection: apcnet Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 76.34 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 76.34 - lr schd: 80000 memory (GB): 13.6 - Name: apcnet_r101-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 45.54 mIoU(ms+flip): 46.65 - Task: Semantic Segmentation + Config: configs/apcnet/apcnet_r101-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_80k_ade20k/apcnet_r101-d8_512x512_80k_ade20k_20201214_115704-c656c3fb.pth -- Config: configs/apcnet/apcnet_r50-d8_512x512_160k_ade20k.py +- Name: apcnet_r50-d8_512x512_160k_ade20k In Collection: apcnet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 - Name: apcnet_r50-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.4 mIoU(ms+flip): 43.94 - Task: Semantic Segmentation + Config: configs/apcnet/apcnet_r50-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_160k_ade20k/apcnet_r50-d8_512x512_160k_ade20k_20201214_115706-25fb92c2.pth -- Config: configs/apcnet/apcnet_r101-d8_512x512_160k_ade20k.py +- Name: apcnet_r101-d8_512x512_160k_ade20k In Collection: apcnet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 - Name: apcnet_r101-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 45.41 mIoU(ms+flip): 46.63 - Task: Semantic Segmentation + Config: configs/apcnet/apcnet_r101-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_160k_ade20k/apcnet_r101-d8_512x512_160k_ade20k_20201214_115705-73f9a8d7.pth diff --git a/configs/bisenetv2/README.md b/configs/bisenetv2/README.md index 48ecf06557..98d96b86b7 100644 --- a/configs/bisenetv2/README.md +++ b/configs/bisenetv2/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+BiSeNetV2 (IJCV'2021) + ```latex @article{yu2021bisenet, title={Bisenet v2: Bilateral network with guided aggregation for real-time semantic segmentation}, @@ -15,6 +22,8 @@ } ``` +
+ ## Results and models ### Cityscapes diff --git a/configs/bisenetv2/bisenetv2.yml b/configs/bisenetv2/bisenetv2.yml index 7c98dd23d1..373edb99cd 100644 --- a/configs/bisenetv2/bisenetv2.yml +++ b/configs/bisenetv2/bisenetv2.yml @@ -1,80 +1,88 @@ Collections: -- Metadata: +- Name: bisenetv2 + Metadata: Training Data: - Cityscapes - Name: bisenetv2 + Paper: + URL: https://arxiv.org/abs/2004.02147 + Title: 'Bisenet v2: Bilateral Network with Guided Aggregation for Real-time Semantic + Segmentation' + README: configs/bisenetv2/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.18.0/mmseg/models/backbones/bisenetv2.py#L545 + Version: v0.18.0 Models: -- Config: configs/bisenetv2/bisenetv2_fcn_4x4_1024x1024_160k_cityscapes.py +- Name: bisenetv2_fcn_4x4_1024x1024_160k_cityscapes In Collection: bisenetv2 Metadata: backbone: BiSeNetV2 crop size: (1024,1024) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 31.48 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (1024,1024) - value: 31.48 - lr schd: 160000 memory (GB): 7.64 - Name: bisenetv2_fcn_4x4_1024x1024_160k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 73.21 mIoU(ms+flip): 75.74 - Task: Semantic Segmentation + Config: configs/bisenetv2/bisenetv2_fcn_4x4_1024x1024_160k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv2/bisenetv2_fcn_4x4_1024x1024_160k_cityscapes/bisenetv2_fcn_4x4_1024x1024_160k_cityscapes_20210902_015551-bcf10f09.pth -- Config: configs/bisenetv2/bisenetv2_fcn_ohem_4x4_1024x1024_160k_cityscapes.py +- Name: bisenetv2_fcn_ohem_4x4_1024x1024_160k_cityscapes In Collection: bisenetv2 Metadata: backbone: BiSeNetV2 crop size: (1024,1024) lr schd: 160000 memory (GB): 7.64 - Name: bisenetv2_fcn_ohem_4x4_1024x1024_160k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 73.57 mIoU(ms+flip): 75.8 - Task: Semantic Segmentation + Config: configs/bisenetv2/bisenetv2_fcn_ohem_4x4_1024x1024_160k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv2/bisenetv2_fcn_ohem_4x4_1024x1024_160k_cityscapes/bisenetv2_fcn_ohem_4x4_1024x1024_160k_cityscapes_20210902_112947-5f8103b4.pth -- Config: configs/bisenetv2/bisenetv2_fcn_4x8_1024x1024_160k_cityscapes.py +- Name: bisenetv2_fcn_4x8_1024x1024_160k_cityscapes In Collection: bisenetv2 Metadata: backbone: BiSeNetV2 crop size: (1024,1024) lr schd: 160000 memory (GB): 15.05 - Name: bisenetv2_fcn_4x8_1024x1024_160k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 75.76 mIoU(ms+flip): 77.79 - Task: Semantic Segmentation + Config: configs/bisenetv2/bisenetv2_fcn_4x8_1024x1024_160k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv2/bisenetv2_fcn_4x8_1024x1024_160k_cityscapes/bisenetv2_fcn_4x8_1024x1024_160k_cityscapes_20210903_000032-e1a2eed6.pth -- Config: configs/bisenetv2/bisenetv2_fcn_fp16_4x4_1024x1024_160k_cityscapes.py +- Name: bisenetv2_fcn_fp16_4x4_1024x1024_160k_cityscapes In Collection: bisenetv2 Metadata: backbone: BiSeNetV2 crop size: (1024,1024) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 27.29 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (1024,1024) - value: 27.29 - lr schd: 160000 memory (GB): 5.77 - Name: bisenetv2_fcn_fp16_4x4_1024x1024_160k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 73.07 mIoU(ms+flip): 75.13 - Task: Semantic Segmentation + Config: configs/bisenetv2/bisenetv2_fcn_fp16_4x4_1024x1024_160k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv2/bisenetv2_fcn_fp16_4x4_1024x1024_160k_cityscapes/bisenetv2_fcn_fp16_4x4_1024x1024_160k_cityscapes_20210902_045942-b979777b.pth diff --git a/configs/ccnet/README.md b/configs/ccnet/README.md index 1c8ba1cdf7..3d2c47f26c 100644 --- a/configs/ccnet/README.md +++ b/configs/ccnet/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+CCNet (ICCV'2019) + ```latex @article{huang2018ccnet, title={CCNet: Criss-Cross Attention for Semantic Segmentation}, @@ -13,6 +20,8 @@ } ``` +
+ ## Results and models ### Cityscapes diff --git a/configs/ccnet/ccnet.yml b/configs/ccnet/ccnet.yml index 85a1c28953..d8303ba725 100644 --- a/configs/ccnet/ccnet.yml +++ b/configs/ccnet/ccnet.yml @@ -1,296 +1,305 @@ Collections: -- Metadata: +- Name: ccnet + Metadata: Training Data: - Cityscapes - ADE20K - Pascal VOC 2012 + Aug - Name: ccnet + Paper: + URL: https://arxiv.org/abs/1811.11721 + Title: 'CCNet: Criss-Cross Attention for Semantic Segmentation' + README: configs/ccnet/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/decode_heads/apc_head.py#L111 + Version: v0.17.0 + Converted From: + Code: https://github.com/speedinghzl/CCNet Models: -- Config: configs/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes.py +- Name: ccnet_r50-d8_512x1024_40k_cityscapes In Collection: ccnet Metadata: backbone: R-50-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 301.2 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 301.2 - lr schd: 40000 memory (GB): 6.0 - Name: ccnet_r50-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.76 mIoU(ms+flip): 78.87 - Task: Semantic Segmentation + Config: configs/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes/ccnet_r50-d8_512x1024_40k_cityscapes_20200616_142517-4123f401.pth -- Config: configs/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes.py +- Name: ccnet_r101-d8_512x1024_40k_cityscapes In Collection: ccnet Metadata: backbone: R-101-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 432.9 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 432.9 - lr schd: 40000 memory (GB): 9.5 - Name: ccnet_r101-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.35 mIoU(ms+flip): 78.19 - Task: Semantic Segmentation + Config: configs/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes/ccnet_r101-d8_512x1024_40k_cityscapes_20200616_142540-a3b84ba6.pth -- Config: configs/ccnet/ccnet_r50-d8_769x769_40k_cityscapes.py +- Name: ccnet_r50-d8_769x769_40k_cityscapes In Collection: ccnet Metadata: backbone: R-50-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 699.3 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 699.3 - lr schd: 40000 memory (GB): 6.8 - Name: ccnet_r50-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.46 mIoU(ms+flip): 79.93 - Task: Semantic Segmentation + Config: configs/ccnet/ccnet_r50-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_40k_cityscapes/ccnet_r50-d8_769x769_40k_cityscapes_20200616_145125-76d11884.pth -- Config: configs/ccnet/ccnet_r101-d8_769x769_40k_cityscapes.py +- Name: ccnet_r101-d8_769x769_40k_cityscapes In Collection: ccnet Metadata: backbone: R-101-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 990.1 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 990.1 - lr schd: 40000 memory (GB): 10.7 - Name: ccnet_r101-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.94 mIoU(ms+flip): 78.62 - Task: Semantic Segmentation + Config: configs/ccnet/ccnet_r101-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_40k_cityscapes/ccnet_r101-d8_769x769_40k_cityscapes_20200617_101428-4f57c8d0.pth -- Config: configs/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes.py +- Name: ccnet_r50-d8_512x1024_80k_cityscapes In Collection: ccnet Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 - Name: ccnet_r50-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.03 mIoU(ms+flip): 80.16 - Task: Semantic Segmentation + Config: configs/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes/ccnet_r50-d8_512x1024_80k_cityscapes_20200617_010421-869a3423.pth -- Config: configs/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes.py +- Name: ccnet_r101-d8_512x1024_80k_cityscapes In Collection: ccnet Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 - Name: ccnet_r101-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.87 mIoU(ms+flip): 79.9 - Task: Semantic Segmentation + Config: configs/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes/ccnet_r101-d8_512x1024_80k_cityscapes_20200617_203935-ffae8917.pth -- Config: configs/ccnet/ccnet_r50-d8_769x769_80k_cityscapes.py +- Name: ccnet_r50-d8_769x769_80k_cityscapes In Collection: ccnet Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 - Name: ccnet_r50-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.29 mIoU(ms+flip): 81.08 - Task: Semantic Segmentation + Config: configs/ccnet/ccnet_r50-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_80k_cityscapes/ccnet_r50-d8_769x769_80k_cityscapes_20200617_010421-73eed8ca.pth -- Config: configs/ccnet/ccnet_r101-d8_769x769_80k_cityscapes.py +- Name: ccnet_r101-d8_769x769_80k_cityscapes In Collection: ccnet Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 - Name: ccnet_r101-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.45 mIoU(ms+flip): 80.66 - Task: Semantic Segmentation + Config: configs/ccnet/ccnet_r101-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_80k_cityscapes/ccnet_r101-d8_769x769_80k_cityscapes_20200618_011502-ad3cd481.pth -- Config: configs/ccnet/ccnet_r50-d8_512x512_80k_ade20k.py +- Name: ccnet_r50-d8_512x512_80k_ade20k In Collection: ccnet Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 47.87 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 47.87 - lr schd: 80000 memory (GB): 8.8 - Name: ccnet_r50-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 41.78 mIoU(ms+flip): 42.98 - Task: Semantic Segmentation + Config: configs/ccnet/ccnet_r50-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_80k_ade20k/ccnet_r50-d8_512x512_80k_ade20k_20200615_014848-aa37f61e.pth -- Config: configs/ccnet/ccnet_r101-d8_512x512_80k_ade20k.py +- Name: ccnet_r101-d8_512x512_80k_ade20k In Collection: ccnet Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 70.87 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 70.87 - lr schd: 80000 memory (GB): 12.2 - Name: ccnet_r101-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.97 mIoU(ms+flip): 45.13 - Task: Semantic Segmentation + Config: configs/ccnet/ccnet_r101-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_80k_ade20k/ccnet_r101-d8_512x512_80k_ade20k_20200615_014848-1f4929a3.pth -- Config: configs/ccnet/ccnet_r50-d8_512x512_160k_ade20k.py +- Name: ccnet_r50-d8_512x512_160k_ade20k In Collection: ccnet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 - Name: ccnet_r50-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.08 mIoU(ms+flip): 43.13 - Task: Semantic Segmentation + Config: configs/ccnet/ccnet_r50-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_160k_ade20k/ccnet_r50-d8_512x512_160k_ade20k_20200616_084435-7c97193b.pth -- Config: configs/ccnet/ccnet_r101-d8_512x512_160k_ade20k.py +- Name: ccnet_r101-d8_512x512_160k_ade20k In Collection: ccnet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 - Name: ccnet_r101-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.71 mIoU(ms+flip): 45.04 - Task: Semantic Segmentation + Config: configs/ccnet/ccnet_r101-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_160k_ade20k/ccnet_r101-d8_512x512_160k_ade20k_20200616_000644-e849e007.pth -- Config: configs/ccnet/ccnet_r50-d8_512x512_20k_voc12aug.py +- Name: ccnet_r50-d8_512x512_20k_voc12aug In Collection: ccnet Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 48.9 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 48.9 - lr schd: 20000 memory (GB): 6.0 - Name: ccnet_r50-d8_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.17 mIoU(ms+flip): 77.51 - Task: Semantic Segmentation + Config: configs/ccnet/ccnet_r50-d8_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_20k_voc12aug/ccnet_r50-d8_512x512_20k_voc12aug_20200617_193212-fad81784.pth -- Config: configs/ccnet/ccnet_r101-d8_512x512_20k_voc12aug.py +- Name: ccnet_r101-d8_512x512_20k_voc12aug In Collection: ccnet Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 73.31 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 73.31 - lr schd: 20000 memory (GB): 9.5 - Name: ccnet_r101-d8_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.27 mIoU(ms+flip): 79.02 - Task: Semantic Segmentation + Config: configs/ccnet/ccnet_r101-d8_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_20k_voc12aug/ccnet_r101-d8_512x512_20k_voc12aug_20200617_193212-0007b61d.pth -- Config: configs/ccnet/ccnet_r50-d8_512x512_40k_voc12aug.py +- Name: ccnet_r50-d8_512x512_40k_voc12aug In Collection: ccnet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 40000 - Name: ccnet_r50-d8_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 75.96 mIoU(ms+flip): 77.04 - Task: Semantic Segmentation + Config: configs/ccnet/ccnet_r50-d8_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_40k_voc12aug/ccnet_r50-d8_512x512_40k_voc12aug_20200613_232127-c2a15f02.pth -- Config: configs/ccnet/ccnet_r101-d8_512x512_40k_voc12aug.py +- Name: ccnet_r101-d8_512x512_40k_voc12aug In Collection: ccnet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 40000 - Name: ccnet_r101-d8_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.87 mIoU(ms+flip): 78.9 - Task: Semantic Segmentation + Config: configs/ccnet/ccnet_r101-d8_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_40k_voc12aug/ccnet_r101-d8_512x512_40k_voc12aug_20200613_232127-c30da577.pth diff --git a/configs/cgnet/README.md b/configs/cgnet/README.md index f1cad20510..f7c9b1f160 100644 --- a/configs/cgnet/README.md +++ b/configs/cgnet/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+CGNet (TIP'2020) + ```latext @article{wu2020cgnet, title={Cgnet: A light-weight context guided network for semantic segmentation}, @@ -16,6 +23,8 @@ } ``` +
+ ## Results and models ### Cityscapes diff --git a/configs/cgnet/cgnet.yml b/configs/cgnet/cgnet.yml index c4a41aa7b3..d3169e9255 100644 --- a/configs/cgnet/cgnet.yml +++ b/configs/cgnet/cgnet.yml @@ -1,50 +1,59 @@ Collections: -- Metadata: +- Name: cgnet + Metadata: Training Data: - Cityscapes - Name: cgnet + Paper: + URL: https://arxiv.org/pdf/1811.08201.pdf + Title: 'CGNet: A Light-weight Context Guided Network for Semantic Segmentation' + README: configs/cgnet/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/backbones/cgnet.py#L187 + Version: v0.17.0 + Converted From: + Code: https://github.com/wutianyiRosun/CGNet Models: -- Config: configs/cgnet/cgnet_680x680_60k_cityscapes.py +- Name: cgnet_680x680_60k_cityscapes In Collection: cgnet Metadata: backbone: M3N21 crop size: (680,680) + lr schd: 60000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 32.78 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (680,680) - value: 32.78 - lr schd: 60000 memory (GB): 7.5 - Name: cgnet_680x680_60k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 65.63 mIoU(ms+flip): 68.04 - Task: Semantic Segmentation + Config: configs/cgnet/cgnet_680x680_60k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_680x680_60k_cityscapes/cgnet_680x680_60k_cityscapes_20201101_110253-4c0b2f2d.pth -- Config: configs/cgnet/cgnet_512x1024_60k_cityscapes.py +- Name: cgnet_512x1024_60k_cityscapes In Collection: cgnet Metadata: backbone: M3N21 crop size: (512,1024) + lr schd: 60000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 32.11 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 32.11 - lr schd: 60000 memory (GB): 8.3 - Name: cgnet_512x1024_60k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 68.27 mIoU(ms+flip): 70.33 - Task: Semantic Segmentation + Config: configs/cgnet/cgnet_512x1024_60k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_512x1024_60k_cityscapes/cgnet_512x1024_60k_cityscapes_20201101_110254-124ea03b.pth diff --git a/configs/danet/README.md b/configs/danet/README.md index 655a845c6a..40952039da 100644 --- a/configs/danet/README.md +++ b/configs/danet/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+DANet (CVPR'2019) + ```latex @article{fu2018dual, title={Dual Attention Network for Scene Segmentation}, @@ -13,6 +20,8 @@ } ``` +
+ ## Results and models ### Cityscapes diff --git a/configs/danet/danet.yml b/configs/danet/danet.yml index c7857aeb88..33bec94117 100644 --- a/configs/danet/danet.yml +++ b/configs/danet/danet.yml @@ -1,292 +1,301 @@ Collections: -- Metadata: +- Name: danet + Metadata: Training Data: - Cityscapes - ADE20K - Pascal VOC 2012 + Aug - Name: danet + Paper: + URL: https://arxiv.org/abs/1809.02983 + Title: Dual Attention Network for Scene Segmentation + README: configs/danet/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/decode_heads/da_head.py#L76 + Version: v0.17.0 + Converted From: + Code: https://github.com/junfu1115/DANet/ Models: -- Config: configs/danet/danet_r50-d8_512x1024_40k_cityscapes.py +- Name: danet_r50-d8_512x1024_40k_cityscapes In Collection: danet Metadata: backbone: R-50-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 375.94 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 375.94 - lr schd: 40000 memory (GB): 7.4 - Name: danet_r50-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.74 - Task: Semantic Segmentation + Config: configs/danet/danet_r50-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_40k_cityscapes/danet_r50-d8_512x1024_40k_cityscapes_20200605_191324-c0dbfa5f.pth -- Config: configs/danet/danet_r101-d8_512x1024_40k_cityscapes.py +- Name: danet_r101-d8_512x1024_40k_cityscapes In Collection: danet Metadata: backbone: R-101-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 502.51 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 502.51 - lr schd: 40000 memory (GB): 10.9 - Name: danet_r101-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.52 - Task: Semantic Segmentation + Config: configs/danet/danet_r101-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_40k_cityscapes/danet_r101-d8_512x1024_40k_cityscapes_20200605_200831-c57a7157.pth -- Config: configs/danet/danet_r50-d8_769x769_40k_cityscapes.py +- Name: danet_r50-d8_769x769_40k_cityscapes In Collection: danet Metadata: backbone: R-50-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 641.03 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 641.03 - lr schd: 40000 memory (GB): 8.8 - Name: danet_r50-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.88 mIoU(ms+flip): 80.62 - Task: Semantic Segmentation + Config: configs/danet/danet_r50-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_40k_cityscapes/danet_r50-d8_769x769_40k_cityscapes_20200530_025703-76681c60.pth -- Config: configs/danet/danet_r101-d8_769x769_40k_cityscapes.py +- Name: danet_r101-d8_769x769_40k_cityscapes In Collection: danet Metadata: backbone: R-101-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 934.58 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 934.58 - lr schd: 40000 memory (GB): 12.8 - Name: danet_r101-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.88 mIoU(ms+flip): 81.47 - Task: Semantic Segmentation + Config: configs/danet/danet_r101-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_40k_cityscapes/danet_r101-d8_769x769_40k_cityscapes_20200530_025717-dcb7fd4e.pth -- Config: configs/danet/danet_r50-d8_512x1024_80k_cityscapes.py +- Name: danet_r50-d8_512x1024_80k_cityscapes In Collection: danet Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 - Name: danet_r50-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.34 - Task: Semantic Segmentation + Config: configs/danet/danet_r50-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_80k_cityscapes/danet_r50-d8_512x1024_80k_cityscapes_20200607_133029-2bfa2293.pth -- Config: configs/danet/danet_r101-d8_512x1024_80k_cityscapes.py +- Name: danet_r101-d8_512x1024_80k_cityscapes In Collection: danet Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 - Name: danet_r101-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.41 - Task: Semantic Segmentation + Config: configs/danet/danet_r101-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_80k_cityscapes/danet_r101-d8_512x1024_80k_cityscapes_20200607_132918-955e6350.pth -- Config: configs/danet/danet_r50-d8_769x769_80k_cityscapes.py +- Name: danet_r50-d8_769x769_80k_cityscapes In Collection: danet Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 - Name: danet_r50-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.27 mIoU(ms+flip): 80.96 - Task: Semantic Segmentation + Config: configs/danet/danet_r50-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_80k_cityscapes/danet_r50-d8_769x769_80k_cityscapes_20200607_132954-495689b4.pth -- Config: configs/danet/danet_r101-d8_769x769_80k_cityscapes.py +- Name: danet_r101-d8_769x769_80k_cityscapes In Collection: danet Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 - Name: danet_r101-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.47 mIoU(ms+flip): 82.02 - Task: Semantic Segmentation + Config: configs/danet/danet_r101-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_80k_cityscapes/danet_r101-d8_769x769_80k_cityscapes_20200607_132918-f3a929e7.pth -- Config: configs/danet/danet_r50-d8_512x512_80k_ade20k.py +- Name: danet_r50-d8_512x512_80k_ade20k In Collection: danet Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 47.17 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 47.17 - lr schd: 80000 memory (GB): 11.5 - Name: danet_r50-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 41.66 mIoU(ms+flip): 42.9 - Task: Semantic Segmentation + Config: configs/danet/danet_r50-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_80k_ade20k/danet_r50-d8_512x512_80k_ade20k_20200615_015125-edb18e08.pth -- Config: configs/danet/danet_r101-d8_512x512_80k_ade20k.py +- Name: danet_r101-d8_512x512_80k_ade20k In Collection: danet Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 70.52 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 70.52 - lr schd: 80000 memory (GB): 15.0 - Name: danet_r101-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.64 mIoU(ms+flip): 45.19 - Task: Semantic Segmentation + Config: configs/danet/danet_r101-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_80k_ade20k/danet_r101-d8_512x512_80k_ade20k_20200615_015126-d0357c73.pth -- Config: configs/danet/danet_r50-d8_512x512_160k_ade20k.py +- Name: danet_r50-d8_512x512_160k_ade20k In Collection: danet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 - Name: danet_r50-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.45 mIoU(ms+flip): 43.25 - Task: Semantic Segmentation + Config: configs/danet/danet_r50-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_160k_ade20k/danet_r50-d8_512x512_160k_ade20k_20200616_082340-9cb35dcd.pth -- Config: configs/danet/danet_r101-d8_512x512_160k_ade20k.py +- Name: danet_r101-d8_512x512_160k_ade20k In Collection: danet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 - Name: danet_r101-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 44.17 mIoU(ms+flip): 45.02 - Task: Semantic Segmentation + Config: configs/danet/danet_r101-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_160k_ade20k/danet_r101-d8_512x512_160k_ade20k_20200616_082348-23bf12f9.pth -- Config: configs/danet/danet_r50-d8_512x512_20k_voc12aug.py +- Name: danet_r50-d8_512x512_20k_voc12aug In Collection: danet Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 47.76 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 47.76 - lr schd: 20000 memory (GB): 6.5 - Name: danet_r50-d8_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 74.45 mIoU(ms+flip): 75.69 - Task: Semantic Segmentation + Config: configs/danet/danet_r50-d8_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_20k_voc12aug/danet_r50-d8_512x512_20k_voc12aug_20200618_070026-9e9e3ab3.pth -- Config: configs/danet/danet_r101-d8_512x512_20k_voc12aug.py +- Name: danet_r101-d8_512x512_20k_voc12aug In Collection: danet Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 72.67 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 72.67 - lr schd: 20000 memory (GB): 9.9 - Name: danet_r101-d8_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.02 mIoU(ms+flip): 77.23 - Task: Semantic Segmentation + Config: configs/danet/danet_r101-d8_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_20k_voc12aug/danet_r101-d8_512x512_20k_voc12aug_20200618_070026-d48d23b2.pth -- Config: configs/danet/danet_r50-d8_512x512_40k_voc12aug.py +- Name: danet_r50-d8_512x512_40k_voc12aug In Collection: danet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 40000 - Name: danet_r50-d8_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.37 mIoU(ms+flip): 77.29 - Task: Semantic Segmentation + Config: configs/danet/danet_r50-d8_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_40k_voc12aug/danet_r50-d8_512x512_40k_voc12aug_20200613_235526-426e3a64.pth -- Config: configs/danet/danet_r101-d8_512x512_40k_voc12aug.py +- Name: danet_r101-d8_512x512_40k_voc12aug In Collection: danet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 40000 - Name: danet_r101-d8_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.51 mIoU(ms+flip): 77.32 - Task: Semantic Segmentation + Config: configs/danet/danet_r101-d8_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_40k_voc12aug/danet_r101-d8_512x512_40k_voc12aug_20200613_223031-788e232a.pth diff --git a/configs/deeplabv3/README.md b/configs/deeplabv3/README.md index b40fe0dfa5..28bdbb9066 100644 --- a/configs/deeplabv3/README.md +++ b/configs/deeplabv3/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+DeepLabV3 (ArXiv'2017) + ```latext @article{chen2017rethinking, title={Rethinking atrous convolution for semantic image segmentation}, @@ -13,6 +20,8 @@ } ``` +
+ ## Results and models :::{note} diff --git a/configs/deeplabv3/deeplabv3.yml b/configs/deeplabv3/deeplabv3.yml index 1d2b7caf1f..94acb59580 100644 --- a/configs/deeplabv3/deeplabv3.yml +++ b/configs/deeplabv3/deeplabv3.yml @@ -1,5 +1,6 @@ Collections: -- Metadata: +- Name: deeplabv3 + Metadata: Training Data: - Cityscapes - ADE20K @@ -8,719 +9,727 @@ Collections: - Pascal Context 59 - COCO-Stuff 10k - COCO-Stuff 164k - Name: deeplabv3 + Paper: + URL: https://arxiv.org/abs/1706.05587 + Title: Rethinking atrous convolution for semantic image segmentation + README: configs/deeplabv3/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/decode_heads/aspp_head.py#L54 + Version: v0.17.0 + Converted From: + Code: https://github.com/tensorflow/models/tree/master/research/deeplab Models: -- Config: configs/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes.py +- Name: deeplabv3_r50-d8_512x1024_40k_cityscapes In Collection: deeplabv3 Metadata: backbone: R-50-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 389.11 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 389.11 - lr schd: 40000 memory (GB): 6.1 - Name: deeplabv3_r50-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.09 mIoU(ms+flip): 80.45 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes/deeplabv3_r50-d8_512x1024_40k_cityscapes_20200605_022449-acadc2f8.pth -- Config: configs/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes.py +- Name: deeplabv3_r101-d8_512x1024_40k_cityscapes In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 520.83 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 520.83 - lr schd: 40000 memory (GB): 9.6 - Name: deeplabv3_r101-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.12 mIoU(ms+flip): 79.61 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes/deeplabv3_r101-d8_512x1024_40k_cityscapes_20200605_012241-7fd3f799.pth -- Config: configs/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes.py +- Name: deeplabv3_r50-d8_769x769_40k_cityscapes In Collection: deeplabv3 Metadata: backbone: R-50-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 900.9 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 900.9 - lr schd: 40000 memory (GB): 6.9 - Name: deeplabv3_r50-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.58 mIoU(ms+flip): 79.89 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes/deeplabv3_r50-d8_769x769_40k_cityscapes_20200606_113723-7eda553c.pth -- Config: configs/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes.py +- Name: deeplabv3_r101-d8_769x769_40k_cityscapes In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 1204.82 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 1204.82 - lr schd: 40000 memory (GB): 10.9 - Name: deeplabv3_r101-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.27 mIoU(ms+flip): 80.11 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes/deeplabv3_r101-d8_769x769_40k_cityscapes_20200606_113809-c64f889f.pth -- Config: configs/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes.py +- Name: deeplabv3_r18-d8_512x1024_80k_cityscapes In Collection: deeplabv3 Metadata: backbone: R-18-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 72.57 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 72.57 - lr schd: 80000 memory (GB): 1.7 - Name: deeplabv3_r18-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.7 mIoU(ms+flip): 78.27 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes/deeplabv3_r18-d8_512x1024_80k_cityscapes_20201225_021506-23dffbe2.pth -- Config: configs/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes.py +- Name: deeplabv3_r50-d8_512x1024_80k_cityscapes In Collection: deeplabv3 Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 - Name: deeplabv3_r50-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.32 mIoU(ms+flip): 80.57 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes/deeplabv3_r50-d8_512x1024_80k_cityscapes_20200606_113404-b92cfdd4.pth -- Config: configs/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py +- Name: deeplabv3_r101-d8_512x1024_80k_cityscapes In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 - Name: deeplabv3_r101-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.2 mIoU(ms+flip): 81.21 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes/deeplabv3_r101-d8_512x1024_80k_cityscapes_20200606_113503-9e428899.pth -- Config: configs/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes.py +- Name: deeplabv3_r18-d8_769x769_80k_cityscapes In Collection: deeplabv3 Metadata: backbone: R-18-D8 crop size: (769,769) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 180.18 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 180.18 - lr schd: 80000 memory (GB): 1.9 - Name: deeplabv3_r18-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.6 mIoU(ms+flip): 78.26 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes/deeplabv3_r18-d8_769x769_80k_cityscapes_20201225_021506-6452126a.pth -- Config: configs/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes.py +- Name: deeplabv3_r50-d8_769x769_80k_cityscapes In Collection: deeplabv3 Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 - Name: deeplabv3_r50-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.89 mIoU(ms+flip): 81.06 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes/deeplabv3_r50-d8_769x769_80k_cityscapes_20200606_221338-788d6228.pth -- Config: configs/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes.py +- Name: deeplabv3_r101-d8_769x769_80k_cityscapes In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 - Name: deeplabv3_r101-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.67 mIoU(ms+flip): 80.81 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes/deeplabv3_r101-d8_769x769_80k_cityscapes_20200607_013353-60e95418.pth -- Config: configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py +- Name: deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes In Collection: deeplabv3 Metadata: backbone: R-101-D16-MG124 crop size: (512,1024) lr schd: 80000 - Name: deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.36 mIoU(ms+flip): 79.84 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes_20200908_005644-57bb8425.pth -- Config: configs/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes.py +- Name: deeplabv3_r18b-d8_512x1024_80k_cityscapes In Collection: deeplabv3 Metadata: backbone: R-18b-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 71.79 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 71.79 - lr schd: 80000 memory (GB): 1.6 - Name: deeplabv3_r18b-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.26 mIoU(ms+flip): 77.88 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes/deeplabv3_r18b-d8_512x1024_80k_cityscapes_20201225_094144-46040cef.pth -- Config: configs/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes.py +- Name: deeplabv3_r50b-d8_512x1024_80k_cityscapes In Collection: deeplabv3 Metadata: backbone: R-50b-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 364.96 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 364.96 - lr schd: 80000 memory (GB): 6.0 - Name: deeplabv3_r50b-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.63 mIoU(ms+flip): 80.98 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes/deeplabv3_r50b-d8_512x1024_80k_cityscapes_20201225_155148-ec368954.pth -- Config: configs/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes.py +- Name: deeplabv3_r101b-d8_512x1024_80k_cityscapes In Collection: deeplabv3 Metadata: backbone: R-101b-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 552.49 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 552.49 - lr schd: 80000 memory (GB): 9.5 - Name: deeplabv3_r101b-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.01 mIoU(ms+flip): 81.21 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes/deeplabv3_r101b-d8_512x1024_80k_cityscapes_20201226_171821-8fd49503.pth -- Config: configs/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes.py +- Name: deeplabv3_r18b-d8_769x769_80k_cityscapes In Collection: deeplabv3 Metadata: backbone: R-18b-D8 crop size: (769,769) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 172.71 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 172.71 - lr schd: 80000 memory (GB): 1.8 - Name: deeplabv3_r18b-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.63 mIoU(ms+flip): 77.51 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes/deeplabv3_r18b-d8_769x769_80k_cityscapes_20201225_094144-fdc985d9.pth -- Config: configs/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes.py +- Name: deeplabv3_r50b-d8_769x769_80k_cityscapes In Collection: deeplabv3 Metadata: backbone: R-50b-D8 crop size: (769,769) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 862.07 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 862.07 - lr schd: 80000 memory (GB): 6.8 - Name: deeplabv3_r50b-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.8 mIoU(ms+flip): 80.27 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes/deeplabv3_r50b-d8_769x769_80k_cityscapes_20201225_155404-87fb0cf4.pth -- Config: configs/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes.py +- Name: deeplabv3_r101b-d8_769x769_80k_cityscapes In Collection: deeplabv3 Metadata: backbone: R-101b-D8 crop size: (769,769) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 1219.51 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 1219.51 - lr schd: 80000 memory (GB): 10.7 - Name: deeplabv3_r101b-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.41 mIoU(ms+flip): 80.73 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes/deeplabv3_r101b-d8_769x769_80k_cityscapes_20201226_190843-9142ee57.pth -- Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k.py +- Name: deeplabv3_r50-d8_512x512_80k_ade20k In Collection: deeplabv3 Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 67.75 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 67.75 - lr schd: 80000 memory (GB): 8.9 - Name: deeplabv3_r50-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.42 mIoU(ms+flip): 43.28 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k/deeplabv3_r50-d8_512x512_80k_ade20k_20200614_185028-0bb3f844.pth -- Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k.py +- Name: deeplabv3_r101-d8_512x512_80k_ade20k In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 98.62 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 98.62 - lr schd: 80000 memory (GB): 12.4 - Name: deeplabv3_r101-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 44.08 mIoU(ms+flip): 45.19 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k/deeplabv3_r101-d8_512x512_80k_ade20k_20200615_021256-d89c7fa4.pth -- Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k.py +- Name: deeplabv3_r50-d8_512x512_160k_ade20k In Collection: deeplabv3 Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 - Name: deeplabv3_r50-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.66 mIoU(ms+flip): 44.09 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k/deeplabv3_r50-d8_512x512_160k_ade20k_20200615_123227-5d0ee427.pth -- Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k.py +- Name: deeplabv3_r101-d8_512x512_160k_ade20k In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 - Name: deeplabv3_r101-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 45.0 mIoU(ms+flip): 46.66 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k/deeplabv3_r101-d8_512x512_160k_ade20k_20200615_105816-b1f72b3b.pth -- Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug.py +- Name: deeplabv3_r50-d8_512x512_20k_voc12aug In Collection: deeplabv3 Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 72.05 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 72.05 - lr schd: 20000 memory (GB): 6.1 - Name: deeplabv3_r50-d8_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.17 mIoU(ms+flip): 77.42 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug/deeplabv3_r50-d8_512x512_20k_voc12aug_20200617_010906-596905ef.pth -- Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug.py +- Name: deeplabv3_r101-d8_512x512_20k_voc12aug In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 101.94 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 101.94 - lr schd: 20000 memory (GB): 9.6 - Name: deeplabv3_r101-d8_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 78.7 mIoU(ms+flip): 79.95 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug/deeplabv3_r101-d8_512x512_20k_voc12aug_20200617_010932-8d13832f.pth -- Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug.py +- Name: deeplabv3_r50-d8_512x512_40k_voc12aug In Collection: deeplabv3 Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 40000 - Name: deeplabv3_r50-d8_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.68 mIoU(ms+flip): 78.78 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug/deeplabv3_r50-d8_512x512_40k_voc12aug_20200613_161546-2ae96e7e.pth -- Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug.py +- Name: deeplabv3_r101-d8_512x512_40k_voc12aug In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 40000 - Name: deeplabv3_r101-d8_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.92 mIoU(ms+flip): 79.18 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug/deeplabv3_r101-d8_512x512_40k_voc12aug_20200613_161432-0017d784.pth -- Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context.py +- Name: deeplabv3_r101-d8_480x480_40k_pascal_context In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (480,480) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 141.04 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (480,480) - value: 141.04 - lr schd: 40000 memory (GB): 9.2 - Name: deeplabv3_r101-d8_480x480_40k_pascal_context Results: + - Task: Semantic Segmentation Dataset: Pascal Context Metrics: mIoU: 46.55 mIoU(ms+flip): 47.81 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context/deeplabv3_r101-d8_480x480_40k_pascal_context_20200911_204118-1aa27336.pth -- Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context.py +- Name: deeplabv3_r101-d8_480x480_80k_pascal_context In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (480,480) lr schd: 80000 - Name: deeplabv3_r101-d8_480x480_80k_pascal_context Results: + - Task: Semantic Segmentation Dataset: Pascal Context Metrics: mIoU: 46.42 mIoU(ms+flip): 47.53 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context/deeplabv3_r101-d8_480x480_80k_pascal_context_20200911_170155-2a21fff3.pth -- Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context_59.py +- Name: deeplabv3_r101-d8_480x480_40k_pascal_context_59 In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (480,480) lr schd: 40000 - Name: deeplabv3_r101-d8_480x480_40k_pascal_context_59 Results: + - Task: Semantic Segmentation Dataset: Pascal Context 59 Metrics: mIoU: 52.61 mIoU(ms+flip): 54.28 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context_59.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context_59/deeplabv3_r101-d8_480x480_40k_pascal_context_59_20210416_110332-cb08ea46.pth -- Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context_59.py +- Name: deeplabv3_r101-d8_480x480_80k_pascal_context_59 In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (480,480) lr schd: 80000 - Name: deeplabv3_r101-d8_480x480_80k_pascal_context_59 Results: + - Task: Semantic Segmentation Dataset: Pascal Context 59 Metrics: mIoU: 52.46 mIoU(ms+flip): 54.09 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context_59.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context_59/deeplabv3_r101-d8_480x480_80k_pascal_context_59_20210416_113002-26303993.pth -- Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k.py +- Name: deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k In Collection: deeplabv3 Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 92.59 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 92.59 - lr schd: 20000 memory (GB): 9.6 - Name: deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k Results: + - Task: Semantic Segmentation Dataset: COCO-Stuff 10k Metrics: mIoU: 34.66 mIoU(ms+flip): 36.08 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k/deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k_20210821_043025-b35f789d.pth -- Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k.py +- Name: deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 114.94 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 114.94 - lr schd: 20000 memory (GB): 13.2 - Name: deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k Results: + - Task: Semantic Segmentation Dataset: COCO-Stuff 10k Metrics: mIoU: 37.3 mIoU(ms+flip): 38.42 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k/deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k_20210821_043025-c49752cb.pth -- Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k.py +- Name: deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k In Collection: deeplabv3 Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 40000 - Name: deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k Results: + - Task: Semantic Segmentation Dataset: COCO-Stuff 10k Metrics: mIoU: 35.73 mIoU(ms+flip): 37.09 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k/deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k_20210821_043305-dc76f3ff.pth -- Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k.py +- Name: deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 40000 - Name: deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k Results: + - Task: Semantic Segmentation Dataset: COCO-Stuff 10k Metrics: mIoU: 37.81 mIoU(ms+flip): 38.8 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k/deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k_20210821_043305-636cb433.pth -- Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k.py +- Name: deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k In Collection: deeplabv3 Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 92.59 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 92.59 - lr schd: 80000 memory (GB): 9.6 - Name: deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k Results: + - Task: Semantic Segmentation Dataset: COCO-Stuff 164k Metrics: mIoU: 39.38 mIoU(ms+flip): 40.03 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k/deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k_20210709_163016-88675c24.pth -- Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k.py +- Name: deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 114.94 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 114.94 - lr schd: 80000 memory (GB): 13.2 - Name: deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k Results: + - Task: Semantic Segmentation Dataset: COCO-Stuff 164k Metrics: mIoU: 40.87 mIoU(ms+flip): 41.5 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k/deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k_20210709_201252-13600dc2.pth -- Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k.py +- Name: deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k In Collection: deeplabv3 Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 - Name: deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k Results: + - Task: Semantic Segmentation Dataset: COCO-Stuff 164k Metrics: mIoU: 41.09 mIoU(ms+flip): 41.69 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k/deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k_20210709_163016-49f2812b.pth -- Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k.py +- Name: deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 - Name: deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k Results: + - Task: Semantic Segmentation Dataset: COCO-Stuff 164k Metrics: mIoU: 41.82 mIoU(ms+flip): 42.49 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k_20210709_155402-f035acfd.pth -- Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k.py +- Name: deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k In Collection: deeplabv3 Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 320000 - Name: deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k Results: + - Task: Semantic Segmentation Dataset: COCO-Stuff 164k Metrics: mIoU: 41.37 mIoU(ms+flip): 42.22 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k_20210709_155403-51b21115.pth -- Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k.py +- Name: deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k In Collection: deeplabv3 Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 320000 - Name: deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k Results: + - Task: Semantic Segmentation Dataset: COCO-Stuff 164k Metrics: mIoU: 42.61 mIoU(ms+flip): 43.42 - Task: Semantic Segmentation + Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k_20210709_155402-3cbca14d.pth diff --git a/configs/deeplabv3plus/README.md b/configs/deeplabv3plus/README.md index 16702feb39..bf6c5d50ab 100644 --- a/configs/deeplabv3plus/README.md +++ b/configs/deeplabv3plus/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+DeepLabV3+ (CVPR'2018) + ```latex @inproceedings{deeplabv3plus2018, title={Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation}, @@ -13,6 +20,8 @@ } ``` +
+ ## Results and models :::{note} diff --git a/configs/deeplabv3plus/deeplabv3plus.yml b/configs/deeplabv3plus/deeplabv3plus.yml index d681d3089d..ff78da378b 100644 --- a/configs/deeplabv3plus/deeplabv3plus.yml +++ b/configs/deeplabv3plus/deeplabv3plus.yml @@ -1,574 +1,580 @@ Collections: -- Metadata: +- Name: deeplabv3plus + Metadata: Training Data: - Cityscapes - ADE20K - - ' Pascal VOC 2012 + Aug' - - ' Pascal Context' - - ' Pascal Context 59' - Name: deeplabv3plus + Paper: + URL: https://arxiv.org/abs/1802.02611 + Title: Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation + README: configs/deeplabv3plus/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/decode_heads/sep_aspp_head.py#L30 + Version: v0.17.0 + Converted From: + Code: https://github.com/tensorflow/models/tree/master/research/deeplab Models: -- Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py +- Name: deeplabv3plus_r50-d8_512x1024_40k_cityscapes In Collection: deeplabv3plus Metadata: backbone: R-50-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 253.81 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 253.81 - lr schd: 40000 memory (GB): 7.5 - Name: deeplabv3plus_r50-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.61 mIoU(ms+flip): 81.01 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes/deeplabv3plus_r50-d8_512x1024_40k_cityscapes_20200605_094610-d222ffcd.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes.py +- Name: deeplabv3plus_r101-d8_512x1024_40k_cityscapes In Collection: deeplabv3plus Metadata: backbone: R-101-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 384.62 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 384.62 - lr schd: 40000 memory (GB): 11.0 - Name: deeplabv3plus_r101-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.21 mIoU(ms+flip): 81.82 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes/deeplabv3plus_r101-d8_512x1024_40k_cityscapes_20200605_094614-3769eecf.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes.py +- Name: deeplabv3plus_r50-d8_769x769_40k_cityscapes In Collection: deeplabv3plus Metadata: backbone: R-50-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 581.4 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 581.4 - lr schd: 40000 memory (GB): 8.5 - Name: deeplabv3plus_r50-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.97 mIoU(ms+flip): 80.46 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes/deeplabv3plus_r50-d8_769x769_40k_cityscapes_20200606_114143-1dcb0e3c.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes.py +- Name: deeplabv3plus_r101-d8_769x769_40k_cityscapes In Collection: deeplabv3plus Metadata: backbone: R-101-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 869.57 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 869.57 - lr schd: 40000 memory (GB): 12.5 - Name: deeplabv3plus_r101-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.46 mIoU(ms+flip): 80.5 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes/deeplabv3plus_r101-d8_769x769_40k_cityscapes_20200606_114304-ff414b9e.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py +- Name: deeplabv3plus_r18-d8_512x1024_80k_cityscapes In Collection: deeplabv3plus Metadata: backbone: R-18-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 70.08 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 70.08 - lr schd: 80000 memory (GB): 2.2 - Name: deeplabv3plus_r18-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.89 mIoU(ms+flip): 78.76 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes/deeplabv3plus_r18-d8_512x1024_80k_cityscapes_20201226_080942-cff257fe.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py +- Name: deeplabv3plus_r50-d8_512x1024_80k_cityscapes In Collection: deeplabv3plus Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 - Name: deeplabv3plus_r50-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.09 mIoU(ms+flip): 81.13 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes/deeplabv3plus_r50-d8_512x1024_80k_cityscapes_20200606_114049-f9fb496d.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py +- Name: deeplabv3plus_r101-d8_512x1024_80k_cityscapes In Collection: deeplabv3plus Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 - Name: deeplabv3plus_r101-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.97 mIoU(ms+flip): 82.03 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143-068fcfe9.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes.py +- Name: deeplabv3plus_r18-d8_769x769_80k_cityscapes In Collection: deeplabv3plus Metadata: backbone: R-18-D8 crop size: (769,769) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 174.22 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 174.22 - lr schd: 80000 memory (GB): 2.5 - Name: deeplabv3plus_r18-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.26 mIoU(ms+flip): 77.91 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes/deeplabv3plus_r18-d8_769x769_80k_cityscapes_20201226_083346-f326e06a.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py +- Name: deeplabv3plus_r50-d8_769x769_80k_cityscapes In Collection: deeplabv3plus Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 - Name: deeplabv3plus_r50-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.83 mIoU(ms+flip): 81.48 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes/deeplabv3plus_r50-d8_769x769_80k_cityscapes_20200606_210233-0e9dfdc4.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes.py +- Name: deeplabv3plus_r101-d8_769x769_80k_cityscapes In Collection: deeplabv3plus Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 - Name: deeplabv3plus_r101-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.98 mIoU(ms+flip): 82.18 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes/deeplabv3plus_r101-d8_769x769_80k_cityscapes_20200607_000405-a7573d20.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py +- Name: deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes In Collection: deeplabv3plus Metadata: backbone: R-101-D16-MG124 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 133.69 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 133.69 - lr schd: 40000 memory (GB): 5.8 - Name: deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.09 mIoU(ms+flip): 80.36 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes_20200908_005644-cf9ce186.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py +- Name: deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes In Collection: deeplabv3plus Metadata: backbone: R-101-D16-MG124 crop size: (512,1024) lr schd: 80000 memory (GB): 9.9 - Name: deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.9 mIoU(ms+flip): 81.33 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes_20200908_005644-ee6158e0.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py +- Name: deeplabv3plus_r18b-d8_512x1024_80k_cityscapes In Collection: deeplabv3plus Metadata: backbone: R-18b-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 66.89 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 66.89 - lr schd: 80000 memory (GB): 2.1 - Name: deeplabv3plus_r18b-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 75.87 mIoU(ms+flip): 77.52 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes_20201226_090828-e451abd9.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes.py +- Name: deeplabv3plus_r50b-d8_512x1024_80k_cityscapes In Collection: deeplabv3plus Metadata: backbone: R-50b-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 253.81 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 253.81 - lr schd: 80000 memory (GB): 7.4 - Name: deeplabv3plus_r50b-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.28 mIoU(ms+flip): 81.44 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes_20201225_213645-a97e4e43.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py +- Name: deeplabv3plus_r101b-d8_512x1024_80k_cityscapes In Collection: deeplabv3plus Metadata: backbone: R-101b-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 384.62 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 384.62 - lr schd: 80000 memory (GB): 10.9 - Name: deeplabv3plus_r101b-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.16 mIoU(ms+flip): 81.41 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes_20201226_190843-9c3c93a4.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py +- Name: deeplabv3plus_r18b-d8_769x769_80k_cityscapes In Collection: deeplabv3plus Metadata: backbone: R-18b-D8 crop size: (769,769) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 167.79 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 167.79 - lr schd: 80000 memory (GB): 2.4 - Name: deeplabv3plus_r18b-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.36 mIoU(ms+flip): 78.24 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes/deeplabv3plus_r18b-d8_769x769_80k_cityscapes_20201226_151312-2c868aff.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes.py +- Name: deeplabv3plus_r50b-d8_769x769_80k_cityscapes In Collection: deeplabv3plus Metadata: backbone: R-50b-D8 crop size: (769,769) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 581.4 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 581.4 - lr schd: 80000 memory (GB): 8.4 - Name: deeplabv3plus_r50b-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.41 mIoU(ms+flip): 80.56 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes/deeplabv3plus_r50b-d8_769x769_80k_cityscapes_20201225_224655-8b596d1c.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py +- Name: deeplabv3plus_r101b-d8_769x769_80k_cityscapes In Collection: deeplabv3plus Metadata: backbone: R-101b-D8 crop size: (769,769) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 909.09 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 909.09 - lr schd: 80000 memory (GB): 12.3 - Name: deeplabv3plus_r101b-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.88 mIoU(ms+flip): 81.46 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes/deeplabv3plus_r101b-d8_769x769_80k_cityscapes_20201226_205041-227cdf7c.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k.py +- Name: deeplabv3plus_r50-d8_512x512_80k_ade20k In Collection: deeplabv3plus Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 47.6 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 47.6 - lr schd: 80000 memory (GB): 10.6 - Name: deeplabv3plus_r50-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.72 mIoU(ms+flip): 43.75 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k/deeplabv3plus_r50-d8_512x512_80k_ade20k_20200614_185028-bf1400d8.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k.py +- Name: deeplabv3plus_r101-d8_512x512_80k_ade20k In Collection: deeplabv3plus Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 70.62 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 70.62 - lr schd: 80000 memory (GB): 14.1 - Name: deeplabv3plus_r101-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 44.6 mIoU(ms+flip): 46.06 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k/deeplabv3plus_r101-d8_512x512_80k_ade20k_20200615_014139-d5730af7.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k.py +- Name: deeplabv3plus_r50-d8_512x512_160k_ade20k In Collection: deeplabv3plus Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 - Name: deeplabv3plus_r50-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.95 mIoU(ms+flip): 44.93 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k/deeplabv3plus_r50-d8_512x512_160k_ade20k_20200615_124504-6135c7e0.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k.py +- Name: deeplabv3plus_r101-d8_512x512_160k_ade20k In Collection: deeplabv3plus Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 - Name: deeplabv3plus_r101-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 45.47 mIoU(ms+flip): 46.35 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k/deeplabv3plus_r101-d8_512x512_160k_ade20k_20200615_123232-38ed86bb.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug.py +- Name: deeplabv3plus_r50-d8_512x512_20k_voc12aug In Collection: deeplabv3plus Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 47.62 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 47.62 - lr schd: 20000 memory (GB): 7.6 - Name: deeplabv3plus_r50-d8_512x512_20k_voc12aug Results: - Dataset: ' Pascal VOC 2012 + Aug' + - Task: Semantic Segmentation + Dataset: ADE20K Metrics: mIoU: 75.93 mIoU(ms+flip): 77.5 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug/deeplabv3plus_r50-d8_512x512_20k_voc12aug_20200617_102323-aad58ef1.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug.py +- Name: deeplabv3plus_r101-d8_512x512_20k_voc12aug In Collection: deeplabv3plus Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 72.05 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 72.05 - lr schd: 20000 memory (GB): 11.0 - Name: deeplabv3plus_r101-d8_512x512_20k_voc12aug Results: - Dataset: ' Pascal VOC 2012 + Aug' + - Task: Semantic Segmentation + Dataset: ADE20K Metrics: mIoU: 77.22 mIoU(ms+flip): 78.59 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug/deeplabv3plus_r101-d8_512x512_20k_voc12aug_20200617_102345-c7ff3d56.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug.py +- Name: deeplabv3plus_r50-d8_512x512_40k_voc12aug In Collection: deeplabv3plus Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 40000 - Name: deeplabv3plus_r50-d8_512x512_40k_voc12aug Results: - Dataset: ' Pascal VOC 2012 + Aug' + - Task: Semantic Segmentation + Dataset: ADE20K Metrics: mIoU: 76.81 mIoU(ms+flip): 77.57 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug/deeplabv3plus_r50-d8_512x512_40k_voc12aug_20200613_161759-e1b43aa9.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug.py +- Name: deeplabv3plus_r101-d8_512x512_40k_voc12aug In Collection: deeplabv3plus Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 40000 - Name: deeplabv3plus_r101-d8_512x512_40k_voc12aug Results: - Dataset: ' Pascal VOC 2012 + Aug' + - Task: Semantic Segmentation + Dataset: ADE20K Metrics: mIoU: 78.62 mIoU(ms+flip): 79.53 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug/deeplabv3plus_r101-d8_512x512_40k_voc12aug_20200613_205333-faf03387.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context.py +- Name: deeplabv3plus_r101-d8_480x480_40k_pascal_context In Collection: deeplabv3plus Metadata: backbone: R-101-D8 crop size: (480,480) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 110.01 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (480,480) - value: 110.01 - lr schd: 40000 - Name: deeplabv3plus_r101-d8_480x480_40k_pascal_context Results: - Dataset: ' Pascal Context' + - Task: Semantic Segmentation + Dataset: ADE20K Metrics: mIoU: 47.3 mIoU(ms+flip): 48.47 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context/deeplabv3plus_r101-d8_480x480_40k_pascal_context_20200911_165459-d3c8a29e.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context.py +- Name: deeplabv3plus_r101-d8_480x480_80k_pascal_context In Collection: deeplabv3plus Metadata: backbone: R-101-D8 crop size: (480,480) lr schd: 80000 - Name: deeplabv3plus_r101-d8_480x480_80k_pascal_context Results: - Dataset: ' Pascal Context' + - Task: Semantic Segmentation + Dataset: ADE20K Metrics: mIoU: 47.23 mIoU(ms+flip): 48.26 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context/deeplabv3plus_r101-d8_480x480_80k_pascal_context_20200911_155322-145d3ee8.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59.py +- Name: deeplabv3plus_r101-d8_480x480_40k_pascal_context_59 In Collection: deeplabv3plus Metadata: backbone: R-101-D8 crop size: (480,480) lr schd: 40000 - Name: deeplabv3plus_r101-d8_480x480_40k_pascal_context_59 Results: - Dataset: ' Pascal Context 59' + - Task: Semantic Segmentation + Dataset: ADE20K Metrics: mIoU: 52.86 mIoU(ms+flip): 54.54 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59_20210416_111233-ed937f15.pth -- Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59.py +- Name: deeplabv3plus_r101-d8_480x480_80k_pascal_context_59 In Collection: deeplabv3plus Metadata: backbone: R-101-D8 crop size: (480,480) lr schd: 80000 - Name: deeplabv3plus_r101-d8_480x480_80k_pascal_context_59 Results: - Dataset: ' Pascal Context 59' + - Task: Semantic Segmentation + Dataset: ADE20K Metrics: mIoU: 53.2 mIoU(ms+flip): 54.67 - Task: Semantic Segmentation + Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59_20210416_111127-7ca0331d.pth diff --git a/configs/dmnet/README.md b/configs/dmnet/README.md index 0cea6bf818..3eef9cb927 100644 --- a/configs/dmnet/README.md +++ b/configs/dmnet/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+DMNet (ICCV'2019) + ```latex @InProceedings{He_2019_ICCV, author = {He, Junjun and Deng, Zhongying and Qiao, Yu}, @@ -14,6 +21,8 @@ year = {2019} } ``` +
+ ## Results and models ### Cityscapes diff --git a/configs/dmnet/dmnet.yml b/configs/dmnet/dmnet.yml index 3c179b588a..f45a659316 100644 --- a/configs/dmnet/dmnet.yml +++ b/configs/dmnet/dmnet.yml @@ -1,223 +1,232 @@ Collections: -- Metadata: +- Name: dmnet + Metadata: Training Data: - Cityscapes - ADE20K - Name: dmnet + Paper: + URL: https://openaccess.thecvf.com/content_ICCV_2019/papers/He_Dynamic_Multi-Scale_Filters_for_Semantic_Segmentation_ICCV_2019_paper.pdf + Title: Dynamic Multi-scale Filters for Semantic Segmentation + README: configs/dmnet/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/decode_heads/dm_head.py#L93 + Version: v0.17.0 + Converted From: + Code: https://github.com/Junjun2016/DMNet Models: -- Config: configs/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes.py +- Name: dmnet_r50-d8_512x1024_40k_cityscapes In Collection: dmnet Metadata: backbone: R-50-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 273.22 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 273.22 - lr schd: 40000 memory (GB): 7.0 - Name: dmnet_r50-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.78 mIoU(ms+flip): 79.14 - Task: Semantic Segmentation + Config: configs/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes/dmnet_r50-d8_512x1024_40k_cityscapes_20201215_042326-615373cf.pth -- Config: configs/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes.py +- Name: dmnet_r101-d8_512x1024_40k_cityscapes In Collection: dmnet Metadata: backbone: R-101-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 393.7 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 393.7 - lr schd: 40000 memory (GB): 10.6 - Name: dmnet_r101-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.37 mIoU(ms+flip): 79.72 - Task: Semantic Segmentation + Config: configs/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes/dmnet_r101-d8_512x1024_40k_cityscapes_20201215_043100-8291e976.pth -- Config: configs/dmnet/dmnet_r50-d8_769x769_40k_cityscapes.py +- Name: dmnet_r50-d8_769x769_40k_cityscapes In Collection: dmnet Metadata: backbone: R-50-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 636.94 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 636.94 - lr schd: 40000 memory (GB): 7.9 - Name: dmnet_r50-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.49 mIoU(ms+flip): 80.27 - Task: Semantic Segmentation + Config: configs/dmnet/dmnet_r50-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_40k_cityscapes/dmnet_r50-d8_769x769_40k_cityscapes_20201215_093706-e7f0e23e.pth -- Config: configs/dmnet/dmnet_r101-d8_769x769_40k_cityscapes.py +- Name: dmnet_r101-d8_769x769_40k_cityscapes In Collection: dmnet Metadata: backbone: R-101-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 990.1 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 990.1 - lr schd: 40000 memory (GB): 12.0 - Name: dmnet_r101-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.62 mIoU(ms+flip): 78.94 - Task: Semantic Segmentation + Config: configs/dmnet/dmnet_r101-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_40k_cityscapes/dmnet_r101-d8_769x769_40k_cityscapes_20201215_081348-a74261f6.pth -- Config: configs/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes.py +- Name: dmnet_r50-d8_512x1024_80k_cityscapes In Collection: dmnet Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 - Name: dmnet_r50-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.07 mIoU(ms+flip): 80.22 - Task: Semantic Segmentation + Config: configs/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes/dmnet_r50-d8_512x1024_80k_cityscapes_20201215_053728-3c8893b9.pth -- Config: configs/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes.py +- Name: dmnet_r101-d8_512x1024_80k_cityscapes In Collection: dmnet Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 - Name: dmnet_r101-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.64 mIoU(ms+flip): 80.67 - Task: Semantic Segmentation + Config: configs/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes/dmnet_r101-d8_512x1024_80k_cityscapes_20201215_031718-fa081cb8.pth -- Config: configs/dmnet/dmnet_r50-d8_769x769_80k_cityscapes.py +- Name: dmnet_r50-d8_769x769_80k_cityscapes In Collection: dmnet Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 - Name: dmnet_r50-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.22 mIoU(ms+flip): 80.55 - Task: Semantic Segmentation + Config: configs/dmnet/dmnet_r50-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_80k_cityscapes/dmnet_r50-d8_769x769_80k_cityscapes_20201215_034006-6060840e.pth -- Config: configs/dmnet/dmnet_r101-d8_769x769_80k_cityscapes.py +- Name: dmnet_r101-d8_769x769_80k_cityscapes In Collection: dmnet Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 - Name: dmnet_r101-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.19 mIoU(ms+flip): 80.65 - Task: Semantic Segmentation + Config: configs/dmnet/dmnet_r101-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_80k_cityscapes/dmnet_r101-d8_769x769_80k_cityscapes_20201215_082810-7f0de59a.pth -- Config: configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py +- Name: dmnet_r50-d8_512x512_80k_ade20k In Collection: dmnet Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 47.73 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 47.73 - lr schd: 80000 memory (GB): 9.4 - Name: dmnet_r50-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.37 mIoU(ms+flip): 43.62 - Task: Semantic Segmentation + Config: configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_80k_ade20k/dmnet_r50-d8_512x512_80k_ade20k_20201215_144744-f89092a6.pth -- Config: configs/dmnet/dmnet_r101-d8_512x512_80k_ade20k.py +- Name: dmnet_r101-d8_512x512_80k_ade20k In Collection: dmnet Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 72.05 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 72.05 - lr schd: 80000 memory (GB): 13.0 - Name: dmnet_r101-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 45.34 mIoU(ms+flip): 46.13 - Task: Semantic Segmentation + Config: configs/dmnet/dmnet_r101-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_80k_ade20k/dmnet_r101-d8_512x512_80k_ade20k_20201215_104812-bfa45311.pth -- Config: configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py +- Name: dmnet_r50-d8_512x512_160k_ade20k In Collection: dmnet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 - Name: dmnet_r50-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.15 mIoU(ms+flip): 44.17 - Task: Semantic Segmentation + Config: configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_160k_ade20k/dmnet_r50-d8_512x512_160k_ade20k_20201215_115313-025ab3f9.pth -- Config: configs/dmnet/dmnet_r101-d8_512x512_160k_ade20k.py +- Name: dmnet_r101-d8_512x512_160k_ade20k In Collection: dmnet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 - Name: dmnet_r101-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 45.42 mIoU(ms+flip): 46.76 - Task: Semantic Segmentation + Config: configs/dmnet/dmnet_r101-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_160k_ade20k/dmnet_r101-d8_512x512_160k_ade20k_20201215_111145-a0bc02ef.pth diff --git a/configs/dnlnet/README.md b/configs/dnlnet/README.md index 73714122b9..3bf4b21cc8 100644 --- a/configs/dnlnet/README.md +++ b/configs/dnlnet/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+DNLNet (ECCV'2020) + This example is to reproduce ["Disentangled Non-Local Neural Networks"](https://arxiv.org/abs/2006.06668) for semantic segmentation. It is still in progress. ## Citation @@ -17,6 +24,8 @@ This example is to reproduce ["Disentangled Non-Local Neural Networks"](https:// } ``` +
+ ## Results and models (in progress) ### Cityscapes diff --git a/configs/dnlnet/dnlnet.yml b/configs/dnlnet/dnlnet.yml index 03de1c7aa5..79dee30e6d 100644 --- a/configs/dnlnet/dnlnet.yml +++ b/configs/dnlnet/dnlnet.yml @@ -1,219 +1,228 @@ Collections: -- Metadata: +- Name: dnlnet + Metadata: Training Data: - Cityscapes - ADE20K - Name: dnlnet + Paper: + URL: https://arxiv.org/abs/2006.06668 + Title: Disentangled Non-Local Neural Networks + README: configs/dnlnet/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/decode_heads/dnl_head.py#L88 + Version: v0.17.0 + Converted From: + Code: https://github.com/yinmh17/DNL-Semantic-Segmentation Models: -- Config: configs/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes.py +- Name: dnl_r50-d8_512x1024_40k_cityscapes In Collection: dnlnet Metadata: backbone: R-50-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 390.62 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 390.62 - lr schd: 40000 memory (GB): 7.3 - Name: dnl_r50-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.61 - Task: Semantic Segmentation + Config: configs/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes/dnl_r50-d8_512x1024_40k_cityscapes_20200904_233629-53d4ea93.pth -- Config: configs/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes.py +- Name: dnl_r101-d8_512x1024_40k_cityscapes In Collection: dnlnet Metadata: backbone: R-101-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 510.2 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 510.2 - lr schd: 40000 memory (GB): 10.9 - Name: dnl_r101-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.31 - Task: Semantic Segmentation + Config: configs/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes/dnl_r101-d8_512x1024_40k_cityscapes_20200904_233629-9928ffef.pth -- Config: configs/dnlnet/dnl_r50-d8_769x769_40k_cityscapes.py +- Name: dnl_r50-d8_769x769_40k_cityscapes In Collection: dnlnet Metadata: backbone: R-50-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 666.67 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 666.67 - lr schd: 40000 memory (GB): 9.2 - Name: dnl_r50-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.44 mIoU(ms+flip): 80.27 - Task: Semantic Segmentation + Config: configs/dnlnet/dnl_r50-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_40k_cityscapes/dnl_r50-d8_769x769_40k_cityscapes_20200820_232206-0f283785.pth -- Config: configs/dnlnet/dnl_r101-d8_769x769_40k_cityscapes.py +- Name: dnl_r101-d8_769x769_40k_cityscapes In Collection: dnlnet Metadata: backbone: R-101-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 980.39 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 980.39 - lr schd: 40000 memory (GB): 12.6 - Name: dnl_r101-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.39 mIoU(ms+flip): 77.77 - Task: Semantic Segmentation + Config: configs/dnlnet/dnl_r101-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_40k_cityscapes/dnl_r101-d8_769x769_40k_cityscapes_20200820_171256-76c596df.pth -- Config: configs/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes.py +- Name: dnl_r50-d8_512x1024_80k_cityscapes In Collection: dnlnet Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 - Name: dnl_r50-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.33 - Task: Semantic Segmentation + Config: configs/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes/dnl_r50-d8_512x1024_80k_cityscapes_20200904_233629-58b2f778.pth -- Config: configs/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes.py +- Name: dnl_r101-d8_512x1024_80k_cityscapes In Collection: dnlnet Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 - Name: dnl_r101-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.41 - Task: Semantic Segmentation + Config: configs/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes/dnl_r101-d8_512x1024_80k_cityscapes_20200904_233629-758e2dd4.pth -- Config: configs/dnlnet/dnl_r50-d8_769x769_80k_cityscapes.py +- Name: dnl_r50-d8_769x769_80k_cityscapes In Collection: dnlnet Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 - Name: dnl_r50-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.36 mIoU(ms+flip): 80.7 - Task: Semantic Segmentation + Config: configs/dnlnet/dnl_r50-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_80k_cityscapes/dnl_r50-d8_769x769_80k_cityscapes_20200820_011925-366bc4c7.pth -- Config: configs/dnlnet/dnl_r101-d8_769x769_80k_cityscapes.py +- Name: dnl_r101-d8_769x769_80k_cityscapes In Collection: dnlnet Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 - Name: dnl_r101-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.41 mIoU(ms+flip): 80.68 - Task: Semantic Segmentation + Config: configs/dnlnet/dnl_r101-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_80k_cityscapes/dnl_r101-d8_769x769_80k_cityscapes_20200821_051111-95ff84ab.pth -- Config: configs/dnlnet/dnl_r50-d8_512x512_80k_ade20k.py +- Name: dnl_r50-d8_512x512_80k_ade20k In Collection: dnlnet Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 48.4 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 48.4 - lr schd: 80000 memory (GB): 8.8 - Name: dnl_r50-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 41.76 mIoU(ms+flip): 42.99 - Task: Semantic Segmentation + Config: configs/dnlnet/dnl_r50-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_80k_ade20k/dnl_r50-d8_512x512_80k_ade20k_20200826_183354-1cf6e0c1.pth -- Config: configs/dnlnet/dnl_r101-d8_512x512_80k_ade20k.py +- Name: dnl_r101-d8_512x512_80k_ade20k In Collection: dnlnet Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 79.74 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 79.74 - lr schd: 80000 memory (GB): 12.8 - Name: dnl_r101-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.76 mIoU(ms+flip): 44.91 - Task: Semantic Segmentation + Config: configs/dnlnet/dnl_r101-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_80k_ade20k/dnl_r101-d8_512x512_80k_ade20k_20200826_183354-d820d6ea.pth -- Config: configs/dnlnet/dnl_r50-d8_512x512_160k_ade20k.py +- Name: dnl_r50-d8_512x512_160k_ade20k In Collection: dnlnet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 - Name: dnl_r50-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 41.87 mIoU(ms+flip): 43.01 - Task: Semantic Segmentation + Config: configs/dnlnet/dnl_r50-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_160k_ade20k/dnl_r50-d8_512x512_160k_ade20k_20200826_183350-37837798.pth -- Config: configs/dnlnet/dnl_r101-d8_512x512_160k_ade20k.py +- Name: dnl_r101-d8_512x512_160k_ade20k In Collection: dnlnet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 - Name: dnl_r101-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 44.25 mIoU(ms+flip): 45.78 - Task: Semantic Segmentation + Config: configs/dnlnet/dnl_r101-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_160k_ade20k/dnl_r101-d8_512x512_160k_ade20k_20200826_183350-ed522c61.pth diff --git a/configs/dpt/README.md b/configs/dpt/README.md index 3dd994cc58..c57320cbc6 100644 --- a/configs/dpt/README.md +++ b/configs/dpt/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+DPT (ArXiv'2021) + ```latex @article{dosoViTskiy2020, title={An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale}, @@ -20,6 +27,8 @@ } ``` +
+ ## Usage To use other repositories' pre-trained models, it is necessary to convert keys. diff --git a/configs/dpt/dpt.yml b/configs/dpt/dpt.yml index affb8d4f3f..9e59b356ac 100644 --- a/configs/dpt/dpt.yml +++ b/configs/dpt/dpt.yml @@ -1,28 +1,37 @@ Collections: -- Metadata: +- Name: dpt + Metadata: Training Data: - ADE20K - Name: dpt + Paper: + URL: https://arxiv.org/abs/2103.13413 + Title: Vision Transformer for Dense Prediction + README: configs/dpt/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/decode_heads/dpt_head.py#L215 + Version: v0.17.0 + Converted From: + Code: https://github.com/isl-org/DPT Models: -- Config: configs/dpt/dpt_vit-b16_512x512_160k_ade20k.py +- Name: dpt_vit-b16_512x512_160k_ade20k In Collection: dpt Metadata: backbone: ViT-B crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 96.06 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 96.06 - lr schd: 160000 memory (GB): 8.09 - Name: dpt_vit-b16_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 46.97 mIoU(ms+flip): 48.34 - Task: Semantic Segmentation + Config: configs/dpt/dpt_vit-b16_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dpt/dpt_vit-b16_512x512_160k_ade20k/dpt_vit-b16_512x512_160k_ade20k-db31cf52.pth diff --git a/configs/emanet/README.md b/configs/emanet/README.md index ec2d726bc3..0bfedcb285 100644 --- a/configs/emanet/README.md +++ b/configs/emanet/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+EMANet (ICCV'2019) + ```latex @inproceedings{li2019expectation, title={Expectation-maximization attention networks for semantic segmentation}, @@ -14,6 +21,8 @@ } ``` +
+ ## Results and models ### Cityscapes diff --git a/configs/emanet/emanet.yml b/configs/emanet/emanet.yml index be2d37779f..55ea80cc0e 100644 --- a/configs/emanet/emanet.yml +++ b/configs/emanet/emanet.yml @@ -1,94 +1,103 @@ Collections: -- Metadata: +- Name: emanet + Metadata: Training Data: - Cityscapes - Name: emanet + Paper: + URL: https://arxiv.org/abs/1907.13426 + Title: Expectation-Maximization Attention Networks for Semantic Segmentation + README: configs/emanet/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/decode_heads/ema_head.py#L80 + Version: v0.17.0 + Converted From: + Code: https://xialipku.github.io/EMANet Models: -- Config: configs/emanet/emanet_r50-d8_512x1024_80k_cityscapes.py +- Name: emanet_r50-d8_512x1024_80k_cityscapes In Collection: emanet Metadata: backbone: R-50-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 218.34 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 218.34 - lr schd: 80000 memory (GB): 5.4 - Name: emanet_r50-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.59 mIoU(ms+flip): 79.44 - Task: Semantic Segmentation + Config: configs/emanet/emanet_r50-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_512x1024_80k_cityscapes/emanet_r50-d8_512x1024_80k_cityscapes_20200901_100301-c43fcef1.pth -- Config: configs/emanet/emanet_r101-d8_512x1024_80k_cityscapes.py +- Name: emanet_r101-d8_512x1024_80k_cityscapes In Collection: emanet Metadata: backbone: R-101-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 348.43 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 348.43 - lr schd: 80000 memory (GB): 6.2 - Name: emanet_r101-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.1 mIoU(ms+flip): 81.21 - Task: Semantic Segmentation + Config: configs/emanet/emanet_r101-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_512x1024_80k_cityscapes/emanet_r101-d8_512x1024_80k_cityscapes_20200901_100301-2d970745.pth -- Config: configs/emanet/emanet_r50-d8_769x769_80k_cityscapes.py +- Name: emanet_r50-d8_769x769_80k_cityscapes In Collection: emanet Metadata: backbone: R-50-D8 crop size: (769,769) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 507.61 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 507.61 - lr schd: 80000 memory (GB): 8.9 - Name: emanet_r50-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.33 mIoU(ms+flip): 80.49 - Task: Semantic Segmentation + Config: configs/emanet/emanet_r50-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_769x769_80k_cityscapes/emanet_r50-d8_769x769_80k_cityscapes_20200901_100301-16f8de52.pth -- Config: configs/emanet/emanet_r101-d8_769x769_80k_cityscapes.py +- Name: emanet_r101-d8_769x769_80k_cityscapes In Collection: emanet Metadata: backbone: R-101-D8 crop size: (769,769) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 819.67 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 819.67 - lr schd: 80000 memory (GB): 10.1 - Name: emanet_r101-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.62 mIoU(ms+flip): 81.0 - Task: Semantic Segmentation + Config: configs/emanet/emanet_r101-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_769x769_80k_cityscapes/emanet_r101-d8_769x769_80k_cityscapes_20200901_100301-47a324ce.pth diff --git a/configs/encnet/README.md b/configs/encnet/README.md index 4246caa0de..26b63dccd3 100644 --- a/configs/encnet/README.md +++ b/configs/encnet/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+EncNet (CVPR'2018) + ```latex @InProceedings{Zhang_2018_CVPR, author = {Zhang, Hang and Dana, Kristin and Shi, Jianping and Zhang, Zhongyue and Wang, Xiaogang and Tyagi, Ambrish and Agrawal, Amit}, @@ -14,6 +21,8 @@ year = {2018} } ``` +
+ ## Results and models ### Cityscapes diff --git a/configs/encnet/encnet.yml b/configs/encnet/encnet.yml index bbde966f13..24e0ab1844 100644 --- a/configs/encnet/encnet.yml +++ b/configs/encnet/encnet.yml @@ -1,223 +1,232 @@ Collections: -- Metadata: +- Name: encnet + Metadata: Training Data: - Cityscapes - ADE20K - Name: encnet + Paper: + URL: https://arxiv.org/abs/1803.08904 + Title: Context Encoding for Semantic Segmentation + README: configs/encnet/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/decode_heads/enc_head.py#L63 + Version: v0.17.0 + Converted From: + Code: https://github.com/zhanghang1989/PyTorch-Encoding Models: -- Config: configs/encnet/encnet_r50-d8_512x1024_40k_cityscapes.py +- Name: encnet_r50-d8_512x1024_40k_cityscapes In Collection: encnet Metadata: backbone: R-50-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 218.34 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 218.34 - lr schd: 40000 memory (GB): 8.6 - Name: encnet_r50-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 75.67 mIoU(ms+flip): 77.08 - Task: Semantic Segmentation + Config: configs/encnet/encnet_r50-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_40k_cityscapes/encnet_r50-d8_512x1024_40k_cityscapes_20200621_220958-68638a47.pth -- Config: configs/encnet/encnet_r101-d8_512x1024_40k_cityscapes.py +- Name: encnet_r101-d8_512x1024_40k_cityscapes In Collection: encnet Metadata: backbone: R-101-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 375.94 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 375.94 - lr schd: 40000 memory (GB): 12.1 - Name: encnet_r101-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 75.81 mIoU(ms+flip): 77.21 - Task: Semantic Segmentation + Config: configs/encnet/encnet_r101-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_40k_cityscapes/encnet_r101-d8_512x1024_40k_cityscapes_20200621_220933-35e0a3e8.pth -- Config: configs/encnet/encnet_r50-d8_769x769_40k_cityscapes.py +- Name: encnet_r50-d8_769x769_40k_cityscapes In Collection: encnet Metadata: backbone: R-50-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 549.45 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 549.45 - lr schd: 40000 memory (GB): 9.8 - Name: encnet_r50-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.24 mIoU(ms+flip): 77.85 - Task: Semantic Segmentation + Config: configs/encnet/encnet_r50-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_40k_cityscapes/encnet_r50-d8_769x769_40k_cityscapes_20200621_220958-3bcd2884.pth -- Config: configs/encnet/encnet_r101-d8_769x769_40k_cityscapes.py +- Name: encnet_r101-d8_769x769_40k_cityscapes In Collection: encnet Metadata: backbone: R-101-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 793.65 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 793.65 - lr schd: 40000 memory (GB): 13.7 - Name: encnet_r101-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 74.25 mIoU(ms+flip): 76.25 - Task: Semantic Segmentation + Config: configs/encnet/encnet_r101-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_40k_cityscapes/encnet_r101-d8_769x769_40k_cityscapes_20200621_220933-2fafed55.pth -- Config: configs/encnet/encnet_r50-d8_512x1024_80k_cityscapes.py +- Name: encnet_r50-d8_512x1024_80k_cityscapes In Collection: encnet Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 - Name: encnet_r50-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.94 mIoU(ms+flip): 79.13 - Task: Semantic Segmentation + Config: configs/encnet/encnet_r50-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_80k_cityscapes/encnet_r50-d8_512x1024_80k_cityscapes_20200622_003554-fc5c5624.pth -- Config: configs/encnet/encnet_r101-d8_512x1024_80k_cityscapes.py +- Name: encnet_r101-d8_512x1024_80k_cityscapes In Collection: encnet Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 - Name: encnet_r101-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.55 mIoU(ms+flip): 79.47 - Task: Semantic Segmentation + Config: configs/encnet/encnet_r101-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_80k_cityscapes/encnet_r101-d8_512x1024_80k_cityscapes_20200622_003555-1de64bec.pth -- Config: configs/encnet/encnet_r50-d8_769x769_80k_cityscapes.py +- Name: encnet_r50-d8_769x769_80k_cityscapes In Collection: encnet Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 - Name: encnet_r50-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.44 mIoU(ms+flip): 78.72 - Task: Semantic Segmentation + Config: configs/encnet/encnet_r50-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_80k_cityscapes/encnet_r50-d8_769x769_80k_cityscapes_20200622_003554-55096dcb.pth -- Config: configs/encnet/encnet_r101-d8_769x769_80k_cityscapes.py +- Name: encnet_r101-d8_769x769_80k_cityscapes In Collection: encnet Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 - Name: encnet_r101-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.1 mIoU(ms+flip): 76.97 - Task: Semantic Segmentation + Config: configs/encnet/encnet_r101-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_80k_cityscapes/encnet_r101-d8_769x769_80k_cityscapes_20200622_003555-470ef79d.pth -- Config: configs/encnet/encnet_r50-d8_512x512_80k_ade20k.py +- Name: encnet_r50-d8_512x512_80k_ade20k In Collection: encnet Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 43.84 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 43.84 - lr schd: 80000 memory (GB): 10.1 - Name: encnet_r50-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 39.53 mIoU(ms+flip): 41.17 - Task: Semantic Segmentation + Config: configs/encnet/encnet_r50-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_80k_ade20k/encnet_r50-d8_512x512_80k_ade20k_20200622_042412-44b46b04.pth -- Config: configs/encnet/encnet_r101-d8_512x512_80k_ade20k.py +- Name: encnet_r101-d8_512x512_80k_ade20k In Collection: encnet Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 67.25 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 67.25 - lr schd: 80000 memory (GB): 13.6 - Name: encnet_r101-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.11 mIoU(ms+flip): 43.61 - Task: Semantic Segmentation + Config: configs/encnet/encnet_r101-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_80k_ade20k/encnet_r101-d8_512x512_80k_ade20k_20200622_101128-dd35e237.pth -- Config: configs/encnet/encnet_r50-d8_512x512_160k_ade20k.py +- Name: encnet_r50-d8_512x512_160k_ade20k In Collection: encnet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 - Name: encnet_r50-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 40.1 mIoU(ms+flip): 41.71 - Task: Semantic Segmentation + Config: configs/encnet/encnet_r50-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_160k_ade20k/encnet_r50-d8_512x512_160k_ade20k_20200622_101059-b2db95e0.pth -- Config: configs/encnet/encnet_r101-d8_512x512_160k_ade20k.py +- Name: encnet_r101-d8_512x512_160k_ade20k In Collection: encnet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 - Name: encnet_r101-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.61 mIoU(ms+flip): 44.01 - Task: Semantic Segmentation + Config: configs/encnet/encnet_r101-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_160k_ade20k/encnet_r101-d8_512x512_160k_ade20k_20200622_073348-7989641f.pth diff --git a/configs/fastscnn/README.md b/configs/fastscnn/README.md index 5b403b6d07..1801d5fd0e 100644 --- a/configs/fastscnn/README.md +++ b/configs/fastscnn/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+Fast-SCNN (ArXiv'2019) + ```latex @article{poudel2019fast, title={Fast-scnn: Fast semantic segmentation network}, @@ -13,6 +20,8 @@ } ``` +
+ ## Results and models ### Cityscapes diff --git a/configs/fastscnn/fastscnn.yml b/configs/fastscnn/fastscnn.yml index 00e7f21315..287c6c8c4f 100644 --- a/configs/fastscnn/fastscnn.yml +++ b/configs/fastscnn/fastscnn.yml @@ -1,28 +1,35 @@ Collections: -- Metadata: +- Name: fastscnn + Metadata: Training Data: - Cityscapes - Name: fastscnn + Paper: + URL: https://arxiv.org/abs/1902.04502 + Title: Fast-SCNN for Semantic Segmentation + README: configs/fastscnn/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/backbones/fast_scnn.py#L272 + Version: v0.17.0 Models: -- Config: configs/fastscnn/fast_scnn_lr0.12_8x4_160k_cityscapes.py +- Name: fast_scnn_lr0.12_8x4_160k_cityscapes In Collection: fastscnn Metadata: backbone: Fast-SCNN crop size: (512,1024) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 17.71 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 17.71 - lr schd: 160000 memory (GB): 3.3 - Name: fast_scnn_lr0.12_8x4_160k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 70.96 mIoU(ms+flip): 72.65 - Task: Semantic Segmentation + Config: configs/fastscnn/fast_scnn_lr0.12_8x4_160k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_lr0.12_8x4_160k_cityscapes/fast_scnn_lr0.12_8x4_160k_cityscapes_20210630_164853-0cec9937.pth diff --git a/configs/fcn/README.md b/configs/fcn/README.md index 396652c533..d33f402ea5 100644 --- a/configs/fcn/README.md +++ b/configs/fcn/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+FCN (CVPR'2015/TPAMI'2017) + ```latex @article{shelhamer2017fully, title={Fully convolutional networks for semantic segmentation}, @@ -17,6 +24,8 @@ } ``` +
+ ## Results and models ### Cityscapes diff --git a/configs/fcn/fcn.yml b/configs/fcn/fcn.yml index 965794d713..3f889c48db 100644 --- a/configs/fcn/fcn.yml +++ b/configs/fcn/fcn.yml @@ -1,797 +1,806 @@ Collections: -- Metadata: +- Name: fcn + Metadata: Training Data: - Cityscapes - ADE20K - Pascal VOC 2012 + Aug - Pascal Context - Pascal Context 59 - Name: fcn + Paper: + URL: https://arxiv.org/abs/1411.4038 + Title: Fully Convolutional Networks for Semantic Segmentation + README: configs/fcn/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/decode_heads/fcn_head.py#L11 + Version: v0.17.0 + Converted From: + Code: https://github.com/BVLC/caffe/wiki/Model-Zoo#fcn Models: -- Config: configs/fcn/fcn_r50-d8_512x1024_40k_cityscapes.py +- Name: fcn_r50-d8_512x1024_40k_cityscapes In Collection: fcn Metadata: backbone: R-50-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 239.81 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 239.81 - lr schd: 40000 memory (GB): 5.7 - Name: fcn_r50-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 72.25 mIoU(ms+flip): 73.36 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r50-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_40k_cityscapes/fcn_r50-d8_512x1024_40k_cityscapes_20200604_192608-efe53f0d.pth -- Config: configs/fcn/fcn_r101-d8_512x1024_40k_cityscapes.py +- Name: fcn_r101-d8_512x1024_40k_cityscapes In Collection: fcn Metadata: backbone: R-101-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 375.94 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 375.94 - lr schd: 40000 memory (GB): 9.2 - Name: fcn_r101-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 75.45 mIoU(ms+flip): 76.58 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r101-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_40k_cityscapes/fcn_r101-d8_512x1024_40k_cityscapes_20200604_181852-a883d3a1.pth -- Config: configs/fcn/fcn_r50-d8_769x769_40k_cityscapes.py +- Name: fcn_r50-d8_769x769_40k_cityscapes In Collection: fcn Metadata: backbone: R-50-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 555.56 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 555.56 - lr schd: 40000 memory (GB): 6.5 - Name: fcn_r50-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 71.47 mIoU(ms+flip): 72.54 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r50-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_40k_cityscapes/fcn_r50-d8_769x769_40k_cityscapes_20200606_113104-977b5d02.pth -- Config: configs/fcn/fcn_r101-d8_769x769_40k_cityscapes.py +- Name: fcn_r101-d8_769x769_40k_cityscapes In Collection: fcn Metadata: backbone: R-101-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 840.34 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 840.34 - lr schd: 40000 memory (GB): 10.4 - Name: fcn_r101-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 73.93 mIoU(ms+flip): 75.14 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r101-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_40k_cityscapes/fcn_r101-d8_769x769_40k_cityscapes_20200606_113208-7d4ab69c.pth -- Config: configs/fcn/fcn_r18-d8_512x1024_80k_cityscapes.py +- Name: fcn_r18-d8_512x1024_80k_cityscapes In Collection: fcn Metadata: backbone: R-18-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 68.26 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 68.26 - lr schd: 80000 memory (GB): 1.7 - Name: fcn_r18-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 71.11 mIoU(ms+flip): 72.91 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r18-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_512x1024_80k_cityscapes/fcn_r18-d8_512x1024_80k_cityscapes_20201225_021327-6c50f8b4.pth -- Config: configs/fcn/fcn_r50-d8_512x1024_80k_cityscapes.py +- Name: fcn_r50-d8_512x1024_80k_cityscapes In Collection: fcn Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 - Name: fcn_r50-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 73.61 mIoU(ms+flip): 74.24 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r50-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_80k_cityscapes/fcn_r50-d8_512x1024_80k_cityscapes_20200606_113019-03aa804d.pth -- Config: configs/fcn/fcn_r101-d8_512x1024_80k_cityscapes.py +- Name: fcn_r101-d8_512x1024_80k_cityscapes In Collection: fcn Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 - Name: fcn_r101-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 75.13 mIoU(ms+flip): 75.94 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r101-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_80k_cityscapes/fcn_r101-d8_512x1024_80k_cityscapes_20200606_113038-3fb937eb.pth -- Config: configs/fcn/fcn_r18-d8_769x769_80k_cityscapes.py +- Name: fcn_r18-d8_769x769_80k_cityscapes In Collection: fcn Metadata: backbone: R-18-D8 crop size: (769,769) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 156.25 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 156.25 - lr schd: 80000 memory (GB): 1.9 - Name: fcn_r18-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 70.8 mIoU(ms+flip): 73.16 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r18-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_769x769_80k_cityscapes/fcn_r18-d8_769x769_80k_cityscapes_20201225_021451-9739d1b8.pth -- Config: configs/fcn/fcn_r50-d8_769x769_80k_cityscapes.py +- Name: fcn_r50-d8_769x769_80k_cityscapes In Collection: fcn Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 - Name: fcn_r50-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 72.64 mIoU(ms+flip): 73.32 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r50-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_80k_cityscapes/fcn_r50-d8_769x769_80k_cityscapes_20200606_195749-f5caeabc.pth -- Config: configs/fcn/fcn_r101-d8_769x769_80k_cityscapes.py +- Name: fcn_r101-d8_769x769_80k_cityscapes In Collection: fcn Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 - Name: fcn_r101-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 75.52 mIoU(ms+flip): 76.61 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r101-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_80k_cityscapes/fcn_r101-d8_769x769_80k_cityscapes_20200606_214354-45cbac68.pth -- Config: configs/fcn/fcn_r18b-d8_512x1024_80k_cityscapes.py +- Name: fcn_r18b-d8_512x1024_80k_cityscapes In Collection: fcn Metadata: backbone: R-18b-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 59.74 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 59.74 - lr schd: 80000 memory (GB): 1.6 - Name: fcn_r18b-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 70.24 mIoU(ms+flip): 72.77 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r18b-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_512x1024_80k_cityscapes/fcn_r18b-d8_512x1024_80k_cityscapes_20201225_230143-92c0f445.pth -- Config: configs/fcn/fcn_r50b-d8_512x1024_80k_cityscapes.py +- Name: fcn_r50b-d8_512x1024_80k_cityscapes In Collection: fcn Metadata: backbone: R-50b-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 238.1 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 238.1 - lr schd: 80000 memory (GB): 5.6 - Name: fcn_r50b-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 75.65 mIoU(ms+flip): 77.59 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r50b-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_512x1024_80k_cityscapes/fcn_r50b-d8_512x1024_80k_cityscapes_20201225_094221-82957416.pth -- Config: configs/fcn/fcn_r101b-d8_512x1024_80k_cityscapes.py +- Name: fcn_r101b-d8_512x1024_80k_cityscapes In Collection: fcn Metadata: backbone: R-101b-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 366.3 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 366.3 - lr schd: 80000 memory (GB): 9.1 - Name: fcn_r101b-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.37 mIoU(ms+flip): 78.77 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r101b-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_512x1024_80k_cityscapes/fcn_r101b-d8_512x1024_80k_cityscapes_20201226_160213-4543858f.pth -- Config: configs/fcn/fcn_r18b-d8_769x769_80k_cityscapes.py +- Name: fcn_r18b-d8_769x769_80k_cityscapes In Collection: fcn Metadata: backbone: R-18b-D8 crop size: (769,769) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 149.25 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 149.25 - lr schd: 80000 memory (GB): 1.7 - Name: fcn_r18b-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 69.66 mIoU(ms+flip): 72.07 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r18b-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_769x769_80k_cityscapes/fcn_r18b-d8_769x769_80k_cityscapes_20201226_004430-32d504e5.pth -- Config: configs/fcn/fcn_r50b-d8_769x769_80k_cityscapes.py +- Name: fcn_r50b-d8_769x769_80k_cityscapes In Collection: fcn Metadata: backbone: R-50b-D8 crop size: (769,769) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 549.45 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 549.45 - lr schd: 80000 memory (GB): 6.3 - Name: fcn_r50b-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 73.83 mIoU(ms+flip): 76.6 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r50b-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_769x769_80k_cityscapes/fcn_r50b-d8_769x769_80k_cityscapes_20201225_094223-94552d38.pth -- Config: configs/fcn/fcn_r101b-d8_769x769_80k_cityscapes.py +- Name: fcn_r101b-d8_769x769_80k_cityscapes In Collection: fcn Metadata: backbone: R-101b-D8 crop size: (769,769) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 869.57 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 869.57 - lr schd: 80000 memory (GB): 10.3 - Name: fcn_r101b-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.02 mIoU(ms+flip): 78.67 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r101b-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_769x769_80k_cityscapes/fcn_r101b-d8_769x769_80k_cityscapes_20201226_170012-82be37e2.pth -- Config: configs/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes.py +- Name: fcn_d6_r50-d16_512x1024_40k_cityscapes In Collection: fcn Metadata: backbone: R-50-D16 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 97.85 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 97.85 - lr schd: 40000 memory (GB): 3.4 - Name: fcn_d6_r50-d16_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.06 mIoU(ms+flip): 78.85 - Task: Semantic Segmentation + Config: configs/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes/fcn_d6_r50-d16_512x1024_40k_cityscapes_20210305_130133-98d5d1bc.pth -- Config: configs/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes.py +- Name: fcn_d6_r50-d16_512x1024_80k_cityscapes In Collection: fcn Metadata: backbone: R-50-D16 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 96.62 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 96.62 - lr schd: 80000 - Name: fcn_d6_r50-d16_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.27 mIoU(ms+flip): 78.88 - Task: Semantic Segmentation + Config: configs/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes/fcn_d6_r50-d16_512x1024_80k_cityscapes_20210306_115604-133c292f.pth -- Config: configs/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes.py +- Name: fcn_d6_r50-d16_769x769_40k_cityscapes In Collection: fcn Metadata: backbone: R-50-D16 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 239.81 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 239.81 - lr schd: 40000 memory (GB): 3.7 - Name: fcn_d6_r50-d16_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.82 mIoU(ms+flip): 78.22 - Task: Semantic Segmentation + Config: configs/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes/fcn_d6_r50-d16_769x769_40k_cityscapes_20210305_185744-1aab18ed.pth -- Config: configs/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes.py +- Name: fcn_d6_r50-d16_769x769_80k_cityscapes In Collection: fcn Metadata: backbone: R-50-D16 crop size: (769,769) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 240.96 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 240.96 - lr schd: 80000 - Name: fcn_d6_r50-d16_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.04 mIoU(ms+flip): 78.4 - Task: Semantic Segmentation + Config: configs/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes/fcn_d6_r50-d16_769x769_80k_cityscapes_20210305_200413-109d88eb.pth -- Config: configs/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes.py +- Name: fcn_d6_r101-d16_512x1024_40k_cityscapes In Collection: fcn Metadata: backbone: R-101-D16 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 124.38 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 124.38 - lr schd: 40000 memory (GB): 4.5 - Name: fcn_d6_r101-d16_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.36 mIoU(ms+flip): 79.18 - Task: Semantic Segmentation + Config: configs/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes/fcn_d6_r101-d16_512x1024_40k_cityscapes_20210305_130337-9cf2b450.pth -- Config: configs/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes.py +- Name: fcn_d6_r101-d16_512x1024_80k_cityscapes In Collection: fcn Metadata: backbone: R-101-D16 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 121.07 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 121.07 - lr schd: 80000 - Name: fcn_d6_r101-d16_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.46 mIoU(ms+flip): 80.42 - Task: Semantic Segmentation + Config: configs/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes/fcn_d6_r101-d16_512x1024_80k_cityscapes_20210308_102747-cb336445.pth -- Config: configs/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes.py +- Name: fcn_d6_r101-d16_769x769_40k_cityscapes In Collection: fcn Metadata: backbone: R-101-D16 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 320.51 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 320.51 - lr schd: 40000 memory (GB): 5.0 - Name: fcn_d6_r101-d16_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.28 mIoU(ms+flip): 78.95 - Task: Semantic Segmentation + Config: configs/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes/fcn_d6_r101-d16_769x769_40k_cityscapes_20210308_102453-60b114e9.pth -- Config: configs/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes.py +- Name: fcn_d6_r101-d16_769x769_80k_cityscapes In Collection: fcn Metadata: backbone: R-101-D16 crop size: (769,769) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 311.53 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 311.53 - lr schd: 80000 - Name: fcn_d6_r101-d16_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.06 mIoU(ms+flip): 79.58 - Task: Semantic Segmentation + Config: configs/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes/fcn_d6_r101-d16_769x769_80k_cityscapes_20210306_120016-e33adc4f.pth -- Config: configs/fcn/fcn_d6_r50b-d16_512x1024_80k_cityscapes.py +- Name: fcn_d6_r50b-d16_512x1024_80k_cityscapes In Collection: fcn Metadata: backbone: R-50b-D16 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 98.43 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 98.43 - lr schd: 80000 memory (GB): 3.2 - Name: fcn_d6_r50b-d16_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.99 mIoU(ms+flip): 79.03 - Task: Semantic Segmentation + Config: configs/fcn/fcn_d6_r50b-d16_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b-d16_512x1024_80k_cityscapes/fcn_d6_r50b-d16_512x1024_80k_cityscapes_20210311_125550-6a0b62e9.pth -- Config: configs/fcn/fcn_d6_r50b-d16_769x769_80k_cityscapes.py +- Name: fcn_d6_r50b-d16_769x769_80k_cityscapes In Collection: fcn Metadata: backbone: R-50b-D16 crop size: (769,769) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 239.81 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 239.81 - lr schd: 80000 memory (GB): 3.6 - Name: fcn_d6_r50b-d16_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.86 mIoU(ms+flip): 78.52 - Task: Semantic Segmentation + Config: configs/fcn/fcn_d6_r50b-d16_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b-d16_769x769_80k_cityscapes/fcn_d6_r50b-d16_769x769_80k_cityscapes_20210311_131012-d665f231.pth -- Config: configs/fcn/fcn_d6_r101b-d16_512x1024_80k_cityscapes.py +- Name: fcn_d6_r101b-d16_512x1024_80k_cityscapes In Collection: fcn Metadata: backbone: R-101b-D16 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 118.2 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 118.2 - lr schd: 80000 memory (GB): 4.3 - Name: fcn_d6_r101b-d16_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.72 mIoU(ms+flip): 79.53 - Task: Semantic Segmentation + Config: configs/fcn/fcn_d6_r101b-d16_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b-d16_512x1024_80k_cityscapes/fcn_d6_r101b-d16_512x1024_80k_cityscapes_20210311_144305-3f2eb5b4.pth -- Config: configs/fcn/fcn_d6_r101b-d16_769x769_80k_cityscapes.py +- Name: fcn_d6_r101b-d16_769x769_80k_cityscapes In Collection: fcn Metadata: backbone: R-101b-D16 crop size: (769,769) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 301.2 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 301.2 - lr schd: 80000 memory (GB): 4.8 - Name: fcn_d6_r101b-d16_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.34 mIoU(ms+flip): 78.91 - Task: Semantic Segmentation + Config: configs/fcn/fcn_d6_r101b-d16_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b-d16_769x769_80k_cityscapes/fcn_d6_r101b-d16_769x769_80k_cityscapes_20210311_154527-c4d8bfbc.pth -- Config: configs/fcn/fcn_r50-d8_512x512_80k_ade20k.py +- Name: fcn_r50-d8_512x512_80k_ade20k In Collection: fcn Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 42.57 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 42.57 - lr schd: 80000 memory (GB): 8.5 - Name: fcn_r50-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 35.94 mIoU(ms+flip): 37.94 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r50-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_80k_ade20k/fcn_r50-d8_512x512_80k_ade20k_20200614_144016-f8ac5082.pth -- Config: configs/fcn/fcn_r101-d8_512x512_80k_ade20k.py +- Name: fcn_r101-d8_512x512_80k_ade20k In Collection: fcn Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 67.66 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 67.66 - lr schd: 80000 memory (GB): 12.0 - Name: fcn_r101-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 39.61 mIoU(ms+flip): 40.83 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r101-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_80k_ade20k/fcn_r101-d8_512x512_80k_ade20k_20200615_014143-bc1809f7.pth -- Config: configs/fcn/fcn_r50-d8_512x512_160k_ade20k.py +- Name: fcn_r50-d8_512x512_160k_ade20k In Collection: fcn Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 - Name: fcn_r50-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 36.1 mIoU(ms+flip): 38.08 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r50-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_160k_ade20k/fcn_r50-d8_512x512_160k_ade20k_20200615_100713-4edbc3b4.pth -- Config: configs/fcn/fcn_r101-d8_512x512_160k_ade20k.py +- Name: fcn_r101-d8_512x512_160k_ade20k In Collection: fcn Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 - Name: fcn_r101-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 39.91 mIoU(ms+flip): 41.4 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r101-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_160k_ade20k/fcn_r101-d8_512x512_160k_ade20k_20200615_105816-fd192bd5.pth -- Config: configs/fcn/fcn_r50-d8_512x512_20k_voc12aug.py +- Name: fcn_r50-d8_512x512_20k_voc12aug In Collection: fcn Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 42.96 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 42.96 - lr schd: 20000 memory (GB): 5.7 - Name: fcn_r50-d8_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 67.08 mIoU(ms+flip): 69.94 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r50-d8_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_20k_voc12aug/fcn_r50-d8_512x512_20k_voc12aug_20200617_010715-52dc5306.pth -- Config: configs/fcn/fcn_r101-d8_512x512_20k_voc12aug.py +- Name: fcn_r101-d8_512x512_20k_voc12aug In Collection: fcn Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 67.52 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 67.52 - lr schd: 20000 memory (GB): 9.2 - Name: fcn_r101-d8_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 71.16 mIoU(ms+flip): 73.57 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r101-d8_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_20k_voc12aug/fcn_r101-d8_512x512_20k_voc12aug_20200617_010842-0bb4e798.pth -- Config: configs/fcn/fcn_r50-d8_512x512_40k_voc12aug.py +- Name: fcn_r50-d8_512x512_40k_voc12aug In Collection: fcn Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 40000 - Name: fcn_r50-d8_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 66.97 mIoU(ms+flip): 69.04 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r50-d8_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_40k_voc12aug/fcn_r50-d8_512x512_40k_voc12aug_20200613_161222-5e2dbf40.pth -- Config: configs/fcn/fcn_r101-d8_512x512_40k_voc12aug.py +- Name: fcn_r101-d8_512x512_40k_voc12aug In Collection: fcn Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 40000 - Name: fcn_r101-d8_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 69.91 mIoU(ms+flip): 72.38 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r101-d8_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_40k_voc12aug/fcn_r101-d8_512x512_40k_voc12aug_20200613_161240-4c8bcefd.pth -- Config: configs/fcn/fcn_r101-d8_480x480_40k_pascal_context.py +- Name: fcn_r101-d8_480x480_40k_pascal_context In Collection: fcn Metadata: backbone: R-101-D8 crop size: (480,480) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 100.7 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (480,480) - value: 100.7 - lr schd: 40000 - Name: fcn_r101-d8_480x480_40k_pascal_context Results: + - Task: Semantic Segmentation Dataset: Pascal Context Metrics: mIoU: 44.43 mIoU(ms+flip): 45.63 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r101-d8_480x480_40k_pascal_context.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context_20210421_154757-b5e97937.pth -- Config: configs/fcn/fcn_r101-d8_480x480_80k_pascal_context.py +- Name: fcn_r101-d8_480x480_80k_pascal_context In Collection: fcn Metadata: backbone: R-101-D8 crop size: (480,480) lr schd: 80000 - Name: fcn_r101-d8_480x480_80k_pascal_context Results: + - Task: Semantic Segmentation Dataset: Pascal Context Metrics: mIoU: 44.13 mIoU(ms+flip): 45.26 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r101-d8_480x480_80k_pascal_context.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context_20210421_163310-4711813f.pth -- Config: configs/fcn/fcn_r101-d8_480x480_40k_pascal_context_59.py +- Name: fcn_r101-d8_480x480_40k_pascal_context_59 In Collection: fcn Metadata: backbone: R-101-D8 crop size: (480,480) lr schd: 40000 - Name: fcn_r101-d8_480x480_40k_pascal_context_59 Results: + - Task: Semantic Segmentation Dataset: Pascal Context 59 Metrics: mIoU: 48.42 mIoU(ms+flip): 50.4 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r101-d8_480x480_40k_pascal_context_59.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context_59/fcn_r101-d8_480x480_40k_pascal_context_59_20210415_230724-8cf83682.pth -- Config: configs/fcn/fcn_r101-d8_480x480_80k_pascal_context_59.py +- Name: fcn_r101-d8_480x480_80k_pascal_context_59 In Collection: fcn Metadata: backbone: R-101-D8 crop size: (480,480) lr schd: 80000 - Name: fcn_r101-d8_480x480_80k_pascal_context_59 Results: + - Task: Semantic Segmentation Dataset: Pascal Context 59 Metrics: mIoU: 49.35 mIoU(ms+flip): 51.38 - Task: Semantic Segmentation + Config: configs/fcn/fcn_r101-d8_480x480_80k_pascal_context_59.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context_59/fcn_r101-d8_480x480_80k_pascal_context_59_20210416_110804-9a6f2c94.pth diff --git a/configs/fp16/README.md b/configs/fp16/README.md index 881598b9bf..bbc73cc5ad 100644 --- a/configs/fp16/README.md +++ b/configs/fp16/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+Mixed Precision (FP16) Training (ArXiv'2017) + ```latex @article{micikevicius2017mixed, title={Mixed precision training}, @@ -13,6 +20,8 @@ } ``` +
+ ## Results and models ### Cityscapes diff --git a/configs/fp16/fp16.yml b/configs/fp16/fp16.yml index 2be79ad761..755642e7bd 100644 --- a/configs/fp16/fp16.yml +++ b/configs/fp16/fp16.yml @@ -1,90 +1,99 @@ Collections: -- Metadata: +- Name: fp16 + Metadata: Training Data: - Cityscapes - Name: fp16 + Paper: + URL: https://arxiv.org/abs/1710.03740 + Title: Mixed Precision Training + README: configs/fp16/README.md + Code: + URL: https://github.com/open-mmlab/mmcv/blob/v1.3.14/mmcv/runner/hooks/optimizer.py#L134 + Version: v1.3.14 + Converted From: + Code: https://github.com/baidu-research/DeepBench Models: -- Config: configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py +- Name: fcn_r101-d8_512x1024_80k_fp16_cityscapes In Collection: fp16 Metadata: backbone: R-101-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 115.74 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 115.74 - lr schd: 80000 memory (GB): 5.37 - Name: fcn_r101-d8_512x1024_80k_fp16_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.8 - Task: Semantic Segmentation + Config: configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230921-50245227.pth -- Config: configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py +- Name: pspnet_r101-d8_512x1024_80k_fp16_cityscapes In Collection: fp16 Metadata: backbone: R-101-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 114.03 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 114.03 - lr schd: 80000 memory (GB): 5.34 - Name: pspnet_r101-d8_512x1024_80k_fp16_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.46 - Task: Semantic Segmentation + Config: configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230919-ade37931.pth -- Config: configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py +- Name: deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes In Collection: fp16 Metadata: backbone: R-101-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 259.07 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 259.07 - lr schd: 80000 memory (GB): 5.75 - Name: deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.48 - Task: Semantic Segmentation + Config: configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920-bc86dc84.pth -- Config: configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py +- Name: deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes In Collection: fp16 Metadata: backbone: R-101-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 127.06 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 127.06 - lr schd: 80000 memory (GB): 6.35 - Name: deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.46 - Task: Semantic Segmentation + Config: configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920-cc58bc8d.pth diff --git a/configs/gcnet/README.md b/configs/gcnet/README.md index 72f10d14b3..b2e5971d19 100644 --- a/configs/gcnet/README.md +++ b/configs/gcnet/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+GCNet (ICCVW'2019/TPAMI'2020) + ```latex @inproceedings{cao2019gcnet, title={Gcnet: Non-local networks meet squeeze-excitation networks and beyond}, @@ -14,6 +21,8 @@ } ``` +
+ ## Results and models ### Cityscapes diff --git a/configs/gcnet/gcnet.yml b/configs/gcnet/gcnet.yml index da53ac8e18..3bdd4ad04d 100644 --- a/configs/gcnet/gcnet.yml +++ b/configs/gcnet/gcnet.yml @@ -1,296 +1,305 @@ Collections: -- Metadata: +- Name: gcnet + Metadata: Training Data: - Cityscapes - ADE20K - Pascal VOC 2012 + Aug - Name: gcnet + Paper: + URL: https://arxiv.org/abs/1904.11492 + Title: 'GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyond' + README: configs/gcnet/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/decode_heads/gc_head.py#L10 + Version: v0.17.0 + Converted From: + Code: https://github.com/xvjiarui/GCNet Models: -- Config: configs/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes.py +- Name: gcnet_r50-d8_512x1024_40k_cityscapes In Collection: gcnet Metadata: backbone: R-50-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 254.45 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 254.45 - lr schd: 40000 memory (GB): 5.8 - Name: gcnet_r50-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.69 mIoU(ms+flip): 78.56 - Task: Semantic Segmentation + Config: configs/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes/gcnet_r50-d8_512x1024_40k_cityscapes_20200618_074436-4b0fd17b.pth -- Config: configs/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes.py +- Name: gcnet_r101-d8_512x1024_40k_cityscapes In Collection: gcnet Metadata: backbone: R-101-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 383.14 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 383.14 - lr schd: 40000 memory (GB): 9.2 - Name: gcnet_r101-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.28 mIoU(ms+flip): 79.34 - Task: Semantic Segmentation + Config: configs/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes/gcnet_r101-d8_512x1024_40k_cityscapes_20200618_074436-5e62567f.pth -- Config: configs/gcnet/gcnet_r50-d8_769x769_40k_cityscapes.py +- Name: gcnet_r50-d8_769x769_40k_cityscapes In Collection: gcnet Metadata: backbone: R-50-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 598.8 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 598.8 - lr schd: 40000 memory (GB): 6.5 - Name: gcnet_r50-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.12 mIoU(ms+flip): 80.09 - Task: Semantic Segmentation + Config: configs/gcnet/gcnet_r50-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_40k_cityscapes/gcnet_r50-d8_769x769_40k_cityscapes_20200618_182814-a26f4471.pth -- Config: configs/gcnet/gcnet_r101-d8_769x769_40k_cityscapes.py +- Name: gcnet_r101-d8_769x769_40k_cityscapes In Collection: gcnet Metadata: backbone: R-101-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 884.96 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 884.96 - lr schd: 40000 memory (GB): 10.5 - Name: gcnet_r101-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.95 mIoU(ms+flip): 80.71 - Task: Semantic Segmentation + Config: configs/gcnet/gcnet_r101-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_40k_cityscapes/gcnet_r101-d8_769x769_40k_cityscapes_20200619_092550-ca4f0a84.pth -- Config: configs/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes.py +- Name: gcnet_r50-d8_512x1024_80k_cityscapes In Collection: gcnet Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 - Name: gcnet_r50-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.48 mIoU(ms+flip): 80.01 - Task: Semantic Segmentation + Config: configs/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes/gcnet_r50-d8_512x1024_80k_cityscapes_20200618_074450-ef8f069b.pth -- Config: configs/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes.py +- Name: gcnet_r101-d8_512x1024_80k_cityscapes In Collection: gcnet Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 - Name: gcnet_r101-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.03 mIoU(ms+flip): 79.84 - Task: Semantic Segmentation + Config: configs/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes/gcnet_r101-d8_512x1024_80k_cityscapes_20200618_074450-778ebf69.pth -- Config: configs/gcnet/gcnet_r50-d8_769x769_80k_cityscapes.py +- Name: gcnet_r50-d8_769x769_80k_cityscapes In Collection: gcnet Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 - Name: gcnet_r50-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.68 mIoU(ms+flip): 80.66 - Task: Semantic Segmentation + Config: configs/gcnet/gcnet_r50-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_80k_cityscapes/gcnet_r50-d8_769x769_80k_cityscapes_20200619_092516-4839565b.pth -- Config: configs/gcnet/gcnet_r101-d8_769x769_80k_cityscapes.py +- Name: gcnet_r101-d8_769x769_80k_cityscapes In Collection: gcnet Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 - Name: gcnet_r101-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.18 mIoU(ms+flip): 80.71 - Task: Semantic Segmentation + Config: configs/gcnet/gcnet_r101-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_80k_cityscapes/gcnet_r101-d8_769x769_80k_cityscapes_20200619_092628-8e043423.pth -- Config: configs/gcnet/gcnet_r50-d8_512x512_80k_ade20k.py +- Name: gcnet_r50-d8_512x512_80k_ade20k In Collection: gcnet Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 42.77 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 42.77 - lr schd: 80000 memory (GB): 8.5 - Name: gcnet_r50-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 41.47 mIoU(ms+flip): 42.85 - Task: Semantic Segmentation + Config: configs/gcnet/gcnet_r50-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_80k_ade20k/gcnet_r50-d8_512x512_80k_ade20k_20200614_185146-91a6da41.pth -- Config: configs/gcnet/gcnet_r101-d8_512x512_80k_ade20k.py +- Name: gcnet_r101-d8_512x512_80k_ade20k In Collection: gcnet Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 65.79 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 65.79 - lr schd: 80000 memory (GB): 12.0 - Name: gcnet_r101-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.82 mIoU(ms+flip): 44.54 - Task: Semantic Segmentation + Config: configs/gcnet/gcnet_r101-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_80k_ade20k/gcnet_r101-d8_512x512_80k_ade20k_20200615_020811-c3fcb6dd.pth -- Config: configs/gcnet/gcnet_r50-d8_512x512_160k_ade20k.py +- Name: gcnet_r50-d8_512x512_160k_ade20k In Collection: gcnet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 - Name: gcnet_r50-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.37 mIoU(ms+flip): 43.52 - Task: Semantic Segmentation + Config: configs/gcnet/gcnet_r50-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_160k_ade20k/gcnet_r50-d8_512x512_160k_ade20k_20200615_224122-d95f3e1f.pth -- Config: configs/gcnet/gcnet_r101-d8_512x512_160k_ade20k.py +- Name: gcnet_r101-d8_512x512_160k_ade20k In Collection: gcnet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 - Name: gcnet_r101-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.69 mIoU(ms+flip): 45.21 - Task: Semantic Segmentation + Config: configs/gcnet/gcnet_r101-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_160k_ade20k/gcnet_r101-d8_512x512_160k_ade20k_20200615_225406-615528d7.pth -- Config: configs/gcnet/gcnet_r50-d8_512x512_20k_voc12aug.py +- Name: gcnet_r50-d8_512x512_20k_voc12aug In Collection: gcnet Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 42.83 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 42.83 - lr schd: 20000 memory (GB): 5.8 - Name: gcnet_r50-d8_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.42 mIoU(ms+flip): 77.51 - Task: Semantic Segmentation + Config: configs/gcnet/gcnet_r50-d8_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_20k_voc12aug/gcnet_r50-d8_512x512_20k_voc12aug_20200617_165701-3cbfdab1.pth -- Config: configs/gcnet/gcnet_r101-d8_512x512_20k_voc12aug.py +- Name: gcnet_r101-d8_512x512_20k_voc12aug In Collection: gcnet Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 67.57 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 67.57 - lr schd: 20000 memory (GB): 9.2 - Name: gcnet_r101-d8_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.41 mIoU(ms+flip): 78.56 - Task: Semantic Segmentation + Config: configs/gcnet/gcnet_r101-d8_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_20k_voc12aug/gcnet_r101-d8_512x512_20k_voc12aug_20200617_165713-6c720aa9.pth -- Config: configs/gcnet/gcnet_r50-d8_512x512_40k_voc12aug.py +- Name: gcnet_r50-d8_512x512_40k_voc12aug In Collection: gcnet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 40000 - Name: gcnet_r50-d8_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.24 mIoU(ms+flip): 77.63 - Task: Semantic Segmentation + Config: configs/gcnet/gcnet_r50-d8_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_40k_voc12aug/gcnet_r50-d8_512x512_40k_voc12aug_20200613_195105-9797336d.pth -- Config: configs/gcnet/gcnet_r101-d8_512x512_40k_voc12aug.py +- Name: gcnet_r101-d8_512x512_40k_voc12aug In Collection: gcnet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 40000 - Name: gcnet_r101-d8_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.84 mIoU(ms+flip): 78.59 - Task: Semantic Segmentation + Config: configs/gcnet/gcnet_r101-d8_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_40k_voc12aug/gcnet_r101-d8_512x512_40k_voc12aug_20200613_185806-1e38208d.pth diff --git a/configs/hrnet/README.md b/configs/hrnet/README.md index e97fb388f1..61fb56ea0e 100644 --- a/configs/hrnet/README.md +++ b/configs/hrnet/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+HRNet (CVPR'2019) + ```latext @inproceedings{SunXLW19, title={Deep High-Resolution Representation Learning for Human Pose Estimation}, @@ -13,6 +20,8 @@ } ``` +
+ ## Results and models ### Cityscapes diff --git a/configs/hrnet/hrnet.yml b/configs/hrnet/hrnet.yml index 0a9c0e22c4..c4a13f7a65 100644 --- a/configs/hrnet/hrnet.yml +++ b/configs/hrnet/hrnet.yml @@ -1,440 +1,449 @@ Collections: -- Metadata: +- Name: hrnet + Metadata: Training Data: - Cityscapes - ADE20K - Pascal VOC 2012 + Aug - Pascal Context - Pascal Context 59 - Name: hrnet + Paper: + URL: https://arxiv.org/abs/1908.07919 + Title: Deep High-Resolution Representation Learning for Human Pose Estimation + README: configs/hrnet/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/backbones/hrnet.py#L218 + Version: v0.17.0 + Converted From: + Code: https://github.com/HRNet/HRNet-Semantic-Segmentation Models: -- Config: configs/hrnet/fcn_hr18s_512x1024_40k_cityscapes.py +- Name: fcn_hr18s_512x1024_40k_cityscapes In Collection: hrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 42.12 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 42.12 - lr schd: 40000 memory (GB): 1.7 - Name: fcn_hr18s_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 73.86 mIoU(ms+flip): 75.91 - Task: Semantic Segmentation + Config: configs/hrnet/fcn_hr18s_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_40k_cityscapes/fcn_hr18s_512x1024_40k_cityscapes_20200601_014216-93db27d0.pth -- Config: configs/hrnet/fcn_hr18_512x1024_40k_cityscapes.py +- Name: fcn_hr18_512x1024_40k_cityscapes In Collection: hrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 77.1 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 77.1 - lr schd: 40000 memory (GB): 2.9 - Name: fcn_hr18_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.19 mIoU(ms+flip): 78.92 - Task: Semantic Segmentation + Config: configs/hrnet/fcn_hr18_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_40k_cityscapes/fcn_hr18_512x1024_40k_cityscapes_20200601_014216-f196fb4e.pth -- Config: configs/hrnet/fcn_hr48_512x1024_40k_cityscapes.py +- Name: fcn_hr48_512x1024_40k_cityscapes In Collection: hrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 155.76 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 155.76 - lr schd: 40000 memory (GB): 6.2 - Name: fcn_hr48_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.48 mIoU(ms+flip): 79.69 - Task: Semantic Segmentation + Config: configs/hrnet/fcn_hr48_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_40k_cityscapes/fcn_hr48_512x1024_40k_cityscapes_20200601_014240-a989b146.pth -- Config: configs/hrnet/fcn_hr18s_512x1024_80k_cityscapes.py +- Name: fcn_hr18s_512x1024_80k_cityscapes In Collection: hrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,1024) lr schd: 80000 - Name: fcn_hr18s_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 75.31 mIoU(ms+flip): 77.48 - Task: Semantic Segmentation + Config: configs/hrnet/fcn_hr18s_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_80k_cityscapes/fcn_hr18s_512x1024_80k_cityscapes_20200601_202700-1462b75d.pth -- Config: configs/hrnet/fcn_hr18_512x1024_80k_cityscapes.py +- Name: fcn_hr18_512x1024_80k_cityscapes In Collection: hrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,1024) lr schd: 80000 - Name: fcn_hr18_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.65 mIoU(ms+flip): 80.35 - Task: Semantic Segmentation + Config: configs/hrnet/fcn_hr18_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_80k_cityscapes/fcn_hr18_512x1024_80k_cityscapes_20200601_223255-4e7b345e.pth -- Config: configs/hrnet/fcn_hr48_512x1024_80k_cityscapes.py +- Name: fcn_hr48_512x1024_80k_cityscapes In Collection: hrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,1024) lr schd: 80000 - Name: fcn_hr48_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.93 mIoU(ms+flip): 80.72 - Task: Semantic Segmentation + Config: configs/hrnet/fcn_hr48_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_80k_cityscapes/fcn_hr48_512x1024_80k_cityscapes_20200601_202606-58ea95d6.pth -- Config: configs/hrnet/fcn_hr18s_512x1024_160k_cityscapes.py +- Name: fcn_hr18s_512x1024_160k_cityscapes In Collection: hrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,1024) lr schd: 160000 - Name: fcn_hr18s_512x1024_160k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.31 mIoU(ms+flip): 78.31 - Task: Semantic Segmentation + Config: configs/hrnet/fcn_hr18s_512x1024_160k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_160k_cityscapes/fcn_hr18s_512x1024_160k_cityscapes_20200602_190901-4a0797ea.pth -- Config: configs/hrnet/fcn_hr18_512x1024_160k_cityscapes.py +- Name: fcn_hr18_512x1024_160k_cityscapes In Collection: hrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,1024) lr schd: 160000 - Name: fcn_hr18_512x1024_160k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.8 mIoU(ms+flip): 80.74 - Task: Semantic Segmentation + Config: configs/hrnet/fcn_hr18_512x1024_160k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_160k_cityscapes/fcn_hr18_512x1024_160k_cityscapes_20200602_190822-221e4a4f.pth -- Config: configs/hrnet/fcn_hr48_512x1024_160k_cityscapes.py +- Name: fcn_hr48_512x1024_160k_cityscapes In Collection: hrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,1024) lr schd: 160000 - Name: fcn_hr48_512x1024_160k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.65 mIoU(ms+flip): 81.92 - Task: Semantic Segmentation + Config: configs/hrnet/fcn_hr48_512x1024_160k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_160k_cityscapes/fcn_hr48_512x1024_160k_cityscapes_20200602_190946-59b7973e.pth -- Config: configs/hrnet/fcn_hr18s_512x512_80k_ade20k.py +- Name: fcn_hr18s_512x512_80k_ade20k In Collection: hrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 25.87 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 25.87 - lr schd: 80000 memory (GB): 3.8 - Name: fcn_hr18s_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 31.38 mIoU(ms+flip): 32.45 - Task: Semantic Segmentation + Config: configs/hrnet/fcn_hr18s_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_80k_ade20k/fcn_hr18s_512x512_80k_ade20k_20200614_144345-77fc814a.pth -- Config: configs/hrnet/fcn_hr18_512x512_80k_ade20k.py +- Name: fcn_hr18_512x512_80k_ade20k In Collection: hrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 44.31 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 44.31 - lr schd: 80000 memory (GB): 4.9 - Name: fcn_hr18_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 36.27 mIoU(ms+flip): 37.28 - Task: Semantic Segmentation + Config: configs/hrnet/fcn_hr18_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_ade20k/fcn_hr18_512x512_80k_ade20k_20210827_114910-6c9382c0.pth -- Config: configs/hrnet/fcn_hr48_512x512_80k_ade20k.py +- Name: fcn_hr48_512x512_80k_ade20k In Collection: hrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 47.1 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 47.1 - lr schd: 80000 memory (GB): 8.2 - Name: fcn_hr48_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 41.9 mIoU(ms+flip): 43.27 - Task: Semantic Segmentation + Config: configs/hrnet/fcn_hr48_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_80k_ade20k/fcn_hr48_512x512_80k_ade20k_20200614_193946-7ba5258d.pth -- Config: configs/hrnet/fcn_hr18s_512x512_160k_ade20k.py +- Name: fcn_hr18s_512x512_160k_ade20k In Collection: hrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,512) lr schd: 160000 - Name: fcn_hr18s_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 33.07 mIoU(ms+flip): 34.56 - Task: Semantic Segmentation + Config: configs/hrnet/fcn_hr18s_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_160k_ade20k/fcn_hr18s_512x512_160k_ade20k_20210829_174739-f1e7c2e7.pth -- Config: configs/hrnet/fcn_hr18_512x512_160k_ade20k.py +- Name: fcn_hr18_512x512_160k_ade20k In Collection: hrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,512) lr schd: 160000 - Name: fcn_hr18_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 36.79 mIoU(ms+flip): 38.58 - Task: Semantic Segmentation + Config: configs/hrnet/fcn_hr18_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_160k_ade20k/fcn_hr18_512x512_160k_ade20k_20200614_214426-ca961836.pth -- Config: configs/hrnet/fcn_hr48_512x512_160k_ade20k.py +- Name: fcn_hr48_512x512_160k_ade20k In Collection: hrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,512) lr schd: 160000 - Name: fcn_hr48_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.02 mIoU(ms+flip): 43.86 - Task: Semantic Segmentation + Config: configs/hrnet/fcn_hr48_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_160k_ade20k/fcn_hr48_512x512_160k_ade20k_20200614_214407-a52fc02c.pth -- Config: configs/hrnet/fcn_hr18s_512x512_20k_voc12aug.py +- Name: fcn_hr18s_512x512_20k_voc12aug In Collection: hrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 23.06 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 23.06 - lr schd: 20000 memory (GB): 1.8 - Name: fcn_hr18s_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 65.5 mIoU(ms+flip): 68.89 - Task: Semantic Segmentation + Config: configs/hrnet/fcn_hr18s_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_20k_voc12aug/fcn_hr18s_512x512_20k_voc12aug_20210829_174910-0aceadb4.pth -- Config: configs/hrnet/fcn_hr18_512x512_20k_voc12aug.py +- Name: fcn_hr18_512x512_20k_voc12aug In Collection: hrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 42.59 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 42.59 - lr schd: 20000 memory (GB): 2.9 - Name: fcn_hr18_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 72.3 mIoU(ms+flip): 74.71 - Task: Semantic Segmentation + Config: configs/hrnet/fcn_hr18_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_20k_voc12aug/fcn_hr18_512x512_20k_voc12aug_20200617_224503-488d45f7.pth -- Config: configs/hrnet/fcn_hr48_512x512_20k_voc12aug.py +- Name: fcn_hr48_512x512_20k_voc12aug In Collection: hrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 45.35 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 45.35 - lr schd: 20000 memory (GB): 6.2 - Name: fcn_hr48_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 75.87 mIoU(ms+flip): 78.58 - Task: Semantic Segmentation + Config: configs/hrnet/fcn_hr48_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_20k_voc12aug/fcn_hr48_512x512_20k_voc12aug_20200617_224419-89de05cd.pth -- Config: configs/hrnet/fcn_hr18s_512x512_40k_voc12aug.py +- Name: fcn_hr18s_512x512_40k_voc12aug In Collection: hrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,512) lr schd: 40000 - Name: fcn_hr18s_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 66.61 mIoU(ms+flip): 70.0 - Task: Semantic Segmentation + Config: configs/hrnet/fcn_hr18s_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_40k_voc12aug/fcn_hr18s_512x512_40k_voc12aug_20200614_000648-4f8d6e7f.pth -- Config: configs/hrnet/fcn_hr18_512x512_40k_voc12aug.py +- Name: fcn_hr18_512x512_40k_voc12aug In Collection: hrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,512) lr schd: 40000 - Name: fcn_hr18_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 72.9 mIoU(ms+flip): 75.59 - Task: Semantic Segmentation + Config: configs/hrnet/fcn_hr18_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_40k_voc12aug/fcn_hr18_512x512_40k_voc12aug_20200613_224401-1b4b76cd.pth -- Config: configs/hrnet/fcn_hr48_512x512_40k_voc12aug.py +- Name: fcn_hr48_512x512_40k_voc12aug In Collection: hrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,512) lr schd: 40000 - Name: fcn_hr48_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.24 mIoU(ms+flip): 78.49 - Task: Semantic Segmentation + Config: configs/hrnet/fcn_hr48_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_40k_voc12aug/fcn_hr48_512x512_40k_voc12aug_20200613_222111-1b0f18bc.pth -- Config: configs/hrnet/fcn_hr48_480x480_40k_pascal_context.py +- Name: fcn_hr48_480x480_40k_pascal_context In Collection: hrnet Metadata: backbone: HRNetV2p-W48 crop size: (480,480) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 112.87 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (480,480) - value: 112.87 - lr schd: 40000 memory (GB): 6.1 - Name: fcn_hr48_480x480_40k_pascal_context Results: + - Task: Semantic Segmentation Dataset: Pascal Context Metrics: mIoU: 45.14 mIoU(ms+flip): 47.42 - Task: Semantic Segmentation + Config: configs/hrnet/fcn_hr48_480x480_40k_pascal_context.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context/fcn_hr48_480x480_40k_pascal_context_20200911_164852-667d00b0.pth -- Config: configs/hrnet/fcn_hr48_480x480_80k_pascal_context.py +- Name: fcn_hr48_480x480_80k_pascal_context In Collection: hrnet Metadata: backbone: HRNetV2p-W48 crop size: (480,480) lr schd: 80000 - Name: fcn_hr48_480x480_80k_pascal_context Results: + - Task: Semantic Segmentation Dataset: Pascal Context Metrics: mIoU: 45.84 mIoU(ms+flip): 47.84 - Task: Semantic Segmentation + Config: configs/hrnet/fcn_hr48_480x480_80k_pascal_context.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context/fcn_hr48_480x480_80k_pascal_context_20200911_155322-847a6711.pth -- Config: configs/hrnet/fcn_hr48_480x480_40k_pascal_context_59.py +- Name: fcn_hr48_480x480_40k_pascal_context_59 In Collection: hrnet Metadata: backbone: HRNetV2p-W48 crop size: (480,480) lr schd: 40000 - Name: fcn_hr48_480x480_40k_pascal_context_59 Results: + - Task: Semantic Segmentation Dataset: Pascal Context 59 Metrics: mIoU: 50.33 mIoU(ms+flip): 52.83 - Task: Semantic Segmentation + Config: configs/hrnet/fcn_hr48_480x480_40k_pascal_context_59.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context_59/fcn_hr48_480x480_40k_pascal_context_59_20210410_122738-b808b8b2.pth -- Config: configs/hrnet/fcn_hr48_480x480_80k_pascal_context_59.py +- Name: fcn_hr48_480x480_80k_pascal_context_59 In Collection: hrnet Metadata: backbone: HRNetV2p-W48 crop size: (480,480) lr schd: 80000 - Name: fcn_hr48_480x480_80k_pascal_context_59 Results: + - Task: Semantic Segmentation Dataset: Pascal Context 59 Metrics: mIoU: 51.12 mIoU(ms+flip): 53.56 - Task: Semantic Segmentation + Config: configs/hrnet/fcn_hr48_480x480_80k_pascal_context_59.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context_59/fcn_hr48_480x480_80k_pascal_context_59_20210411_003240-3ae7081e.pth diff --git a/configs/isanet/README.md b/configs/isanet/README.md index a15bf9a8f1..6a01fc7634 100644 --- a/configs/isanet/README.md +++ b/configs/isanet/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+ISANet (ArXiv'2019/IJCV'2021) + ``` @article{huang2019isa, title={Interlaced Sparse Self-Attention for Semantic Segmentation}, @@ -23,6 +30,8 @@ The technical report above is also presented at: } ``` +
+ ## Results and models ### Cityscapes diff --git a/configs/isanet/isanet.yml b/configs/isanet/isanet.yml index c73992fedd..113e4f151d 100644 --- a/configs/isanet/isanet.yml +++ b/configs/isanet/isanet.yml @@ -1,360 +1,369 @@ Collections: -- Metadata: +- Name: isanet + Metadata: Training Data: - Cityscapes - ADE20K - Pascal VOC 2012 + Aug - Name: isanet + Paper: + URL: https://arxiv.org/abs/1907.12273 + Title: Interlaced Sparse Self-Attention for Semantic Segmentation + README: configs/isanet/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.18.0/mmseg/models/decode_heads/isa_head.py#L58 + Version: v0.18.0 + Converted From: + Code: https://github.com/openseg-group/openseg.pytorch Models: -- Config: configs/isanet/isanet_r50-d8_512x1024_40k_cityscapes.py +- Name: isanet_r50-d8_512x1024_40k_cityscapes In Collection: isanet Metadata: backbone: R-50-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 343.64 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 343.64 - lr schd: 40000 memory (GB): 5.869 - Name: isanet_r50-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.49 mIoU(ms+flip): 79.44 - Task: Semantic Segmentation + Config: configs/isanet/isanet_r50-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_512x1024_40k_cityscapes/isanet_r50-d8_512x1024_40k_cityscapes_20210901_054739-981bd763.pth -- Config: configs/isanet/isanet_r50-d8_512x1024_80k_cityscapes.py +- Name: isanet_r50-d8_512x1024_80k_cityscapes In Collection: isanet Metadata: backbone: R-50-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 343.64 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 343.64 - lr schd: 80000 memory (GB): 5.869 - Name: isanet_r50-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.68 mIoU(ms+flip): 80.25 - Task: Semantic Segmentation + Config: configs/isanet/isanet_r50-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_512x1024_80k_cityscapes/isanet_r50-d8_512x1024_80k_cityscapes_20210901_074202-89384497.pth -- Config: configs/isanet/isanet_r50-d8_769x769_40k_cityscapes.py +- Name: isanet_r50-d8_769x769_40k_cityscapes In Collection: isanet Metadata: backbone: R-50-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 649.35 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 649.35 - lr schd: 40000 memory (GB): 6.759 - Name: isanet_r50-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.7 mIoU(ms+flip): 80.28 - Task: Semantic Segmentation + Config: configs/isanet/isanet_r50-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_769x769_40k_cityscapes/isanet_r50-d8_769x769_40k_cityscapes_20210903_050200-4ae7e65b.pth -- Config: configs/isanet/isanet_r50-d8_769x769_80k_cityscapes.py +- Name: isanet_r50-d8_769x769_80k_cityscapes In Collection: isanet Metadata: backbone: R-50-D8 crop size: (769,769) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 649.35 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 649.35 - lr schd: 80000 memory (GB): 6.759 - Name: isanet_r50-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.29 mIoU(ms+flip): 80.53 - Task: Semantic Segmentation + Config: configs/isanet/isanet_r50-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_769x769_80k_cityscapes/isanet_r50-d8_769x769_80k_cityscapes_20210903_101126-99b54519.pth -- Config: configs/isanet/isanet_r101-d8_512x1024_40k_cityscapes.py +- Name: isanet_r101-d8_512x1024_40k_cityscapes In Collection: isanet Metadata: backbone: R-101-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 425.53 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 425.53 - lr schd: 40000 memory (GB): 9.425 - Name: isanet_r101-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.58 mIoU(ms+flip): 81.05 - Task: Semantic Segmentation + Config: configs/isanet/isanet_r101-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_512x1024_40k_cityscapes/isanet_r101-d8_512x1024_40k_cityscapes_20210901_145553-293e6bd6.pth -- Config: configs/isanet/isanet_r101-d8_512x1024_80k_cityscapes.py +- Name: isanet_r101-d8_512x1024_80k_cityscapes In Collection: isanet Metadata: backbone: R-101-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 425.53 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 425.53 - lr schd: 80000 memory (GB): 9.425 - Name: isanet_r101-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.32 mIoU(ms+flip): 81.58 - Task: Semantic Segmentation + Config: configs/isanet/isanet_r101-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_512x1024_80k_cityscapes/isanet_r101-d8_512x1024_80k_cityscapes_20210901_145243-5b99c9b2.pth -- Config: configs/isanet/isanet_r101-d8_769x769_40k_cityscapes.py +- Name: isanet_r101-d8_769x769_40k_cityscapes In Collection: isanet Metadata: backbone: R-101-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 1086.96 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 1086.96 - lr schd: 40000 memory (GB): 10.815 - Name: isanet_r101-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.68 mIoU(ms+flip): 80.95 - Task: Semantic Segmentation + Config: configs/isanet/isanet_r101-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_769x769_40k_cityscapes/isanet_r101-d8_769x769_40k_cityscapes_20210903_111320-509e7224.pth -- Config: configs/isanet/isanet_r101-d8_769x769_80k_cityscapes.py +- Name: isanet_r101-d8_769x769_80k_cityscapes In Collection: isanet Metadata: backbone: R-101-D8 crop size: (769,769) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 1086.96 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 1086.96 - lr schd: 80000 memory (GB): 10.815 - Name: isanet_r101-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.61 mIoU(ms+flip): 81.59 - Task: Semantic Segmentation + Config: configs/isanet/isanet_r101-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_769x769_80k_cityscapes/isanet_r101-d8_769x769_80k_cityscapes_20210903_111319-24f71dfa.pth -- Config: configs/isanet/isanet_r50-d8_512x512_80k_ade20k.py +- Name: isanet_r50-d8_512x512_80k_ade20k In Collection: isanet Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 44.35 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 44.35 - lr schd: 80000 memory (GB): 9.0 - Name: isanet_r50-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 41.12 mIoU(ms+flip): 42.35 - Task: Semantic Segmentation + Config: configs/isanet/isanet_r50-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_512x512_80k_ade20k/isanet_r50-d8_512x512_80k_ade20k_20210903_124557-6ed83a0c.pth -- Config: configs/isanet/isanet_r50-d8_512x512_160k_ade20k.py +- Name: isanet_r50-d8_512x512_160k_ade20k In Collection: isanet Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 44.35 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 44.35 - lr schd: 160000 memory (GB): 9.0 - Name: isanet_r50-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.59 mIoU(ms+flip): 43.07 - Task: Semantic Segmentation + Config: configs/isanet/isanet_r50-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_512x512_160k_ade20k/isanet_r50-d8_512x512_160k_ade20k_20210903_104850-f752d0a3.pth -- Config: configs/isanet/isanet_r101-d8_512x512_80k_ade20k.py +- Name: isanet_r101-d8_512x512_80k_ade20k In Collection: isanet Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 94.7 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 94.7 - lr schd: 80000 memory (GB): 12.562 - Name: isanet_r101-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.51 mIoU(ms+flip): 44.38 - Task: Semantic Segmentation + Config: configs/isanet/isanet_r101-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_512x512_80k_ade20k/isanet_r101-d8_512x512_80k_ade20k_20210903_162056-68b235c2.pth -- Config: configs/isanet/isanet_r101-d8_512x512_160k_ade20k.py +- Name: isanet_r101-d8_512x512_160k_ade20k In Collection: isanet Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 94.7 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 94.7 - lr schd: 160000 memory (GB): 12.562 - Name: isanet_r101-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.8 mIoU(ms+flip): 45.4 - Task: Semantic Segmentation + Config: configs/isanet/isanet_r101-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_512x512_160k_ade20k/isanet_r101-d8_512x512_160k_ade20k_20210903_211431-a7879dcd.pth -- Config: configs/isanet/isanet_r50-d8_512x512_20k_voc12aug.py +- Name: isanet_r50-d8_512x512_20k_voc12aug In Collection: isanet Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 43.33 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 43.33 - lr schd: 20000 memory (GB): 5.9 - Name: isanet_r50-d8_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.78 mIoU(ms+flip): 77.79 - Task: Semantic Segmentation + Config: configs/isanet/isanet_r50-d8_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_512x512_20k_voc12aug/isanet_r50-d8_512x512_20k_voc12aug_20210901_164838-79d59b80.pth -- Config: configs/isanet/isanet_r50-d8_512x512_40k_voc12aug.py +- Name: isanet_r50-d8_512x512_40k_voc12aug In Collection: isanet Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 43.33 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 43.33 - lr schd: 40000 memory (GB): 5.9 - Name: isanet_r50-d8_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.2 mIoU(ms+flip): 77.22 - Task: Semantic Segmentation + Config: configs/isanet/isanet_r50-d8_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_512x512_40k_voc12aug/isanet_r50-d8_512x512_40k_voc12aug_20210901_151349-7d08a54e.pth -- Config: configs/isanet/isanet_r101-d8_512x512_20k_voc12aug.py +- Name: isanet_r101-d8_512x512_20k_voc12aug In Collection: isanet Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 134.77 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 134.77 - lr schd: 20000 memory (GB): 9.465 - Name: isanet_r101-d8_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 78.46 mIoU(ms+flip): 79.16 - Task: Semantic Segmentation + Config: configs/isanet/isanet_r101-d8_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_512x512_20k_voc12aug/isanet_r101-d8_512x512_20k_voc12aug_20210901_115805-3ccbf355.pth -- Config: configs/isanet/isanet_r101-d8_512x512_40k_voc12aug.py +- Name: isanet_r101-d8_512x512_40k_voc12aug In Collection: isanet Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 134.77 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 134.77 - lr schd: 40000 memory (GB): 9.465 - Name: isanet_r101-d8_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 78.12 mIoU(ms+flip): 79.04 - Task: Semantic Segmentation + Config: configs/isanet/isanet_r101-d8_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_512x512_40k_voc12aug/isanet_r101-d8_512x512_40k_voc12aug_20210901_145814-bc71233b.pth diff --git a/configs/mobilenet_v2/README.md b/configs/mobilenet_v2/README.md index 7356a0ec4d..7bdd2bd918 100644 --- a/configs/mobilenet_v2/README.md +++ b/configs/mobilenet_v2/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+MobileNetV2 (CVPR'2018) + ```latex @inproceedings{sandler2018mobilenetv2, title={Mobilenetv2: Inverted residuals and linear bottlenecks}, @@ -14,6 +21,8 @@ } ``` +
+ ## Results and models ### Cityscapes diff --git a/configs/mobilenet_v2/mobilenet_v2.yml b/configs/mobilenet_v2/mobilenet_v2.yml index b23a02a018..b8aa46ff6f 100644 --- a/configs/mobilenet_v2/mobilenet_v2.yml +++ b/configs/mobilenet_v2/mobilenet_v2.yml @@ -1,175 +1,184 @@ Collections: -- Metadata: +- Name: mobilenet_v2 + Metadata: Training Data: - Cityscapes - ADE20k - Name: mobilenet_v2 + Paper: + URL: https://arxiv.org/abs/1801.04381 + Title: 'MobileNetV2: Inverted Residuals and Linear Bottlenecks' + README: configs/mobilenet_v2/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/backbones/mobilenet_v2.py#L14 + Version: v0.17.0 + Converted From: + Code: https://github.com/tensorflow/models/tree/master/research/deeplab Models: -- Config: configs/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes.py +- Name: fcn_m-v2-d8_512x1024_80k_cityscapes In Collection: mobilenet_v2 Metadata: backbone: M-V2-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 70.42 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 70.42 - lr schd: 80000 memory (GB): 3.4 - Name: fcn_m-v2-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 61.54 - Task: Semantic Segmentation + Config: configs/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes/fcn_m-v2-d8_512x1024_80k_cityscapes_20200825_124817-d24c28c1.pth -- Config: configs/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes.py +- Name: pspnet_m-v2-d8_512x1024_80k_cityscapes In Collection: mobilenet_v2 Metadata: backbone: M-V2-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 89.29 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 89.29 - lr schd: 80000 memory (GB): 3.6 - Name: pspnet_m-v2-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 70.23 - Task: Semantic Segmentation + Config: configs/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes/pspnet_m-v2-d8_512x1024_80k_cityscapes_20200825_124817-19e81d51.pth -- Config: configs/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py +- Name: deeplabv3_m-v2-d8_512x1024_80k_cityscapes In Collection: mobilenet_v2 Metadata: backbone: M-V2-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 119.05 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 119.05 - lr schd: 80000 memory (GB): 3.9 - Name: deeplabv3_m-v2-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 73.84 - Task: Semantic Segmentation + Config: configs/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes/deeplabv3_m-v2-d8_512x1024_80k_cityscapes_20200825_124836-bef03590.pth -- Config: configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py +- Name: deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes In Collection: mobilenet_v2 Metadata: backbone: M-V2-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 119.05 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 119.05 - lr schd: 80000 memory (GB): 5.1 - Name: deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 75.2 - Task: Semantic Segmentation + Config: configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes_20200825_124836-d256dd4b.pth -- Config: configs/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k.py +- Name: fcn_m-v2-d8_512x512_160k_ade20k In Collection: mobilenet_v2 Metadata: backbone: M-V2-D8 crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 15.53 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 15.53 - lr schd: 160000 memory (GB): 6.5 - Name: fcn_m-v2-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20k Metrics: mIoU: 19.71 - Task: Semantic Segmentation + Config: configs/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k/fcn_m-v2-d8_512x512_160k_ade20k_20200825_214953-c40e1095.pth -- Config: configs/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k.py +- Name: pspnet_m-v2-d8_512x512_160k_ade20k In Collection: mobilenet_v2 Metadata: backbone: M-V2-D8 crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 17.33 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 17.33 - lr schd: 160000 memory (GB): 6.5 - Name: pspnet_m-v2-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20k Metrics: mIoU: 29.68 - Task: Semantic Segmentation + Config: configs/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k/pspnet_m-v2-d8_512x512_160k_ade20k_20200825_214953-f5942f7a.pth -- Config: configs/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k.py +- Name: deeplabv3_m-v2-d8_512x512_160k_ade20k In Collection: mobilenet_v2 Metadata: backbone: M-V2-D8 crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 25.06 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 25.06 - lr schd: 160000 memory (GB): 6.8 - Name: deeplabv3_m-v2-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20k Metrics: mIoU: 34.08 - Task: Semantic Segmentation + Config: configs/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k/deeplabv3_m-v2-d8_512x512_160k_ade20k_20200825_223255-63986343.pth -- Config: configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py +- Name: deeplabv3plus_m-v2-d8_512x512_160k_ade20k In Collection: mobilenet_v2 Metadata: backbone: M-V2-D8 crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 23.2 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 23.2 - lr schd: 160000 memory (GB): 8.2 - Name: deeplabv3plus_m-v2-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20k Metrics: mIoU: 34.02 - Task: Semantic Segmentation + Config: configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k/deeplabv3plus_m-v2-d8_512x512_160k_ade20k_20200825_223255-465a01d4.pth diff --git a/configs/mobilenet_v3/README.md b/configs/mobilenet_v3/README.md index a843d355b6..89a0344cf3 100644 --- a/configs/mobilenet_v3/README.md +++ b/configs/mobilenet_v3/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+MobileNetV3 (ICCV'2019) + ```latex @inproceedings{Howard_2019_ICCV, title={Searching for MobileNetV3}, @@ -16,6 +23,8 @@ } ``` +
+ ## Results and models ### Cityscapes diff --git a/configs/mobilenet_v3/mobilenet_v3.yml b/configs/mobilenet_v3/mobilenet_v3.yml index 68e6368ad6..b047408332 100644 --- a/configs/mobilenet_v3/mobilenet_v3.yml +++ b/configs/mobilenet_v3/mobilenet_v3.yml @@ -1,94 +1,103 @@ Collections: -- Metadata: +- Name: mobilenet_v3 + Metadata: Training Data: - Cityscapes - Name: mobilenet_v3 + Paper: + URL: https://arxiv.org/abs/1801.04381 + Title: Searching for MobileNetV3 + README: configs/mobilenet_v3/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/backbones/mobilenet_v3.py#L15 + Version: v0.17.0 + Converted From: + Code: https://github.com/tensorflow/models/tree/master/research/deeplab Models: -- Config: configs/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes.py +- Name: lraspp_m-v3-d8_512x1024_320k_cityscapes In Collection: mobilenet_v3 Metadata: backbone: M-V3-D8 crop size: (512,1024) + lr schd: 320000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 65.7 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 65.7 - lr schd: 320000 memory (GB): 8.9 - Name: lraspp_m-v3-d8_512x1024_320k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 69.54 mIoU(ms+flip): 70.89 - Task: Semantic Segmentation + Config: configs/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes/lraspp_m-v3-d8_512x1024_320k_cityscapes_20201224_220337-cfe8fb07.pth -- Config: configs/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py +- Name: lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes In Collection: mobilenet_v3 Metadata: backbone: M-V3-D8 (scratch) crop size: (512,1024) + lr schd: 320000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 67.7 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 67.7 - lr schd: 320000 memory (GB): 8.9 - Name: lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 67.87 mIoU(ms+flip): 69.78 - Task: Semantic Segmentation + Config: configs/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes_20201224_220337-9f29cd72.pth -- Config: configs/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes.py +- Name: lraspp_m-v3s-d8_512x1024_320k_cityscapes In Collection: mobilenet_v3 Metadata: backbone: M-V3s-D8 crop size: (512,1024) + lr schd: 320000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 42.3 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 42.3 - lr schd: 320000 memory (GB): 5.3 - Name: lraspp_m-v3s-d8_512x1024_320k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 64.11 mIoU(ms+flip): 66.42 - Task: Semantic Segmentation + Config: configs/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes/lraspp_m-v3s-d8_512x1024_320k_cityscapes_20201224_223935-61565b34.pth -- Config: configs/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py +- Name: lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes In Collection: mobilenet_v3 Metadata: backbone: M-V3s-D8 (scratch) crop size: (512,1024) + lr schd: 320000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 40.82 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 40.82 - lr schd: 320000 memory (GB): 5.3 - Name: lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 62.74 mIoU(ms+flip): 65.01 - Task: Semantic Segmentation + Config: configs/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes_20201224_223935-03daeabb.pth diff --git a/configs/nonlocal_net/README.md b/configs/nonlocal_net/README.md index b98d6d5f3f..643bc702a9 100644 --- a/configs/nonlocal_net/README.md +++ b/configs/nonlocal_net/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+NonLocal Net (CVPR'2018) + ```latex @inproceedings{wang2018non, title={Non-local neural networks}, @@ -14,6 +21,8 @@ } ``` +
+ ## Results and models ### Cityscapes diff --git a/configs/nonlocal_net/nonlocal_net.yml b/configs/nonlocal_net/nonlocal_net.yml index daf56bbfca..74022940bd 100644 --- a/configs/nonlocal_net/nonlocal_net.yml +++ b/configs/nonlocal_net/nonlocal_net.yml @@ -1,292 +1,301 @@ Collections: -- Metadata: +- Name: nonlocal_net + Metadata: Training Data: - Cityscapes - ADE20K - Pascal VOC 2012 + Aug - Name: nonlocal_net + Paper: + URL: https://arxiv.org/abs/1711.07971 + Title: Non-local Neural Networks + README: configs/nonlocal_net/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/decode_heads/nl_head.py#L10 + Version: v0.17.0 + Converted From: + Code: https://github.com/facebookresearch/video-nonlocal-net Models: -- Config: configs/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes.py +- Name: nonlocal_r50-d8_512x1024_40k_cityscapes In Collection: nonlocal_net Metadata: backbone: R-50-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 367.65 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 367.65 - lr schd: 40000 memory (GB): 7.4 - Name: nonlocal_r50-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.24 - Task: Semantic Segmentation + Config: configs/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes/nonlocal_r50-d8_512x1024_40k_cityscapes_20200605_210748-c75e81e3.pth -- Config: configs/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes.py +- Name: nonlocal_r101-d8_512x1024_40k_cityscapes In Collection: nonlocal_net Metadata: backbone: R-101-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 512.82 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 512.82 - lr schd: 40000 memory (GB): 10.9 - Name: nonlocal_r101-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.66 - Task: Semantic Segmentation + Config: configs/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes/nonlocal_r101-d8_512x1024_40k_cityscapes_20200605_210748-d63729fa.pth -- Config: configs/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes.py +- Name: nonlocal_r50-d8_769x769_40k_cityscapes In Collection: nonlocal_net Metadata: backbone: R-50-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 657.89 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 657.89 - lr schd: 40000 memory (GB): 8.9 - Name: nonlocal_r50-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.33 mIoU(ms+flip): 79.92 - Task: Semantic Segmentation + Config: configs/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes/nonlocal_r50-d8_769x769_40k_cityscapes_20200530_045243-82ef6749.pth -- Config: configs/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes.py +- Name: nonlocal_r101-d8_769x769_40k_cityscapes In Collection: nonlocal_net Metadata: backbone: R-101-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 952.38 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 952.38 - lr schd: 40000 memory (GB): 12.8 - Name: nonlocal_r101-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.57 mIoU(ms+flip): 80.29 - Task: Semantic Segmentation + Config: configs/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes/nonlocal_r101-d8_769x769_40k_cityscapes_20200530_045348-8fe9a9dc.pth -- Config: configs/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes.py +- Name: nonlocal_r50-d8_512x1024_80k_cityscapes In Collection: nonlocal_net Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 - Name: nonlocal_r50-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.01 - Task: Semantic Segmentation + Config: configs/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes/nonlocal_r50-d8_512x1024_80k_cityscapes_20200607_193518-d6839fae.pth -- Config: configs/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes.py +- Name: nonlocal_r101-d8_512x1024_80k_cityscapes In Collection: nonlocal_net Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 - Name: nonlocal_r101-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.93 - Task: Semantic Segmentation + Config: configs/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes/nonlocal_r101-d8_512x1024_80k_cityscapes_20200607_183411-32700183.pth -- Config: configs/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes.py +- Name: nonlocal_r50-d8_769x769_80k_cityscapes In Collection: nonlocal_net Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 - Name: nonlocal_r50-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.05 mIoU(ms+flip): 80.68 - Task: Semantic Segmentation + Config: configs/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes/nonlocal_r50-d8_769x769_80k_cityscapes_20200607_193506-1f9792f6.pth -- Config: configs/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes.py +- Name: nonlocal_r101-d8_769x769_80k_cityscapes In Collection: nonlocal_net Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 - Name: nonlocal_r101-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.4 mIoU(ms+flip): 80.85 - Task: Semantic Segmentation + Config: configs/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes/nonlocal_r101-d8_769x769_80k_cityscapes_20200607_183428-0e1fa4f9.pth -- Config: configs/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k.py +- Name: nonlocal_r50-d8_512x512_80k_ade20k In Collection: nonlocal_net Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 46.79 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 46.79 - lr schd: 80000 memory (GB): 9.1 - Name: nonlocal_r50-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 40.75 mIoU(ms+flip): 42.05 - Task: Semantic Segmentation + Config: configs/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k/nonlocal_r50-d8_512x512_80k_ade20k_20200615_015801-5ae0aa33.pth -- Config: configs/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k.py +- Name: nonlocal_r101-d8_512x512_80k_ade20k In Collection: nonlocal_net Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 71.58 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 71.58 - lr schd: 80000 memory (GB): 12.6 - Name: nonlocal_r101-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.9 mIoU(ms+flip): 44.27 - Task: Semantic Segmentation + Config: configs/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k/nonlocal_r101-d8_512x512_80k_ade20k_20200615_015758-24105919.pth -- Config: configs/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k.py +- Name: nonlocal_r50-d8_512x512_160k_ade20k In Collection: nonlocal_net Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 - Name: nonlocal_r50-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.03 mIoU(ms+flip): 43.04 - Task: Semantic Segmentation + Config: configs/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k/nonlocal_r50-d8_512x512_160k_ade20k_20200616_005410-baef45e3.pth -- Config: configs/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k.py +- Name: nonlocal_r101-d8_512x512_160k_ade20k In Collection: nonlocal_net Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 - Name: nonlocal_r101-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 44.63 mIoU(ms+flip): 45.79 - Task: Semantic Segmentation + Config: configs/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k/nonlocal_r101-d8_512x512_160k_ade20k_20210827_221502-7881aa1a.pth -- Config: configs/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug.py +- Name: nonlocal_r50-d8_512x512_20k_voc12aug In Collection: nonlocal_net Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 47.15 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 47.15 - lr schd: 20000 memory (GB): 6.4 - Name: nonlocal_r50-d8_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.2 mIoU(ms+flip): 77.12 - Task: Semantic Segmentation + Config: configs/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug/nonlocal_r50-d8_512x512_20k_voc12aug_20200617_222613-07f2a57c.pth -- Config: configs/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug.py +- Name: nonlocal_r101-d8_512x512_20k_voc12aug In Collection: nonlocal_net Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 71.38 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 71.38 - lr schd: 20000 memory (GB): 9.8 - Name: nonlocal_r101-d8_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 78.15 mIoU(ms+flip): 78.86 - Task: Semantic Segmentation + Config: configs/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug/nonlocal_r101-d8_512x512_20k_voc12aug_20200617_222615-948c68ab.pth -- Config: configs/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug.py +- Name: nonlocal_r50-d8_512x512_40k_voc12aug In Collection: nonlocal_net Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 40000 - Name: nonlocal_r50-d8_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.65 mIoU(ms+flip): 77.47 - Task: Semantic Segmentation + Config: configs/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug/nonlocal_r50-d8_512x512_40k_voc12aug_20200614_000028-0139d4a9.pth -- Config: configs/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug.py +- Name: nonlocal_r101-d8_512x512_40k_voc12aug In Collection: nonlocal_net Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 40000 - Name: nonlocal_r101-d8_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 78.27 mIoU(ms+flip): 79.12 - Task: Semantic Segmentation + Config: configs/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug/nonlocal_r101-d8_512x512_40k_voc12aug_20200614_000028-7e5ff470.pth diff --git a/configs/ocrnet/README.md b/configs/ocrnet/README.md index 68b4bb37b7..bde8964dcc 100644 --- a/configs/ocrnet/README.md +++ b/configs/ocrnet/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+OCRNet (ECCV'2020) + ```latex @article{YuanW18, title={Ocnet: Object context network for scene parsing}, @@ -20,6 +27,8 @@ } ``` +
+ ## Results and models ### Cityscapes diff --git a/configs/ocrnet/ocrnet.yml b/configs/ocrnet/ocrnet.yml index 09db262046..635580cb54 100644 --- a/configs/ocrnet/ocrnet.yml +++ b/configs/ocrnet/ocrnet.yml @@ -1,431 +1,438 @@ Collections: -- Metadata: +- Name: ocrnet + Metadata: Training Data: - Cityscapes - - ' HRNet backbone' - - ' ResNet backbone' - ADE20K - Pascal VOC 2012 + Aug - Name: ocrnet + Paper: + URL: https://arxiv.org/abs/1909.11065 + Title: Object-Contextual Representations for Semantic Segmentation + README: configs/ocrnet/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/decode_heads/ocr_head.py#L86 + Version: v0.17.0 + Converted From: + Code: https://github.com/openseg-group/OCNet.pytorch Models: -- Config: configs/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes.py +- Name: ocrnet_hr18s_512x1024_40k_cityscapes In Collection: ocrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 95.69 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 95.69 - lr schd: 40000 memory (GB): 3.5 - Name: ocrnet_hr18s_512x1024_40k_cityscapes Results: - Dataset: ' HRNet backbone' + - Task: Semantic Segmentation + Dataset: Cityscapes Metrics: mIoU: 74.3 mIoU(ms+flip): 75.95 - Task: Semantic Segmentation + Config: configs/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes/ocrnet_hr18s_512x1024_40k_cityscapes_20200601_033304-fa2436c2.pth -- Config: configs/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes.py +- Name: ocrnet_hr18_512x1024_40k_cityscapes In Collection: ocrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 133.33 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 133.33 - lr schd: 40000 memory (GB): 4.7 - Name: ocrnet_hr18_512x1024_40k_cityscapes Results: - Dataset: ' HRNet backbone' + - Task: Semantic Segmentation + Dataset: Cityscapes Metrics: mIoU: 77.72 mIoU(ms+flip): 79.49 - Task: Semantic Segmentation + Config: configs/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes/ocrnet_hr18_512x1024_40k_cityscapes_20200601_033320-401c5bdd.pth -- Config: configs/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes.py +- Name: ocrnet_hr48_512x1024_40k_cityscapes In Collection: ocrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 236.97 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 236.97 - lr schd: 40000 memory (GB): 8.0 - Name: ocrnet_hr48_512x1024_40k_cityscapes Results: - Dataset: ' HRNet backbone' + - Task: Semantic Segmentation + Dataset: Cityscapes Metrics: mIoU: 80.58 mIoU(ms+flip): 81.79 - Task: Semantic Segmentation + Config: configs/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes/ocrnet_hr48_512x1024_40k_cityscapes_20200601_033336-55b32491.pth -- Config: configs/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes.py +- Name: ocrnet_hr18s_512x1024_80k_cityscapes In Collection: ocrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,1024) lr schd: 80000 - Name: ocrnet_hr18s_512x1024_80k_cityscapes Results: - Dataset: ' HRNet backbone' + - Task: Semantic Segmentation + Dataset: Cityscapes Metrics: mIoU: 77.16 mIoU(ms+flip): 78.66 - Task: Semantic Segmentation + Config: configs/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes/ocrnet_hr18s_512x1024_80k_cityscapes_20200601_222735-55979e63.pth -- Config: configs/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes.py +- Name: ocrnet_hr18_512x1024_80k_cityscapes In Collection: ocrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,1024) lr schd: 80000 - Name: ocrnet_hr18_512x1024_80k_cityscapes Results: - Dataset: ' HRNet backbone' + - Task: Semantic Segmentation + Dataset: Cityscapes Metrics: mIoU: 78.57 mIoU(ms+flip): 80.46 - Task: Semantic Segmentation + Config: configs/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes/ocrnet_hr18_512x1024_80k_cityscapes_20200614_230521-c2e1dd4a.pth -- Config: configs/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes.py +- Name: ocrnet_hr48_512x1024_80k_cityscapes In Collection: ocrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,1024) lr schd: 80000 - Name: ocrnet_hr48_512x1024_80k_cityscapes Results: - Dataset: ' HRNet backbone' + - Task: Semantic Segmentation + Dataset: Cityscapes Metrics: mIoU: 80.7 mIoU(ms+flip): 81.87 - Task: Semantic Segmentation + Config: configs/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes/ocrnet_hr48_512x1024_80k_cityscapes_20200601_222752-9076bcdf.pth -- Config: configs/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes.py +- Name: ocrnet_hr18s_512x1024_160k_cityscapes In Collection: ocrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,1024) lr schd: 160000 - Name: ocrnet_hr18s_512x1024_160k_cityscapes Results: - Dataset: ' HRNet backbone' + - Task: Semantic Segmentation + Dataset: Cityscapes Metrics: mIoU: 78.45 mIoU(ms+flip): 79.97 - Task: Semantic Segmentation + Config: configs/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes/ocrnet_hr18s_512x1024_160k_cityscapes_20200602_191005-f4a7af28.pth -- Config: configs/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes.py +- Name: ocrnet_hr18_512x1024_160k_cityscapes In Collection: ocrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,1024) lr schd: 160000 - Name: ocrnet_hr18_512x1024_160k_cityscapes Results: - Dataset: ' HRNet backbone' + - Task: Semantic Segmentation + Dataset: Cityscapes Metrics: mIoU: 79.47 mIoU(ms+flip): 80.91 - Task: Semantic Segmentation + Config: configs/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes/ocrnet_hr18_512x1024_160k_cityscapes_20200602_191001-b9172d0c.pth -- Config: configs/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes.py +- Name: ocrnet_hr48_512x1024_160k_cityscapes In Collection: ocrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,1024) lr schd: 160000 - Name: ocrnet_hr48_512x1024_160k_cityscapes Results: - Dataset: ' HRNet backbone' + - Task: Semantic Segmentation + Dataset: Cityscapes Metrics: mIoU: 81.35 mIoU(ms+flip): 82.7 - Task: Semantic Segmentation + Config: configs/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes/ocrnet_hr48_512x1024_160k_cityscapes_20200602_191037-dfbf1b0c.pth -- Config: configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py +- Name: ocrnet_r101-d8_512x1024_40k_b8_cityscapes In Collection: ocrnet Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 40000 - Name: ocrnet_r101-d8_512x1024_40k_b8_cityscapes Results: - Dataset: ' ResNet backbone' + - Task: Semantic Segmentation + Dataset: Cityscapes Metrics: mIoU: 80.09 - Task: Semantic Segmentation + Config: configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes/ocrnet_r101-d8_512x1024_40k_b8_cityscapes_20200717_110721-02ac0f13.pth -- Config: configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py +- Name: ocrnet_r101-d8_512x1024_40k_b16_cityscapes In Collection: ocrnet Metadata: backbone: R-101-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 331.13 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 331.13 - lr schd: 40000 memory (GB): 8.8 - Name: ocrnet_r101-d8_512x1024_40k_b16_cityscapes Results: - Dataset: ' ResNet backbone' + - Task: Semantic Segmentation + Dataset: Cityscapes Metrics: mIoU: 80.3 - Task: Semantic Segmentation + Config: configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes/ocrnet_r101-d8_512x1024_40k_b16_cityscapes_20200723_193726-db500f80.pth -- Config: configs/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py +- Name: ocrnet_r101-d8_512x1024_80k_b16_cityscapes In Collection: ocrnet Metadata: backbone: R-101-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 331.13 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 331.13 - lr schd: 80000 memory (GB): 8.8 - Name: ocrnet_r101-d8_512x1024_80k_b16_cityscapes Results: - Dataset: ' ResNet backbone' + - Task: Semantic Segmentation + Dataset: Cityscapes Metrics: mIoU: 80.81 - Task: Semantic Segmentation + Config: configs/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes/ocrnet_r101-d8_512x1024_80k_b16_cityscapes_20200723_192421-78688424.pth -- Config: configs/ocrnet/ocrnet_hr18s_512x512_80k_ade20k.py +- Name: ocrnet_hr18s_512x512_80k_ade20k In Collection: ocrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 34.51 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 34.51 - lr schd: 80000 memory (GB): 6.7 - Name: ocrnet_hr18s_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 35.06 mIoU(ms+flip): 35.8 - Task: Semantic Segmentation + Config: configs/ocrnet/ocrnet_hr18s_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_80k_ade20k/ocrnet_hr18s_512x512_80k_ade20k_20200615_055600-e80b62af.pth -- Config: configs/ocrnet/ocrnet_hr18_512x512_80k_ade20k.py +- Name: ocrnet_hr18_512x512_80k_ade20k In Collection: ocrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 52.83 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 52.83 - lr schd: 80000 memory (GB): 7.9 - Name: ocrnet_hr18_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 37.79 mIoU(ms+flip): 39.16 - Task: Semantic Segmentation + Config: configs/ocrnet/ocrnet_hr18_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_80k_ade20k/ocrnet_hr18_512x512_80k_ade20k_20200615_053157-d173d83b.pth -- Config: configs/ocrnet/ocrnet_hr48_512x512_80k_ade20k.py +- Name: ocrnet_hr48_512x512_80k_ade20k In Collection: ocrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 58.86 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 58.86 - lr schd: 80000 memory (GB): 11.2 - Name: ocrnet_hr48_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.0 mIoU(ms+flip): 44.3 - Task: Semantic Segmentation + Config: configs/ocrnet/ocrnet_hr48_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_80k_ade20k/ocrnet_hr48_512x512_80k_ade20k_20200615_021518-d168c2d1.pth -- Config: configs/ocrnet/ocrnet_hr18s_512x512_160k_ade20k.py +- Name: ocrnet_hr18s_512x512_160k_ade20k In Collection: ocrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,512) lr schd: 160000 - Name: ocrnet_hr18s_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 37.19 mIoU(ms+flip): 38.4 - Task: Semantic Segmentation + Config: configs/ocrnet/ocrnet_hr18s_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_160k_ade20k/ocrnet_hr18s_512x512_160k_ade20k_20200615_184505-8e913058.pth -- Config: configs/ocrnet/ocrnet_hr18_512x512_160k_ade20k.py +- Name: ocrnet_hr18_512x512_160k_ade20k In Collection: ocrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,512) lr schd: 160000 - Name: ocrnet_hr18_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 39.32 mIoU(ms+flip): 40.8 - Task: Semantic Segmentation + Config: configs/ocrnet/ocrnet_hr18_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_160k_ade20k/ocrnet_hr18_512x512_160k_ade20k_20200615_200940-d8fcd9d1.pth -- Config: configs/ocrnet/ocrnet_hr48_512x512_160k_ade20k.py +- Name: ocrnet_hr48_512x512_160k_ade20k In Collection: ocrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,512) lr schd: 160000 - Name: ocrnet_hr48_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.25 mIoU(ms+flip): 44.88 - Task: Semantic Segmentation + Config: configs/ocrnet/ocrnet_hr48_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_160k_ade20k/ocrnet_hr48_512x512_160k_ade20k_20200615_184705-a073726d.pth -- Config: configs/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug.py +- Name: ocrnet_hr18s_512x512_20k_voc12aug In Collection: ocrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 31.7 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 31.7 - lr schd: 20000 memory (GB): 3.5 - Name: ocrnet_hr18s_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 71.7 mIoU(ms+flip): 73.84 - Task: Semantic Segmentation + Config: configs/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug/ocrnet_hr18s_512x512_20k_voc12aug_20200617_233913-02b04fcb.pth -- Config: configs/ocrnet/ocrnet_hr18_512x512_20k_voc12aug.py +- Name: ocrnet_hr18_512x512_20k_voc12aug In Collection: ocrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 50.23 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 50.23 - lr schd: 20000 memory (GB): 4.7 - Name: ocrnet_hr18_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 74.75 mIoU(ms+flip): 77.11 - Task: Semantic Segmentation + Config: configs/ocrnet/ocrnet_hr18_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_20k_voc12aug/ocrnet_hr18_512x512_20k_voc12aug_20200617_233932-8954cbb7.pth -- Config: configs/ocrnet/ocrnet_hr48_512x512_20k_voc12aug.py +- Name: ocrnet_hr48_512x512_20k_voc12aug In Collection: ocrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 56.09 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 56.09 - lr schd: 20000 memory (GB): 8.1 - Name: ocrnet_hr48_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.72 mIoU(ms+flip): 79.87 - Task: Semantic Segmentation + Config: configs/ocrnet/ocrnet_hr48_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_20k_voc12aug/ocrnet_hr48_512x512_20k_voc12aug_20200617_233932-9e82080a.pth -- Config: configs/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug.py +- Name: ocrnet_hr18s_512x512_40k_voc12aug In Collection: ocrnet Metadata: backbone: HRNetV2p-W18-Small crop size: (512,512) lr schd: 40000 - Name: ocrnet_hr18s_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 72.76 mIoU(ms+flip): 74.6 - Task: Semantic Segmentation + Config: configs/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug/ocrnet_hr18s_512x512_40k_voc12aug_20200614_002025-42b587ac.pth -- Config: configs/ocrnet/ocrnet_hr18_512x512_40k_voc12aug.py +- Name: ocrnet_hr18_512x512_40k_voc12aug In Collection: ocrnet Metadata: backbone: HRNetV2p-W18 crop size: (512,512) lr schd: 40000 - Name: ocrnet_hr18_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 74.98 mIoU(ms+flip): 77.4 - Task: Semantic Segmentation + Config: configs/ocrnet/ocrnet_hr18_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_40k_voc12aug/ocrnet_hr18_512x512_40k_voc12aug_20200614_015958-714302be.pth -- Config: configs/ocrnet/ocrnet_hr48_512x512_40k_voc12aug.py +- Name: ocrnet_hr48_512x512_40k_voc12aug In Collection: ocrnet Metadata: backbone: HRNetV2p-W48 crop size: (512,512) lr schd: 40000 - Name: ocrnet_hr48_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.14 mIoU(ms+flip): 79.71 - Task: Semantic Segmentation + Config: configs/ocrnet/ocrnet_hr48_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_40k_voc12aug/ocrnet_hr48_512x512_40k_voc12aug_20200614_015958-255bc5ce.pth diff --git a/configs/point_rend/README.md b/configs/point_rend/README.md index 9031f2b70e..4146eb424e 100644 --- a/configs/point_rend/README.md +++ b/configs/point_rend/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+PointRend (CVPR'2020) + ``` @inproceedings{kirillov2020pointrend, title={Pointrend: Image segmentation as rendering}, @@ -14,6 +21,8 @@ } ``` +
+ ## Results and models ### Cityscapes diff --git a/configs/point_rend/point_rend.yml b/configs/point_rend/point_rend.yml index 064af5300c..835bbdb324 100644 --- a/configs/point_rend/point_rend.yml +++ b/configs/point_rend/point_rend.yml @@ -1,95 +1,104 @@ Collections: -- Metadata: +- Name: point_rend + Metadata: Training Data: - Cityscapes - ADE20K - Name: point_rend + Paper: + URL: https://arxiv.org/abs/1912.08193 + Title: 'PointRend: Image Segmentation as Rendering' + README: configs/point_rend/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/decode_heads/point_head.py#L36 + Version: v0.17.0 + Converted From: + Code: https://github.com/facebookresearch/detectron2/tree/master/projects/PointRend Models: -- Config: configs/point_rend/pointrend_r50_512x1024_80k_cityscapes.py +- Name: pointrend_r50_512x1024_80k_cityscapes In Collection: point_rend Metadata: backbone: R-50 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 117.92 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 117.92 - lr schd: 80000 memory (GB): 3.1 - Name: pointrend_r50_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 76.47 mIoU(ms+flip): 78.13 - Task: Semantic Segmentation + Config: configs/point_rend/pointrend_r50_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x1024_80k_cityscapes/pointrend_r50_512x1024_80k_cityscapes_20200711_015821-bb1ff523.pth -- Config: configs/point_rend/pointrend_r101_512x1024_80k_cityscapes.py +- Name: pointrend_r101_512x1024_80k_cityscapes In Collection: point_rend Metadata: backbone: R-101 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 142.86 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 142.86 - lr schd: 80000 memory (GB): 4.2 - Name: pointrend_r101_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.3 mIoU(ms+flip): 79.97 - Task: Semantic Segmentation + Config: configs/point_rend/pointrend_r101_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x1024_80k_cityscapes/pointrend_r101_512x1024_80k_cityscapes_20200711_170850-d0ca84be.pth -- Config: configs/point_rend/pointrend_r50_512x512_160k_ade20k.py +- Name: pointrend_r50_512x512_160k_ade20k In Collection: point_rend Metadata: backbone: R-50 crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 57.77 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 57.77 - lr schd: 160000 memory (GB): 5.1 - Name: pointrend_r50_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 37.64 mIoU(ms+flip): 39.17 - Task: Semantic Segmentation + Config: configs/point_rend/pointrend_r50_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x512_160k_ade20k/pointrend_r50_512x512_160k_ade20k_20200807_232644-ac3febf2.pth -- Config: configs/point_rend/pointrend_r101_512x512_160k_ade20k.py +- Name: pointrend_r101_512x512_160k_ade20k In Collection: point_rend Metadata: backbone: R-101 crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 64.52 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 64.52 - lr schd: 160000 memory (GB): 6.1 - Name: pointrend_r101_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 40.02 mIoU(ms+flip): 41.6 - Task: Semantic Segmentation + Config: configs/point_rend/pointrend_r101_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x512_160k_ade20k/pointrend_r101_512x512_160k_ade20k_20200808_030852-8834902a.pth diff --git a/configs/psanet/README.md b/configs/psanet/README.md index 01ed322587..bd9f1731ef 100644 --- a/configs/psanet/README.md +++ b/configs/psanet/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+PSANet (ECCV'2018) + ```latex @inproceedings{zhao2018psanet, title={Psanet: Point-wise spatial attention network for scene parsing}, @@ -14,6 +21,8 @@ } ``` +
+ ## Results and models ### Cityscapes diff --git a/configs/psanet/psanet.yml b/configs/psanet/psanet.yml index ae069485df..a263b3f7ce 100644 --- a/configs/psanet/psanet.yml +++ b/configs/psanet/psanet.yml @@ -1,296 +1,305 @@ Collections: -- Metadata: +- Name: psanet + Metadata: Training Data: - Cityscapes - ADE20K - Pascal VOC 2012 + Aug - Name: psanet + Paper: + URL: https://openaccess.thecvf.com/content_ECCV_2018/papers/Hengshuang_Zhao_PSANet_Point-wise_Spatial_ECCV_2018_paper.pdf + Title: 'PSANet: Point-wise Spatial Attention Network for Scene Parsing' + README: configs/psanet/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/decode_heads/psa_head.py#L18 + Version: v0.17.0 + Converted From: + Code: https://github.com/hszhao/PSANet Models: -- Config: configs/psanet/psanet_r50-d8_512x1024_40k_cityscapes.py +- Name: psanet_r50-d8_512x1024_40k_cityscapes In Collection: psanet Metadata: backbone: R-50-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 315.46 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 315.46 - lr schd: 40000 memory (GB): 7.0 - Name: psanet_r50-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.63 mIoU(ms+flip): 79.04 - Task: Semantic Segmentation + Config: configs/psanet/psanet_r50-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_40k_cityscapes/psanet_r50-d8_512x1024_40k_cityscapes_20200606_103117-99fac37c.pth -- Config: configs/psanet/psanet_r101-d8_512x1024_40k_cityscapes.py +- Name: psanet_r101-d8_512x1024_40k_cityscapes In Collection: psanet Metadata: backbone: R-101-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 454.55 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 454.55 - lr schd: 40000 memory (GB): 10.5 - Name: psanet_r101-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.14 mIoU(ms+flip): 80.19 - Task: Semantic Segmentation + Config: configs/psanet/psanet_r101-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_40k_cityscapes/psanet_r101-d8_512x1024_40k_cityscapes_20200606_001418-27b9cfa7.pth -- Config: configs/psanet/psanet_r50-d8_769x769_40k_cityscapes.py +- Name: psanet_r50-d8_769x769_40k_cityscapes In Collection: psanet Metadata: backbone: R-50-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 714.29 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 714.29 - lr schd: 40000 memory (GB): 7.9 - Name: psanet_r50-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.99 mIoU(ms+flip): 79.64 - Task: Semantic Segmentation + Config: configs/psanet/psanet_r50-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_40k_cityscapes/psanet_r50-d8_769x769_40k_cityscapes_20200530_033717-d5365506.pth -- Config: configs/psanet/psanet_r101-d8_769x769_40k_cityscapes.py +- Name: psanet_r101-d8_769x769_40k_cityscapes In Collection: psanet Metadata: backbone: R-101-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 1020.41 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 1020.41 - lr schd: 40000 memory (GB): 11.9 - Name: psanet_r101-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.43 mIoU(ms+flip): 80.26 - Task: Semantic Segmentation + Config: configs/psanet/psanet_r101-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_40k_cityscapes/psanet_r101-d8_769x769_40k_cityscapes_20200530_035107-997da1e6.pth -- Config: configs/psanet/psanet_r50-d8_512x1024_80k_cityscapes.py +- Name: psanet_r50-d8_512x1024_80k_cityscapes In Collection: psanet Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 - Name: psanet_r50-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.24 mIoU(ms+flip): 78.69 - Task: Semantic Segmentation + Config: configs/psanet/psanet_r50-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_80k_cityscapes/psanet_r50-d8_512x1024_80k_cityscapes_20200606_161842-ab60a24f.pth -- Config: configs/psanet/psanet_r101-d8_512x1024_80k_cityscapes.py +- Name: psanet_r101-d8_512x1024_80k_cityscapes In Collection: psanet Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 - Name: psanet_r101-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.31 mIoU(ms+flip): 80.53 - Task: Semantic Segmentation + Config: configs/psanet/psanet_r101-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_80k_cityscapes/psanet_r101-d8_512x1024_80k_cityscapes_20200606_161823-0f73a169.pth -- Config: configs/psanet/psanet_r50-d8_769x769_80k_cityscapes.py +- Name: psanet_r50-d8_769x769_80k_cityscapes In Collection: psanet Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 - Name: psanet_r50-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.31 mIoU(ms+flip): 80.91 - Task: Semantic Segmentation + Config: configs/psanet/psanet_r50-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_80k_cityscapes/psanet_r50-d8_769x769_80k_cityscapes_20200606_225134-fe42f49e.pth -- Config: configs/psanet/psanet_r101-d8_769x769_80k_cityscapes.py +- Name: psanet_r101-d8_769x769_80k_cityscapes In Collection: psanet Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 - Name: psanet_r101-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.69 mIoU(ms+flip): 80.89 - Task: Semantic Segmentation + Config: configs/psanet/psanet_r101-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_80k_cityscapes/psanet_r101-d8_769x769_80k_cityscapes_20200606_214550-7665827b.pth -- Config: configs/psanet/psanet_r50-d8_512x512_80k_ade20k.py +- Name: psanet_r50-d8_512x512_80k_ade20k In Collection: psanet Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 52.88 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 52.88 - lr schd: 80000 memory (GB): 9.0 - Name: psanet_r50-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 41.14 mIoU(ms+flip): 41.91 - Task: Semantic Segmentation + Config: configs/psanet/psanet_r50-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_80k_ade20k/psanet_r50-d8_512x512_80k_ade20k_20200614_144141-835e4b97.pth -- Config: configs/psanet/psanet_r101-d8_512x512_80k_ade20k.py +- Name: psanet_r101-d8_512x512_80k_ade20k In Collection: psanet Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 76.16 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 76.16 - lr schd: 80000 memory (GB): 12.5 - Name: psanet_r101-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.8 mIoU(ms+flip): 44.75 - Task: Semantic Segmentation + Config: configs/psanet/psanet_r101-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_80k_ade20k/psanet_r101-d8_512x512_80k_ade20k_20200614_185117-1fab60d4.pth -- Config: configs/psanet/psanet_r50-d8_512x512_160k_ade20k.py +- Name: psanet_r50-d8_512x512_160k_ade20k In Collection: psanet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 - Name: psanet_r50-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 41.67 mIoU(ms+flip): 42.95 - Task: Semantic Segmentation + Config: configs/psanet/psanet_r50-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_160k_ade20k/psanet_r50-d8_512x512_160k_ade20k_20200615_161258-148077dd.pth -- Config: configs/psanet/psanet_r101-d8_512x512_160k_ade20k.py +- Name: psanet_r101-d8_512x512_160k_ade20k In Collection: psanet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 - Name: psanet_r101-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.74 mIoU(ms+flip): 45.38 - Task: Semantic Segmentation + Config: configs/psanet/psanet_r101-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_160k_ade20k/psanet_r101-d8_512x512_160k_ade20k_20200615_161537-dbfa564c.pth -- Config: configs/psanet/psanet_r50-d8_512x512_20k_voc12aug.py +- Name: psanet_r50-d8_512x512_20k_voc12aug In Collection: psanet Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 54.82 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 54.82 - lr schd: 20000 memory (GB): 6.9 - Name: psanet_r50-d8_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.39 mIoU(ms+flip): 77.34 - Task: Semantic Segmentation + Config: configs/psanet/psanet_r50-d8_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_20k_voc12aug/psanet_r50-d8_512x512_20k_voc12aug_20200617_102413-2f1bbaa1.pth -- Config: configs/psanet/psanet_r101-d8_512x512_20k_voc12aug.py +- Name: psanet_r101-d8_512x512_20k_voc12aug In Collection: psanet Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 79.18 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 79.18 - lr schd: 20000 memory (GB): 10.4 - Name: psanet_r101-d8_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.91 mIoU(ms+flip): 79.3 - Task: Semantic Segmentation + Config: configs/psanet/psanet_r101-d8_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_20k_voc12aug/psanet_r101-d8_512x512_20k_voc12aug_20200617_110624-946fef11.pth -- Config: configs/psanet/psanet_r50-d8_512x512_40k_voc12aug.py +- Name: psanet_r50-d8_512x512_40k_voc12aug In Collection: psanet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 40000 - Name: psanet_r50-d8_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.3 mIoU(ms+flip): 77.35 - Task: Semantic Segmentation + Config: configs/psanet/psanet_r50-d8_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_40k_voc12aug/psanet_r50-d8_512x512_40k_voc12aug_20200613_161946-f596afb5.pth -- Config: configs/psanet/psanet_r101-d8_512x512_40k_voc12aug.py +- Name: psanet_r101-d8_512x512_40k_voc12aug In Collection: psanet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 40000 - Name: psanet_r101-d8_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.73 mIoU(ms+flip): 79.05 - Task: Semantic Segmentation + Config: configs/psanet/psanet_r101-d8_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_40k_voc12aug/psanet_r101-d8_512x512_40k_voc12aug_20200613_161946-1f560f9e.pth diff --git a/configs/pspnet/README.md b/configs/pspnet/README.md index 5bf8da3646..72b280ada3 100644 --- a/configs/pspnet/README.md +++ b/configs/pspnet/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+PSPNet (CVPR'2017) + ```latex @inproceedings{zhao2017pspnet, title={Pyramid Scene Parsing Network}, @@ -13,6 +20,8 @@ } ``` +
+ ## Results and models ### Cityscapes diff --git a/configs/pspnet/pspnet.yml b/configs/pspnet/pspnet.yml index 050751e1d0..4b3cd1f41f 100644 --- a/configs/pspnet/pspnet.yml +++ b/configs/pspnet/pspnet.yml @@ -1,5 +1,6 @@ Collections: -- Metadata: +- Name: pspnet + Metadata: Training Data: - Cityscapes - ADE20K @@ -9,705 +10,713 @@ Collections: - Dark Zurich and Nighttime Driving - COCO-Stuff 10k - COCO-Stuff 164k - Name: pspnet + Paper: + URL: https://arxiv.org/abs/1612.01105 + Title: Pyramid Scene Parsing Network + README: configs/pspnet/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/decode_heads/psp_head.py#L63 + Version: v0.17.0 + Converted From: + Code: https://github.com/hszhao/PSPNet Models: -- Config: configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py +- Name: pspnet_r50-d8_512x1024_40k_cityscapes In Collection: pspnet Metadata: backbone: R-50-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 245.7 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 245.7 - lr schd: 40000 memory (GB): 6.1 - Name: pspnet_r50-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.85 mIoU(ms+flip): 79.18 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth -- Config: configs/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes.py +- Name: pspnet_r101-d8_512x1024_40k_cityscapes In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 373.13 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 373.13 - lr schd: 40000 memory (GB): 9.6 - Name: pspnet_r101-d8_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.34 mIoU(ms+flip): 79.74 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes/pspnet_r101-d8_512x1024_40k_cityscapes_20200604_232751-467e7cf4.pth -- Config: configs/pspnet/pspnet_r50-d8_769x769_40k_cityscapes.py +- Name: pspnet_r50-d8_769x769_40k_cityscapes In Collection: pspnet Metadata: backbone: R-50-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 568.18 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 568.18 - lr schd: 40000 memory (GB): 6.9 - Name: pspnet_r50-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.26 mIoU(ms+flip): 79.88 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r50-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_40k_cityscapes/pspnet_r50-d8_769x769_40k_cityscapes_20200606_112725-86638686.pth -- Config: configs/pspnet/pspnet_r101-d8_769x769_40k_cityscapes.py +- Name: pspnet_r101-d8_769x769_40k_cityscapes In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 869.57 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 869.57 - lr schd: 40000 memory (GB): 10.9 - Name: pspnet_r101-d8_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.08 mIoU(ms+flip): 80.28 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r101-d8_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_40k_cityscapes/pspnet_r101-d8_769x769_40k_cityscapes_20200606_112753-61c6f5be.pth -- Config: configs/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes.py +- Name: pspnet_r18-d8_512x1024_80k_cityscapes In Collection: pspnet Metadata: backbone: R-18-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 63.65 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 63.65 - lr schd: 80000 memory (GB): 1.7 - Name: pspnet_r18-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 74.87 mIoU(ms+flip): 76.04 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes/pspnet_r18-d8_512x1024_80k_cityscapes_20201225_021458-09ffa746.pth -- Config: configs/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes.py +- Name: pspnet_r50-d8_512x1024_80k_cityscapes In Collection: pspnet Metadata: backbone: R-50-D8 crop size: (512,1024) lr schd: 80000 - Name: pspnet_r50-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.55 mIoU(ms+flip): 79.79 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes/pspnet_r50-d8_512x1024_80k_cityscapes_20200606_112131-2376f12b.pth -- Config: configs/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py +- Name: pspnet_r101-d8_512x1024_80k_cityscapes In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (512,1024) lr schd: 80000 - Name: pspnet_r101-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.76 mIoU(ms+flip): 81.01 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes/pspnet_r101-d8_512x1024_80k_cityscapes_20200606_112211-e1e1100f.pth -- Config: configs/pspnet/pspnet_r18-d8_769x769_80k_cityscapes.py +- Name: pspnet_r18-d8_769x769_80k_cityscapes In Collection: pspnet Metadata: backbone: R-18-D8 crop size: (769,769) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 161.29 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 161.29 - lr schd: 80000 memory (GB): 1.9 - Name: pspnet_r18-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 75.9 mIoU(ms+flip): 77.86 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r18-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_769x769_80k_cityscapes/pspnet_r18-d8_769x769_80k_cityscapes_20201225_021458-3deefc62.pth -- Config: configs/pspnet/pspnet_r50-d8_769x769_80k_cityscapes.py +- Name: pspnet_r50-d8_769x769_80k_cityscapes In Collection: pspnet Metadata: backbone: R-50-D8 crop size: (769,769) lr schd: 80000 - Name: pspnet_r50-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.59 mIoU(ms+flip): 80.69 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r50-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_80k_cityscapes/pspnet_r50-d8_769x769_80k_cityscapes_20200606_210121-5ccf03dd.pth -- Config: configs/pspnet/pspnet_r101-d8_769x769_80k_cityscapes.py +- Name: pspnet_r101-d8_769x769_80k_cityscapes In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (769,769) lr schd: 80000 - Name: pspnet_r101-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.77 mIoU(ms+flip): 81.06 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r101-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_80k_cityscapes/pspnet_r101-d8_769x769_80k_cityscapes_20200606_225055-dba412fa.pth -- Config: configs/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes.py +- Name: pspnet_r18b-d8_512x1024_80k_cityscapes In Collection: pspnet Metadata: backbone: R-18b-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 61.43 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 61.43 - lr schd: 80000 memory (GB): 1.5 - Name: pspnet_r18b-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 74.23 mIoU(ms+flip): 75.79 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes/pspnet_r18b-d8_512x1024_80k_cityscapes_20201226_063116-26928a60.pth -- Config: configs/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes.py +- Name: pspnet_r50b-d8_512x1024_80k_cityscapes In Collection: pspnet Metadata: backbone: R-50b-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 232.56 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 232.56 - lr schd: 80000 memory (GB): 6.0 - Name: pspnet_r50b-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.22 mIoU(ms+flip): 79.46 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes/pspnet_r50b-d8_512x1024_80k_cityscapes_20201225_094315-6344287a.pth -- Config: configs/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes.py +- Name: pspnet_r101b-d8_512x1024_80k_cityscapes In Collection: pspnet Metadata: backbone: R-101b-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 362.32 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 362.32 - lr schd: 80000 memory (GB): 9.5 - Name: pspnet_r101b-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.69 mIoU(ms+flip): 80.79 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes_20201226_170012-3a4d38ab.pth -- Config: configs/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes.py +- Name: pspnet_r18b-d8_769x769_80k_cityscapes In Collection: pspnet Metadata: backbone: R-18b-D8 crop size: (769,769) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 156.01 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 156.01 - lr schd: 80000 memory (GB): 1.7 - Name: pspnet_r18b-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 74.92 mIoU(ms+flip): 76.9 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes/pspnet_r18b-d8_769x769_80k_cityscapes_20201226_080942-bf98d186.pth -- Config: configs/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes.py +- Name: pspnet_r50b-d8_769x769_80k_cityscapes In Collection: pspnet Metadata: backbone: R-50b-D8 crop size: (769,769) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 531.91 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 531.91 - lr schd: 80000 memory (GB): 6.8 - Name: pspnet_r50b-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.5 mIoU(ms+flip): 79.96 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes/pspnet_r50b-d8_769x769_80k_cityscapes_20201225_094316-4c643cf6.pth -- Config: configs/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes.py +- Name: pspnet_r101b-d8_769x769_80k_cityscapes In Collection: pspnet Metadata: backbone: R-101b-D8 crop size: (769,769) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 854.7 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 854.7 - lr schd: 80000 memory (GB): 10.8 - Name: pspnet_r101b-d8_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.87 mIoU(ms+flip): 80.04 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes/pspnet_r101b-d8_769x769_80k_cityscapes_20201226_171823-f0e7c293.pth -- Config: configs/pspnet/pspnet_r50-d8_512x512_80k_ade20k.py +- Name: pspnet_r50-d8_512x512_80k_ade20k In Collection: pspnet Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 42.5 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 42.5 - lr schd: 80000 memory (GB): 8.5 - Name: pspnet_r50-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 41.13 mIoU(ms+flip): 41.94 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r50-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_80k_ade20k/pspnet_r50-d8_512x512_80k_ade20k_20200615_014128-15a8b914.pth -- Config: configs/pspnet/pspnet_r101-d8_512x512_80k_ade20k.py +- Name: pspnet_r101-d8_512x512_80k_ade20k In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 65.36 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 65.36 - lr schd: 80000 memory (GB): 12.0 - Name: pspnet_r101-d8_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.57 mIoU(ms+flip): 44.35 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r101-d8_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_80k_ade20k/pspnet_r101-d8_512x512_80k_ade20k_20200614_031423-b6e782f0.pth -- Config: configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py +- Name: pspnet_r50-d8_512x512_160k_ade20k In Collection: pspnet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 - Name: pspnet_r50-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.48 mIoU(ms+flip): 43.44 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_160k_ade20k/pspnet_r50-d8_512x512_160k_ade20k_20200615_184358-1890b0bd.pth -- Config: configs/pspnet/pspnet_r101-d8_512x512_160k_ade20k.py +- Name: pspnet_r101-d8_512x512_160k_ade20k In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 - Name: pspnet_r101-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 44.39 mIoU(ms+flip): 45.35 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r101-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_160k_ade20k/pspnet_r101-d8_512x512_160k_ade20k_20200615_100650-967c316f.pth -- Config: configs/pspnet/pspnet_r50-d8_512x512_20k_voc12aug.py +- Name: pspnet_r50-d8_512x512_20k_voc12aug In Collection: pspnet Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 42.39 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 42.39 - lr schd: 20000 memory (GB): 6.1 - Name: pspnet_r50-d8_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 76.78 mIoU(ms+flip): 77.61 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r50-d8_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_20k_voc12aug/pspnet_r50-d8_512x512_20k_voc12aug_20200617_101958-ed5dfbd9.pth -- Config: configs/pspnet/pspnet_r101-d8_512x512_20k_voc12aug.py +- Name: pspnet_r101-d8_512x512_20k_voc12aug In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 66.58 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 66.58 - lr schd: 20000 memory (GB): 9.6 - Name: pspnet_r101-d8_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 78.47 mIoU(ms+flip): 79.25 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r101-d8_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_20k_voc12aug/pspnet_r101-d8_512x512_20k_voc12aug_20200617_102003-4aef3c9a.pth -- Config: configs/pspnet/pspnet_r50-d8_512x512_40k_voc12aug.py +- Name: pspnet_r50-d8_512x512_40k_voc12aug In Collection: pspnet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 40000 - Name: pspnet_r50-d8_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.29 mIoU(ms+flip): 78.48 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r50-d8_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_40k_voc12aug/pspnet_r50-d8_512x512_40k_voc12aug_20200613_161222-ae9c1b8c.pth -- Config: configs/pspnet/pspnet_r101-d8_512x512_40k_voc12aug.py +- Name: pspnet_r101-d8_512x512_40k_voc12aug In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 40000 - Name: pspnet_r101-d8_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 78.52 mIoU(ms+flip): 79.57 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r101-d8_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_40k_voc12aug/pspnet_r101-d8_512x512_40k_voc12aug_20200613_161222-bc933b18.pth -- Config: configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context.py +- Name: pspnet_r101-d8_480x480_40k_pascal_context In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (480,480) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 103.31 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (480,480) - value: 103.31 - lr schd: 40000 memory (GB): 8.8 - Name: pspnet_r101-d8_480x480_40k_pascal_context Results: + - Task: Semantic Segmentation Dataset: Pascal Context Metrics: mIoU: 46.6 mIoU(ms+flip): 47.78 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context/pspnet_r101-d8_480x480_40k_pascal_context_20200911_211210-bf0f5d7c.pth -- Config: configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context.py +- Name: pspnet_r101-d8_480x480_80k_pascal_context In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (480,480) lr schd: 80000 - Name: pspnet_r101-d8_480x480_80k_pascal_context Results: + - Task: Semantic Segmentation Dataset: Pascal Context Metrics: mIoU: 46.03 mIoU(ms+flip): 47.15 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context/pspnet_r101-d8_480x480_80k_pascal_context_20200911_190530-c86d6233.pth -- Config: configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context_59.py +- Name: pspnet_r101-d8_480x480_40k_pascal_context_59 In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (480,480) lr schd: 40000 - Name: pspnet_r101-d8_480x480_40k_pascal_context_59 Results: + - Task: Semantic Segmentation Dataset: Pascal Context 59 Metrics: mIoU: 52.02 mIoU(ms+flip): 53.54 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context_59.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context_59/pspnet_r101-d8_480x480_40k_pascal_context_59_20210416_114524-86d44cd4.pth -- Config: configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context_59.py +- Name: pspnet_r101-d8_480x480_80k_pascal_context_59 In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (480,480) lr schd: 80000 - Name: pspnet_r101-d8_480x480_80k_pascal_context_59 Results: + - Task: Semantic Segmentation Dataset: Pascal Context 59 Metrics: mIoU: 52.47 mIoU(ms+flip): 53.99 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context_59.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context_59/pspnet_r101-d8_480x480_80k_pascal_context_59_20210416_114418-fa6caaa2.pth -- Config: configs/pspnet/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k.py +- Name: pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k In Collection: pspnet Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 48.78 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 48.78 - lr schd: 20000 memory (GB): 9.6 - Name: pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k Results: + - Task: Semantic Segmentation Dataset: COCO-Stuff 10k Metrics: mIoU: 35.69 mIoU(ms+flip): 36.62 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k_20210820_203258-b88df27f.pth -- Config: configs/pspnet/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k.py +- Name: pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 90.09 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 90.09 - lr schd: 20000 memory (GB): 13.2 - Name: pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k Results: + - Task: Semantic Segmentation Dataset: COCO-Stuff 10k Metrics: mIoU: 37.26 mIoU(ms+flip): 38.52 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k_20210820_232135-76aae482.pth -- Config: configs/pspnet/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k.py +- Name: pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k In Collection: pspnet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 40000 - Name: pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k Results: + - Task: Semantic Segmentation Dataset: COCO-Stuff 10k Metrics: mIoU: 36.33 mIoU(ms+flip): 37.24 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k_20210821_030857-92e2902b.pth -- Config: configs/pspnet/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k.py +- Name: pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 40000 - Name: pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k Results: + - Task: Semantic Segmentation Dataset: COCO-Stuff 10k Metrics: mIoU: 37.76 mIoU(ms+flip): 38.86 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k_20210821_014022-831aec95.pth -- Config: configs/pspnet/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k.py +- Name: pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k In Collection: pspnet Metadata: backbone: R-50-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 48.78 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 48.78 - lr schd: 80000 memory (GB): 9.6 - Name: pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k Results: + - Task: Semantic Segmentation Dataset: COCO-Stuff 164k Metrics: mIoU: 38.8 mIoU(ms+flip): 39.19 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k_20210707_152034-0e41b2db.pth -- Config: configs/pspnet/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k.py +- Name: pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 90.09 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 90.09 - lr schd: 80000 memory (GB): 13.2 - Name: pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k Results: + - Task: Semantic Segmentation Dataset: COCO-Stuff 164k Metrics: mIoU: 40.34 mIoU(ms+flip): 40.79 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k_20210707_152034-7eb41789.pth -- Config: configs/pspnet/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k.py +- Name: pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k In Collection: pspnet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 160000 - Name: pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k Results: + - Task: Semantic Segmentation Dataset: COCO-Stuff 164k Metrics: mIoU: 39.64 mIoU(ms+flip): 39.97 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k_20210707_152004-51276a57.pth -- Config: configs/pspnet/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k.py +- Name: pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 160000 - Name: pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k Results: + - Task: Semantic Segmentation Dataset: COCO-Stuff 164k Metrics: mIoU: 41.28 mIoU(ms+flip): 41.66 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k_20210707_152004-4af9621b.pth -- Config: configs/pspnet/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k.py +- Name: pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k In Collection: pspnet Metadata: backbone: R-50-D8 crop size: (512,512) lr schd: 320000 - Name: pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k Results: + - Task: Semantic Segmentation Dataset: COCO-Stuff 164k Metrics: mIoU: 40.53 mIoU(ms+flip): 40.75 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004-be9610cc.pth -- Config: configs/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k.py +- Name: pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k In Collection: pspnet Metadata: backbone: R-101-D8 crop size: (512,512) lr schd: 320000 - Name: pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k Results: + - Task: Semantic Segmentation Dataset: COCO-Stuff 164k Metrics: mIoU: 41.95 mIoU(ms+flip): 42.42 - Task: Semantic Segmentation + Config: configs/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004-72220c60.pth diff --git a/configs/resnest/README.md b/configs/resnest/README.md index b610c14c3e..a8710e676a 100644 --- a/configs/resnest/README.md +++ b/configs/resnest/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+ResNeSt (ArXiv'2020) + ```latex @article{zhang2020resnest, title={ResNeSt: Split-Attention Networks}, @@ -13,6 +20,8 @@ year={2020} } ``` +
+ ## Results and models ### Cityscapes diff --git a/configs/resnest/resnest.yml b/configs/resnest/resnest.yml index 417cce92a0..624929a13c 100644 --- a/configs/resnest/resnest.yml +++ b/configs/resnest/resnest.yml @@ -1,183 +1,192 @@ Collections: -- Metadata: +- Name: resnest + Metadata: Training Data: - Cityscapes - ADE20k - Name: resnest + Paper: + URL: https://arxiv.org/abs/2004.08955 + Title: 'ResNeSt: Split-Attention Networks' + README: configs/resnest/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/backbones/resnest.py#L271 + Version: v0.17.0 + Converted From: + Code: https://github.com/zhanghang1989/ResNeSt Models: -- Config: configs/resnest/fcn_s101-d8_512x1024_80k_cityscapes.py +- Name: fcn_s101-d8_512x1024_80k_cityscapes In Collection: resnest Metadata: backbone: S-101-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 418.41 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 418.41 - lr schd: 80000 memory (GB): 11.4 - Name: fcn_s101-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.56 mIoU(ms+flip): 78.98 - Task: Semantic Segmentation + Config: configs/resnest/fcn_s101-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x1024_80k_cityscapes/fcn_s101-d8_512x1024_80k_cityscapes_20200807_140631-f8d155b3.pth -- Config: configs/resnest/pspnet_s101-d8_512x1024_80k_cityscapes.py +- Name: pspnet_s101-d8_512x1024_80k_cityscapes In Collection: resnest Metadata: backbone: S-101-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 396.83 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 396.83 - lr schd: 80000 memory (GB): 11.8 - Name: pspnet_s101-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.57 mIoU(ms+flip): 79.19 - Task: Semantic Segmentation + Config: configs/resnest/pspnet_s101-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x1024_80k_cityscapes/pspnet_s101-d8_512x1024_80k_cityscapes_20200807_140631-c75f3b99.pth -- Config: configs/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes.py +- Name: deeplabv3_s101-d8_512x1024_80k_cityscapes In Collection: resnest Metadata: backbone: S-101-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 531.91 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 531.91 - lr schd: 80000 memory (GB): 11.9 - Name: deeplabv3_s101-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.67 mIoU(ms+flip): 80.51 - Task: Semantic Segmentation + Config: configs/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes/deeplabv3_s101-d8_512x1024_80k_cityscapes_20200807_144429-b73c4270.pth -- Config: configs/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py +- Name: deeplabv3plus_s101-d8_512x1024_80k_cityscapes In Collection: resnest Metadata: backbone: S-101-D8 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 423.73 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 423.73 - lr schd: 80000 memory (GB): 13.2 - Name: deeplabv3plus_s101-d8_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.62 mIoU(ms+flip): 80.27 - Task: Semantic Segmentation + Config: configs/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes/deeplabv3plus_s101-d8_512x1024_80k_cityscapes_20200807_144429-1239eb43.pth -- Config: configs/resnest/fcn_s101-d8_512x512_160k_ade20k.py +- Name: fcn_s101-d8_512x512_160k_ade20k In Collection: resnest Metadata: backbone: S-101-D8 crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 77.76 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 77.76 - lr schd: 160000 memory (GB): 14.2 - Name: fcn_s101-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20k Metrics: mIoU: 45.62 mIoU(ms+flip): 46.16 - Task: Semantic Segmentation + Config: configs/resnest/fcn_s101-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x512_160k_ade20k/fcn_s101-d8_512x512_160k_ade20k_20200807_145416-d3160329.pth -- Config: configs/resnest/pspnet_s101-d8_512x512_160k_ade20k.py +- Name: pspnet_s101-d8_512x512_160k_ade20k In Collection: resnest Metadata: backbone: S-101-D8 crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 76.8 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 76.8 - lr schd: 160000 memory (GB): 14.2 - Name: pspnet_s101-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20k Metrics: mIoU: 45.44 mIoU(ms+flip): 46.28 - Task: Semantic Segmentation + Config: configs/resnest/pspnet_s101-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x512_160k_ade20k/pspnet_s101-d8_512x512_160k_ade20k_20200807_145416-a6daa92a.pth -- Config: configs/resnest/deeplabv3_s101-d8_512x512_160k_ade20k.py +- Name: deeplabv3_s101-d8_512x512_160k_ade20k In Collection: resnest Metadata: backbone: S-101-D8 crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 107.76 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 107.76 - lr schd: 160000 memory (GB): 14.6 - Name: deeplabv3_s101-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20k Metrics: mIoU: 45.71 mIoU(ms+flip): 46.59 - Task: Semantic Segmentation + Config: configs/resnest/deeplabv3_s101-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x512_160k_ade20k/deeplabv3_s101-d8_512x512_160k_ade20k_20200807_144503-17ecabe5.pth -- Config: configs/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k.py +- Name: deeplabv3plus_s101-d8_512x512_160k_ade20k In Collection: resnest Metadata: backbone: S-101-D8 crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 83.61 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 83.61 - lr schd: 160000 memory (GB): 16.2 - Name: deeplabv3plus_s101-d8_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20k Metrics: mIoU: 46.47 mIoU(ms+flip): 47.27 - Task: Semantic Segmentation + Config: configs/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k/deeplabv3plus_s101-d8_512x512_160k_ade20k_20200807_144503-27b26226.pth diff --git a/configs/segformer/README.md b/configs/segformer/README.md index d325589c60..58c6a1c90f 100644 --- a/configs/segformer/README.md +++ b/configs/segformer/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+SegFormer (ArXiv'2021) + ```latex @article{xie2021segformer, title={SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers}, @@ -13,6 +20,8 @@ } ``` +
+ ## Usage To use other repositories' pre-trained models, it is necessary to convert keys. diff --git a/configs/segformer/segformer.yml b/configs/segformer/segformer.yml index f945ecc714..e6e514a63e 100644 --- a/configs/segformer/segformer.yml +++ b/configs/segformer/segformer.yml @@ -1,160 +1,169 @@ Collections: -- Metadata: +- Name: segformer + Metadata: Training Data: - ADE20k - Name: segformer + Paper: + URL: https://arxiv.org/abs/2105.15203 + Title: resize image to multiple of 32, improve SegFormer by 0.5-1.0 mIoU. + README: configs/segformer/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/backbones/mit.py#L246 + Version: v0.17.0 + Converted From: + Code: https://github.com/NVlabs/SegFormer Models: -- Config: configs/segformer/segformer_mit-b0_512x512_160k_ade20k.py +- Name: segformer_mit-b0_512x512_160k_ade20k In Collection: segformer Metadata: backbone: MIT-B0 crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 19.49 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 19.49 - lr schd: 160000 memory (GB): 2.1 - Name: segformer_mit-b0_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20k Metrics: mIoU: 37.41 mIoU(ms+flip): 38.34 - Task: Semantic Segmentation + Config: configs/segformer/segformer_mit-b0_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b0_512x512_160k_ade20k/segformer_mit-b0_512x512_160k_ade20k_20210726_101530-8ffa8fda.pth -- Config: configs/segformer/segformer_mit-b1_512x512_160k_ade20k.py +- Name: segformer_mit-b1_512x512_160k_ade20k In Collection: segformer Metadata: backbone: MIT-B1 crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 20.98 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 20.98 - lr schd: 160000 memory (GB): 2.6 - Name: segformer_mit-b1_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20k Metrics: mIoU: 40.97 mIoU(ms+flip): 42.54 - Task: Semantic Segmentation + Config: configs/segformer/segformer_mit-b1_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b1_512x512_160k_ade20k/segformer_mit-b1_512x512_160k_ade20k_20210726_112106-d70e859d.pth -- Config: configs/segformer/segformer_mit-b2_512x512_160k_ade20k.py +- Name: segformer_mit-b2_512x512_160k_ade20k In Collection: segformer Metadata: backbone: MIT-B2 crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 32.38 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 32.38 - lr schd: 160000 memory (GB): 3.6 - Name: segformer_mit-b2_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20k Metrics: mIoU: 45.58 mIoU(ms+flip): 47.03 - Task: Semantic Segmentation + Config: configs/segformer/segformer_mit-b2_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b2_512x512_160k_ade20k/segformer_mit-b2_512x512_160k_ade20k_20210726_112103-cbd414ac.pth -- Config: configs/segformer/segformer_mit-b3_512x512_160k_ade20k.py +- Name: segformer_mit-b3_512x512_160k_ade20k In Collection: segformer Metadata: backbone: MIT-B3 crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 45.23 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 45.23 - lr schd: 160000 memory (GB): 4.8 - Name: segformer_mit-b3_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20k Metrics: mIoU: 47.82 mIoU(ms+flip): 48.81 - Task: Semantic Segmentation + Config: configs/segformer/segformer_mit-b3_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b3_512x512_160k_ade20k/segformer_mit-b3_512x512_160k_ade20k_20210726_081410-962b98d2.pth -- Config: configs/segformer/segformer_mit-b4_512x512_160k_ade20k.py +- Name: segformer_mit-b4_512x512_160k_ade20k In Collection: segformer Metadata: backbone: MIT-B4 crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 64.72 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 64.72 - lr schd: 160000 memory (GB): 6.1 - Name: segformer_mit-b4_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20k Metrics: mIoU: 48.46 mIoU(ms+flip): 49.76 - Task: Semantic Segmentation + Config: configs/segformer/segformer_mit-b4_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b4_512x512_160k_ade20k/segformer_mit-b4_512x512_160k_ade20k_20210728_183055-7f509d7d.pth -- Config: configs/segformer/segformer_mit-b5_512x512_160k_ade20k.py +- Name: segformer_mit-b5_512x512_160k_ade20k In Collection: segformer Metadata: backbone: MIT-B5 crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 84.1 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 84.1 - lr schd: 160000 memory (GB): 7.2 - Name: segformer_mit-b5_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20k Metrics: mIoU: 49.13 mIoU(ms+flip): 50.22 - Task: Semantic Segmentation + Config: configs/segformer/segformer_mit-b5_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b5_512x512_160k_ade20k/segformer_mit-b5_512x512_160k_ade20k_20210726_145235-94cedf59.pth -- Config: configs/segformer/segformer_mit-b5_640x640_160k_ade20k.py +- Name: segformer_mit-b5_640x640_160k_ade20k In Collection: segformer Metadata: backbone: MIT-B5 crop size: (640,640) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 88.5 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (640,640) - value: 88.5 - lr schd: 160000 memory (GB): 11.5 - Name: segformer_mit-b5_640x640_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20k Metrics: mIoU: 49.62 mIoU(ms+flip): 50.36 - Task: Semantic Segmentation + Config: configs/segformer/segformer_mit-b5_640x640_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b5_640x640_160k_ade20k/segformer_mit-b5_640x640_160k_ade20k_20210801_121243-41d2845b.pth diff --git a/configs/sem_fpn/README.md b/configs/sem_fpn/README.md index c59698db58..d9c13a1202 100644 --- a/configs/sem_fpn/README.md +++ b/configs/sem_fpn/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+Semantic FPN (CVPR'2019) + ```latex @article{Kirillov_2019, title={Panoptic Feature Pyramid Networks}, @@ -18,6 +25,8 @@ } ``` +
+ ## Results and models ### Cityscapes diff --git a/configs/sem_fpn/sem_fpn.yml b/configs/sem_fpn/sem_fpn.yml index 2644242181..f00b229935 100644 --- a/configs/sem_fpn/sem_fpn.yml +++ b/configs/sem_fpn/sem_fpn.yml @@ -1,95 +1,104 @@ Collections: -- Metadata: +- Name: sem_fpn + Metadata: Training Data: - Cityscapes - ADE20K - Name: sem_fpn + Paper: + URL: https://arxiv.org/abs/1901.02446 + Title: Panoptic Feature Pyramid Networks + README: configs/sem_fpn/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/decode_heads/fpn_head.py#L12 + Version: v0.17.0 + Converted From: + Code: https://github.com/facebookresearch/detectron2 Models: -- Config: configs/sem_fpn/fpn_r50_512x1024_80k_cityscapes.py +- Name: fpn_r50_512x1024_80k_cityscapes In Collection: sem_fpn Metadata: backbone: R-50 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 73.86 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 73.86 - lr schd: 80000 memory (GB): 2.8 - Name: fpn_r50_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 74.52 mIoU(ms+flip): 76.08 - Task: Semantic Segmentation + Config: configs/sem_fpn/fpn_r50_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x1024_80k_cityscapes/fpn_r50_512x1024_80k_cityscapes_20200717_021437-94018a0d.pth -- Config: configs/sem_fpn/fpn_r101_512x1024_80k_cityscapes.py +- Name: fpn_r101_512x1024_80k_cityscapes In Collection: sem_fpn Metadata: backbone: R-101 crop size: (512,1024) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 97.18 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 97.18 - lr schd: 80000 memory (GB): 3.9 - Name: fpn_r101_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 75.8 mIoU(ms+flip): 77.4 - Task: Semantic Segmentation + Config: configs/sem_fpn/fpn_r101_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x1024_80k_cityscapes/fpn_r101_512x1024_80k_cityscapes_20200717_012416-c5800d4c.pth -- Config: configs/sem_fpn/fpn_r50_512x512_160k_ade20k.py +- Name: fpn_r50_512x512_160k_ade20k In Collection: sem_fpn Metadata: backbone: R-50 crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 17.93 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 17.93 - lr schd: 160000 memory (GB): 4.9 - Name: fpn_r50_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 37.49 mIoU(ms+flip): 39.09 - Task: Semantic Segmentation + Config: configs/sem_fpn/fpn_r50_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x512_160k_ade20k/fpn_r50_512x512_160k_ade20k_20200718_131734-5b5a6ab9.pth -- Config: configs/sem_fpn/fpn_r101_512x512_160k_ade20k.py +- Name: fpn_r101_512x512_160k_ade20k In Collection: sem_fpn Metadata: backbone: R-101 crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 24.64 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 24.64 - lr schd: 160000 memory (GB): 5.9 - Name: fpn_r101_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 39.35 mIoU(ms+flip): 40.72 - Task: Semantic Segmentation + Config: configs/sem_fpn/fpn_r101_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x512_160k_ade20k/fpn_r101_512x512_160k_ade20k_20200718_131734-306b5004.pth diff --git a/configs/setr/README.md b/configs/setr/README.md index 925d250b20..8672a28e1a 100644 --- a/configs/setr/README.md +++ b/configs/setr/README.md @@ -4,6 +4,17 @@ +Official Repo + +Code Snippet + +```None +This head has two version head. +``` + +
+SETR (CVPR'2021) + ```latex @article{zheng2020rethinking, title={Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformers}, @@ -13,6 +24,8 @@ } ``` +
+ ## Results and models ### ADE20K diff --git a/configs/setr/setr.yml b/configs/setr/setr.yml index 42e17a9f11..e60104d444 100644 --- a/configs/setr/setr.yml +++ b/configs/setr/setr.yml @@ -1,87 +1,97 @@ Collections: -- Metadata: +- Name: setr + Metadata: Training Data: - ADE20K - Name: setr + Paper: + URL: https://arxiv.org/abs/2012.15840 + Title: Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective + with Transformers + README: configs/setr/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/decode_heads/setr_up_head.py#L11 + Version: v0.17.0 + Converted From: + Code: https://github.com/fudan-zvg/SETR Models: -- Config: configs/setr/setr_naive_512x512_160k_b16_ade20k.py +- Name: setr_naive_512x512_160k_b16_ade20k In Collection: setr Metadata: backbone: ViT-L crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 211.86 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 211.86 - lr schd: 160000 memory (GB): 18.4 - Name: setr_naive_512x512_160k_b16_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 48.28 mIoU(ms+flip): 49.56 - Task: Semantic Segmentation + Config: configs/setr/setr_naive_512x512_160k_b16_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/setr/setr_naive_512x512_160k_b16_ade20k/setr_naive_512x512_160k_b16_ade20k_20210619_191258-061f24f5.pth -- Config: configs/setr/setr_pup_512x512_160k_b16_ade20k.py +- Name: setr_pup_512x512_160k_b16_ade20k In Collection: setr Metadata: backbone: ViT-L crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 222.22 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 222.22 - lr schd: 160000 memory (GB): 19.54 - Name: setr_pup_512x512_160k_b16_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 48.24 mIoU(ms+flip): 49.99 - Task: Semantic Segmentation + Config: configs/setr/setr_pup_512x512_160k_b16_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/setr/setr_pup_512x512_160k_b16_ade20k/setr_pup_512x512_160k_b16_ade20k_20210619_191343-7e0ce826.pth -- Config: configs/setr/setr_mla_512x512_160k_b8_ade20k.py +- Name: setr_mla_512x512_160k_b8_ade20k In Collection: setr Metadata: backbone: ViT-L crop size: (512,512) lr schd: 160000 memory (GB): 10.96 - Name: setr_mla_512x512_160k_b8_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 47.34 mIoU(ms+flip): 49.05 - Task: Semantic Segmentation + Config: configs/setr/setr_mla_512x512_160k_b8_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/setr/setr_mla_512x512_160k_b8_ade20k/setr_mla_512x512_160k_b8_ade20k_20210619_191118-c6d21df0.pth -- Config: configs/setr/setr_mla_512x512_160k_b16_ade20k.py +- Name: setr_mla_512x512_160k_b16_ade20k In Collection: setr Metadata: backbone: ViT-L crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 190.48 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 190.48 - lr schd: 160000 memory (GB): 17.3 - Name: setr_mla_512x512_160k_b16_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 47.54 mIoU(ms+flip): 49.37 - Task: Semantic Segmentation + Config: configs/setr/setr_mla_512x512_160k_b16_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/setr/setr_mla_512x512_160k_b16_ade20k/setr_mla_512x512_160k_b16_ade20k_20210619_191057-f9741de7.pth diff --git a/configs/swin/README.md b/configs/swin/README.md index 72f77f5239..2d365d04aa 100644 --- a/configs/swin/README.md +++ b/configs/swin/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+Swin Transformer (arXiv'2021) + ```latex @article{liu2021Swin, title={Swin Transformer: Hierarchical Vision Transformer using Shifted Windows}, @@ -13,6 +20,8 @@ } ``` +
+ ## Usage To use other repositories' pre-trained models, it is necessary to convert keys. diff --git a/configs/swin/swin.yml b/configs/swin/swin.yml index 0fccb2be34..5534f0311c 100644 --- a/configs/swin/swin.yml +++ b/configs/swin/swin.yml @@ -1,122 +1,131 @@ Collections: -- Metadata: +- Name: swin + Metadata: Training Data: - ADE20K - Name: swin + Paper: + URL: https://arxiv.org/abs/2103.14030 + Title: 'Swin Transformer: Hierarchical Vision Transformer using Shifted Windows' + README: configs/swin/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/backbones/swin.py#L524 + Version: v0.17.0 + Converted From: + Code: https://github.com/microsoft/Swin-Transformer Models: -- Config: configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py +- Name: upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K In Collection: swin Metadata: backbone: Swin-T crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 47.48 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 47.48 - lr schd: 160000 memory (GB): 5.02 - Name: upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 44.41 mIoU(ms+flip): 45.79 - Task: Semantic Segmentation + Config: configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K_20210531_112542-e380ad3e.pth -- Config: configs/swin/upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py +- Name: upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K In Collection: swin Metadata: backbone: Swin-S crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 67.93 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 67.93 - lr schd: 160000 memory (GB): 6.17 - Name: upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 47.72 mIoU(ms+flip): 49.24 - Task: Semantic Segmentation + Config: configs/swin/upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K/upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K_20210526_192015-ee2fff1c.pth -- Config: configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py +- Name: upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K In Collection: swin Metadata: backbone: Swin-B crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 79.05 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 79.05 - lr schd: 160000 memory (GB): 7.61 - Name: upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 47.99 mIoU(ms+flip): 49.57 - Task: Semantic Segmentation + Config: configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K_20210526_192340-593b0e13.pth -- Config: configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K.py +- Name: upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K In Collection: swin Metadata: backbone: Swin-B crop size: (512,512) lr schd: 160000 - Name: upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 50.31 mIoU(ms+flip): 51.9 - Task: Semantic Segmentation + Config: configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K_20210526_211650-762e2178.pth -- Config: configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K.py +- Name: upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K In Collection: swin Metadata: backbone: Swin-B crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 82.64 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 82.64 - lr schd: 160000 memory (GB): 8.52 - Name: upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 48.35 mIoU(ms+flip): 49.65 - Task: Semantic Segmentation + Config: configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K_20210531_132020-05b22ea4.pth -- Config: configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K.py +- Name: upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K In Collection: swin Metadata: backbone: Swin-B crop size: (512,512) lr schd: 160000 - Name: upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 50.76 mIoU(ms+flip): 52.4 - Task: Semantic Segmentation + Config: configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K_20210531_125459-429057bf.pth diff --git a/configs/unet/README.md b/configs/unet/README.md index f05bbb2ca6..f7d4333456 100644 --- a/configs/unet/README.md +++ b/configs/unet/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+UNet (MICCAI'2016/Nat. Methods'2019) + ```latex @inproceedings{ronneberger2015u, title={U-net: Convolutional networks for biomedical image segmentation}, @@ -15,6 +22,8 @@ } ``` +
+ ## Results and models ### DRIVE diff --git a/configs/unet/unet.yml b/configs/unet/unet.yml index 569493d75a..e7991f40fe 100644 --- a/configs/unet/unet.yml +++ b/configs/unet/unet.yml @@ -1,177 +1,186 @@ Collections: -- Metadata: +- Name: unet + Metadata: Training Data: - DRIVE - STARE - CHASE_DB1 - HRF - Name: unet + Paper: + URL: https://arxiv.org/abs/1505.04597 + Title: 'U-Net: Convolutional Networks for Biomedical Image Segmentation' + README: configs/unet/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/backbones/unet.py#L225 + Version: v0.17.0 + Converted From: + Code: http://lmb.informatik.uni-freiburg.de/people/ronneber/u-net Models: -- Config: configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py +- Name: fcn_unet_s5-d16_64x64_40k_drive In Collection: unet Metadata: backbone: UNet-S5-D16 crop size: (64,64) lr schd: 40000 memory (GB): 0.68 - Name: fcn_unet_s5-d16_64x64_40k_drive Results: + - Task: Semantic Segmentation Dataset: DRIVE Metrics: mIoU: 78.67 - Task: Semantic Segmentation + Config: configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_64x64_40k_drive/fcn_unet_s5-d16_64x64_40k_drive_20201223_191051-5daf6d3b.pth -- Config: configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py +- Name: pspnet_unet_s5-d16_64x64_40k_drive In Collection: unet Metadata: backbone: UNet-S5-D16 crop size: (64,64) lr schd: 40000 memory (GB): 0.599 - Name: pspnet_unet_s5-d16_64x64_40k_drive Results: + - Task: Semantic Segmentation Dataset: DRIVE Metrics: mIoU: 78.62 - Task: Semantic Segmentation + Config: configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_64x64_40k_drive/pspnet_unet_s5-d16_64x64_40k_drive_20201227_181818-aac73387.pth -- Config: configs/unet/deeplabv3_unet_s5-d16_64x64_40k_drive.py +- Name: deeplabv3_unet_s5-d16_64x64_40k_drive In Collection: unet Metadata: backbone: UNet-S5-D16 crop size: (64,64) lr schd: 40000 memory (GB): 0.596 - Name: deeplabv3_unet_s5-d16_64x64_40k_drive Results: + - Task: Semantic Segmentation Dataset: DRIVE Metrics: mIoU: 78.69 - Task: Semantic Segmentation + Config: configs/unet/deeplabv3_unet_s5-d16_64x64_40k_drive.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_64x64_40k_drive/deeplabv3_unet_s5-d16_64x64_40k_drive_20201226_094047-0671ff20.pth -- Config: configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py +- Name: fcn_unet_s5-d16_128x128_40k_stare In Collection: unet Metadata: backbone: UNet-S5-D16 crop size: (128,128) lr schd: 40000 memory (GB): 0.968 - Name: fcn_unet_s5-d16_128x128_40k_stare Results: + - Task: Semantic Segmentation Dataset: STARE Metrics: mIoU: 81.02 - Task: Semantic Segmentation + Config: configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_stare/fcn_unet_s5-d16_128x128_40k_stare_20201223_191051-7d77e78b.pth -- Config: configs/unet/pspnet_unet_s5-d16_128x128_40k_stare.py +- Name: pspnet_unet_s5-d16_128x128_40k_stare In Collection: unet Metadata: backbone: UNet-S5-D16 crop size: (128,128) lr schd: 40000 memory (GB): 0.982 - Name: pspnet_unet_s5-d16_128x128_40k_stare Results: + - Task: Semantic Segmentation Dataset: STARE Metrics: mIoU: 81.22 - Task: Semantic Segmentation + Config: configs/unet/pspnet_unet_s5-d16_128x128_40k_stare.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_stare/pspnet_unet_s5-d16_128x128_40k_stare_20201227_181818-3c2923c4.pth -- Config: configs/unet/deeplabv3_unet_s5-d16_128x128_40k_stare.py +- Name: deeplabv3_unet_s5-d16_128x128_40k_stare In Collection: unet Metadata: backbone: UNet-S5-D16 crop size: (128,128) lr schd: 40000 memory (GB): 0.999 - Name: deeplabv3_unet_s5-d16_128x128_40k_stare Results: + - Task: Semantic Segmentation Dataset: STARE Metrics: mIoU: 80.93 - Task: Semantic Segmentation + Config: configs/unet/deeplabv3_unet_s5-d16_128x128_40k_stare.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_stare/deeplabv3_unet_s5-d16_128x128_40k_stare_20201226_094047-93dcb93c.pth -- Config: configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py +- Name: fcn_unet_s5-d16_128x128_40k_chase_db1 In Collection: unet Metadata: backbone: UNet-S5-D16 crop size: (128,128) lr schd: 40000 memory (GB): 0.968 - Name: fcn_unet_s5-d16_128x128_40k_chase_db1 Results: + - Task: Semantic Segmentation Dataset: CHASE_DB1 Metrics: mIoU: 80.24 - Task: Semantic Segmentation + Config: configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_chase_db1/fcn_unet_s5-d16_128x128_40k_chase_db1_20201223_191051-11543527.pth -- Config: configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py +- Name: pspnet_unet_s5-d16_128x128_40k_chase_db1 In Collection: unet Metadata: backbone: UNet-S5-D16 crop size: (128,128) lr schd: 40000 memory (GB): 0.982 - Name: pspnet_unet_s5-d16_128x128_40k_chase_db1 Results: + - Task: Semantic Segmentation Dataset: CHASE_DB1 Metrics: mIoU: 80.36 - Task: Semantic Segmentation + Config: configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1/pspnet_unet_s5-d16_128x128_40k_chase_db1_20201227_181818-68d4e609.pth -- Config: configs/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py +- Name: deeplabv3_unet_s5-d16_128x128_40k_chase_db1 In Collection: unet Metadata: backbone: UNet-S5-D16 crop size: (128,128) lr schd: 40000 memory (GB): 0.999 - Name: deeplabv3_unet_s5-d16_128x128_40k_chase_db1 Results: + - Task: Semantic Segmentation Dataset: CHASE_DB1 Metrics: mIoU: 80.47 - Task: Semantic Segmentation + Config: configs/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1/deeplabv3_unet_s5-d16_128x128_40k_chase_db1_20201226_094047-4c5aefa3.pth -- Config: configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py +- Name: fcn_unet_s5-d16_256x256_40k_hrf In Collection: unet Metadata: backbone: UNet-S5-D16 crop size: (256,256) lr schd: 40000 memory (GB): 2.525 - Name: fcn_unet_s5-d16_256x256_40k_hrf Results: + - Task: Semantic Segmentation Dataset: HRF Metrics: mIoU: 79.45 - Task: Semantic Segmentation + Config: configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_256x256_40k_hrf/fcn_unet_s5-d16_256x256_40k_hrf_20201223_173724-d89cf1ed.pth -- Config: configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py +- Name: pspnet_unet_s5-d16_256x256_40k_hrf In Collection: unet Metadata: backbone: UNet-S5-D16 crop size: (256,256) lr schd: 40000 memory (GB): 2.588 - Name: pspnet_unet_s5-d16_256x256_40k_hrf Results: + - Task: Semantic Segmentation Dataset: HRF Metrics: mIoU: 80.07 - Task: Semantic Segmentation + Config: configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_256x256_40k_hrf/pspnet_unet_s5-d16_256x256_40k_hrf_20201227_181818-fdb7e29b.pth -- Config: configs/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf.py +- Name: deeplabv3_unet_s5-d16_256x256_40k_hrf In Collection: unet Metadata: backbone: UNet-S5-D16 crop size: (256,256) lr schd: 40000 memory (GB): 2.604 - Name: deeplabv3_unet_s5-d16_256x256_40k_hrf Results: + - Task: Semantic Segmentation Dataset: HRF Metrics: mIoU: 80.21 - Task: Semantic Segmentation + Config: configs/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf/deeplabv3_unet_s5-d16_256x256_40k_hrf_20201226_094047-3a1fdf85.pth diff --git a/configs/upernet/README.md b/configs/upernet/README.md index 312004a4d7..5d3f85b9ad 100644 --- a/configs/upernet/README.md +++ b/configs/upernet/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+UPerNet (ECCV'2018) + ```latex @inproceedings{xiao2018unified, title={Unified perceptual parsing for scene understanding}, @@ -14,6 +21,8 @@ } ``` +
+ ## Results and models ### Cityscapes diff --git a/configs/upernet/upernet.yml b/configs/upernet/upernet.yml index 91503cb80c..a5a5c85ee8 100644 --- a/configs/upernet/upernet.yml +++ b/configs/upernet/upernet.yml @@ -1,296 +1,305 @@ Collections: -- Metadata: +- Name: upernet + Metadata: Training Data: - Cityscapes - ADE20K - Pascal VOC 2012 + Aug - Name: upernet + Paper: + URL: https://arxiv.org/pdf/1807.10221.pdf + Title: Unified Perceptual Parsing for Scene Understanding + README: configs/upernet/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/decode_heads/uper_head.py#L13 + Version: v0.17.0 + Converted From: + Code: https://github.com/CSAILVision/unifiedparsing Models: -- Config: configs/upernet/upernet_r50_512x1024_40k_cityscapes.py +- Name: upernet_r50_512x1024_40k_cityscapes In Collection: upernet Metadata: backbone: R-50 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 235.29 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 235.29 - lr schd: 40000 memory (GB): 6.4 - Name: upernet_r50_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.1 mIoU(ms+flip): 78.37 - Task: Semantic Segmentation + Config: configs/upernet/upernet_r50_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_40k_cityscapes/upernet_r50_512x1024_40k_cityscapes_20200605_094827-aa54cb54.pth -- Config: configs/upernet/upernet_r101_512x1024_40k_cityscapes.py +- Name: upernet_r101_512x1024_40k_cityscapes In Collection: upernet Metadata: backbone: R-101 crop size: (512,1024) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 263.85 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,1024) - value: 263.85 - lr schd: 40000 memory (GB): 7.4 - Name: upernet_r101_512x1024_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.69 mIoU(ms+flip): 80.11 - Task: Semantic Segmentation + Config: configs/upernet/upernet_r101_512x1024_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_40k_cityscapes/upernet_r101_512x1024_40k_cityscapes_20200605_094933-ebce3b10.pth -- Config: configs/upernet/upernet_r50_769x769_40k_cityscapes.py +- Name: upernet_r50_769x769_40k_cityscapes In Collection: upernet Metadata: backbone: R-50 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 568.18 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 568.18 - lr schd: 40000 memory (GB): 7.2 - Name: upernet_r50_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 77.98 mIoU(ms+flip): 79.7 - Task: Semantic Segmentation + Config: configs/upernet/upernet_r50_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_40k_cityscapes/upernet_r50_769x769_40k_cityscapes_20200530_033048-92d21539.pth -- Config: configs/upernet/upernet_r101_769x769_40k_cityscapes.py +- Name: upernet_r101_769x769_40k_cityscapes In Collection: upernet Metadata: backbone: R-101 crop size: (769,769) + lr schd: 40000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 641.03 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (769,769) - value: 641.03 - lr schd: 40000 memory (GB): 8.4 - Name: upernet_r101_769x769_40k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.03 mIoU(ms+flip): 80.77 - Task: Semantic Segmentation + Config: configs/upernet/upernet_r101_769x769_40k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_40k_cityscapes/upernet_r101_769x769_40k_cityscapes_20200530_040819-83c95d01.pth -- Config: configs/upernet/upernet_r50_512x1024_80k_cityscapes.py +- Name: upernet_r50_512x1024_80k_cityscapes In Collection: upernet Metadata: backbone: R-50 crop size: (512,1024) lr schd: 80000 - Name: upernet_r50_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 78.19 mIoU(ms+flip): 79.19 - Task: Semantic Segmentation + Config: configs/upernet/upernet_r50_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_80k_cityscapes/upernet_r50_512x1024_80k_cityscapes_20200607_052207-848beca8.pth -- Config: configs/upernet/upernet_r101_512x1024_80k_cityscapes.py +- Name: upernet_r101_512x1024_80k_cityscapes In Collection: upernet Metadata: backbone: R-101 crop size: (512,1024) lr schd: 80000 - Name: upernet_r101_512x1024_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.4 mIoU(ms+flip): 80.46 - Task: Semantic Segmentation + Config: configs/upernet/upernet_r101_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_80k_cityscapes/upernet_r101_512x1024_80k_cityscapes_20200607_002403-f05f2345.pth -- Config: configs/upernet/upernet_r50_769x769_80k_cityscapes.py +- Name: upernet_r50_769x769_80k_cityscapes In Collection: upernet Metadata: backbone: R-50 crop size: (769,769) lr schd: 80000 - Name: upernet_r50_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 79.39 mIoU(ms+flip): 80.92 - Task: Semantic Segmentation + Config: configs/upernet/upernet_r50_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_80k_cityscapes/upernet_r50_769x769_80k_cityscapes_20200607_005107-82ae7d15.pth -- Config: configs/upernet/upernet_r101_769x769_80k_cityscapes.py +- Name: upernet_r101_769x769_80k_cityscapes In Collection: upernet Metadata: backbone: R-101 crop size: (769,769) lr schd: 80000 - Name: upernet_r101_769x769_80k_cityscapes Results: + - Task: Semantic Segmentation Dataset: Cityscapes Metrics: mIoU: 80.1 mIoU(ms+flip): 81.49 - Task: Semantic Segmentation + Config: configs/upernet/upernet_r101_769x769_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_80k_cityscapes/upernet_r101_769x769_80k_cityscapes_20200607_001014-082fc334.pth -- Config: configs/upernet/upernet_r50_512x512_80k_ade20k.py +- Name: upernet_r50_512x512_80k_ade20k In Collection: upernet Metadata: backbone: R-50 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 42.74 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 42.74 - lr schd: 80000 memory (GB): 8.1 - Name: upernet_r50_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 40.7 mIoU(ms+flip): 41.81 - Task: Semantic Segmentation + Config: configs/upernet/upernet_r50_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_80k_ade20k/upernet_r50_512x512_80k_ade20k_20200614_144127-ecc8377b.pth -- Config: configs/upernet/upernet_r101_512x512_80k_ade20k.py +- Name: upernet_r101_512x512_80k_ade20k In Collection: upernet Metadata: backbone: R-101 crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 49.16 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 49.16 - lr schd: 80000 memory (GB): 9.1 - Name: upernet_r101_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.91 mIoU(ms+flip): 43.96 - Task: Semantic Segmentation + Config: configs/upernet/upernet_r101_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_80k_ade20k/upernet_r101_512x512_80k_ade20k_20200614_185117-32e4db94.pth -- Config: configs/upernet/upernet_r50_512x512_160k_ade20k.py +- Name: upernet_r50_512x512_160k_ade20k In Collection: upernet Metadata: backbone: R-50 crop size: (512,512) lr schd: 160000 - Name: upernet_r50_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.05 mIoU(ms+flip): 42.78 - Task: Semantic Segmentation + Config: configs/upernet/upernet_r50_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_160k_ade20k/upernet_r50_512x512_160k_ade20k_20200615_184328-8534de8d.pth -- Config: configs/upernet/upernet_r101_512x512_160k_ade20k.py +- Name: upernet_r101_512x512_160k_ade20k In Collection: upernet Metadata: backbone: R-101 crop size: (512,512) lr schd: 160000 - Name: upernet_r101_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.82 mIoU(ms+flip): 44.85 - Task: Semantic Segmentation + Config: configs/upernet/upernet_r101_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_160k_ade20k/upernet_r101_512x512_160k_ade20k_20200615_161951-91b32684.pth -- Config: configs/upernet/upernet_r50_512x512_20k_voc12aug.py +- Name: upernet_r50_512x512_20k_voc12aug In Collection: upernet Metadata: backbone: R-50 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 43.16 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 43.16 - lr schd: 20000 memory (GB): 6.4 - Name: upernet_r50_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 74.82 mIoU(ms+flip): 76.35 - Task: Semantic Segmentation + Config: configs/upernet/upernet_r50_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_20k_voc12aug/upernet_r50_512x512_20k_voc12aug_20200617_165330-5b5890a7.pth -- Config: configs/upernet/upernet_r101_512x512_20k_voc12aug.py +- Name: upernet_r101_512x512_20k_voc12aug In Collection: upernet Metadata: backbone: R-101 crop size: (512,512) + lr schd: 20000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 50.05 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 50.05 - lr schd: 20000 memory (GB): 7.5 - Name: upernet_r101_512x512_20k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.1 mIoU(ms+flip): 78.29 - Task: Semantic Segmentation + Config: configs/upernet/upernet_r101_512x512_20k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_20k_voc12aug/upernet_r101_512x512_20k_voc12aug_20200617_165629-f14e7f27.pth -- Config: configs/upernet/upernet_r50_512x512_40k_voc12aug.py +- Name: upernet_r50_512x512_40k_voc12aug In Collection: upernet Metadata: backbone: R-50 crop size: (512,512) lr schd: 40000 - Name: upernet_r50_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 75.92 mIoU(ms+flip): 77.44 - Task: Semantic Segmentation + Config: configs/upernet/upernet_r50_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_40k_voc12aug/upernet_r50_512x512_40k_voc12aug_20200613_162257-ca9bcc6b.pth -- Config: configs/upernet/upernet_r101_512x512_40k_voc12aug.py +- Name: upernet_r101_512x512_40k_voc12aug In Collection: upernet Metadata: backbone: R-101 crop size: (512,512) lr schd: 40000 - Name: upernet_r101_512x512_40k_voc12aug Results: + - Task: Semantic Segmentation Dataset: Pascal VOC 2012 + Aug Metrics: mIoU: 77.43 mIoU(ms+flip): 78.56 - Task: Semantic Segmentation + Config: configs/upernet/upernet_r101_512x512_40k_voc12aug.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_40k_voc12aug/upernet_r101_512x512_40k_voc12aug_20200613_163549-e26476ac.pth diff --git a/configs/vit/README.md b/configs/vit/README.md index 3218aff7f4..655b8b53c0 100644 --- a/configs/vit/README.md +++ b/configs/vit/README.md @@ -4,6 +4,13 @@ +Official Repo + +Code Snippet + +
+Vision Transformer (ICLR'2021) + ```latex @article{dosoViTskiy2020, title={An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale}, @@ -13,6 +20,8 @@ } ``` +
+ ## Usage To use other repositories' pre-trained models, it is necessary to convert keys. diff --git a/configs/vit/vit.yml b/configs/vit/vit.yml index 0d526346e5..5692a64bd0 100644 --- a/configs/vit/vit.yml +++ b/configs/vit/vit.yml @@ -1,248 +1,257 @@ Collections: -- Metadata: +- Name: vit + Metadata: Training Data: - ADE20K - Name: vit + Paper: + URL: https://arxiv.org/pdf/2010.11929.pdf + Title: Vision Transformer + README: configs/vit/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.17.0/mmseg/models/backbones/vit.py#L98 + Version: v0.17.0 + Converted From: + Code: https://github.com/google-research/vision_transformer Models: -- Config: configs/vit/upernet_vit-b16_mln_512x512_80k_ade20k.py +- Name: upernet_vit-b16_mln_512x512_80k_ade20k In Collection: vit Metadata: backbone: ViT-B + MLN crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 144.09 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 144.09 - lr schd: 80000 memory (GB): 9.2 - Name: upernet_vit-b16_mln_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 47.71 mIoU(ms+flip): 49.51 - Task: Semantic Segmentation + Config: configs/vit/upernet_vit-b16_mln_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_mln_512x512_80k_ade20k/upernet_vit-b16_mln_512x512_80k_ade20k_20210624_130547-0403cee1.pth -- Config: configs/vit/upernet_vit-b16_mln_512x512_160k_ade20k.py +- Name: upernet_vit-b16_mln_512x512_160k_ade20k In Collection: vit Metadata: backbone: ViT-B + MLN crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 131.93 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 131.93 - lr schd: 160000 memory (GB): 9.2 - Name: upernet_vit-b16_mln_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 46.75 mIoU(ms+flip): 48.46 - Task: Semantic Segmentation + Config: configs/vit/upernet_vit-b16_mln_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_mln_512x512_160k_ade20k/upernet_vit-b16_mln_512x512_160k_ade20k_20210624_130547-852fa768.pth -- Config: configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py +- Name: upernet_vit-b16_ln_mln_512x512_160k_ade20k In Collection: vit Metadata: backbone: ViT-B + LN + MLN crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 146.63 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 146.63 - lr schd: 160000 memory (GB): 9.21 - Name: upernet_vit-b16_ln_mln_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 47.73 mIoU(ms+flip): 49.95 - Task: Semantic Segmentation + Config: configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k/upernet_vit-b16_ln_mln_512x512_160k_ade20k_20210621_172828-f444c077.pth -- Config: configs/vit/upernet_deit-s16_512x512_80k_ade20k.py +- Name: upernet_deit-s16_512x512_80k_ade20k In Collection: vit Metadata: backbone: DeiT-S crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 33.5 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 33.5 - lr schd: 80000 memory (GB): 4.68 - Name: upernet_deit-s16_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.96 mIoU(ms+flip): 43.79 - Task: Semantic Segmentation + Config: configs/vit/upernet_deit-s16_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_512x512_80k_ade20k/upernet_deit-s16_512x512_80k_ade20k_20210624_095228-afc93ec2.pth -- Config: configs/vit/upernet_deit-s16_512x512_160k_ade20k.py +- Name: upernet_deit-s16_512x512_160k_ade20k In Collection: vit Metadata: backbone: DeiT-S crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 34.26 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 34.26 - lr schd: 160000 memory (GB): 4.68 - Name: upernet_deit-s16_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 42.87 mIoU(ms+flip): 43.79 - Task: Semantic Segmentation + Config: configs/vit/upernet_deit-s16_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_512x512_160k_ade20k/upernet_deit-s16_512x512_160k_ade20k_20210621_160903-5110d916.pth -- Config: configs/vit/upernet_deit-s16_mln_512x512_160k_ade20k.py +- Name: upernet_deit-s16_mln_512x512_160k_ade20k In Collection: vit Metadata: backbone: DeiT-S + MLN crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 89.45 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 89.45 - lr schd: 160000 memory (GB): 5.69 - Name: upernet_deit-s16_mln_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.82 mIoU(ms+flip): 45.07 - Task: Semantic Segmentation + Config: configs/vit/upernet_deit-s16_mln_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_mln_512x512_160k_ade20k/upernet_deit-s16_mln_512x512_160k_ade20k_20210621_161021-fb9a5dfb.pth -- Config: configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py +- Name: upernet_deit-s16_ln_mln_512x512_160k_ade20k In Collection: vit Metadata: backbone: DeiT-S + LN + MLN crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 80.71 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 80.71 - lr schd: 160000 memory (GB): 5.69 - Name: upernet_deit-s16_ln_mln_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 43.52 mIoU(ms+flip): 45.01 - Task: Semantic Segmentation + Config: configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k/upernet_deit-s16_ln_mln_512x512_160k_ade20k_20210621_161021-c0cd652f.pth -- Config: configs/vit/upernet_deit-b16_512x512_80k_ade20k.py +- Name: upernet_deit-b16_512x512_80k_ade20k In Collection: vit Metadata: backbone: DeiT-B crop size: (512,512) + lr schd: 80000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 103.2 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 103.2 - lr schd: 80000 memory (GB): 7.75 - Name: upernet_deit-b16_512x512_80k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 45.24 mIoU(ms+flip): 46.73 - Task: Semantic Segmentation + Config: configs/vit/upernet_deit-b16_512x512_80k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_512x512_80k_ade20k/upernet_deit-b16_512x512_80k_ade20k_20210624_130529-1e090789.pth -- Config: configs/vit/upernet_deit-b16_512x512_160k_ade20k.py +- Name: upernet_deit-b16_512x512_160k_ade20k In Collection: vit Metadata: backbone: DeiT-B crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 96.25 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 96.25 - lr schd: 160000 memory (GB): 7.75 - Name: upernet_deit-b16_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 45.36 mIoU(ms+flip): 47.16 - Task: Semantic Segmentation + Config: configs/vit/upernet_deit-b16_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_512x512_160k_ade20k/upernet_deit-b16_512x512_160k_ade20k_20210621_180100-828705d7.pth -- Config: configs/vit/upernet_deit-b16_mln_512x512_160k_ade20k.py +- Name: upernet_deit-b16_mln_512x512_160k_ade20k In Collection: vit Metadata: backbone: DeiT-B + MLN crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 128.53 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 128.53 - lr schd: 160000 memory (GB): 9.21 - Name: upernet_deit-b16_mln_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 45.46 mIoU(ms+flip): 47.16 - Task: Semantic Segmentation + Config: configs/vit/upernet_deit-b16_mln_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_mln_512x512_160k_ade20k/upernet_deit-b16_mln_512x512_160k_ade20k_20210621_191949-4e1450f3.pth -- Config: configs/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k.py +- Name: upernet_deit-b16_ln_mln_512x512_160k_ade20k In Collection: vit Metadata: backbone: DeiT-B + LN + MLN crop size: (512,512) + lr schd: 160000 inference time (ms/im): - - backend: PyTorch - batch size: 1 + - value: 129.03 hardware: V100 + backend: PyTorch + batch size: 1 mode: FP32 resolution: (512,512) - value: 129.03 - lr schd: 160000 memory (GB): 9.21 - Name: upernet_deit-b16_ln_mln_512x512_160k_ade20k Results: + - Task: Semantic Segmentation Dataset: ADE20K Metrics: mIoU: 45.37 mIoU(ms+flip): 47.23 - Task: Semantic Segmentation + Config: configs/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k/upernet_deit-b16_ln_mln_512x512_160k_ade20k_20210623_153535-8a959c14.pth From e701497a3610d571657eea1aa7cd3021fd402cca Mon Sep 17 00:00:00 2001 From: MengzhangLI Date: Wed, 29 Sep 2021 02:12:57 +0800 Subject: [PATCH 249/706] [Feature] Support BiSeNetV1 (#851) * First Commit * fix typos * fix typos * Fix assertion bug * Adding Assert * Adding Unittest * Fixing typo * Uploading models & logs * Fixing unittest error * changing README.md * changing README.md --- README.md | 1 + README_zh-CN.md | 1 + configs/_base_/models/bisenetv1_r18-d32.py | 68 ++++ configs/bisenetv1/README.md | 42 +++ configs/bisenetv1/bisenetv1.yml | 125 +++++++ ...1_r18-d32_4x4_1024x1024_160k_cityscapes.py | 11 + ..._in1k-pre_4x4_1024x1024_160k_cityscapes.py | 16 + ..._in1k-pre_4x8_1024x1024_160k_cityscapes.py | 5 + ...1_r50-d32_4x4_1024x1024_160k_cityscapes.py | 46 +++ ..._in1k-pre_4x4_1024x1024_160k_cityscapes.py | 7 + mmseg/models/backbones/__init__.py | 4 +- mmseg/models/backbones/bisenetv1.py | 332 ++++++++++++++++++ model-index.yml | 1 + .../test_backbones/test_bisenetv1.py | 109 ++++++ 14 files changed, 767 insertions(+), 1 deletion(-) create mode 100644 configs/_base_/models/bisenetv1_r18-d32.py create mode 100644 configs/bisenetv1/README.md create mode 100644 configs/bisenetv1/bisenetv1.yml create mode 100644 configs/bisenetv1/bisenetv1_r18-d32_4x4_1024x1024_160k_cityscapes.py create mode 100644 configs/bisenetv1/bisenetv1_r18-d32_in1k-pre_4x4_1024x1024_160k_cityscapes.py create mode 100644 configs/bisenetv1/bisenetv1_r18-d32_in1k-pre_4x8_1024x1024_160k_cityscapes.py create mode 100644 configs/bisenetv1/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes.py create mode 100644 configs/bisenetv1/bisenetv1_r50-d32_in1k-pre_4x4_1024x1024_160k_cityscapes.py create mode 100644 mmseg/models/backbones/bisenetv1.py create mode 100644 tests/test_models/test_backbones/test_bisenetv1.py diff --git a/README.md b/README.md index 28c904cd34..2443171c86 100644 --- a/README.md +++ b/README.md @@ -75,6 +75,7 @@ Supported methods: - [x] [PSPNet (CVPR'2017)](configs/pspnet) - [x] [DeepLabV3 (ArXiv'2017)](configs/deeplabv3) - [x] [Mixed Precision (FP16) Training (ArXiv'2017)](configs/fp16) +- [x] [BiSeNetV1 (ECCV'2018)](configs/bisenetv1) - [x] [PSANet (ECCV'2018)](configs/psanet) - [x] [DeepLabV3+ (CVPR'2018)](configs/deeplabv3plus) - [x] [UPerNet (ECCV'2018)](configs/upernet) diff --git a/README_zh-CN.md b/README_zh-CN.md index cc750f613b..ac90eefeef 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -74,6 +74,7 @@ MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 O - [x] [PSPNet (CVPR'2017)](configs/pspnet) - [x] [DeepLabV3 (ArXiv'2017)](configs/deeplabv3) - [x] [Mixed Precision (FP16) Training (ArXiv'2017)](configs/fp16) +- [x] [BiSeNetV1 (ECCV'2018)](configs/bisenetv1) - [x] [PSANet (ECCV'2018)](configs/psanet) - [x] [DeepLabV3+ (CVPR'2018)](configs/deeplabv3plus) - [x] [UPerNet (ECCV'2018)](configs/upernet) diff --git a/configs/_base_/models/bisenetv1_r18-d32.py b/configs/_base_/models/bisenetv1_r18-d32.py new file mode 100644 index 0000000000..40698644ba --- /dev/null +++ b/configs/_base_/models/bisenetv1_r18-d32.py @@ -0,0 +1,68 @@ +# model settings +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + type='EncoderDecoder', + backbone=dict( + type='BiSeNetV1', + in_channels=3, + context_channels=(128, 256, 512), + spatial_channels=(64, 64, 64, 128), + out_indices=(0, 1, 2), + out_channels=256, + backbone_cfg=dict( + type='ResNet', + in_channels=3, + depth=18, + num_stages=4, + out_indices=(0, 1, 2, 3), + dilations=(1, 1, 1, 1), + strides=(1, 2, 2, 2), + norm_cfg=norm_cfg, + norm_eval=False, + style='pytorch', + contract_dilation=True), + norm_cfg=norm_cfg, + align_corners=False, + init_cfg=None), + decode_head=dict( + type='FCNHead', + in_channels=256, + in_index=0, + channels=256, + num_convs=1, + concat_input=False, + dropout_ratio=0.1, + num_classes=19, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + auxiliary_head=[ + dict( + type='FCNHead', + in_channels=128, + channels=64, + num_convs=1, + num_classes=19, + in_index=1, + norm_cfg=norm_cfg, + concat_input=False, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + dict( + type='FCNHead', + in_channels=128, + channels=64, + num_convs=1, + num_classes=19, + in_index=2, + norm_cfg=norm_cfg, + concat_input=False, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + ], + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/bisenetv1/README.md b/configs/bisenetv1/README.md new file mode 100644 index 0000000000..344781068a --- /dev/null +++ b/configs/bisenetv1/README.md @@ -0,0 +1,42 @@ +# BiSeNet: Bilateral Segmentation Network for Real-time Semantic Segmentation + +## Introduction + + + +Official Repo + +Code Snippet + +
+BiSeNetV1 (ECCV'2018) + +```latex +@inproceedings{yu2018bisenet, + title={Bisenet: Bilateral segmentation network for real-time semantic segmentation}, + author={Yu, Changqian and Wang, Jingbo and Peng, Chao and Gao, Changxin and Yu, Gang and Sang, Nong}, + booktitle={Proceedings of the European conference on computer vision (ECCV)}, + pages={325--341}, + year={2018} +} +``` + +
+ +## Results and models + +### Cityscapes + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| --------- | --------- | --------- | ------: | -------- | -------------- | ----: | ------------- | --------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| BiSeNetV1 (No Pretrain) | R-18-D32 | 1024x1024 | 160000 | 5.69 | 31.77 | 74.44 | 77.05 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/bisenetv1/bisenetv1_r18-d32_4x4_1024x1024_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r18-d32_4x4_1024x1024_160k_cityscapes/bisenetv1_r18-d32_4x4_1024x1024_160k_cityscapes_20210922_172239-c55e78e2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r18-d32_4x4_1024x1024_160k_cityscapes/bisenetv1_r18-d32_4x4_1024x1024_160k_cityscapes_20210922_172239.log.json) | +| BiSeNetV1| R-18-D32 | 1024x1024 | 160000 | 5.69 | 31.77 | 74.37 | 76.91 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/bisenetv1/bisenetv1_r18-d32_in1k-pre_4x4_1024x1024_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r18-d32_in1k-pre_4x4_1024x1024_160k_cityscapes/bisenetv1_r18-d32_in1k-pre_4x4_1024x1024_160k_cityscapes_20210905_220251-8ba80eff.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r18-d32_in1k-pre_4x4_1024x1024_160k_cityscapes/bisenetv1_r18-d32_in1k-pre_4x4_1024x1024_160k_cityscapes_20210905_220251.log.json) | +| BiSeNetV1 (4x8) | R-18-D32 | 1024x1024 | 160000 | 11.17 | 31.77 | 75.16 | 77.24 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/bisenetv1/bisenetv1_r18-d32_in1k-pre_4x8_1024x1024_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r18-d32_in1k-pre_4x8_1024x1024_160k_cityscapes/bisenetv1_r18-d32_in1k-pre_4x8_1024x1024_160k_cityscapes_20210905_220322-bb8db75f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r18-d32_in1k-pre_4x8_1024x1024_160k_cityscapes/bisenetv1_r18-d32_in1k-pre_4x8_1024x1024_160k_cityscapes_20210905_220322.log.json) | +| BiSeNetV1 (No Pretrain) | R-50-D32 | 1024x1024 | 160000 | 3.3 | 7.71 | 76.92 | 78.87 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/bisenetv1/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes_20210923_222639-7b28a2a6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes_20210923_222639.log.json) | +| BiSeNetV1 | R-50-D32 | 1024x1024 | 160000 | 15.39 | 7.71 | 77.68 | 79.57 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/bisenetv1/bisenetv1_r50-d32_in1k-pre_4x4_1024x1024_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r50-d32_in1k-pre_4x4_1024x1024_160k_cityscapes/bisenetv1_r50-d32_in1k-pre_4x4_1024x1024_160k_cityscapes_20210917_234628-8b304447.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r50-d32_in1k-pre_4x4_1024x1024_160k_cityscapes/bisenetv1_r50-d32_in1k-pre_4x4_1024x1024_160k_cityscapes_20210917_234628.log.json) | + +Note: + +- `4x8`: Using 4 GPUs with 8 samples per GPU in training. +- Default setting is 4 GPUs with 4 samples per GPU in training. +- `No Pretrain` means the model is trained from scratch. diff --git a/configs/bisenetv1/bisenetv1.yml b/configs/bisenetv1/bisenetv1.yml new file mode 100644 index 0000000000..6de872b863 --- /dev/null +++ b/configs/bisenetv1/bisenetv1.yml @@ -0,0 +1,125 @@ +Collections: +- Name: bisenetv1 + Metadata: + Training Data: + - Cityscapes + Paper: + URL: https://arxiv.org/abs/1808.00897 + Title: 'BiSeNet: Bilateral Segmentation Network for Real-time Semantic Segmentation' + README: configs/bisenetv1/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.18.0/mmseg/models/backbones/bisenetv1.py#L266 + Version: v0.18.0 + Converted From: + Code: https://github.com/ycszen/TorchSeg/tree/master/model/bisenet +Models: +- Name: bisenetv1_r18-d32_4x4_1024x1024_160k_cityscapes + In Collection: bisenetv1 + Metadata: + backbone: R-18-D32 + crop size: (1024,1024) + lr schd: 160000 + inference time (ms/im): + - value: 31.48 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (1024,1024) + memory (GB): 5.69 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 74.44 + mIoU(ms+flip): 77.05 + Config: configs/bisenetv1/bisenetv1_r18-d32_4x4_1024x1024_160k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r18-d32_4x4_1024x1024_160k_cityscapes/bisenetv1_r18-d32_4x4_1024x1024_160k_cityscapes_20210922_172239-c55e78e2.pth +- Name: bisenetv1_r18-d32_in1k-pre_4x4_1024x1024_160k_cityscapes + In Collection: bisenetv1 + Metadata: + backbone: R-18-D32 + crop size: (1024,1024) + lr schd: 160000 + inference time (ms/im): + - value: 31.48 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (1024,1024) + memory (GB): 5.69 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 74.37 + mIoU(ms+flip): 76.91 + Config: configs/bisenetv1/bisenetv1_r18-d32_in1k-pre_4x4_1024x1024_160k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r18-d32_in1k-pre_4x4_1024x1024_160k_cityscapes/bisenetv1_r18-d32_in1k-pre_4x4_1024x1024_160k_cityscapes_20210905_220251-8ba80eff.pth +- Name: bisenetv1_r18-d32_in1k-pre_4x8_1024x1024_160k_cityscapes + In Collection: bisenetv1 + Metadata: + backbone: R-18-D32 + crop size: (1024,1024) + lr schd: 160000 + inference time (ms/im): + - value: 31.48 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (1024,1024) + memory (GB): 11.17 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 75.16 + mIoU(ms+flip): 77.24 + Config: configs/bisenetv1/bisenetv1_r18-d32_in1k-pre_4x8_1024x1024_160k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r18-d32_in1k-pre_4x8_1024x1024_160k_cityscapes/bisenetv1_r18-d32_in1k-pre_4x8_1024x1024_160k_cityscapes_20210905_220322-bb8db75f.pth +- Name: bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes + In Collection: bisenetv1 + Metadata: + backbone: R-50-D32 + crop size: (1024,1024) + lr schd: 160000 + inference time (ms/im): + - value: 129.7 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (1024,1024) + memory (GB): 3.3 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.92 + mIoU(ms+flip): 78.87 + Config: configs/bisenetv1/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes_20210923_222639-7b28a2a6.pth +- Name: bisenetv1_r50-d32_in1k-pre_4x4_1024x1024_160k_cityscapes + In Collection: bisenetv1 + Metadata: + backbone: R-50-D32 + crop size: (1024,1024) + lr schd: 160000 + inference time (ms/im): + - value: 129.7 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (1024,1024) + memory (GB): 15.39 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.68 + mIoU(ms+flip): 79.57 + Config: configs/bisenetv1/bisenetv1_r50-d32_in1k-pre_4x4_1024x1024_160k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r50-d32_in1k-pre_4x4_1024x1024_160k_cityscapes/bisenetv1_r50-d32_in1k-pre_4x4_1024x1024_160k_cityscapes_20210917_234628-8b304447.pth diff --git a/configs/bisenetv1/bisenetv1_r18-d32_4x4_1024x1024_160k_cityscapes.py b/configs/bisenetv1/bisenetv1_r18-d32_4x4_1024x1024_160k_cityscapes.py new file mode 100644 index 0000000000..f4019e930e --- /dev/null +++ b/configs/bisenetv1/bisenetv1_r18-d32_4x4_1024x1024_160k_cityscapes.py @@ -0,0 +1,11 @@ +_base_ = [ + '../_base_/models/bisenetv1_r18-d32.py', + '../_base_/datasets/cityscapes_1024x1024.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' +] +lr_config = dict(warmup='linear', warmup_iters=1000) +optimizer = dict(lr=0.025) +data = dict( + samples_per_gpu=4, + workers_per_gpu=4, +) diff --git a/configs/bisenetv1/bisenetv1_r18-d32_in1k-pre_4x4_1024x1024_160k_cityscapes.py b/configs/bisenetv1/bisenetv1_r18-d32_in1k-pre_4x4_1024x1024_160k_cityscapes.py new file mode 100644 index 0000000000..ef061a16bd --- /dev/null +++ b/configs/bisenetv1/bisenetv1_r18-d32_in1k-pre_4x4_1024x1024_160k_cityscapes.py @@ -0,0 +1,16 @@ +_base_ = [ + '../_base_/models/bisenetv1_r18-d32.py', + '../_base_/datasets/cityscapes_1024x1024.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' +] +model = dict( + backbone=dict( + backbone_cfg=dict( + init_cfg=dict( + type='Pretrained', checkpoint='open-mmlab://resnet18_v1c')))) +lr_config = dict(warmup='linear', warmup_iters=1000) +optimizer = dict(lr=0.025) +data = dict( + samples_per_gpu=4, + workers_per_gpu=4, +) diff --git a/configs/bisenetv1/bisenetv1_r18-d32_in1k-pre_4x8_1024x1024_160k_cityscapes.py b/configs/bisenetv1/bisenetv1_r18-d32_in1k-pre_4x8_1024x1024_160k_cityscapes.py new file mode 100644 index 0000000000..ea27ef0a11 --- /dev/null +++ b/configs/bisenetv1/bisenetv1_r18-d32_in1k-pre_4x8_1024x1024_160k_cityscapes.py @@ -0,0 +1,5 @@ +_base_ = './bisenetv1_r18-d32_in1k-pre_4x4_1024x1024_160k_cityscapes.py' +data = dict( + samples_per_gpu=8, + workers_per_gpu=8, +) diff --git a/configs/bisenetv1/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes.py b/configs/bisenetv1/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes.py new file mode 100644 index 0000000000..193438d364 --- /dev/null +++ b/configs/bisenetv1/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes.py @@ -0,0 +1,46 @@ +_base_ = [ + '../_base_/models/bisenetv1_r18-d32.py', + '../_base_/datasets/cityscapes_1024x1024.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' +] +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + type='EncoderDecoder', + backbone=dict( + type='BiSeNetV1', + context_channels=(512, 1024, 2048), + spatial_channels=(256, 256, 256, 512), + out_channels=1024, + backbone_cfg=dict( + init_cfg=dict( + type='Pretrained', checkpoint='open-mmlab://resnet50_v1c'), + type='ResNet', + depth=50)), + decode_head=dict( + type='FCNHead', in_channels=1024, in_index=0, channels=1024), + auxiliary_head=[ + dict( + type='FCNHead', + in_channels=512, + channels=256, + num_convs=1, + num_classes=19, + in_index=1, + norm_cfg=norm_cfg, + concat_input=False), + dict( + type='FCNHead', + in_channels=512, + channels=256, + num_convs=1, + num_classes=19, + in_index=2, + norm_cfg=norm_cfg, + concat_input=False), + ]) +lr_config = dict(warmup='linear', warmup_iters=1000) +optimizer = dict(lr=0.05) +data = dict( + samples_per_gpu=4, + workers_per_gpu=4, +) diff --git a/configs/bisenetv1/bisenetv1_r50-d32_in1k-pre_4x4_1024x1024_160k_cityscapes.py b/configs/bisenetv1/bisenetv1_r50-d32_in1k-pre_4x4_1024x1024_160k_cityscapes.py new file mode 100644 index 0000000000..5625a76c08 --- /dev/null +++ b/configs/bisenetv1/bisenetv1_r50-d32_in1k-pre_4x4_1024x1024_160k_cityscapes.py @@ -0,0 +1,7 @@ +_base_ = './bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes.py' +model = dict( + type='EncoderDecoder', + backbone=dict( + backbone_cfg=dict( + init_cfg=dict( + type='Pretrained', checkpoint='open-mmlab://resnet50_v1c')))) diff --git a/mmseg/models/backbones/__init__.py b/mmseg/models/backbones/__init__.py index 24e2397235..1f88bdda6c 100644 --- a/mmseg/models/backbones/__init__.py +++ b/mmseg/models/backbones/__init__.py @@ -1,4 +1,5 @@ # Copyright (c) OpenMMLab. All rights reserved. +from .bisenetv1 import BiSeNetV1 from .bisenetv2 import BiSeNetV2 from .cgnet import CGNet from .fast_scnn import FastSCNN @@ -16,5 +17,6 @@ __all__ = [ 'ResNet', 'ResNetV1c', 'ResNetV1d', 'ResNeXt', 'HRNet', 'FastSCNN', 'ResNeSt', 'MobileNetV2', 'UNet', 'CGNet', 'MobileNetV3', - 'VisionTransformer', 'SwinTransformer', 'MixVisionTransformer', 'BiSeNetV2' + 'VisionTransformer', 'SwinTransformer', 'MixVisionTransformer', + 'BiSeNetV1', 'BiSeNetV2' ] diff --git a/mmseg/models/backbones/bisenetv1.py b/mmseg/models/backbones/bisenetv1.py new file mode 100644 index 0000000000..4beb7b394d --- /dev/null +++ b/mmseg/models/backbones/bisenetv1.py @@ -0,0 +1,332 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +import torch.nn as nn +from mmcv.cnn import ConvModule +from mmcv.runner import BaseModule + +from mmseg.ops import resize +from ..builder import BACKBONES, build_backbone + + +class SpatialPath(BaseModule): + """Spatial Path to preserve the spatial size of the original input image + and encode affluent spatial information. + + Args: + in_channels(int): The number of channels of input + image. Default: 3. + num_channels (Tuple[int]): The number of channels of + each layers in Spatial Path. + Default: (64, 64, 64, 128). + Returns: + x (torch.Tensor): Feature map for Feature Fusion Module. + """ + + def __init__(self, + in_channels=3, + num_channels=(64, 64, 64, 128), + conv_cfg=None, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + init_cfg=None): + super(SpatialPath, self).__init__(init_cfg=init_cfg) + assert len(num_channels) == 4, 'Length of input channels \ + of Spatial Path must be 4!' + + self.layers = [] + for i in range(len(num_channels)): + layer_name = f'layer{i + 1}' + self.layers.append(layer_name) + if i == 0: + self.add_module( + layer_name, + ConvModule( + in_channels=in_channels, + out_channels=num_channels[i], + kernel_size=7, + stride=2, + padding=3, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg)) + elif i == len(num_channels) - 1: + self.add_module( + layer_name, + ConvModule( + in_channels=num_channels[i - 1], + out_channels=num_channels[i], + kernel_size=1, + stride=1, + padding=0, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg)) + else: + self.add_module( + layer_name, + ConvModule( + in_channels=num_channels[i - 1], + out_channels=num_channels[i], + kernel_size=3, + stride=2, + padding=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg)) + + def forward(self, x): + for i, layer_name in enumerate(self.layers): + layer_stage = getattr(self, layer_name) + x = layer_stage(x) + return x + + +class AttentionRefinementModule(BaseModule): + """Attention Refinement Module (ARM) to refine the features of each stage. + + Args: + in_channels (int): The number of input channels. + out_channels (int): The number of output channels. + Returns: + x_out (torch.Tensor): Feature map of Attention Refinement Module. + """ + + def __init__(self, + in_channels, + out_channel, + conv_cfg=None, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + init_cfg=None): + super(AttentionRefinementModule, self).__init__(init_cfg=init_cfg) + self.conv_layer = ConvModule( + in_channels=in_channels, + out_channels=out_channel, + kernel_size=3, + stride=1, + padding=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + self.atten_conv_layer = nn.Sequential( + nn.AdaptiveAvgPool2d((1, 1)), + ConvModule( + in_channels=out_channel, + out_channels=out_channel, + kernel_size=1, + bias=False, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=None), nn.Sigmoid()) + + def forward(self, x): + x = self.conv_layer(x) + x_atten = self.atten_conv_layer(x) + x_out = x * x_atten + return x_out + + +class ContextPath(BaseModule): + """Context Path to provide sufficient receptive field. + + Args: + backbone_cfg:(dict): Config of backbone of + Context Path. + context_channels (Tuple[int]): The number of channel numbers + of various modules in Context Path. + Default: (128, 256, 512). + align_corners (bool, optional): The align_corners argument of + resize operation. Default: False. + Returns: + x_16_up, x_32_up (torch.Tensor, torch.Tensor): Two feature maps + undergoing upsampling from 1/16 and 1/32 downsampling + feature maps. These two feature maps are used for Feature + Fusion Module and Auxiliary Head. + """ + + def __init__(self, + backbone_cfg, + context_channels=(128, 256, 512), + align_corners=False, + conv_cfg=None, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + init_cfg=None): + super(ContextPath, self).__init__(init_cfg=init_cfg) + assert len(context_channels) == 3, 'Length of input channels \ + of Context Path must be 3!' + + self.backbone = build_backbone(backbone_cfg) + + self.align_corners = align_corners + self.arm16 = AttentionRefinementModule(context_channels[1], + context_channels[0]) + self.arm32 = AttentionRefinementModule(context_channels[2], + context_channels[0]) + self.conv_head32 = ConvModule( + in_channels=context_channels[0], + out_channels=context_channels[0], + kernel_size=3, + stride=1, + padding=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + self.conv_head16 = ConvModule( + in_channels=context_channels[0], + out_channels=context_channels[0], + kernel_size=3, + stride=1, + padding=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + self.gap_conv = nn.Sequential( + nn.AdaptiveAvgPool2d((1, 1)), + ConvModule( + in_channels=context_channels[2], + out_channels=context_channels[0], + kernel_size=1, + stride=1, + padding=0, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg)) + + def forward(self, x): + x_4, x_8, x_16, x_32 = self.backbone(x) + x_gap = self.gap_conv(x_32) + + x_32_arm = self.arm32(x_32) + x_32_sum = x_32_arm + x_gap + x_32_up = resize(input=x_32_sum, size=x_16.shape[2:], mode='nearest') + x_32_up = self.conv_head32(x_32_up) + + x_16_arm = self.arm16(x_16) + x_16_sum = x_16_arm + x_32_up + x_16_up = resize(input=x_16_sum, size=x_8.shape[2:], mode='nearest') + x_16_up = self.conv_head16(x_16_up) + + return x_16_up, x_32_up + + +class FeatureFusionModule(BaseModule): + """Feature Fusion Module to fuse low level output feature of Spatial Path + and high level output feature of Context Path. + + Args: + in_channels (int): The number of input channels. + out_channels (int): The number of output channels. + Returns: + x_out (torch.Tensor): Feature map of Feature Fusion Module. + """ + + def __init__(self, + in_channels, + out_channels, + conv_cfg=None, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + init_cfg=None): + super(FeatureFusionModule, self).__init__(init_cfg=init_cfg) + self.conv1 = ConvModule( + in_channels=in_channels, + out_channels=out_channels, + kernel_size=1, + stride=1, + padding=0, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + self.gap = nn.AdaptiveAvgPool2d((1, 1)) + self.conv_atten = nn.Sequential( + ConvModule( + in_channels=out_channels, + out_channels=out_channels, + kernel_size=1, + stride=1, + padding=0, + bias=False, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg), nn.Sigmoid()) + + def forward(self, x_sp, x_cp): + x_concat = torch.cat([x_sp, x_cp], dim=1) + x_fuse = self.conv1(x_concat) + x_atten = self.gap(x_fuse) + # Note: No BN and more 1x1 conv in paper. + x_atten = self.conv_atten(x_atten) + x_atten = x_fuse * x_atten + x_out = x_atten + x_fuse + return x_out + + +@BACKBONES.register_module() +class BiSeNetV1(BaseModule): + """BiSeNetV1 backbone. + + This backbone is the implementation of `BiSeNet: Bilateral + Segmentation Network for Real-time Semantic + Segmentation `_. + + Args: + backbone_cfg:(dict): Config of backbone of + Context Path. + in_channels (int): The number of channels of input + image. Default: 3. + spatial_channels (Tuple[int]): Size of channel numbers of + various layers in Spatial Path. + Default: (64, 64, 64, 128). + context_channels (Tuple[int]): Size of channel numbers of + various modules in Context Path. + Default: (128, 256, 512). + out_indices (Tuple[int] | int, optional): Output from which stages. + Default: (0, 1, 2). + align_corners (bool, optional): The align_corners argument of + resize operation in Bilateral Guided Aggregation Layer. + Default: False. + out_channels(int): The number of channels of output. + It must be the same with `in_channels` of decode_head. + Default: 256. + """ + + def __init__(self, + backbone_cfg, + in_channels=3, + spatial_channels=(64, 64, 64, 128), + context_channels=(128, 256, 512), + out_indices=(0, 1, 2), + align_corners=False, + out_channels=256, + conv_cfg=None, + norm_cfg=dict(type='BN', requires_grad=True), + act_cfg=dict(type='ReLU'), + init_cfg=None): + + super(BiSeNetV1, self).__init__(init_cfg=init_cfg) + assert len(spatial_channels) == 4, 'Length of input channels \ + of Spatial Path must be 4!' + + assert len(context_channels) == 3, 'Length of input channels \ + of Context Path must be 3!' + + self.out_indices = out_indices + self.align_corners = align_corners + self.context_path = ContextPath(backbone_cfg, context_channels, + self.align_corners) + self.spatial_path = SpatialPath(in_channels, spatial_channels) + self.ffm = FeatureFusionModule(context_channels[1], out_channels) + self.conv_cfg = conv_cfg + self.norm_cfg = norm_cfg + self.act_cfg = act_cfg + + def forward(self, x): + # stole refactoring code from Coin Cheung, thanks + x_context8, x_context16 = self.context_path(x) + x_spatial = self.spatial_path(x) + x_fuse = self.ffm(x_spatial, x_context8) + + outs = [x_fuse, x_context8, x_context16] + outs = [outs[i] for i in self.out_indices] + return tuple(outs) diff --git a/model-index.yml b/model-index.yml index 1fa927ad92..7d18380c76 100644 --- a/model-index.yml +++ b/model-index.yml @@ -1,6 +1,7 @@ Import: - configs/ann/ann.yml - configs/apcnet/apcnet.yml +- configs/bisenetv1/bisenetv1.yml - configs/bisenetv2/bisenetv2.yml - configs/ccnet/ccnet.yml - configs/cgnet/cgnet.yml diff --git a/tests/test_models/test_backbones/test_bisenetv1.py b/tests/test_models/test_backbones/test_bisenetv1.py new file mode 100644 index 0000000000..8e1571d6fb --- /dev/null +++ b/tests/test_models/test_backbones/test_bisenetv1.py @@ -0,0 +1,109 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import pytest +import torch + +from mmseg.models.backbones import BiSeNetV1 +from mmseg.models.backbones.bisenetv1 import (AttentionRefinementModule, + ContextPath, FeatureFusionModule, + SpatialPath) + + +def test_bisenetv1_backbone(): + # Test BiSeNetV1 Standard Forward + backbone_cfg = dict( + type='ResNet', + in_channels=3, + depth=18, + num_stages=4, + out_indices=(0, 1, 2, 3), + dilations=(1, 1, 1, 1), + strides=(1, 2, 2, 2), + norm_eval=False, + style='pytorch', + contract_dilation=True) + model = BiSeNetV1(in_channels=3, backbone_cfg=backbone_cfg) + model.init_weights() + model.train() + batch_size = 2 + imgs = torch.randn(batch_size, 3, 256, 512) + feat = model(imgs) + + assert len(feat) == 3 + # output for segment Head + assert feat[0].shape == torch.Size([batch_size, 256, 32, 64]) + # for auxiliary head 1 + assert feat[1].shape == torch.Size([batch_size, 128, 32, 64]) + # for auxiliary head 2 + assert feat[2].shape == torch.Size([batch_size, 128, 16, 32]) + + # Test input with rare shape + batch_size = 2 + imgs = torch.randn(batch_size, 3, 527, 279) + feat = model(imgs) + assert len(feat) == 3 + + with pytest.raises(AssertionError): + # BiSeNetV1 spatial path channel constraints. + BiSeNetV1( + backbone_cfg=backbone_cfg, + in_channels=3, + spatial_channels=(64, 64, 64)) + + with pytest.raises(AssertionError): + # BiSeNetV1 context path constraints. + BiSeNetV1( + backbone_cfg=backbone_cfg, + in_channels=3, + context_channels=(128, 256, 512, 1024)) + + +def test_bisenetv1_spatial_path(): + with pytest.raises(AssertionError): + # BiSeNetV1 spatial path channel constraints. + SpatialPath(num_channels=(64, 64, 64), in_channels=3) + + +def test_bisenetv1_context_path(): + backbone_cfg = dict( + type='ResNet', + in_channels=3, + depth=50, + num_stages=4, + out_indices=(0, 1, 2, 3), + dilations=(1, 1, 1, 1), + strides=(1, 2, 2, 2), + norm_eval=False, + style='pytorch', + contract_dilation=True) + + with pytest.raises(AssertionError): + # BiSeNetV1 context path constraints. + ContextPath( + backbone_cfg=backbone_cfg, context_channels=(128, 256, 512, 1024)) + + +def test_bisenetv1_attention_refinement_module(): + x_arm = AttentionRefinementModule(256, 64) + assert x_arm.conv_layer.in_channels == 256 + assert x_arm.conv_layer.out_channels == 64 + assert x_arm.conv_layer.kernel_size == (3, 3) + x = torch.randn(2, 256, 32, 64) + x_out = x_arm(x) + assert x_out.shape == torch.Size([2, 64, 32, 64]) + + +def test_bisenetv1_feature_fusion_module(): + ffm = FeatureFusionModule(128, 256) + assert ffm.conv1.in_channels == 128 + assert ffm.conv1.out_channels == 256 + assert ffm.conv1.kernel_size == (1, 1) + assert ffm.gap.output_size == (1, 1) + assert ffm.conv_atten[0].in_channels == 256 + assert ffm.conv_atten[0].out_channels == 256 + assert ffm.conv_atten[0].kernel_size == (1, 1) + + ffm = FeatureFusionModule(128, 128) + x1 = torch.randn(2, 64, 64, 128) + x2 = torch.randn(2, 64, 64, 128) + x_out = ffm(x1, x2) + assert x_out.shape == torch.Size([2, 128, 64, 128]) From 7edc71d5323b9957efc35dfe3ef21b1adf210047 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Tue, 28 Sep 2021 17:46:33 -0700 Subject: [PATCH 250/706] [Improvement] Refactor Swin-Transformer (#800) * [Improvement] Refactor Swin-Transformer * fixed swin test * update patch emebd, add more tests * fixed test * remove pretrain_style * fixed padding * resolve coments * use mmcv 2tuple * refactor init_cfg Co-authored-by: Junjun2016 --- configs/_base_/models/upernet_swin.py | 3 +- ...512x512_160k_ade20k_pretrain_224x224_1K.py | 3 +- mmseg/models/backbones/mit.py | 12 +- mmseg/models/backbones/swin.py | 300 ++++++------ mmseg/models/backbones/vit.py | 6 +- mmseg/models/utils/embed.py | 324 ++++++++++-- tests/test_models/test_backbones/test_mit.py | 4 - tests/test_models/test_backbones/test_swin.py | 64 ++- tests/test_models/test_backbones/test_vit.py | 6 - tests/test_models/test_utils/__init__.py | 0 tests/test_models/test_utils/test_embed.py | 461 ++++++++++++++++++ 11 files changed, 937 insertions(+), 246 deletions(-) create mode 100644 tests/test_models/test_utils/__init__.py create mode 100644 tests/test_models/test_utils/test_embed.py diff --git a/configs/_base_/models/upernet_swin.py b/configs/_base_/models/upernet_swin.py index 30ee0503d6..71b51629e0 100644 --- a/configs/_base_/models/upernet_swin.py +++ b/configs/_base_/models/upernet_swin.py @@ -23,8 +23,7 @@ drop_path_rate=0.3, use_abs_pos_embed=False, act_cfg=dict(type='GELU'), - norm_cfg=backbone_norm_cfg, - pretrain_style='official'), + norm_cfg=backbone_norm_cfg), decode_head=dict( type='UPerHead', in_channels=[96, 192, 384, 768], diff --git a/configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py b/configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py index 8dd8404501..67eb4df361 100644 --- a/configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py +++ b/configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py @@ -11,8 +11,7 @@ window_size=7, use_abs_pos_embed=False, drop_path_rate=0.3, - patch_norm=True, - pretrain_style='official'), + patch_norm=True), decode_head=dict(in_channels=[96, 192, 384, 768], num_classes=150), auxiliary_head=dict(in_channels=384, num_classes=150)) diff --git a/mmseg/models/backbones/mit.py b/mmseg/models/backbones/mit.py index ee8bbfab45..54d9856606 100644 --- a/mmseg/models/backbones/mit.py +++ b/mmseg/models/backbones/mit.py @@ -278,8 +278,6 @@ class MixVisionTransformer(BaseModule): Default: dict(type='LN') act_cfg (dict): The activation config for FFNs. Defalut: dict(type='GELU'). - pretrain_style (str): Choose to use official or mmcls pretrain weights. - Default: official. pretrained (str, optional): model pretrained path. Default: None. init_cfg (dict or list[dict], optional): Initialization config dict. Default: None. @@ -302,15 +300,10 @@ def __init__(self, drop_path_rate=0., act_cfg=dict(type='GELU'), norm_cfg=dict(type='LN', eps=1e-6), - pretrain_style='official', pretrained=None, init_cfg=None): super().__init__() - assert pretrain_style in [ - 'official', 'mmcls' - ], 'we only support official weights or mmcls weights.' - if isinstance(pretrained, str) or pretrained is None: warnings.warn('DeprecationWarning: pretrained is a deprecated, ' 'please use "init_cfg" instead') @@ -330,7 +323,6 @@ def __init__(self, self.out_indices = out_indices assert max(out_indices) < self.num_stages - self.pretrain_style = pretrain_style self.pretrained = pretrained self.init_cfg = init_cfg @@ -350,7 +342,6 @@ def __init__(self, kernel_size=patch_sizes[i], stride=strides[i], padding=patch_sizes[i] // 2, - pad_to_patch_size=False, norm_cfg=norm_cfg) layer = ModuleList([ TransformerEncoderLayer( @@ -403,8 +394,7 @@ def forward(self, x): outs = [] for i, layer in enumerate(self.layers): - x, H, W = layer[0](x), layer[0].DH, layer[0].DW - hw_shape = (H, W) + x, hw_shape = layer[0](x) for block in layer[1]: x = block(x, hw_shape) x = layer[2](x) diff --git a/mmseg/models/backbones/swin.py b/mmseg/models/backbones/swin.py index 7de1883678..9133d8ce42 100644 --- a/mmseg/models/backbones/swin.py +++ b/mmseg/models/backbones/swin.py @@ -1,111 +1,37 @@ # Copyright (c) OpenMMLab. All rights reserved. import warnings +from collections import OrderedDict from copy import deepcopy import torch import torch.nn as nn import torch.nn.functional as F -from mmcv.cnn import build_norm_layer, trunc_normal_init +import torch.utils.checkpoint as cp +from mmcv.cnn import build_norm_layer, constant_init, trunc_normal_init from mmcv.cnn.bricks.transformer import FFN, build_dropout -from mmcv.cnn.utils.weight_init import constant_init -from mmcv.runner import _load_checkpoint -from mmcv.runner.base_module import BaseModule, ModuleList -from torch.nn.modules.linear import Linear -from torch.nn.modules.normalization import LayerNorm -from torch.nn.modules.utils import _pair as to_2tuple - -from mmseg.ops import resize -from ...utils import get_root_logger -from ..builder import ATTENTION, BACKBONES -from ..utils import PatchEmbed - - -class PatchMerging(BaseModule): - """Merge patch feature map. - - This layer use nn.Unfold to group feature map by kernel_size, and use norm - and linear layer to embed grouped feature map. - - Args: - in_channels (int): The num of input channels. - out_channels (int): The num of output channels. - stride (int | tuple): the stride of the sliding length in the - unfold layer. Defaults: 2. (Default to be equal with kernel_size). - bias (bool, optional): Whether to add bias in linear layer or not. - Defaults: False. - norm_cfg (dict, optional): Config dict for normalization layer. - Defaults: dict(type='LN'). - init_cfg (dict, optional): The extra config for initialization. - Defaults: None. - """ - - def __init__(self, - in_channels, - out_channels, - stride=2, - bias=False, - norm_cfg=dict(type='LN'), - init_cfg=None): - super().__init__(init_cfg) - self.in_channels = in_channels - self.out_channels = out_channels - self.stride = stride - - self.sampler = nn.Unfold( - kernel_size=stride, dilation=1, padding=0, stride=stride) - - sample_dim = stride**2 * in_channels - - if norm_cfg is not None: - self.norm = build_norm_layer(norm_cfg, sample_dim)[1] - else: - self.norm = None - - self.reduction = nn.Linear(sample_dim, out_channels, bias=bias) - - def forward(self, x, hw_shape): - """ - x: x.shape -> [B, H*W, C] - hw_shape: (H, W) - """ - B, L, C = x.shape - H, W = hw_shape - assert L == H * W, 'input feature has wrong size' - - x = x.view(B, H, W, C).permute([0, 3, 1, 2]) # B, C, H, W +from mmcv.runner import BaseModule, ModuleList, _load_checkpoint +from mmcv.utils import to_2tuple - # stride is fixed to be equal to kernel_size. - if (H % self.stride != 0) or (W % self.stride != 0): - x = F.pad(x, (0, W % self.stride, 0, H % self.stride)) - - # Use nn.Unfold to merge patch. About 25% faster than original method, - # but need to modify pretrained model for compatibility - x = self.sampler(x) # B, 4*C, H/2*W/2 - x = x.transpose(1, 2) # B, H/2*W/2, 4*C - - x = self.norm(x) if self.norm else x - x = self.reduction(x) - - down_hw_shape = (H + 1) // 2, (W + 1) // 2 - return x, down_hw_shape +from ...utils import get_root_logger +from ..builder import BACKBONES +from ..utils.embed import PatchEmbed, PatchMerging -@ATTENTION.register_module() class WindowMSA(BaseModule): """Window based multi-head self-attention (W-MSA) module with relative position bias. Args: embed_dims (int): Number of input channels. - window_size (tuple[int]): The height and width of the window. num_heads (int): Number of attention heads. + window_size (tuple[int]): The height and width of the window. qkv_bias (bool, optional): If True, add a learnable bias to q, k, v. Default: True. qk_scale (float | None, optional): Override default qk scale of head_dim ** -0.5 if set. Default: None. attn_drop_rate (float, optional): Dropout ratio of attention weight. Default: 0.0 - proj_drop_rate (float, optional): Dropout ratio of output. Default: 0.0 + proj_drop_rate (float, optional): Dropout ratio of output. Default: 0. init_cfg (dict | None, optional): The Config for initialization. Default: None. """ @@ -120,13 +46,12 @@ def __init__(self, proj_drop_rate=0., init_cfg=None): - super().__init__() + super().__init__(init_cfg=init_cfg) self.embed_dims = embed_dims self.window_size = window_size # Wh, Ww self.num_heads = num_heads head_embed_dims = embed_dims // num_heads self.scale = qk_scale or head_embed_dims**-0.5 - self.init_cfg = init_cfg # define a parameter table of relative position bias self.relative_position_bias_table = nn.Parameter( @@ -161,8 +86,8 @@ def forward(self, x, mask=None): B, N, C = x.shape qkv = self.qkv(x).reshape(B, N, 3, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4) - q, k, v = qkv[0], qkv[1], qkv[ - 2] # make torchscript happy (cannot use tensor as tuple) + # make torchscript happy (cannot use tensor as tuple) + q, k, v = qkv[0], qkv[1], qkv[2] q = q * self.scale attn = (q @ k.transpose(-2, -1)) @@ -181,9 +106,7 @@ def forward(self, x, mask=None): attn = attn.view(B // nW, nW, self.num_heads, N, N) + mask.unsqueeze(1).unsqueeze(0) attn = attn.view(-1, self.num_heads, N, N) - attn = self.softmax(attn) - else: - attn = self.softmax(attn) + attn = self.softmax(attn) attn = self.attn_drop(attn) @@ -199,9 +122,8 @@ def double_step_seq(step1, len1, step2, len2): return (seq1[:, None] + seq2[None, :]).reshape(1, -1) -@ATTENTION.register_module() class ShiftWindowMSA(BaseModule): - """Shift Window Multihead Self-Attention Module. + """Shifted Window Multihead Self-Attention Module. Args: embed_dims (int): Number of input channels. @@ -234,7 +156,7 @@ def __init__(self, proj_drop_rate=0, dropout_layer=dict(type='DropPath', drop_prob=0.), init_cfg=None): - super().__init__(init_cfg) + super().__init__(init_cfg=init_cfg) self.window_size = window_size self.shift_size = shift_size @@ -272,8 +194,7 @@ def forward(self, query, hw_shape): dims=(1, 2)) # calculate attention mask for SW-MSA - img_mask = torch.zeros((1, H_pad, W_pad, 1), - device=query.device) # 1 H W 1 + img_mask = torch.zeros((1, H_pad, W_pad, 1), device=query.device) h_slices = (slice(0, -self.window_size), slice(-self.window_size, -self.shift_size), slice(-self.shift_size, None)) @@ -333,7 +254,6 @@ def window_reverse(self, windows, H, W): """ Args: windows: (num_windows*B, window_size, window_size, C) - window_size (int): Window size H (int): Height of image W (int): Width of image Returns: @@ -350,7 +270,6 @@ def window_partition(self, x): """ Args: x: (B, H, W, C) - window_size (int): window size Returns: windows: (num_windows*B, window_size, window_size, C) """ @@ -369,18 +288,21 @@ class SwinBlock(BaseModule): embed_dims (int): The feature dimension. num_heads (int): Parallel attention heads. feedforward_channels (int): The hidden dimension for FFNs. - window size (int, optional): The local window scale. Default: 7. - shift (bool): whether to shift window or not. Default False. - qkv_bias (int, optional): enable bias for qkv if True. Default: True. + window_size (int, optional): The local window scale. Default: 7. + shift (bool, optional): whether to shift window or not. Default False. + qkv_bias (bool, optional): enable bias for qkv if True. Default: True. qk_scale (float | None, optional): Override default qk scale of head_dim ** -0.5 if set. Default: None. drop_rate (float, optional): Dropout rate. Default: 0. attn_drop_rate (float, optional): Attention dropout rate. Default: 0. - drop_path_rate (float, optional): Stochastic depth rate. Default: 0.2. + drop_path_rate (float, optional): Stochastic depth rate. Default: 0. act_cfg (dict, optional): The config dict of activation function. Default: dict(type='GELU'). - norm_cfg (dict, optional): The config dict of nomalization. + norm_cfg (dict, optional): The config dict of normalization. Default: dict(type='LN'). + with_cp (bool, optional): Use checkpoint or not. Using checkpoint + will save some memory while slowing down the training speed. + Default: False. init_cfg (dict | list | None, optional): The init config. Default: None. """ @@ -398,11 +320,12 @@ def __init__(self, drop_path_rate=0., act_cfg=dict(type='GELU'), norm_cfg=dict(type='LN'), + with_cp=False, init_cfg=None): - super(SwinBlock, self).__init__() + super(SwinBlock, self).__init__(init_cfg=init_cfg) - self.init_cfg = init_cfg + self.with_cp = with_cp self.norm1 = build_norm_layer(norm_cfg, embed_dims)[1] self.attn = ShiftWindowMSA( @@ -429,15 +352,24 @@ def __init__(self, init_cfg=None) def forward(self, x, hw_shape): - identity = x - x = self.norm1(x) - x = self.attn(x, hw_shape) - x = x + identity + def _inner_forward(x): + identity = x + x = self.norm1(x) + x = self.attn(x, hw_shape) + + x = x + identity + + identity = x + x = self.norm2(x) + x = self.ffn(x, identity=identity) - identity = x - x = self.norm2(x) - x = self.ffn(x, identity=identity) + return x + + if self.with_cp and x.requires_grad: + x = cp.checkpoint(_inner_forward, x) + else: + x = _inner_forward(x) return x @@ -450,19 +382,23 @@ class SwinBlockSequence(BaseModule): num_heads (int): Parallel attention heads. feedforward_channels (int): The hidden dimension for FFNs. depth (int): The number of blocks in this stage. - window size (int): The local window scale. Default: 7. - qkv_bias (int): enable bias for qkv if True. Default: True. + window_size (int, optional): The local window scale. Default: 7. + qkv_bias (bool, optional): enable bias for qkv if True. Default: True. qk_scale (float | None, optional): Override default qk scale of head_dim ** -0.5 if set. Default: None. drop_rate (float, optional): Dropout rate. Default: 0. attn_drop_rate (float, optional): Attention dropout rate. Default: 0. - drop_path_rate (float, optional): Stochastic depth rate. Default: 0.2. + drop_path_rate (float | list[float], optional): Stochastic depth + rate. Default: 0. downsample (BaseModule | None, optional): The downsample operation module. Default: None. act_cfg (dict, optional): The config dict of activation function. Default: dict(type='GELU'). - norm_cfg (dict, optional): The config dict of nomalization. + norm_cfg (dict, optional): The config dict of normalization. Default: dict(type='LN'). + with_cp (bool, optional): Use checkpoint or not. Using checkpoint + will save some memory while slowing down the training speed. + Default: False. init_cfg (dict | list | None, optional): The init config. Default: None. """ @@ -481,14 +417,15 @@ def __init__(self, downsample=None, act_cfg=dict(type='GELU'), norm_cfg=dict(type='LN'), + with_cp=False, init_cfg=None): - super().__init__() - - self.init_cfg = init_cfg + super().__init__(init_cfg=init_cfg) - drop_path_rate = drop_path_rate if isinstance( - drop_path_rate, - list) else [deepcopy(drop_path_rate) for _ in range(depth)] + if isinstance(drop_path_rate, list): + drop_path_rates = drop_path_rate + assert len(drop_path_rates) == depth + else: + drop_path_rates = [deepcopy(drop_path_rate) for _ in range(depth)] self.blocks = ModuleList() for i in range(depth): @@ -502,9 +439,10 @@ def __init__(self, qk_scale=qk_scale, drop_rate=drop_rate, attn_drop_rate=attn_drop_rate, - drop_path_rate=drop_path_rate[i], + drop_path_rate=drop_path_rates[i], act_cfg=act_cfg, norm_cfg=norm_cfg, + with_cp=with_cp, init_cfg=None) self.blocks.append(block) @@ -538,7 +476,7 @@ class SwinTransformer(BaseModule): embed_dims (int): The feature dimension. Default: 96. patch_size (int | tuple[int]): Patch size. Default: 4. window_size (int): Window size. Default: 7. - mlp_ratio (float): Ratio of mlp hidden dim to embedding dim. + mlp_ratio (int): Ratio of mlp hidden dim to embedding dim. Default: 4. depths (tuple[int]): Depths of each Swin Transformer stage. Default: (2, 2, 6, 2). @@ -564,7 +502,12 @@ class SwinTransformer(BaseModule): Default: dict(type='LN'). norm_cfg (dict): Config dict for normalization layer at output of backone. Defaults: dict(type='LN'). + with_cp (bool, optional): Use checkpoint or not. Using checkpoint + will save some memory while slowing down the training speed. + Default: False. pretrained (str, optional): model pretrained path. Default: None. + frozen_stages (int): Stages to be frozen (stop grad and set eval mode). + -1 means not freezing any parameters. init_cfg (dict, optional): The Config for initialization. Defaults to None. """ @@ -589,9 +532,11 @@ def __init__(self, use_abs_pos_embed=False, act_cfg=dict(type='GELU'), norm_cfg=dict(type='LN'), + with_cp=False, pretrained=None, + frozen_stages=-1, init_cfg=None): - super(SwinTransformer, self).__init__() + self.frozen_stages = frozen_stages if isinstance(pretrain_img_size, int): pretrain_img_size = to_2tuple(pretrain_img_size) @@ -602,17 +547,22 @@ def __init__(self, f'The size of image should have length 1 or 2, ' \ f'but got {len(pretrain_img_size)}' - if isinstance(pretrained, str) or pretrained is None: - warnings.warn('DeprecationWarning: pretrained is a deprecated, ' + assert not (init_cfg and pretrained), \ + 'init_cfg and pretrained cannot be specified at the same time' + if isinstance(pretrained, str): + warnings.warn('DeprecationWarning: pretrained is deprecated, ' 'please use "init_cfg" instead') + init_cfg = dict(type='Pretrained', checkpoint=pretrained) + elif pretrained is None: + init_cfg = init_cfg else: raise TypeError('pretrained must be a str or None') + super(SwinTransformer, self).__init__(init_cfg=init_cfg) + num_layers = len(depths) self.out_indices = out_indices self.use_abs_pos_embed = use_abs_pos_embed - self.pretrained = pretrained - self.init_cfg = init_cfg assert strides[0] == patch_size, 'Use non-overlapping patch embed.' @@ -622,7 +572,7 @@ def __init__(self, conv_type='Conv2d', kernel_size=patch_size, stride=strides[0], - pad_to_patch_size=True, + padding='corner', norm_cfg=norm_cfg if patch_norm else None, init_cfg=None) @@ -635,11 +585,11 @@ def __init__(self, self.drop_after_pos = nn.Dropout(p=drop_rate) - # stochastic depth + # set stochastic depth decay rule total_depth = sum(depths) dpr = [ x.item() for x in torch.linspace(0, drop_path_rate, total_depth) - ] # stochastic depth decay rule + ] self.stages = ModuleList() in_channels = embed_dims @@ -664,14 +614,13 @@ def __init__(self, qk_scale=qk_scale, drop_rate=drop_rate, attn_drop_rate=attn_drop_rate, - drop_path_rate=dpr[:depths[i]], + drop_path_rate=dpr[sum(depths[:i]):sum(depths[:i + 1])], downsample=downsample, act_cfg=act_cfg, norm_cfg=norm_cfg, + with_cp=with_cp, init_cfg=None) self.stages.append(stage) - - dpr = dpr[depths[i]:] if downsample: in_channels = downsample.out_channels @@ -682,29 +631,67 @@ def __init__(self, layer_name = f'norm{i}' self.add_module(layer_name, layer) + def train(self, mode=True): + """Convert the model into training mode while keep layers freezed.""" + super(SwinTransformer, self).train(mode) + self._freeze_stages() + + def _freeze_stages(self): + if self.frozen_stages >= 0: + self.patch_embed.eval() + for param in self.patch_embed.parameters(): + param.requires_grad = False + if self.use_abs_pos_embed: + self.absolute_pos_embed.requires_grad = False + self.drop_after_pos.eval() + + for i in range(1, self.frozen_stages + 1): + + if (i - 1) in self.out_indices: + norm_layer = getattr(self, f'norm{i-1}') + norm_layer.eval() + for param in norm_layer.parameters(): + param.requires_grad = False + + m = self.stages[i - 1] + m.eval() + for param in m.parameters(): + param.requires_grad = False + def init_weights(self): - if self.pretrained is None: - super().init_weights() + logger = get_root_logger() + if self.init_cfg is None: + logger.warn(f'No pre-trained weights for ' + f'{self.__class__.__name__}, ' + f'training start from scratch') if self.use_abs_pos_embed: trunc_normal_init(self.absolute_pos_embed, std=0.02) for m in self.modules(): - if isinstance(m, Linear): + if isinstance(m, nn.Linear): trunc_normal_init(m.weight, std=.02) if m.bias is not None: constant_init(m.bias, 0) - elif isinstance(m, LayerNorm): + elif isinstance(m, nn.LayerNorm): constant_init(m.bias, 0) constant_init(m.weight, 1.0) - elif isinstance(self.pretrained, str): - logger = get_root_logger() + else: + assert 'checkpoint' in self.init_cfg, f'Only support ' \ + f'specify `Pretrained` in ' \ + f'`init_cfg` in ' \ + f'{self.__class__.__name__} ' ckpt = _load_checkpoint( - self.pretrained, logger=logger, map_location='cpu') + self.init_cfg.checkpoint, logger=logger, map_location='cpu') if 'state_dict' in ckpt: - state_dict = ckpt['state_dict'] + _state_dict = ckpt['state_dict'] elif 'model' in ckpt: - state_dict = ckpt['model'] + _state_dict = ckpt['model'] else: - state_dict = ckpt + _state_dict = ckpt + + state_dict = OrderedDict() + for k, v in _state_dict.items(): + if k.startswith('backbone.'): + state_dict[k[9:]] = v # strip prefix of state_dict if list(state_dict.keys())[0].startswith('module.'): @@ -733,25 +720,22 @@ def init_weights(self): L2, nH2 = table_current.size() if nH1 != nH2: logger.warning(f'Error in loading {table_key}, pass') - else: - if L1 != L2: - S1 = int(L1**0.5) - S2 = int(L2**0.5) - table_pretrained_resized = resize( - table_pretrained.permute(1, 0).reshape( - 1, nH1, S1, S1), - size=(S2, S2), - mode='bicubic') - state_dict[table_key] = table_pretrained_resized.view( - nH2, L2).permute(1, 0).contiguous() + elif L1 != L2: + S1 = int(L1**0.5) + S2 = int(L2**0.5) + table_pretrained_resized = F.interpolate( + table_pretrained.permute(1, 0).reshape(1, nH1, S1, S1), + size=(S2, S2), + mode='bicubic') + state_dict[table_key] = table_pretrained_resized.view( + nH2, L2).permute(1, 0).contiguous() # load state_dict self.load_state_dict(state_dict, False) def forward(self, x): - x = self.patch_embed(x) + x, hw_shape = self.patch_embed(x) - hw_shape = (self.patch_embed.DH, self.patch_embed.DW) if self.use_abs_pos_embed: x = x + self.absolute_pos_embed x = self.drop_after_pos(x) diff --git a/mmseg/models/backbones/vit.py b/mmseg/models/backbones/vit.py index 668d278992..5939964004 100644 --- a/mmseg/models/backbones/vit.py +++ b/mmseg/models/backbones/vit.py @@ -205,7 +205,7 @@ def __init__(self, conv_type='Conv2d', kernel_size=patch_size, stride=patch_size, - pad_to_patch_size=True, + padding='corner', norm_cfg=norm_cfg if patch_norm else None, init_cfg=None, ) @@ -370,8 +370,8 @@ def resize_pos_embed(pos_embed, input_shpae, pos_shape, mode): def forward(self, inputs): B = inputs.shape[0] - x, hw_shape = self.patch_embed(inputs), (self.patch_embed.DH, - self.patch_embed.DW) + x, hw_shape = self.patch_embed(inputs) + # stole cls_tokens impl from Phil Wang, thanks cls_tokens = self.cls_token.expand(B, -1, -1) x = torch.cat((cls_tokens, x), dim=1) diff --git a/mmseg/models/utils/embed.py b/mmseg/models/utils/embed.py index c0cf143488..1515675e1e 100644 --- a/mmseg/models/utils/embed.py +++ b/mmseg/models/utils/embed.py @@ -1,28 +1,109 @@ # Copyright (c) OpenMMLab. All rights reserved. +import math +from typing import Sequence + +import torch.nn as nn import torch.nn.functional as F from mmcv.cnn import build_conv_layer, build_norm_layer from mmcv.runner.base_module import BaseModule -from torch.nn.modules.utils import _pair as to_2tuple +from mmcv.utils import to_2tuple + + +class AdaptivePadding(nn.Module): + """Applies padding to input (if needed) so that input can get fully covered + by filter you specified. It support two modes "same" and "corner". The + "same" mode is same with "SAME" padding mode in TensorFlow, pad zero around + input. The "corner" mode would pad zero to bottom right. + + Args: + kernel_size (int | tuple): Size of the kernel: + stride (int | tuple): Stride of the filter. Default: 1: + dilation (int | tuple): Spacing between kernel elements. + Default: 1. + padding (str): Support "same" and "corner", "corner" mode + would pad zero to bottom right, and "same" mode would + pad zero around input. Default: "corner". + Example: + >>> kernel_size = 16 + >>> stride = 16 + >>> dilation = 1 + >>> input = torch.rand(1, 1, 15, 17) + >>> adap_pad = AdaptivePadding( + >>> kernel_size=kernel_size, + >>> stride=stride, + >>> dilation=dilation, + >>> padding="corner") + >>> out = adap_pad(input) + >>> assert (out.shape[2], out.shape[3]) == (16, 32) + >>> input = torch.rand(1, 1, 16, 17) + >>> out = adap_pad(input) + >>> assert (out.shape[2], out.shape[3]) == (16, 32) + """ + + def __init__(self, kernel_size=1, stride=1, dilation=1, padding='corner'): + + super(AdaptivePadding, self).__init__() + + assert padding in ('same', 'corner') + + kernel_size = to_2tuple(kernel_size) + stride = to_2tuple(stride) + dilation = to_2tuple(dilation) + + self.padding = padding + self.kernel_size = kernel_size + self.stride = stride + self.dilation = dilation + + def get_pad_shape(self, input_shape): + input_h, input_w = input_shape + kernel_h, kernel_w = self.kernel_size + stride_h, stride_w = self.stride + output_h = math.ceil(input_h / stride_h) + output_w = math.ceil(input_w / stride_w) + pad_h = max((output_h - 1) * stride_h + + (kernel_h - 1) * self.dilation[0] + 1 - input_h, 0) + pad_w = max((output_w - 1) * stride_w + + (kernel_w - 1) * self.dilation[1] + 1 - input_w, 0) + return pad_h, pad_w + + def forward(self, x): + pad_h, pad_w = self.get_pad_shape(x.size()[-2:]) + if pad_h > 0 or pad_w > 0: + if self.padding == 'corner': + x = F.pad(x, [0, pad_w, 0, pad_h]) + elif self.padding == 'same': + x = F.pad(x, [ + pad_w // 2, pad_w - pad_w // 2, pad_h // 2, + pad_h - pad_h // 2 + ]) + return x -# Modified from Pytorch-Image-Models class PatchEmbed(BaseModule): - """Image to Patch Embedding V2. + """Image to Patch Embedding. We use a conv layer to implement PatchEmbed. + Args: in_channels (int): The num of input channels. Default: 3 embed_dims (int): The dimensions of embedding. Default: 768 - conv_type (dict, optional): The config dict for conv layers type - selection. Default: None. + conv_type (str): The config dict for embedding + conv layer type selection. Default: "Conv2d". kernel_size (int): The kernel_size of embedding conv. Default: 16. - stride (int): The slide stride of embedding conv. - Default: None (Default to be equal with kernel_size). - padding (int): The padding length of embedding conv. Default: 0. + stride (int, optional): The slide stride of embedding conv. + Default: None (Would be set as `kernel_size`). + padding (int | tuple | string ): The padding length of + embedding conv. When it is a string, it means the mode + of adaptive padding, support "same" and "corner" now. + Default: "corner". dilation (int): The dilation rate of embedding conv. Default: 1. - pad_to_patch_size (bool, optional): Whether to pad feature map shape - to multiple patch size. Default: True. + bias (bool): Bias of embed conv. Default: True. norm_cfg (dict, optional): Config dict for normalization layer. + Default: None. + input_size (int | tuple | None): The size of input, which will be + used to calculate the out size. Only work when `dynamic_size` + is False. Default: None. init_cfg (`mmcv.ConfigDict`, optional): The Config for initialization. Default: None. """ @@ -30,39 +111,37 @@ class PatchEmbed(BaseModule): def __init__(self, in_channels=3, embed_dims=768, - conv_type=None, + conv_type='Conv2d', kernel_size=16, - stride=16, - padding=0, + stride=None, + padding='corner', dilation=1, - pad_to_patch_size=True, + bias=True, norm_cfg=None, + input_size=None, init_cfg=None): - super(PatchEmbed, self).__init__() + super(PatchEmbed, self).__init__(init_cfg=init_cfg) self.embed_dims = embed_dims - self.init_cfg = init_cfg - if stride is None: stride = kernel_size - self.pad_to_patch_size = pad_to_patch_size + kernel_size = to_2tuple(kernel_size) + stride = to_2tuple(stride) + dilation = to_2tuple(dilation) - # The default setting of patch size is equal to kernel size. - patch_size = kernel_size - if isinstance(patch_size, int): - patch_size = to_2tuple(patch_size) - elif isinstance(patch_size, tuple): - if len(patch_size) == 1: - patch_size = to_2tuple(patch_size[0]) - assert len(patch_size) == 2, \ - f'The size of patch should have length 1 or 2, ' \ - f'but got {len(patch_size)}' - - self.patch_size = patch_size + if isinstance(padding, str): + self.adap_padding = AdaptivePadding( + kernel_size=kernel_size, + stride=stride, + dilation=dilation, + padding=padding) + # disable the padding of conv + padding = 0 + else: + self.adap_padding = None + padding = to_2tuple(padding) - # Use conv layer to embed - conv_type = conv_type or 'Conv2d' self.projection = build_conv_layer( dict(type=conv_type), in_channels=in_channels, @@ -70,31 +149,182 @@ def __init__(self, kernel_size=kernel_size, stride=stride, padding=padding, - dilation=dilation) + dilation=dilation, + bias=bias) if norm_cfg is not None: self.norm = build_norm_layer(norm_cfg, embed_dims)[1] else: self.norm = None + if input_size: + input_size = to_2tuple(input_size) + # `init_out_size` would be used outside to + # calculate the num_patches + # when `use_abs_pos_embed` outside + self.init_input_size = input_size + if self.adap_padding: + pad_h, pad_w = self.adap_padding.get_pad_shape(input_size) + input_h, input_w = input_size + input_h = input_h + pad_h + input_w = input_w + pad_w + input_size = (input_h, input_w) + + # https://pytorch.org/docs/stable/generated/torch.nn.Conv2d.html + h_out = (input_size[0] + 2 * padding[0] - dilation[0] * + (kernel_size[0] - 1) - 1) // stride[0] + 1 + w_out = (input_size[1] + 2 * padding[1] - dilation[1] * + (kernel_size[1] - 1) - 1) // stride[1] + 1 + self.init_out_size = (h_out, w_out) + else: + self.init_input_size = None + self.init_out_size = None + def forward(self, x): - H, W = x.shape[2], x.shape[3] - - # TODO: Process overlapping op - if self.pad_to_patch_size: - # Modify H, W to multiple of patch size. - if H % self.patch_size[0] != 0: - x = F.pad( - x, (0, 0, 0, self.patch_size[0] - H % self.patch_size[0])) - if W % self.patch_size[1] != 0: - x = F.pad( - x, (0, self.patch_size[1] - W % self.patch_size[1], 0, 0)) + """ + Args: + x (Tensor): Has shape (B, C, H, W). In most case, C is 3. + + Returns: + tuple: Contains merged results and its spatial shape. + + - x (Tensor): Has shape (B, out_h * out_w, embed_dims) + - out_size (tuple[int]): Spatial shape of x, arrange as + (out_h, out_w). + """ + + if self.adap_padding: + x = self.adap_padding(x) x = self.projection(x) - self.DH, self.DW = x.shape[2], x.shape[3] + out_size = (x.shape[2], x.shape[3]) x = x.flatten(2).transpose(1, 2) - if self.norm is not None: x = self.norm(x) + return x, out_size - return x + +class PatchMerging(BaseModule): + """Merge patch feature map. + + This layer groups feature map by kernel_size, and applies norm and linear + layers to the grouped feature map. Our implementation uses `nn.Unfold` to + merge patch, which is about 25% faster than original implementation. + Instead, we need to modify pretrained models for compatibility. + + Args: + in_channels (int): The num of input channels. + out_channels (int): The num of output channels. + kernel_size (int | tuple, optional): the kernel size in the unfold + layer. Defaults to 2. + stride (int | tuple, optional): the stride of the sliding blocks in the + unfold layer. Default: None. (Would be set as `kernel_size`) + padding (int | tuple | string ): The padding length of + embedding conv. When it is a string, it means the mode + of adaptive padding, support "same" and "corner" now. + Default: "corner". + dilation (int | tuple, optional): dilation parameter in the unfold + layer. Default: 1. + bias (bool, optional): Whether to add bias in linear layer or not. + Defaults: False. + norm_cfg (dict, optional): Config dict for normalization layer. + Default: dict(type='LN'). + init_cfg (dict, optional): The extra config for initialization. + Default: None. + """ + + def __init__(self, + in_channels, + out_channels, + kernel_size=2, + stride=None, + padding='corner', + dilation=1, + bias=False, + norm_cfg=dict(type='LN'), + init_cfg=None): + super().__init__(init_cfg=init_cfg) + self.in_channels = in_channels + self.out_channels = out_channels + if stride: + stride = stride + else: + stride = kernel_size + + kernel_size = to_2tuple(kernel_size) + stride = to_2tuple(stride) + dilation = to_2tuple(dilation) + + if isinstance(padding, str): + self.adap_padding = AdaptivePadding( + kernel_size=kernel_size, + stride=stride, + dilation=dilation, + padding=padding) + # disable the padding of unfold + padding = 0 + else: + self.adap_padding = None + + padding = to_2tuple(padding) + self.sampler = nn.Unfold( + kernel_size=kernel_size, + dilation=dilation, + padding=padding, + stride=stride) + + sample_dim = kernel_size[0] * kernel_size[1] * in_channels + + if norm_cfg is not None: + self.norm = build_norm_layer(norm_cfg, sample_dim)[1] + else: + self.norm = None + + self.reduction = nn.Linear(sample_dim, out_channels, bias=bias) + + def forward(self, x, input_size): + """ + Args: + x (Tensor): Has shape (B, H*W, C_in). + input_size (tuple[int]): The spatial shape of x, arrange as (H, W). + Default: None. + + Returns: + tuple: Contains merged results and its spatial shape. + + - x (Tensor): Has shape (B, Merged_H * Merged_W, C_out) + - out_size (tuple[int]): Spatial shape of x, arrange as + (Merged_H, Merged_W). + """ + B, L, C = x.shape + assert isinstance(input_size, Sequence), f'Expect ' \ + f'input_size is ' \ + f'`Sequence` ' \ + f'but get {input_size}' + + H, W = input_size + assert L == H * W, 'input feature has wrong size' + + x = x.view(B, H, W, C).permute([0, 3, 1, 2]) # B, C, H, W + # Use nn.Unfold to merge patch. About 25% faster than original method, + # but need to modify pretrained model for compatibility + + if self.adap_padding: + x = self.adap_padding(x) + H, W = x.shape[-2:] + + x = self.sampler(x) + # if kernel_size=2 and stride=2, x should has shape (B, 4*C, H/2*W/2) + + out_h = (H + 2 * self.sampler.padding[0] - self.sampler.dilation[0] * + (self.sampler.kernel_size[0] - 1) - + 1) // self.sampler.stride[0] + 1 + out_w = (W + 2 * self.sampler.padding[1] - self.sampler.dilation[1] * + (self.sampler.kernel_size[1] - 1) - + 1) // self.sampler.stride[1] + 1 + + output_size = (out_h, out_w) + x = x.transpose(1, 2) # B, H/2*W/2, 4*C + x = self.norm(x) if self.norm else x + x = self.reduction(x) + return x, output_size diff --git a/tests/test_models/test_backbones/test_mit.py b/tests/test_models/test_backbones/test_mit.py index 86d98bf88b..536f2b3032 100644 --- a/tests/test_models/test_backbones/test_mit.py +++ b/tests/test_models/test_backbones/test_mit.py @@ -7,10 +7,6 @@ def test_mit(): - with pytest.raises(AssertionError): - # It's only support official style and mmcls style now. - MixVisionTransformer(pretrain_style='timm') - with pytest.raises(TypeError): # Pretrained represents pretrain url and must be str or None. MixVisionTransformer(pretrained=123) diff --git a/tests/test_models/test_backbones/test_swin.py b/tests/test_models/test_backbones/test_swin.py index edb2f833ed..0529d1e321 100644 --- a/tests/test_models/test_backbones/test_swin.py +++ b/tests/test_models/test_backbones/test_swin.py @@ -1,8 +1,26 @@ -# Copyright (c) OpenMMLab. All rights reserved. import pytest import torch -from mmseg.models.backbones import SwinTransformer +from mmseg.models.backbones.swin import SwinBlock, SwinTransformer + + +def test_swin_block(): + # test SwinBlock structure and forward + block = SwinBlock(embed_dims=64, num_heads=4, feedforward_channels=256) + assert block.ffn.embed_dims == 64 + assert block.attn.w_msa.num_heads == 4 + assert block.ffn.feedforward_channels == 256 + x = torch.randn(1, 56 * 56, 64) + x_out = block(x, (56, 56)) + assert x_out.shape == torch.Size([1, 56 * 56, 64]) + + # Test BasicBlock with checkpoint forward + block = SwinBlock( + embed_dims=64, num_heads=4, feedforward_channels=256, with_cp=True) + assert block.with_cp + x = torch.randn(1, 56 * 56, 64) + x_out = block(x, (56, 56)) + assert x_out.shape == torch.Size([1, 56 * 56, 64]) def test_swin_transformer(): @@ -10,12 +28,16 @@ def test_swin_transformer(): with pytest.raises(TypeError): # Pretrained arg must be str or None. - model = SwinTransformer(pretrained=123) + SwinTransformer(pretrained=123) with pytest.raises(AssertionError): - # Because swin use non-overlapping patch embed, so the stride of patch + # Because swin uses non-overlapping patch embed, so the stride of patch # embed must be equal to patch size. - model = SwinTransformer(strides=(2, 2, 2, 2), patch_size=4) + SwinTransformer(strides=(2, 2, 2, 2), patch_size=4) + + # test pretrained image size + with pytest.raises(AssertionError): + SwinTransformer(pretrain_img_size=(224, 224, 224)) # Test absolute position embedding temp = torch.randn((1, 3, 224, 224)) @@ -27,12 +49,6 @@ def test_swin_transformer(): model = SwinTransformer(patch_norm=False) model(temp) - # Test pretrain img size - model = SwinTransformer(pretrain_img_size=(224, )) - - with pytest.raises(AssertionError): - model = SwinTransformer(pretrain_img_size=(224, 224, 224)) - # Test normal inference temp = torch.randn((1, 3, 512, 512)) model = SwinTransformer() @@ -42,7 +58,7 @@ def test_swin_transformer(): assert outs[2].shape == (1, 384, 32, 32) assert outs[3].shape == (1, 768, 16, 16) - # Test abnormal inference + # Test abnormal inference size temp = torch.randn((1, 3, 511, 511)) model = SwinTransformer() outs = model(temp) @@ -51,7 +67,7 @@ def test_swin_transformer(): assert outs[2].shape == (1, 384, 32, 32) assert outs[3].shape == (1, 768, 16, 16) - # Test abnormal inference + # Test abnormal inference size temp = torch.randn((1, 3, 112, 137)) model = SwinTransformer() outs = model(temp) @@ -59,3 +75,25 @@ def test_swin_transformer(): assert outs[1].shape == (1, 192, 14, 18) assert outs[2].shape == (1, 384, 7, 9) assert outs[3].shape == (1, 768, 4, 5) + + # Test frozen + model = SwinTransformer(frozen_stages=4) + model.train() + for p in model.parameters(): + assert not p.requires_grad + + # Test absolute position embedding frozen + model = SwinTransformer(frozen_stages=4, use_abs_pos_embed=True) + model.train() + for p in model.parameters(): + assert not p.requires_grad + + # Test Swin with checkpoint forward + temp = torch.randn((1, 3, 224, 224)) + model = SwinTransformer(with_cp=True) + for m in model.modules(): + if isinstance(m, SwinBlock): + assert m.with_cp + model.init_weights() + model.train() + model(temp) diff --git a/tests/test_models/test_backbones/test_vit.py b/tests/test_models/test_backbones/test_vit.py index c9afe075b9..5dbb51e64a 100644 --- a/tests/test_models/test_backbones/test_vit.py +++ b/tests/test_models/test_backbones/test_vit.py @@ -25,12 +25,6 @@ def test_vit_backbone(): x = torch.randn(1, 196) VisionTransformer.resize_pos_embed(x, 512, 512, 224, 224, 'bilinear') - with pytest.raises(IndexError): - # forward inputs must be [N, C, H, W] - x = torch.randn(3, 30, 30) - model = VisionTransformer() - model(x) - with pytest.raises(AssertionError): # The length of img_size tuple must be lower than 3. VisionTransformer(img_size=(224, 224, 224)) diff --git a/tests/test_models/test_utils/__init__.py b/tests/test_models/test_utils/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/test_models/test_utils/test_embed.py b/tests/test_models/test_utils/test_embed.py new file mode 100644 index 0000000000..2c6857dc72 --- /dev/null +++ b/tests/test_models/test_utils/test_embed.py @@ -0,0 +1,461 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import pytest +import torch + +from mmseg.models.utils.embed import AdaptivePadding, PatchEmbed, PatchMerging + + +def test_adaptive_padding(): + + for padding in ('same', 'corner'): + kernel_size = 16 + stride = 16 + dilation = 1 + input = torch.rand(1, 1, 15, 17) + adap_pool = AdaptivePadding( + kernel_size=kernel_size, + stride=stride, + dilation=dilation, + padding=padding) + out = adap_pool(input) + # padding to divisible by 16 + assert (out.shape[2], out.shape[3]) == (16, 32) + input = torch.rand(1, 1, 16, 17) + out = adap_pool(input) + # padding to divisible by 16 + assert (out.shape[2], out.shape[3]) == (16, 32) + + kernel_size = (2, 2) + stride = (2, 2) + dilation = (1, 1) + + adap_pad = AdaptivePadding( + kernel_size=kernel_size, + stride=stride, + dilation=dilation, + padding=padding) + input = torch.rand(1, 1, 11, 13) + out = adap_pad(input) + # padding to divisible by 2 + assert (out.shape[2], out.shape[3]) == (12, 14) + + kernel_size = (2, 2) + stride = (10, 10) + dilation = (1, 1) + + adap_pad = AdaptivePadding( + kernel_size=kernel_size, + stride=stride, + dilation=dilation, + padding=padding) + input = torch.rand(1, 1, 10, 13) + out = adap_pad(input) + # no padding + assert (out.shape[2], out.shape[3]) == (10, 13) + + kernel_size = (11, 11) + adap_pad = AdaptivePadding( + kernel_size=kernel_size, + stride=stride, + dilation=dilation, + padding=padding) + input = torch.rand(1, 1, 11, 13) + out = adap_pad(input) + # all padding + assert (out.shape[2], out.shape[3]) == (21, 21) + + # test padding as kernel is (7,9) + input = torch.rand(1, 1, 11, 13) + stride = (3, 4) + kernel_size = (4, 5) + dilation = (2, 2) + # actually (7, 9) + adap_pad = AdaptivePadding( + kernel_size=kernel_size, + stride=stride, + dilation=dilation, + padding=padding) + dilation_out = adap_pad(input) + assert (dilation_out.shape[2], dilation_out.shape[3]) == (16, 21) + kernel_size = (7, 9) + dilation = (1, 1) + adap_pad = AdaptivePadding( + kernel_size=kernel_size, + stride=stride, + dilation=dilation, + padding=padding) + kernel79_out = adap_pad(input) + assert (kernel79_out.shape[2], kernel79_out.shape[3]) == (16, 21) + assert kernel79_out.shape == dilation_out.shape + + # assert only support "same" "corner" + with pytest.raises(AssertionError): + AdaptivePadding( + kernel_size=kernel_size, + stride=stride, + dilation=dilation, + padding=1) + + +def test_patch_embed(): + B = 2 + H = 3 + W = 4 + C = 3 + embed_dims = 10 + kernel_size = 3 + stride = 1 + dummy_input = torch.rand(B, C, H, W) + patch_merge_1 = PatchEmbed( + in_channels=C, + embed_dims=embed_dims, + kernel_size=kernel_size, + stride=stride, + padding=0, + dilation=1, + norm_cfg=None) + + x1, shape = patch_merge_1(dummy_input) + # test out shape + assert x1.shape == (2, 2, 10) + # test outsize is correct + assert shape == (1, 2) + # test L = out_h * out_w + assert shape[0] * shape[1] == x1.shape[1] + + B = 2 + H = 10 + W = 10 + C = 3 + embed_dims = 10 + kernel_size = 5 + stride = 2 + dummy_input = torch.rand(B, C, H, W) + # test dilation + patch_merge_2 = PatchEmbed( + in_channels=C, + embed_dims=embed_dims, + kernel_size=kernel_size, + stride=stride, + padding=0, + dilation=2, + norm_cfg=None, + ) + + x2, shape = patch_merge_2(dummy_input) + # test out shape + assert x2.shape == (2, 1, 10) + # test outsize is correct + assert shape == (1, 1) + # test L = out_h * out_w + assert shape[0] * shape[1] == x2.shape[1] + + stride = 2 + input_size = (10, 10) + + dummy_input = torch.rand(B, C, H, W) + # test stride and norm + patch_merge_3 = PatchEmbed( + in_channels=C, + embed_dims=embed_dims, + kernel_size=kernel_size, + stride=stride, + padding=0, + dilation=2, + norm_cfg=dict(type='LN'), + input_size=input_size) + + x3, shape = patch_merge_3(dummy_input) + # test out shape + assert x3.shape == (2, 1, 10) + # test outsize is correct + assert shape == (1, 1) + # test L = out_h * out_w + assert shape[0] * shape[1] == x3.shape[1] + + # test thte init_out_size with nn.Unfold + assert patch_merge_3.init_out_size[1] == (input_size[0] - 2 * 4 - + 1) // 2 + 1 + assert patch_merge_3.init_out_size[0] == (input_size[0] - 2 * 4 - + 1) // 2 + 1 + H = 11 + W = 12 + input_size = (H, W) + dummy_input = torch.rand(B, C, H, W) + # test stride and norm + patch_merge_3 = PatchEmbed( + in_channels=C, + embed_dims=embed_dims, + kernel_size=kernel_size, + stride=stride, + padding=0, + dilation=2, + norm_cfg=dict(type='LN'), + input_size=input_size) + + _, shape = patch_merge_3(dummy_input) + # when input_size equal to real input + # the out_size shoule be equal to `init_out_size` + assert shape == patch_merge_3.init_out_size + + input_size = (H, W) + dummy_input = torch.rand(B, C, H, W) + # test stride and norm + patch_merge_3 = PatchEmbed( + in_channels=C, + embed_dims=embed_dims, + kernel_size=kernel_size, + stride=stride, + padding=0, + dilation=2, + norm_cfg=dict(type='LN'), + input_size=input_size) + + _, shape = patch_merge_3(dummy_input) + # when input_size equal to real input + # the out_size shoule be equal to `init_out_size` + assert shape == patch_merge_3.init_out_size + + # test adap padding + for padding in ('same', 'corner'): + in_c = 2 + embed_dims = 3 + B = 2 + + # test stride is 1 + input_size = (5, 5) + kernel_size = (5, 5) + stride = (1, 1) + dilation = 1 + bias = False + + x = torch.rand(B, in_c, *input_size) + patch_embed = PatchEmbed( + in_channels=in_c, + embed_dims=embed_dims, + kernel_size=kernel_size, + stride=stride, + padding=padding, + dilation=dilation, + bias=bias) + + x_out, out_size = patch_embed(x) + assert x_out.size() == (B, 25, 3) + assert out_size == (5, 5) + assert x_out.size(1) == out_size[0] * out_size[1] + + # test kernel_size == stride + input_size = (5, 5) + kernel_size = (5, 5) + stride = (5, 5) + dilation = 1 + bias = False + + x = torch.rand(B, in_c, *input_size) + patch_embed = PatchEmbed( + in_channels=in_c, + embed_dims=embed_dims, + kernel_size=kernel_size, + stride=stride, + padding=padding, + dilation=dilation, + bias=bias) + + x_out, out_size = patch_embed(x) + assert x_out.size() == (B, 1, 3) + assert out_size == (1, 1) + assert x_out.size(1) == out_size[0] * out_size[1] + + # test kernel_size == stride + input_size = (6, 5) + kernel_size = (5, 5) + stride = (5, 5) + dilation = 1 + bias = False + + x = torch.rand(B, in_c, *input_size) + patch_embed = PatchEmbed( + in_channels=in_c, + embed_dims=embed_dims, + kernel_size=kernel_size, + stride=stride, + padding=padding, + dilation=dilation, + bias=bias) + + x_out, out_size = patch_embed(x) + assert x_out.size() == (B, 2, 3) + assert out_size == (2, 1) + assert x_out.size(1) == out_size[0] * out_size[1] + + # test different kernel_size with diffrent stride + input_size = (6, 5) + kernel_size = (6, 2) + stride = (6, 2) + dilation = 1 + bias = False + + x = torch.rand(B, in_c, *input_size) + patch_embed = PatchEmbed( + in_channels=in_c, + embed_dims=embed_dims, + kernel_size=kernel_size, + stride=stride, + padding=padding, + dilation=dilation, + bias=bias) + + x_out, out_size = patch_embed(x) + assert x_out.size() == (B, 3, 3) + assert out_size == (1, 3) + assert x_out.size(1) == out_size[0] * out_size[1] + + +def test_patch_merging(): + + # Test the model with int padding + in_c = 3 + out_c = 4 + kernel_size = 3 + stride = 3 + padding = 1 + dilation = 1 + bias = False + # test the case `pad_to_stride` is False + patch_merge = PatchMerging( + in_channels=in_c, + out_channels=out_c, + kernel_size=kernel_size, + stride=stride, + padding=padding, + dilation=dilation, + bias=bias) + B, L, C = 1, 100, 3 + input_size = (10, 10) + x = torch.rand(B, L, C) + x_out, out_size = patch_merge(x, input_size) + assert x_out.size() == (1, 16, 4) + assert out_size == (4, 4) + # assert out size is consistent with real output + assert x_out.size(1) == out_size[0] * out_size[1] + in_c = 4 + out_c = 5 + kernel_size = 6 + stride = 3 + padding = 2 + dilation = 2 + bias = False + patch_merge = PatchMerging( + in_channels=in_c, + out_channels=out_c, + kernel_size=kernel_size, + stride=stride, + padding=padding, + dilation=dilation, + bias=bias) + B, L, C = 1, 100, 4 + input_size = (10, 10) + x = torch.rand(B, L, C) + x_out, out_size = patch_merge(x, input_size) + assert x_out.size() == (1, 4, 5) + assert out_size == (2, 2) + # assert out size is consistent with real output + assert x_out.size(1) == out_size[0] * out_size[1] + + # Test with adaptive padding + for padding in ('same', 'corner'): + in_c = 2 + out_c = 3 + B = 2 + + # test stride is 1 + input_size = (5, 5) + kernel_size = (5, 5) + stride = (1, 1) + dilation = 1 + bias = False + L = input_size[0] * input_size[1] + + x = torch.rand(B, L, in_c) + patch_merge = PatchMerging( + in_channels=in_c, + out_channels=out_c, + kernel_size=kernel_size, + stride=stride, + padding=padding, + dilation=dilation, + bias=bias) + + x_out, out_size = patch_merge(x, input_size) + assert x_out.size() == (B, 25, 3) + assert out_size == (5, 5) + assert x_out.size(1) == out_size[0] * out_size[1] + + # test kernel_size == stride + input_size = (5, 5) + kernel_size = (5, 5) + stride = (5, 5) + dilation = 1 + bias = False + L = input_size[0] * input_size[1] + + x = torch.rand(B, L, in_c) + patch_merge = PatchMerging( + in_channels=in_c, + out_channels=out_c, + kernel_size=kernel_size, + stride=stride, + padding=padding, + dilation=dilation, + bias=bias) + + x_out, out_size = patch_merge(x, input_size) + assert x_out.size() == (B, 1, 3) + assert out_size == (1, 1) + assert x_out.size(1) == out_size[0] * out_size[1] + + # test kernel_size == stride + input_size = (6, 5) + kernel_size = (5, 5) + stride = (5, 5) + dilation = 1 + bias = False + L = input_size[0] * input_size[1] + + x = torch.rand(B, L, in_c) + patch_merge = PatchMerging( + in_channels=in_c, + out_channels=out_c, + kernel_size=kernel_size, + stride=stride, + padding=padding, + dilation=dilation, + bias=bias) + + x_out, out_size = patch_merge(x, input_size) + assert x_out.size() == (B, 2, 3) + assert out_size == (2, 1) + assert x_out.size(1) == out_size[0] * out_size[1] + + # test different kernel_size with diffrent stride + input_size = (6, 5) + kernel_size = (6, 2) + stride = (6, 2) + dilation = 1 + bias = False + L = input_size[0] * input_size[1] + + x = torch.rand(B, L, in_c) + patch_merge = PatchMerging( + in_channels=in_c, + out_channels=out_c, + kernel_size=kernel_size, + stride=stride, + padding=padding, + dilation=dilation, + bias=bias) + + x_out, out_size = patch_merge(x, input_size) + assert x_out.size() == (B, 3, 3) + assert out_size == (1, 3) + assert x_out.size(1) == out_size[0] * out_size[1] From 0cf56d48a4639060859219ee7da58de7b710c7ec Mon Sep 17 00:00:00 2001 From: MengzhangLI Date: Thu, 30 Sep 2021 22:19:23 +0800 Subject: [PATCH 251/706] change name to EncNet (#929) --- configs/encnet/README.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/configs/encnet/README.md b/configs/encnet/README.md index 26b63dccd3..e308fbcaa8 100644 --- a/configs/encnet/README.md +++ b/configs/encnet/README.md @@ -29,20 +29,20 @@ year = {2018} | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | | ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| encnet | R-50-D8 | 512x1024 | 40000 | 8.6 | 4.58 | 75.67 | 77.08 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r50-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_40k_cityscapes/encnet_r50-d8_512x1024_40k_cityscapes_20200621_220958-68638a47.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_40k_cityscapes/encnet_r50-d8_512x1024_40k_cityscapes-20200621_220958.log.json) | -| encnet | R-101-D8 | 512x1024 | 40000 | 12.1 | 2.66 | 75.81 | 77.21 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r101-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_40k_cityscapes/encnet_r101-d8_512x1024_40k_cityscapes_20200621_220933-35e0a3e8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_40k_cityscapes/encnet_r101-d8_512x1024_40k_cityscapes-20200621_220933.log.json) | -| encnet | R-50-D8 | 769x769 | 40000 | 9.8 | 1.82 | 76.24 | 77.85 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r50-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_40k_cityscapes/encnet_r50-d8_769x769_40k_cityscapes_20200621_220958-3bcd2884.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_40k_cityscapes/encnet_r50-d8_769x769_40k_cityscapes-20200621_220958.log.json) | -| encnet | R-101-D8 | 769x769 | 40000 | 13.7 | 1.26 | 74.25 | 76.25 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r101-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_40k_cityscapes/encnet_r101-d8_769x769_40k_cityscapes_20200621_220933-2fafed55.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_40k_cityscapes/encnet_r101-d8_769x769_40k_cityscapes-20200621_220933.log.json) | -| encnet | R-50-D8 | 512x1024 | 80000 | - | - | 77.94 | 79.13 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r50-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_80k_cityscapes/encnet_r50-d8_512x1024_80k_cityscapes_20200622_003554-fc5c5624.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_80k_cityscapes/encnet_r50-d8_512x1024_80k_cityscapes-20200622_003554.log.json) | -| encnet | R-101-D8 | 512x1024 | 80000 | - | - | 78.55 | 79.47 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r101-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_80k_cityscapes/encnet_r101-d8_512x1024_80k_cityscapes_20200622_003555-1de64bec.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_80k_cityscapes/encnet_r101-d8_512x1024_80k_cityscapes-20200622_003555.log.json) | -| encnet | R-50-D8 | 769x769 | 80000 | - | - | 77.44 | 78.72 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r50-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_80k_cityscapes/encnet_r50-d8_769x769_80k_cityscapes_20200622_003554-55096dcb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_80k_cityscapes/encnet_r50-d8_769x769_80k_cityscapes-20200622_003554.log.json) | -| encnet | R-101-D8 | 769x769 | 80000 | - | - | 76.10 | 76.97 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r101-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_80k_cityscapes/encnet_r101-d8_769x769_80k_cityscapes_20200622_003555-470ef79d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_80k_cityscapes/encnet_r101-d8_769x769_80k_cityscapes-20200622_003555.log.json) | +| EncNet | R-50-D8 | 512x1024 | 40000 | 8.6 | 4.58 | 75.67 | 77.08 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r50-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_40k_cityscapes/encnet_r50-d8_512x1024_40k_cityscapes_20200621_220958-68638a47.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_40k_cityscapes/encnet_r50-d8_512x1024_40k_cityscapes-20200621_220958.log.json) | +| EncNet | R-101-D8 | 512x1024 | 40000 | 12.1 | 2.66 | 75.81 | 77.21 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r101-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_40k_cityscapes/encnet_r101-d8_512x1024_40k_cityscapes_20200621_220933-35e0a3e8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_40k_cityscapes/encnet_r101-d8_512x1024_40k_cityscapes-20200621_220933.log.json) | +| EncNet | R-50-D8 | 769x769 | 40000 | 9.8 | 1.82 | 76.24 | 77.85 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r50-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_40k_cityscapes/encnet_r50-d8_769x769_40k_cityscapes_20200621_220958-3bcd2884.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_40k_cityscapes/encnet_r50-d8_769x769_40k_cityscapes-20200621_220958.log.json) | +| EncNet | R-101-D8 | 769x769 | 40000 | 13.7 | 1.26 | 74.25 | 76.25 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r101-d8_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_40k_cityscapes/encnet_r101-d8_769x769_40k_cityscapes_20200621_220933-2fafed55.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_40k_cityscapes/encnet_r101-d8_769x769_40k_cityscapes-20200621_220933.log.json) | +| EncNet | R-50-D8 | 512x1024 | 80000 | - | - | 77.94 | 79.13 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r50-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_80k_cityscapes/encnet_r50-d8_512x1024_80k_cityscapes_20200622_003554-fc5c5624.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_80k_cityscapes/encnet_r50-d8_512x1024_80k_cityscapes-20200622_003554.log.json) | +| EncNet | R-101-D8 | 512x1024 | 80000 | - | - | 78.55 | 79.47 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r101-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_80k_cityscapes/encnet_r101-d8_512x1024_80k_cityscapes_20200622_003555-1de64bec.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_80k_cityscapes/encnet_r101-d8_512x1024_80k_cityscapes-20200622_003555.log.json) | +| EncNet | R-50-D8 | 769x769 | 80000 | - | - | 77.44 | 78.72 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r50-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_80k_cityscapes/encnet_r50-d8_769x769_80k_cityscapes_20200622_003554-55096dcb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_80k_cityscapes/encnet_r50-d8_769x769_80k_cityscapes-20200622_003554.log.json) | +| EncNet | R-101-D8 | 769x769 | 80000 | - | - | 76.10 | 76.97 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r101-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_80k_cityscapes/encnet_r101-d8_769x769_80k_cityscapes_20200622_003555-470ef79d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_80k_cityscapes/encnet_r101-d8_769x769_80k_cityscapes-20200622_003555.log.json) | ### ADE20K | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | | ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ----------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| encnet | R-50-D8 | 512x512 | 80000 | 10.1 | 22.81 | 39.53 | 41.17 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r50-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_80k_ade20k/encnet_r50-d8_512x512_80k_ade20k_20200622_042412-44b46b04.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_80k_ade20k/encnet_r50-d8_512x512_80k_ade20k-20200622_042412.log.json) | -| encnet | R-101-D8 | 512x512 | 80000 | 13.6 | 14.87 | 42.11 | 43.61 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r101-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_80k_ade20k/encnet_r101-d8_512x512_80k_ade20k_20200622_101128-dd35e237.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_80k_ade20k/encnet_r101-d8_512x512_80k_ade20k-20200622_101128.log.json) | -| encnet | R-50-D8 | 512x512 | 160000 | - | - | 40.10 | 41.71 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r50-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_160k_ade20k/encnet_r50-d8_512x512_160k_ade20k_20200622_101059-b2db95e0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_160k_ade20k/encnet_r50-d8_512x512_160k_ade20k-20200622_101059.log.json) | -| encnet | R-101-D8 | 512x512 | 160000 | - | - | 42.61 | 44.01 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r101-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_160k_ade20k/encnet_r101-d8_512x512_160k_ade20k_20200622_073348-7989641f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_160k_ade20k/encnet_r101-d8_512x512_160k_ade20k-20200622_073348.log.json) | +| EncNet | R-50-D8 | 512x512 | 80000 | 10.1 | 22.81 | 39.53 | 41.17 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r50-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_80k_ade20k/encnet_r50-d8_512x512_80k_ade20k_20200622_042412-44b46b04.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_80k_ade20k/encnet_r50-d8_512x512_80k_ade20k-20200622_042412.log.json) | +| EncNet | R-101-D8 | 512x512 | 80000 | 13.6 | 14.87 | 42.11 | 43.61 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r101-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_80k_ade20k/encnet_r101-d8_512x512_80k_ade20k_20200622_101128-dd35e237.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_80k_ade20k/encnet_r101-d8_512x512_80k_ade20k-20200622_101128.log.json) | +| EncNet | R-50-D8 | 512x512 | 160000 | - | - | 40.10 | 41.71 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r50-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_160k_ade20k/encnet_r50-d8_512x512_160k_ade20k_20200622_101059-b2db95e0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_160k_ade20k/encnet_r50-d8_512x512_160k_ade20k-20200622_101059.log.json) | +| EncNet | R-101-D8 | 512x512 | 160000 | - | - | 42.61 | 44.01 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet/encnet_r101-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_160k_ade20k/encnet_r101-d8_512x512_160k_ade20k_20200622_073348-7989641f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_160k_ade20k/encnet_r101-d8_512x512_160k_ade20k-20200622_073348.log.json) | From 84edf6c19029d5576e83929b9085172f85638696 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Thu, 30 Sep 2021 22:50:44 +0800 Subject: [PATCH 252/706] fix load ckpt bug in swin (#928) --- mmseg/models/backbones/swin.py | 4 +++- tools/train.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/mmseg/models/backbones/swin.py b/mmseg/models/backbones/swin.py index 9133d8ce42..59f4616c32 100644 --- a/mmseg/models/backbones/swin.py +++ b/mmseg/models/backbones/swin.py @@ -680,7 +680,7 @@ def init_weights(self): f'`init_cfg` in ' \ f'{self.__class__.__name__} ' ckpt = _load_checkpoint( - self.init_cfg.checkpoint, logger=logger, map_location='cpu') + self.init_cfg['checkpoint'], logger=logger, map_location='cpu') if 'state_dict' in ckpt: _state_dict = ckpt['state_dict'] elif 'model' in ckpt: @@ -692,6 +692,8 @@ def init_weights(self): for k, v in _state_dict.items(): if k.startswith('backbone.'): state_dict[k[9:]] = v + else: + state_dict[k] = v # strip prefix of state_dict if list(state_dict.keys())[0].startswith('module.'): diff --git a/tools/train.py b/tools/train.py index 05bd205ccb..208ca5ee16 100644 --- a/tools/train.py +++ b/tools/train.py @@ -96,7 +96,7 @@ def main(): else: distributed = True init_dist(args.launcher, **cfg.dist_params) - # gpu_ids is used to calculate iter when resuming checkpoint, + # gpu_ids is used to calculate iter when resuming checkpoint _, world_size = get_dist_info() cfg.gpu_ids = range(world_size) From 7db1cbb1818e8e79e248bbf98df6c8d020850528 Mon Sep 17 00:00:00 2001 From: MengzhangLI Date: Fri, 1 Oct 2021 00:31:57 +0800 Subject: [PATCH 253/706] [Feature] Support ICNet (#884) * add icnet backbone * add icnet head * add icnet configs * nclass -> num_classes * Support ICNet * ICNet * ICNet * Add ICNeck * Add ICNeck * Add ICNeck * Add ICNeck * Adding unittest * Uploading models & logs * Uploading models & logs * add comment * smaller test_swin.py * try to delete test_swin.py * delete test_unet.py * delete test_unet.py * temp * smaller test_unet.py Co-authored-by: Junjun2016 --- README.md | 1 + README_zh-CN.md | 1 + configs/_base_/datasets/cityscapes_832x832.py | 35 +++ configs/_base_/models/icnet_r50-d8.py | 74 +++++++ configs/bisenetv1/README.md | 2 +- configs/bisenetv1/bisenetv1.yml | 2 +- configs/icnet/README.md | 45 ++++ configs/icnet/icnet.yml | 207 ++++++++++++++++++ .../icnet_r101-d8_832x832_160k_cityscapes.py | 2 + .../icnet_r101-d8_832x832_80k_cityscapes.py | 2 + ...101-d8_in1k-pre_832x832_160k_cityscapes.py | 7 + ...r101-d8_in1k-pre_832x832_80k_cityscapes.py | 7 + .../icnet_r18-d8_832x832_160k_cityscapes.py | 3 + .../icnet_r18-d8_832x832_80k_cityscapes.py | 3 + ...r18-d8_in1k-pre_832x832_160k_cityscapes.py | 8 + ..._r18-d8_in1k-pre_832x832_80k_cityscapes.py | 8 + .../icnet_r50-d8_832x832_160k_cityscapes.py | 5 + .../icnet_r50-d8_832x832_80k_cityscapes.py | 5 + ...r50-d8_in1k-pre_832x832_160k_cityscapes.py | 6 + ..._r50-d8_in1k-pre_832x832_80k_cityscapes.py | 6 + mmseg/models/backbones/__init__.py | 3 +- mmseg/models/backbones/icnet.py | 165 ++++++++++++++ mmseg/models/necks/__init__.py | 3 +- mmseg/models/necks/ic_neck.py | 147 +++++++++++++ model-index.yml | 1 + .../test_models/test_backbones/test_icnet.py | 48 ++++ tests/test_models/test_backbones/test_swin.py | 22 +- tests/test_models/test_backbones/test_unet.py | 194 ++++++++-------- tests/test_models/test_necks/test_ic_neck.py | 53 +++++ tools/benchmark_new.py | 0 30 files changed, 953 insertions(+), 112 deletions(-) create mode 100644 configs/_base_/datasets/cityscapes_832x832.py create mode 100644 configs/_base_/models/icnet_r50-d8.py create mode 100644 configs/icnet/README.md create mode 100644 configs/icnet/icnet.yml create mode 100644 configs/icnet/icnet_r101-d8_832x832_160k_cityscapes.py create mode 100644 configs/icnet/icnet_r101-d8_832x832_80k_cityscapes.py create mode 100644 configs/icnet/icnet_r101-d8_in1k-pre_832x832_160k_cityscapes.py create mode 100644 configs/icnet/icnet_r101-d8_in1k-pre_832x832_80k_cityscapes.py create mode 100644 configs/icnet/icnet_r18-d8_832x832_160k_cityscapes.py create mode 100644 configs/icnet/icnet_r18-d8_832x832_80k_cityscapes.py create mode 100644 configs/icnet/icnet_r18-d8_in1k-pre_832x832_160k_cityscapes.py create mode 100644 configs/icnet/icnet_r18-d8_in1k-pre_832x832_80k_cityscapes.py create mode 100644 configs/icnet/icnet_r50-d8_832x832_160k_cityscapes.py create mode 100644 configs/icnet/icnet_r50-d8_832x832_80k_cityscapes.py create mode 100644 configs/icnet/icnet_r50-d8_in1k-pre_832x832_160k_cityscapes.py create mode 100644 configs/icnet/icnet_r50-d8_in1k-pre_832x832_80k_cityscapes.py create mode 100644 mmseg/models/backbones/icnet.py create mode 100644 mmseg/models/necks/ic_neck.py create mode 100644 tests/test_models/test_backbones/test_icnet.py create mode 100644 tests/test_models/test_necks/test_ic_neck.py create mode 100644 tools/benchmark_new.py diff --git a/README.md b/README.md index 2443171c86..7389577fe1 100644 --- a/README.md +++ b/README.md @@ -79,6 +79,7 @@ Supported methods: - [x] [PSANet (ECCV'2018)](configs/psanet) - [x] [DeepLabV3+ (CVPR'2018)](configs/deeplabv3plus) - [x] [UPerNet (ECCV'2018)](configs/upernet) +- [x] [ICNet (ECCV'2018)](configs/icnet) - [x] [NonLocal Net (CVPR'2018)](configs/nonlocal_net) - [x] [EncNet (CVPR'2018)](configs/encnet) - [x] [Semantic FPN (CVPR'2019)](configs/sem_fpn) diff --git a/README_zh-CN.md b/README_zh-CN.md index ac90eefeef..2622ed0f79 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -78,6 +78,7 @@ MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 O - [x] [PSANet (ECCV'2018)](configs/psanet) - [x] [DeepLabV3+ (CVPR'2018)](configs/deeplabv3plus) - [x] [UPerNet (ECCV'2018)](configs/upernet) +- [x] [ICNet (ECCV'2018)](configs/icnet) - [x] [NonLocal Net (CVPR'2018)](configs/nonlocal_net) - [x] [EncNet (CVPR'2018)](configs/encnet) - [x] [Semantic FPN (CVPR'2019)](configs/sem_fpn) diff --git a/configs/_base_/datasets/cityscapes_832x832.py b/configs/_base_/datasets/cityscapes_832x832.py new file mode 100644 index 0000000000..b9325cc008 --- /dev/null +++ b/configs/_base_/datasets/cityscapes_832x832.py @@ -0,0 +1,35 @@ +_base_ = './cityscapes.py' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) +crop_size = (832, 832) +train_pipeline = [ + dict(type='LoadImageFromFile'), + dict(type='LoadAnnotations'), + dict(type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)), + dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='RandomFlip', prob=0.5), + dict(type='PhotoMetricDistortion'), + dict(type='Normalize', **img_norm_cfg), + dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255), + dict(type='DefaultFormatBundle'), + dict(type='Collect', keys=['img', 'gt_semantic_seg']), +] +test_pipeline = [ + dict(type='LoadImageFromFile'), + dict( + type='MultiScaleFlipAug', + img_scale=(2048, 1024), + # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75], + flip=False, + transforms=[ + dict(type='Resize', keep_ratio=True), + dict(type='RandomFlip'), + dict(type='Normalize', **img_norm_cfg), + dict(type='ImageToTensor', keys=['img']), + dict(type='Collect', keys=['img']), + ]) +] +data = dict( + train=dict(pipeline=train_pipeline), + val=dict(pipeline=test_pipeline), + test=dict(pipeline=test_pipeline)) diff --git a/configs/_base_/models/icnet_r50-d8.py b/configs/_base_/models/icnet_r50-d8.py new file mode 100644 index 0000000000..d7273cd28e --- /dev/null +++ b/configs/_base_/models/icnet_r50-d8.py @@ -0,0 +1,74 @@ +# model settings +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + type='EncoderDecoder', + backbone=dict( + type='ICNet', + backbone_cfg=dict( + type='ResNetV1c', + in_channels=3, + depth=50, + num_stages=4, + out_indices=(0, 1, 2, 3), + dilations=(1, 1, 2, 4), + strides=(1, 2, 1, 1), + norm_cfg=norm_cfg, + norm_eval=False, + style='pytorch', + contract_dilation=True), + in_channels=3, + layer_channels=(512, 2048), + light_branch_middle_channels=32, + psp_out_channels=512, + out_channels=(64, 256, 256), + norm_cfg=norm_cfg, + align_corners=False, + ), + neck=dict( + type='ICNeck', + in_channels=(64, 256, 256), + out_channels=128, + norm_cfg=norm_cfg, + align_corners=False), + decode_head=dict( + type='FCNHead', + in_channels=128, + channels=128, + num_convs=1, + in_index=2, + dropout_ratio=0, + num_classes=19, + norm_cfg=norm_cfg, + concat_input=False, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + auxiliary_head=[ + dict( + type='FCNHead', + in_channels=128, + channels=128, + num_convs=1, + num_classes=19, + in_index=0, + norm_cfg=norm_cfg, + concat_input=False, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + dict( + type='FCNHead', + in_channels=128, + channels=128, + num_convs=1, + num_classes=19, + in_index=1, + norm_cfg=norm_cfg, + concat_input=False, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + ], + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/bisenetv1/README.md b/configs/bisenetv1/README.md index 344781068a..dd5bd503b2 100644 --- a/configs/bisenetv1/README.md +++ b/configs/bisenetv1/README.md @@ -32,7 +32,7 @@ | BiSeNetV1 (No Pretrain) | R-18-D32 | 1024x1024 | 160000 | 5.69 | 31.77 | 74.44 | 77.05 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/bisenetv1/bisenetv1_r18-d32_4x4_1024x1024_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r18-d32_4x4_1024x1024_160k_cityscapes/bisenetv1_r18-d32_4x4_1024x1024_160k_cityscapes_20210922_172239-c55e78e2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r18-d32_4x4_1024x1024_160k_cityscapes/bisenetv1_r18-d32_4x4_1024x1024_160k_cityscapes_20210922_172239.log.json) | | BiSeNetV1| R-18-D32 | 1024x1024 | 160000 | 5.69 | 31.77 | 74.37 | 76.91 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/bisenetv1/bisenetv1_r18-d32_in1k-pre_4x4_1024x1024_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r18-d32_in1k-pre_4x4_1024x1024_160k_cityscapes/bisenetv1_r18-d32_in1k-pre_4x4_1024x1024_160k_cityscapes_20210905_220251-8ba80eff.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r18-d32_in1k-pre_4x4_1024x1024_160k_cityscapes/bisenetv1_r18-d32_in1k-pre_4x4_1024x1024_160k_cityscapes_20210905_220251.log.json) | | BiSeNetV1 (4x8) | R-18-D32 | 1024x1024 | 160000 | 11.17 | 31.77 | 75.16 | 77.24 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/bisenetv1/bisenetv1_r18-d32_in1k-pre_4x8_1024x1024_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r18-d32_in1k-pre_4x8_1024x1024_160k_cityscapes/bisenetv1_r18-d32_in1k-pre_4x8_1024x1024_160k_cityscapes_20210905_220322-bb8db75f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r18-d32_in1k-pre_4x8_1024x1024_160k_cityscapes/bisenetv1_r18-d32_in1k-pre_4x8_1024x1024_160k_cityscapes_20210905_220322.log.json) | -| BiSeNetV1 (No Pretrain) | R-50-D32 | 1024x1024 | 160000 | 3.3 | 7.71 | 76.92 | 78.87 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/bisenetv1/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes_20210923_222639-7b28a2a6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes_20210923_222639.log.json) | +| BiSeNetV1 (No Pretrain) | R-50-D32 | 1024x1024 | 160000 | 15.39 | 7.71 | 76.92 | 78.87 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/bisenetv1/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes_20210923_222639-7b28a2a6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes_20210923_222639.log.json) | | BiSeNetV1 | R-50-D32 | 1024x1024 | 160000 | 15.39 | 7.71 | 77.68 | 79.57 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/bisenetv1/bisenetv1_r50-d32_in1k-pre_4x4_1024x1024_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r50-d32_in1k-pre_4x4_1024x1024_160k_cityscapes/bisenetv1_r50-d32_in1k-pre_4x4_1024x1024_160k_cityscapes_20210917_234628-8b304447.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r50-d32_in1k-pre_4x4_1024x1024_160k_cityscapes/bisenetv1_r50-d32_in1k-pre_4x4_1024x1024_160k_cityscapes_20210917_234628.log.json) | Note: diff --git a/configs/bisenetv1/bisenetv1.yml b/configs/bisenetv1/bisenetv1.yml index 6de872b863..8ea94df4bd 100644 --- a/configs/bisenetv1/bisenetv1.yml +++ b/configs/bisenetv1/bisenetv1.yml @@ -92,7 +92,7 @@ Models: batch size: 1 mode: FP32 resolution: (1024,1024) - memory (GB): 3.3 + memory (GB): 15.39 Results: - Task: Semantic Segmentation Dataset: Cityscapes diff --git a/configs/icnet/README.md b/configs/icnet/README.md new file mode 100644 index 0000000000..62d2040aa5 --- /dev/null +++ b/configs/icnet/README.md @@ -0,0 +1,45 @@ +# ICNet for Real-time Semantic Segmentation on High-resolution Images + +## Introduction + + + +Official Repo + +Code Snippet + +
+ICNet (ECCV'2018) + +```latext +@inproceedings{zhao2018icnet, + title={Icnet for real-time semantic segmentation on high-resolution images}, + author={Zhao, Hengshuang and Qi, Xiaojuan and Shen, Xiaoyong and Shi, Jianping and Jia, Jiaya}, + booktitle={Proceedings of the European conference on computer vision (ECCV)}, + pages={405--420}, + year={2018} +} +``` + +
+ +## Results and models + +### Cityscapes + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | ---------- | --------- | ------: | -------- | -------------- | ----: | ------------: | -------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ICNet | R-18-D8 | 832x832 | 80000 | 1.70 | 27.12 | 68.14 | 70.16 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/icnet/icnet_r18-d8_832x832_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r18-d8_832x832_80k_cityscapes/icnet_r18-d8_832x832_80k_cityscapes_20210925_225521-2e36638d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r18-d8_832x832_80k_cityscapes/icnet_r18-d8_832x832_80k_cityscapes_20210925_225521.log.json) | +| ICNet | R-18-D8 | 832x832 | 160000 | - | - | 71.64 | 74.18 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/icnet/icnet_r18-d8_832x832_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r18-d8_832x832_160k_cityscapes/icnet_r18-d8_832x832_160k_cityscapes_20210925_230153-2c6eb6e0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r18-d8_832x832_160k_cityscapes/icnet_r18-d8_832x832_160k_cityscapes_20210925_230153.log.json) | +| ICNet (in1k-pre) | R-18-D8 | 832x832 | 80000 | - | - | 72.51 | 74.78 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/icnet/icnet_r18-d8_in1k-pre_832x832_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r18-d8_in1k-pre_832x832_80k_cityscapes/icnet_r18-d8_in1k-pre_832x832_80k_cityscapes_20210925_230354-1cbe3022.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r18-d8_in1k-pre_832x832_80k_cityscapes/icnet_r18-d8_in1k-pre_832x832_80k_cityscapes_20210925_230354.log.json) | +| ICNet (in1k-pre) | R-18-D8 | 832x832 | 160000 | - | - | 74.43 | 76.72 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/icnet/icnet_r18-d8_in1k-pre_832x832_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r18-d8_in1k-pre_832x832_160k_cityscapes/icnet_r18-d8_in1k-pre_832x832_160k_cityscapes_20210926_052702-619c8ae1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r18-d8_in1k-pre_832x832_160k_cityscapes/icnet_r18-d8_in1k-pre_832x832_160k_cityscapes_20210926_052702.log.json) | +| ICNet | R-50-D8 | 832x832 | 80000 | 2.53 | 20.08 | 68.91 | 69.72 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/icnet/icnet_r50-d8_832x832_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r50-d8_832x832_80k_cityscapes/icnet_r50-d8_832x832_80k_cityscapes_20210926_044625-c6407341.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r50-d8_832x832_80k_cityscapes/icnet_r50-d8_832x832_80k_cityscapes_20210926_044625.log.json) | +| ICNet | R-50-D8 | 832x832 | 160000 | - | - | 73.82 | 75.67 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/icnet/icnet_r50-d8_832x832_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r50-d8_832x832_160k_cityscapes/icnet_r50-d8_832x832_160k_cityscapes_20210925_232612-a95f0d4e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r50-d8_832x832_160k_cityscapes/icnet_r50-d8_832x832_160k_cityscapes_20210925_232612.log.json) | +| ICNet (in1k-pre) | R-50-D8 | 832x832 | 80000 | - | - | 74.58 | 76.41 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/icnet/icnet_r50-d8_in1k-pre_832x832_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r50-d8_in1k-pre_832x832_80k_cityscapes/icnet_r50-d8_in1k-pre_832x832_80k_cityscapes_20210926_032943-1743dc7b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r50-d8_in1k-pre_832x832_80k_cityscapes/icnet_r50-d8_in1k-pre_832x832_80k_cityscapes_20210926_032943.log.json) | +| ICNet (in1k-pre) | R-50-D8 | 832x832 | 160000 | - | - | 76.29 | 78.09 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/icnet/icnet_r50-d8_in1k-pre_832x832_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r50-d8_in1k-pre_832x832_160k_cityscapes/icnet_r50-d8_in1k-pre_832x832_160k_cityscapes_20210926_042715-ce310aea.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r50-d8_in1k-pre_832x832_160k_cityscapes/icnet_r50-d8_in1k-pre_832x832_160k_cityscapes_20210926_042715.log.json) | +| ICNet | R-101-D8 | 832x832 | 80000 | 3.08 | 16.95 | 70.28 | 71.95 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/icnet/icnet_r101-d8_832x832_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r101-d8_832x832_80k_cityscapes/icnet_r101-d8_832x832_80k_cityscapes_20210926_072447-b52f936e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r101-d8_832x832_80k_cityscapes/icnet_r101-d8_832x832_80k_cityscapes_20210926_072447.log.json) | +| ICNet | R-101-D8 | 832x832 | 160000 | - | - | 73.80 | 76.10 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/icnet/icnet_r101-d8_832x832_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r101-d8_832x832_160k_cityscapes/icnet_r101-d8_832x832_160k_cityscapes_20210926_092350-3a1ebf1a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r101-d8_832x832_160k_cityscapes/icnet_r101-d8_832x832_160k_cityscapes_20210926_092350.log.json) | +| ICNet (in1k-pre) | R-101-D8 | 832x832 | 80000 | - | - | 75.57 | 77.86 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/icnet/icnet_r101-d8_in1k-pre_832x832_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r101-d8_in1k-pre_832x832_80k_cityscapes/icnet_r101-d8_in1k-pre_832x832_80k_cityscapes_20210926_020414-7ceb12c5.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r101-d8_in1k-pre_832x832_80k_cityscapes/icnet_r101-d8_in1k-pre_832x832_80k_cityscapes_20210926_020414.log.json) | +| ICNet (in1k-pre) | R-101-D8 | 832x832 | 160000 | - | - | 76.15 | 77.98 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/icnet/icnet_r101-d8_in1k-pre_832x832_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r101-d8_in1k-pre_832x832_160k_cityscapes/icnet_r101-d8_in1k-pre_832x832_160k_cityscapes_20210925_232612-9484ae8a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r101-d8_in1k-pre_832x832_160k_cityscapes/icnet_r101-d8_in1k-pre_832x832_160k_cityscapes_20210925_232612.log.json) | + +Note: `in1k-pre` means pretrained model is used. diff --git a/configs/icnet/icnet.yml b/configs/icnet/icnet.yml new file mode 100644 index 0000000000..9d50e91194 --- /dev/null +++ b/configs/icnet/icnet.yml @@ -0,0 +1,207 @@ +Collections: +- Name: icnet + Metadata: + Training Data: + - Cityscapes + Paper: + URL: https://arxiv.org/abs/1704.08545 + Title: ICNet for Real-time Semantic Segmentation on High-resolution Images + README: configs/icnet/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.18.0/mmseg/models/necks/ic_neck.py#L77 + Version: v0.18.0 + Converted From: + Code: https://github.com/hszhao/ICNet +Models: +- Name: icnet_r18-d8_832x832_80k_cityscapes + In Collection: icnet + Metadata: + backbone: R-18-D8 + crop size: (832,832) + lr schd: 80000 + inference time (ms/im): + - value: 36.87 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (832,832) + memory (GB): 1.7 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 68.14 + mIoU(ms+flip): 70.16 + Config: configs/icnet/icnet_r18-d8_832x832_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r18-d8_832x832_80k_cityscapes/icnet_r18-d8_832x832_80k_cityscapes_20210925_225521-2e36638d.pth +- Name: icnet_r18-d8_832x832_160k_cityscapes + In Collection: icnet + Metadata: + backbone: R-18-D8 + crop size: (832,832) + lr schd: 160000 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 71.64 + mIoU(ms+flip): 74.18 + Config: configs/icnet/icnet_r18-d8_832x832_160k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r18-d8_832x832_160k_cityscapes/icnet_r18-d8_832x832_160k_cityscapes_20210925_230153-2c6eb6e0.pth +- Name: icnet_r18-d8_in1k-pre_832x832_80k_cityscapes + In Collection: icnet + Metadata: + backbone: R-18-D8 + crop size: (832,832) + lr schd: 80000 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 72.51 + mIoU(ms+flip): 74.78 + Config: configs/icnet/icnet_r18-d8_in1k-pre_832x832_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r18-d8_in1k-pre_832x832_80k_cityscapes/icnet_r18-d8_in1k-pre_832x832_80k_cityscapes_20210925_230354-1cbe3022.pth +- Name: icnet_r18-d8_in1k-pre_832x832_160k_cityscapes + In Collection: icnet + Metadata: + backbone: R-18-D8 + crop size: (832,832) + lr schd: 160000 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 74.43 + mIoU(ms+flip): 76.72 + Config: configs/icnet/icnet_r18-d8_in1k-pre_832x832_160k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r18-d8_in1k-pre_832x832_160k_cityscapes/icnet_r18-d8_in1k-pre_832x832_160k_cityscapes_20210926_052702-619c8ae1.pth +- Name: icnet_r50-d8_832x832_80k_cityscapes + In Collection: icnet + Metadata: + backbone: R-50-D8 + crop size: (832,832) + lr schd: 80000 + inference time (ms/im): + - value: 49.8 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (832,832) + memory (GB): 2.53 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 68.91 + mIoU(ms+flip): 69.72 + Config: configs/icnet/icnet_r50-d8_832x832_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r50-d8_832x832_80k_cityscapes/icnet_r50-d8_832x832_80k_cityscapes_20210926_044625-c6407341.pth +- Name: icnet_r50-d8_832x832_160k_cityscapes + In Collection: icnet + Metadata: + backbone: R-50-D8 + crop size: (832,832) + lr schd: 160000 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 73.82 + mIoU(ms+flip): 75.67 + Config: configs/icnet/icnet_r50-d8_832x832_160k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r50-d8_832x832_160k_cityscapes/icnet_r50-d8_832x832_160k_cityscapes_20210925_232612-a95f0d4e.pth +- Name: icnet_r50-d8_in1k-pre_832x832_80k_cityscapes + In Collection: icnet + Metadata: + backbone: R-50-D8 + crop size: (832,832) + lr schd: 80000 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 74.58 + mIoU(ms+flip): 76.41 + Config: configs/icnet/icnet_r50-d8_in1k-pre_832x832_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r50-d8_in1k-pre_832x832_80k_cityscapes/icnet_r50-d8_in1k-pre_832x832_80k_cityscapes_20210926_032943-1743dc7b.pth +- Name: icnet_r50-d8_in1k-pre_832x832_160k_cityscapes + In Collection: icnet + Metadata: + backbone: R-50-D8 + crop size: (832,832) + lr schd: 160000 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.29 + mIoU(ms+flip): 78.09 + Config: configs/icnet/icnet_r50-d8_in1k-pre_832x832_160k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r50-d8_in1k-pre_832x832_160k_cityscapes/icnet_r50-d8_in1k-pre_832x832_160k_cityscapes_20210926_042715-ce310aea.pth +- Name: icnet_r101-d8_832x832_80k_cityscapes + In Collection: icnet + Metadata: + backbone: R-101-D8 + crop size: (832,832) + lr schd: 80000 + inference time (ms/im): + - value: 59.0 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (832,832) + memory (GB): 3.08 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 70.28 + mIoU(ms+flip): 71.95 + Config: configs/icnet/icnet_r101-d8_832x832_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r101-d8_832x832_80k_cityscapes/icnet_r101-d8_832x832_80k_cityscapes_20210926_072447-b52f936e.pth +- Name: icnet_r101-d8_832x832_160k_cityscapes + In Collection: icnet + Metadata: + backbone: R-101-D8 + crop size: (832,832) + lr schd: 160000 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 73.8 + mIoU(ms+flip): 76.1 + Config: configs/icnet/icnet_r101-d8_832x832_160k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r101-d8_832x832_160k_cityscapes/icnet_r101-d8_832x832_160k_cityscapes_20210926_092350-3a1ebf1a.pth +- Name: icnet_r101-d8_in1k-pre_832x832_80k_cityscapes + In Collection: icnet + Metadata: + backbone: R-101-D8 + crop size: (832,832) + lr schd: 80000 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 75.57 + mIoU(ms+flip): 77.86 + Config: configs/icnet/icnet_r101-d8_in1k-pre_832x832_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r101-d8_in1k-pre_832x832_80k_cityscapes/icnet_r101-d8_in1k-pre_832x832_80k_cityscapes_20210926_020414-7ceb12c5.pth +- Name: icnet_r101-d8_in1k-pre_832x832_160k_cityscapes + In Collection: icnet + Metadata: + backbone: R-101-D8 + crop size: (832,832) + lr schd: 160000 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.15 + mIoU(ms+flip): 77.98 + Config: configs/icnet/icnet_r101-d8_in1k-pre_832x832_160k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/icnet/icnet_r101-d8_in1k-pre_832x832_160k_cityscapes/icnet_r101-d8_in1k-pre_832x832_160k_cityscapes_20210925_232612-9484ae8a.pth diff --git a/configs/icnet/icnet_r101-d8_832x832_160k_cityscapes.py b/configs/icnet/icnet_r101-d8_832x832_160k_cityscapes.py new file mode 100644 index 0000000000..24cbf537d4 --- /dev/null +++ b/configs/icnet/icnet_r101-d8_832x832_160k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './icnet_r50-d8_832x832_160k_cityscapes.py' +model = dict(backbone=dict(backbone_cfg=dict(depth=101))) diff --git a/configs/icnet/icnet_r101-d8_832x832_80k_cityscapes.py b/configs/icnet/icnet_r101-d8_832x832_80k_cityscapes.py new file mode 100644 index 0000000000..f3338b5944 --- /dev/null +++ b/configs/icnet/icnet_r101-d8_832x832_80k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './icnet_r50-d8_832x832_80k_cityscapes.py' +model = dict(backbone=dict(backbone_cfg=dict(depth=101))) diff --git a/configs/icnet/icnet_r101-d8_in1k-pre_832x832_160k_cityscapes.py b/configs/icnet/icnet_r101-d8_in1k-pre_832x832_160k_cityscapes.py new file mode 100644 index 0000000000..74ac355088 --- /dev/null +++ b/configs/icnet/icnet_r101-d8_in1k-pre_832x832_160k_cityscapes.py @@ -0,0 +1,7 @@ +_base_ = './icnet_r50-d8_832x832_160k_cityscapes.py' +model = dict( + backbone=dict( + backbone_cfg=dict( + depth=101, + init_cfg=dict( + type='Pretrained', checkpoint='open-mmlab://resnet101_v1c')))) diff --git a/configs/icnet/icnet_r101-d8_in1k-pre_832x832_80k_cityscapes.py b/configs/icnet/icnet_r101-d8_in1k-pre_832x832_80k_cityscapes.py new file mode 100644 index 0000000000..b4ba6d640d --- /dev/null +++ b/configs/icnet/icnet_r101-d8_in1k-pre_832x832_80k_cityscapes.py @@ -0,0 +1,7 @@ +_base_ = './icnet_r50-d8_832x832_80k_cityscapes.py' +model = dict( + backbone=dict( + backbone_cfg=dict( + depth=101, + init_cfg=dict( + type='Pretrained', checkpoint='open-mmlab://resnet101_v1c')))) diff --git a/configs/icnet/icnet_r18-d8_832x832_160k_cityscapes.py b/configs/icnet/icnet_r18-d8_832x832_160k_cityscapes.py new file mode 100644 index 0000000000..877b775afc --- /dev/null +++ b/configs/icnet/icnet_r18-d8_832x832_160k_cityscapes.py @@ -0,0 +1,3 @@ +_base_ = './icnet_r50-d8_832x832_160k_cityscapes.py' +model = dict( + backbone=dict(layer_channels=(128, 512), backbone_cfg=dict(depth=18))) diff --git a/configs/icnet/icnet_r18-d8_832x832_80k_cityscapes.py b/configs/icnet/icnet_r18-d8_832x832_80k_cityscapes.py new file mode 100644 index 0000000000..786c7cc92a --- /dev/null +++ b/configs/icnet/icnet_r18-d8_832x832_80k_cityscapes.py @@ -0,0 +1,3 @@ +_base_ = './icnet_r50-d8_832x832_80k_cityscapes.py' +model = dict( + backbone=dict(layer_channels=(128, 512), backbone_cfg=dict(depth=18))) diff --git a/configs/icnet/icnet_r18-d8_in1k-pre_832x832_160k_cityscapes.py b/configs/icnet/icnet_r18-d8_in1k-pre_832x832_160k_cityscapes.py new file mode 100644 index 0000000000..cc47951f3d --- /dev/null +++ b/configs/icnet/icnet_r18-d8_in1k-pre_832x832_160k_cityscapes.py @@ -0,0 +1,8 @@ +_base_ = './icnet_r50-d8_832x832_160k_cityscapes.py' +model = dict( + backbone=dict( + layer_channels=(128, 512), + backbone_cfg=dict( + depth=18, + init_cfg=dict( + type='Pretrained', checkpoint='open-mmlab://resnet18_v1c')))) diff --git a/configs/icnet/icnet_r18-d8_in1k-pre_832x832_80k_cityscapes.py b/configs/icnet/icnet_r18-d8_in1k-pre_832x832_80k_cityscapes.py new file mode 100644 index 0000000000..00b0fe0522 --- /dev/null +++ b/configs/icnet/icnet_r18-d8_in1k-pre_832x832_80k_cityscapes.py @@ -0,0 +1,8 @@ +_base_ = './icnet_r50-d8_832x832_80k_cityscapes.py' +model = dict( + backbone=dict( + layer_channels=(128, 512), + backbone_cfg=dict( + depth=18, + init_cfg=dict( + type='Pretrained', checkpoint='open-mmlab://resnet18_v1c')))) diff --git a/configs/icnet/icnet_r50-d8_832x832_160k_cityscapes.py b/configs/icnet/icnet_r50-d8_832x832_160k_cityscapes.py new file mode 100644 index 0000000000..5b9fd9b09e --- /dev/null +++ b/configs/icnet/icnet_r50-d8_832x832_160k_cityscapes.py @@ -0,0 +1,5 @@ +_base_ = [ + '../_base_/models/icnet_r50-d8.py', + '../_base_/datasets/cityscapes_832x832.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_160k.py' +] diff --git a/configs/icnet/icnet_r50-d8_832x832_80k_cityscapes.py b/configs/icnet/icnet_r50-d8_832x832_80k_cityscapes.py new file mode 100644 index 0000000000..e0336c99db --- /dev/null +++ b/configs/icnet/icnet_r50-d8_832x832_80k_cityscapes.py @@ -0,0 +1,5 @@ +_base_ = [ + '../_base_/models/icnet_r50-d8.py', + '../_base_/datasets/cityscapes_832x832.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_80k.py' +] diff --git a/configs/icnet/icnet_r50-d8_in1k-pre_832x832_160k_cityscapes.py b/configs/icnet/icnet_r50-d8_in1k-pre_832x832_160k_cityscapes.py new file mode 100644 index 0000000000..6f7a0a1a36 --- /dev/null +++ b/configs/icnet/icnet_r50-d8_in1k-pre_832x832_160k_cityscapes.py @@ -0,0 +1,6 @@ +_base_ = './icnet_r50-d8_832x832_160k_cityscapes.py' +model = dict( + backbone=dict( + backbone_cfg=dict( + init_cfg=dict( + type='Pretrained', checkpoint='open-mmlab://resnet50_v1c')))) diff --git a/configs/icnet/icnet_r50-d8_in1k-pre_832x832_80k_cityscapes.py b/configs/icnet/icnet_r50-d8_in1k-pre_832x832_80k_cityscapes.py new file mode 100644 index 0000000000..57546cd291 --- /dev/null +++ b/configs/icnet/icnet_r50-d8_in1k-pre_832x832_80k_cityscapes.py @@ -0,0 +1,6 @@ +_base_ = './icnet_r50-d8_832x832_80k_cityscapes.py' +model = dict( + backbone=dict( + backbone_cfg=dict( + init_cfg=dict( + type='Pretrained', checkpoint='open-mmlab://resnet50_v1c')))) diff --git a/mmseg/models/backbones/__init__.py b/mmseg/models/backbones/__init__.py index 1f88bdda6c..6d320323b8 100644 --- a/mmseg/models/backbones/__init__.py +++ b/mmseg/models/backbones/__init__.py @@ -4,6 +4,7 @@ from .cgnet import CGNet from .fast_scnn import FastSCNN from .hrnet import HRNet +from .icnet import ICNet from .mit import MixVisionTransformer from .mobilenet_v2 import MobileNetV2 from .mobilenet_v3 import MobileNetV3 @@ -18,5 +19,5 @@ 'ResNet', 'ResNetV1c', 'ResNetV1d', 'ResNeXt', 'HRNet', 'FastSCNN', 'ResNeSt', 'MobileNetV2', 'UNet', 'CGNet', 'MobileNetV3', 'VisionTransformer', 'SwinTransformer', 'MixVisionTransformer', - 'BiSeNetV1', 'BiSeNetV2' + 'BiSeNetV1', 'BiSeNetV2', 'ICNet' ] diff --git a/mmseg/models/backbones/icnet.py b/mmseg/models/backbones/icnet.py new file mode 100644 index 0000000000..10e5427858 --- /dev/null +++ b/mmseg/models/backbones/icnet.py @@ -0,0 +1,165 @@ +import torch +import torch.nn as nn +from mmcv.cnn import ConvModule +from mmcv.runner import BaseModule + +from mmseg.ops import resize +from ..builder import BACKBONES, build_backbone +from ..decode_heads.psp_head import PPM + + +@BACKBONES.register_module() +class ICNet(BaseModule): + """ICNet for Real-Time Semantic Segmentation on High-Resolution Images. + + This backbone is the implementation of + `ICNet `_. + + Args: + backbone_cfg (dict): Config dict to build backbone. Usually it is + ResNet but it can also be other backbones. + in_channels (int): The number of input image channels. Default: 3. + layer_channels (Sequence[int]): The numbers of feature channels at + layer 2 and layer 4 in ResNet. It can also be other backbones. + Default: (512, 2048). + light_branch_middle_channels (int): The number of channels of the + middle layer in light branch. Default: 32. + psp_out_channels (int): The number of channels of the output of PSP + module. Default: 512. + out_channels (Sequence[int]): The numbers of output feature channels + at each branches. Default: (64, 256, 256). + pool_scales (tuple[int]): Pooling scales used in Pooling Pyramid + Module. Default: (1, 2, 3, 6). + conv_cfg (dict): Dictionary to construct and config conv layer. + Default: None. + norm_cfg (dict): Dictionary to construct and config norm layer. + Default: dict(type='BN'). + act_cfg (dict): Dictionary to construct and config act layer. + Default: dict(type='ReLU'). + align_corners (bool): align_corners argument of F.interpolate. + Default: False. + init_cfg (dict or list[dict], optional): Initialization config dict. + Default: None. + """ + + def __init__(self, + backbone_cfg, + in_channels=3, + layer_channels=(512, 2048), + light_branch_middle_channels=32, + psp_out_channels=512, + out_channels=(64, 256, 256), + pool_scales=(1, 2, 3, 6), + conv_cfg=None, + norm_cfg=dict(type='BN', requires_grad=True), + act_cfg=dict(type='ReLU'), + align_corners=False, + init_cfg=None): + if backbone_cfg is None: + raise TypeError('backbone_cfg must be passed from config file!') + if init_cfg is None: + init_cfg = [ + dict(type='Kaiming', mode='fan_out', layer='Conv2d'), + dict(type='Constant', val=1, layer='_BatchNorm'), + dict(type='Normal', mean=0.01, layer='Linear') + ] + super(ICNet, self).__init__(init_cfg=init_cfg) + self.align_corners = align_corners + self.backbone = build_backbone(backbone_cfg) + + # Note: Default `ceil_mode` is false in nn.MaxPool2d, set + # `ceil_mode=True` to keep information in the corner of feature map. + self.backbone.maxpool = nn.MaxPool2d( + kernel_size=3, stride=2, padding=1, ceil_mode=True) + + self.psp_modules = PPM( + pool_scales=pool_scales, + in_channels=layer_channels[1], + channels=psp_out_channels, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg, + align_corners=align_corners) + + self.psp_bottleneck = ConvModule( + layer_channels[1] + len(pool_scales) * psp_out_channels, + psp_out_channels, + 3, + padding=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + + self.conv_sub1 = nn.Sequential( + ConvModule( + in_channels=in_channels, + out_channels=light_branch_middle_channels, + kernel_size=3, + stride=2, + padding=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg), + ConvModule( + in_channels=light_branch_middle_channels, + out_channels=light_branch_middle_channels, + kernel_size=3, + stride=2, + padding=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg), + ConvModule( + in_channels=light_branch_middle_channels, + out_channels=out_channels[0], + kernel_size=3, + stride=2, + padding=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg)) + + self.conv_sub2 = ConvModule( + layer_channels[0], + out_channels[1], + 1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg) + + self.conv_sub4 = ConvModule( + psp_out_channels, + out_channels[2], + 1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg) + + def forward(self, x): + output = [] + + # sub 1 + output.append(self.conv_sub1(x)) + + # sub 2 + x = resize( + x, + scale_factor=0.5, + mode='bilinear', + align_corners=self.align_corners) + x = self.backbone.stem(x) + x = self.backbone.maxpool(x) + x = self.backbone.layer1(x) + x = self.backbone.layer2(x) + output.append(self.conv_sub2(x)) + + # sub 4 + x = resize( + x, + scale_factor=0.5, + mode='bilinear', + align_corners=self.align_corners) + x = self.backbone.layer3(x) + x = self.backbone.layer4(x) + psp_outs = self.psp_modules(x) + [x] + psp_outs = torch.cat(psp_outs, dim=1) + x = self.psp_bottleneck(psp_outs) + + output.append(self.conv_sub4(x)) + + return output diff --git a/mmseg/models/necks/__init__.py b/mmseg/models/necks/__init__.py index c496853c83..15edad493c 100644 --- a/mmseg/models/necks/__init__.py +++ b/mmseg/models/necks/__init__.py @@ -1,6 +1,7 @@ # Copyright (c) OpenMMLab. All rights reserved. from .fpn import FPN +from .ic_neck import ICNeck from .mla_neck import MLANeck from .multilevel_neck import MultiLevelNeck -__all__ = ['FPN', 'MultiLevelNeck', 'MLANeck'] +__all__ = ['FPN', 'MultiLevelNeck', 'MLANeck', 'ICNeck'] diff --git a/mmseg/models/necks/ic_neck.py b/mmseg/models/necks/ic_neck.py new file mode 100644 index 0000000000..d836a6b9ce --- /dev/null +++ b/mmseg/models/necks/ic_neck.py @@ -0,0 +1,147 @@ +import torch.nn.functional as F +from mmcv.cnn import ConvModule +from mmcv.runner import BaseModule + +from mmseg.ops import resize +from ..builder import NECKS + + +class CascadeFeatureFusion(BaseModule): + """Cascade Feature Fusion Unit in ICNet. + + Args: + low_channels (int): The number of input channels for + low resolution feature map. + high_channels (int): The number of input channels for + high resolution feature map. + out_channels (int): The number of output channels. + conv_cfg (dict): Dictionary to construct and config conv layer. + Default: None. + norm_cfg (dict): Dictionary to construct and config norm layer. + Default: dict(type='BN'). + act_cfg (dict): Dictionary to construct and config act layer. + Default: dict(type='ReLU'). + align_corners (bool): align_corners argument of F.interpolate. + Default: False. + init_cfg (dict or list[dict], optional): Initialization config dict. + Default: None. + + Returns: + x (Tensor): The output tensor of shape (N, out_channels, H, W). + x_low (Tensor): The output tensor of shape (N, out_channels, H, W) + for Cascade Label Guidance in auxiliary heads. + """ + + def __init__(self, + low_channels, + high_channels, + out_channels, + conv_cfg=None, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + align_corners=False, + init_cfg=None): + super(CascadeFeatureFusion, self).__init__(init_cfg=init_cfg) + self.align_corners = align_corners + self.conv_low = ConvModule( + low_channels, + out_channels, + 3, + padding=2, + dilation=2, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + self.conv_high = ConvModule( + high_channels, + out_channels, + 1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + + def forward(self, x_low, x_high): + x_low = resize( + x_low, + size=x_high.size()[2:], + mode='bilinear', + align_corners=self.align_corners) + # Note: Different from original paper, `x_low` is underwent + # `self.conv_low` rather than another 1x1 conv classifier + # before being used for auxiliary head. + x_low = self.conv_low(x_low) + x_high = self.conv_high(x_high) + x = x_low + x_high + x = F.relu(x, inplace=True) + return x, x_low + + +@NECKS.register_module() +class ICNeck(BaseModule): + """ICNet for Real-Time Semantic Segmentation on High-Resolution Images. + + This head is the implementation of `ICHead + `_. + + Args: + in_channels (int): The number of input image channels. Default: 3. + out_channels (int): The numbers of output feature channels. + Default: 128. + conv_cfg (dict): Dictionary to construct and config conv layer. + Default: None. + norm_cfg (dict): Dictionary to construct and config norm layer. + Default: dict(type='BN'). + act_cfg (dict): Dictionary to construct and config act layer. + Default: dict(type='ReLU'). + align_corners (bool): align_corners argument of F.interpolate. + Default: False. + init_cfg (dict or list[dict], optional): Initialization config dict. + Default: None. + """ + + def __init__(self, + in_channels=(64, 256, 256), + out_channels=128, + conv_cfg=None, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + align_corners=False, + init_cfg=None): + super(ICNeck, self).__init__(init_cfg=init_cfg) + assert len(in_channels) == 3, 'Length of input channels \ + must be 3!' + + self.in_channels = in_channels + self.out_channels = out_channels + self.conv_cfg = conv_cfg + self.norm_cfg = norm_cfg + self.act_cfg = act_cfg + self.align_corners = align_corners + self.cff_24 = CascadeFeatureFusion( + self.in_channels[2], + self.in_channels[1], + self.out_channels, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg, + align_corners=self.align_corners) + + self.cff_12 = CascadeFeatureFusion( + self.out_channels, + self.in_channels[0], + self.out_channels, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg, + align_corners=self.align_corners) + + def forward(self, inputs): + assert len(inputs) == 3, 'Length of input feature \ + maps must be 3!' + + x_sub1, x_sub2, x_sub4 = inputs + x_cff_24, x_24 = self.cff_24(x_sub4, x_sub2) + x_cff_12, x_12 = self.cff_12(x_cff_24, x_sub1) + # Note: `x_cff_12` is used for decode_head, + # `x_24` and `x_12` are used for auxiliary head. + return x_24, x_12, x_cff_12 diff --git a/model-index.yml b/model-index.yml index 7d18380c76..f0f9bb80e9 100644 --- a/model-index.yml +++ b/model-index.yml @@ -18,6 +18,7 @@ Import: - configs/fp16/fp16.yml - configs/gcnet/gcnet.yml - configs/hrnet/hrnet.yml +- configs/icnet/icnet.yml - configs/isanet/isanet.yml - configs/mobilenet_v2/mobilenet_v2.yml - configs/mobilenet_v3/mobilenet_v3.yml diff --git a/tests/test_models/test_backbones/test_icnet.py b/tests/test_models/test_backbones/test_icnet.py new file mode 100644 index 0000000000..a5861d8344 --- /dev/null +++ b/tests/test_models/test_backbones/test_icnet.py @@ -0,0 +1,48 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import pytest +import torch + +from mmseg.models.backbones import ICNet + + +def test_icnet_backbone(): + with pytest.raises(TypeError): + # Must give backbone dict in config file. + ICNet( + in_channels=3, + layer_channels=(512, 2048), + light_branch_middle_channels=32, + psp_out_channels=512, + out_channels=(64, 256, 256), + backbone_cfg=None) + + # Test ICNet Standard Forward + model = ICNet( + backbone_cfg=dict( + type='ResNetV1c', + in_channels=3, + depth=50, + num_stages=4, + out_indices=(0, 1, 2, 3), + dilations=(1, 1, 2, 4), + strides=(1, 2, 1, 1), + norm_cfg=dict(type='BN', requires_grad=True), + norm_eval=False, + style='pytorch', + contract_dilation=True), ) + assert hasattr(model.backbone, + 'maxpool') and model.backbone.maxpool.ceil_mode is True + model.init_weights() + model.train() + batch_size = 2 + imgs = torch.randn(batch_size, 3, 512, 1024) + feat = model(imgs) + + assert model.psp_modules[0][0].output_size == 1 + assert model.psp_modules[1][0].output_size == 2 + assert model.psp_modules[2][0].output_size == 3 + assert model.psp_bottleneck.padding == 1 + assert model.conv_sub1[0].padding == 1 + + assert len(feat) == 3 + assert feat[0].shape == torch.Size([batch_size, 64, 64, 128]) diff --git a/tests/test_models/test_backbones/test_swin.py b/tests/test_models/test_backbones/test_swin.py index 0529d1e321..83e0379637 100644 --- a/tests/test_models/test_backbones/test_swin.py +++ b/tests/test_models/test_backbones/test_swin.py @@ -50,22 +50,22 @@ def test_swin_transformer(): model(temp) # Test normal inference - temp = torch.randn((1, 3, 512, 512)) + temp = torch.randn((1, 3, 256, 256)) model = SwinTransformer() outs = model(temp) - assert outs[0].shape == (1, 96, 128, 128) - assert outs[1].shape == (1, 192, 64, 64) - assert outs[2].shape == (1, 384, 32, 32) - assert outs[3].shape == (1, 768, 16, 16) + assert outs[0].shape == (1, 96, 64, 64) + assert outs[1].shape == (1, 192, 32, 32) + assert outs[2].shape == (1, 384, 16, 16) + assert outs[3].shape == (1, 768, 8, 8) # Test abnormal inference size - temp = torch.randn((1, 3, 511, 511)) + temp = torch.randn((1, 3, 255, 255)) model = SwinTransformer() outs = model(temp) - assert outs[0].shape == (1, 96, 128, 128) - assert outs[1].shape == (1, 192, 64, 64) - assert outs[2].shape == (1, 384, 32, 32) - assert outs[3].shape == (1, 768, 16, 16) + assert outs[0].shape == (1, 96, 64, 64) + assert outs[1].shape == (1, 192, 32, 32) + assert outs[2].shape == (1, 384, 16, 16) + assert outs[3].shape == (1, 768, 8, 8) # Test abnormal inference size temp = torch.randn((1, 3, 112, 137)) @@ -89,7 +89,7 @@ def test_swin_transformer(): assert not p.requires_grad # Test Swin with checkpoint forward - temp = torch.randn((1, 3, 224, 224)) + temp = torch.randn((1, 3, 112, 112)) model = SwinTransformer(with_cp=True) for m in model.modules(): if isinstance(m, SwinBlock): diff --git a/tests/test_models/test_backbones/test_unet.py b/tests/test_models/test_backbones/test_unet.py index 3a035c8f0b..c4f2faca3f 100644 --- a/tests/test_models/test_backbones/test_unet.py +++ b/tests/test_models/test_backbones/test_unet.py @@ -345,7 +345,7 @@ def test_unet(): # case is 8. unet = UNet( in_channels=3, - base_channels=64, + base_channels=4, num_stages=4, strides=(1, 1, 1, 1), enc_num_convs=(2, 2, 2, 2), @@ -362,7 +362,7 @@ def test_unet(): # case is 16. unet = UNet( in_channels=3, - base_channels=64, + base_channels=4, num_stages=5, strides=(1, 1, 1, 1, 1), enc_num_convs=(2, 2, 2, 2, 2), @@ -379,7 +379,7 @@ def test_unet(): # case is 8. unet = UNet( in_channels=3, - base_channels=64, + base_channels=4, num_stages=5, strides=(1, 1, 1, 1, 1), enc_num_convs=(2, 2, 2, 2, 2), @@ -396,7 +396,7 @@ def test_unet(): # case is 8. unet = UNet( in_channels=3, - base_channels=64, + base_channels=4, num_stages=5, strides=(1, 2, 2, 2, 1), enc_num_convs=(2, 2, 2, 2, 2), @@ -413,7 +413,7 @@ def test_unet(): # case is 32. unet = UNet( in_channels=3, - base_channels=64, + base_channels=4, num_stages=6, strides=(1, 1, 1, 1, 1, 1), enc_num_convs=(2, 2, 2, 2, 2, 2), @@ -428,7 +428,7 @@ def test_unet(): # Check if num_stages matchs strides, len(strides)=num_stages unet = UNet( in_channels=3, - base_channels=64, + base_channels=4, num_stages=5, strides=(1, 1, 1, 1), enc_num_convs=(2, 2, 2, 2, 2), @@ -443,7 +443,7 @@ def test_unet(): # Check if num_stages matchs strides, len(enc_num_convs)=num_stages unet = UNet( in_channels=3, - base_channels=64, + base_channels=4, num_stages=5, strides=(1, 1, 1, 1, 1), enc_num_convs=(2, 2, 2, 2), @@ -458,7 +458,7 @@ def test_unet(): # Check if num_stages matchs strides, len(dec_num_convs)=num_stages-1 unet = UNet( in_channels=3, - base_channels=64, + base_channels=4, num_stages=5, strides=(1, 1, 1, 1, 1), enc_num_convs=(2, 2, 2, 2, 2), @@ -473,7 +473,7 @@ def test_unet(): # Check if num_stages matchs strides, len(downsamples)=num_stages-1 unet = UNet( in_channels=3, - base_channels=64, + base_channels=4, num_stages=5, strides=(1, 1, 1, 1, 1), enc_num_convs=(2, 2, 2, 2, 2), @@ -488,7 +488,7 @@ def test_unet(): # Check if num_stages matchs strides, len(enc_dilations)=num_stages unet = UNet( in_channels=3, - base_channels=64, + base_channels=4, num_stages=5, strides=(1, 1, 1, 1, 1), enc_num_convs=(2, 2, 2, 2, 2), @@ -503,7 +503,7 @@ def test_unet(): # Check if num_stages matchs strides, len(dec_dilations)=num_stages-1 unet = UNet( in_channels=3, - base_channels=64, + base_channels=4, num_stages=5, strides=(1, 1, 1, 1, 1), enc_num_convs=(2, 2, 2, 2, 2), @@ -517,7 +517,7 @@ def test_unet(): # test UNet norm_eval=True unet = UNet( in_channels=3, - base_channels=64, + base_channels=4, num_stages=5, strides=(1, 1, 1, 1, 1), enc_num_convs=(2, 2, 2, 2, 2), @@ -532,7 +532,7 @@ def test_unet(): # test UNet norm_eval=False unet = UNet( in_channels=3, - base_channels=64, + base_channels=4, num_stages=5, strides=(1, 1, 1, 1, 1), enc_num_convs=(2, 2, 2, 2, 2), @@ -547,7 +547,7 @@ def test_unet(): # test UNet forward and outputs. The whole downsample rate is 16. unet = UNet( in_channels=3, - base_channels=64, + base_channels=4, num_stages=5, strides=(1, 1, 1, 1, 1), enc_num_convs=(2, 2, 2, 2, 2), @@ -558,16 +558,16 @@ def test_unet(): x = torch.randn(2, 3, 128, 128) x_outs = unet(x) - assert x_outs[0].shape == torch.Size([2, 1024, 8, 8]) - assert x_outs[1].shape == torch.Size([2, 512, 16, 16]) - assert x_outs[2].shape == torch.Size([2, 256, 32, 32]) - assert x_outs[3].shape == torch.Size([2, 128, 64, 64]) - assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) + assert x_outs[0].shape == torch.Size([2, 64, 8, 8]) + assert x_outs[1].shape == torch.Size([2, 32, 16, 16]) + assert x_outs[2].shape == torch.Size([2, 16, 32, 32]) + assert x_outs[3].shape == torch.Size([2, 8, 64, 64]) + assert x_outs[4].shape == torch.Size([2, 4, 128, 128]) # test UNet forward and outputs. The whole downsample rate is 8. unet = UNet( in_channels=3, - base_channels=64, + base_channels=4, num_stages=5, strides=(1, 1, 1, 1, 1), enc_num_convs=(2, 2, 2, 2, 2), @@ -578,16 +578,16 @@ def test_unet(): x = torch.randn(2, 3, 128, 128) x_outs = unet(x) - assert x_outs[0].shape == torch.Size([2, 1024, 16, 16]) - assert x_outs[1].shape == torch.Size([2, 512, 16, 16]) - assert x_outs[2].shape == torch.Size([2, 256, 32, 32]) - assert x_outs[3].shape == torch.Size([2, 128, 64, 64]) - assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) + assert x_outs[0].shape == torch.Size([2, 64, 16, 16]) + assert x_outs[1].shape == torch.Size([2, 32, 16, 16]) + assert x_outs[2].shape == torch.Size([2, 16, 32, 32]) + assert x_outs[3].shape == torch.Size([2, 8, 64, 64]) + assert x_outs[4].shape == torch.Size([2, 4, 128, 128]) # test UNet forward and outputs. The whole downsample rate is 8. unet = UNet( in_channels=3, - base_channels=64, + base_channels=4, num_stages=5, strides=(1, 2, 2, 2, 1), enc_num_convs=(2, 2, 2, 2, 2), @@ -598,16 +598,16 @@ def test_unet(): x = torch.randn(2, 3, 128, 128) x_outs = unet(x) - assert x_outs[0].shape == torch.Size([2, 1024, 16, 16]) - assert x_outs[1].shape == torch.Size([2, 512, 16, 16]) - assert x_outs[2].shape == torch.Size([2, 256, 32, 32]) - assert x_outs[3].shape == torch.Size([2, 128, 64, 64]) - assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) + assert x_outs[0].shape == torch.Size([2, 64, 16, 16]) + assert x_outs[1].shape == torch.Size([2, 32, 16, 16]) + assert x_outs[2].shape == torch.Size([2, 16, 32, 32]) + assert x_outs[3].shape == torch.Size([2, 8, 64, 64]) + assert x_outs[4].shape == torch.Size([2, 4, 128, 128]) # test UNet forward and outputs. The whole downsample rate is 4. unet = UNet( in_channels=3, - base_channels=64, + base_channels=4, num_stages=5, strides=(1, 1, 1, 1, 1), enc_num_convs=(2, 2, 2, 2, 2), @@ -618,16 +618,16 @@ def test_unet(): x = torch.randn(2, 3, 128, 128) x_outs = unet(x) - assert x_outs[0].shape == torch.Size([2, 1024, 32, 32]) - assert x_outs[1].shape == torch.Size([2, 512, 32, 32]) - assert x_outs[2].shape == torch.Size([2, 256, 32, 32]) - assert x_outs[3].shape == torch.Size([2, 128, 64, 64]) - assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) + assert x_outs[0].shape == torch.Size([2, 64, 32, 32]) + assert x_outs[1].shape == torch.Size([2, 32, 32, 32]) + assert x_outs[2].shape == torch.Size([2, 16, 32, 32]) + assert x_outs[3].shape == torch.Size([2, 8, 64, 64]) + assert x_outs[4].shape == torch.Size([2, 4, 128, 128]) # test UNet forward and outputs. The whole downsample rate is 4. unet = UNet( in_channels=3, - base_channels=64, + base_channels=4, num_stages=5, strides=(1, 2, 2, 1, 1), enc_num_convs=(2, 2, 2, 2, 2), @@ -638,16 +638,16 @@ def test_unet(): x = torch.randn(2, 3, 128, 128) x_outs = unet(x) - assert x_outs[0].shape == torch.Size([2, 1024, 32, 32]) - assert x_outs[1].shape == torch.Size([2, 512, 32, 32]) - assert x_outs[2].shape == torch.Size([2, 256, 32, 32]) - assert x_outs[3].shape == torch.Size([2, 128, 64, 64]) - assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) + assert x_outs[0].shape == torch.Size([2, 64, 32, 32]) + assert x_outs[1].shape == torch.Size([2, 32, 32, 32]) + assert x_outs[2].shape == torch.Size([2, 16, 32, 32]) + assert x_outs[3].shape == torch.Size([2, 8, 64, 64]) + assert x_outs[4].shape == torch.Size([2, 4, 128, 128]) # test UNet forward and outputs. The whole downsample rate is 8. unet = UNet( in_channels=3, - base_channels=64, + base_channels=4, num_stages=5, strides=(1, 1, 1, 1, 1), enc_num_convs=(2, 2, 2, 2, 2), @@ -658,16 +658,16 @@ def test_unet(): x = torch.randn(2, 3, 128, 128) x_outs = unet(x) - assert x_outs[0].shape == torch.Size([2, 1024, 16, 16]) - assert x_outs[1].shape == torch.Size([2, 512, 16, 16]) - assert x_outs[2].shape == torch.Size([2, 256, 32, 32]) - assert x_outs[3].shape == torch.Size([2, 128, 64, 64]) - assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) + assert x_outs[0].shape == torch.Size([2, 64, 16, 16]) + assert x_outs[1].shape == torch.Size([2, 32, 16, 16]) + assert x_outs[2].shape == torch.Size([2, 16, 32, 32]) + assert x_outs[3].shape == torch.Size([2, 8, 64, 64]) + assert x_outs[4].shape == torch.Size([2, 4, 128, 128]) # test UNet forward and outputs. The whole downsample rate is 4. unet = UNet( in_channels=3, - base_channels=64, + base_channels=4, num_stages=5, strides=(1, 1, 1, 1, 1), enc_num_convs=(2, 2, 2, 2, 2), @@ -678,16 +678,16 @@ def test_unet(): x = torch.randn(2, 3, 128, 128) x_outs = unet(x) - assert x_outs[0].shape == torch.Size([2, 1024, 32, 32]) - assert x_outs[1].shape == torch.Size([2, 512, 32, 32]) - assert x_outs[2].shape == torch.Size([2, 256, 32, 32]) - assert x_outs[3].shape == torch.Size([2, 128, 64, 64]) - assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) + assert x_outs[0].shape == torch.Size([2, 64, 32, 32]) + assert x_outs[1].shape == torch.Size([2, 32, 32, 32]) + assert x_outs[2].shape == torch.Size([2, 16, 32, 32]) + assert x_outs[3].shape == torch.Size([2, 8, 64, 64]) + assert x_outs[4].shape == torch.Size([2, 4, 128, 128]) # test UNet forward and outputs. The whole downsample rate is 2. unet = UNet( in_channels=3, - base_channels=64, + base_channels=4, num_stages=5, strides=(1, 1, 1, 1, 1), enc_num_convs=(2, 2, 2, 2, 2), @@ -698,16 +698,16 @@ def test_unet(): x = torch.randn(2, 3, 128, 128) x_outs = unet(x) - assert x_outs[0].shape == torch.Size([2, 1024, 64, 64]) - assert x_outs[1].shape == torch.Size([2, 512, 64, 64]) - assert x_outs[2].shape == torch.Size([2, 256, 64, 64]) - assert x_outs[3].shape == torch.Size([2, 128, 64, 64]) - assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) + assert x_outs[0].shape == torch.Size([2, 64, 64, 64]) + assert x_outs[1].shape == torch.Size([2, 32, 64, 64]) + assert x_outs[2].shape == torch.Size([2, 16, 64, 64]) + assert x_outs[3].shape == torch.Size([2, 8, 64, 64]) + assert x_outs[4].shape == torch.Size([2, 4, 128, 128]) # test UNet forward and outputs. The whole downsample rate is 1. unet = UNet( in_channels=3, - base_channels=64, + base_channels=4, num_stages=5, strides=(1, 1, 1, 1, 1), enc_num_convs=(2, 2, 2, 2, 2), @@ -718,16 +718,16 @@ def test_unet(): x = torch.randn(2, 3, 128, 128) x_outs = unet(x) - assert x_outs[0].shape == torch.Size([2, 1024, 128, 128]) - assert x_outs[1].shape == torch.Size([2, 512, 128, 128]) - assert x_outs[2].shape == torch.Size([2, 256, 128, 128]) - assert x_outs[3].shape == torch.Size([2, 128, 128, 128]) - assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) + assert x_outs[0].shape == torch.Size([2, 64, 128, 128]) + assert x_outs[1].shape == torch.Size([2, 32, 128, 128]) + assert x_outs[2].shape == torch.Size([2, 16, 128, 128]) + assert x_outs[3].shape == torch.Size([2, 8, 128, 128]) + assert x_outs[4].shape == torch.Size([2, 4, 128, 128]) # test UNet forward and outputs. The whole downsample rate is 16. unet = UNet( in_channels=3, - base_channels=64, + base_channels=4, num_stages=5, strides=(1, 2, 2, 1, 1), enc_num_convs=(2, 2, 2, 2, 2), @@ -737,16 +737,16 @@ def test_unet(): dec_dilations=(1, 1, 1, 1)) x = torch.randn(2, 3, 128, 128) x_outs = unet(x) - assert x_outs[0].shape == torch.Size([2, 1024, 8, 8]) - assert x_outs[1].shape == torch.Size([2, 512, 16, 16]) - assert x_outs[2].shape == torch.Size([2, 256, 32, 32]) - assert x_outs[3].shape == torch.Size([2, 128, 64, 64]) - assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) + assert x_outs[0].shape == torch.Size([2, 64, 8, 8]) + assert x_outs[1].shape == torch.Size([2, 32, 16, 16]) + assert x_outs[2].shape == torch.Size([2, 16, 32, 32]) + assert x_outs[3].shape == torch.Size([2, 8, 64, 64]) + assert x_outs[4].shape == torch.Size([2, 4, 128, 128]) # test UNet forward and outputs. The whole downsample rate is 8. unet = UNet( in_channels=3, - base_channels=64, + base_channels=4, num_stages=5, strides=(1, 2, 2, 1, 1), enc_num_convs=(2, 2, 2, 2, 2), @@ -756,16 +756,16 @@ def test_unet(): dec_dilations=(1, 1, 1, 1)) x = torch.randn(2, 3, 128, 128) x_outs = unet(x) - assert x_outs[0].shape == torch.Size([2, 1024, 16, 16]) - assert x_outs[1].shape == torch.Size([2, 512, 16, 16]) - assert x_outs[2].shape == torch.Size([2, 256, 32, 32]) - assert x_outs[3].shape == torch.Size([2, 128, 64, 64]) - assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) + assert x_outs[0].shape == torch.Size([2, 64, 16, 16]) + assert x_outs[1].shape == torch.Size([2, 32, 16, 16]) + assert x_outs[2].shape == torch.Size([2, 16, 32, 32]) + assert x_outs[3].shape == torch.Size([2, 8, 64, 64]) + assert x_outs[4].shape == torch.Size([2, 4, 128, 128]) # test UNet forward and outputs. The whole downsample rate is 8. unet = UNet( in_channels=3, - base_channels=64, + base_channels=4, num_stages=5, strides=(1, 2, 2, 2, 1), enc_num_convs=(2, 2, 2, 2, 2), @@ -775,16 +775,16 @@ def test_unet(): dec_dilations=(1, 1, 1, 1)) x = torch.randn(2, 3, 128, 128) x_outs = unet(x) - assert x_outs[0].shape == torch.Size([2, 1024, 16, 16]) - assert x_outs[1].shape == torch.Size([2, 512, 16, 16]) - assert x_outs[2].shape == torch.Size([2, 256, 32, 32]) - assert x_outs[3].shape == torch.Size([2, 128, 64, 64]) - assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) + assert x_outs[0].shape == torch.Size([2, 64, 16, 16]) + assert x_outs[1].shape == torch.Size([2, 32, 16, 16]) + assert x_outs[2].shape == torch.Size([2, 16, 32, 32]) + assert x_outs[3].shape == torch.Size([2, 8, 64, 64]) + assert x_outs[4].shape == torch.Size([2, 4, 128, 128]) # test UNet forward and outputs. The whole downsample rate is 4. unet = UNet( in_channels=3, - base_channels=64, + base_channels=4, num_stages=5, strides=(1, 2, 2, 1, 1), enc_num_convs=(2, 2, 2, 2, 2), @@ -794,16 +794,16 @@ def test_unet(): dec_dilations=(1, 1, 1, 1)) x = torch.randn(2, 3, 128, 128) x_outs = unet(x) - assert x_outs[0].shape == torch.Size([2, 1024, 32, 32]) - assert x_outs[1].shape == torch.Size([2, 512, 32, 32]) - assert x_outs[2].shape == torch.Size([2, 256, 32, 32]) - assert x_outs[3].shape == torch.Size([2, 128, 64, 64]) - assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) + assert x_outs[0].shape == torch.Size([2, 64, 32, 32]) + assert x_outs[1].shape == torch.Size([2, 32, 32, 32]) + assert x_outs[2].shape == torch.Size([2, 16, 32, 32]) + assert x_outs[3].shape == torch.Size([2, 8, 64, 64]) + assert x_outs[4].shape == torch.Size([2, 4, 128, 128]) # test UNet init_weights method. unet = UNet( in_channels=3, - base_channels=64, + base_channels=4, num_stages=5, strides=(1, 2, 2, 1, 1), enc_num_convs=(2, 2, 2, 2, 2), @@ -815,8 +815,8 @@ def test_unet(): unet.init_weights() x = torch.randn(2, 3, 128, 128) x_outs = unet(x) - assert x_outs[0].shape == torch.Size([2, 1024, 32, 32]) - assert x_outs[1].shape == torch.Size([2, 512, 32, 32]) - assert x_outs[2].shape == torch.Size([2, 256, 32, 32]) - assert x_outs[3].shape == torch.Size([2, 128, 64, 64]) - assert x_outs[4].shape == torch.Size([2, 64, 128, 128]) + assert x_outs[0].shape == torch.Size([2, 64, 32, 32]) + assert x_outs[1].shape == torch.Size([2, 32, 32, 32]) + assert x_outs[2].shape == torch.Size([2, 16, 32, 32]) + assert x_outs[3].shape == torch.Size([2, 8, 64, 64]) + assert x_outs[4].shape == torch.Size([2, 4, 128, 128]) diff --git a/tests/test_models/test_necks/test_ic_neck.py b/tests/test_models/test_necks/test_ic_neck.py new file mode 100644 index 0000000000..10b10609f9 --- /dev/null +++ b/tests/test_models/test_necks/test_ic_neck.py @@ -0,0 +1,53 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import pytest +import torch + +from mmseg.models.necks import ICNeck +from mmseg.models.necks.ic_neck import CascadeFeatureFusion +from ..test_heads.utils import _conv_has_norm, to_cuda + + +def test_ic_neck(): + # test with norm_cfg + neck = ICNeck( + in_channels=(64, 256, 256), + out_channels=128, + norm_cfg=dict(type='SyncBN'), + align_corners=False) + assert _conv_has_norm(neck, sync_bn=True) + + inputs = [ + torch.randn(1, 64, 128, 256), + torch.randn(1, 256, 65, 129), + torch.randn(1, 256, 32, 64) + ] + neck = ICNeck( + in_channels=(64, 256, 256), + out_channels=128, + norm_cfg=dict(type='BN', requires_grad=True), + align_corners=False) + if torch.cuda.is_available(): + neck, inputs = to_cuda(neck, inputs) + + outputs = neck(inputs) + assert outputs[0].shape == (1, 128, 65, 129) + assert outputs[1].shape == (1, 128, 128, 256) + assert outputs[1].shape == (1, 128, 128, 256) + + +def test_ic_neck_cascade_feature_fusion(): + cff = CascadeFeatureFusion(256, 256, 128) + assert cff.conv_low.in_channels == 256 + assert cff.conv_low.out_channels == 128 + assert cff.conv_high.in_channels == 256 + assert cff.conv_high.out_channels == 128 + + +def test_ic_neck_input_channels(): + with pytest.raises(AssertionError): + # ICNet Neck input channel constraints. + ICNeck( + in_channels=(64, 256, 256, 256), + out_channels=128, + norm_cfg=dict(type='BN', requires_grad=True), + align_corners=False) diff --git a/tools/benchmark_new.py b/tools/benchmark_new.py new file mode 100644 index 0000000000..e69de29bb2 From a9d1295bc3ba21d1c1e25ea69232b2706767369e Mon Sep 17 00:00:00 2001 From: MengzhangLI Date: Fri, 1 Oct 2021 02:41:24 +0800 Subject: [PATCH 254/706] [Feature] Support FastFCN (#885) * FastFCN first commit * FastFCN first commit * Fixing lint error * Fixing lint error * use for loop on JPU * Use For Loop * Refactor FastFCN * FastFCN * FastFCN * temp * Uploading models & logs (4x4) * Fixing typos * fix typos * rename config * change README.md * use _delete_=True * change configs * change start_level to 0 * change start_level to 0 * jpu * add unittest for start_level!=0 --- README.md | 1 + README_zh-CN.md | 1 + .../_base_/models/fastfcn_r50-d32_jpu_psp.py | 53 +++++++ configs/fastfcn/README.md | 41 ++++++ configs/fastfcn/fastfcn.yml | 126 +++++++++++++++++ ...32_jpu_aspp_4x4_512x1024_80k_cityscapes.py | 6 + ...50-d32_jpu_aspp_512x1024_80k_cityscapes.py | 20 +++ ...d32_jpu_enc_4x4_512x1024_80k_cityscapes.py | 6 + ...r50-d32_jpu_enc_512x1024_80k_cityscapes.py | 24 ++++ ...d32_jpu_psp_4x4_512x1024_80k_cityscapes.py | 9 ++ ...r50-d32_jpu_psp_512x1024_80k_cityscapes.py | 5 + mmseg/models/necks/__init__.py | 3 +- mmseg/models/necks/jpu.py | 131 ++++++++++++++++++ model-index.yml | 1 + tests/test_models/test_necks/test_jpu.py | 40 ++++++ 15 files changed, 466 insertions(+), 1 deletion(-) create mode 100644 configs/_base_/models/fastfcn_r50-d32_jpu_psp.py create mode 100644 configs/fastfcn/README.md create mode 100644 configs/fastfcn/fastfcn.yml create mode 100644 configs/fastfcn/fastfcn_r50-d32_jpu_aspp_4x4_512x1024_80k_cityscapes.py create mode 100644 configs/fastfcn/fastfcn_r50-d32_jpu_aspp_512x1024_80k_cityscapes.py create mode 100644 configs/fastfcn/fastfcn_r50-d32_jpu_enc_4x4_512x1024_80k_cityscapes.py create mode 100644 configs/fastfcn/fastfcn_r50-d32_jpu_enc_512x1024_80k_cityscapes.py create mode 100644 configs/fastfcn/fastfcn_r50-d32_jpu_psp_4x4_512x1024_80k_cityscapes.py create mode 100644 configs/fastfcn/fastfcn_r50-d32_jpu_psp_512x1024_80k_cityscapes.py create mode 100644 mmseg/models/necks/jpu.py create mode 100644 tests/test_models/test_necks/test_jpu.py diff --git a/README.md b/README.md index 7389577fe1..78f1a2d8bc 100644 --- a/README.md +++ b/README.md @@ -90,6 +90,7 @@ Supported methods: - [x] [DMNet (ICCV'2019)](configs/dmnet) - [x] [ANN (ICCV'2019)](configs/ann) - [x] [GCNet (ICCVW'2019/TPAMI'2020)](configs/gcnet) +- [x] [FastFCN (ArXiv'2019)](configs/fastfcn) - [x] [Fast-SCNN (ArXiv'2019)](configs/fastscnn) - [x] [ISANet (ArXiv'2019/IJCV'2021)](configs/isanet) - [x] [OCRNet (ECCV'2020)](configs/ocrnet) diff --git a/README_zh-CN.md b/README_zh-CN.md index 2622ed0f79..5ebef6f40e 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -89,6 +89,7 @@ MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 O - [x] [DMNet (ICCV'2019)](configs/dmnet) - [x] [ANN (ICCV'2019)](configs/ann) - [x] [GCNet (ICCVW'2019/TPAMI'2020)](configs/gcnet) +- [x] [FastFCN (ArXiv'2019)](configs/fastfcn) - [x] [Fast-SCNN (ArXiv'2019)](configs/fastscnn) - [x] [ISANet (ArXiv'2019/IJCV'2021)](configs/isanet) - [x] [OCRNet (ECCV'2020)](configs/ocrnet) diff --git a/configs/_base_/models/fastfcn_r50-d32_jpu_psp.py b/configs/_base_/models/fastfcn_r50-d32_jpu_psp.py new file mode 100644 index 0000000000..9dc8609aeb --- /dev/null +++ b/configs/_base_/models/fastfcn_r50-d32_jpu_psp.py @@ -0,0 +1,53 @@ +# model settings +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + type='EncoderDecoder', + pretrained='open-mmlab://resnet50_v1c', + backbone=dict( + type='ResNetV1c', + depth=50, + num_stages=4, + dilations=(1, 1, 2, 4), + strides=(1, 2, 2, 2), + out_indices=(1, 2, 3), + norm_cfg=norm_cfg, + norm_eval=False, + style='pytorch', + contract_dilation=True), + neck=dict( + type='JPU', + in_channels=(512, 1024, 2048), + mid_channels=512, + start_level=0, + end_level=-1, + dilations=(1, 2, 4, 8), + align_corners=False, + norm_cfg=norm_cfg), + decode_head=dict( + type='PSPHead', + in_channels=2048, + in_index=2, + channels=512, + pool_scales=(1, 2, 3, 6), + dropout_ratio=0.1, + num_classes=19, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + auxiliary_head=dict( + type='FCNHead', + in_channels=1024, + in_index=1, + channels=256, + num_convs=1, + concat_input=False, + dropout_ratio=0.1, + num_classes=19, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/fastfcn/README.md b/configs/fastfcn/README.md new file mode 100644 index 0000000000..768502b05f --- /dev/null +++ b/configs/fastfcn/README.md @@ -0,0 +1,41 @@ +# FastFCN: Rethinking Dilated Convolution in the Backbone for Semantic Segmentation + +## Introduction + + + +Official Repo + +Code Snippet + +
+FastFCN (ArXiv'2019) + +```latex +@article{wu2019fastfcn, +title={Fastfcn: Rethinking dilated convolution in the backbone for semantic segmentation}, +author={Wu, Huikai and Zhang, Junge and Huang, Kaiqi and Liang, Kongming and Yu, Yizhou}, +journal={arXiv preprint arXiv:1903.11816}, +year={2019} +} +``` + +
+ +## Results and models + +### Cityscapes + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| --------- | --------- | --------- | ------: | -------- | -------------- | ----: | ------------- | --------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| DeepLabV3 + JPU | R-50-D32 | 512x1024 | 80000 | 5.67 | 2.64 | 79.12 | 80.58 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fastfcn/fastfcn_r50-d32_jpu_aspp_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_aspp_512x1024_80k_cityscapes/fastfcn_r50-d32_jpu_aspp_512x1024_80k_cityscapes_20210928_053722-5d1a2648.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_aspp_512x1024_80k_cityscapes/fastfcn_r50-d32_jpu_aspp_512x1024_80k_cityscapes_20210928_053722.log.json) | +| DeepLabV3 + JPU (4x4) | R-50-D32 | 512x1024 | 80000 | 9.79 | - | 79.52 | 80.91 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fastfcn/fastfcn_r50-d32_jpu_aspp_4x4_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_aspp_4x4_512x1024_80k_cityscapes/fastfcn_r50-d32_jpu_aspp_4x4_512x1024_80k_cityscapes_20210924_214357-72220849.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_aspp_4x4_512x1024_80k_cityscapes/fastfcn_r50-d32_jpu_aspp_4x4_512x1024_80k_cityscapes_20210924_214357.log.json) | +| PSPNet + JPU | R-50-D32 | 512x1024 | 80000 | 5.67 | 4.40 | 79.26 | 80.86 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fastfcn/fastfcn_r50-d32_jpu_psp_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn/fastfcn_r50-d32_jpu_psp_512x1024_80k_cityscapes/fastfcn_r50-d32_jpu_psp_512x1024_80k_cityscapes_20210928_053722-57749bed.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_psp_512x1024_80k_cityscapes/fastfcn_r50-d32_jpu_psp_512x1024_80k_cityscapes_20210928_053722.log.json) | +| PSPNet + JPU (4x4) | R-50-D32 | 512x1024 | 80000 | 9.94 | - | 78.76 | 80.03 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fastfcn/fastfcn_r50-d32_jpu_psp_4x4_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_psp_4x4_512x1024_80k_cityscapes/fastfcn_r50-d32_jpu_psp_4x4_512x1024_80k_cityscapes_20210925_061841-77e87b0a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_psp_4x4_512x1024_80k_cityscapes/fastfcn_r50-d32_jpu_psp_4x4_512x1024_80k_cityscapes_20210925_061841.log.json) | +| EncNet + JPU | R-50-D32 | 512x1024 | 80000 | 8.15 | 4.77 | 77.97 |79.92 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fastfcn/fastfcn_r50-d32_jpu_enc_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_enc_512x1024_80k_cityscapes/fastfcn_r50-d32_jpu_enc_512x1024_80k_cityscapes_20210928_030036-78da5046.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_enc_512x1024_80k_cityscapes/fastfcn_r50-d32_jpu_enc_512x1024_80k_cityscapes_20210928_030036.log.json) | +| EncNet + JPU (4x4)| R-50-D32 | 512x1024 | 80000 | 15.45 | - | 78.6 | 80.25 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fastfcn/fastfcn_r50-d32_jpu_enc_4x4_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_enc_4x4_512x1024_80k_cityscapes/fastfcn_r50-d32_jpu_enc_4x4_512x1024_80k_cityscapes_20210926_093217-e1eb6dbb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_enc_4x4_512x1024_80k_cityscapes/fastfcn_r50-d32_jpu_enc_4x4_512x1024_80k_cityscapes_20210926_093217.log.json) | + +Note: + +- `4x4` means 4 GPUs with 4 samples per GPU in training, default setting is 4 GPUs with 2 samples per GPU in training. +- Results of [DeepLabV3 (mIoU: 79.32)](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3), [PSPNet (mIoU: 78.55)](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet) and [ENCNet (mIoU: 77.94)](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet) can be found in each original repository. diff --git a/configs/fastfcn/fastfcn.yml b/configs/fastfcn/fastfcn.yml new file mode 100644 index 0000000000..5af2b64a97 --- /dev/null +++ b/configs/fastfcn/fastfcn.yml @@ -0,0 +1,126 @@ +Collections: +- Name: fastfcn + Metadata: + Training Data: + - Cityscapes + Paper: + URL: https://arxiv.org/abs/1903.11816 + Title: 'FastFCN: Rethinking Dilated Convolution in the Backbone for Semantic Segmentation' + README: configs/fastfcn/README.md + Code: + URL: https://github.com/open-mmlab/mmsegmentation/blob/v0.18.0/mmseg/models/necks/jpu.py#L12 + Version: v0.18.0 + Converted From: + Code: https://github.com/wuhuikai/FastFCN +Models: +- Name: fastfcn_r50-d32_jpu_aspp_512x1024_80k_cityscapes + In Collection: fastfcn + Metadata: + backbone: R-50-D32 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 378.79 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 5.67 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.12 + mIoU(ms+flip): 80.58 + Config: configs/fastfcn/fastfcn_r50-d32_jpu_aspp_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_aspp_512x1024_80k_cityscapes/fastfcn_r50-d32_jpu_aspp_512x1024_80k_cityscapes_20210928_053722-5d1a2648.pth +- Name: fastfcn_r50-d32_jpu_aspp_4x4_512x1024_80k_cityscapes + In Collection: fastfcn + Metadata: + backbone: R-50-D32 + crop size: (512,1024) + lr schd: 80000 + memory (GB): 9.79 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.52 + mIoU(ms+flip): 80.91 + Config: configs/fastfcn/fastfcn_r50-d32_jpu_aspp_4x4_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_aspp_4x4_512x1024_80k_cityscapes/fastfcn_r50-d32_jpu_aspp_4x4_512x1024_80k_cityscapes_20210924_214357-72220849.pth +- Name: fastfcn_r50-d32_jpu_psp_512x1024_80k_cityscapes + In Collection: fastfcn + Metadata: + backbone: R-50-D32 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 227.27 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 5.67 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.26 + mIoU(ms+flip): 80.86 + Config: configs/fastfcn/fastfcn_r50-d32_jpu_psp_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn/fastfcn_r50-d32_jpu_psp_512x1024_80k_cityscapes/fastfcn_r50-d32_jpu_psp_512x1024_80k_cityscapes_20210928_053722-57749bed.pth +- Name: fastfcn_r50-d32_jpu_psp_4x4_512x1024_80k_cityscapes + In Collection: fastfcn + Metadata: + backbone: R-50-D32 + crop size: (512,1024) + lr schd: 80000 + memory (GB): 9.94 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.76 + mIoU(ms+flip): 80.03 + Config: configs/fastfcn/fastfcn_r50-d32_jpu_psp_4x4_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_psp_4x4_512x1024_80k_cityscapes/fastfcn_r50-d32_jpu_psp_4x4_512x1024_80k_cityscapes_20210925_061841-77e87b0a.pth +- Name: fastfcn_r50-d32_jpu_enc_512x1024_80k_cityscapes + In Collection: fastfcn + Metadata: + backbone: R-50-D32 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 209.64 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 8.15 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.97 + mIoU(ms+flip): 79.92 + Config: configs/fastfcn/fastfcn_r50-d32_jpu_enc_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_enc_512x1024_80k_cityscapes/fastfcn_r50-d32_jpu_enc_512x1024_80k_cityscapes_20210928_030036-78da5046.pth +- Name: fastfcn_r50-d32_jpu_enc_4x4_512x1024_80k_cityscapes + In Collection: fastfcn + Metadata: + backbone: R-50-D32 + crop size: (512,1024) + lr schd: 80000 + memory (GB): 15.45 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.6 + mIoU(ms+flip): 80.25 + Config: configs/fastfcn/fastfcn_r50-d32_jpu_enc_4x4_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_enc_4x4_512x1024_80k_cityscapes/fastfcn_r50-d32_jpu_enc_4x4_512x1024_80k_cityscapes_20210926_093217-e1eb6dbb.pth diff --git a/configs/fastfcn/fastfcn_r50-d32_jpu_aspp_4x4_512x1024_80k_cityscapes.py b/configs/fastfcn/fastfcn_r50-d32_jpu_aspp_4x4_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..87fc274dc5 --- /dev/null +++ b/configs/fastfcn/fastfcn_r50-d32_jpu_aspp_4x4_512x1024_80k_cityscapes.py @@ -0,0 +1,6 @@ +# model settings +_base_ = './fastfcn_r50-d32_jpu_aspp_512x1024_80k_cityscapes.py' +data = dict( + samples_per_gpu=4, + workers_per_gpu=4, +) diff --git a/configs/fastfcn/fastfcn_r50-d32_jpu_aspp_512x1024_80k_cityscapes.py b/configs/fastfcn/fastfcn_r50-d32_jpu_aspp_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..dc86da3b6f --- /dev/null +++ b/configs/fastfcn/fastfcn_r50-d32_jpu_aspp_512x1024_80k_cityscapes.py @@ -0,0 +1,20 @@ +# model settings +_base_ = './fastfcn_r50-d32_jpu_psp_512x1024_80k_cityscapes.py' +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + decode_head=dict( + _delete_=True, + type='ASPPHead', + in_channels=2048, + in_index=2, + channels=512, + dilations=(1, 12, 24, 36), + dropout_ratio=0.1, + num_classes=19, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/fastfcn/fastfcn_r50-d32_jpu_enc_4x4_512x1024_80k_cityscapes.py b/configs/fastfcn/fastfcn_r50-d32_jpu_enc_4x4_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..59d294b5f4 --- /dev/null +++ b/configs/fastfcn/fastfcn_r50-d32_jpu_enc_4x4_512x1024_80k_cityscapes.py @@ -0,0 +1,6 @@ +# model settings +_base_ = './fastfcn_r50-d32_jpu_enc_512x1024_80k_cityscapes.py' +data = dict( + samples_per_gpu=4, + workers_per_gpu=4, +) diff --git a/configs/fastfcn/fastfcn_r50-d32_jpu_enc_512x1024_80k_cityscapes.py b/configs/fastfcn/fastfcn_r50-d32_jpu_enc_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..cc68edfe5b --- /dev/null +++ b/configs/fastfcn/fastfcn_r50-d32_jpu_enc_512x1024_80k_cityscapes.py @@ -0,0 +1,24 @@ +# model settings +_base_ = './fastfcn_r50-d32_jpu_psp_512x1024_80k_cityscapes.py' +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + decode_head=dict( + _delete_=True, + type='EncHead', + in_channels=[512, 1024, 2048], + in_index=(0, 1, 2), + channels=512, + num_codes=32, + use_se_loss=True, + add_lateral=False, + dropout_ratio=0.1, + num_classes=19, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0), + loss_se_decode=dict( + type='CrossEntropyLoss', use_sigmoid=True, loss_weight=0.2)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/fastfcn/fastfcn_r50-d32_jpu_psp_4x4_512x1024_80k_cityscapes.py b/configs/fastfcn/fastfcn_r50-d32_jpu_psp_4x4_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..5fe5ca16b1 --- /dev/null +++ b/configs/fastfcn/fastfcn_r50-d32_jpu_psp_4x4_512x1024_80k_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = [ + '../_base_/models/fastfcn_r50-d32_jpu_psp.py', + '../_base_/datasets/cityscapes.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_80k.py' +] +data = dict( + samples_per_gpu=4, + workers_per_gpu=4, +) diff --git a/configs/fastfcn/fastfcn_r50-d32_jpu_psp_512x1024_80k_cityscapes.py b/configs/fastfcn/fastfcn_r50-d32_jpu_psp_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..e7637fabed --- /dev/null +++ b/configs/fastfcn/fastfcn_r50-d32_jpu_psp_512x1024_80k_cityscapes.py @@ -0,0 +1,5 @@ +_base_ = [ + '../_base_/models/fastfcn_r50-d32_jpu_psp.py', + '../_base_/datasets/cityscapes.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_80k.py' +] diff --git a/mmseg/models/necks/__init__.py b/mmseg/models/necks/__init__.py index 15edad493c..aba73f165b 100644 --- a/mmseg/models/necks/__init__.py +++ b/mmseg/models/necks/__init__.py @@ -1,7 +1,8 @@ # Copyright (c) OpenMMLab. All rights reserved. from .fpn import FPN from .ic_neck import ICNeck +from .jpu import JPU from .mla_neck import MLANeck from .multilevel_neck import MultiLevelNeck -__all__ = ['FPN', 'MultiLevelNeck', 'MLANeck', 'ICNeck'] +__all__ = ['FPN', 'MultiLevelNeck', 'MLANeck', 'ICNeck', 'JPU'] diff --git a/mmseg/models/necks/jpu.py b/mmseg/models/necks/jpu.py new file mode 100644 index 0000000000..3cc6b9f428 --- /dev/null +++ b/mmseg/models/necks/jpu.py @@ -0,0 +1,131 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +import torch.nn as nn +from mmcv.cnn import ConvModule, DepthwiseSeparableConvModule +from mmcv.runner import BaseModule + +from mmseg.ops import resize +from ..builder import NECKS + + +@NECKS.register_module() +class JPU(BaseModule): + """FastFCN: Rethinking Dilated Convolution in the Backbone + for Semantic Segmentation. + + This Joint Pyramid Upsampling (JPU) neck is the implementation of + `FastFCN `_. + + Args: + in_channels (Tuple[int], optional): The number of input channels + for each convolution operations before upsampling. + Default: (512, 1024, 2048). + mid_channels (int): The number of output channels of JPU. + Default: 512. + start_level (int): Index of the start input backbone level used to + build the feature pyramid. Default: 0. + end_level (int): Index of the end input backbone level (exclusive) to + build the feature pyramid. Default: -1, which means the last level. + dilations (tuple[int]): Dilation rate of each Depthwise + Separable ConvModule. Default: (1, 2, 4, 8). + align_corners (bool, optional): The align_corners argument of + resize operation. Default: False. + conv_cfg (dict | None): Config of conv layers. + Default: None. + norm_cfg (dict | None): Config of norm layers. + Default: dict(type='BN'). + act_cfg (dict): Config of activation layers. + Default: dict(type='ReLU'). + init_cfg (dict or list[dict], optional): Initialization config dict. + Default: None. + """ + + def __init__(self, + in_channels=(512, 1024, 2048), + mid_channels=512, + start_level=0, + end_level=-1, + dilations=(1, 2, 4, 8), + align_corners=False, + conv_cfg=None, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + init_cfg=None): + super(JPU, self).__init__(init_cfg=init_cfg) + assert isinstance(in_channels, tuple) + assert isinstance(dilations, tuple) + self.in_channels = in_channels + self.mid_channels = mid_channels + self.start_level = start_level + self.num_ins = len(in_channels) + if end_level == -1: + self.backbone_end_level = self.num_ins + else: + self.backbone_end_level = end_level + assert end_level <= len(in_channels) + + self.dilations = dilations + self.align_corners = align_corners + + self.conv_layers = nn.ModuleList() + self.dilation_layers = nn.ModuleList() + for i in range(self.start_level, self.backbone_end_level): + conv_layer = nn.Sequential( + ConvModule( + self.in_channels[i], + self.mid_channels, + kernel_size=3, + padding=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg)) + self.conv_layers.append(conv_layer) + for i in range(len(dilations)): + dilation_layer = nn.Sequential( + DepthwiseSeparableConvModule( + in_channels=(self.backbone_end_level - self.start_level) * + self.mid_channels, + out_channels=self.mid_channels, + kernel_size=3, + stride=1, + padding=dilations[i], + dilation=dilations[i], + dw_norm_cfg=norm_cfg, + dw_act_cfg=None, + pw_norm_cfg=norm_cfg, + pw_act_cfg=act_cfg)) + self.dilation_layers.append(dilation_layer) + + def forward(self, inputs): + """Forward function.""" + assert len(inputs) == len(self.in_channels), 'Length of inputs must \ + be the same with self.in_channels!' + + feats = [ + self.conv_layers[i - self.start_level](inputs[i]) + for i in range(self.start_level, self.backbone_end_level) + ] + + h, w = feats[0].shape[2:] + for i in range(1, len(feats)): + feats[i] = resize( + feats[i], + size=(h, w), + mode='bilinear', + align_corners=self.align_corners) + + feat = torch.cat(feats, dim=1) + concat_feat = torch.cat([ + self.dilation_layers[i](feat) for i in range(len(self.dilations)) + ], + dim=1) + + outs = [] + + # Default: outs[2] is the output of JPU for decoder head, outs[1] is + # the feature map from backbone for auxiliary head. Additionally, + # outs[0] can also be used for auxiliary head. + for i in range(self.start_level, self.backbone_end_level - 1): + outs.append(inputs[i]) + outs.append(concat_feat) + return tuple(outs) diff --git a/model-index.yml b/model-index.yml index f0f9bb80e9..00da8d6a2a 100644 --- a/model-index.yml +++ b/model-index.yml @@ -13,6 +13,7 @@ Import: - configs/dpt/dpt.yml - configs/emanet/emanet.yml - configs/encnet/encnet.yml +- configs/fastfcn/fastfcn.yml - configs/fastscnn/fastscnn.yml - configs/fcn/fcn.yml - configs/fp16/fp16.yml diff --git a/tests/test_models/test_necks/test_jpu.py b/tests/test_models/test_necks/test_jpu.py new file mode 100644 index 0000000000..88637044c6 --- /dev/null +++ b/tests/test_models/test_necks/test_jpu.py @@ -0,0 +1,40 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import pytest +import torch + +from mmseg.models.necks import JPU + + +def test_fastfcn_neck(): + # Test FastFCN Standard Forward + model = JPU() + model.init_weights() + model.train() + batch_size = 1 + input = [ + torch.randn(batch_size, 512, 64, 128), + torch.randn(batch_size, 1024, 32, 64), + torch.randn(batch_size, 2048, 16, 32) + ] + feat = model(input) + + assert len(feat) == 3 + assert feat[0].shape == torch.Size([batch_size, 512, 64, 128]) + assert feat[1].shape == torch.Size([batch_size, 1024, 32, 64]) + assert feat[2].shape == torch.Size([batch_size, 2048, 64, 128]) + + with pytest.raises(AssertionError): + # FastFCN input and in_channels constraints. + JPU(in_channels=(256, 512, 1024), start_level=0, end_level=5) + + # Test not default start_level + model = JPU(in_channels=(512, 1024, 2048), start_level=1, end_level=-1) + input = [ + torch.randn(batch_size, 512, 64, 128), + torch.randn(batch_size, 1024, 32, 64), + torch.randn(batch_size, 2048, 16, 32) + ] + feat = model(input) + assert len(feat) == 2 + assert feat[0].shape == torch.Size([batch_size, 1024, 32, 64]) + assert feat[1].shape == torch.Size([batch_size, 2048, 32, 64]) From fcc1c3b166048d5083006369addf0d1f9fb8602d Mon Sep 17 00:00:00 2001 From: VoyagerXVoyagerXisavailable <67947949+VoyagerXVoyagerXisavailable@users.noreply.github.com> Date: Sun, 3 Oct 2021 23:55:25 +0800 Subject: [PATCH 255/706] =?UTF-8?q?replace=20the=20unavailable=20pspnet=20?= =?UTF-8?q?model=20download=20address=20with=20the=20update=E2=80=A6=20(#9?= =?UTF-8?q?34)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * replace the unavailable pspnet model download address with the updated address * replace the unavailable pspnet model download address with the updated address --- demo/MMSegmentation_Tutorial.ipynb | 704 +++++------------------------ 1 file changed, 117 insertions(+), 587 deletions(-) diff --git a/demo/MMSegmentation_Tutorial.ipynb b/demo/MMSegmentation_Tutorial.ipynb index b173c9d554..b428fc9431 100644 --- a/demo/MMSegmentation_Tutorial.ipynb +++ b/demo/MMSegmentation_Tutorial.ipynb @@ -1,34 +1,10 @@ { - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "colab": { - "name": "MMSegmentation Tutorial.ipynb", - "provenance": [], - "collapsed_sections": [], - "include_colab_link": true - }, - "kernelspec": { - "name": "python3", - "display_name": "Python 3" - }, - "accelerator": "GPU", - "pycharm": { - "stem_cell": { - "cell_type": "raw", - "source": [], - "metadata": { - "collapsed": false - } - } - } - }, "cells": [ { "cell_type": "markdown", "metadata": { - "id": "view-in-github", - "colab_type": "text" + "colab_type": "text", + "id": "view-in-github" }, "source": [ "\"Open" @@ -62,159 +38,77 @@ }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "UWyLrLYaNEaL", "colab": { "base_uri": "https://localhost:8080/" }, + "id": "UWyLrLYaNEaL", "outputId": "32a47fe3-f10d-47a1-f6b9-b7c235abdab1" }, + "outputs": [], "source": [ - "# Check nvcc version\n", - "!nvcc -V\n", - "# Check GCC version\n", + "# Check nvcc version\r\n", + "!nvcc -V\r\n", + "# Check GCC version\r\n", "!gcc --version" - ], - "execution_count": 1, - "outputs": [ - { - "output_type": "stream", - "text": [ - "nvcc: NVIDIA (R) Cuda compiler driver\n", - "Copyright (c) 2005-2020 NVIDIA Corporation\n", - "Built on Wed_Jul_22_19:09:09_PDT_2020\n", - "Cuda compilation tools, release 11.0, V11.0.221\n", - "Build cuda_11.0_bu.TC445_37.28845127_0\n", - "gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0\n", - "Copyright (C) 2017 Free Software Foundation, Inc.\n", - "This is free software; see the source for copying conditions. There is NO\n", - "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n", - "\n" - ], - "name": "stdout" - } ] }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "Ki3WUBjKbutg", "colab": { "base_uri": "https://localhost:8080/" }, + "id": "Ki3WUBjKbutg", "outputId": "14bd14b0-4d8c-4fa9-e3f9-da35c0efc0d5" }, + "outputs": [], "source": [ - "# Install PyTorch\n", - "!pip install -U torch==1.5.0+cu101 torchvision==0.6.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html\n", - "# Install MMCV\n", + "# Install PyTorch\r\n", + "!pip install -U torch==1.5.0+cu101 torchvision==0.6.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html\r\n", + "# Install MMCV\r\n", "!pip install mmcv-full==latest+torch1.5.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html" - ], - "execution_count": 2, - "outputs": [ - { - "output_type": "stream", - "text": [ - "Looking in links: https://download.pytorch.org/whl/torch_stable.html\n", - "Requirement already up-to-date: torch==1.5.0+cu101 in /usr/local/lib/python3.7/dist-packages (1.5.0+cu101)\n", - "Requirement already up-to-date: torchvision==0.6.0+cu101 in /usr/local/lib/python3.7/dist-packages (0.6.0+cu101)\n", - "Requirement already satisfied, skipping upgrade: numpy in /usr/local/lib/python3.7/dist-packages (from torch==1.5.0+cu101) (1.19.5)\n", - "Requirement already satisfied, skipping upgrade: future in /usr/local/lib/python3.7/dist-packages (from torch==1.5.0+cu101) (0.16.0)\n", - "Requirement already satisfied, skipping upgrade: pillow>=4.1.1 in /usr/local/lib/python3.7/dist-packages (from torchvision==0.6.0+cu101) (7.1.2)\n", - "Looking in links: https://download.openmmlab.com/mmcv/dist/index.html\n", - "Collecting mmcv-full==latest+torch1.5.0+cu101\n", - " Using cached https://download.openmmlab.com/mmcv/dist/1.3.0/torch1.5.0/cu101/mmcv_full-latest%2Btorch1.5.0%2Bcu101-cp37-cp37m-manylinux1_x86_64.whl\n", - "Requirement already satisfied: Pillow in /usr/local/lib/python3.7/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (7.1.2)\n", - "Requirement already satisfied: addict in /usr/local/lib/python3.7/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (2.4.0)\n", - "Requirement already satisfied: yapf in /usr/local/lib/python3.7/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (0.31.0)\n", - "Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (1.19.5)\n", - "Requirement already satisfied: opencv-python>=3 in /usr/local/lib/python3.7/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (4.1.2.30)\n", - "Requirement already satisfied: pyyaml in /usr/local/lib/python3.7/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (3.13)\n", - "Installing collected packages: mmcv-full\n", - " Found existing installation: mmcv-full 1.3.0\n", - " Uninstalling mmcv-full-1.3.0:\n", - " Successfully uninstalled mmcv-full-1.3.0\n", - "Successfully installed mmcv-full-1.3.0\n" - ], - "name": "stdout" - } ] }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "nR-hHRvbNJJZ", "colab": { "base_uri": "https://localhost:8080/" }, + "id": "nR-hHRvbNJJZ", "outputId": "10c3b131-d4db-458c-fc10-b94b1c6ed546" }, + "outputs": [], "source": [ - "!rm -rf mmsegmentation\n", - "!git clone https://github.com/open-mmlab/mmsegmentation.git \n", - "%cd mmsegmentation\n", + "!rm -rf mmsegmentation\r\n", + "!git clone https://github.com/open-mmlab/mmsegmentation.git \r\n", + "%cd mmsegmentation\r\n", "!pip install -e ." - ], - "execution_count": 3, - "outputs": [ - { - "output_type": "stream", - "text": [ - "Cloning into 'mmsegmentation'...\n", - "remote: Enumerating objects: 64, done.\u001B[K\n", - "remote: Counting objects: 100% (64/64), done.\u001B[K\n", - "remote: Compressing objects: 100% (60/60), done.\u001B[K\n", - "remote: Total 2194 (delta 17), reused 12 (delta 4), pack-reused 2130\u001B[K\n", - "Receiving objects: 100% (2194/2194), 3.35 MiB | 26.82 MiB/s, done.\n", - "Resolving deltas: 100% (1536/1536), done.\n", - "/content/mmsegmentation\n", - "Obtaining file:///content/mmsegmentation\n", - "Requirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from mmsegmentation==0.12.0) (3.2.2)\n", - "Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from mmsegmentation==0.12.0) (1.19.5)\n", - "Requirement already satisfied: terminaltables in /usr/local/lib/python3.7/dist-packages (from mmsegmentation==0.12.0) (3.1.0)\n", - "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmsegmentation==0.12.0) (2.8.1)\n", - "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmsegmentation==0.12.0) (0.10.0)\n", - "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmsegmentation==0.12.0) (1.3.1)\n", - "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmsegmentation==0.12.0) (2.4.7)\n", - "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.1->matplotlib->mmsegmentation==0.12.0) (1.15.0)\n", - "Installing collected packages: mmsegmentation\n", - " Found existing installation: mmsegmentation 0.12.0\n", - " Can't uninstall 'mmsegmentation'. No files were found to uninstall.\n", - " Running setup.py develop for mmsegmentation\n", - "Successfully installed mmsegmentation\n" - ], - "name": "stdout" - } ] }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "mAE_h7XhPT7d", "colab": { "base_uri": "https://localhost:8080/" }, + "id": "mAE_h7XhPT7d", "outputId": "83bf0f8e-fc69-40b1-f9fe-0025724a217c" }, + "outputs": [], "source": [ - "# Check Pytorch installation\n", - "import torch, torchvision\n", - "print(torch.__version__, torch.cuda.is_available())\n", - "\n", - "# Check MMSegmentation installation\n", - "import mmseg\n", + "# Check Pytorch installation\r\n", + "import torch, torchvision\r\n", + "print(torch.__version__, torch.cuda.is_available())\r\n", + "\r\n", + "# Check MMSegmentation installation\r\n", + "import mmseg\r\n", "print(mmseg.__version__)" - ], - "execution_count": 4, - "outputs": [ - { - "output_type": "stream", - "text": [ - "1.5.0+cu101 True\n", - "0.12.0\n" - ], - "name": "stdout" - } ] }, { @@ -228,136 +122,88 @@ }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "2hd41IGaiNet", "colab": { "base_uri": "https://localhost:8080/" }, + "id": "2hd41IGaiNet", "outputId": "b7b2aafc-edf2-43e4-ea43-0b5dd0aa4b4a" }, + "outputs": [], "source": [ - "!mkdir checkpoints\n", - "!wget https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth -P checkpoints" - ], - "execution_count": 5, - "outputs": [ - { - "output_type": "stream", - "text": [ - "--2021-04-07 22:14:41-- https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth\n", - "Resolving open-mmlab.s3.ap-northeast-2.amazonaws.com (open-mmlab.s3.ap-northeast-2.amazonaws.com)... 52.219.58.127\n", - "Connecting to open-mmlab.s3.ap-northeast-2.amazonaws.com (open-mmlab.s3.ap-northeast-2.amazonaws.com)|52.219.58.127|:443... connected.\n", - "HTTP request sent, awaiting response... 200 OK\n", - "Length: 196205945 (187M) [application/x-www-form-urlencoded]\n", - "Saving to: ‘checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth’\n", - "\n", - "pspnet_r50-d8_512x1 100%[===================>] 187.12M 15.8MB/s in 13s \n", - "\n", - "2021-04-07 22:14:54 (14.2 MB/s) - ‘checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth’ saved [196205945/196205945]\n", - "\n" - ], - "name": "stdout" - } + "!mkdir checkpoints\r\n", + "!wget https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth -P checkpoints" ] }, { "cell_type": "code", + "execution_count": null, "metadata": { "id": "H8Fxg8i-wHJE" }, + "outputs": [], "source": [ - "from mmseg.apis import inference_segmentor, init_segmentor, show_result_pyplot\n", + "from mmseg.apis import inference_segmentor, init_segmentor, show_result_pyplot\r\n", "from mmseg.core.evaluation import get_palette" - ], - "execution_count": 6, - "outputs": [] + ] }, { "cell_type": "code", + "execution_count": null, "metadata": { "id": "umk8sJ0Xuace" }, + "outputs": [], "source": [ - "config_file = 'configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py'\n", + "config_file = 'configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py'\r\n", "checkpoint_file = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'" - ], - "execution_count": 7, - "outputs": [] + ] }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "nWlQFuTgudxu", "colab": { "base_uri": "https://localhost:8080/" }, + "id": "nWlQFuTgudxu", "outputId": "5e45f4f6-5bcf-4d04-bb9c-0428ee84a576" }, + "outputs": [], "source": [ - "# build the model from a config file and a checkpoint file\n", + "# build the model from a config file and a checkpoint file\r\n", "model = init_segmentor(config_file, checkpoint_file, device='cuda:0')" - ], - "execution_count": 8, - "outputs": [ - { - "output_type": "stream", - "text": [ - "Use load_from_local loader\n" - ], - "name": "stdout" - } ] }, { "cell_type": "code", + "execution_count": null, "metadata": { "id": "izFv6pSRujk9" }, + "outputs": [], "source": [ "# test a single image\n", "img = 'demo/demo.png'\n", "result = inference_segmentor(model, img)" - ], - "execution_count": 9, - "outputs": [] + ] }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "bDcs9udgunQK", "colab": { "base_uri": "https://localhost:8080/", "height": 504 }, + "id": "bDcs9udgunQK", "outputId": "7c55f713-4085-47fd-fa06-720a321d0795" }, + "outputs": [], "source": [ - "# show the results\n", + "# show the results\r\n", "show_result_pyplot(model, img, result, get_palette('cityscapes'))" - ], - "execution_count": 10, - "outputs": [ - { - "output_type": "stream", - "text": [ - "/content/mmsegmentation/mmseg/models/segmentors/base.py:271: UserWarning: show==False and out_file is not specified, only result image will be returned\n", - " warnings.warn('show==False and out_file is not specified, only '\n" - ], - "name": "stderr" - }, - { - "output_type": "display_data", - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "tags": [], - "needs_background": "light" - } - } ] }, { @@ -392,74 +238,42 @@ }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "TFIt7MHq5Wls", "colab": { "base_uri": "https://localhost:8080/" }, + "id": "TFIt7MHq5Wls", "outputId": "74a126e4-c8a4-4d2f-a910-b58b71843a23" }, + "outputs": [], "source": [ - "# download and unzip\n", - "!wget http://dags.stanford.edu/data/iccv09Data.tar.gz -O standford_background.tar.gz\n", + "# download and unzip\r\n", + "!wget http://dags.stanford.edu/data/iccv09Data.tar.gz -O standford_background.tar.gz\r\n", "!tar xf standford_background.tar.gz" - ], - "execution_count": 11, - "outputs": [ - { - "output_type": "stream", - "text": [ - "--2021-04-07 22:15:00-- http://dags.stanford.edu/data/iccv09Data.tar.gz\n", - "Resolving dags.stanford.edu (dags.stanford.edu)... 171.64.68.10\n", - "Connecting to dags.stanford.edu (dags.stanford.edu)|171.64.68.10|:80... connected.\n", - "HTTP request sent, awaiting response... 200 OK\n", - "Length: 14727974 (14M) [application/x-gzip]\n", - "Saving to: ‘standford_background.tar.gz’\n", - "\n", - "standford_backgroun 100%[===================>] 14.04M 23.4MB/s in 0.6s \n", - "\n", - "2021-04-07 22:15:00 (23.4 MB/s) - ‘standford_background.tar.gz’ saved [14727974/14727974]\n", - "\n" - ], - "name": "stdout" - } ] }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "78LIci7F9WWI", "colab": { "base_uri": "https://localhost:8080/", "height": 377 }, + "id": "78LIci7F9WWI", "outputId": "c432ddac-5a50-47b1-daac-5a26b07afea2" }, + "outputs": [], "source": [ - "# Let's take a look at the dataset\n", - "import mmcv\n", - "import matplotlib.pyplot as plt\n", - "\n", - "img = mmcv.imread('iccv09Data/images/6000124.jpg')\n", - "plt.figure(figsize=(8, 6))\n", - "plt.imshow(mmcv.bgr2rgb(img))\n", + "# Let's take a look at the dataset\r\n", + "import mmcv\r\n", + "import matplotlib.pyplot as plt\r\n", + "\r\n", + "img = mmcv.imread('iccv09Data/images/6000124.jpg')\r\n", + "plt.figure(figsize=(8, 6))\r\n", + "plt.imshow(mmcv.bgr2rgb(img))\r\n", "plt.show()" - ], - "execution_count": 12, - "outputs": [ - { - "output_type": "display_data", - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "tags": [], - "needs_background": "light" - } - } ] }, { @@ -473,9 +287,11 @@ }, { "cell_type": "code", + "execution_count": null, "metadata": { "id": "WnGZfribFHCx" }, + "outputs": [], "source": [ "import os.path as osp\n", "import numpy as np\n", @@ -494,20 +310,20 @@ " seg_img.putpalette(np.array(palette, dtype=np.uint8))\n", " seg_img.save(osp.join(data_root, ann_dir, file.replace('.regions.txt', \n", " '.png')))" - ], - "execution_count": 13, - "outputs": [] + ] }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "5MCSS9ABfSks", "colab": { "base_uri": "https://localhost:8080/", "height": 377 }, + "id": "5MCSS9ABfSks", "outputId": "92b9bafc-589e-48fc-c9e9-476f125d6522" }, + "outputs": [], "source": [ "# Let's take a look at the segmentation map we got\n", "import matplotlib.patches as mpatches\n", @@ -523,29 +339,15 @@ " fontsize='large')\n", "\n", "plt.show()" - ], - "execution_count": 14, - "outputs": [ - { - "output_type": "display_data", - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "tags": [], - "needs_background": "light" - } - } ] }, { "cell_type": "code", + "execution_count": null, "metadata": { "id": "WbeLYCp2k5hl" }, + "outputs": [], "source": [ "# split train/val set randomly\n", "split_dir = 'splits'\n", @@ -559,9 +361,7 @@ "with open(osp.join(data_root, split_dir, 'val.txt'), 'w') as f:\n", " # select last 1/5 as train set\n", " f.writelines(line + '\\n' for line in filename_list[train_length:])" - ], - "execution_count": 15, - "outputs": [] + ] }, { "cell_type": "markdown", @@ -574,9 +374,11 @@ }, { "cell_type": "code", + "execution_count": null, "metadata": { "id": "LbsWOw62_o-X" }, + "outputs": [], "source": [ "from mmseg.datasets.builder import DATASETS\n", "from mmseg.datasets.custom import CustomDataset\n", @@ -591,9 +393,7 @@ " assert osp.exists(self.img_dir) and self.split is not None\n", "\n", " " - ], - "execution_count": 16, - "outputs": [] + ] }, { "cell_type": "markdown", @@ -607,15 +407,15 @@ }, { "cell_type": "code", + "execution_count": null, "metadata": { "id": "Wwnj9tRzqX_A" }, + "outputs": [], "source": [ "from mmcv import Config\n", "cfg = Config.fromfile('configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py')" - ], - "execution_count": 17, - "outputs": [] + ] }, { "cell_type": "markdown", @@ -628,13 +428,15 @@ }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "eyKnYC1Z7iCV", "colab": { "base_uri": "https://localhost:8080/" }, + "id": "eyKnYC1Z7iCV", "outputId": "6195217b-187f-4675-994b-ba90d8bb3078" }, + "outputs": [], "source": [ "from mmseg.apis import set_random_seed\n", "\n", @@ -727,188 +529,6 @@ "\n", "# Let's have a look at the final config used for training\n", "print(f'Config:\\n{cfg.pretty_text}')" - ], - "execution_count": 18, - "outputs": [ - { - "output_type": "stream", - "text": [ - "Config:\n", - "norm_cfg = dict(type='BN', requires_grad=True)\n", - "model = dict(\n", - " type='EncoderDecoder',\n", - " pretrained='open-mmlab://resnet50_v1c',\n", - " backbone=dict(\n", - " type='ResNetV1c',\n", - " depth=50,\n", - " num_stages=4,\n", - " out_indices=(0, 1, 2, 3),\n", - " dilations=(1, 1, 2, 4),\n", - " strides=(1, 2, 1, 1),\n", - " norm_cfg=dict(type='BN', requires_grad=True),\n", - " norm_eval=False,\n", - " style='pytorch',\n", - " contract_dilation=True),\n", - " decode_head=dict(\n", - " type='PSPHead',\n", - " in_channels=2048,\n", - " in_index=3,\n", - " channels=512,\n", - " pool_scales=(1, 2, 3, 6),\n", - " dropout_ratio=0.1,\n", - " num_classes=8,\n", - " norm_cfg=dict(type='BN', requires_grad=True),\n", - " align_corners=False,\n", - " loss_decode=dict(\n", - " type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),\n", - " auxiliary_head=dict(\n", - " type='FCNHead',\n", - " in_channels=1024,\n", - " in_index=2,\n", - " channels=256,\n", - " num_convs=1,\n", - " concat_input=False,\n", - " dropout_ratio=0.1,\n", - " num_classes=8,\n", - " norm_cfg=dict(type='BN', requires_grad=True),\n", - " align_corners=False,\n", - " loss_decode=dict(\n", - " type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),\n", - " train_cfg=dict(),\n", - " test_cfg=dict(mode='whole'))\n", - "dataset_type = 'StandfordBackgroundDataset'\n", - "data_root = 'iccv09Data'\n", - "img_norm_cfg = dict(\n", - " mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)\n", - "crop_size = (256, 256)\n", - "train_pipeline = [\n", - " dict(type='LoadImageFromFile'),\n", - " dict(type='LoadAnnotations'),\n", - " dict(type='Resize', img_scale=(320, 240), ratio_range=(0.5, 2.0)),\n", - " dict(type='RandomCrop', crop_size=(256, 256), cat_max_ratio=0.75),\n", - " dict(type='RandomFlip', flip_ratio=0.5),\n", - " dict(type='PhotoMetricDistortion'),\n", - " dict(\n", - " type='Normalize',\n", - " mean=[123.675, 116.28, 103.53],\n", - " std=[58.395, 57.12, 57.375],\n", - " to_rgb=True),\n", - " dict(type='Pad', size=(256, 256), pad_val=0, seg_pad_val=255),\n", - " dict(type='DefaultFormatBundle'),\n", - " dict(type='Collect', keys=['img', 'gt_semantic_seg'])\n", - "]\n", - "test_pipeline = [\n", - " dict(type='LoadImageFromFile'),\n", - " dict(\n", - " type='MultiScaleFlipAug',\n", - " img_scale=(320, 240),\n", - " flip=False,\n", - " transforms=[\n", - " dict(type='Resize', keep_ratio=True),\n", - " dict(type='RandomFlip'),\n", - " dict(\n", - " type='Normalize',\n", - " mean=[123.675, 116.28, 103.53],\n", - " std=[58.395, 57.12, 57.375],\n", - " to_rgb=True),\n", - " dict(type='ImageToTensor', keys=['img']),\n", - " dict(type='Collect', keys=['img'])\n", - " ])\n", - "]\n", - "data = dict(\n", - " samples_per_gpu=8,\n", - " workers_per_gpu=8,\n", - " train=dict(\n", - " type='StandfordBackgroundDataset',\n", - " data_root='iccv09Data',\n", - " img_dir='images',\n", - " ann_dir='labels',\n", - " pipeline=[\n", - " dict(type='LoadImageFromFile'),\n", - " dict(type='LoadAnnotations'),\n", - " dict(type='Resize', img_scale=(320, 240), ratio_range=(0.5, 2.0)),\n", - " dict(type='RandomCrop', crop_size=(256, 256), cat_max_ratio=0.75),\n", - " dict(type='RandomFlip', flip_ratio=0.5),\n", - " dict(type='PhotoMetricDistortion'),\n", - " dict(\n", - " type='Normalize',\n", - " mean=[123.675, 116.28, 103.53],\n", - " std=[58.395, 57.12, 57.375],\n", - " to_rgb=True),\n", - " dict(type='Pad', size=(256, 256), pad_val=0, seg_pad_val=255),\n", - " dict(type='DefaultFormatBundle'),\n", - " dict(type='Collect', keys=['img', 'gt_semantic_seg'])\n", - " ],\n", - " split='splits/train.txt'),\n", - " val=dict(\n", - " type='StandfordBackgroundDataset',\n", - " data_root='iccv09Data',\n", - " img_dir='images',\n", - " ann_dir='labels',\n", - " pipeline=[\n", - " dict(type='LoadImageFromFile'),\n", - " dict(\n", - " type='MultiScaleFlipAug',\n", - " img_scale=(320, 240),\n", - " flip=False,\n", - " transforms=[\n", - " dict(type='Resize', keep_ratio=True),\n", - " dict(type='RandomFlip'),\n", - " dict(\n", - " type='Normalize',\n", - " mean=[123.675, 116.28, 103.53],\n", - " std=[58.395, 57.12, 57.375],\n", - " to_rgb=True),\n", - " dict(type='ImageToTensor', keys=['img']),\n", - " dict(type='Collect', keys=['img'])\n", - " ])\n", - " ],\n", - " split='splits/val.txt'),\n", - " test=dict(\n", - " type='StandfordBackgroundDataset',\n", - " data_root='iccv09Data',\n", - " img_dir='images',\n", - " ann_dir='labels',\n", - " pipeline=[\n", - " dict(type='LoadImageFromFile'),\n", - " dict(\n", - " type='MultiScaleFlipAug',\n", - " img_scale=(320, 240),\n", - " flip=False,\n", - " transforms=[\n", - " dict(type='Resize', keep_ratio=True),\n", - " dict(type='RandomFlip'),\n", - " dict(\n", - " type='Normalize',\n", - " mean=[123.675, 116.28, 103.53],\n", - " std=[58.395, 57.12, 57.375],\n", - " to_rgb=True),\n", - " dict(type='ImageToTensor', keys=['img']),\n", - " dict(type='Collect', keys=['img'])\n", - " ])\n", - " ],\n", - " split='splits/val.txt'))\n", - "log_config = dict(\n", - " interval=10, hooks=[dict(type='TextLoggerHook', by_epoch=False)])\n", - "dist_params = dict(backend='nccl')\n", - "log_level = 'INFO'\n", - "load_from = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'\n", - "resume_from = None\n", - "workflow = [('train', 1)]\n", - "cudnn_benchmark = True\n", - "optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)\n", - "optimizer_config = dict()\n", - "lr_config = dict(policy='poly', power=0.9, min_lr=0.0001, by_epoch=False)\n", - "runner = dict(type='IterBasedRunner', max_iters=200)\n", - "checkpoint_config = dict(by_epoch=False, interval=200)\n", - "evaluation = dict(interval=200, metric='mIoU')\n", - "work_dir = './work_dirs/tutorial'\n", - "seed = 0\n", - "gpu_ids = range(0, 1)\n", - "\n" - ], - "name": "stdout" - } ] }, { @@ -922,13 +542,15 @@ }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "jYKoSfdMF12B", "colab": { "base_uri": "https://localhost:8080/" }, + "id": "jYKoSfdMF12B", "outputId": "422219ca-d7a5-4890-f09f-88c959942e64" }, + "outputs": [], "source": [ "from mmseg.datasets import build_dataset\n", "from mmseg.models import build_segmentor\n", @@ -948,89 +570,6 @@ "mmcv.mkdir_or_exist(osp.abspath(cfg.work_dir))\n", "train_segmentor(model, datasets, cfg, distributed=False, validate=True, \n", " meta=dict())" - ], - "execution_count": 19, - "outputs": [ - { - "output_type": "stream", - "text": [ - "/usr/local/lib/python3.7/dist-packages/mmcv/utils/misc.py:304: UserWarning: \"flip_ratio\" is deprecated in `RandomFlip.__init__`, please use \"prob\" instead\n", - " f'\"{src_arg_name}\" is deprecated in '\n", - "2021-04-07 22:15:26,312 - mmseg - INFO - Loaded 572 images\n", - "2021-04-07 22:15:26,915 - mmseg - INFO - Use load_from_openmmlab loader\n", - "2021-04-07 22:15:26,999 - mmseg - WARNING - The model and loaded state dict do not match exactly\n", - "\n", - "unexpected key in source state_dict: fc.weight, fc.bias\n", - "\n", - "2021-04-07 22:15:27,070 - mmseg - INFO - Loaded 143 images\n", - "2021-04-07 22:15:27,072 - mmseg - INFO - load checkpoint from checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth\n", - "2021-04-07 22:15:27,073 - mmseg - INFO - Use load_from_local loader\n", - "2021-04-07 22:15:27,228 - mmseg - WARNING - The model and loaded state dict do not match exactly\n", - "\n", - "size mismatch for decode_head.conv_seg.weight: copying a param with shape torch.Size([19, 512, 1, 1]) from checkpoint, the shape in current model is torch.Size([8, 512, 1, 1]).\n", - "size mismatch for decode_head.conv_seg.bias: copying a param with shape torch.Size([19]) from checkpoint, the shape in current model is torch.Size([8]).\n", - "size mismatch for auxiliary_head.conv_seg.weight: copying a param with shape torch.Size([19, 256, 1, 1]) from checkpoint, the shape in current model is torch.Size([8, 256, 1, 1]).\n", - "size mismatch for auxiliary_head.conv_seg.bias: copying a param with shape torch.Size([19]) from checkpoint, the shape in current model is torch.Size([8]).\n", - "2021-04-07 22:15:27,232 - mmseg - INFO - Start running, host: root@c8cc0e0b80dc, work_dir: /content/mmsegmentation/work_dirs/tutorial\n", - "2021-04-07 22:15:27,237 - mmseg - INFO - workflow: [('train', 1)], max: 200 iters\n", - "2021-04-07 22:15:33,883 - mmseg - INFO - Iter [10/200]\tlr: 9.598e-03, eta: 0:01:58, time: 0.626, data_time: 0.039, memory: 3772, decode.loss_seg: 1.5570, decode.acc_seg: 44.2138, aux.loss_seg: 0.6808, aux.acc_seg: 40.7060, loss: 2.2378\n", - "2021-04-07 22:15:39,777 - mmseg - INFO - Iter [20/200]\tlr: 9.149e-03, eta: 0:01:49, time: 0.589, data_time: 0.008, memory: 3772, decode.loss_seg: 0.8328, decode.acc_seg: 67.4587, aux.loss_seg: 0.5270, aux.acc_seg: 65.5612, loss: 1.3598\n", - "2021-04-07 22:15:45,723 - mmseg - INFO - Iter [30/200]\tlr: 8.698e-03, eta: 0:01:42, time: 0.595, data_time: 0.008, memory: 3772, decode.loss_seg: 0.6151, decode.acc_seg: 65.5550, aux.loss_seg: 0.3798, aux.acc_seg: 64.0860, loss: 0.9949\n", - "2021-04-07 22:15:51,759 - mmseg - INFO - Iter [40/200]\tlr: 8.244e-03, eta: 0:01:36, time: 0.603, data_time: 0.008, memory: 3772, decode.loss_seg: 0.5840, decode.acc_seg: 68.8598, aux.loss_seg: 0.3035, aux.acc_seg: 66.3350, loss: 0.8875\n", - "2021-04-07 22:15:57,851 - mmseg - INFO - Iter [50/200]\tlr: 7.788e-03, eta: 0:01:30, time: 0.609, data_time: 0.008, memory: 3772, decode.loss_seg: 0.5198, decode.acc_seg: 69.1188, aux.loss_seg: 0.2708, aux.acc_seg: 66.1400, loss: 0.7906\n", - "2021-04-07 22:16:04,047 - mmseg - INFO - Iter [60/200]\tlr: 7.328e-03, eta: 0:01:24, time: 0.620, data_time: 0.008, memory: 3772, decode.loss_seg: 0.7124, decode.acc_seg: 66.1938, aux.loss_seg: 0.3291, aux.acc_seg: 63.7193, loss: 1.0415\n", - "2021-04-07 22:16:10,183 - mmseg - INFO - Iter [70/200]\tlr: 6.865e-03, eta: 0:01:19, time: 0.614, data_time: 0.008, memory: 3772, decode.loss_seg: 0.6217, decode.acc_seg: 67.6348, aux.loss_seg: 0.2921, aux.acc_seg: 65.4327, loss: 0.9138\n", - "2021-04-07 22:16:16,975 - mmseg - INFO - Iter [80/200]\tlr: 6.398e-03, eta: 0:01:14, time: 0.679, data_time: 0.083, memory: 3772, decode.loss_seg: 0.5825, decode.acc_seg: 67.3635, aux.loss_seg: 0.2740, aux.acc_seg: 66.0855, loss: 0.8565\n", - "2021-04-07 22:16:22,951 - mmseg - INFO - Iter [90/200]\tlr: 5.928e-03, eta: 0:01:07, time: 0.598, data_time: 0.008, memory: 3772, decode.loss_seg: 0.5509, decode.acc_seg: 71.3504, aux.loss_seg: 0.2507, aux.acc_seg: 70.5064, loss: 0.8016\n", - "2021-04-07 22:16:28,880 - mmseg - INFO - Iter [100/200]\tlr: 5.453e-03, eta: 0:01:01, time: 0.593, data_time: 0.008, memory: 3772, decode.loss_seg: 0.6903, decode.acc_seg: 62.3287, aux.loss_seg: 0.3010, aux.acc_seg: 62.1792, loss: 0.9913\n", - "2021-04-07 22:16:34,786 - mmseg - INFO - Iter [110/200]\tlr: 4.974e-03, eta: 0:00:54, time: 0.591, data_time: 0.008, memory: 3772, decode.loss_seg: 0.5627, decode.acc_seg: 68.7782, aux.loss_seg: 0.2505, aux.acc_seg: 68.3666, loss: 0.8132\n", - "2021-04-07 22:16:40,679 - mmseg - INFO - Iter [120/200]\tlr: 4.489e-03, eta: 0:00:48, time: 0.589, data_time: 0.008, memory: 3772, decode.loss_seg: 0.5006, decode.acc_seg: 70.7204, aux.loss_seg: 0.2400, aux.acc_seg: 69.5582, loss: 0.7406\n", - "2021-04-07 22:16:46,554 - mmseg - INFO - Iter [130/200]\tlr: 3.998e-03, eta: 0:00:42, time: 0.588, data_time: 0.008, memory: 3772, decode.loss_seg: 0.4775, decode.acc_seg: 70.6324, aux.loss_seg: 0.2211, aux.acc_seg: 69.0519, loss: 0.6986\n", - "2021-04-07 22:16:52,442 - mmseg - INFO - Iter [140/200]\tlr: 3.500e-03, eta: 0:00:36, time: 0.589, data_time: 0.008, memory: 3772, decode.loss_seg: 0.4812, decode.acc_seg: 71.5263, aux.loss_seg: 0.2262, aux.acc_seg: 68.9376, loss: 0.7074\n", - "2021-04-07 22:16:59,045 - mmseg - INFO - Iter [150/200]\tlr: 2.994e-03, eta: 0:00:30, time: 0.660, data_time: 0.075, memory: 3772, decode.loss_seg: 0.4366, decode.acc_seg: 73.8778, aux.loss_seg: 0.2085, aux.acc_seg: 71.9269, loss: 0.6452\n", - "2021-04-07 22:17:04,994 - mmseg - INFO - Iter [160/200]\tlr: 2.478e-03, eta: 0:00:24, time: 0.595, data_time: 0.008, memory: 3772, decode.loss_seg: 0.4244, decode.acc_seg: 73.4474, aux.loss_seg: 0.1975, aux.acc_seg: 72.5327, loss: 0.6219\n", - "2021-04-07 22:17:10,945 - mmseg - INFO - Iter [170/200]\tlr: 1.949e-03, eta: 0:00:18, time: 0.595, data_time: 0.008, memory: 3772, decode.loss_seg: 0.4268, decode.acc_seg: 71.7624, aux.loss_seg: 0.2042, aux.acc_seg: 70.3237, loss: 0.6311\n", - "2021-04-07 22:17:16,919 - mmseg - INFO - Iter [180/200]\tlr: 1.402e-03, eta: 0:00:12, time: 0.597, data_time: 0.008, memory: 3772, decode.loss_seg: 0.4488, decode.acc_seg: 72.1597, aux.loss_seg: 0.2177, aux.acc_seg: 70.9026, loss: 0.6665\n", - "2021-04-07 22:17:22,916 - mmseg - INFO - Iter [190/200]\tlr: 8.277e-04, eta: 0:00:06, time: 0.600, data_time: 0.008, memory: 3772, decode.loss_seg: 0.4651, decode.acc_seg: 75.1950, aux.loss_seg: 0.2244, aux.acc_seg: 73.2528, loss: 0.6894\n", - "2021-04-07 22:17:28,838 - mmseg - INFO - Saving checkpoint at 200 iterations\n" - ], - "name": "stderr" - }, - { - "output_type": "stream", - "text": [ - "[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 143/143, 27.5 task/s, elapsed: 5s, ETA: 0s" - ], - "name": "stdout" - }, - { - "output_type": "stream", - "text": [ - "2021-04-07 22:17:35,967 - mmseg - INFO - per class results:\n", - "2021-04-07 22:17:35,969 - mmseg - INFO - \n", - "+--------+-------+-------+\n", - "| Class | IoU | Acc |\n", - "+--------+-------+-------+\n", - "| sky | 87.18 | 91.91 |\n", - "| tree | 69.54 | 90.08 |\n", - "| road | 84.38 | 92.03 |\n", - "| grass | 72.91 | 90.34 |\n", - "| water | 57.42 | 62.66 |\n", - "| bldg | 78.36 | 87.32 |\n", - "| mntn | 0.0 | 0.0 |\n", - "| fg obj | 67.42 | 82.39 |\n", - "+--------+-------+-------+\n", - "2021-04-07 22:17:35,974 - mmseg - INFO - Summary:\n", - "2021-04-07 22:17:35,976 - mmseg - INFO - \n", - "+--------+-------+-------+-------+\n", - "| Scope | mIoU | mAcc | aAcc |\n", - "+--------+-------+-------+-------+\n", - "| global | 64.65 | 74.59 | 85.92 |\n", - "+--------+-------+-------+-------+\n", - "2021-04-07 22:17:35,986 - mmseg - INFO - Iter(val) [200]\tmIoU: 0.6465, mAcc: 0.7459, aAcc: 0.8592, IoU.sky: 0.8718, IoU.tree: 0.6954, IoU.road: 0.8438, IoU.grass: 0.7291, IoU.water: 0.5742, IoU.bldg: 0.7836, IoU.mntn: 0.0000, IoU.fg obj: 0.6742, Acc.sky: 0.9191, Acc.tree: 0.9008, Acc.road: 0.9203, Acc.grass: 0.9034, Acc.water: 0.6266, Acc.bldg: 0.8732, Acc.mntn: 0.0000, Acc.fg obj: 0.8239\n" - ], - "name": "stderr" - } ] }, { @@ -1044,14 +583,16 @@ }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "ekG__UfaH_OU", "colab": { "base_uri": "https://localhost:8080/", "height": 645 }, + "id": "ekG__UfaH_OU", "outputId": "1437419c-869a-4902-df86-d4f6f8b2597a" }, + "outputs": [], "source": [ "img = mmcv.imread('iccv09Data/images/6000124.jpg')\n", "\n", @@ -1059,41 +600,6 @@ "result = inference_segmentor(model, img)\n", "plt.figure(figsize=(8, 6))\n", "show_result_pyplot(model, img, result, palette)" - ], - "execution_count": 20, - "outputs": [ - { - "output_type": "stream", - "text": [ - "/content/mmsegmentation/mmseg/models/segmentors/base.py:271: UserWarning: show==False and out_file is not specified, only result image will be returned\n", - " warnings.warn('show==False and out_file is not specified, only '\n" - ], - "name": "stderr" - }, - { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": { - "tags": [] - } - }, - { - "output_type": "display_data", - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "tags": [], - "needs_background": "light" - } - } ] }, { @@ -1103,5 +609,29 @@ "outputs": [], "source": [] } - ] + ], + "metadata": { + "accelerator": "GPU", + "colab": { + "collapsed_sections": [], + "include_colab_link": true, + "name": "MMSegmentation Tutorial.ipynb", + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "pycharm": { + "stem_cell": { + "cell_type": "raw", + "metadata": { + "collapsed": false + }, + "source": [] + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 } From 1ce4904fe34dbc29713fa7eb93e6e321642c4fe0 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Thu, 7 Oct 2021 17:37:31 +0800 Subject: [PATCH 256/706] Bump to v0.18.0 (#940) * bump to v0.18.0 * replace \ with / --- README.md | 2 +- README_zh-CN.md | 2 +- docs/changelog.md | 31 +++++++++++++++++++++++++++++++ docs/get_started.md | 1 + docs_zh-CN/get_started.md | 1 + mmseg/version.py | 2 +- 6 files changed, 36 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 78f1a2d8bc..3e93b55240 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ This project is released under the [Apache 2.0 license](LICENSE). ## Changelog -v0.17.0 was released in 09/01/2021. +v0.18.0 was released in 10/07/2021. Please refer to [changelog.md](docs/changelog.md) for details and release history. ## Benchmark and model zoo diff --git a/README_zh-CN.md b/README_zh-CN.md index 5ebef6f40e..897abc5100 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -48,7 +48,7 @@ MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 O ## 更新日志 -最新的月度版本 v0.17.0 在 2021.09.01 发布。 +最新的月度版本 v0.18.0 在 2021.10.07 发布。 如果想了解更多版本更新细节和历史信息,请阅读[更新日志](docs/changelog.md)。 ## 基准测试和模型库 diff --git a/docs/changelog.md b/docs/changelog.md index d8f1d493c3..23124147a9 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,5 +1,36 @@ ## Changelog +### V0.18 (10/07/2021) + +**Highlights** + +- Support three real-time segmentation models (ICNet [#884](https://github.com/open-mmlab/mmsegmentation/pull/884), BiSeNetV1 [#851](https://github.com/open-mmlab/mmsegmentation/pull/851), and BiSeNetV2 [#804](https://github.com/open-mmlab/mmsegmentation/pull/804)) +- Support one efficient segmentation model (FastFCN [#885](https://github.com/open-mmlab/mmsegmentation/pull/885)) +- Support one efficient non-local/self-attention based segmentation model (ISANet [#70](https://github.com/open-mmlab/mmsegmentation/pull/70)) +- Support COCO-Stuff 10k and 164k datasets ([#625](https://github.com/open-mmlab/mmsegmentation/pull/625)) +- Support evaluate concated dataset separately ([#833](https://github.com/open-mmlab/mmsegmentation/pull/833)) +- Support loading GT for evaluation from multi-file backend ([#867](https://github.com/open-mmlab/mmsegmentation/pull/867)) + +**New Features** + +- Support three real-time segmentation models (ICNet [#884](https://github.com/open-mmlab/mmsegmentation/pull/884), BiSeNetV1 [#851](https://github.com/open-mmlab/mmsegmentation/pull/851), and BiSeNetV2 [#804](https://github.com/open-mmlab/mmsegmentation/pull/804)) +- Support one efficient segmentation model (FastFCN [#885](https://github.com/open-mmlab/mmsegmentation/pull/885)) +- Support one efficient non-local/self-attention based segmentation model (ISANet [#70](https://github.com/open-mmlab/mmsegmentation/pull/70)) +- Support COCO-Stuff 10k and 164k datasets ([#625](https://github.com/open-mmlab/mmsegmentation/pull/625)) +- Support evaluate concated dataset separately ([#833](https://github.com/open-mmlab/mmsegmentation/pull/833)) + +**Improvements** + +- Support loading GT for evaluation from multi-file backend ([#867](https://github.com/open-mmlab/mmsegmentation/pull/867)) +- Auto-convert SyncBN to BN when training on DP automatly([#772](https://github.com/open-mmlab/mmsegmentation/pull/772)) +- Refactor Swin-Transformer ([#800](https://github.com/open-mmlab/mmsegmentation/pull/800)) + +**Bug Fixes** + +- Update mmcv installation in dockerfile ([#860](https://github.com/open-mmlab/mmsegmentation/pull/860)) +- Fix number of iteration bug when resuming checkpoint in distributed train ([#866](https://github.com/open-mmlab/mmsegmentation/pull/866)) +- Fix parsing parse in val_step ([#906](https://github.com/open-mmlab/mmsegmentation/pull/906)) + ### V0.17 (09/01/2021) **Highlights** diff --git a/docs/get_started.md b/docs/get_started.md index 90479c9ba7..78cafbf9d0 100644 --- a/docs/get_started.md +++ b/docs/get_started.md @@ -12,6 +12,7 @@ The compatible MMSegmentation and MMCV versions are as below. Please install the | MMSegmentation version | MMCV version | |:-------------------:|:-------------------:| | master | mmcv-full>=1.3.13, <1.4.0 | +| 0.18.0 | mmcv-full>=1.3.13, <1.4.0 | | 0.17.0 | mmcv-full>=1.3.7, <1.4.0 | | 0.16.0 | mmcv-full>=1.3.7, <1.4.0 | | 0.15.0 | mmcv-full>=1.3.7, <1.4.0 | diff --git a/docs_zh-CN/get_started.md b/docs_zh-CN/get_started.md index cb7434afa1..2008c370be 100644 --- a/docs_zh-CN/get_started.md +++ b/docs_zh-CN/get_started.md @@ -12,6 +12,7 @@ | MMSegmentation 版本 | MMCV 版本 | |:-------------------:|:-------------------:| | master | mmcv-full>=1.3.13, <1.4.0 | +| 0.18.0 | mmcv-full>=1.3.13, <1.4.0 | | 0.17.0 | mmcv-full>=1.3.7, <1.4.0 | | 0.16.0 | mmcv-full>=1.3.7, <1.4.0 | | 0.15.0 | mmcv-full>=1.3.7, <1.4.0 | diff --git a/mmseg/version.py b/mmseg/version.py index bf9fdb7351..bd2fd41acf 100644 --- a/mmseg/version.py +++ b/mmseg/version.py @@ -1,6 +1,6 @@ # Copyright (c) Open-MMLab. All rights reserved. -__version__ = '0.17.0' +__version__ = '0.18.0' def parse_version_info(version_str): From adb1cd361b7738adeb95a1ef277efb32de2e249e Mon Sep 17 00:00:00 2001 From: Shouping Shan Date: Fri, 8 Oct 2021 01:06:18 +0800 Subject: [PATCH 257/706] [Fix] Fix bug when loading class name form file in custom dataset (#923) * [Fix] #916 expection string type classes * add unittests for string path classes * fix double quote string in test_dataset.py * move the import to the top of the file * fix isort lint error fix isort lint error when move the import to the top of the file --- mmseg/datasets/custom.py | 4 ++-- tests/test_data/test_dataset.py | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/mmseg/datasets/custom.py b/mmseg/datasets/custom.py index 23b347d34b..872b2b8448 100644 --- a/mmseg/datasets/custom.py +++ b/mmseg/datasets/custom.py @@ -319,7 +319,7 @@ def get_classes_and_palette(self, classes=None, palette=None): raise ValueError(f'Unsupported type {type(classes)} of classes.') if self.CLASSES: - if not set(classes).issubset(self.CLASSES): + if not set(class_names).issubset(self.CLASSES): raise ValueError('classes is not a subset of CLASSES.') # dictionary, its keys are the old label ids and its values @@ -330,7 +330,7 @@ def get_classes_and_palette(self, classes=None, palette=None): if c not in class_names: self.label_map[i] = -1 else: - self.label_map[i] = classes.index(c) + self.label_map[i] = class_names.index(c) palette = self.get_palette_for_custom_classes(class_names, palette) diff --git a/tests/test_data/test_dataset.py b/tests/test_data/test_dataset.py index f1ce7bb880..65244192c9 100644 --- a/tests/test_data/test_dataset.py +++ b/tests/test_data/test_dataset.py @@ -1,6 +1,8 @@ # Copyright (c) OpenMMLab. All rights reserved. +import os import os.path as osp import shutil +import tempfile from typing import Generator from unittest.mock import MagicMock, patch @@ -26,6 +28,37 @@ def test_classes(): get_classes('unsupported') +def test_classes_file_path(): + tmp_file = tempfile.NamedTemporaryFile() + classes_path = f'{tmp_file.name}.txt' + train_pipeline = [dict(type='LoadImageFromFile')] + kwargs = dict(pipeline=train_pipeline, img_dir='./', classes=classes_path) + + # classes.txt with full categories + categories = get_classes('cityscapes') + with open(classes_path, 'w') as f: + f.write('\n'.join(categories)) + assert list(CityscapesDataset(**kwargs).CLASSES) == categories + + # classes.txt with sub categories + categories = ['road', 'sidewalk', 'building'] + with open(classes_path, 'w') as f: + f.write('\n'.join(categories)) + assert list(CityscapesDataset(**kwargs).CLASSES) == categories + + # classes.txt with unknown categories + categories = ['road', 'sidewalk', 'unknown'] + with open(classes_path, 'w') as f: + f.write('\n'.join(categories)) + + with pytest.raises(ValueError): + CityscapesDataset(**kwargs) + + tmp_file.close() + os.remove(classes_path) + assert not osp.exists(classes_path) + + def test_palette(): assert CityscapesDataset.PALETTE == get_palette('cityscapes') assert PascalVOCDataset.PALETTE == get_palette('voc') == get_palette( From 3c6cbc4a24fe0d03be0e05a50eab6b9143b836d9 Mon Sep 17 00:00:00 2001 From: VVsssssk <88368822+VVsssssk@users.noreply.github.com> Date: Tue, 12 Oct 2021 19:56:02 +0800 Subject: [PATCH 258/706] [Update] Update torchserve about (#951) * test_torchserver1.1 * test_torchserver1.2 * update * update mmseg_handler.py * update docs * update torchserver * tranfer torchserver to torchserve * update docs * updata torchserve support --- tools/torchserve/mmseg_handler.py | 5 ++--- tools/torchserve/test_torchserve.py | 8 +++----- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/tools/torchserve/mmseg_handler.py b/tools/torchserve/mmseg_handler.py index e195f6d5d4..28fe5016f8 100644 --- a/tools/torchserve/mmseg_handler.py +++ b/tools/torchserve/mmseg_handler.py @@ -51,7 +51,6 @@ def postprocess(self, data): for image_result in data: _, buffer = cv2.imencode('.png', image_result[0].astype('uint8')) - bast64_data = base64.b64encode(buffer.tobytes()) - bast64_str = str(bast64_data, 'utf-8') - output.append(bast64_str) + content = buffer.tobytes() + output.append(content) return output diff --git a/tools/torchserve/test_torchserve.py b/tools/torchserve/test_torchserve.py index 824dee952b..59752853f4 100644 --- a/tools/torchserve/test_torchserve.py +++ b/tools/torchserve/test_torchserve.py @@ -1,4 +1,3 @@ -import base64 from argparse import ArgumentParser from io import BytesIO @@ -37,15 +36,14 @@ def main(args): url = 'http://' + args.inference_addr + '/predictions/' + args.model_name with open(args.img, 'rb') as image: tmp_res = requests.post(url, image) - base64_str = tmp_res.content - buffer = base64.b64decode(base64_str) + content = tmp_res.content if args.result_image: with open(args.result_image, 'wb') as out_image: - out_image.write(buffer) + out_image.write(content) plt.imshow(mmcv.imread(args.result_image, 'grayscale')) plt.show() else: - plt.imshow(plt.imread(BytesIO(buffer))) + plt.imshow(plt.imread(BytesIO(content))) plt.show() model = init_segmentor(args.config, args.checkpoint, args.device) image = mmcv.imread(args.img) From 7aa2680d16eb78405a6571e84fbfe6d101eb4128 Mon Sep 17 00:00:00 2001 From: Rockey <41846794+RockeyCoss@users.noreply.github.com> Date: Tue, 12 Oct 2021 20:39:02 +0800 Subject: [PATCH 259/706] fix the wrong description in the Chinese documentation (#954) --- docs_zh-CN/model_zoo.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs_zh-CN/model_zoo.md b/docs_zh-CN/model_zoo.md index e5674f0519..a7f6ead5dd 100644 --- a/docs_zh-CN/model_zoo.md +++ b/docs_zh-CN/model_zoo.md @@ -13,7 +13,7 @@ 在这个模式下,从原图中裁剪多个小图分别输入网络中进行推理。小图的大小和小图之间的距离由 `crop_size` 和 `stride` 决定,重合区域会进行平均 * `whole` 模式 (全图模式):测试的配置文件字段 `test_cfg` 会是 `dict(mode='whole')`. 在这个模式下,全图会被直接输入到网络中进行推理。 对于 769x769 下训练的模型,我们默认使用 `slide` 进行推理,其余模型用 `whole` 进行推理 -* 对于输入大小为 8x+1 (比如769),我们使用 `align_corners=True`。其余情况,对于输入大小为 8x+1 (比如 512,1024),我们使用 `align_corners=False` +* 对于输入大小为 8x+1 (比如769),我们使用 `align_corners=True`。其余情况,对于输入大小为 8x (比如 512,1024),我们使用 `align_corners=False` ## 基线 From d81554a64202fc2407d12e021a98732c7b07f00b Mon Sep 17 00:00:00 2001 From: MengzhangLI Date: Wed, 13 Oct 2021 11:32:41 +0800 Subject: [PATCH 260/706] first commit (#946) --- .../bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/configs/bisenetv1/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes.py b/configs/bisenetv1/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes.py index 193438d364..7cadd503c4 100644 --- a/configs/bisenetv1/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes.py +++ b/configs/bisenetv1/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes.py @@ -11,11 +11,7 @@ context_channels=(512, 1024, 2048), spatial_channels=(256, 256, 256, 512), out_channels=1024, - backbone_cfg=dict( - init_cfg=dict( - type='Pretrained', checkpoint='open-mmlab://resnet50_v1c'), - type='ResNet', - depth=50)), + backbone_cfg=dict(type='ResNet', depth=50)), decode_head=dict( type='FCNHead', in_channels=1024, in_index=0, channels=1024), auxiliary_head=[ From 279b7e5d25ca40147132703b44b4c8bebe3e475a Mon Sep 17 00:00:00 2001 From: MengzhangLI Date: Wed, 13 Oct 2021 11:35:58 +0800 Subject: [PATCH 261/706] Change BiSeNetV2 to Method (#945) --- README.md | 2 +- README_zh-CN.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3e93b55240..2efdec875d 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,6 @@ Supported backbones: - [x] [MobileNetV3 (ICCV'2019)](configs/mobilenet_v3) - [x] [Vision Transformer (ICLR'2021)](configs/vit) - [x] [Swin Transformer (ArXiv'2021)](configs/swin) -- [x] [BiSeNetV2 (IJCV'2021)](configs/bisenetv2) Supported methods: @@ -97,6 +96,7 @@ Supported methods: - [x] [DNLNet (ECCV'2020)](configs/dnlnet) - [x] [PointRend (CVPR'2020)](configs/point_rend) - [x] [CGNet (TIP'2020)](configs/cgnet) +- [x] [BiSeNetV2 (IJCV'2021)](configs/bisenetv2) - [x] [SETR (CVPR'2021)](configs/setr) - [x] [DPT (ArXiv'2021)](configs/dpt) - [x] [SegFormer (ArXiv'2021)](configs/segformer) diff --git a/README_zh-CN.md b/README_zh-CN.md index 897abc5100..fef4f43e36 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -65,7 +65,6 @@ MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 O - [x] [MobileNetV3 (ICCV'2019)](configs/mobilenet_v3) - [x] [Vision Transformer (ICLR'2021)](configs/vit) - [x] [Swin Transformer (ArXiv'2021)](configs/swin) -- [x] [BiSeNetV2 (IJCV'2021)](configs/bisenetv2) 已支持的算法: @@ -96,6 +95,7 @@ MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 O - [x] [DNLNet (ECCV'2020)](configs/dnlnet) - [x] [PointRend (CVPR'2020)](configs/point_rend) - [x] [CGNet (TIP'2020)](configs/cgnet) +- [x] [BiSeNetV2 (IJCV'2021)](configs/bisenetv2) - [x] [SETR (CVPR'2021)](configs/setr) - [x] [DPT (ArXiv'2021)](configs/dpt) - [x] [SegFormer (ArXiv'2021)](configs/segformer) From 67f14204723363553c86df0e6193fe31be680277 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Wed, 13 Oct 2021 21:21:17 +0800 Subject: [PATCH 262/706] [Enhancement] Add codespell pre-commit hook and fix typos (#920) * add codespell pre-commit hook and fix typos * Update mmseg/models/decode_heads/dpt_head.py * Update mmseg/models/backbones/vit.py * Update mmseg/models/backbones/vit.py * fix typos * skip formating typo * deprecate formating * skip ipynb * unstage ipynb changes * unstage ipynb changes * fix typos in ipynb * unstage ipynb changes --- .github/ISSUE_TEMPLATE/config.yml | 2 +- .github/ISSUE_TEMPLATE/error-report.md | 2 +- .pre-commit-config.yaml | 4 + README.md | 2 +- docs/tutorials/config.md | 8 +- docs/tutorials/customize_runtime.md | 4 +- docs_zh-CN/tutorials/config.md | 2 +- mmseg/core/evaluation/metrics.py | 14 +- mmseg/datasets/pipelines/__init__.py | 4 +- mmseg/datasets/pipelines/formating.py | 292 +----------------- mmseg/datasets/pipelines/formatting.py | 289 +++++++++++++++++ mmseg/models/backbones/bisenetv2.py | 2 +- mmseg/models/backbones/mit.py | 4 +- mmseg/models/backbones/vit.py | 4 +- mmseg/models/decode_heads/dpt_head.py | 2 +- mmseg/models/losses/utils.py | 2 +- mmseg/models/utils/shape_convert.py | 8 +- setup.cfg | 6 + tests/test_models/test_backbones/test_unet.py | 12 +- tests/test_models/test_utils/test_embed.py | 10 +- tools/model_converters/mit2mmseg.py | 6 +- tools/onnx2tensorrt.py | 4 +- tools/pytorch2torchscript.py | 2 +- 23 files changed, 352 insertions(+), 333 deletions(-) create mode 100644 mmseg/datasets/pipelines/formatting.py diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 6eaae3e0d5..aa982e548b 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -3,4 +3,4 @@ blank_issues_enabled: false contact_links: - name: MMSegmentation Documentation url: https://mmsegmentation.readthedocs.io - about: Check the docs and FAQ to see if you question is already anwsered. + about: Check the docs and FAQ to see if you question is already answered. diff --git a/.github/ISSUE_TEMPLATE/error-report.md b/.github/ISSUE_TEMPLATE/error-report.md index 73a63b7d10..f977b7deb0 100644 --- a/.github/ISSUE_TEMPLATE/error-report.md +++ b/.github/ISSUE_TEMPLATE/error-report.md @@ -30,7 +30,7 @@ A clear and concise description of what the bug is. **Environment** -1. Please run `python mmseg/utils/collect_env.py` to collect necessary environment infomation and paste it here. +1. Please run `python mmseg/utils/collect_env.py` to collect necessary environment information and paste it here. 2. You may add addition that may be helpful for locating the problem, such as - How you installed PyTorch [e.g., pip, conda, source] - Other environment variables that may be related (such as `$PATH`, `$LD_LIBRARY_PATH`, `$PYTHONPATH`, etc.) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index fc54a6dbf5..1f7b75fae1 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -34,6 +34,10 @@ repos: hooks: - id: markdownlint args: ["-r", "~MD002,~MD013,~MD029,~MD033,~MD034,~MD036"] + - repo: https://github.com/codespell-project/codespell + rev: v2.1.0 + hooks: + - id: codespell - repo: https://github.com/myint/docformatter rev: v1.3.1 hooks: diff --git a/README.md b/README.md index 2efdec875d..d42729341d 100644 --- a/README.md +++ b/README.md @@ -124,7 +124,7 @@ Please refer to [get_started.md](docs/get_started.md#installation) for installat Please see [train.md](docs/train.md) and [inference.md](docs/inference.md) for the basic usage of MMSegmentation. There are also tutorials for [customizing dataset](docs/tutorials/customize_datasets.md), [designing data pipeline](docs/tutorials/data_pipeline.md), [customizing modules](docs/tutorials/customize_models.md), and [customizing runtime](docs/tutorials/customize_runtime.md). -We also provide many [training tricks](docs/tutorials/training_tricks.md) for better training and [usefule tools](docs/useful_tools.md) for deployment. +We also provide many [training tricks](docs/tutorials/training_tricks.md) for better training and [useful tools](docs/useful_tools.md) for deployment. A Colab tutorial is also provided. You may preview the notebook [here](demo/MMSegmentation_Tutorial.ipynb) or directly [run](https://colab.research.google.com/github/open-mmlab/mmsegmentation/blob/master/demo/MMSegmentation_Tutorial.ipynb) on Colab. diff --git a/docs/tutorials/config.md b/docs/tutorials/config.md index 65efa04fdb..940b4212e5 100644 --- a/docs/tutorials/config.md +++ b/docs/tutorials/config.md @@ -67,7 +67,7 @@ model = dict( channels=512, # The intermediate channels of decode head. pool_scales=(1, 2, 3, 6), # The avg pooling scales of PSPHead. Please refer to paper for details. dropout_ratio=0.1, # The dropout ratio before final classification layer. - num_classes=19, # Number of segmentation classs. Usually 19 for cityscapes, 21 for VOC, 150 for ADE20k. + num_classes=19, # Number of segmentation class. Usually 19 for cityscapes, 21 for VOC, 150 for ADE20k. norm_cfg=dict(type='SyncBN', requires_grad=True), # The configuration of norm layer. align_corners=False, # The align_corners argument for resize in decoding. loss_decode=dict( # Config of loss function for the decode_head. @@ -82,7 +82,7 @@ model = dict( num_convs=1, # Number of convs in FCNHead. It is usually 1 in auxiliary head. concat_input=False, # Whether concat output of convs with input before classification layer. dropout_ratio=0.1, # The dropout ratio before final classification layer. - num_classes=19, # Number of segmentation classs. Usually 19 for cityscapes, 21 for VOC, 150 for ADE20k. + num_classes=19, # Number of segmentation class. Usually 19 for cityscapes, 21 for VOC, 150 for ADE20k. norm_cfg=dict(type='SyncBN', requires_grad=True), # The configuration of norm layer. align_corners=False, # The align_corners argument for resize in decoding. loss_decode=dict( # Config of loss function for the decode_head. @@ -132,7 +132,7 @@ test_pipeline = [ flip=False, # Whether to flip images during testing transforms=[ dict(type='Resize', # Use resize augmentation - keep_ratio=True), # Whether to keep the ratio between height and width, the img_scale set here will be supressed by the img_scale set above. + keep_ratio=True), # Whether to keep the ratio between height and width, the img_scale set here will be suppressed by the img_scale set above. dict(type='RandomFlip'), # Thought RandomFlip is added in pipeline, it is not used when flip=False dict( type='Normalize', # Normalization config, the values are from img_norm_cfg @@ -245,7 +245,7 @@ runner = dict( checkpoint_config = dict( # Config to set the checkpoint hook, Refer to https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/checkpoint.py for implementation. by_epoch=False, # Whether count by epoch or not. interval=4000) # The save interval. -evaluation = dict( # The config to build the evaluation hook. Please refer to mmseg/core/evaulation/eval_hook.py for details. +evaluation = dict( # The config to build the evaluation hook. Please refer to mmseg/core/evaluation/eval_hook.py for details. interval=4000, # The interval of evaluation. metric='mIoU') # The evaluation metric. diff --git a/docs/tutorials/customize_runtime.md b/docs/tutorials/customize_runtime.md index 3b9097b432..dba0edc4a4 100644 --- a/docs/tutorials/customize_runtime.md +++ b/docs/tutorials/customize_runtime.md @@ -113,7 +113,7 @@ Tricks not implemented by the optimizer should be implemented through optimizer _delete_=True, grad_clip=dict(max_norm=35, norm_type=2)) ``` - If your config inherits the base config which already sets the `optimizer_config`, you might need `_delete_=True` to overide the unnecessary settings. See the [config documenetation](https://mmsegmentation.readthedocs.io/en/latest/config.html) for more details. + If your config inherits the base config which already sets the `optimizer_config`, you might need `_delete_=True` to override the unnecessary settings. See the [config documentation](https://mmsegmentation.readthedocs.io/en/latest/config.html) for more details. - __Use momentum schedule to accelerate model convergence__: We support momentum scheduler to modify model's momentum according to learning rate, which could make the model converge in a faster way. @@ -198,7 +198,7 @@ custom_hooks = [ ### Modify default runtime hooks -There are some common hooks that are not registerd through `custom_hooks`, they are +There are some common hooks that are not registered through `custom_hooks`, they are - log_config - checkpoint_config diff --git a/docs_zh-CN/tutorials/config.md b/docs_zh-CN/tutorials/config.md index 927037d73e..e4deca6b6e 100644 --- a/docs_zh-CN/tutorials/config.md +++ b/docs_zh-CN/tutorials/config.md @@ -241,7 +241,7 @@ runner = dict( checkpoint_config = dict( # 设置检查点钩子 (checkpoint hook) 的配置文件。执行时请参考 https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/checkpoint.py。 by_epoch=False, # 是否按照每个 epoch 去算 runner。 interval=4000) # 保存的间隔 -evaluation = dict( # 构建评估钩 (evaluation hook) 的配置文件。细节请参考 mmseg/core/evaulation/eval_hook.py。 +evaluation = dict( # 构建评估钩 (evaluation hook) 的配置文件。细节请参考 mmseg/core/evaluation/eval_hook.py。 interval=4000, # 评估的间歇点 metric='mIoU') # 评估的指标 diff --git a/mmseg/core/evaluation/metrics.py b/mmseg/core/evaluation/metrics.py index b83a798ea9..a1c0908e15 100644 --- a/mmseg/core/evaluation/metrics.py +++ b/mmseg/core/evaluation/metrics.py @@ -7,7 +7,7 @@ def f_score(precision, recall, beta=1): - """calcuate the f-score value. + """calculate the f-score value. Args: precision (float | torch.Tensor): The precision value. @@ -40,7 +40,7 @@ def intersect_and_union(pred_label, ignore_index (int): Index that will be ignored in evaluation. label_map (dict): Mapping old labels to new labels. The parameter will work only when label is str. Default: dict(). - reduce_zero_label (bool): Wether ignore zero label. The parameter will + reduce_zero_label (bool): Whether ignore zero label. The parameter will work only when label is str. Default: False. Returns: @@ -102,7 +102,7 @@ def total_intersect_and_union(results, num_classes (int): Number of categories. ignore_index (int): Index that will be ignored in evaluation. label_map (dict): Mapping old labels to new labels. Default: dict(). - reduce_zero_label (bool): Wether ignore zero label. Default: False. + reduce_zero_label (bool): Whether ignore zero label. Default: False. Returns: ndarray: The intersection of prediction and ground truth histogram @@ -148,7 +148,7 @@ def mean_iou(results, nan_to_num (int, optional): If specified, NaN values will be replaced by the numbers defined by the user. Default: None. label_map (dict): Mapping old labels to new labels. Default: dict(). - reduce_zero_label (bool): Wether ignore zero label. Default: False. + reduce_zero_label (bool): Whether ignore zero label. Default: False. Returns: dict[str, float | ndarray]: @@ -187,7 +187,7 @@ def mean_dice(results, nan_to_num (int, optional): If specified, NaN values will be replaced by the numbers defined by the user. Default: None. label_map (dict): Mapping old labels to new labels. Default: dict(). - reduce_zero_label (bool): Wether ignore zero label. Default: False. + reduce_zero_label (bool): Whether ignore zero label. Default: False. Returns: dict[str, float | ndarray]: Default metrics. @@ -228,7 +228,7 @@ def mean_fscore(results, nan_to_num (int, optional): If specified, NaN values will be replaced by the numbers defined by the user. Default: None. label_map (dict): Mapping old labels to new labels. Default: dict(). - reduce_zero_label (bool): Wether ignore zero label. Default: False. + reduce_zero_label (bool): Whether ignore zero label. Default: False. beta (int): Determines the weight of recall in the combined score. Default: False. @@ -274,7 +274,7 @@ def eval_metrics(results, nan_to_num (int, optional): If specified, NaN values will be replaced by the numbers defined by the user. Default: None. label_map (dict): Mapping old labels to new labels. Default: dict(). - reduce_zero_label (bool): Wether ignore zero label. Default: False. + reduce_zero_label (bool): Whether ignore zero label. Default: False. Returns: float: Overall accuracy on all images. ndarray: Per category accuracy, shape (num_classes, ). diff --git a/mmseg/datasets/pipelines/__init__.py b/mmseg/datasets/pipelines/__init__.py index 660291e256..563ae62807 100644 --- a/mmseg/datasets/pipelines/__init__.py +++ b/mmseg/datasets/pipelines/__init__.py @@ -1,7 +1,7 @@ # Copyright (c) OpenMMLab. All rights reserved. from .compose import Compose -from .formating import (Collect, ImageToTensor, ToDataContainer, ToTensor, - Transpose, to_tensor) +from .formatting import (Collect, ImageToTensor, ToDataContainer, ToTensor, + Transpose, to_tensor) from .loading import LoadAnnotations, LoadImageFromFile from .test_time_aug import MultiScaleFlipAug from .transforms import (CLAHE, AdjustGamma, Normalize, Pad, diff --git a/mmseg/datasets/pipelines/formating.py b/mmseg/datasets/pipelines/formating.py index 4e057c1b81..f6e53bfebe 100644 --- a/mmseg/datasets/pipelines/formating.py +++ b/mmseg/datasets/pipelines/formating.py @@ -1,289 +1,9 @@ # Copyright (c) OpenMMLab. All rights reserved. -from collections.abc import Sequence +# flake8: noqa +import warnings -import mmcv -import numpy as np -import torch -from mmcv.parallel import DataContainer as DC +from .formatting import * -from ..builder import PIPELINES - - -def to_tensor(data): - """Convert objects of various python types to :obj:`torch.Tensor`. - - Supported types are: :class:`numpy.ndarray`, :class:`torch.Tensor`, - :class:`Sequence`, :class:`int` and :class:`float`. - - Args: - data (torch.Tensor | numpy.ndarray | Sequence | int | float): Data to - be converted. - """ - - if isinstance(data, torch.Tensor): - return data - elif isinstance(data, np.ndarray): - return torch.from_numpy(data) - elif isinstance(data, Sequence) and not mmcv.is_str(data): - return torch.tensor(data) - elif isinstance(data, int): - return torch.LongTensor([data]) - elif isinstance(data, float): - return torch.FloatTensor([data]) - else: - raise TypeError(f'type {type(data)} cannot be converted to tensor.') - - -@PIPELINES.register_module() -class ToTensor(object): - """Convert some results to :obj:`torch.Tensor` by given keys. - - Args: - keys (Sequence[str]): Keys that need to be converted to Tensor. - """ - - def __init__(self, keys): - self.keys = keys - - def __call__(self, results): - """Call function to convert data in results to :obj:`torch.Tensor`. - - Args: - results (dict): Result dict contains the data to convert. - - Returns: - dict: The result dict contains the data converted - to :obj:`torch.Tensor`. - """ - - for key in self.keys: - results[key] = to_tensor(results[key]) - return results - - def __repr__(self): - return self.__class__.__name__ + f'(keys={self.keys})' - - -@PIPELINES.register_module() -class ImageToTensor(object): - """Convert image to :obj:`torch.Tensor` by given keys. - - The dimension order of input image is (H, W, C). The pipeline will convert - it to (C, H, W). If only 2 dimension (H, W) is given, the output would be - (1, H, W). - - Args: - keys (Sequence[str]): Key of images to be converted to Tensor. - """ - - def __init__(self, keys): - self.keys = keys - - def __call__(self, results): - """Call function to convert image in results to :obj:`torch.Tensor` and - transpose the channel order. - - Args: - results (dict): Result dict contains the image data to convert. - - Returns: - dict: The result dict contains the image converted - to :obj:`torch.Tensor` and transposed to (C, H, W) order. - """ - - for key in self.keys: - img = results[key] - if len(img.shape) < 3: - img = np.expand_dims(img, -1) - results[key] = to_tensor(img.transpose(2, 0, 1)) - return results - - def __repr__(self): - return self.__class__.__name__ + f'(keys={self.keys})' - - -@PIPELINES.register_module() -class Transpose(object): - """Transpose some results by given keys. - - Args: - keys (Sequence[str]): Keys of results to be transposed. - order (Sequence[int]): Order of transpose. - """ - - def __init__(self, keys, order): - self.keys = keys - self.order = order - - def __call__(self, results): - """Call function to convert image in results to :obj:`torch.Tensor` and - transpose the channel order. - - Args: - results (dict): Result dict contains the image data to convert. - - Returns: - dict: The result dict contains the image converted - to :obj:`torch.Tensor` and transposed to (C, H, W) order. - """ - - for key in self.keys: - results[key] = results[key].transpose(self.order) - return results - - def __repr__(self): - return self.__class__.__name__ + \ - f'(keys={self.keys}, order={self.order})' - - -@PIPELINES.register_module() -class ToDataContainer(object): - """Convert results to :obj:`mmcv.DataContainer` by given fields. - - Args: - fields (Sequence[dict]): Each field is a dict like - ``dict(key='xxx', **kwargs)``. The ``key`` in result will - be converted to :obj:`mmcv.DataContainer` with ``**kwargs``. - Default: ``(dict(key='img', stack=True), - dict(key='gt_semantic_seg'))``. - """ - - def __init__(self, - fields=(dict(key='img', - stack=True), dict(key='gt_semantic_seg'))): - self.fields = fields - - def __call__(self, results): - """Call function to convert data in results to - :obj:`mmcv.DataContainer`. - - Args: - results (dict): Result dict contains the data to convert. - - Returns: - dict: The result dict contains the data converted to - :obj:`mmcv.DataContainer`. - """ - - for field in self.fields: - field = field.copy() - key = field.pop('key') - results[key] = DC(results[key], **field) - return results - - def __repr__(self): - return self.__class__.__name__ + f'(fields={self.fields})' - - -@PIPELINES.register_module() -class DefaultFormatBundle(object): - """Default formatting bundle. - - It simplifies the pipeline of formatting common fields, including "img" - and "gt_semantic_seg". These fields are formatted as follows. - - - img: (1)transpose, (2)to tensor, (3)to DataContainer (stack=True) - - gt_semantic_seg: (1)unsqueeze dim-0 (2)to tensor, - (3)to DataContainer (stack=True) - """ - - def __call__(self, results): - """Call function to transform and format common fields in results. - - Args: - results (dict): Result dict contains the data to convert. - - Returns: - dict: The result dict contains the data that is formatted with - default bundle. - """ - - if 'img' in results: - img = results['img'] - if len(img.shape) < 3: - img = np.expand_dims(img, -1) - img = np.ascontiguousarray(img.transpose(2, 0, 1)) - results['img'] = DC(to_tensor(img), stack=True) - if 'gt_semantic_seg' in results: - # convert to long - results['gt_semantic_seg'] = DC( - to_tensor(results['gt_semantic_seg'][None, - ...].astype(np.int64)), - stack=True) - return results - - def __repr__(self): - return self.__class__.__name__ - - -@PIPELINES.register_module() -class Collect(object): - """Collect data from the loader relevant to the specific task. - - This is usually the last stage of the data loader pipeline. Typically keys - is set to some subset of "img", "gt_semantic_seg". - - The "img_meta" item is always populated. The contents of the "img_meta" - dictionary depends on "meta_keys". By default this includes: - - - "img_shape": shape of the image input to the network as a tuple - (h, w, c). Note that images may be zero padded on the bottom/right - if the batch tensor is larger than this shape. - - - "scale_factor": a float indicating the preprocessing scale - - - "flip": a boolean indicating if image flip transform was used - - - "filename": path to the image file - - - "ori_shape": original shape of the image as a tuple (h, w, c) - - - "pad_shape": image shape after padding - - - "img_norm_cfg": a dict of normalization information: - - mean - per channel mean subtraction - - std - per channel std divisor - - to_rgb - bool indicating if bgr was converted to rgb - - Args: - keys (Sequence[str]): Keys of results to be collected in ``data``. - meta_keys (Sequence[str], optional): Meta keys to be converted to - ``mmcv.DataContainer`` and collected in ``data[img_metas]``. - Default: (``filename``, ``ori_filename``, ``ori_shape``, - ``img_shape``, ``pad_shape``, ``scale_factor``, ``flip``, - ``flip_direction``, ``img_norm_cfg``) - """ - - def __init__(self, - keys, - meta_keys=('filename', 'ori_filename', 'ori_shape', - 'img_shape', 'pad_shape', 'scale_factor', 'flip', - 'flip_direction', 'img_norm_cfg')): - self.keys = keys - self.meta_keys = meta_keys - - def __call__(self, results): - """Call function to collect keys in results. The keys in ``meta_keys`` - will be converted to :obj:mmcv.DataContainer. - - Args: - results (dict): Result dict contains the data to collect. - - Returns: - dict: The result dict contains the following keys - - keys in``self.keys`` - - ``img_metas`` - """ - - data = {} - img_meta = {} - for key in self.meta_keys: - img_meta[key] = results[key] - data['img_metas'] = DC(img_meta, cpu_only=True) - for key in self.keys: - data[key] = results[key] - return data - - def __repr__(self): - return self.__class__.__name__ + \ - f'(keys={self.keys}, meta_keys={self.meta_keys})' +warnings.warn('DeprecationWarning: mmseg.datasets.pipelines.formating will be ' + 'deprecated in 2021, please replace it with ' + 'mmseg.datasets.pipelines.formatting.') diff --git a/mmseg/datasets/pipelines/formatting.py b/mmseg/datasets/pipelines/formatting.py new file mode 100644 index 0000000000..4e057c1b81 --- /dev/null +++ b/mmseg/datasets/pipelines/formatting.py @@ -0,0 +1,289 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from collections.abc import Sequence + +import mmcv +import numpy as np +import torch +from mmcv.parallel import DataContainer as DC + +from ..builder import PIPELINES + + +def to_tensor(data): + """Convert objects of various python types to :obj:`torch.Tensor`. + + Supported types are: :class:`numpy.ndarray`, :class:`torch.Tensor`, + :class:`Sequence`, :class:`int` and :class:`float`. + + Args: + data (torch.Tensor | numpy.ndarray | Sequence | int | float): Data to + be converted. + """ + + if isinstance(data, torch.Tensor): + return data + elif isinstance(data, np.ndarray): + return torch.from_numpy(data) + elif isinstance(data, Sequence) and not mmcv.is_str(data): + return torch.tensor(data) + elif isinstance(data, int): + return torch.LongTensor([data]) + elif isinstance(data, float): + return torch.FloatTensor([data]) + else: + raise TypeError(f'type {type(data)} cannot be converted to tensor.') + + +@PIPELINES.register_module() +class ToTensor(object): + """Convert some results to :obj:`torch.Tensor` by given keys. + + Args: + keys (Sequence[str]): Keys that need to be converted to Tensor. + """ + + def __init__(self, keys): + self.keys = keys + + def __call__(self, results): + """Call function to convert data in results to :obj:`torch.Tensor`. + + Args: + results (dict): Result dict contains the data to convert. + + Returns: + dict: The result dict contains the data converted + to :obj:`torch.Tensor`. + """ + + for key in self.keys: + results[key] = to_tensor(results[key]) + return results + + def __repr__(self): + return self.__class__.__name__ + f'(keys={self.keys})' + + +@PIPELINES.register_module() +class ImageToTensor(object): + """Convert image to :obj:`torch.Tensor` by given keys. + + The dimension order of input image is (H, W, C). The pipeline will convert + it to (C, H, W). If only 2 dimension (H, W) is given, the output would be + (1, H, W). + + Args: + keys (Sequence[str]): Key of images to be converted to Tensor. + """ + + def __init__(self, keys): + self.keys = keys + + def __call__(self, results): + """Call function to convert image in results to :obj:`torch.Tensor` and + transpose the channel order. + + Args: + results (dict): Result dict contains the image data to convert. + + Returns: + dict: The result dict contains the image converted + to :obj:`torch.Tensor` and transposed to (C, H, W) order. + """ + + for key in self.keys: + img = results[key] + if len(img.shape) < 3: + img = np.expand_dims(img, -1) + results[key] = to_tensor(img.transpose(2, 0, 1)) + return results + + def __repr__(self): + return self.__class__.__name__ + f'(keys={self.keys})' + + +@PIPELINES.register_module() +class Transpose(object): + """Transpose some results by given keys. + + Args: + keys (Sequence[str]): Keys of results to be transposed. + order (Sequence[int]): Order of transpose. + """ + + def __init__(self, keys, order): + self.keys = keys + self.order = order + + def __call__(self, results): + """Call function to convert image in results to :obj:`torch.Tensor` and + transpose the channel order. + + Args: + results (dict): Result dict contains the image data to convert. + + Returns: + dict: The result dict contains the image converted + to :obj:`torch.Tensor` and transposed to (C, H, W) order. + """ + + for key in self.keys: + results[key] = results[key].transpose(self.order) + return results + + def __repr__(self): + return self.__class__.__name__ + \ + f'(keys={self.keys}, order={self.order})' + + +@PIPELINES.register_module() +class ToDataContainer(object): + """Convert results to :obj:`mmcv.DataContainer` by given fields. + + Args: + fields (Sequence[dict]): Each field is a dict like + ``dict(key='xxx', **kwargs)``. The ``key`` in result will + be converted to :obj:`mmcv.DataContainer` with ``**kwargs``. + Default: ``(dict(key='img', stack=True), + dict(key='gt_semantic_seg'))``. + """ + + def __init__(self, + fields=(dict(key='img', + stack=True), dict(key='gt_semantic_seg'))): + self.fields = fields + + def __call__(self, results): + """Call function to convert data in results to + :obj:`mmcv.DataContainer`. + + Args: + results (dict): Result dict contains the data to convert. + + Returns: + dict: The result dict contains the data converted to + :obj:`mmcv.DataContainer`. + """ + + for field in self.fields: + field = field.copy() + key = field.pop('key') + results[key] = DC(results[key], **field) + return results + + def __repr__(self): + return self.__class__.__name__ + f'(fields={self.fields})' + + +@PIPELINES.register_module() +class DefaultFormatBundle(object): + """Default formatting bundle. + + It simplifies the pipeline of formatting common fields, including "img" + and "gt_semantic_seg". These fields are formatted as follows. + + - img: (1)transpose, (2)to tensor, (3)to DataContainer (stack=True) + - gt_semantic_seg: (1)unsqueeze dim-0 (2)to tensor, + (3)to DataContainer (stack=True) + """ + + def __call__(self, results): + """Call function to transform and format common fields in results. + + Args: + results (dict): Result dict contains the data to convert. + + Returns: + dict: The result dict contains the data that is formatted with + default bundle. + """ + + if 'img' in results: + img = results['img'] + if len(img.shape) < 3: + img = np.expand_dims(img, -1) + img = np.ascontiguousarray(img.transpose(2, 0, 1)) + results['img'] = DC(to_tensor(img), stack=True) + if 'gt_semantic_seg' in results: + # convert to long + results['gt_semantic_seg'] = DC( + to_tensor(results['gt_semantic_seg'][None, + ...].astype(np.int64)), + stack=True) + return results + + def __repr__(self): + return self.__class__.__name__ + + +@PIPELINES.register_module() +class Collect(object): + """Collect data from the loader relevant to the specific task. + + This is usually the last stage of the data loader pipeline. Typically keys + is set to some subset of "img", "gt_semantic_seg". + + The "img_meta" item is always populated. The contents of the "img_meta" + dictionary depends on "meta_keys". By default this includes: + + - "img_shape": shape of the image input to the network as a tuple + (h, w, c). Note that images may be zero padded on the bottom/right + if the batch tensor is larger than this shape. + + - "scale_factor": a float indicating the preprocessing scale + + - "flip": a boolean indicating if image flip transform was used + + - "filename": path to the image file + + - "ori_shape": original shape of the image as a tuple (h, w, c) + + - "pad_shape": image shape after padding + + - "img_norm_cfg": a dict of normalization information: + - mean - per channel mean subtraction + - std - per channel std divisor + - to_rgb - bool indicating if bgr was converted to rgb + + Args: + keys (Sequence[str]): Keys of results to be collected in ``data``. + meta_keys (Sequence[str], optional): Meta keys to be converted to + ``mmcv.DataContainer`` and collected in ``data[img_metas]``. + Default: (``filename``, ``ori_filename``, ``ori_shape``, + ``img_shape``, ``pad_shape``, ``scale_factor``, ``flip``, + ``flip_direction``, ``img_norm_cfg``) + """ + + def __init__(self, + keys, + meta_keys=('filename', 'ori_filename', 'ori_shape', + 'img_shape', 'pad_shape', 'scale_factor', 'flip', + 'flip_direction', 'img_norm_cfg')): + self.keys = keys + self.meta_keys = meta_keys + + def __call__(self, results): + """Call function to collect keys in results. The keys in ``meta_keys`` + will be converted to :obj:mmcv.DataContainer. + + Args: + results (dict): Result dict contains the data to collect. + + Returns: + dict: The result dict contains the following keys + - keys in``self.keys`` + - ``img_metas`` + """ + + data = {} + img_meta = {} + for key in self.meta_keys: + img_meta[key] = results[key] + data['img_metas'] = DC(img_meta, cpu_only=True) + for key in self.keys: + data[key] = results[key] + return data + + def __repr__(self): + return self.__class__.__name__ + \ + f'(keys={self.keys}, meta_keys={self.meta_keys})' diff --git a/mmseg/models/backbones/bisenetv2.py b/mmseg/models/backbones/bisenetv2.py index eb05e10d52..d908b321ca 100644 --- a/mmseg/models/backbones/bisenetv2.py +++ b/mmseg/models/backbones/bisenetv2.py @@ -194,7 +194,7 @@ class GELayer(BaseModule): init_cfg (dict or list[dict], optional): Initialization config dict. Default: None. Returns: - x (torch.Tensor): Intermidiate feature map in + x (torch.Tensor): Intermediate feature map in Semantic Branch. """ diff --git a/mmseg/models/backbones/mit.py b/mmseg/models/backbones/mit.py index 54d9856606..c58e5637eb 100644 --- a/mmseg/models/backbones/mit.py +++ b/mmseg/models/backbones/mit.py @@ -186,7 +186,7 @@ class TransformerEncoderLayer(BaseModule): qkv_bias (bool): enable bias for qkv if True. Default: True. act_cfg (dict): The activation config for FFNs. - Defalut: dict(type='GELU'). + Default: dict(type='GELU'). norm_cfg (dict): Config dict for normalization layer. Default: dict(type='LN'). batch_first (bool): Key, Query and Value are shape of @@ -277,7 +277,7 @@ class MixVisionTransformer(BaseModule): norm_cfg (dict): Config dict for normalization layer. Default: dict(type='LN') act_cfg (dict): The activation config for FFNs. - Defalut: dict(type='GELU'). + Default: dict(type='GELU'). pretrained (str, optional): model pretrained path. Default: None. init_cfg (dict or list[dict], optional): Initialization config dict. Default: None. diff --git a/mmseg/models/backbones/vit.py b/mmseg/models/backbones/vit.py index 5939964004..9c099d2ee3 100644 --- a/mmseg/models/backbones/vit.py +++ b/mmseg/models/backbones/vit.py @@ -33,7 +33,7 @@ class TransformerEncoderLayer(BaseModule): Default: 2. qkv_bias (bool): enable bias for qkv if True. Default: True act_cfg (dict): The activation config for FFNs. - Defalut: dict(type='GELU'). + Default: dict(type='GELU'). norm_cfg (dict): Config dict for normalization layer. Default: dict(type='LN'). batch_first (bool): Key, Query and Value are shape of @@ -126,7 +126,7 @@ class VisionTransformer(BaseModule): norm_cfg (dict): Config dict for normalization layer. Default: dict(type='LN') act_cfg (dict): The activation config for FFNs. - Defalut: dict(type='GELU'). + Default: dict(type='GELU'). patch_norm (bool): Whether to add a norm in PatchEmbed Block. Default: False. final_norm (bool): Whether to add a additional layer to normalize diff --git a/mmseg/models/decode_heads/dpt_head.py b/mmseg/models/decode_heads/dpt_head.py index 7028f2a230..a63f9d2972 100644 --- a/mmseg/models/decode_heads/dpt_head.py +++ b/mmseg/models/decode_heads/dpt_head.py @@ -227,7 +227,7 @@ class DPTHead(BaseDecodeHead): expand_channels (bool): Whether expand the channels in post process block. Default: False. act_cfg (dict): The activation config for residual conv unit. - Defalut dict(type='ReLU'). + Default dict(type='ReLU'). norm_cfg (dict): Config dict for normalization layer. Default: dict(type='BN'). """ diff --git a/mmseg/models/losses/utils.py b/mmseg/models/losses/utils.py index c57e4b18a8..c37875fadb 100644 --- a/mmseg/models/losses/utils.py +++ b/mmseg/models/losses/utils.py @@ -51,7 +51,7 @@ def weight_reduce_loss(loss, weight=None, reduction='mean', avg_factor=None): loss (Tensor): Element-wise loss. weight (Tensor): Element-wise weights. reduction (str): Same as built-in losses of PyTorch. - avg_factor (float): Avarage factor when computing the mean of losses. + avg_factor (float): Average factor when computing the mean of losses. Returns: Tensor: Processed loss values. diff --git a/mmseg/models/utils/shape_convert.py b/mmseg/models/utils/shape_convert.py index 34c8648c4a..0677348c80 100644 --- a/mmseg/models/utils/shape_convert.py +++ b/mmseg/models/utils/shape_convert.py @@ -3,11 +3,11 @@ def nlc_to_nchw(x, hw_shape): """Convert [N, L, C] shape tensor to [N, C, H, W] shape tensor. Args: - x (Tensor): The input tensor of shape [N, L, C] before convertion. + x (Tensor): The input tensor of shape [N, L, C] before conversion. hw_shape (Sequence[int]): The height and width of output feature map. Returns: - Tensor: The output tensor of shape [N, C, H, W] after convertion. + Tensor: The output tensor of shape [N, C, H, W] after conversion. """ H, W = hw_shape assert len(x.shape) == 3 @@ -20,10 +20,10 @@ def nchw_to_nlc(x): """Flatten [N, C, H, W] shape tensor to [N, L, C] shape tensor. Args: - x (Tensor): The input tensor of shape [N, C, H, W] before convertion. + x (Tensor): The input tensor of shape [N, C, H, W] before conversion. Returns: - Tensor: The output tensor of shape [N, L, C] after convertion. + Tensor: The output tensor of shape [N, L, C] after conversion. """ assert len(x.shape) == 4 return x.flatten(2).transpose(1, 2).contiguous() diff --git a/setup.cfg b/setup.cfg index 8605ae9393..1045a9a85f 100644 --- a/setup.cfg +++ b/setup.cfg @@ -11,3 +11,9 @@ known_first_party = mmseg known_third_party = PIL,cityscapesscripts,cv2,detail,matplotlib,mmcv,numpy,onnxruntime,packaging,prettytable,pytest,pytorch_sphinx_theme,requests,scipy,seaborn,torch,ts no_lines_before = STDLIB,LOCALFOLDER default_section = THIRDPARTY + +[codespell] +skip = *.po,*.ts,*.ipynb +count = +quiet-level = 3 +ignore-words-list = formating,sur,hist diff --git a/tests/test_models/test_backbones/test_unet.py b/tests/test_models/test_backbones/test_unet.py index c4f2faca3f..9beb7279a0 100644 --- a/tests/test_models/test_backbones/test_unet.py +++ b/tests/test_models/test_backbones/test_unet.py @@ -425,7 +425,7 @@ def test_unet(): unet(x) with pytest.raises(AssertionError): - # Check if num_stages matchs strides, len(strides)=num_stages + # Check if num_stages matches strides, len(strides)=num_stages unet = UNet( in_channels=3, base_channels=4, @@ -440,7 +440,7 @@ def test_unet(): unet(x) with pytest.raises(AssertionError): - # Check if num_stages matchs strides, len(enc_num_convs)=num_stages + # Check if num_stages matches strides, len(enc_num_convs)=num_stages unet = UNet( in_channels=3, base_channels=4, @@ -455,7 +455,7 @@ def test_unet(): unet(x) with pytest.raises(AssertionError): - # Check if num_stages matchs strides, len(dec_num_convs)=num_stages-1 + # Check if num_stages matches strides, len(dec_num_convs)=num_stages-1 unet = UNet( in_channels=3, base_channels=4, @@ -470,7 +470,7 @@ def test_unet(): unet(x) with pytest.raises(AssertionError): - # Check if num_stages matchs strides, len(downsamples)=num_stages-1 + # Check if num_stages matches strides, len(downsamples)=num_stages-1 unet = UNet( in_channels=3, base_channels=4, @@ -485,7 +485,7 @@ def test_unet(): unet(x) with pytest.raises(AssertionError): - # Check if num_stages matchs strides, len(enc_dilations)=num_stages + # Check if num_stages matches strides, len(enc_dilations)=num_stages unet = UNet( in_channels=3, base_channels=4, @@ -500,7 +500,7 @@ def test_unet(): unet(x) with pytest.raises(AssertionError): - # Check if num_stages matchs strides, len(dec_dilations)=num_stages-1 + # Check if num_stages matches strides, len(dec_dilations)=num_stages-1 unet = UNet( in_channels=3, base_channels=4, diff --git a/tests/test_models/test_utils/test_embed.py b/tests/test_models/test_utils/test_embed.py index 2c6857dc72..be20c97b0d 100644 --- a/tests/test_models/test_utils/test_embed.py +++ b/tests/test_models/test_utils/test_embed.py @@ -173,7 +173,7 @@ def test_patch_embed(): # test L = out_h * out_w assert shape[0] * shape[1] == x3.shape[1] - # test thte init_out_size with nn.Unfold + # test the init_out_size with nn.Unfold assert patch_merge_3.init_out_size[1] == (input_size[0] - 2 * 4 - 1) // 2 + 1 assert patch_merge_3.init_out_size[0] == (input_size[0] - 2 * 4 - @@ -195,7 +195,7 @@ def test_patch_embed(): _, shape = patch_merge_3(dummy_input) # when input_size equal to real input - # the out_size shoule be equal to `init_out_size` + # the out_size should be equal to `init_out_size` assert shape == patch_merge_3.init_out_size input_size = (H, W) @@ -213,7 +213,7 @@ def test_patch_embed(): _, shape = patch_merge_3(dummy_input) # when input_size equal to real input - # the out_size shoule be equal to `init_out_size` + # the out_size should be equal to `init_out_size` assert shape == patch_merge_3.init_out_size # test adap padding @@ -288,7 +288,7 @@ def test_patch_embed(): assert out_size == (2, 1) assert x_out.size(1) == out_size[0] * out_size[1] - # test different kernel_size with diffrent stride + # test different kernel_size with different stride input_size = (6, 5) kernel_size = (6, 2) stride = (6, 2) @@ -437,7 +437,7 @@ def test_patch_merging(): assert out_size == (2, 1) assert x_out.size(1) == out_size[0] * out_size[1] - # test different kernel_size with diffrent stride + # test different kernel_size with different stride input_size = (6, 5) kernel_size = (6, 2) stride = (6, 2) diff --git a/tools/model_converters/mit2mmseg.py b/tools/model_converters/mit2mmseg.py index 37e9b94767..2eff1f7b7a 100644 --- a/tools/model_converters/mit2mmseg.py +++ b/tools/model_converters/mit2mmseg.py @@ -14,14 +14,14 @@ def convert_mit(ckpt): for k, v in ckpt.items(): if k.startswith('head'): continue - # patch embedding convertion + # patch embedding conversion elif k.startswith('patch_embed'): stage_i = int(k.split('.')[0].replace('patch_embed', '')) new_k = k.replace(f'patch_embed{stage_i}', f'layers.{stage_i-1}.0') new_v = v if 'proj.' in new_k: new_k = new_k.replace('proj.', 'projection.') - # transformer encoder layer convertion + # transformer encoder layer conversion elif k.startswith('block'): stage_i = int(k.split('.')[0].replace('block', '')) new_k = k.replace(f'block{stage_i}', f'layers.{stage_i-1}.1') @@ -45,7 +45,7 @@ def convert_mit(ckpt): new_k = new_k.replace('dwconv.dwconv.', '1.') new_k = new_k.replace('fc2.', '4.') string += f'{new_k} {v.shape}-{new_v.shape}' - # norm layer convertion + # norm layer conversion elif k.startswith('norm'): stage_i = int(k.split('.')[0].replace('norm', '')) new_k = k.replace(f'norm{stage_i}', f'layers.{stage_i-1}.2') diff --git a/tools/onnx2tensorrt.py b/tools/onnx2tensorrt.py index 1cda22249f..f8a258fc80 100644 --- a/tools/onnx2tensorrt.py +++ b/tools/onnx2tensorrt.py @@ -117,7 +117,7 @@ def onnx2tensorrt(onnx_file: str, import tensorrt as trt min_shape = input_config['min_shape'] max_shape = input_config['max_shape'] - # create trt engine and wraper + # create trt engine and wrapper opt_shape_dict = {'input': [min_shape, min_shape, max_shape]} max_workspace_size = get_GiB(workspace_size) trt_engine = onnx2trt( @@ -254,7 +254,7 @@ def parse_args(): 'Dataset {} does not found.'.format(args.dataset) for max_value, min_value in zip(args.max_shape, args.min_shape): assert max_value >= min_value, \ - 'max_shape sould be larger than min shape' + 'max_shape should be larger than min shape' input_config = { 'min_shape': args.min_shape, diff --git a/tools/pytorch2torchscript.py b/tools/pytorch2torchscript.py index fad6fd142f..d76f5ecb95 100644 --- a/tools/pytorch2torchscript.py +++ b/tools/pytorch2torchscript.py @@ -113,7 +113,7 @@ def pytorch2libtorch(model, imgs = mm_inputs.pop('imgs') - # replace the orginal forword with forward_dummy + # replace the original forword with forward_dummy model.forward = model.forward_dummy model.eval() traced_model = torch.jit.trace( From d8e7cfae21f3a6cfabdf2c2f9fa77da47731f351 Mon Sep 17 00:00:00 2001 From: MengzhangLI Date: Wed, 20 Oct 2021 11:27:33 +0800 Subject: [PATCH 263/706] [Benchmark] Uploading FastFCN on ADE20K (#972) * Uploading FastFCN on ADE20K * fixing lint error --- configs/fastfcn/README.md | 11 ++ configs/fastfcn/fastfcn.yml | 109 ++++++++++++++++++ ...cn_r50-d32_jpu_aspp_512x512_160k_ade20k.py | 20 ++++ ...fcn_r50-d32_jpu_aspp_512x512_80k_ade20k.py | 20 ++++ ...fcn_r50-d32_jpu_enc_512x512_160k_ade20k.py | 24 ++++ ...tfcn_r50-d32_jpu_enc_512x512_80k_ade20k.py | 24 ++++ ...fcn_r50-d32_jpu_psp_512x512_160k_ade20k.py | 7 ++ ...tfcn_r50-d32_jpu_psp_512x512_80k_ade20k.py | 7 ++ 8 files changed, 222 insertions(+) create mode 100644 configs/fastfcn/fastfcn_r50-d32_jpu_aspp_512x512_160k_ade20k.py create mode 100644 configs/fastfcn/fastfcn_r50-d32_jpu_aspp_512x512_80k_ade20k.py create mode 100644 configs/fastfcn/fastfcn_r50-d32_jpu_enc_512x512_160k_ade20k.py create mode 100644 configs/fastfcn/fastfcn_r50-d32_jpu_enc_512x512_80k_ade20k.py create mode 100644 configs/fastfcn/fastfcn_r50-d32_jpu_psp_512x512_160k_ade20k.py create mode 100644 configs/fastfcn/fastfcn_r50-d32_jpu_psp_512x512_80k_ade20k.py diff --git a/configs/fastfcn/README.md b/configs/fastfcn/README.md index 768502b05f..ed9abea76f 100644 --- a/configs/fastfcn/README.md +++ b/configs/fastfcn/README.md @@ -35,6 +35,17 @@ year={2019} | EncNet + JPU | R-50-D32 | 512x1024 | 80000 | 8.15 | 4.77 | 77.97 |79.92 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fastfcn/fastfcn_r50-d32_jpu_enc_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_enc_512x1024_80k_cityscapes/fastfcn_r50-d32_jpu_enc_512x1024_80k_cityscapes_20210928_030036-78da5046.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_enc_512x1024_80k_cityscapes/fastfcn_r50-d32_jpu_enc_512x1024_80k_cityscapes_20210928_030036.log.json) | | EncNet + JPU (4x4)| R-50-D32 | 512x1024 | 80000 | 15.45 | - | 78.6 | 80.25 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fastfcn/fastfcn_r50-d32_jpu_enc_4x4_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_enc_4x4_512x1024_80k_cityscapes/fastfcn_r50-d32_jpu_enc_4x4_512x1024_80k_cityscapes_20210926_093217-e1eb6dbb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_enc_4x4_512x1024_80k_cityscapes/fastfcn_r50-d32_jpu_enc_4x4_512x1024_80k_cityscapes_20210926_093217.log.json) | +### ADE20K + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| --------- | --------- | --------- | ------: | -------- | -------------- | ----: | ------------- | --------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| DeepLabV3 + JPU | R-50-D32 | 512x1024 | 80000 | 8.46 | 12.06 | 41.88 | 42.91 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fastfcn/fastfcn_r50-d32_jpu_aspp_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_aspp_512x512_80k_ade20k/fastfcn_r50-d32_jpu_aspp_512x512_80k_ade20k_20211013_190619-3aa40f2d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_aspp_512x512_80k_ade20k/fastfcn_r50-d32_jpu_aspp_512x512_80k_ade20k_20211013_190619.log.json) | +| DeepLabV3 + JPU | R-50-D32 | 512x1024 | 160000 | - | - | 43.58 | 44.92 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fastfcn/fastfcn_r50-d32_jpu_aspp_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_aspp_512x512_160k_ade20k/fastfcn_r50-d32_jpu_aspp_512x512_160k_ade20k_20211008_152246-27036aee.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_aspp_512x512_160k_ade20k/fastfcn_r50-d32_jpu_aspp_512x512_160k_ade20k_20211008_152246.log.json) | +| PSPNet + JPU | R-50-D32 | 512x1024 | 80000 | 8.02 | 19.21 | 41.40 | 42.12 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fastfcn/fastfcn_r50-d32_jpu_psp_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_psp_512x512_80k_ade20k/fastfcn_r50-d32_jpu_psp_512x512_80k_ade20k_20210930_225137-993d07c8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_psp_512x512_80k_ade20k/fastfcn_r50-d32_jpu_psp_512x512_80k_ade20k_20210930_225137.log.json) | +| PSPNet + JPU | R-50-D32 | 512x1024 | 160000 | - | - | 42.63 | 43.71 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fastfcn/fastfcn_r50-d32_jpu_psp_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_psp_512x512_160k_ade20k/fastfcn_r50-d32_jpu_psp_512x512_160k_ade20k_20211008_105455-e8f5a2fd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_psp_512x512_160k_ade20k/fastfcn_r50-d32_jpu_psp_512x512_160k_ade20k_20211008_105455.log.json) | +| EncNet + JPU | R-50-D32 | 512x1024 | 80000 | 9.67 | 17.23 | 40.88 | 42.36 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fastfcn/fastfcn_r50-d32_jpu_enc_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_enc_512x512_80k_ade20k/fastfcn_r50-d32_jpu_enc_512x512_80k_ade20k_20210930_225214-65aef6dd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_enc_512x512_80k_ade20k/fastfcn_r50-d32_jpu_enc_512x512_80k_ade20k_20210930_225214.log.json) | +| EncNet + JPU | R-50-D32 | 512x1024 | 160000 | - | - | 42.50 | 44.21 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fastfcn/fastfcn_r50-d32_jpu_enc_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_enc_512x512_160k_ade20k/fastfcn_r50-d32_jpu_enc_512x512_160k_ade20k_20211008_105456-d875ce3c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_enc_512x512_160k_ade20k/fastfcn_r50-d32_jpu_enc_512x512_160k_ade20k_20211008_105456.log.json) | + Note: - `4x4` means 4 GPUs with 4 samples per GPU in training, default setting is 4 GPUs with 2 samples per GPU in training. diff --git a/configs/fastfcn/fastfcn.yml b/configs/fastfcn/fastfcn.yml index 5af2b64a97..da6e11141a 100644 --- a/configs/fastfcn/fastfcn.yml +++ b/configs/fastfcn/fastfcn.yml @@ -3,6 +3,7 @@ Collections: Metadata: Training Data: - Cityscapes + - ADE20K Paper: URL: https://arxiv.org/abs/1903.11816 Title: 'FastFCN: Rethinking Dilated Convolution in the Backbone for Semantic Segmentation' @@ -124,3 +125,111 @@ Models: mIoU(ms+flip): 80.25 Config: configs/fastfcn/fastfcn_r50-d32_jpu_enc_4x4_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_enc_4x4_512x1024_80k_cityscapes/fastfcn_r50-d32_jpu_enc_4x4_512x1024_80k_cityscapes_20210926_093217-e1eb6dbb.pth +- Name: fastfcn_r50-d32_jpu_aspp_512x512_80k_ade20k + In Collection: fastfcn + Metadata: + backbone: R-50-D32 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 82.92 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 8.46 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 41.88 + mIoU(ms+flip): 42.91 + Config: configs/fastfcn/fastfcn_r50-d32_jpu_aspp_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_aspp_512x512_80k_ade20k/fastfcn_r50-d32_jpu_aspp_512x512_80k_ade20k_20211013_190619-3aa40f2d.pth +- Name: fastfcn_r50-d32_jpu_aspp_512x512_160k_ade20k + In Collection: fastfcn + Metadata: + backbone: R-50-D32 + crop size: (512,1024) + lr schd: 160000 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.58 + mIoU(ms+flip): 44.92 + Config: configs/fastfcn/fastfcn_r50-d32_jpu_aspp_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_aspp_512x512_160k_ade20k/fastfcn_r50-d32_jpu_aspp_512x512_160k_ade20k_20211008_152246-27036aee.pth +- Name: fastfcn_r50-d32_jpu_psp_512x512_80k_ade20k + In Collection: fastfcn + Metadata: + backbone: R-50-D32 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 52.06 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 8.02 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 41.4 + mIoU(ms+flip): 42.12 + Config: configs/fastfcn/fastfcn_r50-d32_jpu_psp_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_psp_512x512_80k_ade20k/fastfcn_r50-d32_jpu_psp_512x512_80k_ade20k_20210930_225137-993d07c8.pth +- Name: fastfcn_r50-d32_jpu_psp_512x512_160k_ade20k + In Collection: fastfcn + Metadata: + backbone: R-50-D32 + crop size: (512,1024) + lr schd: 160000 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.63 + mIoU(ms+flip): 43.71 + Config: configs/fastfcn/fastfcn_r50-d32_jpu_psp_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_psp_512x512_160k_ade20k/fastfcn_r50-d32_jpu_psp_512x512_160k_ade20k_20211008_105455-e8f5a2fd.pth +- Name: fastfcn_r50-d32_jpu_enc_512x512_80k_ade20k + In Collection: fastfcn + Metadata: + backbone: R-50-D32 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 58.04 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 9.67 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 40.88 + mIoU(ms+flip): 42.36 + Config: configs/fastfcn/fastfcn_r50-d32_jpu_enc_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_enc_512x512_80k_ade20k/fastfcn_r50-d32_jpu_enc_512x512_80k_ade20k_20210930_225214-65aef6dd.pth +- Name: fastfcn_r50-d32_jpu_enc_512x512_160k_ade20k + In Collection: fastfcn + Metadata: + backbone: R-50-D32 + crop size: (512,1024) + lr schd: 160000 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.5 + mIoU(ms+flip): 44.21 + Config: configs/fastfcn/fastfcn_r50-d32_jpu_enc_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fastfcn/fastfcn_r50-d32_jpu_enc_512x512_160k_ade20k/fastfcn_r50-d32_jpu_enc_512x512_160k_ade20k_20211008_105456-d875ce3c.pth diff --git a/configs/fastfcn/fastfcn_r50-d32_jpu_aspp_512x512_160k_ade20k.py b/configs/fastfcn/fastfcn_r50-d32_jpu_aspp_512x512_160k_ade20k.py new file mode 100644 index 0000000000..dbf9f80272 --- /dev/null +++ b/configs/fastfcn/fastfcn_r50-d32_jpu_aspp_512x512_160k_ade20k.py @@ -0,0 +1,20 @@ +# model settings +_base_ = './fastfcn_r50-d32_jpu_psp_512x512_160k_ade20k.py' +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + decode_head=dict( + _delete_=True, + type='ASPPHead', + in_channels=2048, + in_index=2, + channels=512, + dilations=(1, 12, 24, 36), + dropout_ratio=0.1, + num_classes=150, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/fastfcn/fastfcn_r50-d32_jpu_aspp_512x512_80k_ade20k.py b/configs/fastfcn/fastfcn_r50-d32_jpu_aspp_512x512_80k_ade20k.py new file mode 100644 index 0000000000..b14b1f68c7 --- /dev/null +++ b/configs/fastfcn/fastfcn_r50-d32_jpu_aspp_512x512_80k_ade20k.py @@ -0,0 +1,20 @@ +# model settings +_base_ = './fastfcn_r50-d32_jpu_psp_512x512_80k_ade20k.py' +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + decode_head=dict( + _delete_=True, + type='ASPPHead', + in_channels=2048, + in_index=2, + channels=512, + dilations=(1, 12, 24, 36), + dropout_ratio=0.1, + num_classes=150, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/fastfcn/fastfcn_r50-d32_jpu_enc_512x512_160k_ade20k.py b/configs/fastfcn/fastfcn_r50-d32_jpu_enc_512x512_160k_ade20k.py new file mode 100644 index 0000000000..12f0add5ad --- /dev/null +++ b/configs/fastfcn/fastfcn_r50-d32_jpu_enc_512x512_160k_ade20k.py @@ -0,0 +1,24 @@ +# model settings +_base_ = './fastfcn_r50-d32_jpu_psp_512x512_160k_ade20k.py' +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + decode_head=dict( + _delete_=True, + type='EncHead', + in_channels=[512, 1024, 2048], + in_index=(0, 1, 2), + channels=512, + num_codes=32, + use_se_loss=True, + add_lateral=False, + dropout_ratio=0.1, + num_classes=150, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0), + loss_se_decode=dict( + type='CrossEntropyLoss', use_sigmoid=True, loss_weight=0.2)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/fastfcn/fastfcn_r50-d32_jpu_enc_512x512_80k_ade20k.py b/configs/fastfcn/fastfcn_r50-d32_jpu_enc_512x512_80k_ade20k.py new file mode 100644 index 0000000000..d3e2e9c80b --- /dev/null +++ b/configs/fastfcn/fastfcn_r50-d32_jpu_enc_512x512_80k_ade20k.py @@ -0,0 +1,24 @@ +# model settings +_base_ = './fastfcn_r50-d32_jpu_psp_512x512_80k_ade20k.py' +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + decode_head=dict( + _delete_=True, + type='EncHead', + in_channels=[512, 1024, 2048], + in_index=(0, 1, 2), + channels=512, + num_codes=32, + use_se_loss=True, + add_lateral=False, + dropout_ratio=0.1, + num_classes=150, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0), + loss_se_decode=dict( + type='CrossEntropyLoss', use_sigmoid=True, loss_weight=0.2)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/fastfcn/fastfcn_r50-d32_jpu_psp_512x512_160k_ade20k.py b/configs/fastfcn/fastfcn_r50-d32_jpu_psp_512x512_160k_ade20k.py new file mode 100644 index 0000000000..e267ac6b46 --- /dev/null +++ b/configs/fastfcn/fastfcn_r50-d32_jpu_psp_512x512_160k_ade20k.py @@ -0,0 +1,7 @@ +_base_ = [ + '../_base_/models/fastfcn_r50-d32_jpu_psp.py', + '../_base_/datasets/ade20k.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_160k.py' +] +model = dict( + decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) diff --git a/configs/fastfcn/fastfcn_r50-d32_jpu_psp_512x512_80k_ade20k.py b/configs/fastfcn/fastfcn_r50-d32_jpu_psp_512x512_80k_ade20k.py new file mode 100644 index 0000000000..22e0447bee --- /dev/null +++ b/configs/fastfcn/fastfcn_r50-d32_jpu_psp_512x512_80k_ade20k.py @@ -0,0 +1,7 @@ +_base_ = [ + '../_base_/models/fastfcn_r50-d32_jpu_psp.py', + '../_base_/datasets/ade20k.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_80k.py' +] +model = dict( + decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) From 32f153e272a71c2f40f2cdb86f20dcd4381c4c4e Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Mon, 25 Oct 2021 02:49:07 +0800 Subject: [PATCH 264/706] [Fix] Fix bug in CI with py3.9 (#994) * remove python-dev in CI * remove pycocotools installation * remove python 3.9-dev installation dependencies --- .github/workflows/build.yml | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d655564acd..dbb08b48ed 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -129,9 +129,6 @@ jobs: if: ${{matrix.torchvision < 0.5}} - name: Install PyTorch run: python -m pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html - - name: Install dependencies for compiling onnx when python=3.9 - run: python -m pip install protobuf && apt-get install libprotobuf-dev protobuf-compiler - if: ${{matrix.python-version == '3.9'}} - name: Install mmseg dependencies run: | python -V @@ -164,7 +161,7 @@ jobs: strategy: matrix: - python-version: [3.6, 3.7, 3.8, 3.9-dev] + python-version: [3.6, 3.7, 3.8, 3.9] torch: [1.9.0+cu102] include: - torch: 1.9.0+cu102 @@ -178,9 +175,6 @@ jobs: uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - - name: Install python-dev - run: apt-get update && apt-get install -y python${{matrix.python-version}}-dev - if: ${{matrix.python-version != '3.9-dev'}} - name: Install system dependencies run: | apt-get update && apt-get install -y ffmpeg libsm6 libxext6 git ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 @@ -191,14 +185,10 @@ jobs: if: ${{matrix.torchvision < 0.5}} - name: Install PyTorch run: python -m pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html - - name: Install dependencies for compiling onnx when python=3.9 - run: python -m pip install protobuf && apt-get update && apt-get -y install libprotobuf-dev protobuf-compiler cmake - if: ${{matrix.python-version == '3.9-dev'}} - name: Install mmseg dependencies run: | python -V python -m pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu102/${{matrix.mmcv_link}}/index.html - python -m pip install pycocotools python -m pip install -r requirements.txt python -c 'import mmcv; print(mmcv.__version__)' - name: Build and install From b3d5cc3f173f870f32478bce5fc0b170da00543e Mon Sep 17 00:00:00 2001 From: Rockey <41846794+RockeyCoss@users.noreply.github.com> Date: Mon, 25 Oct 2021 15:07:40 +0800 Subject: [PATCH 265/706] [Docs] Fix the broken link (#985) * [Fix] Fix the broken link * [Fix] Fix the broken link * Update docs/dataset_prepare.md Co-authored-by: Junjun2016 * Update docs_zh-CN/dataset_prepare.md Co-authored-by: Junjun2016 * [Docs] Fix the broken link Co-authored-by: Junjun2016 --- docs/dataset_prepare.md | 2 +- docs_zh-CN/dataset_prepare.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/dataset_prepare.md b/docs/dataset_prepare.md index 691e63f49e..468eceac2b 100644 --- a/docs/dataset_prepare.md +++ b/docs/dataset_prepare.md @@ -135,7 +135,7 @@ If you would like to use augmented VOC dataset, please run following command to python tools/convert_datasets/voc_aug.py data/VOCdevkit data/VOCdevkit/VOCaug --nproc 8 ``` -Please refer to [concat dataset](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/tutorials/new_dataset.md#concatenate-dataset) for details about how to concatenate them and train them together. +Please refer to [concat dataset](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/tutorials/customize_datasets.md#concatenate-dataset) for details about how to concatenate them and train them together. ### ADE20K diff --git a/docs_zh-CN/dataset_prepare.md b/docs_zh-CN/dataset_prepare.md index 80c3025de4..72fed1ccda 100644 --- a/docs_zh-CN/dataset_prepare.md +++ b/docs_zh-CN/dataset_prepare.md @@ -117,7 +117,7 @@ Pascal VOC 2012 可以在 [这里](http://host.robots.ox.ac.uk/pascal/VOC/voc201 python tools/convert_datasets/voc_aug.py data/VOCdevkit data/VOCdevkit/VOCaug --nproc 8 ``` -关于如何拼接数据集 (concatenate) 并一起训练它们,更多细节请参考 [拼接连接数据集](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/tutorials/new_dataset.md#concatenate-dataset) 。 +关于如何拼接数据集 (concatenate) 并一起训练它们,更多细节请参考 [拼接连接数据集](https://github.com/open-mmlab/mmsegmentation/blob/master/docs_zh-CN/tutorials/customize_datasets.md#%E6%8B%BC%E6%8E%A5%E6%95%B0%E6%8D%AE%E9%9B%86) 。 ### ADE20K From a33cbbf039f20aa75ad6d77a2e6f85b5e6d6a535 Mon Sep 17 00:00:00 2001 From: Yuan Haobo Date: Mon, 25 Oct 2021 18:11:48 +0800 Subject: [PATCH 266/706] vit contiguous (#992) --- mmseg/models/backbones/vit.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mmseg/models/backbones/vit.py b/mmseg/models/backbones/vit.py index 9c099d2ee3..5cd3ff24e7 100644 --- a/mmseg/models/backbones/vit.py +++ b/mmseg/models/backbones/vit.py @@ -395,7 +395,7 @@ def forward(self, inputs): out = x B, _, C = out.shape out = out.reshape(B, hw_shape[0], hw_shape[1], - C).permute(0, 3, 1, 2) + C).permute(0, 3, 1, 2).contiguous() if self.output_cls_token: out = [out, x[:, 0]] outs.append(out) From 4b69af7b13a9798c386c5e3be6064bb8f7066f37 Mon Sep 17 00:00:00 2001 From: lkm2835 <30465912+lkm2835@users.noreply.github.com> Date: Fri, 29 Oct 2021 02:06:49 +0900 Subject: [PATCH 267/706] Fix typo in usage example (#1003) --- configs/segformer/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/segformer/README.md b/configs/segformer/README.md index 58c6a1c90f..b57160cdf4 100644 --- a/configs/segformer/README.md +++ b/configs/segformer/README.md @@ -29,7 +29,7 @@ To use other repositories' pre-trained models, it is necessary to convert keys. We provide a script [`mit2mmseg.py`](../../tools/model_converters/mit2mmseg.py) in the tools directory to convert the key of models from [the official repo](https://github.com/NVlabs/SegFormer) to MMSegmentation style. ```shell -python tools/model_converters/swin2mmseg.py ${PRETRAIN_PATH} ${STORE_PATH} +python tools/model_converters/mit2mmseg.py ${PRETRAIN_PATH} ${STORE_PATH} ``` This script convert model from `PRETRAIN_PATH` and store the converted model in `STORE_PATH`. From d7f82e5dc873a1c9ab401128cabc2e1244188515 Mon Sep 17 00:00:00 2001 From: gszh Date: Sat, 30 Oct 2021 03:13:40 +0800 Subject: [PATCH 268/706] Update train.py (#428) * Update train.py Add user-defined hooks. * Update train.py * Update train.py --- mmseg/apis/train.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/mmseg/apis/train.py b/mmseg/apis/train.py index fe85e9116a..811c98310c 100644 --- a/mmseg/apis/train.py +++ b/mmseg/apis/train.py @@ -5,7 +5,8 @@ import numpy as np import torch from mmcv.parallel import MMDataParallel, MMDistributedDataParallel -from mmcv.runner import build_optimizer, build_runner +from mmcv.runner import HOOKS, build_optimizer, build_runner +from mmcv.utils import build_from_cfg from mmseg.core import DistEvalHook, EvalHook from mmseg.datasets import build_dataloader, build_dataset @@ -113,6 +114,20 @@ def train_segmentor(model, runner.register_hook( eval_hook(val_dataloader, **eval_cfg), priority='LOW') + # user-defined hooks + if cfg.get('custom_hooks', None): + custom_hooks = cfg.custom_hooks + assert isinstance(custom_hooks, list), \ + f'custom_hooks expect list type, but got {type(custom_hooks)}' + for hook_cfg in cfg.custom_hooks: + assert isinstance(hook_cfg, dict), \ + 'Each item in custom_hooks expects dict type, but got ' \ + f'{type(hook_cfg)}' + hook_cfg = hook_cfg.copy() + priority = hook_cfg.pop('priority', 'NORMAL') + hook = build_from_cfg(hook_cfg, HOOKS) + runner.register_hook(hook, priority=priority) + if cfg.resume_from: runner.resume(cfg.resume_from) elif cfg.load_from: From 992d57778346cc0420afab12a9780a1aec351b2c Mon Sep 17 00:00:00 2001 From: MengzhangLI Date: Mon, 1 Nov 2021 15:28:37 +0800 Subject: [PATCH 269/706] [Fix] Change `self.loss_decode` back to `dict` in Single Loss situation. (#1002) * fix single loss type * fix error in ohem & point_head * fix coverage miss * fix uncoverage error of PointHead loss * fix coverage miss * fix uncoverage error of PointHead loss * nn.modules.container.ModuleList to nn.ModuleList * more simple format * merge unittest def --- mmseg/core/seg/sampler/ohem_pixel_sampler.py | 8 +++- mmseg/models/decode_heads/decode_head.py | 11 ++++-- mmseg/models/decode_heads/point_head.py | 7 +++- .../test_models/test_heads/test_point_head.py | 38 ++++++++++++++++++ tests/test_sampler.py | 39 +++++++++++++++++++ 5 files changed, 98 insertions(+), 5 deletions(-) diff --git a/mmseg/core/seg/sampler/ohem_pixel_sampler.py b/mmseg/core/seg/sampler/ohem_pixel_sampler.py index 72ba941f03..833a28768c 100644 --- a/mmseg/core/seg/sampler/ohem_pixel_sampler.py +++ b/mmseg/core/seg/sampler/ohem_pixel_sampler.py @@ -1,5 +1,6 @@ # Copyright (c) OpenMMLab. All rights reserved. import torch +import torch.nn as nn import torch.nn.functional as F from ..builder import PIXEL_SAMPLERS @@ -62,14 +63,19 @@ def sample(self, seg_logit, seg_label): threshold = max(min_threshold, self.thresh) valid_seg_weight[seg_prob[valid_mask] < threshold] = 1. else: + if not isinstance(self.context.loss_decode, nn.ModuleList): + losses_decode = [self.context.loss_decode] + else: + losses_decode = self.context.loss_decode losses = 0.0 - for loss_module in self.context.loss_decode: + for loss_module in losses_decode: losses += loss_module( seg_logit, seg_label, weight=None, ignore_index=self.context.ignore_index, reduction_override='none') + # faster than topk according to https://github.com/pytorch/pytorch/issues/22812 # noqa _, sort_indices = losses[valid_mask].sort(descending=True) valid_seg_weight[sort_indices[:batch_kept]] = 1. diff --git a/mmseg/models/decode_heads/decode_head.py b/mmseg/models/decode_heads/decode_head.py index c36555eaf2..1443a81da2 100644 --- a/mmseg/models/decode_heads/decode_head.py +++ b/mmseg/models/decode_heads/decode_head.py @@ -83,11 +83,11 @@ def __init__(self, self.ignore_index = ignore_index self.align_corners = align_corners - self.loss_decode = nn.ModuleList() if isinstance(loss_decode, dict): - self.loss_decode.append(build_loss(loss_decode)) + self.loss_decode = build_loss(loss_decode) elif isinstance(loss_decode, (list, tuple)): + self.loss_decode = nn.ModuleList() for loss in loss_decode: self.loss_decode.append(build_loss(loss)) else: @@ -242,7 +242,12 @@ def losses(self, seg_logit, seg_label): else: seg_weight = None seg_label = seg_label.squeeze(1) - for loss_decode in self.loss_decode: + + if not isinstance(self.loss_decode, nn.ModuleList): + losses_decode = [self.loss_decode] + else: + losses_decode = self.loss_decode + for loss_decode in losses_decode: if loss_decode.loss_name not in loss: loss[loss_decode.loss_name] = loss_decode( seg_logit, diff --git a/mmseg/models/decode_heads/point_head.py b/mmseg/models/decode_heads/point_head.py index 56dfd4ed8b..7276218053 100644 --- a/mmseg/models/decode_heads/point_head.py +++ b/mmseg/models/decode_heads/point_head.py @@ -249,9 +249,14 @@ def forward_test(self, inputs, prev_output, img_metas, test_cfg): def losses(self, point_logits, point_label): """Compute segmentation loss.""" loss = dict() - for loss_module in self.loss_decode: + if not isinstance(self.loss_decode, nn.ModuleList): + losses_decode = [self.loss_decode] + else: + losses_decode = self.loss_decode + for loss_module in losses_decode: loss['point' + loss_module.loss_name] = loss_module( point_logits, point_label, ignore_index=self.ignore_index) + loss['acc_point'] = accuracy(point_logits, point_label) return loss diff --git a/tests/test_models/test_heads/test_point_head.py b/tests/test_models/test_heads/test_point_head.py index 6c5ea65768..142ab16c6c 100644 --- a/tests/test_models/test_heads/test_point_head.py +++ b/tests/test_models/test_heads/test_point_head.py @@ -21,3 +21,41 @@ def test_point_head(): subdivision_steps=2, subdivision_num_points=8196, scale_factor=2) output = point_head.forward_test(inputs, prev_output, None, test_cfg) assert output.shape == (1, point_head.num_classes, 180, 180) + + # test multiple losses case + inputs = [torch.randn(1, 32, 45, 45)] + point_head_multiple_losses = PointHead( + in_channels=[32], + in_index=[0], + channels=16, + num_classes=19, + loss_decode=[ + dict(type='CrossEntropyLoss', loss_name='loss_1'), + dict(type='CrossEntropyLoss', loss_name='loss_2') + ]) + assert len(point_head_multiple_losses.fcs) == 3 + fcn_head_multiple_losses = FCNHead( + in_channels=32, + channels=16, + num_classes=19, + loss_decode=[ + dict(type='CrossEntropyLoss', loss_name='loss_1'), + dict(type='CrossEntropyLoss', loss_name='loss_2') + ]) + if torch.cuda.is_available(): + head, inputs = to_cuda(point_head_multiple_losses, inputs) + head, inputs = to_cuda(fcn_head_multiple_losses, inputs) + prev_output = fcn_head_multiple_losses(inputs) + test_cfg = ConfigDict( + subdivision_steps=2, subdivision_num_points=8196, scale_factor=2) + output = point_head_multiple_losses.forward_test(inputs, prev_output, None, + test_cfg) + assert output.shape == (1, point_head.num_classes, 180, 180) + + fake_label = torch.ones([1, 180, 180], dtype=torch.long) + + if torch.cuda.is_available(): + fake_label = fake_label.cuda() + loss = point_head_multiple_losses.losses(output, fake_label) + assert 'pointloss_1' in loss + assert 'pointloss_2' in loss diff --git a/tests/test_sampler.py b/tests/test_sampler.py index 8e613a5a1f..14092243f5 100644 --- a/tests/test_sampler.py +++ b/tests/test_sampler.py @@ -10,6 +10,17 @@ def _context_for_ohem(): return FCNHead(in_channels=32, channels=16, num_classes=19) +def _context_for_ohem_multiple_loss(): + return FCNHead( + in_channels=32, + channels=16, + num_classes=19, + loss_decode=[ + dict(type='CrossEntropyLoss', loss_name='loss_1'), + dict(type='CrossEntropyLoss', loss_name='loss_2') + ]) + + def test_ohem_sampler(): with pytest.raises(AssertionError): @@ -37,3 +48,31 @@ def test_ohem_sampler(): assert seg_weight.shape[0] == seg_logit.shape[0] assert seg_weight.shape[1:] == seg_logit.shape[2:] assert seg_weight.sum() == 200 + + # test multiple losses case + with pytest.raises(AssertionError): + # seg_logit and seg_label must be of the same size + sampler = OHEMPixelSampler(context=_context_for_ohem_multiple_loss()) + seg_logit = torch.randn(1, 19, 45, 45) + seg_label = torch.randint(0, 19, size=(1, 1, 89, 89)) + sampler.sample(seg_logit, seg_label) + + # test with thresh in multiple losses case + sampler = OHEMPixelSampler( + context=_context_for_ohem_multiple_loss(), thresh=0.7, min_kept=200) + seg_logit = torch.randn(1, 19, 45, 45) + seg_label = torch.randint(0, 19, size=(1, 1, 45, 45)) + seg_weight = sampler.sample(seg_logit, seg_label) + assert seg_weight.shape[0] == seg_logit.shape[0] + assert seg_weight.shape[1:] == seg_logit.shape[2:] + assert seg_weight.sum() > 200 + + # test w.o thresh in multiple losses case + sampler = OHEMPixelSampler( + context=_context_for_ohem_multiple_loss(), min_kept=200) + seg_logit = torch.randn(1, 19, 45, 45) + seg_label = torch.randint(0, 19, size=(1, 1, 45, 45)) + seg_weight = sampler.sample(seg_logit, seg_label) + assert seg_weight.shape[0] == seg_logit.shape[0] + assert seg_weight.shape[1:] == seg_logit.shape[2:] + assert seg_weight.sum() == 200 From 4ea92ebbe651c52032400c3b411ce67dc8f1a940 Mon Sep 17 00:00:00 2001 From: MengzhangLI Date: Mon, 1 Nov 2021 22:47:43 +0800 Subject: [PATCH 270/706] smaller input & channels of unittest (#1004) --- .../test_backbones/test_bisenetv1.py | 46 ++++---- .../test_backbones/test_bisenetv2.py | 28 ++--- .../test_backbones/test_fast_scnn.py | 20 +++- .../test_models/test_backbones/test_hrnet.py | 10 +- .../test_models/test_backbones/test_icnet.py | 18 +-- tests/test_models/test_backbones/test_mit.py | 18 +-- .../test_backbones/test_mobilenet_v3.py | 24 ++-- .../test_models/test_backbones/test_resnet.py | 110 +++++++++--------- tests/test_models/test_backbones/test_swin.py | 18 +-- tests/test_models/test_heads/test_ann_head.py | 6 +- tests/test_models/test_heads/test_apc_head.py | 20 ++-- .../test_models/test_heads/test_aspp_head.py | 32 ++--- tests/test_models/test_heads/test_cc_head.py | 6 +- tests/test_models/test_heads/test_da_head.py | 8 +- tests/test_models/test_heads/test_dm_head.py | 24 ++-- tests/test_models/test_heads/test_dnl_head.py | 25 ++-- tests/test_models/test_heads/test_dpt_head.py | 8 +- tests/test_models/test_heads/test_ema_head.py | 12 +- tests/test_models/test_heads/test_enc_head.py | 17 ++- tests/test_models/test_heads/test_fcn_head.py | 54 ++++----- tests/test_models/test_heads/test_gc_head.py | 6 +- tests/test_models/test_heads/test_isa_head.py | 10 +- .../test_heads/test_lraspp_head.py | 24 ++-- tests/test_models/test_heads/test_nl_head.py | 6 +- tests/test_models/test_heads/test_ocr_head.py | 8 +- tests/test_models/test_heads/test_psa_head.py | 80 ++++++------- tests/test_models/test_heads/test_psp_head.py | 14 +-- .../test_heads/test_setr_mla_head.py | 36 +++--- .../test_heads/test_setr_up_head.py | 18 +-- .../test_models/test_heads/test_uper_head.py | 12 +- tests/test_models/test_necks/test_fpn.py | 12 +- tests/test_models/test_necks/test_ic_neck.py | 34 +++--- tests/test_models/test_necks/test_jpu.py | 32 ++--- tests/test_models/test_necks/test_mla_neck.py | 14 +-- .../test_necks/test_multilevel_neck.py | 24 ++-- 35 files changed, 425 insertions(+), 409 deletions(-) diff --git a/tests/test_models/test_backbones/test_bisenetv1.py b/tests/test_models/test_backbones/test_bisenetv1.py index 8e1571d6fb..c0677493d6 100644 --- a/tests/test_models/test_backbones/test_bisenetv1.py +++ b/tests/test_models/test_backbones/test_bisenetv1.py @@ -25,20 +25,20 @@ def test_bisenetv1_backbone(): model.init_weights() model.train() batch_size = 2 - imgs = torch.randn(batch_size, 3, 256, 512) + imgs = torch.randn(batch_size, 3, 64, 128) feat = model(imgs) assert len(feat) == 3 # output for segment Head - assert feat[0].shape == torch.Size([batch_size, 256, 32, 64]) + assert feat[0].shape == torch.Size([batch_size, 256, 8, 16]) # for auxiliary head 1 - assert feat[1].shape == torch.Size([batch_size, 128, 32, 64]) + assert feat[1].shape == torch.Size([batch_size, 128, 8, 16]) # for auxiliary head 2 - assert feat[2].shape == torch.Size([batch_size, 128, 16, 32]) + assert feat[2].shape == torch.Size([batch_size, 128, 4, 8]) # Test input with rare shape batch_size = 2 - imgs = torch.randn(batch_size, 3, 527, 279) + imgs = torch.randn(batch_size, 3, 95, 27) feat = model(imgs) assert len(feat) == 3 @@ -47,20 +47,20 @@ def test_bisenetv1_backbone(): BiSeNetV1( backbone_cfg=backbone_cfg, in_channels=3, - spatial_channels=(64, 64, 64)) + spatial_channels=(16, 16, 16)) with pytest.raises(AssertionError): # BiSeNetV1 context path constraints. BiSeNetV1( backbone_cfg=backbone_cfg, in_channels=3, - context_channels=(128, 256, 512, 1024)) + context_channels=(16, 32, 64, 128)) def test_bisenetv1_spatial_path(): with pytest.raises(AssertionError): # BiSeNetV1 spatial path channel constraints. - SpatialPath(num_channels=(64, 64, 64), in_channels=3) + SpatialPath(num_channels=(16, 16, 16), in_channels=3) def test_bisenetv1_context_path(): @@ -79,31 +79,31 @@ def test_bisenetv1_context_path(): with pytest.raises(AssertionError): # BiSeNetV1 context path constraints. ContextPath( - backbone_cfg=backbone_cfg, context_channels=(128, 256, 512, 1024)) + backbone_cfg=backbone_cfg, context_channels=(16, 32, 64, 128)) def test_bisenetv1_attention_refinement_module(): - x_arm = AttentionRefinementModule(256, 64) - assert x_arm.conv_layer.in_channels == 256 - assert x_arm.conv_layer.out_channels == 64 + x_arm = AttentionRefinementModule(32, 8) + assert x_arm.conv_layer.in_channels == 32 + assert x_arm.conv_layer.out_channels == 8 assert x_arm.conv_layer.kernel_size == (3, 3) - x = torch.randn(2, 256, 32, 64) + x = torch.randn(2, 32, 8, 16) x_out = x_arm(x) - assert x_out.shape == torch.Size([2, 64, 32, 64]) + assert x_out.shape == torch.Size([2, 8, 8, 16]) def test_bisenetv1_feature_fusion_module(): - ffm = FeatureFusionModule(128, 256) - assert ffm.conv1.in_channels == 128 - assert ffm.conv1.out_channels == 256 + ffm = FeatureFusionModule(16, 32) + assert ffm.conv1.in_channels == 16 + assert ffm.conv1.out_channels == 32 assert ffm.conv1.kernel_size == (1, 1) assert ffm.gap.output_size == (1, 1) - assert ffm.conv_atten[0].in_channels == 256 - assert ffm.conv_atten[0].out_channels == 256 + assert ffm.conv_atten[0].in_channels == 32 + assert ffm.conv_atten[0].out_channels == 32 assert ffm.conv_atten[0].kernel_size == (1, 1) - ffm = FeatureFusionModule(128, 128) - x1 = torch.randn(2, 64, 64, 128) - x2 = torch.randn(2, 64, 64, 128) + ffm = FeatureFusionModule(16, 16) + x1 = torch.randn(2, 8, 8, 16) + x2 = torch.randn(2, 8, 8, 16) x_out = ffm(x1, x2) - assert x_out.shape == torch.Size([2, 128, 64, 128]) + assert x_out.shape == torch.Size([2, 16, 8, 16]) diff --git a/tests/test_models/test_backbones/test_bisenetv2.py b/tests/test_models/test_backbones/test_bisenetv2.py index a1d1adc5f9..cf2dfb3253 100644 --- a/tests/test_models/test_backbones/test_bisenetv2.py +++ b/tests/test_models/test_backbones/test_bisenetv2.py @@ -13,34 +13,34 @@ def test_bisenetv2_backbone(): model.init_weights() model.train() batch_size = 2 - imgs = torch.randn(batch_size, 3, 512, 1024) + imgs = torch.randn(batch_size, 3, 128, 256) feat = model(imgs) assert len(feat) == 5 # output for segment Head - assert feat[0].shape == torch.Size([batch_size, 128, 64, 128]) + assert feat[0].shape == torch.Size([batch_size, 128, 16, 32]) # for auxiliary head 1 - assert feat[1].shape == torch.Size([batch_size, 16, 128, 256]) + assert feat[1].shape == torch.Size([batch_size, 16, 32, 64]) # for auxiliary head 2 - assert feat[2].shape == torch.Size([batch_size, 32, 64, 128]) + assert feat[2].shape == torch.Size([batch_size, 32, 16, 32]) # for auxiliary head 3 - assert feat[3].shape == torch.Size([batch_size, 64, 32, 64]) + assert feat[3].shape == torch.Size([batch_size, 64, 8, 16]) # for auxiliary head 4 - assert feat[4].shape == torch.Size([batch_size, 128, 16, 32]) + assert feat[4].shape == torch.Size([batch_size, 128, 4, 8]) # Test input with rare shape batch_size = 2 - imgs = torch.randn(batch_size, 3, 527, 952) + imgs = torch.randn(batch_size, 3, 95, 27) feat = model(imgs) assert len(feat) == 5 def test_bisenetv2_DetailBranch(): - x = torch.randn(1, 3, 512, 1024) - detail_branch = DetailBranch(detail_channels=(64, 64, 128)) + x = torch.randn(1, 3, 32, 64) + detail_branch = DetailBranch(detail_channels=(64, 16, 32)) assert isinstance(detail_branch.detail_branch[0][0], ConvModule) x_out = detail_branch(x) - assert x_out.shape == torch.Size([1, 128, 64, 128]) + assert x_out.shape == torch.Size([1, 32, 4, 8]) def test_bisenetv2_SemanticBranch(): @@ -49,9 +49,9 @@ def test_bisenetv2_SemanticBranch(): def test_bisenetv2_BGALayer(): - x_a = torch.randn(1, 128, 64, 128) - x_b = torch.randn(1, 128, 16, 32) - bga = BGALayer() + x_a = torch.randn(1, 8, 8, 16) + x_b = torch.randn(1, 8, 2, 4) + bga = BGALayer(out_channels=8) assert isinstance(bga.conv, ConvModule) x_out = bga(x_a, x_b) - assert x_out.shape == torch.Size([1, 128, 64, 128]) + assert x_out.shape == torch.Size([1, 8, 8, 16]) diff --git a/tests/test_models/test_backbones/test_fast_scnn.py b/tests/test_models/test_backbones/test_fast_scnn.py index e6390469a2..7ee638b510 100644 --- a/tests/test_models/test_backbones/test_fast_scnn.py +++ b/tests/test_models/test_backbones/test_fast_scnn.py @@ -16,17 +16,27 @@ def test_fastscnn_backbone(): lower_in_channels=128) # Test FastSCNN Standard Forward - model = FastSCNN() + model = FastSCNN( + in_channels=3, + downsample_dw_channels=(4, 6), + global_in_channels=8, + global_block_channels=(8, 12, 16), + global_block_strides=(2, 2, 1), + global_out_channels=16, + higher_in_channels=8, + lower_in_channels=16, + fusion_out_channels=16, + ) model.init_weights() model.train() batch_size = 4 - imgs = torch.randn(batch_size, 3, 512, 1024) + imgs = torch.randn(batch_size, 3, 64, 128) feat = model(imgs) assert len(feat) == 3 # higher-res - assert feat[0].shape == torch.Size([batch_size, 64, 64, 128]) + assert feat[0].shape == torch.Size([batch_size, 8, 8, 16]) # lower-res - assert feat[1].shape == torch.Size([batch_size, 128, 16, 32]) + assert feat[1].shape == torch.Size([batch_size, 16, 2, 4]) # FFM output - assert feat[2].shape == torch.Size([batch_size, 128, 64, 128]) + assert feat[2].shape == torch.Size([batch_size, 16, 8, 16]) diff --git a/tests/test_models/test_backbones/test_hrnet.py b/tests/test_models/test_backbones/test_hrnet.py index e089f1cce2..8329c84312 100644 --- a/tests/test_models/test_backbones/test_hrnet.py +++ b/tests/test_models/test_backbones/test_hrnet.py @@ -95,21 +95,21 @@ def test_hrnet_backbone(): model.init_weights() model.train() - imgs = torch.randn(1, 3, 256, 256) + imgs = torch.randn(1, 3, 64, 64) feats = model(imgs) assert len(feats) == 4 - assert feats[0].shape == torch.Size([1, 32, 64, 64]) - assert feats[3].shape == torch.Size([1, 256, 8, 8]) + assert feats[0].shape == torch.Size([1, 32, 16, 16]) + assert feats[3].shape == torch.Size([1, 256, 2, 2]) # Test single scale output model = HRNet(extra=extra, multiscale_output=False) model.init_weights() model.train() - imgs = torch.randn(1, 3, 256, 256) + imgs = torch.randn(1, 3, 64, 64) feats = model(imgs) assert len(feats) == 1 - assert feats[0].shape == torch.Size([1, 32, 64, 64]) + assert feats[0].shape == torch.Size([1, 32, 16, 16]) # Test HRNET with two stage frozen frozen_stages = 2 diff --git a/tests/test_models/test_backbones/test_icnet.py b/tests/test_models/test_backbones/test_icnet.py index a5861d8344..a96d8d86fb 100644 --- a/tests/test_models/test_backbones/test_icnet.py +++ b/tests/test_models/test_backbones/test_icnet.py @@ -10,18 +10,19 @@ def test_icnet_backbone(): # Must give backbone dict in config file. ICNet( in_channels=3, - layer_channels=(512, 2048), - light_branch_middle_channels=32, - psp_out_channels=512, - out_channels=(64, 256, 256), + layer_channels=(128, 512), + light_branch_middle_channels=8, + psp_out_channels=128, + out_channels=(16, 128, 128), backbone_cfg=None) # Test ICNet Standard Forward model = ICNet( + layer_channels=(128, 512), backbone_cfg=dict( type='ResNetV1c', in_channels=3, - depth=50, + depth=18, num_stages=4, out_indices=(0, 1, 2, 3), dilations=(1, 1, 2, 4), @@ -29,13 +30,14 @@ def test_icnet_backbone(): norm_cfg=dict(type='BN', requires_grad=True), norm_eval=False, style='pytorch', - contract_dilation=True), ) + contract_dilation=True), + ) assert hasattr(model.backbone, 'maxpool') and model.backbone.maxpool.ceil_mode is True model.init_weights() model.train() batch_size = 2 - imgs = torch.randn(batch_size, 3, 512, 1024) + imgs = torch.randn(batch_size, 3, 32, 64) feat = model(imgs) assert model.psp_modules[0][0].output_size == 1 @@ -45,4 +47,4 @@ def test_icnet_backbone(): assert model.conv_sub1[0].padding == 1 assert len(feat) == 3 - assert feat[0].shape == torch.Size([batch_size, 64, 64, 128]) + assert feat[0].shape == torch.Size([batch_size, 64, 4, 8]) diff --git a/tests/test_models/test_backbones/test_mit.py b/tests/test_models/test_backbones/test_mit.py index 536f2b3032..6159d656d9 100644 --- a/tests/test_models/test_backbones/test_mit.py +++ b/tests/test_models/test_backbones/test_mit.py @@ -24,7 +24,7 @@ def test_mit(): assert outs[3].shape == (1, 256, H // 32, W // 32) # Test non-squared input - H, W = (224, 320) + H, W = (224, 256) temp = torch.randn((1, 3, H, W)) outs = model(temp) assert outs[0].shape == (1, 32, H // 4, W // 4) @@ -33,25 +33,25 @@ def test_mit(): assert outs[3].shape == (1, 256, H // 32, W // 32) # Test MixFFN - FFN = MixFFN(128, 512) + FFN = MixFFN(64, 128) hw_shape = (32, 32) token_len = 32 * 32 - temp = torch.randn((1, token_len, 128)) + temp = torch.randn((1, token_len, 64)) # Self identity out = FFN(temp, hw_shape) - assert out.shape == (1, token_len, 128) + assert out.shape == (1, token_len, 64) # Out identity outs = FFN(temp, hw_shape, temp) - assert out.shape == (1, token_len, 128) + assert out.shape == (1, token_len, 64) # Test EfficientMHA - MHA = EfficientMultiheadAttention(128, 2) + MHA = EfficientMultiheadAttention(64, 2) hw_shape = (32, 32) token_len = 32 * 32 - temp = torch.randn((1, token_len, 128)) + temp = torch.randn((1, token_len, 64)) # Self identity out = MHA(temp, hw_shape) - assert out.shape == (1, token_len, 128) + assert out.shape == (1, token_len, 64) # Out identity outs = MHA(temp, hw_shape, temp) - assert out.shape == (1, token_len, 128) + assert out.shape == (1, token_len, 64) diff --git a/tests/test_models/test_backbones/test_mobilenet_v3.py b/tests/test_models/test_backbones/test_mobilenet_v3.py index a238035677..769ee14bc2 100644 --- a/tests/test_models/test_backbones/test_mobilenet_v3.py +++ b/tests/test_models/test_backbones/test_mobilenet_v3.py @@ -32,24 +32,24 @@ def test_mobilenet_v3(): model.init_weights() model.train() - imgs = torch.randn(2, 3, 224, 224) + imgs = torch.randn(2, 3, 56, 56) feat = model(imgs) assert len(feat) == 3 - assert feat[0].shape == (2, 16, 112, 112) - assert feat[1].shape == (2, 16, 56, 56) - assert feat[2].shape == (2, 576, 28, 28) + assert feat[0].shape == (2, 16, 28, 28) + assert feat[1].shape == (2, 16, 14, 14) + assert feat[2].shape == (2, 576, 7, 7) # Test MobileNetV3 with arch = 'large' model = MobileNetV3(arch='large', out_indices=(1, 3, 16)) model.init_weights() model.train() - imgs = torch.randn(2, 3, 224, 224) + imgs = torch.randn(2, 3, 56, 56) feat = model(imgs) assert len(feat) == 3 - assert feat[0].shape == (2, 16, 112, 112) - assert feat[1].shape == (2, 24, 56, 56) - assert feat[2].shape == (2, 960, 28, 28) + assert feat[0].shape == (2, 16, 28, 28) + assert feat[1].shape == (2, 24, 14, 14) + assert feat[2].shape == (2, 960, 7, 7) # Test MobileNetV3 with norm_eval True, with_cp True and frozen_stages=5 model = MobileNetV3(norm_eval=True, with_cp=True, frozen_stages=5) @@ -59,9 +59,9 @@ def test_mobilenet_v3(): model.init_weights() model.train() - imgs = torch.randn(2, 3, 224, 224) + imgs = torch.randn(2, 3, 56, 56) feat = model(imgs) assert len(feat) == 3 - assert feat[0].shape == (2, 16, 112, 112) - assert feat[1].shape == (2, 16, 56, 56) - assert feat[2].shape == (2, 576, 28, 28) + assert feat[0].shape == (2, 16, 28, 28) + assert feat[1].shape == (2, 16, 14, 14) + assert feat[2].shape == (2, 576, 7, 7) diff --git a/tests/test_models/test_backbones/test_resnet.py b/tests/test_models/test_backbones/test_resnet.py index 2efb4986b0..fa632f5d83 100644 --- a/tests/test_models/test_backbones/test_resnet.py +++ b/tests/test_models/test_backbones/test_resnet.py @@ -43,21 +43,21 @@ def test_resnet_basic_block(): # Test BasicBlock with checkpoint forward block = BasicBlock(16, 16, with_cp=True) assert block.with_cp - x = torch.randn(1, 16, 56, 56) + x = torch.randn(1, 16, 28, 28) x_out = block(x) - assert x_out.shape == torch.Size([1, 16, 56, 56]) + assert x_out.shape == torch.Size([1, 16, 28, 28]) # test BasicBlock structure and forward - block = BasicBlock(64, 64) - assert block.conv1.in_channels == 64 - assert block.conv1.out_channels == 64 + block = BasicBlock(32, 32) + assert block.conv1.in_channels == 32 + assert block.conv1.out_channels == 32 assert block.conv1.kernel_size == (3, 3) - assert block.conv2.in_channels == 64 - assert block.conv2.out_channels == 64 + assert block.conv2.in_channels == 32 + assert block.conv2.out_channels == 32 assert block.conv2.kernel_size == (3, 3) - x = torch.randn(1, 64, 56, 56) + x = torch.randn(1, 32, 28, 28) x_out = block(x) - assert x_out.shape == torch.Size([1, 64, 56, 56]) + assert x_out.shape == torch.Size([1, 32, 28, 28]) def test_resnet_bottleneck(): @@ -293,37 +293,37 @@ def test_resnet_backbone(): with pytest.raises(AssertionError): # In ResNet: 1 <= num_stages <= 4 - ResNet(50, num_stages=5) + ResNet(18, num_stages=5) with pytest.raises(AssertionError): # len(strides) == len(dilations) == num_stages - ResNet(50, strides=(1, ), dilations=(1, 1), num_stages=3) + ResNet(18, strides=(1, ), dilations=(1, 1), num_stages=3) with pytest.raises(TypeError): # pretrained must be a string path - model = ResNet(50, pretrained=0) + model = ResNet(18, pretrained=0) model.init_weights() with pytest.raises(AssertionError): # Style must be in ['pytorch', 'caffe'] ResNet(50, style='tensorflow') - # Test ResNet50 norm_eval=True - model = ResNet(50, norm_eval=True) + # Test ResNet18 norm_eval=True + model = ResNet(18, norm_eval=True) model.init_weights() model.train() assert check_norm_state(model.modules(), False) - # Test ResNet50 with torchvision pretrained weight + # Test ResNet18 with torchvision pretrained weight model = ResNet( - depth=50, norm_eval=True, pretrained='torchvision://resnet50') + depth=18, norm_eval=True, pretrained='torchvision://resnet18') model.init_weights() model.train() assert check_norm_state(model.modules(), False) - # Test ResNet50 with first stage frozen + # Test ResNet18 with first stage frozen frozen_stages = 1 - model = ResNet(50, frozen_stages=frozen_stages) + model = ResNet(18, frozen_stages=frozen_stages) model.init_weights() model.train() assert model.norm1.training is False @@ -338,8 +338,8 @@ def test_resnet_backbone(): for param in layer.parameters(): assert param.requires_grad is False - # Test ResNet50V1d with first stage frozen - model = ResNetV1d(depth=50, frozen_stages=frozen_stages) + # Test ResNet18V1d with first stage frozen + model = ResNetV1d(depth=18, frozen_stages=frozen_stages) assert len(model.stem) == 9 model.init_weights() model.train() @@ -367,8 +367,8 @@ def test_resnet_backbone(): assert feat[2].shape == torch.Size([1, 256, 14, 14]) assert feat[3].shape == torch.Size([1, 512, 7, 7]) - # Test ResNet50 with BatchNorm forward - model = ResNet(50) + # Test ResNet18 with BatchNorm forward + model = ResNet(18) for m in model.modules(): if is_norm(m): assert isinstance(m, _BatchNorm) @@ -378,22 +378,22 @@ def test_resnet_backbone(): imgs = torch.randn(1, 3, 224, 224) feat = model(imgs) assert len(feat) == 4 - assert feat[0].shape == torch.Size([1, 256, 56, 56]) - assert feat[1].shape == torch.Size([1, 512, 28, 28]) - assert feat[2].shape == torch.Size([1, 1024, 14, 14]) - assert feat[3].shape == torch.Size([1, 2048, 7, 7]) + assert feat[0].shape == torch.Size([1, 64, 56, 56]) + assert feat[1].shape == torch.Size([1, 128, 28, 28]) + assert feat[2].shape == torch.Size([1, 256, 14, 14]) + assert feat[3].shape == torch.Size([1, 512, 7, 7]) - # Test ResNet50 with layers 1, 2, 3 out forward - model = ResNet(50, out_indices=(0, 1, 2)) + # Test ResNet18 with layers 1, 2, 3 out forward + model = ResNet(18, out_indices=(0, 1, 2)) model.init_weights() model.train() - imgs = torch.randn(1, 3, 224, 224) + imgs = torch.randn(1, 3, 112, 112) feat = model(imgs) assert len(feat) == 3 - assert feat[0].shape == torch.Size([1, 256, 56, 56]) - assert feat[1].shape == torch.Size([1, 512, 28, 28]) - assert feat[2].shape == torch.Size([1, 1024, 14, 14]) + assert feat[0].shape == torch.Size([1, 64, 28, 28]) + assert feat[1].shape == torch.Size([1, 128, 14, 14]) + assert feat[2].shape == torch.Size([1, 256, 7, 7]) # Test ResNet18 with checkpoint forward model = ResNet(18, with_cp=True) @@ -411,8 +411,8 @@ def test_resnet_backbone(): assert feat[2].shape == torch.Size([1, 256, 14, 14]) assert feat[3].shape == torch.Size([1, 512, 7, 7]) - # Test ResNet50 with checkpoint forward - model = ResNet(50, with_cp=True) + # Test ResNet18 with checkpoint forward + model = ResNet(18, with_cp=True) for m in model.modules(): if is_block(m): assert m.with_cp @@ -422,14 +422,14 @@ def test_resnet_backbone(): imgs = torch.randn(1, 3, 224, 224) feat = model(imgs) assert len(feat) == 4 - assert feat[0].shape == torch.Size([1, 256, 56, 56]) - assert feat[1].shape == torch.Size([1, 512, 28, 28]) - assert feat[2].shape == torch.Size([1, 1024, 14, 14]) - assert feat[3].shape == torch.Size([1, 2048, 7, 7]) + assert feat[0].shape == torch.Size([1, 64, 56, 56]) + assert feat[1].shape == torch.Size([1, 128, 28, 28]) + assert feat[2].shape == torch.Size([1, 256, 14, 14]) + assert feat[3].shape == torch.Size([1, 512, 7, 7]) - # Test ResNet50 with GroupNorm forward + # Test ResNet18 with GroupNorm forward model = ResNet( - 50, norm_cfg=dict(type='GN', num_groups=32, requires_grad=True)) + 18, norm_cfg=dict(type='GN', num_groups=32, requires_grad=True)) for m in model.modules(): if is_norm(m): assert isinstance(m, GroupNorm) @@ -439,10 +439,10 @@ def test_resnet_backbone(): imgs = torch.randn(1, 3, 224, 224) feat = model(imgs) assert len(feat) == 4 - assert feat[0].shape == torch.Size([1, 256, 56, 56]) - assert feat[1].shape == torch.Size([1, 512, 28, 28]) - assert feat[2].shape == torch.Size([1, 1024, 14, 14]) - assert feat[3].shape == torch.Size([1, 2048, 7, 7]) + assert feat[0].shape == torch.Size([1, 64, 56, 56]) + assert feat[1].shape == torch.Size([1, 128, 28, 28]) + assert feat[2].shape == torch.Size([1, 256, 14, 14]) + assert feat[3].shape == torch.Size([1, 512, 7, 7]) # Test ResNet50 with 1 GeneralizedAttention after conv2, 1 NonLocal2d # after conv2, 1 ContextBlock after conv3 in layers 2, 3, 4 @@ -543,8 +543,8 @@ def test_resnet_backbone(): assert feat[2].shape == torch.Size([1, 1024, 14, 14]) assert feat[3].shape == torch.Size([1, 2048, 7, 7]) - # Test ResNet50 zero initialization of residual - model = ResNet(50, zero_init_residual=True) + # Test ResNet18 zero initialization of residual + model = ResNet(18, zero_init_residual=True) model.init_weights() for m in model.modules(): if isinstance(m, Bottleneck): @@ -556,20 +556,20 @@ def test_resnet_backbone(): imgs = torch.randn(1, 3, 224, 224) feat = model(imgs) assert len(feat) == 4 - assert feat[0].shape == torch.Size([1, 256, 56, 56]) - assert feat[1].shape == torch.Size([1, 512, 28, 28]) - assert feat[2].shape == torch.Size([1, 1024, 14, 14]) - assert feat[3].shape == torch.Size([1, 2048, 7, 7]) + assert feat[0].shape == torch.Size([1, 64, 56, 56]) + assert feat[1].shape == torch.Size([1, 128, 28, 28]) + assert feat[2].shape == torch.Size([1, 256, 14, 14]) + assert feat[3].shape == torch.Size([1, 512, 7, 7]) # Test ResNetV1d forward - model = ResNetV1d(depth=50) + model = ResNetV1d(depth=18) model.init_weights() model.train() imgs = torch.randn(1, 3, 224, 224) feat = model(imgs) assert len(feat) == 4 - assert feat[0].shape == torch.Size([1, 256, 56, 56]) - assert feat[1].shape == torch.Size([1, 512, 28, 28]) - assert feat[2].shape == torch.Size([1, 1024, 14, 14]) - assert feat[3].shape == torch.Size([1, 2048, 7, 7]) + assert feat[0].shape == torch.Size([1, 64, 56, 56]) + assert feat[1].shape == torch.Size([1, 128, 28, 28]) + assert feat[2].shape == torch.Size([1, 256, 14, 14]) + assert feat[3].shape == torch.Size([1, 512, 7, 7]) diff --git a/tests/test_models/test_backbones/test_swin.py b/tests/test_models/test_backbones/test_swin.py index 83e0379637..4690001d33 100644 --- a/tests/test_models/test_backbones/test_swin.py +++ b/tests/test_models/test_backbones/test_swin.py @@ -6,13 +6,13 @@ def test_swin_block(): # test SwinBlock structure and forward - block = SwinBlock(embed_dims=64, num_heads=4, feedforward_channels=256) - assert block.ffn.embed_dims == 64 + block = SwinBlock(embed_dims=32, num_heads=4, feedforward_channels=128) + assert block.ffn.embed_dims == 32 assert block.attn.w_msa.num_heads == 4 - assert block.ffn.feedforward_channels == 256 - x = torch.randn(1, 56 * 56, 64) + assert block.ffn.feedforward_channels == 128 + x = torch.randn(1, 56 * 56, 32) x_out = block(x, (56, 56)) - assert x_out.shape == torch.Size([1, 56 * 56, 64]) + assert x_out.shape == torch.Size([1, 56 * 56, 32]) # Test BasicBlock with checkpoint forward block = SwinBlock( @@ -37,11 +37,11 @@ def test_swin_transformer(): # test pretrained image size with pytest.raises(AssertionError): - SwinTransformer(pretrain_img_size=(224, 224, 224)) + SwinTransformer(pretrain_img_size=(112, 112, 112)) # Test absolute position embedding - temp = torch.randn((1, 3, 224, 224)) - model = SwinTransformer(pretrain_img_size=224, use_abs_pos_embed=True) + temp = torch.randn((1, 3, 112, 112)) + model = SwinTransformer(pretrain_img_size=112, use_abs_pos_embed=True) model.init_weights() model(temp) @@ -89,7 +89,7 @@ def test_swin_transformer(): assert not p.requires_grad # Test Swin with checkpoint forward - temp = torch.randn((1, 3, 112, 112)) + temp = torch.randn((1, 3, 56, 56)) model = SwinTransformer(with_cp=True) for m in model.modules(): if isinstance(m, SwinBlock): diff --git a/tests/test_models/test_heads/test_ann_head.py b/tests/test_models/test_heads/test_ann_head.py index 22caf03642..c1e44bc685 100644 --- a/tests/test_models/test_heads/test_ann_head.py +++ b/tests/test_models/test_heads/test_ann_head.py @@ -7,10 +7,10 @@ def test_ann_head(): - inputs = [torch.randn(1, 16, 45, 45), torch.randn(1, 32, 21, 21)] + inputs = [torch.randn(1, 4, 45, 45), torch.randn(1, 8, 21, 21)] head = ANNHead( - in_channels=[16, 32], - channels=16, + in_channels=[4, 8], + channels=2, num_classes=19, in_index=[-2, -1], project_channels=8) diff --git a/tests/test_models/test_heads/test_apc_head.py b/tests/test_models/test_heads/test_apc_head.py index a79d66fcff..dc55ccc1d5 100644 --- a/tests/test_models/test_heads/test_apc_head.py +++ b/tests/test_models/test_heads/test_apc_head.py @@ -10,25 +10,25 @@ def test_apc_head(): with pytest.raises(AssertionError): # pool_scales must be list|tuple - APCHead(in_channels=32, channels=16, num_classes=19, pool_scales=1) + APCHead(in_channels=8, channels=2, num_classes=19, pool_scales=1) # test no norm_cfg - head = APCHead(in_channels=32, channels=16, num_classes=19) + head = APCHead(in_channels=8, channels=2, num_classes=19) assert not _conv_has_norm(head, sync_bn=False) # test with norm_cfg head = APCHead( - in_channels=32, - channels=16, + in_channels=8, + channels=2, num_classes=19, norm_cfg=dict(type='SyncBN')) assert _conv_has_norm(head, sync_bn=True) # fusion=True - inputs = [torch.randn(1, 32, 45, 45)] + inputs = [torch.randn(1, 8, 45, 45)] head = APCHead( - in_channels=32, - channels=16, + in_channels=8, + channels=2, num_classes=19, pool_scales=(1, 2, 3), fusion=True) @@ -42,10 +42,10 @@ def test_apc_head(): assert outputs.shape == (1, head.num_classes, 45, 45) # fusion=False - inputs = [torch.randn(1, 32, 45, 45)] + inputs = [torch.randn(1, 8, 45, 45)] head = APCHead( - in_channels=32, - channels=16, + in_channels=8, + channels=2, num_classes=19, pool_scales=(1, 2, 3), fusion=False) diff --git a/tests/test_models/test_heads/test_aspp_head.py b/tests/test_models/test_heads/test_aspp_head.py index 203fef0a47..db9e89324f 100644 --- a/tests/test_models/test_heads/test_aspp_head.py +++ b/tests/test_models/test_heads/test_aspp_head.py @@ -10,23 +10,23 @@ def test_aspp_head(): with pytest.raises(AssertionError): # pool_scales must be list|tuple - ASPPHead(in_channels=32, channels=16, num_classes=19, dilations=1) + ASPPHead(in_channels=8, channels=4, num_classes=19, dilations=1) # test no norm_cfg - head = ASPPHead(in_channels=32, channels=16, num_classes=19) + head = ASPPHead(in_channels=8, channels=4, num_classes=19) assert not _conv_has_norm(head, sync_bn=False) # test with norm_cfg head = ASPPHead( - in_channels=32, - channels=16, + in_channels=8, + channels=4, num_classes=19, norm_cfg=dict(type='SyncBN')) assert _conv_has_norm(head, sync_bn=True) - inputs = [torch.randn(1, 32, 45, 45)] + inputs = [torch.randn(1, 8, 45, 45)] head = ASPPHead( - in_channels=32, channels=16, num_classes=19, dilations=(1, 12, 24)) + in_channels=8, channels=4, num_classes=19, dilations=(1, 12, 24)) if torch.cuda.is_available(): head, inputs = to_cuda(head, inputs) assert head.aspp_modules[0].conv.dilation == (1, 1) @@ -39,12 +39,12 @@ def test_aspp_head(): def test_dw_aspp_head(): # test w.o. c1 - inputs = [torch.randn(1, 32, 45, 45)] + inputs = [torch.randn(1, 8, 45, 45)] head = DepthwiseSeparableASPPHead( c1_in_channels=0, c1_channels=0, - in_channels=32, - channels=16, + in_channels=8, + channels=4, num_classes=19, dilations=(1, 12, 24)) if torch.cuda.is_available(): @@ -57,18 +57,18 @@ def test_dw_aspp_head(): assert outputs.shape == (1, head.num_classes, 45, 45) # test with c1 - inputs = [torch.randn(1, 8, 45, 45), torch.randn(1, 32, 21, 21)] + inputs = [torch.randn(1, 4, 45, 45), torch.randn(1, 16, 21, 21)] head = DepthwiseSeparableASPPHead( - c1_in_channels=8, - c1_channels=4, - in_channels=32, - channels=16, + c1_in_channels=4, + c1_channels=2, + in_channels=16, + channels=8, num_classes=19, dilations=(1, 12, 24)) if torch.cuda.is_available(): head, inputs = to_cuda(head, inputs) - assert head.c1_bottleneck.in_channels == 8 - assert head.c1_bottleneck.out_channels == 4 + assert head.c1_bottleneck.in_channels == 4 + assert head.c1_bottleneck.out_channels == 2 assert head.aspp_modules[0].conv.dilation == (1, 1) assert head.aspp_modules[1].depthwise_conv.dilation == (12, 12) assert head.aspp_modules[2].depthwise_conv.dilation == (24, 24) diff --git a/tests/test_models/test_heads/test_cc_head.py b/tests/test_models/test_heads/test_cc_head.py index ff284ef067..06304172db 100644 --- a/tests/test_models/test_heads/test_cc_head.py +++ b/tests/test_models/test_heads/test_cc_head.py @@ -7,12 +7,12 @@ def test_cc_head(): - head = CCHead(in_channels=32, channels=16, num_classes=19) + head = CCHead(in_channels=16, channels=8, num_classes=19) assert len(head.convs) == 2 assert hasattr(head, 'cca') if not torch.cuda.is_available(): pytest.skip('CCHead requires CUDA') - inputs = [torch.randn(1, 32, 45, 45)] + inputs = [torch.randn(1, 16, 23, 23)] head, inputs = to_cuda(head, inputs) outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) + assert outputs.shape == (1, head.num_classes, 23, 23) diff --git a/tests/test_models/test_heads/test_da_head.py b/tests/test_models/test_heads/test_da_head.py index 7bc46aa960..7ab4a96142 100644 --- a/tests/test_models/test_heads/test_da_head.py +++ b/tests/test_models/test_heads/test_da_head.py @@ -7,13 +7,13 @@ def test_da_head(): - inputs = [torch.randn(1, 32, 45, 45)] - head = DAHead(in_channels=32, channels=16, num_classes=19, pam_channels=8) + inputs = [torch.randn(1, 16, 23, 23)] + head = DAHead(in_channels=16, channels=8, num_classes=19, pam_channels=8) if torch.cuda.is_available(): head, inputs = to_cuda(head, inputs) outputs = head(inputs) assert isinstance(outputs, tuple) and len(outputs) == 3 for output in outputs: - assert output.shape == (1, head.num_classes, 45, 45) + assert output.shape == (1, head.num_classes, 23, 23) test_output = head.forward_test(inputs, None, None) - assert test_output.shape == (1, head.num_classes, 45, 45) + assert test_output.shape == (1, head.num_classes, 23, 23) diff --git a/tests/test_models/test_heads/test_dm_head.py b/tests/test_models/test_heads/test_dm_head.py index f85d547e81..a922ff7295 100644 --- a/tests/test_models/test_heads/test_dm_head.py +++ b/tests/test_models/test_heads/test_dm_head.py @@ -10,25 +10,25 @@ def test_dm_head(): with pytest.raises(AssertionError): # filter_sizes must be list|tuple - DMHead(in_channels=32, channels=16, num_classes=19, filter_sizes=1) + DMHead(in_channels=8, channels=4, num_classes=19, filter_sizes=1) # test no norm_cfg - head = DMHead(in_channels=32, channels=16, num_classes=19) + head = DMHead(in_channels=8, channels=4, num_classes=19) assert not _conv_has_norm(head, sync_bn=False) # test with norm_cfg head = DMHead( - in_channels=32, - channels=16, + in_channels=8, + channels=4, num_classes=19, norm_cfg=dict(type='SyncBN')) assert _conv_has_norm(head, sync_bn=True) # fusion=True - inputs = [torch.randn(1, 32, 45, 45)] + inputs = [torch.randn(1, 8, 23, 23)] head = DMHead( - in_channels=32, - channels=16, + in_channels=8, + channels=4, num_classes=19, filter_sizes=(1, 3, 5), fusion=True) @@ -39,13 +39,13 @@ def test_dm_head(): assert head.dcm_modules[1].filter_size == 3 assert head.dcm_modules[2].filter_size == 5 outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) + assert outputs.shape == (1, head.num_classes, 23, 23) # fusion=False - inputs = [torch.randn(1, 32, 45, 45)] + inputs = [torch.randn(1, 8, 23, 23)] head = DMHead( - in_channels=32, - channels=16, + in_channels=8, + channels=4, num_classes=19, filter_sizes=(1, 3, 5), fusion=False) @@ -56,4 +56,4 @@ def test_dm_head(): assert head.dcm_modules[1].filter_size == 3 assert head.dcm_modules[2].filter_size == 5 outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) + assert outputs.shape == (1, head.num_classes, 23, 23) diff --git a/tests/test_models/test_heads/test_dnl_head.py b/tests/test_models/test_heads/test_dnl_head.py index 17242018e0..720cb07fc6 100644 --- a/tests/test_models/test_heads/test_dnl_head.py +++ b/tests/test_models/test_heads/test_dnl_head.py @@ -7,39 +7,38 @@ def test_dnl_head(): # DNL with 'embedded_gaussian' mode - head = DNLHead(in_channels=32, channels=16, num_classes=19) + head = DNLHead(in_channels=8, channels=4, num_classes=19) assert len(head.convs) == 2 assert hasattr(head, 'dnl_block') assert head.dnl_block.temperature == 0.05 - inputs = [torch.randn(1, 32, 45, 45)] + inputs = [torch.randn(1, 8, 23, 23)] if torch.cuda.is_available(): head, inputs = to_cuda(head, inputs) outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) + assert outputs.shape == (1, head.num_classes, 23, 23) # NonLocal2d with 'dot_product' mode head = DNLHead( - in_channels=32, channels=16, num_classes=19, mode='dot_product') - inputs = [torch.randn(1, 32, 45, 45)] + in_channels=8, channels=4, num_classes=19, mode='dot_product') + inputs = [torch.randn(1, 8, 23, 23)] if torch.cuda.is_available(): head, inputs = to_cuda(head, inputs) outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) + assert outputs.shape == (1, head.num_classes, 23, 23) # NonLocal2d with 'gaussian' mode - head = DNLHead( - in_channels=32, channels=16, num_classes=19, mode='gaussian') - inputs = [torch.randn(1, 32, 45, 45)] + head = DNLHead(in_channels=8, channels=4, num_classes=19, mode='gaussian') + inputs = [torch.randn(1, 8, 23, 23)] if torch.cuda.is_available(): head, inputs = to_cuda(head, inputs) outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) + assert outputs.shape == (1, head.num_classes, 23, 23) # NonLocal2d with 'concatenation' mode head = DNLHead( - in_channels=32, channels=16, num_classes=19, mode='concatenation') - inputs = [torch.randn(1, 32, 45, 45)] + in_channels=8, channels=4, num_classes=19, mode='concatenation') + inputs = [torch.randn(1, 8, 23, 23)] if torch.cuda.is_available(): head, inputs = to_cuda(head, inputs) outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) + assert outputs.shape == (1, head.num_classes, 23, 23) diff --git a/tests/test_models/test_heads/test_dpt_head.py b/tests/test_models/test_heads/test_dpt_head.py index 5b0e9ebc4c..d8cd8b028d 100644 --- a/tests/test_models/test_heads/test_dpt_head.py +++ b/tests/test_models/test_heads/test_dpt_head.py @@ -10,13 +10,13 @@ def test_dpt_head(): # input_transform must be 'multiple_select' head = DPTHead( in_channels=[768, 768, 768, 768], - channels=256, + channels=4, num_classes=19, in_index=[0, 1, 2, 3]) head = DPTHead( in_channels=[768, 768, 768, 768], - channels=256, + channels=4, num_classes=19, in_index=[0, 1, 2, 3], input_transform='multiple_select') @@ -29,7 +29,7 @@ def test_dpt_head(): # test readout operation head = DPTHead( in_channels=[768, 768, 768, 768], - channels=256, + channels=4, num_classes=19, in_index=[0, 1, 2, 3], input_transform='multiple_select', @@ -39,7 +39,7 @@ def test_dpt_head(): head = DPTHead( in_channels=[768, 768, 768, 768], - channels=256, + channels=4, num_classes=19, in_index=[0, 1, 2, 3], input_transform='multiple_select', diff --git a/tests/test_models/test_heads/test_ema_head.py b/tests/test_models/test_heads/test_ema_head.py index 8947e0d584..1811cd2bb2 100644 --- a/tests/test_models/test_heads/test_ema_head.py +++ b/tests/test_models/test_heads/test_ema_head.py @@ -7,17 +7,17 @@ def test_emanet_head(): head = EMAHead( - in_channels=32, - ema_channels=24, - channels=16, + in_channels=4, + ema_channels=3, + channels=2, num_stages=3, - num_bases=16, + num_bases=2, num_classes=19) for param in head.ema_mid_conv.parameters(): assert not param.requires_grad assert hasattr(head, 'ema_module') - inputs = [torch.randn(1, 32, 45, 45)] + inputs = [torch.randn(1, 4, 23, 23)] if torch.cuda.is_available(): head, inputs = to_cuda(head, inputs) outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) + assert outputs.shape == (1, head.num_classes, 23, 23) diff --git a/tests/test_models/test_heads/test_enc_head.py b/tests/test_models/test_heads/test_enc_head.py index db5383d76a..9c84c757c6 100644 --- a/tests/test_models/test_heads/test_enc_head.py +++ b/tests/test_models/test_heads/test_enc_head.py @@ -7,9 +7,8 @@ def test_enc_head(): # with se_loss, w.o. lateral - inputs = [torch.randn(1, 32, 21, 21)] - head = EncHead( - in_channels=[32], channels=16, num_classes=19, in_index=[-1]) + inputs = [torch.randn(1, 8, 21, 21)] + head = EncHead(in_channels=[8], channels=4, num_classes=19, in_index=[-1]) if torch.cuda.is_available(): head, inputs = to_cuda(head, inputs) outputs = head(inputs) @@ -18,10 +17,10 @@ def test_enc_head(): assert outputs[1].shape == (1, head.num_classes) # w.o se_loss, w.o. lateral - inputs = [torch.randn(1, 32, 21, 21)] + inputs = [torch.randn(1, 8, 21, 21)] head = EncHead( - in_channels=[32], - channels=16, + in_channels=[8], + channels=4, use_se_loss=False, num_classes=19, in_index=[-1]) @@ -31,10 +30,10 @@ def test_enc_head(): assert outputs.shape == (1, head.num_classes, 21, 21) # with se_loss, with lateral - inputs = [torch.randn(1, 16, 45, 45), torch.randn(1, 32, 21, 21)] + inputs = [torch.randn(1, 4, 45, 45), torch.randn(1, 8, 21, 21)] head = EncHead( - in_channels=[16, 32], - channels=16, + in_channels=[4, 8], + channels=4, add_lateral=True, num_classes=19, in_index=[-2, -1]) diff --git a/tests/test_models/test_heads/test_fcn_head.py b/tests/test_models/test_heads/test_fcn_head.py index 3783fe3ad5..4e633fba48 100644 --- a/tests/test_models/test_heads/test_fcn_head.py +++ b/tests/test_models/test_heads/test_fcn_head.py @@ -15,15 +15,15 @@ def test_fcn_head(): FCNHead(num_classes=19, num_convs=-1) # test no norm_cfg - head = FCNHead(in_channels=32, channels=16, num_classes=19) + head = FCNHead(in_channels=8, channels=4, num_classes=19) for m in head.modules(): if isinstance(m, ConvModule): assert not m.with_norm # test with norm_cfg head = FCNHead( - in_channels=32, - channels=16, + in_channels=8, + channels=4, num_classes=19, norm_cfg=dict(type='SyncBN')) for m in head.modules(): @@ -31,64 +31,64 @@ def test_fcn_head(): assert m.with_norm and isinstance(m.bn, SyncBatchNorm) # test concat_input=False - inputs = [torch.randn(1, 32, 45, 45)] + inputs = [torch.randn(1, 8, 23, 23)] head = FCNHead( - in_channels=32, channels=16, num_classes=19, concat_input=False) + in_channels=8, channels=4, num_classes=19, concat_input=False) if torch.cuda.is_available(): head, inputs = to_cuda(head, inputs) assert len(head.convs) == 2 assert not head.concat_input and not hasattr(head, 'conv_cat') outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) + assert outputs.shape == (1, head.num_classes, 23, 23) # test concat_input=True - inputs = [torch.randn(1, 32, 45, 45)] + inputs = [torch.randn(1, 8, 23, 23)] head = FCNHead( - in_channels=32, channels=16, num_classes=19, concat_input=True) + in_channels=8, channels=4, num_classes=19, concat_input=True) if torch.cuda.is_available(): head, inputs = to_cuda(head, inputs) assert len(head.convs) == 2 assert head.concat_input - assert head.conv_cat.in_channels == 48 + assert head.conv_cat.in_channels == 12 outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) + assert outputs.shape == (1, head.num_classes, 23, 23) # test kernel_size=3 - inputs = [torch.randn(1, 32, 45, 45)] - head = FCNHead(in_channels=32, channels=16, num_classes=19) + inputs = [torch.randn(1, 8, 23, 23)] + head = FCNHead(in_channels=8, channels=4, num_classes=19) if torch.cuda.is_available(): head, inputs = to_cuda(head, inputs) for i in range(len(head.convs)): assert head.convs[i].kernel_size == (3, 3) assert head.convs[i].padding == 1 outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) + assert outputs.shape == (1, head.num_classes, 23, 23) # test kernel_size=1 - inputs = [torch.randn(1, 32, 45, 45)] - head = FCNHead(in_channels=32, channels=16, num_classes=19, kernel_size=1) + inputs = [torch.randn(1, 8, 23, 23)] + head = FCNHead(in_channels=8, channels=4, num_classes=19, kernel_size=1) if torch.cuda.is_available(): head, inputs = to_cuda(head, inputs) for i in range(len(head.convs)): assert head.convs[i].kernel_size == (1, 1) assert head.convs[i].padding == 0 outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) + assert outputs.shape == (1, head.num_classes, 23, 23) # test num_conv - inputs = [torch.randn(1, 32, 45, 45)] - head = FCNHead(in_channels=32, channels=16, num_classes=19, num_convs=1) + inputs = [torch.randn(1, 8, 23, 23)] + head = FCNHead(in_channels=8, channels=4, num_classes=19, num_convs=1) if torch.cuda.is_available(): head, inputs = to_cuda(head, inputs) assert len(head.convs) == 1 outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) + assert outputs.shape == (1, head.num_classes, 23, 23) # test num_conv = 0 - inputs = [torch.randn(1, 32, 45, 45)] + inputs = [torch.randn(1, 8, 23, 23)] head = FCNHead( - in_channels=32, - channels=32, + in_channels=8, + channels=8, num_classes=19, num_convs=0, concat_input=False) @@ -96,7 +96,7 @@ def test_fcn_head(): head, inputs = to_cuda(head, inputs) assert isinstance(head.convs, torch.nn.Identity) outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) + assert outputs.shape == (1, head.num_classes, 23, 23) def test_sep_fcn_head(): @@ -108,9 +108,9 @@ def test_sep_fcn_head(): num_classes=19, in_index=-1, norm_cfg=dict(type='BN', requires_grad=True, momentum=0.01)) - x = [torch.rand(2, 128, 32, 32)] + x = [torch.rand(2, 128, 8, 8)] output = head(x) - assert output.shape == (2, head.num_classes, 32, 32) + assert output.shape == (2, head.num_classes, 8, 8) assert not head.concat_input assert isinstance(head.convs[0], DepthwiseSeparableConvModule) assert isinstance(head.convs[1], DepthwiseSeparableConvModule) @@ -123,9 +123,9 @@ def test_sep_fcn_head(): num_classes=19, in_index=-1, norm_cfg=dict(type='BN', requires_grad=True, momentum=0.01)) - x = [torch.rand(3, 64, 32, 32)] + x = [torch.rand(3, 64, 8, 8)] output = head(x) - assert output.shape == (3, head.num_classes, 32, 32) + assert output.shape == (3, head.num_classes, 8, 8) assert head.concat_input assert isinstance(head.convs[0], DepthwiseSeparableConvModule) assert isinstance(head.convs[1], DepthwiseSeparableConvModule) diff --git a/tests/test_models/test_heads/test_gc_head.py b/tests/test_models/test_heads/test_gc_head.py index 4540222e29..c62ac9ae74 100644 --- a/tests/test_models/test_heads/test_gc_head.py +++ b/tests/test_models/test_heads/test_gc_head.py @@ -6,11 +6,11 @@ def test_gc_head(): - head = GCHead(in_channels=32, channels=16, num_classes=19) + head = GCHead(in_channels=4, channels=4, num_classes=19) assert len(head.convs) == 2 assert hasattr(head, 'gc_block') - inputs = [torch.randn(1, 32, 45, 45)] + inputs = [torch.randn(1, 4, 23, 23)] if torch.cuda.is_available(): head, inputs = to_cuda(head, inputs) outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) + assert outputs.shape == (1, head.num_classes, 23, 23) diff --git a/tests/test_models/test_heads/test_isa_head.py b/tests/test_models/test_heads/test_isa_head.py index 3d133d0d77..b177f6d23e 100644 --- a/tests/test_models/test_heads/test_isa_head.py +++ b/tests/test_models/test_heads/test_isa_head.py @@ -7,14 +7,14 @@ def test_isa_head(): - inputs = [torch.randn(1, 32, 45, 45)] + inputs = [torch.randn(1, 8, 23, 23)] isa_head = ISAHead( - in_channels=32, - channels=16, + in_channels=8, + channels=4, num_classes=19, - isa_channels=16, + isa_channels=4, down_factor=(8, 8)) if torch.cuda.is_available(): isa_head, inputs = to_cuda(isa_head, inputs) output = isa_head(inputs) - assert output.shape == (1, isa_head.num_classes, 45, 45) + assert output.shape == (1, isa_head.num_classes, 23, 23) diff --git a/tests/test_models/test_heads/test_lraspp_head.py b/tests/test_models/test_heads/test_lraspp_head.py index c83377f3d8..a46e6a19a2 100644 --- a/tests/test_models/test_heads/test_lraspp_head.py +++ b/tests/test_models/test_heads/test_lraspp_head.py @@ -9,9 +9,9 @@ def test_lraspp_head(): with pytest.raises(ValueError): # check invalid input_transform LRASPPHead( - in_channels=(16, 16, 576), + in_channels=(4, 4, 123), in_index=(0, 1, 2), - channels=128, + channels=32, input_transform='resize_concat', dropout_ratio=0.1, num_classes=19, @@ -24,9 +24,9 @@ def test_lraspp_head(): with pytest.raises(AssertionError): # check invalid branch_channels LRASPPHead( - in_channels=(16, 16, 576), + in_channels=(4, 4, 123), in_index=(0, 1, 2), - channels=128, + channels=32, branch_channels=64, input_transform='multiple_select', dropout_ratio=0.1, @@ -39,9 +39,9 @@ def test_lraspp_head(): # test with default settings lraspp_head = LRASPPHead( - in_channels=(16, 16, 576), + in_channels=(4, 4, 123), in_index=(0, 1, 2), - channels=128, + channels=32, input_transform='multiple_select', dropout_ratio=0.1, num_classes=19, @@ -51,18 +51,18 @@ def test_lraspp_head(): loss_decode=dict( type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)) inputs = [ - torch.randn(2, 16, 45, 45), - torch.randn(2, 16, 28, 28), - torch.randn(2, 576, 14, 14) + torch.randn(2, 4, 45, 45), + torch.randn(2, 4, 28, 28), + torch.randn(2, 123, 14, 14) ] with pytest.raises(RuntimeError): # check invalid inputs output = lraspp_head(inputs) inputs = [ - torch.randn(2, 16, 111, 111), - torch.randn(2, 16, 77, 77), - torch.randn(2, 576, 55, 55) + torch.randn(2, 4, 111, 111), + torch.randn(2, 4, 77, 77), + torch.randn(2, 123, 55, 55) ] output = lraspp_head(inputs) assert output.shape == (2, 19, 111, 111) diff --git a/tests/test_models/test_heads/test_nl_head.py b/tests/test_models/test_heads/test_nl_head.py index 04b173f08f..d4ef0b9db3 100644 --- a/tests/test_models/test_heads/test_nl_head.py +++ b/tests/test_models/test_heads/test_nl_head.py @@ -6,11 +6,11 @@ def test_nl_head(): - head = NLHead(in_channels=32, channels=16, num_classes=19) + head = NLHead(in_channels=8, channels=4, num_classes=19) assert len(head.convs) == 2 assert hasattr(head, 'nl_block') - inputs = [torch.randn(1, 32, 45, 45)] + inputs = [torch.randn(1, 8, 23, 23)] if torch.cuda.is_available(): head, inputs = to_cuda(head, inputs) outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) + assert outputs.shape == (1, head.num_classes, 23, 23) diff --git a/tests/test_models/test_heads/test_ocr_head.py b/tests/test_models/test_heads/test_ocr_head.py index c6551f83ed..5e5d669b14 100644 --- a/tests/test_models/test_heads/test_ocr_head.py +++ b/tests/test_models/test_heads/test_ocr_head.py @@ -7,13 +7,13 @@ def test_ocr_head(): - inputs = [torch.randn(1, 32, 45, 45)] + inputs = [torch.randn(1, 8, 23, 23)] ocr_head = OCRHead( - in_channels=32, channels=16, num_classes=19, ocr_channels=8) - fcn_head = FCNHead(in_channels=32, channels=16, num_classes=19) + in_channels=8, channels=4, num_classes=19, ocr_channels=8) + fcn_head = FCNHead(in_channels=8, channels=4, num_classes=19) if torch.cuda.is_available(): head, inputs = to_cuda(ocr_head, inputs) head, inputs = to_cuda(fcn_head, inputs) prev_output = fcn_head(inputs) output = ocr_head(inputs, prev_output) - assert output.shape == (1, ocr_head.num_classes, 45, 45) + assert output.shape == (1, ocr_head.num_classes, 23, 23) diff --git a/tests/test_models/test_heads/test_psa_head.py b/tests/test_models/test_heads/test_psa_head.py index 21450b5eab..34f592b026 100644 --- a/tests/test_models/test_heads/test_psa_head.py +++ b/tests/test_models/test_heads/test_psa_head.py @@ -11,112 +11,112 @@ def test_psa_head(): with pytest.raises(AssertionError): # psa_type must be in 'bi-direction', 'collect', 'distribute' PSAHead( - in_channels=32, - channels=16, + in_channels=4, + channels=2, num_classes=19, - mask_size=(39, 39), + mask_size=(13, 13), psa_type='gather') # test no norm_cfg head = PSAHead( - in_channels=32, channels=16, num_classes=19, mask_size=(39, 39)) + in_channels=4, channels=2, num_classes=19, mask_size=(13, 13)) assert not _conv_has_norm(head, sync_bn=False) # test with norm_cfg head = PSAHead( - in_channels=32, - channels=16, + in_channels=4, + channels=2, num_classes=19, - mask_size=(39, 39), + mask_size=(13, 13), norm_cfg=dict(type='SyncBN')) assert _conv_has_norm(head, sync_bn=True) # test 'bi-direction' psa_type - inputs = [torch.randn(1, 32, 39, 39)] + inputs = [torch.randn(1, 4, 13, 13)] head = PSAHead( - in_channels=32, channels=16, num_classes=19, mask_size=(39, 39)) + in_channels=4, channels=2, num_classes=19, mask_size=(13, 13)) if torch.cuda.is_available(): head, inputs = to_cuda(head, inputs) outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 39, 39) + assert outputs.shape == (1, head.num_classes, 13, 13) # test 'bi-direction' psa_type, shrink_factor=1 - inputs = [torch.randn(1, 32, 39, 39)] + inputs = [torch.randn(1, 4, 13, 13)] head = PSAHead( - in_channels=32, - channels=16, + in_channels=4, + channels=2, num_classes=19, - mask_size=(39, 39), + mask_size=(13, 13), shrink_factor=1) if torch.cuda.is_available(): head, inputs = to_cuda(head, inputs) outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 39, 39) + assert outputs.shape == (1, head.num_classes, 13, 13) # test 'bi-direction' psa_type with soft_max - inputs = [torch.randn(1, 32, 39, 39)] + inputs = [torch.randn(1, 4, 13, 13)] head = PSAHead( - in_channels=32, - channels=16, + in_channels=4, + channels=2, num_classes=19, - mask_size=(39, 39), + mask_size=(13, 13), psa_softmax=True) if torch.cuda.is_available(): head, inputs = to_cuda(head, inputs) outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 39, 39) + assert outputs.shape == (1, head.num_classes, 13, 13) # test 'collect' psa_type - inputs = [torch.randn(1, 32, 39, 39)] + inputs = [torch.randn(1, 4, 13, 13)] head = PSAHead( - in_channels=32, - channels=16, + in_channels=4, + channels=2, num_classes=19, - mask_size=(39, 39), + mask_size=(13, 13), psa_type='collect') if torch.cuda.is_available(): head, inputs = to_cuda(head, inputs) outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 39, 39) + assert outputs.shape == (1, head.num_classes, 13, 13) # test 'collect' psa_type, shrink_factor=1 - inputs = [torch.randn(1, 32, 39, 39)] + inputs = [torch.randn(1, 4, 13, 13)] head = PSAHead( - in_channels=32, - channels=16, + in_channels=4, + channels=2, num_classes=19, - mask_size=(39, 39), + mask_size=(13, 13), shrink_factor=1, psa_type='collect') if torch.cuda.is_available(): head, inputs = to_cuda(head, inputs) outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 39, 39) + assert outputs.shape == (1, head.num_classes, 13, 13) # test 'collect' psa_type, shrink_factor=1, compact=True - inputs = [torch.randn(1, 32, 39, 39)] + inputs = [torch.randn(1, 4, 13, 13)] head = PSAHead( - in_channels=32, - channels=16, + in_channels=4, + channels=2, num_classes=19, - mask_size=(39, 39), + mask_size=(13, 13), psa_type='collect', shrink_factor=1, compact=True) if torch.cuda.is_available(): head, inputs = to_cuda(head, inputs) outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 39, 39) + assert outputs.shape == (1, head.num_classes, 13, 13) # test 'distribute' psa_type - inputs = [torch.randn(1, 32, 39, 39)] + inputs = [torch.randn(1, 4, 13, 13)] head = PSAHead( - in_channels=32, - channels=16, + in_channels=4, + channels=2, num_classes=19, - mask_size=(39, 39), + mask_size=(13, 13), psa_type='distribute') if torch.cuda.is_available(): head, inputs = to_cuda(head, inputs) outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 39, 39) + assert outputs.shape == (1, head.num_classes, 13, 13) diff --git a/tests/test_models/test_heads/test_psp_head.py b/tests/test_models/test_heads/test_psp_head.py index f4a8781a0c..fde4087c8e 100644 --- a/tests/test_models/test_heads/test_psp_head.py +++ b/tests/test_models/test_heads/test_psp_head.py @@ -10,27 +10,27 @@ def test_psp_head(): with pytest.raises(AssertionError): # pool_scales must be list|tuple - PSPHead(in_channels=32, channels=16, num_classes=19, pool_scales=1) + PSPHead(in_channels=4, channels=2, num_classes=19, pool_scales=1) # test no norm_cfg - head = PSPHead(in_channels=32, channels=16, num_classes=19) + head = PSPHead(in_channels=4, channels=2, num_classes=19) assert not _conv_has_norm(head, sync_bn=False) # test with norm_cfg head = PSPHead( - in_channels=32, - channels=16, + in_channels=4, + channels=2, num_classes=19, norm_cfg=dict(type='SyncBN')) assert _conv_has_norm(head, sync_bn=True) - inputs = [torch.randn(1, 32, 45, 45)] + inputs = [torch.randn(1, 4, 23, 23)] head = PSPHead( - in_channels=32, channels=16, num_classes=19, pool_scales=(1, 2, 3)) + in_channels=4, channels=2, num_classes=19, pool_scales=(1, 2, 3)) if torch.cuda.is_available(): head, inputs = to_cuda(head, inputs) assert head.psp_modules[0][0].output_size == 1 assert head.psp_modules[1][0].output_size == 2 assert head.psp_modules[2][0].output_size == 3 outputs = head(inputs) - assert outputs.shape == (1, head.num_classes, 45, 45) + assert outputs.shape == (1, head.num_classes, 23, 23) diff --git a/tests/test_models/test_heads/test_setr_mla_head.py b/tests/test_models/test_heads/test_setr_mla_head.py index 07992d0d92..301bc0bff4 100644 --- a/tests/test_models/test_heads/test_setr_mla_head.py +++ b/tests/test_models/test_heads/test_setr_mla_head.py @@ -10,29 +10,29 @@ def test_setr_mla_head(capsys): with pytest.raises(AssertionError): # MLA requires input multiple stage feature information. - SETRMLAHead(in_channels=32, channels=16, num_classes=19, in_index=1) + SETRMLAHead(in_channels=8, channels=4, num_classes=19, in_index=1) with pytest.raises(AssertionError): # multiple in_indexs requires multiple in_channels. SETRMLAHead( - in_channels=32, channels=16, num_classes=19, in_index=(0, 1, 2, 3)) + in_channels=8, channels=4, num_classes=19, in_index=(0, 1, 2, 3)) with pytest.raises(AssertionError): # channels should be len(in_channels) * mla_channels SETRMLAHead( - in_channels=(32, 32, 32, 32), - channels=32, - mla_channels=16, + in_channels=(8, 8, 8, 8), + channels=8, + mla_channels=4, in_index=(0, 1, 2, 3), num_classes=19) # test inference of MLA head - img_size = (32, 32) - patch_size = 16 + img_size = (8, 8) + patch_size = 4 head = SETRMLAHead( - in_channels=(32, 32, 32, 32), - channels=64, - mla_channels=16, + in_channels=(8, 8, 8, 8), + channels=16, + mla_channels=4, in_index=(0, 1, 2, 3), num_classes=19, norm_cfg=dict(type='BN')) @@ -40,10 +40,10 @@ def test_setr_mla_head(capsys): h, w = img_size[0] // patch_size, img_size[1] // patch_size # Input square NCHW format feature information x = [ - torch.randn(1, 32, h, w), - torch.randn(1, 32, h, w), - torch.randn(1, 32, h, w), - torch.randn(1, 32, h, w) + torch.randn(1, 8, h, w), + torch.randn(1, 8, h, w), + torch.randn(1, 8, h, w), + torch.randn(1, 8, h, w) ] if torch.cuda.is_available(): head, x = to_cuda(head, x) @@ -52,10 +52,10 @@ def test_setr_mla_head(capsys): # Input non-square NCHW format feature information x = [ - torch.randn(1, 32, h, w * 2), - torch.randn(1, 32, h, w * 2), - torch.randn(1, 32, h, w * 2), - torch.randn(1, 32, h, w * 2) + torch.randn(1, 8, h, w * 2), + torch.randn(1, 8, h, w * 2), + torch.randn(1, 8, h, w * 2), + torch.randn(1, 8, h, w * 2) ] if torch.cuda.is_available(): head, x = to_cuda(head, x) diff --git a/tests/test_models/test_heads/test_setr_up_head.py b/tests/test_models/test_heads/test_setr_up_head.py index d552e175e2..a05192229c 100644 --- a/tests/test_models/test_heads/test_setr_up_head.py +++ b/tests/test_models/test_heads/test_setr_up_head.py @@ -15,12 +15,12 @@ def test_setr_up_head(capsys): with pytest.raises(AssertionError): # in_channels must be int type and in_channels must be same # as embed_dim. - SETRUPHead(in_channels=(32, 32), channels=16, num_classes=19) + SETRUPHead(in_channels=(4, 4), channels=2, num_classes=19) # test init_cfg of head head = SETRUPHead( - in_channels=32, - channels=16, + in_channels=4, + channels=2, norm_cfg=dict(type='SyncBN'), num_classes=19, init_cfg=dict(type='Kaiming')) @@ -28,11 +28,11 @@ def test_setr_up_head(capsys): # test inference of Naive head # the auxiliary head of Naive head is same as Naive head - img_size = (32, 32) - patch_size = 16 + img_size = (4, 4) + patch_size = 2 head = SETRUPHead( - in_channels=32, - channels=16, + in_channels=4, + channels=2, num_classes=19, num_convs=1, up_scale=4, @@ -42,14 +42,14 @@ def test_setr_up_head(capsys): h, w = img_size[0] // patch_size, img_size[1] // patch_size # Input square NCHW format feature information - x = [torch.randn(1, 32, h, w)] + x = [torch.randn(1, 4, h, w)] if torch.cuda.is_available(): head, x = to_cuda(head, x) out = head(x) assert out.shape == (1, head.num_classes, h * 4, w * 4) # Input non-square NCHW format feature information - x = [torch.randn(1, 32, h, w * 2)] + x = [torch.randn(1, 4, h, w * 2)] if torch.cuda.is_available(): head, x = to_cuda(head, x) out = head(x) diff --git a/tests/test_models/test_heads/test_uper_head.py b/tests/test_models/test_heads/test_uper_head.py index 961b01bb16..09456a80c4 100644 --- a/tests/test_models/test_heads/test_uper_head.py +++ b/tests/test_models/test_heads/test_uper_head.py @@ -10,25 +10,25 @@ def test_uper_head(): with pytest.raises(AssertionError): # fpn_in_channels must be list|tuple - UPerHead(in_channels=32, channels=16, num_classes=19) + UPerHead(in_channels=4, channels=2, num_classes=19) # test no norm_cfg head = UPerHead( - in_channels=[32, 16], channels=16, num_classes=19, in_index=[-2, -1]) + in_channels=[4, 2], channels=2, num_classes=19, in_index=[-2, -1]) assert not _conv_has_norm(head, sync_bn=False) # test with norm_cfg head = UPerHead( - in_channels=[32, 16], - channels=16, + in_channels=[4, 2], + channels=2, num_classes=19, norm_cfg=dict(type='SyncBN'), in_index=[-2, -1]) assert _conv_has_norm(head, sync_bn=True) - inputs = [torch.randn(1, 32, 45, 45), torch.randn(1, 16, 21, 21)] + inputs = [torch.randn(1, 4, 45, 45), torch.randn(1, 2, 21, 21)] head = UPerHead( - in_channels=[32, 16], channels=16, num_classes=19, in_index=[-2, -1]) + in_channels=[4, 2], channels=2, num_classes=19, in_index=[-2, -1]) if torch.cuda.is_available(): head, inputs = to_cuda(head, inputs) outputs = head(inputs) diff --git a/tests/test_models/test_necks/test_fpn.py b/tests/test_models/test_necks/test_fpn.py index f7b8e414b3..c64c23a4f2 100644 --- a/tests/test_models/test_necks/test_fpn.py +++ b/tests/test_models/test_necks/test_fpn.py @@ -5,15 +5,15 @@ def test_fpn(): - in_channels = [256, 512, 1024, 2048] + in_channels = [64, 128, 256, 512] inputs = [ torch.randn(1, c, 56 // 2**i, 56 // 2**i) for i, c in enumerate(in_channels) ] - fpn = FPN(in_channels, 256, len(in_channels)) + fpn = FPN(in_channels, 64, len(in_channels)) outputs = fpn(inputs) - assert outputs[0].shape == torch.Size([1, 256, 56, 56]) - assert outputs[1].shape == torch.Size([1, 256, 28, 28]) - assert outputs[2].shape == torch.Size([1, 256, 14, 14]) - assert outputs[3].shape == torch.Size([1, 256, 7, 7]) + assert outputs[0].shape == torch.Size([1, 64, 56, 56]) + assert outputs[1].shape == torch.Size([1, 64, 28, 28]) + assert outputs[2].shape == torch.Size([1, 64, 14, 14]) + assert outputs[3].shape == torch.Size([1, 64, 7, 7]) diff --git a/tests/test_models/test_necks/test_ic_neck.py b/tests/test_models/test_necks/test_ic_neck.py index 10b10609f9..3d13008b5f 100644 --- a/tests/test_models/test_necks/test_ic_neck.py +++ b/tests/test_models/test_necks/test_ic_neck.py @@ -10,44 +10,44 @@ def test_ic_neck(): # test with norm_cfg neck = ICNeck( - in_channels=(64, 256, 256), - out_channels=128, + in_channels=(4, 16, 16), + out_channels=8, norm_cfg=dict(type='SyncBN'), align_corners=False) assert _conv_has_norm(neck, sync_bn=True) inputs = [ - torch.randn(1, 64, 128, 256), - torch.randn(1, 256, 65, 129), - torch.randn(1, 256, 32, 64) + torch.randn(1, 4, 32, 64), + torch.randn(1, 16, 16, 32), + torch.randn(1, 16, 8, 16) ] neck = ICNeck( - in_channels=(64, 256, 256), - out_channels=128, + in_channels=(4, 16, 16), + out_channels=4, norm_cfg=dict(type='BN', requires_grad=True), align_corners=False) if torch.cuda.is_available(): neck, inputs = to_cuda(neck, inputs) outputs = neck(inputs) - assert outputs[0].shape == (1, 128, 65, 129) - assert outputs[1].shape == (1, 128, 128, 256) - assert outputs[1].shape == (1, 128, 128, 256) + assert outputs[0].shape == (1, 4, 16, 32) + assert outputs[1].shape == (1, 4, 32, 64) + assert outputs[1].shape == (1, 4, 32, 64) def test_ic_neck_cascade_feature_fusion(): - cff = CascadeFeatureFusion(256, 256, 128) - assert cff.conv_low.in_channels == 256 - assert cff.conv_low.out_channels == 128 - assert cff.conv_high.in_channels == 256 - assert cff.conv_high.out_channels == 128 + cff = CascadeFeatureFusion(64, 64, 32) + assert cff.conv_low.in_channels == 64 + assert cff.conv_low.out_channels == 32 + assert cff.conv_high.in_channels == 64 + assert cff.conv_high.out_channels == 32 def test_ic_neck_input_channels(): with pytest.raises(AssertionError): # ICNet Neck input channel constraints. ICNeck( - in_channels=(64, 256, 256, 256), - out_channels=128, + in_channels=(16, 64, 64, 64), + out_channels=32, norm_cfg=dict(type='BN', requires_grad=True), align_corners=False) diff --git a/tests/test_models/test_necks/test_jpu.py b/tests/test_models/test_necks/test_jpu.py index 88637044c6..4c3fa9f6bb 100644 --- a/tests/test_models/test_necks/test_jpu.py +++ b/tests/test_models/test_necks/test_jpu.py @@ -7,34 +7,40 @@ def test_fastfcn_neck(): # Test FastFCN Standard Forward - model = JPU() + model = JPU( + in_channels=(64, 128, 256), + mid_channels=64, + start_level=0, + end_level=-1, + dilations=(1, 2, 4, 8), + ) model.init_weights() model.train() batch_size = 1 input = [ - torch.randn(batch_size, 512, 64, 128), - torch.randn(batch_size, 1024, 32, 64), - torch.randn(batch_size, 2048, 16, 32) + torch.randn(batch_size, 64, 64, 128), + torch.randn(batch_size, 128, 32, 64), + torch.randn(batch_size, 256, 16, 32) ] feat = model(input) assert len(feat) == 3 - assert feat[0].shape == torch.Size([batch_size, 512, 64, 128]) - assert feat[1].shape == torch.Size([batch_size, 1024, 32, 64]) - assert feat[2].shape == torch.Size([batch_size, 2048, 64, 128]) + assert feat[0].shape == torch.Size([batch_size, 64, 64, 128]) + assert feat[1].shape == torch.Size([batch_size, 128, 32, 64]) + assert feat[2].shape == torch.Size([batch_size, 256, 64, 128]) with pytest.raises(AssertionError): # FastFCN input and in_channels constraints. - JPU(in_channels=(256, 512, 1024), start_level=0, end_level=5) + JPU(in_channels=(256, 64, 128), start_level=0, end_level=5) # Test not default start_level - model = JPU(in_channels=(512, 1024, 2048), start_level=1, end_level=-1) + model = JPU(in_channels=(64, 128, 256), start_level=1, end_level=-1) input = [ - torch.randn(batch_size, 512, 64, 128), - torch.randn(batch_size, 1024, 32, 64), - torch.randn(batch_size, 2048, 16, 32) + torch.randn(batch_size, 64, 64, 128), + torch.randn(batch_size, 128, 32, 64), + torch.randn(batch_size, 256, 16, 32) ] feat = model(input) assert len(feat) == 2 - assert feat[0].shape == torch.Size([batch_size, 1024, 32, 64]) + assert feat[0].shape == torch.Size([batch_size, 128, 32, 64]) assert feat[1].shape == torch.Size([batch_size, 2048, 32, 64]) diff --git a/tests/test_models/test_necks/test_mla_neck.py b/tests/test_models/test_necks/test_mla_neck.py index a20c132d05..e385418949 100644 --- a/tests/test_models/test_necks/test_mla_neck.py +++ b/tests/test_models/test_necks/test_mla_neck.py @@ -5,12 +5,12 @@ def test_mla(): - in_channels = [1024, 1024, 1024, 1024] - mla = MLANeck(in_channels, 256) + in_channels = [4, 4, 4, 4] + mla = MLANeck(in_channels, 32) - inputs = [torch.randn(1, c, 24, 24) for i, c in enumerate(in_channels)] + inputs = [torch.randn(1, c, 12, 12) for i, c in enumerate(in_channels)] outputs = mla(inputs) - assert outputs[0].shape == torch.Size([1, 256, 24, 24]) - assert outputs[1].shape == torch.Size([1, 256, 24, 24]) - assert outputs[2].shape == torch.Size([1, 256, 24, 24]) - assert outputs[3].shape == torch.Size([1, 256, 24, 24]) + assert outputs[0].shape == torch.Size([1, 32, 12, 12]) + assert outputs[1].shape == torch.Size([1, 32, 12, 12]) + assert outputs[2].shape == torch.Size([1, 32, 12, 12]) + assert outputs[3].shape == torch.Size([1, 32, 12, 12]) diff --git a/tests/test_models/test_necks/test_multilevel_neck.py b/tests/test_models/test_necks/test_multilevel_neck.py index 641a212c22..9c71d51563 100644 --- a/tests/test_models/test_necks/test_multilevel_neck.py +++ b/tests/test_models/test_necks/test_multilevel_neck.py @@ -7,26 +7,26 @@ def test_multilevel_neck(): # Test init_weights - MultiLevelNeck([266], 256).init_weights() + MultiLevelNeck([266], 32).init_weights() # Test multi feature maps - in_channels = [256, 512, 1024, 2048] + in_channels = [32, 64, 128, 256] inputs = [torch.randn(1, c, 14, 14) for i, c in enumerate(in_channels)] - neck = MultiLevelNeck(in_channels, 256) + neck = MultiLevelNeck(in_channels, 32) outputs = neck(inputs) - assert outputs[0].shape == torch.Size([1, 256, 7, 7]) - assert outputs[1].shape == torch.Size([1, 256, 14, 14]) - assert outputs[2].shape == torch.Size([1, 256, 28, 28]) - assert outputs[3].shape == torch.Size([1, 256, 56, 56]) + assert outputs[0].shape == torch.Size([1, 32, 7, 7]) + assert outputs[1].shape == torch.Size([1, 32, 14, 14]) + assert outputs[2].shape == torch.Size([1, 32, 28, 28]) + assert outputs[3].shape == torch.Size([1, 32, 56, 56]) # Test one feature map in_channels = [768] inputs = [torch.randn(1, 768, 14, 14)] - neck = MultiLevelNeck(in_channels, 256) + neck = MultiLevelNeck(in_channels, 32) outputs = neck(inputs) - assert outputs[0].shape == torch.Size([1, 256, 7, 7]) - assert outputs[1].shape == torch.Size([1, 256, 14, 14]) - assert outputs[2].shape == torch.Size([1, 256, 28, 28]) - assert outputs[3].shape == torch.Size([1, 256, 56, 56]) + assert outputs[0].shape == torch.Size([1, 32, 7, 7]) + assert outputs[1].shape == torch.Size([1, 32, 14, 14]) + assert outputs[2].shape == torch.Size([1, 32, 28, 28]) + assert outputs[3].shape == torch.Size([1, 32, 56, 56]) From 0a06853bb6c4a8767798b97a0e1c3a5477de5782 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Tue, 2 Nov 2021 12:51:11 +0800 Subject: [PATCH 271/706] [Feature] Support TIMMBackbone (#998) * add TIMMBackbone and unittests * add timm to tests requirements * deprecate pt1.3.1 * reduce the unittests input of timm backbone * fix ci * fix ci * fix ci * fix ci * fix ci * fix ci * fix ci * fix ci * fix ci * remove unittests of large models of timm backbone * generate coverage report for all unittests env * reduce the unittests input of timm backbone * reduce the unittests input of timm backbone --- .github/workflows/build.yml | 17 +++ mmseg/models/backbones/__init__.py | 3 +- mmseg/models/backbones/timm_backbone.py | 63 +++++++++ .../test_backbones/test_timm_backbone.py | 133 ++++++++++++++++++ 4 files changed, 215 insertions(+), 1 deletion(-) create mode 100644 mmseg/models/backbones/timm_backbone.py create mode 100644 tests/test_models/test_backbones/test_timm_backbone.py diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index dbb08b48ed..f41e4176cf 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -71,9 +71,17 @@ jobs: run: rm -rf .eggs && pip install -e . - name: Run unittests and generate coverage report run: | + pip install timm coverage run --branch --source mmseg -m pytest tests/ coverage xml coverage report -m + if: ${{matrix.torch >= '1.5.0'}} + - name: Skip timm unittests and generate coverage report + run: | + coverage run --branch --source mmseg -m pytest tests/ --ignore tests/test_models/test_backbones/test_timm_backbone.py + coverage xml + coverage report -m + if: ${{matrix.torch < '1.5.0'}} build_cuda101: runs-on: ubuntu-18.04 @@ -142,9 +150,17 @@ jobs: TORCH_CUDA_ARCH_LIST=7.0 pip install . - name: Run unittests and generate coverage report run: | + python -m pip install timm coverage run --branch --source mmseg -m pytest tests/ coverage xml coverage report -m + if: ${{matrix.torch >= '1.5.0'}} + - name: Skip timm unittests and generate coverage report + run: | + coverage run --branch --source mmseg -m pytest tests/ --ignore tests/test_models/test_backbones/test_timm_backbone.py + coverage xml + coverage report -m + if: ${{matrix.torch < '1.5.0'}} - name: Upload coverage to Codecov uses: codecov/codecov-action@v1.0.10 with: @@ -198,6 +214,7 @@ jobs: TORCH_CUDA_ARCH_LIST=7.0 pip install . - name: Run unittests and generate coverage report run: | + python -m pip install timm coverage run --branch --source mmseg -m pytest tests/ coverage xml coverage report -m diff --git a/mmseg/models/backbones/__init__.py b/mmseg/models/backbones/__init__.py index 6d320323b8..408d3981dd 100644 --- a/mmseg/models/backbones/__init__.py +++ b/mmseg/models/backbones/__init__.py @@ -12,6 +12,7 @@ from .resnet import ResNet, ResNetV1c, ResNetV1d from .resnext import ResNeXt from .swin import SwinTransformer +from .timm_backbone import TIMMBackbone from .unet import UNet from .vit import VisionTransformer @@ -19,5 +20,5 @@ 'ResNet', 'ResNetV1c', 'ResNetV1d', 'ResNeXt', 'HRNet', 'FastSCNN', 'ResNeSt', 'MobileNetV2', 'UNet', 'CGNet', 'MobileNetV3', 'VisionTransformer', 'SwinTransformer', 'MixVisionTransformer', - 'BiSeNetV1', 'BiSeNetV2', 'ICNet' + 'BiSeNetV1', 'BiSeNetV2', 'ICNet', 'TIMMBackbone' ] diff --git a/mmseg/models/backbones/timm_backbone.py b/mmseg/models/backbones/timm_backbone.py new file mode 100644 index 0000000000..01b29fc5ed --- /dev/null +++ b/mmseg/models/backbones/timm_backbone.py @@ -0,0 +1,63 @@ +# Copyright (c) OpenMMLab. All rights reserved. +try: + import timm +except ImportError: + timm = None + +from mmcv.cnn.bricks.registry import NORM_LAYERS +from mmcv.runner import BaseModule + +from ..builder import BACKBONES + + +@BACKBONES.register_module() +class TIMMBackbone(BaseModule): + """Wrapper to use backbones from timm library. More details can be found in + `timm `_ . + + Args: + model_name (str): Name of timm model to instantiate. + pretrained (bool): Load pretrained weights if True. + checkpoint_path (str): Path of checkpoint to load after + model is initialized. + in_channels (int): Number of input image channels. Default: 3. + init_cfg (dict, optional): Initialization config dict + **kwargs: Other timm & model specific arguments. + """ + + def __init__( + self, + model_name, + features_only=True, + pretrained=True, + checkpoint_path='', + in_channels=3, + init_cfg=None, + **kwargs, + ): + if timm is None: + raise RuntimeError('timm is not installed') + super(TIMMBackbone, self).__init__(init_cfg) + if 'norm_layer' in kwargs: + kwargs['norm_layer'] = NORM_LAYERS.get(kwargs['norm_layer']) + self.timm_model = timm.create_model( + model_name=model_name, + features_only=features_only, + pretrained=pretrained, + in_chans=in_channels, + checkpoint_path=checkpoint_path, + **kwargs, + ) + + # Make unused parameters None + self.timm_model.global_pool = None + self.timm_model.fc = None + self.timm_model.classifier = None + + # Hack to use pretrained weights from timm + if pretrained or checkpoint_path: + self._is_init = True + + def forward(self, x): + features = self.timm_model(x) + return features diff --git a/tests/test_models/test_backbones/test_timm_backbone.py b/tests/test_models/test_backbones/test_timm_backbone.py new file mode 100644 index 0000000000..85ef9aa56f --- /dev/null +++ b/tests/test_models/test_backbones/test_timm_backbone.py @@ -0,0 +1,133 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import pytest +import torch + +from mmseg.models.backbones import TIMMBackbone +from .utils import check_norm_state + + +def test_timm_backbone(): + with pytest.raises(TypeError): + # pretrained must be a string path + model = TIMMBackbone() + model.init_weights(pretrained=0) + + # Test different norm_layer, can be: 'SyncBN', 'BN2d', 'GN', 'LN', 'IN' + # Test resnet18 from timm, norm_layer='BN2d' + model = TIMMBackbone( + model_name='resnet18', + features_only=True, + pretrained=False, + output_stride=32, + norm_layer='BN2d') + + # Test resnet18 from timm, norm_layer='SyncBN' + model = TIMMBackbone( + model_name='resnet18', + features_only=True, + pretrained=False, + output_stride=32, + norm_layer='SyncBN') + + # Test resnet18 from timm, features_only=True, output_stride=32 + model = TIMMBackbone( + model_name='resnet18', + features_only=True, + pretrained=False, + output_stride=32) + model.init_weights() + model.train() + assert check_norm_state(model.modules(), True) + + imgs = torch.randn(1, 3, 224, 224) + feats = model(imgs) + feats = [feat.shape for feat in feats] + assert len(feats) == 5 + assert feats[0] == torch.Size((1, 64, 112, 112)) + assert feats[1] == torch.Size((1, 64, 56, 56)) + assert feats[2] == torch.Size((1, 128, 28, 28)) + assert feats[3] == torch.Size((1, 256, 14, 14)) + assert feats[4] == torch.Size((1, 512, 7, 7)) + + # Test resnet18 from timm, features_only=True, output_stride=16 + model = TIMMBackbone( + model_name='resnet18', + features_only=True, + pretrained=False, + output_stride=16) + imgs = torch.randn(1, 3, 224, 224) + feats = model(imgs) + feats = [feat.shape for feat in feats] + assert len(feats) == 5 + assert feats[0] == torch.Size((1, 64, 112, 112)) + assert feats[1] == torch.Size((1, 64, 56, 56)) + assert feats[2] == torch.Size((1, 128, 28, 28)) + assert feats[3] == torch.Size((1, 256, 14, 14)) + assert feats[4] == torch.Size((1, 512, 14, 14)) + + # Test resnet18 from timm, features_only=True, output_stride=8 + model = TIMMBackbone( + model_name='resnet18', + features_only=True, + pretrained=False, + output_stride=8) + imgs = torch.randn(1, 3, 224, 224) + feats = model(imgs) + feats = [feat.shape for feat in feats] + assert len(feats) == 5 + assert feats[0] == torch.Size((1, 64, 112, 112)) + assert feats[1] == torch.Size((1, 64, 56, 56)) + assert feats[2] == torch.Size((1, 128, 28, 28)) + assert feats[3] == torch.Size((1, 256, 28, 28)) + assert feats[4] == torch.Size((1, 512, 28, 28)) + + # Test efficientnet_b1 with pretrained weights + model = TIMMBackbone(model_name='efficientnet_b1', pretrained=True) + + # Test resnetv2_50x1_bitm from timm, features_only=True, output_stride=8 + model = TIMMBackbone( + model_name='resnetv2_50x1_bitm', + features_only=True, + pretrained=False, + output_stride=8) + imgs = torch.randn(1, 3, 8, 8) + feats = model(imgs) + feats = [feat.shape for feat in feats] + assert len(feats) == 5 + assert feats[0] == torch.Size((1, 64, 4, 4)) + assert feats[1] == torch.Size((1, 256, 2, 2)) + assert feats[2] == torch.Size((1, 512, 1, 1)) + assert feats[3] == torch.Size((1, 1024, 1, 1)) + assert feats[4] == torch.Size((1, 2048, 1, 1)) + + # Test resnetv2_50x3_bitm from timm, features_only=True, output_stride=8 + model = TIMMBackbone( + model_name='resnetv2_50x3_bitm', + features_only=True, + pretrained=False, + output_stride=8) + imgs = torch.randn(1, 3, 8, 8) + feats = model(imgs) + feats = [feat.shape for feat in feats] + assert len(feats) == 5 + assert feats[0] == torch.Size((1, 192, 4, 4)) + assert feats[1] == torch.Size((1, 768, 2, 2)) + assert feats[2] == torch.Size((1, 1536, 1, 1)) + assert feats[3] == torch.Size((1, 3072, 1, 1)) + assert feats[4] == torch.Size((1, 6144, 1, 1)) + + # Test resnetv2_101x1_bitm from timm, features_only=True, output_stride=8 + model = TIMMBackbone( + model_name='resnetv2_101x1_bitm', + features_only=True, + pretrained=False, + output_stride=8) + imgs = torch.randn(1, 3, 8, 8) + feats = model(imgs) + feats = [feat.shape for feat in feats] + assert len(feats) == 5 + assert feats[0] == torch.Size((1, 64, 4, 4)) + assert feats[1] == torch.Size((1, 256, 2, 2)) + assert feats[2] == torch.Size((1, 512, 1, 1)) + assert feats[3] == torch.Size((1, 1024, 1, 1)) + assert feats[4] == torch.Size((1, 2048, 1, 1)) From 28627a1288d3100d50fe015d9ddb318af7d96e5b Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Wed, 3 Nov 2021 05:27:20 +0800 Subject: [PATCH 272/706] Bump v0.19.0 (#1009) * change version to v0.19.0 * update changelog --- README.md | 2 +- README_zh-CN.md | 2 +- docs/changelog.md | 40 +++++++++++++++++++++++++++++++++++++++ docs/get_started.md | 1 + docs_zh-CN/get_started.md | 1 + mmseg/version.py | 2 +- 6 files changed, 45 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d42729341d..c8d9027f93 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ This project is released under the [Apache 2.0 license](LICENSE). ## Changelog -v0.18.0 was released in 10/07/2021. +v0.19.0 was released in 11/02/2021. Please refer to [changelog.md](docs/changelog.md) for details and release history. ## Benchmark and model zoo diff --git a/README_zh-CN.md b/README_zh-CN.md index fef4f43e36..563233f3dd 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -48,7 +48,7 @@ MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 O ## 更新日志 -最新的月度版本 v0.18.0 在 2021.10.07 发布。 +最新的月度版本 v0.19.0 在 2021.11.2 发布。 如果想了解更多版本更新细节和历史信息,请阅读[更新日志](docs/changelog.md)。 ## 基准测试和模型库 diff --git a/docs/changelog.md b/docs/changelog.md index 23124147a9..ca2c5078b5 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,5 +1,45 @@ ## Changelog +### V0.19 (11/02/2021) + +**Highlights** + +- Support TIMMBackbone wrapper ([#998](https://github.com/open-mmlab/mmsegmentation/pull/998)) +- Support custom hook ([#428](https://github.com/open-mmlab/mmsegmentation/pull/428)) +- Add codespell pre-commit hook ([#920](https://github.com/open-mmlab/mmsegmentation/pull/920)) +- Add FastFCN benchmark on ADE20K ([#972](https://github.com/open-mmlab/mmsegmentation/pull/972)) + +**New Features** + +- Support TIMMBackbone wrapper ([#998](https://github.com/open-mmlab/mmsegmentation/pull/998)) +- Support custom hook ([#428](https://github.com/open-mmlab/mmsegmentation/pull/428)) +- Add FastFCN benchmark on ADE20K ([#972](https://github.com/open-mmlab/mmsegmentation/pull/972)) +- Add codespell pre-commit hook and fix typos ([#920](https://github.com/open-mmlab/mmsegmentation/pull/920)) + +**Improvements** + +- Make inputs & channels smaller in unittests ([#1004](https://github.com/open-mmlab/mmsegmentation/pull/1004)) +- Change `self.loss_decode` back to `dict` in Single Loss situation ([#1002](https://github.com/open-mmlab/mmsegmentation/pull/1002)) + +**Bug Fixes** + +- Fix typo in usage example ([#1003](https://github.com/open-mmlab/mmsegmentation/pull/1003)) +- Add contiguous after permutation in ViT ([#992](https://github.com/open-mmlab/mmsegmentation/pull/992)) +- Fix the invalid link ([#985](https://github.com/open-mmlab/mmsegmentation/pull/985)) +- Fix bug in CI with python 3.9 ([#994](https://github.com/open-mmlab/mmsegmentation/pull/994)) +- Fix bug when loading class name form file in custom dataset ([#923](https://github.com/open-mmlab/mmsegmentation/pull/923)) + +**Contributors** + +- @ShoupingShan made their first contribution in https://github.com/open-mmlab/mmsegmentation/pull/923 +- @RockeyCoss made their first contribution in https://github.com/open-mmlab/mmsegmentation/pull/954 +- @HarborYuan made their first contribution in https://github.com/open-mmlab/mmsegmentation/pull/992 +- @lkm2835 made their first contribution in https://github.com/open-mmlab/mmsegmentation/pull/1003 +- @gszh made their first contribution in https://github.com/open-mmlab/mmsegmentation/pull/428 +- @VVsssssk +- @MengzhangLI +- @Junjun2016 + ### V0.18 (10/07/2021) **Highlights** diff --git a/docs/get_started.md b/docs/get_started.md index 78cafbf9d0..0aceb37587 100644 --- a/docs/get_started.md +++ b/docs/get_started.md @@ -12,6 +12,7 @@ The compatible MMSegmentation and MMCV versions are as below. Please install the | MMSegmentation version | MMCV version | |:-------------------:|:-------------------:| | master | mmcv-full>=1.3.13, <1.4.0 | +| 0.19.0 | mmcv-full>=1.3.13, <1.4.0 | | 0.18.0 | mmcv-full>=1.3.13, <1.4.0 | | 0.17.0 | mmcv-full>=1.3.7, <1.4.0 | | 0.16.0 | mmcv-full>=1.3.7, <1.4.0 | diff --git a/docs_zh-CN/get_started.md b/docs_zh-CN/get_started.md index 2008c370be..ceda738e4a 100644 --- a/docs_zh-CN/get_started.md +++ b/docs_zh-CN/get_started.md @@ -12,6 +12,7 @@ | MMSegmentation 版本 | MMCV 版本 | |:-------------------:|:-------------------:| | master | mmcv-full>=1.3.13, <1.4.0 | +| 0.19.0 | mmcv-full>=1.3.13, <1.4.0 | | 0.18.0 | mmcv-full>=1.3.13, <1.4.0 | | 0.17.0 | mmcv-full>=1.3.7, <1.4.0 | | 0.16.0 | mmcv-full>=1.3.7, <1.4.0 | diff --git a/mmseg/version.py b/mmseg/version.py index bd2fd41acf..ad1d1efcfb 100644 --- a/mmseg/version.py +++ b/mmseg/version.py @@ -1,6 +1,6 @@ # Copyright (c) Open-MMLab. All rights reserved. -__version__ = '0.18.0' +__version__ = '0.19.0' def parse_version_info(version_str): From f013682ea05b771c55300431d602c6d4f1e0961d Mon Sep 17 00:00:00 2001 From: MengzhangLI Date: Wed, 3 Nov 2021 23:27:48 +0800 Subject: [PATCH 273/706] delete benchmark_new.py (#1012) --- tools/benchmark_new.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 tools/benchmark_new.py diff --git a/tools/benchmark_new.py b/tools/benchmark_new.py deleted file mode 100644 index e69de29bb2..0000000000 From bc27f2410900006b269d5305346646eed19d5069 Mon Sep 17 00:00:00 2001 From: Rockey <41846794+RockeyCoss@users.noreply.github.com> Date: Thu, 4 Nov 2021 01:36:09 +0800 Subject: [PATCH 274/706] =?UTF-8?q?[Fix]=20Fix=20the=20bug=20that=20vit=20?= =?UTF-8?q?cannot=20load=20pretrain=20properly=20when=20using=20i=E2=80=A6?= =?UTF-8?q?=20(#999)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [Fix] Fix the bug that vit cannot load pretrain properly when using init_cfg to specify the pretrain scheme * [Fix] fix the coverage problem * Update mmseg/models/backbones/vit.py Co-authored-by: Junjun2016 * [Fix] make the predicate more concise and clearer * [Fix] Modified the judgement logic * Update tests/test_models/test_backbones/test_vit.py Co-authored-by: Junjun2016 * add comments Co-authored-by: Junjun2016 --- mmseg/models/backbones/vit.py | 22 ++++---- tests/test_models/test_backbones/test_vit.py | 56 ++++++++++++++++++++ 2 files changed, 69 insertions(+), 9 deletions(-) diff --git a/mmseg/models/backbones/vit.py b/mmseg/models/backbones/vit.py index 5cd3ff24e7..f5afbb7f70 100644 --- a/mmseg/models/backbones/vit.py +++ b/mmseg/models/backbones/vit.py @@ -170,7 +170,7 @@ def __init__(self, with_cp=False, pretrained=None, init_cfg=None): - super(VisionTransformer, self).__init__() + super(VisionTransformer, self).__init__(init_cfg=init_cfg) if isinstance(img_size, int): img_size = to_2tuple(img_size) @@ -185,10 +185,13 @@ def __init__(self, assert with_cls_token is True, f'with_cls_token must be True if' \ f'set output_cls_token to True, but got {with_cls_token}' - if isinstance(pretrained, str) or pretrained is None: - warnings.warn('DeprecationWarning: pretrained is a deprecated, ' + assert not (init_cfg and pretrained), \ + 'init_cfg and pretrained cannot be set at the same time' + if isinstance(pretrained, str): + warnings.warn('DeprecationWarning: pretrained is deprecated, ' 'please use "init_cfg" instead') - else: + self.init_cfg = dict(type='Pretrained', checkpoint=pretrained) + elif pretrained is not None: raise TypeError('pretrained must be a str or None') self.img_size = img_size @@ -197,7 +200,6 @@ def __init__(self, self.norm_eval = norm_eval self.with_cp = with_cp self.pretrained = pretrained - self.init_cfg = init_cfg self.patch_embed = PatchEmbed( in_channels=in_channels, @@ -260,10 +262,12 @@ def norm1(self): return getattr(self, self.norm1_name) def init_weights(self): - if isinstance(self.pretrained, str): + if (isinstance(self.init_cfg, dict) + and self.init_cfg.get('type') == 'Pretrained'): logger = get_root_logger() checkpoint = _load_checkpoint( - self.pretrained, logger=logger, map_location='cpu') + self.init_cfg['checkpoint'], logger=logger, map_location='cpu') + if 'state_dict' in checkpoint: state_dict = checkpoint['state_dict'] else: @@ -283,9 +287,9 @@ def init_weights(self): (pos_size, pos_size), self.interpolate_mode) self.load_state_dict(state_dict, False) - - elif self.pretrained is None: + elif self.init_cfg is not None: super(VisionTransformer, self).init_weights() + else: # We only implement the 'jax_impl' initialization implemented at # https://github.com/rwightman/pytorch-image-models/blob/master/timm/models/vision_transformer.py#L353 # noqa: E501 trunc_normal_init(self.pos_embed, std=.02) diff --git a/tests/test_models/test_backbones/test_vit.py b/tests/test_models/test_backbones/test_vit.py index 5dbb51e64a..4ce860c041 100644 --- a/tests/test_models/test_backbones/test_vit.py +++ b/tests/test_models/test_backbones/test_vit.py @@ -118,3 +118,59 @@ def test_vit_backbone(): feat = model(imgs) assert feat[0][0].shape == (1, 768, 14, 14) assert feat[0][1].shape == (1, 768) + + +def test_vit_init(): + path = 'PATH_THAT_DO_NOT_EXIST' + # Test all combinations of pretrained and init_cfg + # pretrained=None, init_cfg=None + model = VisionTransformer(pretrained=None, init_cfg=None) + assert model.init_cfg is None + model.init_weights() + + # pretrained=None + # init_cfg loads pretrain from an non-existent file + model = VisionTransformer( + pretrained=None, init_cfg=dict(type='Pretrained', checkpoint=path)) + assert model.init_cfg == dict(type='Pretrained', checkpoint=path) + # Test loading a checkpoint from an non-existent file + with pytest.raises(OSError): + model.init_weights() + + # pretrained=None + # init_cfg=123, whose type is unsupported + model = VisionTransformer(pretrained=None, init_cfg=123) + with pytest.raises(TypeError): + model.init_weights() + + # pretrained loads pretrain from an non-existent file + # init_cfg=None + model = VisionTransformer(pretrained=path, init_cfg=None) + assert model.init_cfg == dict(type='Pretrained', checkpoint=path) + # Test loading a checkpoint from an non-existent file + with pytest.raises(OSError): + model.init_weights() + + # pretrained loads pretrain from an non-existent file + # init_cfg loads pretrain from an non-existent file + with pytest.raises(AssertionError): + model = VisionTransformer( + pretrained=path, init_cfg=dict(type='Pretrained', checkpoint=path)) + with pytest.raises(AssertionError): + model = VisionTransformer(pretrained=path, init_cfg=123) + + # pretrain=123, whose type is unsupported + # init_cfg=None + with pytest.raises(TypeError): + model = VisionTransformer(pretrained=123, init_cfg=None) + + # pretrain=123, whose type is unsupported + # init_cfg loads pretrain from an non-existent file + with pytest.raises(AssertionError): + model = VisionTransformer( + pretrained=123, init_cfg=dict(type='Pretrained', checkpoint=path)) + + # pretrain=123, whose type is unsupported + # init_cfg=123, whose type is unsupported + with pytest.raises(AssertionError): + model = VisionTransformer(pretrained=123, init_cfg=123) From d4ec8ef96350e0e12ace7a6e88d03b3543ef2ac4 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Mon, 15 Nov 2021 04:33:28 +0800 Subject: [PATCH 275/706] fix EfficientMultiheadAttention in SegFormer (#1037) --- mmseg/models/backbones/mit.py | 41 +++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/mmseg/models/backbones/mit.py b/mmseg/models/backbones/mit.py index c58e5637eb..dd68decabe 100644 --- a/mmseg/models/backbones/mit.py +++ b/mmseg/models/backbones/mit.py @@ -146,8 +146,49 @@ def __init__(self, # The ret[0] of build_norm_layer is norm name. self.norm = build_norm_layer(norm_cfg, embed_dims)[1] + # handle the BC-breaking from https://github.com/open-mmlab/mmcv/pull/1418 # noqa + from mmseg import digit_version, mmcv_version + if mmcv_version < digit_version('1.3.17'): + warnings.warn('The legacy version of forward function in' + 'EfficientMultiheadAttention is deprecated in' + 'mmcv>=1.3.17 and will no longer support in the' + 'future. Please upgrade your mmcv.') + self.forward = self.legacy_forward + def forward(self, x, hw_shape, identity=None): + x_q = x + if self.sr_ratio > 1: + x_kv = nlc_to_nchw(x, hw_shape) + x_kv = self.sr(x_kv) + x_kv = nchw_to_nlc(x_kv) + x_kv = self.norm(x_kv) + else: + x_kv = x + + if identity is None: + identity = x_q + + # Because the dataflow('key', 'query', 'value') of + # ``torch.nn.MultiheadAttention`` is (num_query, batch, + # embed_dims), We should adjust the shape of dataflow from + # batch_first (batch, num_query, embed_dims) to num_query_first + # (num_query ,batch, embed_dims), and recover ``attn_output`` + # from num_query_first to batch_first. + if self.batch_first: + x_q = x_q.transpose(0, 1) + x_kv = x_kv.transpose(0, 1) + + out = self.attn(query=x_q, key=x_kv, value=x_kv)[0] + + if self.batch_first: + out = out.transpose(0, 1) + + return identity + self.dropout_layer(self.proj_drop(out)) + + def legacy_forward(self, x, hw_shape, identity=None): + """multi head attention forward in mmcv version < 1.3.17.""" + x_q = x if self.sr_ratio > 1: x_kv = nlc_to_nchw(x, hw_shape) From 008856a84c7f952ccb94fa85da2f27a999a20d8d Mon Sep 17 00:00:00 2001 From: MengzhangLI Date: Mon, 15 Nov 2021 19:14:57 +0800 Subject: [PATCH 276/706] [Fix] Remove `fp16` folder in `configs`. (#1031) * remove fp16 folder * remove fp16 in docs * fix some typos * fix some typos * fix fp16 in yml --- .dev/batch_test_list.py | 4 +- .dev/batch_train_list.txt | 2 +- .dev/benchmark_evaluation.sh | 4 +- .dev/benchmark_train.sh | 4 +- .dev/md2yml.py | 2 +- README.md | 1 - README_zh-CN.md | 1 - configs/bisenetv2/bisenetv2.yml | 2 +- configs/deeplabv3/README.md | 5 + configs/deeplabv3/deeplabv3.yml | 21 ++++ ...3_r101-d8_fp16_512x1024_80k_cityscapes.py} | 2 +- configs/deeplabv3plus/README.md | 5 + configs/deeplabv3plus/deeplabv3plus.yml | 21 ++++ ...s_r101-d8_fp16_512x1024_80k_cityscapes.py} | 2 +- configs/fcn/README.md | 5 + configs/fcn/fcn.yml | 21 ++++ ...n_r101-d8_fp16_512x1024_80k_cityscapes.py} | 2 +- configs/fp16/README.md | 34 ------- configs/fp16/fp16.yml | 99 ------------------- configs/pspnet/README.md | 5 + configs/pspnet/pspnet.yml | 21 ++++ ...t_r101-d8_fp16_512x1024_80k_cityscapes.py} | 2 +- docs/model_zoo.md | 2 +- docs_zh-CN/model_zoo.md | 2 +- model-index.yml | 1 - 25 files changed, 119 insertions(+), 151 deletions(-) rename configs/{fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py => deeplabv3/deeplabv3_r101-d8_fp16_512x1024_80k_cityscapes.py} (64%) rename configs/{fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py => deeplabv3plus/deeplabv3plus_r101-d8_fp16_512x1024_80k_cityscapes.py} (62%) rename configs/{fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py => fcn/fcn_r101-d8_fp16_512x1024_80k_cityscapes.py} (67%) delete mode 100644 configs/fp16/README.md delete mode 100644 configs/fp16/fp16.yml rename configs/{fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py => pspnet/pspnet_r101-d8_fp16_512x1024_80k_cityscapes.py} (60%) diff --git a/.dev/batch_test_list.py b/.dev/batch_test_list.py index 690615058c..c4fd8f97e4 100644 --- a/.dev/batch_test_list.py +++ b/.dev/batch_test_list.py @@ -116,8 +116,8 @@ ] fp16 = [ dict( - config='configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py', # noqa - checkpoint='deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes-cc58bc8d.pth', # noqa + config='configs/deeplabv3plus/deeplabv3plus_r101-d8_fp16_512x1024_80k_cityscapes.py', # noqa + checkpoint='deeplabv3plus_r101-d8_fp16_512x1024_80k_cityscapes_20200717_230920-f1104f4b.pth', # noqa eval='mIoU', metric=dict(mIoU=80.46), ) diff --git a/.dev/batch_train_list.txt b/.dev/batch_train_list.txt index 3f406a5f44..17d19932e6 100644 --- a/.dev/batch_train_list.txt +++ b/.dev/batch_train_list.txt @@ -15,5 +15,5 @@ configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py -configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py +configs/deeplabv3plus/deeplabv3plus_r101-d8_fp16_512x1024_80k_cityscapes.py configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py diff --git a/.dev/benchmark_evaluation.sh b/.dev/benchmark_evaluation.sh index b4901fe99e..687e6cc3e7 100755 --- a/.dev/benchmark_evaluation.sh +++ b/.dev/benchmark_evaluation.sh @@ -35,7 +35,7 @@ echo 'configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py' & GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 tools/slurm_test.sh $PARTITION upernet_vit-b16_ln_mln_512x512_160k_ade20k configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py $CHECKPOINT_DIR/upernet_vit-b16_ln_mln_512x512_160k_ade20k-f444c077.pth --eval mIoU --work-dir work_dirs/benchmark_evaluation/upernet_vit-b16_ln_mln_512x512_160k_ade20k --options dist_params.port=28186 & echo 'configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py' & GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 tools/slurm_test.sh $PARTITION upernet_deit-s16_ln_mln_512x512_160k_ade20k configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py $CHECKPOINT_DIR/upernet_deit-s16_ln_mln_512x512_160k_ade20k-c0cd652f.pth --eval mIoU --work-dir work_dirs/benchmark_evaluation/upernet_deit-s16_ln_mln_512x512_160k_ade20k --options dist_params.port=28187 & -echo 'configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py' & -GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 tools/slurm_test.sh $PARTITION deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py $CHECKPOINT_DIR/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes-cc58bc8d.pth --eval mIoU --work-dir work_dirs/benchmark_evaluation/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes --options dist_params.port=28188 & +echo 'configs/deeplabv3plus/deeplabv3plus_r101-d8_fp16_512x1024_80k_cityscapes.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 tools/slurm_test.sh $PARTITION deeplabv3plus_r101-d8_fp16_512x1024_80k_cityscapes configs/deeplabv3plus/deeplabv3plus_r101-d8_fp16_512x1024_80k_cityscapes.py $CHECKPOINT_DIR/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes-cc58bc8d.pth --eval mIoU --work-dir work_dirs/benchmark_evaluation/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes --options dist_params.port=28188 & echo 'configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py' & GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 tools/slurm_test.sh $PARTITION upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py $CHECKPOINT_DIR/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K_20210531_112542-e380ad3e.pth --eval mIoU --work-dir work_dirs/benchmark_evaluation/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K --options dist_params.port=28189 & diff --git a/.dev/benchmark_train.sh b/.dev/benchmark_train.sh index d3db897761..048bb526ba 100755 --- a/.dev/benchmark_train.sh +++ b/.dev/benchmark_train.sh @@ -34,7 +34,7 @@ echo 'configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py' & GPUS=8 GPUS_PER_NODE=8 CPUS_PER_TASK=2 ./tools/slurm_train.sh $PARTITION upernet_vit-b16_ln_mln_512x512_160k_ade20k configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py --options checkpoint_config.max_keep_ckpts=1 dist_params.port=24742 --work-dir work_dirs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k >/dev/null & echo 'configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py' & GPUS=8 GPUS_PER_NODE=8 CPUS_PER_TASK=2 ./tools/slurm_train.sh $PARTITION upernet_deit-s16_ln_mln_512x512_160k_ade20k configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py --options checkpoint_config.max_keep_ckpts=1 dist_params.port=24743 --work-dir work_dirs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k >/dev/null & -echo 'configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py' & -GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 ./tools/slurm_train.sh $PARTITION deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py --options checkpoint_config.max_keep_ckpts=1 dist_params.port=24744 --work-dir work_dirs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes >/dev/null & +echo 'configs/deeplabv3plus/deeplabv3plus_r101-d8_fp16_512x1024_80k_cityscapes.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 ./tools/slurm_train.sh $PARTITION deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes configs/deeplabv3plus/deeplabv3plus_r101-d8_fp16_512x1024_80k_cityscapes.py --options checkpoint_config.max_keep_ckpts=1 dist_params.port=24744 --work-dir work_dirs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes >/dev/null & echo 'configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py' & GPUS=8 GPUS_PER_NODE=8 CPUS_PER_TASK=2 ./tools/slurm_train.sh $PARTITION upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py --options checkpoint_config.max_keep_ckpts=1 dist_params.port=24745 --work-dir work_dirs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K >/dev/null & diff --git a/.dev/md2yml.py b/.dev/md2yml.py index 82368df9d3..6bb1349d65 100755 --- a/.dev/md2yml.py +++ b/.dev/md2yml.py @@ -201,7 +201,7 @@ def parse_md(md_file): 'batch size': 1, 'mode': - 'FP32', + 'FP32' if 'fp16' not in config else 'FP16', 'resolution': f'({crop_size[0]},{crop_size[1]})' }] diff --git a/README.md b/README.md index c8d9027f93..18317e01e8 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,6 @@ Supported methods: - [x] [UNet (MICCAI'2016/Nat. Methods'2019)](configs/unet) - [x] [PSPNet (CVPR'2017)](configs/pspnet) - [x] [DeepLabV3 (ArXiv'2017)](configs/deeplabv3) -- [x] [Mixed Precision (FP16) Training (ArXiv'2017)](configs/fp16) - [x] [BiSeNetV1 (ECCV'2018)](configs/bisenetv1) - [x] [PSANet (ECCV'2018)](configs/psanet) - [x] [DeepLabV3+ (CVPR'2018)](configs/deeplabv3plus) diff --git a/README_zh-CN.md b/README_zh-CN.md index 563233f3dd..d7cf65ce68 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -72,7 +72,6 @@ MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 O - [x] [UNet (MICCAI'2016/Nat. Methods'2019)](configs/unet) - [x] [PSPNet (CVPR'2017)](configs/pspnet) - [x] [DeepLabV3 (ArXiv'2017)](configs/deeplabv3) -- [x] [Mixed Precision (FP16) Training (ArXiv'2017)](configs/fp16) - [x] [BiSeNetV1 (ECCV'2018)](configs/bisenetv1) - [x] [PSANet (ECCV'2018)](configs/psanet) - [x] [DeepLabV3+ (CVPR'2018)](configs/deeplabv3plus) diff --git a/configs/bisenetv2/bisenetv2.yml b/configs/bisenetv2/bisenetv2.yml index 373edb99cd..d9e11be67d 100644 --- a/configs/bisenetv2/bisenetv2.yml +++ b/configs/bisenetv2/bisenetv2.yml @@ -75,7 +75,7 @@ Models: hardware: V100 backend: PyTorch batch size: 1 - mode: FP32 + mode: FP16 resolution: (1024,1024) memory (GB): 5.77 Results: diff --git a/configs/deeplabv3/README.md b/configs/deeplabv3/README.md index 28bdbb9066..655efd7637 100644 --- a/configs/deeplabv3/README.md +++ b/configs/deeplabv3/README.md @@ -39,6 +39,7 @@ | DeepLabV3 | R-18-D8 | 512x1024 | 80000 | 1.7 | 13.78 | 76.70 | 78.27 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes/deeplabv3_r18-d8_512x1024_80k_cityscapes_20201225_021506-23dffbe2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes/deeplabv3_r18-d8_512x1024_80k_cityscapes-20201225_021506.log.json) | | DeepLabV3 | R-50-D8 | 512x1024 | 80000 | - | - | 79.32 | 80.57 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes/deeplabv3_r50-d8_512x1024_80k_cityscapes_20200606_113404-b92cfdd4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes/deeplabv3_r50-d8_512x1024_80k_cityscapes_20200606_113404.log.json) | | DeepLabV3 | R-101-D8 | 512x1024 | 80000 | - | - | 80.20 | 81.21 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes/deeplabv3_r101-d8_512x1024_80k_cityscapes_20200606_113503-9e428899.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes/deeplabv3_r101-d8_512x1024_80k_cityscapes_20200606_113503.log.json) | +| DeepLabV3 (FP16) | R-101-D8 | 512x1024 | 80000 | 5.75 | 3.86 | 80.48 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r101-d8_fp16_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_fp16_512x1024_80k_cityscapes/deeplabv3_r101-d8_fp16_512x1024_80k_cityscapes_20200717_230920-774d9cec.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_fp16_512x1024_80k_cityscapes/deeplabv3_r101-d8_fp16_512x1024_80k_cityscapes_20200717_230920.log.json) | | DeepLabV3 | R-18-D8 | 769x769 | 80000 | 1.9 | 5.55 | 76.60 | 78.26 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes/deeplabv3_r18-d8_769x769_80k_cityscapes_20201225_021506-6452126a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes/deeplabv3_r18-d8_769x769_80k_cityscapes-20201225_021506.log.json) | | DeepLabV3 | R-50-D8 | 769x769 | 80000 | - | - | 79.89 | 81.06 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes/deeplabv3_r50-d8_769x769_80k_cityscapes_20200606_221338-788d6228.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes/deeplabv3_r50-d8_769x769_80k_cityscapes_20200606_221338.log.json) | | DeepLabV3 | R-101-D8 | 769x769 | 80000 | - | - | 79.67 | 80.81 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes/deeplabv3_r101-d8_769x769_80k_cityscapes_20200607_013353-60e95418.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes/deeplabv3_r101-d8_769x769_80k_cityscapes_20200607_013353.log.json) | @@ -102,3 +103,7 @@ | DeepLabV3 | R-101-D8 | 512x512 | 160000 | - | - | 41.82 | 42.49 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k_20210709_155402-f035acfd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k_20210709_155402.log.json) | | DeepLabV3 | R-50-D8 | 512x512 | 320000 | - | - | 41.37 | 42.22 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k_20210709_155403-51b21115.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k_20210709_155403.log.json) | | DeepLabV3 | R-101-D8 | 512x512 | 320000 | - | - | 42.61 | 43.42 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k_20210709_155402-3cbca14d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k_20210709_155402.log.json) | + +Note: + +- `FP16` means Mixed Precision (FP16) is adopted in training. diff --git a/configs/deeplabv3/deeplabv3.yml b/configs/deeplabv3/deeplabv3.yml index 94acb59580..cd5c8d0cd6 100644 --- a/configs/deeplabv3/deeplabv3.yml +++ b/configs/deeplabv3/deeplabv3.yml @@ -157,6 +157,27 @@ Models: mIoU(ms+flip): 81.21 Config: configs/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes/deeplabv3_r101-d8_512x1024_80k_cityscapes_20200606_113503-9e428899.pth +- Name: deeplabv3_r101-d8_fp16_512x1024_80k_cityscapes + In Collection: deeplabv3 + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 259.07 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP16 + resolution: (512,1024) + memory (GB): 5.75 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.48 + Config: configs/deeplabv3/deeplabv3_r101-d8_fp16_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_fp16_512x1024_80k_cityscapes/deeplabv3_r101-d8_fp16_512x1024_80k_cityscapes_20200717_230920-774d9cec.pth - Name: deeplabv3_r18-d8_769x769_80k_cityscapes In Collection: deeplabv3 Metadata: diff --git a/configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py b/configs/deeplabv3/deeplabv3_r101-d8_fp16_512x1024_80k_cityscapes.py similarity index 64% rename from configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py rename to configs/deeplabv3/deeplabv3_r101-d8_fp16_512x1024_80k_cityscapes.py index cb2c27e44f..e326109669 100644 --- a/configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py +++ b/configs/deeplabv3/deeplabv3_r101-d8_fp16_512x1024_80k_cityscapes.py @@ -1,4 +1,4 @@ -_base_ = '../pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py' +_base_ = './deeplabv3_r101-d8_512x1024_80k_cityscapes.py' # fp16 settings optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.) # fp16 placeholder diff --git a/configs/deeplabv3plus/README.md b/configs/deeplabv3plus/README.md index bf6c5d50ab..c3e4340919 100644 --- a/configs/deeplabv3plus/README.md +++ b/configs/deeplabv3plus/README.md @@ -40,6 +40,7 @@ | DeepLabV3+ | R-18-D8 | 512x1024 | 80000 | 2.2 | 14.27 | 76.89 | 78.76 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes/deeplabv3plus_r18-d8_512x1024_80k_cityscapes_20201226_080942-cff257fe.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes/deeplabv3plus_r18-d8_512x1024_80k_cityscapes-20201226_080942.log.json) | | DeepLabV3+ | R-50-D8 | 512x1024 | 80000 | - | - | 80.09 | 81.13 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes/deeplabv3plus_r50-d8_512x1024_80k_cityscapes_20200606_114049-f9fb496d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes/deeplabv3plus_r50-d8_512x1024_80k_cityscapes_20200606_114049.log.json) | | DeepLabV3+ | R-101-D8 | 512x1024 | 80000 | - | - | 80.97 | 82.03 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143-068fcfe9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143.log.json) | +| DeepLabV3+ (FP16)| R-101-D8 | 512x1024 | 80000 | 6.35 | 7.87 | 80.46 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101-d8_fp16_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_fp16_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_fp16_512x1024_80k_cityscapes_20200717_230920-f1104f4b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_fp16_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_fp16_512x1024_80k_cityscapes_20200717_230920.log.json) | | DeepLabV3+ | R-18-D8 | 769x769 | 80000 | 2.5 | 5.74 | 76.26 | 77.91 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes/deeplabv3plus_r18-d8_769x769_80k_cityscapes_20201226_083346-f326e06a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes/deeplabv3plus_r18-d8_769x769_80k_cityscapes-20201226_083346.log.json) | | DeepLabV3+ | R-50-D8 | 769x769 | 80000 | - | - | 79.83 | 81.48 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes/deeplabv3plus_r50-d8_769x769_80k_cityscapes_20200606_210233-0e9dfdc4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes/deeplabv3plus_r50-d8_769x769_80k_cityscapes_20200606_210233.log.json) | | DeepLabV3+ | R-101-D8 | 769x769 | 80000 | - | - | 80.98 | 82.18 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes/deeplabv3plus_r101-d8_769x769_80k_cityscapes_20200607_000405-a7573d20.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes/deeplabv3plus_r101-d8_769x769_80k_cityscapes_20200607_000405.log.json) | @@ -83,3 +84,7 @@ | ---------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | -------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | DeepLabV3+ | R-101-D8 | 480x480 | 40000 | - | - | 52.86 | 54.54 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59_20210416_111233-ed937f15.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59-20210416_111233.log.json) | | DeepLabV3+ | R-101-D8 | 480x480 | 80000 | - | - | 53.2 | 54.67 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59_20210416_111127-7ca0331d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59-20210416_111127.log.json) | + +Note: + +- `FP16` means Mixed Precision (FP16) is adopted in training. diff --git a/configs/deeplabv3plus/deeplabv3plus.yml b/configs/deeplabv3plus/deeplabv3plus.yml index ff78da378b..7b54f5003e 100644 --- a/configs/deeplabv3plus/deeplabv3plus.yml +++ b/configs/deeplabv3plus/deeplabv3plus.yml @@ -152,6 +152,27 @@ Models: mIoU(ms+flip): 82.03 Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143-068fcfe9.pth +- Name: deeplabv3plus_r101-d8_fp16_512x1024_80k_cityscapes + In Collection: deeplabv3plus + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 127.06 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP16 + resolution: (512,1024) + memory (GB): 6.35 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.46 + Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_fp16_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_fp16_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_fp16_512x1024_80k_cityscapes_20200717_230920-f1104f4b.pth - Name: deeplabv3plus_r18-d8_769x769_80k_cityscapes In Collection: deeplabv3plus Metadata: diff --git a/configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py b/configs/deeplabv3plus/deeplabv3plus_r101-d8_fp16_512x1024_80k_cityscapes.py similarity index 62% rename from configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py rename to configs/deeplabv3plus/deeplabv3plus_r101-d8_fp16_512x1024_80k_cityscapes.py index 1d7e1bef6f..fc369405d5 100644 --- a/configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py +++ b/configs/deeplabv3plus/deeplabv3plus_r101-d8_fp16_512x1024_80k_cityscapes.py @@ -1,4 +1,4 @@ -_base_ = '../deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py' +_base_ = './deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py' # fp16 settings optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.) # fp16 placeholder diff --git a/configs/fcn/README.md b/configs/fcn/README.md index d33f402ea5..3a2712abf1 100644 --- a/configs/fcn/README.md +++ b/configs/fcn/README.md @@ -39,6 +39,7 @@ | FCN | R-18-D8 | 512x1024 | 80000 | 1.7 | 14.65 | 71.11 | 72.91 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r18-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_512x1024_80k_cityscapes/fcn_r18-d8_512x1024_80k_cityscapes_20201225_021327-6c50f8b4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_512x1024_80k_cityscapes/fcn_r18-d8_512x1024_80k_cityscapes-20201225_021327.log.json) | | FCN | R-50-D8 | 512x1024 | 80000 | - | | 73.61 | 74.24 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r50-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_80k_cityscapes/fcn_r50-d8_512x1024_80k_cityscapes_20200606_113019-03aa804d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_80k_cityscapes/fcn_r50-d8_512x1024_80k_cityscapes_20200606_113019.log.json) | | FCN | R-101-D8 | 512x1024 | 80000 | - | - | 75.13 | 75.94 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_80k_cityscapes/fcn_r101-d8_512x1024_80k_cityscapes_20200606_113038-3fb937eb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_80k_cityscapes/fcn_r101-d8_512x1024_80k_cityscapes_20200606_113038.log.json) | +| FCN (FP16)| R-101-D8 | 512x1024 | 80000 | 5.37 | 8.64 | 76.80 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101-d8_fp16_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_fp16_512x1024_80k_cityscapes/fcn_r101-d8_fp16_512x1024_80k_cityscapes_20200717_230921-fb13e883.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_fp16_512x1024_80k_cityscapes/fcn_r101-d8_fp16_512x1024_80k_cityscapes_20200717_230921.log.json) | | FCN | R-18-D8 | 769x769 | 80000 | 1.9 | 6.40 | 70.80 | 73.16 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r18-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_769x769_80k_cityscapes/fcn_r18-d8_769x769_80k_cityscapes_20201225_021451-9739d1b8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_769x769_80k_cityscapes/fcn_r18-d8_769x769_80k_cityscapes-20201225_021451.log.json) | | FCN | R-50-D8 | 769x769 | 80000 | - | - | 72.64 | 73.32 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r50-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_80k_cityscapes/fcn_r50-d8_769x769_80k_cityscapes_20200606_195749-f5caeabc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_80k_cityscapes/fcn_r50-d8_769x769_80k_cityscapes_20200606_195749.log.json) | | FCN | R-101-D8 | 769x769 | 80000 | - | - | 75.52 | 76.61 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_80k_cityscapes/fcn_r101-d8_769x769_80k_cityscapes_20200606_214354-45cbac68.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_80k_cityscapes/fcn_r101-d8_769x769_80k_cityscapes_20200606_214354.log.json) | @@ -92,3 +93,7 @@ | ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | FCN | R-101-D8 | 480x480 | 40000 | - | - | 48.42 | 50.4 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101-d8_480x480_40k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context_59/fcn_r101-d8_480x480_40k_pascal_context_59_20210415_230724-8cf83682.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context_59/fcn_r101-d8_480x480_40k_pascal_context_59-20210415_230724.log.json) | | FCN | R-101-D8 | 480x480 | 80000 | - | - | 49.35 | 51.38 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101-d8_480x480_80k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context_59/fcn_r101-d8_480x480_80k_pascal_context_59_20210416_110804-9a6f2c94.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context_59/fcn_r101-d8_480x480_80k_pascal_context_59-20210416_110804.log.json) | + +Note: + +- `FP16` means Mixed Precision (FP16) is adopted in training. diff --git a/configs/fcn/fcn.yml b/configs/fcn/fcn.yml index 3f889c48db..fa6e576d49 100644 --- a/configs/fcn/fcn.yml +++ b/configs/fcn/fcn.yml @@ -155,6 +155,27 @@ Models: mIoU(ms+flip): 75.94 Config: configs/fcn/fcn_r101-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_80k_cityscapes/fcn_r101-d8_512x1024_80k_cityscapes_20200606_113038-3fb937eb.pth +- Name: fcn_r101-d8_fp16_512x1024_80k_cityscapes + In Collection: fcn + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 115.74 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP16 + resolution: (512,1024) + memory (GB): 5.37 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.8 + Config: configs/fcn/fcn_r101-d8_fp16_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_fp16_512x1024_80k_cityscapes/fcn_r101-d8_fp16_512x1024_80k_cityscapes_20200717_230921-fb13e883.pth - Name: fcn_r18-d8_769x769_80k_cityscapes In Collection: fcn Metadata: diff --git a/configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py b/configs/fcn/fcn_r101-d8_fp16_512x1024_80k_cityscapes.py similarity index 67% rename from configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py rename to configs/fcn/fcn_r101-d8_fp16_512x1024_80k_cityscapes.py index 8e85e56bd6..c6739d9520 100644 --- a/configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py +++ b/configs/fcn/fcn_r101-d8_fp16_512x1024_80k_cityscapes.py @@ -1,4 +1,4 @@ -_base_ = '../fcn/fcn_r101-d8_512x1024_80k_cityscapes.py' +_base_ = './fcn_r101-d8_512x1024_80k_cityscapes.py' # fp16 settings optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.) # fp16 placeholder diff --git a/configs/fp16/README.md b/configs/fp16/README.md deleted file mode 100644 index bbc73cc5ad..0000000000 --- a/configs/fp16/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# Mixed Precision Training - -## Introduction - - - -Official Repo - -Code Snippet - -
-Mixed Precision (FP16) Training (ArXiv'2017) - -```latex -@article{micikevicius2017mixed, - title={Mixed precision training}, - author={Micikevicius, Paulius and Narang, Sharan and Alben, Jonah and Diamos, Gregory and Elsen, Erich and Garcia, David and Ginsburg, Boris and Houston, Michael and Kuchaiev, Oleksii and Venkatesh, Ganesh and others}, - journal={arXiv preprint arXiv:1710.03740}, - year={2017} -} -``` - -
- -## Results and models - -### Cityscapes - -| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | -| ---------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| FCN | R-101-D8 | 512x1024 | 80000 | 5.37 | 8.64 | 76.80 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230921-50245227.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230921.log.json) | -| PSPNet | R-101-D8 | 512x1024 | 80000 | 5.34 | 8.77 | 79.46 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230919-ade37931.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230919.log.json) | -| DeepLabV3 | R-101-D8 | 512x1024 | 80000 | 5.75 | 3.86 | 80.48 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920-bc86dc84.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920.log.json) | -| DeepLabV3+ | R-101-D8 | 512x1024 | 80000 | 6.35 | 7.87 | 80.46 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920-cc58bc8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920.log.json) | diff --git a/configs/fp16/fp16.yml b/configs/fp16/fp16.yml deleted file mode 100644 index 755642e7bd..0000000000 --- a/configs/fp16/fp16.yml +++ /dev/null @@ -1,99 +0,0 @@ -Collections: -- Name: fp16 - Metadata: - Training Data: - - Cityscapes - Paper: - URL: https://arxiv.org/abs/1710.03740 - Title: Mixed Precision Training - README: configs/fp16/README.md - Code: - URL: https://github.com/open-mmlab/mmcv/blob/v1.3.14/mmcv/runner/hooks/optimizer.py#L134 - Version: v1.3.14 - Converted From: - Code: https://github.com/baidu-research/DeepBench -Models: -- Name: fcn_r101-d8_512x1024_80k_fp16_cityscapes - In Collection: fp16 - Metadata: - backbone: R-101-D8 - crop size: (512,1024) - lr schd: 80000 - inference time (ms/im): - - value: 115.74 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - resolution: (512,1024) - memory (GB): 5.37 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 76.8 - Config: configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230921-50245227.pth -- Name: pspnet_r101-d8_512x1024_80k_fp16_cityscapes - In Collection: fp16 - Metadata: - backbone: R-101-D8 - crop size: (512,1024) - lr schd: 80000 - inference time (ms/im): - - value: 114.03 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - resolution: (512,1024) - memory (GB): 5.34 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.46 - Config: configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230919-ade37931.pth -- Name: deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes - In Collection: fp16 - Metadata: - backbone: R-101-D8 - crop size: (512,1024) - lr schd: 80000 - inference time (ms/im): - - value: 259.07 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - resolution: (512,1024) - memory (GB): 5.75 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 80.48 - Config: configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920-bc86dc84.pth -- Name: deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes - In Collection: fp16 - Metadata: - backbone: R-101-D8 - crop size: (512,1024) - lr schd: 80000 - inference time (ms/im): - - value: 127.06 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - resolution: (512,1024) - memory (GB): 6.35 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 80.46 - Config: configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920-cc58bc8d.pth diff --git a/configs/pspnet/README.md b/configs/pspnet/README.md index 72b280ada3..ad7fcdf4cc 100644 --- a/configs/pspnet/README.md +++ b/configs/pspnet/README.md @@ -35,6 +35,7 @@ | PSPNet | R-18-D8 | 512x1024 | 80000 | 1.7 | 15.71 | 74.87 | 76.04 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes/pspnet_r18-d8_512x1024_80k_cityscapes_20201225_021458-09ffa746.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes/pspnet_r18-d8_512x1024_80k_cityscapes-20201225_021458.log.json) | | PSPNet | R-50-D8 | 512x1024 | 80000 | - | - | 78.55 | 79.79 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes/pspnet_r50-d8_512x1024_80k_cityscapes_20200606_112131-2376f12b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes/pspnet_r50-d8_512x1024_80k_cityscapes_20200606_112131.log.json) | | PSPNet | R-101-D8 | 512x1024 | 80000 | - | - | 79.76 | 81.01 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes/pspnet_r101-d8_512x1024_80k_cityscapes_20200606_112211-e1e1100f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes/pspnet_r101-d8_512x1024_80k_cityscapes_20200606_112211.log.json) | +| PSPNet (FP16) | R-101-D8 | 512x1024 | 80000 | 5.34 | 8.77 | 79.46 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_fp16_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_fp16_512x1024_80k_cityscapes/pspnet_r101-d8_fp16_512x1024_80k_cityscapes_20200717_230919-a0875e5c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_fp16_512x1024_80k_cityscapes/pspnet_r101-d8_fp16_512x1024_80k_cityscapes_20200717_230919.log.json) | | PSPNet | R-18-D8 | 769x769 | 80000 | 1.9 | 6.20 | 75.90 | 77.86 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r18-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_769x769_80k_cityscapes/pspnet_r18-d8_769x769_80k_cityscapes_20201225_021458-3deefc62.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_769x769_80k_cityscapes/pspnet_r18-d8_769x769_80k_cityscapes-20201225_021458.log.json) | | PSPNet | R-50-D8 | 769x769 | 80000 | - | - | 79.59 | 80.69 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r50-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_80k_cityscapes/pspnet_r50-d8_769x769_80k_cityscapes_20200606_210121-5ccf03dd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_80k_cityscapes/pspnet_r50-d8_769x769_80k_cityscapes_20200606_210121.log.json) | | PSPNet | R-101-D8 | 769x769 | 80000 | - | - | 79.77 | 81.06 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_80k_cityscapes/pspnet_r101-d8_769x769_80k_cityscapes_20200606_225055-dba412fa.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_80k_cityscapes/pspnet_r101-d8_769x769_80k_cityscapes_20200606_225055.log.json) | @@ -112,3 +113,7 @@ We support evaluation results on these two datasets using models above trained o | PSPNet | R-101-D8 | 512x512 | 160000 | - | - | 41.28 | 41.66 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k_20210707_152004-4af9621b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k_20210707_152004.log.json) | | PSPNet | R-50-D8 | 512x512 | 320000 | - | - | 40.53 | 40.75 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004-be9610cc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004.log.json) | | PSPNet | R-101-D8 | 512x512 | 320000 | - | - | 41.95 | 42.42 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004-72220c60.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004.log.json) | + +Note: + +- `FP16` means Mixed Precision (FP16) is adopted in training. diff --git a/configs/pspnet/pspnet.yml b/configs/pspnet/pspnet.yml index 4b3cd1f41f..1a46b4632a 100644 --- a/configs/pspnet/pspnet.yml +++ b/configs/pspnet/pspnet.yml @@ -158,6 +158,27 @@ Models: mIoU(ms+flip): 81.01 Config: configs/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes/pspnet_r101-d8_512x1024_80k_cityscapes_20200606_112211-e1e1100f.pth +- Name: pspnet_r101-d8_fp16_512x1024_80k_cityscapes + In Collection: pspnet + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 114.03 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP16 + resolution: (512,1024) + memory (GB): 5.34 + Results: + - Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.46 + Config: configs/pspnet/pspnet_r101-d8_fp16_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_fp16_512x1024_80k_cityscapes/pspnet_r101-d8_fp16_512x1024_80k_cityscapes_20200717_230919-a0875e5c.pth - Name: pspnet_r18-d8_769x769_80k_cityscapes In Collection: pspnet Metadata: diff --git a/configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py b/configs/pspnet/pspnet_r101-d8_fp16_512x1024_80k_cityscapes.py similarity index 60% rename from configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py rename to configs/pspnet/pspnet_r101-d8_fp16_512x1024_80k_cityscapes.py index eaf569d4d7..c71b7f6383 100644 --- a/configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py +++ b/configs/pspnet/pspnet_r101-d8_fp16_512x1024_80k_cityscapes.py @@ -1,4 +1,4 @@ -_base_ = '../deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py' +_base_ = './pspnet_r101-d8_512x1024_80k_cityscapes.py' # fp16 settings optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.) # fp16 placeholder diff --git a/docs/model_zoo.md b/docs/model_zoo.md index 7babd2e5bd..ce23b5367d 100644 --- a/docs/model_zoo.md +++ b/docs/model_zoo.md @@ -129,7 +129,7 @@ Please refer to [CGNet](https://github.com/open-mmlab/mmsegmentation/blob/master ### Mixed Precision (FP16) Training -Please refer [Mixed Precision (FP16) Training](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16) for details. +Please refer [Mixed Precision (FP16) Training] on BiSeNetV2 (https://github.com/open-mmlab/mmsegmentation/blob/master/configs/bisenetv2/bisenetv2_fcn_fp16_4x4_1024x1024_160k_cityscapes.py) for details. ### U-Net diff --git a/docs_zh-CN/model_zoo.md b/docs_zh-CN/model_zoo.md index a7f6ead5dd..a165865c84 100644 --- a/docs_zh-CN/model_zoo.md +++ b/docs_zh-CN/model_zoo.md @@ -119,7 +119,7 @@ ### Mixed Precision (FP16) Training -Please refer [Mixed Precision (FP16) Training](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/README.md) for details. +请参考 [Mixed Precision (FP16) Training] 在 BiSeNetV2 训练的样例 (https://github.com/open-mmlab/mmsegmentation/blob/master/configs/bisenetv2/bisenetv2_fcn_fp16_4x4_1024x1024_160k_cityscapes.py) for details. ## 速度标定 diff --git a/model-index.yml b/model-index.yml index 00da8d6a2a..487bafdba7 100644 --- a/model-index.yml +++ b/model-index.yml @@ -16,7 +16,6 @@ Import: - configs/fastfcn/fastfcn.yml - configs/fastscnn/fastscnn.yml - configs/fcn/fcn.yml -- configs/fp16/fp16.yml - configs/gcnet/gcnet.yml - configs/hrnet/hrnet.yml - configs/icnet/icnet.yml From 6d88b070842050230a88895c504e6301905a703e Mon Sep 17 00:00:00 2001 From: MengzhangLI Date: Tue, 16 Nov 2021 20:14:17 +0800 Subject: [PATCH 277/706] fixing dice metric in unet (#1041) --- .dev/md2yml.py | 2 +- configs/unet/unet.yml | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.dev/md2yml.py b/.dev/md2yml.py index 6bb1349d65..311f6d072e 100755 --- a/.dev/md2yml.py +++ b/.dev/md2yml.py @@ -176,7 +176,7 @@ def parse_md(md_file): 'Task': 'Semantic Segmentation', 'Dataset': current_dataset, 'Metrics': { - 'mIoU': float(els[ss_id]), + cols[ss_id]: float(els[ss_id]), }, }, ], diff --git a/configs/unet/unet.yml b/configs/unet/unet.yml index e7991f40fe..0fc77325d7 100644 --- a/configs/unet/unet.yml +++ b/configs/unet/unet.yml @@ -27,7 +27,7 @@ Models: - Task: Semantic Segmentation Dataset: DRIVE Metrics: - mIoU: 78.67 + Dice: 78.67 Config: configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_64x64_40k_drive/fcn_unet_s5-d16_64x64_40k_drive_20201223_191051-5daf6d3b.pth - Name: pspnet_unet_s5-d16_64x64_40k_drive @@ -41,7 +41,7 @@ Models: - Task: Semantic Segmentation Dataset: DRIVE Metrics: - mIoU: 78.62 + Dice: 78.62 Config: configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_64x64_40k_drive/pspnet_unet_s5-d16_64x64_40k_drive_20201227_181818-aac73387.pth - Name: deeplabv3_unet_s5-d16_64x64_40k_drive @@ -55,7 +55,7 @@ Models: - Task: Semantic Segmentation Dataset: DRIVE Metrics: - mIoU: 78.69 + Dice: 78.69 Config: configs/unet/deeplabv3_unet_s5-d16_64x64_40k_drive.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_64x64_40k_drive/deeplabv3_unet_s5-d16_64x64_40k_drive_20201226_094047-0671ff20.pth - Name: fcn_unet_s5-d16_128x128_40k_stare @@ -69,7 +69,7 @@ Models: - Task: Semantic Segmentation Dataset: STARE Metrics: - mIoU: 81.02 + Dice: 81.02 Config: configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_stare/fcn_unet_s5-d16_128x128_40k_stare_20201223_191051-7d77e78b.pth - Name: pspnet_unet_s5-d16_128x128_40k_stare @@ -83,7 +83,7 @@ Models: - Task: Semantic Segmentation Dataset: STARE Metrics: - mIoU: 81.22 + Dice: 81.22 Config: configs/unet/pspnet_unet_s5-d16_128x128_40k_stare.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_stare/pspnet_unet_s5-d16_128x128_40k_stare_20201227_181818-3c2923c4.pth - Name: deeplabv3_unet_s5-d16_128x128_40k_stare @@ -97,7 +97,7 @@ Models: - Task: Semantic Segmentation Dataset: STARE Metrics: - mIoU: 80.93 + Dice: 80.93 Config: configs/unet/deeplabv3_unet_s5-d16_128x128_40k_stare.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_stare/deeplabv3_unet_s5-d16_128x128_40k_stare_20201226_094047-93dcb93c.pth - Name: fcn_unet_s5-d16_128x128_40k_chase_db1 @@ -111,7 +111,7 @@ Models: - Task: Semantic Segmentation Dataset: CHASE_DB1 Metrics: - mIoU: 80.24 + Dice: 80.24 Config: configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_chase_db1/fcn_unet_s5-d16_128x128_40k_chase_db1_20201223_191051-11543527.pth - Name: pspnet_unet_s5-d16_128x128_40k_chase_db1 @@ -125,7 +125,7 @@ Models: - Task: Semantic Segmentation Dataset: CHASE_DB1 Metrics: - mIoU: 80.36 + Dice: 80.36 Config: configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1/pspnet_unet_s5-d16_128x128_40k_chase_db1_20201227_181818-68d4e609.pth - Name: deeplabv3_unet_s5-d16_128x128_40k_chase_db1 @@ -139,7 +139,7 @@ Models: - Task: Semantic Segmentation Dataset: CHASE_DB1 Metrics: - mIoU: 80.47 + Dice: 80.47 Config: configs/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1/deeplabv3_unet_s5-d16_128x128_40k_chase_db1_20201226_094047-4c5aefa3.pth - Name: fcn_unet_s5-d16_256x256_40k_hrf @@ -153,7 +153,7 @@ Models: - Task: Semantic Segmentation Dataset: HRF Metrics: - mIoU: 79.45 + Dice: 79.45 Config: configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_256x256_40k_hrf/fcn_unet_s5-d16_256x256_40k_hrf_20201223_173724-d89cf1ed.pth - Name: pspnet_unet_s5-d16_256x256_40k_hrf @@ -167,7 +167,7 @@ Models: - Task: Semantic Segmentation Dataset: HRF Metrics: - mIoU: 80.07 + Dice: 80.07 Config: configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_256x256_40k_hrf/pspnet_unet_s5-d16_256x256_40k_hrf_20201227_181818-fdb7e29b.pth - Name: deeplabv3_unet_s5-d16_256x256_40k_hrf @@ -181,6 +181,6 @@ Models: - Task: Semantic Segmentation Dataset: HRF Metrics: - mIoU: 80.21 + Dice: 80.21 Config: configs/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf/deeplabv3_unet_s5-d16_256x256_40k_hrf_20201226_094047-3a1fdf85.pth From b692ab740cfa51e1a4ed766bc3617284a0627a2e Mon Sep 17 00:00:00 2001 From: MengzhangLI Date: Wed, 17 Nov 2021 16:12:02 +0800 Subject: [PATCH 278/706] [Benchmark] Add BiSeNetV1 COCO-Stuff 164k benchmark (#1019) * bisenetv1 on cocostuff164k * change config_names & delete redundant keys * pretrain should before lr. * remove redundancy in bisenetv1_r50-d32 --- configs/bisenetv1/README.md | 13 ++- configs/bisenetv1/bisenetv1.yml | 109 ++++++++++++++++++ ..._lr5e-3_4x4_512x512_160k_coco-stuff164k.py | 6 + ..._lr5e-3_4x4_512x512_160k_coco-stuff164k.py | 18 +++ ..._lr5e-3_4x4_512x512_160k_coco-stuff164k.py | 6 + ..._lr5e-3_4x4_512x512_160k_coco-stuff164k.py | 13 +++ ..._lr5e-3_4x4_512x512_160k_coco-stuff164k.py | 7 ++ ..._lr5e-3_4x4_512x512_160k_coco-stuff164k.py | 18 +++ 8 files changed, 189 insertions(+), 1 deletion(-) create mode 100644 configs/bisenetv1/bisenetv1_r101-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k.py create mode 100644 configs/bisenetv1/bisenetv1_r101-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k.py create mode 100644 configs/bisenetv1/bisenetv1_r18-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k.py create mode 100644 configs/bisenetv1/bisenetv1_r18-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k.py create mode 100644 configs/bisenetv1/bisenetv1_r50-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k.py create mode 100644 configs/bisenetv1/bisenetv1_r50-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k.py diff --git a/configs/bisenetv1/README.md b/configs/bisenetv1/README.md index dd5bd503b2..e7a1c8dab1 100644 --- a/configs/bisenetv1/README.md +++ b/configs/bisenetv1/README.md @@ -35,8 +35,19 @@ | BiSeNetV1 (No Pretrain) | R-50-D32 | 1024x1024 | 160000 | 15.39 | 7.71 | 76.92 | 78.87 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/bisenetv1/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes_20210923_222639-7b28a2a6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes/bisenetv1_r50-d32_4x4_1024x1024_160k_cityscapes_20210923_222639.log.json) | | BiSeNetV1 | R-50-D32 | 1024x1024 | 160000 | 15.39 | 7.71 | 77.68 | 79.57 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/bisenetv1/bisenetv1_r50-d32_in1k-pre_4x4_1024x1024_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r50-d32_in1k-pre_4x4_1024x1024_160k_cityscapes/bisenetv1_r50-d32_in1k-pre_4x4_1024x1024_160k_cityscapes_20210917_234628-8b304447.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r50-d32_in1k-pre_4x4_1024x1024_160k_cityscapes/bisenetv1_r50-d32_in1k-pre_4x4_1024x1024_160k_cityscapes_20210917_234628.log.json) | +### COCO-Stuff 164k + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| --------- | --------- | --------- | ------: | -------- | -------------- | ----: | ------------- | --------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| BiSeNetV1 (No Pretrain) | R-18-D32 | 512x512 | 160000 | - | - | 25.45 | 26.15 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/bisenetv1/bisenetv1_r18-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r18-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k/bisenetv1_r18-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k_20211022_054328-046aa2f2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r18-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k/bisenetv1_r18-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k_20211022_054328.log.json) | +| BiSeNetV1| R-18-D32 | 512x512 | 160000 | 6.33 | 74.24 | 28.55 | 29.26 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/bisenetv1/bisenetv1_r18-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r18-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k/bisenetv1_r18-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k_20211023_013100-f700dbf7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r18-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k/bisenetv1_r18-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k_20211023_013100.log.json) | +| BiSeNetV1 (No Pretrain) | R-50-D32 | 512x512 | 160000 | - | - | 29.82 | 30.33 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/bisenetv1/bisenetv1_r50-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r50-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k/bisenetv1_r50-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k_20211101_040616-d2bb0df4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r50-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k/bisenetv1_r50-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k_20211101_040616.log.json) | +| BiSeNetV1 | R-50-D32 | 512x512 | 160000 | 9.28 | 32.60 | 34.88 | 35.37 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/bisenetv1/bisenetv1_r50-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r50-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k/bisenetv1_r50-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k_20211101_181932-66747911.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r50-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k/bisenetv1_r50-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k_20211101_181932.log.json) | +| BiSeNetV1(No Pretrain) | R-101-D32 | 512x512 | 160000 | - | - | 31.14 | 31.76 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/bisenetv1/bisenetv1_r101-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r101-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k/bisenetv1_r101-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k_20211102_164147-c6b32c3b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r101-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k/bisenetv1_r101-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k_20211102_164147.log.json) | +| BiSeNetV1 | R-101-D32 | 512x512 | 160000 | 10.36 | 25.25 | 37.38 | 37.99 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/bisenetv1/bisenetv1_r101-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r101-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k/bisenetv1_r101-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k_20211101_225220-28c8f092.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r101-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k/bisenetv1_r101-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k_20211101_225220.log.json) | + Note: - `4x8`: Using 4 GPUs with 8 samples per GPU in training. -- Default setting is 4 GPUs with 4 samples per GPU in training. +- For BiSeNetV1 on Cityscapes dataset, default setting is 4 GPUs with 4 samples per GPU in training. - `No Pretrain` means the model is trained from scratch. diff --git a/configs/bisenetv1/bisenetv1.yml b/configs/bisenetv1/bisenetv1.yml index 8ea94df4bd..26a7c60044 100644 --- a/configs/bisenetv1/bisenetv1.yml +++ b/configs/bisenetv1/bisenetv1.yml @@ -3,6 +3,7 @@ Collections: Metadata: Training Data: - Cityscapes + - COCO-Stuff 164k Paper: URL: https://arxiv.org/abs/1808.00897 Title: 'BiSeNet: Bilateral Segmentation Network for Real-time Semantic Segmentation' @@ -123,3 +124,111 @@ Models: mIoU(ms+flip): 79.57 Config: configs/bisenetv1/bisenetv1_r50-d32_in1k-pre_4x4_1024x1024_160k_cityscapes.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r50-d32_in1k-pre_4x4_1024x1024_160k_cityscapes/bisenetv1_r50-d32_in1k-pre_4x4_1024x1024_160k_cityscapes_20210917_234628-8b304447.pth +- Name: bisenetv1_r18-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k + In Collection: bisenetv1 + Metadata: + backbone: R-18-D32 + crop size: (512,512) + lr schd: 160000 + Results: + - Task: Semantic Segmentation + Dataset: COCO-Stuff 164k + Metrics: + mIoU: 25.45 + mIoU(ms+flip): 26.15 + Config: configs/bisenetv1/bisenetv1_r18-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r18-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k/bisenetv1_r18-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k_20211022_054328-046aa2f2.pth +- Name: bisenetv1_r18-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k + In Collection: bisenetv1 + Metadata: + backbone: R-18-D32 + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 13.47 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 6.33 + Results: + - Task: Semantic Segmentation + Dataset: COCO-Stuff 164k + Metrics: + mIoU: 28.55 + mIoU(ms+flip): 29.26 + Config: configs/bisenetv1/bisenetv1_r18-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r18-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k/bisenetv1_r18-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k_20211023_013100-f700dbf7.pth +- Name: bisenetv1_r50-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k + In Collection: bisenetv1 + Metadata: + backbone: R-50-D32 + crop size: (512,512) + lr schd: 160000 + Results: + - Task: Semantic Segmentation + Dataset: COCO-Stuff 164k + Metrics: + mIoU: 29.82 + mIoU(ms+flip): 30.33 + Config: configs/bisenetv1/bisenetv1_r50-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r50-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k/bisenetv1_r50-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k_20211101_040616-d2bb0df4.pth +- Name: bisenetv1_r50-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k + In Collection: bisenetv1 + Metadata: + backbone: R-50-D32 + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 30.67 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 9.28 + Results: + - Task: Semantic Segmentation + Dataset: COCO-Stuff 164k + Metrics: + mIoU: 34.88 + mIoU(ms+flip): 35.37 + Config: configs/bisenetv1/bisenetv1_r50-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r50-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k/bisenetv1_r50-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k_20211101_181932-66747911.pth +- Name: bisenetv1_r101-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k + In Collection: bisenetv1 + Metadata: + backbone: R-101-D32 + crop size: (512,512) + lr schd: 160000 + Results: + - Task: Semantic Segmentation + Dataset: COCO-Stuff 164k + Metrics: + mIoU: 31.14 + mIoU(ms+flip): 31.76 + Config: configs/bisenetv1/bisenetv1_r101-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r101-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k/bisenetv1_r101-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k_20211102_164147-c6b32c3b.pth +- Name: bisenetv1_r101-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k + In Collection: bisenetv1 + Metadata: + backbone: R-101-D32 + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 39.6 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 10.36 + Results: + - Task: Semantic Segmentation + Dataset: COCO-Stuff 164k + Metrics: + mIoU: 37.38 + mIoU(ms+flip): 37.99 + Config: configs/bisenetv1/bisenetv1_r101-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv1/bisenetv1_r101-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k/bisenetv1_r101-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k_20211101_225220-28c8f092.pth diff --git a/configs/bisenetv1/bisenetv1_r101-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k.py b/configs/bisenetv1/bisenetv1_r101-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k.py new file mode 100644 index 0000000000..c3fe21597d --- /dev/null +++ b/configs/bisenetv1/bisenetv1_r101-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k.py @@ -0,0 +1,6 @@ +_base_ = './bisenetv1_r101-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k.py' +model = dict( + backbone=dict( + backbone_cfg=dict( + init_cfg=dict( + type='Pretrained', checkpoint='open-mmlab://resnet101_v1c')))) diff --git a/configs/bisenetv1/bisenetv1_r101-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k.py b/configs/bisenetv1/bisenetv1_r101-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k.py new file mode 100644 index 0000000000..b1e1c3e863 --- /dev/null +++ b/configs/bisenetv1/bisenetv1_r101-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k.py @@ -0,0 +1,18 @@ +_base_ = [ + '../_base_/models/bisenetv1_r18-d32.py', + '../_base_/datasets/coco-stuff164k.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_160k.py' +] +model = dict( + backbone=dict( + context_channels=(512, 1024, 2048), + spatial_channels=(256, 256, 256, 512), + out_channels=1024, + backbone_cfg=dict(type='ResNet', depth=101)), + decode_head=dict(in_channels=1024, channels=1024, num_classes=171), + auxiliary_head=[ + dict(in_channels=512, channels=256, num_classes=171), + dict(in_channels=512, channels=256, num_classes=171), + ]) +lr_config = dict(warmup='linear', warmup_iters=1000) +optimizer = dict(lr=0.005) diff --git a/configs/bisenetv1/bisenetv1_r18-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k.py b/configs/bisenetv1/bisenetv1_r18-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k.py new file mode 100644 index 0000000000..c6d93049e2 --- /dev/null +++ b/configs/bisenetv1/bisenetv1_r18-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k.py @@ -0,0 +1,6 @@ +_base_ = './bisenetv1_r18-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k.py' +model = dict( + backbone=dict( + backbone_cfg=dict( + init_cfg=dict( + type='Pretrained', checkpoint='open-mmlab://resnet18_v1c'))), ) diff --git a/configs/bisenetv1/bisenetv1_r18-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k.py b/configs/bisenetv1/bisenetv1_r18-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k.py new file mode 100644 index 0000000000..78d7fea629 --- /dev/null +++ b/configs/bisenetv1/bisenetv1_r18-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k.py @@ -0,0 +1,13 @@ +_base_ = [ + '../_base_/models/bisenetv1_r18-d32.py', + '../_base_/datasets/coco-stuff164k.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_160k.py' +] +model = dict( + decode_head=dict(num_classes=171), + auxiliary_head=[ + dict(num_classes=171), + dict(num_classes=171), + ]) +lr_config = dict(warmup='linear', warmup_iters=1000) +optimizer = dict(lr=0.005) diff --git a/configs/bisenetv1/bisenetv1_r50-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k.py b/configs/bisenetv1/bisenetv1_r50-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k.py new file mode 100644 index 0000000000..f0fea69f2f --- /dev/null +++ b/configs/bisenetv1/bisenetv1_r50-d32_in1k-pre_lr5e-3_4x4_512x512_160k_coco-stuff164k.py @@ -0,0 +1,7 @@ +_base_ = './bisenetv1_r50-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k.py' + +model = dict( + backbone=dict( + backbone_cfg=dict( + init_cfg=dict( + type='Pretrained', checkpoint='open-mmlab://resnet50_v1c')))) diff --git a/configs/bisenetv1/bisenetv1_r50-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k.py b/configs/bisenetv1/bisenetv1_r50-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k.py new file mode 100644 index 0000000000..dbbccc69d8 --- /dev/null +++ b/configs/bisenetv1/bisenetv1_r50-d32_lr5e-3_4x4_512x512_160k_coco-stuff164k.py @@ -0,0 +1,18 @@ +_base_ = [ + '../_base_/models/bisenetv1_r18-d32.py', + '../_base_/datasets/coco-stuff164k.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_160k.py' +] +model = dict( + backbone=dict( + context_channels=(512, 1024, 2048), + spatial_channels=(256, 256, 256, 512), + out_channels=1024, + backbone_cfg=dict(type='ResNet', depth=50)), + decode_head=dict(in_channels=1024, channels=1024, num_classes=171), + auxiliary_head=[ + dict(in_channels=512, channels=256, num_classes=171), + dict(in_channels=512, channels=256, num_classes=171), + ]) +lr_config = dict(warmup='linear', warmup_iters=1000) +optimizer = dict(lr=0.005) From 765a3a117a31b1c2e4b83716056f6960e484cf3e Mon Sep 17 00:00:00 2001 From: MengzhangLI Date: Thu, 18 Nov 2021 21:57:30 +0800 Subject: [PATCH 279/706] add mmflow on README (#1052) --- README.md | 1 + README_zh-CN.md | 1 + docs/conf.py | 4 ++++ docs_zh-CN/conf.py | 4 ++++ 4 files changed, 10 insertions(+) diff --git a/README.md b/README.md index 18317e01e8..30ca3dc4d4 100644 --- a/README.md +++ b/README.md @@ -165,3 +165,4 @@ and develop their own new semantic segmentation methods. - [MMOCR](https://github.com/open-mmlab/mmocr): A Comprehensive Toolbox for Text Detection, Recognition and Understanding. - [MMGeneration](https://github.com/open-mmlab/mmgeneration): A powerful toolkit for generative models. - [MIM](https://github.com/open-mmlab/mim): MIM Installs OpenMMLab Packages. +- [MMFlow](https://github.com/open-mmlab/mmflow): OpenMMLab optical flow toolbox and benchmark. diff --git a/README_zh-CN.md b/README_zh-CN.md index d7cf65ce68..89d5a28159 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -160,6 +160,7 @@ MMSegmentation 是一个由来自不同高校和企业的研发人员共同参 - [MMEditing](https://github.com/open-mmlab/mmediting): OpenMMLab 图像视频编辑工具箱 - [MMOCR](https://github.com/open-mmlab/mmocr): OpenMMLab 全流程文字检测识别理解工具包 - [MMGeneration](https://github.com/open-mmlab/mmgeneration): OpenMMLab 生成模型工具箱 +- [MMFlow](https://github.com/open-mmlab/mmflow): OpenMMLab 光流估计工具箱与测试基准 ## 欢迎加入 OpenMMLab 社区 diff --git a/docs/conf.py b/docs/conf.py index 50c425fdf7..6d1997ff26 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -147,6 +147,10 @@ def get_version(): 'name': 'MMGeneration', 'url': 'https://github.com/open-mmlab/mmgeneration', }, + { + 'name': 'MMFlow', + 'url': 'https://github.com/open-mmlab/mmflow', + }, ] }, { diff --git a/docs_zh-CN/conf.py b/docs_zh-CN/conf.py index 4cb2bfb899..44acfd5a7c 100644 --- a/docs_zh-CN/conf.py +++ b/docs_zh-CN/conf.py @@ -147,6 +147,10 @@ def get_version(): 'name': 'MMGeneration', 'url': 'https://github.com/open-mmlab/mmgeneration', }, + { + 'name': 'MMFlow', + 'url': 'https://github.com/open-mmlab/mmflow', + }, ] }, { From 7e5e34b217fc83114c40a78043b94c85208efcac Mon Sep 17 00:00:00 2001 From: MengzhangLI Date: Wed, 24 Nov 2021 19:40:00 +0800 Subject: [PATCH 280/706] add MMFewShot on README (#1065) --- README.md | 1 + README_zh-CN.md | 1 + docs/conf.py | 4 ++++ docs_zh-CN/conf.py | 4 ++++ 4 files changed, 10 insertions(+) diff --git a/README.md b/README.md index 30ca3dc4d4..1148c1e519 100644 --- a/README.md +++ b/README.md @@ -166,3 +166,4 @@ and develop their own new semantic segmentation methods. - [MMGeneration](https://github.com/open-mmlab/mmgeneration): A powerful toolkit for generative models. - [MIM](https://github.com/open-mmlab/mim): MIM Installs OpenMMLab Packages. - [MMFlow](https://github.com/open-mmlab/mmflow): OpenMMLab optical flow toolbox and benchmark. +- [MMFewShot](https://github.com/open-mmlab/mmfewshot): OpenMMLab few shot learning toolbox and benchmark. diff --git a/README_zh-CN.md b/README_zh-CN.md index 89d5a28159..a5206fc9d8 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -161,6 +161,7 @@ MMSegmentation 是一个由来自不同高校和企业的研发人员共同参 - [MMOCR](https://github.com/open-mmlab/mmocr): OpenMMLab 全流程文字检测识别理解工具包 - [MMGeneration](https://github.com/open-mmlab/mmgeneration): OpenMMLab 生成模型工具箱 - [MMFlow](https://github.com/open-mmlab/mmflow): OpenMMLab 光流估计工具箱与测试基准 +- [MMFewShot](https://github.com/open-mmlab/mmfewshot): OpenMMLab 少样本学习工具箱与测试基准 ## 欢迎加入 OpenMMLab 社区 diff --git a/docs/conf.py b/docs/conf.py index 6d1997ff26..6c34ccca1c 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -151,6 +151,10 @@ def get_version(): 'name': 'MMFlow', 'url': 'https://github.com/open-mmlab/mmflow', }, + { + 'name': 'MMFewShot', + 'url': 'https://github.com/open-mmlab/mmfewshot', + }, ] }, { diff --git a/docs_zh-CN/conf.py b/docs_zh-CN/conf.py index 44acfd5a7c..9bde6cae1d 100644 --- a/docs_zh-CN/conf.py +++ b/docs_zh-CN/conf.py @@ -151,6 +151,10 @@ def get_version(): 'name': 'MMFlow', 'url': 'https://github.com/open-mmlab/mmflow', }, + { + 'name': 'MMFewShot', + 'url': 'https://github.com/open-mmlab/mmfewshot', + }, ] }, { From 48d4222412f659eca2b8cd562933f394f473f550 Mon Sep 17 00:00:00 2001 From: Kingdrone Date: Wed, 24 Nov 2021 19:41:19 +0800 Subject: [PATCH 281/706] [Feature] Support LoveDA dataset (#1028) * update LoveDA dataset api * revised lint errors in dataset_prepare.md * revised lint errors in loveda.py * revised lint errors in loveda.py * revised lint errors in dataset_prepare.md * revised lint errors in dataset_prepare.md * checked with isort and yapf * checked with isort and yapf * checked with isort and yapf * Revert "checked with isort and yapf" This reverts commit 686a51d9 * Revert "checked with isort and yapf" This reverts commit b877e121bb2935ceefc503c09675019489829feb. * Revert "revised lint errors in dataset_prepare.md" This reverts commit 2289e27c * Revert "checked with isort and yapf" This reverts commit 159db2f8 * Revert "checked with isort and yapf" This reverts commit 159db2f8 * add configs & fix bugs * update new branch * upload models&logs and add format-only * change pretraied model path of HRNet * fix the errors in dataset_prepare.md * fix the errors in dataset_prepare.md and configs in loveda.py * change the description in docs_zh-CN/dataset_prepare.md * use init_cfg * fix test converage * adding pseudo loveda dataset * adding pseudo loveda dataset * adding pseudo loveda dataset * adding pseudo loveda dataset * adding pseudo loveda dataset * adding pseudo loveda dataset * Update docs/dataset_prepare.md Co-authored-by: Junjun2016 * Update docs_zh-CN/dataset_prepare.md Co-authored-by: Junjun2016 * Update docs_zh-CN/dataset_prepare.md Co-authored-by: Junjun2016 * Delete unused lines of unittest and Add docs * add convert .py file * add downloading links from zenodo * move place of LoveDA and Cityscapes in doc * move place of LoveDA and Cityscapes in doc Co-authored-by: MengzhangLI Co-authored-by: Junjun2016 --- configs/_base_/datasets/loveda.py | 54 ++++++++++ configs/deeplabv3plus/README.md | 8 ++ configs/deeplabv3plus/deeplabv3plus.yml | 66 +++++++++++++ ...eeplabv3plus_r101-d8_512x512_80k_loveda.py | 6 ++ ...deeplabv3plus_r18-d8_512x512_80k_loveda.py | 13 +++ ...deeplabv3plus_r50-d8_512x512_80k_loveda.py | 6 ++ configs/hrnet/README.md | 8 ++ configs/hrnet/fcn_hr18_512x512_80k_loveda.py | 4 + configs/hrnet/fcn_hr18s_512x512_80k_loveda.py | 11 +++ configs/hrnet/fcn_hr48_512x512_80k_loveda.py | 11 +++ configs/hrnet/hrnet.yml | 66 +++++++++++++ configs/pspnet/README.md | 28 ++++-- configs/pspnet/pspnet.yml | 66 +++++++++++++ .../pspnet_r101-d8_512x512_80k_loveda.py | 6 ++ .../pspnet_r18-d8_512x512_80k_loveda.py | 11 +++ .../pspnet_r50-d8_512x512_80k_loveda.py | 6 ++ docs/dataset_prepare.md | 33 +++++++ docs/inference.md | 22 +++++ docs_zh-CN/dataset_prepare.md | 37 ++++++- docs_zh-CN/inference.md | 24 ++++- mmseg/datasets/__init__.py | 3 +- mmseg/datasets/ade.py | 2 +- mmseg/datasets/cityscapes.py | 2 +- mmseg/datasets/loveda.py | 92 ++++++++++++++++++ .../data/pseudo_loveda_dataset/ann_dir/0.png | Bin 0 -> 6127 bytes .../data/pseudo_loveda_dataset/ann_dir/1.png | Bin 0 -> 13392 bytes .../data/pseudo_loveda_dataset/ann_dir/2.png | Bin 0 -> 5567 bytes .../data/pseudo_loveda_dataset/img_dir/0.png | Bin 0 -> 1761869 bytes .../data/pseudo_loveda_dataset/img_dir/1.png | Bin 0 -> 1765613 bytes .../data/pseudo_loveda_dataset/img_dir/2.png | Bin 0 -> 2082843 bytes tests/test_data/test_dataset.py | 30 +++++- tools/convert_datasets/loveda.py | 73 ++++++++++++++ 32 files changed, 670 insertions(+), 18 deletions(-) create mode 100644 configs/_base_/datasets/loveda.py create mode 100644 configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_loveda.py create mode 100644 configs/deeplabv3plus/deeplabv3plus_r18-d8_512x512_80k_loveda.py create mode 100644 configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_loveda.py create mode 100644 configs/hrnet/fcn_hr18_512x512_80k_loveda.py create mode 100644 configs/hrnet/fcn_hr18s_512x512_80k_loveda.py create mode 100644 configs/hrnet/fcn_hr48_512x512_80k_loveda.py create mode 100644 configs/pspnet/pspnet_r101-d8_512x512_80k_loveda.py create mode 100644 configs/pspnet/pspnet_r18-d8_512x512_80k_loveda.py create mode 100644 configs/pspnet/pspnet_r50-d8_512x512_80k_loveda.py create mode 100644 mmseg/datasets/loveda.py create mode 100644 tests/data/pseudo_loveda_dataset/ann_dir/0.png create mode 100644 tests/data/pseudo_loveda_dataset/ann_dir/1.png create mode 100644 tests/data/pseudo_loveda_dataset/ann_dir/2.png create mode 100644 tests/data/pseudo_loveda_dataset/img_dir/0.png create mode 100644 tests/data/pseudo_loveda_dataset/img_dir/1.png create mode 100644 tests/data/pseudo_loveda_dataset/img_dir/2.png create mode 100644 tools/convert_datasets/loveda.py diff --git a/configs/_base_/datasets/loveda.py b/configs/_base_/datasets/loveda.py new file mode 100644 index 0000000000..e553356959 --- /dev/null +++ b/configs/_base_/datasets/loveda.py @@ -0,0 +1,54 @@ +# dataset settings +dataset_type = 'LoveDADataset' +data_root = 'data/loveDA' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) +crop_size = (512, 512) +train_pipeline = [ + dict(type='LoadImageFromFile'), + dict(type='LoadAnnotations', reduce_zero_label=True), + dict(type='Resize', img_scale=(2048, 512), ratio_range=(0.5, 2.0)), + dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='RandomFlip', prob=0.5), + dict(type='PhotoMetricDistortion'), + dict(type='Normalize', **img_norm_cfg), + dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255), + dict(type='DefaultFormatBundle'), + dict(type='Collect', keys=['img', 'gt_semantic_seg']), +] +test_pipeline = [ + dict(type='LoadImageFromFile'), + dict( + type='MultiScaleFlipAug', + img_scale=(1024, 1024), + # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75], + flip=False, + transforms=[ + dict(type='Resize', keep_ratio=True), + dict(type='RandomFlip'), + dict(type='Normalize', **img_norm_cfg), + dict(type='ImageToTensor', keys=['img']), + dict(type='Collect', keys=['img']), + ]) +] +data = dict( + samples_per_gpu=4, + workers_per_gpu=4, + train=dict( + type=dataset_type, + data_root=data_root, + img_dir='img_dir/train', + ann_dir='ann_dir/train', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + data_root=data_root, + img_dir='img_dir/val', + ann_dir='ann_dir/val', + pipeline=test_pipeline), + test=dict( + type=dataset_type, + data_root=data_root, + img_dir='img_dir/val', + ann_dir='ann_dir/val', + pipeline=test_pipeline)) diff --git a/configs/deeplabv3plus/README.md b/configs/deeplabv3plus/README.md index c3e4340919..7efff620cc 100644 --- a/configs/deeplabv3plus/README.md +++ b/configs/deeplabv3plus/README.md @@ -85,6 +85,14 @@ | DeepLabV3+ | R-101-D8 | 480x480 | 40000 | - | - | 52.86 | 54.54 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59_20210416_111233-ed937f15.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59-20210416_111233.log.json) | | DeepLabV3+ | R-101-D8 | 480x480 | 80000 | - | - | 53.2 | 54.67 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59_20210416_111127-7ca0331d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59-20210416_111127.log.json) | +#### LoveDA + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ---------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | -------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| DeepLabV3+ | R-18-D8 | 512x512 | 80000 | 1.93 | 25.57 | 50.28 | 50.47 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r18-d8_512x512_80k_loveda.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_512x512_80k_loveda/deeplabv3plus_r18-d8_512x512_80k_loveda_20211104_132800-ce0fa0ca.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_512x512_80k_loveda/deeplabv3plus_r18-d8_512x512_80k_loveda_20211104_132800.log.json) | +| DeepLabV3+ | R-50-D8 | 512x512 | 80000 | 7.37 | 6.00 | 50.99 | 50.65 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_loveda.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_loveda/deeplabv3plus_r50-d8_512x512_80k_loveda_20211105_080442-f0720392.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_loveda/deeplabv3plus_r50-d8_512x512_80k_loveda_20211105_080442.log.json) | +| DeepLabV3+ | R-101-D8 | 512x512 | 80000 | 10.84 | 4.33 | 51.47 | 51.32 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_loveda.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_loveda/deeplabv3plus_r101-d8_512x512_80k_loveda_20211105_110759-4c1f297e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_loveda/deeplabv3plus_r101-d8_512x512_80k_loveda_20211105_110759.log.json) | + Note: - `FP16` means Mixed Precision (FP16) is adopted in training. diff --git a/configs/deeplabv3plus/deeplabv3plus.yml b/configs/deeplabv3plus/deeplabv3plus.yml index 7b54f5003e..93210ddc30 100644 --- a/configs/deeplabv3plus/deeplabv3plus.yml +++ b/configs/deeplabv3plus/deeplabv3plus.yml @@ -599,3 +599,69 @@ Models: mIoU(ms+flip): 54.67 Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59_20210416_111127-7ca0331d.pth +- Name: deeplabv3plus_r18-d8_512x512_80k_loveda + In Collection: deeplabv3plus + Metadata: + backbone: R-18-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 39.11 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 1.93 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 50.28 + mIoU(ms+flip): 50.47 + Config: configs/deeplabv3plus/deeplabv3plus_r18-d8_512x512_80k_loveda.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_512x512_80k_loveda/deeplabv3plus_r18-d8_512x512_80k_loveda_20211104_132800-ce0fa0ca.pth +- Name: deeplabv3plus_r50-d8_512x512_80k_loveda + In Collection: deeplabv3plus + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 166.67 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 7.37 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 50.99 + mIoU(ms+flip): 50.65 + Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_loveda.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_loveda/deeplabv3plus_r50-d8_512x512_80k_loveda_20211105_080442-f0720392.pth +- Name: deeplabv3plus_r101-d8_512x512_80k_loveda + In Collection: deeplabv3plus + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 230.95 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 10.84 + Results: + - Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 51.47 + mIoU(ms+flip): 51.32 + Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_loveda.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_loveda/deeplabv3plus_r101-d8_512x512_80k_loveda_20211105_110759-4c1f297e.pth diff --git a/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_loveda.py b/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_loveda.py new file mode 100644 index 0000000000..b3ad3cae2b --- /dev/null +++ b/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_loveda.py @@ -0,0 +1,6 @@ +_base_ = './deeplabv3plus_r50-d8_512x512_80k_loveda.py' +model = dict( + backbone=dict( + depth=101, + init_cfg=dict( + type='Pretrained', checkpoint='open-mmlab://resnet101_v1c'))) diff --git a/configs/deeplabv3plus/deeplabv3plus_r18-d8_512x512_80k_loveda.py b/configs/deeplabv3plus/deeplabv3plus_r18-d8_512x512_80k_loveda.py new file mode 100644 index 0000000000..11fe640234 --- /dev/null +++ b/configs/deeplabv3plus/deeplabv3plus_r18-d8_512x512_80k_loveda.py @@ -0,0 +1,13 @@ +_base_ = './deeplabv3plus_r50-d8_512x512_80k_loveda.py' +model = dict( + backbone=dict( + depth=18, + init_cfg=dict( + type='Pretrained', checkpoint='open-mmlab://resnet18_v1c')), + decode_head=dict( + c1_in_channels=64, + c1_channels=12, + in_channels=512, + channels=128, + ), + auxiliary_head=dict(in_channels=256, channels=64)) diff --git a/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_loveda.py b/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_loveda.py new file mode 100644 index 0000000000..62756f65ba --- /dev/null +++ b/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_loveda.py @@ -0,0 +1,6 @@ +_base_ = [ + '../_base_/models/deeplabv3plus_r50-d8.py', '../_base_/datasets/loveda.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' +] +model = dict( + decode_head=dict(num_classes=7), auxiliary_head=dict(num_classes=7)) diff --git a/configs/hrnet/README.md b/configs/hrnet/README.md index 61fb56ea0e..2babf2f574 100644 --- a/configs/hrnet/README.md +++ b/configs/hrnet/README.md @@ -73,3 +73,11 @@ | ------ | ------------ | --------- | ------: | -------- | -------------- | ----: | ------------: | ----------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | FCN | HRNetV2p-W48 | 480x480 | 40000 | - | - | 50.33 | 52.83 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr48_480x480_40k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context_59/fcn_hr48_480x480_40k_pascal_context_59_20210410_122738-b808b8b2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context_59/fcn_hr48_480x480_40k_pascal_context_59-20210410_122738.log.json) | | FCN | HRNetV2p-W48 | 480x480 | 80000 | - | - | 51.12 | 53.56 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr48_480x480_80k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context_59/fcn_hr48_480x480_80k_pascal_context_59_20210411_003240-3ae7081e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context_59/fcn_hr48_480x480_80k_pascal_context_59-20210411_003240.log.json) | + +#### LoveDA + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ---------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | -------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| FCN | HRNetV2p-W18-Small | 512x512 | 80000 | 1.72 | 30.07 | 49.3 | 49.23 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18s_512x512_80k_loveda.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_80k_loveda/fcn_hr18s_512x512_80k_loveda_20211105_180825-41dcc5dc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_80k_loveda/fcn_hr18s_512x512_80k_loveda_20211105_180825.log.json) | +| FCN | HRNetV2p-W18 | 512x512 | 80000 | 2.90 | 16.77 | 50.87 | 51.24 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18_512x512_80k_loveda.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_loveda/fcn_hr18_512x512_80k_loveda_20211105_165542-95be4d2b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_loveda/fcn_hr18_512x512_80k_loveda_20211105_165542.log.json) | +| FCN | HRNetV2p-W48 | 512x512 | 80000 | 6.25 | 9.09 | 51.04 | 51.12 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr48_512x512_80k_loveda.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_80k_loveda/fcn_hr48_512x512_80k_loveda_20211105_131509-f07e47c6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_80k_loveda/fcn_hr48_512x512_80k_loveda_20211105_131509.log.json) | diff --git a/configs/hrnet/fcn_hr18_512x512_80k_loveda.py b/configs/hrnet/fcn_hr18_512x512_80k_loveda.py new file mode 100644 index 0000000000..f7bc764f8f --- /dev/null +++ b/configs/hrnet/fcn_hr18_512x512_80k_loveda.py @@ -0,0 +1,4 @@ +_base_ = [ + '../_base_/models/fcn_hr18.py', '../_base_/datasets/loveda.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' +] diff --git a/configs/hrnet/fcn_hr18s_512x512_80k_loveda.py b/configs/hrnet/fcn_hr18s_512x512_80k_loveda.py new file mode 100644 index 0000000000..b39769ffc2 --- /dev/null +++ b/configs/hrnet/fcn_hr18s_512x512_80k_loveda.py @@ -0,0 +1,11 @@ +_base_ = './fcn_hr18_512x512_80k_loveda.py' +model = dict( + backbone=dict( + init_cfg=dict( + type='Pretrained', + checkpoint='open-mmlab://msra/hrnetv2_w18_small'), + extra=dict( + stage1=dict(num_blocks=(2, )), + stage2=dict(num_blocks=(2, 2)), + stage3=dict(num_modules=3, num_blocks=(2, 2, 2)), + stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2))))) diff --git a/configs/hrnet/fcn_hr48_512x512_80k_loveda.py b/configs/hrnet/fcn_hr48_512x512_80k_loveda.py new file mode 100644 index 0000000000..269dbf662d --- /dev/null +++ b/configs/hrnet/fcn_hr48_512x512_80k_loveda.py @@ -0,0 +1,11 @@ +_base_ = './fcn_hr18_512x512_80k_loveda.py' +model = dict( + backbone=dict( + init_cfg=dict( + type='Pretrained', checkpoint='open-mmlab://msra/hrnetv2_w48'), + extra=dict( + stage2=dict(num_channels=(48, 96)), + stage3=dict(num_channels=(48, 96, 192)), + stage4=dict(num_channels=(48, 96, 192, 384)))), + decode_head=dict( + in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384]))) diff --git a/configs/hrnet/hrnet.yml b/configs/hrnet/hrnet.yml index c4a13f7a65..885ed3183f 100644 --- a/configs/hrnet/hrnet.yml +++ b/configs/hrnet/hrnet.yml @@ -447,3 +447,69 @@ Models: mIoU(ms+flip): 53.56 Config: configs/hrnet/fcn_hr48_480x480_80k_pascal_context_59.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context_59/fcn_hr48_480x480_80k_pascal_context_59_20210411_003240-3ae7081e.pth +- Name: fcn_hr18s_512x512_80k_loveda + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W18-Small + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 33.26 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 1.72 + Results: + - Task: Semantic Segmentation + Dataset: Pascal Context 59 + Metrics: + mIoU: 49.3 + mIoU(ms+flip): 49.23 + Config: configs/hrnet/fcn_hr18s_512x512_80k_loveda.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_80k_loveda/fcn_hr18s_512x512_80k_loveda_20211105_180825-41dcc5dc.pth +- Name: fcn_hr18_512x512_80k_loveda + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W18 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 59.63 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 2.9 + Results: + - Task: Semantic Segmentation + Dataset: Pascal Context 59 + Metrics: + mIoU: 50.87 + mIoU(ms+flip): 51.24 + Config: configs/hrnet/fcn_hr18_512x512_80k_loveda.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_loveda/fcn_hr18_512x512_80k_loveda_20211105_165542-95be4d2b.pth +- Name: fcn_hr48_512x512_80k_loveda + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W48 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 110.01 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 6.25 + Results: + - Task: Semantic Segmentation + Dataset: Pascal Context 59 + Metrics: + mIoU: 51.04 + mIoU(ms+flip): 51.12 + Config: configs/hrnet/fcn_hr48_512x512_80k_loveda.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_80k_loveda/fcn_hr48_512x512_80k_loveda_20211105_131509-f07e47c6.pth diff --git a/configs/pspnet/README.md b/configs/pspnet/README.md index ad7fcdf4cc..995777f849 100644 --- a/configs/pspnet/README.md +++ b/configs/pspnet/README.md @@ -98,21 +98,29 @@ We support evaluation results on these two datasets using models above trained o | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | | --------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| PSPNet | R-50-D8 | 512x512 | 20000 | 9.6 | 20.5 | 35.69 | 36.62 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k_20210820_203258-b88df27f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k_20210820_203258.log.json) | -| PSPNet | R-101-D8 | 512x512 | 20000 | 13.2 | 11.1 | 37.26 | 38.52 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k_20210820_232135-76aae482.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k_20210820_232135.log.json) | -| PSPNet | R-50-D8 | 512x512 | 40000 | - | - | 36.33 | 37.24 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k_20210821_030857-92e2902b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k_20210821_030857.log.json) | -| PSPNet | R-101-D8 | 512x512 | 40000 | - | - | 37.76 | 38.86 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k_20210821_014022-831aec95.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k_20210821_014022.log.json) | +| PSPNet | R-50-D8 | 512x512 | 20000 | 9.6 | 20.5 | 35.69 | 36.62 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k_20210820_203258-b88df27f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k_20210820_203258.log.json) | +| PSPNet | R-101-D8 | 512x512 | 20000 | 13.2 | 11.1 | 37.26 | 38.52 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k_20210820_232135-76aae482.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k_20210820_232135.log.json) | +| PSPNet | R-50-D8 | 512x512 | 40000 | - | - | 36.33 | 37.24 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k_20210821_030857-92e2902b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k_20210821_030857.log.json) | +| PSPNet | R-101-D8 | 512x512 | 40000 | - | - | 37.76 | 38.86 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k_20210821_014022-831aec95.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k_20210821_014022.log.json) | ### COCO-Stuff 164k | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | | --------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| PSPNet | R-50-D8 | 512x512 | 80000 | 9.6 | 20.5 | 38.80 | 39.19 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k_20210707_152034-0e41b2db.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k_20210707_152034.log.json) | -| PSPNet | R-101-D8 | 512x512 | 80000 | 13.2 | 11.1 | 40.34 | 40.79 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k_20210707_152034-7eb41789.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k_20210707_152034.log.json) | -| PSPNet | R-50-D8 | 512x512 | 160000 | - | - | 39.64 | 39.97 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k_20210707_152004-51276a57.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k_20210707_152004.log.json) | -| PSPNet | R-101-D8 | 512x512 | 160000 | - | - | 41.28 | 41.66 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k_20210707_152004-4af9621b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k_20210707_152004.log.json) | -| PSPNet | R-50-D8 | 512x512 | 320000 | - | - | 40.53 | 40.75 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004-be9610cc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004.log.json) | -| PSPNet | R-101-D8 | 512x512 | 320000 | - | - | 41.95 | 42.42 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004-72220c60.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004.log.json) | +| PSPNet | R-50-D8 | 512x512 | 80000 | 9.6 | 20.5 | 38.80 | 39.19 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k_20210707_152034-0e41b2db.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k_20210707_152034.log.json) | +| PSPNet | R-101-D8 | 512x512 | 80000 | 13.2 | 11.1 | 40.34 | 40.79 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k_20210707_152034-7eb41789.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k_20210707_152034.log.json) | +| PSPNet | R-50-D8 | 512x512 | 160000 | - | - | 39.64 | 39.97 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k_20210707_152004-51276a57.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k_20210707_152004.log.json) | +| PSPNet | R-101-D8 | 512x512 | 160000 | - | - | 41.28 | 41.66 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k_20210707_152004-4af9621b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k_20210707_152004.log.json) | +| PSPNet | R-50-D8 | 512x512 | 320000 | - | - | 40.53 | 40.75 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004-be9610cc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004.log.json) | +| PSPNet | R-101-D8 | 512x512 | 320000 | - | - | 41.95 | 42.42 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004-72220c60.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004.log.json) | + +#### LoveDA + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ---------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | -------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| PSPNet | R-18-D8 | 512x512 | 80000 | 1.45 | 26.87 | 48.62 | 47.57 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r18-d8_512x512_80k_loveda.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_512x512_80k_loveda/pspnet_r18-d8_512x512_80k_loveda_20211105_052100-b97697f1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_512x512_80k_loveda/pspnet_r18-d8_512x512_80k_loveda_20211105_052100.log.json) | +| PSPNet | R-50-D8 | 512x512 | 80000 | 6.14 | 6.60 | 50.46 | 50.19 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r50-d8_512x512_80k_loveda.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_80k_loveda/pspnet_r50-d8_512x512_80k_loveda_20211104_155728-88610f9f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_80k_loveda/pspnet_r50-d8_512x512_80k_loveda_20211104_155728.log.json) | +| PSPNet | R-101-D8 | 512x512 | 80000 | 9.61 | 4.58 | 51.86 | 51.34 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_512x512_80k_loveda.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_80k_loveda/pspnet_r101-d8_512x512_80k_loveda_20211104_153212-1c06c6a8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_80k_loveda/pspnet_r101-d8_512x512_80k_loveda_20211104_153212.log.json) | Note: diff --git a/configs/pspnet/pspnet.yml b/configs/pspnet/pspnet.yml index 1a46b4632a..c951269cec 100644 --- a/configs/pspnet/pspnet.yml +++ b/configs/pspnet/pspnet.yml @@ -741,3 +741,69 @@ Models: mIoU(ms+flip): 42.42 Config: configs/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k.py Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004-72220c60.pth +- Name: pspnet_r18-d8_512x512_80k_loveda + In Collection: pspnet + Metadata: + backbone: R-18-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 37.22 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 1.45 + Results: + - Task: Semantic Segmentation + Dataset: COCO-Stuff 164k + Metrics: + mIoU: 48.62 + mIoU(ms+flip): 47.57 + Config: configs/pspnet/pspnet_r18-d8_512x512_80k_loveda.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_512x512_80k_loveda/pspnet_r18-d8_512x512_80k_loveda_20211105_052100-b97697f1.pth +- Name: pspnet_r50-d8_512x512_80k_loveda + In Collection: pspnet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 151.52 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 6.14 + Results: + - Task: Semantic Segmentation + Dataset: COCO-Stuff 164k + Metrics: + mIoU: 50.46 + mIoU(ms+flip): 50.19 + Config: configs/pspnet/pspnet_r50-d8_512x512_80k_loveda.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_80k_loveda/pspnet_r50-d8_512x512_80k_loveda_20211104_155728-88610f9f.pth +- Name: pspnet_r101-d8_512x512_80k_loveda + In Collection: pspnet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 218.34 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 9.61 + Results: + - Task: Semantic Segmentation + Dataset: COCO-Stuff 164k + Metrics: + mIoU: 51.86 + mIoU(ms+flip): 51.34 + Config: configs/pspnet/pspnet_r101-d8_512x512_80k_loveda.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_80k_loveda/pspnet_r101-d8_512x512_80k_loveda_20211104_153212-1c06c6a8.pth diff --git a/configs/pspnet/pspnet_r101-d8_512x512_80k_loveda.py b/configs/pspnet/pspnet_r101-d8_512x512_80k_loveda.py new file mode 100644 index 0000000000..03c0251f6c --- /dev/null +++ b/configs/pspnet/pspnet_r101-d8_512x512_80k_loveda.py @@ -0,0 +1,6 @@ +_base_ = './pspnet_r50-d8_512x512_80k_loveda.py' +model = dict( + backbone=dict( + depth=101, + init_cfg=dict( + type='Pretrained', checkpoint='open-mmlab://resnet101_v1c'))) diff --git a/configs/pspnet/pspnet_r18-d8_512x512_80k_loveda.py b/configs/pspnet/pspnet_r18-d8_512x512_80k_loveda.py new file mode 100644 index 0000000000..dbb832b244 --- /dev/null +++ b/configs/pspnet/pspnet_r18-d8_512x512_80k_loveda.py @@ -0,0 +1,11 @@ +_base_ = './pspnet_r50-d8_512x512_80k_loveda.py' +model = dict( + backbone=dict( + depth=18, + init_cfg=dict( + type='Pretrained', checkpoint='open-mmlab://resnet18_v1c')), + decode_head=dict( + in_channels=512, + channels=128, + ), + auxiliary_head=dict(in_channels=256, channels=64)) diff --git a/configs/pspnet/pspnet_r50-d8_512x512_80k_loveda.py b/configs/pspnet/pspnet_r50-d8_512x512_80k_loveda.py new file mode 100644 index 0000000000..830af482ef --- /dev/null +++ b/configs/pspnet/pspnet_r50-d8_512x512_80k_loveda.py @@ -0,0 +1,6 @@ +_base_ = [ + '../_base_/models/pspnet_r50-d8.py', '../_base_/datasets/loveda.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' +] +model = dict( + decode_head=dict(num_classes=7), auxiliary_head=dict(num_classes=7)) diff --git a/docs/dataset_prepare.md b/docs/dataset_prepare.md index 468eceac2b..70ab9b3f38 100644 --- a/docs/dataset_prepare.md +++ b/docs/dataset_prepare.md @@ -108,6 +108,14 @@ mmsegmentation | | └── leftImg8bit | | | └── test | | | └── night +│ ├── loveDA +│ │ ├── img_dir +│ │ │ ├── train +│ │ │ ├── val +│ │ │ ├── test +│ │ ├── ann_dir +│ │ │ ├── train +│ │ │ ├── val ``` ### Cityscapes @@ -253,3 +261,28 @@ Since we only support test models on this dataset, you may only download [the va ### Nighttime Driving Since we only support test models on this dataset, you may only download [the test set](http://data.vision.ee.ethz.ch/daid/NighttimeDriving/NighttimeDrivingTest.zip). + +### LoveDA + +The data could be downloaded from Google Drive [here](https://drive.google.com/drive/folders/1ibYV0qwn4yuuh068Rnc-w4tPi0U0c-ti?usp=sharing). + +Or it can be downloaded from [zenodo](https://zenodo.org/record/5706578#.YZvN7SYRXdF), you should run the following command: + +```shell +# Download Train.zip +wget https://zenodo.org/record/5706578/files/Train.zip +# Download Val.zip +wget https://zenodo.org/record/5706578/files/Val.zip +# Download Test.zip +wget https://zenodo.org/record/5706578/files/Test.zip +``` + +For LoveDA dataset, please run the following command to download and re-organize the dataset. + +```shell +python tools/convert_datasets/loveda.py /path/to/loveDA +``` + +Using trained model to predict test set of LoveDA and submit it to server can be found [here](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/inference.md). + +More details about LoveDA can be found [here](https://github.com/Junjue-Wang/LoveDA). diff --git a/docs/inference.md b/docs/inference.md index 632400d343..863a8a3f3d 100644 --- a/docs/inference.md +++ b/docs/inference.md @@ -101,3 +101,25 @@ Assume that you have already downloaded the checkpoints to the directory `checkp ``` Using ```pmap``` to view CPU memory footprint, it used 2.25GB CPU memory with ```efficient_test=True``` and 11.06GB CPU memory with ```efficient_test=False``` . This optional parameter can save a lot of memory. (After mmseg v0.17, efficient_test has not effect and we use a progressive mode to evaluation and format results efficiently by default.) + +7. Test PSPNet on LoveDA test split with 1 GPU, and generate the png files to be submit to the official evaluation server. + + First, add following to config file `configs/pspnet/pspnet_r50-d8_512x512_80k_loveda.py`, + + ```python + data = dict( + test=dict( + img_dir='img_dir/test', + ann_dir='ann_dir/test')) + ``` + + Then run test. + + ```shell + python ./tools/test.py configs/pspnet/pspnet_r50-d8_512x512_80k_loveda.py \ + checkpoints/pspnet_r50-d8_512x512_80k_loveda_20211104_155728-88610f9f.pth \ + --format-only --eval-options "imgfile_prefix=./pspnet_test_results" + ``` + + You will get png files under `./pspnet_test_results` directory. + You may run `zip -r -j Results.zip pspnet_test_results/` and submit the zip file to [evaluation server](https://competitions.codalab.org/competitions/35865#participate-submit_results). diff --git a/docs_zh-CN/dataset_prepare.md b/docs_zh-CN/dataset_prepare.md index 72fed1ccda..da50febeb0 100644 --- a/docs_zh-CN/dataset_prepare.md +++ b/docs_zh-CN/dataset_prepare.md @@ -89,6 +89,14 @@ mmsegmentation | | └── leftImg8bit | | | └── test | | | └── night +│ ├── loveDA +│ │ ├── img_dir +│ │ │ ├── train +│ │ │ ├── val +│ │ │ ├── test +│ │ ├── ann_dir +│ │ │ ├── train +│ │ │ ├── val ``` ### Cityscapes @@ -190,8 +198,33 @@ python tools/convert_datasets/stare.py /path/to/stare-images.tar /path/to/labels ### Dark Zurich -因为我们只支持在此数据集上测试模型,所以您只需下载[验证集](https://data.vision.ee.ethz.ch/csakarid/shared/GCMA_UIoU/Dark_Zurich_val_anon.zip)。 +因为我们只支持在此数据集上测试模型,所以您只需下载[验证集](https://data.vision.ee.ethz.ch/csakarid/shared/GCMA_UIoU/Dark_Zurich_val_anon.zip) 。 ### Nighttime Driving -因为我们只支持在此数据集上测试模型,所以您只需下载[测试集](http://data.vision.ee.ethz.ch/daid/NighttimeDriving/NighttimeDrivingTest.zip)。 +因为我们只支持在此数据集上测试模型,所以您只需下载[测试集](http://data.vision.ee.ethz.ch/daid/NighttimeDriving/NighttimeDrivingTest.zip) 。 + +### LoveDA + +可以从 Google Drive 里下载 [LoveDA数据集](https://drive.google.com/drive/folders/1ibYV0qwn4yuuh068Rnc-w4tPi0U0c-ti?usp=sharing) 。 + +或者它还可以从 [zenodo](https://zenodo.org/record/5706578#.YZvN7SYRXdF) 下载, 您需要运行如下命令: + +```shell +# Download Train.zip +wget https://zenodo.org/record/5706578/files/Train.zip +# Download Val.zip +wget https://zenodo.org/record/5706578/files/Val.zip +# Download Test.zip +wget https://zenodo.org/record/5706578/files/Test.zip +``` + +对于 LoveDA 数据集,请运行以下命令下载并重新组织数据集 + +```shell +python tools/convert_datasets/loveda.py /path/to/loveDA +``` + +请参照 [这里](https://github.com/open-mmlab/mmsegmentation/blob/master/docs_zh-CN/inference.md) 来使用训练好的模型去预测 LoveDA 测试集并且提交到官网。 + +关于 LoveDA 的更多细节可以在[这里](https://github.com/Junjue-Wang/LoveDA) 找到。 diff --git a/docs_zh-CN/inference.md b/docs_zh-CN/inference.md index 7d14bb980d..7dad83471e 100644 --- a/docs_zh-CN/inference.md +++ b/docs_zh-CN/inference.md @@ -84,7 +84,7 @@ python tools/test.py ${配置文件} ${检查点文件} [--out ${结果文件}] ``` 您会在文件夹 `./pspnet_test_results` 里得到生成的 png 文件。 - 您也许可以运行 `zip -r results.zip pspnet_test_results/` 并提交 zip 文件给 [evaluation server](https://www.cityscapes-dataset.com/submit/)。 + 您也许可以运行 `zip -r results.zip pspnet_test_results/` 并提交 zip 文件给 [evaluation server](https://www.cityscapes-dataset.com/submit/) 。 6. 在 Cityscapes 数据集上使用 CPU 高效内存选项来测试 DeeplabV3+ `mIoU` 指标 (没有保存测试结果) @@ -97,3 +97,25 @@ python tools/test.py ${配置文件} ${检查点文件} [--out ${结果文件}] ``` 使用 ```pmap``` 可查看 CPU 内存情况, ```efficient_test=True``` 会使用约 2.25GB 的 CPU 内存, ```efficient_test=False``` 会使用约 11.06GB 的 CPU 内存。 这个可选参数可以节约很多 CPU 内存。(MMseg v0.17 之后, `efficient_test` 参数将不再生效, 我们使用了一种渐近的方式来更加有效快速地评估和保存结果。) + +7. 在 LoveDA 数据集上1卡 GPU 测试 PSPNet, 并生成 png 文件以便提交给官方评估服务器 + + 首先,在配置文件里添加内容: `configs/pspnet/pspnet_r50-d8_512x512_80k_loveda.py`, + + ```python + data = dict( + test=dict( + img_dir='img_dir/test', + ann_dir='ann_dir/test')) + ``` + + 随后,进行测试。 + + ```shell + python ./tools/test.py configs/pspnet/pspnet_r50-d8_512x512_80k_loveda.py \ + checkpoints/pspnet_r50-d8_512x512_80k_loveda_20211104_155728-88610f9f.pth \ + --format-only --eval-options "imgfile_prefix=./pspnet_test_results" + ``` + + 您会在文件夹 `./pspnet_test_results` 里得到生成的 png 文件。 + 您也许可以运行 `zip -r -j Results.zip pspnet_test_results/` 并提交 zip 文件给 [evaluation server](https://competitions.codalab.org/competitions/35865#participate-submit_results) 。 diff --git a/mmseg/datasets/__init__.py b/mmseg/datasets/__init__.py index 4b8e124cf8..c115ab796f 100644 --- a/mmseg/datasets/__init__.py +++ b/mmseg/datasets/__init__.py @@ -9,6 +9,7 @@ from .dataset_wrappers import ConcatDataset, RepeatDataset from .drive import DRIVEDataset from .hrf import HRFDataset +from .loveda import LoveDADataset from .night_driving import NightDrivingDataset from .pascal_context import PascalContextDataset, PascalContextDataset59 from .stare import STAREDataset @@ -20,5 +21,5 @@ 'PascalVOCDataset', 'ADE20KDataset', 'PascalContextDataset', 'PascalContextDataset59', 'ChaseDB1Dataset', 'DRIVEDataset', 'HRFDataset', 'STAREDataset', 'DarkZurichDataset', 'NightDrivingDataset', - 'COCOStuffDataset' + 'COCOStuffDataset', 'LoveDADataset' ] diff --git a/mmseg/datasets/ade.py b/mmseg/datasets/ade.py index d807a001a0..db94cebd3b 100644 --- a/mmseg/datasets/ade.py +++ b/mmseg/datasets/ade.py @@ -94,7 +94,7 @@ def results2img(self, results, imgfile_prefix, to_label_id, indices=None): """Write the segmentation results to images. Args: - results (list[list | tuple | ndarray]): Testing results of the + results (list[ndarray]): Testing results of the dataset. imgfile_prefix (str): The filename prefix of the png files. If the prefix is "somepath/xxx", diff --git a/mmseg/datasets/cityscapes.py b/mmseg/datasets/cityscapes.py index 2be00d6848..ed633d00db 100644 --- a/mmseg/datasets/cityscapes.py +++ b/mmseg/datasets/cityscapes.py @@ -52,7 +52,7 @@ def results2img(self, results, imgfile_prefix, to_label_id, indices=None): """Write the segmentation results to images. Args: - results (list[list | tuple | ndarray]): Testing results of the + results (list[ndarray]): Testing results of the dataset. imgfile_prefix (str): The filename prefix of the png files. If the prefix is "somepath/xxx", diff --git a/mmseg/datasets/loveda.py b/mmseg/datasets/loveda.py new file mode 100644 index 0000000000..90d654f625 --- /dev/null +++ b/mmseg/datasets/loveda.py @@ -0,0 +1,92 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp + +import mmcv +import numpy as np +from PIL import Image + +from .builder import DATASETS +from .custom import CustomDataset + + +@DATASETS.register_module() +class LoveDADataset(CustomDataset): + """LoveDA dataset. + + In segmentation map annotation for LoveDA, 0 is the ignore index. + ``reduce_zero_label`` should be set to True. The ``img_suffix`` and + ``seg_map_suffix`` are both fixed to '.png'. + """ + CLASSES = ('background', 'building', 'road', 'water', 'barren', 'forest', + 'agricultural') + + PALETTE = [[255, 255, 255], [255, 0, 0], [255, 255, 0], [0, 0, 255], + [159, 129, 183], [0, 255, 0], [255, 195, 128]] + + def __init__(self, **kwargs): + super(LoveDADataset, self).__init__( + img_suffix='.png', + seg_map_suffix='.png', + reduce_zero_label=True, + **kwargs) + + def results2img(self, results, imgfile_prefix, indices=None): + """Write the segmentation results to images. + + Args: + results (list[ndarray]): Testing results of the + dataset. + imgfile_prefix (str): The filename prefix of the png files. + If the prefix is "somepath/xxx", + the png files will be named "somepath/xxx.png". + indices (list[int], optional): Indices of input results, if not + set, all the indices of the dataset will be used. + Default: None. + + Returns: + list[str: str]: result txt files which contains corresponding + semantic segmentation images. + """ + + mmcv.mkdir_or_exist(imgfile_prefix) + result_files = [] + for result, idx in zip(results, indices): + + filename = self.img_infos[idx]['filename'] + basename = osp.splitext(osp.basename(filename))[0] + + png_filename = osp.join(imgfile_prefix, f'{basename}.png') + + # The index range of official requirement is from 0 to 6. + output = Image.fromarray(result.astype(np.uint8)) + output.save(png_filename) + result_files.append(png_filename) + + return result_files + + def format_results(self, results, imgfile_prefix, indices=None): + """Format the results into dir (standard format for LoveDA evaluation). + + Args: + results (list): Testing results of the dataset. + imgfile_prefix (str): The prefix of images files. It + includes the file path and the prefix of filename, e.g., + "a/b/prefix". + indices (list[int], optional): Indices of input results, + if not set, all the indices of the dataset will be used. + Default: None. + + Returns: + tuple: (result_files, tmp_dir), result_files is a list containing + the image paths, tmp_dir is the temporal directory created + for saving json/png files when img_prefix is not specified. + """ + if indices is None: + indices = list(range(len(self))) + + assert isinstance(results, list), 'results must be a list.' + assert isinstance(indices, list), 'indices must be a list.' + + result_files = self.results2img(results, imgfile_prefix, indices) + + return result_files diff --git a/tests/data/pseudo_loveda_dataset/ann_dir/0.png b/tests/data/pseudo_loveda_dataset/ann_dir/0.png new file mode 100644 index 0000000000000000000000000000000000000000..7823fd6717a0f875212b697f32607956f5962d5c GIT binary patch literal 6127 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 C`FNH9 literal 0 HcmV?d00001 diff --git a/tests/data/pseudo_loveda_dataset/ann_dir/1.png b/tests/data/pseudo_loveda_dataset/ann_dir/1.png new file mode 100644 index 0000000000000000000000000000000000000000..bc50ac11ec09bab77070cdc18849d31982a8e3d6 GIT binary patch literal 13392 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 literal 0 HcmV?d00001 diff --git a/tests/data/pseudo_loveda_dataset/ann_dir/2.png b/tests/data/pseudo_loveda_dataset/ann_dir/2.png new file mode 100644 index 0000000000000000000000000000000000000000..c1828385131c73a2dc06e07ffd80cce80251dae5 GIT binary patch literal 5567 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 Hr5XPOnIE3t literal 0 HcmV?d00001 diff --git a/tests/data/pseudo_loveda_dataset/img_dir/0.png b/tests/data/pseudo_loveda_dataset/img_dir/0.png new file mode 100644 index 0000000000000000000000000000000000000000..03a06523962ecedb134f90e310dbbd9dda4cb9ac GIT binary patch literal 1761869 zcmV)aK&roqP){q0YhC)aWd(piej=gvp3jA8rBwF~on%wxvwb#-@6cflK^G1mE|x&({s zcMjiR+x8MPQ>%Mb7FTS$Gjc9>g6x&(-mkX^%XKHS>k#Y3E z{pU|V{`m64_qC2yE6?@v`3KnG@ay%K{pcR%yUHr>HQ%<7ajPs9wwIS9CnBg;u7KBh zY_}H%7-Qbw%*M?3Pp_NrFm29@Z?7Y6>QU!I%(a%V#x{Hyv(8%U0mdua6vJ(+SjX{2 zTBt)z>M_Qq%6i;^P1wQ9wq5twBldmwabwoX^K`+;c^=i}yN?TOYnS>9{CN54$G`df z{nc?+-n$M!g@eOdYaU0Q%yUY%jeU#_+^|5qG*OMm{e3?2{r%$~{`ki~{``0Mynn2D zfBSIvLZDfzj4$J|XC24!Sh^l(y}v!q^A1P5#AHK zz9-gPr}=Pf=%HfPU7cngpsPV1Rju&-61$H9A8b3i?=;yqfT~QpZ2RS9j3IiZj^o$s ze%Y?qZT5Z~H`rf&{`5DWKL3Y*^%wg5{eS(Z|N8&)um9yA|KX3xxPAAB>+Ofis+m46 z+jiZzE1B!@RgUeuPmg^3{`0TLEX2!x4erH#4j-4ej_vk({q7oEAMd~Y@%Oi1zh1W2 z+sn;&N6*be=Q8^K@~IhLfB*9HpZ-*cm(M@#w@tPHLF}%q^qXFOya4?AcVFKBbQoS@ zH^1Tb`ttJnIv?+kufMr%pFVxRlNWcaLw)?=uYTJ1@%t~ouhZ7rIb!0YW3~wF$H!`Q z)*RO{wx~QSPt6$?)@+T^#m1*?Y}Cy4Q9Y{~CLxWG&@i<{T#u*l|Ni^7y}W+QRh59?zflM+kP_wT<5$KxmMBf^7;F1djV*s`^VR;1pv9A-fl17{oya?aeV#y z+cqwB^yB`X&2#mvIzGN?p0BT;$A0;%fBHZ0ZU6f9=lkQgIX_gYrER-y+f_+=tXydN z*g#uVSrdWu<(sj^M93S=MxBS4u>%m7YjSMEEX~S?XF+!9w$|#-YH;kidcJ>HwM*C6 z%U}Pqzln>!{`#l;*ZUr~!65qOa=X4^gP>P1glr$k$9N(<~PSJ>`FuR zqdH5yR>G{%Ex8W?UF9~$ekFubtLr$Jlj_eu{Ncx+esZccfud~NuI8>)C^T8@MEhj} zJM++*$mW9C@aqk>Ne%!qDQTVSn0ardM+lyClEZwjnqgE93vEUoWFt;%_L%V_S zngzJWAV75IInVd%#jqxuF1JNM#pZ4{NarBEt5z3c*uG^~&7y(;Isp<^l-$(PEH*3% zQ!BIA%Gr{|ARH+gopea-T4z_9JK+)qlRG_NW++qlDrN%IcHwwI`g(u2s>{BG$-O}J zTw#8Bc`2>6rp3l_Ip%pD5A;-hbe$uvw5@7c&^G~z#vWtauS;FCs+$&WdpA_5%sD5J z3|NG5n6}Dpx46Bkgfv3{3G422tp{vi+ggH{x!kC{S3O#0y2SP=#;rSHWfrQn)~PjP zFt(vpYo!A#GgV{1`0!TFIotPf{b9fTuv2?`iYiYjy*H~HYKWQkzHp+$HAtsj4Lc0Pto7dc(6oL8wRwPX&`+tmNd)DFAOZ&8 zd|dV}osW;M6@U8m*A%f|w(EBlpIWa8RvdV}#ixsXjYh?OsYjCo?%VY?w(%h5<3l|o zuD%5k<8rZKh*!dzcCJb1zFpSG`)ak5wUR~*UVFu3>kz@<5-6OYDBT-DcJ9?&16Oswxp?QFDZ~n|xd? zqN>j0=;OF;muqe>li^#$ah{abv9NWF zuy&|p40ZRJ!}sC4*}mrEc$+VL*)A`)mmjiFdFJCi_A3}~zx>%R-mQ@q5vUMnL`Gae zV1yfh%W;+%bv#UxDg1K%?vh#L2p$U$ z9YBG|dbjZKknP6pJ->SF+xAMgs!;Y?DZgj)JozZ*u=ryyJ zIa{RYv4ssN3(ZEWMVfofZcs9ofgw8GMuhkxH0h=FsO5~K=5kHTfw^C|?Xrh&m8`QD zC)(X^W7}Igj&~}Rr;3}j?YC_|s!#ZKyuYpY_wCjDdPA7|ZRM=9{nWl)AN_H>eXX3A z*Ny5F2W>dlvHW@&aT&3*(Q~EQcDo3j>mV#_t32o8xLj>3AJ!9UX>mQyBP^A0C($Xy zplmQy{P^>)UynOIz*j49;|QK!$J>KAd)ewtwY9Oajt5y}ySbV*L5=y|Gv2n#l+D%C zMi|bak!O*m9W>`sF_Xy&B*aEzeE*-Mz2 zk7*qqWN-Tzm+SkNFP*dNi2d3LgS%e@c6aq8+Eh6oy)qD+-*TvTtMk#C)eSfhmA&1D zK!RgjdH*UAwh0R~fDNDuAT27@sH`bSODwXjTkJ|LxZ5zm0JorO!OJ$2&D3&QwPlr| z%*=gfTb;*RXRhp8)?K-3VI3y`D~9iefXoPUw+IVMErt^|#-=QFn(ta&<&s^tY>D~(PSzJoC+=rRLL_x~zcdfH(2X+w>U;>*W zT4r{=?yoPGoBPHwuyeilxiqH+3tKX%mI@7QLmZu5trn;d!W|?flsan~#16CF0CjdQ zp)3fXa+-zvaAW1_b((MP(WLtb8iejRirm%sSfJEj?`XJcZ(!id6VWq<%V z*aT{(h<3o5RR$AxbQ@p@Gj$hLNC;4$nX79=U%3K`wr+OSqT3cPO{=U*ag|#G4J)(> zNl9I(Qz&#AS`7g(fFN1jF0{}fFd+#vH<&VKu31g@aQElUVDwgrLN_6Ez{zlR&(JtHW7VIs1f;3aL+E8n$ z(u0j&E8ApdsuI{WVF0=Xv*40e7N%1)5=a<4939;}PEuDhmD<1+28v zH0tr8^;k}*TPcbj<94~cyo}hCXwvs#HfC1U7X!C3;`68TJn7i4uYKGp0J4 zY@$7YJbE6+yk5rN{F8tBAN=!w{^>9O8kaqP`P1Khyqoi~UC^lcxW0Z5uG_`G{(S70 z4JG$+x%gJYfUb7;RVy>q=eXTii*Sn<8__E<5rJ`i#da+?Q#P)ZYh|z1FE5`f8SyFe zq+M>;%gW>NWqRx}ZowgR4EEXkcJs@&)(H{_4k^{u`B>X_b6j2qs&dn3B$eA30ljMj z1J%7>F7N@G%CpS}tdo5QF)RD{oxZh}(Yi+PWenf1r zT3sUublP*!)D0TU8d5DIx|hYE$>7eYhL5W;%nlTkFh&>7_mi(1{R;H$^G}9LemUv% zJ?2?i%gov=Rl}`n$;{0qJ?{y#kO+5TlPe9ivH(+;W!J%(+8xm_x44otG3(KbIn4(N zU~8|f*O|xSV@7MDKOT>d`Ih+ZdfPsY?|=C5hhP5q=Xo@9BeoVLH{WHw&X1tX3~(#j z^%7&lJ;^|9Sb?@K>bjM2t%>eIHd*8M_wH85njPk}QZ5@;*w%BF2o4)=ozk3r_ZlVn zFa>On{nJa_E^8jv?LG`;w6NgidfBgWpXfF|Pqo=~CSt8ru5`JP;}$U%x+>9h3zXGT zH^>3ln$_LuHZaV?y%g|!kFu)1t7%TgnGsf618!2@I0-Dz5UF+fK5jUr4 zR;LYYrh)3%cOuXn+cwqb{R7I)SXq_nG2DjvsGfu>Q}fXveUJq#snk*vh-ybK_~6)i z+0nD-lnib37Yo24qxrV`xLq&fX7o&)$TZwwk#lt|p=+HSx9e?xx!pd0db!Z7Y_7G= zm07*i9+1P95fEl;cEcnK)@nggKTE4IHo&Deso55rK!6@j z4{<0G{9k00TkIPwb)V$X0i=vno-j8 zF{HXAbg=~vhM55X8hJu0sp-V}u*2R$F4J39Ze{H~>iMN>VhKw@D(6WhQKa8ifQc!a-B6Fe+34 zt;W6+tdhRXhZZKMRcwP`W5G@FR5C9tb4FXQt~wKDZd^UP613{7W=WO>zzl$86{v2x zJHq>$6r$*`%|tfj+n~xdfv(E#GBSK4HyIltfij0t3pku}3@W+0RIm|kntddzLsiv{ z7J-c%;4)(p+~diokc1JW8Gz0?TT&9( zqsLFus72PUgbH0t&1Q34w(YyN_m|73Pe1*|{mU=!zyDILIaki^?90pL^7;FHzXchu zH#3*A;U1GLr@_%Ne7|NVvGwDj`<)J>wgETEy_TtH{*v>ktbg_&|Ihxj|Mh?Ipa19o zV-Ek{|L^|K|Kb4N8ktf(;3hxL;TyDev z=CA+yKlxAohd=$(|KO32fB&!kMZf>@dcCM=G}XFYUvhnH+o$#so85o;)AxV%H(R{) znu8{xEhxpWc-cTlGPUHlh2n ze_Dy-IQ4j!AH5fk^Qrp+^6j?!?mm!h?)xPo)awXu^3Cm_3=tt+E@NDvVi8XBS{GcG=@{IoF@_Sg?c#fz`9Sdgkh5E#BYn$H&*V-;SUE{vUq%?N4Vv z{_?;7PxtSB`s1&^{`r?*&zZix$j7wG;`R1pkK^s_PxeUb(H<+$^Sn#h=p*kFtBudf zgXS_d1fnu+dwF^Ne$Kabeq`mURVHF>p>s{pWqIT*Bsp5lHAOx(19-N+F2`s72!yAc&M& zT`U{cI@L*DFg6S@#A{U4BR}$dzu4tsgMwp3#Nh2dF2f#y)u4srd~_GDSB|TC&Ytg& zH!p~Qp%c|+*sFrdnun@+`AjnNthK5!5WO0uaF5s!ZE#hgfo9KDeW)vfF^moeOjNJ) ztWEswOaLLdtz`i##97=j=k&UB@KkBNRp&Z7_CfngxW+Wk%3qTufZ7 z8mf5=AWTNJkaJpFY%i*WSXt+J+BrB}M9nlyGc$NsnU!yJBf~6$--N=gvSCIF$S!na zcyRcc4H6chgM?)6)RyPj=d=jlFYcRhb8{P`%Bngwku&>|eIQdXAM48NEqs^^9s9Ow zKIXmT(yek7*bTXH7{a;^!ks>16TvQZ3T^u!*{cjj3}Gju33NFqolp9goaI`$joC&pc`+47IW~X|or)>F)G~4hq25 zv}%dHI%#5f8yZQ2!C=E9SXz&1qkY)eH0QBO)PkElS}c@hpjj$&u4<>LtuiwuIRw!x z+&RD@6x8aZDLfDxF1s+af=Yvt{o?T4_X(R|Z z2Wf(;K@li*1N1Gx*6Ln|4Z=uIpdD5}#3Vh{6X_Ord9Op013N`?{K(P`io z(a{>4SfCYp&C|o(#(X?-wN>XzxvH~Jl`U!VWSXfB-g9-I<^fdov~U=eG{1CrEnpbw z46B?}+t>>P1a>1KQuA{xw@;%;TMAmsWlT*IL#`kh04rc;Una> zFi&PWORCj%f(Sqgf;#~sVb$Ha64oX+Y+=_iF5Jm(gZe;Mb-_t<7l(R4>}03VjtBup zng>mw@C2W$BKcX#o&dtP4bh$R`2EZM&;KUh{?7F^uS(p8CjpGfqDsHc}inF@q zv~m6HQfwD*Xp-Aj!>Oi|14VY5ooU0am(T00fMVaxx^-G>bE=8b58wR<|BL_pzxZGM z7yrw@`Dg#+PPvB0Q*xk0SJO#nv&Qewx%*|lES){vO zU#_=LpJ|(_zPnw2{PCxk>vsRs-~Rl^|MpM+{=fSA>(4S9FF$O)+0}NB?fUZdxL4JP zZTsm*ul(r`KhBSjHS4UJ$DwJeInO&II$I1f0Q8zU51@R+e!K0LZS2FhEi<#$*e)as zYR#-7;`-gE$NODD8%|Rv-MTa9bUD<3 zs_p~4ecI!?&4ZWg3*(dO_qBeraB>^_#l{}~DsC!hCSXCS4lsk|rV-|H(zn>IuQwma z^HJ(1QX=+o-7dEn16T(MyU<@p%}j1W<&LP7um$CD2u+1TDJ+ zCejI}5h}CL!u&WX3PKz6xa=GDk=^(E`OELWVZWU~8PTw6jc%XUQ%07rG%;)$4pTzkc4Yb+>O9f86bcD3zl<^hiyY~?y@KFSYW(B?1SeJ{5U;)r^Tp39~& z;U8b`V{9yp;rr!vF4jb)YCW#y=26;@T5A>b=&Wsv%FJq(R+ZUYt7f`PXKASmuq=~; z!)^CqE9aUGiJ`XY=Ot+j@3ku1%TyP%sn@rR#mNrMuZ+{0YXN#V9R(#_1WHO&^<>GBAn zWDT>G%S6*ImL#|EZJXz#t5sF=05opb2C7tI${H?{d{rKsZQIKQm)%a%X057oLBG5#ijAnB^ges+o7!hSQ51SY7>hryg9I@v7xWBJ*_!Un%dPjT1 zvU*i(7=wU8vOcPi+zdciNUmmev|PR^RC!9Eg%5Yi%t#la1PWcMERgPQ0M%;IjZv*> zaKaz~9a~s#$h=&yn@64p+l&O5TB;T#qZ#q6XS`!m)she~vazz8-AoY3yBTBKB6cOz zg0N=gIdRswT`)jP*@7v%y0O{SePiybCYOhI_3TAP_j5Kt01{c0G`x*knRxPM2Bl$I zE0NRC3i`f{i)U7Mf&CQ2t!Z%c;c-<F1m19m+1BqVt6r4!XQB*a}X#tcvyH@pr zMQk_sL8+C>Wg!kjJtZ(BCSbI!^GR$pRFX>#RtuPCBdLN!7!r`s?NEd@ZHW!JMVp8) zb91;a^C3|sziwTpvhqAN%Qc+s?p>=J#w?YH7`w6skY1IoHh8LRxQ#%QY*oYfY_Z~c zVMFSc%toh9B^Id3fP0|3OVz8oEu1z)NLll2Uq%QrBSF$FHbxXyEx~AJO*UFN)e{jG z&nL~E_jp&zin8Ev-(Z4~Fp%V+tUH?-5yLmGy%LhpAl=N(&CJ2>PC5-PRn`hAC=ptZ z`@Fx;$MN>ZfAjY9zs~o+52WvLp>^^1fB3uDq$bB$>ufdLYUX@AUcdM4y4RfDh;fM+ z4dbmEfH9~nMDU!e0E-yJxNOu^Eix!|Z-BPj^`HLpfBskh(SP`F|Lw2;^8fMw{QJNC zg5=IymFmi-H2b%7?M{LI7*vIYl^UL=?{&4&BIdgsa<&Pt9 zuJ^zF|Nd9^-+y_0e6ad**-3NdZW|hxz&ekCEX4dgb$%#9^F;j(N4d-dR(iB{k58f8NtfKo7WvQ zJJ%G@X!LSRMh*HNpDq#BZaubrk9`&G)t#-} zu9tn^36HptSeS*%JSCVJ`BX&=j;usEZHst8opoe8sxpSbC8#qCh3e`W*B8ojEuxjD zB;^Y8Cy!QGX2D_Vc6TS_5gY)}oySA~4jW^=KRUBM9$h6<>p2z<_^MjlxQ>0Rnzg3U zCGW1z1k4eQC(jT*jIz$jHlTDQ+!_fPL*YS=Iq}0%}(oviN5CheCyZk^SEu}W306#byanOj!k*alh|KI>Reni zkH^=q>o#wnehRy2l`_@Mb>1IeZ5y`3cC2-_mYZ4Zq$*EzhV6s3$+vAgZ(!$#H9hCDWR ze+qbp5Zd{)j+D7buS3T?o!-M{0-(9MV;g=MTWzEAfDYJ3E42`V7A<9^H&G&Oj0+9b zQ>)D`bQ4f5L;JR&J7=l5Zx`Av=eZgrW8AtWxebRo>7lC+@9K4)W)~X{ueFY>s;d6S zi9OM+ZlH*zN)v|Xnr=>dl>lp6D#P5vyQ|mHpe&m5Z2%2BXicD3SE^?R!~F?gu%D(; zG-+rN=GfTY74^iTYjw7#eA_OU7dPd3k4S`pGxi%9&h%ksvF1`SY(Riuq#5Bj=kd6| z)ta_nn%&hkXSPamB!aQW*gb~QLede0NPzIXnFqEYrG^=dT0Uj+fLe4fZ zEbKB!pH|1J^FY5wj4{|)bKQ^gW7U%FO{Zb_^BGiknvw8Yoo6*jz$mn;lI9*x!5W!W zJ)0@0A){b;4r#xk$t^uKXGV;0r*ktgE4#av86xOL3E6$3mT}qWaT^nv$D}kOS}luK zHJ>V{Tev;T%GQ&Q7oP33s`1VpYRSQ^TnvKmq zgHc)qsH*y@sHdE5u4{*MY}TS=|8l!BXJCYoERtCr@Z9JZNx$x<}JEIUGw7z-}X$I4$L~Gg_CWFT z_VRMpJU)&n+g?BA%=7Jy$>&I+vXr%Lmu$;5I|hcC5JI=AB*UO_3!UD^aoHVhK$urr z?u+@Bi-WZ@+dS#^%>+*0Hp-K!92*%KS#*}wnpr`xu_zrEjH z|6*3Xe0@K2b*?%NgtX@6zog1nT@#~!)%1*EcbSzWsOAz zFu7ek%*;u6Y^)BuT7<6wtXKX=kL---rwiy{r1!FO>{inYR0i` z*X?=<8xaOG!RVw^GJKPkL4Zw7oCm9E!8Y}|?tl7nzJ2=Z|8)QE55N9b|L=eGFaKZv z&7Xh${r)!Bnt48s%o;{hS!`Fm+!pOz_mvYLkFkFm+Y6(zGkbPHt@U_+%ty_+l9_0= z44|ZHqz%8`euVh6X2BY;7UU)wsJG+m&%gfN7UuiawW3)mv2Al|OHB-UN1jWWlsyT# z?lw7%K%-W`QI*FX(Y8kmRh{#meNNqr|DxjT9O}S7M}Zx30%RBGolJPst!XUA_cq{yh7;8fIo8lrtb% zlFyo6blc1}!CBJEV;xQpe5cIp<()Bto1xi6(U-=;9@qUfKHcZ`<)hAZNM+`dRiC+5 zVcAAF;R8+5_sebH^1$zzCqc6?CF&t2(7JDC`<~qBCxD!sXYdmHrD2eKA8Rct-LP%U zwa}+CpMY};Yt2v@Yo3qT$9B8;W#r1%s%*4moX2D2*l$b2}c7%2m@m(X%_9q)Ieq&(&!WvaNGpM`k~4ujYYq^X=Aa zRwgZ4mFJ^nbO3^ob&5a)#G1WQW=^xLk~$!&FvdY!C0&2T(JdvrLvh%TdyENX5nnm8kl(=>pt^fgpVKq0`3+!mys~a2Q*7q zG}Jn~2d^*mR?V(6mrxrK&oC9h?K%9Lr_r10N`PbAeO$9tbLrVW)4FBsZM$49*YL4u zc!~jijBWF<>cs+Lh|kgrMy{Gd!`MCN%=7$!xrIp$vY%*ot5$IzK6V(_JkR{PaIqMd zmzSI$IaAHnY?Mc#QF%0Uxn6JI-7c?tTb0hjk^nss1|f{$X?<3L-v#%4BTq2%-8;3S8%U&fkQQ@F% zsHa#@v!J}n++W<(E_b-+#F4DFd`=En&?4GWa05lNr_0=APHXFG zH5`hnuCDFr!*j|!S9O;A=H_jy8`;auY`2~=4p_8Qolka3>TolL4KG`zl+w&Ctkvp- z4N~*`P+`AaJdk-nCVT?-Q;X-ZnfZWOdI(B|+EVN%J_vKjt+UsXXyX|+(8^Oa&CKIU zLn~$SMlG#cPbQq8m8*6G!2mWg3cYH{azq&2B$_qO>N^VLurW|nLsi|`wakqnz+`A; zQ$~y9=l|dQ{ny8De>^{ao$GO&k8KPNReG42pl*1`?NPbrSyM*iFgN#Rtz+Ha_44_0 zc{yd7E9uTAggl?_zRpC$=ClTB-pyQ8d3LM2OFjzvm~a2)-~5Ze{pG(!?8p5h^Ss1o zhE>O79vXFVZCX9=7#ADYt}-(aK4RN;4`Q9BVmHwogyAO3>nWB>8~@$u(he!k!DRk=Ri_S?l77Pm&uHRamA`@G#= z*7+b&KwE5CmCy*lOW^2z`; z_C50?dt5G{oUv`2|6_M<_H@g5j6u3>7Q+cMGjnDqV}y;k>=9}lQVidWR%KP*XKGG^ z%@aMVaMpT+19G+uJpz~ga=G2YVfLKdNGsK)N@St)IUbatxd57vYRmIH-ap>H{`vPm z|I6?G@V9^SKl#soulSe$>c9Tw>-|I_I<4lC*|pP176Gzj%RCf=vG=%~7Gcp({vc&$ z)%QFrXR1gKRXsl(k1*dGLV1^TA2#@+i8P{#bA8m?G>&iM z(4Oep?V@M#s0IiJVL+SK<{QYSRkkQ@qfjeP*+Mi!IAs>$WP-NI3eXm>!GTp>&A1lM z?A6_Pwp#QqtTUnMvf;ahId@9)oYhT0SrT9#`&Hpp^Lgr?>%=-V7n~luZyOd+Fbi^& zAWcUvxPD-vsaSC1SLM{52W&6u_BevbIR}XKk z<9IWRF?J8PJs?nm+HFY61KWnMpgG%|KK7fVt>&OcFTQ`+zL}33|-&N-ZY-pxDL#L}9J zmwk*+tNVPE=3`Y=CVk9QD{VB_VNJAUq3D@uqG_Y;#%K221OVI0&HZZnEIfcE^_hox z!FQqrRe>^dUsbi1J83Ajd5}Osa)T4mqA1(kLR!lml+m34Ahn!?(*fyCDtM{`{Ut(SWRAUCI+|kQU()FlMh+N9A&w@fnLEn#@(*ZGgI` zdM05{+RDeP`_}!DvnrPg00|jefK0TI7F9kj1bdZnm~V7*pnLU`(oj7M6ZbH8k8Ai< z>my6Pd#RNNP^!c-v+W7C^b^m1_I8!s+19@AzK5+M`#IxxxML$WmE~CqrauGEN?cW0 zxw>bIdb&`J=39(yf4y$kZCrM42D_~~=eo~a)v89c*|rY@V^c(B&(-~OSO*l(DHW9F zv03{P&@uu=)S^h+0JMc&MqIb5<2>#(6V=^d=t&`b6Cvx{q?N!3+b{6Yn$Ll%Of2a6 zVfrw*3SE;d^r=3~PNG*;>b&mXZA2Z92GrdE;Lp;tNp`u56lmloP_kCH+T9sXYPTfy zd1Ox4GP=4ubk3uWdse}%1+@b(6WOdh`#uWh!(g<4ed}@?YNE)lhG=HwGo43;M75FT zW(+~OmIxvYM5nBV8G&cu&e`e~;N(&-veB7q0h5*BMi?bkRUXxMXo;put#5P=IS4}m zP@UC)L<F)kS!YvqdIt8-m<|KNx)L^Jx4Lt+OOq9^iSx1}0jn9!4 z0EYqUY87P+k1_1z0k(&Qh3yW4B?`|WjGmcN)IV0tY=Jb8faKr^wrZ`eW;mM2ex9X) zE$2GdV_dEX&(6nu5caZPJ*$ZmXZ1vE?v7&D6H|21VW2ArhEaftZYp&qn}S>Hs(kjd zWZOkTH24^*yy@ZelRmz%tzUI#|Ro0D4^lY`b8N-28m9oU@oS+A--AiSR zeRF^YYOStv(rg!_gq5>uRis=Lz1yC@JhJOh%M2((K5q>Q5~^i1H-8rOqI-nJZ~x7| z>igIE{$(9svk$20pI%?S%dzG0<(Tg;ulx1#T0XzN{rvIk&)fbQmkT8$9Z~1;{@Wif z+a><+PmIi*YvrJT$|_Y?p2y>ZC2Q22fdoNw(&dG0+TgevOwd~Q_1mwuUn8zBpMG$L zL^_5$8qvmf*d?}G#BSSgHy2DKLz=X5NO|7B{^{!=)~e&pZ2fq-Y z<2;W0{o_14_U-lMb@$;gFMxU`55QS@plZKH+%{0LZ;#{7Fx0m1pSZN|FG6jjMN?R= zNg80)%g1%>m+nTTnc0A;9KE>#GHV7w>pG{pD^fD^kPjnK=6<<;zinaOndjs3c7OkZ zZ0plaCOTt;?PK3#58FVg4k;l+6*6@ms+3qu*-vNVEcEJp|MK?BKm7XVKmGjW%iEVP zU+Dkpf4=8^)%zPZnCIim*T<1+_ieXk)>d}~@$otbMv zgk@@Gt1-yvoSk!QgD$Aehq$iqSECJ!wNh;NVdkZ2Dz_4RY#S$XrOX+Fe3noF2}8l1h1T-8FkHaCT^#{eu39RY zn-TpK&IaXZq9Gt_;<)ejVrFD;Tv>r!>Qh-B;n*r$2q0981pLwiU8My0jhGE{K`r^V zsZ7-t7Td)HWSf_Tmz0^UB|FQF9v}-ctMH(qkX`DmZZFrl=2?ADeLm*v>-X7ZVFs=B zc-+aC&zI{9Hyd_QRz41h1bfP^m$4`LyHXb1x9b+B$6F{r?XS1(<+gS-ZrgTlW1X3E z?WQ)A0HtLC>tdJNr|+(}+gn(jv)7?K1iIVU1~RqsasPlL#;97g&YEeqnMSTQn8E7I z?Y7&nY53u%AGXVD0%zqh>*F}i`y;cT462Q-mH@et)g_6(*1@h}9u}Z${UOE;y`n<(V0k+OUU@3oIJGjoqKF@oz0#5#{h<#HFiHW&Q+&%6zzanT>4+U2U1Q zZRy5THao(Njb1SNwrSo~OAd|Ahxg1?N%P{fuV{G-S<1GPJn?+&V{DfVUTdDMXA9jT zNI1K@R?S?s&U=^*cM!Q21$wBn(l30Gt-1*_p+e--U08Bb!$CkS*|7!vF&4b zqjG9Bk=YHA77*sbf!s&*MWefE%1NqG2^w{lkyRm{yPm$2}Y7K00NIq&3aZ=Bv=r*^jlRkG*}iugcDD#vp_$7$~6h zwDEu{RQCyLc+hB+i!#nWktMmCyeXlgEQC^JWv065ZBYcft;^LwCyY;k>o;m?!RNwaphwa#_4VkFQA2#?2MRYu6@+vQuF0+Id9M!R@~8R1RJ=)?)itwPPkaeVJlkm%I)hEpy3tLM-@5j1M?9bSE#)3?hqc%O z(bga&578~Y{=>iZ?xz*Q1uEFV#=VKh-$J)(a2{Q0LJzJGnWzJ7YWT=)I; z>f5EVj@|C}uMMp8YbC_T{eGM)FQ0$fgDvs0#l=@nt_CyL!|ZASEVI+&_X< zsu|{^5mjbXmW@F(4z!8^b3_bD?OJP9qmFaqr}MOn-AYdNn(wmo-qGf^k<9K9yKh&m zCKEa<54Z=M*kTMI8_SFhik>iQID*1HY~L;(?h$l!HGbZa7kOByelREp-n3xnOPLj*&?eKmed1OR#hrjqX&&kvTz%_MeupO z^n6C*ITa)1IL`GH!PPvmlyFvhF$nH@7a{8Wj$&$dp;FV5nY-da}0zt^7Eb z-;sER8i#Geu6u-H@qB23FFVGi)>J~>D^Kx*BSyRs)+MP8Vv1?E{rlJ3kN0&))p>u1 zo%GRl_WDph>b&Ri*sm|WG8_n8Zu@3eYTGU^`?d}9?Rq)#xF2u(?Y1iKzx|eSj4eOr zN|5^##3u)Qv_u!#dg3;4frWxjr>JVF8(k%K*>cForFz0nw}4Cq6$v8)P-aOm4?!YZ zqKePspVnR7-Q8+7l&EmZp42b+L~Cc09Q8Hf4c5=1mQn-Ka$3mCAZT?RPoR65<|)#fP*d{+(ukR z+=dTzpB}@zJ3sA3qa`GvGP8y$!6*?Ep$Y!3E6IwJgT+lEgoa}68T0v5X0e;OKhI~oRDbQt=ZgSIDs)q#$Ldm5 zS%8~|=lSkbRgbaLw#)^PEOTQsd~ggf3o~n$(#=f8u8nH*lshl&-k3D0m9-2;+hrS5 z{!IBs5+dXlW~`oFN#nDk3NyH6=3Hl{veZlj8K4uxm|(Kz%2`s_#MrJ8p;6e>M`yO0 zFzcF~6L61xGps5z-?klaq>=1&CDDdz^B6YTyVUGr;Au5{<`uNQ`MyX+9bZTrG2EZy zp)?Zb?>O}Oa@&-d$DCis?fU75@A&)5^=@jr?opL@$k1V*H7P#?UE~x<2df` z^Z2ML@*=uKS*XFbVVBU3?CccEicY6dGV^`gf&e9hIs7ti zFP~mxSodQ-8gjqASm(uK-^R`HhflA6_~HB4m+Q60VIgJYw*&V+=hzW1tnV(!P)VdY#9E>=@=wGJI@>LW@OJZ`aGG?|vk` zP)iHlZdP?MY@2Pi)OlAwz$8tn5e^HY_x)xxsXW}{l5`L@oR=|d8<+idx!kt>>U6B+(=@ftsz>L9)K%wsoadP}OPD8q z|Ly(HKmYu8|2VVWK0bc=<_ zjHljaG?^+pV#ILrTkd&xXC7>tIX$YX*>ZC?$RQacwv7lBQO)O~63Sz^_|5p~8_Zgq zYk}e0HZGS{)rO-^KW1pC+hGQe*wLBu?8iwDH($@_h>xntJzmG{My)&^xdp=Hqnfqa ztgBb3w*3l>o`*GDj@cgj#?OzQdCs-^Tj~MZS%Ds7SnRjUXTJC`->~z$AOFCz^{C6f z#~5@!f!STden0N_kB|G~z2U%El4Q>)2qJnKV~AKaJw#Fs!)T~78)wPKp~H17=8lTS$MAmn zeC8Y6ecQL#pO}?{-jbxUx#R<3R{dm{2eq44G5L+OK?@?oeXXAJv~a;x?XB=J>DB2r z9N}%CU^_{y)WW!K)wA+!l+gvKl$8>~2Rz0=cb|P^R(7jNx*$o160HP855%`1F?Gfu zdldSZ$G%Qc2rH#&nY;V;T-MX8x~dvVnrMV-)p_=KF1($TJ*j9sJ57~(<`Q@MM&B;x zSHlP_Z?}3T>p<+xGPv7-LXDcUU!408=RD6XZku0Yr;R7qp~iDvlx(EhNlB&$tpycuC#0(E>23*o%_I7Gscv04=IPz{PB~4Dk#rg(}qmrLLTvC!6j; z+t5bk(`pSSRjpZ7ZaaNQBiDx7X^&pYdE(hHSEHB5pod@x)p}Ay26u?9Z!5(r6Wvd* z$`hA(I@@4w-j!XIFatN^Mp{ZzqhuDMQEBpUZ=Br;Rx3#c`AnI6T40_%vij+Q5D9Y^ zEn!l!vb&`x(e7Q9odKt@U8SYfY|{Pt3?tiMfLUy|?dI-g>a4W%*bFpM1%h$e!=evLW(?Zk7L;_F3eQDn&nYFz%%q2#8OgjWA8OeC=5Sw#7SH6UqJ405IfzSAvXDb-yqsdn1JUi1608F%JB4TD$J8N@M+ z0d{wzS8OgLw(Aygt<%r@*_~Zn_tWh%K7C)0-;VR#zWaW=d>8SNs>jz4-@5Fgv(aI} z?#!HP9hG(ec)P!UthHL%U7eHY2()S?TiyX5KCZW=>ZZp99yOP(tOB}erJU#a^*FvD z5aEa|whJIw5iw#6chnlj@4ox=`spQ)_v853dTp2Oav9FLZsYa3zijb&zrMb_?EAN% z%*+MNm1nJkiHPBs+pAv-=efEtFcAhQyWV32+(_3pl*_e7$i~y*R)Td8ph$P$o>xt5 z7uw!!rUzLI|vVd%9 zLPY~;ZH90g!$KIQ!O7~@$DBD=15VIw3?JjR?bmC>U|09jW7gRyb>;3oNznBu3@`xb>Sruq*XlLf7U*;{2?e4(975&<02&aP zDXQv;Mk8!UcW|o>>VAH(o{&H_2g^h-IPCwL*s)!HwnYmWI(pFt>1l$7mToI0abu*5L z7%jqDw+a;F9?+UiGqD>KSm=$WDmsyQ*NUjjMi0ln{>-xT+c(&VIV~D3DXZHoP==k zpjEG~Hb3CgdYa`3LWz2-piW^Z8#Nph`%bv=C-rfFYKbkDJTc6V$H!_^rrQl?M2rb> zk8arEF^>&FsGYwy}{vBPQy*uEGckL4C!9x_6JxxC5%M!2^FR*jzp z)$T$W%@AE#0zmxP}G1R#XX))X#jr&Rx6nJ!1U(b$>fP*pS?JXvYpiLjL zyb3B*N-q!0V~lYC%=fBnsIylaMBcbE>@C3+!I}BqX)TA*!fy{)8^fKf+brfWgwSrZ z=|)U-3-U36%wFh5xmML$6x~nyjWB4M(*s1aQM|tvErK>HFV$*fd_I1G@%Z?5e17iN zpVI5~_2uJ?@!R!QzP|7MGQ)abbIixLf8pzqc>&HIf}nH;jqm4QU$4Iaot0U)(oC%q z+fc3A_tTN#JS@V->@Ld8t*StTTTmW{J1f69_c^_LmGbHf%Jbu!$yw#q2AcAWamG3< zs5jl?_&m??`FVuZ=V9MYKf|Vv@snV~hE?slo?UHFi~~N+=NRyK=-Uutmy)RNYdv>f zwKlrK8l&e>*s88>Qyb}k^?s}JM&9oI^Oo-ZYmAS|dr)L#p{+CFeVk@Co_|jiyYt#t zOuIeyriw9Vd{RgF^g&vCK&-~7U=m++CH|*Xz%}iSNg-b0wveZRRVV?j2*+s_d zU=uOAt#)m7_JUj8@j0 zxZj-8yHvXO)5tmI@%Z5R+0=eLwfpn)bBvkq?^-*8h1y#W(D^w>tx)H+-K}jqI zYa(auy|cUNG~Fhk+v3bCD-8x8-iDM`x0R07w(iLTe?kUN0GZFN#&IX%Ur2C#7`@P_ zg)V0}E5c}_Eb|61QzX0Ev0DYnoB(?_X;o{l%q%hF20>QEOB~j=UQbxV3x>wq0`8~U z_WMnZVPQTHckp4faIL>1? zLW>RCZ~-(1=_RaHgO+Re zE|XK%)w%PqM~uT2jSf!WgrT!YLROV(rypHhl|q>bPFb&fvHXbh=arIh$4^G0M?z}d z13=^K()C;xq_<$gVLr)0dd!G9Ex=x|E_PSK=P>t9>$=%aP8HuB%@`)QdAAuIoq1JZ z`Z#PDMkd~+3NuPoozm_MpSb5(($A6rfy#TTQ4k@6s+Zbqo&qWttPxI_vZ~rG#<1#l zKEHf?#3OXCEbkYh4ZFb&Hmcod42wx~6S@n%y3B(@T7cH6#Zd@%rxPqX1JghuSIfx5 zk6xq+t>h8t5b?q}{M6It9PeQN8I#*Ij_R z<;7y%}DA&iGup)n@#773)>OuK2(V5fS&5^siwq5%(Q z96ldx?)R(KD;z;{4!YAUdv#ydt-46KO^=W$Wo1Ja#+~Jrbdh&w_nslPhk-)NU}27` zthe&&Lf}JC?#`>pNefBc*}TIyrP>1SsN~Mtt1}6PMX0kO`HpeIhqy5a1vzBg@2hIx z&O=o}VnpSt+U$f12DGc}9uSIvn+Ve=lsXLtINOY9>J|(H_KG>eX(*y%_&kRBDEQ8u zoh22pvwr>O|1{&5>-E3pv&Q*3&TnGodbRX={h9l1P9Fn41+Q)pW-_~vrfH6dAn!-U z#=El$v>P1+&}Ej1x)!tQ&4KusBZiQSIp?>@X*E#pYFD!MsP_G1a(w*$D@tR;$77tQ z53bYmupG`Xr}T4h3JCx$W<(6N`#8sO#4r+oA&!7G`l{zv>mRzuoqL$ZAhbJIwb2fm z<94oFgb%oEzy{pR4Stu&yWK|2*`2w!H4Yy}Gv?awR(ZsjkIL72e+>_yP&LnEjFVQh zcJIC4l|O)znp(qrx~5|eKVqO#brFR|IHnn@YhUcPIn9sLjyYykvA5kzbI7!nb;s$d z*#(%V?EBaEzy9^V{kMPn&;Rz<|N7_a_2-Z4>zN5_=aqZ!f_-@ArT6i1*kBoQ57jcQ()1~@%UEQ$m()+x;cHyS`f?g4yE#>JTGfA9|tYXQ+M85C6#2@ z=qiM6h#*X2-w)2(sZ1YXHeh$qM@n|N*-%<7>F&dMsxLVGh=6x8Gf@D81dXDDg1Z8J zbBRazE&r+I92TRSxVs8nG!m}-S;I2yh=3F9Zcu&eatJqfpWepRuj*BsDwFHxT40yS z7@=L+g@Rc3*8MIklZXf!P+MJlJxeC=fFz~BG2uICsI-7e5t&u1#{ z_(4yf{6@3AYCo^axW=NNaCWiUDv>3Q()MAT)>)ai5_U3g6iH4nNK+B!4aKXz|AQcb`*S9u}s-}UD;dp4V}4G zzAt6NX~X11-?P_*fJr&1|^l#GFT43H?WDoZ0+8d1+cNGyn#~8zC6r?R}G~FkX zkQ0Uy3#d|Vsreax%xc>g_l4uMyspmWH+U^VS`!2o9exf{m=+wd$4ivRQ~k?;CbxVkb6h3|CfbSEe!G(c64@ zc%L`E~@$>%P-MP9Y zgoLh?Dh!oHCOuM12@p^e6gKj%iet?z#}zI4Y~vMmIAl3AwwQAIHNyV!+MA&1$KOq#N8?Dz%OC z!yWZ5BhK?AE@{R*8k;e`{nNiv@{WPe;G~4k?yJ@-^LzG_Msquc4f^0ZV}6`=gmpqU z(3TCr&0u4duWNP3cpPRAE1PtfbuU0zXic~maP9i~svm#;`C9d=`r9A>@o)e2KmYr` z|8IYM{dIxGN8)Ut^2)rr+IqTYb*a-`gG82^*M7%v zx_57A!2nQIVoS)|34~$zDYgM+W|>#lq9JS;ej<>8e}w5(2!-P2xcIO*hq>pzK=*NU z-l60{p>yT+MHp?1MR$VkL69KSU1B7myK=CaeBu=4|4MA-V41Og!!$f zfy7b+$!tRpgQU7?4?yku3OCSs#V|)h2cz%8T`5(2vd`!2YV6Hci=JfE)jBcNYkB{s6dzP}x zqHU^WTU-SxAZB&byNd{q)8edL1u+N_MI*&%vDQY}F%P(1L^Ic%VG*coiD-ADyN?fZW-WGmoLyq4Pm_<9w*;#; z*|18LD$Lza;Q)t4-?w_%LfwPG3|iP2am;bLkDs{?-LciIOd1%rdaqs<5##83lX6$w zd7>^k86HjoEC^k-a$mcx^>(+sGyayC0W+erudZ~4f$Xrxy$>}}U0qjOsW0t!U%OL;(FhaNFu1$2yYkLw zi=+=Fy1Stpk3kDUdA*6cn;Q@WcEMwe7!WK-OY}BZRYPVrth=*WU;!H_nuq(W?AluI z-kawcEDf6@V)}88kK|^+&G)_^QdIKFI2V?x;#!*Z%aFep95ie?b-!WZmHJJpt&DD4nH0gx{Dmf0qtt- z!X124RV{bU7>6=32y=;4qi!J-&5gz0pa3mGxXS<_4GP>wV7m7|uG~gIAgy87UTtV1 z+=N6|*p!88=Xx3M2#OPK=A~zKhMB-S_+#!(GpfCn4` zib4x_$CUweZ?~U;X@?;(k6%z(MYunX578uL@2sN1I>Q_Q@9xB%ps}REAgQ~HyvP3r zL2C2+B*&@-Ss+LYS4%B-84cBJn8WpQ9~Mqd}_h&ekABf65*9eFUp!ugLOSat4PBOXM# zUz;UCU?C%o3+7mpLG5l z4SI+Jf@;&~KJP}W#qfCaZbr}^)rA1vbxZPOYIgG{{Vz#|l6ke@;2~U@yQ-^`Dg&?e zG@mxZ+%%}QYNvYnxVI3+xDPN3EHnLsvRf*;50ArwW?eG5x^H4snF67vhOF~02wTvr zalO9&;^!%giYYUnzs%!bVtyRo9*=Ji_UiYmUtiBZziV$Aa(_YQK1kfgjS&yIwTaX) z`dwRyaErSc<3?2*9YWVdDJ($l+BbuiKEwPt4uoZ;bN=$nFURL-dpFv6=#h==Q(I!-vU^@iR73x>5h%pfCxu6)o zJmxWM{1O(&5hm1YYg2pGO8SOfjhFh(zT7-)4j&U9sE5^QIm|HF6nfp4dUVl-k14l^ z6Dj4}F=IHK&2Hts_Uq3-zTWTeUtfRz`TpA-+jI44j&+C4LUot zvDX_FBTl0_6RH@q>Dp}b7z5f_2p{1D7$X4X`-{i+)32{<)l+C9b>qox!6cu&aIz0*4_CwH-wvW*w1bOBr?s5_rBVs`$5=GXlgfn*f<)?XkCrI%(GCY;qH=@ zt=&c+Ha)Cx@AweogYLOsRf}rpz3=YgmNkZp)&2T;hm1ql-q$PUbZ51yHbA;JySsEB zYl%*$U^dfkOUMo zJ4+D3R^{%iOzt!2CKgGlSn$bVHr)fXDkW$wb?v<~8{{!%D8k)D)Lt+*irkXPm7TX{ z&fQ~9Xn+99Nd8=6a2y{o{RozJ?ibl^x37kz_EmsrR%=6ym>w?Gy)5avIyc)5wh|+b$2o?pcJDM<#8H7%NlA(pagMUB%F^nR69uO3 zUld|k?pFlI>FfIsXpRwpb`?aUr}i;UgIBFu?^2sjnsFX@zi(Yf=I&fZjK|~g?H9LL zulM`C8?Jwxe+lc|3Yic#?%)WJN+k_$^iUb@xwk5n*$WWw{Cs6?MMYO-7Fku<;w@{d z3%!V@_O87tL_BPqXwO#;xZxz+>5Xc2%d1@thua7Zzx%3a0uBvuAc7sdc0S+t7}{?B zMcqHyfTSga8-%pVfK%ZvSk&s$-E?M4$_=`#Z5Z74Uh2yOBJQ(e3#%?Q{qT4M>Qb)C zn&SjP1lj7E77-`92sWe5_U={N*%2mJ*Uo}FdoKjLrA&e-&_g?`j5yios&W~;nxLbF zJ6p7us#Q}frwwBi#9>t!JmNUbtbb18v#@t7=+w*W2$bdmC?oxD!oO1RrLntW<)k2MYW{VJ>$3`sAhM~79Ix; zG1^*{4rOnS?bi2Z4sE=zn!UR>+2PTJTAe$6_&*x!1SNq%AYcO`$W}uM6AARXqn;z+ zBS5RQQ0@0dy%fiXd&C$KGy4VH)m~EPn)x|dTo*s-nVQ~t!Aq`MP=_a8~6JJywMaiM)))Yy5RR+>X;T` z!A4ds+WJ3TC1y3=)%@vc{kpv@txaGfKj z!zlM@7`4+zjPs*Qd9B{*PV>7()F3%L#&P;^{A`WUcs{=U^4otu4y@O|U9Z<(KaTNv z*ieYF^KpE9JRZZpJ;vwboCCuT<%fqJsTy>Gm{my+!z4q(cwP6d)yJL#3uG2=0 z!{%w{rzO_)++76-G*wnsGkk#Ieustb)J(~X!+p+SM9ZVb9Ihdfh3?$>wDI^jC!pLF z^DxEr^_``8e9mL~7#snzG9|V4dcUv~4ph?9C+QY8BEo^8IwA(g5Sa-$3A1}_v1(;0 zVTlp#bKQf1dB{e^0CYX|=O6#^*MIx3fBVaS{Q37kzn;%Ozns|I*y&EatrR7%f zk-hfbT0f-r8RC#?G-TEL@*c++gDznVi^ng<->cWo*Hvbp|J?Lis(jz37RGGts!Nm~ z(?$Syj>Cj$?zF5-Xj7m{ooq&&B5v1?c^p2}m6di{tLTJv=9||KLNP|~r+Sk@pmC`a zU})0dVgHb%mpXClYOfWrr+gTh04RAuL zY`_rN+kJ+G@@B1b9(s@ zvUKTsWv+7Y2$f|mC4rqvwtG$Mq5aBgj=Ga4plOo|#}uoD%AbTs!_P;7L2d@~YUFBc zJ3c-NuSCmh*o{e{#{-0lW}equzTwrp%;S!>fR>fj)ll|Ur;j0{xkIba;LL=dv~U6EA5=bZd3BFn-QYZ-`Jgm0>u}GmaB(rP~i+Af?6)W0ggmEbMIDoDUyF zTHI0EH)X?k8xm~%(i^)%Zr#f*2<}}UAD;%xT%9HshnHHlWrnbBbiF%YW4Lifc#PR! zFR4M>DuYy;bxfOk<$by`Mnp)~CEI<|-t)clx-bSjg1Vfjmks@0i9@z(YlVusNM zMsOC5Ht4?gvv3KOy^J-FQFr*y54d%uHPB@iZf>LqvoS`{I#t~W_ZC|r!@Wcg`mSZA zm~-bvfb`m(<5DjNwb4tJHIHM=19H0s4(oNt;RQtmXA|nqovZ0FW)n0wLw70{ebDTj zN1`l_^;%M?U+7F}BYh4_uiA|6TBsUsF;0^qo$bg*V2oj`tTgMJkYg5Oj_wkcagYH0 zPT1B>9s}=B&~USKmxqr8(l3d9Zze@YNCuR;gd5Ltm<8mr?RLyL;yB$R2{-$>{h`TP zw}24lF@2ChT_tZL=nbjS%nkAe`411u)jNCPr);<+t-ac1c0&gX=EfnHyN8YY!hojr znaqg!&`ma)zde5a@6O-<`|j2{xa@Laz*DwDCp=U$~4Y7 z;MP`S#`%cPM+|hWWt?VXlL)ghEr?rpILt!bxhtt{@M(`216@Xwnx%+Ax9i7qe`UV1 z^L6|>fBlz#{r3BBbIfs!aDEK?Je<7(8EUKzbkN)eWCB~c-fLYy_I?Uz6==XT`S7q9 zjNv|pPqP7cb%Ly}_xqB!#a+*}2=^E?guA*b>t{q&R`txjT8aoWGdlq9Doh99abVbu za^j}4wV&rOo4+29Z*dH;-uqg)(7pG%o?rEK1^nZeUt$I=h;l|aM_5oZe0U&XOQO>y0i$U)SHifB*jXKmPds{m-u-&p-coK40(m>-ppP$I1(HWc77z z*oXS4jT+P#oY6aLUmzVrID{=VwXqXVeawFzAOE!T`LN?(|Mfr3`S|;NEdFk~#et5a2-8%^QPt5x-zweC!(G0;{}R(qV&5A2(|U73vy z7-X6Cp6Bl~#(HPvlw@8Nd*>x3<#4|zFQz+{gY2cmZD_i^BoypME7iKow`knGEf`u7 zw|+98Wh4<@*13PW$s)SUeE(E&(&*8Ry|>@X#+`Q}ae;DkzU_Yx-G{d3YJsqUQfQ4E1*qgA~&;Tr7wj!^-i zvaKBgoE8DHb7-D~aSzVu~!#C-5@)v8*n_kLfi-<|8U$CwAqvK!_xju>YHF-HMA6Rkp57Xf=` z_cMESGYj=x9kGh&asX|R3|z{B7^BP8iZQElry4FUt}e+aZp&fQOL;X=>H3 zRlNb+75adW`CC=4^(B(98~jd-t}Ny%c}NBe+N9JpRbMT1CMOIbIsm!UtZK3M-ss|h z+w_6zt}Ii9huYRvz4ku*{QLzBamN_$CbsdQ-?x%RLs_V1i7B8Fx8HjXJLcHe#M;?e z5ZohTa-Q@MP3|@Z&ROr+?{}?tx!nlm>{sSKluW|4L2-Qq!-#}t%RhRp(D;U11Q zMW~^|s%uMKU?@rYg_=tK=9k_HS^SnG;u5$v|R6YfUHYL`kaQq~g9 zBF5b-u%@}Aw0%50+)!s<*&>?5z!IKnw2rRs@TRHFJ=&MK zZlt9A006VsbKe&L1E!lqx3hhb=5FuY`@P4v$Cyzs!FxT~?xDXl_fL$F4} zT0KjpTbwt|JZ^iRIbp2bMmJ|wSH8n_Un8N6!O$5NAMx?q{Pz3&_~r52?~mVqZ`k|! zyxz~cR(=24-(PjT(Akz|KE|kPbY5oY-nD8zj`{J~m8tibe9ZAV#~hv!`;v$_Mw6A7 zcA3&$L>W!)xVsNZ^ose*7{5D#-1cE{9Q*5)uP66D?IVtlvrl{3_&Cq`F!UgfF^5BS zX>SMy#TXW&tFsEIs`t)k^?Pe^hDF3U1CNPGM3=H#JNK?jPXXgNBF+*1`1rOf!SaZ% z+G|yhpmr{D7Wadf{+iqDTC;~f5&t#-7Tj$a-DyGbKnjbX#E z^ZE7l^?p6~>&28EpVCP(jyZk0%=I3IIebK*S+}RYetw~YX8w?=aINcly}p+E$MyRA zpMQM+`;XUqy|3%Xd;j@d*|XZ;U+M9YJujWIpj$_AgzCZdU`hR|7KZz9THw~5)(xRS zgdILimCqk@oD;(Ss^=f(Jk(Q~KGW=-uR@x$ceaZ32Fe<&?sxVoCGJsDtNWc*Fcizs zykTcucgMA5+ONtVRvO1?!^K+rEi3v2D9hnd!^opnt^LluU``vZyZLnop_>5;+S%RC z(_)BF_kCW@-hCz4+akn<$e1yYt+n%Ib2!b+)P-IVzOcG4*V!M#=xl6;9ltz|&*6mc5%|~{>uKwq(x!qctFUee=21%Zrh{#UVK(kF7HZ#* zvfdlcJNSu`w$RprQX!_BSy^@WE;isay3E4IjEQWkgpmey-wqu?s&Wr_=U(geHP7?- z80%fNUS-zG>XK;pFOiHn<2b&3{%+^vFMs)u?|=SvU1}=?*}bntcXhMhz5dA8-*;ct zE07kqx}4Y7rR4O_-g>{juoL3WdOqK9laRSnDKPy0^HT$M4kSv75jQY7>*+DwkDaS` zI&Vi&tE;11YSo>YO>TF`q}70#g+r>HKu7%a$yRp~pg|&ObXE{yGUhT425%gKe<15B zUNKJLUesDTB-!a&iQ3r%F>i!Yr=WSE^6+ zQ28-h^)uQpzvJTBz4Cp#(v5@~l(b8wo56Db1?3TDUb%0dvKrlJ)iBHbYT7-Dt>>HL zW39sYpbgLjI}X>rPzayBWnp*js8V;sm8zYa9_kJcKMpfcP!+{s^e#K*4TX&J;hLRh zXyBH%O84ou(&J%_)eCeV54o$a>ebDA+l;#p7!h+GAHRghC9@JUQK=?t^i?1v$r=Gn z<4y4iVs;yvwf74pTjeEZ1>|bx)>VjU^^xn{)ujte^_C_;ch>EswuAOj>e?6CRu&wt zkhUL(L6ZGT&hoyb3m^`N->1W!z!-T*Cr>Tw7QW?D6=g)c0Cf zX`5T_`yjaY`@0&sx7^L;@XF#GP79xTQy^^I&HjIQux|err0m|xZ3Ims$mF=US|tsq z(DHUt9*l0mc9$$*)>4-EGgqOY{5-p=*9+VMcVi3apU4Tc`%m(-*sWgVyb~`1vDGQM zsR~*Mz=NebsSj+p+$Ll6PsIy>CX5*7)1d5@b|>j}x1#;_!iSYntn6$T=rEa8qd;rS z!az4Nb2nocXT;drPLt$wq6=H1O1evpjWWr>urM3uapjNcPIGfR@o+xo{C1#TgO%@? zA0rGC0(`9fd|$6up%puKVwYLRacz?dTF8Kw%%||b1PeafeXu8u+*zA4p*S*oH%V0!% zz~}5txTy@)4DUu`!y7CmSa3Yj-dPZ+j7sK6#9t_ zB5cCe?zi>+_~v8w*MIr@u6NUb34x?qJGWbScw1tekmMT!O&Z&RZbTuR5SbZjB1sE| zos`b#A@>;Pw{iad>%aUT&R>61U-|WQz5e|BU;o?l^_@k$rB^ajxT+V!Of*v*XYD-3 zxKyl{zAZ-yxE7e*E))I)C|B+Q{dt zzP`+Z=G;B}aqxV&Pmkkqo*$3thjpv7bMIajI{b$5R(K4XW?nzfB{#^Wea<*O{D^j_ zjXH<}ZRm1U*1qbU>!Nw9$}{|k2wJS&*R^hf(D4{#t>+gDkB?t4W}8*#lDM{I$8j7S zr^lFch9jbR-_p#qje|2FRqwAKKSE>pS@68xS#Mp#Dcje2U9Z3W@z?+O_ka8A-~RUf`Fg+JudlZt9w9sWGKuQ8 zuFk7-L*$rH3;TAvr0*Ky&AFL}EA9@Hvg#^zg<+oO=i@ggYp>V7+%sQ){`hZyd|v-D zKfc9(_bXpN-q(M-a#w0+!8GTCjJ-C=vY#9S;-0&cfn6{R5mJiKfMIs^bzPLhqHx=luvkJy4zo%1v{N16UV1_D8G@A12H>zMQM&mC z|6p0Tc3*0`pJuRQ#QeNZP>KsIxb-#)@V^XuR1^~|@>fZLeo z7{{D53u+`ac%8BsE+BW+`<1J)gtM;KpVwM@Kl`v@hmUd0&w8b4 zP*IsnSMSWs_vyaR*%6T{#bMwjgU^)mPH4~D7Bhh6KLwQnY$nUn7E zDD4^-!=zHR?oN@sWvREjS7+6N38lVYYnJ*=Zlhe&?_?Kh;#k@+F$R=m?e~`t^6fY8xv|#!mG!{zID)que4ay8(Y$%zDy<8R zv{=p9T~}7sRqJvqJBQB!GIzFa!!oP$4i$@N<_!&Opsj|F!DtlAZ$CjhJ&qW^TC^VB-mew^pE|MdAg=jg?vcf!pKw$`#a=mrMlP?>ndIr&k1MFb3hQFEud-ye7D zsU%min!D<%mis5?RJUSSyM|#`_mwvol4TL*jN!LMO6~hvb!}Ap?s|W9h12XfuIDqs zV?6BRLACTW!hDPwfHR@J`@OJWr=sYTyIiZ+tLs};?sa9qWV?kfLqr3*`8~Jgid4yr zV@zgguLw+wY_0b?KYx#pgO}g#Tvb)oJtIQi>1`*EPV#O)^QVuZ)ao_#;5@T;72F2= zu%J2Vu-4w|{5SyY>)Pu*J`QS(vS-NVA0RBH}H zmrz9n<0D4J8LA3Z46IsK@_DvJ*3w-kq_I=hHiy+HrOLY7%nhcx19jl79y2HG)?kA& z7|dE#EgG7nF>G3lt{m=!-+941gjqMh`A))Q>(*eZcdqQ+g%*@$WR_s02S|h)V`GCt zEgIc}%*+&r&57P>>*^sJpC6UY5_)%SdLt7Q)n?{1?lon%&GR%nX~SKa<#V7djyW)h zhryXmd6zo3&u@yBPirH0t?tw4s`a%%ZpIwL1^}bi+AiH12%3WcoD2psUnG7)B3E@j zEtGv#=dLW{^?u@N8y*el9%Lou1huoaq2NYY?RwIt@+174=()bb#30C0H!ysVhHeiw zZz^2p^{SP`VeXK+U|vAidNmSupu?(N!hkF@pSfSSzZz+(CAl=zEU4>=^_nx$;neO% zZK??ep=^+D(fg|X%(W^mMWun(NE?P;x%NBkwDAEm2Xb9fqmby^@=$G+cjwVi?Pl|E z66g!%hL5hQRWXif>{{>r9Q*y}`_F%W{rHdf_265aVZK zSh>uk=<@B4Pn(tbeZ60Xu)dlFbN3hw$_xM<0-FZj^@wpC@o)^pdBC~)T6?2`k^~!v z&k?=t{aif+uwA%Q%?Wqo9M+|k`>IuNc>9P5k1+IFCU>-IP8v}-cX|;A; zSwag$RMooPsmd;Obo%RgJ+H4nzW?>#{_@wq|M};iKb~LDXLo*_=SLjIm~pH(RXMEN z645>nJ5MpMh15!{9NrFpOq(N)lf|8v9&0SnBSNsOBE8wAB*YQyK*4A>yz5>0;&GO`U?Wc2Fe8AS zZ+Y^bgJcObKjf@pW$BhW5kPD0m?I7s-7aEhcL^;MZ**bz&!nZ=#))DnMfjLTGaHP? z2Cs1yS>9S)4|O#h^!huYJ8y0Ion$ zztL?P)A-T$>Rg%CC=RHT47nQRhQjj0BaX~h?yfA*JEgi^mnPh;+3HSU(^A*tlpg~?#h(0DHsr-bwEDw@iG4C*GHaw|HYrL49Ber^D%9X`EeMzulIF5zrO#$ zD#U*aCnLBtK=Ld|b zDpf(Gnq@Q+QXy}(4;@}RZBAfxy~7`^MwQu!b9UWyAQy^+SiOq9)Nk2m)=r!Th%t_D zyB6S307A99?VXj&-L)C|upaE~c0e*6K&V@6j?uMR89{oo8+qhM!quNPfMG@g{-{5sge)x6hlDm>*7YU`~jbCxWj2L)q>oO)}qpY zpMooD9#e#%>~6VW5~;fhZq=+_F;6pV-+;&ngxSd6nFcR#J0#oH;XI2;vN=pmm~+Ag zd92ml33hv~Dslqj%yDH4sd%Axd508MGdk8E6wcXHNZoV^Ra1S8? zQ?g6;^8+^;O%W=0gK@9zBpJ2quD3`@Yk|4m&MK+8c3$oWI@Qa~{T50JJ*-hp(hqZV zR`nhJ^yWXVpIvZA1W6SMASG|!aB(*a?{4=9k8WvaTAG=WF^1iXm<^iY<|nqX%gkGA zU9VF0om7=KppF#4Y3{^O(&hJLFE~TSylv_aAEExty25YS*JWZU!!ZV1$g9m=j2JWK zw6fb&5XTWb2!~yx!zWcXJaFe$uk3=6bB+mAUHf&7kI!D&Z9Da0kKRg6wl@2^UJSAp zOR7Z7*Vn6QlIIp+98OwuM@S74tAG z_1>FZZe-~6~_WM759C3tAlh%_w#+Wgq zuUF>l#{aO}!{U6{VJn}xFO*7K5OCu)jC3l{qK+}5B?H5q;nld0g#_3fc37Fw<~fFi zQQU7xqwB-1%zyd#_3_(p^V_$1o*=T8sj=Vema#ionY8Qm{rUXSiZTAlFH%!vL!9Ng@_8MhZe)YTa zDvyYd*>TvI^;)^F;4zLz%yGT5_It0_lburS4hBBRkJ(W#yuZGZZx_4K0y%;Sbd~m< zEJ4sYRO~F28E&B129aww=yR$r2)x%=BQR8%<{D#Ks&&~o%pOKlE1_O5bHo^`&TA=6 zjRvGHZO4t=w^DU36WtK!wDV|b<-4(Aq6;M?Zt#d4ypxS&_;Kx>x!h;(i$ZO5TGl>d z(i{%TcByyz2>G28+l`xL&e2D~GK*;KjlO;LUd}!Y^MqLg4m%&eU-7(tJgLypnXk+x zb*sfYfauB%cK5R5C@WdO-8#VCH<|_#40IrbzQYo#3tUnawj72*gqd$tuRrHJZ{Stc zyJ6$woabXcIHnmejAPETm?@48mX zFpraN&*z`#&P1pbxORR2IU(E~ zPdRb(G2A#tC_R-~YhOKv8y%~nt>t?E#CzLS(Zk~~o1mK|+5}(MkM;gBk7Ep)4+J6m zS^XDp1fjHu3LA9q&aP!f&ZAnjmr8)+4)8eKJjPUYj86```ciL^sT8-6Bf?N)+@cs& z*3R9a@kUu{OqWsuR6d8=SYB24AeJ}iE2cjVz-wQiE6nZg$ZfZ%ED)X7m}jfj`_eFv zkgJ5MyhXVL@Ba4g+Pu^i5%uF$>nlb`UfIKEM8p_bDIjcs@HxA)5kC=inVqSK+NIsK z?j(LaK0j&Q`)#ga9%HP|*N-2sudn&|R}bv{W9=Wc-j-?Zhfnsx^@IHeB^CN4!)?l~ zwA+g3Q0x>(LkO6TaeVtY&VyY>gyaCsSb&-yQ=n6AGNx3_YLpT7cyv8Ys6>njtgc<} zm)S8N|C(J{y9Kb#`!*qJ*XX`@$s4h&dpCk%@RZA#Ji`Vkh#*w>f(OL|v!o6@X7i-$U4QC;d8Hhfv4ftw2rFH@Ov_${z|sa9*} zhR<{6`#O%{YWEH=aK1L&4%q;WKTpP?=sSTv{YY(1qZiDANQe%-ORYh1hIPI3PWW5CAkNGH9r2s6T(a5T_eu&8Wj(86UDc!#OI z-(T-49v_d?Dhj9LvY5yHz@;5KckUH-4O$RC@tkO&x{-UEyd`srRSvWRQ!W#`HqkUz zE}3k4_H`*KV^~YsZ|js@3^PX9#FlAvvvzHCOKcp+iEycEms``5K5m{sS846Kb|QH@ z!rbCKVV5vCOeop1VLnDl)o`>U#A>F;=x%lH0+RR4A8ycC09;HI-@}eMPQ0$z`&s3- z*G;?APE(nh`wf%A{5*Ib$~4$<%;}Csb=o~$30fyA-3EOYp_ZzF=v8Y!rAt4_SazNd zdwfQGGe4>-Yh6G7{`~rD)pdUU)>UwL3^H;*^LnDMy>}2XtitG*wB20!#pA=;_jAP& zF^@Tq?tL%wlgr^28o#uzatjip}iO+%{J^?v{T$NQDns`b9E_iL^FzTU6* z`;R~V`0@S69KXf<*n}NN+u8M`4fn{pe*NG5kN@ZY>;Dbc^-_0Kyp>ELbJiUV&P)h$vvjjmn1UP*gLO(UcZbU&ow5)` zB{xEPe?7ydWFWdghOmV)ACA~-7b+Xm#+;MU(%$*J`@?RB&r{sUtCeU%Mp0T{CcNQ2hvpG#w zYr_WJYTf9To0U$W)m>E@D@+`akhM+bm^2Ib0iGR?5yvqe7DG`wxV_$}Vbi8}isi6c zdF|cmc(}1!$Y#UKG)|A2yVucSBg!3JJAYI!e|*-p)=tByWxQADRrFyIRTU^sLqOG8 zG9n9Nby_14Eeigy9<>)_wf2Zd2UcC_n=^WCkJD`^-vV~FT4Nsa(OtdNy}I1Y*$FgM zP}7}K*z8i(zAFsn~bzG8fXF{{;8xz3MYQBKa*Ys9D31!X>M9LJ?JV>5R*T1IPB z8zA#Buys!oVJ1?lZov+%W(F~7uCN~(58M5A(FnK!2&B+mJ3j1%Hom)N(z0&Xng&P>1~;QHxc zA-r}`G#GCQ(k>f=G1p#%%Z@6HIr3US4Cl@!5s$;@X4tu4PK^_SHPF-$a!tQtOu6GGS=_}qIbD0)_FE%)Pk zU%4-6t7&DXj7FDIXud{QB#!RIcX}<-uvzVFyZ?i$)L2oit%46Ii#m zXNYgqJC1;&tBTtlH@ukfa9xd?;np@j(OGF)i>20*-FNfBG_%p&98S>g{0g|PG=(vg z*S#%PrGfMFp_dq;?ra?A;iGB9);;$H5|laJr!-L2dBM^oxn=L(35;9XNIK2bG&c5T z*q9TLnq_Tl6TD>vvO8sF=+&JfDhUrYp@4bos;X%Q2C1K=U}2-IihY=Zq|k68JJ*7H zy}Z?Dgbz2Msa;!ehPxkX@7^HXhG-3~eW5S3YZ@q%mCB`(IYz@t$LoHva4F%-TU2I_79~D+&T-DS)IM? zQnDDsbbz*=uka!|=B)18zymb5(rH^X&vtrxx>Fl>uaKIR8rF1|}|9<-P?oNc;OU~9QK+`5Y9@L63@ zGECQoW1i>gS3?6Jv961+x9HK;#zS@QLAD!$j(>>j9mURZoa5UAsOS#vpq$DsxyLV` z$2qUpkL$;G?rlC=x96L=*XkG9-|Uf6TQa&{+!2g zJ)isQ&-hHYMmJ#d{Pp}8*XvJI%`xK!wZ4B`toiHj=f}giW$z8ue!+21Z+Bhh=u3L5 z(Z{d9eg4b;@a$$$3YhCO4d|mH_IJ5cZWj|i% z?|&R;#^W0cqJ} z3BA`J=ePLy7V~(F&ySA_+WqJEul0UyTwXrxm&tFrzpnk{L4jFN2_~PDrk$^P!G=|( ztX++@)z%$%)>`Ibma_8#LuK7g3(^`;Zzl;>%4|qh*F~DSd!TdMG!E6?Hd@MdH%9Lp zdT5eLJZuoVYS+4?8T3pwfkE>Te&cky`)v%eO^(%yG&{lxa|YD{-TUaP}D9n-X&V2DtmrR(KB;|g`Zcw&1ch`ZXWKRUAuatS-D&393XGhag0%{yxxWAm$UZy z_=wLV#@JuaytW@lw4){Ln5V8?x!^YkLNN1Tl`ZZf+uHq(oBl&~-2ec#v}J52s)jmFo?gYn2b6;C>(uW!6eX#u06) zD&Avk?0c4xFt(wfV0Ra?dy!~*uJ`|+rhn;?Wy!KMv9%u}s%qwb&V5B>WMwj|x>*DY zB*6iJ{ssKQoN`EjGXi9T0~XO$)%D0n#Ettn4|g+F71?_)4)oO20S6pzW@;jPul0SB zCasC+r6#FabxeC%gcflM!!QBWwraX)gI>pIR$c?eSs1wdRPJhqBw^n`RjQ>>?;-*$ zrgW4u+^n^Bl{Td4Zb@cFqEGVy8t6(QAVUm9h^97Z*D}O8L3UR)H!D%8bAkoYYu}Pp z?n`f*TzxXtoT(MSl}M8~uavz!&z+pUZK-hYV-C}P5dw_U02gb%BvDZUHMg2+u&9c2 zx-Yo+0U=})XzQ=0%bZW;>7r^2<2-8;F!h{cj6}}1w2G-H^9DnLq+B1XtRSWckx?aCsm?ycV@677DNG&xoVh(0}tI3kZysQX)0o8R8?N-7R zTbtV^bzI@R5eG6+@_g(s`cb(6yERd5ikbO@B1=$y#VmmrgNqq!R$b}LiYsbsOV@r^ z-f#DH?RlOt&Uv*d&CC~C#&y9f0ke{^JH$mcbK_*hLl`2^Z4=C>H?VZsO6PfeZriF3 zBUD72OOn@KMHB#X!d1nzxzf+`FmKx2mi5{@s7b|8$%zNeRjl3b%YDOX%&ZEy$NtDc zX^X_{s)ZtybWvr6@Kl2^gut97Y2L;qQU&Xx7elhbq>FauymB?odTC=_oEF%ks8Umw zGBYyeQfvuw#w96-2$~}$BvnmSD<>4!8d(Uz}AfGQSNG8=RC+#HC`PD!p#`0I7B)s;4W%pnhNUTpq%8)!5|i2FRp1;F(B?`wLf>O zEL)ipdrb@9uH;vdGsY#Tv9*UxAyN;QSinkPLIFn&1?TqGoF41k0ACqGm z!eZ)D6T`4HnKF*2OjM!crwgp$Gc7GbFn{W4}FRkX30K4dGU%vak*LVK;*XNgC z$N7FK>oOju+L!J2^8K=HW@Ocw)Xpuf9%Z+Y?!v# zEJ69Q+}G~Q;+)gwpum+8@%h)E&-dTH|L*0($7PIZI7_=p_m!Fl@9??3$EyC47V z^{0RR`s3d&_m8T&Zad_E5mQIzNq zaa|Vg->V5Ec}&UElu~n!17|;C?2oT0*!PF|Vzwl#w@q4WYhSllrNw?AQr>>e_hy{6 zf33Nv4a%VT;E`BH$+7SIdF*qBc1b5JN9E`@ zFKU1JP-y@6|J(odpZ??je7yY%6w=5}7pySn3AXi5W~OshMg5(F99W#nf1W%40ILOiKi;c}g`) z%}X#yRMA{33DA2Jxp2Uv$p$gh0?@b3#bu&c1!>DBlI|)CMX57$1j-1df_m{=q)?=R z6qD9A0bCX&K{Ge!Fl`rs0j=?{IG>^rrZ}r=;6Rp%+p?CxRCDYJ1O&mXG~E@3DQ;cN z6pE2>Tw3cnXQhCoB%~-+5~a#ZGC|H`dWrO2PvkP=I2dH48Y*MCuQd@mMSyZwALCF- zv)-0PmnKaBF==z3mrbm$@ju8yM%l7@@5mHca5Y>d1(YhpBokV!L!X@)%j=+Adl$tP}%f#X<&hFsp#5>8%M}%1A^_m2Rtc-;VRz>8~~RtGqVi zah(vFtr==+!GXSz9M7YztM^xtu|GdmPFG1O@dij75AjSS#V@g$i>F+QrUa*IBTi|c zAd84nQJGRvs>%$?iHI?u*2J4PU%mB^Dh8P%p&VL@ct{>nO*nT{KxAERHEWJ3X;D=o1(qhwM9{>Tvx-qOd6qPRoa0at>yC>{qELhA z1vrYTB)`dD%{zp^M9a%%Dg~8hroFFIqDVBy;!@YIr|^;?M9gVm_uiJ`a-|H)#6=t&nH83oa9rE!LV|NXfnZY1D4NA8n3<|( zj-1+7v1SBg%;ULh-?Sf5oMTkrJol*dMM|oQ&D&&D&8A&-DVykLyZ7@gYr4tyO=T^P zn5uDm*m8K;3U zPtMa-nu$R&3)U2xIj9h(vP>lN6cfYJWTB#Ha@D1jrgqg16X|N&{D?D8v6oGu5;f0h zqRl(6kN`TVBZvD1R|q%&g{fV8W07K+TzP*=(acOt(I8XBqXx|S(#}(v((NAS!A!1j zZSFRYftmuHXDS_Nr3nty5GPc5v7JIPX$seiL0={k<4r}?5<&+{W!4~djH%kPAlgeN zFvfYvS+}K`dJN6z5j85M8I%>LkTUmuPHSe}wfQloDuqmIrpSYVQPM^PIDG9hltsp5 zmA<|8+vbYGNl9IL?z2=#>DyfynbrE1utF;|T^G@*GDQeI&an&A`dVmnRz^WoV1+zm zFvw=60|J)iiL&XJsZ^x(6*4%dU!@`d5D5dKcwzyC7u!u#YEFggmHD=0Rf#P3Z9dP- z!?)a;OEA-yJFI1a#gcG;^{#oo3!{|Gta1XXH4rIv z4(+{J&!ciMB1=Sl5jdwTx*o^m*iAM6yK)UY=b2(RqXtEn6%ttoElN~adIh(V?mcae z+QsUsp`%c6X%#UYiI}74s-i_AX%Nsa)_!wQ=G>>8nfv}e6!-1^$Cn>Ij$Gf5uhoLC zYQETaLm%_gyEl`Cb#Un~-~ZuXefaTT8F0M)^7iTHuU{XZ9?$2FSvC_@bdgG&@B8t1 z|M=72IOKS|N1ofqkGBusNwO&8?UO3|x_Wc4fmwWxvDeIHnJ+KjiMFE58KO-ay!rk0 zds(;pcRzjiH-G=(hreHM-?zS+IzajUZ~o@r{2$_dpO5G5)^E#Z3f~$6tVx`vq6%hy zv)|=xS|S}6NU}mzSp~5?p7Z^Sa4J%)kmo!e(p&2m$D3PqUlh%>FTHJB6QZxTj5+uB zs_eH{3ihwh=i}||^IxN8Um6u7a88*svLcEjDhN_2+Hd#e)@Rk+yk2gk&qKM~%B{Mx z_&jzCLr7xRXJziMKmPRl*Y`jFhyU>P)8~k}Z0)z-PNALeXT@3i^~>Yy$Jf7kzHxv5 z>YcFOw%!;>QsIbMJGqOv2!!eD3XM7ULTEE}k2)(uR9HwDtqbJB-j)mzsme-m+yyFG z!pQTI26hlt1E%VPhO3KrwL;CJdfTLym;vpg*B!QEOiA;$l_d3K&n%H5VtO;}Jx@U@ zzJc;8t4t|Y3N>+*NiH=)4d8H0SAmJIOP+o_M-@>gIYmRd%{Y^6gsnG(ut0&iqApUT zoX4)!I1re=NadhFnkFZy*GZeq(jijnY}VOCMVTV%L`m3u9AwCfI_J9nps$jn5~a}8 zktG%)zP9D1_AlBr&fi*l*}nUp$}tBfyjx^k)}*%F)Y^(sU_ z5Y(6%Hr@_WSS{z7_UwxbsV~yH#T;|Q`};1XzTMQ9%2GE$BdMx&WK`4)RP6RxUYH^j z88MYZ<)s8gG+QMRGciQiNEE&jry3Xp;A$n7dz!j=tC<-Gq%Hzq!7?)As2FNZt+{T3 z&VXoBk%(tiMD4aLUWrst5m5E>e74@y{gfRfv~1fb10XU96JBsFQ8%U4w^$LbQW1r) zDnugGj6iV`dij#XHRn*@TDuv0R$#{U#&gqr9(C{5I=Lw?fkUg5RF)*?PJ}t7vc^Md zYDJ|~E+hml+KY^FMx4^t;~WA;Qc@dSL=1pX#hUpeD`Kc?Tb91OL_|^mfj2j3vBoT2 z_HhI%S;+dv&d$U&a)OYVMYoH=b)~U&jv-p6%4QV>MZ#6LWqDCsns%WInwd*ljiVwI zqNYfG8}S;fts*8As%B0_wRTIu`XZ8`o#ScEvj|O7nYA<18-=N=f!yvtYP|1{hoY-4 zw1_fNg6o_u#U_=ct7$XLIvzOP84>6-CnA z%d|Ai8cQ+svIYTCYMqasF)dMo=Me3;HE{XjFU6eoH+{} zS}YpWS_5=mHEYwzs1amE0>@cQajzuG5+x$YQi-CfO6yz3M3hk7`^@Vva3F~SPzZ-K z*E3VpIYA`*rLbS<#0m3;g7}6R-dxr#FeAsAqxM|d zZ(TA~EXm}Nd46M}fNfdge9x3-sGx)6Jalm~5G4>+CN;)+DZUafm$QS$sxpGbtW)Sv z#0-+vRH9~8mc~eh1W;5J$;wP}1~Q-;$EZ0jjgX-PWxX?tK_x)M$TFFMa}Mzab6C^X zuW#?1Qy7Uwgf-6$s`eUZ)>Lm0NhIeKUDR7VM}`q6*2@7fvya_2q{76fVo_%M6Rhk%Hb{yWEbqpMhC9`pZk} zFL@kDhd9X@ne5uG_1lr>18NX>>j(x!tR$InEccCY5duR&)=(^_y~5hkv3V5WTJeq2 zRx=Rv`bHNdDGKdc48UbsGz#BH2!s$CaLOQoKv9qxkNDjyCQ#<8LQ|~EtuG$=grTp! zt(`U0x^>+j=NvI4PMN(y`mN5#^YOmiziX6n&ff0!fjaAD{c!Wu`^)X)pQ!!oFMs~@ z%U{0!{_{TO2t-;{q14os88b5Hm*0MS{qBd4-+$<=)>Oq+NHb-~vb}xzg2LaXKehF>^`-UItf{C#0JPRW{P4%; zAOHCH%Rg>5o2Z#X2p34t<0&OYCsd;4UYx8#TN*O7EzFo-zrb3a`}y|e`1~6v{kAT* zhSs@sEL}B{@7-><^*h6@^_z3HwO3AN9B*Gg|Mjn`x`~4I`P0w;_@Dp%uYdmMt>0cg zey^=Z%G{^AE-woNCZf_>+sef5OEozkU;Nhlx}7IuW93#ue9l@v+}xL$rMi0GW}PFSqGr0uB}}qKTgH61f@r~#*hjUo zKg-tne2Db6ZU&8c%yF*kX3Z?+tg|97c}mV%C|jDSSDqt>XCNFfN~28mjrHvekr{J5 zV4X1Y260UGephRZB&lK|IXRP6(5j#$Wdf?Q5R!SVFkLASJ&&)3^}aPXWLf5febaj8 zIsGP!c^$F%t+#IEaeM`>djoKe_pF&RTHh+C^Ga}q`v#kIm7tUxI_tvR8H=jTxg>{3 zS5+Y;MU-MvV*=vqBBqJy>!u6lF6D%S9VtA?35XXja&Q1rSy1--P1L%XFCQ{8DsxU` zib+PMs(TZPwl&^9!$d_R4@85oj1U~pFTUNWKF3+U#{Ry3e4Xc+Imdk1{a%m~Y3^bM zVb;M4EhjpvUocquJja1LC8wz>OC+%H{QQi{=1T;6U%TF+G{cxY_NSyKhuLb>%A^RZ zsz&4xTT#jqYdy}Rcq*sWDP~oreX+il7^+zGw(ieEy#ndp%kFgZS6%OS{jl`OWnGs3 zvikNM6+B|@NdX(jMTxu_MQfMLJPxTeXhznY*OCwgHy<*uy_A_sid=7?<0;#V-Iv_I z#(Wc5Ot;&5D@+$LBkT@Q)tl<uF%v2?phM959 zU(09IWY!ixrHY*(ZM6oYm0BoLKK&5+0vOf}UjlTd*Qvz3WF z2Xd%7fw`X`Y?aJMYmIWm`7UZB8nAZRw5&*NFCg5l_Gq={g0a6i7MT(WP;;6ZYRbSUx(*f3CrAc+j+{0~2NL0oQUt5J- ziF{aV%dKUM=c8>a9P=0u*WQUXX(CM*$`P1U2{}`|5ES;x$_cebHKHhzi~>aUq8h1+ z6s>y1WTb$-wW?t53_-A&i;!7J@fm7PJxT9ib=IioZJt|ml z&$r>&KK|5RzkmMqm*0Q=>vuo=ji@RXMSlG7`hWhP{x5&})8GBK|MVaJ<)8lXmtX(u z&;Rsa9$!Aq2zaA3wN@<6R8_g8)oMo`pFjO#&fCk@T1U=VW!l~zUmw5!{N?S-{@h>N zt&1wN{rKJ5ZkzND_qK>shBjM!fBori|LsrzPiY7P{pjAnN^sRAXI!=iV<^+ zapiE!OwyPaZLtUfVVT;rizKKs(_}tRt~vfplU)lHgB!s0H9{26Hd0&rMwAY z+p@*1rGIxm-Wem~WK3=SJPycb$u;XFT4Yjj6<@FXz!*;z2FG!}8+{%-LUT;FZqndj zWg*1XV2r_>NU7~bZ9ycHH2@PcV@q7w3x}FHRZ0z>Dw>LNQ{DHkzy8ZV{&e3y{N10H z?cUr>paw`z%*blK^!3iD=lf8q_e~w5LhG1&0^rT07n)R8Xmj+w@+0$rP)vHt$yw9R zIz{N+EF>T$Qt%K7cT=NCq9Sv+IDpDoRRRzbc50)9j<+Gh)^!DEoKvW+cZigRci}`r z#F~r=158XhAV^kLQN$I1mWW(3usz3YXUCiey$@?yW5rV^oPRH)~$U2}0e(3PPw5Buaa;z9}4lq*e?A z6(yB%ycH(e23<2dcP?J;?KmD&BT*a1j$rXWnEI$h;eXAnJx>V`};#kTUU<*;Ie&~`!mjX{c-yitTJV# z!i%IB)G7zBG-9Q)AmYBbZhg5gx0|55dS7o)hfZ4?;;1~9zNO5pCaM~8av-ach!huI z=_qedV-;ZqnJGfu+6VI&+G@*-j%SP$RZO1qbFtlDKlu8px1vm)Wu^Y%gY{OCS{6}b zOs!2RnFC?IxLdE|9b~sI)HvqccQVkTCQ)9j90Xj<00E$AkelvI;HgPD zbGhG4`WZAcO2;_I`09%+%fgtKK)v-gf|*l+=J%usKr2>?HBq&?>a&%MYxq2lN9Ebv z1R|Fg&6GtX0m?PJ1mYVGt%*7!A`@CwP<3e`YdK;mPiOo1EnHjF4~Ql$vM;9 z)HS2zn+IF0Nk(4J)B;SXML@(Bk(TFKoYo+wm?S3(5GRFFB`qbYX0Z~XBFSKgEGzUI z7`>VoP7=MXAW@W@%IsnT4JitCZ;B>LMF6(>D&s_4UL&D2Xv;|!VoY_HR8`_+<%y+= z$K0uEw%veb&e^0xTMJ~oIV4V)Se=Q~IKz9Ft*bBNoRK5d=ZJ`uOYQ)d*%5&mAkb7e zAM z1IEl*oP^kB-nzHVx0`ist(uN8V-I^ydDgSq(r+Jr=-Z7LSu(l3efcE^+&)ar*6+G} z{q)<!_E5Ie|Wil_xk$%qJF-8`Q@Mf)6c*BcP-LDbZ5!i!`~3O+?O4|j z>*}p-AAk71DChBhe){};|Mc~@zZ}QcrQcp&K5nl!)unBBvyP<~N+Vsos49!3LP$i_ zs4O^2V(0nDJ)@4d`PaYv%U^%~U-z$HdT$kn3;*=5{$bm0I!|kUJnsAc*}b6_mFn!*vW)V5tYh_ne$|_ShiqU#P7DeT66d1 z`#HDBdGg4rRXZw)Ae*vP1;s@-p=IthhP2hBsX8#lOw2_~Sb3hhG;umwp2dSwcT>+Z z6^k~qRn2$N;eBzJES93Ifr1iN2^=tCVnVGWI#N_P4kB>Gz+1cwH+i&O=DnJdeFJ za}HGz`=APKV6kv&HcD$$WL9K} zxp=8w)Ee!+aYRli8t9c%jI60%QV^MOJi6URjzXXrrOxxM;oi}5oF>Z=UtL~o5h*pd zKmbM|EFh2)t>#G*G$@s!g68fThCvA-0fj(F;dD_5W^%Zh8M88C$JGjt2}6}u9EE5= z(+;}{lm);9ojL%VXPo;kx0l6SS#dr=jQNZjfjrNLlx;u!=-p3aY0%7?^N5%+&T|~c z@i@69%#J)75R>BYQX;A<&r@}&s2QhlFdP(N$*(5QDvw$>CiD@atOG?zJ#_qU}??zci5&-eZD#oVE$)~W_3WnC_; zES1co=GZ>`aGrb4LK+O){R41z-44bKV09}gh`P1*A;+PBq^s(6j`7PEo*_aoQB$pp zh|oZT`K1gOU1G#F4#>08g%R1#W`df?hcD=xx2}|`EP)GQ+N`{_g>3R7@2lOY=g*WifLMWq4~^@NT{L<2>e=If4*d zoB0ieFiU)cw#n&imue+*poY6ffO%NSKtdZJ zW)K8&syQIdk>2tgk;x2gUZP~UT*-D*F%>Jd;sm6%X7HjaR7JEk^pf$cnA%)~Wzb5k zK@GSu3Q(xkMJ+P2vXH8Tdqg73nqQi2CMi-SU9!ITql{%zkN}_%aRp1twHO&RrHIG{Yfq``=HVum^Q;(&QghStZM*l? z*JZH+V`Svaakk_1fIzL4c|lEYBD23#y}f<<o51?c<#^NIm(y1e|+^1-yi$AzrFSC zeyyrSOumIsixn~EIG%Anz!HCn_|&u!+w=VL{PN3q=B0|*k9_X>{y5!tZ;$7`uiJ;W zPoExNKfnL}+xw?q-R1Rztc%|6f1EX~-^5(ZD<&dL&A4jx%b%i(>Mh1&)-2`Q^Yib& z|9%{CKI-dlkFlSo6xD6rK74%r@Zo;nZW89}8n1qyO{h6dvF)6)*FGL5Pl2+`iF1yQ zvdAtSb|c1qj#&pyBH377fx=SSsFbl0$M9%et2+qtv>$79)T( zZ=%Xjp->D_tfFbD{xmnJYz9 zh+s|u0GY?3&2)K{Km<^g`9QAdpkj_)`iMM*r!I?9X%uZzv*tlzp|o{D&nV1Lctui5 zOj$Ac)|a&{cl9z<*33*1x9%k|>y2|UbygXKU1=I)SDLR);d7i-sp^0W+R|V8Dpe!q z$jVX#D^L`&vc{1!qw;(n1+l&?)&}(%2x+2yz9%G_Dcf+PP*HWe-Dk~=J$a6N2Hy}| z)4bUQMyX050ScyKXgTJYMQ8^=%c&HDxv*0X6>XHr_Y-|9!NeR4TWo##P%*~-1U$x5 z+KP&K?8~}RrWj}Jg>+w48ceNemWn8hb36qRGX-?vKF_Yp98uG3m04(8xARhoj7$;H zItwW(8&bTj%^g9}6xFL&P62CF4snPmCCOa+W*Mz5ZnwGPc+BH5gv>eiW-q=q@fxQ{ zn2EWGgQ%DwrnS{rXFc3k>B|6fMnw?U(3HMxS+isrLB2n;T2esyX82B+^b*ARoTpJT z=ip5Ha9g&X8gtGWcQtsh?zkZg)7u243$bD36itU*3_295itgZ1Jj_|o0UXPl3*a~lFgzDnU|8? zybFZ_6Nl2;V!mFtQ#DDPR0T1|S$S%!SwmtDT`AhEs*Vb%m}Oe`%XnX?%L*wPEQt}c z21VPJG0K{@wrZx84LwX$&Bh+{{Scfr#FrP6PR*jX?yebyP-!l*R!vkFG>1uXj3=bj z6}q@}69-D0bL2QiSwXMMfKhbBq@;#tAi<(mMR1>a)-t)En)#|Vj=H!V1+~tS%v3X= zp|VH_<_G#wD&zHA(NAIqMvOq9!gf zlggO!_4C)(J~H&{Z*Ri=t{?BO-+%mvAAbM&ALH%)zBMQ3{{HK)f6?Xdb-Rz}{`TeF zHtLUf@&5k)w*2343T!@kn<78V~pceUtd4|I0tY5$3Qs0(w3#6wU5iDFV82&Xw&AOfBrA;Uw#(3 z2gCeDH?RF%?%&mXk0Z2m{q6@XV9sV6X)JBF3S&I?bL4;&iqaE=NC_$uoeV^#EiN#H zWhN7FBQoYrMr(`poAtX&pK~x%^paS1w+r}P)KNa>9OhxB(h5!u6ILZ-&g77Smm^Bu z5Lu+)T0mPdn=j29byAb1EM!cQ-nKSSx@TyaqbL%}5-HY`XerrLwclh$jE7^IZ^?j2 z(h`{k&&Dud2v+OLOjqgaQW%VrcEMZHO+*%PwaeGkg-NR^UaMk*pZkd`mZT#F&|9-&!)&jFVL( z&UcyA?$&yx0)m800jsKzG=+^sf4I^chpgPrmILdyQwYerf`bJJkTKKgxIpENJhjsW7LQtCGDn# zl6#MtsI@i5d<0oBOCTa$nvkm8`dW}NpAtoxbH0sOR=Z&$MyO}&Cc=!7If()BnjsCM zR!kvfu~`K*TNV?qC^!URz{y9*?6w%0l`)Q}Dkk%Yh^3o#u_lmG7k3*mdtZ}~)*VI$ zBtbC|3VmrAdsFLeRR}O=o^zIDaPiy+>lAlEHz5_S-CK|2Q5mF@n8%Pys)T@wn2A)5 zeV#*N=(4PB+m>ZpR?cxe-ZBS-3X6#IJl1yK?jO$c3lQfqf-Vg(ucQmqyvUf-dn7_J z5Q#G6H6`fB`P}hHMjgn5G#B5CWBd+9_GoRHJj6sX#s zRmi<*wPwq*_4SS%Fx5W%kz1x|E3`FsoT{mXh)Dp6H=2D+FR z7M)s?EFcRS03b>T==_%A649!FuvjP)LlbdzUXj;KQ;`U$mX@}@WHQdDcVoYRV2F8Y zn5t#gg`b^~6ZCUZ5*XULICv7cfJ9bR<(W*P%sUNL_?G-uDRZ5S+-sgL}JY6i_n&NEjMb;i#HYNz@p7Rc7~d zCg;H!rmoeYtM`o=wNEg#BC8^wqOW2GCX+%zX$xqe}EjilzvtEC^C!4g#pD0xI3rT7yc=3nw*-&Zwo|;|vi~s!4C& zBx%h=9Y|0irfCZ6t*b7IrS%Vb9y3n3nyOf{=4K{lFo}|L1~ar9rJ)4omjzjfjC1BB zMqvg=%3ue#@*7yFufaK3vq+^A4s~9y5r7DRLI{@N>Y=DmA{?s1RjO*#RJb)0RmoDS zwpCbZCgYqHZMg;c>G!`L^SQK_*xyISam<;EPJe&f-HJ02B@wRb(xK=dUbwW+_;V@z z<+Xp4+YpSL2kEV?t*x0=;@}yT%eq{Eyc+R5W83TF-~8!cz5L!#zo#{L|9XDWx6ihWz4UnS`Tj4D&wsux7PZ_z zeqZ|#GxN=t`*M5r4hUM`at^`N)*vd)#Ftr|RVs-*E9dk5(>UMu@%;35e124n!mNGY z|JA?whkyHj{NKL+{(X(3xBLCa@BMaf-~AZ-JGcA!K-u>Rd+u+){_~$deg5mOzy0Oo z-~HWo|GqV%-k0^mXq3C-4{c^2BTlRKTH`4>MPM;<7LV~zt^_m4l^wv8-_ z$%616b7xhaqvSki+O`;7L`#VU$SSW2L<~9leV5`fw z3q|i{Y;w$fj8ijRTEk)nGs!qBgYF5sr$Sr42W&d$9poQ#8>AWTU*cg+HN1ZdcS|1&wvS_LXSD?oGHZOVng97G>A5L?*!*K zYebC!m|8Pk1*kb&U$(YRmB{d0x1~uFUsi;%g#_sr8thaFbf*Bl&*tyP+1BHTDdy@< zZQj?6Ib)3DtNLnCoTsu0bj+iV;j%2Pvz?)PLxW_TySwBbPl;{$&Rgq#kNXm*qQ>pV zAHm`|37p5M0!&eg6qD7l&d5xN6;XMWYLCanbLLx0baz*uf~q*@L9LR6A!~$;wwh{d z-N$4VrLIn+0%F!+pmFk3*#TP=WRzw@Gz~lAnQ~mf0F`t{RBH2(w5Ab-rNulVq^=QK zT5BEiqEc2O3ROuh*KC&neoERU7KmzUs*a+XK_uhgQS?zPDZ!u%%PM$4nu<$}W(H$& zTG_SkOeU;v+v_>c8512i2~1x?3|Zz3B3ZDl$!N=?j$me8f4>%zPn-h}p8P z(9Ch<+}on69aVGgOIsrK-d@K!yV}T6K_Fa>CRqn`NyTwIHYzyXB-AZ>B?UiMwD)%{`l{QaXx-Wf^TV$Q_^#G!8t~8O%d^1inF3ZyU zqS{*Pri)4gPh_fgZ=NCNd_urBFVJPgm@}4j&6$$2y?jt>aizS~MHrdlO;yGWp*MdK zk2u~7siLB;c4*+DpgR1^2Q1=F_p3; z3RLB20p!5R%0r$cik}StY?4aTHE96=cQ8Ec2CW5V^3r5GjOQiY%&8 z1g0jzV2OAaC@-hHDsU}+OM#q&8m)EHMzY8mAxsw&RH;@)#_-lmIF7fPr%;lm^J$g6 zHx+ubip&X6D@%A<-vBWYQNL&qs!gw!ObH8W7bpgTDgiW!grO>QSu*R=Peg>W1W7VV zCDp8f^wt<5VwJ+8nq@^W3ZY(Lk1@{YJFlua3dr6!PpGZUUqwU-vtGzK0w4f^5WEb^ ztTy+Eab1`sGnl0eU|w0XOnz$?$u~G#X3d#UEz*@xLBPDRCNYU=t$SB6z!EDME31M~ zG+#(0lNFUI6cr}}b+rye;no&HD~5=+CQ+kKx}rcv&`mQ-fD#eytK0qKcgwau9)F$Z zW4u4+^HJ`7ef@sfo}d1_e>xjJ!lIrB?%#)I&bM@|?Wg7TYR9iJ=knq9>TPbzc)sW3 z$vVW_?Y=7W*oT_&8}N7$MFqpWulKXY{{GbOKj{7AFTehU|MF*3H62pL=F?TA$*lAF zzRwZo`Tq8G%zgX$&qw~B*4Gd3pMUxM>#s?SeV@d2cz5kc z8Qy!=DNtxDRy-fJwfC_f=ajH0MvNS1X6+}x?sMpN&iC>DrQ7!5ho98_S(D$t+;kdz%1 z(T!$V3=BjCpR!WcP*9c?QBqB$fu1qM%$pY@$H^48peK}SQ;FWbqv*&-%)#UwN6Zqa zSaV&pL8ef^Ie9r#L`-`T*OCzPdK15w`4OjYH|sZ3?cPdjim2^1BV{URy*IZE5LFijzZ5K2^QnUz_$( z74=;0Cu*McG+$gDl~s{>^!4TT`u+at7vxxaBN0Fzc|j7g5?6HGOfHh7u(=f(5emtg zGaq8Z;>>65W@3j6p)wT$|FAy&SZ0*0c*`Rj{?kBW&^X zj7l}nDl>Oo1kOrXSDnr{NW+s{yM-_x9MyUAJi*$G+G?H_UFhwDmQlsW^ z)SMh;-Q5>Tx+tx|;h>spTe74w#XTnl(|hOQHBSf#kQPTykk(j>RChBZM?96<)J(ge ziHQ0J?2;l))ivg@pxPz`CMl>hDnw0L0EaIsHNCZQ1~D@kdBCcWWd&TB*s!~sM$O=y zISVj~v51Pq!8j>PCXrSN6^MG)m=Ov>%2dTXFY7agXs_5=NtX3SoO3@-wJ%-evJ3c3 z0;Nln3nLl<232onjbX-{c#C?nby0zO%xBH$B#pFy zrf@(^b(IiIq-FE$ZL6L~oCOy87;}sfm1>hThyhxWBZj-G7@~9$@kkNRe7%GFGc!@VWvjK~up#0$+G zMM^~BI*1Bg7ub|S%oCEX9cI@M-Q7WrO7#Y6%#$U(xgc|*nN@_|I4aLmNa_eq}8X~6RpeCj;#j0fb;#yHLlhWF) zS+ANV%RHY(Xj4Ins)#T`1c|8*5i+JQuPua%K}E_qDXI(sq>unxUsRoWRw$@qx17wR z8CX>+s!Swpi4kh%u38k46s0LcNfW3@ph&$QAyid>%*he}rtPW+Tpe}Daz&JR{aHp8 z#|8PUS(R?ax*|;`1PcX{WE6^GUSbr8HjxW4b~#Eip;2 z-n5T+jyb#at{<`lZjpiUHu5;mXGl^IIkI+z^|m5o9xbOPCN#loA7vsf0z{B0h_<>l zcQ;b@J@+#-REI!Q2u)+8N*8lslWz{00!tMF1zCi`a8YndVckqLDx(DAwgiVOhHy#P zq|WgK5vZuM-(FsB-`~IgVZGhozWnp^?emO59ru?XyWXJF4R!0-_j$xz4y;R=ydRJD z`#-PimYCYLugiA-VIJ#v`1w2c$Fo_rZI?;k2k7dq)^n<8P8Mt_)QElOvG`B@@BdwX z`t|GE*T4SNUK%pbZWL#~e}DV%Q;3bI^D&>#xu4H}{+Ivyr+@ix@wb2b{O#9$oF9Jp z33KdUKE40`dp_TvZ*Qv3=*Pa7o^>O;AII^SV~>5G75f;NUw-?P!ne<1Wk3DtPZ;*y z>)-$Q!yj%h+jzdK3sG|0yf?ht*g z+>zYg-hS(i|LOnx|Ni`6^~dkz5C8gqcl*QNqV;pmU;gr!pMUUID2*M9SS^Bj&NJ zx9&Yh)q$GD9EAajG{hWp?qG+bjyDt9a&sUe&4pFxv73s(REPvYg{eAFmn{8CYo^x4 z(h+ra8F98O_ienN$%j17Wvg}hz>%>JR^=(kCW@?GNjB+VO;e>e}3(cg>l{L9q6( z+pG5%^?u)%?eX>Z=cg}y`3UL4d6ASkAyQcbqVy`OsMD}iq4MI#iHgyhIuu1UX_p9K z#ss`)2^7{g$impKQJadWdld^%Q=T+!P+9B)anuY(=tj9=)?50@A_czPgj(~s0&rO= zwB|SIQe;wdoR@Awnr2o>Xr;g^Co@HjDv=>2*4*49Mpard$rsgtLONY|9$HA@n$Ks@$T_4_6ojB7|+HB+^VHIy<$RYg~|1u%-p zw>hr~q^UWUIUsD}ZoWvoBNItq?-4tYm8YAwTb~5xBT#cDD~#ueTfogFrXJom4VSXQog(GVT3X<(KRpkx9$ z@_c)Ie*5zK>+8qu<9FM~*Z%f-s-!Yv6zjIUBsv;=8LMD}>ssu-xH)(51F%!*7Nr+e% zfocQHY!Uc~RC8-!rqaNsSh7OD(dt4hM5l5uiX5QGsev)B&kD0J=9^KT#LJQ8TmR$bzc1 zhRUd_tT{6^qMK_~(Mk*GSpY>-uQOlHpePAcN1QAexmpk0vVClB60+%)$()v+^*bnveos;^nFoqEaf0fIxx>(LxTAQr+Nr zl+dj8ycqcOIR?}zl7qfz0cWJ*y0RD`6J;2QFr_ukm>fHhuvP@6Rh9@%dqxyyW)y>S zXZO8oo+oaLG8xydbXJ}rgR8_DlOuQnK`+@>I%gaSNr|jv0!VLbTec8AkHHL;bWyYN z1~X^2ss(6rOlXL?rDUqpDUMQBf@N-^o;euvTNa2EDnyFRoFaC;YY5e~tE%h8pl(ZM zB_yk&YRuvGo^e!$FYD_Me|-JppFZDTe*5cxdwl+V{lM@4_^+zr@#%9;mG0}h`S;(o z-cM*+JfF|w`DoVGoXq{$-+FiZ;bp{=W6b@l=FpO2YO<*n^4w3rBhPU@+ik(J`tz}T z|NZ)>|Ka$je}A6OKA4g_p4;v2eXExr&htDUGj*Z$GwaLePyhIz{+HwH*E}A7&i`sL zWzOTv=eEB5@P|Jp79@`xdsY7a$sY=n{XAogV?3%-pfMlF(R=&w$L~LGKYaY--{kZ2 z$CuaF5BHqI?rtLEJk?EAO`zUu78u@F?F&TeJmNT>=SlI^8ey~^0#HTm9J%KR_}l*V z%k#nW^V?_qOP+uKhYtfE{`KoWY~51*>wEnB|M~y-+i#!VA2YG-`_r24I~$#4&mDz@ zis$~j*@jAqKKGE`kHHqce7ODHKm5Dj{`t4#y+Sl{j{Iu3+j%_L78T>96a)(*gr|yo z^O|9lC^8Genk5UFk#h(V!7BCkBHGEJN@%;hKMWVUFK(xvId>vhCCvp_ZrDWhIHwV7 zYf>GQ$We1JCP<{XElpdblqjKElGrOxvrYU~8965`)!d|uH-P8!sD@>G>C_xK-^OCL zw%3DM$Gg_jx+zc50bypDHxbQB5syrsr+<@?(^6a(#uOm;10o|HSZu^0Drp!I&6}2( zF5mo8RpM3|EM!5FdhM`F%vP`}M&%T*ODQMlMUiHhl__E-cEdC?+rPZGzHM#u=7r3P z#r>EQ!udSg?XF8hS9edujOW#;s$-JfywNji$i=Kg@xmBq5i^-CeM*V~%9O)w%_^dD z4s)xB)bhU6nP#)b@yxF(-Iku2a1oP;U=DCTBR_xn{OkSK>iGKg%Q*+kVvOh4&+F@^ zCIZbd4X}Qrs^}ei%a~H-=H1&Fqxj}nu{4Yn+LaFv9r!TYa@%en$NT&7_26=|bun{d z)HSCU07)cUu~*c@v7;1}iYZdp3Y|%?dbhf5b38c*Db^Pii&4J3fGS2t&U}JKCawT} zg(STcN$cx4o)yzvDPeb;W56{tD`>SKM@E(z70oP<6j>lQ>4?}fDWIvE^(j|;mtYD9 ztEeXKRRN}IYi$8IX8}-G6Ju)DB+}IEIul8vg5-z;GCejaG+ml|)(mC|<RjW}oiJ3wugfZtB6|r>h%ObGey)Wy`DxMJb+fwCc&N;`_P^#D> z6Z0Hc7SJk`1*Nz&bv3ApqJ#muGc8jI(JB*%E>O>@rba3=+%C%GkvW$_b@p2IbE7-gD4<#9*|UJ zod?8J+@P08p^8#zYvi3yOfqUBYCHgyOx0~P5aZkLPjO4SGiV$FYQfb9tw=R33ISHl7!Kr&oD`V33*s`L zw031Z3w4Suq-2a>GWFV4s0I;YGzF*%x$b2OF|*1jvhb}!Kt;|ujw#{_Q`MPSQOqoj zILB3H2EpQp%yCF2wM$9GY|U9Si^&HfSu}T%)Yh~wnX%6kO_}h;v?rKVG2@vPqN1(K z0&Ontkjj|XJ&H*JFe^&c6(-VRocr^#M_lgurG2Qh%D8GunNbvyF+qSpTZJpD_PB}uZahpnZm=I%QpvL4-i&gpwEFG)bamq3If z9CFSfe>i>sClDboKoZ1xb$3-}M#OeEQ`Nqd^uiFe8ek{{qy_p&)H$tmM1w*SLF{rOM-=|AkgJzmE;Hudkw50{yvyTdG> zbASDEJl;mUbWXs;0Uv!^{H~{Ey*xJGcg92U5dBhp{d|6Wd_S-CIrHmpUq7q3hi^Q; ze*Vw@_VxI~$Dhtl<#;^IzPvy6^)DYE?{j?liTcuwDn-z#k9Q;=P_A6Kxlx17QQDSz zeqX(>{SQC=;UE9=?|=RJ@%*6I)z9^}_}`=+>p>PBUp0Zv`O7 zz8edT=FN>LMBhF&R2w&V^tDN&JMwc8+ie7cS5-202UnfF(&GVcb@8^)ccsLLVZ{+6 zd^^vQ*rX~+!fxLuVZ)BmSltaSGiNdv_=&+d-rmOBOJ5fhS{!^FPG^Wu@a$Eb%XT?U zL}mF1bN0#xgKm_H7-8|4&xy|usAr!IRQ2#jqq<5=nmpWxm$uC6>)Dd|9=@X!MCTF> z0Mrn=3lp)M$L_X4w)sJLt&0VVKs7CR-NB= zH#a|X{{HRv{pDqQJD%6PGF#oXuIKmnZ`sQ({kgt< z$IrB2j1fMxav)jAkB_n#@nU|UoiZ%8KteE~suJ@3<%|9F(!=xn!m8>5Vg%ewg3z7W zW*!eFxI_vuNOUh%SzD&M2;PAxsU@09)grss1vH>qZ63Z2bqgKGuCf@s_3y%f+S?YY zI-y$CF6fkO!QmD#0NUc<4L`SR(k<>h=xr`Qw>kst8$;AtmLOD#JGku8RjRI=H|Pe9 zPWDPeXaPRq`9KCks@y60*ad?C4{N$@ zYFp>oUHkFKHE(q&#+IvQpA=`M@iA=6Jgo;CW9(zZ{&&I-BT73v0c86ZCCqBWlBx;%1#?PUUs*J z+2eRgi{d>~W?|i=50VsXWlI2&X+YKWxqi2XPp9YDZ0E6gEX?j4u)|}2Y{%p6r?(f= zHQ&E~`}i7v`?p`m&WN{Petz5Du4QZab)Fxezvn915&O@v{ZiLs5$9)e1CKy#*=>)3 zChH7?1p|TbOhGaqv{3)>$hZyAj8R=GqYbA6&~gE>4If5JakbLi#&NjEnmuIu@%lP` z(L9x(XcOwnY1XdMhMfKPxiX;wCs>)Mhns~IfE#Q$p;j;BZHY-|?ITtzJbFc;eC*I2 z9Rr7%$x>NG#_%207NS~}T`9?Jm_c{G|E^y4Qg@7o1pvaFwhea=L(@#g&SkwsZN_v1 z8JYl#mE>H_*^5HE6nj2F)3&KAXn6sPfo4c67Iy zh;19qH<~xBMXX%U6MK6JDHx4T6bQ3HGp+1gY^WMzl&M<)cvr2n8$eSXP6CvKV6D#c zLWpFTn>)au%Zw@dts{)aO5J{CgCJp*u*e=QU(IOa{a)`Z&}=x7cHy z&oDPD&908&^zNRY-P1|mkM?S<%5Jj~yILs}h(=kRw}A>IoT0?bN!Osc%xrI&WM;H* zdZ@0h_nfo3u>AIZ-@PCisPr3=hwgH=V=kZ60SfPFrbiUUNtAp^2}y8(NkDyY+YRweW81g?GM{= zxVGo>tSaL%UP2#dUso9S$Lp`Z{_@Q0ufPBE%x`h|$8WK1FE9W2XZ`lq6W&ew`26_n zfBB!vqdIF|JqzOTa=gC0xV%3xc)X2c-?4Z+{c|q->%aV4?fd8Y{@cfUW`2GDJ}cig zi>o&2KmPe2kI}E&_UAwSqsM{F;!1M#ZuksrT(e*f*NyvjZkPv4dwbo}=5{$~3p$d^AZJaF;* z^ZncRneCVM)wDdW`Q7$i_L40ptH-LSMAK`PZQ)~=Vx8B@p83(=mL2}`^7`}7zo`3T zWpLg1zI&~|kH_1~8=>oZS|HCE9^2d7SlwW(x~|W%CA3HQc!M&ZYqeERW?S^VP!bJG zH=_^$6V+`fJG_{6e%O9=Q&nzmJ`kfT2^dhMg`2zgU<>!dw~eSGZIEM^epqeITM}_`OnxxwX83xe#I5&0I!@ zd-Yt;tE|nOHB7@B>NfMTGwb8~KHAH#9k- zngm%BEP8Cddu;3cyw+Ldu+au>ylZd(m6&PpU1Di_{+=pfBv`iKCv2TcZ_|gE*7(`8}q7KExV6O1$CG;yK`ZU zA7S)u8H0t;&6xYM;(H@?|nCUnFD$qw%|&DC|9lZMJA02X80BQ}<3 zwD8aY-r{?QOV#WVwgW}Ux(wEBBJ=~q@gu`hmE=Ife6+mEfJfNY)ize)`+^905ZKg3 zgBfGEgUjgf>MXug+#6T<8N1q>?zd@I2$DrM9j{ zwb?*ht@4n^7`l@j?%UY+?K-2%YC$?cReuO;j4)&76SH*g98bdzky) zvb-j#5!)6!#>#rfNY}Vq1W0I^?L5qV`@*qiKNH2_*|yg7ZS#GH-}?h%LR4EXOBkI5 zcM8&S5$5W2J4h01K;Z&dbDGSyJ+{}Z>@~&vR&|9tH)FL*WUvzmWkOAf0uuMVo4aKG_#;bjA~q+ZMb>Wfgor$ zKx-zt?<}~{c~=t>BJW`sN8{8HtXy$sdr<2Bw zwacR6EsCNU`z9cD-%n9>m{G(1ups?tEfL4@FpKIt9+MDIFc|?!TG=KTZ5$l#SOzK^ zO`&~|4Y1_dHLGYgZY`DoH3foOY?l40u87?&IsgnaM+iP(A-D=b)3(u;$0?w$Ye`jd z8;n;+#MrE5Fgk0#v!?~NEoN7B<$}}9+Fd$s5pRnoA}f;%=&)BXaW$GTU7^*5e8DX(EM2Hp^LsIEp zW&-zc%IyADMRk-4q{74&02=};3%Zn@XU)G|5&Qc5{rdfVeSZ3O^z2?-l{WGGyw=x` zBS!dJ{37pY%!KN>vU1xFlleG29`nqSjqT^K?R@e&|29TE_MesXaCf|Z`RNb;_@Acd ziuvv9ZdZ|OK*9>by<`*ys({c*rY#N*|~abV5Q z=Wk&l@$>xtne*zLeLZtt=czn5+aCUit$%s>@`qo4`NN;SygmGJygiOD0@p{f=iuRw zL-49I&l$UI$LsJ{>)L#`0I(u(TVQ}NVr&m;^!@VRclnlykMCbUKfYh@AM1JQ`C+rZ z{Pfd%U7x?bZ#bOwczcPLm-g-J@4ubT{QC9VTy4jp#R-)gjc7=i*R$2;WB6-dk4kZw z3$xy5X01goeV+NXfBy1#{^LKv#`@PwS67u52KR`=sjdq~daDSSyT87@t(9wKJT^Y- zInP=b%zY2R6wX0irLGv^n{`>O>?%^kqG&_;Ih#{gRbPrG!0yf39}gc+1KT2KrE6yO z0?d8Kb^kr++d=N2g?aRCX#q__gRpdEf82?0ECNWYvp>yzo}crY?2Rhj;0`v%LxhBI zp$&dymhy+`wX+#R>a}KI1^L3z-{bDv(NSZ%-;{bx(hLG8>nQB0?BZP z^{UQ`-R=XVYKrWZRJU$+!~m457@*j*mR*%;w5pc5kFa{;rXP{1xs7dI<#lnO<`uDd zx8_+{76aCFbqZz{8+$6$g`5lF1=IvKLQW&yH8y}o@wx^=#=>{>cx&DB>d=oWtp zW_uGI&OJ)KY614;*MI!u{`mUWzjXeWkMHkjX$i(ov?H8!-yZ|{nBPBbY3zFnl&z^v zUAa`v$A%yuW5h;Ss!Gd`5UNr1?Uu;Gjof|2_VUH{hnlx{47>|5?~agOCAPv%|%5gdO}8P+w7>p*lgy9 zhZ`(c6B5YL;v{~oUyXjd7=^5Eq75ECXhC0q*bHuslDg0hlx_;QA3b0dEad z*qsuFIrhg&HHR!v)yW<#vAX9v=Q{6HjRU(M;ags3<}=H>KoVGhku-NnIWHUGey9gv zG$(F8iIf)yxj7{_f=+XFO6|UryP1WRhZO`O%sbCKp9KE?JEN)t}}n{ zUDdUTH1p61=P<2QE;FMU*)l>6@}6i=Net9LN7pRDf)>`D>zs5yUTYjX@w4&)G5I&h;(QR-`vbB+9Od_`(yn4)0ZQ<`rYPdpWRvt7xvFw@4x@$=@gds@L_N{ICt(-o1g3DidWMLK+K5 zP8bYAm8$RX&sE90fvUB-16h?5Xd%~pc1vBIb-kaT@$K#H=Mk?d0TVFmLGCs}uxhbD zGvDZb!}%^tMnGuF0JIn;Ri?5f%I3F^cpScM-9>ljj_$lZ4B+MtYcsc@$`&Bq z@oDhBzzZH`kg7V(eYkrSD%I5h%+z<6t~=NsV90vq{r5ZQw%vC~nu``erwL8L+H82Eh00c= z!=14aLElhWD~l+U1#Gxj&{k>az?^QwN_WJTbO2$a3>K`F;bD-G_wJwpxq-|?_?>!M zEg+okLbPBW+ue9Z8)9sGvoR%-+hB>RRoPv`oVU}|RM#bJG;d_CywUeEyQfKNQxPjt$FF}3@^gOF`T+lUU0*-X z_w)IwY;E+<^Vl}qcPv1N@mTBge15unvC_q!2;as_FR1dIpI1*icd^n?&{ZoP+n2Y; z$1mUCzqL}xT=V64JO0!EcKz+&Lu-U*uAJY^I6Q{=vH4Fw|MJr>f6UL%@FYJz&#!Af zKY#xVf%W`+e}1%aY}?D1*JF*RN*mseFJE4cml(hP>DOQW;g2tm(fI+coZrLuF?JT# zT=0nFwcF_Dc09K6VmIM3@`>v`s! zuG-3D=Ii!2_SZ+`*!SZ8`@jEfoxi<*-Bz;#E}DbX)aVInI|q{^yr{Y@{cy-##H7acuie3*~j??-oWMl~z?NSD|dcR4|J+ zTq|>Oe?WH?OdLmG2NJeqAb*^ciH2nrh~=TGXVnR>{qeBPYxsSRLm1tdGSWBO{diuv z=9A5V!{{kht*Ryk6wS=pH^oFtYdS1qTg*A1-4^z0+@WorC$g%FbU;0?Qg)wNtM@fJ zNK&dw!#=iS&65CQlQK);qt$nIu%Z#P6_G)!yofoAxlc_9ornpOKW3Nm$F?@?1So7n%Bq`(r zIGD4urFHkQfa>muZHz~rwbrxNMRVGQOfVQ`^cJ#9EgO5UWhMr>ktfvh6npg*qIH!9 z&8Qf1%hKn09_RJbua7T3|H*uR|N8ZOo;9n^8vA2_HLKQTN5mL1Y0aD!;|tBk{u6iG zUx$sQVrP6jKi9fmAFpHI&2BSsFkFPJq|Ceto*)hMoY(dJ+q^zni-V3)Q!TBY^Sp+; z?-2~Z%eHmB%R1~}nH3~+H_gSy52-vTvewn^aKgMQMUigqWJoCy#Xi|N!(XJXbJ2&Y zg+`in#IbixGgAQ~Q>{{1^=EUK9cr|Bl}RE3y5F^(mOq%1V^gitEOqxCD0A-+&}7T* z>!=LCCpz0{X4GceP+Q~jZDX?(gvS=GDJ~%0fDktXgY9-B?C*`m^{jeshyT!2&THF` zFK=&q#Ot;zSEf+5R+4^f+ZMZ4&sntU>=Bzsw5+<66ItBc-N9Zp;l?1?&8)iC`Qc;4 zwmYLO*vz%ongLdJ32tF#pwsMz*!I+1mj)1$IyDT%}F)d=+|k=FF4=uVQV$~Egw{?JwGN|QXo z9IKwNQ<2J|91L-g8vAalG@JQ3hDSuz^9~A1%ID|#`JU?p2<|M?>Xw9Rn8U-JlBuYL zUM38VGD}UW-I(3#f{M1$3{^R&D-j3uV|zsqond@?`{~OsKM$@v`+9!N&t)&M?R)mN z3imju+t#(5t9tdCnUxaZK4zO`tzM_PK|>7q2D{_SorH~m-~HFo%~p!tSWqowD_IEJ z$q=l`DoLppX*9d?eZ7B>)%7$35mZN^#e!<)Z(qMXuiLs+9qPR3VxZP3b*+UitRCAK z2(aCqKN8QYWHg!wU;?|UKvieUhuN)~mU>-spdC%6dS-0Au6MN2hqrgl{vp8vU=c&2 z*cO9kl^4}W+1L#&HQC*)b@N5b++jirC3lk0<~Q~fPP5@=YN##(#!-n@3D)jygaM-W zZGmNX@P>ch(>yox<4)j_bTfl07n`)G%2~^UJ~q&Va+XI6q7*)2J9x)s16{hQGNg~2 z#Tj0(&OxJFK?hXM6_d(xL z&(cD*W~vF8VfYrt!mL(9W;OtWncLAS)Eo|(r#QAp=4>BAuXVXLR2e(Apu2udvI@R6 zm)XFr|H%7-zo|!7q6D(nx?xV;9Qzk;kF~BWkt4!I0x~6gK~T5bgB}LeN=rizn%XF< z@KI{^V1+e03o;7{+0{^q)z$1m69%Jk3?B}MHH8J3!D&+W&6D+@$&C$^8QnwOtBW20 zr5_-2v!O=UL<{bMt7S%l(PrD@m5(py_kZPD_5AnhN=)aY*YMo-dahpPhzJL4Y>;1gGee>;&8yE0-O*`}Lr(d#~(97d(Zu`t<=2fbEUom1EZ!cedCaruf zo7eR@e@pi$FK_(z^{?8-qkfw6x#q{pWn*`amoM>nyxHrdKGlfr@j@Q^*k2!G`0MLW zudgrr?z5@>{{C^jzkf=4ULPOlv*x65JRU#&{L{;?UyR0e2G>r$z8r(xUS6ovY?a=X zhq!gmu#I4s)g>DQhi@)a=UtNqB<2!esp!T z$GftEwmzPFJQmgGhyC*F_T`TspPB35o}a&eeqNtf&Z3Qdf3++r*j**Db2xLJ-+%v& z{g{h+LRDQCqutTZck#Jze2d4Qe*J^{u~y~v=}nI@9$$Qa@%^>(+sDVhudeJGVf%Qv zQR{OY`|;~fBKa+!Ps=H+E;1`~X1GUy=CIXWKV&D8s%L&v4>zNw%WNF&9V22NEt{Xu z*3;va()z(vqoYx|SZySHv?_)hhb>ArVw-dJ zI_YK-Wk#~sh+&X`(%;qJem9-w9TAeQF$M=(THS(1v0I7an=8~^xsoI*k@D_^lU>R) z*NVr3476Kqo!80>(RMHOlxq3@iy=^nYjw+DK3;M@dvy_Qd7dBWknP9?uFea?W4ON> zD!h;UoLLPc1Vg~NDpA(^dNZ4-PgQm#N? zTP;=ZVVh|WIJ5~x9d&iv?jDr!mZJCtH8ia)rCOJV_f5VquQknSa;#OHVoPCg&du71 zJg^cXu1|hM`?x0;7w95opl1VYYXhT84Xc?Nw8qB)9EI zpwxiDM~q{gpOR#-b^?`YwV(Ghtob?z&aD>pW{NMu^KW zZZLQ2F8lc{5B1$?ezzt8P^ER2l8^~mtpcs$KJi6)8^M{27B6wos@T|ud=!J-tu5<<${%(Uoi)FM zbU!*#m6}(rXN`z0Xx%k$R3;eR$O6^8WASA{tHe_P0RR9=L_t(EtAyC$uCZ0Yyy-)& zUUQw3y)wmaGrN7@P&YD0nEiOTcdM+c{qNNmYH7`sxxq;lF(9Kl}H9?_ofSW zcU2NA37}`rg51aE+io_Bea#si(MGhJ*U~Mqk-)Ao0xncSr84fGStv7es||%17_qMg zw>|b)^=y=@4{lLZcf?&B#?V*`Rac-0Gc#~cbmjy%-JOAeq{7V#>a~{bW8WTSfELAw z_7OEp>!Xz(n~m-M*|hS8Sq(F`Rk9m0#2`$&X*Z12)m*StFLbtMl~H%$+(bug7L?~r zw=1=*&Dw;#0P)AK2)EnYSE{ORBj9%`8LecO!3gk{Eu!GAYR#l7UVr_=>mUEDaV(yz zzS_s?YZi>y&iBjAAKNiDq2WG;>%qNWVx6sT3;xnmkbHl{c;U9K=e3R3V{BvdvbLEv zhOW=&=XX^d+qv_I-dCT6wbof{ZpTZ|SNB?JU;q7DpU?CAdY-HD^V{!ef7tf=%j@ee zzvh$qoZI7Ne>ui*X^rrgw_}9m{9O6G%Qtg-zfs*Yk`q25iOt@Hor>us~102HaQ^lyjr;?)3a!Ut(Qqr`rx5jSX>_ zA4c<8uzwDE`O)`hWM!uiM)%FF*gsKmYpY_`{$7HgUR`C{@_BQGK(VD(XRTc7 zDrMiyJwjTkCO9l2Lai&WMRoWFyE7V>)$SgRB~K~4=%Sg(aCvJ-fwzszV^($EgfrHf ztwMMkw&MWiT-{2E9>Y0&zzyn__0$uqY^RSs@P>)Dj!h-1x@$6`1dYdi&!akH_Qn%WKWwuj`%8@%l)sOBbf1W5k1pOF8qS`ZbqwrLEIBDGnY! zJjktt^UMi%9FI`fI!~#${qV7OosF)%@Bz)TC7ro)VwgP0(Da@#dm|5OGgw0g+s99+ za6KGu45`-o<|B=5sM18c8F`GV%q#$qqgr!SU2vn{S_QBV!=}Zt?PiwwY;}x7f{+B| zLnxCu9Nq29EW_Dg^`gve19o*oGLVqabiz@UKk}FiLQoL_nF@3>3p7xK($F&5CiI+F zrmSGT(apF;=(T*Ahsw;|w-FxO%NCncUD>{QY@>2DGTevRN@*>b43R1I*T{a^2 zQMmegN)!D_l$Jr+acJIxfoQU_uX$De7>!v=WSiuWSv8BK4U_;kzxhLVAu{?N>ibZZ zPz0()fM(tI-p(d(G=im4D&OwtdMyt(2u!z#cXP zv4l2}8{u*q%k}|y(ZKx&Q3sBky63Dm8#5bp*tTt(ft7fcvL*Lz*rp0CGX>zPyEx-O zs!n>rT^*rjP6!2hxQCO655LxPrECk27tITuaL`Rlm6ykEK02G0(z+x0ebrj){<(`I z8rEu5QbJIo@)la@MtOEE&O)b!-(Ojn6VRHK%WdFxQ309L#}2cVtH~C7E+A1!f*px_ zE>59J===K*6q+Q1pjKAZ0`I&GD=SmhWC4QxK+rn)qhQbwRmcmS5cOht!d-3+H_w!;1VaNi$6&D0$Bze519yeEk+YoUG{(U~=2}(i8{8>F zz_tbVWs!%3*sFfLVZ9{VFOVyWk)oJoT6ILw%JwVEkNZk^Q(Yh1k1sHMThGZW1mb*(nc5>VU z$@uw?|M>F9KV8?{$MJ4v$AKlEzSfME>J1iaUGHCiXZ#A!AP}|%78rXRR=sK&T<3hQ{=7cck`PMv zmGk|Z-hSQokrR>Mo2eVsVd7>G#9*vzx9T6K-L4FhGF z9;`)c0&Pb9$Wdy`vX0 z?jvj`P!jLbV{zp~w~Zj$ja7LZubo=FxbfyR0)p*Quji%Nly!D%)JoFAhWiG+1%8{ppw2 zpWeRw{PXj-ug}l#*=rxaVq;&u*16Upc-FPnlL?F?SATy0?!4Z9dbkZ`bazZdS(n0jfUNk;_jF~Id1uInl_zo2*g zmfMK%+{0@$Er~Ir;iaK)#AN|-&pS9x6V`oohN3joTPs?_5Dj`z%*yh8MA-a1ai#32 z)15Ez;%Ut=`XCJ!+;)mut8_(y<_eSvBicO^;fEUuld+LiWlr06pa7@L)U9sPVBKYH zZo9-@P2U-wnK`pr_%R~ByPY9Px5nPg+^rW{h@l*7O*9Oo%H6lk+->DB9S~dj`to)h zug+l_NV%Y%R0@&jGIO!i=qi|7?4(20z)h$6yPtJB8%B~IaOoqtKjTn z&1L5M<27Qaa@A~ZHU=SGH?V-_E<#x?bMs*qU{MY=V1@{pLa=V4scOiF2gvSX&eGz5 z-EXd@#b`$5LQi9Pz{26yWvH#Yx-PMU?CP8+RAe`lr5neyvWpqExsQbAjl&d-Lo~oq z4mDbE*u4rEp_;9eCe6#^z6P)At5=Qz_vl6=(XIQ3&b%t&W@e(9dCwoON=dCm)3$@d zx=L9Pz^eKrNymA9f`o4#?iT1`$~MRSk&GzoYhB6?U+|I2rm5GOMZen&tvdNbm|)7z zOn{(=52xi?U1bD}CIb-rBesFMgLpJeaNVYJA?wGF5TLHELWdI2eW7ct#?;-+AVJ+Z zVYw0?btC*cIGa+hLW7Xl_v=WN;RYXTt*Ut^vTwFAVd{c417_%~LK}ikHoMD0Jd9!x zV5aB9c~+{p6;2qN>Dxh%>r~dqd9Lks+kbi)KE`F|`MolL0r2tm`u3-vX#Dv7`?}8S zxo;x?UF+G^$Lq`EZD3_SKZkGIwz+MOj`c)6X&#U9g}y>?IU3LNTHQk2@iRbkety3H zCHR1zwLaQvJa+C5Vy*S@@pbu#Wi>-Orcf?Rf0l(3Xk&Nmb|)hSdrS!{e|=kVc|A>#0>?Z-4&7Px*iRKONZqo?5WvdafInDji zfXUjym72@_aNqNqGe3P4#tkEGh78Jj;$oO0!h$7PXI5+V@a?g`JdQnr((Fd%2^%Qo zoaeW%Zcl(_VPlV%qj>52%sjI;LhMN-Zoi~&+=uPEM)=DZ+A51N5C$;XmhKQ~jP2$4 z=@*sv^|g|%s`IK@w3o8ctIR#NU0{Bm$P}jnpervA8B;K~9li;JaHv!K0ebtf48{)_ ztB_fy`~3^yDqgfEVC-6-V#q^P>?tK}N4HzJy|kXIE*8ADZp%#mSS6!e{PFeN4c)i} zvn{Mv-uDh#5`I7QjT==t2WduVS$L3)ByNHec`THM^#MAPUr%c(l^czd{4*Okgd zE0TkLyhiq&pHoi#FA|VdwF;%pqESozV-{!@BlgEZK$g$*d)veJS9TPF+pCQ|GuztC z(3Ec2AWM;LgTuxFI*`p)B|Ti|7U@Pab$CRK;AlL33m@Z7Qmn43mSh&O!DE1IL%G^- zys6PbQgt;&H-x*HsjR6kv%5nn8ep_7#@I7+t!1dX%X|ba%!&r;s_dMKaMDVZCEDK! zzts{+mqb{^KElk<%I*r=CK8aW&-G-Tul_>~w_zuHrmnTNW3w;{Y<1QBiFH+1wF)S8 z*IW*bW4J}tEX{ZsTl-d84outZfb{vT@>~&{#~#MmEX+pJQjN>Nu^nTJUT0Rzy0BWN z?p3R&=1he9Fg<7Gv+IPGn_28)DZ5Nv)zx>N+Zjewf2{m$MfkqQ4pphlNi%aJ462%| zYFYT$U!+k>6o(8%tD1lXsP0R=fTk=E4s#gHyDpQNnU652*SXt*$-{C@!V$Z$(c4iT zF5sFMdTzr#ZhGUO@55g#N?9P$AZXS!3Mm%CX(8IZ;lG=-x59zO@_Q3PiLH>5y4#i3 z?b%%t?~!B`yJ${~$|eMIQDmbRRWL57tG2P*W(3yCE7y`d5i~3i#{Hm;?v(X@yo86= zNi>|Rm&7rSzyp7on5u0!H&_Zbl=xBoI7OH>Q3BY$9wbeBY)efnN`ty)hbP*U_<5* zpw2mA!0>{SkTA^YE;_>QMMow)B4VRA9nf_@YWup>fDH-~x-htfoC%iHt5jFF)3@Vj z)mjB7UF2$J!EZ_jAh^jIwRqnKZunOh;Rd)xaG0qo(W04dYl48)X2TrS3v8mao<*ly z4DaGvv!(kc&8}RNMCI(B!lV)ILhHUs(wkX$cFVa5RqO78J7Yt8t;rT!M5$Y~a!o-V zL(R%{gCn{NkO`n{b5Q66!hA^VDrlK2o`3s`x6IJz2UbyT7EQT(v9puqEgO%Ay=>e( z_W0@eM{586w`YIeF_6=?Uq;wE+{~7)D?d zs;(<&yFXl-IlGE9vq2Cm>-^wuUEk;PlCIKe#`x(cf5fBpE|y?Q09eRfOTOm^k@ zk#%;Asb1Ho8W1}B@$!Yo&izF;&d+bxEEVTGmp)6gn@v96w*76q{`B+lcr#Qovt-tp zAGKOaMkyMZJ~lIl=uM9Rk(Hn8`JQu0pKG1xna|HSKd;~a_3Q8dlIx1?5B}J4et&+g z{{E@JvX7-_wkigb&MSj^pL|%dh|R5C50{^MC&HKm8B?umApk z`nP}iAO7e6@n8S_Up}un+$_ROb~8Y@g8_56%dF;g&nXC}8{6q_jG(Gi=fXz9>e-lS zW?(|*zJ(9tPQlC2;x$Ya7x+>LxcXyLes_v3ktJhko*(;}>WnsQW*v6<;nVB8EZG+|p z(#@L~5~gE+c|6{Jew*`})ph+HUUYlcD=Cg+=TPJ6!EHP8xq7y}ZTqXcm3Lcpb)&my zLuy6`Q*uZ->-wzxgeHxpnl-~-osV70%5{};s+s{&^-Q-qk^2??}2k>ng`_DcHJ!d!E%D{HQtRY|FVtZK9jHtF- zZUlj0f-urZFTshUO=GV=^2 z4F-m9?wk6@+*w%Cjj)qB;3hLkH>14rhK!Lwb(+Jd&a2i{%&sDaS>K9LC+rU3GvFgD zy8(_i(Tu*k3~fdSI-9uvPPstaZ_$y~Sk&w$+w(J`W$hz2$XU2@G_!x*MY8 z@_nx>^PDBYU zEzwAGv~;&FP}S{KZbLsTJkKR^p? z#4wMl&st5P2%;UgUxfraRk`3EHn?w@SI$YcIxQ%-R=eNwtTwlsj&ffp?*NgR6hn+m z)k+UCtOyw7o2t-c9OjOkU4?366Kp{=ngO@DELoP71w@D{ty<@KbuEEsx?tJvkqe0Y zku|=~AbWl|+GAuD1m8NP&Z3E-X5XS*@Xmma7+Z5H%C})#vMH8 zlVg(+0DKE0!x#F#$d&0fMmO$}#72#7WnKVauzkY~eZANvBg{-)=(|P-5VW{$3HRp# z%FN1)I}w&yY8h_173lko)C^f44W*?Q1r7{k!yK_vm=w^Pa$<-^l?YkY;>~5ja zt?m?BS+7I!1py9=AMXf8l`@N|;bxA` zx#qJf;o)+#8ys8`XaT=vjy<*)r+2Pw2t-j`t=Y^N&ySUp!$bKPTUnwsv0&)T%1If4 zR?PQC<@I@CTlUk-nEkw->s)p9>(%ZrzW=g?ACHF=A0J;U*Z%SvMyx^tSp}`S_P3uN zfB0!tp6mJfx8Fa${~j3IzHb)YMv-e;%ROk>*R1!@{?Y;89($M%#`aoTiWpxuBSH1n zWJZK0Yn|;6+aGZ}T6(^Jt?R@KUdJ25XiYY{yZhda`Y^O|UG@3oFy9YUt$EeFRyRYr zI+L^PJS$u0apv}JOJpj2nrDSsxUom!5Qbk>^PFG5eOs$n&Fm|CuKLVA3l@8uJfb#tvq1p20(SWhXN4QqC(*2R{VvyC*UAoJlK z2W-bZ1Dz5Q-oa72M}Lh~H*2Xquvw$s3@u}Ck1>}3Ian+EoWOSJjBW2;&9rtB?mLQ& ztEmL0(z+hif+1{ z9rhy{2?&lRssv}DT0b6|7G}e`lY}}`E8EV#ZeK!KmM27W%9&Fld>a(&eoj-$G&A>M z=4kJ}0cbDgDqVe#W8G8MO^=YN3M^F$l~xbhCS=vKyA6S3Go~>bvr&x!Kj`6M!(cla z=eGa+^B;cs`2NfL``7FHdoB-u89cb{+v8zUU+2AD%DgPL?aKo=&AE*@9zKTHS)XUE zoPG5L7BG;^L}s;B>N;zlT`721!cIFs<-93w)*542FR;4{pwzXVDsh-2YA&~MdjDM@ zN`$2wk5UK*+-%gF2$M92{@!qv(Wn$zB*bMyK7yho5W&uwQkoZZ^PdIz-QJX`!DQY# z*jDyx33MZeh&3lN*>RKI+?^z$`Rp*-Lx_pcnAyUQ$Q!;4K z#&9^vnVpSK8a!N>y*>eRn%H0oX|4#U&YlY238~Y45Rs{zjW)%`vHRHR+j)IfFBVpL zc2=E@bgN;o2Gjy*cb~(}c}8!dj!V8DZN_P*_Im@~(m#jm1{WEzoG>eHRcC0F_42y}G&@WJ_i( z6-9awG~9g4ph~w|&boQouzNBEvpdsaFxW5)+U6c@<7Q$~xAx$McDg{0ty9^`zC)S* zqbe$GFgI_2RWL&8>qHvD3VdE4ny2*)clQBN@U`HynyYoia1TScV7hkuWN}exFj;g)iwJQ-EjAa zO=&$BX%tN|A6+e1kq~CBWXa6kX$I6%nFtKD)TI*4-5qYARfDbV^#es;h_wl~QMf;r9t`dGi^+J1^0bFPp5cr|~+5#27t-+udeocQwc#W7H0 z*7N!K;m#O#9PUk-FZ0a&`1~4gFJFH8(-;17e!idIzMdcJexz^=m09z^5EmWhZpHzg z-=4MV<=4aZDAdeluQ8v~P_YlHs^5dYAt+wn5$1XrRDwa|_za*(+P1k2^Z7ZVE91^#iG#-5MascDDMyA>Hz)zUZ83 zt3(A|^yse2nOdZqd8wN>GEWo@4v4aQ%plTzBkPX+*d1vxA@iU^EI$|_!ty16VjbYj$(6%bS$HUdL*3(pUWiDk|l?pKXQQ)|ddt7D`D>n0uO5`kc z8{oXMW~h)aD=bT5xwhe|gwB}mM0o({VBbwDZg%iAO%4wFj8qWa)idlUL`Qv^SVZ&

1+Q& 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 Xqt>ct8t# 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%0DwpDMzgJA;YYe{qXbKP&TiR2eq(m?0fjI|TJ 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 _2MpEls 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⁣{dwy)mH@#7Yut+ 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%0DO>cf?fmgC=mVHz1Eu-G<>G-);wK?t~>R&1Epg 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ë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 z

  • -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

    -AK?`w@7zxQ$F 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𝔮@iF&3nxRe|C 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�{q2a8ITG%yo*#xhXKBy3y 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ÐOEUl_5W9>6bwo5%Ow@a%woj_|m)7AH%mWU88L(t=V zl2mRPKHP^YiUirmM&?=>GXO&tJ)|C#*shUVOU)woX}Sv#(O%CzpS@m0gY{Mqv8c8O z6EXm!Ku03n-D}lD+IPJ!skvgLjeKzWG9&Jxy>K?)&F}B~`IIjkk$WYWM6c8CzFTh% zfIWVi0h=zz%ccFUlEf#d0aW|Hzn}k9?IGW6C-YJEOr8DsGS2S)Aj=FQOWUax$-Q1c zoXh^8dJ=mIL(WKY;!q$ubMqVoa>}GkBCsSSl_P`Ps0hWJWV;?W>^dI{4C54xwf~TV zg=;3-@!D?3{q4VMQNpk|=e%=rJHl;a6S+ntD;%>@YWJ&r8-JZ^eYjoruvmAnmG&a^ zqU9OBL|@pCdVK-W`~F`aKmXAFwcN@$|A+{xRYfniE7?h$O$!lXy$Alq15KdlE5(LO zA~RS3(OZAzJ=|>7{;Fk%r4|LP$iW3{u(?VR6(!EXmFgAJm={oEj7(yN8$dvUl7Q~> zBMm?Yme2(b!cMPEYq{jx9|Ufs3LdYbiPgVRq8=g zM5=OMk+esxzBVEnJP8ON;x+uixN2ACK_gnbnq8C&MQ%Z<%#uWcJyk(2SrR0g6yhwk z9!rINH~6B}2u4zpPfmBUbOm+cWcey3Jr?PPS-o5ebllIi0?g^8rEAHeAUeuHl%59o z8!(BXrI>@|3j-2zTrMUj>&*#4DB6h9W6-CT4#N$?7u8afODVRWYkVYb6aY1&Tyj4 zv*JbpE_6W6E8_`5AW;SdwTou2dnux`xaV0)WAS7|kRAF! zAQ%5+02pK4Gc!2D&$UMc z=epOfObwX?N}Mc3T7gc{*652OK>?OzLQ;~Dt)I{aX5b)ureLe{Y zf`CLjvPU90-C80t1{Z|3*bB*#P$vKp>r*U_Qr%BLiNI1=B9kJ8Dr=UA2Sg3;Ia=6< z+N*G{HNa~xGyBD&Rnj8Y^Pjc=2XO~D3j{-YYL6$eM8m?Ga?MFvtGZHnurz?T{lU;y!^(RnWXh% zk;%{JUxVZ1a^0(C0076(?71F7xEvQSB_;8pY{`!urHJ+Za(5^#)plXi*^y|96 zWdqfNEYeBzB9iO=zsvDW_3No6_8Wq+-k3Wpxt*DaOcqk=97kd#P9z}+oS(ukvy<#( zAx6S~MIiBNAe5rYZmIIBFpAFk+@sKSfV=P0LCPG*Go!?KuJ^}L|3(bbkEDrg?lW@= zF=c0<*Y8Jz^qwC-Yh_n0T10D=zfHyrE;1} zP|NW=WmLH(e4Au8(ZX_b4-Y~VqbGuhWj=q+_2$ZE5j>~=A`4d5+94v@mErsJd8Qxr zxF(SKtEeWo6u39{CxeK)$FKQrdU0yM^i^xUQu%bPfTf#1X|V7xckS2X<@NUU-)#Kc z`}urqJ}RYMFR%Xe$J_t8@nzF?nRE4w+-M$sRn9y^6 z1c9~R{_Wo%kGJ{piyStB`6(i>5|5u;+j#ybm6qn2ZH>P|dJ6ARdFNd3!rsayk`e`^ zOvoTlhg_5?Gu=@7)yK$Xp`Q)K5%HiQnT2q~`BB=zge0f~s~nf#&c{1}lv-ildrNg@ z?8hjFXd$U3GC2<^%G}_CY)B(*-`n*!AjcYetW1w{3%APAv|Z}8YSr*B-@dc9d5+Qx zHIH*Nk-rE&fe<_2^}$K z?n+pkg=nSEJ=b2&rS{uVE7^ADn`(Do&>G}S?$BHxTn{2-;5;A4<$5WfE^-7-X5^+! z5P{n#?SYnm9QD65*8TkDzO*z)B0`Xfq&W9{BAX}m_Ita0eLnxRXKH;3yo(${nSqFR z571`1E7gm7-Fdo9IVuixBZ&+v#Ug)XXc5vG#7*Td;%H4U)o?J}d+sNpNte1GX* zb6#!R*T4O@=l#zy{t5mY(~anZE6o4t@ex4pJx}rVVV33E1YjW|Fn!(krTkUN<}mEL z@WE(YnK@BjRj_%!KL-6t<>h+x*R!8Kr|%@`o8;v<*vDM= zNEM_NWRjK4CXyMKEYD0Qp4y7hVj+~KMU?1dtmg!K!WkvFNuk81XocQPz}#5bl9W5* zbq}lXT7Td9X97YsEpn2`D`jpJE>oNM9D98v4+1G4r4^FCw}(GVgHW9TNK%s&bHC5g zXgyepG6Q|vn+c|GQ&}dGSB{7B0b1^;thgycT{22G>C~3%wH8 zSRaO6NT6)Eg=Nt$*b<_(PRf)*vfz!hgOC_37Y~9UwD=ksDTJiU7<)d4xl;kl3laHB zQbmHL_=H=K?wFDGq5M+NfyNA_y)BZX@hP0KgN0HLNfef(Xv*P1nJirh#sx8iRH_p{ z(AlX5?nG6KinbM_fLwGLm70!o?9tS>%~Ee9P)rAi`<#FD<98BT`yMuejv^eJz|Eeg zaE*j(%*T@xM$XbX2{^UxSVWGsC)X}^*t$w9$B|*Pmb`zw*BY!BqIS-oMLR3bN9G9g zXqQOOxkTY^)Beru@FzxvW{|OL*Gfy~>AOlEQ!GO6E3F}RyXt~my z>)dHB!Z{Z>iJ$44BC9mkFO)%4hyvDyJSjaP01*gt2l@F-hf`8v=FXB#$2Ovbug?U; zhIcR!J;HNuj}PIiZ^hn0L`bQf;bGX12`rYbRbTde=h_h-Ox)6mh?(_R^T~yMKQmJS zEeEu?oxNNwgfuh2MIuv_5Sc!6XT}-vIX$?L4fS)g2%zK!{nSrpbd^-pbdR7FrW`2{ zy%8h#1e36Oq|L3=MYA3Uv5%v^fr#Q=Wf$ zR^V^^O4P7zY&)5WG{e{#u8eINNRS5-gSbG`qIkY1H_2oQ=8pX2V;mG&D${I`_q1H& z!7oU{dj8Pfq;zi7Tcya%a_2wyNy$&`-;~-4cUzvLm#>$XmYxxxXs{;IL_4Ds5tm-% zpuh<;cL2f{ThBe8=!di~;Qzhn(0;vKFA^Sd^&P^;j%TdJm&z=e-7VYgMNHTEhm_xe z&iNd3WM(3nuVxT}2TG~nT>d0skt5^$tQ3eG1cZ$Ytmh9nK|oGLFIyuqKfUtI=_@|( zpbQVe1q>tsAnp+}5>Y+q*zsh!WRS1ndrO}XNgqT+Il@ywkb|=+k)I-mr&EAZlQa*# zP5a0gj1@*iDJ84i`f&(g~84$Ms_`dZ%RKBfkIsZ~5!;oR4{K;wzYZgO%p}uAD3ldQmLfiI6egF8#IK^z-S> z80HCpIat%3I5HR@NI87Lw=WD^LNeAKS~>y3G~WKq_I>5pdzI2k|NXQ(7>JfD@;vlt zT&-M=co>D3gWZLY8I$OHzg$TGG%ABaYz*Wqja!55(GP4CmXb2<`E=4`Ao240rM-T8 z`SNA{^S|2rK@0p^>&xXa{$$xnL+jVN{!oR_5!6d*5jG$99KnksX+I;zhg@EWmFys9 zU#Hty7)8D*VVtLuAMJbWCjtaO3X38Vu`&)7D7h@c4|WqIEU&(ffLn1SX zDAUQGXWp8WBPHkjh^AWUqhgx33x>F{UR-Njs~&$Y$buGDI6< zl)^%n`FPvIInK20A;|zWCU_!@h?5%=CWtLFnY4uv7%hQicUhO*4+`R<*r!}NaaV4L zgng>hl}ne*v=2DQA;g?rc!PbenD!?9rF}{Fmw%D;0=6G1sd`gAG%fbty}G{}jB$hy zUn5t(^x_fRu4&^w?sNnvHEozZuSt*vqi!doyiEH912`F>xOa}t)>A{I45@eDPABE6jzPVh}&mc*__nRk| zaucG@3%=aT_Q^ujOX8Ukz$@c`)k3bVdOSa~H-K+T2s22yGrDpidt?^EsC6N;2(#~4 zTdD*$7gB=iP2^@_8KAYBlo=8XFwgx++Nm!6>gmWudQEfUrCp?bO1QE}Bam+*OtZ;! z%xSD)jwH^Ac|J-Okp^z0T^Q&5Nv(<~O4y#1lvOjUmW`Yl4u?NRtf{5BF%U$L2>94s zi%1WbJ(F{hRuCxelqgzgcR!PIQn+Jy7U4#`5l;j&74Z?S0wR7%9$*KN$4&v~41W)w z31Ug^!O|J0uOvn-q9o}GB&Z1qeOd_jPb3iyvuA9tomGw;vVE&OC@w~W608RSwqtGt z(73^rqj7fLB!y{L_XoHzZ#EOVfyr@?Ozo*mH<8KOGeC5j0i`2JC^-?9oEdAD<2%V< zf}7+H&H(i_egLPGw#O+Y0qk`;sgi*bJcN5#7JsnzL^9t~E-7F~X*W)@^BGW2%M8jc z+<_6^2+3YDtjM+Mi)dk6Qg=E{j3lBOgfoMD8IAkfyoWTA8X=x{QBK17{H3!MP3{#M zJ|53K{hF=z=i}qopZBCEwRL|lBHwENHsj$w5z7`)AQz8t%H^O`k034`?y+Ov?=gm( zCX)k1$)!iOhj;Yd7!qyH$dHJg9s?K7$H%V)SY-HYd%U+^WjzYqj@FAs% zcCHdDwEbS%URYc&?c=C&y9dg<-s*J4#F5>L!IEzW-XlJ?v?2#3!H7JELEPZdf`-!ML^ z;`#QY)(gv1`(@vs7NZXefoKRqfD0Q4 zOqt})h}p^^bgbu(z*rGf(s3;3wC!6E9CHn7+A3&r_Vndv9GBO|illws6Kd<>i2yQ3 zCJ86O`{nl)f4VIqm-Z!M>@=Dt1j$0-Zo>YA_kO7*>hpboH)z(XbFOxkt|X=GwIl%0 zwg{UJVQE}@*5%xTdWa|7Vo>&~jrSlvB0vIGh#d96?ce^cugCM(-PSbDs7y37BKxhp zVBSqGya~%cM6&c!uXz2pPJVFa2VItjF(^8hQ_{lf{OgxLSE+yRB3v%p-h`70f?kjE zNo`7p;vlD&{u&9hH-BWQ)LYk=_T0a+Ea}Jb?M3R9|M_eF;|wD(NDctWLIPFSj3U&_ z<>m72{_{V9>y<9v<>X-ZTO>1q(tLOm{;TB_T zhuf2wNg6ScClP&$ZCD@o zyq)t*ZsYBq)N2yGzyGW%x8MGwe*N#`?LHnq+ge0)`|ay|WH_@6IkpWgoeF$CVtgq-28Di)zW7 zNQho)m818$(&wE^Pal*hC0Vb|$TTjFsK{ToC@uH1NswwgzWkl@nQQZYtBjD(ONVRN zU?S}o%BJW}?;d+?tYv2QoP*Dgb#TN_iodDcV$a;0K<&*pisN8T zvd4yVJ-)ua{M$b7+r}7Aw^Q3!$d#pwn)wGMYTZ?s97V3}cHDpcQe11hD!o!p+s~KF zWkKJ5y|a=dWPga-M98JpdT4(==UXXs|Mly3ZIqW%kLU9r+t-D9sXMI_&vDMn>o=zd zN}~R_j~}{u1^VMPr(utolTHAfhlD*vI&1J#w7?l#;SxV|W6+D<=~&wwCKW zfB2elCF0@k%QlI$YX_6zby@DUIkJ??vT@$eO|#v8mtJ5N0nudsBJxNy-_z!kv()mN zo0Gn1Np@Q6?lu_2k?HE=DS>cet3+Ki&8I&mN_q7lZ(MEd?DbZ5{f7VdU^ zZJgUlKa(NSU-SLHw7fb<00&Jgm6x_wX*z$&$0-UH+Ws#}FM0c{6S4HfguyMDUkNDv zz$fC2DkFS+P%u|lK9ULoQZhC&LG`lz0V35-N|}9~e~6~)#h(96pTU`afHT}PHgW-j zxS4O?8-|r&CMJqKeV5P{{1)awNcoc}GZYE>yx@>6+FE(#ot_*VRH5}XV}qJ%O)Rs) zLE%G$Nx{LXzg0b?TxyHC%9=*;&V{s)AlxoCe;@~l(*5YVvvRfq@%*gY8TqvJ5M87< zQS#4Y17Z0{k1!Dib4fEK|0}u98SV}tL~9vL;3vfik!aJ#?)Go8JQjDY-zOu-@g8*nC={Q#!c zo{=%1lmR+GKxQn7IjAR>?;OvJ1UiB^dXbbW46^Y^fMmz1Vb5w0xd}H(b?{UVBkG@C zY$7sy0z_V!C^IRb^}5zf&IoXJQVOI4;lp#-45g=8sYsH8N@H5#K+LqJaxx7NG1J~7 zp-j00N`x?5X`z86rr;!uSYW_xQwpUdDd0Izw+#OX8X0bpp;`5YHRt&kam(yMSs6r) z38EK5M#NY@<5#}a-%9DVa?)kmcC9P@+`0C%_9E?@WwSW1{qH=L62xKti>Zs=_WJe7 zpSA@p%Xx}jkYgD*v$W2V`#BN>b%7LmnfWL3$)c1T3!u~8BX%H39!UsN9|A|pg1{N_&qqTkc4h7jJKp8@r`JlLJBA7s6AwlPoAuDr$ ziEu=ogd^RZ)1o?@#fXRmVbN#ha6HjACvFn*PnbieL0x2(ByVi1#K!S zX}QyEjZ%8+e*@*p1){la+YTRlo@7E^Bq#IL;vO+RXMj?Ua%6uwV2^uuORP2a`ndl6 z_v3f!tph(Fzn(r5oRMQMm~rmWUw^;sb7eBVX16>O6qnnpZ?U}y)Ni+Pv^zcQ{>BL@ zRZFSIcW~7hcE5u}sb8-Dj zJ<>MT5WNUf*i0W0gH+wHpC8Qh_4n`VxIKS9BbOj4&r%O}aAltnnWO|4*psxY)MbBV zjMjQY5D_H=of!xuW>WelEe9-_&T{-NN^XOQxm=T&6xc)R_v>rC{WWU8KF5#7zm-z^ z-2#*`}R4Xl!WMos8&9%zZL0gtcV*D zpaUWRSV7sV?$~?#CS)X@k6+TRREsAl!R3`1>>*NwK}n@lZztj->8r@KG^$LXWfQ)M zDro^FD5tOYwePLoB0bTBkpTAGkwvT04C{OUQf{#$i8noK8AaKicMIZnB%YMaxCJ0` zjPYjFA#H7}6<{P=8l-ljah`FxjJ&+8F~_+w8XqZ4X?6L`nf3S%z;fQ<#Sg=-|{+i4DUD-vAL&CItJa*Vf3_Riq>n2^b8TtOO=5 zUHsSHh2x{LW+LF0zV`ITXxG9F;x1i9B)9n<4OHcOWD577hxrGW7gk7e1R_9$+LeUE zKve5^d$8q`mL(C^dW{{3-ROvMFlVq&%>FWm1_2kC@7Y8JWFz|>laplwDrceMl&l_o(HU`yzg$;xy5Nx>kc zJShifE0>!aR-8_XPptFvt+X$wE993aQ30q>G_!Zjnn~qgWr?k}>+(0O&Jc6n z=Bd34y|N`3;lffZQnaChun?yNm3o-HM;H;7RT6R_sRn?cj7c;CkZhbt>tUxkR3#$e z#Nwoxj>NEiexB{haS2(VW-GvGdVn_a%7uV$krDf!s@0K7Z9l!$ORKTxo4ZJ_pjj@= z$z3RA*&^m680E?~-qvQ@4rH35%NkD#68VxV%{D1|y-5j|>$WFR_5H}CjD#FSPY|?l z>D8k8-e%7Tip&Tw8lg%Sjv$7%l}YeJB~x0?Wm|losduJS3L=7P&<^y>&62EDK2P9l z0YsY6N@-~Xq(~|bfm7Z-x8H;Y1}IsW9SMr4kQvcDlBCP+;Qd5=;)Ia?0E0l8q6$hN ziMbP!8C)+G=UN|0DV(qY((q&hSFmK_(9KAP20#EGa$wIvAj{7K=)uwBN@+Xs^ul9ULd6CT2uKLa4dtXZMJC zBhtZ{iF1~^iN>_Q98{#4XBaY8DScbcbvN%Qy6zu~;gAOH#O1htE#(mXYI~=S`sJmc@8`!)TU9%RCE|o<$coGi%=rLN+V%MIa((?e z@s0GcpF8H=7fsGu zQOi}djpx`Fl05GpS*vYHN|CjfGcl=RIY6~^A7ia&k&b*uWLSDU!oHZ1MyOCfy7sc> zbv%B3enE*-70HlVi3HoJbenVB88X&7*}KyW8dWYa2}tJfz1y|fB$5egb3HPUiq8j5 z+EM%0v}rc9)zt3Kce=FxdYd0_x#9HmF(Oh+=SULxj<8V@OvpqSxT5qH$z%MAkj&7g zg@w^#ow3hIq*Rt07?DRJDF+3GO)iaqeJ-huvz0_^)ohlKG-64&-HsO*to0D#+Hdtp zGb7KcSUHIb)1c2@zvezqn}({A3My5<29QJXeA+qh`>*5MZ?Cskvj-E^>iB<6+2(hX|z;a-?7On)|U-@8l%hIZp6ym)rHFU#?$T zYnT525PHe~^FKe{$7hivQJ<5^p7mB<`u_;@_BS)g}#uq{d~mxhK_3M%2oA>q=+Hx zF~{fJi*2PoZ2i~*0!Uy9n~xTy(6w}2ZvQ^s|6fEXRrdIy?K?NN8A%At)?U*FQ&(a5 z%snVm7`am@Gl2kc3tQT1s@U^knVD1Dl`vcVirR4b>UO$42~^|)If-9eeTg~3snnES zB9KBByUDAq4{#-}gqf|_nmZnn7jPy+TStx*rc!!;!EwL;W6bjnTl>p*4`npqbO+Z% z`yt0~R7sD&&-?#={(8HA{L+Sc{eGDr2uh_;l*ae_eT+#s=1$3_(!d~1ZOlXoBOFYH z6du+ZlXTuBVZ=ZaFX_RVCRr^ca}k$Ff^UDOlou|`Y`cwqIkar#u7?yk(l2QaLOU+K zOM3c7YgfUww5|9;5o1J=R`|O`a8S`6Oca|exNL>8QRbk_Os0sFh{|zkMH95Qt^F{f zjiKmC;64#d2Bxg7u&7p)>+jq<9@VkV`PZ&5rj3hmwAkk!w(fgwYyBeS%iMLIACgwO z&(!I^h!2K0z82+hS?+0*Fpve5jL)Ie#r#C68K=jXK4BbmWgD@hFblt`u4eT-e_|9= z1yTB&F9~Ej`g;7KLVJZhS z$*Ssp?jRE$D*dR}+T?M^+|z{|$}q&ipLt?c_hI%xY9fe`SaW*8AW9;DUy{rKM{?bQ z1OANlQZF^rb6Ilt*)&=$nv%AjU{X~`qdGGtxv&tIqlhqdiv$Ieuy}eA2NKOaoMsN-|U7#IMMj zuIVFIC5!_B2q7{+r-&7dBc(9USK!?}|Nz?MUVv|RT3!7)_tiC3z;ToOtw z%#h{6T}i+Q74S2n!6^eIU!W5?Nn2(o!R1T$ptbH!nrWytX%JDwfKB0QptXIRca~l_ zGqK$T%;*Vx-X)N}6Tn3Kzv47!MB}}Sy)CaPERch#K~WUF~V$b=tvrt$PH15fDbBqLnN&avzFOd z5ID6qt(%M!%C&fCP*M;vlK>b>i!--3B)Lni#gifkK%@cSERw;nnUC;aMQ%(bJtf#_ z!?#ujZ{i-gz+Y`v27H$!wTvTTeZF3MHp6uyY zGvh2wo6wRneI_(``;ORPA*L5w0CsXFHR5+|6-?m|$M!slsc0{y%O}@9A>2s8jy-Ab zU{ZI^ylDyFC;0Pi-H}sx5Ow4PF;PZv*g%4qK*;2PgTdt@X|NG7GA@h>G|J2v_`k!> zNoT~&j7-V|xPz0qtsQ0~?MHgi>e6pe0z-%>H0Ss%alr`;&VSu2P`f70ok_lcQh^x0 z_gyU}1PmZEaOK*4{8DbPQo4D%1qy_Z@RRgXubDBC2#(C-v;~t|YZ77+ zc+&=mB9PKDI3hJVosS=)H)Kwm zq|9`M6bjH@rC!7xLA|zf&SXo*+e~NTEZ}0e~9lp!f;s=k!tfHAU?CL{U|6me>G6<%Bj#i1zR?#*`8fLt81*+;cnF z3{h1_m6uYkh8yO+UsaD%FDkYb7Y!1KDr({66WW7b*az#*AVDKe0{j`dQ_EL7-vPhh z|GereJH@U*eh%@p-FVxwbFF*iS*1voR*&i&*usU2eHa|Wq^6Go6cyrYBE!qRFGSeb zaUX>ay7cz-)-QcL{vrDN_4>CxqUb*)2IG@<($00tT}h^X`Pww0>--q?cH_Dg_$O_z zE-9QrBp1=#KobN~>hQojY^`S<~D9w_Ln z8S8Yw{S;=~1UivNEP$PK5hp9_(Q`k;MyUrY`Fw6X+i~G?p-50lzj(~&^C@wMaE!<8 z^+wUCWZWN?q!i?%>kAe^&fp_*CI{1{l-jf~jTNChJ?rCs7S+NlD@6&Pc>XeMf`c0< z5})VLtDX2l)^I6ERIQi|mpKYE-X{ zdT-WCBObm=ZQq-8qGTYPJVWJRx@`Lk=7qY^tfkm~R=QPXCW2B#k`NO`PL^xE929NN z0-WHky{Bbjf*>M$DH6y8y4H)<9%$w@OV0oZnIrfb^j@f^q=#m9Msv%|cfkQ}+$73} zZ6)9AjY-*Aq(Y~8`P`=h@J&R$lz#ts-}|GMlAyh_NQ4Px2dnR=7GmchtmhL^UteBT zueKkzT$i4dXuWEdv6aP;33*$Wn{*BV4wPOWiEUB_GzsMe|GmnbTN10gZOi{K$fqGR?4ne}6r@M1Gh=>W0wZ@10 zxZGa3bnvuw&f%V5ZQPHblh!j*3Uy$vWyNk`h#1HQ^{j)LXABJrWaaNF4tG?P&JpB- zNJ|jtpiFlKW#*B7+J28MQmhn(qza8koX`Kt@hc!nQZM2bYfEzO?77m}sH9!M+h z=gbZPk}@h&Qihf*6U;ItAcUj{WO`|q1h?uy;+frv7RGE(6sbpVKfuR$~zYrJRNiBy*W# z5a3V($hSyt8y;UOC6y!mtz`B2Mx_<)oX*skv-Z=IJ!wa-4MxOndw-x@h^~Qij@X+> zOl$MlAcCY=$$&)`MyZu#MxOftv+0{1#6*NI%v*=XlSA62Nc(G`KWjM-UPuLVF-SQ?i}8mHL`>proUi zJrIgH!Z%?!NY|e2(vTTW;CtGQQQ$!|MEhDNGFciixdn?5AL$YKlX3_Sk-n3PfXZ$8 zhmA$j!3W_~EtJM3kqN-z5y}C{&D@>HDFHyh90X)!+I#X%^w z{fza|Zr@0;X3qV#;vS6P5yN*v$_7F8^IfjxXeu|#7Uwwx5cRp;m$WLSXWW@v>o>sr z!gg|@0_V?*q zgb-X?Nq#N;JIe$vF@IWgC=s&1z-J)S=hNpC(%tEJ`98)EDJ1-D`A;7YCJMe}p2@)# zK{NRbr@%@CtQKurLQwN~-P51rNwtAyP=kt7?E6#HLt&~=|mBOm8*figt&tHG~ zIZ6@=L7|sYU%qU=`x^TASw+SpY^_X~O>?)MoP0h9@jt^;R0YT04~Y)P{pbJEpc+>q zN@dDXgl)Tj)Z};RS0OoU=Q;@l%TuS>^F30nHKA!Ju zuJGiF=dTZyCuukTgPDj4mI?aou$hCB$dTqG9PvzL(5Riv;QOp9oA*U&`>6`;*I4KF zG0!p15O%GS>j^{=1+fg%@mh~YNZW3K025-_AaSTD9I;xt0! zBS=|$#A$12t^KI&xZ23HpWL)vc--fBoUO9jS18qk*IVp;*ZShrz;6iEF@A@4lSkfp7v$UkG;o{-yrb7Jby4+Z`a)8 zJU_yZb{wUUmg~9P_g3kb-u6B-CM&2C=3vPGt!(Q=_uOtHC6hGW0t}TFL@GVylMYy* z1w_G}P*_{U-Z{V|azSMZ%jKDrF%k-4H%bEQYbv`-(%&)wJ-9kMGKqw%Hu7Y#(kQ&A zpVEv>LhhuOJ+{+X^?xwtbNo!ysu%au2Lqr?_kcI%PCyz!BLzV)7lmzWYd%s$w5A6| z#I82ZuxIF1I0-Wd%pkfY5_G1+V~Btf6e!x54=tyG0Zv3vC*n_ZDiI={h=x@940dga z5cl^_&uQRHQU<}WpMNS{04cb?M!r#IQjIK>4Wbd7vN1Yi zxo50*2m+<*Ae^xQAMn!y$V!r*xg%n(pN?k`F-qT&xkgg<*tFM^&_SFzwAS#GeDJ=c zcj8GxOpS;VB+|oADv62=V!0?&>4F?oFIqg6d?Cq7yF|dvGFDjO>co`uq{^kdZGb@T zuMq%KYDvu?AYi*DrAG~i5^`_E0c$Dl88(fQNP0wOAURo3By!8Aax~I7kb%ro6yHU_!YAgyAvv+gl@(Na<2@xpGDFR_1Oqu|A zaw5?ph?0bf(Fs{~5om>PAD$DL{3$JD4kUrYopq=dLTBIUZLha9W(j zDRe19a_MO4IgvxS3Ado(mKl?^CuQU$CCDve5JQWWerQK##-_woRg6(TsVRbP%Z_?U z1NkCG#t?4hxMae8Qf`W;M-mUwE<_TP*}}mZl2j##9_|kiiMBKj3X(*EB!p6|z?6hk z58LP3cT%V{7Uaa*%j%ut%%CJl5pe9y86F3_}S=*&tp+%OjHOA%j zqCIVI_ZeH7eo|@*FhD7pOhfV%Y0R(48D`2!G{^bA?tkPO8J~h4L_A2M^n;|suUcBK zw^G!fST@-#>=6jCk4>m2Ae}`<^ zJ*I6;2%hViLaZG*fCOQ#89p3SOJfqLW$(#onVtEn^h@Q!Y zS&qLSr6kjOt>Ie=bGdj<5vzpeQQC$7yC=le5!i}rHJJpUqOp>Ixs z$VkNgKuoQdu_V@8IJnlEWWChm@-5a_^WhkoC{&m`Go&h>E*0+m(! zA^c_7Bl1*0if~3!f}mQ70HE|kwIVB!nfFo}2@zI$Mv@3fYl&U>?_uJPU$*{lbL!@7 zR~)4r*PPgf5<}#c7OYYv_c;;od=%ii(pWBJDS!$)Ba;Y;0wi{uJSnJ{XS+0 zI%&O7o>edHa%dyBlta0#9V>DMxgIZ~0=x=WqhVMf1o>%^1P~_0EAw)Th#k~DPSMo% zLO?oLI&z6>(C{dH`Tz6uZ(EWiyOt%k0LV?v+&waL=dL;=yUG9mCq9vNs=CkKnHdr8 zW~w3rVD*C~`2%h~bm#>FEX>Kr`m;5y<)`=Eol-s)m?`2|=k@yN>s7?c;78kry%b*7cf5 zsIUo3AkV#jJ_rmOx8uE(!(C!m#xr+7vNmNP_bmONeY~ynyT_-qTRF0fQkTTgV&NVw zYgNj7F@(?S(WUh8M}(=?ai~HzguJB8s?}@>6e-oZmH#dM6an*Oep&~;LRDl)9!gQA zG1m5oJEX97Q2`FbhE5%ZMh&PBbx}MNztAcLzS^Gu%J=_(Fc51$6gs$3s`GKr1Nil3dz_mpqBef8bF@_Qd$C$pUHQKOEmaJhNzIb z_Jc`9R~+G!vZTEQb3dPER{KECoGa%t8CH5eJ2XwZI0-;+p#lQ9Ql3x|JtPlOC?bHV znx1C2kR2jmnu0hpX-#!sF|StNM0Yp?oiRawmG=>+lm@~Y5k1(6rUfEK0yd!H3CoWC zLlUBY8xvzc_w|f;s)`tc0rZ#R;iUtCT$y99EP9zi%4?fsa79yfNissGiDa0t?f6SH ztA&lB(IYg4DWaB8NpD2UGB=ATNJxHY?c`MbC~YXlx}F}PN-Z7It1j48+K1>5ZkXs= znHa@1czIq10PqxlrGK=mXsU%Eb231Ygfn2~Fho`jgs%*g(#7c4WWY*VJw!$-HHDmk z?(4Cy?Q@lW03a^~jFEuxDx}CDPA!KD=s`2BP0|P>Nq>rdXbsU1r!0XhH9@yiUS z1Zt^OiYkb^>4W?9gb75InM^>D0!Df+**#xlfxQ^a03)zxkW#|>9YQ7SZ`t__do!cT z48Ih;R-s`hAs35;T=XjENaH&fWia@6?P#gD^0;6B}*}= zz;d%4}O=lAq8R?kiPW!|yfuOI!^ z>$qjX-d|FDj1E7TfPQHirK+l`KosekTj3$QmnxZe=1da%+3LNQchw#nvA#lgtgo#Q z%Tk)Jr(f2~TM;r4fX9`*tUy{nXlXm+YBsFozVaQx?-0q<~kJ}rY ztjAo}QxGdlY2O48^kRhe2!b^4zPBf87b;7$z$A%MWLPSKxpEgdGpKec55|m4VlV@9 zOK}U(38umH<&g-6|Iq$TTc2OM)-1h5xUwd;vIvNj1#mB+`+U zE9qbcDfIup=?T8Jmh$%P15Lxl%AIrirM+tvTz`JIrrPhI(a-DpYH9`wp{(f}VWx-j zV(w&tBC_QC>TOsVnWTs4(DtUiFMK|qpCM1NV^PE@Rhbt!dR2e_7J;ok#{K^7Tkr3! zzGH_BnvPnQk+lx-wsSXui7PNkEkNsB6TS_ol@vh?7p@hejA+6T26iDrQ*!;lw21SJ znf7aaTeZIlzlhdeoB-xL*Yz%pKe?p?(4lBS$ z9g5y5)ON(;_55lqR#vIM9B<#46E@C^J1@;u%SR;aMIDSOK1-q(sbZsT!}9oLBeFEw zhYGYd6EJ%T7f;9Ddq-Y7HcLURl~*yEm}(EF>Sr4tC`?|C5G=zeWRZa~$peZA1Sh1K zEv3?7%8UsC`F-v$)PtowzrKsz?6y_5kr}C7`~4sA)Ks>y=ObrUgBrEW@LIcZ`$Dh% z+jhiOCTW;!!d^w#%wIYH2^E30ME?!>60gEPn(wJW6BQfKscJ9+3NX$< zWGQc@2^SPDiqwyE5|;=fvE3=600RP18&EZ?>6J@FLAkbnB|ocB6Cxuy5udroBKNtF zU{VaG1-7ZZ79fc18O)?RLroy1C|=_XhLNfWw3t7w-=rYo48L0ahTMKms~v*11K6#q zDN`vwUGM1l&Fo_g!s4W#Fhhrul5y(stP1)oF2`eUAVqb)m%G$n_Ww$`lQxxSEKoRYA1 zV=iA2BoP^bM3F!#kuw&_iM&LHCJK3)-032Q*fTTM6_N%Jlw!?ehd)a(p=An`T8CC4 zFFJQzR_~O`NRgCcri2|($pFDLQpM^U;)@#)F_Y!bn2|cIQVIwlTx&7C?{oQHwN@?a z&V*=bRv<6tl)nkP$P$@kM?%We8X>2c-F_LzO%aIeXF*q+u;5~=R%}lXx&CMCzZuSB zBmk<|K<&S)fr>WnV|+ZnKX;r6NH%+&m)8=74d{`?GtZp^M)4%_$^^A?>+}1A2eLUR zDW~eY+BcCeV774&S?dHbvw~8t^(A_l3W{9uQ>7ycau)kmQkvcXtoetPgS=u&>%+EW zKIV02f{U;eUuqScB*@0RCCL=ggZlOS`hFi>>qts$uC=sCyWMZ^zZW~!^O=E=rnxh@ z{rddtf429-TI@^2&tlya@qFmGi}-Q>Cn#&4^>$0ny}x{2#Zbq6)aqM#Jyno7eL4Un z$eU;~XXc?U2uVLzUav{07(8b?4)m6ZR8N%<2tvV*O1(~A4^ymCt9ujlu_04YXN(#37MUlBC{k4Y0;L9Y4u+H<#~rXWmcaG%Tv{mrw-?76VM z&Qk66>)ZX;{|D^w_5Z%UzL>*MVtz4sd;7(T)yz!feq;zhMKKg9|A5eWW<+Kw9T}Qy zmsV7zR1s?ewcgw9CUuA%sZam$ZxW?6rZBF#pX-Na?$WJ~KW;^p0+5l_C^~k^LAd6vB#9daR#o zZgSe~A0p85;W^EpMF2r<4Fb$?2dK{Q#mZD1&9hpHJVxtX3!hw6#G|%&(ucX?^8-SG#1UQA%lWYaue~OgEq>B_p&PZ0f@BHL;k-GNQQW4MRdR}>HfoKvx zGr_z;tFNbOK|Z+BOjMdhCA;V}V{$ToaNjteijPuxw667A8~3&6T-jKX8gaO6o@1R4iFhI%pN^ZrJ0DV!L_9pEu@&u6}@h>|A(cf-(lh=`lnfv{vVqV7fUoj3Wx9%)XdnWHE*$%uu`-FEw0bBc9g!C3 zqELYfA=1l$_QaJ5<|#syHetP55zg86c5QD#NwLJmn9NZ{oi^8Z#F;Fm2RM*_WyH2i6hS5fB1LNTTrC&=mMa4Z zSZR`9&_=a+{T05!Jxvk4q5y4}jJnd#C@%C?Zl@1>fTO zt|3)gS3nphcHFJX-r)S=JR+GCF;XO1icyPrZl9M>1OswdIkat)l)6*;^3UAY@+Yw% z$SjhF@~P5HS|*qVoz9sqniK?HTuv}^fLAe7!1q+*7$2n{Dc9Z`)v7g8JcQQ|#(=^~ z%iTpEuRIuIDMWA}Ea$&GE|PV;nRWUq2!NRhO5gExneLZSirlqyHJG;7m_l+uf=TU` z0!h@SnX>m6^eF9sysTj|N91~D>Ru=FYWI)v%e^*e-Sw79EY0#d>|V$ah9o?7lD$YE zhU(>^B7S@SMP=<22ttmKr-M~>d>qvZ!m+PXiq#KtC4mi%2ZOF`_yn-?a#3?(5HWUi3$Q|3@Y>q_$Ch`;VALKj-67 z`fdBp9rb>cIwUD7gg~+84^=uPNyw!-zzZo>4z(jArNTgn!MbQNmng(W1{5$Y#8-I6 z$Xy zs$Fsv%qgbej0vlj+x+sv+>b|GySHE4_!jkqqP-(5hg}rehby#~F-+tfu!yjM%I7#;UrW#h>*M$rxm;$Y0JVZ^%TFZPs#GXia z&~#Yu2=(*P#(TZpR&I^&A_Z|-d29U`x882QZ1%eNeEhXy`Xzd5CQd*M9*92LTr`s-+xP7;~r%iAWVT*~h#IV@C_`k$#qi$#`{*~?+&EK?_i>NMC0a9=)TJ7V3%p`J zVim==9S<0Q5qPACrbiqsO=O6SS07hJkZ1A$Sa4V2j+s!=mPGD|d}N-qyN#P_XPn#= z9yCdLLaf*UN@9va%X{cxCa@qNB|TNt^p028R*)&lO&2YLc0hk<5*TVda(P-htcdg$ z0_M+@hFppPW%y#6$0yB-ZE_Ob#YMrf_7i??FTqHH{shECm=si_YLRA0p49+N}2Su65_t{Mrr=?7u^oGDVR1N!}DUlPv|=x~$Yl z*$-oB)wDdsx)!M3LFcvzdbpU>Hv?quzg`hO2*8CnkXyBvQbmNAiEH_vd#@DmrJ{(Z zMpcSPS6-3V=34m7WW!PQL%11q2RRLr8ORI3c>ATjePqt(<3cd5IQeg@1BnbErIcoc zfq>j$lJhI$fI!eRjd<4-0W=KUpcG3)EDB+G1!|I)@LRf@eJf*doofaX0wX~aQ7~T1 z?$v5VZ5}BF3eZoFNmT%XLsX=60C9c_k0K$W9-k1D!pJLJga?vVW)f?CCTZmeExw$( zDF^+89C)4MO++--Ps%E-szv7Fxx5hfO3v#iy4_oAA~(bp`V+cSFRNYmn2$dear7Hn zGldlqQU$6T(%nw2p>0cf#41ct8MPkww|jqo4}MRc#4IhD>G?O>Dg2B1E}cao>_Pz! za$nC?Dl`Xj$7=w3`$yGt{BoDRYcGsb;sCog#bP}u(<@swM$B-5Nikh?atW#2O%KD* z>9T#Uyk70$P!C)?VHj-;8j^3dY}d8@yy-{3-_G+-Pexu`{+R#g)H2@w0ZPstal*VF z_j0@gSIn&CCVD2Xb+O@11sJxc5g984Cwm-<_&L;SKjAXw$OzTnsM^>MOs zf9=snUd5n?3ZZ&aoDG=s%6)R(nE;1EiXQF{5K{D&jk7YezFdur+YKcN`rheMj>$D!`4%qWKIa$Wi-AJ;3Nm~3Qf1GbT}Blh zMyxo0ioDy~P|@OGZt>Fy0kqKiK@l=DMfy>X17NIxU%oxox#gD5j3H&ii5=i3s-Kse zW0xY@>j#4n5$O@gglI3VnznH8k_=>CVq!QXyC}ll&rd1lKYpI4TfFhQb5_Jb!F;UG zKmKg@XNFNm#H3rvV!09IbqX&OXc^WzM37K)RG6mdL_4Y?Df_xkT<*8+|B76~Zsi@l zKd&GB`PV^?ZuMQsgV$*l!k5`2V22f0t&hi#Le|^w)Ny>Y_usES z{!cC-C8jJszluqjN8V~3VfDGVr_?s~ik#7k`2DBYuohAQQznuZc`%CSEFGnwl#p_? zUX;G$zWEfuv=l3z;rj_uE66=y4joz_k(qhfVS!W`MGEEEeujlq$-?V;N={b66tSc9 zcZhBm&TBnWl@(dXAPLjagBU8K-rr(JteNY1v%X_i?$q4m79%@N6e9u|;@9_iu~yT5 z)G;y{1(-l!)OS%gW}r?zdXRX03yixy;-$ft<6(X78~bvPA6RhV$U zh_?49*^c8^35fTSnUs}h)5`=RA)@I&nF2-ay`k^*BNJK`!nK=bwF;-ewsy0z@}=Pl z2u}%s&+|OX?N>dRYbB>cLbCO542XF#_oW#Z5-iio2W+ywr7)5VGQ})JcVIA)UPWCE zj6z;2ceU~Yo>Btc^W7 zv(lGAwcf-A^CT!da()+umE9_1g|e9(1`{B7!oAiNIo)Sz|19NjCtMX!gQy|_PC%^P zC8dZPHKm(C3;#}hUs0_ezZ?`~1Tgw>L|y3x0xkDeOX5yW6)=$rb*M=x^!YRPEMY5K>5PEwa z(SdEFz4qk7FQlk;H9{{?9GYZOfDR?|+Mb@L83gqG`Lg$=D2Z?(l6=bF--y#AL{wCv zBlDS=P(i&3toFAQb3TorFxL-lH#JBwx5t_$9r-;RNN8=8d>U*Vr3#UxFJzyTH=C=^-D0h?;g%8>Rk=X3kRli>o2S)qCI3W)n;yv81Y3uPyV zDx?f3BELXDAethF5)93K#SUc91SV>!k|0?GAmgI%^aNn#_Szg54mE*h`V3cwsUFrh zqs+$^MQdF$(`RfDkTOcCfw#;r;Xy~_16GuW@RZn2NuZz%Au_9|njXRnKJ;~*#T70d z(>Y(wSCxVCx@(`N7758sO{oJS1VnEI2-3Y+g&31xsmGDK^O zoUd~T<%*Y=0NvM=RO_#3#7<1rOAM+-G{C7`!b?`jHES(Ae|Uvbg_l{EVtfAA`E`kX z#J&__^#jdb<~9iT{L8XfdxyHT)V`pXubmOKeNz*`>Ce%}&vqLg7h>?%A;|obSrUUD z5xb;`A_73sq-c-5&Y%A(I?@HYO0Tta>2mv4f;*Xt%fZ+__8c%bJ+!TBqer5h`f)1CUs$idw&2`)7m` zgL0}u%B?k8uVN#K^yTBJ1)3-Z&7q2jGZwiXin|y=s?hY#yoiIuc7+YC^z~CDi%wxD zFJM}M6=4GLhz;ndl`0Y;Rz*xb9QBrZdVUf>0c2!MklYJS3DUvD-j0}B{vlQ}u^u}m ztkyI-b{}v3(5yrAvOKg54O&>&_pnF$IaleoJ8Y05H4!@yRw!vPtM3V^G&nsxtcaDH z?MD)3cM-|BBtr{oJ91^Fq$8Q0W|nF$8miiQw}QT|Hq>-neeU3$w91WgVRsO(Zvw1RGUvwEYZs;PE5sHaw?y}jJPR{HJsCZwUck_782VEdOg)wI)01rISxwB;D0k-VNiQGM^H&+pvR>Ogcg!PPUqJORV~ z*MFLfwNFZy^O;-r!^xp_A;kB?wctL)-Z>w>uf3m4AhMg3#rdqP3W+lAI!EshJ6Sr~)Z_yMWlKc_oI_LlPOW_vhYRaoMQWKa$Ax zx$~6k4qSy_t^Sh*zU(@`tW;Q%Qwk!V%n3lj+TM=a-Br(c-roOV;!-09-1P z;r^8U%-lspwRFa0f)w{>@UY>46{#!WYi$w7?OMxcNsqi9y&Csl<5s1<&7fEl57VF4 zzKMxe5iLPk=~)Dn?T8S*u3o97bkFI2X&Ks$Db^GyK6kRR-b;)D)@5 zJDSdQMzE-w$=}EwfC*14_@szpX?<6T+_C3FCE9T_z+DKI@+SHTz@s9$85%Txlwu-1 z^9KXcKLTgO*r|LWGITjG$;&NUT>=>W@fuYp;gU|Lt3C2~*3nX_4 zL6*!^hX^B0;Shvp#)e98>wg2|zVW~1aZW!8JHAAuJ0iMUA1*aQKwrd5Z2)mS^$ zMrMH)5rKqHwqu-q0-rXndMs_;29KB<&J-w_oS*4UW zv7-s_Jmc$%ng)o%+FdY8E3I1VRr`^7VVT;!-CO-=RxA7!|MS?nSH^C5@fC`Ssi^e( z7}e_9>-m+rA#Wa!Sf}O`g*&;Ih^P)TRTZ%t^aRD9Kl6m3YaW_zO05tvDPe6Wi0HWk z*tHfrEO%rme}sz=ib!izK9uNL@ zm+t^+HbiB|LNKPr-jUHhdLO@-^!fbpJpW34(_odR_yP=YOALJ6<*04=ZP$Lxudmdr z^j~^A3O9CM&reb01_`)8D0ZnHrl|JvAVDY@=FYvDX=-6wf>(qCm*{|HEn975T)sXf zqUhiFE9Q|&zbyTkD~g#)5rwvYs(%5J=-YwyNd6YveM70p!41uAWn9zO^_NMP+X#C2 z+7i|j_77(kb`3rF82#ScKQ8<+m+a}>e>yAcrI?XOzaT8y*$Q)gXMFwLbW@#NcMY}0t z{)n7Hnoc^_wE@)xfbbzYAVV;!RI|I4f0Mv`Y=1JiaYd}!dMTx-gnyZ$mK#tR@Rfid zkn9v?F~*bYnTz%QPKd8Bzl1SL8IicwUwfURA_9?AZD`np<)Ze*T=_-&Wd-m1RxpDeYZFhVvGcB4EcQOZqn zMP9<0K6l(GCn80+;id|SrglkLPzi!O)ru%{Hwd+L*u^4dh}@J78!DQ42{(Y)C1sRy zE3IUTmQuTiciC08h&9ogxf4Rplmg6jU_D|7)YT{kNro@*-=>wI$VcWASrwF}xsh?A zP|G3ZJvQe0LeZViv`JOx50b2sw2)a#SH2smDuQdrAA6}tt)>z!{Zi=)Y@D!rXAxP0t+PBPetxw6Kom#%Vj17!usrQt_)TIDe9BF=Dy z{9O<-1-OKv05LNSLemt1$bcw8E2e}H2!N9e`ZGO5X!Vy;;p+-tQYd~bK>uvxa=JSVuTE2l(g4bt0zy69x$gNZ1{tRD|p;E1k?OgN4 z7DOUj>1NvGP&>3q^4!n)eEd7|W4dTL+IyJ~_s1mwG&gq0ISrd>t8M3@`(hT5H1Z$nCxxreVS>#$pw1{U$ntjxE zR~3Y0GLkfiK_w&~!f*78IwZtoR4u7ysB!M|x*{J4&j{iw?LBb5)ZE)8a|OEUn4x8O zQ3IN2=6)k*ZMUP{0O#$wjK{0P17hzG zEh<^+Ax)h>^tDbn-0V<+??)^xrTPl)wA&2^C=%G$p6BO0zfuNes11=}Rum#J8Q}C> zzDe!U>|oajRR(!3Xp_6@5P2;BliDRl><1tcETo}JQj4Gq7sFjqS$b$9t_;s43+%Yt z+wmH0TfFn}pPLMtunG;1bOxU$hmpP8?U%l$`K6h9e#!YcBh{oCkTL+-=lP63`I?Vm zyda`*Fh!H5qYN!Kvr4T8^^A3Lp0A=R@-(~E+Zzc#KleF-4xaPzzxFj47lO!I^cNNN z=l+`i5<>>T?i=&#QS;s!?5)=N{|fwn&L4m56X)0C_VJ4V?bZ$@B(99> zp|@K(e&c@jayeg{c7Uc*Yq`0f?h8|pJJwA9S>*MAKY(NJOV=|}_wy@sCZR31_V+UVj8Iw<)Giz^V*XjS|4J!@N|DNk&)rk`XNn(Oe>2E>j@{DtnPn1m2#A(#Z;pgtwnF5CbHFoTdhC^z*Jo#zruly z%#0WO!5SdWr$_+s_#sp+uyR;=w^rx8c!pY6HT4@3Rt_zQ?Xf2yd^LGX7tEZQako}O zWbUBBY^ZjIAjER#iYW9vGkU25IwQ>U`4ZJ6Lbj2Rjk1SUq+X-nM}2$#{Lg*4*2)$+nbN**0_XaAgy~oPhMnBZ!T>e#xwmN$&Tcy-d zo7DCZ3zETeajMpV#PVnG;rkhcB_h2Vi{01!+KWMIRxMLRB_I&fK>@)KSQoQ&eD$^d~BrUbKypX`yPX71cIJjtCzvQi1m zOoh+9rqugUM75`BJtX#6`;l1IN3~u+Aoscs`_^y0H_6?60}$p6p=oc8$Yq$xu7s7p z8JVJ@W=0WZtWzF$c4T&k{Sis4hjpU$lHG8w)fL6&-0y{9u`YNpAdrHdpJ8RGkAxKa%2nGx$0 z?E=*Du0{$dFJ=Ua9uSCbWJgTF06Ws946y?QeeOu%RqS9mie+qshy-aFSEdUQYipV{ zgD`n9@b{}MtQ2q6lrO4vV=5ZzhQ}3HB+Oi@iG!I%6?UhIRh4M_nGvtP zJu*K*)Ut|>#ES$kbRoWAlI+5v3B{Aab`)^<^?;b@2@pxiTkOq}p$`C6Jy{W{8G^2O znLi*&OIYb*0wpYslG%YvP%}=&C3R%Z2$syC?pK4X@gA8<&)llO=uHfz?pnL>h*)Z3ZPBajQ*|i2 z;Q6Wq0Y+Tc%3+m=17$KTuS$dv zA_s|B5kW{Oq}Zkn(KoRRps<(PnKP%;X=R9|#DsPvC{v|t=`iG;dz}ksa?0PS9ufJk zj9;mcdT4(FRaXd`wKu7+PPgd@!5eK0n<+$u!j!4nwTu!ztw};eiGavmH9RJHLAoe} zG3UJe3e-ULpij?NB3jGSEt8fzTC_02MDO z-OG2toD6X%9Uw&5?>7;l3VSQ}wDPHn>%2Utg@~itZ|y#^==R9%;>&b_0-?1x=R7Za zO`njvj3eeTzjk;p1GOJkPWl%!ivE6kr`eJ`DWA+G6vmpLS8nTGn;fVk>BIi1Z;z>K z$LF3aNkYI5EZ-Lvi%siy3KCatF`nvg*YisT>@sHcxtRi!^c1KR)&3iuObRC*Yd_g; zW}PxohSq3p^mX{WN`VTvCs&#sMMm&haFXr(aqvcdEkY1sT+9MbS~U zW~@*(ZiqEY_i&uy{#EP|_Ofv9WAH$lO%Firj@r@xU3Wke;N+1gQ`wBbdg$!1G5r%*OB9 zrziwcYk{hyko3)*q4l}fRxdR)R&H0-U$m6cDA`0iLsWxtMY`uw8|}D>_S`%6Pl9Sg zE3{a->+RQHk8i5wcAbx}KmUhM8hSAiW8^G))TTZyHj>wij|O>AW`Zd9Qb|bcGuM=A zs-{wqb3Lzf&su-4cdNZiy-B%|Go~X@+9-Y7M2NMcmtNGe*imeR3SDA7n6s8Xj(fZ| z&V$;Ulx}*h>r15+tKp)4hX7KTW5*XVg@fMxQKX(lQlr~AnpWdICllY957E>2jP-mS zfGkJumYa-J69$42KEuzVhlIqcXcR4giPFO*(DaaX>`#A%psEgD!E5XFgbU&-<+y2m zZ@=98+m%_saWtvF&&~7a|J?ijcKf9s-zcyBC{ejXU&wRSvXheW47_C+khz|aVYQ20 zfB-Y%ks>ssD_9fv}>byqOLVlu=4bVor#b)_bij%kU8J89Z|%(zUd|9iEAwvUR#N8tnR_qa(zUf_`pUl(0{1Vs?4@X1Ph63IeY^jT zIAfxWTj*Wrtu!IA(^n+6*$qIZq+0BsA`o5a4!NXc8BIOa?$nI{KvAa{2`Pe1dKa0o zBz^W)_4sdzl|n={Y}JzhG0XVJ?NIXzd#-)0tletv%0u62TUJe}!eNlu50L2J1meCtHbAW;kGaQpPgQ0BE5r=k{IkP($A3ySmvdmW|?wf~1n-~MywNl-=G z_;0zE0HTeUXkBmxXjLk{A;_}U^1Y_ocvarQjyRKUCQ4+awnJ=yVEjyfF(EB>iixSv zFA79z!~$8A=9grX(G3KVk<1eiQ=ov}jU6_8LglJ$Ag0F>4EiNHUa&9tldL2F))H1) zdW1g&0^6C$n6a1Gz39`Fj7tfDl4kMK^qcAi0C_-$zno&io{k+EI8y+;MpJrWJ5fu=6^X%)BUy(l@bY1)wd^RPC<$s!WH zh?H0VAapD(vw6ua`+!fs#ybg(yK)i`a=_<)TLhv`BL91sJ6j zVGW*nspVCrQEpP->#b@hMrZy^y)o0q-He%$FER|zzbUs6kbl>cCJ-wkCu4vxITDBn z0g4U~5tk&82?Q+21D2W8vIrFssg@D3pK7<)&J8etOH54#LK?May2f@zDtfV?vDKcD zk?v7aU9I31|G-ei4#eJ!E4DBhTl;uBe*3?jkN@wSf7s)GyxZ-!f0l>tXCQ(K>(%7< z9ap61{4V=cDnx)$>L{gL*9=@{1KOq3?LL1(&OeX$@s1m_n|5s#_C~Rs|K2haD7Dp6 zgt7hd^=0~|`pN$3kXnDgjk`Io`mGFeXz(J^6Uk{pwRf>7y%sC$deH8)2)6U#Az5k% zQi+Vdc9DEy&YFbZ7)2l%8BU4MXi>YBM%2dG6otS<3YeMPO-);s^Kr(!=&RO|idv7> zKG*j7ctQY?T7Rv#+*_LeI{nPJd*-os5Vs*49y3l$NX{}1t-$YJa;^mZ`>xjVCevgjH8u%M7(H+4mgqNk{JSQ=k;?-eKa4}=QXd; z6a{@gG|N7pDNUpFO;k;YOChR-wD3n}DNUsu89uLK{+}wM)u57aB$;j%THoQ9 z$%JJaH!F3mD_77Ul^$Qzcat;MkNxmmSE;Yx6_J93*sV8#a0kJ;D4x*m!P77mziDY` z=RTb(mD960Pgk;_9DUT^bs(-Hn77;8KmPISuiyS#%s+p~_cK1u>oMo!TCsxH{7SGk zEoB!l6bUuyd;ZXvfM9L3x`XL#CeE$cs&6W+Lvn2EA!Gipvrx6&D;B zk-&;-dSzUaHrj{TZO_kj&Z2T}-ylIxo<=5^yi{B5(pnPF;H)=jt#j_kGW1sKTe1uO3V)t4 zGp`h}<2MwhG%eLk41)bLcJLDTv9HGgj?)TwkjdgV*{JkPN*aWMzs-` zd(T>Kt=`Ea0FNg`pi_maM=b`E&1<=MC`GNZv=mWra@Saw#vyj5U(T*}6a{zgwa7_* zguXMWm|||E76h^8>F2{nlxndP`GtKi<nT8u_V0D<4EAph{XdGnKx#XN2mkQAC5+ z&*&q4WlqKtsWgeiT3gM`q||q@N?rmQdys+~2>2`c36Y(cP^jKa)m}Oe721gXXNs{R zalr{t@!A9aJNS|OA%x1ood7biIoYQ5TW;MHBuyR$K=ajF@@pWzuIs0z)*Vy2YC z^dv~!=%*Debx;|EY1f<)xz3-7tM+rqn~2nsts2}VF^+pX^qS56XL|Dp504xnOd*V! z!d#&@2a-m+gW~>7UZSup!eVlW2>{L|eC@|Fi3Ea#fmU`PH+64uB$xIN#TA!wUSx=f zC=#&oQTo{Pd+eDyRVi#iA=RWq<&{n^)kWX->At@x2JHl4M5z%!_60;B-ip>TzFBLK zE_$lUCZJ+aNrx3B1VIQhC0#^Hxj`7z7gGqqQta?J(*+m=K@m^^Aq6x_29ghsF2aa2 zBFw4?!cPykQj{RbkPs&u4l3{LFP(Dh#R+V=Wbe zx}O=4`n2QDI+su8H2H|_>%9E>T63v5s5)xXF&+JkITpNHK^aVJN+|BcvXY(~e%oud#i8Z5h4Dp(=`=`--_ZD^x2) z&4b~|G47@`yP0i$2|;*Z|B;)akxDIMMlE4Y^mVB{Tch#sBmn%H(_hQDbN+SQ|AU;O ztd`&v=Vq%IZ`M+9#0ugm)-#?7xL=W2{v)p1Z>{!Q=`)ituc9BBne#~;#qJTd_d_|6 z0EP&~(0hj>$Z!gW0xF{TCH<6jh;?0*T~$;m^vv>_mR_C&Mq;XU3PLF%h!mk|1CUV} zre?x}`6%UPrMyU<69YTZ!t4{T8m7AS0DGcUq1Ybxb(`CtWZFw z7^;06(rW*$ykoD2%W}QaG88)_ggSb`t@N(7?cHicFt&%I70_8GC2I%v*B z#+H@)>UOl+OQNLAV7#0<8SYC=J4$z-bQc+!Gb0Q_^N>WORMXb192sBpTCsmxA_xdf zw3aTS%Ko<-Pzy%1HGz+8f=Q0);Hh|J>qd9>CJv(`+Y@>7V??6~RuUP;>*l10sr@kTiw*LUl@ z_ixC{_vbp1GD(I@#wlT}MWmT(88s`XJAvA6YL5sZ24t&L&WnjQZdE2{(xETKSP}Aa zPBk_I0pFJtDZN+`k+;|^deEEuwpLml`{H$8D7}=dwW=;LF?9M12fdls-i1M{A7U31 zOjvzm$ey2C0Ljc#3#iNpMk%IRkd)Y`?z3sLS|G>YHE5oDFHJWN5E(*Vigw*Jjn`yf8agABSPDGD=D5EvmK zxcyo5cqQi3PbO5O)B_^SBqxbdZmI`u3ITaz($^QFwyH%bk|75Jl8LR`cj#`ds?pOS zUG?>_{+&VsC0#S23NuJKUei$q>lk9XJxL@WWctMv*b&Y(zj}SE9WJE@V z?_A3Q)RD1}3coV1;33U}D>iihtLN|g{IRboZ7BjjGpnkIjC260ZHPi~L|hDlPy=L?ejtJ*Ap(ky zj3)>yCZ^nr3hK#_a0ON=gbcL{b-a2q=lP$yWB$90 z-}{hqBsP|0)!zDzL~a+LcD-4XMO7Q`A0l)8_?}xKKgjXEvU_IF0b4uwe-xCq*}|^f|ErdLko$kU{verMFL4OQ$jHVmf~U*RWa*YRPFUN z@kJJc4s=aO#KlM~hz)B4GDIcI61j_+6lyKdA3@Evin$#l6X{a>uej;v7k#a;c>Y=2 ztth|?_1@}lzBTugBDH>qMZ}fMRR{#975%r4kD@ERrF;65!nsEB>Nb=jx>b~Uaglff znfr=V)&!~brX@)MF2W&FY>0xY38Y6X>{#pZr{s_n!!R?Em;aBV6uD}>)sNe^-~aLU z>wDz)pa1^zd_IF!q}Fa$yuJPE_wXm(FX9xdqOs@WC1q>1t0H}oLRzlJK2LwVt#;-H z1E3O5Xf0KxbZxsG|69EuLcP9!#r0IZQE!YhG1pAnEDfru%-Bx=Ca(!~x(GP&e3awu zem_S1_tXE6{oIF6TlHgHeG}DTwo=T&P1Bd+%5i&P zTk%!b+DzHkm8e>ZwBzsl#D+QW^;2*GS33seoR7!45TPa&0WK0D1*m}_f}kYMOh~>C ziU4T(rkR34C39AdUS#wvb~LqKLtA$gG5G%D(#f2}h~U?cf3pC$-`ee4xktk&<(4=j zX6?7*S2@1@T5ILnv;teiG3Q^BR@+b&l4Q~1QeQ? z<==9e^rvTvik1Q8Uf0}(5-4Zk$h=}*u|sgNwP*V=kFRzgx8CgIpLIZo?>~Oz7d@`3 zt!Sm6E6>>504z%MF}hU|wPKYO%M1DvCVL5}D zYIm$Zef8RJk-Fwwv4AQn5P1bLAQ#L;PaDmuMb7ZcIp!=<1`MT-GLD!V8qk*4gQS!L0E|_;u$xRlN20a6m1WjVhvntoNGMQS4LGsuaTDvF z#YiQJ-Ia*|1+5zWaxGi7EU`INSFtx>c8*u~WkfPrWP|_zMHHcsjL3|4 z-Tf41z+QzGY`{aTV?6@|f^BQ5&N)V45)@GiGMeuM(9fQj9zi`z-P?7q9roS)P`#-D z4$)TSi?5$^T~ey_yO5HOB;^2M+p@aWd($p_dJL-mbLa)kyYNiefz6{5g*?Loc{UAC zWKuPqC_J^?GimGRo>^Pg{(jl#_MJG9$14$xWhor^vwq$B^ur47tZq5~%2FM?psUlN&NV$_=LoN`N$ELdvr22e12^E$MIbRIPOj5E)Oa)~-9AA3**W~|KOG7LuL^^Z% zWY`FM#o?Hl&gr9mz6W9y zz1OO#H}_B9Kh`i|BhP-UtUWQ(p(QEZF_}Ha@H|n2L1bAJMTi@j&pk>Vq~Wd*UeJq;?S|#>*NVk(on*Qcfo` zyD-u&@=!qZ05jr6uIS90GDVVl^2M-FFnh*CWXyvqr5uUN>`Hcs0JP0?QxHn%!4fGM zbNT*@a!>H3eO8H-G|Tn;>-v6c^|x9NY19>n@E2SLo%2PFLgGvfi z&nPdcdLRlS!q!G4L{(cQg1#Q( za~x73RTGmu1DNwq)S?~CLy!#hamDql(yJbkpPmWAyuzMn{|L{SUGOX=S$jQ7J&NV< zJp##q&@y$dC-hVRYE;Rj+dv#FLz5O*c!(TT@uI(Fg!xEjDYsTmE#22M6V#%GQeRwM zxXp+OAma!h2oeCNgeVWKCBe0>;L=lTEtE-p@AqGCqWjP9zK}p9_NdS&1*(^?3wcSo zF#$}=Blbi23Y;HlGn1+6*@j*imGHbEk)lX$$`IlCUVr;v|Ks@b+gjJht^N4-Uwi!! zY0QP~`!R^C_RLi^yB3JlLSg|z`$O2oC5_CRlmO6<-&)^%e(tq7AJ9yUh#MuL-I3Sz_X@3? zy@REjU3+fd8SDUw10dyPR+)Hx3LFF&GZtPpAK^bRLmxAqGJ8Fh_pzt#k1QPPOSKRl z+uFGPL_|EVHvY3-8o&S7rrUOj^wf&dLq_DMd9XDEA`ax4JM1};yWLv?ww_w!_Vy0^ z3ZLN!ez-V~Dp^$S@TgdDK{jdcFA@h{L!*Eet@7#@shfHx5Y7$VB$c!AM&{m0WIwdE zueN?Tg|AJogpK++pKJdmWt@}8Jrhknswk_aD; z$?AE&MaiOHO1v{2<B<`zMepHPhWHU=Yu|gs0?IYK*irpi^Ih z^_l_EEaV=Z9JStnG;6*CaY-JvXweSEiu8SE1PCn<&mt;*#+<2CCUQiq%pr0UNf6-~ zSyj%W3sU#~33ke%I;e=eq_8P$(PEiXfr?v^37@${lckmr#`aQwRRKJS#!?|A(@E8K zqk~mKH3dkA9*9Iyk*?(okFZlUnv}vf@t*_&B4r|BYqff7$8V8bFU@HUK;$AdXz-$3#4*d zU_K(XmVS6lFhQq8(GFxJ5~Q3&0yEL@s|{?!bQjDWw-7X<92I-GrHvNg#+6IFgEtA#uPNhV(1J z0(K;jpyZ33r^+OHV2F^LaAzFM2wj>l4uNXb_mV3PFCfa^EZi*HA(3-yftW@E%E zJ3g-GaUAS#U* z5Ro3?nS>xPkUa?zxY0KvK7^VvZDr|Ag=stX4_gSQmP6YaHc%8q#4|G~|IEvfpp#B* zU6H=Q2tiLlDj-Md>7E%Evjea_LWcvg-7*W9T5UamqUFXgm8}I4WFC&o(rMHp34{-~ zD>3v ze6g%uRHZ;9BgeeH&k+fTLIYrb^_m#Tcx3>YnI4}Y6z>T7ZrAf0tyqri*lYNJhs8BD z0WZhxrYg2cN>Q!-MjZ2*dp)%XJ+K^LdfOA9&$W(6KU*!w+uLu0e~!oZ*c*tLu>BY7 z*=|y7`Oh(Jim!@Vi+b+$`G{48rbIcvYO5J8hpX zURH2~O&~koAU(>QJItQ79!$h~c+LQQ&y~Y%21p!XOF@xtJJhaeLu{$_lUO zJsV9%`a(S#-c%wJ87Z2jWwMo;n(|8SCMI|pJ@Wvd+C}A6#On9A(&D+k!$)CJ(KL6H zSFRHJKTuBSnP6s$ROroYy0hrpT%V6e_|~0P%INd|r!$VD?>!%0J|nO7bWW;CnN0EB zeQ!n){VG-V6}H*h(aVvXT6WQUT6K%boblJ(DL!LAUlnt5DKZ)|B{f7&CTxiaTD`@N zZNp4iH90a7Ics5&Llf{(*~+_WYtw#aq8@iTG_sdlD|Lk3rwz70b=@1-7TL!={7>nR7rU%coE>C$F(OL-4KMT8>$ zo=A^KhxsRg-u{LBA^%KbS~8JgcBNeq@$hi7@e$$LTB-N6s<3kYo)wM^AL$m6pa@Zl zie%WxOl`vd2{_ovJ`1&#$Nw1Cei^Qem6zcfwm?RKZMT~K<5 zeaZRyU*|_VJzy~)Dsl*zdMIzgH^~8H7KB5S#9{Ug0whFTr9wc8;3!o?C{p1wL*2h4 z&sJGlC{N!5O84}&w6?h(LYDel;IdRQ%{6?v0XbEB0(&IYkZs2&6BTYjwQf@^KU0gj zM^u#~ZTWh!DBe@u_qFyD`Y&51;UeFBSE4Pyc7$+8i$F)V$OVGsP*8P>G6nt`*7;7U zkji|oWtQ49L*<@P6jqod96?hcnHGLU&djcoQk4Ra#70t?DLev1r0O9gZ7X0gKoq^T zx-vwxyEBqz5ArQIpd<1@5tfVuLTasRJ$tz)_bQ?h`Y7(MF z+DVSc^mWA^38B73dzZ2nS+F!$u&YLZkrGb8T#$NrT(W1qy}iG`@8=_9gdDZpGu(X{ zqahHQ$qaJ2lv~xz7-i&orl*|1z8<4XU?mf(a zS2Y|{aA)brBXPV6c`qwXtP!vx*FWU-(uF61NJh?NrW*oGEzKR(Z7>m@;S+>thXUvk z8x~-uDBSyb)_%{t#^;CXQEO$XOnUqnV}`AcTKbo;;T}E`{dZ|@xjbFFK>mnWc0E<) zsDIq*O>5?tk;&BFZ@;K=uLtueUD@90kHqQmKK*mK`p4&Znq6}J_+g8+n8+KHbN{*Q zr`tuL=#us*w?B9)c);EL)6Cr=R?`)E0LY}TWK7Yh=lik&fSn;}ZU`+%=&ABUqG~`T z!^*Z#VX%*a-rLQNqqe*67S3=9R03pb5oBKj5udeh_oApke@(>Z^QYYIEO3YWa=+F{ z6fJ5B2r2@qsOQZi6G1xTRJp>C){&XnkeSFV$e8ZoxTM{PGz;WGnW6wlLCTT1q_FkV z#&g?>Ob{Lr9*`sOD##BK)Kesd2MCu8QzYFoGE{EiPcu)vi?$#;HPbkH?R&y#XX&8u}U7$Qsz9H_2eq z*I52Y&(h1=m;1f{M}JEBk>lgT$F=9YK9=5AC_lf&{IoS61-;kz*3R&;_BSMn&X|%Y z`X%)!{gQbTNz&csy4LgOfA`ihSn8=#0_lcVi)zPbDQ~SG0dqI^%RLa^gr_AuQ+B$Y z01Hk?vLLhio{ql#+vDS{Fv2{`T@=DD914`i)*%I{j4a|->RD=S?I`u@T%Q3Fv~UI} zqqXkqS<0=JV_nZB4S?va9L4R+^YJs>qI4-h9QHS%r2qi{07*naR36u|CnGQfhF!5& zwmDIcy)zQ3g4gG)C(By`dzHC9rhgytcW%hltI+xG_7nJ*Z}kz1BLq-TQ>#d*vP<5X zkJr_aTB%zo?oUsYUJ+Te)p8&B-0QL_t=zOWVS0Kbw25k(U$!D`^y9bI?-9BrD9IaqFtpT9Ok<~L^Qo=&6nj}^boaFP|k>c z%^VMmtNEU==LdG%Z=5+VP!nJIX2Tv27D_ z%}?wJJ)okc+vi_}s!fD&yufkH02rkns?FBg+l1^D_@8nG=_0(vBJ+T=$Si!H{?n1% z5UyVT!}r673sXf|q~6|Rf5-+!!aRWV5jzkaKxT(uQrJqj$Z0)n2S#885{5t`m)3@a z@7Gz4!6}K}vK+te@$-8811N2AhAGtG1Fdl0ti!XU04`8R#{wj$6qZAGW?*JH_NAFiydke7Q|1ol3yPISIL!{Fg`-$=JGRk@WQ)viKfTgR1yQU#Y2g$R% z5?$actn!%{zz~(>Wtozb^{dLw=U*N#B^dycZ+Phgq=$^)N_#*?5sE)^vr0;NM=+t_ z9dxNrbc{pzGD5YNyFf;i}r1_eA zkh0Rsu$1EU4FbAZWR&AZg-xs-;-Q+he^TFXzx*!k+?HAoI6^Y>a)a>Hdav!{%&)B< z+c2NDC)acBOOPGf&FN!D%(?z@pQT4X-n3TbrR8Mb*tyr2uulPMEh1+GeGIB4F(rtZbrdC8$n~S`1JA*{}Hk*&qeCKa2cU`px6AO^Zi>CrrVXTLnOD!3RoJvqUecD_Q2*No~s*0p@9FNXZJ>12cC2#6=DeDO1>4DM}PtJlFHNW#0Mw4gW$8|M;`+ zJo<0IIpZV16*PQ^o(^5>dmtgHa+;6GD?P&}(FvvxVu)y9Se~I*{d#Zz`j7JYCI8$1 zd;I(V2*c;U_k8?qjL)B+>lqn$*3hH1`>zonIXw5$Ol8Fi=QC>rFF8u{A?>g|roTW~+xc8DAT4MNJTbP*Y?-1@;%elKPEvV>{- z0(sPZItDA)ZYr63rO}pvfX@-|^=#t?HIG3M+TA#8n8Q8W^D;T-m^PDfl;f;TnRAb+ z<-T?mq>afX4Lym>PP<4=GV(KDaWaGQWJO9wK>L?kh?!|0RB27Z&-C0&1&=_kxSUXF z0wLhO!g}Nsxe3Md$VlJMh&z!fpKzP=+H2L;RUoK9S0TBHoe=XOIw`4*Qo6`Wt=dIu zDeXj_q6hg#((_|(qd286=Nf)JW7`zTDA>jkKS!J%<+;n#K4+GvU0bZ5zox|Y%Bree z>)po3#yGzAdX$|XwyJWjYiRp5YqChjm5EwzMN^w(x~+${p1HyKaw9?-m1aK?Se;tH zc8Eu04~&Q&HX^f}fAm9!ojX5(Qt+#LC%xzddiWLIEM|DTl#vNUz~==t?PmlMw5!=8 z3RfUwePkNds7+$Qh@8+&InrS!8Ad5#52%Kw%je2zO!!Mtd}k?O_CCwlF%e4^{xqzV6f=D7T9yzb^)kxn*z)w+*c_iM&`6N zL_K%9-K2hd>9M51c{oNyW{?^gn)AbLP*|iXZHp{=+2W>$qYvq9c1R>>Y~Kc5DDrh4WZ5oEK+B$sHyffyEGe|G}>YW_W)ih^Kr z_*za(K+hOs8r{0RQm8M+jM<1!hPfFajMwDg#Q@f?KZc zw#=MTrGYr6{fR`;FaPsQPHjzU=9-dKYq~Y~peDd=i6k4~02%ASgjP1zy@4oZmQFb; zxpEhQhEw!#W9En#LN#lF-c&Pe>^UM|Fh?NBqL3ZbmwU1uH|9hnlfEo`XCACYdS;~A zH{__tO^H}9WbfD9PYbXnGa`_Lyzo`-J3Muj+8pWj2~Nt5aukXIl%#--T6#(Vw0(gY z<5A?4d}P24BvLx+AL%=H6FD~4HCNw8_igl;RBW$fkG*E1@5~*w$Fm>zq=!8Ptfixp zfMbY`(r!)et&4464-0%mNP)TrA`#bm5(M;u0Gb|Y_M!Hc258d#MJI%!luA9)#~!dS zmR@@m0C-smUbWFfN``aqj7aKBQ_P}LL?j_EK58KBW2|#KQ;?Y9w0ZYyu)hK%wDs`g ztfl%|sU58vr(J(h*p8l7Vyg;K4zXSPDa9yVR=i zjmv}d6itdUkb9tJ%9%D2sK;GI_m!eeTM(IMy<|Ca+wEH41d(f)A(3f=0Z~x;t1lP8 z_Rr8WrAH3ITl#PU@^W-ipXj5n&iGmMi%JQnSa4rS2{o;% zS~cN5=|gY>K%NXB4yGum6@o+Tr|%5uOvHBEkt%E{<)#It-BJ-4w%1rQnD#8p2knN? zc;Ht5m)qAbCRNXW@5h(4@q8|FnvVe2e43}=@7Hrdcx5EuFC4M(puD)ybL=PV=W#!I zAJPFi!hBC3&!^+?*-J=x#(vnb!ae}xme>$<5ybNC58M-q_O_2(J8oZ#3jA2#9`<1w z$Y3zTEPPrj^mYBD$CXq7p5akm@c`9Z=|}pAl|m%=;s%t`RH`panQT?$Z-FaNwR}}2Rk8^6Uj1xd@;O9$NM>DfwkTowK=E??mwrNq_zJtOlo82LqTK8I zFOb8DS~ShWE|Bmrhp<{?;u-0gxy3U|7;+7jBibz-HUzW9eC}zIQNDiBGNS;kw^H~i z=1+_d$qY8=9rd6#kC9~hjD43Dtf$A7pyXs8LWkU$t?Sl9OM6fIm~#YxGDM(^QtztW z<67%lMT;JVhh#dLyesii=xm>Re)q`wYKiPnjan;_?lTEVM$mF5GLs(l6`#;fk*_uZ zLqv_ZmW7joo4>&mFVf-xLFysMD(J zP0Jf%_Oyq^rv<`)p6>@_#svmSktz_m+!MGwKn2*tCISMoekmn@L8W=7&LnK7=s|>n zf|P{KKIWA;O0Pmlq?TLyDU#A^y=gsvpX2|v)}0uH8hk42#Iq=nmXn~=hP zJSxBX^CEvWt0$~taeYd;D#ttBCHmiBtl zL=F}WXY22xd|vN^XZNu@~5oarYF%maD7a30|$T||b+i@MWTmoSgx-AnWRJ&TmW(*LL6GY}i_ zQRxhMW}MCXTnXi7tKV#0hx+|7o}dT$l)gAdCeIR7iO?WW&kEoW+~l# z4Eu1E4ETPeOE@D}Z@<8hMDhgE?0{vh;yXQukSQ0dS}^yM(zV{)GyJLgX8Fh!Qs1ieD_%KYWG|5_ye{pbI<<_K33rN3zczW4fo907+6ED%dH324p0bo&$m z^hhTNPr6g|z1E;2iF~~Q0xuvNPtr44cu<~-PE232bNL$54g!=?TE-l{uEHY`DMO@d zzZZD~(qq5INg`zQouHhanJkGBk;V4kh$DQYyXcF$1IQ#3!VH8%b&9?u;}AKtzQBlt z5=6w6QG`dB0}LM^$ce~|n!X5wPcl_lM8mg7p@JABYQLo@69Pay!xGfqq||!;R$8~U ze1C-h2*-GS_XH!foO&FuBy49=&A~-#A&p$y>pta^=x}YSH#Dt@;iq2qh@^!LIV@8tV z&N;lK?Mr;u$}E_SthlS3%DA1s*CTgc#2}Dvz8kI&3Z--kZC-2bOe-at0;R;Zuu)ns z<-{^u>EjU*l7MH#XT%%aV!NU+u*XxSF#W|waJv+)E#@8o1rU)^P%1LH0r-_Zhzu)QItVL> zK-kp&s}$z)0v2@5QSxkgc6r}XH~tDH)CsP!<>*?qm9JU5VJ4wU*3Kj4_*Vi}ywvwn zr1@i&l3KT~;0S7HP+!aOPSUe7o&-g*>M!-xXhN?2nDfd!L}2+gEQ%ksAEk5}aGhq4 z8B)uSax9khw!W}_5i)IXeu76SgnnTn{AWr_rk1a-rZP+B9$Ma+%mt5-EViz_S8Km% zjXjVKtzhlMj6KaO6}7i7P`RnkY&;ML;AukOf33y`GYlYkc3M z)OwVfYr}SA$pWr9_GPUVz2ZNm-yVzhpE_zDk)^Hxvwr6sy7wM_1RcsHlS5y=Hc@P^}|G8teZp!kvU49Ro{yK zVv*VoEo8}IefQty6u!V#On$> znTb7OuByBr6(#pIVsDSRgqm7znGEU1U{abi1*YwVG)Zpv4M8a-v6+hKB8LbO(27!jp?1o7 zeSC`5YiJB4n`~O|=~dJh7ql+>+ixs>l*Kq))N8h);o@$E}}A95!o=p9Lk;S+lj@ z_j+22$0+5VF&vNrV0!+TMCe-EOIEWNCeb|wdm#tBJ2K0Ua{lJ~!=AIWchT5u1)T+n zj2J?SLV-*!i^`WeL&sjzd@!5#dq%oFrQQXH*%e*{AQK+x$doK00wyvM z<;+a;@sbG!J`$(eqgBk4Z-XM59(7=k0&_zyI&|Tff$G{O4b_mM}}Drh073 zA;oU*znx!y`TYBTeEytD6bZ?acBN0%LxAn+`$8t5?Px{Q?FvZk?*b^gXdw>IP3fMC zOzM$yneDwk1yl4;xfdQ%LoibS9wt$^kNRkpJ|V1wCHKade3*{TAUYPKx`;goqItdqjeYmqD6T%qtC|T8o57 zny^93Ne=U}_mX6|^J5JKrnhXR!*@6$ zJ!N}e%e>05?Bn?y^ZMLdoybVvF(a4uxPMil+cth6e`)QD)EP?mh#1S(@J3$5#g`&SoNw#-O_yW_CRhp#3=a2O?V%NjutW|$0TH)|W`k;Sy zL6zcEN-_|W9xHvNZ!9n6kN5Y^y>=uM9-aaz0%4F;DFsbSL&;kA(R4h+6M=SAql$U& zRaa*s5}HV3NP%NrpEf@F`yWuGoB7Jz;V_#TB67lZrj*vQN(LjYT8{qq`~3XA#*fJD zx!ot~EfSei+D!|>FZV&^?L4I7x$bd=+}d$FL?^b7`OO5ZA%k)T$! z=@|?kwzm{lo>~!Zks2r~9wf391Emxf?7dZ5sigFhlX_Cz*T1*j07%74@RWgcOHWjY zqUtR?HBXJF12&f>O6ye{kdaKl_Zru51=4&BT9J07m7Kd|5gxT=!JT|)d4rl`NCgXm z={X{1W>2Qz2)`0b&sNI&ZZhq;eRvAxR6^@p=|`zGMPom(QOc3+kBEQAYuvqe&QIkI zHPde1{9o}#C=8ze~}XyInglyt#F_{^C0d5!NM^XJeA zI`+EOw$xTCfnxScVfDfJ?O z*htoLqdNRRP9}*<^^P32M}oaoZO!MJV}*Z)bGtVkTDPqML1|IXyXSq*XGTRzcxoyA z`~{k0e=q>t2q>VqAydMXUP^7{RHX=11U@{2MSTkZv-j|etq4;wr7^j4r|%~jqVFIP z2i;#~3ENMLug>ZFnU<=W_DJ4D52|Eh?J?G0NkoQl9LJYjhc*I95nw1`)_h)bSD*hw zknOk=)AudMgOazeZ(u9@i*aNgi3iIOgd4?f1SC4hZ9hX+Rir@5nK6QwNawgDfMf*@ z%#@>x30;KcI5bp?z^B`2?akK!dbqnKQ}?`34ipN$N;bwN{?r()7U}ORqiWf<_w`)k z*3JN9K%BqT%1!W9__vnR=gK`(V7_{9d3^`6^|!P`ax&;l)vww@YBe{DpL3oaHy+r} z=N{jV^Ck@*$oVqUy--I7{hVKd5Q+g zPND4!1{G-O!Wxm_k=YXqpzn?x+J_L7!MM?c0Y)}0(=&aR$c)2wYv-Z*CIa}YZj{tu zUG9CG7aW8!2% ztMZ8XpJ@`F+3A5f%%j%B$seVjdus+HC4hZB+wG?124D`4KsjzIDv^Z;K-(Vz^d`G> z_ovkNpoah_qzJRbR{A~Sr!X@{%8+&@K#dYj;vjCmZBGHbYN<*Fl#rSfCQg!45HZqe zt`q~Hgi}0EroW(=VHqZ8on}uEqRrxg5UHBxo(yy55C~q0|LLuEA}JbUz5t=gbI%d} zNu-JJV1((*`>`*nU!dKS>-kaqJqepXAgssR=GaS6|3%D?YtO|PAN@E8s8qALM~088 zZDR<*V3P%L;1oSr30xE{#nq?nB-EaOUpVELU(WZpKU%+mfAJ`|iUhWO^OeGqiLbx@ z{`>#-zx^LJKL7k50P5|%)?)z?kBCfrz^OPahiVoHAtE8p1hh8s@>1BQ)YL?D<|PT6 zEBzC})Gm_nhtoxbr7D2pV5TrY0o=to0*KsNYsC$FW`H1z2)3t(OqEs&SE2(aQ{fcc znC{8I;H%RKdQ8MrIYfczz8}dR4!6G(Q0b!gj4)xQmfDcd#D#w%GJIV+g_8=cXA+2; z#1nbT%rHg-Rf}W@P$OZHN$=^qc#1G{X-mC*DeYY%_U@jaYtlnfhM4x!KrP+1ZV-;kG; zEtA1lyLDb4l+d%+_M+}wwg>yYwwkp`F|ASxH6GPlpsGD8w!QosgqE+RC6zHgFYjY7 zwowkCcv8Y<*hG@Y!30M}Y}~YzLL&D}zgU}SCSZ<0q;$uDHC}I_lmmGo;dZSj@4wyN zzT7NU<9U{M#-G_2{I_dHWbU07(+%N{d{Udo6hZKnCL)uiI0PA20+a?0$Fwl56&>3y zKv=OS=5?KD$I-LooZk>Xn2Ox(c<=oW*^gz6aF0nZA%~42?KnzbS|^UMY57R0+FAy} z7@GlvVf)`DRQM@*D9aq5ug7L7_e045XlglGGx;yivG+$rQX?fpu#NuX2kn^-0HUX|AtBoP?da#1 zxcsvJ4xpaDw)>ehWZCn9@r;bvFc5g(>w0=BYU@EH-JXKZ za-$&pB2e1zqR92k=owSXY5O7%)oi`Fhp(sBn--BoZ0<1;4E@fc^Lp;J+wDkytQmCy z@I5cL%oqgR&BmkNPIve9@_`qKz!jY>4RzVXP$|MvFY7OooBdSp-^%kY1 z9W=#yN?wPS8nGT%7*&dD8Ye&_JVrMw~s;x`Cxt}}#%G?L?el=el~5n0Poc!!bpU296?-rqbvOO@WN!u#68r%Rw0{PBPNe>%p`$9K_Cp6-e4Mb8}(OLDISGcM(=wevV_`N;JVLEBzs z*4ladZO6}f{d7C^G*xN0g3-lC?UivZb7GdFkweORZHKSRc9q8CWUJ<{PlVKRq>qe@ z{SXkDi16iFZ)~Rkz8N+|Q;)(@)2~d1_6TgdmW?b&CKGI}7wNB!u9-_7`O;#=1k#g< z6h+!2?YZ}MUt|rBb-|pqJZzs~kv^2iczoD;FRjHM?u#7cmtfHM971=^gGnO-W;4ox zQfbUre>;&cbiwwzO(VU~q@K{H+030)-JP}p>B-OaZ0QTcbzSYYSP=m&H)*oQn2%57 z0D7-~q%Q%}9!#8QiwYc{pc~^ZM|x_-6x;qbqR-kB9|5 zOMmnErCh%%2t?g>OYtUkW-i11aSOfdJ`8 z`XB%gx1s$ejbTr>DdiNvN#xDff{j;eL6iy4d`b@F>nGhuN`MqV>p?v-r`Z#kwWJw< zN#2-*Ct`{svm)TO3%g@%uN$kiH_0~}Gb1fN+>mi7A#9cd0P;g{OLG2LzW-fsZ?zuh z{l5a=Z2x35+DeyHdfvCC7G$pUu=SaCs{(O&W^NM;7-Lx~RQXCiq_6ZDF8QK0CIvk` zAR5~v93L3@vCQ1qB$DAFJlk<1u*U#;;)$F{*K*TxdX7lsbi~LsC{sPu!4qu- z06B4-;z&8RG3H*^6XH@vsWoHf`YX^`A)$a$j#nKvZD^^A%Al|pP0MhDKzzUAyo^|} zFORCqRsm$p$tmGSN=P}WDSC+)L`9kMdYs{cSX6}=s0c|PnUe(|-CBgDJ4|Cg*L39# zJAD0V`=q24zKGIVTdPPzG~JSIXj&jen&L5Dq_-=K(XOsD~JQy&sU?wH>I zAVvy2zR!oXFZX4`#zV?mMru7AU>V4szDd9b9ja$LQh20Yu^4_qPs0e^TZ)vfwY@gc zhZK}n*QMFhQ{@yNn&_2UZ$2-vS{GV&Nssl@$77Elh*N~6R&a)8X_R&jefV1Lt7uo* zqF*u?>&l%V+O6B;u=z~X;DFv*5A)mJB}?tCH@?~RcSJ^f>?v$5m@3E|W;OCh#*u*G z$r93DfRxzg;ZJ~CRYXclR_46Y8bBnZ9N-oEie%zItk>DiZtgpv9j(hFD)m#MA9^y#4s=zkmMym$u~55CJf(Q%6Qgd%PCa>uQOIrRK{yt!LqZbP!U?Hn(jo z4ZJctTLrVfy|?l&-~dKK0rwh1hghk%_4T*=mtTI-!1(NRXx_w-3mGWwoyZZSDiqFqwd+T}3 zndw#~*=CC_{zbyHK(l7mq9xZCR;f~<^qrI=6h}SRTvbt9udNVePHUxNEO7MO*JM^P zGf!N-VsD8Z5I9^@!*=FYj@F5YT!0)}q2Bj;WN{Cpg%@}{t9B6D?y7($vSuLji9~V;@8q5CX|rlg7zL$jhFXlUl^J^lGewv_ zrS{j@-q%m~0FJ_B9*(UViF;!Cn%7Toek*!|AY;Nr{LqqMAV5u#H{XwR_%-J6w#WN# z|64oj_BS0fwz^p+SXuUgJ>CQDAfK&ATv}@wK?ro@1P&plFLL2jr5^X+YU@$}P>NC`7FJ>4%`Hm+scolr$O+S}KD>&N}JuE+i+{ts>s8Pt~< zUEUO#`!g(*g}NhO1;Z@m-QD1*?Kc!?B=!c_+Fj5~O|a({+mG{hwEORypEl>(4@ZjX zwNCQ7)?biWk2Ce=^Xd7Jx@=9+L-CqWSNN33TpGSKP9<86ekx@8`gDUd;&icSjH4yxo_wcXeHD|hvT-;$E;IMGE^ zwl|yq-l3xBijC$&;o_nAPAqozy(aybBKS z5Edindff91v##ey_)%0TNo|?7SJA_?dnz_Ur3*lI#Eu|3_j-DIZ8y2*-k%YfdDu3( zQ+uNCJ%qpZ4tGXgrIKX;K@i?E-PhBQh7F+;Sr0iHiqIoKTTwLHtw2VQw&%FMG48#a zzN()w_BJxlUWw|!nE&26^eiFM)_1!yvM^LNS?L>VJo^FQGOsqf1(4J4*-SO4@p)rSz|x`~B-Fg3N^}KIZ-X7g74aURFgD4fq*Q_ovnybr+?m zDI=qXJ;Uh|1qxv@L(=tB6^|`tYe7G>>ldG9Q!`dQel1lM2pd7L2kJp*)9xEU?~+#{ z>Vr5`4(u~lRW)J}2c_@av57bkN7xgJa(+RKH9w@>*fXW2Vez6$sYlBD z&Qyo*Tz(bl6qG9ImXWF{0?HIg^A#_zE}`1kn0b>@eJSNui-@4KFX_Io5BRh_lb~wi zvFEIbNj_kMi% zGHq`b8w=2$3Mkj-chLs}wjU~hD$3yn5V8GSFw094q-j_4XVu#d&&Q+TjQ9bt_GP23 z>ydp8dsH4FRd}pfSl*8_SB&Qz$*CKtsYDI<{3$4l+qGsqsO2B<%f6AYacRHpbUg;F zw)(1G1f>eAG80#CH{K_BdMtISirc8TXZ^*jKzb1i^yGI)s`T8GzG8iGB5Wd<$Q`3d zlh=$RFY~{)J$x5W^ z(W}I@C>l6JMrsfyNfj1_w0E~1n8Z~?cx;hIxr-dhUnoDr8gQy6NlI#M8IcGo2&N(8 z5_Y}aw3MA{K%rV_cDN>J>1?47iKz&`JP2z=@xQJU=D%b7p*V^{; zWACvtas@(VjupJrmc<;yQpMPF4-OcCc z&syBAMwvZJJg@Tp_Vvpz8PDV;ZKojjhcP4y2V-Y-wUU;A) z)|KNMtQU27ItG!oO1*uJ*c|T+T_2w*3*`(wynvWl(|AR2)4NoWugs)E>Mdeg4)Kp# zShTj%Nw8;;qz5uD2;2>{bVya{>D;JTpj^TgD6=aI+02iOf2xwsrm6Q^{|I zztV4TNWE))uKh{gQ({khm49ERkxZ%{K!v9unTKI8C;X7~QV1!QK~rsLh+h&jM1qVLScm<^F!dPjFk@-rIX<6k$7j9&PS3R- zPO|+{?l--?+5SL{NI3bT9Z|j((j5^q4KEI$$V9wW(6=g*9+6WEwKiWn3_@t8c=~lM zzbJ`+UK7$&p~uDzy?pr^l3s%0xhzP-v|wKWeFTm!xK5L!7n0CFiv10FP74$x4wKo+y!o z&1cL}>S^n_*T{9RM|aOXzeQ>0>)LBuJiV`ea-ooQBhwL#i5#S zzx|i?4QJ#->xcQ8Mz`QBT?U9zLkhjg~-j;2XY{UOroT9EdU`nAt>0Mci$h8 zQ7D34&)fO-o6qa=u`{G*itTtC{vB3al%0A+05YbnOoR%Gq^d=PNI+CctVA5NRy%89 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

    dBzF|8 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 z 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¾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

    @<6^It?_zTXla5QrW7ss8DI z_pjx2SpNgdij8NHa`exy^?dr*_fP*s`oI2m95Ek=4nDD?YHhV@439($eSD1LzRWCE zIHyvRhpz5A>bZgt5jkzVZE+KQzqjqww$EKU3zgWLBq3v>6vpk$TUNvhg897lP)R9S zzaHZtX_R`(jj6GLbIJP?gzxXfa*%9&u*|+Dk3+&a;sFNj)$Bn+`{|O+3elGLtvtD& z4|`)367xA-+8h(UgGg1uJCP8qBgq0}DYh)(GIde^wjjQ!H~Cvimyl=$$hWCn_mgk2qBCw8j4O zPc%@{?l;;_Pp>ck)n|`DD4BHvO8EtWdVT_1-J0sVt?yyi{pI92mJ0AX3(~3tIip%afHnN$X02DV;W*;lUvf71LiudQzGYFBu@h(4yT9!kR+Xn8zDrN5hDy3pp7Kh z$sI&Bmk+6%QkoV43fW){4b@o>5{0m(6&pYpXPW#wnc!C9K@k3+Vm&|iQC$n%GkN(vobJKF($8Xo;`i<|Pmx$SXX*r>tK5hH$aet_T zx7MD1aoov3>mu=#Wgd?YTUXemb)>>V;6f>X5~8~Ab>D}4TeE>7sJWifmg;_n`^RsG z5;!5`oN|3Wj_c$0kxRL}{AGXryg!{;!mj4JboD0B?ez3PzY;*nlT;!fcfISc?fl7O z0GRzS?IA}=+c<&=x$W+QDEnHTZZUQasqLh<_mo~uRae+rBGtv7|MaJi-~an@Ak_fZ z{M?5Uz4cT?Zl~RAII%W?DMj{ zoX!`Kc+7!2N@`U;GbJaHGCVc)yG4YD&OhcueJLs;h7&0J>W`c}r{)@lZo^|1BHNzM zuIoq15oAV99n_`ZF5spb5A{AS*RYO6e=_<9kqUQX#f9cli%TKAg_F)TB7nfEsKxfth~{peASN!wp{nWlvjyNetq%oc`l?2Q)fbw zncIoW1}!FS+z*6FZmuKDI44QT@9^v(jEDJDsf|-#{;mTs4#4_KC6{`Jf!Wo$Y@5yH zKA9G}6HN+oHH(Nu%kEql4O0pYw7Kt>E(pKtUB@uaN%cN6d zB?Xd6`B`=87&-q^&i}b&`08t3MF{B={MqLNGI@8vGPbQ;=Fk{dpQE-@Ef+@Px+mLp zV>@jn8K0VSGj=bS^frgIRMOMV#3D`Sw?0+h7E3f-i)f`z`zoGwL};$V`}*CH9sMTDKrkoXHy;h zD`HSck`@?^A^=EC8yemnjc z17lnI=fzkrvs}ovEdz=uqA~L6A&0!7@h$T66+lHfu$sKSV-c??2jMWQSM8}DO%-S=%B z&Rm&mYlS%J<9$Cr&v~;smp?*rx%?c*vUnTo8G%#>^S

    Ck6F2#^q%*tppMwssuEy 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

    n8s^ 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∾SPVmW6MM9k$~9K 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 z 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�&5kT2c4ExSDoiDMVFKh`}#u{xz&7w2lAyY}Y| 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 z≦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

    3#%x3+n72>k&4?yS-`^#HUu^q#PC zglAk}8OL3;A)^qW6itvbi|D302uQOubD!x88N?L{b4Qd2MTq>0|7-J~nMa5T@N;5p!0C`IYG+N`#0kqRjHODv7yKN-e|$I=?%S6*gZ#S!>)5 z2vaeXblfUbT;NRT;GSM#vm8hwrXm#l&2?lN%t{jZ?v69D5X6#SqC{xEJlt7Y8++ex z+uqv%Q`ww&yn2x62CsNMoBFo#_GAC?zy5K2-2FPUf*fw-uk^2^*jxM1c5nS)?Ga(| zuw>+n$9c^{aZ&|UrVtHn4MN~5cp!*DK!i&a6R9eZG9)FqCJUh?tpF)PF|l;6PNn7O zd`m*CjCECHqpd9kS23rjX6vIv8!;iQY_={HbA4HL;?^>ppd`wo+L|<5SD2j@0VZi( zxVLQ+p*b%hSBASG>fPq^`3piS0#a2G?J1RcA)>0NQdOyh94w%W%GE?@-_|-Wd$AG; zR|dDY82W;g?jMrcw@r8;Wm>G)g$zzD60mR;Q-@VifvebcXrW)vr^gFfQC2Gz8w;}% z0}64JSEX@frUwfuy~0_PWG8OIN-lAoSs5On6ea*>XZh8*k!;`;8Qhd800I*T;mdud za)B!Y1(>R7We0UCkE(RZtSYW>5wKFZR5o9Ws8_W#s~H)KT7^4kFL#tk?+A-aUBEYG< zjnR)AOS5Sng~-O0QE8Uxp0RvNYf10n4wwW{#i?U!+U)xBI3rg?0zswHsE^i&l zwD9u^zanRGQ8jwMr8rR@3DqVth$YN3ZN@wwzrt$VK3X4?Y-OY(t&NYZXxjX$fRrTI zg32ToS>|=ED%(Ep-~RRw-ENQPpA|m|AK-T~uoDf@P1;DREQ5|ddSO>qsnpRcnrt_! zzOKt``s>x+T#dc={+2Kj+x@Pb*VhH241qKmqwgP?jd0AT&AFs) z1fx8PmCq6&APm!GrA zz#yB?`Fy^YttFzZAwA9~w9D=@G((~?BEoEmh~9q_>Dq3+H<1oc4yu**dacJ- zPN%M(vCKt4TifLy%_xDjp6*w&OEzTsT;?+)5J*a|Q?}81TSAN?AeU7ZGU3G3NCwdm z%@hh>6d{VNj0lm&%t=uTu^dolRvi`a`9%bX+O!ppV6I+FkwNXft^mCidG3)>oY)%Q z4-$^$@9BM~-nNYznSEZ@Gcpssq)8DgqsYS}7j4Sk!-K%@vJQ%>DkIZeNu_TUwx(wS z9IDEy(wM3VWkpJ{vYIbqgG51zJ7jp!x~@zEFFBC>Wb`IS8_IGO<>UEFDsJ0tY#-23 z>1`aW;*mtu`q8&?L~#I&LMB19-|paLm)SCKkcwcda9b&GU{Z14dK2YLdw#ChDv!2x zY!a~w3y~1c@}zA0htw#t;??$hyD{=jSb4_R%P$MRz{JART)K%6E2N|CDqZIFneL*( zP6TTd z{mqXq5r9FOAcU8>$70oXY%D4)wW9ngXB|C>{XENqBD4>VK}C=xiY5((3I`e`Q#Nh4 zjQQ{X^Z$JO{)eBDi``lIqxFwUTwhPLRg__*bZ>eT!j^|6bwf=?Q1_%&DZ3M&*S-@idW8qsd#jPLPW<#t?azW7Ae|zbE^y}lovd6 zQN!3Y(~GMVZ(bdez$H!IV_k9wlW+o}`}cNigf_3I&988`SzKEtKd)!8hP$V;t_FbE zBRrQBP+A$4g?G-LI;xXta`^JJi+F)r-#=QvX_th#|MYpbLpj7QTc2kxd)It(6{@CP zMXiXT6qbS{5YnlNAs}VxEJDSllo6SkUJ+SBtR3*Ih%C6nt$bAlu~bq66DxB{r%Va! zq6hauU0I|r_TiqG}e6wJNMR_RC4QkyWQPjucYWgJ4okw#dSqmX2F3bTn!nhu5vIj znlV$_l^IzC64^fhq#KG@NQ=Af+jbkf^o^;~9*=mPLd+!Lk>sq^_i=pxxc&Iv#};e( zIRQj)&O}J#@kVqI=4hiI2NjZ6kQxlvNj$(RqN1%JiDY?GlqcMjm~{_nXCy2IO{6ob z@7ly8mYrvMk#Hf4K}v~YVHIVtXJjNC>-o6W&!n5~&CaK=Doe)dy=4|xR<71I5BJXp zViVcZ69|Bz3?m{7X;*rdZeW&ombqDuYS6sV$FbD3oS#M}q5fP{rPLs5yU_j?cwa6kk=M7@a=%7X&sDT7!Laiu-e zCif4^#qVfYW^z$Q28uEwmIpE3!8SPH+3Mb8D^^jgbu9~bdka7+%)`o)g$m3hwBOhv za)wV-0+Q3*0+dvX;9yAxT4NHD#w)@n5h^0w-OR$)TxNmd?f!wL8Ig#r>2O~zavmam z`_5U{m;3dHvQ!p%rW-5m+eg=1?;l}_OwmSN(K%!-gx7LdD8O>gRaL~>@$ro_VXryA zZ2nnpMWU^zTVYWJBZPYEHz`@yX=|t9hv$Vb-Chnp&oXI4Z|_+(=QA^bDj`uYBcl>o zgOM5aqSaCnk~0b5WR^&#_&+tK3Stp$#ggmAhMFAK&@;N3%TB03_?pvSDGZ8Q5xz=G z+ivHxyj1q8f`E|3%-l+;@~rT*E4?D43WUl^mQFg@RbJHA%b2VWaWKJ?Gb7WJfp&Xq z!t44g@>97pC4+l=M^p13F~552_qSd8jizTz_m))xh>&R8##r-=BFf6?ETeB9tUz7q zN4OD1#;SUW1KqByu-5NHg4e5d&3w+b?`_`~pL1SeE<{Qqtt*Rgh8gT?W4mv^3)6M| zSkKFzYdy}Gi&gvEja!F+$SBKCo0!{eYy0~cy+T+OV4$;XV9(e7cg>i+f4plSzE+$M z7Zzb6y3X_ZdM>koB)}@vv=AAEbVB34aSAU0Rsf`PdneYIM;XTL59N`OHqV4XiNspB z{?@xRKmGhV(-}UvI@OVJP?pr-N!oAHDnOtaKHIp7jCGxHcMN`heO{ku7@Map*V}E} zzL9KeJqZ@&5g~k&-19TLlxml7!7@SdF$FwU- zoCj&!K}noK>TAInog+QrM5uM}MQ!grI-@eqY`~_}+Y71OZo-S8mU2Z3aZw~FLRMt3 z_S@~-w!N3|nvbYOK-;!go~KeP(7e8ktBN_s)_xP#+kPYZ zrk#mEKMK-8giJz=+l_$d*AwyrhH{lvRMFo?wu;E|s)$OLbYDcoLtgDe6f%5WkMh=r zR#YEvZ*TvmvR#iK$4{*DS)3p(QghEF5TPQ|oC#pN&Wb2SDWe3$A{s&NNvQJV22d{w zk4&;$2ekKo&*hPZNVllG*3+)X!@a6nW>poy(mVGN?l15qRRQ_h{e}eyBu$m+g?fdh zUliVzt8sAx#YKpfxrB=ts7xwiNol%ur01H*5`v_Qb5)WmX;B4pNgv7Xb~0%eoUYO= zAnYn)xQi-9T1=ZW5fFB_s$Prj$_%HjMMx}?8jTP{i%B~uG7gX+f+{GCAk>t!BOT!? z)jKr}70asE37Z6v%3PVIx53*mOQ0br=j37*N;l>KQ5FRU0ca7tqO6T}`*;_r3@7cj z4z~o~lsA-QCAX5jL8PW<7zLy@Nic5gTIDHDY%GypV3oEhwmidZWjIxUNSV5f-iL18 z*WWuwSs+?Svnx#@HAhEWU5@3qp)w>8tQUf#l<0UEn<;>>ESf&ZDWK;a2HSgR0d1X_0##hnC8m`H z6GWv72sy7aJbYROGJ?zr^!k>LwIWurr{_E#O!xV9o#&_9!O9{VRc0(Ev_7`+ZRpMN zs^(TjowXyySFRbClhf!4z1CH}#^|Ffp)3(Tt5tjJ$nv;q8UxxoQ!y<#bGs49<}ud^ zp+2_J?&Rg`WKLp!4OKl{ThrcK+ijgOor0yeD%d)G+PbX3G$CiXKaa;Re^^|JV$lz7 zH;*zik|xY%`S|Ofj5gPb6=^~&t+z4mV{|21=QST+KCO>V=v5i>0v44^Z=wRS!ek|3 zLZxVnNdKC3QI`*)JM+EEy6Oj2)HH|+GaC2)zQ6yzfBU_l^z|>wr6QCBW0GO(;Vvv7 z#@KsnAYt+mCu&(p(7toKYe7W^i=-zgSYLNm&akzf*YQ=v+&Z*LXKEw7uIsdARIKCP z_BQ}-C%9xZCORL#*5en0+V<9NciDEE&v474%xb;0-YF=}GZJ1koszhB*>1WG^QUES zM)|t@A;lZLS9$nkQ3O?$a0j&@ClVIPSd<}Ds)Be8i?{zXL@%4G$Y^8=iMX;e1uCL4 zs}oDXGEBHhBM^YX-zn7~0(da1$MiDkowQYDCFN42fIVwbg|s1|<(6bbT;=onOiFD% z&Y~tfIM)iF+6NlPdVq@xc6?TXTO%c6Mj;R}E!kV|ZH$5w4nl}Z29Qu5D!rB=A=G8G zs-V0eU=dGUb7lr9AS1BcylM#zECze}W5H<;j|a-Q-$7c^NpER2FC)!{#&jW@YWM3( zGa^9M1PdhD%@1HP^~#0duw1k%G%fu)xvEJ|$FyV3iwdF&5GsjQWgv{J zIybde7IbhOR7+U4Y9-2jYt+Tu{WzIIq)7KTz7Q@=@4x*~sI{@5y6cbFF9EZ2AsX zpk$Yr&$Pu@xjs3e8zZ9X@WqTS(u6rFP*H2bZ`<}x64&*RsJ^|)zE>&xHXo;7|C-0+ zdK|H$t|$YK#@xd*uIXhlf||5;Z}sNq%3J_PS@>dg?j?;XI3tULBwG{ZRzYqq+zR}1 z#XDD2P&J`mMUf?>D$K+zhNLxT1+!>TCfAGUp6TTrj6%rhRh_Y_C@$pee)Ji*(SjRr@?@@ky+PcoQ=31+b(Nt`n{&>*xkB@(B z_xB<^pFiU3tLbn3cyOVZq>aY)_79HAub+S6irf8W^ow*=}!LyS6QhGiF2<0<4rwZR2rc=`Hqgjq(GjD=R37LZorAxlc-#?v5H7>D@0_JO^!!J6r7M0kQC9z0v%itXm@jps|Q3sX7TuZIqI@ zGLEc^TN4qVYdx;=POSlZ>)J=#xNUS(5|EnvwXPM*{RFezdb{s31ej{-D~mDlz2KfqnbU3IswIgiu)c>`~HC)D5l?3e)u_P!5R_BGvM=km+j zrm_ihB^K8!xtGjCdWR5Io7a~uBPUSl?OP$)LDh7K-rj@rT0h*M$nubWyD?5dkHpbsZU| zH`=tr$(>qLQg}W~NLWOqZ?ZOg{rIu$OdUz7q$-_6$`-RS>q9%A3y!Ns1)v8k``f^Y{@60hLXe0KZ}iPgiV`Y*YWH6{4=i5 zZIj8OA~ASMc~LKq&-CQhu6gpYT9+z{Yx?@ExSDK@e#?XMy1KrL649eSZf4Bd?ipR^}OJ zRrdQ`WXnu?!C{&CZ#X~sI`g#`g9FHyh&(tF33?%oD59>3R-`2o(%9Fv<^gUj%8e?> zZGr05wIODbM%92(%#|}M3X6-WP(g^sFZyxJhznU`yeo4?P`R>@5_5sgV-~_JiW*4f z`J`}e?sir(vlI#_kegrbUi50ZDuRf?oTybfiC$)DRTiZNX#x?4h{{_pKQbe!3w3ZV zWKv`t>4_>9VQDch_t`cSgT-4bP$N*dxvi*p(M4FuD#}kmsqQ2ir^mXomS}2oZg;NU z$2)v2b0MKt%Oc%L8yNFE?SeNNeG^h1O2p;PXl>jogFpl!qADj+XK#bEP>$NB_8Oe{iAlpx(+~ zRZ-@~X1Q!7l3F8SP(nzyCcW!+YvaD2m#s4@3RUHmGf&e2Mk48zyC*;?MSEb7mh{F% zvF4gHG6<-g2}7=!7iU!q>CDKSXI^K96PVS76^MC#RX*GvNr%g-z3FYI22vMcap?ak z^0NYPid2Gh&2S4t%aY7AK!^$AG(@`Y+ikS(<+)B<=jzL^b*@^a9X_Nw>*lrW{Hm+Q z?JoTmegT0lq+Ds?Q@|_&PhTtIl7`#IzJL5iJdXMEx}JHikRs*r@v(h;YpU(ref<19 z|NJ%2Q^)o<7oH>BlCs_35?l~s$qE7wa#2u=iY8_?fz|M#dW0D@;v7i zYgNsnxpK}mBdUNpuF$WRT(Ru&$geLyCq$(W?TzWuz9kq_xBXq)SXl_KG_J@BL8-hd z9PCAzB)~jPAiC`F^|K=C`VzbL+kXG;`#I}8uO(-YM_wgW!cnW~{l5L~*PL^$N6AWmPhX2<4jPhp4c0Zk@PCq+Lg>)%V-pZ$!u_s$}lq zBz{$XD>EX^)|pA5#>%QB@_I)JRhdPs+|7QGWGB))+}%_1DZL* zXBLB+wjnwQ1gxUeCVgxw4IuZlxz@BQt;#hgf%<-g=h_p8DRQmeF7csyjjD%0GW#A}faObfT_iDkB zB%Bpg82iWV+go?miLm7lTRgA$v~=p7yQ1?;#R_C`3-COb2QrIAt2C<$#R?IKl8D5b zeoWR4q!kpE)H~5Sj;~dhXlwV6zJCba(oZNLM5Gnw7S)76Xh5r^nb)(fpwz$X3!)gR zEP=4~6lP_?nkeDyW-BZEKYq_TS|8-=`SrhpuiA)s+s2)1kC-fpg7y*lij4nqpDewI zbPRHiGgzysA|r6If~(S-}yO~!7Yl4ZmWf4GO zk+$@L&W0jjcmp`svQjtW#Y9Zn{oZ8XeLQ?tUg( zW}IJNc4nL#v7E+L;+O31UHmu1%RPAJ#A77;KW1P@cG2~(7(~xC!~?es{}?=1xEsuMHEqKlc`uF zDXUf`d3jMQrgT)jNNz&hfgr9TxF=G(?93z5S3dnZh`HVGD%~%GQJE0;GLB{0id29^ zCJ~WP3H@!nN1>2zDOc-5WFsEhv=5Ya0^a#z_|IM2X7A ztjZ)@pdt#C7o&=Z1uT^o^AZRuiJPc0Ehsp6S-1yDW6sLrt^_FykuK=wfdYfLQVP;X zyN!&xj!(Dg;YBP>EoRzckzyrD+D4wb&Y6jdgE@3F?mH4;r(Mr*M+I{hK?(VK2Bq zUAP5}(0l4m+y1WT^Vf0dTGQgQDy3vkr!pppLMmFNc`eRO^-is@HAu$!SxBPSfsrVq zG&xv+2A9V%|%0y;m1|_&E(!(MHR#YiXb#wuQLUf=I z9wZE+ijvxh9Z6Bf?yzXvjmF5(j7S6JJJY?wJY7UfG9p-;$gLm@5n+%~g`k)u9sZb} zVdfqMP5@P`+NAet-KsJI;pygXNNw${SW=)}L>qW|{6hKIN8k11_kY~(J^ixlddW>G zsR>6ovzKJziD*bk&vXYX6_s19sGy?6YYyefU3lBz&H!a(G7%!&y*PnnFQ4^T>zT^{ zE@(l*Jf<;0dk1=k@=^v-jR;<0#3Z}+K32cPCqy0g0CA)8bh% zDZ2-~n7Q0o$Hu%hWx`{fU#LY6vedSluVP_ks>muHW601VT$bS;ww_PfHn&xsa|N>Y zkB`zV7J3)a!KAiMCLtcm4yr4fFsds9dsPx-y+DxIqK}j8mBk#2n$} zphg%iaAl^R4I*znt=|x=O^ZE*SrYX6osB+&li`^nUtGK=IcCGX0{{$uJ zO=L*x+`4WzWu0HobbsjsJl6H~dBybe6C_m#H%g^)O74Br?{D&rJT7}&rQY7g_V!V) zsR&Y-5j5J~M6Tyy$FGPBN~1SXVOHt;*Vm6Yj;WmSuQD(CBy#P9s`>bGE7?Gl{dQxX z*W+JGRfli;8|hofkz6^wf9tyK-$a{^o9AKvuyehpGp~YdZySWeBP<9n9da?c+;-Y} zD0$REazZ?6&7w?{cG50XoNkpT%88j-se-74m6%dcl`Mp+nnq5{cTQ$!)dmQfR6}v| zTouSza|R{zU;sf520;K6WfE9fZX?gAMDa^i-wgsK_E!L2jF>6z(;Oe7VfT2*IOZbH(Ss4&f!wyn1}h=5qOjeNy?xLvH8 z$%$E%%#tN;GuM#{-EPua){@aB_bMR}Q4wYMRamSXph6Sgv%>6ZTC6RzibjbfT_g)C zRpLivapcOX*FmNbInRKIsC4DtQ{ZLrY9$$Semz(_H|70CAYUtTwtb5i$ygh;E#mZ* zF|D%NEba>ozaHgJ%1R<)c_CDp2U8ET^XnjquD!Rtn5b*NaV@96vlU%sr_{8{boT`Y z)ry4hE~ViVQ5IhC(30g85TPPY(E=s1eAaoimO?wDXDSkDE=A+E_iY1#gc@zCOerkH z?frZ_*72yE!W&CLQiPcp4iu3xXH(iK+dO|(K|5njik0h&*kufab3iy=KXN*T_FbA* zY2{*RZM!QM!GIu8AN$ttD#}t7N9Ee?AKZC=|A(FD=YRe)1M<;idz;TW=MT@RdMh^Q zY;W)Ou>71vDax$u<-Q);H|kp<00X}+qc6t}t8{KvTtSuT~kQ++g=EsMVaYJfVc}0P{bmo1JoS8q;Ju+EkNE2mrX&+m=?dv*@KOcTB%2MehEz0M4WSXCI zzkSs7V(HrrS^aJAA9tHi%A`U}V-+1EJ&3FIJ4gp>q*%<1$^?;`=g%L131peCIkoj^ zm#{(z)IAq*Wgy)|Rr1@3h!@X#9c44ZD>tg0TGzgF z8?tE?AJ5ERIU|}w%xV1NVo9h)F#}d7UdC~ z#I1t^$T_bpX1N!P!OVgo3vTBFbEVoE70p`REQ6iVEK`6CTbxd}Lda7{5%vfnfDZ;(Ue$}G{ZY$4=y7c>w=EHfYu(ea+z zqw08kQSVaCu0#l_60FumO+^PNNR+i{8)=giqy#3nRHDA!7~;<-g*EWrH|`^aWQ_IT z$|T`7Zg0PRJO2DZp`t0ZZ}*#Yu%z4NZg!qO|MP#YWh%p-kDQa-T?!lArn|TOeZT+S z=r;54xTNv@`*%?szy8d1sYvU45qpNY2ZEIss?wPlLF=61XyYyoC9VVkRT>t?Ki9E9n+O;gz2t4gyfQ;6398k0eP?YY z$9g_#w6^c=*Vn&(z%Lb%4zNH7s$p61w%^))wiywf@Z(nWdCh{`;aj*ujjA-1SaTie&yxTp?jCc^ZaEl$etk5+Q0qQ##ZqcrEA|j zMIh8Se(T%!T}qUaSjTq%R=6Ek6)sR@1WNmU*Va*F<lV)Ju+N^ zfTJOGYdX4a161kL?IM^C7Nv@+47aO<_3yqdan~-lO0g?NhiLD6S0yrdT9rY&wvk@G zJmy8kO?GCQ(MNUuV=5=6G0?&2&igQSPAuo-bN zX+=d$rUp)AHQluLs#yfa;Ml@f`d8s3a&EmyGQCJec1o{!6lUbCtiE&91f9|X#mJV- z>s*Tg z{+<|syvhOMw(+>BDv?uJBFheLG;Z(XwzbxoTdkPaBQH-|6%#tRsSYjJdOkn?__y2d z|M>jZKY#xDc^!T}o)JL|X{3#_ESEb#L?v5DxLOr5{~q@gvhwWP$kb&QQy1x#aC5*w zQK_hxZ0G4~5{q^vyV4z1LaO6~NvSIhwsj%n_VMxCzyJHkAOHUK&p-2AQPtkRf#q0M z^J;yQebXi?2s@&ZTGQ>-Z87rNwwttFlt`Kf=A-pnRr8gA_R*wC*PakWkW`kXFCtR90qoZq=Lu(OO{kTx zm{(F&4nOAld@45-jgQ}Y?{EL@kNuC|k01Y9k1PGCb>_7k2b;Mr=_8ql3F)!Uh(d`7 zpT~^#WFVG9wCy+UjkdPE-^12?{9NZ3z_;zY_O0LEMK-^@5CwYw{rBx*zk}6R_S=1X+tVowaZD}-NrbsMBOqjc`SswnsBgZU)^x9^?BDj= z`z=EKXtmx&Zt6rAy%L72*0d$tTSJ<}b*3HD=b~z$ z4MMdXB-9iNmKHdJyoe~AY-U!vA)H@`=wjtQnpR{kBL!!nA`-ZcU=@JdQxMvU}StKKnufbweCT&3= zqG08*zr~!ygIKQ5hk3OCYO!E!`^!u!NyM#fuTF-pw9CAhdu}@Z@bi>bkQi+v8hKrI zJ_?o>WdMzZR78{qv8JO-D+XA!?KRD8(cW1%w=2qYzqc`Z+iR9TIk|OGQfA@efTHSf zX}#aI-Qo!Q`~pq0voPB+`LZqn9y|p)yH@m{V4ipMps7enD!N?@L zmf0oc?d@I|0W(_FS?=G~GvakDuEMpjKy6STgvcZYd3pg&J3!>i=aoeSZnrzL7(GE6 zc~yo~LqZ_L+V`DVLE@Pt3U0nU3M@mp3o@;QI3s0iHfPg8%#?+UL{@kk9Vw+6RcR}1 zG72cYHL!?mcAViy+q$%VfB!c6(C>d7@)JLPA)Q6``(Etp*I59P{ai=>NkW*;2^IBa z5mC&_J7-hsOiGY+R&9h9cG4;rE!116Q$eARdznAsP_%Nkk%XH z?cLk(FZX4G>DIsB`}Yh#i$A9_1>7DEG)N&J66r}67+kbU`Uguw4t9(TULy!VrTs8Vu zRnyJmszj2{bwn-^MIyYkNc(8FF4|+g4vxVhuZM=1JksaGDq7#94-hkt-gcqe+MQTb zw6#JV$NF=ff9V)Xdr~7IYCu`IM;Sa(px69H*~8O3g}OEdg96gh3M;FWSU4C(#2p1- zav#J*K`Mj5VXyepD2hyDVydi48Kdo6*A{c7m7qZ?<11g2lh$SINTf$vR#})K4Vb}_ z0kP>B+&2^=9L###t31-GvWP2LTVvLOFAKCH2D31+PfuFR7Zc${0%LwnuyP^-DS;RL zEHAF8G|C_%yO6<%LM1m!SY{BUwZU9f)6*MnOe14fae1;}-1gS*j1DIqDl8t!L?Cuw zc7&hei+m}ViivnHi}XY#wIUU+;9Am@xIh;1B!X6_3{DX56)JG zKK}T>{y(?h{`mFJUv|Xt^*Eo8L`qX>O@(uK!L~pt?RJktVR9)twMbsSZj=} z4|%(NBd+J;Pdk6DHPdI=(;NkdCYA|=+h}b_?1$O7DV0Zh_zJKnZz_`OIqk}IL3E6}=qM~|!rCj0 zLMqY|%$xK|lCT6dfIL^&iZJFVkGZZcJENf}gKD{mp%@uV2=c%b>0l}VOrlHzurO;Z z3r|+b1SQAi^ZD>|b-keriI!Or1x0d{R_5g?!YZ#dTyG^Js@#-_sSx(e2-=ie15>%Z zJUc)zoB(JG7UBUJT$&&v5=MG}k`c^Bgz#WdX#!Coh?vJ438Qt=E|QWF5lK>RS&`u- zo7~?6u;cO>Buuh_7qb8yX=aP1GjY2QjOHL!*0JmU9$3fuAM@A0NVva!V-ENEy7@B? z=0?>s^5ty>YcZ&}7@!LHvMbf86gE-B)Rh$ zl^_7&kk+v@DDz%*3AZ~EsVr|>lB5YNr$I5UlN^U?G6#!907_73ti?*8|S4C{P zxjc&_3mMac=9MBh9`_-m%lo>1ls(hVh$Oxxl(cbeAa0^etspVu^e4!PH6mfzL}+v& zrpE2Rjk%m>QQbfOajvgOBUQeuwqYy8z~u9| zoH8qD+h1E>Zd=6(Qlgesj0!_#3X_m#3c_N|?YBQhrB#SDAtvRV3+1YG#i}goLdx)n zikvfIgzcXliRiWM)RB%i>WBs&+~aaM7c8LzO7#mpTEkqB*G1= zxEl9?s8 zfV!8jRIPU3`rfC1Eqj(?++TB5heA~P$D8!N?eD6$b*}3?V?~%zcfF6^Kgu0>+B~^6 zVwKy7^8I528KJQ-RDGVb^0z`SpBxAEdW7 zT1AGIU#Ev9rS?tRmUCs8NN3$eH<6Z+X|L}!LRNS%6DdpsFR z!XyDIbmZ;(dmnF}ybOSnu#65hL{KsVTtoq8reFj}h>9s8;3_Eu5xq!=l@YN3uoCGg zr>umd$h9@mUgg?05yW+HRU7+UGsTln%ULL7uq&f^aC(yP%dJ^S=^0*?uipqzx^j?= zWVK~!21I!fhvgM7Pd5S(CW-Pw5|1ilE_Aqmh9k(hRomaoW>lbcN|L7K7QRG>^oCko zi{Zk=y7%5Qcz#U^BP|u;MjVWQ_ANcl4iag6Pfz!Ql&Cb)BW%18NlQ@(r;OCbD>5gNDoZV@%M$Jf)yl+B573RWUI-B2uP0GA5y&jd}dq_6H%e6 zJTfNu1WL!djyHFs0?L;^J)S(EW0(F;w85jotB6@DCkR60{PmyyTwOl)+kZ#Od_KZw zADyHi33Y0^fBZJ~x0f85xr;O+=BC_1jj3@PZ**NbO+-jw^RdqL`0J-TXK5nGw{QDx zd;I(lgtvZ|_J)R3&-KVGR`GQ5)wQ?Y+t7AvVbkYp%czw?qB=G(c}@~_U$dN8oUc_<|}8$bQDpw%Eqlh zq$tAT`1vz&QABAt2YYVqyzN#@ZI@f!=1Ey7_d>S)J{nh10On@v5nm4xVM^4+RV>9t z(nnI-WzyZ3uj3Ti1hQ-u03nb7!rbIlsQsHGz0Tuj{_{AW4;J0_dmP3LVq_Rlc0SNJ zh#4V7D6(J=k7e4oDs7ukC34!VHJg5E-``{#zRrYO1qOKI=kcS;(=U5IZnwAX{nqizxuXic+_MO?byfr>0U&YA{P zyT6b3@5`(^5UU6kBHBbGyjZBU!P1C$+&=VeGd1_ent{(ldle*_63o^Yiqb>J*7x^Z z<g0jH)&krYb}s-EGnt2Dh*=7D+jod>>PYuPxmvMSEcqweIROG2TN0y zypEhRJCyqi+LAu~3Z$@nFn8^HE{!y(Z1?wMCq9g(kn+`uC zgE`CWhhEag7U9nyKl}Y-|F`dQ9ri3ka7kGd2%^lbB9kVM^qhsD7F=$zuu^p!20m6jg2*YS~N=cOshyPq`Q!CyV-T=$2*avO*nyxhENl9oS%Pr%_i^fAHP4p{~Do*%$l~X2XskFVduA_%3p24iG?@GI1Z2La1YkvL8l`sBJsxkvc zeuevW*!l39P7^By)W@4rFFzX7zIA&bb3{m1j` z2k6qbmOAZWS%JaY-nqZ`_TJ_F`Qyj)$6x0>JqPh!O77cTglFs**8QC7L^jkIMPj~`$5=dAXo#FA+UUu&%&Uyq;vYn@+uyZ8J1cK_yXZZq8h@^uLf zF5#+}Gt1LkWRxcdN23ZtY6W7=Sd&>16}jq_=}4;#W`cHNi5Ec5SGwu_CR>9R@)fGi z@%GU-Vjl54DuY-{7*fmy5(;Lb7qPPuKQe5*-3pb+wyF6#oq75t(5>=+FKSfYd)XhUmm&U1>RVO z_PfaNdDyyCx~kgo$*r?C-8Nul%tEHI+-{5}tQ8=ZtgNFY+nji<+`9 ziFz0bmDKY%5|gv6xVJGRlg_*zz29$dzrB6juV2T{zkXbguT_`4-OvTfy6uc)M@bec z=Bo0pO-8RmWRePs*K_)FCXvwVQy5U`x|O`>C0w37IxE}x`FVYP{``Nz*|s|oZ{KfK z6@DR|(mhsOv(X*7rah#$e1#hbDEM^=l)H)$OA*of`h=O?&U1d*{3SuRkKeYB_bi%U zzkE#vlxRMFwZ1uT>u|Gr`~L6ufBW~xk7NFi|3MI650XVetoQ!$k*KxiJWoGQNu`)g z8u!g&MV8gd%CX-=UEViPqe`}=L(7bqKz0B959N0-i8dYIATJ&BRpvlLg(PJr&#(HJ5mnVFf9c2JpQH78+R&A;cW_De6oM=1C zmS$W+Deg-uL8yYyRS4)!}C5&#DvLr8g#N+bwJof|~^yOWxn! zIeT1lJ-!k?#)odo#Ov`@aP4o>Ze^U)awb(r5&;yB7b`j!B1p519u-K^KC}&+jtDSO zRhgS*`O0Mv`srr#>1oVkXU?Li63VK`$S5KXD`maE_xlFqv;*fs(c=}meY?g?j+jhPphu`?N~lZ;9yjx=*P=;5c-9Wm#$S>&{B+BFer1lrvC z6$W2kzzFJHS~c41wN{lKR?9xy+cvbFzkbBJ%$__{NLynM z+m?%S6Z`x^nMdGB9?_slxoC2^NVdJY+^*;6`tfC%{p~H*nQgF0@RGZ5XQkqyd39sY z>OKWQST?F0S%|ik14H> zw-0jXKGx@x$d2PrkQ0^132vxjVYHrmX+%Xt zEG^E18)s(g!ycaq6C{~A1*_UTlF%qY$TeAnNks?K*xr9T&rgtO8*l?LOApFm-< zG{@Wb2*b=Zmt6L|&LonCAAkMl+wcFyA|hD#-;*TQ42P$26N)ZvuY$0&ZM4>cjNpg~ zMKOU&`xfrk*QYS`+YQ_*+3f;Yp-N1EooB6!7`=5t!JcIY;M4~frFr_Q%u1?4R3zLB zDAV3W0E((v6hwm|fWRBarb(E8#c`oT?|gfEZ@2w*t?6h5#6g@TXxq)MX9A78C>VyaT&n|F1w`*?Z_VNJ^K+f2 zzBiRFBt=c<{CWQR%h##$r~3KVzou?^SHqfg^PTq0FO+NAGY@8kZUe_j#+ zEWnv5Q5jQ+RXed}Lgkj2aRr!oj3Ufy&hu0E@wWdLYRni}O6WCbo{6g%LWFRmNMUBq zh^Jo<$kI0w$s!|iaAzJQZv-X(g*1z*bj~^LpKy>CQQ5rEig%{%-o|gx>zZd$5LSs* zQdOoEgOEzx+pQNN-Tay`=bpBTrYb2QC8LdRdD!{uKi2t6M$d_^!X!j1ou1Ei{PGuQPz%7bOA%k4PyJ_<@?y0JYc zQ8A<}s$!*+R&f+jNtKi^DRp6i8zQ27hT}ROdwcu--yC7j=lS`V$2HewmkG4*zlk*Y40R*m*CZXbXAyBi%} zNpVuXumwa-YhJ!4090^Mxr>YtfJf2y3XqU+Ge>x4 zlte>0tWh~<1Ilmf58!dH)pE;d`NpB)T+O)mrl8V*0ooF#9an^iBEU#7R z6!0|>5+H<_I{>qgwi8l%=QpKP%T*D0J~=|)H!~x)rkkB}oxj@czKwSxTk8vCAV6Y$ z&bIGOx9xt5py^)3nK-X!_R_Pz++-ir3RYR=3mSB-^$qna@3;F!d1hr;s7%ZqAWzl!Xw z|4yS*5?K4~t&bar$eM0H1jbzHJsXdq zSf2CATT(^?X}{q@(MwpzVkG{{x50O5vBO?aBZ~JfS{MEOAaNp)Ssd{O<>>=CTe*DNRu=e-+c|6S5 z`uV@!-u_!+dbU@(QucS6EMo^fK+@m$@&3`rhPeFsB^B_+tz%b_CTKCgD2SyqZ>`rZe4X}G%&Z@P2iVZsN!m2S$1rV zv}M_|ys=Uo59He3@2q9>$m^By@z;r$yCy}2quoUG{o5P$x3K0ba6E0o^}xn{rp#H`!$V z`k7&Ue;*&;ie;WhB!~GtzBn+pkNZFV5fSI-|Euk-?ZfNM8kh#ic#uDpW`%t+RE?>trPk_@|27{~I3dN$#!hNt% z+5$>s%kT>P&Da(yLFJ4}p*LwABsmQU&}((h+3@!UTv~w;DHzg6@FY_1Kske7R&5q> zU%p=UP%f`5%A_nrrj?0!mjO_wiLg*ludFDbD%SPY8gFkmVv2Rin-;ag+w(Xw7kA-K zDCAs~rfn1M9D^;TF_1AAjZtAfXX_u@3AE^?kFeBNs+XBGZ@=Bl-ar3Wx_d$(Jqwp# zMUdMT#W`KI3z$-qh`6cTGB5JL%L7!r&S!ZMgmouS8FMy%IntB?;tZ1V^(0=R$+1vQ zq#_JOr!Mcj-M6>zvLEx$|6%i4xe6!x4qLA#Ke0 zi;yx}#Dw|B`@aeG^ZB2VN3sz`>sukO^YeO~^SQ1y(FUe5OW(ica=P7_EdyG~j4bPY zNU@ZfVO_`Z`JZ2(U#Q-Ab1a~;Qi06$n9L$=uV5fp6@q!qqSd<)wRKM3pyvAuGKqeJz3#DPF{{?Ow>suA(e1mL8s-uDyrNbv@U7 zvI?f_=ow}{DTI*Q_xJtVorq&%eqEpc>z~5R+ihM4gpn>UjpXnD;EZt_qUP%vR<(*m z3q|OxDuVOzx$R^B_%G`@+txAp`0G!VruTPhcR$bToX_LOxZh~Jlj;~Z6_53qcI0XC z=dbbG??|;k76{6UPQRu|i)&S^F?N&!rM=~hh?3Xp zjc&-({Y;q9sE8`gs0@Hxm82zs63J;K#hH|#q#z^%3C5Ca3QRj|oy08Ml{yz^!0aID zqur=$F*A#7Z}Va6cxFcHP4zA^%G2zKG~KqUjB62d>u>$`n_rigr#rV^N{*;?SzevD z-Zt)Bwj_-ylPi2N6>r0{SUSKqXHyjx38SQl>s3K6_wrbeuk|<-LTNFd!7XEDoN#M< zL(>9C1um7L9YwG>7*n)u?{7%)DM(=?A-i&uEwTion5gbmt+JQ{_paPg^*M4Wdx%v6{ z6*-Bsf|NC%6<)fD?mcA|!s)rrDNNeoNRh5e>(`H}T{jidVlL*kZ7e{b!U~|MD6bXN zJ44(P`O>$I@P+GOBJCo|#I&A9!f6YD9}6YbikM{dwGOSQ^xHqa`;?Se$LG-de%rY9 zSLlU|vUW)Gn2{$~Gu$eMh|M#sn&`OSXl4>qfTh`T&r7kb>(LQ@Ue!q0xA%WkqJRIE zDd+RcFY{?Y@3-!Lq+J2o_HQIRagn6Cr!RXP)rfiHjNT}u=_W}i>qeO|mtWF!Uh(Tc z{!{k%KEAE|qAW^Cll^x0^$eRB_vAi5Kb4y7)!T@&tO!_?$u6%(eKGmGGHYz3qSks) zovb9ADm1Kt)u>vLJr|yfDv7BN?n7yMdE54nWBnAmTU^htFKWU~bLRH8mlZ&0tyBpR z77@0#ay`mQ=p_~w5lup((oYPfw~^~<;UyZoBE_$-al4KC{doQvzNoVhdlk%eZ1MSt zKw9>p5Z1nv*R9{H^g4c_cN9lfps#hhJ+i#_8*RfmC0ifgDMP1~!7HyKerLB^Wn?Z({Vd5Xw(d*{|gdIm8`>#ZpL7;R_P zZf+45_qKg}(``4anp$2}ST@~{>v)>i*!DK=GcY4jXl?YN;FnA=Dxx?MgrZnDmz$Q%H79LEh**zWC+{~> zXy4Xj+POq}Z(HA`_xoBua|K(B@AupLKPF1Ltoll_b)DwVZro+dD#pfWFmC&Hdwcu; zv-BrBvMpJbEw)OLy|=2Fo#MKCWF(Wo1ONY1*d$1{_{hx2i11q+GgIA#$g0?|=xRd& z1q3R^nsbb{El!s}z)fU%JKlfU*crOEpRdbr$k#DP+tw7dS()>EJW*Oz?VrCS!0-!6 zr%l!uA+^(^+|4W9&nvB@Z^)9KaeCMYGeQ9(l z4@E`R%qz?)lTe5nvINfXna34&E%H6g(ymO(VjB(x35+&C!EFMhwneE|`J4t&#FCcv z<>R}~$RJ@L0I0H2#U919ac@9?nV}tf0t13jYv2ThVKY6zXRw!$uy7$E1q70?F4z=> zee4lYh+hLLB2^_!1fZN5HbF~BtE37MNu+z3+ku(Yi&%vST2H<~dtof3o(OIe5r_)0 z2#`v+nle+>m%{}Ez!S3UdH@)5umUnLckLTklwiR~IMz4*`~UIZ_xE4>=jkQkNuAB| zI)V^|SAwPD#7KmS$S7~OwQap`EopMDxkqJ+_PA(@`JCZ_<^(`rfsCy33m{2Fb#1qMvA8F2lLcg1El;nBAyp7Q(*r^2i|*YU zaw_rdAHT)4=bwMsqzbq`J{$K48`ICf{_^81N2|+r-@d(IYhDb9qpr&@qFbds_dlnN zz#vgTh9a9$&{(&w7=HM$Oob#YV)>#yGa(alU%mlmQiPfIRa@7U5%WAhe0&A25-XN( zcUf1PN7{~+;1g>lRIsvZ6aw~6LhI`fZZGFy9^hWX>wG?JI23aM0ZUtE1t1}au(p@& ze*2C|$FI+8;ZHooHn2e2nwshk8mfbOcPWr_KEE1oj??6S=wD9 zUf#aNd3>Iq_HiUpZCS&_dCyK&GlH_oXe4o{sH%)^ETF9vKqknMYv&xz7VKnMpBN zP_&D7UGCG5$oDbd3pi0B023=Ta-xBXvP#U676^F$`rSrJdzGd*$;X+f+yosmC=IX2 z!|ec?vJ!F63gLybMHmpHG#DeNiG1-Ak^ra*q6$Ho-DgH5`WI-IDlv%(YtC88;zBJQ zvLXq&bp*8YfMhNqMnb|epg%z+rK69RZeG^7PAS}SjM$SM=k}a|_ zf{>_@+>qM_`16ht zc0om!6KPu5?g&k9D==nV?)HU#Vl06!ZAHv|-^*-yS+E-d#(7mb3nPMVtG>4D+;JS} z!{$KQ5H;+}07eKvSY?-`6K8dj*2xV)>I49p`w-HEG@MCAO;E9_hF_?h6N@p-OVs8m zy_vZO2Pl*lARqyfo5y*PZ0NH{3JWWsvLcq31yGi?Sy{$Rp9aOZO{gj@>Ip$|yK%ek z^MYa8?_+!xIWJVn7?K6xMx@$Rv_Ue!u=7NmF-8Jl6Izg3Q(TVcAM1N zZ*lp4J`tIOg=N|kz;Cy;d`1u!UHhl<7Lk-mf{;moT!f|oGl5Eqv;je!M_ewd<^zg2 z(B~|=NbiV*=(=&*s7md(egB z5l(3Wf#{C?wGwiSX(qUeN_O>!(<-`9Uo|~~OK*3ujI5aH`IJQ#SrK^MUKyb*2u{A; zwQsWCj`^7LBhpA1REyN3ETE);EU2qcPCLPh7XgT}6MbStWdaeP6mV7Z3$Dj7r;;0M zM_G?E?9b20@$tv+ zU*G2ZkS53&t)R&L$cWZoSG{d|ccSHf_nK{e^>`lp=Nyxx&?1<`YfjrC)29KjO&`}l zZUAgq2-4PXqU*Z-1aR{mse`21pvD2_fBMZAylN3RAm7qB9%wX0R)JY9_W%m zetBXQO$4l*Umg;-J*nFI$|~f50>LxV!=Hhjg3yzZky@Z70f}Z_Faj$`o2*NsM0iAa zcp+&>}mjob?kTVjXA@vxZVNjG9p0fxLfmwwYKwy=~@bk%zZ?~VQ=<~ho2tOkM zsbek53l=lCtfA5i9O4Uy2~`<3u@YFIQWhayY(9%6p^oEM&cRLBx9=X}kF$!9l?BQH zvANF}mli{K0hTZTK}xwOzj^KFuZJ)qD`*UOj$=1Buf$CB2rD8a5GEC6Vkp|IBI_(e z@FFH&5y7!zlNOF7%uEYpe z@M?(6#lp zsjy%&L?ZVX>DL8~m)Fk|Nx zZ2$brb6k(#Wo4GS_K&FS+gnYBM7uI9KFGt_mUf%V?CQUCUn9V9vEH<@CWou_96P76Fs$;Vve&dbXf zzuXNxsFVN%HO^7yNCFcP1T1rU_=Oc;YBT9X*ec?`qU1iqf*!nONu`EDcIwCIB^ExHU{Cfh>mzCPmO=HvK%X5DByiE7~~bsA=Om zM%bqy&hwo6o>2geT1%IzQr!x`-AK9JUVNO8$V4STwr#8xM3pz0w}%Tx$t`K(~K(!1g;2*rN2pUmDPr}wjcr``9A#m0Kd2O2T332 z3DKP*VCu4B?ls0d56ZR76K5$_ScUn3xgS-r-tRUqW`PPQj2Oq5Buz+!Z+@L|Io;N# z8)?sJ+v|6V>)b!_G3CAxkROjLt-s#Kc~k_T0x++OtQ{K(uL0A*ul<+sMnpv1aN#);|k^N)0D0ByS?#60#~T7+ur zkscJ-P&%?&q%lT1RAeO-iq9D}5VQA})^0HlB#XbCwr|>Rg%!yp z+ZP3OUKSoT0<&0z87qL1sDN2S7sXB5i?(g-$2h|RGb@8&%CNLQ{-f;DwYBX&$0Q-B z)6NIBAo;?*ahg?`v^xuW9DaRJ1?~^CA|PE~Z{L3Q^))V^*BO^PI}!6m=i_~h$#N@N z%tMgvvcG=)&$MdG-+AfH)#p`VU6LCnnLhzWmLulbZ+rGJ~&bW{eXs zd84KEE-fgLH3CF?xUMvTi*ARs*pvl6%jv6TlD06+m$c-SC7YK)$CJyB5F@?UU~iV8>1%wkZ= zfa0uCl)zdxl%X)et>52@#4M0o!CAyi4T~@{Gbj-&5x?*dOxSZ|8WJaz7fwhgMFOHE zOexMxw>bdF$H}<}b=4&rk<;hj z@O(VtA~z!h5Z-?K+o(V6^7L7l#GH0ummD@u7u0@xo8ggr`Sj_}zlO(^aWOS+9d$US z&C|w=O#FJoWBIy_VMAo_7~$c;g=@_qV5llTfe9Jrd{(A?P9LqU_n0Gtp`;Mf3u%&Z znvcgv#RxYH1mLeH6DRin8rG9QgX=1@6inN>p{~>#+36JomE0SlA_znhYG1bPT3t))OGpZ zXI3C6-{!Own(o)*BS%2P@&3yNeaYT}`&(OY_W6J;UK)Ho;3dQyU#4v=z~Yi3q)ICf zX0>q6JfQOU;j)PC#K%+znx>(zRu$+@Ei0BvpIobT^DUzU;Fm* z(*SR-ZvWX~wRs>n)P_zZ&Bjp1$ocK>|MK%+{#$X-pL)*s5ufgY0C9~VzTS6Ou)Xw% zf`SCvADD3kzB0IuFkaAAf%TZ~xbfgLO?OeR-`(C^7v# zk}x?fL!xU9enE+ljq9+$_NWh`o8K7+R#b90{= z$s&Tt$_U}}BxLP(mF}n+bJ`Bnq^-K$q>0bTh^*{LGZG5(>!68`1dQrJ&8|@#d}h!QP_`d#{_P(dI)rCsr8_i<1a~h0ZXF4MTSmorLTfS2o|C*t z?*Po}t=;e2+xO>R|4hipC@yHSefx2~kBsS@HC+&3j_WajfecueiJuVxoVf%q9VQ3b zF`h(;%^?#K)|c<)7h$DS5c#|+G9##CR3YMiebTzp!t9i@uIIkq@3MW5>nL6-vBr?w zrrQm}^!0vxIz(kuAras>_6!H^08?2>Z_?0WFeO2vDz~K!%ug_Aw2*L6AW2MjGCxny zsm$inj|WKg+fBEdP)qI3YS-oF6&dk?lnJf#3$+ExEiY)W+}zz20WQ%Stm|b5qErF2rESg5YWgOwmmLU@m2QJPF}`MA#o9z$ z`9$K1@^nZm*zlaazopIj{s3;|a{vAhR`Lr381HxRGf@F_S(ie@-uZS1&zi}b6hp$~ z^=0n6S3*&_wYF_9KNXu_7gQ1fh+gOW_U-lf<9}m@RfR^zksNjmTKL}I+PXGr0eS52 z*W*1i!x%7nZ%tcU-hj}?6*&S13S$139aaPnKkS-}9Z@q!g-LJWGw|8h7jAT&`#VD6XCk>;{?622~T+szE53sY}P(;I0caUyR`-Nm6$ zIm^=1=T&28T6I}~IOk#WES!B^`*z17$iQv860#<8aa*SVtUy!0w+xTrk-%;1+l$Bz zP&|hFQAJrc=0O)9w%GZIXJwKIbHf6!1EG)@7&095i{Ve<=a_p` zu->$-Kpf-)j{W1W@w5uj+qWA)y9HTtIgP(}oU?!2yJ{#iA*_3uL8#`DCHvJi>*>=jD^Q0GVoK&;Ys zM+6mNYM8Sk=DeUVXApFNhP;l)RBknWzaCdZC>K@Yo-B30vltuZ+zZX@q+n#GRjP8@ z0~@r)Saa+jBcV!`{+iJJ7)8@-CSpP*6ca@{3Kv&~*K{C25dcbu#nuHL6~~hAOLP!5zGQrarwNaU=unSQzPEr|Ih75`~KVCzuo_i3lFg1Ib$P?MEF*8Z)kpov$_=WgzZ zI@38vp2r-!pHFH^Lex4oFZ}QeAp7!qQ_3U zh50-l=}Yov$|fDyxt0_((m71Z673!DsFH8c>Ma0u4}OYNoJvt z-qy@H8WH%IPd7sm?P<@m5+SipNppd%%YBTiG6>WoAqj+A+Zb=XZ81m6 zsoN@z(jp^38bEv@lG6b)AsQniAXou6V!>=L`d)A*{M?U#Oz^0n;p@+U@7iGwx0ATZJK0Tr)i4ayy1u5@BZAoNZ~sR9x=H(%aH~ zd;l`H9`iAdcPthXM9J$jPzcU-y}$kUzja#Y{vh7EXtd@Ntvque0XIS}RLqD9$bupQ zjDitGF`wtG+JMD$B#^Iz|=A_6kKg4{a;yZ9I0E z6T&fZ+1>(EZYw)N;@J1#;Y}$Mx)6r@RcG?Dw6;Uf01gN^|MzzN0 zUIfBbDCGs2sx7MgypR})p$H3^yDV+`GY&I8Z|gT}oTD3D ztSqZ>@1PBQ5@lgs*S_4h&%ge?kbF##&LHdUjSzHO)C5zwBm!-Ge*F9YhB_NBskwds z2Vz{mKR0>taw4ugky&TtdCuo2VoyrwiRguj^^!@;PkGcKbQ~VRZlm^~P<}T*@r23sm}7X)H)(O`2vN zEgVM{4KuUnuRs4kDD(S&|G&xW|2XrqwD{*=F)`u7MW7X8l-C&HXpSR!G6Ewj=>6Mw zzQ5RT6tin*j5uw6{Ho#lje}bjw%dz0bUbYiI3V*Pgz0D4bDSpz#5o2f%u8Qi1k$7I z`H?)A+fB6f?Iprl*hXBRJ0!H_78WscUdIBm-rp|&IRE&}NCZqPN4(~lpFTg%aDP1B zvB=`=x7WUX%fM;Q2-Q@UCCBsHfBp5JUVqGUp4U9Ni3)aog?cHoOt9yEeEyOf%$Pt> z+^_Rm*Cl`$sJ;C_fX_evoz}m#woqSYJg_e|hsRu0E2LDN@H%%N0pnENGNLaV-(Jcb zo^$$)=_1Q`o+?5pb3go?$W@HW3`{}U+QLFLjRM;CB9vtg1x!uoHvDwElzK)aBvg=0{bX~dM7RkN*k1_Qzj$MUdaj!|KK+t!yimbIb)qKJTR2m^}4im9`p=a}viP>~DC z{kPw4-+%UVfBe7ynNX@f(A>`xV@2qhp64J7j6_Wo(6y^V!~lSr&Wzy2Owg7nvj~id zLC_V6#(qF+_xsPKuUs&Xcf>~E^SMV1^a6K6M#hK)Dda@tgv4MJf&d~$#&XCBhprE2eAjy8`O#CAP23BZf2l6^d(0BPZ6t2tOP z9@jYBCDP377@v$8tw}*baBJ(VGhm8pRY4ldQmHm0;*wi(Ys+nI{pUO&#^3@Bs0bov z-c%Q)$TO5%xeq^xa9K8xsDNu6WDWYOw7aga5bW2pW&#cbB5XCt*+GO+W2Rk!xQO0G zTvV>>@ar!#!!txSY>C1i2d_)c*1NRrTkmA^@%jEADd0{;$_TP-WfyRj4I2logqU9= zdN_x)H}HxqM2%Sl3dR6PEK(~km{HHqzdR8H2pKXHr{@p>a^xVxxaOE|yY1$-k zZpdAt!tFfwC!*8@?rU#%;?Avmji{N)e(cPPcz2tLM(e^{H7zR_dA&Z~A)>7ean;rG zx)$#E@-J6h=lBRxM;|#k)YGO1F`^kz_18DuwhS2iNyxgknqE~1RWWnSrtN-Pdtb)> z5UTat3R&(W!;y(Qvo?ZWFvEj{v1vd8RED`7ikng^l38^nFlnPk#85~WB9Sw&oLea? zZMSPbug`;Mp(rZ2zkO@{w_|+n^WlL+=oWTf(kn3$LKJlC(pzE#aj-CVPQ7j4misNh zzg)l51~R;C--Ypdevq)vdG*hIjw>RxFBmT64jvUjqKfZEuroCvnp-@-pL4-p}(m`}jsb#=4x__f?`SXz)aKeGmL^Bg|G<`LuU zOKi6#z<`RI03$>~5E6H~t@`a8pFm0zh*9`PQ_S`O<&ibA5`l=hRX~{m5lCfRg-%$6 zAS|p6Di8{w0JF$R8#N8DnjTT8!X$-2ykJg*p?YHw3djUfk%j@&$6*&Z4KSz9$VDUw zScMst9-xdu7zG%>06mju)iK5skrjb0tHN_afh;TPQcyOn3S&~1h;UM+h4j~Ud#P&I=Q+{Uc}iDZUxW%h;@FE36OjaEp>~to zJ<1b-8cBixkWUz+wU@rWJpbe0?C}IHE(ElAj>JZrJpTM&Hm|ny?e-d({r;T*%%Z>i zD1^v~5ILU#lsIjCa4QrgRaqMBki}W?HOD1F)E1EdrOTcBGS36jl%Ns+^FRNW+tGh~ z*Y(@$-@fhd-yeT|GG>$)Lc855(9g*w1yO{S@!TKf(4p)0vVD6wpQjJ=eYc1>P9Mkk z{7lR3_3zMDFg8D{mGC0aY!1lbZV}9(iHKAr>7GovY<&jfcM*$QE0Mw?vY2&!ALdwfVx?Qs>7#Pa~ zuPVx^BaJRYYBLT9&qsRBwr;&IUm820ZgWHoU_vfW63{9{RG~G)3AK|DaJn%N5LE`E zL*JISAHp03j9*fFktRr>i;$TePZC_d{bpwX2mpz!Oc-E*OJ+1#E!>SD6%(t(GO#FS zmI5aNS6xw&%4-=2w#Z1wSzZ=xYs`sR6&`c&vQXbRf`CayNYX~R(}qyW#fx8K0#=}lv?TCbl#K=N@eXFRd=(pFp_T&1KUS4m@%i3S( zILGskaSq3<3J3vaW<{o`^5Z~lBrI4}1hN5AK~+gqWkh-;7@#w7O+oLRNP(G`=!%Wf zi4lB2>swJK6=7?P*L-qOkp`8AO*2nVA3jG^Ipzefd8vr7Kx?$|%o+a3%yWNcM2u4u zS9!sxW!bLB72|1!+?XI(nu9lyK#KDk<2W-BUTSh#OVO}_z(}ZFG9~S(C|+(634u9{ zL`g+e3aq`}E6?%-qyqMsQA68;;qA7y?QZAAU#r*0c|GFXgY@?E8y27yHHl0>UhY49 z%uK%?gB$9)07lkK3vMXO#>|8!OgWvh%*{U^B8e!(<=3Gi>&xFSdmQtl!bm;*^ywTk zWvQ(6B6_7RSwamk6+|i1 zfyZ?QT(hQN%PK_`rq~~4xxC(QuRq&uef;%1j_SCT8WB|mfML+4FL`~I;;_@h9NKy9 z0y(aShf}2>s%r0d);9dC>8x5Z*J}7UK5SUHn;oSKwa!)~=Ho2X*4IP`23#A{ zCYW}b?Vkfse)}oP#_8k$=dr(6dH95aa+kLD?Iya8 z=lnJ7jN#!~;8khoj!fD&U|4T2+slj1N5E*e&VXr{;ySz$OrCQP4G7t!s-u8(mX0EOGek?s-G5T)I3U>V_cT4DxS+1DYTGOQ>P47sYR zfTD;&p*W!m5|G2HaMV6^dC_h299ooa{l4ZCr3naVYnaHrVW|7z<;+}})C5Q>E*e zA&mqqs<`%q2N7Ygkj$!a9=dG0Y={a;5hrRPE)c-X^ZLM~wzP3R!iS&JOV9Ccp$$cXgKhLm}8!op^A?^9(rU?{#Ft5D4lCG@V`24quvoR2$pb~Ie_Ltkd zE_W-#xEwdBD`Z^>*D($Pq0GKDf{N#5kN5k_Z~g5%E$d&u{@rX+dfPUE4u}~J6|4f~ zKK68mLWcrz|9!pxwk)^h`*#2B<@)FEP*#W; zGo3sOO3d9jU|Ug^YmS+=2z5>$J9tW8tI#~H(z{Gd_MI>a8!-0em5CXJgKVEz6mCRH zx9-;yWx*2ryq@pBR}xZpv*Ys*8#`euNQ;Y$e*W!WZ*M=2&qw&o@ka?kTl_q_+~68Y zZPt+WE%G$X_Wezi-v8IXhr28*wU%SpuyH=Lz3^Rhk;{K+D=Uxvq%P?dR}df)d)TT@ z0eXM)B>y-r`$!O`*1F8U{u+F~{^MU4eId{@xN%%n2(yG2QaFzf z8&?2*A^Xyg`FLRUWJT;E3<%s8yY}n60Du^<5n^BwBC{}|gk@2*7d?(0Vj^<2jNxIZ zi>7hRiH)EUqM{H6O7EhSC#4_4omFxUARxeqGyMSmIwsBtikKPMr-z!3h5QD(63^Hvi3474(6Mz{TcxUkX7YG z+P0M&5|{hT8PudmD**r#s;#T&f`w4v=WfFQB%?$ZX?^&NJTtEXRcu7%o?o>+2Lj6( z;nZoSGawNHAT#mGOak#1Jd!+Fuj_r)dq!Qy`_fk!V~kJkZ;55cV|jU7UhkZQ=Y?eB z9H@QiuM7?9e!U-oj$|afEWIxhSB(7tpzx}wjKp(CNo0@X$$D$sW@CUM)xtHiro&ah z62!6*vq+B&30>FK$MEALo{#WB+ba^0a260YWyYj5A0v*>_e9clm5zXO93O!O(YEDg zNC^{%Umr&-)Z4uX{Jfw7nWeQ(EAkLQpNEf$y17qe4@1mGym3Q<1|z`*p~}(rD*;7T zn3R!-mW5!7c!1otR z9M9+De56gG-U(sZz^^e9fw&PNBoq};pd>D&>0m`mTe@saVDn&~3lY?msK&&-4IjtH z`#4W1i~>L*b!^)1cOr{xPCp;#MG4S2$~}&RBtXBO$7jfW1qG@Wm1Y+cF|`DX7zkU~ zHRrWI-^X!z6tpgVfhw@s3KJ2=bL4Yewm+Y4iO!r&T0>E3J$<;3vYF2(qAf35yY>0G z+c@0QX8|;%hAhn5`jW8}Hbiqj{4trSip(mifSIu}gSE^0`g6`}T<`OE2>iCL{|(@N z9*@j-OySl%{CYkzM0ziqkV7<()#rl>dbh5a z>9@=s5xI4MifdG5TW@7Jo}ZA4*sv(C;bGcdfs{LQX3WE5CK8Fn7l64cBB~}*>h=nZ zHO{VgLWVR5Lnfjk#(sYz+|JKm@r<;n2@r-!ytMKOHKI7@$zi=M?e+!;d2w^t-ZC}40KMasN*9vKB?HAhhsNN!sd zAqrHM`y4w-$W4&Ij#G-HZD|O&hMyoLOM_xU#EQ1GIfkVHVgMp4ty}A_$V(*xsPHo8 zfto}Fh%5^u5EBx(d$|`hfUeq9`*=PT78x~9XL4+;T|g5li>m6&*LeaBrfz{mssyy|s0H{Q4&*qHdX|9aB0M@$JX!@z4Lbzy0|B z;|IXu*ONSvoC0H9&+`vRBOyBuSyusOR?kAV_U*>^Hr|J4g)_sN5qTQ7g@L_{iQVS& z@a6u3$TqXg$VY-4pa0L^Uw-`j*?;@*>)Wayc};Kkmyon$==w^r5*ZY*2(MfCj%%}Y z|9Hntp#@0-2~^wn?=Xj52h!}QNZ`*|^Yi}poiN!TO0WvChtHW;CE)2OHLl^;b^H0> z+#>8cpARJOU7K!koyfGle!Fd3Yt1vUeE;~Y!V&7nB*3qrH&9b$y)CR*cF5Kw=sZ59 zZsrq^*6-gyKsLsP^La60W?l1We5<0iz9KXLoX7Ji6qZ|S+s|(kpZ4^O)8-(;WnG{s zhbMrp;#qAi9~4+s;C4dmbr?$PD+x;?M-{0S@|RHA=0O_Q^T9Z9d%+|n&2*So5iuhm zqln(uIet+Js+u@tR^yn_7`1PHx^OE5_u2G@L>U(%v2t=CGLvAb^v(=9IU&PNFbBjU zPWQN;;a>}>&(FtleQW!Dks zU(0%Hw}lbFhhhpVhR^*^K%>@0DQ)bJ_h}DOjPQ(Ld4VL#XtJ)auZZ%`|MmZ}aV%{` zvmD-U-?4QxnA0=5ms)A1)9oi`%dFZ@NC7024n@?pEU7J6farjUbpZf3BqSiIf*22q zb?b{RV(wZ!;PU4P^8zGh0Ey|qA#1}dp)TCbE-)iZB+N`C1}dy#Q9>b5ZLPwN&v(8} z?TthcbY44%QtN0SxcWX(&oB?iDkR~?tFrqz9)JF)EIrfnivpWTD(M#Uia7|CnrJC< zMwkDpcNflm=WvfbEn`l?OLYbAg3830F>Qnu6sp|KoP^K!>EO^o*G^Os2NAYyAq2O| z$b>9{IgdIgP=;N00Z9|?jTcNPuHheJ95x@!6ZB$`Ws$mO-?p~N*q_+d_Kzya^RVG` zdl6E>Mokb97pi(3A0LU;wnoZP89pLhXzTr3NuN23kcf#X(;)$g{5%GETV9ssR)r+q z`b*3Qv4jm9zZhQ`G%1NumX!t25#~ffOa!Ycz{=vPth5<%B9Q>McCVaFz+B-cTwwV@ zy~wd*#a8FI0z%ts;T?FjZn;kaRQVP~b3V8?ZvAV9KF=K~ z`pc_QqfPuAeOYXH~F> zurLyM)HUHWv_Nvm3u0gl<`Qj7Z>@J=y1bmqGa!KU4sD65WB-ij?DE!b4dL)Q{g~hk zOeG|#V3|>IIkbra#0;nig+$Uu+jE~>{Bfip3mDH5lvTQdf@Z-cxT^b_#IPALe z%Lxbo>4?ZIl@V@`F^(NGm)BML#zKXakz;>`BV<&pwCo*-WDjp z)Cx??AiN%jT@N6$K`a}}>BA8b$P5DliQx2iRW47PBQ8%9>1!ea7D^C+07GG!p(=1P z)9}gJs0*8U+M>Ng!~~UdMx?j(jX|PCmX#CLcy5teTEkKtup#$9wOu z)ECbZ-iX=uPbi=kyjI19J{dPo9Z>-Uq7aZOV22%-2;qec3fia=p~?$f2-om{VY1xT zm*3+351XHQUzC*y%EvrDc+m(;pB0F_hO>|0oN0v?IYyqR@=LPgs1V<`&7+>j2cjZ*UPEM=j@Y=|m-`#AZQFNZU=8hC&f(MA zLOH!b>wRemeR~}?$L9f)`h8JdQI(6v^A}OB%SPynzA&z~d)wa3=eVX_!vk_8ens7+ zi|Dew6?n|(5_WxtBSzXf5Pe+l$MXY{QwmW4NkxT~@3?+{(VzEA_v3RPXJ(%Dg^^ZH z%y~ZS7)b%3*L6f>#UL|r(2AMiFsNFGOh_ zDs8{YMs@HE@JtNu%euY3z|V3jcc7BWylkJpf7RLJnn1~-NmV&zy8~eObf1KRDv%X6 z3Xz*26+!W`GBOs<^Vx1M!Z7c*zTPb0+V{E7+|Sm#a<6c`-=%ec>+?VVcVUUFx~&zN zNLbn0Rvoh@lIV8J>$K}SuWOq3^>uswoACWS-p|MH4ALA9Oo$vlpbFFpxGKVCn$Nn5 z(c|)Kmqnq(ucw~_m_;@!M&<&oYua-P6U*xRDQ{etA+(%3wyw8(Vbf({ZGZzOLO3x- z7PArqB{S=s&P1e)0SM)GvQ{D&Gb+c|15G(IduCPoyb5AQuppyQq#aM#7McY&c{2rFSj)*=iH|qsN5(5+2Uj+Qt|7|Ll!!l+4D01Q>qr7dmjk9qzj z`{nscXuaU79Idb5!zu-T($N2+#PG_ znmWIxltL8K{jzia1WW+L3CvBnF)gY+(A=%;%5>DIJOK1eWXzfFr{r}uA=ws-Vb`7t z>_x&@Kvg7^h(M+)AdKMSxDo~nAQUOm0yx5XRu3jZG0!I>Rt2lHZB>zkD7h6S60sr{ zl2yzziBX`^gA#fZX^53Enly$Un30YwAV>&RIc?`)E*4t3F99S@MK9C#1QcBCaS~8u zA~qt)l)i3QTiClK)^PwK3wcbp6A1{VvO|hnASIzNVL}2y68=}xy)r3C5Qu$Vl_~eP z7|*;O0}-+Fx`H%i#ojy;d=w*d0)t%#5|){8r)VGocmhG>Omi$CQ6gQpZ>oKcE199S zY5O>LT{cWqX>QYFuPR7fUT(52#R6K?ZetvCT$NL;+$UJ>bx_vhoU@i^160iRu!v|Q-t4M*4ZpBl+1GRnDrG`Q+katafGcejga~Q7Ba?X{I>v+`1e9z{ zU8ar7@au{(2k)os(>}-fbRRa3uuPKHULmN)0p*AW3|Wy7phT+zVE`fZnkRilxouWe z8t}3*EX0B-Iemkz9JR?5;8+g zzpnG$&e4DTRwC%mx@q6$^Xb=-W6}a75|MyaG$IF3MopN8LPD*8h&EO;0Uw$h{7NA|c_%4M;ey zGu;XS06%~KcTpJEU)cTzUVZx(jw2?R)AG9he2X)#an6suOo=tCkTS|^761bv0+$t4 za&G__W>99wuVf`*q0R!Bpvwa4J}+JGlAX9A&h#XttOz@58ge34l^|f_1rWmqV5WhY znLXeLNJ0__rvjDUxR>o2k>us!IVy_jMy(Tzk59(RFigths&V1{mShalwr=Mj0*4Xv zSk|9}eZStPM<$RgEL!E#yKK31*;;EMCwkW6ILPhwz#?ZJuKcB$B?U z_SYZ(n)4cucV)e8H?Y`0KWlhfzG=HLb=H3FkC^+i2}=>e_Ty*nv){BWZJJG+)2&cb zF|L`_b$J7*hBWfTMh!*mUGlHAm7y$tD z@rm0l%teJ%>PoMv2*`|x2%1r0etf*oIQC!vT<_oe>-Y8bo(6yZ&;OZGa&Orr$UvGO z7a-0U^Savoje5&r8D;YTWHJPdx{IzwS&2-}0AbVYT2*G6nR|Ff zWdV1!m_S9WSfL_}?$eTvj1*omssN8;_c*9GgaFSfC=BdWS!F?~z`%%z>Aq(a;DUmP zlu!tncA|^<1qi8t3t@=aMHY-5{6a9|4F~}-ukdr{Vr@5#jO%o~#;?K9yS&M=*$8TZ zTlWaRcBKfr%BF5Nh(XE1>|sPu9)XF3Ohkl?L`tnGNdaYrwbuMNBLfhZm)pE9VopV5 zj3dB@=&H*yt|xNbUvKNrZ~gu{kNxrIf6o0OeIvpz&{lExG_sL|P)4$WFpB^bW~lUK z>)U-A4MASm541%cZJ@yNj0*_(ukO+Ch%7`=1K}=b*gmB@g3DF1;AT!Pg%c4X^ zAt*?9Q6VZjALIOmG>ItFZR{At$|Mjz5~?+^>p>k}UjH%A2WEhHSO6jQ_M<`hva?SAsN-VDPh-vF~6Op7_(N!p6kyqMG?%{6I7B9cf4@8i*p(Ir1Ihx*B zoB5PwA#7s|4@AUyo@PUsNgMznW@-2}vmBC3n$JlA!o};F4w$NXBk)M50^q8eS%erB zhT_~6tW+^vi-d=Bgtiq+64LyD@MXKnx)#ncuc*jMRMNFk2fq%7BU=I%P;qZuTwbIM z6!ZCEX{7>96NKeXW)Q)s%;>&{4HP2wnFBl+k=u*N7GdYLCk9CoL(GYJB6g9^%!G;p zMM#2rU+f&Yr<5viK^s&F37}PM$CDGbm*23Smz~9IHp5){%B+~p#zY5X)Z2oE;Ran3 zbB+_{ET1I-5g8LiDEaGiZM})uF{rQ7TNPPWMxgK)xPpLDRuJ^Va=M^a%*uj_tRjN1 zJz6_qXI)kTPMFiDM@V0^uXa69!R$zI%7my4se*I^6kfXIu!&Xa?nDIc6+=}s0K)AU z7ae|Hw$BVF7N#!T&?()0W&sjtj2g!{KX=)`2^ z*)@Ssnu1__^?8+PZA1cvh*|;mc=~f^-InbK$y)wCuR}<*X~nSgfPsxfH{D)d-~NT7 z_Rl}h^AnZ23d9xHiI~EOdxsBtnb7m+KLJr7KYD!wurad7`b&?|z(>yNA^cKti7bT@?qlDXCB~?doB)7LwdNqI%m7Fb;RPGpzp4uq5O)yqF<4l%Rh7@dB&v(~Ktd6r z-V(AP3c|;k*Qh#VQ;MjVQ~;>72rp8RHV0B^@7#b~ZJHE7K_peON3?dYs<=*elh!H{ zfe6IR&M_^ZK$tpHYm4#<(rR1ULWJQ(z{K@6`@tlc-vI z1v3)9{rH<|vvWLt|Bqw;z-_^POH|fgM98iSh!T{e@Vp+Fe*5_%>+SmE-7ONyt}Bah zT~QYVdVD_3$M*WIMHVZ;-R!vi{MVWlW_CTwCq@z|%eHQ>#0yfQV$3U@sj-dcw4EuW z&@0mqKTj{0Wd(-YWrkMZ2otIUfvEU=NTuTm+?Ew4ST zmh}yLg9KKLuuQ9pVv01shSEaID(wakkKh08eEf-!9en%wFS_0OhdkB#xbvB5FzPeaiJ_AnoOudYeNw8;h%q&A!Ly*(i&^K zzrDPE`wg;nYRljL$FD#C&-Y{M@(qj2OV%~>vb-YX_U+aEa+{SgpU+}S1X8In#&HRM ziCL6cMKlYu3^9=c7y!lVinL?^2nCMvsw`${4JXA&BI3@neD^xSj8WVJ0OV^!%_?)q ztO`(t!mJR{PIs*IW2S}nEkUS&fDIg(Nfe?+Is<6is<*iEcz@QFAV`u#SGc835Xv|a zYX)VdbSfwSuu%gPE^EjLL?Z>VKyL$*G@{z4VlB|9A{e^ zfFRNNe4PLM>-q6f(ovTx&aWWLb{EdJC}Ez@Pvk5tA(6&ZqND!FFzqO zVhVJ0j%i#ytL%7Q*B{6GzY!x8ln3aouxI5wPHA@%U;&6x7=>Qp2tY{0Eiml5GOKX| z>_9r)j#-k6rSJQGotI7VIkKn_D;%IACl-RNr72yMbe@MtR9L1U2_faQawx2@3ksx> zuD|ihS#Fn+a1r`^LISI%5Uqau_BziCU*sgM+s?H?NrpWG{yvE$ehyW`x8E+|QlIrhTpybz?j0aOv&++i5$BE1J(BtT5yMXg~9kzlZmkz}k@ zff-p<9){ICGNyYEL)Z02tw9!43kVD#k_2WfY$VzUsSvzOM5tqlxmkh{V0l1TrcqW! z<<~;3#8Nm1A+-J)F_NVa$MF>HkqC{YEqESPRtVfQ1F}4;0wyBrqKF|ZK6VV$b?e&_ zKBw=~_L=*!A8yh5D=7{e*PnkDTL1sk^sh^fEJ@ZSrdw6b%pE{P=BZ2142Kj_`2G(? zQuxXA*IiX7GXijTGri3Z)ZhsKi4b=))xFoc-*R54LijpfZ4{xSM(etsa(#Wvrni1m z(ExMnP7$&EdMzGr#sj(Sw{5f=WgWl2&$-r|T=L#Duh)tLjXn|Ob7|ADeHL*9;_|Xr zO=D-u^0+Fp41h9NL`j^OAcZdNcH4BvEL1}zU6GgT)^7Jd%IkTY`8r#_E9Z9GxanmG zJTtuS`{$3pg2a5Dc7T8q1Phvo4j!BICc~zmzkgq^qiD#sgBrQDv2pRb4vzzG{CStE zoabvD&q`u+4sO!xF6r)bF$siF-Gay$u6eFM*Lv;p&_GUuLb@b{=Lx=n%GSjM@>+Hl z5p>rvipc43zsgv)!W)XFkY2X*2ebD}F4izK(W!ad8|XD8-zD^3{=DeHA)2DesaNy)v{y6iN$jiyWi;wqy`67Etx{342e zdr(kC08T{|QRi2-8&^igI*;*VXMi{)aju!U+Sp{vsR^{>R_0`ODh0%aM>SQHv680YTbgCTcvgJjWkGZp4S##y+vm7FZVy&#=AWli;w)ec;uZ3j2-xw%V30>Dq;$*t_pMSZ3{_*(u z`2CN6y#D;}Km_7^orre-<8S?OXBDf+YYLQl3lDUi*Xh%A7xOdhDb*S7(CEQu0-yYKXysq>2Yd*bi zowzZI+X##2zy9-l{vt5Y%pHp=s_9l%(zm`dM85v@Kez4k_LqI@EysU+z5ergel_kZ z&Ya&RwQC1KM3eTiT;CIIh_r|kyc7r`DOGJMecOMerCr};4)EA+>5`ObPK}Z3wvr-i zAyLXqiBeJ#9kMZLrDalT(B*E-Uvickd#5LHwxi_Ut}vE9b@05GpJ!-~lB^0=Cawm$ZcqV0VB z5^Z{G;VNyg_5wu`b7!H5<+S|2S?MJv-YE*@M-Y4z4%<;pO3LRpZs8J1a`9C6k>`+hIh zDpKvq4yy3kbbtK#Tg0;CpbTcY|NPKR!{&ATx~|{mbNNekACG;-aUTCnTD^6y(RUqi^JU9pQBhUey8OH{vdhpmM0Bm|`1*BRhi5eX3@a68 z>U}(-qF@FzhB%gy^C(rAF<~7ea!1= z%eRle?w@}pig|sReN)(h9F~s$AE_JleSRZJV#(*X0e;br;!t`{?5@ zDmS}+ughaCej^$Bpw@ZxB&UL)5rcwiRoPK>LEmlD! zQ$ZCfWezS@A!-~T#JYZ0EQ&?Uz2Eljql%oW>z!C^9l53`p$o!EweKU+Ns61aeH;5t zdh^3N8L`KCqgUCG(Bd2rTIP{SF~y)m&8~GS+$KGUFoBG~32s-mX3fC9;Yl zEU(2x?cVFQxBdT)N&%ACB0$tWZgm39*Re=Ncacs+!9=WECMp7rNR3(250;I}s*bSY zHlR(%fHXiN0I@($zca`w>pf`9DrT1A0!Ulh7a9uOAxV0imn|Z`FznF(K2|t*5y2m=^?^ixed29C%0Ct@^HUVUe zqAYV3xopkr>)*cUP1`PgFgS#Y+>Y0)DG&KLuj@R1gTZ|(R-4zf)BJh=`GdWBYn$#$ zMbxrVHi))0Ps(I+QP#c{s8~vrq%*a39Ui}cL)moOTf1K`^BMGWE7|62zP|sQ>qW}i z8cXayKDPa4cK!JI_e?*}KWQC88z{AIx#&6n+m`#45UnB=X7t9NE|HrR&JwzY92|XU)b|9SN@M$N#fNT-UX(-_ufMtm8tpv7IKz{qygi54)jd?3Ffd;))ITd@+H=mQU1tV$ZYVHG zE-$w5tkyD<;E|^VA=mBm50ZAizU}h+Pg&Qo=CS^KZGZf=w1tK6#(e~XlPFz81-| z0#R@xVpTG#pzyNSi#(aP3hIvyx=~sdyslVAU>ZWA=hyEvKmYmPgCAw4yQ1-F-*b6y zdxU|7NB1yDT26|q6loTA>GnDHds!4Yg9YmDK93}3<|>Od-JGcy+&?~qx3qNgiWQ8o z1;*Gv#^@CnpyqYWxx!_%8tT`z>`E1>HxS5743r!!W5`BveL;yDQC4RmW$K$fy;h|~ zwjdEI5$WznhG}b*oou1Wd%-KhfHb{D!q=o3vY~2aB|}MsOT#l45#1^&2qaO01bfUT z;B4z;N-5=3yx(7hL|17W=*o&>PWSWq733uwHJBGw{1jGkh>+$lQmnvYiejx&8WBe^(0jh zgnLH?tpc8|TjOzqD(9uxgoail z&!Dng=?mQSb}O-<6ts*C4@zonAN_-J%ys&@>?)?D4$`e^5h?37+DAyv^H&B#d#a#O zRdQA9op@w2qccU=a#}@@Hb~2Jy1nY{f1Fc!N9#ZpqR3d8h0BZInlL6?t4h(eNTZ6R zw6)&5+oZksZHwY~|M5lA-WAd@Zo3^ZW3dRhi#8FNuU~6jwyx{=RfV?ykzr{|w!t(; zA2nZk-?_E)RS`%L;dQ+1^+NIJx2@m7Bgsf)ef^3^;gN{z`emT~X@|(~R>9 zD&>kbjSI~Ewy*h$Ot6l}&)eVs_jMfCKmU(qr$+)sX;RvBfH=>~9LdyxO*)0IW&XT? z-@auWYrc-~i$}Zt{LA+7N2EoZ3Xa11`tzu|{qeVA*zDqeg1QRIeGcY0GT3&x`wywJb} z(cX|rh1NyJmH~2ZW-*F`IJilo&g=W_hm`H31m$NIWfsD!jEHS6>YOMpL{U<$nsgl-JSvj78VgmUn)BrmbqemC*pSdqsb%KYLHj|{pZ*5{rY2dty&oFZjgeq@njkm`-o=n17 zRf`)@5xvQOMZ{d`l_HHvT7ntk74!W5PG7How1LJkB#00QPUagwk1b! zayH8&j|*E@p7#5f7PWr2`P}!P!cCa>`_0x1(VoA*{XA(my|9h{;I{j`d{(07d4WuC zt-#zGDwEL025yz^9?-G<_)%-wamH&#TPClHD7)6zpSSy?jZRY8`*yp>!C|TzhW0@ES;af{yD$?!9~+- zeEjw2fBZjg>wLEVI-kE|USRJk>+2WkF8kk#DlFeM7eX?VXdh!EwDM-xjB8Ocg@!qD z>6!ii*rl~$ zX_W$^@=$3|&9y8l%(OLrcY2`l@19~Szo<%BK$%hHSP=q-+=&Q+6elJUK@Dyl%DDHCF5#hV6CKHm;2^FhW^>MO3gJ@n28x_Xl0;OM5rrbkAPU)pxY}sYMod2EGL!5K zwn(_Cla8j~d0x-&m-hdq=^kOF#G_HXS4AjNuto)yP^C?Wl)Iy~oi;4>rm1&frByDuv24~Nt z@Y9a(LSnH{aO+96;wycjOaExvey-y+&*jH&B((1k%}fe|2v{R7&j6Yb=dw&f3Kf9` z^$q}|$g*Z}a_hxh2yWfZkZPGyRWy@%^=&6)t}9{@mGll0At5PWPxmLqY_0d9zMc`M z_8w7Te!Y%nV%NFm_j!CpT&(-NPTKC3SxGvY^bMqOKBK_>k??h#6hVs`_ulv3cOAo5 zUeDjjnN=u4g~yT02n)TVa|zsG5fQVpKrPn_y+EF^BBrk=QMTJBw_6oktaE)&JDEsD zwBI*<^mbo!$&9X>4Ao70Pp3Su>-svvIrduTW$S9&{&@WCAD`0otySrLlZ_}?NPYUG zW33m1iJM0lL5p)as?aoN*-FldF^02yC7EY3cae?+3!w{*RsfO(jh0iAa1&v34<{M- z?e-T%d*}A&{63#wwDXW2Gb-a+C#{PMO`58zwBnFWkz9EdBFH=_%L^4{;iqTyBpo+W zTd!{_WhF4vl@z4g?Zd)?^fJHB7nSI^QIXsSo#*-eUs*F@(%>AVvfUniY?&E;F`cce zmHV;`$^hD6RnpQnScD?e?V4ZV3r!0Ip{ODXN=i@`GAnEO@w<(Us3~rYmRHnZJFSrt z7b41&W)@16QIQ$UU^E@~)`x;9JY-dow%*#H^7;B=Y>XR=5|iUsQ81JhNh?mPTKw3F zBz-2y^6S12*;>t%u{V|T>q)4zK#$(;wGz^bGhz}Y3--^STs@x=X(+BjF-Oc~FOc4p z2Y3*3yqj@kugq2jQGx7LGgg5*2^EKQmabLqYp!X4=pbR_IxDj>vX~NW-;yHD3KYnA zJ$+ueY~SupM^c~>bjH9DezA z5_xZp8;FxsnR}Hw62(a^X-zwzkkW|A2%xzyZc|89w+elfRRmXZilS{>Q)S@z{jclw zYuq>YNktNk7ngyDic*xXWx9Q|eeYv0w<=rLH}zh{%)PA41BIgE-qPZ|UL+zG8F*M- zF&DHISFQyqQWe^DFjLFQ2qz}RNRn%v9?mTL#{vS` z#qGL&+n?8M-v~sEv30H%^Q4yj^Yi}kxAIT>{%%cAf0njFx}QlA5mi-6+Hasq8I)83 z(xH9Regjy7r0-3Lx4|spW%GRg`G4^B3!=+re0mYrdi>>c z`?1Ym|9bu7f1b}j%dCyZ%5J9xQa<*K<#zR50b`Y_@M&f6x#FCRrgE<}%PQKH63n4P zNh`~wtLHla;1tofTg??=D8}T$pOqfh;WV{r<1VS>1QY;>s;WYz_wbmK()+5V`(3oV zrxvSh#c0B@R-v}fpS{}k`}g@gg}d~Yv`Be-{8(|#d1R6FQAx<`+Xf;xOV6-HAn6-{ z{5tZgip&Uzw%%i&O_jiqPOXO*K}vg(pfi^!%Q}7oB+@ug*P_7`d>r4$`Q-%M`l3~p zsstV7Yn@LXz281aws&W#DgmI0=k@yj_W5VjQ7hZyubqbCQB8C5>-Rs;?|+=X|8$?a zZB#)ydVjQPzCyfLv6~f58O6N?OJqbDfKrYK)}XzSWtdR}3xT|BF{-r>U(+pw8#gT> zCR*o_Wz@v@baRIF{YD+FYnL(4%a1e6O2A{wX_*v?s?2Gr%~rC^SZl=z5VDv^xv{{O zF~pQv2SGrR6f$;r&f{_qj}yfEr+^vSgteL!NOfj9mrzM2uJeSHbY)SmqB59k;~)wT zW@Tz+wzba{YhDM9VhAY0!9yY$dTU#AYWAA3Qo0IvX{aD zB)5L2Y-V0rm7ox`A#H%gE(;j?ej9%YIgjb)6jw1XQRujdqGGi!5Ej<-NTZxiKDB9@ z1zD5EXsrpVEuZODM?$az|&CAyc5&?5jtI|kjs5U`K1^HZ7 zvG0u`ab5339J&_DbA``9@I%0obIG`C`z)ifmtRLTAvC@2~|G5upmV69guq5ZymT>-jt*U6_lvn3*

    -gutDj>Rz_7G*+_Wky^SaZ&Q&h>hWnkmTFx5%CebWQhb zKG8<;qNJ(CP>1iUjrmS1Dd5J>W=Jujw zfY@{I5AbcSgVZSD>28r(QNdJAH$^H7GLq8m%)Oo?HO;FwbOjuW34V2$q?Wj9X8ee!ZGD zX5gzQYyW`jImKvsy33LeG?fn#@HSdp7DfKm}nnu z+aOCATpaH6yh=jHy(DaTOb2zaMlRh)YFS)yd?g{F!M!xO^xeduGK%kco}wgLNi)~f zw)gv^CV_(sO&fhBi*C0can87AoRdif9n_HUI)IWU?e?+VK5zFw^0IZ!D7Q*a_guN6 z2w9n)Yo5{qy^Y(Cuo?5Jtm3pa@7rHVVy#!-N9Ntu8OK}!7O=LpCd~k|HV%-LDXT~$ zNw*^{DlVj(Cum=JqF0mm9N57HR&){pwEMEPmTMdR;Utv|-CC2!Uw*W;=pX-zs4@V; zZO{^kQgrJ14y^a2OaC?YJzm0MG;HDO{l9~5yPp(lLQ|o0}KFdw} zF73u$V|}md&)zyyLo#G&yE9szzo}UIMgR%(*3;eR@ARjK5fP8EthTtd_R~EGBDdQf z9?R^!lu|^KxM>FsPF6@t&ortQVboP0H;^$F0nCHiJ(5YmA8kB-Xv29-F!8oawe{zd znEJIe-0m{?|XhzE;rfe52%N@@QRCcjypA`JB1Z4o@R;6ftX8 zZdF$77^Mu}DrhDVX-`8E(9l|EW;>s8Epp^4a%BbcR=LPr=_WiPPa16^nGt_%-0o0WBgG}E1q%}y0sE&vb$RqsGz+u2w*U$XA#9* z)R>zhY1xd^d)q51E5KDu;9T<=MTm$fY3$eKHMjjioaP21V$N{#67=%$bsgXTvM?H* zs){lyD2t=q=4DSdZF%Z;@At>H|ItM3^}ERZI_KA)gt`6r=#QUmdqlu(vM7|QBFtF_ zQ)L7dR63RVLK=gV1(}s|mN>U2qy>m>5I`i;-7n&esTc)D+Dsx;LP%&7T5*_L zR~2s?m}@PPs!ekccF16=qLl?FuA-tM){#lqd_e`2{tVEsxg8M~QFPtQBr6D5Io%!D zwr!6(a@pyBw%a`;Yk6dd^zb#WZ*JWC4fJk_kPtUfqhLl+Wmcx-%9gCR=9PsIM26*A zg<_BbWlid_ZvoY$5J}1_%FG}d z)yl?wJRVhS%hz?D*HM)U@=SWSS{TF>#5z8bILf$h`q;oe=i%YZ-1^X_9t3LT9u!Pg zUY^DZ<;J4I3|#a46>&v)AOjE{;nTu9hKwyZ%g;=w402B*mQCBvPy(U~NyN&sX;ZL7 zy}370Yeo}Qp(J-RH?spovNN~=0JHX+^pX2%*Ympmn@D)uNW3XJ-#|SU#pPL%4OC_B z#uM#rZv!9{ASjVg5@}X>1QS5gAe>ZXB)mgML`8|>mUBgtD81vOm4qVVMp5AwnX%3c z6Q*&$kFfy}kzwxhtkUuMLmM-PM~XIrf+5^l_kRCC=J|U9j36rT*o4W`Bdm?RLA64p zQ>y4kl9Q+EJ!-X0`fa!CX~#FWMn$}h{?U5@LpxqKE$+wXtfKmJ!YI_Ixq^zB1M$N(!8K;-khDACzs*>!-c z-y1hURDr?Gms@!F1udfiRg@so*VCTb#t_`J8c|0Sx9Fqg?cra~im5Ch*0!O6TIyZ( zA%b4(R&E4>R`N2x!U1W0fArf25$u}lTH%yYkyB)szUw>=)FZ;?`DOkja?dN#?c4jf zg9k5-xdJ6k^l{TR(1(%z%G$_4{A{;~x-OCQjU~CXkbiQ@%H%Jrnu%61=*zciP@n`$r43ZK_2o<~JU8&yQc z&p&_9U(Z;m0+qy^0+JL7YGV)yTdUQG1u5J{iBVC3h>5gpPPdh)bi#W;TalDt39k&a z{bT=BvP^foj`{AdQ>&El$b3id2Z?$m_nl>=KZVh@&ywz*EFz7qf>?OpR5xP2zD|*z z#6_Z{@>5-6aV=|zw2@fn9VnCsL~ySR7VCG98$R~EmfFG(3F`| z0zC`mHWR^p3m}QIsxfDUAAh<{=H`)MDb-Yl+$8Bm$pRJXM3HV(rQAVE#YCC5sDf2n zYf#R4p;UWErP)bQtq-$f&VwARg00)USVTIfueGY*wywjj14Yo@wk>VB8Ax)PUrRBh z1Cd!mZJ_TNK966_C0!czR3d0(@@S&%%~H5t-&ISSw%bM#M9C}!HM`7?NGlGJ6qYip zT9rWWU@FNVi|aYs*vHn!)+lLchQ`XO)P0w6V`;X|j0_idiol8st#8|X9p4@aYNC(I z4coocb6(&o5+Y7yxuKLi8Op2zMR~5pLJVeQP~=(}Bz=QuWO{j|XT9f()b`tGtvHe+ z!3hRD-P62Aywla%dKt33GFg-bX--9|gOM>!2n6@IYFfyxw@)gvGpbY?OP54MJh_&g zMq}r8Q#>j>Vwo?#o>bLzP`q<1fk?`M@T7EgT547z%SC%~PKUAAt-;BQ9w3G|%r@2{LFcpbHmESRsXyPT{Jsd1eJ# zgP@Jg*CfLJ@sqP7JDBGTn=e0~4u|eNm{ZYIxKW~-5X6_!J6TYR3{_c@fcwNt;YWKU2jtXi*O6&FVJln>?D06gXf=KV%9W0p{mO`}M_t>{Q(&%!#-uWz# z%RH8^6_>klr-*Q0X`FQf2hmok?;a^QM0M+XYb~$CzmN6x?OwXy_3=aWPM1@X@?I+Q zn)CV}>$3FR??1-llOk0X#;rUkfj7c;&b3~dv){XJO`5`rSao~2^|H&)--zo`c|a^HsNj*km~)qEK2LP<=kLCaTDXpXpk=%5 zHrF~VqqL8)-9bbRItFE4&woo+)kQS8S_ydE_ukt&XN3|5 zT2|Hke%AUW;M#WIA2LY=Ts%43{?Q?-LX3zN>1hk+lhK(O#Y|;$&2?SRr(e}>KPpJJ zogyoeI4M(9SSXeH_JbP7^lKf2Q+SBz?e=JLw?#~nwaVsozC?%IRquCDqgqvOO<^bM zMViaYNkv5(IE!Wx_`ML~F5JpmP7b^Bw8mhem{)3J4)cqtrOgs*l|TRfzrBvf4T{bhXZR1}eQO z%fVT#b!{6F)ybJrDFDhq1Y)Z6N*ka1=O2IU+ny9QU+3|R%B)G0TtZ<4@1I)((>x{X ze!J~^6CH8k`}?qKa@FhjS~I9NuEx}fV$E;2px#+3D@s5*geBkCmGnr1==kW`2gAsg zw#G)3-p5G4EZvTo(cuFFRT?uvLnv59`XEW}UBIa1BqSYQ|2kiPvJMjU>$&F4NG>Wy z+dj7K!^6O(ZP(U?X`X*3WB>fw`{s3;U2DDOb=DOO8MjaLX4g!v@$+MR{8)DS>$EkC zBr{MvS`&!Jinx+kMoWUo*7iq#{1A8)vM;USw2RX-SodYHd`<>KEObqRjGm9x4ZLi}UN9M`vb4x?fC61SWxW<*T>h zRREFAT*-|(3kT5*9i!mUD2i~aNGMBa7H`68QcCuL~~Nuonlvqx5%MafEGYQiGK$RH{rR`Noz zo4-|`l;%Q7o@>RLs)=n7G)iPs-5Acbf@+l$0}2V7g{*qZD&6M`RjkUb6>}klgsPZx zh`7ylKHcA?GPT2+-p0qhNQ#$gLnTGMBeq=OuP;*Dp7<@bSR`nt+`H6HQu_6h8yxu!L>qY zORiuh4M++$p^c(61xx}~X@#O(Wy_tY6xm}^7-e$^^&cP7TG}^qF|5MM*)IzVG${}Z zGsEXa35JR&xI~+@Eu+$%**w>p2YDcyG7IzAb`d2)A(CG~SEUPy2;fTnvu{0Ejx%hP z1XtF&j`O*ga_oCqhIulDdD!HHj*Xjw^F6Ht6%j#E6>%O6*0E{l+mF47V=j-c@FZ&E z{+A|D6-X!ES^<<~3m!s@WU7`fD3GXh9uOh|B-1>i5S@DwlRE>g-FRqn*8CmwUx<)h z6O>6ry~-<`P}(-Mtqd?0BKbFo+z4P2N+Eie5g{a~3}UxMlqi-$Ik~Tl5b5RQeo-#b zossP}M4^!-t&BNEMc?;EZaY-LTtVSU*&6mL=Kvuovxt+Zx)z8~L=;A3khl{-Dx_4qg7R|j99`f$`sjD#(po3bv?iSX)Mhb?4m;3K0e#nGSb5{ zf~8AuZM%Vc#G-UZ;`(Ll$|H>-uo2XEF`JvKyY;k_g?^9AqGmfL6%!<@X zFH(=9sBydZ?H0D;{LYxr0#}t6xLUDhe`t%go_j)xgNf1(yRL}$JBz_s^LswO(IVNs zLbki;y-@wf?e_Q#&p1P%=mca=^=nKr$+0sr0triwyKx#-S^0MZ|i23Ap#WkB_n-a}v_NX{R(d zo0Uu$VMn^DbRtv`3vs@wYFUi|h>QN35JD7at5D^W#BwMlGfRGBu9a<5>aL7d86 zNU4%lMb&LxuP^C2#^{e*RoHy_I>a{Vl3?YXgo!DaQE68ATw#~~JG&M(55g7eBo-MT zJCCSjA`0^}ZO+JOtxJ=>-?ZIrp7xLbI=+9u!}-gb<#4LVTopid6w0%LSi1xf6R0RFRuWm|VmLyS zsHs8*XHLA9yGrAZobI-AO|A?api}#8zx^00J`X#RoEYWntgOrwFt-7&aD!wY+j!h- zoss34bs3ncDAFQl60-9BWfjcC#WvS}-#&kgF_wsfQB*~JAMSIVo|8Z-Z7744(Fc!C zVKJY6t=FIbur)0flyhCz`CVZmN?FWp8+Qn$PlEXR?W>xObkqITWmnnV%r8sq#ZeIJdUsL^?I^a#^ep+oW@Y~aDSbVlVt-dMR6C=#x=PLZM@}Ft=&=mJkR(# zh^&xA$yLO`a8T=V1JVBYynX!Lt!!R#S-CS(rKMY4FKS#YDVb{~1v3d@`}o)&A8{Vf zfBYxb66z$4XhT{ixM0^}1qsp1CO2fO*q6sZ-Ol>nWNhQ*< zYxz?@v$TPTz~RZ{;GD0oCQbSVG;TL=uGiCEGwSfP*FXOJeEiYcmO|U-Lm%z;KmJF) z7(iTS`9{<-65^CWv=Ut%(fsw<7W_O@fdD!Bhf5oaGDH zQo1Mmy0RAcrlV1LdPxzqJPtcwrB0kwh-djp?dP4fr)4crG6Eu^tpG(e%2weVG}=Dy zHy&m2l}=ufaLUO^U}YAfAo_PUz*DHKERlnK*!;J~6`i@Xf-;icq+k$LmPDzuDuI(w zGs>*Oy`0+^+r863aD_#f`(b2l?^*2MCji}df^fBc+_-Gz^vhn)Z(;78-LG5`VUZqQ z9I|acxBDlCMqJl(x;dyI2wwyxgxf3pMC(-u4}i4gb^RvvmbXmvE7v>yee21oYbjKxVOyNRCOCMHwQ=!m2wk63znD3j3}&GS#OMNs(k$iEuTrDwJhV zP^_~W0hJaRqSCp87)eo)u!5PQq$vQuu1qfwlMskXTW^)&>&yyfpi4S?pc3if`6>$5 zz0?Az*1&)jR}vLPRC)mb6Q#!_t`sWf$O<=&O?9tgVup5*ASpeGN$x{B*72;h5TIi7 z8J%8CcZ5ojlX*e-6Z};9m zK$R7d9_*#$u+yJmw(MDMLJ}6oc~oY2Nc-46e{Q!2Q_OYb{4QGnlcJ=G@o&%;liPf~ z{-koRL~rn90Sf^o+E|7*y8DBD#o>YEYS^~&ifd`>=o>AARB3ZJUq|G8BU;RpO?uPh zL|Y**iUwBJoqK8b98Tp=yh*32?@BM#vPri@jUlv2L3mXWu| zt-KJU;DGKw|2Hnm(|MOn7giZJLU1?GnQNgoAX&)cxz@AFPzoRkg%m{;6=yNO6OUA= zA});22N>5Yh@DWJ!pszuGcs4$Bw}U;6Ik26k><4T;z-Qoh%k?s#GSM;Z-^+j`FsKZL0jK$AAQ?L8_>qW3|PG*@Qx=U2ObYQLMFZsh*mnEGH4)=3#|zLe0m&3 zUH}1=h>CQtDiV+ul$eXFRe%bWo&t}BsLIM!;7)zh?amFlcaKG^QJ!|dG zZjmM;!lWD^LS&p-3=miVh*B}=-_ITiGoTboOhi?ZQN>VPwzwJM6=l8$P=efRS+APhC6J?3Cbw#?Wh(7xG zC}w1ZuZyKBEo{wlFBBx)Jy*ifAlyav z-uLbH5p>ZCTdyh`eK2eLyc3ZfM+vVLVE_#R7qev{st}~YqOm+8;&NDN6*Jn_&|!A^ zHDfVq1MkF2QUsdkGbps_{qshA#QLssVW7R&6`p0>T1l+1^jfyk4(X|lShhBX^d3n} z$kMC?hP0gL}wzcZG6 z{P_I)|Gw`(_B-7^*7ch6b*ZY%MeYrnVW=`K9f7q&P{t9$R-aqe=t@>Sg19ODgb=Z6cd1YieOAu$2|NE>) zK(U}lrOJEirQFEZ$~8rmw1)@KpuLJJU0M^l6B&T_GXbnJwzl1U&Xt}?1c7K(MMg%3 zyOcy#_!33CeF_n(CAIVWo6NS`59y7_Dv~7&L|CO{xiVHUiGYlV04Nay0Ck#Gl+uKo zMp$`>2w2>lsB2RuNbf2wY{oi-JGTL88A)zf=CrI|;hvFT?foMuW36S=ql&WkWI|C$ zyS42>4*NcqnMfws+~<5@D1+>rOiFoWdB5*N?mlZhe=9bT=I^6o5hcCfyx>A+#tQN* zVxr7Q31%=;X3_h1GIJ@Vi5Hh7b+le8kyKs&uOZG=Hp2}~i9}js*+Gkt@90qP_olme z15xk9YbF_MdwY)4f=XDFiHa)BiY)SA&OS!vAZ`#Pm8j)$m5HCLG9-mbI5uPx?)(0u z-FF_MO(=3+=b8s0wJC@pED``zn86^f<%AG^R~uyX8$;rnzOKr%_@rj;7fRi)jH;rx z3zX7k6V=D(tG?%Pv9!!wFROY33Bu1)(e>l6dK;uDSJ{SEkOwFWaGx0qROA;ZO4|SR zG?uY-=naj}^EXk6be2(ZxLw34`+mEBEHf$;*ldQG_9jZiASxZ>#$!G$rh|gPBmkt6 zBLgh^{Rd=Yuub{+yeaz$0K zw)du5w_Zw7Gcu-~6_tmr-@hSMALS^YmyF)Vu8rAT$78$y%rr_@6}QMJCU_=PMR(Cn zuX!*x0udF8C>W)FSrHseHNB4BrQbg7%d!@-DH_Oh+yG|cCYwOD1H%#%MSiWyYW=R- z`Tkk^{sxPIvMM3c8fsd2Dh3G?Z(#+-*mjSL%GtT;qrl;r=`p{OQo6DTWzcBj_Oab= zWM=afxx6gcsGLwqnJ8|(-9LNbwttF9R z&S=MR#JV8b@1OnlF>d$t>FX+=cD*XSZG)=J4p8{@1-eUTqJlJ1DayW$Vx2S60Tu+O zSMQzSEUDDYtlUBMCX21(3s~B3GNdTYuF9h1hyWFukW~1orQDbk1@&c>6jec?{6Ka@ zmnJMb2`8Fe;l4odW$*%+y{@lcBJJakzlWC}s~Q#P9ZxNmBq}N(nH3Oj`c_32z42B_ zSr+F0%|k?)lE{l98yd8Wc0dI!%Fw9b5TFV|{7wZ>Awg9YR-RS$=EMmzlSS0Err2~L zw{!UfgTak7GX3?se*GG~ZSCGzn+#BIx6koo;Q8zHBfe+GEPHqPJqtsds@%5w{o}LW zZ$Wuo{&pC}TqIuQ;a8gJxV3)k{iBbczAo12`<`jv|9Zau@jsPG$1d73vMi~HK;c21 z`#!+A&hMn?dj}UuL}o!{>>|xC3pgb)NOTaj>wJ~ic-(g0G8O|&3?Mwm;}7LW*mwH6 z%*+eLRhLNDZ7YVY<>ug4MrlMvqRh-buj_ol(E1IDh)i45l~@QGmh*h|t!y6iyfTPe zS8c70@Tx`WF>_L8Ct_dZCMY6w;qh^&Z0op?lC0^ONk}4O_(WBI+-fI_<(IkV<-d}b z&jn#-AyxttdzLdK(&IWC3AIKD(%Sa@wvXP2vd&-s{Ql>E9_R0s%U<6}$xPCR-X5wP z5y$uQe0@*5!fW)_wykI)dF=On`<(0b`q%$VpH;MMQ6)v>qgWLnL2b8PbYpH6FLz>8 zrl$pY=DW!m+}fyQ1S_*b-|a3BBY=oKGHP-3+qP@%{`pD7s6Pk~@S2BB4WhP%11LJ=W#Y&=G~#aZOusEym5 zwfVeQQiOb-5VYHn4LQRq!V~UrkTaDsvyNT*p38}WHYhz~`I-O`BRs)_!1{03xK~8P zs`N2#jFIb==6K6R2r@=pFY^GDbz|+)D60q_m6-vr-iC0GSpIwwk=*WnI&Dc*ex2O4 zZ=c)t0Va!+klF=QaUB`u)BW8MPLwC~B>v+|OsYS7wEiO0iT^CMM@vv(kkDPUeIpMT#)S?lIkF5Hcb>sIu!I z=J091ztBwYkkL_!+=Xuip7RRK>=hjA`BhazKE*q&)W#(6J+5t3=d#J#hEv%+RfXK3r=oh&Ssj5Mppvj6;#cKbXoKmPnpSzT{T zOiU!58)FPK84VTb=jHRLs1R9~5tRtIlS<2hq&JuvY38}C(rGf!v1RLfCfvSqB}i02 zEG2-7Xvcz08?yE7BQ42aED&u)vFt^e>5G=bg}FgmW`TmWvtd5J!(YAMoV%xUm$nV+ zQbbu2UM0%C6F2g#s8|e*cz~KUlkNH!#II?Rv#}Wt=K)yN_ypWoAXz zBqF5&(iwIhhp$t&(SLky`)5o$pI^(4!8fi(yh+Q7$tr1!rqQTav)rYL?!&_=q*Op! zT+GsB6VcxK=$%?xy{_k%pNjZseIK`R`*=j2VFj4VUaX#1!W`3mRgyG}$Nh2p`~LZJ zY&(e7>mr*KX?~bp+SJY~Do_E=TBhSpt!uw^9#PtP&hzQVt12ZS1c+|ik2da_Ma;w` zk>O@<^j>;EvdF=dlu?Fwp^>7{7Y`oWgSqDM#gP=5097L|v;a$GWK5#g`j5^WIW5kN z2~b|I@|l@-Tyccd*82zXZn4mdS;!0)T)nj)1@ZaYeP&H!l6J51EPKac&;lr`wCh@a zL7~dR%qoP+%B*VATi=;0?V^J8UfFm-Mxq#K;g{z@lmMlLtuxr9Eg2t7R(_ft#rf}I zVUU}rEkRaN`ciFg;+V=+U6uztSR1EQQC?I-_3;2p$(0GWnV_%*y$Q56QQav>>YTaO z^#oN0RR(j@eplkm$O@1Y1q(|PNK$w?%27msyemlnLnUj4&8ng-v-CVzQ?$jrAoB0@ zXVbp#{yN8Y@7vw3bJDYE&**+3eGwW%iHfKQAx)tmWM(j0+kU9pI-cfJTNmv~$&G{4 z&6pJ^pO>;0XV@8e5obAxD2qe{l@Q@wUrvwo04s{BG9yWunY?Pb`E;MJ2$R0;_aFPX zALpbQ4chxncnA+lS+6DQ;t`Rix3=XT>Ex5DM8OSh?@Si!T(1}UM%c=^EOVU{*6)LR zvvfd&Klc4^`~4@XfM68>VKKkI<62;B_rJ8hU(Y$O>-}hB(!Sr?ZCuBnW+$r>k*E?0 zh}w47`yXpr9+}I+7d7EN%+G5b-28L@WB>R}TUi;Nab4g|bSvX9*z|QCPPOfQ^bZoF zF1j^~87nIyi&B&-s!3MHvYJK#-R=;r@B%7{s(OED+u(G4zx+CK73F}oHa2d}>$via z43-^LUXu%4Z6tMV)HdBVm5o5fr&*R+IhAEG5sI6N5CC4O{s!V^_$xe^lu3L=l>_a) za((aU?OL^H+_dO2KU){M_0~oH_E)`a{rUBJ{XSm5*ZE9el~e#R7x9{QKA*9OsJU|+ z1C7@4lIXYgM3(wG2euxEHW+t3?eUvsDu}Z1sKFqLCl?dE5O#Q_k6Ju(1-|MqN9N+sUoRJn+Ojgiglrif>_XcFG`!2+k~{S z{g5%1ol;KhB2h}=6PCW5^77Y($lh<|am{l`FW5Yvn6!U()edlF5j-+ctlX~e^ZYt1 zI&l|iqPyFQbrJ>2-|?R;qsXQWNrfUIBvDjlCdFGaRiRPLq!DSbKw>8O+w=_?gS#ek zGQg^eECd;q5KEPN%wj}RMkY}SXsJh5jUu9wVkzcgBqHW3L8Cf&=-7Kx_gIMSag))^ zUTb=~X}i5`@}M9$5o!DAx8XT$8AYNb(+SKvipsAS#jG^h2Lx>^RV5;o)=1ngUuI_R zOL}XY5{!uY)0Uh}ndJfx3|g^pw^T}|572D{9fX_as2VNp>``;#m=+L~6Df)45t zL8;pR5D`daT84+O2U1moHm0XR`Of1_rlh1cnEj%X5+SsK(6c6OhZN+kBm9e9>qKLfS z!VM-NmW1HFC2CX!>0|qB$Uq5^W~E!q=eKM_TMzSjoH@P8-gL_a#5-NI3Yih+p29=! z3}He+GA^nG6j7k6AgY__ozaj+oWvk*@8M=ftmCPwqiqH9qKugHSqypHf-={naAcM; zw+7DQg0`9w78w@dLNdnAO+>gT11x5%Br5=+KwiHnoWi*6+v9_( zd|eQ(FrSVT-5WRYJm#u#+ra#P()6}Vjw4By<<$=}14ws|jI6HimDzp&C)<^snd-_2 zcP9au>DT^X?hCk3=m23*z4sg>Q3_|1&^SE!@~7t+5E2z2GG<0DuR5I1ud-;{zQ27W zcZY&Ja!K2WdtN7%gR&4AmNrp$rXE(l0##`BO1L8{i{i>G*a}3URQPT&Gm3SPwsk#L zOs)ntiO5*R5nL%H-1>g&TN_*7_MHTQVgeMh4Z^T^RLmya`?l}zxBG|V{60S8@f9a) zY1iB6o5&u8%6;_r-tU#?jNd+gSGcr2UXFyK?f&-m@driC=QGYDVkRox;DGcBqD0f7 zRan7E+BYQmaby*(l$9;XJ;+TU)EY}u87f2Z>TFS~u=1)RN@5mxKnhGYA3W;q=RY8x zJp0=XRrB%5B5_`dw%=~dwqmc@c2rH{( z2Ddie{vh83gP@j|`<28Ma~)qinkeU*^ZPe^Y9CMr5rRmEs;H1qOS9{ItofjRpR0*T z62JlyA|WmyNFgFf_c)M|FeIEk&8vE`*ZO7G8D`o=yK3*{u|7Y!fj7+zaOoJCl*xon;;~s*>51*6puk`d5h2%c)~c-yk&RMF3=!e8a*_~HV}^7^NChD5F*7feQO+zcLh;CK zm4zyZEFfj(wk7Sl{a2SiF|}$k_NcRbmCgBl zRyuJ{s}+}>QJJU`koGoix7UW9i^`Hiw*8HyAyc;>yuF!yQ4}XJHxbUf(nB{IA3HaK zR@-m$`Mf?q)BOIvr}_EU_xbrW^8`pTIYPK~X>Ygw#}D!A`2D>evx*>!h8#>DoZPEb zc&>x{-fy>Lb&m{iiB#vHnny0AgK4z(As|1`Fe^qC2erybD2{|DSpN&T_ZKnW!|6a4mEujfKOXD2sIxLH7+!WV`Wk z&@x0+5x1?R9nY`0&bZFC){G1yP%u@$zmMC8UF-V&Kwbrud(D-6@qLh$`x(~-&elgo zgw?W>N?7|muR4FFJE*tqNB{U!@AqVcUDY+$>As+SS>gGYuM+yP=H<&W5lLKK^@A{A zCnpz6!bzlcA4Q&O#!^Faw|8*2l(=t~rJ0O-AseV1*c1%Y|Sl8v3r8BCt-a)TnL;$ZIUWrmM zAwVou#KPP(k@Z@l1IPk#F(shXnIy@Z1i^it$kaYE9B>jXWK}RwP?F*{M5}dSDx1fO z6Qtp&ssunKECsG4mNB*)hr6Q)AQIx%_kMfVzK2blN9!`~?}!5hA*oEN{FNw5oBf=E-JZ}=gF}%3dG8{AOZ=AkT504;aKTj8N|$_cvbYG z0O7U^DFcMk_cb37j zBem*vE~rXCK^c_J2_~X)I3yd0lB2dNs+@}`I2`WORYoIXKd)Fx=yCb={F>LdXxDz* z`iG8@WeK9~AKV6Km$s*>)hWzP_Mj*;#3C!^!3aXKaHVBX5s?^4K@M<&my=UuMNyGd z>vS9PVPv^6wBb!yCae}It$1ZzM(0P4d>k+Z4AT$#0b%lGDlR!#T zM4N7VfBWO3%FoB|wZ3AW$Ob5)BFrlKZQt(qzHj#YitEaG!G+k;&gZY|IKHe5LHB?B z=k4Q<^Yee6^Vf=1%>DMWg0A_?u4l~micHT6XOXe*u>xMO!n7zSK@(N&eY7SUb6@Uj z9bhuE^n6i#MVso4+6SfPYn)S#dhPE@E9ymNWNuVmVMUcO+y1uwbI+L9_p|cyHGLgK zoYPg69Dc6#c$k05zFK?FqGgv{Ux-}uEO8<&&SGJ1L0K$7WLe~?GIVrwgwI5AyD|5$ z2)CqwG8`|O`PTL(Tluv0i0i4hUH4tvmaYs{=}no6)_Kn3S5<&V#8GI}8i*p2hzgl$ z(wa1&sOO05iZ~#`ty3E$-Q3snE7n2sI@R7)dO2QmopNTD*0(5&^RoF2TPW^2v~_JG zQ=$sRmE>z>hG&>fqE4h>_i%WSli)605MD2C35&GG?Jj&PREA4Q5wSoTX(Q5bukfl$ z;s)Z1SM_s{GQD^TX@Ce1b{5qVSE23WAH=d$=k*{dkJa{pPDN98qS2}dt?^V^6vr%g zmQDL09hL0nu|lX5NrpvOxMgKVQGtak!qfAGf+}JfBAx5ZSVXRks3|}hQN%<9C`p4r zm`VaKXE;ilvLemb!_AzvTBEjasv`pSd_KQF=k;V|9eb%dWp7OTM%%5ZsxFH>=k+|V zO6ab#b=|c%D}q~t$b265T=ulIWad70C9Y*J|6t`y z83&3)iA%fQ`?j~HFYE(3Q)a8S=^bD~O20=Dg(6J zTRZ;ue;b`-naKZ_P2Ml zA3>*Gi>R15Eaq{VIa4c`xl;ynrXT4CH>R=KTExOcQNsnsMkfvk#Tt2}`oZP@IqHGpd8v3rfRjov#3$?~*QKw;{ zh)T>?#*FpX`FuVfPqQrUyuDGsMO9UiFogMKk0O0N8(CWG%oJP#mXy(C#k>fmV+gg% zLM8!`E8+wRw6l%^Dl^>eT)B#&6>zsw2s3meN^M&o?}b{&mtEhnE=wnsS|Po){ljC$ zb&w}j+KS5JCaOcEqd2|7SEXmWWpWisZx$Z28r@<=Mrq%Ga6hw(x}i>M==t0E9a1#$>6Jlqc%)HVXSH0d9A-8Sa# zSHucffkUVvg{4XBRBp};M9kt~B~c1@WHDD!L0D8PvhYg(udDo?@Ft}Fd9HentdRO`TNpSoPTh`vXz>+u=p+PdlhmA(*C^F&G^ z?Q&lwTk&AhtR$g&ars(*+i!1G%t{1{E5owD?k;$a@lF(WT50wBJ2kfJ+b*Z@LDe_a z(P%JVWYeOw5Pq5{3n}wJiWh_$=^zy@pmuR7wfd8xg^PxmK8gmAMmowxUj~L&-ZdkmW1P2q01dL`eHiS{03Cv4q>o z6xKj_u9cA_4FR7?tw@;K#{6P;F+o6SW)TJu@g@z@lo(`HQ57uEjGA9xMAWuMg$mEe z5`s8Limk}tBs8d$9mI^Hs9+)jS1?uMQl_o4hey~fP7o2mAwUS{t6Yr9k(@M`Hl~D7 z`YfNK$z0V)Mq|;+^2qelpK5cJ_*H? zQBfIH8P?{bhfFf3){`0~sE@|YgNcuH1wGBye169B%(QZAP2250-nModI_{;O=aso) zrP63)D<+Rqb!@kvt!;DuqKdI~%2A#%y5A$b1BBH{%dZw(W(RHokS~WQ;cNH0sy4F`NuME1+NEt+pqgJH@SwNs7=XHEV8Iy1d@g}OHy){0I=EGFq`T+hKyO3ZR#_l|5VKSoVpXop1QyGV8N^_rwvE4G{HV1q zh_h~_lrM}OqbP})H=)6GL`JA=+8VUERn3rSeScHwQ~-fl8gD6tOd=p?y^*)>bkDabv+Ya$l^v| zUvbnEXlP2(&UrnLV_Aly3Mxt}RT;}r(QmgZT)%(&VX+niB18L59Dbcy#q6!T$bwGG z=RALB9IAMw$=m*e`c1Se!OriDi-M)y_WdT{d0kjBnwQ0VrPvE4 zAkCr*t(io@(u*>3rCAjONfIOi$}q1aZp`wEWv&wx@6|D?BON%#E9loxJ7ZjYbaR@O}A;V@~ zSFE7l|9iau(YKws#!xu1G$omH=JE7p#EnIWz(T^wl}NMWH{$K(og(eLGcnIK*F3kk z+t_z$TQ0Cs6uT$p;n%P8@eSodk`UjR_BPrb&~S@2b6rJIDw$bQ#X($<3Nohfd9LdO zhi<)%9{WZDw!{+gk>5X~@i-?_1%8=2ekNJ7|HFdieWIi5PoD$F?E@C1ff>wrGZ2euJnL&6} zk)gLuMsbJkoASu(SY{PLjk9ZJdeFQs^H|HIM3@*{?q#dO!i|K86v7!+U{t}AxRNT| zszS9fF+hpRSB@486Zk@bMJh70im0+Eip*bmN)+dG<7h)!8fg<%W+AS0@dQh%K&w0x z{wR>JwALzH<*EWeAQXZdb=CBFe1F=U$wi~{AXa5*t^(YQi2v0?HA7AB1Rp833dJTUWt?e6-*W-6Za)Wf@fraOMd?K8v zDh-tofQYeyi3g#z%O9~G=hyF?&TBA9>%HGUNRRxos1oK}$9b*m`Ghp+SSy5&KK8c% z3GHtB_20jUEPV+_4cwA;PiH*QiaX6EM7y58R0F8~msV$N1684e1O zsx)O0LJ=6mi5HxwAOuP7EXlb7!qkLCh&pLs^8_J-ki^u&*gU9}S9t}ekzdqFWe^E* z7Eu;0%PiIs3PN(_Rhb|mmLkuLC@Ta(2=c0^WmY9Ii)hbkEXknCB5(y_d1>)HP@=et z43QRo%;)#KzLPwJeJz1zMR?S!ed;S$h`bVXQGQfTX`XULd=kGFQ&e2EPSmm($ZU38$nj&Neh3k#)GSuA<~kl(xp*)fmC}VBKKM4B#jv< z98Ana$;ifqDz8isB4(9VwE{^g+>k-B02cjJhK(5*7DED zN7RvY7Ed07TCYW3!ZApF=6vs%hs9@($PX+HCQHX1+)1J<+V<-B-1K17D`Qvve$)2 zke=1kz#Q3T`iwOE{Q^?N00_w-eU*bzVC}tS)HFX34H)%ulNKVDLpX@pnRB~sl68GA zyT0w}+uI-a_gmo~wk}(9trLRAZ1Xa=#<$J`M1MEM6>gq!AOe54$Ft^TEBeNLd%Y7b zx0M;@$Nu)d-EaHWy1cR6NO#JxcBQ?f+fi^*6o@&Ai{MQ)sZEPw1xq3_mZ~K4Wz(vv zHm_!@%DIAVov;JFKq=g}{pZ+!Zu_5%c6~pefBiLm24$@2Jkh{H6^0C^4vi2{@1k6_ zuIni~6KKtuYnCwURxAm!Yt{n$UIAiZ0$3BsWmE})ZY-OCDtyK?N^Na>K~W&YB{9Pv zk2oLP(1ubizaBNo&MW*OomKB(E|CNxy=?k<*$QEjHmGye41ZBsoYK=Rfy#Qt`8*~m zh>3+2&8};Gem7>l-LLfkT5sA!t8z}WH4P4F+BXpaa|SX)SgNu-n43t?h_v-m&r&44 z>LP=gG@`2CoM?W31JXYB{`Lo`KR>_D-@hY>TjQ>%bieF+k`is&nlhXq(j{#$i+WRjqGKAgZo{-b}*I48NkZsI~n^+gN%;T<6y(>Ck>>W}gpp#OpyD4U33fx&lnf z)K=s?&#P7?*Vu2Zwe|HiPvg0ejAEi&Wibag5OWlm8!IP4K+I~V*)ebTKeq9~G>CUq zSd_&X<|TPOp47De_$Vq{mP9CWcZ(~jUUVo?uy(~LBBI8rv0_d0aMm57Bx*L-`BiZe z=XQU~%IkQT%|N#8#!>U}@PdfQwikk0wrvZu7ys0j`Ev4$xwS4;=JsILzVF(1&N9z% zgh$Sq9N-{wgfZ`W`_bDUK2M+Df$Uoo;ntCL5%KNEpWu-uR+UG%IlnMe<*^(|#Ko*6 zuWJR73`a345c3H)9xNL`f>NcSU6_@!v!7vSn3v;q7Nx&szs%AYjI2tpdObQh(=%t* z1%RMbTu2dCQfeEiz6j2ljxeU;+bxh4wC#J>`#k1#e&=zuq11Md^klHgxaoMa@26j9 z1?YO?J>??^>NF&=JiWt>;0Wu6(6sibJMMyJrYTTK!Qp8*h!>3Y}#qx zLU%n$h6LNp(@}bRLt1z?X{>qw_($Km#Uqv_yPuCZr=8DA^wG6!_$LDT4w4oD^HzZsY#W zTO*_9JFR5Z42yNeIw@uBe-cpZRBeh;vAJhNt@YjReSiP4-?z~lPVcHA%%ksre8@hu z^|tlve3-lJTTzlWYK^j+&-5w05dkl_nUz+)DyPit_3P%u#SKscGp7Tkt&RI_`}nB9 zI#+ysRf14OiQo)QbV7l9IqG%IuLIn-_q)hgHkUo^wFfA{s$5|!0{~NyBcJJEZYWaO znR^xk+WIYgWds8Zz$0g9->ISO!E{5T@K|+F=PnJRVc|YAtvJ&>bpTW%D9Y)yr)(GRoi#5&~zrS2{=-TK;!wq}GhrZ>cS}g~c3q#$bCxYk{R;mchaq&Lv!$HVfMK z_qMAHmR1}p*y74GPb+xAgVChj+jzIjtBASvK8W1UBl2=T(w#_v#we}ibgmV1uH$!I zhfpVN(Cz@GC%h1SY;E5X0VFkrP}r&}9dC492-DvC?FP-NB2wl?kX+qSnEjxa#-(PVy&N~&eh=$sVu%uGfjoX$)Sr*IE7Z9qgsM4md z=+Z@7YQ|!2TOWg!S-dc5dNC0S~l zjL%`$8P65V39|qAxc~T5MCS3luCItPcT}lr(W}NrR2A;aMUu348Rcdu5^dUtYC}4= z!F>mhorI`s|9zd0h!qiK_CkiYKA5H4)6>o;02zZ>xd}Y3$8(ZPZzOl3pP&I|ypr*a zWvJ(hOs7FEHJMVz08kTIynLqHcATPsZE6>%fr3aEKwbAtepjJbNQL+jfbd~7lC*cVH8DV zDmQ>C62?iexy-B3qz~>pijhH#ioe(NEIaEhBde+^(=L9&CAmO=l%)l8d zP1CWSGrU9xi?DLS3W=;X28j?A(aXeMP-IMxr7{@ENb*)TE&c-El%wfR#I31wn_tuC zH{?eBgDNn;V@_bD6O2@L<(@SQSw%%uNz_MiL9~b}R#pC;eab2-C}(+KRlwJisaluf zUQAgo!b~UxVM)<8dfOYfmI)6*R5{1Wpe%3%g*k|IG*v-nxD}b>wZ0}+(blLVD^b$* zW9T2gX8KjkSsY1aIj`rWBo7W}%1T3FUB>(9_xHYU%&p(wDv$JZn^_EMz-x_zwGMah zvftl+2;kQ)kDZHgvxp=bTUNz2DwgfXsEBRK`t2MOZ)r zX)K+&SCaeFeO7V-VP$jyRWyqh7b-xEHZ}1 z>o50nk<{U-a3B7Np` zU)Q%Uqo!^9Ao#ql*J5FR|IhvXJ(mYeD{ajZ6YaeB@o{gr&E{O+7kNWSrn^(FtL)OQ z(g5<*qTZOhGBdUaH5X4rY`35P*LZuYwEF&c#f8jyoSE(Z@z36eUx)b``=-0Dx{_Cw zQB)td(u6SuDcvwO!8jjZaFf3Ewr%@c)a7QuemozY^kr>7o}b@e|EkDWNb~mbA;}d} zyXv@=rAX1nejIZ?=J^m|9ZkBlA#0sv7t&sY$jl<{LR&oNdVXdSGdF1vLRK5SzwcmY zGgfS}tzTa;r{4BHh7)2=Dq$6Ed(jo~ifS;CwEca1`>?R|EAl%lJjS_rJ&xn+H)rd8 zj2}1bAFYl1kDqg%*Y(U5h}6-x+uQB^E&ZD7Gid6q1;XrEw_*a(M!b<4q^&g*k>z$C z>+xh!W@RF7sw_sKxg74)gcVs?ZpA=xQ6?po5kk0xQLhtA-}_r5FTYMdua}4s%G6Ry zg*F~aZG?rFzi7dk9x>Awg<18Qh|?kxx`p71CANwyBg!~fgd0kURAhvE<;p59DDOf$ zQ%m9g_Gcelnz1gfB#z=$EJaB|B3eY!nvRV{BaF4NZWTaGBJ?r#`(CN8j7s-d=jDmg zEx{EoL=YwtZCjTiszphn+Hc4}t}0>?Qmu3rA|V>WLtZ?b@wS2C=PVC@UPXv>Fse9b zV}6I1*%xYMAxn|S2v#BPnO-oGf+i2rnWoGO~>Yed40z+-QLP;onPDircE;iEPC78ev|LhEsp2YuZ!p= z0)PMlIdM^la4S${1#?6e5mmy2RjPu}STF|^a%A38}V`P0v83lmVrp<^EjfNoGw3_2%X7-$j>>(fh8t zrKO#RJ&u@`R-i_uWh)((OsvG6`$kPFSH_GuE0^|0s?4N12od3kq&B20_oC*60vAC! zZi8>4@0C)RqN`*sUuD4!(mn{3;R&L#^Xzub_3O#UB&GiLcKi9C??37K{C#|W8_w4S zknyc;YxkPzYhG4PM5xZf?Y1*>%quDwoiLDE>CCN-zTJQ9Z$CwOe%tkU1dL?q_~>J> z{IT6On~(X-bzDT%TI3SZXLfrdpv~45doR-&B+{_;CA(+w*7A${Se4$nU@uT$} z*Xe6sb}e6BzV?3K_WQ?wy*K^ON<1Hbef~ZIr1v+u_mWztGYHgtWz0w428OOzXQ1DR zI;k>?z=av!EFyp7|21JGjubD5?cUQ<3ltBa|S^*Tso(d*eHNeWkCCK_Zl-*@+vh zP{3ex<){LDS^|Iq2}ZI+WL2s#0>}(s8QHd-iC*g?WMsNDYF(%iqzYwr6?Kah%PK>J zSH()>#C6TE6j9RVxjfE_sl7>WZWEV7gQdcQ06$-eBg;H6#C}&U@HL64gtBw@Ta$>D6k*{uCB7&$fDJ!uu%B$#a zyID-$gyluPV1P(e*fXY|6X+lbS`?n^0!X>n%p;z5BWaq&iN;7&^YDt5MG!4;amD3s z#+Ma4wP@qLj~`^+&$9w;zjanOthExJen!|(AsN&L3xdiQ`6Q|y7yJU@M(_ypaA_i4 zsB46KR6^5Q+Qxt#UvV8$*;Q}v)-6GCT=w|l_ji5&gIFT2 zL;_ZEX}@Wc^r|G$!Q4H)m`GTM64L#*6I$z}#_(D%`fDqqcDn-`(dKKG^U@A8pVKOd z#n$SCzTKj4B~7@4uKa$i>Ev9oZR5@7i+fw7)$g0Oe)-pVJ$)T7(xh%bSsJ91Qc0n4 ztx36RE$O`$z)g4{69gWO8~gbTH)iId@~YzE#$4$$;}RJ<-YAv1vVA8l!2EPLn^kF4 ztBl~Cp%Pxby~(|u=V#P>^@U(uPSmKXKqXxONzaVMO=yfNfz&ZJ{jl@9jtMjBhBRi7 z5Gw6Di%Kj8-6@%hn-XJ~h38}Je~jDv7$f4muE#Y`zfKn3Zg&D--{1cIpe)u6M1e^< zlB%SLGHZcJq;Z$jd@&bneKWiCABd|rZrgt5iZn)rZ^^Zum!QVJRnGJJw2Z!KaVJ(C zd*6#G>aq$VYPPOg-=Qd4ETX*=@qAp@B8W(BuDKqOw&rQ;N`$gf zMW&O31eu|zVkS|h*G!j%ioi;Yt_=()FM^$R{`K#wMAAM+(28Rsrb=(4GdXFfY@naq zTNSN(nyvW!i&+Ys>6Mn|$d#AmLNP(PI4TxriZG#3wVD!?RR&5Tg$rc^IVu1yw>6^z zx^24OFgW8RpBeLSad$X@LRyzrgOU092fhA@eY25!NDW8=VwMZKE!A#OPVusB~jo4-ElB~gmo-@ocQIud$9|sAVe>vYl4|Y zS*Zw=k`-xQNv-dFyD>MRrcA9tl!z*>HS-9Ib$LV<7{nyXZAiiQ+`phz9aiCE?NccDpz2 zb{yx|5%yg%5vUB%64nA`W#ZN3P!bTX!UWB#i^=~cmvh&)5y*~j_oeqS?l*4A40#n2 zE<)}^jdZ-2(@6`AiiF3kgQxVilK|4VHBv7sJC8i3-uAW&RqNYZ`}u?7-_P|gVQV=7T44AlHSJK5AAQUmS0(^x^LV4$Jp;~(;U~Ld7hQ${$~68 zyQuWrUc0VF&$3uclkIsrxzmO|`rAjlzlln@Pya$FDL|uQ7MBhta6FCWS*r4pX`}$MNLfUhkfz5`u?WH<%o0WJM#f6L5`JBATrYznAxS~fP@99o z&ajuUp{fwJUMr}Gpk(g7jZMb*TWBbNMO2js71cDe!^zH)# z-}iO#JWi~L@Q7q-+DCxW34*>#0wE%OfynL3Fdc&%cr?lioVX1YY?;f_gY2D zdfT}3T$kA*ZoS_WTRzAUaH6OpQ11Y{W$~GHc-j8v&mxeh=uNPbyAFRNPQ?8ErQ=?d znHQ5wQ!r%&s!>Uk{VTlN))kBy|BEkLsf)8s92RAh5!m&=^%%D zmC3&At{w{%{Wf&)yndOJs5n_xa3|u3SY1Ba_#hsP66uB`asT*O&u1(Ya$TPlE9_XG-<&FAknV%ua7KJjUeO3jrIkgHvBh$~GQy?# zcGo`k{hCbem zGU75WWmOS`oxh*w^LK?2RK_jlGMm@)>0w!mbhS;|4OEi|W-E>NO_a9lJaaSQ%I7Is zx;JS%6J?s&D~sd|qo|4;op0~&WBg%{W!IGv*ZO_VPrEK=RcU%_LWGEA$NGHe7~J2L zq=}L!5ff1(YN~@+-7Zn4B&N6hj~_a2>-);Eal4Pk#&wlZW#9Mx{^2nrO#8;#NhHE) ztqfahQ4tA8&Pc07xzub#J1DEXsyC(=#L~B+ zvZqB%Uw$eT6ML+Tiz-0j5o84F+J#${nR|MyNN*zAUy{pk_q0j}N`zZNa+UjHk*0h2 zm1~I%Xd_nOvUMh$g;D~DGQ?3Y<&$a$gqX8tc~TalkVPT{iWMstjn2g7nT1kLM5YT< z6;T3NX^A1MBA^_coSBok$>^hE6>L_ zvc~-lfOAk)xK+HmlEj4wkVwYjsJ3sxwd^b|$rq@Faz!zLgqXlls1geaa3Km_h0M%w zMgRLfM07*tnu|23%-j-8t?RbSMNpPDSOf%-4PN0E=iVP<6EQB`R`ruy5Qh&>vmaSFgOw2D@c zMN7z9p68UNDz~<8ah*73!j_$B(QRbjh<0J_O>4h#FBw#|%FLd>Z64hB)|#7zf#|)p zR?fQjG2XOo>FIO%GN8)Zc^%vcmA!BK+wJ4e|G2%~&)>h#zkbc* z5#-S+zVa%sSJ@uLNb(q2!+GBKA|fh#S{iF#`vZS0^I zXkOAol9-j6YHg_DW_~@gOty|v4zToq`}|Icwkb61`Q<^acNyclEWgfzAQ|OZNsvr0 zBo_*ztrrm@!1VHX^l^vag~#x?P)Q&Zk!NucgebG{`2FuX7BjXVKiU|TE>z)}Ktux8 zx`@jCt*BT;Mk3rMGjr1_a1FqyqF%(q?9w}wGP5X(OZT0sa-Nx< zU{sX3NaxmywN$nDBC3c8BRHWlOa{w#U(51(_1=0c`mX!x0Nk}^DU9eTr^25)s)|CgDeR)b{0;IQF z(0X~|D$VH#Ng_f8yY}#+7D?-zSx%fUgD?q_k?v9CR(5!t=lT5=_iR76+U)WD|JL`+ z(@5ZcmM=TLYvs28vEP62Xewfl-yGC+M4nAmnd4RDxX!GCi)zn62}GM^fT*=wvVhf- z*7L+VrC^bbNwV@>-~aw!*VnT*x&8df06?9^)7xZQ3td#;FUUe_biqI|8%1W;?E zZTm;xKc3g+#OL|6YXRSUaXHLpV|I24;xW$SiRHu*arS;oxAS>u_OZS3kmr1&sPAu` z$9#TX&(B!bxb58gxWDHuVw%mI=Od=Kp+DaL1JuH~(dfx$(bkyMpj3*>)G*E0hZQj}Sl08k!b2?~+dvCx7h$W;X%;m*Nb-c@cOj&=EwLN}_Q zSf~UK(cX9Va#SLbp7WaPIys1)L|D2=V+K=DWHwUfuD1_}788}Xt%-~=HsNkCyQZ(h z@=1!!34}0!B<=(v>db{$%$s&9R91qy^?iLk*Vp6vT6i6%ld1@*NC6CuF%uS910 zD+1+piD;91l2t~oGP`^&$R>RQOS=CZ8h))wNOiP=d2wV|B)_tg#7M9--iL~a2N6Lv zIYOOB>+*;2j_0>MPDH9Ssw8IZ8&!|u0u?gLGc9YS89*X85~@}%M)c%yt0WIAabn84 zh^XDVd#!k+het9EuqLV^KniW7jX9Ahk17ek23QqV%&n25S)$#fi(%?m(Q~@v^7wLP2!Mx4Vh5s5mqEkTa}v~m5aDI zB~l_=InVRr&iA*iw?-rR-iesR(K6{7H6oyNQ;BS)W9%RAZP!?j@Bc>r{?|2^fZ zG}o0=8mqP@%q%RVsjZloopD8e#s_VR{f>7PHk6Rlf_S@R0M236R z1TmA6e@lXDRX#;X&?MfAiV*OZCmMOa8tRM_IXxc6P#s;!s^an2zsUUU=l{W^U|;@t zUSEx^kan);zdx_vXN9!=P5bRN@(qsbc`c9qPipsFq!Uq?RdJa6c~P+32Dk74>MBCS zjB{n2wTJ?Yjb$WpVpStY_*$#Z>eRL#$!|2+O~sH z=}b!L^h9_%*!)I;Oq={0jbDh`N{}3AC1xI>OfjcX)rIRo> zsnSGnk+M=B3AQ-F!6@R=Hi*mJ7@WkaiV{C#+82v3X}suNovMlmZl|q7$3}u}+~_ty z3$FnLN#E}2X8H_D5EYq@t-UENIv>A%{q`$;w9=tG*7Qi$ymJJXuIu9BrXzgSi*O)P z8n7bm9tAI!mc$67N)|4NX#ZQc;1(7_jcZ2{$yvEjplX?kA-TLFeXh*bdW%{fi}GYA zV##?C<@j;ec2A;+Yt5%fY}Lexh#uF`zWP+3CkRn#+kxx z-0lfUZ9Lj}C2ahSUlKmgujjA-#bLMGkMZ-*O*dZ^lop4b7ZEXoD&RA{GOKd23N>D9 z1!9-`Hg*UF&2m%1-nv~bqQn%J3*PtJyRC=$aeaS_Qr~xOTHeDwR|O=Iplq#|T@?n& z>LeYqjD&Q1kD%krB7};lf{R#%WRpI$?PlwGerey{fBc_3njc?$K5d=wne$9766V&W zDL_S3U5I;7#(d^lV{p!|d4&phdI=Eem=N+(N?ze*>i~$d5@3EMVZ+yI_m8pvn8&s0K-W1BKdp9k1MAI^SQn%kQ8Z)8Z+S68P|7lO(pX!Ll|l+Gv@yO z6TSQO0z5Wrj*0+>st2P=E?d4JEDJAt$j@MtYS}+wOq59WhsNOX6f$OfnAl2={B+ zd60J9-n8FYwp2+jRA-VRM`n6d5=WqB)hvW)qtr}*TX9bzaFG%#;x3(FYnYI$_n@CPSLu8U0xQZI4H~vrv}3AjHT3XV?|_gofOicj79lAW|q- zRYbU3c_uk&Ajs3gT&<;4At0QYQO1yhkaSUjN2alM+E#JFCIOY6^R(+p>?@7+-YaeS z^?aPi_p+5mDq4ihDl=(qY&Yq{B5eIqRwnrMbv~YvX^EWCciL`)v}Sy-yt25QAu1N zaJB#iXr*6Bux`lip`4ttxMQ+sTa}4M*h)I}H|e*?{5_8|b7%C{E7t?7kGFSvYmC%w zeE<6Q@%Vx$3;W~qTIbj|l!a%}-nLsrTE!{@HvxQJZob^T5?LZbq~^i3Y}N7Q_WWJG z!aRw$pFag5Hc1*{`8iXWl43r!-CDc%K8nQGQRkKGLL~F~zs3K65nQX;vBS>K(LqIITO0g!%(5BO` zw)cAd&VxvmDb_maVnr{8*edSsSJwJ8!X|3=4M~~wmz%j#|qu^Rh znG_SR^Dey1mH<@&_kMdD<0FB?{|c|*DcFJ#Ia%QA83by#zRCJE0R}+^Q!tzuNwMIo zwOiY6yqEdIpR;l-TD5-BR{AC~0K$4akgP-OGB;Cwli0xmWgrj{(<{+yfQPnwxL1`7 z%5chHMB4PQP47)Q2DSYj&TiMLf(H^6#wbuQ1xwhxUZ6lo7u~8kc`#A>Rhi^K1sWxg zxl|h`Cu`;k0YDyRYmqx`du!eO@=COE`}uPo-(SD}cN;g6QQ>~MZd=$&Mk6JlkG&n5<9Sy2n!^2tt0a2+vb&PKFW*f zKJ8>-5}*mQVo?^rNrZ}th+=*L&5BsNR!I>m>-CDjP-%NH`{R*WZEHZ9KhhV|B!P~- zDA(g;YP2=k_WO^YW9x;m^$i7vT;G4ibx;Zg@=Bv~U1z?`GTYFhOq3A_10Zdb=JWGk zRQ3MjpV|je4?6 zc0E2(OO1PbgOm{I*v7tL>-AmN=OZopc;kBH49iE&66WdWXicRq%Xxi{ZR>B_dj55N zeQr1H|9JoT^ZyJzpHb)fs<4E!XuEfxtJZ>WmCv;>5Eb{`6p>PyT+X1%tbBF3j2no^*XkO#+fQ$7^RMvAV%9E@DtLNvl_Ab$&r=i#%Q;D^ zDu}yEE9+%vq@jqp=id&OBqkDNYQzE=(sy_expr#XUOY0oDywv_S-nM|jDRdo5F(?_ zvkl^XAhR+A+}mzzR$^VoGb@<0F-6}MLezw|QC#@~9P-~e|0bQvGDVD;iXx8&8 zBo#Wbya;>R`!00LV~3A`qeMElZ3k19<+5C>RuGt3N(NP@3MLk5$U-@Rvfx#bsO6Bw zD#bveBC3QN5%(x6QSPmcAH`(zd=06IfGTET;_}y=n=?7R2*RyLE>4pdhqOwxm8kTN zUXGQ^1ig>F$r#&P9!L5Nh^fHe)&x}^ z;mO3*6iAVQ;&g;p5@#^XsTDJd5+J6A;#cylsFErrGb^L=RhOs6ZEtPV@_Zb*CSZvr z(o+1&-wkIQolq>z%%?s7j^l>^eKyWn!H|*e;VTnhDwI%{KEhUcB9|~L-?&DKx7+CV zQE=2*xqMzJ<*~w@TPr_dmk4QZ+=V!+-~>z0b(CGNAzW73wBz}3i{tz2I=`)X>cDU zoK!Me-}Z46!nEsA5q)gMEvQAc%*ry=DyeXTE#|7#=W#v${mZ8iZp>V{NI@dZn#+7m zZjD8XrO*qoWp2OHJ$dmatT(->+-_WD$1#sXs!KIQ%;(pBzqPGx`@X&XUvGc>^ZE5T z&%@?d;nEP$t z`j1NY@28YV)$#a@6=lhr_U(pjqHl9fyDs7y{oWc8$j^&H1+5}uI)^i&z~=V&{0%7I zZ^R?xEGD>Dg>IYlTSiteL`XOhL7}a+ZES5<uq^yBv#Ur@hu8>HspAlAMi;`sdE zZ5s>{BKTq+RpVvxdv%luDx&Zzo8c#znhpj@6-3R1xm9Il0R?kr<&4)tE1lC)rGYWV zEquWYU9anRUEe&QoA6fDUx)=nx|^8=pvaC)=^*lmvpl-qwY_DLrAGvpa=Wt#k8GX7 zAJ_SaXnWmRyYQ~#z3*>hdk>Fw9VFS`gm{8yLOhR58TWS`!!N5MN}@=r7s|YBKFq%g zQK|iYZ=HOS8F6}QI)OlM4Wa04Gzha zrpWZ`nwWjO6-$Pq=>GmkYinKKeooJ?fOLIp_j{6e6?UyS z&{{K5*t(a6yNGaalu9h=DWb%~J&QcbNn0L|D*W+}|FJT@{@1@Gb=-a=hyqfbTTh3R zXBmkx=Q@7*w5B`j$V!H=4wOR*npshEWf;to(hXq(-BdSZRY7^H?u^FClHdX~qOLeD z-5V>pM|g^E#an?8B1Mn@5vV|(aJLYCW1$Q#mCAB=Vo8j?Nue0X`7k@di3*mMFQrD2 zv`u+?|M4H&ZA31nrh1REIL|mwW$Ep`ChYrJQQ3$(>%MCv*0TA`tSTD!orKe|{qX@t zNIV{YHSZM-#LJ$ezcCAyGuSCZC@8b$Jj2fKsznO)5tfgy@9C3U8@h=$A!MEDC-EJ< z5?6bZ=l7NKkozA<${FU6?bc*?h9BRNe*5?@i{rXJi)4O(`T1O=pj(lT_g#38@bmFl z=O@@$v@)25wWEkc*SfBCY+Hvgh_p%D2Hb3h>fZN{{pUNAul0;|u8 z6@fJ?-7l_W0xc^L(G5fy#+~}xjeB#=8ArrgYi3GgzRr>=J3?9?`~7~uugB*+|J_)Y zeZTGhhfjU~`9GT80FsTVclsvswVqG+Yya_44Hi%N_`%#)%%ZGPgrsw>g_`j^g(zj{ zHquhsjf+G!EoJj^C#g~{5vqz<)7SL)=0UzBuRF>3)v zQGux%LS9Qm5E2o~Vp>L`M7U>6puJ$jD6LSGkaX4da;!JirpkRw>{TA?|D)+&)+1Mv zG+R)vssPN4boad@BCEOwJ?Qs;r#k0UR%YyQchW8ZROQwKMt__cr!a%cukx>D9xy#~ z02O7H!$b+7ASNuTk&p>ZGt1{0?nQ*fl~_J2h`aXd3WDKLRq2tQpd@`I;W?h+UP9DF z`$||4mNrRfeSa&9X-9$qBQY>Bvx3(b3#iH%u}c^32|4BnkD6%_MTiVQUO^OJpO`80LJctQ7$P!e457CSXLUiZaM)2n1Pa4r!E<#etbwH7zj4p< zaD^pQl`|rw#qc;CXQV-;J63{TnLA@f*^C4P0^q_d{C5V5Snx$A z7s4t8$OO+4OrR8DUEZYiIS-pNC)7YJz!_vyXcbW?bO-nFX}~Fj+ByrRO=L-+((!C%k?e8a{NC07qax*g*oT(VYbtveOaocq{sjw zDl5QII{>+ZS=85FwGuSouKl`Qt~aQ;NBQB%MAEC!=d`hx&t&qG2~k@^l(|nEyUoZT ztSn9}#KWm(?l*zZ68nRAZUKA)CQtzWT+kHf3Nvrr-{=d5%VVqz$8u$*V*R|Y?`&cUcn zwF$E#wTeVbgv6MQ8sdULJ|HF~2GuBg_2rEl$H)ACH3KRoz0? ztH-1!0OI4&P3QU2rZLYLuj}9bvA+Ev=HI`6&f}y2L*PX!L9|s&T`tI?*yjEs0hTp} z?Z5A@`%ko`0a1GAeQ|*KZMLmN6G)6qF4vUJ<_jibb%n<}5cRz^<6ppcn|L zm8^j1=L6lVOsWH63n6JXpGBf9`0rA4qLhm8<#wh!BsYh}Xz5iDMOc*aXt^f*zi$~|D7 zklEv)JPu&Uail1KY3l-($%0gl+*(ZkQm$koH%3Wbx}-t?Cc#t@#KJ;Afixos0D^+` z`o=rp+cHNWL`@&Zkuqrew)Ah@dE_rqw`rATeqf6Y>$AQ|sEQUd9q5=a+%NZ3#)PXExKm|w@du9*^a8*QB zF$n?}P{hn>#FVxZ*Ru7n-RE$3F6_&<3j1m^ACF%}7ZxU>^Z7cDPsCX^1Xy*+fH{vj zo&YSZldiJ1ERUI9gHhYkM3(tFqhW#v2E$UxtzA$PxV77=Np(b%6>v;aAI#iWZm+QB5JYu>zX6dqom-`Fd7nTOXj8vKA!(XI5mm2fwX6NxS zZ6x4vjQ;IUl5Yuo?th{B`u@g(kz;%N_Wbz${^z&x@e`6O_5Sly`uFp^m)YyrUu79S zw)eHITr^`@Yms>#0ZCu4%TeX%FQ3Owp1N)ms=k>2EK(@Kl9Zm9MO07#iD>imW7_eG z+G&D_Qbze%IY|MEgs+#&e?TnH@gN`qU}03Xeg7Jsi1{l3c0X+FQRy~)jpoWl{)np^Wb3A+|VrHDGEribFHJ|r(z4rE9WrGZlgrwfCqKl20Pj?U2MTF5K zkBGU)JP{Xet#@gNIHp&k1r`7>kRo?#5oJ(?+A%WyBubR}HxaYF0rAw&*Kva=!xvsZw6*XQjOjLvv8M7cUEdt{U3W*s-f+FFQ zQ@L*_Sg}Vqpk!rcVm5BQ(!5&(r6;p^HrAfXZp5Ct+kBNLGNTCoQf&=7!i z{nplRFf+|F5S$?;s;aUo(}4uEDU((vFjHH~JOcnCYZ8h!&4?@~X_(@te_`??r^rIR zS(!cWb{Zg4X&yTPY3rQAz=Qf%t1*R3D5&c zR%wL284XA$RN@6h3oto>3m}o>mzr|BPnWIS0#-3%A=~cIV_P-Ti507 z+n=2Eg5UdVpVM<_*0+ntheOf%veLrUu z$ttW38fQ$*i8N58Z-Thej)$3#eS8!xf8=Y-=L@jXXSo3|5&*z>?O>2leSK5bL^Q9o z0uiLj^30=15xH#o8Dx{&!hK0}v(qyRq5?2gX<=CcsGv|7(!kAaK*zQ$l@%8Me`aMO zF$)8rNTU*uGkicG;UzLbl~ww(q#x%v0lCozm3>*b^$Ie(kMpboF#~tN%#4B{(Da!w zxd|`iXeI3ukLE9Wd6y}!5ZBHTTL0uX>G zArC-96#y@Pa_kXYGcsJR+LXNmZ}J$po><&44aUZr=71~y8Iza>qZqwV9&=t-@bo?3ZF-~ zNpEPHqo}Jkjq~C21Y%@G&zJD3EC_`aNPs{UX}$wGspcF3C3+!bpECz!q&7yREGNvAFMSyJ9Q8#& zaW6>sX97h8g!D~GHVh~9Fc{BIdwr0SE;m`a^4pwezz$TTP;??+P$fMIahwlIVOd(g zESsD^Ps_1f-?z&(3+DOEni%4^v z49hpDVz~H=?*Dr1pa0!@zy9&Ja!#o2w$9@<$I)c{LdN)WcWT(OeZMVlf1Z!eIbY%D zJa$GKA4}$Oyne zAD?r7wT8vaRh((N6EBOdegI01^9(;4a$8n`4iy-9;+c4+v>DIm{xSDQL=?q(`6HwH z@;9LCczje}3nvgB=jZn0kNbcBr*s;RJL*+0i$d0w=ef@qkT&kWBSzX;sxb|&P1g<# zbH0!id$)-3*!^?}w&9K0BB-w(#_KA5;X?3`oB_!M3uabgc$n>eMn@m~$F}VlBbf0E=*G4=`-duGg4E! zF(FuF6(9&wu^J?@(6S*;G-v$Uho3+r(#u~gUG%LY69I(?%=~~1gr%b3%bNvJ5mX2q z;iEjTpkG(fK5IH8i-ZLrWF%s0>!ebYs6d54y%1&;jVeO`-zlL*)tNga_j5+b)M$qOt3^3!L~F|9Ai3AamzA9 zWM$Gsm}Ps~K)p~(C5L%JBzmD?6$1kZ0Sh)8^SnR9CLsv-g36jul|~5|!^2Ya(zlfq zy>=g-5ro7bAXNZR6*fQsi2%sX^L##VAeSH_GGh}GEv5bWVbf4szy4?!S(cUm__HsU z<$1pD_v5kKz5@+F#sp#^;gQeh^41&b@>ZTf!^df_N0ISDB$DBP)!(kXupMcB_zXmY4DFXnC*7po#__Z>Vvdz+pwrF5b_SL& z{M1B&R+DQwE6XB9*kzS(V`$J`G@RlN!_8iG{1d%cveQGp7` z6?B9SnEpl7uZXlrA9XkcY(IV^`Y~SxRp1WbfV_&d%j>VdGBD3-da)RbUeEmiBL*Rq zzP-con6LBmzy1@8n3WrY)a&yzt77i2*YCH#|J~+j%Sx!CYkJM|^lHwiw`)ypq&btI zaySAJFt8v^Okb}zz#0CkJgF_2D0In4B*n@|FrQflfRKS$USD_G80j9)+X{<74G3ls z0x2dW?90vEU8%gK28mkk_AI`psUc>emU$hJRz6y)*v<>A`i zbiG)XhiR7>VSZwnGTMyrU~NRofVy5201&6`{51!gE!l)tYBWv*^2;}U{OifQqF#9G zRfWOhdBVnizL@&*euLFh%YAYxNRsJH#sk1x`%`*9_DA^4iUdPH=iMOZ?a#l7u0ZVPet-S6^G=x3 z8j!>nU@nKYzFe=U#hnN>n=&?SZxIO51a3HL+>f_E{$I4p^Vk2Lb}oJEz4>u)pvV&E z8Kv_avaHMZAMt@PQ@3|Pgoxwwcart(x?Pq=s|95m6EREcZMiKe@z{Uw_mA`Q)7&rD zRfMMA&$ z@tW)9eciq_S^PY(02w`F?8kZEs~D{iIii+!bs#2eda1&8xsCgWlousK7Fa=X2Kw;I zlD@QUl_l3pUzXmN4ta!~^YsEgkS=LTj#lz$k{CJCq=ASmHjaART=cq)^>R3d9RPLV~x2l#GC+XTbP;Re4)3f}BA| zpedq&7oh?Jf2H^}%z@05q!N;_M1hcrwX69I4~)c$umLqt03*SGV1q0lXOWU(VzC#2 zHrWU`u`(^)03xO%1#%HG2cSjRqbv#Z%ghz#U;bihf?C`VBx26;K-s|s?!z&V~a zUVzn7E2HvcP!a(kVBy}SHJ>A9rYF`UBJC>*7nbJ$A(}OPAYxmz5~0d`#y;ef;1$ii z44P&cz$-Di3%5uMm{TMmiM5Ekp9MjH0$hLy>0#pwPQuJYS{9Im6C=XOg98Kl(s*TA z`||eQmo?5TM@&IfhQ^4~K9K=cq%XQ`L||q>UrjQCe+$==C;>Barq8rV1h}labS$=G zjQu_br=7?IJykko*%*)+bBHK2AV!j#9R=2wMLUT~`WVm83d6R(U~9eS2T8 zZzo&1dt{(;Q(}xq*gOHzUcbyBtO_|YAj$`TR{a|t8!5FC-IJdZ~mbdy%C5dibD z+%DV^ZEMteT=^fj`O~gG|%F`A|i-Zr^GOSiqNuNR63Jv*S9Lj zB%pSA`+>5~aoBi}eD&rgBdwQNvv=d+w7dA>w4@fGcjwlE-eFC~D7R`vP91sqfs!MB|QX^JmkNs6+ z;PTdZ6BZyXhxzb)6*hq0m9N0e$Q4<06LZpID zRRL6pVKIa>V6X6s)a9C0ByC1YzvP@bZR8G=g+u~H#Ug2L`;(wVt}vV$b1G`Te!Jy( zMA-5CHEc&StK&3KQCek=r|0hD1V|F<{UY4X&rgiJeEa+M{cq#*aXy|2K%f>U+9>Xk zL)!*eEUi2&4k-6?pg4&kX4I?zX$xZ_0wHClxp_JeKukCni+W(Bl}+um{8UiV*S!^4!iNbjPsE*K0+>CGVtX2Ps2uwd`CN(c~&=Kw%bRoNJ> zW$hR*^E=8Rh_r0!`wU~=a!BMzA1YLqbE5P(38fWb{c z$j>t!3W~KsRAl(M#~yy1*j07G1T^n*aZj@&@_?9#;V~}ne*$mM$N$OsQbo}Y1P+m3 z`-(nwTQ2W67R-3rY3F$KezTnCYxp!4N}pzSy!MuheU5WJzx}`e$K~?lJmU4we`ZE* z?egazw{L$7$oc#kbFVBG6715J1W)nCZMnSzVTHlh>MzU$3d%T6f1GxIHro140pfhT z{5*J}_4^I9&F2B7ZCR_lk{*voJdVrzZR@&h8mEO%QnKOuJPF?cLsc=$!-0i`Bdshk z83h-)D)+Xo2sFmdWCe4(T-V!=8gc*pHTV0v{bT8G?beDWkhNtQe$VGQV;2FecDcMO z!=^XI#=u$0tp&jI;~pbz1UqKB&^ph3x%@H4$Z|h(dwW9xxvTN7K#W9GB(g9tpo;d4 z39}%u$}3Z(m0Rpjhfxqn4CT_0l?uvjQjzeA#gJ#kOEi{+nHJ(g$npC0^Qf;>{y66G z$xVx~iamdqNkvk}jF{&qrWO@sRu1H9dO_})0Voi~tjZT4U?xaUn?4UH$JUbAJ;0L+ z2|?Dalx(~r%|QS%GYb(ju!{SoWgq*U%Lpsds!s0I`i9OiEanNp5KWM%T1HT01yojY z6%_>}ARvcNq7-fdq)3!8$15WXmy(W%nMNw2$V!MVLP-HN=DA}5<3cRl7NGEbxD7&b z0u*5u0{H^W^-bG)Eo4N&V!;kjh2j-Ho?||zKbaNRCXwb-8%1KC1~w`!xw#jxK<9un z!_bsY$~v+qBe9fRI-*7v00M}=90Qmzv!Fc31TSeF5zC`05ReG7sxn9bF#rfbg%;wD z+PJEu91N+UHne2DVh>i#iU=!!%7nm}FV-OH$Rxs9r_Y@x)J!hKLLs5n!Yu6Yc|_o% zjgTp;qL2$>fK5n*h^DLdj!ehLQ8}1BdUHQtzYjZ4AjQInj2Y!vO@N71u~QzS5+N(f z&hs^Fp66MhsEvxs4H>~wRFKN1YrE+7y<*I#4?a*jOfF*-DwRogPIrhzAR*ywtF*=d zRk#r>=lvM>-R%G%63GlGBJP<5!?;*vLnJ_~A}THh&%MHkP!MXCj{xb+RN$T=SP+3& z!~p0SQ6^RBb1+G37f!~gR?TrMCT0bqi6hD?D&-1|qVag0_Upelw{3lEZB-TR>)Us{ zeSb%WxxZeIk7Eu1NbsEZ1hkY?LMiUjmNkL03b)ReWqv``iA6fk z8RY9X)%C(fIL7t+kLCRxIGw)D<4l-Q87P_VkKeQ`1;SfTUjPxbM?lwA7;I1&NE+>QB`XTlx?oyE@c4iN?tVvu9{)MeSrMsKMj0nXdYEgShAT9wZZ&yh=Z9u^+u+N?Q z0xZgve#W`02A;#_J^X}P(hlEGH^WNhC85YG&=5lVjalYk8@ulZCF!!U5DTL~Y!z(f zqrg!*A*2Bp0xJnc`1t*_bKm~sAD6%VIrhirzkY)yS7TDJpeTescRTC}%uHI9zCZK% zT7P_#O{v`my#T7fJkw*w^AS~+20EARM?NT~tk=Jf<6rlG{x=f>GB0Z5iCj>i>jHq> znQFzeY*>U*Q_ryTK`4lgmmX#Sjw(Qmg+--(Ys;F9$In+hU;T1HUaHbPGhRduD$Hiv zHdM+iWs$YdVHIFzHcupms*1qkoc8s^E9vW1B8mW)>$mxwl`m=Qtov!B@jAxG_;s{x zp>>58UXN0zYlG@OQ&I@AiFg%4F>AZMLk_FybHMkogUA@IQFSR+ zaF{+Hug6cHXK~*j&&mXXzTGZwe@pk@|Mj1FPSMNr*XQ{>p06jpZCQmG?G4u-^7{Rm zar!vsG5WH#wj>mAL#Zl`3Ho;9yyp?Zib^Fh=YD+tYy5nzdRgB7pw`B)W4}i_Rg

      CzkS6hNiRW_7%dd);F!y@sjLIS{S)X~C-TzrNO&*NMK8TCXuHS#pMIW~>w7JQ zzhT9GoH1;kQRZm{Txo&O!&!Kpc0wfk8}88Tr1&fwIeAKA^;%?YXZhs>JI==00rfc1?lJW zU+09PD$ZgjB-SRaCngk1yDaTn&CK$cpSmpD`;Fu+Yn=BFKOaF#h(P6@HBtddDKdOm zCHM8MU9P$|WSqHM>=0Su{Ix4|zn}Z>u8ZiUwRff)Vj{%3{|wvHkF4OR$JoSD--z>9z*GSjI7k@;)*!Z$)fm{=sd z0Dk?mi6Rnzt#$}&rJ*oMGv9q47N<1*Ld)W!4A3ttFpb|&d%XY>kV!Pr0;a)4!Yq!% zz(YLdtX8 zk7rpBD6j7UgkAG|B~4&}L`Zflbg3W$#ZAZSaDUkzL|eoR3-f(U18US5A=@I$)|e?Q zsyIgYIebn85tYJZQqW$37}?v#rD=dbEK8JqeMbc%!I7N4#@4e?5n2MHXeSB)MFXg^ zv8M=rJ&0KSa&6lN0A<#7qc@z{k+uT7RfQb`!LXA0l9Z7Ll9Q;cjE$Gd&h(vXz|KfP!i#kJ=5X1OH-h7Kf9u_GYgaGG=T@(3T}U{5$}uT*l*3d+ORiBZnnMo)4BK>6r{* z2%V+96T=+jIoq;SjvONunK?Xwt!RLkbge*23(T13oQ8~m9%TsNkjuKP+%y>@s4W! zexx`qhBARd*4~z7?!)E;tjbe!VP5il2`_ECp>`IS&%YMEu`YgprHAxwU2pf#|0pJHvrYBO#%DNKKJdSyPaZ{xxO2h?Kb{^WBpBcl3&Ew|*5t)J4i?j<9KOZky zTc_K(f2b%Edk)_Z($34Zh)EK8q)#N|FH!t72o~Ku&U5ThFkTCBu-5RRFO9gfs=Dw9Jdnf`~xyFpsth zsYDzJg;<#BmVkoN5HZGJ3~Bu$YinYq)1OZwV*!F0=O-qSNYUU1!%jRt0Dx3HnEDMx=j$=Y5s_QFj%U4I z|2%QdZYj_f8S(koUynTI++QLaT~?*Fh#Y2SP-zqZt;*|!5o5Z*_I8~)_MeaQ@!%+0 z8&V1B8IG9CWg`{@Y`WNXo5va9B~+O0a>cHdVRZoX_3a%V$)xN1ANc$EMaF-fcLF9Q zmK^&d4Be|hiB{2TzkaVd&hd&oP@4cy*Pu8bJ8zs1;+uZ_{=eF7egFI4x4*4v6_`oh zzkNUc`!6?GukYMCGEIA~DCs8@pd}2i!`8f8UzkD7^@U@*?evZ#O^3wa8$ZgK3abgNUi^2pVT`H|A z009x1wJPHLx7H1rvjRCIJ?elYNGvxL+J5{`VhY5oskC<6S1y0*_Nym z73O}#uo%O`0990wG19`rJz2V5)_!|qVVf_H9lEnNFoFylXT=!jZ>sm+!A4NFqO+>B zEi~&G$5-K4Tf-zs$QofzV%$ZyD+vNbL4L7G3s7~TO7K$HiD3Z+1k$w; zU4fd7eeOGe$26i&y!Q2*cCI+x$DBhzrBUv$O7FTLV|gOzS7#%}@VO&xBX>q<{nC2& z%Sv4^b3S{FSNez|5(c$^LusV~e?7oL08N~Ep>RZ&rMnFP=cbuo`E_Cei4wM)M}1A9 zq6HLKBrJdhRZ&P}=P-LVTAAkY`{VpP0Xf|(APT`oYOxBjCR!F@W!TK)fXKRDY3W#n zga`~)VcuvV>|q{ugj;0*aod*O7u}i=i>`AY;lEk8-nJ$eZ5P#b&QHojqNdt-g8xXK8!naJe}Ku6M{Fs8*c4v>PZM0$WwoQYFb#r=h*=lu z%{&SX(2$D+krT=h16xT$X@rdnEMkP6m<&Xa79+SVBhK;ojC|lyvT9o{0iKC~444UC z6s@oAvYC6$qT;Y=yXUZiiUMFxQm;{5)EhDaB^E=#JWe~ON6^-zENVbeL6Sg#5Mvf` z>q}SnG0%scHjhVT>DrmW!wVBKNQH=4HepF~_k)2Uok>a?>l*1r7*#+hYbQ}Gz)YJ% z`9|1g%o>T+0K~)EWf`Naj`jP0lqLk01C~YxY0oNEk;}EP%x7U$WgIX1{)0rMDP$&j zL4_MjN6PdGgvhE*r%e%Y00b%+l?5PCGbf>d9}bx+9HX!pQRAG!kzdjnuF8|Ba1pKw zC>v))>Dt-?ZM~lJv+RIbsJLCfLD+aq*y|?WPBlP>LSn8OUQUaajd*<~@Z2-YrF9a? zlr(d5=?ki2dFAQ$YJF2(QVl_cH%0dOJnRuT*b_Iy*4onYfCxlVQfA=rU;^QW4CC`Y z?IpM_%WYkL5W)QT3m9Y*Bo{8(HcXzcy*ya7U*C{{ODbkX$Z|dBJ)*))`?oI-+&Pat zB41Nz5nZ`21rpB>##Rv)$-XCqne?TP{bP;;sROUFES$(YVLSvl=8@hAN=YIU3;Z1G zAAgS5Gu%Yl`scfUKH6;~Xm9HUlEAP|Kk`rBiA*3MDI_wF2l7>xg=-}x z$Tr5$7^hHxO~fOtHN4LKiHxiZdM{q`5R7`>cc@oEE#KaSHL#W0_&SE4N0=*N1@!gI zeMtnA&Wf~7YyipV&G!lJ?bb-5z`~vxyZHoM+WOtk94AEeI1#ZCQx#V^A_6VKLZDFt z6SHPzWI#j(d)hO`U{!?52vS8xQ1SCf0IUQ6kxpIPww#dMI|*k&zPy;RZFZ((`56oY zn(!*R-GtTSv5#MomgJ&cge-zZxWuN15AZB2P-0mL8bRxCZ&{OEaN@Kh!=znGy}+b3 zAWAVH@VVzW085t+N`=Y2F(efxkt_=kWXv+kG0Uv!G7`?`z3HvBRgp{R`TRKd&mwHS zjrjsc4?q3h)*JULQsilF``jm-iHrgbYJw~|W6mMfNrXrckx`Wv$citbfukLknXrFm zm@k$IDvhNvVMZSN$8kI(0@Ba>Ke2PWZV0GotbiOWm_7h~yZvqX@wUI70Vhc>!~hrM zm~-4mmgsWzGsowSctIPF$N!<}%eTML<@?sZpK}1+nOAv3Nu?F~_12dQFMa#l+x_SN zIsW?RxbGw_sDr*a_;&k8$3QwOPUfEb#F02%+R9zWGo)P#8N5)m>5^uRdL!QFLt>hr zjz|Ck#F2xkfR+MfDrpN+7rl{QUq65CpASEFS-VoJ))0B_FY4GfLgBKBiaAH719D0t zf1$4^APE3S3MC`L1Bs9Y(JN=-nK7vZh!KdOK`<8A3(^y@0l48_;H(6hKKBAjGG6HV z=YRM(UqAmk>~NpNopmknuo+&++;6w#?TwrIc%HA{3At|Hby>#iF(1#Iud;#2)!}@8 zP@U`YwO4X%tZhM5moMB6X^?riqtq` z%<}~<#L||Psik4LGF=gLjL%_@JWrtj<#zp_y7c|^zs(PK05(>E2=u|d2h1!3`|`Cf z=}6V;u<6m1eeGJ1Wtc#!mp}fj!1;NkpXO8Ax-4r2Ax%acd5efoI-G{ByABn#jGfW`|6TUrJ9 zh_piNfLZ}83Q4+LD&5Ab5}whOsi zTZmili~wPd%s_M;`>}u8dG^Z{0bARE?W;E~+K~%p)kwxJD$DXMEbKgNe^mf=(Z0$e zObiH8z_OIP?Puf(Kt;e=#7m(d%(5AF5&*YGKtA@dA3$qF5+IARbOhpHq~_<{=Ay1n&_&Q`y59k5h-;Bpdto0Kckpf`D+miDkBQA3W}hra?S@>G*E!T z;?5g&N)#8`pReQiU|4b>`WIQCIXCws=N=xiEKv6P{a@SK^7u8zZ2hLRY}fDSaHo!l zHrBsSzk>~NTT)s7G<9O#Gp0cmurL>@6hI-cN|jVaRaPVw5q=%(UrCcH0aKQ~ zEboGpBm5YU)K+b6K?Zc3^9c6@Bq&ILL`sYbfMD9Npb}WxJYRqXm}WCDiItEt(9Z*S zVnl13qS|rVZXim!%>9YfC|0nPwa@)A@>jckClx@0WC(9#Pmu)=KQM9G0D0Xpl+APzy8&>YYe|!-YW3&{%6U!|LgzCAi}E3 zF$UoxRB1DY_hn&LCMsjXCal%C%ey-P9_M^OOu7CY8pb};PNX8Da@^KGV7bwLRu(9P zA9fC;o*A;Py}gH@U{1(+o;An*@!ORsF2IS%w5~X^MhQse9LFAha+`=igoqSjDJjbq z3{?t<%xHF0g|v>0Py|5kv(ga|nY*+g2=b^2vxJnONYx?YOOsL(W|YJ%8Ii;hQJH$Z z0)o5893q>~aDTP8KZuaART|I;f6VdU*%sZFP7Az-5rmyYtt!&fp8N3O=PMmt55R=1 zlu7F*+d59C1IY?)5M4TS(e_tU%r+11AaGE5DkB{)`bJxalS_FWijsaW8b|m=rO^c z9e&)t{ayJoA0M*a%#9NubGg13#}Q9v`Mm!>$LDXibB?3w%6d&|1d`If{qe(I|CO1Q z#KZ&yk(lLn7D=S5UWs7+@dMH8WX3{J$d_a!6lEn50-5_umlc_1S^KtDP9jB?{p0`a zAOCmcQ5Ymz*sy&M`wguF(u@PDSv;douMW$%rb-NFN3T zQ6|&?u?heags3a31i-vMVw?>LvJxwERwht}c_1+(s-%~lXNEQHhyuV^fW#tQM9aco zhwalcK?I915s9_0ZM_tPA15NRbc6=Ugbk))faA3LKc%;;zK!{)0o?oc$9Eu_k0&|! z@i~9HE(_|lpm`Ex(lP zk%4BJfXgB%S@?x^MZl^`h|F2oiIhqh)Mum*Le{P&l9c&08w2rx5RrzU8DeK-dPTuJ z@?Zb=gG-4PLFFWrm_RiqU~9|!<*k^?AV$7kf7OU^pD}5=YT>rF<+@(K`OJBo+E-x` z?a%$*7R{RDG_1nc@H!yQ%wyTEP>RJls{Q#*krA>#TI*YX^>+E;0rUBhM1*AHMa<)Q zhauEx`{U2JKby8Gj3Ux*HfDT&%=1M>+dtk|HDd$e91&^bc*Qud0+<27&OOAJ%N3B! zW|$x2!_G$`Dlbe*$e9`LVUEPoE^WOm>mMQ;_^cdM1Cya~;Xcm?WT{@cYRp%90;F!e zUsqsEF9NDyaK<78fI=n(;VK83+~O;BAkwfwM3sOx7@Gjk=ZD82)fk4EiXFLFHVTFc z*0mtMfBVP(XVd_Z z-frm=MG^& z0s~CF-q!WUy#MNdyxsoeAHRS7+&_M!m*~Q47uBejpAG^eqP3(z==_Cxp|%PW6@(w* z#tW1nKn{OtF(79a02Tuz5om=}E!5u%%J$bBXCq}2izCC=<=Wdq$kl3i*}jAHjC}t7 zEA0R(vz@1)s9rbWh7HP7uDXvGQX^fD^SNH$f;2n;`?CHh?P(9--LcN&=b~>YdPdq| zXxX>}sg2Y8px&Fl6`&s;`(#-w4?AX)%J6KtY*!mw)g$R%MrYbdU zoOhF@z5kE@;jfb-FacPWb)Dna`uztkt33_`Wa@Fwb02P&<^Vv25E;X?uf&~IRW~WJ zKzr>0dO96G&NCO;w%azI&e8`F;k93T;Ru^yVb8N|$cymOxgw?m#`^ZXTAPnwmgWWk zfr1HGsEP||Qj6&`Y(`A7YPv)yv#9idLay!h?YNJer`IUhiO4-E8n_`TU==}SFthdr za$;u2LC_f!3WPaxx}VIw;#}9o&PlR>P$4>o+d+s}8YkB4-^-2IzC&zny2ZJ(H0>)E_*o7wNFyz3ghuCl^mgr+8v#V1 zWT42{pLsst|MoYQzCZpN`(3cF-~SNlknD%qaUe88fq?WlUN6iub3o?h+dCk+jhx7B z)5eekfDk|g*4ss!j>kUk_c0FCg@lDvcuN~|{KdEH_4Zv+A0NNZ{pG_lV1Ir{e@7u4 zEKEs^vi8euTN~Af&5s%oX&!DiauOi6bt6ujM^HR||L5!X$8!1eb^cs=YfZ6B4!{3D z|LyUb`!n{lV{5%55SZ(&m5fmz3CYZJpU9Lxm?%8#@KRujX^-W$E^8m-$%{sebAFPh z0J5&joCmkf$6g4i4TaWk-`CrB8;?Sm^YiuV|MBOYSmbgoBGfMZdOi-h{fX%bW_gVB zIj4azXq7 zfvBhfYE`o%Gi;6>QVKd0c>D%(Sr=)&wLa@3&MYnzAq1ofpMprei!KEfhml@DIG~t& z)tLM4b8s%1<#X!N9gPEZ>;3yB6%!qXzkWXaaWrUvQ5aFfkw#5gwSdefVMav6@L_32 z(f}110TCf99TgckzpSNm5CO9mSV58sWCtvwhAf-}+>Xzu#fzCeUX4Y#6B?OF$`=}I7p)f5CYv5fwWa7KmvMsVrH>mBTyP~&fU7=(z_Kb)wXRZYV&@M2(%=jcm~7u$G6ibRl|Ve+;89hwByC7 z(I6#g0naDYlrDLkVEekRw6)9i2e90K|4Ycyy-<(S3mgj21|SOqOZKe+eD`dZKYn=b zpTGWV9{cV4-?)p%;gN0q=6LM?`fEP#=t)Sxl~pk(FB>AyF(AQn%sC37ysEM-ou!rN zX*+@_e}_VjP2tw@>UoS~R2X0)1jGa@D8s7sw6LV$#@IP9s|pgq4LmW0urZLxg;4Aq zF%Qz`m)lx`4Mw}7PKro=aI&&!rZCRm}itx9Z{Kp z+!`2XV!n2?!2*C;T-B+7F&ZaS831t+FY0bcjnW7K^Zb(C=5qj)Zi2dI!2R_XQnmMg zAhH53{1y?ud%R{egReWy(xe)8l4tlC*`$3#eXB5HWD<}GbXuL10R}`1Rd@HpA0&y2 z{c;V9LZnd^GtNmNypSLkXn`d~UlypGKKwYOS~^8l9B1NW7KEPApqif;G?%w;v>w%v zZmW&yDaxyr9*+Zq=6sEFUvGVm)6bncX~Xm5=jHu>UR&jpv<2%cJLlXO8%w zO6K+U=lk>i6IdVvs~~`&GYZn_=ZRIo0t5vHon&`E+?S@bT_CTV< z7$+n^X1HZ~T^uVj3Mc^+nRV$l%o;vWj^D@U5u?Hj z5W&li2|jBkD=f=8Bf+NzSC!4-pZ~Hs3TwnmOoY|~jLgVbZZ{!C)A4*jLTJStQe`laGpVYL}w0dCaj_qO|YJ<(lU!a-b&uyKVRw<5hEz!_pVxmdQ3E z&m(DEZ|_p<`#E0cu@7^n1k&U6`UoFBb`CCKZLKextP8aRiI4;m3X*`BV7-283kSmE z`JZX*KHcVd{O+x9x9j%(3W#T9G~15YU?~>e*f2g z|4HkzzWtGvA4eU~Oxp_Z32e!6QBbXRX+DBh*1JJDeB`Fri{#DpGo}ASVj4 zqQwM(V)DwWz&J5FWGCqnK64_P;Z&qAavWkWUIWF)K*%qaDCR3{&UuF}!YDZ$xw23| z`vyJ$ydcA}FC8Q2_nqL!&27f`&pL7kUnDufDkp(C6dBMr4tKqWkp&LcP_yKCMrS}f=su8 z!j&w#;CaNK7Ql*RH|)TRoAW?YfroT@g#%=0}}JSW+!Q9pJz+N=Cf_Dsg2_)dtL!FA!`OY`p_#r(0P(|MS1* z$GxJ`$wy&p)D#hOl4WKx_mvx`9n8uE;lp1?Rufhza7gJ)f?xxQTGKQgz6St^L_}p( zMya53Kou5?l#pR0>2kU0+aGA+$ES@W2RV9ct6aEmtNhRZ@9q7^@BjK=ulrvD>F1}N zr}yXi!nECvgSBI#mu;6H`|p9w{o6n4JoNT0mZcK|ouE)Xz_D+7{Qf`jyi<68`=fx% z8*i<5DeQJYrHwXc_jF;=NK{0xql$Q zx_$!+$dul+U#cnqv%n04BD-al;4*8XI=%oi&ZcAxuBSlkysUelfk zfhKeRJnTvA~10U`JBR%Ftc1pRkzkRG2Qo{_VX_{$K)PGEyN;3C03@&v~WwoOqDV2yg)7Gkdw?|A^?@9Q&o%f>6nDipMN3E zwsmUhOtTQ>-VEQqL)mXEe{Vkxr% zAZSQD(qcL)&ryBpL^Te#bEkFLfBxLs1&KYAx!D}3ecYcFp>3ng7|x8Wi;wWC@`;py z$SP5DP9%s(H=6+3)=N?seWL_-bT}hSuRkI+17lj#q~+^b1z<#yJf7qE!F|J`svO51 z66mskO^iV5UNz2fK98ic)3Qh-h6F_D$W?C49f>_EGN(P`9=vQtNg_xJ$m{i5(7xzC z9w!Qv7a~Pv(U*G%%CLZ{BHas#s30@Xv*<#gj9686OehlVP=f?2nbyT-1XdA3ICk#W zKMS8}pvx5ikKZ45o{^XlbbABHjEO9LySd~(f4c`UbJHx3c^(fy2owz;X&&xGD3^Db zBgzom!{UYU0vL@50U%Ga*Di3u)b!nlhi9da$Km5-Lgfaa%s_RNO%dVSh1aVM13+ol zwAbtRUpb1A{0P!@Y40LSy2ZdSq|``6f?!RX^L$8Oh_VWlQJa?X+@Fact3=K7bsqPZ zCo#W=E7CWrSNJ{SWZq?6A}r^iBsC!Jr;X{et!=x$t<=ZI=iCoFEY7T?QckSb>sOZ7 zoII&ruIqMVS$z0BM$AALX)Wqxh~C$}Y+ldvoG~J@3I!0x^SS>0AD6$s_xHE?`OtNt zBW3+Q^;f{zm&>*P02hEv{QuGPCtH#uS<)s*cVK2fL{!b(BXX#}YT57qM16WVU7gt( z5$7FY^LoA9r?keZ{r)cd&9HQSmS4x` zKj!(-*!%rPz1ejsx8Y%;BN@^g36hMPhOO)4m-~7C`q%mM4?BNJ569D~nJGhzXhg)ihL= zPYe;#M9%By*6-4Uq>7{L;`=w@{`vF&H$R_oE&7jdOuOKgxDZvWJgDCvtm?`Kd$ zfg%KnjAVS322i7tRw~ef2Ff%Y`SkVYcxxSkrN{A<9(@Q*DpwmsvPH1SO(Z4EL1rab ztq4fzgU5*LXu4@jpO^dTxCmO@Je@S5UKA|iYX!dQt0ME2xm31D&zfbF$(4&lDqH%c za_igM`SFpUvELC)tjrb50Wl|Vv9iYzb5*h1S>fDT75Q~Jm@7%SwQbs2ZX(I8D>Hz+ z{JMU%x3^M})}_eZqz^xyX)bLL3o@&)&NY7jTU=*l0oA0p9YWl;M;2YrpX+DT>!JZr z3Na{A)8J_*Xh<8q?JS*mWK;zrBQm6EApk4(h}0T{Mo7^{UBeP~R*5I`3Xy)>zx(mb z&Y_Un`|S?m>-b=Oiw2wQ19gtcFFw~bpb=#C=`-<>wQuBS7E-0QwmiHB#*7P zok&SIeA#ule-arHrJuwd2?P63;Id9>SYUUPjsnQpOszAjky-jFMzC2=GZ zC5h~hZ?QbwhV;xTZOE|Wg=X#EBB%1EOs!GYB&}j755E?pF$;iseYV?1y<5d-caf&s zt!Y2)Xk%yEV!qN2&K!eTtBU-bl|_UKsz{-hxx!Z+3nHjKA$%4c!VQr@#KeMdN~UUlV);oj zJnT9@8gD??`&okjye(tv}`?&8-hb&*`&$T|ERD1cX>cs43KubR>%C5sb zxoIEwDlal_z3(@!6=q(U654yL$czdG3z2|~_uj^B-|j`V*01B^*#;|zU=QTwr;IJj zaz@paRqb(Wt;KOjqd@4)#2O5I;k=04rrAq$lLjhcrIne?zy?U66Vg`@M}Y(?RCb-vV(PJiML7kP z856h|3VD~?Z9f0tq3wQO{)B+r;O+Y+n$I)oswfn-ed}ErwO*g=v@w3uLB+pHM8?*} zZu27$^LnoHlbE@6K#8>XP1~N#z8osWOr(9hNvXxf%1xCm<1nrUfWX9*2*Z;%XT+k9i#{i%CZ@qg*x>EhO&uo6nb@p9De#C)x9rYiS|f zE|vicR2Ie9@6z_;`75URT8Q&HPA(41TwWOjmd<|tnxCJMKHlF%TEq)l6^>~T;w)%m zSRzC@BZ~-3(v?MGz6i#QK(MxU+leS=6?t)xmMD`-xs^I|#pOgj>MT3)@{CqvAHV%u z6%{dPtgCF2=(kuOejP;FM^|kkV_t`yuX&w*t-cMV#$X1!TSbr(xan;l_YTawo}w+yRO!6kH7JJKLpCy@X|;igIX~fI;gSGC{Wn)IhR%XN-8Sm zs!AiFv?J2Ay?w#O(h%+yD%=I#%j0@>9ZLN;evQZP^6fh^*Ym??a4BzFCl0rCkC|;_ z6j#u)>wG?uBC?ST0+fiAD_1yW>_SZ-%W}?Vxv%51r@Q5Li!p@wxITWa^OKc(-!i=t zK(P$-eE#@hbG3dK?Y!Mvd)Rao^|9+<_Lgo$vVZ@+z1?e3{_Br)nemDYswh!zkMVYI z_YEXz)5};;IIq`L<_8uHH-5K066AR4Ut^yWRa~mWHlb`?NNK1Ah+e~0z^c^LV9r<6jpOmtjGJK zJR;qFx|OtE%xTi)oAxIC=5+<0tTp48)_wcpv|PkQCK>RbiwZKr*v-E@4tC0)fNJ&NKW(uO>s(b6yb_cnEJ) zjg7t-&82`w)Vi*Jt?L(ZFX99sR8=<5FR@Oykt^M%v;mSTNf)q)D9K+q7ZFC|3I+qr zV2Vu3g%oxY-F=;DxjpuEeXRA|ZV$5=Sd`9f5J$!eKbtT&5xr$Z#mv>2y0#|2efR5? z3*kQcAT*@Mc^&7UaRy3M+FEm67bA82?oocc8U;j}?&&9}L?pp7I_pHb=s;x~jTyq; zxI`c4T5&~sB0vIZ3MI5EO*5l1SgUdhRcYuF5eZG$1 zS8ey?l)7neER0p$8gxV`i}4A29aU$2n6*s}k*Rkya~38KgiEt?QiI{%Gju<(|{sZ7yzVad}!=DY|UB zwOc{7QPdS)WRa0NzDZMVEkK?ZB}Lk}y%Va)GQr647}uvSI}!yVZbSP(WH<|T3j@U$ zYyz2S!KAfJR`oUn67g|9|G917L1J-gXIs;r=NR|W#^+fP_uF?MmegFI8J0vjZJtkv zw%(vBjnpeLh%1qQ4K~&xeaIMTRe-Rvd6bk?gcpS5YhzXsFVf7&q9PR_xV5qhpO!0_ znG{4x#3dkgJGBi!bnx}OU`1VGPH<{_i#$ro+S#b(i{nVrh9tWdX%QgWyW9q|@BRGc zC{>ZM-COTrE6mf}dA0Ev`#YCPQ)!Z+m93K2d1kEf_O0zhTWhx)f)J#ph91m{QU~)%xul z6~+7r2s7H_&g9%0jX_MlRCNX)@#%Kn`|3P&=QMPgfAY9bmYEIW#K51(XOv|;PT|4u5+X!WA9nYU~ACA-fqrgP1_1|Ga2pPn^3&4fa-TjNp zF|;$ak)GNIw{rg^k9*TAG=-(_5%cq3|BP$0lX`d|-JhaOWbhcw4A5NDp0B2l3X3f5 z8?R0o%8d@I)3T>U8v=>qN<2WXxk&AisD*CC8MDL7W6LYQ223FT~(#D7fN;O zx|48L%`@+wsokq)o^xN(%5qZ5IP zGh$jiWq;e+Z+hPCn4@p~vDviqkDmmS$33am`ixqtn^{y9wFV~60$T>K&H@+tj2Aiy ze=konuPDKW;D{h)kj&SKms9Vamh%ih?D_;%yX|kk|9iM!=f`|~#CoAdar(8+=dbhQ zN7n%nDiRe@4tsi~wko^Uy8Jq;h(xLds%nL9t=%55W37+t^(Qg+{&stOd%b?JHX*5u z>+|RF>rap9Z-0kwnWQ}C`rK}NYpv}RPv@4>`~COdMfKz7xvo_;*7>U#1*c8h_ebA0 zFwtn_2MrEfc@fg84A@n99T#9(6PeUD;*Rt{!DGuCXU`WnN0Y6{R~*w%CZuK`03GHh z1ENf1pcZD~OLWyt!#O`cmRY7N%k8$e{?Ng(IDfejHhvDk2RmqSD4&R2=Iw z%-gQa;q$CHMWI8Xtl6>zLQN$}Y+X?+%sE1aGBx&U?G9lMAT7#^wb~$+5(`SiDl|X; zd_F%Lc7GaCv8MFCcHdT2!sMfxoKk*vg-cZZ_ht}NbMr6L<6ve$~li8y_5E?Q5eI+ z8-bWBgggZ|>gan zsctP55tjC4Id*O-%vE3g9KFDv<|`ss36dkzv+|2r0%@5bP8ANjm_XV929uW+Bg;uR z!_#KKn)Jh85eEhqzh)h+-@y$H$MaXj(S%i)I|pKYzOan*7RM?3O~(LMD*Re$UU}J! zb=tbT&LZl$!cU`8(H3iw+*C*91)_@Rw};zW)02?p+wCFRNx32_gS%!dA#Cs8$m|uL z%Up$k$_f@iMbtzayx+Jz`gm|5$%$j)>FKrBb$DIP~AOENXQzwFym|cXdo>okd3yqUf+sWr%LXwDR0;4=)Ql8*OmXW59Uwc*!E8QL0^L|PI& z&BM!pDlt{G-uk%RuhV=kkUP%gGNYJL97HEAQg@EVSqUHaw>H}G`nAqi1%)q_CajTJ znarTphzVak(oo_Z#I?LqDy1s9jYQRTW)=(a7~sfhCB%q~Z2R7{r#ofFI&6KGsL%%K zl@V^9!9uEUD!rW6@g#8H?jG5;4bsCM%6+?2xllu6dTfP*YU@CeWHq#%N972Ds^VxLZa_`*W3B)#eGN>kZ@-YB*D+Bf&&iGUJ0L1Kq{!h zxy$x=>tnDsut@Jw_v`tSDQ^4LHeTn?%x4?D?SJb-alO_&)_O*)oXlbCvTLcd zaT`rryfWrTEu!APj-x6!PZn%_Z&-)rXO_+@SDd=NrxQD*4dt%VNvQAIZq5BymO)y~ z;2Nrrgn0!q+V~1jI#mdG+s2huKzX@MWhN38?%4{&8Q%9dr02Svea$)et&eZ#nk*Z* z?Qg&F=zYHhRxAj!wkD!$o=AYHnDPq@l9a_jp&D1S6+AYGrWvwgJy``V+IMaD(Rbp? z@QTcg2qUSi8L_xPsYMJbqS4xZd*85CyAP*aKmU;>WBeYssOOK@uYaPb;M`buzJGsg z|MvIi&;P;`egx~jy*&_uS;>pFdV3V$`KqD{s-VV?ahHN?d*`;lUO(1xwSMc`A&N3e z((UF^@vncDVc$0MTGu2%WfK9>5q`RnjQ5zC1vewzBIdeIp9|1*ohLkrE2~;e0~?8D zO(7*B0)aSJB@<|<_SQC$#fhBDakw{oE%;i~7*v~(wAP1!7FH#Z5S5}biHjsXIhd77 zyJ*`U@4B`5`jwf?1W#?61kpx1!dDU~YMrM@sotubK)P++a$do*X&=I4=Z88`t(rda+4Y5`b$rs| z#&3iUGpOc@7vz)+nV#&zy3MTOUJF;<=!yvbXRF*YcU$7%f5-7g-jG9 zskk=@JCQC*zMiT*$s;CH6H#KKsP%c|#f@%4&CKn3Ma*j2?wuHAFXm`{@X!cU<~ly0 zjWEvRb$$H#@#9~%ma_D56Jq3r>LM7ot+1E_8DRK4nW1}E9ZWsRz+8;*D#|L3M7R}A zl|EQ?w06I@{#fVb>&kGDfh5d`TPByXQcGX%E~*LgNXx}4#RWmQt>*_hM*j_;mSKI@ z?c2EB-|n}&-L`#xv&fpCYq_~WsB96mqf}&JnK_Mn6nsXM<9J4TT{DQc$M5M8fcsM2 za?O&PXcywYoFV(J()97~%xvow$sQ4LYA$jnP*9Bhfzn`7@U-RU3t7w~QSdx zjJ`dX-~Y!Se_P{tF&~xOYcRfD4&^=1#hHH+b&g|bV^&VBImAwD`G|2S5UT)#4IYTsIOp{_9$dHNo%(|9QiW0XQ6n|oFC~i9=iN2 zOWLGH5^=k2ZtnBkZu|Z50GmmegMA>(FBg(+d(+!*Ykscyobw{|>$T306Djpd%F0Be zjik%=SPM4KTyx*HzpPevA%P<1rbMs=iJb-}VlFGNx~(}c89S78^sVnT+2_e62)4^f zwD#22q<5H=uk-U?bN)}bF)7K&C{(r7YFdWmNaZhVwYkiNpMIL@Q;Q*W!Z5!H=F`?UbdxZ6j zQy6;Rr)8N@-zq>wHZO+8oQzvVNGY>6L5APo-{W~j%0kP?D9|Ry`c!^|Jp)O^iIwTX z>Yg5lC{r?JoUcEHn1u*M#Z(O|u^`l`gtX7+5zIifOhOy`n@uYZQ4y8n^;z@qP3=6T z_rh#lGQ!R&V>+sZuQ^ZU?39&8<~18Cbx>qt|ui>h-83-+vqo+o)Od;Rc^)v0a1Y}Smle!iwgOo zA0jIYjk#;gh!vcSNEVXbV;&GE;W75Akw#zOu8ajrW~~H~N_!*+sWMrm7q@dyQ!H7`p5aG)v6;ut!c3xVOQgMCewJ`wbCw5DwKk|VX(3(a5s_3* zX)w6(MhT>$W~80x&m@ziTxX@JbnWky+x&T)A3xUl0*k6taaDQD73h55_D8#I6-Wex zWo(4XuTumIigE=(rR|wKuU|xRyMHToj}jtRzTLkyciO1c*v|=k|6z ze_rROQaW==-+i4-1)(&v8I?i11eOeLYl!mg_rDjd#Iwl2RocMv7tUWeDL5Mf2oMRk z_GK!~$i(tvd7hL;>6I7bUAm6_tr`hQV9wX8+@Xx*!U8iws)`3AIA@}>=v&|3uJg~= z^XJM5p?16N?{AcJy`IAzs+-smYLdO6{GH zl=S}X|LCOW^AE4{^W*3B@kfO3Ol@l@=4#3t5&LvVZ{t0INK@&k8rwbdj5%kn$~JCq zm0lU7OiV0Yt|&1;j-NlM?PJ_M7fH37RDnuh0hIJn(yYuZAe|v9q z&lz!&F!zR}v=R{>oc0R;>WfP-l{O-Uqr#)2wcdsjS{X47?Kk9UYjVNYMXXfGEW}*t z6+xWLEpz#Fg0yj~vNqmmXogh}y*=V(vW*B^>&m*SM7ELTetvSOY#WtDeD>S>_U&z* z?lYJh*9}NSX#;fz&&(nuttd*8T_lT``UtGF1qDMR7E`f~4D)lvvP~6z3k$w!#*3i|h%&g(#M*SE31W#T$4S2#+x9s9ku zo1vyHz292j_xE?7Q;Ug|q;ug!Hf>@OXOfieDqKWBTs+zsBe${UWJRoXJU_4VG&A55 z*|cxtx9{2M`1nT|#(hJAnA_M0uw`&6WMsy?DhnmyXQQ4V5vgDbB_*4-K3A2qt*dE_|f2_Lfx?oO>@*wU=i3qMDz>Y(h-hTVLY}@tg&&#egFI%VVSo6$)@;$E* zY8hpATD-3L$&jt}q%1bpAPJSm`YkQ%aw*j=$d6d(B9UMw^7CYf@L*EPNL-{L#Sjf^ zs9k+y8Z5nv1+Arc6me*8B2}?yXdgGb&RmN{MHP$+%bH17&`GL1ZiG=$Dy;ik4PW!e z%F`p59-=p!*L=QmDpDXKP~wK9vdGLRixIRnDk=$&!;FiXjJ<>sLBa*EN=T)7EFxAG zf(Qx6Ts~hJQ+jW`QO|3Ao*pYrduyWy>WeHIc1UBu85!&uYrAip4U15S>G0y-weKD? z&I8H5Vy(bTH6apV1!Z`}xtKPg)_Z%reXpwLpa1mfQORQy-7CMMqZzO^`k{=uYjK;WMZI#ad477#{&;J9W96{nmht(@pC>7>W81cxCp%~6 zaU9Q&r|@mO|2t8TBh^AaUu$tsezZQqo| z;<;*NfLMH)j^6rcZS=9detu-cb$q%?Z=IAx_Bf9I?JoDb&GY*FfQPn56kcB)Lm(BV zM48#M;C;I(uYiDg1~E0KSZfv$6SG+(UHO7vRYhD{npy=3FFRk3%3Xw%-4v zkvcO-BO<~oLUofN;a=BeVe`CdF$pT8a*bU@nS`Z1r1y$B=gKOAs3;Lf6qAaM5)#=c zdzn-90##IHT*pt8**d{Q!o+B@QE_@QRG`XQ5y$7R=jYFu&TVJem^x=K2a06d&FVU? zwAFQJ@6rgtw0Fy8xolol)W$|h>-Fj8Rp8c%MaH|v6dAp5!4%Dl6&IxxC{V;CA}zw_ zJnAA;l}{0Bx7PMHt8C41CKjWbb*0R89X_XXN^4max!iG{FJDnIRPN<1rc1Bwu`xH< z9{Tu}%a_jV4-B#@yFR}d=){GXRi5I%{oDU4?bqw6`!+w%^XLDh2Q`tmMuTLlHUCx1 z$U}lFD$_Dim7ro}>CM9ti>hMU*dMH&8gpv}tdG~q2@XY^g4Se+vTA28$1*$i$KMhm zWc_WoDcj$F8*gvvpUeIQ;*!#Kn{u^nACK?zI^e6*PTm|=OGab=~D3OHDdWmY5U(ML|3=-M7z z+XQk|yf{;<-L`jWTewq^h}4jITjks_+COCN}& zj4Z6r*ZKJi+E{qnD&;hsQT7f3hFVZZr#>ZvHFm{zg?G+Fx6gF!klrm zO<6X(0+p02Yasw>(3S}RNmP{51|xGFew}402Dd`zBzPI;ncblZ35Z9gyRkCso*?2P zVGpP2ZS0i9$=m)$l6Hj6NmV{iZcW%`D^|nz1ai~J16EhT0N_QCp;ml0Ll!&>)yinRVqAs$5`n;a$v5iez z<0f_`j~>=kIV%GU*+g%s4nTAZHU`E`bla-1IAZI!_irt=%#J_*Y<=7N4Xw{bEz;sjTU%j#VHM zwz(>*f(sZk8zmhGVyNExZPPxOIj&jB4G(dm zGi_b=I(3X}nPJYQ9cg5>t~kYCUiP(W1H__C6qng+B@*Qn6D*<~S?MQ8+kI!1LPlFI z$nY=ewm$}O%t`K7W>`*Uayzd&#`cD!bWZn-D+#(XrWJ+H%hzN=fk^JfrJbGE^ZADg z3re|d_xIa>{O{WL_4@qz&;R-L#3@5?|&OP?fm%sajZ3o7IR~km|n#JWJHA(B8rj=h^Qb< za1t?@=CRlt6B89!Dznn;eA&FN&zF9Y*~TaiFRL=DR8|(Ll*6$jM>C#)fZ;=anr-d(gMOL@D)_K8%b@Z|6XvAeU zGZIPU}VNDzb=pc0}&WO}8SITByt4*(Tm=PS+$Uqn(7>pXeey1uPCTfb|Q zvPBH{iWOQ^m323(Gv+FSj=iu8cq>K%yPRT!VP0mLv&Eu&9V@WQE05T*NIWK&Y|Yn%e@7%n7`< zTQwck#|)}v8S!;uhzYaS$+AD{mGbdPXu+oON~Po`;%c6+bs1eK=Jx!u0k$A{Z1 zk^R22GQ~^*g8;Ylh(Hh{h*?F3B(rJ~F^zI+T^PEqOE%?GWIW;uG*Oau9921A2a8Ar zQH7nJGsXx%FJDDc;Y~Q!tImUkdD~D6(1L=CidaZT6IPf(bHyuTwbn?Bn3LRRXuE4; z#2sQ;Cjw3GU4~!qSxf<{B9Ybr+HUWR&8}BvRxJ_+iDwppS-9__E#3S$14#|kpnX*4 zI$jV)BLZbOphA=xOqzr+^N3O*lJv;sM6CjajO8Fo0LcVKd>L~V!9jxZ$^zEdw}QDZ zL`EgIElCL*vybhrLf7@Nt{IU)_50r1Rz&We1){GlT2)x(9CsyUVrFiY%veQ>yHZs- zXxv2vdNxY;fQxy?X@hr`;qeMNAy-wnnwx)-iBz|8X_dF}wzoI3n(KLd{JdVj2z}e$ zx5qn*uK1kCvob6BdfA#6GgOo+{CZ^+x5lk!=JEPD%J18IE=!+THto7zFKrsL?C|Ku z8lZv@7}TKDvm8Nvdyq6+r{@J`WC}xjgC_5C>)(^){CU}P<>#NcEoGYVDh>1k7}b3( z_sGcNM(99qV{e46-T(r_DxR;k+}w+Yh1GQ$CNXa^I&)4Bd+p!*23ma(XUshVhSJ9@8L+!T_L7do`JEF;m12s6=6B^g0~O;01^tjMf7KYzNdvA;_X zTW7^dkhV1l)~m}T1uy`1>4Tai+~zrtN!kl>*(PLl z+*zdh-rxRy|M-WmYl&oOp*&-uu~5qu>6z(}#{E_f&Jf{BN{`{8R7aA@ru}~7GuQdd zv~m0W{`UPk&gbVJVTn>Ob7$(|`NT4iS4CaTnA5EF8zA#F*YV0VQ7&W9u0?qL`sIE# z-738%&`4R$Prt4(FBUG%tE!lJFo#H|WUdCIjGVGUKBbyO-)`Sj$GSeribNPec}A{6GB+l!@UZY{MI}t6 z3I19qOU9S()*4}^L+SVID=JTxz*XxREDWqRAkrrMb)Gf+ti0;Oc8!%O-AYeDe^{*Q?SaRR|0${Ot=w#SIx8B< zKyoG(S``%)H<6~X*6Z_$@ILM$8-ZCl>PmKSlz_D%X+=N>UJNmeWk1f-EXRv99y^hs}dqCvA~taSAbs`gx{LU0RMR0lX^QY~j?m zyL4S=q#LP>+gsO7NDRcRvW+<}R_0_sjGMmy_V2~`{O5nIb!F;#zUcTAp|W7@px*nN zwr;ktBG{-a6UO5PNs3AhDwLD22wTZ&o>eo#GC^onCA>$@=X342!sh+k?|=LE|J!w5 zAAkP$`R6aZ-7`58`MkJN?{B*8xd1|dxwVqz?zJo{F;^=Yx^rrnIfq9wQE$}S?amt& z+2?1hiO%V78QhdgIn|^l*u2^El?y0yOr~-fpzb!kO;AmbtNXZud$~ zPvx$%F-b+(Jbf)9(yr}(ll^vmypGpr&PgfjJl&#?jk(}K9*NX_Lu+=uB9mH2u^(p~ zXPJ>8Bd+75bbp=eF!9OqBK4}XZ8C0e>@%JpN!+%Zh%kc`l`F1E=;Qr&-8ajKs&p@R zl_o4CLR7GbwYary-}`nCpKh0532Vg4tfI2-x6X$1gR~%6=kuDUSyr+6i#C(drAVLx zwEa!`L-(EmYT9m(^YceuCZuiL3TgI%!q!UrP~C;bI97^&bBF-gze|-N>yX^k^ zZ|Bc{9zTA?<>@7TQ*M!0%nwvn!RE}hkkMM-wvAN^=0&0!Wz?J*y50SCxE-X5%(NwK zLw&jM0#zumG-R#w6O=l7QE49-U~W_xw{P_uWd+%Xt%HcP-3mI-Ij_U4;(S6WGW?n` z1MWp#dymShD8CSX{3~moZ@>TEZ)0>S6DXq%?Kjb#l+)7I$C@i4z3pHEC23SlI~~hV zE;?H8nI6|!4Bd8OQf)3$wUEU!8jWo{;{4&qv$Rrd+{PHUin3hEDd3`nl(2G9AGvFjQ#-iut=*|RpG%ad#rWz`wgynwMCJ3q$QDPQ+yS2gP{bA zP?fkBYjo28w2(h@zk zMadZytBzlPmc4lF+xLGfVvopc#&vP0N{1Ayj>q>9Em{>NU17;IwC#vGu0QQ~H6dYU zBHffIkDpISo$cpCHfphde;aQPh|bfmkHe2*9wO3u53;omVkaqP^7F(r){XX_k#?N9 z77El_yWgOotV}N_9y@9gB+@7o7EHa37C1o;e2w#MP3bABl<@9r<99z4q-n0C= z%+^&w=|TR*1nSy{C`hZ_Z%(Tkup(#@+~T}&1Xi&YiRjL)p*P-!h*sM5@rPe4mpAF6 zjVjBnEOK2{&f9Ap+Q;XwxeQFVZ{NQEZ~rM$#QNF)IbYYj zqVEGFNfha}(wCLc*O%G!t?9U)Sy4pnVUd^YZ$v%5Jdrl{F@*Sy72I(~vH@F-cYVU%x7gN@Rgaw_QZsj2W$Kp&~r%Dk5cxtOSHrm|7bw z;p-)x`t1!w*Zd!=$wVUHt+B&1bDH@L0J{`HgwGw(;h)!wpDeRPMgo?#=MXF82dWR6D1U3 zsnoY2OcVgn9=C-GOO=sTaOK|p%&aqc>21@Y+;+|taZq~HRY_l{F(xEDD=FE}moOT$ z6NMuw3Qk}4K_*W#J2?^x5)x_z%F8m*Sheq-M-~Yr!wSSAmFa5%RLm%$5+I0E1q7v3 za8DxlNmM8z;s|3#8@Gt*>oY(=Ap*t4B_ajZaT~X{yymnY#g;T9jk!~A(nsriRb*It zA_$V(+OJIr4!bgUj&|e z-;wnt2`&)^QJAgc5>$FN*=Pu{RQdV&^Z5DeYZMVzprUfwbnRVOKwXpzkI(WGlw5?BURRmNG|?tq+>e?Ei?@DL*#J^HJQw9^a_g*7>`}zr_PxEmfw${* z*fp>7>3(h7xBJ^$@4eRNtci6IF^fdjy4;V#)p(L9OHZl^F#mN-LrSDy#L>4=5JplL zQE#N=RoCLCx3}N+-+w=^^Z4g~B~TF{*WP&a(qM&l(IHjS%9rJNJ+HJ2l?YZv8HEd| zQ`4>;3Qwd{6@jHBglT)=NQ5h}XG9>Wz~I70BoIqWJD+x(wI;4-6I{O<@7TZn8_T`O z*YN=g>3RO~qp0QbHtvq6pGWwSUoCCZDw06kb|1I*<>#`+qKN<%!L;qfVR&Uu5TlZy z=@()UGfM$ns>lMRh!oj%{;S+w$_qRK8r3HbIuGUP8OXFf+ zmlU;aBN49%TSX!|EYH3-mDaSQEY=C-bQ$e-N`yU`l$a~4ZAw&8Qm#~usRKv^Lq+-* z-zN&hNDx>6;o35tXi;%2WGqq_0rj!nzKe8UR;m%IUB^3!o?+15z!vjlp$bPVk+yAj zZd)DCidD!$rqw(yFwX0(vcJJFRLn2~*yuK!pD9T)k6y}OD zKUg>|>^dth)S_x6LKGkkkK*9L5uPv>Wv0xp^P_+g?9_pbuqO&CD%z6?Ab^Fa+>4pJ z7A+Ft)@s#tev&Q~S0PYkZ|kJqn{b+{egH%L?N9Yqo?(<&m1?1~lk?7d9_XM(*+X7QnwXJhe#q_mUdauTaq_2)c|B76PTlfc4vI0ui{EX#c z4oLbG;>MjSi2^bq9C7$MGF|{x<7Joo%VQQfLzGojxi^=RT&Qq!M1ojIb?d~4>&&&v z6B!jVZ1J}15X!|cATm5>fjK*fOIve`X|qWQOHwgJJB@u~?{j(?XBFwK?R(7=!P+F; zvqH2{mCCq1-qV+IF~Qy1zUgh$1ogJA*_)VMDb$`n|MCC%zmMJ!Job0_k2_=h_~##K z5|s1TtB$kZbj?rRI*a<8Paa%E6^lW_O3V}>6tiT|I&8fb0lE(rs;?=3 z6>);`HL*mM^bVlP+#{=`vus0pgMWEyF4;R${N+HjwpFK?FD4RYJCE)C_xEq#ujebL zl@~~uIvlB)l7)h(v;l3+)Lx$zkz|D`5|3n2?Hhq$)91=?^vTytqgU!CcxI zELC74lFsB=2FBOqi>m`vUpq{qEP#qzwI(ti1-p*RmT`Z`e&dunFBFT6zTc8EYkFGo zxHl!e^>53Ll1$441JOe6u0Ikk1+7C9L*#^Wn+pS~i1 zOcJ6DMpPu3tF(T*vFPi^2Z8|3$Xr#12S-z_YB%NmO-X!2AM}Y}!YMsQdeI{NWZXqiw%2D}ks4 zPKr*Pw)~oFou`gF3zI0IVNr#()|wL(Hdj`N0PLYxHEoage&5&n)8c2;2Q}BG#54U1 zxZk$heSiNgQMOLI&Xka^q-dF)Nf@o&``~EdZvMLFdfGMlD`kxdE#=N6#9Wok-1m`O zb-72?iX2AB6gR9gm)2SzB)Vo+F#wMv(}Y5p!jAm3VwSHKn!Hrnb{mP2@T@|Ypolol z-4`+-y=`x|{o4(=PWzQOb%>4zAk5Zj>vQqqo?BTKW>Lmko?s7xC0!Y&ZIhvZE_ctX z&J}f1l&~hrd0ft)NwMsFeSU-;4b1P~w*9+~uJ^8;wR4)!BzM%k+7`S>*M-wp`L2GkG=n{x@F{YH!soKUy0Sp;gcAE zu&|E3xA%Vgrdro$#rzzPz1^CSs|u)@g{?FV8AMFfIN zCzKXimK0^%9%G>0NBAq|%g&PmV;icF#u@H)wf^W^XZJM8d6iR2&g12;YaS=%*XPbJ zduAb}w=_ppM#{GL{Vi5IuXUc+oXfNLOO5r+`s((i@{EXr^!uj$0qW+b0l@;j$>SDl z5tHv8;`EqDOX07IozpI zM7~a0paKO;skCyfl(LLi+!Rd`%aM$7Uj-NH5S6hN($;KaBP0p};xPav;Wdv6C(;U3 z6oslN^IA58T~Qh7mt`kKdjj|MTbb^VhjP z*F4WSB3`ZUwH6i4<7ISaMn)t#bq$G<K0!r#tK#dNX@BatvHo24Gia>y zW#{4R%!;B$W00aMvpjQhQDxeBN$Xtj_*zOk$kPMW&B+#u27jgc;{-SnL@FW#MhOu} zjHxK25*+b$H-fuJM|rFlgun@HJjV8T-?ne-JYt@S$(_Mr*Fk2iy-Fe@+>3p7ZD{+WC6u0%!rr;5DPpcCsq)}DOA3sY|lpsXxs?xgj`{-}2jh114TnOkGpuNf}tnv${V>CvWeVxfj z=24PhE}~)qkr&l+B^BPr-sky|=Kbrp$fzo$OHz`%pG4Za%7%=Y)3u52Dmv22&(p7B z+=vC>qU^0V-K&}^Niih3H{#}}#WnfX_eYYOU>r%vdJ{ zF}BM5YFR-g6^Uxo*83pId77Uqsz+WPrfqMxxBKG(e`TB~=fCt8_jD@qbcTQ%=*yAS zv}IDw^Jj#+Er@a<+~lTIWwsniL&<~O!CumnXs#1L*Sn`Phf>D#HD%;=xGx>|br_PG z>_r6{Ol9-O`urf=O-FHC7G=rQWNamHGoNRaRn?r(n}Q?Ukfo%xeE$5%a?eS?+qe6+ z^Yt_l2Xj#ekzW@PWybaM7jHt_y@G0`_B-`kX>*TiEi1xKND+0u?LP%h!cKRaRAeRTbRc_WeEQtej0YQ9kE~U5B_+MU?6Gwmp6u+Yr?V zkS1ovI(!zX^48EY#u=)|>!+=!`J`U`eb=q2G-i!j3jqmVi0R=` zqM~C=M$ot}Q1O6S0IY3O*0g!O4jHYtoyap|%}JHEF7tzlm^9qsK;UbV z;&~MNxIOmUt#a8~Hq+ghNu;$tRC=VXc}5nN&(~*BLrScbZet%~?>eZ8Nfp|fj{Wx5 zZ{OCeBaU$6>?mRaH|d*>-pSMF^qj>C@Ryic91X(JBOHZx8x-&eKd)=96eI#DhE(OW zOXnmZ>ZJRvwN?~4&2p7jO#jlhk;(cs#EnE*1bQF05yy(PiWmsd&fGAKxvRU23>Nva zd1n?@R1$p^Gf0b~*0*tgyZ`oYSAN?1bscFd;<8#RG9j8K?nlxngGdjra6(oUNQHVw zZ?bP~>|}z&OGqKYnt4V|kw9-yg{{sg|wtc^=PG z2O<(xnVxp}JXrTOZqjca=EpL7X}kBaaTYYIMJA-QR``5n*7aQ5<6XC{NDE4|wbn1W zh-&Qbi;iUGO-st>C8*Xn1Y%}|0g<`F&nz}Oxl(%rvuI|nSoXz$BNCD-WSMJ8zu#3_ zW<;zqhZF0F*Auc>NWf;^+M^FGoW#_|n_Kugvq~XCvZA6Q!y|&FkxFI)2}%}`HY6X! zxjo)>bOO%T=X##`a`%Lz?f32et@_pOrbdKMU?LzqNWTIE&qVy0+?#CZIs`&%0#u*96#N34YkCNLK` zK$*FaB{PUspQ8q)Qunx@B>tW>Hneig_Mw>*$)C(t4(>&ow_^c6lYkOJomg z6NqC~9QVC*_o&O}&)(?m+hE>g)tq!*zntiLJ{dgrx9gha2|_Yb2}27}mD;|x}~ zA{5lXQG}Azp=9cpnJ1{Bn4Gj}ED z1q+dIQAI?dq)}2%YpRZ{I~WLNAtJfpC;3lC_toUn`a~X>vhC+K6OCFbGlH8Ws6Gu|Ql^?$aW@ zm>>cONl{jXt@%kBs@%p+MMRjZ#lrRZnx7ZYRX1)0m`HIG8Kd={zTDqP`I7J{{lsh#<9+1AW}faQ^%?=d<$KZo9ocRBXEow{Pn@9Uy97@6G20E^bnDxfOz`vwNJF z$S6j&ayP6cq`nwZ$V!4*k!-i`|KWD}`H9SA-X6EgI*+G^A%bSM-cX#}qzQz=XH-C$ zSja8bI_y)T6%+afmP!X4h0M$<*2b-~4Ec*=ok({r2{a!N;#3T)du76k7jA zt?TySe)H)lEra=WeSX;a6xOlt6Dixc|Mqu6*>(Byzv$VeZQQv-hsdpwZ~*fw6`m7J@m6d)KzD3|}vV zBRTmiAxaVDHVM&hH{Nf?987M@;vyF20Z`f^O6@AzJXZpo1(NxB4?MMTxi0C+@J zb@$A7GgtfmZ?#Li(_NL3;qHK$s>;t?AisS8Cns`)8&pM@&zWobT66x+dTqyU(v5rN zJ6HN>YB7hOXU)WnIu}U>C=0$65JKAl}n(k1`#HY9QQEi1?Vta3eLr8H=ej0xAD_e8ExFcoRHuQM z+Bc}^zU@E%QReIU(xnvL>_Dz-ewLIr6+Tvum|kOv>?}3aSgV2+RtZ6?KmOVFcD|nB zbB%d^p6fY?HqYF7JhLS7o%uG^D2w#vez6*)7m>AmT!OOpL%6|{ zlERF2Nm$J_KBx7?h8QcWxBE>R*Z8uw+5L#;Db)q6%tVA|R>oRc+4kG}QmQ5t2(a}= zyZgKdgh$LZzF*hZQ)Sa;z6N)51}P}?e#5P@2Di5DKT3=Iu35;85i3sHC~OfaqG~sJ zgZ(4n%5cX3CnO`5@}}(;u>ihbtk&-Pc4tb?(;<;BO6pDeE`8gLWR}OYX0aAntf+D{ zgO>D0R^-$?GfvW56KR@b`5NGC4a~G%?>~MvS`O)QWQB;BH*34;&m4Are?Py!uQf}X zw!7?ycFQ${?HzKHB+FWBy|>MIx~Z*1=#J7?O5lW`BZ~(6sj^Rxcq#tn8IhS zh~)s;RW{~zQE11pu5=$vsCJeyL|I;=Dx~*zKg0lhk%Mfs`<9kDvYiq0RjHUFQ|ED&Nm^qgY0k zFOvsNB0S5-nl)x443yHQ8-x|J!ZSnK-8LEP%yqu0W;Bt#&oPs=?|13DZMw!YuQR=J z(W4B#a8H-zS=j?M3TuQ@^^gYc>>F%y#zL}kf)(FQ=G-u*?eH?pgCfdT2Bkx5}jcrD_6b`D=2ODafF zngEF+#gtlPA*mY~30C@hjTsRYc>liiTDfFzcKfJi+)aCr@LCYtY=><|XpX2=tP)k_ z(ORzxz?CQ#YN@HUEhf&_*Y))*SJN$W;qTl+N|W@=j5(jCdsTo@NFR$5Z_J$9U8#xC zzLylN05`kI`w5PmV@7g4mtQ4KM4Kt<9T^ES`kDb2q_WB*3({;uCJM)oKM?zR4I+VZ zPiB^?9ENJ)_11#sni*F*t19HAq}kE7T{c5yYn_Gb`zvKiH)}W1djxYX)ammtzkVme zwr+hdEEFqbU31M+Ywe~b?h&y9)u;kVAYqC`L2B!bT2R0o!S58`OtvBiGe9bkQ zq>oDglnE_jY0_Yn8`jHX`ExQa?#=8_RTXQ;1LD6J!Ad782W zs9cBo0jh`f;Ne15O_I{R!shBoxdz+W8Rn{NWTfAk-{pc#U`}X61{h#u< zzpnH5Uw_WAAWE3DZcX$(z(u`ZTvTOKnAN*#)jTbwi5>S0KL7od<2%;5i_zM0Lu8UD3THUEmF))CF*s8h!i0<0=+t1t2f9if) z*E7Z$SE2$QevOQ`H-#(QV~TZQ2)W-Ly&obb)B^mPIbXT1imH{Ei4o~TIz_dj5Rq9a zQ1%RtaYn3UL{y%i9uw*5GigRjW}p^wq(iH@U)F40DRHxY(5q?UlhUNnZx6fOBfdpdRaDuUuJg<_s%yLbG~O;5 z^XsGwQ>D~jqv*CBOu7##OPY0KD>kZX`72|hnOKufs%Dk6ru{CwvR;{fe*f}$w$>>C zr6K`GuqJ$ra7s(0RdmoeS7>A(Q$sR>nnVy9i;Z# z4?&Ib^64N%)vH7dh495pF-u=fno;`g#{_bWR1Hs{sT>#p)NUW3zQz|sy4;Mn{b(z{ ziY~3)?4K&;V`fxrm5Y@g!2&w(+P3`rgyQHxhDwmF)VN1z zx=S`@S?jm$Ke*c0U;qC1um66%J|msli(r#T&lu8*lBy_ENxdJ(aaWb~dVY5vr!9P1(}DykafC&YX!7 z+jn_1*|+w%-~aRf=-WPj|9bt;|IF{N@KWn=ib#f}|6N(GI5VSQ6`1r)msldzwr+bX z4{9l+)+k>w&IDnb>MqtI5~7|FuZyE%Tv|X$tjs`|z`Yj1VsBAd*C|rvR|grm?SD|E zYPaq2$N&1T?RtEF-LLbx&IwAvXDosW%go3Su63OdZ1;zhnJhmCkTmW4J2s{a2DT_>3DGE9iUIjIjav(V`;2w^ z9FdGNB3X_~kWh*?h*qVSinPF->x{KfU1*{LEvf*mJdo7hODj>4Bg!)uh4mgJPe7u? zsx-)enzemvp2xVJ;mgb@^fmEv5v|hnBy`(9n%q=wKHb*{&#FmO+y4-|o!8|f!a;7N zWktPRT0}AvrKS?%KBAnOA|O?ag_NX_nNiCHB4$my0C9SJT?EPg_qbz>3>GsjW#6P% zL=~2gS5}F3Yg=X^-MWFyw|%8Gko*0SbH(c_ODGDg)bzzF6k;u(&MKrup>l#5$V6J} zsvXj5O<$K|HhB<&qRB2>L#`#g-TtX2V2;=K>-n3uNgeB~Sg>0&H5H6&%xk^}=SsHy zL$J?zWmX`E52->ytBcxpJQy@>6@^YT2ejJfT*s!=-^ayrFgoy>9j`LiASHGj*)Kwlo$71Hml z19>NRkxQg))@gOVe$_Q(>rjsCl*!gQ_YG!nLmJc)6!a{{nv86wtylT0d=^)d+pTNr z)|ueChOZ%(V!|c?F3&_-x6WN<} z)nz{bQEH@wGnk-?GS^CX;X$&}iKSXmnfW$_QmuoM5h#jER%I+RQ)>*#@&o`uw3s6D z(5=NBwFcqbo8I3#;UWFNp@HGooa+lUnHlgaW&&vfDN_~odH!{M|2dvdL{r|h?X6R6 zW}GH_rpJ6*!?AzlwZ?doi1iw;Q0rL%$$}>nSdb1iK>W<{*EL_Bfe1uql~2D`OjfU` zHD{{V#W}xXUKNu>Ac!g|pvZ{j;b3_)X=d-Yt;#p(OXI7r$xzbT+ktiWWSq`8o)=WTqU+(_&Tq)Zwt!vKmDb1Q4m8i=7 zao;`;(ot2JMHU78-&TkygsTcDS(;fW?zekCHph3N33{%G8I@Db+V&8@h+-uPszhAw zqX4M7Ph+$FZr!$<*mlpVSY8Qhd)w|+xSrp>oZLt$F{l=bAmQAUg0|l&QXYjhzkiXz z$Znm;Tu&e0=@YF3C=eyJP-CffRr6R7RF&yLY3V_R+AjBv>a56AR#2&1hjIC;>)BPo z605dbIOh2F@r>Jpl#EJG#zIxBikVp=W}+s27wOBdc|CJRIr{OFLZB+J#ued^XFGQ5 zyXaf7W!4_+e9qV9Gg8>KD~c7`6}HQ&tT)1eUAt&g+26z!ijWdHb1nBP{8cq=KR|yg znIpp|DvRv4{VZHQuc~xEl}c5}R$Qx|!Z+f(Q@e_4+ahYk>GKmv7KMkfNm5A`k)a0J ztuCc*nKGYO+ixNWAAUW3%&g2@(4x?%M=Z)xvy_%9sVmVc%EPrAA?cx;t@(v@HZkE2 z*G#WIxT&b7x0oXaag>+*CuLI{LbWJ;k$nTvv}AqbU#W`br#5r~#y zRrq;Hs46##?J7k{+h`V2OG;Rjf|-O#W@S#Fm+qaQZavG-&)@NSYL;cJ?`KR=`4HtltSCR`1{vifBpXNuh*ZxUQrV$QVP2KtePsOT&(9D`(wY~M*(e6hc31BWa zQ)?!rC=oVAs5McE0*kTMS}*p(_M<}AIlJteeYnqg&d8{2qT*LANx~CewPI!UPB9Xy zqU>v3K3;2%46)c1tv;LxAF*gQ4_To5i7DLqhM7M=NzSd zQIUvTt@Zf+wdL4;{P=imP5<#yeevlI&$cG!dbVh0jY3qd>nWMNHAOO)?3+lZgs6)2 z=jX5IU;n;df328I5}WAJ`yFk0o%J4+%HGs&1OoK*`TDRL^|21JI>3;07TypT~JsNp6P48(x+)7P;TRNUy;&FSWzX7c1u%{ zDoo}(7N-hHUok#?o`DAacq2F@fe2c$A<`p4MHP}_^)|bgiv;9-1SwR&DQK)6;pJMQ zY9eZt?qg-7$R=VL5w*k&!T?I>>zwmf4Hvtq^;+r6mx=Df|NPE8n{NHbU1iUFNtI;9 zn8*lyg<^isSV1Tf70DtJIUReGZp9TdNL3SU5)+ZD;7yx|=7{tK(bf)D!pS9=%jc*_ z6%(aLypu*KM0iTdCMF$Y%`s|ay&Ev9AVlBP3fYd2zBiu(v9@EcaZhVvI>vJ?S8Wp& zIYpXkk1=!N4R9heDl+L4GO7d_;8Y#<(RFJK^~+n|GB+P%%~@e) z8->eXSyc=*0ktxH1kGrs(u9TbS_?=5oMqcim6TAG6~j53YC#B6kXdF&>&z^tLrcoG zwhJ__F?DiD-}`p#i4i`*t-?&3w2^b@CfjXeCx$B%b!Cr(uI>^u;K9uPaVxrs>iy1kB-MSc^Mw`7_Hs?vbfYwF9mw=qq)L`Q(N@7D zR%?P*luN9sDIp?`@3Z2Xk+mA+@Kx^yya}pgtr1nSb?G-z;c})ES()#D>Mqoby1p{0 zcI18!K@|lsWQ=oV=)UXL*19s5A}gXYDl{ccn>8)Wh$UfFBq+KG7;`OmXafjBwvB33 z2mxwU#PwFlOO>?kzS~jjbNMNo>0QKr@aVw|jPvrE9zF$brj<-(O3$qeW^1NI`pBG+ zl;XaBSl@j8^6?4GLMLG=M}Hjh5xCq})FLWUBwHmQC8E+S5t&O>eY$_gdii?ighhp0 z`T6?&y8@=i$|0M8>M`Q-TC3J7w35tRNC|(!hY{}j``^Fp9GHRRvHkmd)LvM5>S=eNElAcKp=#!-tGB$gLf_+IGFpb@^PR-QYnHqN*lD zfD}{DizV=dsB!)k*XMq}n;Lkm?_cNlzkQr3WZD|%jJ00xXml6r6`35O6>)lHRJf z$SMkKQ|Thq{Wu;!$2sTglVCeG?G<%~47jycEah{A0P0-y;BS-qycb0t@gGZsBG3vTY1d&<+1ABhFjP20eKUO z(%7}B!t?pPn3~6`XGz$-No%Xd^nqAvqEw$}`B2+bA!2q@5cnN6gRRlPDgos7`~CnqujiU4E2~QPy>0tA&-3f| zIbVsm#+OI-F1i8DE0;BGhcQzPM%nk{{>S5ZJmz1&$9!f%?0~e0SZfy9&{2@KF;_&Q zQW7PNWk4dc;>EWn5Y&F7vBareY%|d~PD$@}Z`$IDSgX)XyHv~NQ7g+cvPvtM&#RK! zx|9jEI>$9Um+4--BIcY|k!-ZqMa`@WS>+I8F>|_4kANO_|Brs(y*_@IA=Ww%Z26!$)3Yjx%eCwo;dEQfa;;zKxU>;Agz#6h-7(KKYDwhbj}fTO#kMqu)O*wHFG^4`E{#%Anrtjc zBb%`xUQ$uA1mKb?Qk86|01^?ESsB=h!qnl^bV8dfqrR8xqLgN~_RP!)? zKsJ+^%4B7E#fYeCET#0L*<+3CIzJPon-UurpzTKT%`#J%BPPZ5)osqORdvIwovu;)`cj9TMt;0)^B&TV@{`9QGBjgnXOnV*o=E` zk8yqZIHiGID(5^eG09pGQ`)>fm;0t&(G`0CczF0Vo~s-cl~RfH0G5boH_t$YnVD>W zV_m+^swgo5-yam86A-pTO^PYqln+(9&l$PqNiqwSjC3(kZAGbAQ6a2^Ly{2H4KU(e z;Z2h7BMmY|fb@u{QcyD-S*>lRniQYcdA*KZj@y5vNS<>03#GtU%d2(TCF3j=ulcw@1u*eSSelyLF(e9NX=7Y!42sxTp;c(wo^~yydml zxRQ7)T+FQA;5*qM5*dj!>4KiX9N%mH%ldAI$*zE=d&WplVXs77mvyskcSPh`8T0j= z@oKMImKKOCRc*)Kwyl=eN_ZMg+b+VYL=~k$+8R%P4pgT99ys-gR2PwKvWn?3#x<^! zrs3yWUy3_*AtNRjgIo z%(jdoWUYk>9wL2*4K*`6VoaL$#{q#UjX*6RRb*4GU};f}ATk}efql)2y!=|3S}W%3 zbBrsiqi&V@4!LEeh@?*v{Qtwh^BpoC5H73jahTa6!Xr`dMR0ofTp6i-Z+0~8Ifre% zt?NlSg&oR&ufYZsnU-ek@G^8 zs1g9;y(5M~+urU!T0gq{AijM(s|G~1b(J6CQkiij=1}gUN`c8%@fBVa&D3xvpsN_G z+_g2^f3)qVfb;X$`s+8KYx?#53Y7G|^@kctXTSIT_GtZQK3$tbBhDqZX}d)-gVfeG zK(&&J77^MS`wggA6@C>GW1@9ck!GTgh*1n_mhh^PN$Ez_U?f7VS>HvhBK$lvqBP4$ zB}lQxvMQlaL|X%SMLJMx4g&2k6;>`$w4*s31qf?ivC2B_er(%jU1F~Cm7evs6V5Cz zmLl@ai7YKPfLM6}Nr4oYQ12+L`Ms`DrS;CLW)+2?iWm&E+N|2UYFv$?CcwyWR)JZJ zDHaqKqce?+@N|@b!8A`FwqQ3fl%zWM(GYCVB%)M478NicT6< z;GKO&h)}y_BC}u$vZ8#3Jg>HOYid6ptv#?fuenxMs zxv;LWJUt`p9fD{oQm|RxL{*vq%q#%He51sCWmW*%tgJ;7P6;^4dWYgN?C#>%q}JE%?|K6d@L!|GGned69uL9T^nM)O1rk3ud628 zcF3VrA&LWjSr$mqwgVFWWRAA0iDwo_z7O}#Vj{w46vKUJFReA^=^@rPc0)RlfJ0Mz z1q-YK*s!jd!|M#J6lv7Xx-wQJOEh`S6*5)I)LOn>Q!*kW!mTkN9)MfUEn>pMcpTdw zrEAS+WQ1hOf+?w$9`ohbnI4+G98{77AQXU6q?%Z-V!C_Il_P!V-bFWomOGi;Xh%!W zayB^%8%rvk()H-2b6lUV&tK`&Bip`-MEZJHN42#~N0eF*xsn1ftEy0hE0Ni^y;_~$ zzcNp4E#GX6D!JX+s`ME(;EGDAbzOj>GORVj&bmaqw#@WcE9MaGCObsbOYCW2=nZYz7qbiKnekjCKGcxm?zmS5aG)G0voG;Ci5`(0)@FIn!nI$Uh zhp1MQ8LwPR5+%$ch`w2Zv7(|X2{w^VL*xRyP;ZE1fdGqI33{Qxv?h|M%uA)jnBnUh zESPNsx4yUIo|Tmgl99fmxG7Q_9=eWPk)IPjV-5hSjogt6WZU;Q*Rn1TFg@9|w;$H} z);??%qw> zQhf_Uyx@ht;taopcQuiMmQ5g5itfE{qPcur-%pX)9=o-lmCBSVsuv3|v97J{5LqZt z)pn|A-%2VOYQ43c=#^)#5+o4*{GRJVTfHApOU0VgGfIU@DAlwb-PbnH@+c9bM#gLA zk|b1G@0~qn`8n!6+?kWwJtAkK3`RTpegBa1^YiQV^;fQH+h)7$_kRERkMKn1{q|97 zu|3gu59zml`*6LZ#bGlQ0@gr|wHJQy%`v%Bn@Gbkl3qn@BgjO+UgvD(oEP3@T1_xOG;cinf< zrY4nF#sss$`wA5k>_M%XyV@6?SAAxBG!3+p`_R&3A_``TkD&_(u%dN z^A+*5t)caDLi1Xmva0;7IZfNP-MRNf%&OZ*Lw= zJ9gU*AYU?HujRvVNN@f2(T?4HiWarN6oC|b-`m#5`uzI!*T4S#@6$)xhGsM>Y;Ucs zX}h(yiE`FwTw@If?D5oW0iXjBnZ@)V=hwKaY$vZLviTDIj=Oy z%7UQE*UY$-Xx)m_{i`DRmWNA&QF;?8k?flsKialEY8|gXb3T_R&nh!(#}Rf6uQ8@q zERR5z9PItMD|15Q5fMNA|Vb@IV%0n ztV{Z!FGyA;Dj8AX=@IK>rI5x_rP4D_A_b**`waC#0HG12ij1w7to0^eyK?tU~7Wh-s>A>+RT& zpFg*c16aPEqFvNHeEL)%(^2(qLDT7e`Rk+?tOIz#7DngIeZu^@R5nD(1dCtsa6F3n|HJVD3q5=XDCA5I1M={p)D3qDkx#p|w zTkDVXyw*#kDi>;sQU$GVDNHP32_%D=iAp9^6lzt0%37-~2TSs<+zM3&>I}qoG|`?p zFsFM}Rk@X?q*@n9mMqyae8l=@QgIWt$Xu^qKHO}RM9sxr1d=fe&c?ofwEh9MaXx*G zswG& zgG^&(Af{wP8mdGZO!eL31Cm+rRaHKaL8NRO9C3|>1u3erObWK&X(Te~8Lx~>8bdTa z|E|sx>4oJ6Wg77Q-e*<`oD4l0sIfv}1mb!|&a#4*K%&wov;={*E@0&4D<%tl+xy2o zvc`25#abgPt`}068sTsp|MAEE@e^mhp1;eZwTEga3~tKa?HJ#`$M;wGD${=aq-f4u z&(}I%(qa2y+acQdM(@UCz6zmRu?b`%TpHCa2JnV!^{pU5=1l7uQ|VBpUHWS|M&HL+VOM6JikA?Kn6&Pnzn`{qZlQ|(s#{C)V8*@c5H#k zl~uXIGgAB!ueDxFB`E>3{dPm8U(;w(85KcI?Xul(DS#sK>F25(ae1Uu|B$VV9XOCP zDW|rgbf~eD1!f>-p{v})4wVBc5zngBK+Tnzym#9=D!0c^w(kG>|IX{8>>#bF(BAC# zx56^Q15ws(dx$+;k`UI68iMNkW8eCAd!)jBmM@_Cc8Hm;k>?Ot>wB}k>9+D*=@A!# zxgfexHFIW8!qe+|2Ac2kBQvhAzgpS-{*UA1CexFy%>+ztwrxsfNkzefY9y`iFxiiv z+h(j)h)739vj%p9AeP6Q_1@Ujs%^;@eLFt({YaUmQmwST0kq#f&zKh~AxZ>AHISJ# zS6Q-9>rMSjxUiX6BT@yjRasV5z__fIW_j&v|KlOta*EKzJ=1H0H3QE|N@;ti&dSXQvU zscLozxqL6|0t!(`5fkaH z?QOrQrRaiRHLqA9ZBx~VK)#7glx`5@I4hlcBTQ(DO{>zUkC?CFa|&9Sc)5nEHiRcx z<@3748d)h^v1+XqvxK6XXcG#>ARxm4g^TkY-Nd!R+mKvXU9M2ZAkW^;$X{)+KrNzAqH zAN}JGX2n?N;B$U*Qju_wxdj7RJ+|Ij3Tp&HUD?(w=y!rZR^xVG3_nKcdiRr zD&4pX4bm#55Hw*`#qu|LQdPwY%y{D!HnRhPS`JtVO*XNf85Ap&#}Ki$?P{7;pI`sJ z$^HKG1C^BnS{bi3(=#J38nkz~UC-zBe66vF#wMa~;Bt?QH9Y4;mWm4AJ1w-fRa0nM z>%ED7v^5G&*>5EgxSIC19bnlm(xY&m&sVG=FsfQ>RzV-qRHTbo0oBFypaC)%hzVaF z!^YRiEBk({%IPziwzVq$ou#i*h*?jqlt>9Msz&6h3{)ZlSJbK`5<3MTSfv6rs)0(T ziX0S~XO6Ftf#c(`-|nn%ttt`yA)z9N!T^>HYQ-LC+Oynr!bIuwPMd zYq~$~xEc22{Qg?wyE05^o!o7$6FK(1_ukj|9alElgZcUI|C>~5sBqPc62d4OXea^q z3LwkmfB|F*A`?DTOhv=}ouFAOvMz{e+fkkcM2Yv3mJMp=KF@V!O*6A*Kx*sTkDFY{ zSZfT=3`L3*K)n0+o&?O)8UUDTYsk!TAy?EuEtB_1ODjRsWca)!H`80+k7AD3SHh8% zSXD&5=~|{@Z=@!YRBf$AIYmm!*Y$1=kS&u)z(ho1O^>Pjmbv13_H9d`ZF^K+ufNFo z&H@nC``-84n&TXo=-V@0@Dz5{J?99&`s2vM$Mbo9{aH@YF0zZNXow`>b3C8tUp}TC zeFN5bUH|@5o!gJQbg33p0qHZdSmiPP9OEjITQ5zablqaMIyVuqW9$1pW@dQXx6EV` zN|8+}*LkUKZF{6o&u20-SA}oe{doN6cE5qk=QC^dkF6c|TD(4An2TwcysqaMBNJJu ztaYte<(2G)O(WKLeqOKVJYNxI(tNJ(fBiSe8O)T{_STy;jun|s-TTLpVm=pCB@M3O z4k<=fl$D9J4I9pJoi86RpU;Y-ni(|HpMO4Mwtn1?t@J$4|DNlY-EYMSS%yY0w_!Z;H6s1vuVx%p1 zZ6@2%??0fe61v@5fB2Z!^LvhOaV;;;1-+3+xMmcnVvSO&O^Z#sXhV^irqcI&q(NCL zayUw=$SSj@kXkDxW=_! z=Xidu*UQHlm3(vgEBuGYX%7MKmFc2wKR$HdVVv<=;}vs|*teUsW@2{#nc}b4e145J zQLsQEomo*qG0|QT8D}%zH?!Np@^MZT({AVMYpicZVd-W+wJRJFZ)VL@TDit`u5o#! z&xxX1PciqZBB3IC>jup$ey=qtM3k>Im`P87t)n;Fce5ShVvDJ3e50tgo3f-(l2?>x ztP$gS)3h=Q@T!7TG1036lHq$iIZ9n1~a8J*As~Eea zsYowIW>Ts*UP{9Ykgjo1-7X2s5PUekIToJzNQG;-i3XwYprX{ zlO#}8LTF`WT(m-FE$15wmyondA`4ae_CVJ=5nELONESU4fJj$0p_RjjX7uT6&KG#L z{!{FSrwK!$^odpCK?#wa+)DgCYy((Te`n`%V^)q#gdzo1{^r<-U^C_N89A&OyHsXY zmQu{9nnhG1M#jk;ma6O~H_?^_k5%Q`L`tz%d8%w`R+LyCGpe}td)J50Kv5~NuB<8D z+P24s-spRw?NLXqE#?G-g%3 z@kuI`WafGiW!8#7GGGO^;7KG%4X38sjY>$@i%zRK#|wVQE{O*DpjkhtQuQ4Gi4(s&0Dt;A+3rT$hlI4oq@_R zB8sVW5jN3ordi9cpmb9WFR$=e*hFsay_i;O*g#YF;p>{$wZcW4wtL@y`dD>U%v$AM zGjn9Ynh6+Vp~I+BrAqD1*d&7)8D4A7th7NRTH(F0xV|8|?T248SCN9G-Zt4KR)o*U zS(0rt$@2MH%QKo*7crVB&DXWot4al3`z{(_#rg7iVn$p2_T%v`4f*RSjcxy+yp6lq zT5ns8&z#?t4)!KxRhh~3ky$C^TEe~E4nQ(X)NDI6EazN)0?AC}haL}V#&{J{x~j7B z<>B-C&Tz4UvM4Me4cbJHn86$Q3@A1v5fpl5FH|t!JLvTi@@IbImVl9omV$ z+yR8Fs$rX&-ZEBd%-3Hi5kR8y91+1qrE1@DjLI5czu&B?B%xBElqxpCoY(i9zh1A; z>-zSp4SJqmRWYyc(}wr)rxCD|4>d z?qcnswbe>lqNKl`uVlY(+sFO+_2*j8ZSUKy70=iALe}{H%PY1&?#IWE@pVC9`_42! zUr9mL+x*BxdPFTW-9CQaKYsR`uIuZ1{a)jO?huQ)VouK)QEI!{+lnrx>ah?>p*D$? z5uQmx%r-U@-Pf=Zvu)dUsa)4J=andSvO$`%>$slR^LMxHAOHEk;Jp6(OI+J-IVTU* zR>)A&jvbWq^?i*2-I_JA-2;3teB3i!vsE|{&{9)r7T3rWX@pfOLdp^S@qrYh3XS#V z^2u8M<>`?l{8c$c3hn^py}84j-_JEp(nzuPXt$r?zYs+SQVK}Pin)AXN7jh>tZLG4 zsy!3qn*DLm`ntYSvLrIs?e=rK9k0)Y=M^#L8GbEMwYH<+u|SvBDWz4-wq{*}IoHY; zyJ{y1QKJeXYgT3nz|5rcpj z6F{P3UEiPM^~_2#)dbMUS@B5$F?`&Uf<7HqaFLU?QPpZ`Zbw}Li)v)@QK5Oo;IbJ^2`*1-INWu)^$kJv^jR-=C1QGx%fy~Gp@9^u!iey7I zpi#h>OotV6qG)nZ_TY(%u6;jl?dS~m@~jfktjZZ!&S*@PvbME;>}p)stJd86eZT#) z@etpXP1|1f^662SnOs9q?PzV^O|95fYsU5U>(BALe7SpQTBbD7%E&QLrM)G>bCvCO z{9wO5pMO4oU-R^Y!M1`1v(m|;NY;$?WC`TZt!r!6`w7IbvQp2dR)?k+Ag4t5B{Xr0TmpEnQqQ3kVn>m9f&7VW+73D==GoC>oJ5 zi`9^l5v!us=qfZ+Ev8F@l_plvQ9>!}dpqvi@e!v)jZ!M2OBu~>AE}I*^STm{{z00* zk~!BLGtThUxQj@v6ur&V$nYd{DQdp{((5nN*6pSZoRrqtc0q$=<+$cwKGt$>`n%aYp~$RE%3GtY z3d)L0x+JDYfKA&?)!v=d%J6xHp9F^xF+u<2=)cnN@kApc)>ewte?&Bw3;?t&)s- zO9p^U4?2wIWEB7yDce5%6<3PMHHI2@nwYn(sWwlW%Mvr@XN*x4;x2jHY!A-24xI{8 ztFl(P0Tg)TwN}2W%c?oYU&v_tO}X*9FcON`;4xG{wPITtxstBo)91*yamD$-TaRC;A7VXD?_j%$u5N|@B%RL$#jAKE%LCT#@*RWK>7 z6wp8by>0)fi1}Jsiz;Nvwr57n6?v)EzNw+$zV&D@~Eg9OsPe{Q$C_BH)G4ct0;7u#A(=E~Qv$jkO^`}j%d_5EwDQagIz z8x5Oz)b;xEE8%c!Qmplj!Wx&a_4Vt25Rg!7o6;cO zF2%O|u>MN+;6=S3BvyLl^gMH2uiuQARi>@a=W~r0N~^XtDDSqP1OZeCq_wTJ&A(sc z`CGg0+Xsr_OPa|0R;ub__!$2Bogq~c`G(0j0K!2e%;eC1vs>>U_jYUuk9?8Yj$J^C ztZQB0=k+|H=#NLg@5{&e{nxy{Riud>$8Ouc-8V?9wX*W>u9#YRWqF};y07_n7WMI1 zE5_>=wOjAWs&aUuQz`!X{r%U!*SU(6t+(Srs;eVBeM(;7KnCP4{ZZ12E;Ny5>G=Dpnb!+0nMngg>Wt;&gj((+%4}NJN$7cI^9h{rX`K{NqY^nQvLYb~iDG3$uB<|V!5Z<3HCbr4o3&=zL^W0l zETw8e@VDy>Of&_E31kHpl@t=0>5xjKHd9fI%IR>xuZmSP>LIGyjj|x)`1nz&asH`I zLAd-Rfm2)6c-j9H^wzF-qRxFplDQ~pa&EA=Tde7Ml?_HQv^Q~1PR^&BjXc^Xu zNT3UjDnvxWW4Q&HK?%OS5LOWb3hi6#TT_)np&RZf(HdIU*0h-{AL%1=!8Wi-+he^E zm`H)s5u?jdg;?Rql?l<}it*I>rO0EuRi7-lU#)k${UNpoNBH#hnj?KyrEIs}4w$h- zy7f#abggS)OqZT}$f;L{Ah^NiUQ(RU`5Co@>mUE3%acGvCrXPyWny?E^M1ca{Ki3FGEMXZNJ86t^ zF_NwK4q9aj;W_4b`-L>Jnpz}s3`fSAr9mju;iXVfV>{?;&2L5+?Tr;vapx?ogeOAL zJr{MNb=_`l?}+8;x{2O(tt%07S@wZH%7ET8x6v7uiLc z$ky*a=JzY7ly*^s&y2LxjFmO}ZcXm-TGnju9X zC;a=#(!5&63ncu?S7x*8CT6$(<={ebMCO`J$=k3s1&-6mRblb%&m$)M% zx3=GI|2Q5WbrQTkf0?sAXmz{>O@_{LhYqeo1q1^00JUV>9?Qo8|IbgjDbV{ z*yX2ell?67634bnGoaElg-|UQvbTP(p>qrX)_ROp;)NthvNFP5O0Ahtv^Tt2sDd%R zOg=0kibQKgM&f-WDWGZ*o~ZpF|Mk!R>;Luf&;RqB=lS(4;P&G`;kLvpnvZJuFzqA1 z3JU_T0y8-Tjbg=&oD~^KO@mRtKGiQuZTl_f>l$NRj)e6e2v%gmDdO>>9BsQH7jl^> zRi)b-B|F#ms$u=7ZURESkcMifevQIX+j zwyMIfSe`2VFxpl=5e|x~HPvgJzFsAw?P%N4k6Zcrdyw_~%Dhxrtb`Yq`+9o~`R>lD zR#s)G?UYtgf}jE_nO>fz@D=Cp-=Zz0BK@5s66=%}=@D~|kqby5qUq+M$t+T~z3Cpw zwa!@Qn?*xU(26a5#n;oeY3+yFjwIq8Xr)NQrU>O)R0HYP^*7YnM5PxV(pr`Dec$%K zJ21~*fBFp2idrE`VIniAiUv^;wW>(>$g?WggOa(TGJ){85+O&=EBt%qs0EL6N@o|759sp>|vjG1Y|o5z}tkQQ&6sj8Skq)>^l-b8z$ z62?L}uIGyR`ux|Q=ktnEzV$!(76e7EK~W0KXuUzW{LRc3vG%TH+P?SwP@&S0*2K{2yw36bN@c2+D%n{U zBiQ`i4r{#=8s(ry`t+-ss!CadY7}}vHBl4QH6zCG$T8AGMVTt@2@(Qq zZTy~|LF?nZDptQYwVqO*OOd@R|3*cqGoXA6fZo){a-<+$vr>IUWG zOqloW2HQk$(g}>5D?$`Iu~T{&<``>!C8*6{L?*JTJj2ObzDMNJizEsqNXB%e(?t7w zPYke$5tYc1IYc&V8;YJ+RT7)*z0{KB=_@8`8Khe$BCZ#qO&`)WEY}pG(Q`ikGBZk6 zUXd3&tZ$+%ky+{af|Q{Gm+rOw{3)%b|9)R!2?KjduJTQHJs#=T`F)LZx@RVlLKXv6 zi9*eRT#1--iSDg8ie!4kvSzBbs#G!0-{;qNyWKiIR87>%gC)H^yecCyE@^4on}fOv z;gWAJJL!yQJNwoIk}~J1CQ3?W=2}P`w}WI<#XzejY!S7-o_aIeTg0nsY41SiaB19j zHKQXvB^K9m_a#-uS^g3f%4IWZX0EJcYidn&7iMd^-R`IiT(pWBxn44Iwx+i`RJCvY z=TBzM>j@7qsUoHY_;jzSLXi$gGQ2!dYzoo1X1S|LM1Wm2GnTODcrB)insqgcsyNT| zQZ_bb6{#LC)m`kE;~eKR+>yl+Yb|G7*O_`rN838pE(RLWO=Nrh>)+|K3YjK)grvcs zh0JlCy?@yLW4+cn{(a3b+qT<56(nkST&Em8QbdnR&jP_fjd8~Hw0&>4LnLU*PLFF{ zFCaI)=R(YQUEkM?tshL`vDIPDN{@Snv%BnmCMi5QoRyy#!CewF_%ZMsn=per4S8?svuOG zRl=_`8}b_M=N?`%=k1?AfBeTkYpgY|ZR2`=trgTi+OciNqb6&$Soux`LOpVdR!R29 zt^e5P=O?bjQq|qs;r>JoA+4pgV8dS9vQ@seP1&1n8ym;7OzCTk=O?sR(dUG3tmZ>K zQmV9T|JW>qF6+F~Q>CkPspfND&#(1*mgjcc`?lAN%AlFdjt8hH8@ z2o@3z*4kRHGU;+79&&8ky;URHu-gU!lm*5(%O~Y;N?S?6D9bV;qgJ>oN~%;0T9B+l z398z5^qZ=zP47hu?crg?l)Vd4D-tM_n5A@9yyIX{R_j-+@2`K4^I0&J!?wfV>+<#d zs=@M-GHFN3@;WKhzDYA6!4jhsfI<<;^|~Ui?SAyOr5&>@#+>yTTUH9*`YfjPduxBR zc4N(&v&OTij9W%?pECz{Mb{Egr7{by{kAD%{Dk=Pp>`u|S<{ED(a<9xeUn*2-A_BoX zcBcCyGSBDll>=H!Jvl|i+P!a^slu~s6pR*hVQZinri zddsN3Z`-lIvq0PZsBr&(X!^4)N0KDV5~Yz@L;zJY_lU@@TI>G*hxJf(Gc(-XQ~`)E zGfn*f?@z#sfSBl)J zIWD4NNDF7HW#@9ErX?7a2~-JT{>Hnh9u-^=+_%0T1QLW%5#yY8p)}E(fkikXl6GRP zjEI?F)Ar-5js28mDjIx+BL8vJNp#qcuX+YXM8CTam z@*4IFE7O;Sd!8x>w;cj19EyQDNe3>Zq`e1b`iX%o+WW@4pcEm5jmQg}V-bWT7zO}> z+ZA;cM!FG!2&ZSRBoah4Kiw|b1klYEV*m;ZK|!JriENEXE6jbCJ-Kt%jC>R>&^sv2 zTr=J^h?bd{LAloR1oIH>`^Komh{gUc0+yvc5fEfUMrkT2yB>L+;m~-Owp-@)JOR(O zMl6f+VI#41y*r|Zr?v>s7!xcN1P_P|49k|)fr+3*SXBwJ!hy>1l~jb%cxNOZqnr{s zW~5gUDeoC(b07)}t+=!+>ke*fJssYf$`f+n%ljwq+fU*TLcnW6rY#SJ zWLV1?Hh^y9D;y#?BMGS@!$&1bYgxv8v7$E17oZVdiIhBQi;SpTh{>$XLMm@7=-H9Z1Z03AVqxFBPt*>dn4laLrH zA(<4A)2~us;GEM%v5Hx8x{t&lEZ|1MwDo&|lWJUWU0>@w6I@tZyD0-jjPGx1(0_jJ z+s`#Ggd*zP4UiHcN9Td`J-f!hY6?h_c>?MG2xu>vGL99|41e6+SjDF?ElkIa%n zCh8a%vD{*wriHW-NpK^ZFZWmLRM|NX7KAXHS3zCpLvF{u-7VI*{sci$CP=$pRg-nE zcXNR^%w%NM&6oK~V2nZt1X~%)BT~ZAF)J@m%C>i;$Tf=#KhJPT0rj?!@J(+S8H2(Kp-IiCX0d-09EUxGjvI0@eOIASY1x6y~N)R4K^*y2k4@{(2xt-`Vpq#&BCq zsJAXR#ll#@=m3QbNCh#{*kYy|A`uDr7p*eoIUbI<{rHz2J1JGBySb03L@ryIYsBg3 z%-UJBG7A@ri!Ps+Uk`tsP*Ri$v;5558H#|w6V^4u6N$Fl{`s@ZUU~~`^Ljr2`ntYe z;B?&EzTHcjN1$&Bls+nuv{0~bd;4IUu)cl~;r?;ke|(PdSYfU2RJZv|MY(@;NIovJ>}C#e|e00O-l>o(p`PumGk>VM=cz zEyf750z?EXPIxbdeGQm{&ga*^|JVP6qD^jI!5dcQeEhO&q;W)0B3G4X(S&%_^$I_cw#qHsea-My zxvHWv+O{JVH6dwP=n+LkZIi&NESMD|)A4<&!$ifm<{)9Nnc%>kl|KqFrezTGjc5yF zcX8*)<#jTGG{LQr0C0dRZwE^A%&bBXK=m?<03bqr!)#a>Nw{wiUK3GU1=#Zn8oeLy z$paW-T2{$+PvEdfTM@{@MCiUCqlls1sohBS^oe+(Qfa0KGN-RX0G24kLT-&X-m$c} z+}8!jZQGgm3eSiLhe9p_q5=y~k2S|DJ%Od7JTpCzikN6R@@YPNK9Rs3(2(0!!ey1K zs*+h)2m}bJHMPq=Xs?sfR3Qxnt(nW z5)qp)1E7EwVrHzlh@iI(fe^t~F$y5$T5(ON_qkJ`GS;xX!q2KClD^$gdpXCI^X2YX zDJY8EtCHS6P57IxkBL~7YpgluIjXSI%BH?`FVoVTA(53?L?o)RpcoPh%fj8qtVBXC zB-YL%$WY~8h?L8&ah+KX^mYL46&19sh>8)J9Dt#CIo9iSfnm%@$5^9w*4EGfEOSv| zFWzxeZU|!LuYzDw#7r=8CnD(#kjs|Mtnp6I3zsFjucwcRgrZ6!=txmTQd0MxVIZ42Z`Cs;;OOy`SSIEvN6vITLb_}$ezVeM!s@BW4W}Qk|D9{ z9(AqdP!s@##sXQR3W1~|wSVmUzY@;t^n!LUc^+Dl?Vm4&TIY~oVWh7ZJ$8NA>zF>t`!-8Y`$*6AMo=KP}T*Z8J z;SV1VlKuPozljTARZ#k(rp4+-&Ws;F@_a)1S{H9`QZ;S;CMegc%O;8T&Q;`dxMvYn zSUMpBx~E-`vmd`T{XGWQ3;R|~_s7>)*3gb*tD5VnI6v4M7!GxFqMW;iABIA z3Sl5hMMVVxo@dQley1mtw^c}e4}Oa!FP%;3!>N;IxfHf^m;RMhe+ET$c~Ga0cK zxF9Z1vxO*WR!AUR>BvOX+_CTbWe-wrAGf$(?$4TQp5K#TJkGRdcr+oXROt!8%Jn?4 zK(;Ph^E9(FV-ewa{EEfr^H0hjh|S&Yx*%8Pnm%hL!!3OYa?VAtgY)h7uVeqm@`s-< zKSwRkalKw6QnnxeBjAD%Pbgfdz5hI*5g-Z$j8Ta|Iu~bRgK!{~<8%A5k2Mw<_Pzi3$z5fWc|GkfkI3+-T1Xa#{z`#E=!OUm zBWPLtMe9Pa#^ibf6lw}c1#^A>8{F*trtmOdZgRixpSOPhz|;U4*Lt0QJ^%P~KK@eK z@P3m{A|JNkTEkByYE=cq^3kayq}N(GhwLiSA%O+A-+z?Vy5@?)i}^LTeSzTi@xiSF z)I6UlynXb75xJ0ZzMjhnq5%LT5K?6^N>sR2Ya0u58RqJ(Gb=^;THvm-;~ei88KNjk zlshD5WV&a*vy5s}UVqMYKCeHAbjB9J&-M7_*JUq{MSwTby(*Uvpn%5MfS3ylk(f!b z2%|u@F~D8U?BAhOd`-$AZt4K_nJ?iFTjd` zibs0&&qHO4mE-Zp_5JeU00JT;NxnQB1w?liK}?_mLS!n0gko0JuG}=KXop+3u(>W9 zuZSRN81G3f5{XHOfE#YN&+Yz0q(vk!K_NgwT0z7cL+K%%MOm~X*RX*M?bZb~&3#O} zp0OMg8O!E$^8hG$`z8?*nj8f_$LVVpAHWCd2M`e?!%Sa9tqdS4#zJC}F4PG`8xRg+ zNJ!7&G0?U(7U2US(@sR>eRrDy$(v@PU1q0cCUwdv1_4$8K$Hwz^GZLV7Lb^YBI>PU z1yU6Px6VwN?(^*10g@gg%cXCqJ>3w1nYAfq*c*kTL`p@OunN#}Y9Q#Hm8l^}0>1YW zUS%YQ_8W1JWqF+uPWh(cRk;%?F{Nc(W_%(DCgp%UAw7!yO=JNj%gavt8@~x1cq`a5 z$j)RIVuY-wI~N9eA!+Y`SQS|dh>(%!cz%67|N4pvs*Sh-fXBd0j}f`BsxS=&X(yBn zTWf`7fgpvP5@+7ZB0dlkeESrtr0d@ypS>@ z){0dkTO=2uXe)|H^P2C(*tlNl5dm$xxAqfRR?biY2+Cx-Y2T}6)d(9ly-d)#3V_KW zAtslWd#pfi&=^4gGSi3)w+#X^JUksrsN=S?3L=NEa<8!Bq$b<8dkr*)bSe{&v|JIo z_2de3sABB|E8R$hlncPkw*7{vf?eB&P{<&~9&>y@;+*J_=C+==1+)!-0JqE}EP|+V z73f=6?$U5OcE>bZnE=HFUKGs2B0!wLK+644+&sy%!p|{Z?v{v=hNQsKgn=q*A}F!A zdwAx%NmUpb41mRL|LC8$a)E`p&YCMqpz!?qYg`Z2J4!6tZOyAc+7VSQQLNEl@xt5hCP49hF4U<4iPU>c@TCf5d!Z-`df)cEEJAZ@vFOmINa0*Y}^kW^129 zScBr^`N}FKWaO6M#a@`nSP;OS8K97ukucs_P*oCOf|wIgw$BfXStG*dijxF{IoSv~ zT~QmVx~D_dyLp7jvJrEIXJx^P9O-XRBMaYa&d#N>{^0^^Ld^aKO0+4ehg zM@9w%F!Y3+(pc`FS=SolZ6m2bv`E%U2lOIK3NNvNIH~Qe^+qHy&0>;ly5AjhUe2qa zH%MPIqA&o;=KAYDArq!|-a=Ofl_0UQZ0?nj41jMQY!)LiaUmrXvm|0#P^FCr%uBl> z0jW~md`?)96$~oFw30U zp(!Kfx@Hm;Q4F*zv^8dud-rwu8q|`M+t#?rJSP!1-XhlY3E1TLoGW97h(i7CA}mJL zgJ}7BkuWmaT2Mtv1`C4{_`S(8n_-iYlQ`xxbFg;suyD!{=>!tfs(?jHFtS$6g2D_4 zqy3{0E5*D38I@6Vex0Gpz}U8k)%RQf`5Q1jAJ4LM@^YH-EQ<`|a*AGZW?Lpa0=wg+-!MCv1={B0OHBMv>^T|DKJZiU=SqY-DK8Q?@(zo>V?2 zjmq^RR6-(7r3|X+4>Y{*Kcy2|qBM6uuSe$tOu{YJiU-xuUO;zyJG2aZ<|`dIG=xu zR>BHFx~8Z5Sm8`J?MGgaUZjCgP!^tRuxLXL0*`{$He8WzX%X?NWx}mjru#qwR*f0q z<~H9O8sa{#82{)0nPXyMZ#%mB^=0w3USAju>qe|48CmX*3RER5NLZOjR5mOZViL8` z%h!b%2#iIQ^>$bPtpH3yX~bJbUWwy-&-3}$ zUvn&Zo0X6<78p{oXluugT$KwD02Pp`D#@7@rAz-=nR9+8k~^;fVd*)OUAjPexI+dz zwJuG!jduYC_p}9!+_o@_^^A2Dia9}MB{A-AA|-N)3L`6PDle)vFx}?$CCnHRV>pUv zXW2xMqNME>r>%ri!o60#H%3g5kTsK%(=pa5ya5D8wXF+pOa_z)9`kg&stOV^@%8wE zv|N`6E5wR$H=eB$-4df$m{*ktqOl->GAJfenb`>#2vSAwQeedMy>~<1A537&#Hy^&ID!gVkrQJ3T-3N z3lRtuFp*G{L?moJe*O3P7>Go|rTv}$U%nt$p(6tkGpneoXcb#N%+E;2ro{}zNR70@ zLfS^U0R+9DGM129RGEfc=n3J}4$)n;sR&duv-BN-PPd4am;i586S+eXO51@o{24TZ zCMM;mTu$1NMf!#$5g8Gc22cgWSV)i#f(#z890E}~t3Wsc!zzSwUy+lQN&;ZHji8rq z+*QIoS0q{#GAR&MN;*|>AtcPi1Ry{`V!=J#5i7B*rd0$m76Z}y>rC1dc6c`*r(qSe zLI5JFj6wq}Wvc0TO$kEWR#0Z53CR{2P=m1%dQ$>z7~Z!Kap|;u@Z`pey}S~uI1+d} z5PMct8VLabG{%juum5tNQ5gX40aZ+e!XyO{!b(+G9_zC8B7h7kM=(W%B2!K!mo6E6 zT{8ozHJkqW^+Y7TA0T~tU}^%BDif@6B_(SmI`-DvZga%QEYI-e6Pu!N20{>11Aea= z8IcR55;EP^1(i(|ni3tEjI?F0@L5?=d1OJzm4a3NXN<>Q4bT0zmq zvLS)3XBDwF;hmI&XTo4mRfV;eN4Nn>+dg&ckZFD`yAq6*s%AQ(5Ec{ysDTc(kc%>hNA zz1G4oR4R|z()C3|R(Ttko zbYisew6%DP7|)FC`a@`k(4fpYm;KRoBNo?FoDdz#DyX=G8~2txYE9`)_P$o21fh^n zt^!UF00Ssw+L#&uuX*Llj3QO4T63)VrR`3}5lBVIZ_ThHR^RWXVCm!eS6V1^)qXvn z2}IJU2_tS@&=exx#@QT`iKw@?hop$!AI}2OjiY7ps-z}IIUy)az+(4{q)8)?ZJiGv zLlqhtYr}L37pk{=KEu)+qfj<#az4Lf7_nwl>p$EriD09Aj5(tdRRM8px)oY&lqf=- zqKJCHa0p^7l5i6e%c`*gcIqD_=NixS2SPBRNU758$34i$_+Agwrc_$1=J$i~ql@ve@$MS9NXXxqlrmpzghNIg@CM7XF>fU)-lG2LN6OJ*vUiiE0KUMNMF zj#XA2r1czum;eD4-~gCFXTJ^s(wbncs`sN;1Ux;!W-PFQ%lrPLxKZDLGVE2EgjB6Z z0g5ohyq?GYKUg-qP5=V;qFD*s$B*-`KXWZi*zO-9-EG)>VNm*s$@B4z!a=Eh1E9Q~ zvTre-B28&)w;y({_4p(4DqBb#5-S%&;Cbx z_xrkDHODo^GWS5CTazOet}j;=ZaQ(K_uY{W#uh1 zfc5^*|AE0&bpQNU+kZTsfBIl51qAa`YV?C|KModteE<6OU;kN=(poG7>WDJ0@8u6r zAXV^=Lr58AB85( zb!8^$&L~(4;Z*<>%P+@^63Y`1a5yl6C<{^FijtYRZKOvf`LuP7b&X6YB@$(Ah+GwE z!GeHLSlAdz00rRvS*c9Rw8&-C$92u|eVu1`0l&eN@0KHHaxN| zqWgTz^DCwmHN-~9wno+RGTwJY0wj;fC;~=kP!3o&Ud5u?+U>{IkG~0bK)`Gf%d+5* z)(bUk0c$}aCq;-O7=QsL$h{-3mmcG$Z=kn ztMLcbUX+NED~Pqy(k3Bhsq{|e2#E+#fYJb|ATwvK3r&;`W@Tn>LRht~v{mkvDcZ3$ z;fk1uuE)I{zcZuH73<=@Z|&w-RYqiPub69|uQgu@2*3bXND(&AFV-DfmjM48Oa#mg z3)Wm~88@XubIUcLOErE|iesLTg{7E`g+)kp5E22$a*R<635WrSh^Zk_*z{>2h2zvi z5IPcv&+wS%W1cT6p{*Bqu@p=AbicTPa1mqcecSJ({rnztJR=P|)3zmMk~4FrS7laq zZ5aj;B5VaE6*kk?yXr$iz3-|mG0i7r0_{RX%1CJD5yr$+{SDb{{f8buGsEYru!yNv zf>pxnOFK*1Ef<<1Q6C9$c$d*3{++5XQHtPGyx{4L6n%8 z{v;wgpu7Si(%*mXJ~FK;S7s7WM2*)ayNGBK$|lI=uLU#07U|C0L6uaE3029@?+iog zsv9ELbjMZY#73Noji@2*AYw_ae|RiptrRGBKOr5}SQx<)En@+9k{@PYW)?XsG74$y zobWaQrJpeaI$DmhJg+~Wum3Ee0uJQJ?8gQO#X*>?+*IBS4*<*vA6CR%N7Ek|0ALxX zpRay&23X77B{SAA8_{|zkZF!Kg43JNE@JQqL`V`canqR2(dR^*IKm96z1m=Kea zG6F!MGy(w_Y`PDCWKrf|)hNsW0Q&o{?tN{9NGl{lfy#8N2m}y>N?R3`J_8q)BXi@8 zQuDQl6{5Jf0@4zs zD+|L?*^ag&ckW5kWY?GunA$o-VG6T`T*kQepPz)}zO?VHA5}1~XW2l=sG#C3%4F89+|vpQG05FXRJILZ zVWzpc4SPMJ0@3)rHo-(zZhMWZvK$RBN4H#)_CxnOqM5DqqU}bl16Uy!!&=kaK!la6 zEMS#59l`^#Q28Ki7GB_93#P}{x!*qI_ED0tY`p#?JXH3;nc#f1){B*};pMNqY%Z@t zs6B!`CU=sz(n$+9`8!W!VPk+cZV(<79-ak(%B0kObm*UJJnd`XAi=J@m4(z{@XDIp zHU_OTDt$h`VR1ihNF=O$zg1*KK|!kc8lqZA<`qa7kwEjD{l{&NU;Z?TIQEb6{ndJF z_e1se`t!eHm9)LLPhV9Y-~lniSNqse8&tUmKr&z=0Z9~Qm}0W3Ft=Sq$rE_*HGz0* zx|R9(^VRkPXaSVAP87~D{De`Pb|B8>7)%pR2277}fC?rpq=>BCkQ50LJt+$un42~rSy-(Q4C_r!V39XtBOH_?ouWttox(hck(Gth zF);&Bw>zYV6A<(LvxvsyFPjr1MRo|Z)0(qj@B8n7c>nwvlJ0gr|IOKJCeaR6?gNDo zB+Iix+W{7gUF9abMmh~ifC`r5W4UWP_S?tDKYmkog#X`o{_?rz_t&p~|Nl{`eg4C$ ziuXbl5vZ}>{{`+f&F0hN2{FqSnd^>1N4qKQ>}KmlB+cCb7?Pm?ND!Hng*p}&5$t!7 zzW$61!Q5@F_40|!R`{9;O=ZKt@qJ$NG0qFxR=PoDVgeS_s;s`<<)%Q6v{CEx_2>2d zWZ~oXq1u)B%{|Y*r6})T0c(;}CzDYiO$UaHchHQ-0z=5bf1aen>p`CRLHg-6@b=W0hQ$Z)Tk)DUE* zZ~gXDNE|K_LxqHbHN)n@VvYt0+=?zV%&Y7R1XRi{h{|<&Isg_55sEfo1s0YA9HzZu z8gX-62tf$NVKJ&43AiDNP!y8tt;t?2psZZGU(=irM1 zciTl6@J)y%W@UP7tzH9lEsvFEEh5tfF-4`YprZhT|0>osd<xZu=!I8kF#>=h0AfyyGbw26U{aGHD{>V#Qza}72Q9|l20N@dr zh{0)@07*^=DqAJiBH|52Py|scix6_T)tL)g+p#4^F*B68uL3}U%!n*6vf!+EoY(dE zn&(N}j%~{f>RS<{CtxK(A^?&0Tfcp*<>UOab)t&yN~(p4j4Bc{su&_;jf#M9!j>f1 z2)vLvYZbV(mNmz4){Y2B0D|F`VbTQnfbn8f1Qx*})qXGOzAjKkrU;`z!G@@rf+%BL zRnB{7f?~n|C82lV3n6ViCIAo;3TtaeJ3h0Fg%X|Oq5`wzrogJALOZ5cEYMa~L=;gGi3Nz^zPJLh zkQEzCZgzpE>vmgLKw@0;or3f=Aq=;@Vv%4*WQ6&$g7JEu=SjE`A#rPMpL1;5Fif>& zz+BT_&)4(Mxh7+?^=pl9fCQlkW5lA0H4%ieBfy+jT+#L&C5wr< zwQbYh&-1~?(t5vt=4;OLBvN5P3qj$oxU0YXIv;Py9SbrikV7SA_?(FD%NX`Cm+01{ zK@<|HY9Yl~0LmgtUHRrdSFS2Jjyq)ftfE3f4|hi*q1HWOt|t_bw6qg~5hM-3NVn$0 zZH7mQbR|KdT8kjY{5C*P$-tVq%o>ycFjB(I^oU^Ehy{tt%H1Lt09O??Eu@U)egRQG z?jn(^n%;>yY>6PisLCt>+NB9|7+w`fz>sIm;YFQx?MfSQ7cfe5uZ1ZYlm!9s1|{*k z(Xe3^+nhcwCSs^s7eqo;Mj*laVgeXNfs#cr*G0Owwh=bsUWJ~M2%vyeggZg{IpbRW zv-R82x1a0zoq>?$?p9G%5thDG+dK!U_+0P}=l6fH^8FwG;=SYKz(TndFk~x8nHH%QN% zP+plVtvrexpnwIl3b+6eF+JQSs1P=vmpZB5xs?Ynd1S$ul*Y;gfFzNCND(aimWcbl ztJLeSLcq9IjltW26te#~etc}7pJROC8dw;XX(g>4KR%)i6-DUv{Q@%#!PrL$K;n z7zG}ZKCZoOELb?UkKgs)zy9;TAlLhDEZE8+hC@1N&DXE<@kif3%=7vDD%Ub(-mtv4 ztsVb>Mp(rPM6iASfYZw&9gr3Ko`nFU$DY2zuJYwM5h-$36^^*Rp1z{rK4kmgzQ{VC093@%1^09Wbm4|gJgtI6JLI%^>x95NG=0 zb&ObIil{`|Ka}Ye7-UfxS$GL_Wpx+3?pFO z_n)<#->mW=rn-nD(M*X7sLegF$9g|BsetrMkn#9|UNvpFl1 z<(?1_qW}}CDk~ibxD+q|qbMPRBta%1V5VSeq7{)DK2}N8!Z$c4R>gXTEg@y*rd#Vb zB=o!jyqF6jGb#%lfIQYPH!NM}40D#7a$99WiUK5sC{`<=5T&rzd>JA22AEXPOVi9= zmX4%52!u`ZQ2`{vfPoCUbHC@B;1;nQ(Z`eKsRZCqoSrTbu$~E-)7LVysFmS~z))BS z#FB1Efmo0Upac|vh?tfIPzfZ;t#2P6h=VUAV(qg3{!hO~*cmokKUi+-dd7N%J9sc5 zMj<0(hr$A@H2_Jpdo4uBaM}o=6)vb^6hf?s3V;%l4k&3A;DE_}s$pQtx4OE8N=Mo>h~g35Qn4&7F`B~k^vCq*C(pWKBv_L?3Q1wj>; zU9VrupVS&lOIX@Aq+IiY2vRAEL_qDj-vGtNX=?zvv`zM1dIPLnrre_w1rxRLe7@5^ z?>!@F2dxUrbs|J9iwx$Q_Kt!HmK7dX#$*seK`jJ|Re;69S)S`ko1{pMa}=^tDI`Ls z=O_zc49{AQ5!@s&!-HhP1~9Qakc$bkQBBH9 z^K}KYMOGp8=4&Q7NEMp-s7$DkwjruCK@gILLefNz!!xP%#F=aAZPSedy$ZR?uM3j< zc8_5OHRh^Pf_p6>;40DnSuv{^Dym@lC|mOR>9F2X&c3yM?=djPMA#|0#=?fN(4@`k zUbBJ`MCFIi6Ra^c1gx}#85tBUc=n^SFu3b}%UbjG)b_z`?*~MNpD&-6(J$HehCc{| zP$;MS#TY;VxR4OQt6C*6A#u9Rh$ojZ7E@u82e?;R0Rz9~7)aO}L`zT7K*>O>>jF=0 zT7;{6>pvsI3qn@IUmoo(B7bJ9H7*T6|qI0zJih?0pGp~AAl6)e!g1U*b5+pw7pyJ z00h`{H!Q!Fs1h(Szs?t8E==7pYo=MjB7q1fLKY#}EMnMIT!JiIu@=BiN%1n?T6wE= z#Uj=_p%oVSka7ficRhJ4k2CG$1Ym-yurVH2c>#+4IQo8|=e*43OJqN|B1FL#Dl+^ZH`tw%zSDe7*pYnKDr|@>#9l?0tw*Qj!&k2yuKqBsscl0LPpJ)&x_u7CF*oPsMIVO1q!BxyTfwA;C6t6 zN}Ka5=A=3G?j?pBa+I$K3~apssQ?$K67Xhoj`hpGytR_sw%VbIZ!@sqh* z8*ayMwGqD-UF3!72npzzT>;0I!No z64<~;=12e{Rbeq^ds$IY>!b?EQKdkT>HfN|R{`PrMjt+xYzLB-P>|cXe4KNwz*eYh z&6rDcQ|&ApV3bcrBoOx(Q73Ia6CzNyawjI;?nqd*SPL+PD2gc%!YB*?YE95qQQ8iV zQ$>#bpXC8wl)TPC*nrCYD#FZ)h_Y8JM&+0e<-|#VSt#7`=;egLnNXw|>7Lth-#*IC zkP?UqTZKacfRr=hj%7q4+Z|cbE#^$K!Yl%xl}peXL5C#FEJy?ZPr#_UDna;`1=P9m z;ZE)o5tdEQS+N)ju@hotX3!hW4i2>#vfRzdkWu?hL}669qeSM)sHPW?F=g-V_zb)NLvJ5hbbURpuWz?i49H0W+rC4B#gh{V zJ2E2aD&WQ*l^C{`5cwK5ACOCgqCon+Zy!js`~pfbD8NcgvkFY4jIcGa02!lB2(Owf zAiXnv`0Y_K0!<0`AJt^li3YIbUDf{-Fs(O42c1NNEM|Dp*Cx z+LhUtr5WmmAoH3s^kXo>*wF%f_psz!4o#8vuq?uI76K?+Pg_tB{a?SayumQW6->A+(;Z4k2nxb2(@+Eo%8UR> z+WW9y3FXYVV-6oPHSO!Wch>FZkpSftX^CvyP+fc5XrY_CO=4me1i=&thv_t_$&Fyo zs7PCJS(tfpIn;nc-jp_qNGQiB z6UY+Qt&?Jy<(PBKVy2i?rMHcg`|Y;%56m{#nKb)nhpPGOMUGXKmltP3AZ@LE<^^sE zb}_Z(t2UU|V1+8GK##~I(OW^8y?_dlnK5D{1+`Apn{w&e`^FVOoa3og+FH&r&cD|6 z*ZKN4@IGHpdrl8L=*HM$ zOdl)O1(BZI_~`o%s%9AuTklpSf)ks$6rKWonL$M9+A7Xseee*f(!A|N{FZu8}lkLQ1WfBoln ze7a>=5Gre1xroHaw@YIL7RmC+ss({4xsLlC009wft%qMRI%C9noqs)l z{rAe;+TPoT${q7BG-PSaoQCu3Pto6~?+}U1z?NY)Ucoonx98)(3B!C~BQD8I=nU>C zJ$yXBA4SN=hfPC3Mb~~~J^)m-CC)kB)@wemr1XAZ0yW{ibI$F!IRjJI>g#2dE3gV- zt_zHmEIq4&SXw&-cR{gf=hv@sTJImXA3uNm_8&y_>)-zirYpg*AD=(}gLipef5sRw zuiCV=eLp_vxQ!8GKF9MZxM|-+s<^_!-}==kVkCsJRfMs+*_BiPlQ^WSU;mr>)<2Fg z7!RrrHhEAjA|eN{>oLP zowl7DRpC464??kQjRznCHbf3X!lP|>K(#fqE&u`+%v7O*s2YICO-PZNpbF;S$Ju`S zomvCNsONY+Z3K0pzW3vH`~6claC@W=+Dt!claE3k&sWSRB!FWUM7nU(W6On1?SB8~ zas0ks-_Jk)jfBU?KYe^%*UO_kgP>Rxg^(Z^6A22_E!GSV5LRhGXaLeW38D&1Lj=Em zSxh3z`IYO1?cj|ew0+#S`wxIb7Iyl3lNbd~^AUy-qtkOY* zxK$2fK*)^e982Wh+aX*Q5OI+p%Z62zxU7!br#ULwnhQLTI!2aBjw(z!8skTWS5kNu z)O>|>s31U!Wzrg=FiG1Fe|d#R84@BYL*M%E(C@Fm{@drG%BI>r{;AsrS@V2)glr!X zgOK5!8_tMwct`V!8Fqn&xc&X%<9qrm)`|Fb9~wzOIDs&WXeUMhkLQSRB+d#V!Njs6 zmPioVN&ckluWvsszkc4Y3y!AgzD>}6TumCM3h z5PRFIkVK2at87gI1Og@@Z3y8uEPTzCIfwwML^dcQa8}vxA51^z_i3+ZVgOWYja6e6 zSN7g5iy6=H=cWx57)y^^I}XOCqE%7hMMkQkEq$dyF(qUXimJ4u^+Q@??CX4mM=l7+ zidwI8Jw^sFGm$Vi6+kZn&x|Eba}Ne1@%& z9PQp9EDFjTc|ihTR#pH|UZ~aDjm8-iT)ZE*^|}g5c=HO&d450k-~JVA#R6{kh!GKh zR7LPUa%H+bJywPnrd>;MCuo9-;AlmgL>a0gBr(48b`|xvj>W1f-~WgxT#~XKwk{jf zYm}3Xh&fwlV$t3RGW;YZgsKX{000EB^8(AzmKB*u(ojG=0b39NDA)@$ZB2#}4*&z% zxoTV<9zd#GP*_wI8JQ8QijkUQ5fT&wi*&}|vJz2X5M;#kH6R^Dh!KI58Xr5Hr_W)r z(h-^Q-nfZ@M_OKi#Qiv8*m(Zc+R^r(2uP&!an_Vd=B5dRV4}>_+&pt}K}t<{WQ+pa z|Mlbe`H4)vOr){E8dqKc0Nfg3ipcTvUf~|YhS>;vT{N?dAW^q_8iE4}+k7By<&{~~ zI#!gRhj;G2Jkcta-jB3dJ+8-J+wCL$rGF3Nm6Z`>9>_$+F&9)JAVUvJ_XUK^9f@;I zl7<8xwk)e4E6b@Uq#7;_Fgs&LcHfm_+<2oM#xb;?*!jzQfdWr41lA-t(YIgb5ypXVCa39Gi_H+p-%%7BH16T>uUJ3!Uk$M*xWn49)q z$hrP@PXG{uYzGJ~tOc_SfJXAS0+ZJZqS>y9W@6wdYzY@4{jK9f&%MaQ2zb0GbXQ%md7lWsC>V2Y5(~C^MBL6 zRS{R`BHni9^h(rN^VjQFzgC@J21)7UZ|-g;5?#x85D{2aMLRe$ffBlMK zGMjElEq#<2Du4h$aHkFjZM%OD4)F5ELM+$yD58G+UUS5p2oN6J z9spIOlIS*&DG~`80~sln6(skjQF{Lj@$iHZi7WHUa%hxTRRK`UW%ll06kUyInVDaasj+GRD{qF+%13sfT%GR`vT?$e6MQ( zRNEW)%sF`Lm1YxI?_p1$XCfqk*fOpL)SzuZo}(YH90a5wBl7Y&r60>IBZvf%p*#bjBw#{OLeqZ0-&Yz!*$EG*r~4o@0@B_H zBjZKHL?HWd^dEkmtW*rk1~7wX%mJ7LNN*}h!wRVPz}t^lnN|S6Z=H~l#sQr&UXzm{LCoGtNyAXEe8-lWQRIyq$mxCc_Cd}(;>y*CncD$7$g#a8LS?S4136zLzW{WXp?^U#x z+j7V7UqMX!@w4y0EuS`DDBXcExB{7WYTeB-Aqk1!WjYr^U~d~z-39MT(msAV3;+V8 z-urpJxEjP=x|9>k@h&RwV0)&lx$iBYyAzXfpBV_i2|<7AS5jGs*J)U zm0OX62RCS}D@LwGtcg2e3p6P5@H9gu;fBIR3H4fQ5EPKOJ8}{OzS#;EW!pSuye6h@FsQ1v=R|5WEoH1CGZiCfRN_ukrkj#|t9c=dJJC z^VhHB=zVhuXvql7?Rs4C9K=p* zkKaFituY=krvj>OwC0)@ZyP516@;0b7hiT>!Vx}LxNTjvo$EGlIrSUUAw;}?2T6C;B%Wq|^-vF23l+**NPVmgLfW{@6OBm&F<>5y$o^D7y&@m6rz zu#$$XlxFJzV7+~2CL@#VL_%4KRk_L+A!f`XCY4gnmEayev`P8`c2<_~ktL8` zRAi2F|54Jbb-JV4M|@4y-TGBj&(|Nj`~!*^wp!8eo$xHmkVqJhKmXI>=7ZXHYg++P z&L|Iu=Q__YY@O=g6=RZeEfnq7ufMY0b5%?y*nj>Q_B!p$!wW9UClGS)R9QKykbugyvdJ(aL!D;S&-)eiyF|OP8QCmS3M4Bzqribny$9CJU=T+rc2~k8+NKqi9fJMpx?(2_&E5ivkN+M+B z9#K>x+M~NOGD?!ZQ8ZCim6pEzv|5FTEYujP(wEJcb2hl?CMXD%>C@b8#QE2EENJ?J z_9JEhvaoP%NXXJqu*#By)LXmzs&N{YbW-LUD@#M!7)6N5)|~TF;oIj&+qO#b>1D3M zLYTvx?n)#J7cA5~efu;4nssuJO#+~(!P0LaM! zFcPhTs1O1RHz{;LnK&%AVa_3G6OiU^0@!we*8ARUSphd zeII2$_RU%RS6;CZnLT&u_6qS1U@A=u^M(WD}W4tyKfbVbgv58y1iZ;+!~NJFHc?wi!msD*$e6aK*RFN>Pf=ArC$u+pJKzn3 z0Z%>5{G9k|*?`b&VKi=nFi9?e3PRbmirfQ2iny4{g^;1dZIuP2DsA`{BT@mnHVVgg z<1?2*BPa-)W(Z7(&g~1%x1o zm@H!UXsQ{(`z@^?m`OVwS#0asRz$XrZM+}Q(=0Ai1;Y>ha-Ag1mI zktRh50A;2#u|SV3AkN5ZJl`fcLKG!d^!3V!5<@D1T=QfB;@y`GG|U}_2Nmg_89t0) zG(MCFGiX#=`gPI{a@^Z-r(mL?t$X`vJ)5iNz!; z)%Kr1pXc}E@xPRn2sE9{1SDB$Whz3$1$rSn42N8hhza+f|4KA~*BU1vRHZvb zSlAaPecb=qKYy_N=)lzIv;_>%vGK8NL@bPx`=(v9&IPY+YtnDv+i}13CYX>m{k-=5 ze*f(^yZZI@$NBop;-VfXjRXvRjaS3ld7dAi{}95yA0Pkx$Gq_JKgtL1-SO#bfER0P zduv_Y34EDGl7*wGF6R{M)*Y|AMy?m}0 zCK7F6-Jjyarwtpcs<fCPWk$y#)U?XilAd^7ae2w1kYn{H%q9MHJbJ_Z6#aI#J)o=Hrf-3#I zW9!>(-;SM?*7d8x0E++$!QG{)jgA z$Ez~0mj%p-Rn@AjFbgLMAOQdZTA}Fi1G(1ufXeim&)0grA`oEPw%-cEM`3PI&DIrl zmSoz6=pVoRi)p*A)2~qe*ls_Q%Hl!7_uu~mP|jcfJ-@yPOZOjdF{HLF{0-#=C~#l% zdfIpt0nz63V(HR9x7+Ul)wZMD*YzxLWky1~PR0XUmncF|!ir3XVD;eyLVRPr6;GcR z66nWAJ8pWOz9J%8Q(u7;;it46NHeLB!tD6`^l`xfpjc66PomsE{xSZl$JbMKCOwJ) z1;a-8V%;JH3JS3Rfk2Wm5i4V6Nl}y(7o_2O!-@+*TW4XM%f>5fxtq2_^#dTYGP!1) z=A%MM6@X%14i;P$0YnUpB}AKc%pPg)(0>9469t6NBm|W$E9t97(b) zOYlC4h#3%3RWtXD%BA^MEBJn;&T9l?(6J*fByo`oaf^@ zAMK`k-^|Tpj^1j{Yn`#Ieec*cYk7#3&m%rRA2F}7HR2{D2!zC{EZfFo(`^UA=jXrX z^+5ovjDUa`If-`e!VDf46cHn*NMd;ia3W-u*-ENN03=`{WW>xgUk6dEaCXbws?2SI zfNYz^Y3mGIU`ed4->WjbL=`2N${_-)GS>ObfDB4=D9@wP3lVTMDntx{je@}dmFima z`C-qe@aW@CJYs%kl?Y20R>~BtBIzI*$H7^Y!r0vppBJ~UW^%4`6(qEt<*j$5OrO4v zFLVo5e$^aF8&nRDjg1oKE5RZy8)`QX^Q{G1vZ=xXl zdYt-BeESZQs8BOs>%$$9Z|RTX%aj0jCWHiF^Z@dLFvvh*aE~yE31!I<49EpvG|vJ8 zZ`*dQa5sPx05X?lVhXVoRA%|>ik_4N(f|-?Gi#NFt^^ito`xI<1h6noyJk+(^z|Cw zzHx2XFrH^2`1HYpF1-Jbe}G z+jV^)k8B5&WFApixkRf1-7k5&$=D;7`zs+33m{_F*#6O5uMF0`ZTrub9YsitxdNGyBYWk%3PSfS-LkUDQ0akQ4%hWSBCLo!0f18-3%5;K*7T-B z`j6xIK=^X^+N8rG0ia5B?2r;}GhPG;h2)8r2w9YgSyfdCAeoh(02p5u0W8t3+QSzS zfo9~aS-3Ln0^{^6Dq4S2sU$2w?wyG%^Nc798p=&X`ikrL`3t@T-y$gD%buVAk}(o| z=0X${Bua!r8F~}HE<_l&@6tyS6&7Z|T!yRRuqpN5BSPZH>Sbsc(5pC=B$JyCP>%)&HO;XTvtT+bz=Ns zkMlZS_PWpKT)&&N-u)$fcObJGG$$gau|+qmh*4*SP{T?hj@toZ_L z>jKp#^8Nik{=YTL9_RJ=I6r@4Q3AF$61|`(ffY&cye?#FwR@Ct~qX-Q?ysSr#sWCVYu~5*JdUqL=ygf|YH*12AH;D4|27HZ57^CfbDi%*9F~4X8*EsC!e(83DDqsL41VO-M7bMDlqc-N}2X;=nj$elg2qe1ifBxau#iNfu z|2g&_X0KRf*9SrXRYnvtq=ZAx6N+*{>IQ)d$~Uaz7-GyHf$j~B8Y569YHb?h`1|Mxm|W08HVNk{YS#4 za*Hf&_b=!3{{H9d*S|6&Gl+1ls{*JMBmo*pVXjOdR#3zep`qNkca(}8fWe))%aFJA ze9ZI7MAW+535omtn~rZa=WW}($Jo0{pKD&PC#;2}z91`(>#txK`#*uBrX^yog-G}% z%SDY?C=8VJWsE|q1et)z%oh@ zi~O3cIzRxIq2qL~psM5X`~2nMxz0lW$At*F|eY5Fk|6YV=JwNvt7UKcmX65 z5o5(%{z$u2g$amAS_c*+iun4@GQ?(!AGTh3ORY`ZksmfUgli2n2h=3wc z2C7UJNe=?;{XHO98W2~wturtP^*K!d5lslM^Vf4e0K=y>zr`wH1=1)niuUat2>m`i|JCM=B^hc4z^tO?XQFYPiq)bfn^~toS zm;2&CznuFma{*LEy03P>OTQs$6;#@|zX98IeWq7MC3L8j=LfhEci}xQ1<3u4S;+!1 zJMj+nk!D`7Uax?rNSPDkiU0<&LP|wKz>q{>D!^KnYbGQ~5qp4F9vDav7=SQ@I5VLF zV$GKokzdoyNGK7pq4`Wol3s4yHsU=jfz(CfyuLPe?vpE(6*;vbU@kkQb2ZS$a@#Bx zuMNQS6bd9}2{}Ig1(%=4>yQ8U|8;-=zWC}iB!o%Ub=GOXeT?sUKB&yUoa{sWG=`O8 z2rCFYmWbMEtXssw5(YkBKiBK;Mw)Icqv>1uLg><4IUGNaxn|YZxnX@}KoquQac9rM zg4U$$v@jAW!U!wKw(lY|?QmZJ3{5jKb8fdkL=?j!k|Dq`!MKZv21LvQctZkd3Mg2P zs1>faeSG@{NM_GZ*{G(ru#fRaRjWI8O5s7MOzg)=F0$gQ>gJRT7V)DUjLMJZL8Oh}aB6b5;w zeE=HsjdS=Fxz6IiwsgDGRuBQlkAP;I|7#-UYA9>1CKq{T0b38sTv^1n$WPA z2#G`zftp580;+C-$W8QpBV-m;V0QzoHa2z?=w^qsx9fRH7ab!luQdUox4XwYe*FZH z@&0YRjVoW3hzMFt%9TcpQku2G%reg7)2%-K>wkq`I9jEj*N2^-Wx?dF-R}Fn-|nYX z#;G!#i)oYA$J-CAI3E8MF$uLQFa!z-Hz+m}I9A4sqzQINMQozo&%grhU04ze2vtRH z8;+`NJ06{JYSnC22YFvDfB)a@{=MJ6>vp^T{R2fB$ZCy*{q6ET@#5=Q9d0jhF$_^Og1qG+U=WZU{J! zpY!}13Av4GN93bg0p&bi`}nqvcb*xQ0$ueEgyEiUfK`=oO+gW93DWwmx7}WA9Vb&O zq`vJ`>1z@RVL_GJZ^6QLDVV=Gh;r`PPav) zliozX7r^V+{}zCDYfZkRuJiR*I(Fh&a(sMJ=`nw;byjQ3e|LNXF04Y9!U{J+Dn>vf zE&yZxLRWHFauEVzkxCcY9Kg~@ITHv6&`Go-4(<7s_duoO2=@w$G(ZK&%8Mk3G&2-f zu+6k}O+eJX^Sw`^`FKR8aAV}03(TpJD))O&a>xWE?cFbPxf2k&iEP3>!u>d_9F$2a z^ATQt8Hkh&?(bh@p{kaS$bbNsKxn@f%*uDhx)RF5gn4`a$6U|H=U>-#ROWcUIk>G8 zkcO&kZ>1Na>lpK~d_9}~NYA>`=M>(9B|Vt{7;$J+!roj8dXYjbE6VZxjkK-fDo>B# z_9nP7>ggX`K}9~#FI9}PAVURk?>tL0uk)22LflnLv_QxHXE}t=LJ0$3uj}!|9E@FJ zYv_?H-Mj3XBf%pBJ)kA;4YBHJ*E*3T(J>ifq&-23hO%;H6~|ZkpP2!$=CtSE1=9Ds z@IBL)y~3XafzkvO3+y_-6wBoW+W2jNvdt?4bJMWM3;|NOuN7@?t?xuuwg}MI<@1$N z1YPJ3lufq0o+7e+`v*X*^@=h;^q3@HWG*ajInRp6w8w%KepR4fM3d!yLv72~;*z-1 z?6^LaTS*B>y0zX469v!LZ)$^t<;H~`Fu6BKD+fQSwLwV{$Rwm|p3ekRWnjGQ6*VE8 z+BW9}i4m3wAQgoS9BCjOxksd%$2@~&`}Wqxt?%2sYCW)!${Z3zK;$m4%?B_qr@!&e zN*1jP;1xk`MH23;ojDT=rLkDd1+0i}=Y(|b8kl5MxkhzC(KFMF+dE{ucT=JD}NtBmBFX$NZ)5v@eEhvWFQmf8oSab^LB-*f zfQbymLPBKemA+W$Yh)v$V}C1mhD%t&J^jVR(gqUxTH!7r(7q!~Ze#y;2ZZ(cS6LN7 zW=W&*?GCBu^GGYbbs2KKUf1*C(~$xdX}8S63-HpMnCnOm$bc*;lP1~+0$LR;tMe41 zE@Q^C{DA7|)7@|%F)tK|xV+4L0s`IM``Zm>ElVg0&+>>^#KPJbIRPps6G2Yq+wJZ9 zNoXGrPSB12vkdH+L6e!B0xH4hRtWibsevqr>1VT5pG$z*2KozzK@|`>zaqO7Ge<-v`GmPTxsD4VRWP{ zM!E}tmlGH;B7jIo51TJ2M+8a+P-JDb6%V1N(jiemd|FzP?%a5P|Hci&j$C6tm%BCI zFw5sfw_O?BzLGgv5wR}r4f$Od6Tu!%O^Xnqqz~P04JDY*>-03wkK=W&*FlK67@)@Z zhFvJb*5~#3`S|<4_AalF$27nH`RDx~{|(5lk0$}zc}UmMwzO5b#&*j%!>+>9^4EHq zU!N$<1VxjTtj_E6Z$RAM{wdt9kH>s`&ga2AxOYsZw$Xs|`LBG1wD+MqwBZKn(AxL7 z!l#PtLPJOrT;QJE2m$QWwzqzFe52#<_5nlyDm|zH#4lY;C`}J=Xc)Lh8zdWmho~UBXuzA;j97jtv0Z zjiu*GKazOoy|KMfb*hGvb3Kzd5-UllV^X?dis10`Sw35fIxnm&s&y?=(oO1`)2~=3 zDPmJ3@^EQ-tMsqjWt#gs+xSNFVEkf=SlPA0f@YL+>!s!)qRJ_;CXr$wA#@_1kJ(>X0q%MShX@TqZ12tErG~IN?A_Dl!~4t z&BJnfAwd{*i3&zW1fN%hvk(UHc-J-nGt$ACT5q=>vc0_?|IhV&K{2DIXVsO32nqRu zV5k?N*?QvGt5#v@ruX_j{V}g!j28+LS5}FRzP+u--|Kp|w|m>RDqGh?!4O|IiD>-z zqiJ93RnrxQUo$B{^5B}pV~S^cmxX%{WCGa+17Es{SrAROjV>m`cZ-l1>lP{C-%Z7X~ATk}d~c|D)V9f3IqKo=s`lebo$iIcRY zVZ_XI!JG7MHlY@V0S5wC6qAtlvWZ39v=SqiIQnR(J=UUIMckUgNIIDcp=;L;auyqv)KqX>vMog#hnq^Qpuy32wO3SXJrL2g$ z97&trDk>wXTH_lL2WOPod}RU^3N-{-6(m7rn_o7c)EgI?&2?PQ^CPhw z7E3D-B$PI?u!xGu7kB3%4CDR&emp+oDuhvUIanCi%Letan9obqN9CB9S|>{7bLj3ogdh`j6EmLGszJ}u?UjF%*!n( z*TPBxz)Yx1`9>Mq?x@AY$bB8p0w{3i9mQ8Vr#oG1o|ri8#qalZtSWCHeSB|kcMq`h zxA{6AE5O4pFsCL2fJ|+456@M;toJ+VMy(}ermw>j+}A2Z#?CCZ7DPnlik}sr<6DIT z69H#NxD!^nM@Cga0TBQLvG(3jIC8ojxh@#nT(81pW?~>>^Mz3DwqrOJx}~R!(&PM# z3s8hSQHC^01V|Zg-wS&oirj%5%Lo;yLqVKVq_OOf9!XG`g+f{hm8jc|1i}|qqEI9w zHfk+%q6(a^SeN#@_K~$J14(4u!NCp}Z7_Wu2WR7ohQPhe^P>V-IuKJ+AVv}gUJG@~C*coR;zCXI{q@zn^~8`Lr^vjHC>o z*r>`GYTAO#S{JrEDbGga( z13{r8!kC4le4ZtMDbfdpgoW}TNy}H(h0KIxuLp*(w5USR%0NL@Mj@ZubzQj@(-KMD z8-QJg02pO!9pMWz1Sy4RVCsrxm5k9CRAqqF@+;4PdiD2r?n4|C&B6(&jg1+5m)T@p z#oQ_Y-0bty_{fYfLm_0WUbvHRk8>{%L_$J0Gdur1=gq7&0b81vPaZ?MNNY`ajQjcf z13ZulKt$D013lafuExWw(g38!pWkF`VPWQOIkxvP-Y)~7AW@a@^U5p|F3j+SK(XS? z>-G9vYYA^i?6JV3Vyg*up2D}j-4J_}M^&XqtN@A#bDw762>{qJ5f%Asn^g%yN&>(Q zTb_2*I=D52!T{lxnIyL86#APbO5cEk~0S%^rO#)wcrLjA3CqSeDCBGaz~Xow66EL;#}Gl>YP zQXsV=lNeP4vryW2lhMGjJ`4kSVb}fb_7)g}+qM2aK0lba^#M`oDcbB>+-97ouNvcq zdS7+qdU1=wlVrmL#6YR6Afz_#qyvlcG|vNhTAuUDT*%p>+Il=;XqVj|4+vS0sHDSjJauKH0AeWk~y8F{c&2mqNiqo_sHdQ3B;POLiuWv-|fD7J5Jjeo$21r}?$9n^5#cR?+SFn3!8CAtv{ zl0dO=YyH;R7#lOrc>p!!K9H#(AQlsjedo?fgIU{l*SCGedi?zL`1l*DYc_QHiV`PO zW?@vp)W%GR0O_-AB5K9Nu$*ST#_bMFkbwlso7#v&Lr{`{vMM^*Ui1Ng@MjR7mH>m8btR@Jg~9M9iQU(HB!Y@!L4XFR8599fTG_Lz+z|vB{Wub;e^avrIYWz34O6Gh>oKM!8>Djao;DKo^zuc&+uMCKw>nfl;5U z`VP}6E0Y-+RdQJwVo6~oDst)AWqUKrFMe@FxSv%QPtbAm%2dS)&kT?2`WdJBWd(r^ zm!BkC-`}q1Z;;+7yrPKaJf-igf438SdL*dq=k-uk09(gN-|mnl`)!^dq`4!Z7%e8|rP7+uheO;{lAM1he^E>5NT^7r+-v2MD1k zR2nhGVM)}s8)+wns0(~zc)4LRk!EtFi)ae?df_NQuxV%rP{?EC=<@BVm!(Bz6;x5x zikg)XSVU0T0RT}mg17>vDCuaB=Ig@bF3s}f`wnb*JrN8%?fAq<(#Am;)bzgZe>DC^ zgW`MvMA<5JU?kzns%0R9bwpv6RO-0>w*n-61KfRGIo-~K`oJinvg4Q)#TFq&h$5W? zsWL)PDfe*v!vFc400l5b?*M$QQ?O}g;41gb;BB<+-RAPR)_K`0Vj+BCYyqPR{H*W@ zLx6x~w8#;$wYckkhX8hAUh_E%h(!oky*WS@R|0Y)+8}#|=ZrK@PeMg%$c(sEB_S6k zl}418vfk|SN-s{Juxm0(lqam#m9RSBDGqdja>dsBAS{L}edT-j~v#|;gfI?Mz8j&L6 z*9N1oDpnS93aDPckIE?^WwQ{TLrr8yygK6x)0tr3H?s@ zH6doRd4!!1o?(%h9__Z1AjINBd58t@X@nWi7pTBuEBn9YO6neXSzK)`I|qQMRfDkW2(|2_niMWF|7t z^YyXTStufc!3B=M6++0!1W4Eh1OWmyDyZU|<)B=pbxz8L$>kXkj7W@#DTE4zB2mu5 z%y-LE0Le>r1Vmv%Oo$}{jYL(rHMUe8vcL7)8v)c;mcB1qV|49QOJ3*Gvh@8=w#a2Ppx&MJMsNy9$2X;IZ|&GmUeAND-sn52Rv>5%7{%ZPdG zL$vv^JeI?>c_7tod}Ho)@pWFYjIbdTV(MrlHLs_=ey(+D@8#xE#FQBo&cp?TNh+I) zdgNNyR~$}g1co4IRvCbZ(8eWmow;VNt3bx~$9U@^Vh_KbAB!TG5e1YH8L?ET57w5b z*rT~2P;qOdqp$)wN{WiKeMQ~4-vHY@9*^H2VZmQ9qU*pslPL-^CS9DeNN-h8b!E-W zL?vp01ny4KN;I-am4t}4a1RGJXk8$w63bD5NbX~__s?Jd>ACEBuIaLUtHR#?xPHHc zN4U@9HvqHfJkI_7zpdvdr192|-+wbxZ-aM~anm8UAMZIQP-Xb>`TP0zzveL+Zpt^| zcW&=_&Wu;iBoWjsT%h3=ZMPh2^#XD)DW zBySWsuV0YW|JiiFn*Yo2Q~o56>pFhfHQfzT44gK`E(N)4MN*Sn=7KsR&NW@H?f38h z{Qc{{z+>tLS#c(aulyOF0DWw`EtH}Rc0bm$X!L3W3L_05k<95Dx-+(-nczS~vdQ?i z-G3B`ov*k)vzBb{1#t+S;0)n54M1yY#ndj$EXaWrV=246WQe0}&7akgzZ; zNP1=vCijks9{B#11!6ZG{s=Ht3PKFcCko}Uk-mI=%) z2@_JpM%x1^lLs_7UjS58g@{DJRdI4}5K01f26vp{-e7_y3x3LqF@5D`&{VBtb` z#)`{xPJ{-XAO`Z})<`kzjLX}8Bkjk>XH64*Yu|4)d#gyGkcfENnpK5dZBzJ4mA4HF z(#z+Bm?+FDBv=tSO;RI(NSPaTOb1q8&u7*pnM^lM+_xY5{htg{)2`QCc2I-fJ1bf^ zG6P{AhN=L3K3^;w(Y9`4fvH*72&+zBvOxu43rwhfVh1PKcq0}_i!Ni`e_g1I3@$(pM0QP50SD=AZ2kKE2^ibB35)jb^YZf}%@GN(sL2X1_pSmN2!N;vq^P{# zvWg=6ZP)j=nx`NaHf7dACiKhKajrST7eP<2oUzUX?REu}Wx9-8;FmuX)028*5-4ih zKql_W*rW~JHl*^g$10?RoOzv)q}oU(Q~Syz!C=IWF9)JxaJxzn1KdvS0+3Kp5%mSx zbt{4Nv}-0Dy@=4jAu^c>Yh(c1H*EuI@78Xfk?kcSy zd;$YedbwMk#LS2^xPQCh*vvo5FI<%Xb6%N0(|cH;GE`&+A(9NJk{w9RS9nsM!b+-0QW3&j`zS%ALe?^w$3>Sg zK;lH*pjFyw07>cRGz%R!V0Nq$&H`U9Nt9e3%q*=TVF9ickqENq73X^87W-{)+pP-c zJPCShdlh6}#Y+hF{;ln|85ZtonO027&=L{B35Y;Q392ZFg)t2fyWZ&Ede62hW5rxc zU=1oNW{*1E{K6sI+xKO_*dg3cD+k$n62dx>tH9>@v?_$48oD>dQ3R`wG((iAObk*@ zDJy&%@{OWF?mz)A)M)CM~&Ha{aS;G~ocN)Jc}=RyY6EJ{Ww1}G)0 zp#>Y*f(&AzO`JE)r>~3~o$Hn$QJ_Au4^qUWl){V37nCz z@_;Oe<=5|u6_$rrg{8lUwQnQN2_ulIC;~1N6 z8DQxUYt2`!`TF@8XDII&EXW8|2>@0V1diy49`;z_Ko+q8i15M+ZlwF2MOQ>vhyy6T z=6QZR?V3#+^A-!jA*Ty;;rjqUv&-sCSCw~~qrjt(YKG0s(5-PJDB9lthak$^p8_zC z=l=G`tVa!yO-qjb+yB`2cj(UFe$3-Fn( z{JQK!UtEhAn&2oikBLg69nBH~H$+ubeg6K}`FTV_<<=TzB?Ifdv(WMLe?C9{MH_E_ zev2xzYn_+d6y5jlKL{CvB4&6pHX*f|RluZ(^6{^K9k1W#>yxOz=5M5~`o>vhNvPxP z&nn!vUfG_%KI&ZJf7I1NgqpB)$}C@nzUl*N0#5i6LvYjWCauRbg(QVU(7TL%WUZ*w z)?Uv?de*G|_AM_DRK`wo0xf_la3WSwbhdRO3o$`4GFDg;WfT#SGz5v5g_-3Y2Y1@H zKKg%DreCjh9AV2dOMrm6DG+8jF+!rnMF7PGfUKQl04T5}d@;8@%Ob6cNfA&Z61V^% zz&rv~AS2zmLs0tls>FSJ6Wt(X*`u7B+_BQH$+EL(5rt0{N$J<~VR--z7Gfd(I_Alz zGF4Tq02LtSF|v_84}|b}MEK}G)>_IvFUP`&iaA*nnpUjKUX8S}=5ZmyvKI}F3hpF* zmu(EYRR zs~WAn*8`^=c0MbTg&o{t5s@^d(SUyk#r(QhiO++;wvv;6AenHAv^2??26tMc$d6qb=$>5&Bp6>F~fn#XA? z(h5q_Ug@4V`ref}%;78f4FII&;@PkgPOJX13jsHzhD;Dq)z?IHLgs)1KqLaB%rBZ& zAr-44D@1_>Dv&ZUnw_3U;b1Vx5O7ZeO2A-!m%a-+c%=dBCj1sLJ%hIn3Y7^&2vQD} zn4Yq4QB=N|)gdyCw91{NAvf7>7N_}(b4eVcs9GSvOu%qGPqzu>Z8TVw!9Lfz%z_9z zF;qeNLQqPmRVZB9t2%MW7}}XhgoetlO;OR-vEP4W+|w?PC>ClR^@h+rGTbP7lviR# z3&@yf*ktaAg&C9^0AK*+Am*SX?tHsJY2~a8hvZzKk~0+Vy4_hMY}$MQyW2@zn4SrE z6yAo=hQw~uk4MD92J+t8=uDE!APPy~ONf|Yp6(9XbVu5Rwz4yAK8cEHtHkSgW?ZO^ zNUrN)k1O2o+drz7uM*z%{>{S9$M3+Tu0d9n6%nz_R_YD1r4?vZ6#!A|P+v-2X6`H$ zm`G^uK3zxUl>*2rl@JQFHH2=yn(jnzHUwsy~6EXPuLx1cgzV zv?wrwP{-JV(~tQ@&d6Goi9`hy5!d-~K7IjKyX|A^;1QPvhWo=FRia1&vA_dUM!#{t z1*KAGyq z=fmA%ITK#Tf#w)a8}`;%`*VKyoPiT13y!ds^MrN_hxMAOTM72<8#hh(1yUHvO%Sk7 zgMcbz=oukc()0^i4<(32s@&f}$ZSPCBMcH5go-G^&Z~-#$7#`-Z_E<*G6LqVV{c=y zbdL)R1i0}~9tLjbVe^!>HSKZOX-`I_pso#w(jSFB=gcq>6=jhoqe(FvMrLs&JG1Dx zHQt4{t=$(M)IMMkGSX<3GG`Vhgy!_){7Jank_pFl<1wNTr$^dlM=@0(3N-BqASfa| z)6Ul~fTykJI$r^%?{6q#wqmYy!zxN40v-*Se0f6I3@oXlFoQ%6B4kLfaB7U0%7Rca z535DYT{ncvuNJp|hXP+$W+GIaXUrM%N=w{2f?%*xM+R|rhh^6l7)Z)+^Al`6b&N}FFkpL_!d{IGWppyB;azkWp+n06te0`XzO2gs|4u~uxLd!EigfR3%1z{XPtWCH9%=82^Lh_k`t}8R`Jbs_Yhn;6-V;KO&#CW^y z_xJ7nJ5*)-^2d^ah&?l_iinl(H6zly-Xc!FCi8pnLY2LJ1I8+^vT^_6%hs~=Lc--| z-@j!NkY=zSMzj@el#Ujhg@L}3v3lD87J_3@+5)ohmz^&tWZh6ZU@-$WVZ5Pij0#1S zYR^yExUk%9yT9kGz*220s!b|85h24F&zz^*1)0PR6RQdkDh&YKOrR&SMa;`kowr=q zaen?D=}b5@M}?XJZIG3^@C3*Zn(ctvIjs+^-whs&i5b zlmNt6-NC#u^gIlNn51MwWDEp|yjFT-BuFp9NV9pwTm)Nd-wGuIBQG>U!rpIf{|9zI zoI3JKdVz5g8~MnUd=?m!(61nPf;Gw%lL>YNo9j)tA)`GsE; zQ5YRi*L5Kwk1gE1oG=Km04zgmW7(=K+}HI*{Y~1yf;iGFP?~7> z^`y1|f1NTCq*oPFBM8jGC@4nK5}UNX%Mye4j)~CmnwaUCMCEBmL(7o%8Wv3yGP;Sa*J}Vu-0D_4TA<{{Qws!`xxz;om zszPEB*?{)*^2(wTY^bf{6$Q>pdh07MUlURwJ=`l66ow^(A_@{fK)PWC5+l$TW`U@n zEHdCcoCw-B`dhBcEilmih^wd?cS*#GtZ3v2u0?^E#2}4jFp`y9rB?(d=2~d3I!frP zD{*sTVr~$j0^@Ca`{PGz<9a=PnuYP+xiQq2h!?p@mHV82J#rmLfJDTNL<^u2zWg~g zZb0N2$w`=D6P2M$E(pKYJab-cyWRJHw65#;mCDfe@@bzBKh7e864gGox3+zQKEh9u zBO)l+4Nn8X}pimtcDlt&4Ff7WwxYDPL1_4D#ZDSFVe$B}Z3KN;2WLawaMtz)X zt=A>m30rx@G^v0JhGIxz)TWcKxF%C&rd>~}Ce<>KOZ)8xn@Za}tO}_$acTPi=2{3< z^NheJDkVtY-uJifN_zbK>7LN{KHiEV{Z(beR7FG`X^VNx>({*eJg%Y}up&3+1kOTk zZ{Hg=`+WKF0Bqa#uF~wh{CQDzB*?;bENt+5M@r=BxTyGn3I(CA=kIbPQh)#;s6-u! zNsW9SgbAF|yPdKlX(%{?)#td4gH+C zfSGxts!}$= zx!lVB`irEqj9e=$!m4;(kB?;s%TWHIQqU#WMWP;O+Qsh3fnjEaqRe8~n(H9lMFf}= z63GCAikTXf+F@x3*fI;UFx_4cn@+e9TBZ{-0ErAzU35hrk(1~~*b@LCu>ij=F(RX& zG9#;?17!GVX*1?r7oX4hd|c}+gjmykQX4!vuIqUG1()vc|IogTezWxlGavk=iO zGYXR1AfdDwk;se*S&7J4mJx_TUzcAz5GrGFWlO4X_LkP3Fyx!wASC=>RR@AIZS8*77$KJ2$ah+3W7nJ8xte#_kdS<`J4uh zIQ$~!E=}o1>-eY)@@gm~WDB@$NL=i&3aU^L!o!e)GB0!*`=6C;UPX|QgvIRjrF%nw z^oSW@2}ux0EUgs;(ihm@xu{r>6L1w}!3sM8T>CqT6e1!D_iP+V_PQWh`&-dUJOM{q z*zan3oHnN73H zMMor17GdERza5H|rFZavN)Z7vVkTuG0Y+d%WMM5(a>lrb3w!C-<1%|(SPa~wMl47- zKmbW(feHv07LpB-z&)Ut8JI;_`VIiGCNdy*#EMidg=AZ2fMHc-ia^sLNlaSAz|h)_ zrG-<>$XtaJq(p=n+>iM>If~u|bW~HMPS!glFa7!!susF(vGS&RV|}l}a-arCBst!{ z?QMJm;Md1zW{x&cTS`?c=s^((P6<#5K)|h_!ngw5Jm3-;07+3qz|sr9YDY#P_annA zE6_12QL1rei^n7UbV{ay=-|xMi=u)swaa@_aO;E|x!ez7l}6-<(GkGi;#$I5fHqgA zBNEAm(3qp`n+`##fB!Z+32s%{v_r;P&#FQUvooQvtoN_^U;(#6c0a4KvX(D=KA>va z!N^JkjK~NGNsK6c>X4BW|fZ2RTU97S6ru1u^}s?ZU-%2 z#yC+?r0c%XxZ47pRpAkp=L|cEf~kNIfGTjkmYpXHA!=QK1c(@!)Cvi~9RaxzsiFcB z5EYptD}2U!VP4P#!YL)g83+_VISJ;5-V$(iRe+Qj>zp3J}%w z$mJLW4jA|aQzRXV9kIZz_1@&hV|aKN;7qCno+JxWK)6Ue0jm(9FnR24|DJ0WN-WR# zMEJJd-)iA9xaI<7Loa)|Kj-6-8Av1pSu>>o2}pHps&7oqXu78o_4ZxbzCK?BI@-H% zUiJugR0K@OLSRDHHgp?61kVr8Wj-++cCL^LN<#txfQ$vih=G_yn4WH44w;G}NZS}Z z=K1n6i0mxEBP*ea_9&=qU_lsNVesA|(Z(UkPA`);j z0AS$OhK`*@3LtWM&O{^>Em~_8P)hSK5fRldW>1x*k@BtW--x&M^U7BhFmPN)6?*GU znx@f(I`=*D0S_d-tMdlVbUl9DKyj5PC&Eu%EIhoUhMJYDFPvVSo;#+x7;ARf4i(IqAkUe6EbN;~;q^grp-Q z0CV$#RhStkWO_OiN35zW3Mvoqr1D%9YcQb#ItU0QsdUepk5^(B{RXspcg(y#kLz)^ zt&l4-DI4=G!{_;&=SRT;MgWQ^AORG&gP;JhGBPeIN~f$M5kwA;IM@7qp{2*t?Uv|s zJ&LGuT`%JVMq%A5)2``M>5+k7Irgw+>j;asZ6p;Q8BtXg8GbLmeozf(&_5IE&X;%ReN!SWE#oqg{^<3AXy;c3&Y|TxJu(0Owx$SRdU%>BT zZow5%nGnlVnW>R>YTEXDr6D;h#`S^{dy&XDWMtIBg%q&9I3WVls{#oH5&Mn=k;hm4 zgOO2{Uoldz@>Y}RP15bQ5gVSNnyqe(tC!7pM_e5b{#cCn2P`rs5SRl<$c^y*uVfP&FuB6D34W; zKn0vto}dguh>(dYq>7?INk|ZcKm}5f0D)h|6J%sYVt@>HYRs*Z(zxG2V7`8>x;QJ` zxsdy-u4AuaJ0r~!Q(MPGCI;R_ z7)7`{l= zQr)?a2ro}05mX#XJXRcqhD=$JF+GA93dqih1V{p^LOau5MR8Sm03it$L9ENJ)7Hc; zz*H5$5>Z)Rgiuac;f|sDw#)5%USabj#GDyxWmWi!tbkw)mcc3s`NbqNUtiMEgh)nA zVM=Jk4GWenOA7$0npMa=D6-P1HL!96 zNJ7x^3NR?gqQ33AZJx_=ky4b|vWl#*FEpdCTyy~_NJr2H0#(EuP*_>OJ|~KxbOJ|^ zg0%B9owfZb(x9rbW;kgt#3D-gI#?mqO>}G8ii>c^%;WdpW4tjpX3^dXBFkeP9%mKA zbSVAu2_g!C8d;i^5@v+2fJncR%In1Mvx3YkDnMq+(>(+d0H}H z6QRbWO%xfzr?0iHV?8G<;=yT*k%D}Ge>Yq7#rH&j00>|n(#dfGA{HTN#Ce<#vJid4 zWd7)IqBk%=0Rm7ayf4O5ai1j1(eg~XK}>&a-+gc!@p!739Wm6LoF&jyTUTKOsQEgM$Ki`m?xIcQt@WmIf92~~r~3i8xVnH+8~xk2{aXjQ z%sw*=(69j$>n6fb%iZJay%3SMZ})$E-~Rl80zOv)Mx>=LH!oD$x0M z5OSJl8Ie#j7!q}rw=6gFYEYRJ%+LSjgBqF%JS4@FJE- zIFA?p*IzMT^YeGC%9KI@gmAZW$rwpx`FQ*Be^Hl@=l?3OHogzK_3c)9Qbj=$$U1+| z=Vt_(0k@@XP@_VNhx&OQAHOo9jW^NTJWiwy$P!jDWJJzS?2v9s4Y{Czna2A~hT423 z1TrU-T?Y!a`;TQ=37PIIxD1hqSlSkIrYCfyrmRXH$LH_s^#l||iVVccG~seTj?ce+ zzE}hi^NPrWXhVnyFCv6YU&x|_tYSVZ4J(Mavc-RC#4UMV4Vv<*bszl0FJ6VsV3YzQTg>Dg^wR9TO=O_%dHt37{Y{WEKJf22gRSwi`oFFDbS2v~_ad5nK9e!6ZZq z*#3BX`}QB_=ijT6`=;Y&>s*(4VXi#SPb6ZIqC$f56dfM3G6;Z3WHh%RDpHMFMeS>> z=Xq7Sw$8m_6%rv}uAI*gg1xf&`CD$R4GPic(I5$`%H!*9wRPQZ$Y{sw{PlZXhpN}4GY+7F0s;~oUrSO@&B)3mCtzSD zj+Rfq@*~y~R!@q!DvDUY&HbznY@~$Cy zdij-eVg(QfaBl&C~75 zOc7#X=CNQFfo@&5d$A{7=>Z6`?|FJfr6j^iv+!9EKpX&2q_^I-ecNvpQL|^A9uplv z2Z&Z#;HvaIQ}rESAzy?66*i4nNYKB;Dd|;-2t{S_g0$Y=rEO4=kpK)?DDHd&o&lLC zidz&eySOuj&)-i6P`xQ@UDj}bc6UrO4^LvE&O(Wanc#-VlnI_?1;G_2T}Y%Nu$Y|D z3j|pPZ|`_~+BJcC_~`*jBK!Ax8t|fx6@`KUM6f3mf|t*z1M&(`?1U(^BXs~W)GEd` zPhU*TC4yE1KL2VV$3AtspB}hyZ|<;n&wbY9K{gFZcH5`^UNi);>D$+ zcLHGK&fDc5=uVi_kUKHTnva+l5ioxdOUb4~8vc8nDKHRWQAJhwd1M4p0A;2}I5Hz@ z>q7>c8#)p)5*2{Wxn4)S9+(lC`S{gZ6l!H6V!{GM(NW7YG9tYK8F@4zt_WdaWCF>^ z>-h+qB#aEK%AE_Gt5{XEN9B1wU$2LUDfixQ(%60aicBNUE)5ad{Q?{=QMPLKH>?VgM#U7AcBKYXi9)tGuWPzrbBoz(olN zpuH1d+Vq+v4!Bkn#ej)lV>jBNA~G&w6j5$a_;vOgwHDt>xz)_d3=j7RoI(iU3%v*w z04vjN5;8y{W2KQ4MY0S#*Y)_<_Kn<+`~63z1tcwRvS%2}TbTMQksRoX^Mc5}-TD0= z+U|5}Mq~ucbIl_>NHxQ&0C|w!sqGw)vD~eQ(=5ug-83@tgm@7aaAU;GtRjSl#Ryu| zE5X7n79tT5;Q)||9NXJ|zhl$m^%-j+u?SXX=Bm01R}k^m(WET2-AbB2V&ND0HfTz9Y ze4UUb`j!&%---i4%`AW3AZ;x#X~tM%{FIw==qtXT5}$l3*}M^u%g7^X*@BpvXpxhxhy z1cYD_APn@%6_IYE8j&cV`|B}l*%b&a?6mV>Wylhq+7v6%xH1zF3)9QYBNB*LSOfh3 z)ATn>uI$Q^Ca7v=0Nlxlwe~sZR;E;oR8RZ;AF5lj>fU?yUMqs61F)YSaOX5;3?bnT zGu7|2q_7`Hx5GW$Uo*ICN9-qZwLzAk60J3}_4sRE6GWurbs0aJjdxi%YYWwm7J=9c zRmIGVT%igzA&YED-!ZEyL#T(fp1a~T;VNy&5Tepw)?54d?Dqi)nu#jYeScMksMW5$ z7t5#`fl9Id35#Y&B}r}P=;MdA=D&YKOAcj1w&MLzh*6x`=8&`nX$b?Kar8s)^QqmM<4YzuhbB`t`dYI!@{vr#+Ki3~4HC zF?GS?y6p_)-ALC;{H`|oN0P{U> zehX=j=b!$3R=)eALRN+QwS*#P+pjC%brfV|*4zqhhXrHJtxfOe=;ydD%hUAu6}zw;h&v&iUWt{3(rWp@Ugj7KxQu30=MfmbD8@wTT=8 z$=9o5g|I}~T7~3V@z@>?0il)53ZQ_%eQdhtC9MRA>xDwZ>-AhDZ?{wFkW^DGRlPae&KcaHZU$sVEHb2bbZmOe@5J_c zW?ee0okvV5Ft@vV7TAy|GZWs^Qxa;`ZXaH2n;g745D9K2&`^wj!Uuv&+>62OQ zegl;T>_7;-Dzf~_V!NFt?Yeed;d(VY`j5Wxn)!5@sk?GzqztkZ6_u6l3F~&KvNxm3 zOw_d^w3#$(At7pl@awhbw$a!!Gqv?`-c_>J+T!WPQj{UJYC~0;X6@yZ9<`71&Jt!z zPtORevUE6D{k)Cyz?)OCHulPzzOxja`y>GCY?#x^ zIYVz0HOwJ|oSB@@#Ed!3`A~AoX%QQ9s+`iy60?}Y*Y{6&{cykT`+7dF>v|}QM`CmV z78qn6`95%Z`K9AGqOtnMiRbbSMwnj7Fl@6Ai zs#JV~lMV#phAdYF5h&Yp3=@cir6Y4&{yv;UN{Tx&9iz6dhN+qnYEyUYN@V+I~~#!Y11z21C%#m+qelJA;eh#=;1zm*7>Ky+0{Dx=ETqXZKnJoYY>> zE$*N4kVW({t1GA3AM5j54$13&9pB0tlr8%Pwk>e)!PjP{uD>Uc=wzBBqKq~VjEY+6 zEimUP6tXD|XN~C5w-)+3HO{XX@NHt?tFOYfXVD4YJAXx3X1bP-fP94f`C+$8@i27tMGO)DB@}gR3J2U3g9|Rwv?qSOq|cqaIwYM~74IGW*KGt&ji z>fPc8iV=GgZ4Y#s9`?eQNR$y5gl3t&H}YhrCl0Zl5-Tee;5fH)B+zEnUO%mNVL z1Fv#1R2K>Cne}_@n(*@II6pYa{{3%vV-7Q`^3L5osrMcVgP_A_%<|i=#@5h?M^?q& zmkhsU#=>CePlA_O&PnlQ7o@f|v=GRi7^9Z|6=PcB^_NB%IRxBMd%?+Zdi3&gj7ZTg zsJ1)xl&&`Cexh5FYbb_ zsL%uLH9xI__WUP^Nu?$6(HzZ^y3yV>FQmusTq&4*&Qy9&P{_K#DG3)!*T+m;tXBCk z2Y+!huRr%nQDTjRK7_tpxBT(xtc3T#o5v9uobqyMnE(Eb|5ub#$zPL}T@;s7^7G&z z2)eeIshj2yu3*?&Dkt8cY$6zC5$+$KYLL}kdY>%th11=+<1BY<+ss+ccrX~971;VO zFk|5Fs!dhipd+ZW{48i8RI)QtXf^wy8fN!VyiR!8GX${=bndGYjyBvtL_SZE{wWeM zWZW=&)$4}-cY7A8QfEi|f!R$%Q$ZGY@gJV?x+}XOfr~k|jj5^uk2KN}{%93u%haTp zf#r%yKF+5u%xSFL?%KSr1?W!y?)l*kKCrs~D8!B9LWzM+)5ikM$#=Z*kvD9?7FH0} zR&5nFIbEJutx&47DxzjV|Iy@#>vU;|2?EKRHT2b8$NKCiZtDnXfDT_T|I>GPeaSLO zJXc9c2)haM?e&L4rvMAlb&=s%mYOAPV*KvZvibZ^@&=d3R=%We8tWbExn}p-;EmH( zQsUfGq8v71RQXLHz-MU4RER^kl5rz?aClcPk{8I+R&c*(7P5O*>H#|4Ggh`dqc$5D zvP4Bfj|qLGccb!_4SuS$NvmpNd3GC34QxX za6^bkh+I?H@>|P=+6B%vF1;H)I+TOwxzj3F{?c`NQ38$Cf?MdS=9ubPN1ev5g@E#C$@i?LRqft~yLNbASZnC!po{nXc%8jh-o`bqF+|H`6H20HH*26sieBAh)RK2$CM1%Va=hXC)V zR!35sm*vUw4Gbp~*V%qza>8GLzbJL*P1F8A&|c75Xa3+|^2FoWW1CG#c@ph8bC!dg!T2y^r2O@>XFR-IptB``!=s_ zznyIW21GwEhgf^Js2%*f+M=CP&@DTS6|3++{5LUpGt>xk2W0GQ1Rdx6xW$-&+PT&a zt>W;aniAKqfglj(ZRj)W`Xl5@dtZjmtE)1l$_{0-8lTghz|j5z9ECy(8J#IIKV>Ct z38_e>Pm(`Hfh%IN-r2g>hVnU=ZdSUU;wv!~DG72xsn=TU8#$Jm9w2lKCETxN8@nSf z2S}BgKDGcY#q#n!RrV&87;gy)VYrnv$3wNUo_x^mwmZ>L{suDFv>eVEK%Rm?2@2Iu z&RV{xg+7@|^CmxM9}@w{J*__uG9uS8|U@2=nR7vq46^t+SB!vzXHu zUp{`=vxF%iu4>#@E=g`=MEdXjU@1*DK&C=@RGsW-w`p0$Uy{=A3*z&==tE~c{aq@F0~#SWmey;`px|d^hepQ zpMYWgqSf2~2;rW%0j-`-4N6g$zj3J{UVLfaJ9uO`E2jqdqW=w&X%1#T?*ojNcHxQ& z9yb6XOr1*=&*)lm9FXJQ0@v zllMN1q2!q&t7fNvfMU!~b$k~Sf`)&~00+4rgt;r7{UIe5siVN!?A^Kw41M6Wrb2|iW_>Lxp?Hy~hvZGA$ zax;m6bYB&`_%Zx%Tlwj^d>r#lFJb@UA$^W|j2l>{A9)f9b8mBEU7_K*^R5^*%7-Lj zPs;W@3gE^1(rmb>G8TVqWNGZuaRu}2NgI5-^U>j^&s17ooKEpQEv_uC3)A43?)72R zbPPVGZs_kYI$Z`^ORO%D^dDQ52(*45Z-;L@l})MKlJ9mgC3l{^5iAN%jE|RtqdVeL zWZm0kDj?T}ORlaK+4KMM7am+U15^Bsl&Bl^1xt59xEi$=30PBU_a`6X0d2%bPwlR_ z83T19u9vjL%w)=1?=XTK8;K@Ob5~nXgoSld4hdc5rS3I%Kggk|=geiD2EpgM9~Lu8 zVK&W?m1_REd};p)*l?DECJ*t>ii+S6t54xHM*~1a`}L9wm8-=T7y~ywI`FA%b_H>; zjWpuYXe=*{xxT7nA($aKAB2Xe3w|!e@N#kx-)se(ptH!&SDpp(YlXZo`>zfeUH$S| z=6N7?iTS!|*%ZBIcZUx;x&96QSpW9~G)d`Lbv$^g+KGZZzWnM$1H#OE%t-9RfY1t4 z#!70;XFy58;%rVsVBi(jhAt*QSMn=>gAdsCZuIAvjnJ%)lYRI`Zf1SYa(mWK!FgI> z$Zw5Hnci+b%%Rx%WcIQmuqhODM)1zN1mhN7dFzw$T9v(t=kLdB)wz^7@f_xNZ1DLz_^kd9rCWdnN zM_Zu@<&Nr}3||ccjHS;6JiXhJyMX+5{!!to6+|MzZi|p%GE%oeh|@JN)NT^{A;^f2 zqFDkk{;sb%tiaT-rTSU8=TBCTS6laVJM(fK$HxU3uk;LgBo$mGStF;G%gCskQ8t;A zcG|@=ukSkL+6?GiuQ^=_g)(>i**;tZ zy^~4>G)_rgHv~v+Y$2R@NB*OjF^4LL&Ct#Uci$!vE*15vOEx%dER|dz9Q$0VJ9u@l z2(nT;ypJ3mqz!v^ne?#FuQLiFhUO(EJ>9P__?8tl?@sExZW`ZyU6!2lUCKO?7h zAWysW&lgvepGoZz-M91w@ZEdWXC;3fl?|hgq8-J_8YYd&0mt-_gDzgk&9M3V+W4ig z6XyHoMq_2`t?H%c%gf2F-J(4wrzCi93eu4jKpTTpLM>lzwyC@kKMNgwQ7>DOB3Qa` z77144Bx^YPR$;#{dA`9n%Gv?)(K(VJLt=MYWx~y3iS@z9FCreyeF83B(ZS1R4*t8B zr0wd7P_I|&InF0luSH8^Z(O&eb{1-%ygpgJgn9UzdffOUZ-=RY;#_L0xFE=m6s5NJ z6u{-9f6JerdK1h6sdw$>e+Kir+RBire3rspq9Q4m&xeZL+#){r~i+ zIlW8snD!5YWZ(p8ZhslAcvYGlICkXNRg?6_WP0e@n6d0)wiFlH|H#DmHBb#7LuNm}9 z2(wVYnBVfs?vQ+8Xq1d!`hN3iLj|ykZEVF^MaV;zP2866K5m%z&DX2v%%1!qGxwb@ z>l1foGl0ztTF4Ug+Xj*4TaYEvqvSr+SVgIW(hEmLVN4ejb^qibK&xlOCIYrre&OwD zIxP&kLfzBO$^YZ-#U-AZx^Y z?gOFeELq04pG^~cv=a@~;UK+T%?m+oOMIPB+&};RqSer0*WOEfV2XY;-nV0*H94?7%%IcZ5ZWdskUAsj zt-8&9((P5Abg{_GM%EG&r6H&;V0nFxL267Yb$45%AV(e8>eD8YQ6UFNC!5WA(+D}J z`Iw6UUDU9#N_sI$-RB10BYI`{$QZsN>j>7-HR1mGaJ6z%Mv^>50xoAv5UNN5-<%mNjqi0k^^iC`NFW zzKfj{H6}M}uKhqq0IVF~!A1u6_X=b~JXJK2AN_7-S+jzbKsuL&pas#ctONX(n3M|h zO667Z4g-1Q_SRZ;sq*TmfM+zcssO4oD!?J`>D&^msa>gcG#p-+d!c*)F*az$H<&E8 z97t;sn|%0h@lp_+*io4_>ih{&qmby!S%$Ma-tuV1Jo2kTy#T|P9%n*&*BhOCR3OBR zxPAI)b<-sacA+n*JeNa3p=9`yX7{ja-_<6q_NGzk@+!UpO>=z#E#C@RXno!!W`f}= z>46EC#8~e3Rwx6V9}&j<{vh$1kH>rE>#{)s=i_Z2cLWu% z8Gk3w#Ra!-;=|pkZ?m?JK$d$T|D#)Q^e@K|h4T<8^`lAd;s&m#)-~2!bdh6zHzQ`S z>X&fcj5$V0_HY@N?IMdZ(Wqj$El*oq$tT+l^K(K=F`u4USSgOTD!0sQv=rHRQELOGU zbR)l1IeimjuUURU{#&J$Xu3Uum7ltt?6=rYb|4k>FxulwYOdJF>q2uAms>>&OYi}g z<1ykad|iAGU)LGF`X?|`8g{jV8BfZ6K4*IKo|~@aA@a_-71?`Z$d#$x9(2*vADE=_ zdFxN|^>+}vVbkqQ)%E3(!X9w7h`NXw;a1I+Rz{gudNb6N$~%)Zn$yI=8DFoCo-53Y zK5Mc5@5jatQY|U$5Pl-YwsdlI!oK$Ux%SDv6;oS<{<14)kB)TPLM`@@DLEukbs;8l zKV*xZFGnm6d}!-dJY>ozZj3FC9J9<^r>NbRY_Uzz|Aagm5Zu(eJuei;$)2(CRZ!q^ ziZF2qn32_a<-YkdmtVX({yv&l@%;BUcb1n=1gZBGaU!^N3L~r*x1^L$=ESJQ#$qrj z?C*(9DWirIX!yuz73GDh_}~{p2bg&?nsFKK2Ft$Z z1>Pq_b8~XV+11zjX*N}>fs8ucbcnoq@hg`1ux}I3kiCE-9ry`TPRl1|LtQ|lih24rBFa#??7Y+Y%Vl4RfxOifLoCry&M+G`IW)ST72pwx>5?BM zz0?X@$NSuQxAoxR&kCq@s&NT02q=gZLF|v4f2lZfr4KucIVR_ws&HaJ4V}Dy?>>#O z7Z9qA!{KbNG(ygCiz<--h<6VN?m1}OIzzqeY_F4ZC1`eB*W|`5SV$;(G@i6fpzKo; zo39Af#P&G|KQqg9<NSi0=jGI&>72M8Jb-e(-n z!3F?+OE$k-?}~%*Sn5HH=j+qVg*l^w-MA&X5(%tvDUm$f+c~H%UA1de$ZdJ(h3mxK z6@RpOhBlmeaQW)QaH(XmV7jwKG`Et-x(A|El1L}-0OOO+1Y7sQ-&f51Q+VpCT=hRY zO=!+u-fzK-w(fsz?)qRhn)^N8AHFRc!&Q@O)1Ny3&}+4vRb;yk%*F% z10*ES5_tVqQTP|25-W&D)B*<>(SJ+N&FY1tLS?L3fkPOoeg7vmX}HaFB=68f%i8gOc9|8Z@iL( zvR$8g+`Q4tud4@L-P^Y%;D&TvB=PE1B{%K~?vF2!KY8bFbQM<@V^r@x4}JYF#`E1g z31Mu#_5M|J(es#K2~MdTTE0Y-wRJB~HE<+9>dP4UNsU&a{O5LwY|aPVX6)Uv*97JR zwz@tBv84zacAJ%-HV-B?+2Q_#-)U?#_P<%*qQUTAdxX2Hf9Z=P#ZlHXwc`nR_%ME;q^aIbmj1VNW_CqnH#Zx&Z|QM8(m(A;7k6Q z)(rgzm(-2L{J#3fA$bYe@7ann4!iA2#*5bl7DbNOsTb37YYzql_yH^@~v=dt{2;QOu-R>t})y4?M7B<2v+MQ+ZuCUSV2^6LLyXg*Xd{idSQ3o0&kBvoza1|-CgVKD%{Pwj4ekrodr^IFTpXwHUsRyC61%Z| zM;kk!I{nx4_u1bQ6v>w|1^@teq=);c$p2aZ(k(q}l>)Heu$jY%^Ii~gdUR;Dpvl5H@Wso&Yrybo3(Wz4tnBg7R>(oTS$Pk9Nvc-_`63J<) ztFTL~-Z2B2_tjqMKw~+FKv~*B7IRsUNO0yp1h98zYDQ%l>WF)uvU9xrZL_(6uurGa z4}sj(VB2na?nwsduZ*=Vc4~O&zf7qG58d_x?WgVCpM#1yI^w)cZN$13`t8_V;ItI2 zoY>~&)@0^T>td__MD6;57+aW80AlBGov_+(*(}k&c!_m=nY6>4)joNWp1>p7eL4N- z=|+la+Dts*dM_gM_d;gM{dJ^5kzQ_7=}$Jx1Z)Z2^HFA^-dyc@fJ>@*`qT1;pi%JK zW{xt!$%&fe9fN5RH)O)j#VpC(SPm<{o&WUP?c#f3)na~C;m zcPN^~>+9z_MsepXD<2lw%G{=S{2O7s8yMCZtzeOEwlS6TdT--}*iAShBb1}U<$7(P zP;s@LV4A9d_z?!@NiDPyB;`Vx9ezM0q*q{6DMcP zA3FpLx0CeJortm_GI@2OT%OL$*7YQMK1I1;I%NwpJ$?pUamB3%Ra{WRSoSm=pbxkG zi0WK|Khs;}n%4zLsrY|rlA)AK{L8&nf(g1)P3|_yLC@t~y5V>7@n6ca9yU&Nef!eV z{sH6U4gciFVMA4!7X+Z0y`7_=P#}8+D*Yp7TI$}!J#!2;Tf+)JAef?t>-CO^-VS=rFQV>)bnxanTylX zDcDCPb7ySA<|)+IHNs6+(mdj_3cJE(6$DV%wldamQ@69m$POH_@rgG&rvPIuw7X!Q zGyGrS<5MGgi(bhZJ&zK+U+NlLvWN@C7d-&|Gk~Z!e0%u;w>aK-$?$ng=>=Jd3raYA zP;ZmS*+~jLWB}v9&iQdT{>i6sum*OYt z@{6pR^5ZZw1A#zpez{9J;m!pYFw}E3xVA|xM0~6m?pZKZ_T9%mcY@Mj!W4MYY5s6 z@UM?GWr@qlVea?%=eJtBVF?KCU^MrD(jz|iFgM{~0$x28%$JRqlAo$qFV>B=P^A}|zFl#(Fi_H4}b$pX+3PcE*SaRRplj-0m+L=#`&@OxnORjzZ_ zvq#GCi*s_{@i;0)*O(I25I2*v6#a`K7HF$&5RKJsM9urwWUED2o@+?6EP2>-bmm9e zm0_IrNpQakLr_YY`A^D+N{?g_^cg(uZEsxA#tlMiKiNd{^at@uv%~6x9Fm8Jx}2Z$ zJw*`hqqLpE*e#+H%$`zOSSAz9K5Mm%$h#8cmgZVO)r7Wz^w<}Kw0T!MH=n{bMU7M* zfS^RVP3CWE*??5Ljp7&drgft&(9KOSK&hq6akWD3G_g#uqB zpN`U#140fr_oYfE#UdWk(3l(tI2_%)o<5V%uS-#fuuf~Eu0LMFooD<7MwSd==6fv? z{(RVd6wtL$Qw? z|K*k{TCc2D64$h|^Z(`eevUmP+6jIwXe@+=rfDDl;k;rnPF})0u~&P0X@i4b-S6qC zr7f9~7WWQn6>r#SYS%Dg0moo{8NBaS0W z^7f8PFmkVrFPnd+cN!L7D^CtYly9BZ{&eh>PK2l`-DM^dy$N!Ko$|J77ylcj(;2i=-k1?`h38)&RHAm z5nyMoX@L5b=-=bN>UXGg|9){OuG-h_RSr0D_gE zWiy(FuH^)W%HfuZaIC^>mt28ya%wf3q&Y$`l^@=3ym9S`#xjz%}EO{2IZf}0P8R{^OvGz-+!TY9$i|iucc9M)uiiE&w^`I-EHeEf@=T>DIR`H$jF89 zRZ4#%zL^V6^7b|l3@6>IU2*Zl7o4TkV7m}qlKaHI2>7>|~$>90UE7N8ohuwXt zRM&%Zupeu{vng9!Lp%MovgO?jLYI4iQio(tx7f-bhIL|L*qgYXVj&?AA?{20Uv=)NSCnuU=0*Th~8AdXkb~XF+Dk|}l_1RCuix(IF z73Dg|HmQGc+Kf^L<^DHfy7c_8CrdV@LoZ?SY=YhQxke)RTro7JLHDtzyb0c%cNPb_ zaqug!piZE}2)MGVvyZ6pSSu6cq##itdoHf`807ju14`<$iYCHU=x}$Snl5kl?2^T0VSBFWHQ@6Rt@6jiYf}Y28+sgcT129kS@3eP-r0 z#i3K5*?SkRBAYr`)%1H%-fJUR`xtpY>~XsKDLJ)EtR~r^dhKr(RN;)yY2xQSm!}iN;*#MB?@Hr7JgKEUZm}Gb%x9q@+C3R$LJj-y zuFt}TO>hz`c_afCoXzz`IFm?YM`QSqlMc7|P2o`OB_}bDl>|ut1-020EHGZ}I>V zpC-1hcbx*uyRj&-KsP#bEWP8sy2IPs~AL*}No5u+%_R(Jn)*PDNx;AOm_Z|3G9`)FHowgCi z(Y!0V@O{#M6tobQzH|8R>x5RO&9&nC63g#E8RU5YjAG;MLEB6$vfVKA4LhVX=34|4 z;K3(ArISZdB`t=ym(MuBCXgyW>LS4pwV5nlfwOyE?$HJbZ}U!Y6@-7P()Qhxr)>!Q zPN`VdXo^#W2S^1wS_>$|D^v8t`Ag70X+tji<56~Ru6`@Oqx^BoFM;{C`Si*mQeYsP zI;i$aQj){gc6?5myTK~vtfBIkn|7XGYfn2N?mgFD+c|{l5F2)rKd zExXD0Cwypn+&UoQlb;U3y|8j-XCy~3a8-mV>~-}v+=K%?h_Yk&O6zZGV70865SN1(Yi&aUm&!ok<+ zeaL}vuG)m^-lLrEAR`$m83{Mc%x^@`^RJURdyjaQNT~Zq#`W6+7iL@APH7RYToZ#4 z870e!zZO49%2bAHT)G{(v9k1Cb$N#GfwiE7?p8kEJDIRE`=bno$MXF%kB)of)(EPc^FT_Ka7RZ+vD*Lyd~3vm9`)>H%7^_FB!)eCe*k!L!p zbHe@j(S&O|ZC-S>DNxksj?gZ5kEP{90V|o{9{OUb*DBCUVQ28PHC4Zi?pylM6kA#L zt2nfbFbX~UPEbbr^8!3rOOVWbT#kI@KKuzqTZSOkNYX{FahXZGfAi{X^e~p5x|cCg z-i}Q1?-Xc&l3=QkFzj~u-Y{9zQ_o(}HXM^ye;OWdM;+$hDr%5}WI80%NT^y>sWZF+ zRXWh$6G_Q)|NL~Tu3Lr@$u+oiyF(kwDB}2e z6@G}OFEy&Ug2P9l9&f#6X$dh;-I%ofNT@@|zg`{l!Cw zHNU1*_^s(Gj){4SNLoFyO0qI&v$AfX%lS&^>-Jn#75w5QyJ{>Q>9hn#`7}vjzO?wh zV&=TKBFsO`7jq0!vibDA2lYvdAW9&=qbJ&uLh23Sg5{Nt-L@Qhtb4~U&w%P z7mDpv5SCIZj6H|PDt8aeI;>@?%h&*z9J#{e|EhjJKd?fwT9?rPIG)>hjuJMRv`U97 zypy9tp*NFn`v7JArOS=8jU&7+y>d%=+mw_s5B<_(^DA5VVqZeu*<4Xcuj{(GQFi=Y z%J;1Q-D;g-ntx}WbgCbc?=F>R>c;Ory_#0pX40v%6kgf<;FT}#_UE|DE?iz)^56I; z#xyl-T|+bd@l^c>+UqvO>AhR2Jng#{Y5ccUjN@M-q-^vJYbysLhi+>jpHN?}w&&zL zR5LP;HKa%p!a7kMaDwdEYkjJVpqMAJkp9A|_T<;#!cK(8=^{3j8Byl!`b^We!jZ|_9}Khp zQDW|smSf@OOwJWC)|1u8+P7w_`jm=&P(us8{2ZNCEl4x`Ul|r(q1OZ`tIbCkj1DaX zBi1D{LQXpk&0(Kxo%E@CV_<$s_ZGGPnYAz-0&1@0)Tu%SoL1j?c{Veo)`*+lF7q7i zciA{`@v1J0`WbQakG`C?j`A9f#nNX);TAS0ts>5L{CHr{*0Z;wg>TiCNN55(0d?H8 z+`VvwpYq+{zv8^|Thlq(vj|@8?|WhM?)owS)b!0%zZdbkouw(}X2Bgba#hW1{800) zCW$Ax$@1HB@S&>F^N?EuwOXM!1>PZib&BqmvcXdSQw33;AiZyvAj?0QfT4DP_|&vE zQl8VGbmNk-s{$ziWA zwcLz{MAUnN{<$Z#B%lscnPnkAUFHlqi4-0Thq(c+1K9Z9^MG%bKnp^j5 zv6`zFOLD)gX%Sgg2Gi7s{Mr^BX>xMrv+3WWn|5t!AM4FBu9F%I;3wMCmW_;qot?sy z1`>l#r=tRa_OuW5MzMm9hYnv|`Q^hvzf?Y{539QhY8FkCl~$%|$z^+gwMcns<_Xxp zU8c{8NuzNg@EBp?5UtNQ7GpzLjfDoto5s1dJf(MkN% zmGStZk=%e#s>gs=&58!?udn@09P6X;=+qlBLfR_+kZn zDp2=MCoQ0R5aH`7Kw#wt&lYUU?^8~aRa%?-ccF&t#m7km!tyCfcW{BUbAWu^i9Lxr z`a?=OnmK+KIsE=&5@=UP6UiS1G35kD-m?lH)z!nfVI)DHc5RR z5$X26`p{&0Z&{C77mjtnq0cw^CVn-9LvQslCvn{J$&_mGZRDyQb3e`U8>jR+=o{Vii z!Kc*L2&Evi0>@OBas|r{{&unHBSLodJi zJ3D#_B$sk1X(DM`-NyTU#?1bMVU*TRyRz;si+9^OV6@yN#-GNObgvROErzSK@t8_J zH=^8tQu3RENBk_ZeK$&Bf^1gLrl%QgxPv9FV=-RUY*K##KYDg{KDWEIL7lt&we8D%XjrtM|1&xL^uoGB*U3fXi%)kbYP_XkB>2!j)Bs)|neyX{hfOZK8ChZ>jM{ zY}vU$ONo-UmgWg^KG;$&+*N`*w?SXy71)_Zi#N_C(LFZTf)B{x4=Jv~4?7AcvzV&^ z0)}kmw zBFARyG^X*6^V ziVCmMQbLsbe>ex2h2W}iF;$jbe2@HNQlZJ|cyyYPK=1tdqdw8Uj=x@NuNy_PlD`(b zAF@vo?myiBCTOYH=lW6=F<2C&5nxg|;E)Ut+sew`3Q*R^Q=>O<`yu~Sp$Tm`+>)Q; zpV*__A!jT-lC_d@kXZqpKF~U-Ziu=dPuY*93(7Y-%?PDu9~4}PlVtydJv+6z`-hq& zM{x|cT51E?xVp=NQ_*C*Z=Y47GCLYLrRDBCuvm(r@5V<#h%uV2(2T%S>pOG(v63S* zcpc3tG={Af4R{1s#4q~nT2(Vz_f${*h9rDWI!;XjZUbN)uol0D8`lEc6*Fxp%blT3 zL{LLWha$ndr0G`Zlk1|Ez(D2`*MmsEeVNCKOXPSlvBBhEcm&pc0fl;1NT5*K3pO4_ z8dlg-D)_f{wn2LkRZP5)zC?n`#lbwY9^cuqon9qYZB&8hogz7AJjt7!Av51 z7~585HYr>XJt1!B#Vvl0+BP_eZsS{tD$;>YOEmov3I;SvH{}Z@v`;zUtsGQLZRwTX zA8WjDl(}`{HZBl_4QUT^!*;0yzgvdW^>!-tLPPft9vQ3+d?cLw`;fFur`u9e1F~nR ztx(||Iv#aXQ+u^lJM3ux;J{H7z>`wZ(uMm|W69>xZdldeY#`l_rB_(Kup|FE3jD_p zAK5W7W&_0ihrW!+5wu#uFY9m*U6^4`{`xsnJ>`%qXf}(w2X;uUpUfYWVcSX5@*97B^xIHJSB&{2 zMy4$`rcU3Abm_u2F|y|86#EMpwWcdfeC^5Dj<2M-izZU#LfWL-+FmR=+FB9~dkM{8 zffz;Kk*~qZT|0Z$7L9l+$Vt-J49n^O-&lyXSJ> zu!(4|Vr(64OP~9-d<#Q4Fo-5UxLD(4nO#pbcv*j0X`S-eaF;3H1$}j|5n1|@;&F4X z0?c0L96aIuOR1?PDtHSl8T-c;RLCPN`=KOgg8zX*Um5xjuN}DZ0^;Z0Wx)R`X>T_R zVr7Q^V{il6G`-H1W)Vksb>u-NO~!lV%Z}3_w43DtM-F}6 z_TOVgauqSZCZlrh07d|4VRk59?LcWuJ8UuRI087;-92nW%ysZK2YhAZb?Z`He#uWB zysoxDXx;0HI(7na4TDvBLuHMqUS^B$BDl>33RrUY7UfpwzQKDlCg_2&=$_jAoKel z8qsBpH3l_GzxH%TYKSjftAyEC>9|vYH;xN#=$Ah~K@>%s@j(**5< zjc<`ViWEyczCGB0wRyBY&Zy>u`slPnXX$_1BziviVbFT~K=LgWHXM-XcQj|MA^;aI?N*IdUScO{L;LjL zv9^}?c9`v}{+c}PVuUV5Pa|zRG3RTi=h_B3CV#_#G)_$`cWH9j#OC{VEZq(>(SveN zvEeoo-t@eF)Bnu1fcGA^dQeCEN2D++=^MFj znV2kQ-IDX3qern zc3M;Iliom6C%Drph}YgzlAmep!S15yFN>S}uukemp?{(dC(f6|=0P8=(vQ{?N^IHc zLBkhRh`3$F!gultV?9#JT0w$}7Tn6A^_J6DhyIAjpykvn}~5a z5I(4<1`hNgYq+P0F3*b^I+dO83!LQ+zZgt`&A+ic%UwZaO^l5nGL??9`)2Xf-PsP! z`xIb48O$e(A>$Xs0nASc&MSfL+{(m|)i;tqQlaJH5$ZLbGNaWAn(FzWf<|{>u4YH)XQY+(|CLR=H?` zYe7*Q!tA(tO*BQfiW?H`IsLpF-%CWtt+xhg*`Gwv?SfyU~-o0{MhqA z8)}wu8B03;K2jl1C)Vg%$3L@?@E>D)d0i-&$_@l8OZrbUE5|@4S$4ds1*u#%8yVoc zvH1n~B`cN&8|cbXeipT7LUFV z^)7w0Z#1Af%;_~>?~3D=V4vo=GyL?_VVRbn_l2!YW8t)4bm^%cmZB6X)D~a;2qe7E zeezP`vUser#oN&~iH{QAIz~qSN6~pdQvH8%{N8JHU88&LQQUitj9XTbh>J^?DCFAV zT4k^7b#c{oZ6Rb_GudQsvf{=k71<#qS=k9+-+$r#!+D?AInVQW2(mnnc=dE|DRNA_ ztqWD^TT0}NI#o)T?)+yu9JWva{^=y}xTMG^dL|0py1zGM(fwrPlG)l(b?C&?-IE#{ zSus}tw$rAvEzN1`@N)A!;%mIy8@G8E3JvH$q@wSck%OJs%*5W40K}t`%$_gA%3%b{ zS5mWO!k+Q^Y@m_;CvBinqg(M>tGKzm;zRCjf03QaUP0DYH6ld6NK9uTXQICHUaw30 zt`g;=)r8sE^S_Y3r@^gXe*Wh)^lhy}JY1%;R4Phb9Gjd{oS)4fC5k#kfZf)Q~Q8G1|6Pn)sloe z2?FLwq_zvZDX|=#pRg@1z^~;LkoD{3#?y2@!$Ms<3+-Z0P7l;EHth%68Fuxk!b@NO znX#w)ZoDzO`8d!)OY3SzvirX6HuJ#8(?KkmbcNkNFHFCqGxO|4Xedl*_4@JqZ2?FReAQSEHx3VLBwT>GR7e$DhnT z*XXbu4O0m{KiNOMANbBUrZh|9u3`P#ZrPlmVI4Q=n0Z8$$YQRDL`r|%#~?}TG#`5Q4mmzCg+mYpkNf*ZX}{IW*mjnR zL;;)?4K#QO+Zj8o)BC68u{%{K8w2-<11;jn!A>GR)F})ajTpY!NA5~ z;o=V$)_L}~ep~`6rd!Cz_s3Pu$;NaMM=h6&A3v}6`<^-tU%6SOL&RY42Rrz2#S!## zkuT)BLX4r&je8~h*YOv*@Rb$P%r7SC}HHqAZwcazf@;#L*=fj8ZOqZ7z%Bf_-lTUwP%7R>9O)joE>B?+g zYD<4AZ?dtb0aM(oBPzRsksdVh@en^2>b$&3@HWj&cv@V2@y z(p#p)01F>HI)aw|F1K5MvCk6IY&BI9g88xj_inCaYHPz~n1%ykeM(yXpg1GWyeXfo zlmavT0G0mwTYsWj^~gmt3t2 z7qxo%W`EjsM)~zi@6CaO?Bs|Z&l8u`is~dSyu-(>d-i|LGR8(fO@&lO6;{6*#a^-z zG;-F_UrW`u>~R<$Y5_;vNeEKJKxi2@9gasbE84mJc}}q5Rqbn#Pz~xA83P71M7)ny zPnajed9{AGww&ZVy0!Xme|s$vFRlhhzGu^SU;2BV`zFlXOW3q_1Kpn4tO%_!a@Z_I zPCop1UX@>cl2v*q=t(6Qu<20T7>Z5~gM!1+I=Iy%0LXskoa;^hfBT^=>-*%wh|Wjfhi~*$U@l)PA)o$ zJT-opa2bBX`|F751ozJ(6siJXI}*?i)%Ppc7P8;eQ`puV+2q-5jJkY|b6BVjqfnuVQc2FRf+Djp7{CjKP4gJ_nJOz{LdnU?p)r6b8 z`gqLBl{c^7ak`P9iIac(1D~+IVf+#^H!iCcCh#ixk-6eZ({{2QV8}xD)y}84Hy_w? z=nN{5(gUj?jm9`mAvMtLGQg!@UyDiVWjyGe-ZbiZC60~F? ziPZ;ClX#{}t7-43*JUYJ#Bm4XE$usQrZdDEM{anvHS-}JXQsW}{TguK^@nbgWtr~r zU(G^T^9t4vCB*6)GA-|j!Sop)cPka6|KsAXsPE&S6Bfv zin=D^{zt5$=70!J7Y=9AG9ad=I#;YWS8Bo4eicS(pex)5c3#$S67J?UXFVIn{Gho_ z$tn?>zqm15{(d^Z?^7Z9Zj14G%*Aa2pd~1aKQiDN`^LR#6~^GUP#mzPl>oF}MBdAZ)#a8kmjlqbi7Lvv+=?^sQvlCO0+stn~+1XJ9 zpDc}XGs+zKa!txOS19zSd*6n$CEgtBunav5s2r%{P!`bRcD$Yf-V05Ad+n30+bOJ;FNTTLb!Nv z_NaWsU4-f8>%o$#zdPL(A9rpth6P>UU}gJ7w6Fwn7v+3@FK7(#)HW2-e^GM#-FGCN+DAVJ zmY=7FJ_3Dg?-EVw>u*pUcNHw>6LF^Xoc;*!%qV;Nfby&dIvAwuM986YTqnP8DB><7 zV|tN~!2z$^YO7z*f0#_S$Lvt1#6nMz!SQEH)%VcFYO+HZISqTo5AHG1hAKQ?IX-GJRw$p1iMC=r=`>%hyQqy?dr6I=hKH zFR?I)pdm*PM762V=EI3j$Kk|9T{NgVk$Y7A43_u~vPNTeCLDo2 zuB{eb<1tHG*G;)zBC5uYqm9jS5*pK;ArQq1LFXot*Zft&>xEqxjpi4~abh+Ag7pc;VEt z+UoqYuU-#qo*L3xe%DJZ$JAc3`!-lJxBOFn>gu;dGO4C(2|{8=4*X#&!{5kFKrZ!T zEYeeDgVAiskc~(WN%b zRbLE_OPRDK-#y8?#=+o+jSCFh<MyO)O!G;-N|t5N&J^vn`_-7> z`klK9I3>%j-oq)R&cRSrLA6_WrjACZjAMz!Bq-DDUJqETT;&97El5Pmhi-H7p&kJBOVAfn^AO;x$;1 zV+x)O&R*~g{td2}`R{RIeTOk&2AgEVE*x!>|Fxxu>$_YmXz$7s@ZV5VKjpGHfXq)ls*gAir4zhHL%2O*BLYBGB4N%NiLP7Ez!+Zd2~^vvO5*gds&U-E`a-TMN0whq;mY}E*k)4bsJ%9WQ{+*B~*AdsEd4i7DWbi;|)jDzK2E{RA=Bd81KXB<`tv- zD&7GUwD|PF&YiO-u3Yx~UF`14ykY_a4?l6P+*Fcw(WFE|93}8jP0qCEd&vmytF?IUAS4Q)vvtNO z+E{TqLblPNd``p#>R%e)urtkH@FkMQ|qk9$***}ml zw71;n^>61M@fuqi@}|+wo9NPm_ubbmiNsh_S*21Y3W0|#&O8^R;BmNCMQ31s@+o12 z$(rj$eaO0svTS!HeiwtB-JIgHe*W;#xER4+loI)vQz0BR3}BVAWgaYPD1hZZVuNei zkLC2PyT3PkA}r9cGK2+e*Y!T57HT`WKSQa3u>I4_Koc~o=g7BKlM2CLFb`GOZio{0 zh^#XJDQ5(Ddj+=ERlCp{@>73rq{IUTVoULgJUw!0sk(SBO3Z+@O26WiH7hs(T6$2N z=;NvJny#qkq}5?ppyTr{xeOX+kN1^szy7d5oH6N8Fwvz0l$|2Rh#(+)Bmkc3KhrfnU`ULtS1FSoX~GXJ_nK~}m}3c-+FQPE5lY7oHA%TNIKL~4xhU0Bu~^}b>fKhgcRVfjRbXgi1u zFC0Lg>8nBjk`KWb9zP?79M$rC3q7}n5eZ2yr=F{1B-B(~dL~^D>}nclur8EEccC9q z1;6aRU1_pTmZk)v15j3+EMe*n5bkEzOO3W|{8d#iBxwvVBOWRbbKPJwTiCb~HhfoU ztWFtO9F1`3r-+YLJUX`kdI$8Dqi97O(9av=iy?`1?m{>K76jVPaa9tP65%wc5tWc- zW0bz;K<|$cl6FLJ_^;SN4IYd>y96Fwj>ZvnxWOEbs;RWvgbcc_L=Mwl10q9e=yJ<{ zJo?-*`>xAr1~=ZTQ9C7G8xBT|JPj$>m@9fYIrz-ufoM$8Mm!3?ke-4@^$IQG!@mtS z#fp7XdMnWz7?gaSzt8$-?@%F0D}qPXCg4G#Aq-9=OA%c#22Y!_pm|gOIub=$fq7Z9 zDlwNLy3Eatx^?%P_Tv~G`l|5+zI9+0Z8r~tS{*Kb60L0r+ApVSW5s`HKmTj~Q`Hpq zew5=Dge&P1Xg@UgtTKeJ%D70&*h9acI)=m3_pbY)1Df91rGCrTWubIqjPIx)3&i!H z>Cv}do$!i^p^!}0u!8(xZW&E>ubPM#@-`fF^r%~{Hp~E92Pc${1IxnExc0S3HZ@y_ z(V+auGVk-OWVegNzX*_{`1k8gfeL};7`YMTYuObl^0F#H6f1cHKTxg@iDpg|Pcq5e z1W4_waXJinENYg1;dOm{kiAASu^;}!vlS|j@C0TU3q2ThG$xaRE>Rcra|i^DpKfyR zDn-=VUqJm+TS;^A)0KWY{4fM&JB=sT6G&b?r8?mMAB* zVK0hWh+Qr2Q5ATdz~(?G+C zqfq5ewl;P3pY35!PfV+=E3c@N{;rPyU2Us8_L&@<341gts_q4IE2A&`pgHE|aD23z ziy4f{=Ebs&?Qwf6jSlcc`pmnZ9PFs$1*}E~!p@t^(Fzp8*NVg|tDxFBT3T9N#Y1%$ zV6P3XRQs7*J4ox!B}-d7!{r(CDXUoW7cS4l` zx(-tSbO3BGbMx3Wf0>v6>3?YYVzqsg8|IMt=YhpVdCDPuaZ^F|3<=7V_e7Ku!@)^W zg?ZM}wgydX?0Nt?I2#*l9_0@()jL!p{Sxj5{QGn`HRGi=k{O`|y#gm-^_JVo7#rvi zQx`@=XypdRGQLJh_N`XyEQGqsI1bm?h$zIFL;yrvXy(b?ix#$GA|h$5caY*kmSF=~ z{El2NJ=n(MUfWepSe;9_PykW|8kIvnc++_~$GI$`&i`}-dA0EYlTZrQ6a z6lk2zw8<&wT|J-BWZTR=1vN9*7rw}1kB0&}B&vqd?U);1y1})sEg@(}i?V)rm9{V7 z%Xk9KwB;(DM&HHl&){@_-DsxhUU3`Sqw5=xy^p!PBz|6F!I2|!|Z_Wk5rI&tT)v|L?gM%C|sdiCIW4G(O2o;{wCU(f(GdO|DGEZi76se%*|3abu-A1#hzv<{W1=mrOvYLbL{|g% z3I{5-MZpcfBp#C(n1ViEWuVMOO~iesnRzd(+IVuhJ0Em@6n`EX5@ug~z|6Mj!)c4B zGek6;{@38?oWyBs`22;+Xs38c=efD!ne}f~{QEIUhuN@;{Lp8Y*i}}?(<7zOe-DOs zgHxubw|SKrnZRtQr{Q4n8tfe@Sf1gXbUglO=$YGV7r#P&ejFBMf+n`lW1SvLCVIHGN+ zX_TH?M(TD>!^zHo2}gOa6;`9Lib%Cl4BdhjW)%x>>>#muaH* zW(P>a?`0uC?t};)4p9OolsT8HzLzEJeXt4CKYqbk=266?(tAnQI7+akV+NNswoi+; zPC`VOooI`kczvj;+gN!wcH%I70@P>lW+bGu@pM2*(ro_i*Qw`LbaPVdb6le}>Av(D zAo!3{kx$GkH~I0n%$xnYJ6!j#X#xgNI@R9QZES_Ft1KKb%vx_%@tiGv#ORGPb@xsU z@IH;nm|$6c1P;p)f$SbI^Q>n^0PbdhN)yFB?a`@rLKyhXG*0Ju12nDbfM8D@&-(~{NZuUj=&cWkrd=*$s5-sK>hi=x)(4t|6g9iV4IEUOErb) z=TGbnQbeo+Si&w4GbcNr;tNWDnejV!rcvfUp8!6>2ev6+@c(_R3F9~$eDHj;y73xiezi`O~ z-8DY@TXjCY@QI~-59Q%!^<1a-%2R#Dn0GQ%8+vJwL^$jHt?Z^m^Ka;s`pTWa^8IYf zYQakGgf|(g5<*A=Hx6Zl2wlm+=~C$VM&t59;9YSLvFm=5{G>N^=tC;F&Gn+F(5B+w zY`%UbG6lF<`KhJhfMUz*3$Z@ zPE`qQT{DKAm{ehHBnEv#FQAf)k)Z*S%pDAGvmy{kC?h4W`st+?r8A*t>IYd%UmH%3 zcHE;rS5`4eVgTANj{odb-|Awfa5I#FhNeyv+n*?41xre}Fuj=*RhwHqIx+Uqych6j#^Or`=J zS267|goX?>NxcjQ^IA(L=_HWK#p2c;?+EMU!f0xT$jg9bllh6T(Jknp1#=%Mh1{+H$+P1 ze@{hm?#GL98)QIP>@ny+4g?uE7Z9(OX~o5AyB+kwW$DAvpivXj__qD?pV`yby);cS zxsXy6sRhj$Agef7da1|51`!S>^+r4=4Ms)G+*BtdV=^44!z2<0hqgs!K({LeB4(hGd5OVEooTETQedfo#hU>?tR6^@c z9`^9rT{4j#2v(MDJFt`z(`|NFIXgNU2-`b}<5M|b+zLCpoHX}0RJp3&GB%m#i~J9x zZ?d9k_BUJ#^ZV$QO;^^yx*79yD{Xni#y-Sz>-<`-&E zi?BU%PQ#gmD6aZ*`))x#1%Lo@1A)y$HCP`B5L_M9)wl;oFhu_y|4;b&BUhB)%4Ldq zQc&B9fAcl{7oC?S8J%nbn>bKO{c(AsG@?8hMg^spB@qaMD3l>_79`7)zuaGLLK9uW z&f}eNtc`~4T!|u1!9@hqs>6NSXs%Sqx@hZV0ETE zK65)SVl#D%T=|ybXCU_3#@`k@YDkkYycaL3a2>S$5?TK&!i?`FkQ)?pu^ICg5r&B* z+f|z!fc}#SyxY02?l`*G({3IR;pmR))7{u-W?0tJnz?fuX5g#{5|%s^%Z;f=QPVs46jPSRF@0m+%z;X;|5=|7QYVff0uJwO z5l&mWNgJ76QKsuV01zEs%?2gyJa)*p zmf&EY@{ai-N~MXkt!f2G%nA9rf6*^KK6*$ryHMUBui|9`-rLfO_tP`MLMTyvNc#P> z=gptEx{iC!f&b2;nX3jE$9ptMKir%xV8fr=e$S?WNkiK+ulTyD&ffwwdVSA#cBaGZ z`qCechNpwWEwFm3UEZAYJp9s-XE>1z{tr6aB~r$&D}h@?bcxxfsrx< zKo|MI@1wpmxyq7_E|!r5mA6ekK5Db^4O=}Gl@I}xfSTgp#$1Wo@nQa|FaxxvJ`&m} z0ya=sYJ%*yq>mb8$3 z=dU@~q%H@#Bkl+Q?)y16FZ!}a}=$n%O@DQ7fnmSLxkpY!4Q*!zlk{^Jx% zM1(;~r8yS>y%AY%>#L3&ztAqVKjl&_nj(NjiwQ8Kn{XD>-PN4l~a?bLR) zH%Q2?c~wnoijUF0yiUU9*aAFM2lU3{{`xD$=uE%ywo&zeu4n|pcR3!v0&KN6lkhT2Xp97)^U}N^=3)Se`Hm<;>m``6|U~ z5G9(JI2Yu3t$X}nE@<`n$I<;<7+Yljt~r`$wneT;_C}dc^i&-BK1xoPc+Xgx;-yNZ z<446p=`0gtE%Zz^deH{|^awXE*W!CY%p-0HhOG;g0!i9(Y~@DK+&h-~ds z8Z?$tu032|lKdK~ABcd4i?9>y6%0Of3>Qy_vbok%C!D?^sjkJB$_%w(GK~SJizW+i zDog^R!H&*TV(Im&cww-QX`pgyiK*Wf&GZrXAlI)@-t;=afQ1^p=wMcK=0+zOQgusgA-uBir_^=)dfmjk6;$JxyrViP z<#n=*UO3=ZruT@ak?@5bUgk-E+l}1ur)YxKA`zw{0qj06p~xxGhu=m z$9o$gBAk~MBK`9@v3Z2`zolzUu_#e!o}Vf`NhTQ^*s0afWn#+^{Yw+8jAVr~(vbG! zeqUlLM>Tq3B`|ig$TuIko?qgDJlaFXksz1QgS~JpI{1w$r#!;dL9jon`zKk8i5QJy z{|&a}PO{Y5YPwtik_T4`(K>u;m?ulDi=%}ym+1PBZgetoq0@kEu(!raoZiH{cR4{d zHw~lfKtoiDTGz8n`SEd0csik^r?7jvXmmdLrd6*Y6GInOZ(%jHZgKg?#>Rz=o)u}( zW#_1$1nm`_vS}OpI8fH$+ZtwI_gLaRcLrw!t4ZmB_&rL4t1nB~yK{Zg)Std77bDcf z#&ZLbgwjOYjHKID1L^3b%usO5z)zJ;(`U*ZE)QIoz(1ob7wEfifH*SE;QmuA4%T)* zc84=Vby}|})4S$Z%}COcPQQ5hipAQlX^Gkup=enfhm2ZK@1E@ZjmsCRoL3h5wJrRK zdfe4`X<^~D6U|b9690T}&lh+!EwYl4lNe3oL zObb;e!>7SvRgDP(f#W z9L7&v(=I3*&&Ky_&c}G}zfYCxtzLi4c&axVH_l*E&LWW5fr%3{lh`Ddl&+8pD_>>m z4ac}Uf}i{?Qvv=z$LHDmdg_)5+T~yiEsKiv>^tU_0m}WnawFn54IB`^%%_!PuGYCO z6G<2_T|H$vdzH=isA(#tE_>5+!~;r4N@XYJtG(z~njmnV1wcx~#< zM_n3F4y>;2Vt!G*7M6MhOySf4AYm}%TxhmLegW`yVqa3R!s4yGT?BX#NFeWH513f3PxQtt?a-aU(X+r>)OH`hzRP_$DymRItYg3mrrsAJyB zr4)PFW?jT*d3yU=lK*?;Uywyj8B0TPyI z>MOUxR+!kWPfwmbHpLX0$7sVBKpqLwjL_8-i*$?$3bRSqF_fRL!(hU&!HW^2nyXAT zeDp59jQCaS=*(O%<4i{!Vv${=}Peo1OI)1EIOASqE1)XZ$$6H-4@A&-LM;Ku2T%}$LUN1@+>?Qaai z@vWg1&PMQEfs@tQRifWR#bkzP?mS998P3R1Mo5?o^HnHms@5`Ew!qQGFHKabDV^2e zuM32YtkSxHyQt=!o{IhTLwSVH(yGLuaq?}`7PpG4kDpyjQ4?{>m|wnMPh*|AoTdDP zu2xSWvvb=2QQ>;%HH65|lk2Ce`|Ery#+nG=2VOQ9QDyd8f7~Lv>yL4!x1a;1q3QDE z9mtnjALZ_&v*`g zH`xkEM3EkJ4l4W3uCM_ims+k<*N;};)PIr)B|x*k(+ zEmKJ?Q)DK#tK^8K7fg;CD1`uM;UI)j3Fb$`ytTwpC{)T>@M}Q(5E*kFAl8~f2Vv5JzIG&7ar<>k4 zW9xVooiIq!p$f(N`)wj%pz8E`1S5OLN1B;LXpix+jR++TThoRV%#VQm+7RinDW{r1 zHvzWFuYa59^a`kiy%Je-j&;wK$T%ZL3kE-Sd@w^O z0YmfG8s-~&?9W(l_T#d|^?FV^RJScUelJWgKwHY3-s>blC&8il>$V(aI!YRex-gv?FXVX{DK?PXZQPnB_6?u_loit=8!v zyk_8x6B-#I8p8^8ptbN6sn3Y~1W25&)Tsw?@eZif7 z`oiF*$mVofz>mNRY-xe6T4UB>E2NKs?gkImT9!{j!^=%;Y;S;DR_Bc|$tD~{=!s~IPB zI?WVG7uw67EN`Pb3^nYa5$C-n(Gk;EAGfZoeQDgV&FXBkd{8_!!$fG<$jR6}cA|H- zYk73-%E8Vqbbq6gyEvHU#dv6!CW|Ve!rlBFwxZi$Tu# znybkC%N#ASMow-8{}%1FPN^IDd{4aISH-RX^(JyyLJ|pe%k^)~lOj3KBahoUxEGH$ z{0cL@X?0w4UC*;5_tx>UPUD&Hz@m1K#Z=ovzyiy|18u*Tq3Ic7-gHwMv_f0k0Q1Un zJCT;FIqQL^(X)xYk3ofmv1n&?CXf>m)jPn_Zr3U{FB@3C>2zJ5=S9kz?*=O?Rgelm|7Q09saHX79+rqa+iiB>TT-eT z5CmL!&E^{t0+xeAY;SwAZ**}t%jlNeN)7#8;kx;Kg4MA-Y>!+bv67YQnKxk}r(a5e z$UcHf+pgfMRiC*`C-m@0h+aBW6e_RxYJYePn@Hsk>U_aWtC}|SXFck09;|(5|71mK zyo$>J1_OPq_pp^0L`P`5M+-09FLHMN5JliIa>INHWNc35<}7ie@+v6lu-Ex*#&Q$G zD;mR25@uG8oxdI9;JCyEz(^?|;;n-BT}kU|=VRv|G6UtefT`1O#%ji$KVAb>%PCGY zp1yMPOMtDT_}r0ZnnwzG$@^$GeJIa&mNmT`Jykje?))Z%*W&lbhx1`uVJ?)Hx9{)l z|Kkk{!Q12%+;CS>`TMCjyNkpA`+t9Lly;zke`rAU2>TDhypp-`PCE9ve|;%c+=v?i~Qs0V2H}W{F(lj z%2nC-CVZIhw3}CHpwh3Jg}v~!Xj;+sd74=ysiKTuu4$I2msKj zOmepNM@jS5e>u&(hL_*z*gjx&(6_lk{|nM<2(K=4N&Q@PZQLp7TD*^PcC?(9Bl51y zeNNRs;xT|E00sja;$8zT)0t-I=na}CSr0})>*=L{2nqn?uP=;Bx4LXIxa=SzJJ~_6m)3VC&Y8AdA7Mqyk+ed^ z%pP1F(uRGM{>FsSo{t;OESC)3_)cYv=W8Lm5Sz6kLsCS+= zoG+=MhFy?1`>E?1=3ELhwsEg?=iM&V$lL<3C;N(u|9CwqARDp~CviW6Fxlf0UxLsr zkqz{jr6uTDo8GQ{hVdv-qeYF$Lu^#bL82+KnmQTL5i`CbqEd`P!w`|5%SP-3;ut&# zXJFPXu1#{Rs$#M`eevJD0EogOxd~m6X+X0E5jN4kKO@p4y9d&sL|Cl5)YiL>HkAV2 zA^Z&OMMNKp8}?HF$QE2c6u~^{FKH<3Z6jnl)c1eQ#HF)u6V}@T&ekx$*CE&~Y83S7g_a=)`Z->t79$xdA){ z&XPK+wZt*k_33sjmsyU4KLL!TdtP0;iMh(K*tW9IZqU8~B@a2Qrd!cPpDkSbF+8!C z^;2$~x7ue8XrB_N8~SMG2~`L_=|8aZ&$qCrr>^NiY`uVr{k+L#NmGZ?M5)G;5o*Rz zU7Qamm)!4OuxW@xyoGt<=NKgOfl>5&px&l501c3If#}u&hu8I*Na0H)Kv& zF;Qz5qRwsu+cilxq>#PacB=mnVsVz3s zTb*>hM}K8rM{7j@V*A#qrBOtbyQcCZdbY@FjR?^@n<+kzo|W7gF>w;3=NRJ4It%V0y>)nC;oH zwCKwsj+>k0pj{6s_r`~MN~gE}^tgV$NIZw-*B!5qt_P$Nu{2KDUcgYTE3;RH{MGoU zeec)v_+*`qtB*&k4Q8|6X2E||^uD!d-$EJw0Q^$zZp%-G%v5>vD1n?Ts&@CIW_)LW zic9)D-?n(+Ck}20>l5qych3T~rakUWioIv0Q8anD!EQKQ{BgLSVl>jcd+%JyA7Lvv zw%{XWy}9o5v3cmfRW929DmN2h3_~udX>NS8jc2Xm-~aL-KpmXEAJq2VVfIlGsQOd3 z)mW_Z=DZIy-OXXDK}eU5DZV-HyB%&y1LSGki~e9;uqBU1mmd2=?E8X&4B83QZN@HH zQ_)^Ie>)cFse?6hEpsx zMv&R!3y*ijiw$n}e}y895t@6%D}67Mhu{)-VJ}G>cYyprrjnj?&*hUz;IJo>V({cw zV$_(A@%OshZ&QEIdbf9+wS|U+qnQr^?h6Y5{tKFy zId}7Tu8XwR>#E!!=mfPlF(TN3h4vV37XbmD@YK!w4I4+tY&DjhXF|QxtJk8xaT~66 z7-ey?RRc7t<(u0lMTB(su_=EfH9k$tv2_Coj0_p9mS8O*+NebR3_UdX=O!Dq¥* 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

      sP(!%eG0|(pF|{x^3;z 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

      Tya)UCxvkh0qNSkAM#% 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

      uks>W_tJXOm|Yqm!l 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 kR0;;>GPh`A7fs zgO5J=?yvu=KlzP+`|z;QZ%bB44LwDQcCprMG%&&~!Xw5267zQZ?B%+q?f#u66{YAp z#>3_ECJ52Y=(jIF*e`$m{{7|Q{$3DGP`9_I7cX=v?t4G>5erZ(dT;yDj&XFA1=uKJ zK%%Bxyk8uH!oEMW{rz@%3dNF7fpF{Yoe85|V)R_V1O~(Qa7YmO7C4SZb>s|!Du`Gu zc3$I8c0hrE0OB)ceBy?|0_@>eI8~BUjPQU+5sF+rpw)bXo6Lh|ZbM_o#8Agf6K-Uv zayo)Y!JJe0mEk}8T5xU#8l|W(e7?5kfqrbFE2X6ToNVTZ7?7*R5CTM<#~$Z6!{$zw zK*)@4@fyCHxd-H`Z=9XK$Jmv1c8)lfHrZFI)kvNI*<2jGXkBk5&1Gar-2a>(cGIy5k;*ZX;3UC)lM~RT^DJ z)tXRzNq0$l!Xi>ansiM9U2Y>Wtc-4EPbx<&6$;7%9tH}xU=43sOR2Z#n-rMgq(b52 zy_xZ(&A^~1?i|BG)kp~nQb@SFGVbhnveAV`fLbCh;Xc1XW{pazB}HjZ_uJD0HLI2} zwqrbi2>^Aa5V8BHc5K#~q>41L+P4^^9}rzdkC`wNp<$0p>Owx_`5yLz}DS}e#akN0SaY;*UkDpr7 zWi7pT4_S2VM^ADpXHTUH%GjH2TZkmdLPQ)~_BhCLTb5Mxc`0dck9{1MOY_0JU`eN( zDFXKvXw5BEAOeoG3N-qd!Vw0L(y99;>~OfIwbUfYy}Q}e{XiwcrvJfW zro3qJi7lgrsEBwRbngL=;1Kr=zycgQ6NqkZk~Uo=eCr#A?WwGyENQWL3NgjOtk%}( zMk0bqEtS=Re#CGtSbe&w#Q{!SHv2I0H}aiOaVIJMvVQ+xQN}H zQC-WeICvEH5gy8!vb)XKezmz%s1e>dyDtxrezhG_bUF*S*#pF9^ZO|v4n(-jnIa-& zwo2Z?u+b?Lt>E$5MHLXZ?J|-IBZrOVULc_Sy_hw^A2r=ZqzHuD{2{967>~U_1sG0h zM1(Ml!hI6EOAKBU1=PcLa|RD8JV4FfJCPWbG0Y*>J(}hO!26@5vq%mfs;XISgb1N? zY6zwk9?l2MupSdTOm%8?iv&aq=AEDnhX&2N9Zk_b|K*?k$N&BR<163%`s2e7U;pH< zw#V1DC6&t%i$Fg%2G?8zv0vWVF))yemX-PR^3~@){OE&kdDP$fjsN%W|Hi+)JT&)p zXm?cSp+d)ICgC9&L3->!1pw3;tEs#ivf)sjB%tO7cTpj9jzC*?<)#uL7*Tte8gH(kX zy^MH2j_2*+-FE-J9nFq7ja2H10%`$wiR``$DiDgjq{z=t>q&J<=@j*Ky?=i{2F;ey znjL845LAd74%Y)ZeH@J@s=}qZg^eQ|NlRKn@)8U;2Hv|vShLU#6uOYuq?d?DSjWA6 z{|~-b^gsN{KRrJG`JV|$i?-=gu4~~kd&z>O06PvANlW^c{EYtE|4o^{_xr!|`2PJ! ziDXETMcVMz_88f12kE1GKqF4KFP^`8CBxh0Qg3RmUoYp=(|-T>Zqwza9hal|@%BeQ z{^1Ybz4_7Bp2$kuZC%T=b6##C$=g19jDFd+eb}ZFk+aGWR<{ifxFbRG%A7pnIQB7? zc}EPtjJ_X7^TWb-cQU4~tdOA8KFrL_kNuD^q>|0_n5A(*Xw(y=xf4^it{@`}5rfFo z0&%yw4XlWr4j5F6QsD>|aJSeaf^tn(iQw=pu+6U`2}pBdwx)tgSCIuM5jzmV0B8e& z5S=F`+;=yMP<0K4_dSAU8+wQ|N(FaKg`|z0*qKUTH_KoZ^eJm{Z()!q6wWh>LiZ5C z)M}H{_**rJ`y~Rxh@iza9)9kdW4i1R9vBm*#1NGE)?N2`K6i7o#lh8i54cANlfwOE zevzyGpP>DHpzdd9Y`x~n1Mn@d$3zil42qa%{f&@~*5~{8=JN85= zr{_H%qmwB>b%$At2-Q-w)FrFzi`*>o;^^DJHu9YijvBseTC<$RbJ$@)LyN1oW2U^! zv5w^IHU#dO#ie>UoESSevppqExkhXhNoCDdNvH;e1Mii0%t{4=MbBWp><`D*$KlG9 z6UuVZ?A>Dc-kafqWql9dB6TG1TOX0L2uGo<$1#rP;ZH&ly=W3bL~0Tw2_=(iC#>%T zvLVfEuK#X8q(}jT(?64v5C!{;3fEUCT=HO+1Uy~NMHhg9%u9FHc zDnLLMvyDhDHpVfwPN@JgN?vjzdmO{=8D%MjJtkqw=_6ejL4qtfR}Tp9LvFpJZJ!L0 za(bx}CEt)2cq4X|GSbeZwwrm7CaFldwWU4#=;zj@{`fEdi(Q`bdIIB!!($UBn#W=6 zQp?Sn+gkC(uYT_9Klh6te)##UBYbyPxgLtuoyT!`|Mo{7c=^E>%=XLX&t81)bo=?Y zZ{Gf=|M2U7{5${o@j-*P%`nD;=37ZCBs>DPgVPkdfPMPfa8-(KxN;V!WFP(+{d%hN zJtoFshg4CRwXut^F)xv>Kjd0HoBQbDL2`ytg*ODqIwJsP)cpLbBXHHcPOlhMJSYTL ziJ&iN1EygQVT23BTwnoF3c?W{O#_T2W~|t}I;0{H*k;-#uLPauKHcY&DLK`sC5Z5C zZn_YF5xHC~dLV3<*`Qv7f?Q;Y7&aPY5iL`ZGCj#4DIQTHrk(H#(?EoeM;nc-;2w<0 za*cpNLArHC@#8^rPFf5({K4#i6za@c!pwUnNEA+LTZCB)!d+k{Qs9s7h+srV5ZN`a z@C`?UOc)>FAdIjwl=*ZjOS-wcy?gP&M<0EwuIYDw?_YoS*Z=*epT6D4 z803(%Im}hCfe7846+p-y6EzsnY3K;ZjFJW-BrIm+%@wLP8W}2tuGh9uLCIy+GRTMr3t#NDuXnv+CNq&C1@!RK5>n9KQZ|}Fq zrg1l*Huljk_7qGiHH4I02Z#H8bQ>3OKOz=N(|VJOx_fJ_ZAaT4$)XyPJcQI30rHe` zM1-Iu+3w$c`p4h>?)LEZm;TW||N6JSeRsZF(%Ip5-6YMSH!`5`g+os3x4-_iyYv6_ z;pblc;cxxxH$VPyfA@ZMO>5XL?(=^jfM8Yar{^Dj_@$pYpPwJ^-)ccQKL=pulB@Lx zxSel4uy+6MlkdO#=?~lG60%-Z=w;DOjK?j|BLcRiROi#6jEEW*aecAjZV0G!3a@rs zhsTW73xbjg*x(@qy+lmsn_k5`(^Mm6=D({@5lN~CgIge!RVW}Miu)E*oZ}PBP!K`x zB*N*q1Q`y;8gaP_j@*P-obOCyOsT45cXivZR%`=Yko>xURlqrcp%HL{%QiPBe$1>Z zRj!i?APJ@1$x`$X&$k{;S;Ao!GCv1g#$m>jYtv<^Yq1D(n3dzWm;?P1;Uoe_0D-v@ zDInk;RALI83b`3rQiLqsWO#F{RG3Frf~&`dh_N*r12|NcQ<|vPGqB52b1lN`$Dy9H z3{9b0$cdJkVW!tMGN&>Jb`iS-GONd>?-yU|a=u|ev!(oeS=0F$+NHPMeQctP$Z;j$ zP|L|dYGP_`7$z3Gg@qrIl5+L&6kgqC&i5L&$EMwUjCa(#vL?c#J<7QZ!bThW7(hyu zA(|?|aqNhFk{1P3RtAVF`e6FS!83BlhY88F(p!YqTdFe2vcRTh}>$2n+ zIG%RvC3FzGTa055VXCrV6@f@$GD#Y-j~*e(S%G^;OLe6MqaORi{`hcoCy>&!BuFae zhsRD?fn8Jyw2N(z*0)Y4Pn^xIyB@9fkUzcs?N06Iq+yZ7^w)gTE9RV15^kE zgE0)cA>81lE>yUO=mG>Rh>*0-d?E8R#x8^;QPpG6W?o8~d|YUwZNU3*Y;r-+uS$$GN`bJm}mwAfU3OfCP%jx~^aR(igt|?Qehd z`4?+l;^+V@c5oGR0R8Z%$F~sN-n`VbT=uu??aQ0n&yPd?{EvU*&wl^A4-eZQbv>)j zvT4?$)8$qG!0FNc+x#9^LWsvEx=wuCL_?5GvLhH;1aJvQm6+nugNz`<2+g7lL<~wC zWTr+0QX5v`+w}rdcb&OiwAhUyN|i+j z42A&&b-e=oCW}8}F79W=@3xB+B%e%4SRtwEk&0MMlp3|FoWmaHXdiIu9RlGG;Sk&c z&Br4UGJ()iDD^r{q=zs@GdE#!G}R)Qjs?UOJya3lj*t>^vA$2HmH?bdb71&=0MJZv zrWFw}Kr*6`1Xa^*U?UJ{U=2`G!W8vpgdPB{Nzb+e70cXl>}E{)na2?zbwz|5Vo}Ey zR-L=`o&i5TQQ~xW`}JS=2jBVCU((cm^!*>a|M>6r`@LP-*vrwjpvl4|3$^leW?i5) zDMdmgaxQl_uWr`c|MI=x{7?VxU;g;xk1zL!p}5L$SR5iAyoN{s5!OO58`RnCio)YF zQXwJ`5gi_y7Ye}~+-H_iIKoYJrTWaK0E3D^;nX9?)aJ}%s(C~hL|0B0yMkC^N{wMh zw{gVf^5cDbx;*^!;oU#}`Cs|g^JgEGeA?P&Kkj>6km}9d=azE5e|UZW?yZge*lIoX z)9IWt1P^IBhpY88DTe~2%#==xQ&rdGJp7nTJ}0EVOJ(3-#S;foi)_J9A{H-Gj&{pP>$RLc20Y_lF7<=F3aT(*a&kN^66Z-4S5?@y(?*oTwI zg#mU8Jz9&WZs|CD3@9La0!#$}%)*DcB_G=X_83EXdWKY<%W(|boiZF|fk2j3i9ViS zPvA)tp$d0Ooz$LmTFk?bE<)8qf|`mlc{J~jpiY}EQK(L&usxhKfw+XiL8&nXH3YDc z5b-%VAXms`dTDJkd7`|P1D4*pxwqTucj6?$<0<$Su3zv*P5RIIVDm0N&;Stg1+cNL&x$m9uHHu9|O=tssilC?xnBf3%g*Ql0 zD-@8OY}d+eIo+}@-#G=bRX0>``!90p3NkO=qauo544#6CLU-HttmP24L% zN`qu@ql)O?pYuUdpo8liO3FMPs5+aIIu6~PgxgZa}wo*R7I&-bq0XPigJ^LBI^1SY|NEXaWnu%CXpByiN2nT_k|Xk!hE%{_ufm6l&c+=iOjsh zMo1-(03<}a>YYlpf$;X3>3)p}XDwxoh_HPe5D^iZ4_;X6f3cKjOR0kgq*4y%NM)_ONy{iDmt}eR;`!IV{R?0G;y2cO6XP<2vSuL- z(#*HZ``-7ut|`~Y?Gt9+J-d~}zx>lb{lnk-&#!;_ZZjM)0*eI=8@PgSKf)fCoF;#X%P|=_!zK5L?C&Yq2=%uu}$F&giv>L(nPArBwa?hTpOLKArTW5 zkBXQ><+zG>XYoDd9H}CNbFKqKToZVxaDSR2lduh_5>IZ^@j&;->$OHs1M8%TQZ*7| zdTJdM1P14<$wv4-lS$&LXm8g+ovsoLZv@;PDT#oOnaL6)r#Wz5h`}J|uR~}G8z6}S z1ob8&+#ksThaZia3BsE+qo<>@}XKfQbR$$okJ^z^Qj za=v?hzInEuouDTra!tvMf0lNpuhEh!JDR^EZ}LU2e{Q^jp9A z?uS35t*ViVhYzZ*H#g5e`taF@pOc(N-`J`DB+8CuD5982oJ5d2hE@?4%H{UJPBLwr1nQ!RsAz;m^ zs-{2~24jbd+uoZy_wX$6T!l#illcj7pO7En9=sVx57CHb!_W~4IXKoha`VQHfmL#_+RqvmU16njKno<|Kurlv1K|#oHC*u)@ zaU5`JJ~0UdWGo3e=ZNsJA!Y`5jPC9z(m3OgJ;w1Ex`KsT%sDQ5?*~Q_5MrWTP&K)5 zoq0-msY|*|is5_Mo>*0Ij7B1*JY9$$D9c)Fm4U!}fJ>I8(7jPf1(i!Vi{NMv?vzqJ zVBHXE-s9L2cBO|Q+i12oCsMlc)g<<;<#KsUAe0yuR4OYLjN^c%lxog5XmA?=3*W~< zkt3yZ$yAzomms`)bJz}6k><7|6A(M#W@NyE5;;X{dj=#nA0$Pj0NAn@4+h^o*^n>{%T8W`)QN2?Qj>oXwg(@LgLww); zaeM5&Gm!E*FNtb!#@G#zkd$H)56qwFu6ip3BlqzL>@iCCR?2xNVMVFqhN(ffR4pvIQdKgLMWeLnJZ;%lRAM=jd!zx)a5iT*B3z#!Na{#+=MFe~Y$}|Wg zf|L3ZAPd+C1Xs}9=>bKdwdsZARFKECFEiBzSg!J(X^G1VHDHZi0?j?>%~6334#*9- z2li`L6`d%7@Hu1?P#A2IQ&@^g9rrAH=n%ws`&crX)h6Z2DzC9y6K@7McJf3!Wh$Gc(Z zW~<-S(<#+6^=$1aT-_dmEv!+n)Vs1G6)dNm)(!x%RN%lcL^CO-IjWr(mL8@_tp=F!^UPIG=WXsG*pU74_%Xb2tN7rZ$JL2JU;&DgD-#e zXMg$0BJV9xkDAUo9RpW5y8sJ3%Ms`E*T3@hQffJW@F&0h|NZ!Tf7iFCN^$F2mwLWC zKYNw(+V{uNh1 zC6rLWEkGOI4|ikly9FeL>Z;{*dhta)-}G3VE9Kd+cfCoHRkRKZYaLK7G&5m^SpaE6gxrxiw@Oj|~P<~tcO9RNJ3dPH*smDKv#6n{!q=pLB+2Hz-^vcqYk ziA>o(u9W1U2t;algOlmAUFb|DbBX|hiFLkea6tEP#~jjK@5D*woj(mE3#mbO-*KHB z1<-^iCYZ0`n_**A5h7MZBV}r@0UB)tr=W>EO&t+IL6NyDFu)sg0b#xo76N#^PNU{V zIOb}kT$diP&v!b=)CZNa9H2X+fpjU&9>bGet#S? z;+%3xs7p#q5#c(3Fd{U}3{N7=i}-XNx;rjpm?1#Xaw^Y-?^;`f!)>wSJ*?Yq&{N0} z0o4U|%?{4#8IlcW03qjCI(!FVW4ELBei?o0c0i>jDCky`Fv+d+5J4>q($KX^xk1Vz zH8Bkgn+dCl5Qy9WG5Qm zW^I2ATNuaHxX(yZMZ>KLkaQJ2A9xtX!^7AyhQHkVZnJ3K_O>DFnt5 zF`79=QeGmTpF#J2?1(6(iq^1Z-Xv8Z%2Gtx`^DX6bOqc*3RJ>&8!kjnH(;@5Oe>T@ z+Av`nLAMB}IC7GdpXbqSYy!IN6Ko*bW%{n{eSoAetrq*7jo7eld*7RY&|H$JrbM|h zUc&zy3K$YJdf$km8cfiDAP<9iTjZRyJ2j>|vmOelntR1~Vt_$| zQeDLTpj)FAL{llsYO#x)lqcnTPpblZm%|^%u^@Iy2T>%_jIAY0$Pum1^ZnTO7?IM8 z#7eoqgFLBjI)sw-fBciy`|0-iacoE5-2-~)f}G`4 zPp2ZMrJPUs%U}NRTi^c9hc7?BsQJ(^0iYt3K%i~DU*0VByx!bhE1MT%|MI8* z`FDTo-~8Dheed17?Le58!>*}WKGfsToT*^IJ+5GAI~XBy)yZ6AN5<}5f`>4Zgf#|y zDr#6oO#JM}?$|X~4BFTu=0!D``6L3WjwggfG>Re4S4IBSeG8z3On)T640c}Cu0oq1 zQx(l%3q}NDG$Lf7&CRePLVQ3#(TYGEF=J$|c4L{r!+RL#tq}-B!>HhnK+F&tDa4`b zi0}?tNG8gSTaPi-M*s`h%rIU1Af`$_d=9PVsB(&Q8H}(;(y9BE)D{)d0m1=N^Vx}T zbAJ$7#5;nFMBZK9$I^q0YboIfg%+0FZG8$=*M>wA*+#jk$t7yj|De&NgC-XA`B{gdy%`}mWm z*Zbp})^;hk`s(Z7c=^Q-9$$Z)+v$9hOSyqEmq=M9p3bM+S1&&wz<>OA|MEBgmw)xi zU;p&*Q)HXyKVo4Nk0Y+4ZGl3i24IM*7JxAwkP#uWYN{T4f|8X|-Jt}o7Vt}WXgc$= z114g}XDO?*x)0ytx>Bjc?hcpFhW@DTSKml*YLGBYAVo>@%?A9z#v>kI|JCcCy!+wb zeE&QD@H=1m_AlJsJwKP1T3R~YoG$zA!_$k;eYD^Ar^io^_C6dw)EouKdXrMP4cJ}8 zdwBSu@LrcwDQA%(=?j{?toi=+pjhk5NVLEvor_JGR3F9=Vj1ysoEZ z$s^_H&)nZ1y?bal!sz{w$dZK8QudsdlJ113(KoYA@-xZLw_|y~U&;bWpL;xf5lJ$$ ztFASn0BbTz{+W-ysQ*lEpFRIi|NdWo{9pdu_pPkw^YdrtXD?G(5gs04G1?;&BFL+! z6Z@v`USA$Rea8r_L@usC9yGBY=6P)J6EI|pDfJj4Mf%$+=G$?1HjH@8u4 zjc|mf=P9Le?0xS?e^eAw01XRIg6vR8TE&AgB!LJYpir~qB9iME`|t~dOU?AP_lx%q z(5;1u=A4!Ri6D~{l@iv3GoKAtZVxL6b58NTT%X?EVKc*2q*CULrPAF8rV|O6$tSqR z8cL;*JZC*enEC8L!p9Dhsl;?nX_?Kfhrz%IO=PO>d-$BG&qYDZbHg!@!3eZqnYnur z(5W;uG9ZcxfS;^V%1TB|7v4-ymvDy!KI;TlNgf{V7m$GsF<<-|1Y!@rzS!%oBWPj9 zt8yoTLH`Ulw>wG6(GMS86fs(G>V;a^ifBLyG(;g?1b~>s9mF;}0`qN}%4`Zg_wcr> zl)A=JO43SEj|V#_&Xm?#t0Wo6Q)}%oI)mEH*^hfgh(1rtLJvA}&ML*dsW@`&wuL2N zh-Sc*6g{~eF%G*b!-5(~d0JCWwORDuXeyBybRNMqZ0~(&#!`ad=*>Hvh|~cjg{Df) z?%*WIfg()lnahq;EZAckM+hH;i^^#l&G)DMvij?QgKgiCm88SdP=Eo`|`N&m9A_IBKL9q-QpytG2u$-!N>%dnG2Xi&%pFi3!V<&6H6kcQ z5`+TTWi4}|=b-mXI5j2HgsW^ZAVLR$*7vsUeFvrM@-k`CnXDv12HnDTHy&|hX+Y6b zMUzM~n_SiR3@kzdHZt5Ghb|`%*l3Vb_(2KDb#lCX5YgNM+|0JJE3B8Ixc$srBl!dXiby+ZI7;MbLcnAW;H<8c<;y zSwRO<_@mhYcO(HCJR+0=rt6Y<0x~ELS*G+~;_*6;@#)_U)n}98?#>8C%!F8YAk-oc=bec&h1rr1#(`mPRlq*+i>OySJ?G}WD?_e-7fEbUT0XqVu+dh1U zKy^h#L<@r>%r}7~t&{@WA(OkeN3<(sKDqGD$CG;qD@d@|H8h~P5ekvp7*Ek3DU68F zLaszW9Bd#38etQL<3~4tB%R2P{@;*+K6ecWe{dtP!>ZW;LsE!jkp>h*M*w6hAK2JD z4%KJo&BmjvfxKSEqxpCgyL{nGU-_kf^51{y8{hHc^6sY}zy0{9?|%Gxzqh^}n#+e@ z`TEN*zB25ZQdy*y8;ZNPaX`|zdG_H4AAU)4{;hxaFaG`i@-II9=_dzPm*Ih62}hto zNR5CQvYT*PqGF1{$_$G!--U3{17RBg#2gJyd{umg5viht6c3WyR7?j+5ne6NI|-eo z8d}8F5HeefIhvvntU)-Y@v%n4AVgNUhbNELdfSgr_U-=dPk-{afBm;#{`Sv)>1#iK zzPYOlv({5NT~2b`#_1uw`w5=z-yi!=w@W!~ADnNtyqtugX-J#}#q3_3=sP)bTFxiR zt5;>YS#Rzi?%%b&v`5*W-k5pB-gZLV?FdNdk#MJa%&)spH4uTEq8GNoJ^+uT5u@2S zA}y)hl?B4Oq|+khAo~D__ix&t{m~z8JU;)WZ#wSlno>H?+BR`|x@H^Tl)*K9;iI3? zvNGW>UcLPEum3I)&tBZ6<)&TUh1IkOz@vrR+oQozOw!}KcMq>WZpUkjhj7XmHJ4Og zvZl-9o5#!hzV$0$l2v44a^V)oxVWA|t4r%+8hIH+DtF7>tEhJ^A_hE4TEBeaCkX80 zN7lu9P(m1x24=x3u`27bMD%8Um_ZOpN6J+*0%2nx-Xb8VBA{U6W@nxP;s7*hA*m9g zow7zCVlzayJ=`e~I)lIfKMURM$;Oq1135+PVF9i()3hSUB0|iqluvQX3Kn++91=E~ z8$>@t3n1vcDxjp!;s)3zi(jNNpt6PpW;Kt`Ci(%3;D884ODKXhI06hmC?eb;B&7VeBoCAb z8~p+cQN>K5i3YBqMYM?kX4D9{38hjTA%TW#z&9QA>5Iim0t|~X`tESZF_v7b3o9TI ziBS??BpHUMK#AvOizMV+17QXc5J;Ms)x3DWmtcg6tdv9zkr^_-s5fO5P3{&b z5*By{-H-9;{Yiy&sStK{7xakH8{FM%N+B%K!wtld>upMi(PpiY5?If1Tzqd~O?1`l zkks2muvRTpf%$n*(BZ?6?XjI6(sJu=+xD<;_YqKSS+lSrRVn9S9ixZG7^(NCt4Gdh zeRtbas;V&CfkFY~$(gQaLF^(FxlN)=Ii-5jF0cE3F>7(vrxkGbSU`fiTXBo<0kaqg z-$M&i7k9B@cA=!aBratfvA3sV+^beqft83B)<+|3i(pzJq#gU%4;zQs@aQo{6V#kF z<(g7OT<2T|4j&RhbE3D=t+zd;6$(j0Jt>g$RXwYT<&?|{9^QHvDe!Jj@89*~SWkDz zXzj@lPb{8tU}rjupe#vL!)|qnC9_mXOSQnhy=z-nDr-(D5J-7VJ`v!)df)pIh+TP? zB<8Zr%~egZP}F^Hry_{qVBbJ2w=cc_|Csu-Cd-oRN)udbZ`E_oy=LZ94445D1PCxQ zNhUMdDN<4*{npZdxgJ`&s#7{saww9;F-Z_0LCg{1;e!qL461vte$ea47T^hiaCh@- zc8==aYkl7q?cy`cZM{56+dO|npA9o1B||FZG*DdTkjN>e1)+Xe@*)EZT_LTOa%lI>GBEy=cC9o~FxspER>Hb2?DZBLyxANmH-$4Gfpd)4qqoiqFOl_@I<1 zcVMSE2VEhfwFY(gxW}0?nUBTiI+xZDY_KR{c4$~}v8M;W2>R^Z& zHex1X914weABpf;QUr$%kmfWuZUeSFmFnh4+cJ=Gp`ET|8c8jc0FIT=Tx2jqQ0qzvf0dT=eEaUr+kgD)|N4`^ z{q_Ark8-;em(dKR-d>-QLAN^_cybq5q$6`NPpAO9aaJOGvr@d?GPfKP^{^4+91JgT zh0R{>d{(v|`v&z=jkbUS?nJP{I0?J7eJIHZ*ICyA=?-&st$i>DwHikHC0g#=- z1{?oBKy*(g<1mosW)5(XwsDM;cG^5R2^q)^ax*&t^T^G^7UKp_$)pW7DNQ0{2bLVs z(ozASHwqXLWv(=NT86HjJR|H$=>z*kR^>Ixi`=f;>1&h0SU5fcdIcfvN>_K<*({YN zbl9A+*}x*@F-mvC&qO>ks<$9_^44KWkj^qo4Z)#l$Xu-~?zg=^!B+E0eH+IMfrEvW zd9=29>CGhuPLIe)W_0U);a_ z?CIgljRMQ^$+y1qt?&ICL$>WWou--QR)vj%1M__M(WhU3`SM#o{`$lbyRvCJ~VQMploRfK0yZ*c0`mH^4uUK zNJVtvLZ6-cG@tM4$>znU)5F_es2|X&ckGv^{b?V==2A}N5qzST;NivFk-4>q#!R2uVurTtO-S=m05oEj z7%78|oBwzuklR>Q3?v+FNiel3W@!hlAA80!pYF^TgM>YFG0Oc^Y|p$b9K=fx&SUDosP@Y(KcMox1(j_3((#h=gf8C?3&XdPl^XTe!^KE|1%GOy|=A zLp%2U=x!(a=3LCBK%h&TG9w1x`#dUg$Wt_ctMueX6Ec{Ic5Em!yrw{&O1UZJ6!ti- zZC*jsRCqeQto1h9lO+uqp>2H~ZJSTabiVCJ&s+s49LnJ|D27^TCYwE+#kHJ1vWm;& zm&dkg3|Vuhit%LjQ0BW^Q*Ub>ujN!jCIYlA8+yOc;nP_Of$n`QsQ2v)_{j|Pd$VW3 zM2e+)IcLtoDMPKBc>q${;2S_F3(GQRG7n@|ZwD))AH+tVGmp$hR`+LC*Pge1e~Lg^ z7N3^rE6Z|vHcfMhwzmD^1~c~bjLk87KT=USQzX;NWW}RLcDaG`?B(Ph(w@1{HwcL& z<$eo)8dJdD4|H*wy_}%;Ax9o+b4Y2onJG|5bUo1Arlr)G*rgdAg9&2*=n*Y*4ZwJ+ z6-I%l(Rp$&BZJsu>&KCuETF=;^w>c71 zo#kLedty9dzJpbzXRMhcbF#o(Y|=60G)Y_$)Z@J)Mjqy;#GYwmv`SwLg00aH#VWjj zZR&f*8060|u-uN(SLWk*xd^}@)mUnXU=kP-1JcR@kIXekyMU57^8H>HSZ248*JB?y z1t=A1MpY*;BX?YJM#^Mrhrry-X}-{Q3D5~wBL60g(k)UhZ6JX?WTsI|*o+(vzEJ@I zb`WF;nQ3G-YY5nQEu{NU_DJeYGH5{uxxhE&f?PjPQy;(+xo1AYDz6I_8E@&#-T+vs z^dt~S+gQUi6M`?-Ogog(Ah6VVI)PIP zD6_D~u_2wDOSuIA?oO(2XqVgPx4-*`-~Z}&ztf`MfByR27suPr9v{A3+on>N7oUFh z8^8B^wdVHz^SMs*bmIVXC0Wa9xhpR}{@SZo-}%kw|NLM7)BpSDKmJ+t8(M~XzVyV;ZxxSz8*UQ6k#8X`|U++)vTNBBt-po_asfHqTisr?_9quzbiXEr(ZOX*e zOkVD)V=l66G^Z>(pl#%WbR6rxeX(BF&%gZq?|%i`ZeO1N{r~;{`3L{@-%J&qOhW+- z6LC0D(7oVmFJH}0vj3DnIv($5nLk?sXh129JcJ3-_Wu6eZ(cvWyKn1;90tLK6exjt zT=vJOeUUvCdzX5VS^T<0>K=m2dtMqH$=M;{{tq-A3!v+p{(I@9)^GJ2_D^<+di0hRL1 ztJ`!jPjf4^7^c>qw85H2(TNl|r&jHUyXv%*F(9*DAg~PhSEi4X6M6LkgK)nts+4mq@v6{4kh;>Y>;zok#?in*Evsu`#40sAyq!nYO zMn=C#a$Atlb$C2_%F4KI?RtT~UeuwL;`p1qHXHe#vg}H19 z;V8u?@0@Q~o8UI(;%7e)J3<+K1FbHzIr@%_Z4c}1&8;<-JMk#xrt4`WYBDx7r^&Pw z?9Q2{&#^gq)&GaG$(98w;NS%*)*SQ4pdru?^E& zw)?haS&Ex?Y|$y`ICiC~PVS5GG}rTK@{o@-+FS~m&WQrBd7Y<;bt;f&!XVbAZ)+T_ zCqlH+VJ1>qi%;|(SwNK;gfKF4*ridt2UhmK< z0t8xX5e2+;-<>aF4|Qa2y;tR)9Z@)1zo{oQKTRn0F8V`nYb4Bjoo;Yk2qG)P)VJtq z^^_8$8P5cw_rB7~J}u?y=22uSlaZsZ4+cABwm3^BM3iZn%3@w{vv|GDkb++30QRRf z^1^yD!fW%ol(N+Mw5{(TWQmsRzCG=GTYHvL&x?Ue&oz_9tFVKe)=T7t;~tF7{H%;Y zC{tXlo~qsU-ZNGKz#?tOQA%lEAJPs$=Czz|(C2J`U{+~U??-RpeRnsn8U4B!14KvP zBKw}U8lAbDpKVBYVrMb-u{$#nsf|XK){oY=9+{y-q}k%W8E1;oHd;-Co4h<@!MZ)Q z?TvbwYW2y@PteiZuH2|fn}~DbLeT0gPzlqd^vuX?#Ns3^gIi`7T$mw2yKx>5F0W?3 zs1F*>ENs_OU@C$kvO)rRa)S1uZU7D&`jF~H7Ys{jX-jG)-5v17XIQ6ei`F7Gfh_dN zv)6%Y2?-8mj8bfm_buRM^0K3x42poPTPb5`Dp1pbd`LBQe^J9ziv#$rx+CG|E zb#iysiPLv2AP{Izd=^Y_00?_NH8WkYfVfU_0yLwm(-u9Ma2eE;zHv|Z|Qe%kUM z{_cPL&0qcG_4{|-PDy6S{KjS`l)Ytto#Djn2C-*fWeY3*XAcq&v^!maiz%Y#dnJhh zUttiWc(uZW z2-HLheL=1UvMjSK~sedpg2!z{0LeZfHDU)6%aFHHTJ~Dq4&2L~Q z5|QsCcC*E&8GX&XC!d*MQufu2-}?O@{N5k_@pP(hzx?d!-P6;%{rwkT9BZwD}W!MN#q+ROy>mPmmm4}DV{_}tQ-~RHy{iipdzY8tRN~#hYxWE&> zMC{57eQ`3cF@1Eb1CZGB={gRiAUJ0$BV)Z^gI)n;3yhL=!Y}^8`$7Iz@IYL!efRbY?5 zJ&{wLtId9uyB0<7jRupB?a*;hg4trq_5J(zufN#)_UfyjeCPLnd3pG~T42jy}&F9@ST8F7-T@dO415d%tg&w&`>_vGDCNJ-xp?-ET*1A&Ro;1oG%Q z9^OUE0Bj0)ND)F>PYg{J)HQ+?nY%#RJTK2~U;XawN54~-7jVipE6Bir_VxsT`FwkG zd!C+ubA9`Z{q191zUU!#7W=@D6_{c)<-|$kl7W6)vXAB_LDA+?gU+#8Ds_N ^57 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 LDqQiz$t#VSar7%{LEkapjwR9iy#nS?ks~ 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�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≻nN8?JdRGuo@$u>RRvW35_7l7+&XaSKvu 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%0A(nb5;1yX#8=Ft6>tB#t{ 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

    xk+;8+g_{X)b3NyHaO^~TsoUk& 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

  • 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 literal 0 HcmV?d00001 diff --git a/tests/test_apis/test_single_gpu.py b/tests/test_apis/test_single_gpu.py new file mode 100644 index 0000000000..b741896e59 --- /dev/null +++ b/tests/test_apis/test_single_gpu.py @@ -0,0 +1,72 @@ +import shutil +from unittest.mock import MagicMock + +import numpy as np +import pytest +import torch +import torch.nn as nn +from torch.utils.data import DataLoader, Dataset, dataloader + +from mmseg.apis import single_gpu_test + + +class ExampleDataset(Dataset): + + def __getitem__(self, idx): + results = dict(img=torch.tensor([1]), img_metas=dict()) + return results + + def __len__(self): + return 1 + + +class ExampleModel(nn.Module): + + def __init__(self): + super(ExampleModel, self).__init__() + self.test_cfg = None + self.conv = nn.Conv2d(3, 3, 3) + + def forward(self, img, img_metas, return_loss=False, **kwargs): + return img + + +def test_single_gpu(): + test_dataset = ExampleDataset() + data_loader = DataLoader( + test_dataset, + batch_size=1, + sampler=None, + num_workers=0, + shuffle=False, + ) + model = ExampleModel() + + # Test efficient test compatibility (will be deprecated) + results = single_gpu_test(model, data_loader, efficient_test=True) + assert len(results) == 1 + pred = np.load(results[0]) + assert isinstance(pred, np.ndarray) + assert pred.shape == (1, ) + assert pred[0] == 1 + + shutil.rmtree('.efficient_test') + + # Test pre_eval + test_dataset.pre_eval = MagicMock(return_value=['success']) + results = single_gpu_test(model, data_loader, pre_eval=True) + assert results == ['success'] + + # Test format_only + test_dataset.format_results = MagicMock(return_value=['success']) + results = single_gpu_test(model, data_loader, format_only=True) + assert results == ['success'] + + # efficient_test, pre_eval and format_only are mutually exclusive + with pytest.raises(AssertionError): + single_gpu_test( + model, + dataloader, + efficient_test=True, + format_only=True, + pre_eval=True) diff --git a/tests/test_data/test_dataset.py b/tests/test_data/test_dataset.py index 7ef59f27de..ebc173669d 100644 --- a/tests/test_data/test_dataset.py +++ b/tests/test_data/test_dataset.py @@ -1,9 +1,12 @@ # Copyright (c) OpenMMLab. All rights reserved. import os.path as osp +import shutil +from typing import Generator from unittest.mock import MagicMock, patch import numpy as np import pytest +from PIL import Image from mmseg.core.evaluation import get_classes, get_palette from mmseg.datasets import (DATASETS, ADE20KDataset, CityscapesDataset, @@ -152,10 +155,16 @@ def test_custom_dataset(): assert isinstance(test_data, dict) # get gt seg map - gt_seg_maps = train_dataset.get_gt_seg_maps() + gt_seg_maps = train_dataset.get_gt_seg_maps(efficient_test=True) + assert isinstance(gt_seg_maps, Generator) + gt_seg_maps = list(gt_seg_maps) assert len(gt_seg_maps) == 5 - # evaluation + # format_results not implemented + with pytest.raises(NotImplementedError): + test_dataset.format_results([], '') + + # test past evaluation pseudo_results = [] for gt_seg_map in gt_seg_maps: h, w = gt_seg_map.shape @@ -180,7 +189,7 @@ def test_custom_dataset(): assert 'mAcc' in eval_results assert 'aAcc' in eval_results - # evaluation with CLASSES + # test past evaluation with CLASSES train_dataset.CLASSES = tuple(['a'] * 7) eval_results = train_dataset.evaluate(pseudo_results, metric='mIoU') assert isinstance(eval_results, dict) @@ -212,6 +221,95 @@ def test_custom_dataset(): assert 'mPrecision' in eval_results assert 'mRecall' in eval_results + # test evaluation with pre-eval and the dataset.CLASSES is necessary + train_dataset.CLASSES = tuple(['a'] * 7) + pseudo_results = [] + for idx in range(len(train_dataset)): + h, w = gt_seg_maps[idx].shape + pseudo_result = np.random.randint(low=0, high=7, size=(h, w)) + pseudo_results.extend(train_dataset.pre_eval(pseudo_result, idx)) + eval_results = train_dataset.evaluate(pseudo_results, metric=['mIoU']) + assert isinstance(eval_results, dict) + assert 'mIoU' in eval_results + assert 'mAcc' in eval_results + assert 'aAcc' in eval_results + + eval_results = train_dataset.evaluate(pseudo_results, metric='mDice') + assert isinstance(eval_results, dict) + assert 'mDice' in eval_results + assert 'mAcc' in eval_results + assert 'aAcc' in eval_results + + eval_results = train_dataset.evaluate(pseudo_results, metric='mFscore') + assert isinstance(eval_results, dict) + assert 'mRecall' in eval_results + assert 'mPrecision' in eval_results + assert 'mFscore' in eval_results + assert 'aAcc' in eval_results + + eval_results = train_dataset.evaluate( + pseudo_results, metric=['mIoU', 'mDice', 'mFscore']) + assert isinstance(eval_results, dict) + assert 'mIoU' in eval_results + assert 'mDice' in eval_results + assert 'mAcc' in eval_results + assert 'aAcc' in eval_results + assert 'mFscore' in eval_results + assert 'mPrecision' in eval_results + assert 'mRecall' in eval_results + + +def test_ade(): + test_dataset = ADE20KDataset( + pipeline=[], + img_dir=osp.join(osp.dirname(__file__), '../data/pseudo_dataset/imgs')) + assert len(test_dataset) == 5 + + # Test format_results + pseudo_results = [] + for _ in range(len(test_dataset)): + h, w = (2, 2) + pseudo_results.append(np.random.randint(low=0, high=7, size=(h, w))) + + file_paths = test_dataset.format_results(pseudo_results, '.format_ade') + assert len(file_paths) == len(test_dataset) + temp = np.array(Image.open(file_paths[0])) + assert np.allclose(temp, pseudo_results[0] + 1) + + shutil.rmtree('.format_ade') + + +def test_cityscapes(): + test_dataset = CityscapesDataset( + pipeline=[], + img_dir=osp.join( + osp.dirname(__file__), + '../data/pseudo_cityscapes_dataset/leftImg8bit'), + ann_dir=osp.join( + osp.dirname(__file__), '../data/pseudo_cityscapes_dataset/gtFine')) + assert len(test_dataset) == 1 + + gt_seg_maps = list(test_dataset.get_gt_seg_maps()) + + # Test format_results + pseudo_results = [] + for idx in range(len(test_dataset)): + h, w = gt_seg_maps[idx].shape + pseudo_results.append(np.random.randint(low=0, high=19, size=(h, w))) + + file_paths = test_dataset.format_results(pseudo_results, '.format_city') + assert len(file_paths) == len(test_dataset) + temp = np.array(Image.open(file_paths[0])) + assert np.allclose(temp, + test_dataset._convert_to_label_id(pseudo_results[0])) + + # Test cityscapes evaluate + + test_dataset.evaluate( + pseudo_results, metric='cityscapes', imgfile_prefix='.format_city') + + shutil.rmtree('.format_city') + @patch('mmseg.datasets.CustomDataset.load_annotations', MagicMock) @patch('mmseg.datasets.CustomDataset.__getitem__', diff --git a/tests/test_eval_hook.py b/tests/test_eval_hook.py index 54d2a43539..5267438c32 100644 --- a/tests/test_eval_hook.py +++ b/tests/test_eval_hook.py @@ -53,6 +53,7 @@ def test_iter_eval_hook(): EvalHook(data_loader) test_dataset = ExampleDataset() + test_dataset.pre_eval = MagicMock(return_value=[torch.tensor([1])]) test_dataset.evaluate = MagicMock(return_value=dict(test='success')) loader = DataLoader(test_dataset, batch_size=1) model = ExampleModel() @@ -64,7 +65,7 @@ def test_iter_eval_hook(): # test EvalHook with tempfile.TemporaryDirectory() as tmpdir: - eval_hook = EvalHook(data_loader, by_epoch=False) + eval_hook = EvalHook(data_loader, by_epoch=False, efficient_test=True) runner = mmcv.runner.IterBasedRunner( model=model, optimizer=optimizer, @@ -90,6 +91,7 @@ def test_epoch_eval_hook(): EvalHook(data_loader, by_epoch=True) test_dataset = ExampleDataset() + test_dataset.pre_eval = MagicMock(return_value=[torch.tensor([1])]) test_dataset.evaluate = MagicMock(return_value=dict(test='success')) loader = DataLoader(test_dataset, batch_size=1) model = ExampleModel() @@ -117,8 +119,9 @@ def multi_gpu_test(model, data_loader, tmpdir=None, gpu_collect=False, - efficient_test=False): - results = single_gpu_test(model, data_loader) + pre_eval=False): + # Pre eval is set by default when training. + results = single_gpu_test(model, data_loader, pre_eval=True) return results @@ -137,6 +140,7 @@ def test_dist_eval_hook(): DistEvalHook(data_loader) test_dataset = ExampleDataset() + test_dataset.pre_eval = MagicMock(return_value=[torch.tensor([1])]) test_dataset.evaluate = MagicMock(return_value=dict(test='success')) loader = DataLoader(test_dataset, batch_size=1) model = ExampleModel() @@ -148,7 +152,8 @@ def test_dist_eval_hook(): # test DistEvalHook with tempfile.TemporaryDirectory() as tmpdir: - eval_hook = DistEvalHook(data_loader, by_epoch=False) + eval_hook = DistEvalHook( + data_loader, by_epoch=False, efficient_test=True) runner = mmcv.runner.IterBasedRunner( model=model, optimizer=optimizer, @@ -175,6 +180,7 @@ def test_dist_eval_hook_epoch(): DistEvalHook(data_loader) test_dataset = ExampleDataset() + test_dataset.pre_eval = MagicMock(return_value=[torch.tensor([1])]) test_dataset.evaluate = MagicMock(return_value=dict(test='success')) loader = DataLoader(test_dataset, batch_size=1) model = ExampleModel() diff --git a/tools/deploy_test.py b/tools/deploy_test.py index 6e709b8c90..593532c0b8 100644 --- a/tools/deploy_test.py +++ b/tools/deploy_test.py @@ -2,6 +2,7 @@ import argparse import os import os.path as osp +import shutil import warnings from typing import Any, Iterable @@ -234,24 +235,61 @@ def main(): model.CLASSES = dataset.CLASSES model.PALETTE = dataset.PALETTE - efficient_test = False - if args.eval_options is not None: - efficient_test = args.eval_options.get('efficient_test', False) + # clean gpu memory when starting a new evaluation. + torch.cuda.empty_cache() + eval_kwargs = {} if args.eval_options is None else args.eval_options + + # Deprecated + efficient_test = eval_kwargs.get('efficient_test', False) + if efficient_test: + warnings.warn( + '``efficient_test=True`` does not have effect in tools/test.py, ' + 'the evaluation and format results are CPU memory efficient by ' + 'default') + + eval_on_format_results = ( + args.eval is not None and 'cityscapes' in args.eval) + if eval_on_format_results: + assert len(args.eval) == 1, 'eval on format results is not ' \ + 'applicable for metrics other than ' \ + 'cityscapes' + if args.format_only or eval_on_format_results: + if 'imgfile_prefix' in eval_kwargs: + tmpdir = eval_kwargs['imgfile_prefix'] + else: + tmpdir = '.format_cityscapes' + eval_kwargs.setdefault('imgfile_prefix', tmpdir) + mmcv.mkdir_or_exist(tmpdir) + else: + tmpdir = None model = MMDataParallel(model, device_ids=[0]) - outputs = single_gpu_test(model, data_loader, args.show, args.show_dir, - efficient_test, args.opacity) + results = single_gpu_test( + model, + data_loader, + args.show, + args.show_dir, + False, + args.opacity, + pre_eval=args.eval is not None and not eval_on_format_results, + format_only=args.format_only or eval_on_format_results, + format_args=eval_kwargs) rank, _ = get_dist_info() if rank == 0: if args.out: + warnings.warn( + 'The behavior of ``args.out`` has been changed since MMSeg ' + 'v0.16, the pickled outputs could be seg map as type of ' + 'np.array, pre-eval results or file paths for ' + '``dataset.format_results()``.') print(f'\nwriting results to {args.out}') - mmcv.dump(outputs, args.out) - kwargs = {} if args.eval_options is None else args.eval_options - if args.format_only: - dataset.format_results(outputs, **kwargs) + mmcv.dump(results, args.out) if args.eval: - dataset.evaluate(outputs, args.eval, **kwargs) + dataset.evaluate(results, args.eval, **eval_kwargs) + if tmpdir is not None and eval_on_format_results: + # remove tmp dir when cityscapes evaluation + shutil.rmtree(tmpdir) if __name__ == '__main__': diff --git a/tools/test.py b/tools/test.py index 87bd3659d6..7420a44ad3 100644 --- a/tools/test.py +++ b/tools/test.py @@ -1,6 +1,8 @@ # Copyright (c) OpenMMLab. All rights reserved. import argparse import os +import shutil +import warnings import mmcv import torch @@ -134,32 +136,76 @@ def main(): print('"PALETTE" not found in meta, use dataset.PALETTE instead') model.PALETTE = dataset.PALETTE - efficient_test = False - if args.eval_options is not None: - efficient_test = args.eval_options.get('efficient_test', False) + # clean gpu memory when starting a new evaluation. + torch.cuda.empty_cache() + eval_kwargs = {} if args.eval_options is None else args.eval_options + + # Deprecated + efficient_test = eval_kwargs.get('efficient_test', False) + if efficient_test: + warnings.warn( + '``efficient_test=True`` does not have effect in tools/test.py, ' + 'the evaluation and format results are CPU memory efficient by ' + 'default') + + eval_on_format_results = ( + args.eval is not None and 'cityscapes' in args.eval) + if eval_on_format_results: + assert len(args.eval) == 1, 'eval on format results is not ' \ + 'applicable for metrics other than ' \ + 'cityscapes' + if args.format_only or eval_on_format_results: + if 'imgfile_prefix' in eval_kwargs: + tmpdir = eval_kwargs['imgfile_prefix'] + else: + tmpdir = '.format_cityscapes' + eval_kwargs.setdefault('imgfile_prefix', tmpdir) + mmcv.mkdir_or_exist(tmpdir) + else: + tmpdir = None if not distributed: model = MMDataParallel(model, device_ids=[0]) - outputs = single_gpu_test(model, data_loader, args.show, args.show_dir, - efficient_test, args.opacity) + results = single_gpu_test( + model, + data_loader, + args.show, + args.show_dir, + False, + args.opacity, + pre_eval=args.eval is not None and not eval_on_format_results, + format_only=args.format_only or eval_on_format_results, + format_args=eval_kwargs) else: model = MMDistributedDataParallel( model.cuda(), device_ids=[torch.cuda.current_device()], broadcast_buffers=False) - outputs = multi_gpu_test(model, data_loader, args.tmpdir, - args.gpu_collect, efficient_test) + results = multi_gpu_test( + model, + data_loader, + args.tmpdir, + args.gpu_collect, + False, + pre_eval=args.eval is not None and not eval_on_format_results, + format_only=args.format_only or eval_on_format_results, + format_args=eval_kwargs) rank, _ = get_dist_info() if rank == 0: if args.out: + warnings.warn( + 'The behavior of ``args.out`` has been changed since MMSeg ' + 'v0.16, the pickled outputs could be seg map as type of ' + 'np.array, pre-eval results or file paths for ' + '``dataset.format_results()``.') print(f'\nwriting results to {args.out}') - mmcv.dump(outputs, args.out) - kwargs = {} if args.eval_options is None else args.eval_options - if args.format_only: - dataset.format_results(outputs, **kwargs) + mmcv.dump(results, args.out) if args.eval: - dataset.evaluate(outputs, args.eval, **kwargs) + dataset.evaluate(results, args.eval, **eval_kwargs) + if tmpdir is not None and eval_on_format_results: + # remove tmp dir when cityscapes evaluation + shutil.rmtree(tmpdir) if __name__ == '__main__': From 119bbd838deba739ba488a59a7d724a3e1c56154 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=98=95=E8=BE=B0?= Date: Thu, 26 Aug 2021 06:00:41 +0800 Subject: [PATCH 218/706] [Enhancement] Delete convert function and add instruction to ViT/Swin README.md (#791) * delete convert function and add instruction to README.md * unified model convert and README * remove url * fix import error * fix unittest * rename pretrain * rename vit and deit pretrain * Update upernet_deit-b16_512x512_160k_ade20k.py * Update upernet_deit-b16_512x512_80k_ade20k.py * Update upernet_deit-b16_ln_mln_512x512_160k_ade20k.py * Update upernet_deit-b16_mln_512x512_160k_ade20k.py * Update upernet_deit-s16_512x512_160k_ade20k.py * Update upernet_deit-s16_512x512_80k_ade20k.py * Update upernet_deit-s16_ln_mln_512x512_160k_ade20k.py * Update upernet_deit-s16_mln_512x512_160k_ade20k.py Co-authored-by: Jiarui XU Co-authored-by: Junjun2016 --- configs/_base_/models/setr_mla.py | 3 +- configs/_base_/models/setr_naive.py | 3 +- configs/_base_/models/setr_pup.py | 3 +- .../_base_/models/upernet_vit-b16_ln_mln.py | 2 +- configs/segformer/README.md | 22 +++-- .../setr/setr_mla_512x512_160k_b8_ade20k.py | 1 + .../setr_naive_512x512_160k_b16_ade20k.py | 1 + .../setr/setr_pup_512x512_160k_b16_ade20k.py | 1 + configs/swin/README.md | 18 ++++ ...512x512_160k_ade20k_pretrain_384x384_1K.py | 3 +- ...12x512_160k_ade20k_pretrain_384x384_22K.py | 5 +- ...512x512_160k_ade20k_pretrain_224x224_1K.py | 7 +- ...12x512_160k_ade20k_pretrain_224x224_22K.py | 5 +- ...512x512_160k_ade20k_pretrain_224x224_1K.py | 16 +--- ...512x512_160k_ade20k_pretrain_224x224_1K.py | 3 +- configs/vit/README.md | 18 ++++ .../upernet_deit-b16_512x512_160k_ade20k.py | 4 +- .../upernet_deit-b16_512x512_80k_ade20k.py | 4 +- ...net_deit-b16_ln_mln_512x512_160k_ade20k.py | 4 +- ...pernet_deit-b16_mln_512x512_160k_ade20k.py | 5 +- .../upernet_deit-s16_512x512_160k_ade20k.py | 4 +- .../upernet_deit-s16_512x512_80k_ade20k.py | 4 +- ...net_deit-s16_ln_mln_512x512_160k_ade20k.py | 9 +- ...pernet_deit-s16_mln_512x512_160k_ade20k.py | 4 +- ...rnet_vit-b16_ln_mln_512x512_160k_ade20k.py | 1 + ...upernet_vit-b16_mln_512x512_160k_ade20k.py | 4 +- .../upernet_vit-b16_mln_512x512_80k_ade20k.py | 4 +- mmseg/models/backbones/swin.py | 12 +-- mmseg/models/backbones/vit.py | 16 +--- mmseg/models/utils/__init__.py | 6 +- mmseg/models/utils/ckpt_convert.py | 91 ------------------- tests/test_models/test_backbones/test_swin.py | 4 - .../{mit_convert.py => mit2mmseg.py} | 37 ++++---- tools/model_converters/swin2mmseg.py | 12 ++- tools/model_converters/vit2mmseg.py | 12 ++- 35 files changed, 131 insertions(+), 217 deletions(-) delete mode 100644 mmseg/models/utils/ckpt_convert.py rename tools/model_converters/{mit_convert.py => mit2mmseg.py} (73%) diff --git a/configs/_base_/models/setr_mla.py b/configs/_base_/models/setr_mla.py index facd255f97..af4ba2492a 100644 --- a/configs/_base_/models/setr_mla.py +++ b/configs/_base_/models/setr_mla.py @@ -3,8 +3,7 @@ norm_cfg = dict(type='SyncBN', requires_grad=True) model = dict( type='EncoderDecoder', - pretrained=\ - 'https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-vitjx/jx_vit_large_p16_384-b3be5167.pth', # noqa + pretrained='pretrain/jx_vit_large_p16_384-b3be5167.pth', backbone=dict( type='VisionTransformer', img_size=(768, 768), diff --git a/configs/_base_/models/setr_naive.py b/configs/_base_/models/setr_naive.py index 64d1395b5d..0c330ea2d1 100644 --- a/configs/_base_/models/setr_naive.py +++ b/configs/_base_/models/setr_naive.py @@ -3,8 +3,7 @@ norm_cfg = dict(type='SyncBN', requires_grad=True) model = dict( type='EncoderDecoder', - pretrained=\ - 'https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-vitjx/jx_vit_large_p16_384-b3be5167.pth', # noqa + pretrained='pretrain/jx_vit_large_p16_384-b3be5167.pth', backbone=dict( type='VisionTransformer', img_size=(768, 768), diff --git a/configs/_base_/models/setr_pup.py b/configs/_base_/models/setr_pup.py index f87e88b8ae..8e5f23b9c9 100644 --- a/configs/_base_/models/setr_pup.py +++ b/configs/_base_/models/setr_pup.py @@ -3,8 +3,7 @@ norm_cfg = dict(type='SyncBN', requires_grad=True) model = dict( type='EncoderDecoder', - pretrained=\ - 'https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-vitjx/jx_vit_large_p16_384-b3be5167.pth', # noqa + pretrained='pretrain/jx_vit_large_p16_384-b3be5167.pth', backbone=dict( type='VisionTransformer', img_size=(768, 768), diff --git a/configs/_base_/models/upernet_vit-b16_ln_mln.py b/configs/_base_/models/upernet_vit-b16_ln_mln.py index 1a5a569729..cd6587dfe0 100644 --- a/configs/_base_/models/upernet_vit-b16_ln_mln.py +++ b/configs/_base_/models/upernet_vit-b16_ln_mln.py @@ -2,7 +2,7 @@ norm_cfg = dict(type='SyncBN', requires_grad=True) model = dict( type='EncoderDecoder', - pretrained='https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-vitjx/jx_vit_base_p16_224-80ecf9dd.pth', # noqa + pretrained='pretrain/jx_vit_base_p16_224-80ecf9dd.pth', backbone=dict( type='VisionTransformer', img_size=(512, 512), diff --git a/configs/segformer/README.md b/configs/segformer/README.md index 7a9a5ef742..d325589c60 100644 --- a/configs/segformer/README.md +++ b/configs/segformer/README.md @@ -13,6 +13,18 @@ } ``` +## Usage + +To use other repositories' pre-trained models, it is necessary to convert keys. + +We provide a script [`mit2mmseg.py`](../../tools/model_converters/mit2mmseg.py) in the tools directory to convert the key of models from [the official repo](https://github.com/NVlabs/SegFormer) to MMSegmentation style. + +```shell +python tools/model_converters/swin2mmseg.py ${PRETRAIN_PATH} ${STORE_PATH} +``` + +This script convert model from `PRETRAIN_PATH` and store the converted model in `STORE_PATH`. + ## Results and models ### ADE20k @@ -61,13 +73,3 @@ test_pipeline = [ ]) ] ``` - -## How to use segformer official pretrain weights - -We convert the backbone weights from the official repo (https://github.com/NVlabs/SegFormer) with `tools/model_converters/mit_convert.py`. - -You may follow below steps to start segformer training preparation: - -1. Download segformer pretrain weights (Suggest put in `pretrain/`); -2. Run convert script to convert official pretrain weights: `python tools/model_converters/mit_convert.py pretrain/mit_b0.pth pretrain/mit_b0.pth`; -3. Modify `pretrained` of segformer model config, for example, `pretrained` of `segformer_mit-b0_512x512_160k_ade20k.py` is set to `pretrain/mit_b0.pth`; diff --git a/configs/setr/setr_mla_512x512_160k_b8_ade20k.py b/configs/setr/setr_mla_512x512_160k_b8_ade20k.py index b47cc60afd..2958a6df6f 100644 --- a/configs/setr/setr_mla_512x512_160k_b8_ade20k.py +++ b/configs/setr/setr_mla_512x512_160k_b8_ade20k.py @@ -4,6 +4,7 @@ ] norm_cfg = dict(type='SyncBN', requires_grad=True) model = dict( + pretrained='pretrain/vit_large_patch16_384.pth', backbone=dict(img_size=(512, 512), drop_rate=0.), decode_head=dict(num_classes=150), auxiliary_head=[ diff --git a/configs/setr/setr_naive_512x512_160k_b16_ade20k.py b/configs/setr/setr_naive_512x512_160k_b16_ade20k.py index f01b1b876a..2abf9df77d 100644 --- a/configs/setr/setr_naive_512x512_160k_b16_ade20k.py +++ b/configs/setr/setr_naive_512x512_160k_b16_ade20k.py @@ -4,6 +4,7 @@ ] norm_cfg = dict(type='SyncBN', requires_grad=True) model = dict( + pretrained='pretrain/vit_large_patch16_384.pth', backbone=dict(img_size=(512, 512), drop_rate=0.), decode_head=dict(num_classes=150), auxiliary_head=[ diff --git a/configs/setr/setr_pup_512x512_160k_b16_ade20k.py b/configs/setr/setr_pup_512x512_160k_b16_ade20k.py index 31c24de657..da38283644 100644 --- a/configs/setr/setr_pup_512x512_160k_b16_ade20k.py +++ b/configs/setr/setr_pup_512x512_160k_b16_ade20k.py @@ -4,6 +4,7 @@ ] norm_cfg = dict(type='SyncBN', requires_grad=True) model = dict( + pretrained='pretrain/vit_large_patch16_384.pth', backbone=dict(img_size=(512, 512), drop_rate=0.), decode_head=dict(num_classes=150), auxiliary_head=[ diff --git a/configs/swin/README.md b/configs/swin/README.md index 2e50049a76..72f77f5239 100644 --- a/configs/swin/README.md +++ b/configs/swin/README.md @@ -13,6 +13,24 @@ } ``` +## Usage + +To use other repositories' pre-trained models, it is necessary to convert keys. + +We provide a script [`swin2mmseg.py`](../../tools/model_converters/swin2mmseg.py) in the tools directory to convert the key of models from [the official repo](https://github.com/SwinTransformer/Swin-Transformer-Semantic-Segmentation) to MMSegmentation style. + +```shell +python tools/model_converters/swin2mmseg.py ${PRETRAIN_PATH} ${STORE_PATH} +``` + +E.g. + +```shell +python tools/model_converters/swin2mmseg.py https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_base_patch4_window7_224.pth pretrain/swin_base_patch4_window7_224.pth +``` + +This script convert model from `PRETRAIN_PATH` and store the converted model in `STORE_PATH`. + ## Results and models ### ADE20K diff --git a/configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K.py b/configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K.py index d89f57cab0..a4c2920c2c 100644 --- a/configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K.py +++ b/configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K.py @@ -3,8 +3,7 @@ 'pretrain_224x224_1K.py' ] model = dict( - pretrained=\ - 'https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_base_patch4_window12_384.pth', # noqa + pretrained='pretrain/swin_base_patch4_window12_384.pth', backbone=dict( pretrain_img_size=384, embed_dims=128, diff --git a/configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K.py b/configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K.py index 38fed26486..ecb58936be 100644 --- a/configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K.py +++ b/configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K.py @@ -2,7 +2,4 @@ './upernet_swin_base_patch4_window12_512x512_160k_ade20k_' 'pretrain_384x384_1K.py' ] -model = dict( - pretrained=\ - 'https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_base_patch4_window12_384_22k.pth', # noqa -) +model = dict(pretrained='pretrain/swin_base_patch4_window12_384_22k.pth') diff --git a/configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py b/configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py index c34594a460..dde63d29f9 100644 --- a/configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py +++ b/configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py @@ -3,11 +3,8 @@ 'pretrain_224x224_1K.py' ] model = dict( - pretrained=\ - 'https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_base_patch4_window7_224.pth', # noqa + pretrained='pretrain/swin_base_patch4_window7_224.pth', backbone=dict( - embed_dims=128, - depths=[2, 2, 18, 2], - num_heads=[4, 8, 16, 32]), + embed_dims=128, depths=[2, 2, 18, 2], num_heads=[4, 8, 16, 32]), decode_head=dict(in_channels=[128, 256, 512, 1024], num_classes=150), auxiliary_head=dict(in_channels=512, num_classes=150)) diff --git a/configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K.py b/configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K.py index 5bb51d8788..ea3e210591 100644 --- a/configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K.py +++ b/configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K.py @@ -2,7 +2,4 @@ './upernet_swin_base_patch4_window7_512x512_160k_ade20k_' 'pretrain_224x224_1K.py' ] -model = dict( - pretrained=\ - 'https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_base_patch4_window7_224_22k.pth', # noqa -) +model = dict(pretrained='pretrain/swin_base_patch4_window7_224_22k.pth') diff --git a/configs/swin/upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py b/configs/swin/upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py index 469b957c25..919e0c41a0 100644 --- a/configs/swin/upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py +++ b/configs/swin/upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py @@ -3,15 +3,7 @@ 'pretrain_224x224_1K.py' ] model = dict( - pretrained=\ - 'https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_small_patch4_window7_224.pth', # noqa - backbone=dict( - depths=[2, 2, 18, 2]), - decode_head=dict( - in_channels=[96, 192, 384, 768], - num_classes=150 - ), - auxiliary_head=dict( - in_channels=384, - num_classes=150 - )) + pretrained='pretrain/swin_small_patch4_window7_224.pth', + backbone=dict(depths=[2, 2, 18, 2]), + decode_head=dict(in_channels=[96, 192, 384, 768], num_classes=150), + auxiliary_head=dict(in_channels=384, num_classes=150)) diff --git a/configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py b/configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py index 7be1cf5821..8dd8404501 100644 --- a/configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py +++ b/configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py @@ -3,8 +3,7 @@ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' ] model = dict( - pretrained=\ - 'https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_tiny_patch4_window7_224.pth', # noqa + pretrained='pretrain/swin_tiny_patch4_window7_224.pth', backbone=dict( embed_dims=96, depths=[2, 2, 6, 2], diff --git a/configs/vit/README.md b/configs/vit/README.md index f0b0e16887..0751ae3415 100644 --- a/configs/vit/README.md +++ b/configs/vit/README.md @@ -13,6 +13,24 @@ } ``` +## Usage + +To use other repositories' pre-trained models, it is necessary to convert keys. + +We provide a script [`vit2mmseg.py`](../../tools/model_converters/vit2mmseg.py) in the tools directory to convert the key of models from [timm](https://github.com/rwightman/pytorch-image-models/blob/master/timm/models/vision_transformer.py) to MMSegmentation style. + +```shell +python tools/model_converters/vit2mmseg.py ${PRETRAIN_PATH} ${STORE_PATH} +``` + +E.g. + +```shell +python tools/model_converters/vit2mmseg.py https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-vitjx/jx_vit_base_p16_224-80ecf9dd.pth pretrain/jx_vit_base_p16_224-80ecf9dd.pth +``` + +This script convert model from `PRETRAIN_PATH` and store the converted model in `STORE_PATH`. + ## Results and models ### ADE20K diff --git a/configs/vit/upernet_deit-b16_512x512_160k_ade20k.py b/configs/vit/upernet_deit-b16_512x512_160k_ade20k.py index 6f17d7a646..68f4bd42ba 100644 --- a/configs/vit/upernet_deit-b16_512x512_160k_ade20k.py +++ b/configs/vit/upernet_deit-b16_512x512_160k_ade20k.py @@ -1,6 +1,6 @@ _base_ = './upernet_vit-b16_mln_512x512_160k_ade20k.py' model = dict( - pretrained='https://dl.fbaipublicfiles.com/deit/deit_base_patch16_224-b5f2ef4d.pth', # noqa + pretrained='pretrain/deit_base_patch16_224-b5f2ef4d.pth', backbone=dict(drop_path_rate=0.1), - neck=None) # yapf: disable + neck=None) diff --git a/configs/vit/upernet_deit-b16_512x512_80k_ade20k.py b/configs/vit/upernet_deit-b16_512x512_80k_ade20k.py index 7bff28a10d..720482616d 100644 --- a/configs/vit/upernet_deit-b16_512x512_80k_ade20k.py +++ b/configs/vit/upernet_deit-b16_512x512_80k_ade20k.py @@ -1,6 +1,6 @@ _base_ = './upernet_vit-b16_mln_512x512_80k_ade20k.py' model = dict( - pretrained='https://dl.fbaipublicfiles.com/deit/deit_base_patch16_224-b5f2ef4d.pth', # noqa + pretrained='pretrain/deit_base_patch16_224-b5f2ef4d.pth', backbone=dict(drop_path_rate=0.1), - neck=None) # yapf: disable + neck=None) diff --git a/configs/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k.py b/configs/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k.py index f5b2411df1..32909ffa13 100644 --- a/configs/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k.py +++ b/configs/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k.py @@ -1,5 +1,5 @@ _base_ = './upernet_vit-b16_mln_512x512_160k_ade20k.py' model = dict( - pretrained='https://dl.fbaipublicfiles.com/deit/deit_base_patch16_224-b5f2ef4d.pth', # noqa - backbone=dict(drop_path_rate=0.1, final_norm=True)) # yapf: disable + pretrained='pretrain/deit_base_patch16_224-b5f2ef4d.pth', + backbone=dict(drop_path_rate=0.1, final_norm=True)) diff --git a/configs/vit/upernet_deit-b16_mln_512x512_160k_ade20k.py b/configs/vit/upernet_deit-b16_mln_512x512_160k_ade20k.py index 68efd48937..4abefe8dc1 100644 --- a/configs/vit/upernet_deit-b16_mln_512x512_160k_ade20k.py +++ b/configs/vit/upernet_deit-b16_mln_512x512_160k_ade20k.py @@ -1,5 +1,6 @@ _base_ = './upernet_vit-b16_mln_512x512_160k_ade20k.py' model = dict( - pretrained='https://dl.fbaipublicfiles.com/deit/deit_base_patch16_224-b5f2ef4d.pth', # noqa - backbone=dict(drop_path_rate=0.1),) # yapf: disable + pretrained='pretrain/deit_base_patch16_224-b5f2ef4d.pth', + backbone=dict(drop_path_rate=0.1), +) diff --git a/configs/vit/upernet_deit-s16_512x512_160k_ade20k.py b/configs/vit/upernet_deit-s16_512x512_160k_ade20k.py index cae6f466c5..290ff19ed3 100644 --- a/configs/vit/upernet_deit-s16_512x512_160k_ade20k.py +++ b/configs/vit/upernet_deit-s16_512x512_160k_ade20k.py @@ -1,8 +1,8 @@ _base_ = './upernet_vit-b16_mln_512x512_160k_ade20k.py' model = dict( - pretrained='https://dl.fbaipublicfiles.com/deit/deit_small_patch16_224-cd65a155.pth', # noqa + pretrained='pretrain/deit_small_patch16_224-cd65a155.pth', backbone=dict(num_heads=6, embed_dims=384, drop_path_rate=0.1), decode_head=dict(num_classes=150, in_channels=[384, 384, 384, 384]), neck=None, - auxiliary_head=dict(num_classes=150, in_channels=384)) # yapf: disable + auxiliary_head=dict(num_classes=150, in_channels=384)) diff --git a/configs/vit/upernet_deit-s16_512x512_80k_ade20k.py b/configs/vit/upernet_deit-s16_512x512_80k_ade20k.py index b176abb792..605d264a74 100644 --- a/configs/vit/upernet_deit-s16_512x512_80k_ade20k.py +++ b/configs/vit/upernet_deit-s16_512x512_80k_ade20k.py @@ -1,8 +1,8 @@ _base_ = './upernet_vit-b16_mln_512x512_80k_ade20k.py' model = dict( - pretrained='https://dl.fbaipublicfiles.com/deit/deit_small_patch16_224-cd65a155.pth', # noqa + pretrained='pretrain/deit_small_patch16_224-cd65a155.pth', backbone=dict(num_heads=6, embed_dims=384, drop_path_rate=0.1), decode_head=dict(num_classes=150, in_channels=[384, 384, 384, 384]), neck=None, - auxiliary_head=dict(num_classes=150, in_channels=384)) # yapf: disable + auxiliary_head=dict(num_classes=150, in_channels=384)) diff --git a/configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py b/configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py index f328ca860a..ef743a20e0 100644 --- a/configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py +++ b/configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py @@ -1,12 +1,9 @@ _base_ = './upernet_vit-b16_mln_512x512_160k_ade20k.py' model = dict( - pretrained='https://dl.fbaipublicfiles.com/deit/deit_small_patch16_224-cd65a155.pth', # noqa + pretrained='pretrain/deit_small_patch16_224-cd65a155.pth', backbone=dict( - num_heads=6, - embed_dims=384, - drop_path_rate=0.1, - final_norm=True), + num_heads=6, embed_dims=384, drop_path_rate=0.1, final_norm=True), decode_head=dict(num_classes=150, in_channels=[384, 384, 384, 384]), neck=dict(in_channels=[384, 384, 384, 384], out_channels=384), - auxiliary_head=dict(num_classes=150, in_channels=384)) # yapf: disable + auxiliary_head=dict(num_classes=150, in_channels=384)) diff --git a/configs/vit/upernet_deit-s16_mln_512x512_160k_ade20k.py b/configs/vit/upernet_deit-s16_mln_512x512_160k_ade20k.py index a1e1c2a4e2..069cab74f6 100644 --- a/configs/vit/upernet_deit-s16_mln_512x512_160k_ade20k.py +++ b/configs/vit/upernet_deit-s16_mln_512x512_160k_ade20k.py @@ -1,8 +1,8 @@ _base_ = './upernet_vit-b16_mln_512x512_160k_ade20k.py' model = dict( - pretrained='https://dl.fbaipublicfiles.com/deit/deit_small_patch16_224-cd65a155.pth', # noqa + pretrained='pretrain/deit_small_patch16_224-cd65a155.pth', backbone=dict(num_heads=6, embed_dims=384, drop_path_rate=0.1), decode_head=dict(num_classes=150, in_channels=[384, 384, 384, 384]), neck=dict(in_channels=[384, 384, 384, 384], out_channels=384), - auxiliary_head=dict(num_classes=150, in_channels=384)) # yapf: disable + auxiliary_head=dict(num_classes=150, in_channels=384)) diff --git a/configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py b/configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py index f6f85378b0..51eeda012a 100644 --- a/configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py +++ b/configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py @@ -5,6 +5,7 @@ ] model = dict( + pretrained='pretrain/vit_base_patch16_224.pth', backbone=dict(drop_path_rate=0.1, final_norm=True), decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) diff --git a/configs/vit/upernet_vit-b16_mln_512x512_160k_ade20k.py b/configs/vit/upernet_vit-b16_mln_512x512_160k_ade20k.py index cc286f1fb2..5b148d7258 100644 --- a/configs/vit/upernet_vit-b16_mln_512x512_160k_ade20k.py +++ b/configs/vit/upernet_vit-b16_mln_512x512_160k_ade20k.py @@ -5,7 +5,9 @@ ] model = dict( - decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) + pretrained='pretrain/vit_base_patch16_224.pth', + decode_head=dict(num_classes=150), + auxiliary_head=dict(num_classes=150)) # AdamW optimizer, no weight decay for position embedding & layer norm # in backbone diff --git a/configs/vit/upernet_vit-b16_mln_512x512_80k_ade20k.py b/configs/vit/upernet_vit-b16_mln_512x512_80k_ade20k.py index d80b0d9fd8..f893500d3e 100644 --- a/configs/vit/upernet_vit-b16_mln_512x512_80k_ade20k.py +++ b/configs/vit/upernet_vit-b16_mln_512x512_80k_ade20k.py @@ -5,7 +5,9 @@ ] model = dict( - decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) + pretrained='pretrain/vit_base_patch16_224.pth', + decode_head=dict(num_classes=150), + auxiliary_head=dict(num_classes=150)) # AdamW optimizer, no weight decay for position embedding & layer norm # in backbone diff --git a/mmseg/models/backbones/swin.py b/mmseg/models/backbones/swin.py index c75bf5fc8f..e3e835a032 100644 --- a/mmseg/models/backbones/swin.py +++ b/mmseg/models/backbones/swin.py @@ -17,7 +17,7 @@ from mmseg.ops import resize from ...utils import get_root_logger from ..builder import ATTENTION, BACKBONES -from ..utils import PatchEmbed, swin_convert +from ..utils import PatchEmbed class PatchMerging(BaseModule): @@ -564,8 +564,6 @@ class SwinTransformer(BaseModule): Default: dict(type='LN'). norm_cfg (dict): Config dict for normalization layer at output of backone. Defaults: dict(type='LN'). - pretrain_style (str): Choose to use official or mmcls pretrain weights. - Default: official. pretrained (str, optional): model pretrained path. Default: None. init_cfg (dict, optional): The Config for initialization. Defaults to None. @@ -591,7 +589,6 @@ def __init__(self, use_abs_pos_embed=False, act_cfg=dict(type='GELU'), norm_cfg=dict(type='LN'), - pretrain_style='official', pretrained=None, init_cfg=None): super(SwinTransformer, self).__init__() @@ -605,9 +602,6 @@ def __init__(self, f'The size of image should have length 1 or 2, ' \ f'but got {len(pretrain_img_size)}' - assert pretrain_style in ['official', 'mmcls'], 'We only support load ' - 'official ckpt and mmcls ckpt.' - if isinstance(pretrained, str) or pretrained is None: warnings.warn('DeprecationWarning: pretrained is a deprecated, ' 'please use "init_cfg" instead') @@ -617,7 +611,6 @@ def __init__(self, num_layers = len(depths) self.out_indices = out_indices self.use_abs_pos_embed = use_abs_pos_embed - self.pretrain_style = pretrain_style self.pretrained = pretrained self.init_cfg = init_cfg @@ -713,9 +706,6 @@ def init_weights(self): else: state_dict = ckpt - if self.pretrain_style == 'official': - state_dict = swin_convert(state_dict) - # strip prefix of state_dict if list(state_dict.keys())[0].startswith('module.'): state_dict = {k[7:]: v for k, v in state_dict.items()} diff --git a/mmseg/models/backbones/vit.py b/mmseg/models/backbones/vit.py index 5bee596fec..003fa537e6 100644 --- a/mmseg/models/backbones/vit.py +++ b/mmseg/models/backbones/vit.py @@ -14,7 +14,7 @@ from mmseg.ops import resize from mmseg.utils import get_root_logger from ..builder import BACKBONES -from ..utils import PatchEmbed, vit_convert +from ..utils import PatchEmbed class TransformerEncoderLayer(BaseModule): @@ -140,8 +140,6 @@ class VisionTransformer(BaseModule): and its variants only. Default: False. with_cp (bool): Use checkpoint or not. Using checkpoint will save some memory while slowing down the training speed. Default: False. - pretrain_style (str): Choose to use timm or mmcls pretrain weights. - Default: timm. pretrained (str, optional): model pretrained path. Default: None. init_cfg (dict or list[dict], optional): Initialization config dict. Default: None. @@ -170,7 +168,6 @@ def __init__(self, num_fcs=2, norm_eval=False, with_cp=False, - pretrain_style='timm', pretrained=None, init_cfg=None): super(VisionTransformer, self).__init__() @@ -184,8 +181,6 @@ def __init__(self, f'The size of image should have length 1 or 2, ' \ f'but got {len(img_size)}' - assert pretrain_style in ['timm', 'mmcls'] - if output_cls_token: assert with_cls_token is True, f'with_cls_token must be True if' \ f'set output_cls_token to True, but got {with_cls_token}' @@ -201,7 +196,6 @@ def __init__(self, self.interpolate_mode = interpolate_mode self.norm_eval = norm_eval self.with_cp = with_cp - self.pretrain_style = pretrain_style self.pretrained = pretrained self.init_cfg = init_cfg @@ -272,17 +266,9 @@ def init_weights(self): self.pretrained, logger=logger, map_location='cpu') if 'state_dict' in checkpoint: state_dict = checkpoint['state_dict'] - elif 'model' in checkpoint: - state_dict = checkpoint['model'] else: state_dict = checkpoint - if self.pretrain_style == 'timm': - # Because the refactor of vit is blocked by mmcls, - # so we firstly use timm pretrain weights to train - # downstream model. - state_dict = vit_convert(state_dict) - if 'pos_embed' in state_dict.keys(): if self.pos_embed.shape != state_dict['pos_embed'].shape: logger.info(msg=f'Resize the pos_embed shape from ' diff --git a/mmseg/models/utils/__init__.py b/mmseg/models/utils/__init__.py index 817ab9cc60..2417c51833 100644 --- a/mmseg/models/utils/__init__.py +++ b/mmseg/models/utils/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) OpenMMLab. All rights reserved. -from .ckpt_convert import swin_convert, vit_convert from .embed import PatchEmbed from .inverted_residual import InvertedResidual, InvertedResidualV3 from .make_divisible import make_divisible @@ -11,6 +9,6 @@ __all__ = [ 'ResLayer', 'SelfAttentionBlock', 'make_divisible', 'InvertedResidual', - 'UpConvBlock', 'InvertedResidualV3', 'SELayer', 'vit_convert', - 'swin_convert', 'PatchEmbed', 'nchw_to_nlc', 'nlc_to_nchw' + 'UpConvBlock', 'InvertedResidualV3', 'SELayer', 'PatchEmbed', + 'nchw_to_nlc', 'nlc_to_nchw' ] diff --git a/mmseg/models/utils/ckpt_convert.py b/mmseg/models/utils/ckpt_convert.py deleted file mode 100644 index fd4632065c..0000000000 --- a/mmseg/models/utils/ckpt_convert.py +++ /dev/null @@ -1,91 +0,0 @@ -# Copyright (c) OpenMMLab. All rights reserved. -from collections import OrderedDict - - -def swin_convert(ckpt): - new_ckpt = OrderedDict() - - def correct_unfold_reduction_order(x): - out_channel, in_channel = x.shape - x = x.reshape(out_channel, 4, in_channel // 4) - x = x[:, [0, 2, 1, 3], :].transpose(1, - 2).reshape(out_channel, in_channel) - return x - - def correct_unfold_norm_order(x): - in_channel = x.shape[0] - x = x.reshape(4, in_channel // 4) - x = x[[0, 2, 1, 3], :].transpose(0, 1).reshape(in_channel) - return x - - for k, v in ckpt.items(): - if k.startswith('head'): - continue - elif k.startswith('layers'): - new_v = v - if 'attn.' in k: - new_k = k.replace('attn.', 'attn.w_msa.') - elif 'mlp.' in k: - if 'mlp.fc1.' in k: - new_k = k.replace('mlp.fc1.', 'ffn.layers.0.0.') - elif 'mlp.fc2.' in k: - new_k = k.replace('mlp.fc2.', 'ffn.layers.1.') - else: - new_k = k.replace('mlp.', 'ffn.') - elif 'downsample' in k: - new_k = k - if 'reduction.' in k: - new_v = correct_unfold_reduction_order(v) - elif 'norm.' in k: - new_v = correct_unfold_norm_order(v) - else: - new_k = k - new_k = new_k.replace('layers', 'stages', 1) - elif k.startswith('patch_embed'): - new_v = v - if 'proj' in k: - new_k = k.replace('proj', 'projection') - else: - new_k = k - else: - new_v = v - new_k = k - - new_ckpt[new_k] = new_v - - return new_ckpt - - -def vit_convert(ckpt): - - new_ckpt = OrderedDict() - - for k, v in ckpt.items(): - if k.startswith('head'): - continue - if k.startswith('norm'): - new_k = k.replace('norm.', 'ln1.') - elif k.startswith('patch_embed'): - if 'proj' in k: - new_k = k.replace('proj', 'projection') - else: - new_k = k - elif k.startswith('blocks'): - if 'norm' in k: - new_k = k.replace('norm', 'ln') - elif 'mlp.fc1' in k: - new_k = k.replace('mlp.fc1', 'ffn.layers.0.0') - elif 'mlp.fc2' in k: - new_k = k.replace('mlp.fc2', 'ffn.layers.1') - elif 'attn.qkv' in k: - new_k = k.replace('attn.qkv.', 'attn.attn.in_proj_') - elif 'attn.proj' in k: - new_k = k.replace('attn.proj', 'attn.attn.out_proj') - else: - new_k = k - new_k = new_k.replace('blocks.', 'layers.') - else: - new_k = k - new_ckpt[new_k] = v - - return new_ckpt diff --git a/tests/test_models/test_backbones/test_swin.py b/tests/test_models/test_backbones/test_swin.py index d82a4ba10b..edb2f833ed 100644 --- a/tests/test_models/test_backbones/test_swin.py +++ b/tests/test_models/test_backbones/test_swin.py @@ -8,10 +8,6 @@ def test_swin_transformer(): """Test Swin Transformer backbone.""" - with pytest.raises(AssertionError): - # We only support 'official' or 'mmcls' for this arg. - model = SwinTransformer(pretrain_style='swin') - with pytest.raises(TypeError): # Pretrained arg must be str or None. model = SwinTransformer(pretrained=123) diff --git a/tools/model_converters/mit_convert.py b/tools/model_converters/mit2mmseg.py similarity index 73% rename from tools/model_converters/mit_convert.py rename to tools/model_converters/mit2mmseg.py index 5138e55c6e..37e9b94767 100644 --- a/tools/model_converters/mit_convert.py +++ b/tools/model_converters/mit2mmseg.py @@ -1,8 +1,11 @@ # Copyright (c) OpenMMLab. All rights reserved. import argparse +import os.path as osp from collections import OrderedDict +import mmcv import torch +from mmcv.runner import CheckpointLoader def convert_mit(ckpt): @@ -54,24 +57,26 @@ def convert_mit(ckpt): return new_ckpt -def parse_args(): +def main(): parser = argparse.ArgumentParser( - 'Convert official segformer backbone weights to mmseg style.') - parser.add_argument( - 'src', help='Source path of official segformer backbone weights.') - parser.add_argument( - 'dst', - help='Destination path of converted segformer backbone weights.') + description='Convert keys in official pretrained segformer to ' + 'MMSegmentation style.') + parser.add_argument('src', help='src model path or url') + # The dst path must be a full path of the new checkpoint. + parser.add_argument('dst', help='save path') + args = parser.parse_args() - return parser.parse_args() + checkpoint = CheckpointLoader.load_checkpoint(args.src, map_location='cpu') + if 'state_dict' in checkpoint: + state_dict = checkpoint['state_dict'] + elif 'model' in checkpoint: + state_dict = checkpoint['model'] + else: + state_dict = checkpoint + weight = convert_mit(state_dict) + mmcv.mkdir_or_exist(osp.dirname(args.dst)) + torch.save(weight, args.dst) if __name__ == '__main__': - args = parse_args() - src_path = args.src - dst_path = args.dst - - ckpt = torch.load(src_path, map_location='cpu') - - ckpt = convert_mit(ckpt) - torch.save(ckpt, dst_path) + main() diff --git a/tools/model_converters/swin2mmseg.py b/tools/model_converters/swin2mmseg.py index 5a720f3768..03b24ceaa4 100644 --- a/tools/model_converters/swin2mmseg.py +++ b/tools/model_converters/swin2mmseg.py @@ -1,7 +1,11 @@ +# Copyright (c) OpenMMLab. All rights reserved. import argparse +import os.path as osp from collections import OrderedDict +import mmcv import torch +from mmcv.runner import CheckpointLoader def convert_swin(ckpt): @@ -62,12 +66,12 @@ def main(): parser = argparse.ArgumentParser( description='Convert keys in official pretrained swin models to' 'MMSegmentation style.') - parser.add_argument('src', help='src segmentation model path') + parser.add_argument('src', help='src model path or url') # The dst path must be a full path of the new checkpoint. parser.add_argument('dst', help='save path') args = parser.parse_args() - checkpoint = torch.load(args.src, map_location='cpu') + checkpoint = CheckpointLoader.load_checkpoint(args.src, map_location='cpu') if 'state_dict' in checkpoint: state_dict = checkpoint['state_dict'] elif 'model' in checkpoint: @@ -75,8 +79,8 @@ def main(): else: state_dict = checkpoint weight = convert_swin(state_dict) - with open(args.dst, 'wb') as f: - torch.save(weight, f) + mmcv.mkdir_or_exist(osp.dirname(args.dst)) + torch.save(weight, args.dst) if __name__ == '__main__': diff --git a/tools/model_converters/vit2mmseg.py b/tools/model_converters/vit2mmseg.py index 176c03a530..bc18ebed88 100644 --- a/tools/model_converters/vit2mmseg.py +++ b/tools/model_converters/vit2mmseg.py @@ -1,7 +1,11 @@ +# Copyright (c) OpenMMLab. All rights reserved. import argparse +import os.path as osp from collections import OrderedDict +import mmcv import torch +from mmcv.runner import CheckpointLoader def convert_vit(ckpt): @@ -43,12 +47,12 @@ def main(): parser = argparse.ArgumentParser( description='Convert keys in timm pretrained vit models to ' 'MMSegmentation style.') - parser.add_argument('src', help='src segmentation model path') + parser.add_argument('src', help='src model path or url') # The dst path must be a full path of the new checkpoint. parser.add_argument('dst', help='save path') args = parser.parse_args() - checkpoint = torch.load(args.src, map_location='cpu') + checkpoint = CheckpointLoader.load_checkpoint(args.src, map_location='cpu') if 'state_dict' in checkpoint: # timm checkpoint state_dict = checkpoint['state_dict'] @@ -58,8 +62,8 @@ def main(): else: state_dict = checkpoint weight = convert_vit(state_dict) - with open(args.dst, 'wb') as f: - torch.save(weight, f) + mmcv.mkdir_or_exist(osp.dirname(args.dst)) + torch.save(weight, args.dst) if __name__ == '__main__': From 457077448ff3ba0b6279c5c55356ba46b98a8bee Mon Sep 17 00:00:00 2001 From: MengzhangLI Date: Thu, 26 Aug 2021 18:35:35 +0800 Subject: [PATCH 219/706] [Fix] Fix some typos in README.md (#824) * fix README * Update README.md Co-authored-by: Junjun2016 * Update README_zh-CN.md Co-authored-by: Junjun2016 Co-authored-by: Junjun2016 --- README.md | 5 +++-- README_zh-CN.md | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 152955531b..fb4e67e360 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ Supported backbones: - [x] [MobileNetV2 (CVPR'2018)](configs/mobilenet_v2) - [x] [MobileNetV3 (ICCV'2019)](configs/mobilenet_v3) - [x] [Vision Transformer (ICLR'2021)](configs/vit) -- [x] [Swin Transformer (arXiV'2021)](configs/swin) +- [x] [Swin Transformer (ArXiv'2021)](configs/swin) Supported methods: @@ -92,6 +92,7 @@ Supported methods: - [x] [PointRend (CVPR'2020)](configs/point_rend) - [x] [CGNet (TIP'2020)](configs/cgnet) - [x] [SETR (CVPR'2021)](configs/setr) +- [x] [SegFormer (ArXiv'2021)](configs/segformer) ## Installation @@ -101,7 +102,7 @@ Please refer to [get_started.md](docs/get_started.md#installation) for installat Please see [train.md](docs/train.md) and [inference.md](docs/inference.md) for the basic usage of MMSegmentation. There are also tutorials for [customizing dataset](docs/tutorials/customize_datasets.md), [designing data pipeline](docs/tutorials/data_pipeline.md), [customizing modules](docs/tutorials/customize_models.md), and [customizing runtime](docs/tutorials/customize_runtime.md). -We also provide many [training tricks](docs/tutorials/training_tricks.md). +We also provide many [training tricks](docs/tutorials/training_tricks.md) for better training and [usefule tools](docs/useful_tools.md) for deployment. A Colab tutorial is also provided. You may preview the notebook [here](demo/MMSegmentation_Tutorial.ipynb) or directly [run](https://colab.research.google.com/github/open-mmlab/mmsegmentation/blob/master/demo/MMSegmentation_Tutorial.ipynb) on Colab. diff --git a/README_zh-CN.md b/README_zh-CN.md index 01536b86f1..9dc7ba539a 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -63,7 +63,7 @@ MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 O - [x] [MobileNetV2 (CVPR'2018)](configs/mobilenet_v2) - [x] [MobileNetV3 (ICCV'2019)](configs/mobilenet_v3) - [x] [Vision Transformer (ICLR'2021)](configs/vit) -- [x] [Swin Transformer (arXiV'2021)](configs/swin) +- [x] [Swin Transformer (ArXiv'2021)](configs/swin) 已支持的算法: @@ -91,6 +91,7 @@ MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 O - [x] [PointRend (CVPR'2020)](configs/point_rend) - [x] [CGNet (TIP'2020)](configs/cgnet) - [x] [SETR (CVPR'2021)](configs/setr) +- [x] [SegFormer (ArXiv'2021)](configs/segformer) ## 安装 @@ -100,7 +101,7 @@ MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 O 请参考[训练教程](docs_zh-CN/train.md)和[测试教程](docs_zh-CN/inference.md)学习 MMSegmentation 的基本使用。 我们也提供了一些进阶教程,内容覆盖了[增加自定义数据集](docs_zh-CN/tutorials/customize_datasets.md),[设计新的数据预处理流程](docs_zh-CN/tutorials/data_pipeline.md),[增加自定义模型](docs_zh-CN/tutorials/customize_models.md),[增加自定义的运行时配置](docs_zh-CN/tutorials/customize_runtime.md)。 -除此之外,我们也提供了很多实用的[训练技巧说明](docs_zh-CN/tutorials/training_tricks.md)。 +除此之外,我们也提供了很多实用的[训练技巧说明](docs_zh-CN/tutorials/training_tricks.md)和模型部署相关的[有用的工具](docs_zh-CN/useful_tools.md)。 同时,我们提供了 Colab 教程。你可以在[这里](demo/MMSegmentation_Tutorial.ipynb)浏览教程,或者直接在 Colab 上[运行](https://colab.research.google.com/github/open-mmlab/mmsegmentation/blob/master/demo/MMSegmentation_Tutorial.ipynb)。 From 42c3f944e0a047597fdca9f8a3e21bb2f9101038 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=98=95=E8=BE=B0?= Date: Fri, 27 Aug 2021 14:53:36 +0800 Subject: [PATCH 220/706] [Enhancement] Support inherit cityscapes dataset (#750) * rewrite init function * init function parameters --- mmseg/datasets/cityscapes.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mmseg/datasets/cityscapes.py b/mmseg/datasets/cityscapes.py index 5802622e74..2be00d6848 100644 --- a/mmseg/datasets/cityscapes.py +++ b/mmseg/datasets/cityscapes.py @@ -29,11 +29,12 @@ class CityscapesDataset(CustomDataset): [255, 0, 0], [0, 0, 142], [0, 0, 70], [0, 60, 100], [0, 80, 100], [0, 0, 230], [119, 11, 32]] - def __init__(self, **kwargs): + def __init__(self, + img_suffix='_leftImg8bit.png', + seg_map_suffix='_gtFine_labelTrainIds.png', + **kwargs): super(CityscapesDataset, self).__init__( - img_suffix='_leftImg8bit.png', - seg_map_suffix='_gtFine_labelTrainIds.png', - **kwargs) + img_suffix=img_suffix, seg_map_suffix=seg_map_suffix, **kwargs) @staticmethod def _convert_to_label_id(result): From 6ee9eaecc1d7f94330857fae6bcb7b04231fdd4a Mon Sep 17 00:00:00 2001 From: Pedro Machado Date: Fri, 27 Aug 2021 07:56:13 +0100 Subject: [PATCH 221/706] Update inference_demo.ipynb (#814) fixed the link to *.pth broken link --- demo/inference_demo.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demo/inference_demo.ipynb b/demo/inference_demo.ipynb index e47d964e3c..2f86f201b0 100644 --- a/demo/inference_demo.ipynb +++ b/demo/inference_demo.ipynb @@ -26,7 +26,7 @@ ], "source": [ "!mkdir ../checkpoints\n", - "!wget https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth -P ../checkpoints" + "!wget https://openmmlab.oss-accelerate.aliyuncs.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes/deeplabv3_r50-d8_512x1024_40k_cityscapes_20200605_022449-acadc2f8.pth -P ../checkpoints" ] }, { From b5ad23e5457d7b49965d9671f7944185a71fa7ba Mon Sep 17 00:00:00 2001 From: Guangchen Lin <347630870@qq.com> Date: Fri, 27 Aug 2021 05:53:55 -0500 Subject: [PATCH 222/706] [Fix] The interface multiscale_output is defined but not used (#830) * Add interface multiscale_output * Add space between args and their types * Fix default value --- mmseg/models/backbones/hrnet.py | 52 ++++++--- .../test_models/test_backbones/test_hrnet.py | 100 ++++++++++++++++-- 2 files changed, 129 insertions(+), 23 deletions(-) diff --git a/mmseg/models/backbones/hrnet.py b/mmseg/models/backbones/hrnet.py index c8ec50654e..a0b1e47cde 100644 --- a/mmseg/models/backbones/hrnet.py +++ b/mmseg/models/backbones/hrnet.py @@ -218,26 +218,41 @@ def forward(self, x): class HRNet(BaseModule): """HRNet backbone. - High-Resolution Representations for Labeling Pixels and Regions - arXiv: https://arxiv.org/abs/1904.04514 + `High-Resolution Representations for Labeling Pixels and Regions + arXiv: `_. Args: - extra (dict): detailed configuration for each stage of HRNet. + extra (dict): Detailed configuration for each stage of HRNet. + There must be 4 stages, the configuration for each stage must have + 5 keys: + + - num_modules (int): The number of HRModule in this stage. + - num_branches (int): The number of branches in the HRModule. + - block (str): The type of convolution block. + - num_blocks (tuple): The number of blocks in each branch. + The length must be equal to num_branches. + - num_channels (tuple): The number of channels in each branch. + The length must be equal to num_branches. in_channels (int): Number of input image channels. Normally 3. - conv_cfg (dict): dictionary to construct and config conv layer. - norm_cfg (dict): dictionary to construct and config norm layer. + conv_cfg (dict): Dictionary to construct and config conv layer. + Default: None. + norm_cfg (dict): Dictionary to construct and config norm layer. + Use `BN` by default. norm_eval (bool): Whether to set norm layers to eval mode, namely, freeze running stats (mean and var). Note: Effect on Batch Norm - and its variants only. + and its variants only. Default: False. with_cp (bool): Use checkpoint or not. Using checkpoint will save some - memory while slowing down the training speed. + memory while slowing down the training speed. Default: False. frozen_stages (int): Stages to be frozen (stop grad and set eval mode). -1 means not freezing any parameters. Default: -1. - zero_init_residual (bool): whether to use zero init for last norm layer - in resblocks to let them behave as identity. - pretrained (str, optional): model pretrained path. Default: None + zero_init_residual (bool): Whether to use zero init for last norm layer + in resblocks to let them behave as identity. Default: False. + multiscale_output (bool): Whether to output multi-level features + produced by multiple branches. If False, only the first level + feature will be output. Default: True. + pretrained (str, optional): Model pretrained path. Default: None. init_cfg (dict or list[dict], optional): Initialization config dict. - Default: None + Default: None. Example: >>> from mmseg.models import HRNet @@ -290,6 +305,7 @@ def __init__(self, with_cp=False, frozen_stages=-1, zero_init_residual=False, + multiscale_output=True, pretrained=None, init_cfg=None): super(HRNet, self).__init__(init_cfg) @@ -299,7 +315,7 @@ def __init__(self, assert not (init_cfg and pretrained), \ 'init_cfg and pretrained cannot be setting at the same time' if isinstance(pretrained, str): - warnings.warn('DeprecationWarning: pretrained is a deprecated, ' + warnings.warn('DeprecationWarning: pretrained is deprecated, ' 'please use "init_cfg" instead') self.init_cfg = dict(type='Pretrained', checkpoint=pretrained) elif pretrained is None: @@ -314,6 +330,16 @@ def __init__(self, else: raise TypeError('pretrained must be a str or None') + # Assert configurations of 4 stages are in extra + assert 'stage1' in extra and 'stage2' in extra \ + and 'stage3' in extra and 'stage4' in extra + # Assert whether the length of `num_blocks` and `num_channels` are + # equal to `num_branches` + for i in range(4): + cfg = extra[f'stage{i + 1}'] + assert len(cfg['num_blocks']) == cfg['num_branches'] and \ + len(cfg['num_channels']) == cfg['num_branches'] + self.extra = extra self.conv_cfg = conv_cfg self.norm_cfg = norm_cfg @@ -391,7 +417,7 @@ def __init__(self, self.transition3 = self._make_transition_layer(pre_stage_channels, num_channels) self.stage4, pre_stage_channels = self._make_stage( - self.stage4_cfg, num_channels) + self.stage4_cfg, num_channels, multiscale_output=multiscale_output) self._freeze_stages() diff --git a/tests/test_models/test_backbones/test_hrnet.py b/tests/test_models/test_backbones/test_hrnet.py index aa42c85814..e089f1cce2 100644 --- a/tests/test_models/test_backbones/test_hrnet.py +++ b/tests/test_models/test_backbones/test_hrnet.py @@ -1,12 +1,59 @@ # Copyright (c) OpenMMLab. All rights reserved. +import pytest +import torch from mmcv.utils.parrots_wrapper import _BatchNorm -from mmseg.models.backbones import HRNet +from mmseg.models.backbones.hrnet import HRModule, HRNet +from mmseg.models.backbones.resnet import BasicBlock, Bottleneck -def test_hrnet_backbone(): - # Test HRNET with two stage frozen +@pytest.mark.parametrize('block', [BasicBlock, Bottleneck]) +def test_hrmodule(block): + # Test multiscale forward + num_channles = (32, 64) + in_channels = [c * block.expansion for c in num_channles] + hrmodule = HRModule( + num_branches=2, + blocks=block, + in_channels=in_channels, + num_blocks=(4, 4), + num_channels=num_channles, + ) + + feats = [ + torch.randn(1, in_channels[0], 64, 64), + torch.randn(1, in_channels[1], 32, 32) + ] + feats = hrmodule(feats) + + assert len(feats) == 2 + assert feats[0].shape == torch.Size([1, in_channels[0], 64, 64]) + assert feats[1].shape == torch.Size([1, in_channels[1], 32, 32]) + + # Test single scale forward + num_channles = (32, 64) + in_channels = [c * block.expansion for c in num_channles] + hrmodule = HRModule( + num_branches=2, + blocks=block, + in_channels=in_channels, + num_blocks=(4, 4), + num_channels=num_channles, + multiscale_output=False, + ) + + feats = [ + torch.randn(1, in_channels[0], 64, 64), + torch.randn(1, in_channels[1], 32, 32) + ] + feats = hrmodule(feats) + assert len(feats) == 1 + assert feats[0].shape == torch.Size([1, in_channels[0], 64, 64]) + + +def test_hrnet_backbone(): + # only have 3 stages extra = dict( stage1=dict( num_modules=1, @@ -25,13 +72,46 @@ def test_hrnet_backbone(): num_branches=3, block='BASIC', num_blocks=(4, 4, 4), - num_channels=(32, 64, 128)), - stage4=dict( - num_modules=3, - num_branches=4, - block='BASIC', - num_blocks=(4, 4, 4, 4), - num_channels=(32, 64, 128, 256))) + num_channels=(32, 64, 128))) + + with pytest.raises(AssertionError): + # HRNet now only support 4 stages + HRNet(extra=extra) + extra['stage4'] = dict( + num_modules=3, + num_branches=3, # should be 4 + block='BASIC', + num_blocks=(4, 4, 4, 4), + num_channels=(32, 64, 128, 256)) + + with pytest.raises(AssertionError): + # len(num_blocks) should equal num_branches + HRNet(extra=extra) + + extra['stage4']['num_branches'] = 4 + + # Test hrnetv2p_w32 + model = HRNet(extra=extra) + model.init_weights() + model.train() + + imgs = torch.randn(1, 3, 256, 256) + feats = model(imgs) + assert len(feats) == 4 + assert feats[0].shape == torch.Size([1, 32, 64, 64]) + assert feats[3].shape == torch.Size([1, 256, 8, 8]) + + # Test single scale output + model = HRNet(extra=extra, multiscale_output=False) + model.init_weights() + model.train() + + imgs = torch.randn(1, 3, 256, 256) + feats = model(imgs) + assert len(feats) == 1 + assert feats[0].shape == torch.Size([1, 32, 64, 64]) + + # Test HRNET with two stage frozen frozen_stages = 2 model = HRNet(extra, frozen_stages=frozen_stages) model.init_weights() From 0cf838f2949537f6cf46972cf6aa86b781db0600 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=98=95=E8=BE=B0?= Date: Sun, 29 Aug 2021 02:51:05 +0800 Subject: [PATCH 223/706] [Feature] Support dark dataset test (#815) * rewrite init function * support dark_zurich test * reset image size * add night * add train_pipeline * init function parameters * remove base dataset config * remove fcn config * update doc * add datasets to README * update doc * fix table of PSPNet config * fix table of PSPNet config * change 'model' tp 'evaluation checkpoint' * fix typos in README_zh-CN Co-authored-by: MengzhangLI --- README.md | 13 ++++++++ README_zh-CN.md | 15 +++++++++- configs/pspnet/README.md | 16 ++++++++++ configs/pspnet/pspnet.yml | 1 + .../pspnet_r101-d8_512x1024_40k_dark.py | 2 ++ ...pnet_r101-d8_512x1024_40k_night_driving.py | 2 ++ .../pspnet_r101b-d8_512x1024_80k_dark.py | 4 +++ ...net_r101b-d8_512x1024_80k_night_driving.py | 4 +++ .../pspnet/pspnet_r50-d8_512x1024_40k_dark.py | 29 ++++++++++++++++++ ...spnet_r50-d8_512x1024_40k_night_driving.py | 29 ++++++++++++++++++ .../pspnet/pspnet_r50-d8_512x1024_80k_dark.py | 30 +++++++++++++++++++ ...spnet_r50-d8_512x1024_80k_night_driving.py | 29 ++++++++++++++++++ docs/dataset_prepare.md | 30 ++++++++++++++++++- docs_zh-CN/dataset_prepare.md | 30 ++++++++++++++++++- mmseg/datasets/__init__.py | 4 ++- mmseg/datasets/dark_zurich.py | 13 ++++++++ mmseg/datasets/night_driving.py | 13 ++++++++ 17 files changed, 260 insertions(+), 4 deletions(-) create mode 100644 configs/pspnet/pspnet_r101-d8_512x1024_40k_dark.py create mode 100644 configs/pspnet/pspnet_r101-d8_512x1024_40k_night_driving.py create mode 100644 configs/pspnet/pspnet_r101b-d8_512x1024_80k_dark.py create mode 100644 configs/pspnet/pspnet_r101b-d8_512x1024_80k_night_driving.py create mode 100644 configs/pspnet/pspnet_r50-d8_512x1024_40k_dark.py create mode 100644 configs/pspnet/pspnet_r50-d8_512x1024_40k_night_driving.py create mode 100644 configs/pspnet/pspnet_r50-d8_512x1024_80k_dark.py create mode 100644 configs/pspnet/pspnet_r50-d8_512x1024_80k_night_driving.py create mode 100644 mmseg/datasets/dark_zurich.py create mode 100644 mmseg/datasets/night_driving.py diff --git a/README.md b/README.md index fb4e67e360..a4f4a091ef 100644 --- a/README.md +++ b/README.md @@ -94,6 +94,19 @@ Supported methods: - [x] [SETR (CVPR'2021)](configs/setr) - [x] [SegFormer (ArXiv'2021)](configs/segformer) +Supported datasets: + +- [x] [Cityscapes](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#cityscapes) +- [x] [PASCAL VOC](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#pascal-voc) +- [x] [ADE20K](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#ade20k) +- [x] [Pascal Context](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#pascal-context) +- [x] [CHASE_DB1](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#chase-db1) +- [x] [DRIVE](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#drive) +- [x] [HRF](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#hrf) +- [x] [STARE](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#stare) +- [x] [Dark Zurich](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#dark-zurich) +- [x] [Nighttime Driving](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#nighttime-driving) + ## Installation Please refer to [get_started.md](docs/get_started.md#installation) for installation and [dataset_prepare.md](docs/dataset_prepare.md#prepare-datasets) for dataset preparation. diff --git a/README_zh-CN.md b/README_zh-CN.md index 9dc7ba539a..42e3e7fdbe 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -93,9 +93,22 @@ MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 O - [x] [SETR (CVPR'2021)](configs/setr) - [x] [SegFormer (ArXiv'2021)](configs/segformer) +已支持的数据集: + +- [x] [Cityscapes](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#cityscapes) +- [x] [PASCAL VOC](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#pascal-voc) +- [x] [ADE20K](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#ade20k) +- [x] [Pascal Context](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#pascal-context) +- [x] [CHASE_DB1](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#chase-db1) +- [x] [DRIVE](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#drive) +- [x] [HRF](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#hrf) +- [x] [STARE](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#stare) +- [x] [Dark Zurich](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#dark-zurich) +- [x] [Nighttime Driving](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#nighttime-driving) + ## 安装 -请参考[快速入门文档](docs_zh-CN/get_started.md#installation)进行安装和数据集准备。 +请参考[快速入门文档](docs_zh-CN/get_started.md#installation)进行安装,参考[数据集准备](docs_zh-CN/dataset_prepare.md)处理数据。 ## 快速入门 diff --git a/configs/pspnet/README.md b/configs/pspnet/README.md index 66f3dc286f..14f6429d81 100644 --- a/configs/pspnet/README.md +++ b/configs/pspnet/README.md @@ -67,3 +67,19 @@ | ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | PSPNet | R-101-D8 | 480x480 | 40000 | - | - | 52.02 | 53.54 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context_59/pspnet_r101-d8_480x480_40k_pascal_context_59_20210416_114524-86d44cd4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context_59/pspnet_r101-d8_480x480_40k_pascal_context_59-20210416_114524.log.json) | | PSPNet | R-101-D8 | 480x480 | 80000 | - | - | 52.47 | 53.99 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context_59/pspnet_r101-d8_480x480_80k_pascal_context_59_20210416_114418-fa6caaa2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context_59/pspnet_r101-d8_480x480_80k_pascal_context_59-20210416_114418.log.json) | + +### Dark Zurich and Nighttime Driving + +We support evaluation results on these two datasets using models above trained on Cityscapes training set. + + |Method|Backbone |Training Dataset |Test Dataset |mIoU |config| evaluation checkpoint| + |------ |------ |------ |----- |-----|-----|-----| + |PSPNet|R-50-D8 |Cityscapes Training set |Dark Zurich |10.91|[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r50-d8_512x1024_40k_dark.py)|[model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338.log.json) | + |PSPNet|R-50-D8 |Cityscapes Training set |Nighttime Driving|23.02|[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r50-d8_512x1024_40k_night_driving.py)| [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338.log.json) | + |PSPNet|R-50-D8 |Cityscapes Training set |Cityscapes Validation set|77.85 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338.log.json) | + |PSPNet|R-101-D8 |Cityscapes Training set |Dark Zurich |10.16|[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_512x1024_40k_dark.py)| [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes/pspnet_r101-d8_512x1024_40k_cityscapes_20200604_232751-467e7cf4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes/pspnet_r101-d8_512x1024_40k_cityscapes_20200604_232751.log.json) | + |PSPNet|R-101-D8 |Cityscapes Training set |Nighttime Driving|20.25|[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_512x1024_40k_night_driving.py)| [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes/pspnet_r101-d8_512x1024_40k_cityscapes_20200604_232751-467e7cf4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes/pspnet_r101-d8_512x1024_40k_cityscapes_20200604_232751.log.json) | + |PSPNet|R-101-D8 |Cityscapes Training set |Cityscapes Validation set|78.34|[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes/pspnet_r101-d8_512x1024_40k_cityscapes_20200604_232751-467e7cf4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes/pspnet_r101-d8_512x1024_40k_cityscapes_20200604_232751.log.json) | + |PSPNet|R-101b-D8|Cityscapes Training set |Dark Zurich |15.54|[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101b-d8_512x1024_80k_dark.py)| [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes_20201226_170012-3a4d38ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes-20201226_170012.log.json) | + |PSPNet|R-101b-D8|Cityscapes Training set |Nighttime Driving|22.25|[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101b-d8_512x1024_80k_night_driving.py)| [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes_20201226_170012-3a4d38ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes-20201226_170012.log.json) | + |PSPNet|R-101b-D8|Cityscapes Training set |Cityscapes Validation set|79.69|[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes_20201226_170012-3a4d38ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes-20201226_170012.log.json) | diff --git a/configs/pspnet/pspnet.yml b/configs/pspnet/pspnet.yml index 7e3c58d8a6..9bc6ae3a62 100644 --- a/configs/pspnet/pspnet.yml +++ b/configs/pspnet/pspnet.yml @@ -6,6 +6,7 @@ Collections: - Pascal VOC 2012 + Aug - Pascal Context - Pascal Context 59 + - Dark Zurich and Nighttime Driving Name: pspnet Models: - Config: configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py diff --git a/configs/pspnet/pspnet_r101-d8_512x1024_40k_dark.py b/configs/pspnet/pspnet_r101-d8_512x1024_40k_dark.py new file mode 100644 index 0000000000..1057639148 --- /dev/null +++ b/configs/pspnet/pspnet_r101-d8_512x1024_40k_dark.py @@ -0,0 +1,2 @@ +_base_ = './pspnet_r50-d8_512x1024_40k_dark.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/pspnet/pspnet_r101-d8_512x1024_40k_night_driving.py b/configs/pspnet/pspnet_r101-d8_512x1024_40k_night_driving.py new file mode 100644 index 0000000000..0ecb9303ab --- /dev/null +++ b/configs/pspnet/pspnet_r101-d8_512x1024_40k_night_driving.py @@ -0,0 +1,2 @@ +_base_ = './pspnet_r50-d8_512x1024_40k_night_driving.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/pspnet/pspnet_r101b-d8_512x1024_80k_dark.py b/configs/pspnet/pspnet_r101b-d8_512x1024_80k_dark.py new file mode 100644 index 0000000000..49231d81bc --- /dev/null +++ b/configs/pspnet/pspnet_r101b-d8_512x1024_80k_dark.py @@ -0,0 +1,4 @@ +_base_ = './pspnet_r50-d8_512x1024_80k_dark.py' +model = dict( + pretrained='torchvision://resnet101', + backbone=dict(type='ResNet', depth=101)) diff --git a/configs/pspnet/pspnet_r101b-d8_512x1024_80k_night_driving.py b/configs/pspnet/pspnet_r101b-d8_512x1024_80k_night_driving.py new file mode 100644 index 0000000000..c3ed2f147b --- /dev/null +++ b/configs/pspnet/pspnet_r101b-d8_512x1024_80k_night_driving.py @@ -0,0 +1,4 @@ +_base_ = './pspnet_r50-d8_512x1024_80k_night_driving.py' +model = dict( + pretrained='torchvision://resnet101', + backbone=dict(type='ResNet', depth=101)) diff --git a/configs/pspnet/pspnet_r50-d8_512x1024_40k_dark.py b/configs/pspnet/pspnet_r50-d8_512x1024_40k_dark.py new file mode 100644 index 0000000000..9abb5113c6 --- /dev/null +++ b/configs/pspnet/pspnet_r50-d8_512x1024_40k_dark.py @@ -0,0 +1,29 @@ +_base_ = [ + '../_base_/models/pspnet_r50-d8.py', '../_base_/datasets/cityscapes.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' +] +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) +test_pipeline = [ + dict(type='LoadImageFromFile'), + dict( + type='MultiScaleFlipAug', + img_scale=(1920, 1080), + # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75], + flip=False, + transforms=[ + dict(type='Resize', keep_ratio=True), + dict(type='RandomFlip'), + dict(type='Normalize', **img_norm_cfg), + dict(type='ImageToTensor', keys=['img']), + dict(type='Collect', keys=['img']), + ]) +] + +data = dict( + test=dict( + type='DarkZurichDataset', + data_root='data/dark_zurich/', + img_dir='rgb_anon/val/night/GOPR0356', + ann_dir='gt/val/night/GOPR0356', + pipeline=test_pipeline)) diff --git a/configs/pspnet/pspnet_r50-d8_512x1024_40k_night_driving.py b/configs/pspnet/pspnet_r50-d8_512x1024_40k_night_driving.py new file mode 100644 index 0000000000..195aeea5e2 --- /dev/null +++ b/configs/pspnet/pspnet_r50-d8_512x1024_40k_night_driving.py @@ -0,0 +1,29 @@ +_base_ = [ + '../_base_/models/pspnet_r50-d8.py', '../_base_/datasets/cityscapes.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' +] + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) +test_pipeline = [ + dict(type='LoadImageFromFile'), + dict( + type='MultiScaleFlipAug', + img_scale=(1920, 1080), + # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75], + flip=False, + transforms=[ + dict(type='Resize', keep_ratio=True), + dict(type='RandomFlip'), + dict(type='Normalize', **img_norm_cfg), + dict(type='ImageToTensor', keys=['img']), + dict(type='Collect', keys=['img']), + ]) +] +data = dict( + test=dict( + type='NightDrivingDataset', + data_root='data/NighttimeDrivingTest/', + img_dir='leftImg8bit/test/night', + ann_dir='gtCoarse_daytime_trainvaltest/test/night', + pipeline=test_pipeline)) diff --git a/configs/pspnet/pspnet_r50-d8_512x1024_80k_dark.py b/configs/pspnet/pspnet_r50-d8_512x1024_80k_dark.py new file mode 100644 index 0000000000..2f16171acf --- /dev/null +++ b/configs/pspnet/pspnet_r50-d8_512x1024_80k_dark.py @@ -0,0 +1,30 @@ +_base_ = [ + '../_base_/models/pspnet_r50-d8.py', '../_base_/datasets/cityscapes.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' +] + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) +test_pipeline = [ + dict(type='LoadImageFromFile'), + dict( + type='MultiScaleFlipAug', + img_scale=(1920, 1080), + # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75], + flip=False, + transforms=[ + dict(type='Resize', keep_ratio=True), + dict(type='RandomFlip'), + dict(type='Normalize', **img_norm_cfg), + dict(type='ImageToTensor', keys=['img']), + dict(type='Collect', keys=['img']), + ]) +] + +data = dict( + test=dict( + type='DarkZurichDataset', + data_root='data/dark_zurich/', + img_dir='rgb_anon/val/night/GOPR0356', + ann_dir='gt/val/night/GOPR0356', + pipeline=test_pipeline)) diff --git a/configs/pspnet/pspnet_r50-d8_512x1024_80k_night_driving.py b/configs/pspnet/pspnet_r50-d8_512x1024_80k_night_driving.py new file mode 100644 index 0000000000..ecc5d99d79 --- /dev/null +++ b/configs/pspnet/pspnet_r50-d8_512x1024_80k_night_driving.py @@ -0,0 +1,29 @@ +_base_ = [ + '../_base_/models/pspnet_r50-d8.py', '../_base_/datasets/cityscapes.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' +] + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) +test_pipeline = [ + dict(type='LoadImageFromFile'), + dict( + type='MultiScaleFlipAug', + img_scale=(1920, 1080), + # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75], + flip=False, + transforms=[ + dict(type='Resize', keep_ratio=True), + dict(type='RandomFlip'), + dict(type='Normalize', **img_norm_cfg), + dict(type='ImageToTensor', keys=['img']), + dict(type='Collect', keys=['img']), + ]) +] +data = dict( + test=dict( + type='NightDrivingDataset', + data_root='data/NighttimeDrivingTest/', + img_dir='leftImg8bit/test/night', + ann_dir='gtCoarse_daytime_trainvaltest/test/night', + pipeline=test_pipeline)) diff --git a/docs/dataset_prepare.md b/docs/dataset_prepare.md index 5407339f13..65c7e0a8f9 100644 --- a/docs/dataset_prepare.md +++ b/docs/dataset_prepare.md @@ -69,7 +69,27 @@ mmsegmentation │ │ ├── annotations │ │ │ ├── training │ │ │ ├── validation - +| ├── dark_zurich +| │   ├── gps +| │   │   ├── val +| │   │   └── val_ref +| │   ├── gt +| │   │   └── val +| │   ├── LICENSE.txt +| │   ├── lists_file_names +| │   │   ├── val_filenames.txt +| │   │   └── val_ref_filenames.txt +| │   ├── README.md +| │   └── rgb_anon +| │   | ├── val +| │   | └── val_ref +| ├── NighttimeDrivingTest +| | ├── gtCoarse_daytime_trainvaltest +| | │   └── test +| | │   └── night +| | └── leftImg8bit +| | | └── test +| | | └── night ``` ### Cityscapes @@ -163,3 +183,11 @@ python tools/convert_datasets/stare.py /path/to/stare-images.tar /path/to/labels ``` The script will make directory structure automatically. + +### Dark Zurich + +Since we only support test models on this dataset, you may only download [the validation set](https://data.vision.ee.ethz.ch/csakarid/shared/GCMA_UIoU/Dark_Zurich_val_anon.zip). + +### Nighttime Driving + +Since we only support test models on this dataset, you may only download [the test set](http://data.vision.ee.ethz.ch/daid/NighttimeDriving/NighttimeDrivingTest.zip). diff --git a/docs_zh-CN/dataset_prepare.md b/docs_zh-CN/dataset_prepare.md index 55d5649a00..80c3025de4 100644 --- a/docs_zh-CN/dataset_prepare.md +++ b/docs_zh-CN/dataset_prepare.md @@ -68,7 +68,27 @@ mmsegmentation │ │ ├── annotations │ │ │ ├── training │ │ │ ├── validation - +| ├── dark_zurich +| │   ├── gps +| │   │   ├── val +| │   │   └── val_ref +| │   ├── gt +| │   │   └── val +| │   ├── LICENSE.txt +| │   ├── lists_file_names +| │   │   ├── val_filenames.txt +| │   │   └── val_ref_filenames.txt +| │   ├── README.md +| │   └── rgb_anon +| │   | ├── val +| │   | └── val_ref +| ├── NighttimeDrivingTest +| | ├── gtCoarse_daytime_trainvaltest +| | │   └── test +| | │   └── night +| | └── leftImg8bit +| | | └── test +| | | └── night ``` ### Cityscapes @@ -167,3 +187,11 @@ python tools/convert_datasets/stare.py /path/to/stare-images.tar /path/to/labels ``` 这个脚本将自动生成正确的文件夹结构。 + +### Dark Zurich + +因为我们只支持在此数据集上测试模型,所以您只需下载[验证集](https://data.vision.ee.ethz.ch/csakarid/shared/GCMA_UIoU/Dark_Zurich_val_anon.zip)。 + +### Nighttime Driving + +因为我们只支持在此数据集上测试模型,所以您只需下载[测试集](http://data.vision.ee.ethz.ch/daid/NighttimeDriving/NighttimeDrivingTest.zip)。 diff --git a/mmseg/datasets/__init__.py b/mmseg/datasets/__init__.py index bdea832485..a54f21b8cb 100644 --- a/mmseg/datasets/__init__.py +++ b/mmseg/datasets/__init__.py @@ -4,9 +4,11 @@ from .chase_db1 import ChaseDB1Dataset from .cityscapes import CityscapesDataset from .custom import CustomDataset +from .dark_zurich import DarkZurichDataset from .dataset_wrappers import ConcatDataset, RepeatDataset from .drive import DRIVEDataset from .hrf import HRFDataset +from .night_driving import NightDrivingDataset from .pascal_context import PascalContextDataset, PascalContextDataset59 from .stare import STAREDataset from .voc import PascalVOCDataset @@ -16,5 +18,5 @@ 'DATASETS', 'build_dataset', 'PIPELINES', 'CityscapesDataset', 'PascalVOCDataset', 'ADE20KDataset', 'PascalContextDataset', 'PascalContextDataset59', 'ChaseDB1Dataset', 'DRIVEDataset', 'HRFDataset', - 'STAREDataset' + 'STAREDataset', 'DarkZurichDataset', 'NightDrivingDataset' ] diff --git a/mmseg/datasets/dark_zurich.py b/mmseg/datasets/dark_zurich.py new file mode 100644 index 0000000000..efc088f31b --- /dev/null +++ b/mmseg/datasets/dark_zurich.py @@ -0,0 +1,13 @@ +from .builder import DATASETS +from .cityscapes import CityscapesDataset + + +@DATASETS.register_module() +class DarkZurichDataset(CityscapesDataset): + """DarkZurichDataset dataset.""" + + def __init__(self, **kwargs): + super().__init__( + img_suffix='_rgb_anon.png', + seg_map_suffix='_gt_labelTrainIds.png', + **kwargs) diff --git a/mmseg/datasets/night_driving.py b/mmseg/datasets/night_driving.py new file mode 100644 index 0000000000..a9289a27a4 --- /dev/null +++ b/mmseg/datasets/night_driving.py @@ -0,0 +1,13 @@ +from .builder import DATASETS +from .cityscapes import CityscapesDataset + + +@DATASETS.register_module() +class NightDrivingDataset(CityscapesDataset): + """NightDrivingDataset dataset.""" + + def __init__(self, **kwargs): + super().__init__( + img_suffix='_leftImg8bit.png', + seg_map_suffix='_gtCoarse_labelTrainIds.png', + **kwargs) From ef4b30038fffaddf04f6b2062f76d5889c4eebc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=98=95=E8=BE=B0?= Date: Mon, 30 Aug 2021 16:53:05 +0800 Subject: [PATCH 224/706] [Feature] add DPT head (#605) * add DPT head * [fix] fix init error * use mmcv function * delete code * remove transpose clas * support NLC output shape * Delete post_process_layer.py * add unittest and docstring * rename variables * fix project error and add unittest * match dpt weights * add configs * fix vit pos_embed bug and dpt feature fusion bug * match vit output * fix gelu * minor change * update unitest * fix configs error * inference test * remove auxilary * use local pretrain * update training results * update yml * update fps and memory test * update doc * update readme * add yml * update doc * remove with_cp * update config * update docstring * remove dpt-l * add init_cfg and modify readme.md * Update dpt_vit-b16.py * zh-n README * use constructor instead of build function * prevent tensor being modified by ConvModule * fix unittest Co-authored-by: Junjun2016 --- configs/_base_/models/dpt_vit-b16.py | 31 ++ configs/dpt/README.md | 47 +++ configs/dpt/dpt.yml | 28 ++ .../dpt/dpt_vit-b16_512x512_160k_ade20k.py | 32 ++ mmseg/models/decode_heads/__init__.py | 3 +- mmseg/models/decode_heads/dpt_head.py | 293 ++++++++++++++++++ model-index.yml | 1 + tests/test_models/test_heads/test_dpt_head.py | 48 +++ 8 files changed, 482 insertions(+), 1 deletion(-) create mode 100644 configs/_base_/models/dpt_vit-b16.py create mode 100644 configs/dpt/README.md create mode 100644 configs/dpt/dpt.yml create mode 100644 configs/dpt/dpt_vit-b16_512x512_160k_ade20k.py create mode 100644 mmseg/models/decode_heads/dpt_head.py create mode 100644 tests/test_models/test_heads/test_dpt_head.py diff --git a/configs/_base_/models/dpt_vit-b16.py b/configs/_base_/models/dpt_vit-b16.py new file mode 100644 index 0000000000..dfd48a95f8 --- /dev/null +++ b/configs/_base_/models/dpt_vit-b16.py @@ -0,0 +1,31 @@ +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + type='EncoderDecoder', + pretrained='pretrain/vit-b16_p16_224-80ecf9dd.pth', # noqa + backbone=dict( + type='VisionTransformer', + img_size=224, + embed_dims=768, + num_layers=12, + num_heads=12, + out_indices=(2, 5, 8, 11), + final_norm=False, + with_cls_token=True, + output_cls_token=True), + decode_head=dict( + type='DPTHead', + in_channels=(768, 768, 768, 768), + channels=256, + embed_dims=768, + post_process_channels=[96, 192, 384, 768], + num_classes=150, + readout_type='project', + input_transform='multiple_select', + in_index=(0, 1, 2, 3), + norm_cfg=norm_cfg, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + auxiliary_head=None, + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) # yapf: disable diff --git a/configs/dpt/README.md b/configs/dpt/README.md new file mode 100644 index 0000000000..3dd994cc58 --- /dev/null +++ b/configs/dpt/README.md @@ -0,0 +1,47 @@ +# Vision Transformer for Dense Prediction + +## Introduction + + + +```latex +@article{dosoViTskiy2020, + title={An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale}, + author={DosoViTskiy, Alexey and Beyer, Lucas and Kolesnikov, Alexander and Weissenborn, Dirk and Zhai, Xiaohua and Unterthiner, Thomas and Dehghani, Mostafa and Minderer, Matthias and Heigold, Georg and Gelly, Sylvain and Uszkoreit, Jakob and Houlsby, Neil}, + journal={arXiv preprint arXiv:2010.11929}, + year={2020} +} + +@article{Ranftl2021, + author = {Ren\'{e} Ranftl and Alexey Bochkovskiy and Vladlen Koltun}, + title = {Vision Transformers for Dense Prediction}, + journal = {ArXiv preprint}, + year = {2021}, +} +``` + +## Usage + +To use other repositories' pre-trained models, it is necessary to convert keys. + +We provide a script [`vit2mmseg.py`](../../tools/model_converters/vit2mmseg.py) in the tools directory to convert the key of models from [timm](https://github.com/rwightman/pytorch-image-models/blob/master/timm/models/vision_transformer.py) to MMSegmentation style. + +```shell +python tools/model_converters/vit2mmseg.py ${PRETRAIN_PATH} ${STORE_PATH} +``` + +E.g. + +```shell +python tools/model_converters/vit2mmseg.py https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-vitjx/jx_vit_base_p16_224-80ecf9dd.pth pretrain/jx_vit_base_p16_224-80ecf9dd.pth +``` + +This script convert model from `PRETRAIN_PATH` and store the converted model in `STORE_PATH`. + +## Results and models + +### ADE20K + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ---------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| DPT | ViT-B | 512x512 | 160000 | 8.09 | 10.41 | 46.97 | 48.34 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dpt/dpt_vit-b16_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dpt/dpt_vit-b16_512x512_160k_ade20k/dpt_vit-b16_512x512_160k_ade20k-db31cf52.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dpt/dpt_vit-b16_512x512_160k_ade20k/dpt_vit-b16_512x512_160k_ade20k-20210809_172025.log.json) | diff --git a/configs/dpt/dpt.yml b/configs/dpt/dpt.yml new file mode 100644 index 0000000000..affb8d4f3f --- /dev/null +++ b/configs/dpt/dpt.yml @@ -0,0 +1,28 @@ +Collections: +- Metadata: + Training Data: + - ADE20K + Name: dpt +Models: +- Config: configs/dpt/dpt_vit-b16_512x512_160k_ade20k.py + In Collection: dpt + Metadata: + backbone: ViT-B + crop size: (512,512) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (512,512) + value: 96.06 + lr schd: 160000 + memory (GB): 8.09 + Name: dpt_vit-b16_512x512_160k_ade20k + Results: + Dataset: ADE20K + Metrics: + mIoU: 46.97 + mIoU(ms+flip): 48.34 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dpt/dpt_vit-b16_512x512_160k_ade20k/dpt_vit-b16_512x512_160k_ade20k-db31cf52.pth diff --git a/configs/dpt/dpt_vit-b16_512x512_160k_ade20k.py b/configs/dpt/dpt_vit-b16_512x512_160k_ade20k.py new file mode 100644 index 0000000000..c751a68232 --- /dev/null +++ b/configs/dpt/dpt_vit-b16_512x512_160k_ade20k.py @@ -0,0 +1,32 @@ +_base_ = [ + '../_base_/models/dpt_vit-b16.py', '../_base_/datasets/ade20k.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' +] + +# AdamW optimizer, no weight decay for position embedding & layer norm +# in backbone +optimizer = dict( + _delete_=True, + type='AdamW', + lr=0.00006, + betas=(0.9, 0.999), + weight_decay=0.01, + paramwise_cfg=dict( + custom_keys={ + 'pos_embed': dict(decay_mult=0.), + 'cls_token': dict(decay_mult=0.), + 'norm': dict(decay_mult=0.) + })) + +lr_config = dict( + _delete_=True, + policy='poly', + warmup='linear', + warmup_iters=1500, + warmup_ratio=1e-6, + power=1.0, + min_lr=0.0, + by_epoch=False) + +# By default, models are trained on 8 GPUs with 2 images per GPU +data = dict(samples_per_gpu=2, workers_per_gpu=2) diff --git a/mmseg/models/decode_heads/__init__.py b/mmseg/models/decode_heads/__init__.py index b0daf0e1cb..f13f22035b 100644 --- a/mmseg/models/decode_heads/__init__.py +++ b/mmseg/models/decode_heads/__init__.py @@ -6,6 +6,7 @@ from .da_head import DAHead from .dm_head import DMHead from .dnl_head import DNLHead +from .dpt_head import DPTHead from .ema_head import EMAHead from .enc_head import EncHead from .fcn_head import FCNHead @@ -29,5 +30,5 @@ 'UPerHead', 'DepthwiseSeparableASPPHead', 'ANNHead', 'DAHead', 'OCRHead', 'EncHead', 'DepthwiseSeparableFCNHead', 'FPNHead', 'EMAHead', 'DNLHead', 'PointHead', 'APCHead', 'DMHead', 'LRASPPHead', 'SETRUPHead', - 'SETRMLAHead', 'SegformerHead' + 'SETRMLAHead', 'DPTHead', 'SETRMLAHead', 'SegformerHead' ] diff --git a/mmseg/models/decode_heads/dpt_head.py b/mmseg/models/decode_heads/dpt_head.py new file mode 100644 index 0000000000..7028f2a230 --- /dev/null +++ b/mmseg/models/decode_heads/dpt_head.py @@ -0,0 +1,293 @@ +import math + +import torch +import torch.nn as nn +from mmcv.cnn import ConvModule, Linear, build_activation_layer +from mmcv.runner import BaseModule + +from mmseg.ops import resize +from ..builder import HEADS +from .decode_head import BaseDecodeHead + + +class ReassembleBlocks(BaseModule): + """ViTPostProcessBlock, process cls_token in ViT backbone output and + rearrange the feature vector to feature map. + + Args: + in_channels (int): ViT feature channels. Default: 768. + out_channels (List): output channels of each stage. + Default: [96, 192, 384, 768]. + readout_type (str): Type of readout operation. Default: 'ignore'. + patch_size (int): The patch size. Default: 16. + init_cfg (dict, optional): Initialization config dict. Default: None. + """ + + def __init__(self, + in_channels=768, + out_channels=[96, 192, 384, 768], + readout_type='ignore', + patch_size=16, + init_cfg=None): + super(ReassembleBlocks, self).__init__(init_cfg) + + assert readout_type in ['ignore', 'add', 'project'] + self.readout_type = readout_type + self.patch_size = patch_size + + self.projects = nn.ModuleList([ + ConvModule( + in_channels=in_channels, + out_channels=out_channel, + kernel_size=1, + act_cfg=None, + ) for out_channel in out_channels + ]) + + self.resize_layers = nn.ModuleList([ + nn.ConvTranspose2d( + in_channels=out_channels[0], + out_channels=out_channels[0], + kernel_size=4, + stride=4, + padding=0), + nn.ConvTranspose2d( + in_channels=out_channels[1], + out_channels=out_channels[1], + kernel_size=2, + stride=2, + padding=0), + nn.Identity(), + nn.Conv2d( + in_channels=out_channels[3], + out_channels=out_channels[3], + kernel_size=3, + stride=2, + padding=1) + ]) + if self.readout_type == 'project': + self.readout_projects = nn.ModuleList() + for _ in range(len(self.projects)): + self.readout_projects.append( + nn.Sequential( + Linear(2 * in_channels, in_channels), + build_activation_layer(dict(type='GELU')))) + + def forward(self, inputs): + assert isinstance(inputs, list) + out = [] + for i, x in enumerate(inputs): + assert len(x) == 2 + x, cls_token = x[0], x[1] + feature_shape = x.shape + if self.readout_type == 'project': + x = x.flatten(2).permute((0, 2, 1)) + readout = cls_token.unsqueeze(1).expand_as(x) + x = self.readout_projects[i](torch.cat((x, readout), -1)) + x = x.permute(0, 2, 1).reshape(feature_shape) + elif self.readout_type == 'add': + x = x.flatten(2) + cls_token.unsqueeze(-1) + x = x.reshape(feature_shape) + else: + pass + x = self.projects[i](x) + x = self.resize_layers[i](x) + out.append(x) + return out + + +class PreActResidualConvUnit(BaseModule): + """ResidualConvUnit, pre-activate residual unit. + + Args: + in_channels (int): number of channels in the input feature map. + act_cfg (dict): dictionary to construct and config activation layer. + norm_cfg (dict): dictionary to construct and config norm layer. + stride (int): stride of the first block. Default: 1 + dilation (int): dilation rate for convs layers. Default: 1. + init_cfg (dict, optional): Initialization config dict. Default: None. + """ + + def __init__(self, + in_channels, + act_cfg, + norm_cfg, + stride=1, + dilation=1, + init_cfg=None): + super(PreActResidualConvUnit, self).__init__(init_cfg) + + self.conv1 = ConvModule( + in_channels, + in_channels, + 3, + stride=stride, + padding=dilation, + dilation=dilation, + norm_cfg=norm_cfg, + act_cfg=act_cfg, + bias=False, + order=('act', 'conv', 'norm')) + + self.conv2 = ConvModule( + in_channels, + in_channels, + 3, + padding=1, + norm_cfg=norm_cfg, + act_cfg=act_cfg, + bias=False, + order=('act', 'conv', 'norm')) + + def forward(self, inputs): + inputs_ = inputs.clone() + x = self.conv1(inputs) + x = self.conv2(x) + return x + inputs_ + + +class FeatureFusionBlock(BaseModule): + """FeatureFusionBlock, merge feature map from different stages. + + Args: + in_channels (int): Input channels. + act_cfg (dict): The activation config for ResidualConvUnit. + norm_cfg (dict): Config dict for normalization layer. + expand (bool): Whether expand the channels in post process block. + Default: False. + align_corners (bool): align_corner setting for bilinear upsample. + Default: True. + init_cfg (dict, optional): Initialization config dict. Default: None. + """ + + def __init__(self, + in_channels, + act_cfg, + norm_cfg, + expand=False, + align_corners=True, + init_cfg=None): + super(FeatureFusionBlock, self).__init__(init_cfg) + + self.in_channels = in_channels + self.expand = expand + self.align_corners = align_corners + + self.out_channels = in_channels + if self.expand: + self.out_channels = in_channels // 2 + + self.project = ConvModule( + self.in_channels, + self.out_channels, + kernel_size=1, + act_cfg=None, + bias=True) + + self.res_conv_unit1 = PreActResidualConvUnit( + in_channels=self.in_channels, act_cfg=act_cfg, norm_cfg=norm_cfg) + self.res_conv_unit2 = PreActResidualConvUnit( + in_channels=self.in_channels, act_cfg=act_cfg, norm_cfg=norm_cfg) + + def forward(self, *inputs): + x = inputs[0] + if len(inputs) == 2: + if x.shape != inputs[1].shape: + res = resize( + inputs[1], + size=(x.shape[2], x.shape[3]), + mode='bilinear', + align_corners=False) + else: + res = inputs[1] + x = x + self.res_conv_unit1(res) + x = self.res_conv_unit2(x) + x = resize( + x, + scale_factor=2, + mode='bilinear', + align_corners=self.align_corners) + x = self.project(x) + return x + + +@HEADS.register_module() +class DPTHead(BaseDecodeHead): + """Vision Transformers for Dense Prediction. + + This head is implemented of `DPT `_. + + Args: + embed_dims (int): The embed dimension of the ViT backbone. + Default: 768. + post_process_channels (List): Out channels of post process conv + layers. Default: [96, 192, 384, 768]. + readout_type (str): Type of readout operation. Default: 'ignore'. + patch_size (int): The patch size. Default: 16. + expand_channels (bool): Whether expand the channels in post process + block. Default: False. + act_cfg (dict): The activation config for residual conv unit. + Defalut dict(type='ReLU'). + norm_cfg (dict): Config dict for normalization layer. + Default: dict(type='BN'). + """ + + def __init__(self, + embed_dims=768, + post_process_channels=[96, 192, 384, 768], + readout_type='ignore', + patch_size=16, + expand_channels=False, + act_cfg=dict(type='ReLU'), + norm_cfg=dict(type='BN'), + **kwargs): + super(DPTHead, self).__init__(**kwargs) + + self.in_channels = self.in_channels + self.expand_channels = expand_channels + self.reassemble_blocks = ReassembleBlocks(embed_dims, + post_process_channels, + readout_type, patch_size) + + self.post_process_channels = [ + channel * math.pow(2, i) if expand_channels else channel + for i, channel in enumerate(post_process_channels) + ] + self.convs = nn.ModuleList() + for channel in self.post_process_channels: + self.convs.append( + ConvModule( + channel, + self.channels, + kernel_size=3, + padding=1, + act_cfg=None, + bias=False)) + self.fusion_blocks = nn.ModuleList() + for _ in range(len(self.convs)): + self.fusion_blocks.append( + FeatureFusionBlock(self.channels, act_cfg, norm_cfg)) + self.fusion_blocks[0].res_conv_unit1 = None + self.project = ConvModule( + self.channels, + self.channels, + kernel_size=3, + padding=1, + norm_cfg=norm_cfg) + self.num_fusion_blocks = len(self.fusion_blocks) + self.num_reassemble_blocks = len(self.reassemble_blocks.resize_layers) + self.num_post_process_channels = len(self.post_process_channels) + assert self.num_fusion_blocks == self.num_reassemble_blocks + assert self.num_reassemble_blocks == self.num_post_process_channels + + def forward(self, inputs): + assert len(inputs) == self.num_reassemble_blocks + x = self._transform_inputs(inputs) + x = self.reassemble_blocks(x) + x = [self.convs[i](feature) for i, feature in enumerate(x)] + out = self.fusion_blocks[0](x[-1]) + for i in range(1, len(self.fusion_blocks)): + out = self.fusion_blocks[i](out, x[-(i + 1)]) + out = self.project(out) + out = self.cls_seg(out) + return out diff --git a/model-index.yml b/model-index.yml index 1e39e30197..d08ad33178 100644 --- a/model-index.yml +++ b/model-index.yml @@ -8,6 +8,7 @@ Import: - configs/deeplabv3plus/deeplabv3plus.yml - configs/dmnet/dmnet.yml - configs/dnlnet/dnlnet.yml +- configs/dpt/dpt.yml - configs/emanet/emanet.yml - configs/encnet/encnet.yml - configs/fastscnn/fastscnn.yml diff --git a/tests/test_models/test_heads/test_dpt_head.py b/tests/test_models/test_heads/test_dpt_head.py new file mode 100644 index 0000000000..5b0e9ebc4c --- /dev/null +++ b/tests/test_models/test_heads/test_dpt_head.py @@ -0,0 +1,48 @@ +import pytest +import torch + +from mmseg.models.decode_heads import DPTHead + + +def test_dpt_head(): + + with pytest.raises(AssertionError): + # input_transform must be 'multiple_select' + head = DPTHead( + in_channels=[768, 768, 768, 768], + channels=256, + num_classes=19, + in_index=[0, 1, 2, 3]) + + head = DPTHead( + in_channels=[768, 768, 768, 768], + channels=256, + num_classes=19, + in_index=[0, 1, 2, 3], + input_transform='multiple_select') + + inputs = [[torch.randn(4, 768, 2, 2), + torch.randn(4, 768)] for _ in range(4)] + output = head(inputs) + assert output.shape == torch.Size((4, 19, 16, 16)) + + # test readout operation + head = DPTHead( + in_channels=[768, 768, 768, 768], + channels=256, + num_classes=19, + in_index=[0, 1, 2, 3], + input_transform='multiple_select', + readout_type='add') + output = head(inputs) + assert output.shape == torch.Size((4, 19, 16, 16)) + + head = DPTHead( + in_channels=[768, 768, 768, 768], + channels=256, + num_classes=19, + in_index=[0, 1, 2, 3], + input_transform='multiple_select', + readout_type='project') + output = head(inputs) + assert output.shape == torch.Size((4, 19, 16, 16)) From 4a77b2a34e9e255c4eea28d1c04ab2018644fdb0 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Wed, 1 Sep 2021 22:43:38 +0800 Subject: [PATCH 225/706] Bump to v0.17.0 (#841) --- README.md | 2 +- README_zh-CN.md | 2 +- docker/serve/Dockerfile | 4 ++-- docs/changelog.md | 31 +++++++++++++++++++++++++++++++ docs/get_started.md | 1 + docs_zh-CN/get_started.md | 1 + mmseg/version.py | 2 +- 7 files changed, 38 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index a4f4a091ef..195988b0bd 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ This project is released under the [Apache 2.0 license](LICENSE). ## Changelog -v0.16.0 was released in 08/04/2021. +v0.17.0 was released in 09/01/2021. Please refer to [changelog.md](docs/changelog.md) for details and release history. ## Benchmark and model zoo diff --git a/README_zh-CN.md b/README_zh-CN.md index 42e3e7fdbe..757103d3b7 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -47,7 +47,7 @@ MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 O ## 更新日志 -最新的月度版本 v0.16.0 在 2021.08.04 发布。 +最新的月度版本 v0.17.0 在 2021.09.01 发布。 如果想了解更多版本更新细节和历史信息,请阅读[更新日志](docs/changelog.md)。 ## 基准测试和模型库 diff --git a/docker/serve/Dockerfile b/docker/serve/Dockerfile index 5b71998686..20ad07dff2 100644 --- a/docker/serve/Dockerfile +++ b/docker/serve/Dockerfile @@ -3,8 +3,8 @@ ARG CUDA="10.1" ARG CUDNN="7" FROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel -ARG MMCV="1.3.1" -ARG MMSEG="0.13.0" +ARG MMCV="1.3.12" +ARG MMSEG="0.17.0" ENV PYTHONUNBUFFERED TRUE diff --git a/docs/changelog.md b/docs/changelog.md index 7b8c5f184b..d8f1d493c3 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,5 +1,36 @@ ## Changelog +### V0.17 (09/01/2021) + +**Highlights** + +- Support SegFormer +- Support DPT +- Support Dark Zurich and Nighttime Driving datasets +- Support progressive evaluation + +**New Features** + +- Support SegFormer ([#599](https://github.com/open-mmlab/mmsegmentation/pull/599)) +- Support DPT ([#605](https://github.com/open-mmlab/mmsegmentation/pull/605)) +- Support Dark Zurich and Nighttime Driving datasets ([#815](https://github.com/open-mmlab/mmsegmentation/pull/815)) +- Support progressive evaluation ([#709](https://github.com/open-mmlab/mmsegmentation/pull/709)) + +**Improvements** + +- Add multiscale_output interface and unittests for HRNet ([#830](https://github.com/open-mmlab/mmsegmentation/pull/830)) +- Support inherit cityscapes dataset ([#750](https://github.com/open-mmlab/mmsegmentation/pull/750)) +- Fix some typos in README.md ([#824](https://github.com/open-mmlab/mmsegmentation/pull/824)) +- Delete convert function and add instruction to ViT/Swin README.md ([#791](https://github.com/open-mmlab/mmsegmentation/pull/791)) +- Add vit/swin/mit convert weight scripts ([#783](https://github.com/open-mmlab/mmsegmentation/pull/783)) +- Add copyright files ([#796](https://github.com/open-mmlab/mmsegmentation/pull/796)) + +**Bug Fixes** + +- Fix invalid checkpoint link in inference_demo.ipynb ([#814](https://github.com/open-mmlab/mmsegmentation/pull/814)) +- Ensure that items in dataset have the same order across multi machine ([#780](https://github.com/open-mmlab/mmsegmentation/pull/780)) +- Fix the log error ([#766](https://github.com/open-mmlab/mmsegmentation/pull/766)) + ### V0.16 (08/04/2021) **Highlights** diff --git a/docs/get_started.md b/docs/get_started.md index ccf9d94321..d8342bfb72 100644 --- a/docs/get_started.md +++ b/docs/get_started.md @@ -12,6 +12,7 @@ The compatible MMSegmentation and MMCV versions are as below. Please install the | MMSegmentation version | MMCV version | |:-------------------:|:-------------------:| | master | mmcv-full>=1.3.7, <1.4.0 | +| 0.17.0 | mmcv-full>=1.3.7, <1.4.0 | | 0.16.0 | mmcv-full>=1.3.7, <1.4.0 | | 0.15.0 | mmcv-full>=1.3.7, <1.4.0 | | 0.14.1 | mmcv-full>=1.3.7, <1.4.0 | diff --git a/docs_zh-CN/get_started.md b/docs_zh-CN/get_started.md index 2f5730e105..de2dcda4b9 100644 --- a/docs_zh-CN/get_started.md +++ b/docs_zh-CN/get_started.md @@ -12,6 +12,7 @@ | MMSegmentation 版本 | MMCV 版本 | |:-------------------:|:-------------------:| | master | mmcv-full>=1.3.7, <1.4.0 | +| 0.17.0 | mmcv-full>=1.3.7, <1.4.0 | | 0.16.0 | mmcv-full>=1.3.7, <1.4.0 | | 0.15.0 | mmcv-full>=1.3.7, <1.4.0 | | 0.14.1 | mmcv-full>=1.3.7, <1.4.0 | diff --git a/mmseg/version.py b/mmseg/version.py index 34877bdff8..bf9fdb7351 100644 --- a/mmseg/version.py +++ b/mmseg/version.py @@ -1,6 +1,6 @@ # Copyright (c) Open-MMLab. All rights reserved. -__version__ = '0.16.0' +__version__ = '0.17.0' def parse_version_info(version_str): From 42a1929779e7264a05227d2d76d8e006b0a71704 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Thu, 2 Sep 2021 09:38:58 +0800 Subject: [PATCH 226/706] Add MMSeg citation (#825) * fix typo * add citation --- CITATION.cff | 8 ++++++++ setup.py | 6 +++--- 2 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 CITATION.cff diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 0000000000..cfd7cab05d --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,8 @@ +cff-version: 1.2.0 +message: "If you use this software, please cite it as below." +authors: + - name: "MMSegmentation Contributors" +title: "OpenMMLab Semantic Segmentation Toolbox and Benchmark" +date-released: 2020-07-10 +url: "https://github.com/open-mmlab/mmsegmentation" +license: Apache-2.0 diff --git a/setup.py b/setup.py index bc85294970..6ae6da2ee4 100755 --- a/setup.py +++ b/setup.py @@ -98,7 +98,7 @@ def gen_packages_items(): return packages -def add_mim_extention(): +def add_mim_extension(): """Add extra files that are required to support MIM into the package. These files will be added by creating a symlink to the originals if the @@ -147,14 +147,14 @@ def add_mim_extention(): if __name__ == '__main__': - add_mim_extention() + add_mim_extension() setup( name='mmsegmentation', version=get_version(), description='Open MMLab Semantic Segmentation Toolbox and Benchmark', long_description=readme(), long_description_content_type='text/markdown', - author='MMSegmentation Authors', + author='MMSegmentation Contributors', author_email='openmmlab@gmail.com', keywords='computer vision, semantic segmentation', url='http://github.com/open-mmlab/mmsegmentation', From f769e26387fae84408956c0a06513ff7f280b6da Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Thu, 2 Sep 2021 09:39:44 +0800 Subject: [PATCH 227/706] Show supported python versions in README (#826) --- README.md | 1 + README_zh-CN.md | 1 + 2 files changed, 2 insertions(+) diff --git a/README.md b/README.md index 195988b0bd..37b43a978c 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@
    +[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mmsegmentation)](https://pypi.org/project/mmsegmentation/) [![PyPI](https://img.shields.io/pypi/v/mmsegmentation)](https://pypi.org/project/mmsegmentation) [![docs](https://img.shields.io/badge/docs-latest-blue)](https://mmsegmentation.readthedocs.io/en/latest/) [![badge](https://github.com/open-mmlab/mmsegmentation/workflows/build/badge.svg)](https://github.com/open-mmlab/mmsegmentation/actions) diff --git a/README_zh-CN.md b/README_zh-CN.md index 757103d3b7..fe236de148 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -3,6 +3,7 @@
    +[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mmsegmentation)](https://pypi.org/project/mmsegmentation/) [![PyPI](https://img.shields.io/pypi/v/mmsegmentation)](https://pypi.org/project/mmsegmentation) [![docs](https://img.shields.io/badge/docs-latest-blue)](https://mmsegmentation.readthedocs.io/zh_CN/latest/) [![badge](https://github.com/open-mmlab/mmsegmentation/workflows/build/badge.svg)](https://github.com/open-mmlab/mmsegmentation/actions) From 9186858336d7c27bd3c58afbcfea99fa93e202d3 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Thu, 2 Sep 2021 09:45:53 +0800 Subject: [PATCH 228/706] Fix sphinx version (#827) --- requirements/docs.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements/docs.txt b/requirements/docs.txt index 89fbf86c01..866c4d323e 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -1,4 +1,4 @@ recommonmark -sphinx +sphinx==4.0.2 sphinx_markdown_tables -sphinx_rtd_theme +sphinx_rtd_theme==0.5.2 From 767de8f4d934b7053b0fa0f31b203aef8c5eef0e Mon Sep 17 00:00:00 2001 From: MengzhangLI Date: Thu, 2 Sep 2021 17:06:43 +0800 Subject: [PATCH 229/706] [Fix] Fix docstring link problem in readthedocs (#845) * fix docstring link * fix docstring link * fix docstring link * fix docstring link * fix docstring link * fix docstring link --- mmseg/datasets/pipelines/formating.py | 6 +++--- mmseg/models/backbones/cgnet.py | 4 ++-- mmseg/models/backbones/fast_scnn.py | 3 +++ mmseg/models/backbones/hrnet.py | 4 ++-- mmseg/models/backbones/mit.py | 6 +++--- mmseg/models/backbones/mobilenet_v2.py | 4 ++++ mmseg/models/backbones/resnest.py | 3 +++ mmseg/models/backbones/resnet.py | 12 +++++++----- mmseg/models/backbones/resnext.py | 4 ++++ mmseg/models/backbones/swin.py | 11 +++++------ mmseg/models/backbones/unet.py | 6 +++--- mmseg/models/backbones/vit.py | 6 +++--- mmseg/models/decode_heads/point_head.py | 2 ++ mmseg/models/decode_heads/sep_fcn_head.py | 4 +++- mmseg/models/necks/fpn.py | 4 ++-- mmseg/models/necks/mla_neck.py | 4 ++-- mmseg/models/necks/multilevel_neck.py | 1 + 17 files changed, 52 insertions(+), 32 deletions(-) diff --git a/mmseg/datasets/pipelines/formating.py b/mmseg/datasets/pipelines/formating.py index 45824fc405..4e057c1b81 100644 --- a/mmseg/datasets/pipelines/formating.py +++ b/mmseg/datasets/pipelines/formating.py @@ -249,9 +249,9 @@ class Collect(object): keys (Sequence[str]): Keys of results to be collected in ``data``. meta_keys (Sequence[str], optional): Meta keys to be converted to ``mmcv.DataContainer`` and collected in ``data[img_metas]``. - Default: ``('filename', 'ori_filename', 'ori_shape', 'img_shape', - 'pad_shape', 'scale_factor', 'flip', 'flip_direction', - 'img_norm_cfg')`` + Default: (``filename``, ``ori_filename``, ``ori_shape``, + ``img_shape``, ``pad_shape``, ``scale_factor``, ``flip``, + ``flip_direction``, ``img_norm_cfg``) """ def __init__(self, diff --git a/mmseg/models/backbones/cgnet.py b/mmseg/models/backbones/cgnet.py index 67c06717ba..168194c106 100644 --- a/mmseg/models/backbones/cgnet.py +++ b/mmseg/models/backbones/cgnet.py @@ -187,8 +187,8 @@ def forward(self, x): class CGNet(BaseModule): """CGNet backbone. - A Light-weight Context Guided Network for Semantic Segmentation - arXiv: https://arxiv.org/abs/1811.08201 + This backbone is the implementation of `A Light-weight Context Guided + Network for Semantic Segmentation `_. Args: in_channels (int): Number of input image channels. Normally 3. diff --git a/mmseg/models/backbones/fast_scnn.py b/mmseg/models/backbones/fast_scnn.py index 95a434413b..cbfbcaf4f3 100644 --- a/mmseg/models/backbones/fast_scnn.py +++ b/mmseg/models/backbones/fast_scnn.py @@ -272,6 +272,9 @@ def forward(self, higher_res_feature, lower_res_feature): class FastSCNN(BaseModule): """Fast-SCNN Backbone. + This backbone is the implementation of `Fast-SCNN: Fast Semantic + Segmentation Network `_. + Args: in_channels (int): Number of input image channels. Default: 3. downsample_dw_channels (tuple[int]): Number of output channels after diff --git a/mmseg/models/backbones/hrnet.py b/mmseg/models/backbones/hrnet.py index a0b1e47cde..90feadcf62 100644 --- a/mmseg/models/backbones/hrnet.py +++ b/mmseg/models/backbones/hrnet.py @@ -218,8 +218,8 @@ def forward(self, x): class HRNet(BaseModule): """HRNet backbone. - `High-Resolution Representations for Labeling Pixels and Regions - arXiv: `_. + This backbone is the implementation of `High-Resolution Representations + for Labeling Pixels and Regions `_. Args: extra (dict): Detailed configuration for each stage of HRNet. diff --git a/mmseg/models/backbones/mit.py b/mmseg/models/backbones/mit.py index 90abfe539b..ee8bbfab45 100644 --- a/mmseg/models/backbones/mit.py +++ b/mmseg/models/backbones/mit.py @@ -246,9 +246,9 @@ def forward(self, x, hw_shape): class MixVisionTransformer(BaseModule): """The backbone of Segformer. - A PyTorch implement of : `SegFormer: Simple and Efficient Design for - Semantic Segmentation with Transformers` - - https://arxiv.org/pdf/2105.15203.pdf + This backbone is the implementation of `SegFormer: Simple and + Efficient Design for Semantic Segmentation with + Transformers `_. Args: in_channels (int): Number of input channels. Default: 3. diff --git a/mmseg/models/backbones/mobilenet_v2.py b/mmseg/models/backbones/mobilenet_v2.py index 988e29cdea..cbb9c6cd01 100644 --- a/mmseg/models/backbones/mobilenet_v2.py +++ b/mmseg/models/backbones/mobilenet_v2.py @@ -14,6 +14,10 @@ class MobileNetV2(BaseModule): """MobileNetV2 backbone. + This backbone is the implementation of + `MobileNetV2: Inverted Residuals and Linear Bottlenecks + `_. + Args: widen_factor (float): Width multiplier, multiply number of channels in each layer by this amount. Default: 1.0. diff --git a/mmseg/models/backbones/resnest.py b/mmseg/models/backbones/resnest.py index f47adb5302..91952c2caf 100644 --- a/mmseg/models/backbones/resnest.py +++ b/mmseg/models/backbones/resnest.py @@ -271,6 +271,9 @@ def _inner_forward(x): class ResNeSt(ResNetV1d): """ResNeSt backbone. + This backbone is the implementation of `ResNeSt: + Split-Attention Networks `_. + Args: groups (int): Number of groups of Bottleneck. Default: 1 base_width (int): Base width of Bottleneck. Default: 4 diff --git a/mmseg/models/backbones/resnet.py b/mmseg/models/backbones/resnet.py index f9a1ceb4e0..e8b961d5fa 100644 --- a/mmseg/models/backbones/resnet.py +++ b/mmseg/models/backbones/resnet.py @@ -311,6 +311,9 @@ def _inner_forward(x): class ResNet(BaseModule): """ResNet backbone. + This backbone is the improved implementation of `Deep Residual Learning + for Image Recognition `_. + Args: depth (int): Depth of resnet, from {18, 34, 50, 101, 152}. in_channels (int): Number of input image channels. Default: 3. @@ -686,11 +689,10 @@ def train(self, mode=True): class ResNetV1c(ResNet): """ResNetV1c variant described in [1]_. - Compared with default ResNet(ResNetV1b), ResNetV1c replaces the 7x7 conv - in the input stem with three 3x3 convs. - - References: - .. [1] https://arxiv.org/pdf/1812.01187.pdf + Compared with default ResNet(ResNetV1b), ResNetV1c replaces the 7x7 conv in + the input stem with three 3x3 convs. For more details please refer to `Bag + of Tricks for Image Classification with Convolutional Neural Networks + `_. """ def __init__(self, **kwargs): diff --git a/mmseg/models/backbones/resnext.py b/mmseg/models/backbones/resnext.py index 450b77bb76..805c27bf33 100644 --- a/mmseg/models/backbones/resnext.py +++ b/mmseg/models/backbones/resnext.py @@ -88,6 +88,10 @@ def __init__(self, class ResNeXt(ResNet): """ResNeXt backbone. + This backbone is the implementation of `Aggregated + Residual Transformations for Deep Neural + Networks `_. + Args: depth (int): Depth of resnet, from {18, 34, 50, 101, 152}. in_channels (int): Number of input image channels. Normally 3. diff --git a/mmseg/models/backbones/swin.py b/mmseg/models/backbones/swin.py index e3e835a032..424c456cb3 100644 --- a/mmseg/models/backbones/swin.py +++ b/mmseg/models/backbones/swin.py @@ -522,13 +522,12 @@ def forward(self, x, hw_shape): @BACKBONES.register_module() class SwinTransformer(BaseModule): - """ Swin Transformer - A PyTorch implement of : `Swin Transformer: - Hierarchical Vision Transformer using Shifted Windows` - - https://arxiv.org/abs/2103.14030 + """Swin Transformer backbone. - Inspiration from - https://github.com/microsoft/Swin-Transformer + This backbone is the implementation of `Swin Transformer: + Hierarchical Vision Transformer using Shifted + Windows `_. + Inspiration from https://github.com/microsoft/Swin-Transformer. Args: pretrain_img_size (int | tuple[int]): The size of input image when diff --git a/mmseg/models/backbones/unet.py b/mmseg/models/backbones/unet.py index 680c79e320..c2d33667f8 100644 --- a/mmseg/models/backbones/unet.py +++ b/mmseg/models/backbones/unet.py @@ -224,8 +224,9 @@ def forward(self, x): @BACKBONES.register_module() class UNet(BaseModule): """UNet backbone. - U-Net: Convolutional Networks for Biomedical Image Segmentation. - https://arxiv.org/pdf/1505.04597.pdf + + This backbone is the implementation of `U-Net: Convolutional Networks + for Biomedical Image Segmentation `_. Args: in_channels (int): Number of input image channels. Default" 3. @@ -277,7 +278,6 @@ class UNet(BaseModule): The input image size should be divisible by the whole downsample rate of the encoder. More detail of the whole downsample rate can be found in UNet._check_input_divisible. - """ def __init__(self, diff --git a/mmseg/models/backbones/vit.py b/mmseg/models/backbones/vit.py index 003fa537e6..668d278992 100644 --- a/mmseg/models/backbones/vit.py +++ b/mmseg/models/backbones/vit.py @@ -98,9 +98,9 @@ def forward(self, x): class VisionTransformer(BaseModule): """Vision Transformer. - A PyTorch implement of : `An Image is Worth 16x16 Words: - Transformers for Image Recognition at Scale` - - https://arxiv.org/abs/2010.11929 + This backbone is the implementation of `An Image is Worth 16x16 Words: + Transformers for Image Recognition at + Scale `_. Args: img_size (int | tuple): Input image size. Default: 224. diff --git a/mmseg/models/decode_heads/point_head.py b/mmseg/models/decode_heads/point_head.py index 4bc388cbc0..4470571144 100644 --- a/mmseg/models/decode_heads/point_head.py +++ b/mmseg/models/decode_heads/point_head.py @@ -36,6 +36,8 @@ def calculate_uncertainty(seg_logits): class PointHead(BaseCascadeDecodeHead): """A mask point head use in PointRend. + This head is implemented of `PointRend: Image Segmentation as + Rendering `_. ``PointHead`` use shared multi-layer perceptron (equivalent to nn.Conv1d) to predict the logit of input points. The fine-grained feature and coarse feature will be concatenate together for predication. diff --git a/mmseg/models/decode_heads/sep_fcn_head.py b/mmseg/models/decode_heads/sep_fcn_head.py index 5e22a66f7c..7f9658e08f 100644 --- a/mmseg/models/decode_heads/sep_fcn_head.py +++ b/mmseg/models/decode_heads/sep_fcn_head.py @@ -10,7 +10,9 @@ class DepthwiseSeparableFCNHead(FCNHead): """Depthwise-Separable Fully Convolutional Network for Semantic Segmentation. - This head is implemented according to Fast-SCNN paper. + This head is implemented according to `Fast-SCNN: Fast Semantic + Segmentation Network `_. + Args: in_channels(int): Number of output channels of FFM. channels(int): Number of middle-stage channels in the decode head. diff --git a/mmseg/models/necks/fpn.py b/mmseg/models/necks/fpn.py index 8461a75e49..bc237428e9 100644 --- a/mmseg/models/necks/fpn.py +++ b/mmseg/models/necks/fpn.py @@ -12,8 +12,8 @@ class FPN(BaseModule): """Feature Pyramid Network. - This is an implementation of - Feature Pyramid Networks for Object - Detection (https://arxiv.org/abs/1612.03144) + This neck is the implementation of `Feature Pyramid Networks for Object + Detection `_. Args: in_channels (List[int]): Number of input channels per scale. diff --git a/mmseg/models/necks/mla_neck.py b/mmseg/models/necks/mla_neck.py index 5fc3b98b0b..1513e296da 100644 --- a/mmseg/models/necks/mla_neck.py +++ b/mmseg/models/necks/mla_neck.py @@ -63,8 +63,8 @@ def forward(self, inputs): class MLANeck(nn.Module): """Multi-level Feature Aggregation. - The Multi-level Feature Aggregation construction of SETR: - https://arxiv.org/pdf/2012.15840.pdf + This neck is `The Multi-level Feature Aggregation construction of + SETR `_. Args: diff --git a/mmseg/models/necks/multilevel_neck.py b/mmseg/models/necks/multilevel_neck.py index cbf4b01176..5151f8762d 100644 --- a/mmseg/models/necks/multilevel_neck.py +++ b/mmseg/models/necks/multilevel_neck.py @@ -11,6 +11,7 @@ class MultiLevelNeck(nn.Module): """MultiLevelNeck. A neck structure connect vit backbone and decoder_heads. + Args: in_channels (List[int]): Number of input channels per scale. out_channels (int): Number of output channels (used at each scale). From d3dc4f95839542a9356ac97a41e06440d0b8e76e Mon Sep 17 00:00:00 2001 From: sennnnn <58427300+sennnnn@users.noreply.github.com> Date: Fri, 3 Sep 2021 00:44:51 +0800 Subject: [PATCH 230/706] [Enhancement] Add Dev tools to boost develop (#798) * Modify default work dir when training. * Refactor gather_models.py. * Add train and test matching list. * Regression benchmark list. * lower readme name to upper readme name. * Add url check tool and model inference test tool. * Modify tool name. * Support duplicate mode of log json url check. * Add regression benchmark evaluation automatic tool. * Add train script generator. * Only Support script running. * Add evaluation results gather. * Add exec Authority. * Automatically make checkpoint root folder. * Modify gather results save path. * Coarse-grained train results gather tool. * Complete benchmark train script. * Make some little modifications. * Fix checkpoint urls. * Fix unet checkpoint urls. * Fix fast scnn & fcn checkpoint url. * Fix fast scnn checkpoint urls. * Fix fast scnn url. * Add differential results calculation. * Add differential results of regression benchmark train results. * Add an extra argument to select model. * Update nonlocal_net & hrnet checkpoint url. * Fix checkpoint url of hrnet and Fix some tta evaluation results and modify gather models tool. * Modify fast scnn checkpoint url. * Resolve new comments. * Fix url check status code bug. * Resolve some comments. * Modify train scripts generator. * Modify work_dir of regression benchmark results. * model gather tool modification. --- .dev/batch_test_list.py | 133 +++++++++++++++++ .dev/batch_train_list.txt | 19 +++ .dev/benchmark_evaluation.sh | 41 +++++ .dev/benchmark_inference.py | 149 +++++++++++++++++++ .dev/benchmark_train.sh | 40 +++++ .dev/check_urls.py | 101 +++++++++++++ .dev/gather_benchmark_evaluation_results.py | 91 +++++++++++ .dev/gather_benchmark_train_results.py | 100 +++++++++++++ .dev/gather_models.py | 107 +++++++------ .dev/generate_benchmark_evaluation_script.py | 114 ++++++++++++++ .dev/generate_benchmark_train_script.py | 91 +++++++++++ .pre-commit-config.yaml | 1 + configs/fastscnn/README.md | 2 +- configs/fastscnn/fastscnn.yml | 2 +- configs/fcn/README.md | 28 ++-- configs/fcn/fcn.yml | 28 ++-- configs/fp16/README.md | 8 +- configs/fp16/fp16.yml | 8 +- configs/hrnet/README.md | 6 +- configs/hrnet/hrnet.yml | 18 +-- configs/nonlocal_net/README.md | 2 +- configs/nonlocal_net/nonlocal_net.yml | 6 +- configs/ocrnet/README.md | 6 +- configs/ocrnet/ocrnet.yml | 6 +- configs/unet/README.md | 8 +- configs/unet/unet.yml | 8 +- configs/vit/README.md | 22 +-- configs/vit/vit.yml | 22 +-- setup.cfg | 2 +- tools/test.py | 24 ++- 30 files changed, 1051 insertions(+), 142 deletions(-) create mode 100644 .dev/batch_test_list.py create mode 100644 .dev/batch_train_list.txt create mode 100755 .dev/benchmark_evaluation.sh create mode 100644 .dev/benchmark_inference.py create mode 100755 .dev/benchmark_train.sh create mode 100644 .dev/check_urls.py create mode 100644 .dev/gather_benchmark_evaluation_results.py create mode 100644 .dev/gather_benchmark_train_results.py create mode 100644 .dev/generate_benchmark_evaluation_script.py create mode 100644 .dev/generate_benchmark_train_script.py diff --git a/.dev/batch_test_list.py b/.dev/batch_test_list.py new file mode 100644 index 0000000000..690615058c --- /dev/null +++ b/.dev/batch_test_list.py @@ -0,0 +1,133 @@ +# yapf: disable +# Inference Speed is tested on NVIDIA V100 +hrnet = [ + dict( + config='configs/hrnet/fcn_hr18s_512x512_160k_ade20k.py', + checkpoint='fcn_hr18s_512x512_160k_ade20k_20200614_214413-870f65ac.pth', # noqa + eval='mIoU', + metric=dict(mIoU=33.0), + ), + dict( + config='configs/hrnet/fcn_hr18s_512x1024_160k_cityscapes.py', + checkpoint='fcn_hr18s_512x1024_160k_cityscapes_20200602_190901-4a0797ea.pth', # noqa + eval='mIoU', + metric=dict(mIoU=76.31), + ), + dict( + config='configs/hrnet/fcn_hr48_512x512_160k_ade20k.py', + checkpoint='fcn_hr48_512x512_160k_ade20k_20200614_214407-a52fc02c.pth', + eval='mIoU', + metric=dict(mIoU=42.02), + ), + dict( + config='configs/hrnet/fcn_hr48_512x1024_160k_cityscapes.py', + checkpoint='fcn_hr48_512x1024_160k_cityscapes_20200602_190946-59b7973e.pth', # noqa + eval='mIoU', + metric=dict(mIoU=80.65), + ), +] +pspnet = [ + dict( + config='configs/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes.py', + checkpoint='pspnet_r50-d8_512x1024_80k_cityscapes_20200606_112131-2376f12b.pth', # noqa + eval='mIoU', + metric=dict(mIoU=78.55), + ), + dict( + config='configs/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py', + checkpoint='pspnet_r101-d8_512x1024_80k_cityscapes_20200606_112211-e1e1100f.pth', # noqa + eval='mIoU', + metric=dict(mIoU=79.76), + ), + dict( + config='configs/pspnet/pspnet_r101-d8_512x512_160k_ade20k.py', + checkpoint='pspnet_r101-d8_512x512_160k_ade20k_20200615_100650-967c316f.pth', # noqa + eval='mIoU', + metric=dict(mIoU=44.39), + ), + dict( + config='configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py', + checkpoint='pspnet_r50-d8_512x512_160k_ade20k_20200615_184358-1890b0bd.pth', # noqa + eval='mIoU', + metric=dict(mIoU=42.48), + ), +] +resnest = [ + dict( + config='configs/resnest/pspnet_s101-d8_512x512_160k_ade20k.py', + checkpoint='pspnet_s101-d8_512x512_160k_ade20k_20200807_145416-a6daa92a.pth', # noqa + eval='mIoU', + metric=dict(mIoU=45.44), + ), + dict( + config='configs/resnest/pspnet_s101-d8_512x1024_80k_cityscapes.py', + checkpoint='pspnet_s101-d8_512x1024_80k_cityscapes_20200807_140631-c75f3b99.pth', # noqa + eval='mIoU', + metric=dict(mIoU=78.57), + ), +] +fastscnn = [ + dict( + config='configs/fastscnn/fast_scnn_lr0.12_8x4_160k_cityscapes.py', + checkpoint='fast_scnn_8x4_160k_lr0.12_cityscapes-0cec9937.pth', + eval='mIoU', + metric=dict(mIoU=70.96), + ) +] +deeplabv3plus = [ + dict( + config='configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes.py', # noqa + checkpoint='deeplabv3plus_r101-d8_769x769_80k_cityscapes_20200607_000405-a7573d20.pth', # noqa + eval='mIoU', + metric=dict(mIoU=80.98), + ), + dict( + config='configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py', # noqa + checkpoint='deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143-068fcfe9.pth', # noqa + eval='mIoU', + metric=dict(mIoU=80.97), + ), + dict( + config='configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py', # noqa + checkpoint='deeplabv3plus_r50-d8_512x1024_80k_cityscapes_20200606_114049-f9fb496d.pth', # noqa + eval='mIoU', + metric=dict(mIoU=80.09), + ), + dict( + config='configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py', # noqa + checkpoint='deeplabv3plus_r50-d8_769x769_80k_cityscapes_20200606_210233-0e9dfdc4.pth', # noqa + eval='mIoU', + metric=dict(mIoU=79.83), + ), +] +vit = [ + dict( + config='configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py', + checkpoint='upernet_vit-b16_ln_mln_512x512_160k_ade20k-f444c077.pth', + eval='mIoU', + metric=dict(mIoU=47.73), + ), + dict( + config='configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py', + checkpoint='upernet_deit-s16_ln_mln_512x512_160k_ade20k-c0cd652f.pth', + eval='mIoU', + metric=dict(mIoU=43.52), + ), +] +fp16 = [ + dict( + config='configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py', # noqa + checkpoint='deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes-cc58bc8d.pth', # noqa + eval='mIoU', + metric=dict(mIoU=80.46), + ) +] +swin = [ + dict( + config='configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py', # noqa + checkpoint='upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K_20210531_112542-e380ad3e.pth', # noqa + eval='mIoU', + metric=dict(mIoU=44.41), + ) +] +# yapf: enable diff --git a/.dev/batch_train_list.txt b/.dev/batch_train_list.txt new file mode 100644 index 0000000000..3f406a5f44 --- /dev/null +++ b/.dev/batch_train_list.txt @@ -0,0 +1,19 @@ +configs/hrnet/fcn_hr18s_512x512_160k_ade20k.py +configs/hrnet/fcn_hr18s_512x1024_160k_cityscapes.py +configs/hrnet/fcn_hr48_512x512_160k_ade20k.py +configs/hrnet/fcn_hr48_512x1024_160k_cityscapes.py +configs/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes.py +configs/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py +configs/pspnet/pspnet_r101-d8_512x512_160k_ade20k.py +configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py +configs/resnest/pspnet_s101-d8_512x512_160k_ade20k.py +configs/resnest/pspnet_s101-d8_512x1024_80k_cityscapes.py +configs/fastscnn/fast_scnn_lr0.12_8x4_160k_cityscapes.py +configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes.py +configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py +configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py +configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py +configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py +configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py +configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py +configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py diff --git a/.dev/benchmark_evaluation.sh b/.dev/benchmark_evaluation.sh new file mode 100755 index 0000000000..b4901fe99e --- /dev/null +++ b/.dev/benchmark_evaluation.sh @@ -0,0 +1,41 @@ +PARTITION=$1 +CHECKPOINT_DIR=$2 + +echo 'configs/hrnet/fcn_hr18s_512x512_160k_ade20k.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 tools/slurm_test.sh $PARTITION fcn_hr18s_512x512_160k_ade20k configs/hrnet/fcn_hr18s_512x512_160k_ade20k.py $CHECKPOINT_DIR/fcn_hr18s_512x512_160k_ade20k_20200614_214413-870f65ac.pth --eval mIoU --work-dir work_dirs/benchmark_evaluation/fcn_hr18s_512x512_160k_ade20k --options dist_params.port=28171 & +echo 'configs/hrnet/fcn_hr18s_512x1024_160k_cityscapes.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 tools/slurm_test.sh $PARTITION fcn_hr18s_512x1024_160k_cityscapes configs/hrnet/fcn_hr18s_512x1024_160k_cityscapes.py $CHECKPOINT_DIR/fcn_hr18s_512x1024_160k_cityscapes_20200602_190901-4a0797ea.pth --eval mIoU --work-dir work_dirs/benchmark_evaluation/fcn_hr18s_512x1024_160k_cityscapes --options dist_params.port=28172 & +echo 'configs/hrnet/fcn_hr48_512x512_160k_ade20k.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 tools/slurm_test.sh $PARTITION fcn_hr48_512x512_160k_ade20k configs/hrnet/fcn_hr48_512x512_160k_ade20k.py $CHECKPOINT_DIR/fcn_hr48_512x512_160k_ade20k_20200614_214407-a52fc02c.pth --eval mIoU --work-dir work_dirs/benchmark_evaluation/fcn_hr48_512x512_160k_ade20k --options dist_params.port=28173 & +echo 'configs/hrnet/fcn_hr48_512x1024_160k_cityscapes.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 tools/slurm_test.sh $PARTITION fcn_hr48_512x1024_160k_cityscapes configs/hrnet/fcn_hr48_512x1024_160k_cityscapes.py $CHECKPOINT_DIR/fcn_hr48_512x1024_160k_cityscapes_20200602_190946-59b7973e.pth --eval mIoU --work-dir work_dirs/benchmark_evaluation/fcn_hr48_512x1024_160k_cityscapes --options dist_params.port=28174 & +echo 'configs/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 tools/slurm_test.sh $PARTITION pspnet_r50-d8_512x1024_80k_cityscapes configs/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes.py $CHECKPOINT_DIR/pspnet_r50-d8_512x1024_80k_cityscapes_20200606_112131-2376f12b.pth --eval mIoU --work-dir work_dirs/benchmark_evaluation/pspnet_r50-d8_512x1024_80k_cityscapes --options dist_params.port=28175 & +echo 'configs/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 tools/slurm_test.sh $PARTITION pspnet_r101-d8_512x1024_80k_cityscapes configs/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py $CHECKPOINT_DIR/pspnet_r101-d8_512x1024_80k_cityscapes_20200606_112211-e1e1100f.pth --eval mIoU --work-dir work_dirs/benchmark_evaluation/pspnet_r101-d8_512x1024_80k_cityscapes --options dist_params.port=28176 & +echo 'configs/pspnet/pspnet_r101-d8_512x512_160k_ade20k.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 tools/slurm_test.sh $PARTITION pspnet_r101-d8_512x512_160k_ade20k configs/pspnet/pspnet_r101-d8_512x512_160k_ade20k.py $CHECKPOINT_DIR/pspnet_r101-d8_512x512_160k_ade20k_20200615_100650-967c316f.pth --eval mIoU --work-dir work_dirs/benchmark_evaluation/pspnet_r101-d8_512x512_160k_ade20k --options dist_params.port=28177 & +echo 'configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 tools/slurm_test.sh $PARTITION pspnet_r50-d8_512x512_160k_ade20k configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py $CHECKPOINT_DIR/pspnet_r50-d8_512x512_160k_ade20k_20200615_184358-1890b0bd.pth --eval mIoU --work-dir work_dirs/benchmark_evaluation/pspnet_r50-d8_512x512_160k_ade20k --options dist_params.port=28178 & +echo 'configs/resnest/pspnet_s101-d8_512x512_160k_ade20k.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 tools/slurm_test.sh $PARTITION pspnet_s101-d8_512x512_160k_ade20k configs/resnest/pspnet_s101-d8_512x512_160k_ade20k.py $CHECKPOINT_DIR/pspnet_s101-d8_512x512_160k_ade20k_20200807_145416-a6daa92a.pth --eval mIoU --work-dir work_dirs/benchmark_evaluation/pspnet_s101-d8_512x512_160k_ade20k --options dist_params.port=28179 & +echo 'configs/resnest/pspnet_s101-d8_512x1024_80k_cityscapes.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 tools/slurm_test.sh $PARTITION pspnet_s101-d8_512x1024_80k_cityscapes configs/resnest/pspnet_s101-d8_512x1024_80k_cityscapes.py $CHECKPOINT_DIR/pspnet_s101-d8_512x1024_80k_cityscapes_20200807_140631-c75f3b99.pth --eval mIoU --work-dir work_dirs/benchmark_evaluation/pspnet_s101-d8_512x1024_80k_cityscapes --options dist_params.port=28180 & +echo 'configs/fastscnn/fast_scnn_lr0.12_8x4_160k_cityscapes.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 tools/slurm_test.sh $PARTITION fast_scnn_lr0.12_8x4_160k_cityscapes configs/fastscnn/fast_scnn_lr0.12_8x4_160k_cityscapes.py $CHECKPOINT_DIR/fast_scnn_8x4_160k_lr0.12_cityscapes-0cec9937.pth --eval mIoU --work-dir work_dirs/benchmark_evaluation/fast_scnn_lr0.12_8x4_160k_cityscapes --options dist_params.port=28181 & +echo 'configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 tools/slurm_test.sh $PARTITION deeplabv3plus_r101-d8_769x769_80k_cityscapes configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes.py $CHECKPOINT_DIR/deeplabv3plus_r101-d8_769x769_80k_cityscapes_20200607_000405-a7573d20.pth --eval mIoU --work-dir work_dirs/benchmark_evaluation/deeplabv3plus_r101-d8_769x769_80k_cityscapes --options dist_params.port=28182 & +echo 'configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 tools/slurm_test.sh $PARTITION deeplabv3plus_r101-d8_512x1024_80k_cityscapes configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py $CHECKPOINT_DIR/deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143-068fcfe9.pth --eval mIoU --work-dir work_dirs/benchmark_evaluation/deeplabv3plus_r101-d8_512x1024_80k_cityscapes --options dist_params.port=28183 & +echo 'configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 tools/slurm_test.sh $PARTITION deeplabv3plus_r50-d8_512x1024_80k_cityscapes configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py $CHECKPOINT_DIR/deeplabv3plus_r50-d8_512x1024_80k_cityscapes_20200606_114049-f9fb496d.pth --eval mIoU --work-dir work_dirs/benchmark_evaluation/deeplabv3plus_r50-d8_512x1024_80k_cityscapes --options dist_params.port=28184 & +echo 'configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 tools/slurm_test.sh $PARTITION deeplabv3plus_r50-d8_769x769_80k_cityscapes configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py $CHECKPOINT_DIR/deeplabv3plus_r50-d8_769x769_80k_cityscapes_20200606_210233-0e9dfdc4.pth --eval mIoU --work-dir work_dirs/benchmark_evaluation/deeplabv3plus_r50-d8_769x769_80k_cityscapes --options dist_params.port=28185 & +echo 'configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 tools/slurm_test.sh $PARTITION upernet_vit-b16_ln_mln_512x512_160k_ade20k configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py $CHECKPOINT_DIR/upernet_vit-b16_ln_mln_512x512_160k_ade20k-f444c077.pth --eval mIoU --work-dir work_dirs/benchmark_evaluation/upernet_vit-b16_ln_mln_512x512_160k_ade20k --options dist_params.port=28186 & +echo 'configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 tools/slurm_test.sh $PARTITION upernet_deit-s16_ln_mln_512x512_160k_ade20k configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py $CHECKPOINT_DIR/upernet_deit-s16_ln_mln_512x512_160k_ade20k-c0cd652f.pth --eval mIoU --work-dir work_dirs/benchmark_evaluation/upernet_deit-s16_ln_mln_512x512_160k_ade20k --options dist_params.port=28187 & +echo 'configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 tools/slurm_test.sh $PARTITION deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py $CHECKPOINT_DIR/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes-cc58bc8d.pth --eval mIoU --work-dir work_dirs/benchmark_evaluation/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes --options dist_params.port=28188 & +echo 'configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 tools/slurm_test.sh $PARTITION upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py $CHECKPOINT_DIR/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K_20210531_112542-e380ad3e.pth --eval mIoU --work-dir work_dirs/benchmark_evaluation/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K --options dist_params.port=28189 & diff --git a/.dev/benchmark_inference.py b/.dev/benchmark_inference.py new file mode 100644 index 0000000000..5124811036 --- /dev/null +++ b/.dev/benchmark_inference.py @@ -0,0 +1,149 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import hashlib +import logging +import os +import os.path as osp +import warnings +from argparse import ArgumentParser + +import requests +from mmcv import Config + +from mmseg.apis import inference_segmentor, init_segmentor, show_result_pyplot +from mmseg.utils import get_root_logger + +# ignore warnings when segmentors inference +warnings.filterwarnings('ignore') + + +def download_checkpoint(checkpoint_name, model_name, config_name, collect_dir): + """Download checkpoint and check if hash code is true.""" + url = f'https://download.openmmlab.com/mmsegmentation/v0.5/{model_name}/{config_name}/{checkpoint_name}' # noqa + + r = requests.get(url) + assert r.status_code != 403, f'{url} Access denied.' + + with open(osp.join(collect_dir, checkpoint_name), 'wb') as code: + code.write(r.content) + + true_hash_code = osp.splitext(checkpoint_name)[0].split('-')[1] + + # check hash code + with open(osp.join(collect_dir, checkpoint_name), 'rb') as fp: + sha256_cal = hashlib.sha256() + sha256_cal.update(fp.read()) + cur_hash_code = sha256_cal.hexdigest()[:8] + + assert true_hash_code == cur_hash_code, f'{url} download failed, ' + 'incomplete downloaded file or url invalid.' + + if cur_hash_code != true_hash_code: + os.remove(osp.join(collect_dir, checkpoint_name)) + + +def parse_args(): + parser = ArgumentParser() + parser.add_argument('config', help='test config file path') + parser.add_argument('checkpoint_root', help='Checkpoint file root path') + parser.add_argument( + '-i', '--img', default='demo/demo.png', help='Image file') + parser.add_argument('-a', '--aug', action='store_true', help='aug test') + parser.add_argument('-m', '--model-name', help='model name to inference') + parser.add_argument( + '-s', '--show', action='store_true', help='show results') + parser.add_argument( + '-d', '--device', default='cuda:0', help='Device used for inference') + args = parser.parse_args() + return args + + +def inference_model(config_name, checkpoint, args, logger=None): + cfg = Config.fromfile(config_name) + if args.aug: + if 'flip' in cfg.data.test.pipeline[ + 1] and 'img_scale' in cfg.data.test.pipeline[1]: + cfg.data.test.pipeline[1].img_ratios = [ + 0.5, 0.75, 1.0, 1.25, 1.5, 1.75 + ] + cfg.data.test.pipeline[1].flip = True + else: + if logger is not None: + logger.error(f'{config_name}: unable to start aug test') + else: + print(f'{config_name}: unable to start aug test', flush=True) + + model = init_segmentor(cfg, checkpoint, device=args.device) + # test a single image + result = inference_segmentor(model, args.img) + + # show the results + if args.show: + show_result_pyplot(model, args.img, result) + return result + + +# Sample test whether the inference code is correct +def main(args): + config = Config.fromfile(args.config) + + if not os.path.exists(args.checkpoint_root): + os.makedirs(args.checkpoint_root, 0o775) + + # test single model + if args.model_name: + if args.model_name in config: + model_infos = config[args.model_name] + if not isinstance(model_infos, list): + model_infos = [model_infos] + for model_info in model_infos: + config_name = model_info['config'].strip() + print(f'processing: {config_name}', flush=True) + checkpoint = osp.join(args.checkpoint_root, + model_info['checkpoint'].strip()) + try: + # build the model from a config file and a checkpoint file + inference_model(config_name, checkpoint, args) + except Exception: + print(f'{config_name} test failed!') + continue + return + else: + raise RuntimeError('model name input error.') + + # test all model + logger = get_root_logger( + log_file='benchmark_inference_image.log', log_level=logging.ERROR) + + for model_name in config: + model_infos = config[model_name] + + if not isinstance(model_infos, list): + model_infos = [model_infos] + for model_info in model_infos: + print('processing: ', model_info['config'], flush=True) + config_path = model_info['config'].strip() + config_name = osp.splitext(osp.basename(config_path))[0] + checkpoint_name = model_info['checkpoint'].strip() + checkpoint = osp.join(args.checkpoint_root, checkpoint_name) + + # ensure checkpoint exists + try: + if not osp.exists(checkpoint): + download_checkpoint(checkpoint_name, model_name, + config_name.rstrip('.py'), + args.checkpoint_root) + except Exception: + logger.error(f'{checkpoint_name} download error') + continue + + # test model inference with checkpoint + try: + # build the model from a config file and a checkpoint file + inference_model(config_path, checkpoint, args, logger) + except Exception as e: + logger.error(f'{config_path} " : {repr(e)}') + + +if __name__ == '__main__': + args = parse_args() + main(args) diff --git a/.dev/benchmark_train.sh b/.dev/benchmark_train.sh new file mode 100755 index 0000000000..d3db897761 --- /dev/null +++ b/.dev/benchmark_train.sh @@ -0,0 +1,40 @@ +PARTITION=$1 + +echo 'configs/hrnet/fcn_hr18s_512x512_160k_ade20k.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 ./tools/slurm_train.sh $PARTITION fcn_hr18s_512x512_160k_ade20k configs/hrnet/fcn_hr18s_512x512_160k_ade20k.py --options checkpoint_config.max_keep_ckpts=1 dist_params.port=24727 --work-dir work_dirs/hrnet/fcn_hr18s_512x512_160k_ade20k >/dev/null & +echo 'configs/hrnet/fcn_hr18s_512x1024_160k_cityscapes.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 ./tools/slurm_train.sh $PARTITION fcn_hr18s_512x1024_160k_cityscapes configs/hrnet/fcn_hr18s_512x1024_160k_cityscapes.py --options checkpoint_config.max_keep_ckpts=1 dist_params.port=24728 --work-dir work_dirs/hrnet/fcn_hr18s_512x1024_160k_cityscapes >/dev/null & +echo 'configs/hrnet/fcn_hr48_512x512_160k_ade20k.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 ./tools/slurm_train.sh $PARTITION fcn_hr48_512x512_160k_ade20k configs/hrnet/fcn_hr48_512x512_160k_ade20k.py --options checkpoint_config.max_keep_ckpts=1 dist_params.port=24729 --work-dir work_dirs/hrnet/fcn_hr48_512x512_160k_ade20k >/dev/null & +echo 'configs/hrnet/fcn_hr48_512x1024_160k_cityscapes.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 ./tools/slurm_train.sh $PARTITION fcn_hr48_512x1024_160k_cityscapes configs/hrnet/fcn_hr48_512x1024_160k_cityscapes.py --options checkpoint_config.max_keep_ckpts=1 dist_params.port=24730 --work-dir work_dirs/hrnet/fcn_hr48_512x1024_160k_cityscapes >/dev/null & +echo 'configs/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 ./tools/slurm_train.sh $PARTITION pspnet_r50-d8_512x1024_80k_cityscapes configs/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes.py --options checkpoint_config.max_keep_ckpts=1 dist_params.port=24731 --work-dir work_dirs/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes >/dev/null & +echo 'configs/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 ./tools/slurm_train.sh $PARTITION pspnet_r101-d8_512x1024_80k_cityscapes configs/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py --options checkpoint_config.max_keep_ckpts=1 dist_params.port=24732 --work-dir work_dirs/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes >/dev/null & +echo 'configs/pspnet/pspnet_r101-d8_512x512_160k_ade20k.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 ./tools/slurm_train.sh $PARTITION pspnet_r101-d8_512x512_160k_ade20k configs/pspnet/pspnet_r101-d8_512x512_160k_ade20k.py --options checkpoint_config.max_keep_ckpts=1 dist_params.port=24733 --work-dir work_dirs/pspnet/pspnet_r101-d8_512x512_160k_ade20k >/dev/null & +echo 'configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 ./tools/slurm_train.sh $PARTITION pspnet_r50-d8_512x512_160k_ade20k configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py --options checkpoint_config.max_keep_ckpts=1 dist_params.port=24734 --work-dir work_dirs/pspnet/pspnet_r50-d8_512x512_160k_ade20k >/dev/null & +echo 'configs/resnest/pspnet_s101-d8_512x512_160k_ade20k.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 ./tools/slurm_train.sh $PARTITION pspnet_s101-d8_512x512_160k_ade20k configs/resnest/pspnet_s101-d8_512x512_160k_ade20k.py --options checkpoint_config.max_keep_ckpts=1 dist_params.port=24735 --work-dir work_dirs/resnest/pspnet_s101-d8_512x512_160k_ade20k >/dev/null & +echo 'configs/resnest/pspnet_s101-d8_512x1024_80k_cityscapes.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 ./tools/slurm_train.sh $PARTITION pspnet_s101-d8_512x1024_80k_cityscapes configs/resnest/pspnet_s101-d8_512x1024_80k_cityscapes.py --options checkpoint_config.max_keep_ckpts=1 dist_params.port=24736 --work-dir work_dirs/resnest/pspnet_s101-d8_512x1024_80k_cityscapes >/dev/null & +echo 'configs/fastscnn/fast_scnn_lr0.12_8x4_160k_cityscapes.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 ./tools/slurm_train.sh $PARTITION fast_scnn_lr0.12_8x4_160k_cityscapes configs/fastscnn/fast_scnn_lr0.12_8x4_160k_cityscapes.py --options checkpoint_config.max_keep_ckpts=1 dist_params.port=24737 --work-dir work_dirs/fastscnn/fast_scnn_lr0.12_8x4_160k_cityscapes >/dev/null & +echo 'configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 ./tools/slurm_train.sh $PARTITION deeplabv3plus_r101-d8_769x769_80k_cityscapes configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes.py --options checkpoint_config.max_keep_ckpts=1 dist_params.port=24738 --work-dir work_dirs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes >/dev/null & +echo 'configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 ./tools/slurm_train.sh $PARTITION deeplabv3plus_r101-d8_512x1024_80k_cityscapes configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py --options checkpoint_config.max_keep_ckpts=1 dist_params.port=24739 --work-dir work_dirs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes >/dev/null & +echo 'configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 ./tools/slurm_train.sh $PARTITION deeplabv3plus_r50-d8_512x1024_80k_cityscapes configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py --options checkpoint_config.max_keep_ckpts=1 dist_params.port=24740 --work-dir work_dirs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes >/dev/null & +echo 'configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 ./tools/slurm_train.sh $PARTITION deeplabv3plus_r50-d8_769x769_80k_cityscapes configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py --options checkpoint_config.max_keep_ckpts=1 dist_params.port=24741 --work-dir work_dirs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes >/dev/null & +echo 'configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py' & +GPUS=8 GPUS_PER_NODE=8 CPUS_PER_TASK=2 ./tools/slurm_train.sh $PARTITION upernet_vit-b16_ln_mln_512x512_160k_ade20k configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py --options checkpoint_config.max_keep_ckpts=1 dist_params.port=24742 --work-dir work_dirs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k >/dev/null & +echo 'configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py' & +GPUS=8 GPUS_PER_NODE=8 CPUS_PER_TASK=2 ./tools/slurm_train.sh $PARTITION upernet_deit-s16_ln_mln_512x512_160k_ade20k configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py --options checkpoint_config.max_keep_ckpts=1 dist_params.port=24743 --work-dir work_dirs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k >/dev/null & +echo 'configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py' & +GPUS=4 GPUS_PER_NODE=4 CPUS_PER_TASK=2 ./tools/slurm_train.sh $PARTITION deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py --options checkpoint_config.max_keep_ckpts=1 dist_params.port=24744 --work-dir work_dirs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes >/dev/null & +echo 'configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py' & +GPUS=8 GPUS_PER_NODE=8 CPUS_PER_TASK=2 ./tools/slurm_train.sh $PARTITION upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py --options checkpoint_config.max_keep_ckpts=1 dist_params.port=24745 --work-dir work_dirs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K >/dev/null & diff --git a/.dev/check_urls.py b/.dev/check_urls.py new file mode 100644 index 0000000000..42b64745de --- /dev/null +++ b/.dev/check_urls.py @@ -0,0 +1,101 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import logging +import os +from argparse import ArgumentParser + +import requests +import yaml as yml + +from mmseg.utils import get_root_logger + + +def check_url(url): + """Check url response status. + + Args: + url (str): url needed to check. + + Returns: + int, bool: status code and check flag. + """ + flag = True + r = requests.head(url) + status_code = r.status_code + if status_code == 403 or status_code == 404: + flag = False + + return status_code, flag + + +def parse_args(): + parser = ArgumentParser('url valid check.') + parser.add_argument( + '-m', + '--model-name', + type=str, + help='Select the model needed to check') + + args = parser.parse_args() + return args + + +def main(): + args = parse_args() + model_name = args.model_name + + # yml path generate. + # If model_name is not set, script will check all of the models. + if model_name is not None: + yml_list = [(model_name, f'configs/{model_name}/{model_name}.yml')] + else: + # check all + yml_list = [(x, f'configs/{x}/{x}.yml') for x in os.listdir('configs/') + if x != '_base_'] + + logger = get_root_logger(log_file='url_check.log', log_level=logging.ERROR) + + for model_name, yml_path in yml_list: + # Default yaml loader unsafe. + model_infos = yml.load( + open(yml_path, 'r'), Loader=yml.CLoader)['Models'] + for model_info in model_infos: + config_name = model_info['Name'] + checkpoint_url = model_info['Weights'] + # checkpoint url check + status_code, flag = check_url(checkpoint_url) + if flag: + logger.info(f'checkpoint | {config_name} | {checkpoint_url} | ' + f'{status_code} valid') + else: + logger.error( + f'checkpoint | {config_name} | {checkpoint_url} | ' + f'{status_code} | error') + # log_json check + checkpoint_name = checkpoint_url.split('/')[-1] + model_time = '-'.join(checkpoint_name.split('-')[:-1]).replace( + f'{config_name}_', '') + # two style of log_json name + # use '_' to link model_time (will be deprecated) + log_json_url_1 = f'https://download.openmmlab.com/mmsegmentation/v0.5/{model_name}/{config_name}/{config_name}_{model_time}.log.json' # noqa + status_code_1, flag_1 = check_url(log_json_url_1) + # use '-' to link model_time + log_json_url_2 = f'https://download.openmmlab.com/mmsegmentation/v0.5/{model_name}/{config_name}/{config_name}-{model_time}.log.json' # noqa + status_code_2, flag_2 = check_url(log_json_url_2) + if flag_1 or flag_2: + if flag_1: + logger.info( + f'log.json | {config_name} | {log_json_url_1} | ' + f'{status_code_1} | valid') + else: + logger.info( + f'log.json | {config_name} | {log_json_url_2} | ' + f'{status_code_2} | valid') + else: + logger.error( + f'log.json | {config_name} | {log_json_url_1} & ' + f'{log_json_url_2} | {status_code_1} & {status_code_2} | ' + 'error') + + +if __name__ == '__main__': + main() diff --git a/.dev/gather_benchmark_evaluation_results.py b/.dev/gather_benchmark_evaluation_results.py new file mode 100644 index 0000000000..47b557a105 --- /dev/null +++ b/.dev/gather_benchmark_evaluation_results.py @@ -0,0 +1,91 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import glob +import os.path as osp + +import mmcv +from mmcv import Config + + +def parse_args(): + parser = argparse.ArgumentParser( + description='Gather benchmarked model evaluation results') + parser.add_argument('config', help='test config file path') + parser.add_argument( + 'root', + type=str, + help='root path of benchmarked models to be gathered') + parser.add_argument( + '--out', + type=str, + default='benchmark_evaluation_info.json', + help='output path of gathered metrics and compared ' + 'results to be stored') + + args = parser.parse_args() + return args + + +if __name__ == '__main__': + args = parse_args() + + root_path = args.root + metrics_out = args.out + result_dict = {} + + cfg = Config.fromfile(args.config) + + for model_key in cfg: + model_infos = cfg[model_key] + if not isinstance(model_infos, list): + model_infos = [model_infos] + for model_info in model_infos: + previous_metrics = model_info['metric'] + config = model_info['config'].strip() + fname, _ = osp.splitext(osp.basename(config)) + + # Load benchmark evaluation json + metric_json_dir = osp.join(root_path, fname) + if not osp.exists(metric_json_dir): + print(f'{metric_json_dir} not existed.') + continue + + json_list = glob.glob(osp.join(metric_json_dir, '*.json')) + if len(json_list) == 0: + print(f'There is no eval json in {metric_json_dir}.') + continue + + log_json_path = list(sorted(json_list))[-1] + metric = mmcv.load(log_json_path) + if config not in metric.get('config', {}): + print(f'{config} not included in {log_json_path}') + continue + + # Compare between new benchmark results and previous metrics + differential_results = dict() + new_metrics = dict() + for record_metric_key in previous_metrics: + if record_metric_key not in metric['metric']: + raise KeyError('record_metric_key not exist, please ' + 'check your config') + old_metric = previous_metrics[record_metric_key] + new_metric = round(metric['metric'][record_metric_key] * 100, + 2) + + differential = new_metric - old_metric + flag = '+' if differential > 0 else '-' + differential_results[ + record_metric_key] = f'{flag}{abs(differential):.2f}' + new_metrics[record_metric_key] = new_metric + + result_dict[config] = dict( + differential=differential_results, + previous=previous_metrics, + new=new_metrics) + + if metrics_out: + mmcv.dump(result_dict, metrics_out, indent=4) + print('===================================') + for config_name, metrics in result_dict.items(): + print(config_name, metrics) + print('===================================') diff --git a/.dev/gather_benchmark_train_results.py b/.dev/gather_benchmark_train_results.py new file mode 100644 index 0000000000..8aff2c4228 --- /dev/null +++ b/.dev/gather_benchmark_train_results.py @@ -0,0 +1,100 @@ +import argparse +import glob +import os.path as osp + +import mmcv +from gather_models import get_final_results +from mmcv import Config + + +def parse_args(): + parser = argparse.ArgumentParser( + description='Gather benchmarked models train results') + parser.add_argument('config', help='test config file path') + parser.add_argument( + 'root', + type=str, + help='root path of benchmarked models to be gathered') + parser.add_argument( + '--out', + type=str, + default='benchmark_train_info.json', + help='output path of gathered metrics to be stored') + + args = parser.parse_args() + return args + + +if __name__ == '__main__': + args = parse_args() + + root_path = args.root + metrics_out = args.out + + evaluation_cfg = Config.fromfile(args.config) + + result_dict = {} + for model_key in evaluation_cfg: + model_infos = evaluation_cfg[model_key] + if not isinstance(model_infos, list): + model_infos = [model_infos] + for model_info in model_infos: + config = model_info['config'] + + # benchmark train dir + model_name = osp.split(osp.dirname(config))[1] + config_name = osp.splitext(osp.basename(config))[0] + exp_dir = osp.join(root_path, model_name, config_name) + if not osp.exists(exp_dir): + print(f'{config} hasn\'t {exp_dir}') + continue + + # parse config + cfg = mmcv.Config.fromfile(config) + total_iters = cfg.runner.max_iters + exp_metric = cfg.evaluation.metric + if not isinstance(exp_metric, list): + exp_metrics = [exp_metric] + + # determine whether total_iters ckpt exists + ckpt_path = f'iter_{total_iters}.pth' + if not osp.exists(osp.join(exp_dir, ckpt_path)): + print(f'{config} hasn\'t {ckpt_path}') + continue + + # only the last log json counts + log_json_path = list( + sorted(glob.glob(osp.join(exp_dir, '*.log.json'))))[-1] + + # extract metric value + model_performance = get_final_results(log_json_path, total_iters) + if model_performance is None: + print(f'log file error: {log_json_path}') + continue + + differential_results = dict() + old_results = dict() + new_results = dict() + for metric_key in model_performance: + if metric_key in ['mIoU']: + metric = round(model_performance[metric_key] * 100, 2) + old_metric = model_info['metric'][metric_key] + old_results[metric_key] = old_metric + new_results[metric_key] = metric + differential = metric - old_metric + flag = '+' if differential > 0 else '-' + differential_results[ + metric_key] = f'{flag}{abs(differential):.2f}' + result_dict[config] = dict( + differential_results=differential_results, + old_results=old_results, + new_results=new_results, + ) + + # 4 save or print results + if metrics_out: + mmcv.dump(result_dict, metrics_out, indent=4) + print('===================================') + for config_name, metrics in result_dict.items(): + print(config_name, metrics) + print('===================================') diff --git a/.dev/gather_models.py b/.dev/gather_models.py index 0db26a55e4..581d5104c7 100644 --- a/.dev/gather_models.py +++ b/.dev/gather_models.py @@ -1,11 +1,11 @@ # Copyright (c) OpenMMLab. All rights reserved. import argparse import glob +import hashlib import json import os import os.path as osp import shutil -import subprocess import mmcv import torch @@ -14,6 +14,14 @@ RESULTS_LUT = ['mIoU', 'mAcc', 'aAcc'] +def calculate_file_sha256(file_path): + """calculate file sha256 hash code.""" + with open(file_path, 'rb') as fp: + sha256_cal = hashlib.sha256() + sha256_cal.update(fp.read()) + return sha256_cal.hexdigest() + + def process_checkpoint(in_file, out_file): checkpoint = torch.load(in_file, map_location='cpu') # remove optimizer for smaller file size @@ -22,10 +30,17 @@ def process_checkpoint(in_file, out_file): # if it is necessary to remove some sensitive data in checkpoint['meta'], # add the code here. torch.save(checkpoint, out_file) - sha = subprocess.check_output(['sha256sum', out_file]).decode() + # The hash code calculation and rename command differ on different system + # platform. + sha = calculate_file_sha256(out_file) final_file = out_file.rstrip('.pth') + '-{}.pth'.format(sha[:8]) - subprocess.Popen(['mv', out_file, final_file]) - return final_file + os.rename(out_file, final_file) + + # Remove prefix and suffix + final_file_name = osp.split(final_file)[1] + final_file_name = osp.splitext(final_file_name)[0] + + return final_file_name def get_final_iter(config): @@ -36,40 +51,43 @@ def get_final_iter(config): def get_final_results(log_json_path, iter_num): result_dict = dict() + last_iter = 0 with open(log_json_path, 'r') as f: for line in f.readlines(): log_line = json.loads(line) if 'mode' not in log_line.keys(): continue - if log_line['mode'] == 'train' and log_line['iter'] == iter_num: - result_dict['memory'] = log_line['memory'] - - if log_line['iter'] == iter_num: + # When evaluation, the 'iter' of new log json is the evaluation + # steps on single gpu. + flag1 = ('aAcc' in log_line) or (log_line['mode'] == 'val') + flag2 = (last_iter == iter_num - 50) or (last_iter == iter_num) + if flag1 and flag2: result_dict.update({ key: log_line[key] for key in RESULTS_LUT if key in log_line }) return result_dict + last_iter = log_line['iter'] + def parse_args(): parser = argparse.ArgumentParser(description='Gather benchmarked models') parser.add_argument( - 'root', - type=str, - help='root path of benchmarked models to be gathered') + '-c', '--config-name', type=str, help='Process the selected config.') parser.add_argument( - 'config', + '-w', + '--work-dir', + default='work_dirs/', type=str, - help='root path of benchmarked configs to be gathered') + help='Ckpt storage root folder of benchmarked models to be gathered.') parser.add_argument( - 'out_dir', + '-c', + '--collect-dir', + default='work_dirs/gather', type=str, - help='output path of gathered models to be stored') - parser.add_argument('out_file', type=str, help='the output json file name') - parser.add_argument( - '--filter', type=str, nargs='+', default=[], help='config filter') + help='Ckpt collect root folder of gathered models.') parser.add_argument( '--all', action='store_true', help='whether include .py and .log') @@ -79,34 +97,30 @@ def parse_args(): def main(): args = parse_args() - models_root = args.root - models_out = args.out_dir - config_name = args.config - mmcv.mkdir_or_exist(models_out) + work_dir = args.work_dir + collect_dir = args.collect_dir + selected_config_name = args.config_name + mmcv.mkdir_or_exist(collect_dir) # find all models in the root directory to be gathered - raw_configs = list(mmcv.scandir(config_name, '.py', recursive=True)) + raw_configs = list(mmcv.scandir('./configs', '.py', recursive=True)) # filter configs that is not trained in the experiments dir used_configs = [] for raw_config in raw_configs: - work_dir = osp.splitext(osp.basename(raw_config))[0] - if osp.exists(osp.join(models_root, work_dir)): - used_configs.append((work_dir, raw_config)) + config_name = osp.splitext(osp.basename(raw_config))[0] + if osp.exists(osp.join(work_dir, config_name)): + if (selected_config_name is None + or selected_config_name == config_name): + used_configs.append(raw_config) print(f'Find {len(used_configs)} models to be gathered') # find final_ckpt and log file for trained each config # and parse the best performance model_infos = [] - for used_config, raw_config in used_configs: - bypass = True - for p in args.filter: - if p in used_config: - bypass = False - break - if bypass: - continue - exp_dir = osp.join(models_root, used_config) + for used_config in used_configs: + config_name = osp.splitext(osp.basename(used_config))[0] + exp_dir = osp.join(work_dir, config_name) # check whether the exps is finished final_iter = get_final_iter(used_config) final_model = 'iter_{}.pth'.format(final_iter) @@ -134,8 +148,7 @@ def main(): model_time = osp.split(log_json_path)[-1].split('.')[0] model_infos.append( dict( - config=used_config, - raw_config=raw_config, + config_name=config_name, results=model_performance, iters=final_iter, model_time=model_time, @@ -144,13 +157,12 @@ def main(): # publish model for each checkpoint publish_model_infos = [] for model in model_infos: - model_publish_dir = osp.join(models_out, - model['raw_config'].rstrip('.py')) - model_name = osp.split(model['config'])[-1].split('.')[0] + config_name = model['config_name'] + model_publish_dir = osp.join(collect_dir, config_name) publish_model_path = osp.join(model_publish_dir, - model_name + '_' + model['model_time']) - trained_model_path = osp.join(models_root, model['config'], + config_name + '_' + model['model_time']) + trained_model_path = osp.join(work_dir, config_name, 'iter_{}.pth'.format(model['iters'])) if osp.exists(model_publish_dir): for file in os.listdir(model_publish_dir): @@ -170,28 +182,29 @@ def main(): publish_model_path) model['model_path'] = final_model_path - new_json_path = f'{model_name}-{model["log_json_path"]}' + new_json_path = f'{config_name}_{model["log_json_path"]}' # copy log shutil.copy( - osp.join(models_root, model['config'], model['log_json_path']), + osp.join(work_dir, config_name, model['log_json_path']), osp.join(model_publish_dir, new_json_path)) + if args.all: new_txt_path = new_json_path.rstrip('.json') shutil.copy( - osp.join(models_root, model['config'], + osp.join(work_dir, config_name, model['log_json_path'].rstrip('.json')), osp.join(model_publish_dir, new_txt_path)) if args.all: # copy config to guarantee reproducibility - raw_config = osp.join(config_name, model['raw_config']) + raw_config = osp.join('./configs', f'{config_name}.py') mmcv.Config.fromfile(raw_config).dump( osp.join(model_publish_dir, osp.basename(raw_config))) publish_model_infos.append(model) models = dict(models=publish_model_infos) - mmcv.dump(models, osp.join(models_out, args.out_file)) + mmcv.dump(models, osp.join(collect_dir, 'model_infos.json'), indent=4) if __name__ == '__main__': diff --git a/.dev/generate_benchmark_evaluation_script.py b/.dev/generate_benchmark_evaluation_script.py new file mode 100644 index 0000000000..5a3dfa17b1 --- /dev/null +++ b/.dev/generate_benchmark_evaluation_script.py @@ -0,0 +1,114 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import os.path as osp + +from mmcv import Config + + +def parse_args(): + parser = argparse.ArgumentParser( + description='Convert benchmark test model list to script') + parser.add_argument('config', help='test config file path') + parser.add_argument('--port', type=int, default=28171, help='dist port') + parser.add_argument( + '--work-dir', + default='work_dirs/benchmark_evaluation', + help='the dir to save metric') + parser.add_argument( + '--out', + type=str, + default='.dev/benchmark_evaluation.sh', + help='path to save model benchmark script') + + args = parser.parse_args() + return args + + +def process_model_info(model_info, work_dir): + config = model_info['config'].strip() + fname, _ = osp.splitext(osp.basename(config)) + job_name = fname + checkpoint = model_info['checkpoint'].strip() + work_dir = osp.join(work_dir, fname) + if not isinstance(model_info['eval'], list): + evals = [model_info['eval']] + else: + evals = model_info['eval'] + eval = ' '.join(evals) + return dict( + config=config, + job_name=job_name, + checkpoint=checkpoint, + work_dir=work_dir, + eval=eval) + + +def create_test_bash_info(commands, model_test_dict, port, script_name, + partition): + config = model_test_dict['config'] + job_name = model_test_dict['job_name'] + checkpoint = model_test_dict['checkpoint'] + work_dir = model_test_dict['work_dir'] + eval = model_test_dict['eval'] + + echo_info = f'\necho \'{config}\' &' + commands.append(echo_info) + commands.append('\n') + + command_info = f'GPUS=4 GPUS_PER_NODE=4 ' \ + f'CPUS_PER_TASK=2 {script_name} ' + + command_info += f'{partition} ' + command_info += f'{job_name} ' + command_info += f'{config} ' + command_info += f'$CHECKPOINT_DIR/{checkpoint} ' + + command_info += f'--eval {eval} ' + command_info += f'--work-dir {work_dir} ' + command_info += f'--options dist_params.port={port} ' + command_info += '&' + + commands.append(command_info) + + +def main(): + args = parse_args() + if args.out: + out_suffix = args.out.split('.')[-1] + assert args.out.endswith('.sh'), \ + f'Expected out file path suffix is .sh, but get .{out_suffix}' + + commands = [] + partition_name = 'PARTITION=$1' + commands.append(partition_name) + commands.append('\n') + + checkpoint_root = 'CHECKPOINT_DIR=$2' + commands.append(checkpoint_root) + commands.append('\n') + + script_name = osp.join('tools', 'slurm_test.sh') + port = args.port + work_dir = args.work_dir + + cfg = Config.fromfile(args.config) + + for model_key in cfg: + model_infos = cfg[model_key] + if not isinstance(model_infos, list): + model_infos = [model_infos] + for model_info in model_infos: + print('processing: ', model_info['config']) + model_test_dict = process_model_info(model_info, work_dir) + create_test_bash_info(commands, model_test_dict, port, script_name, + '$PARTITION') + port += 1 + + command_str = ''.join(commands) + if args.out: + with open(args.out, 'w') as f: + f.write(command_str + '\n') + + +if __name__ == '__main__': + main() diff --git a/.dev/generate_benchmark_train_script.py b/.dev/generate_benchmark_train_script.py new file mode 100644 index 0000000000..e7219e214a --- /dev/null +++ b/.dev/generate_benchmark_train_script.py @@ -0,0 +1,91 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import os.path as osp + +# Default using 4 gpu when training +config_8gpu_list = [ + 'configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py', # noqa + 'configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py', + 'configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py', +] + + +def parse_args(): + parser = argparse.ArgumentParser( + description='Convert benchmark model json to script') + parser.add_argument( + 'txt_path', type=str, help='txt path output by benchmark_filter') + parser.add_argument('--port', type=int, default=24727, help='dist port') + parser.add_argument( + '--out', + type=str, + default='.dev/benchmark_train.sh', + help='path to save model benchmark script') + + args = parser.parse_args() + return args + + +def create_train_bash_info(commands, config, script_name, partition, port): + cfg = config.strip() + + # print cfg name + echo_info = f'echo \'{cfg}\' &' + commands.append(echo_info) + commands.append('\n') + + _, model_name = osp.split(osp.dirname(cfg)) + config_name, _ = osp.splitext(osp.basename(cfg)) + # default setting + if cfg in config_8gpu_list: + command_info = f'GPUS=8 GPUS_PER_NODE=8 ' \ + f'CPUS_PER_TASK=2 {script_name} ' + else: + command_info = f'GPUS=4 GPUS_PER_NODE=4 ' \ + f'CPUS_PER_TASK=2 {script_name} ' + command_info += f'{partition} ' + command_info += f'{config_name} ' + command_info += f'{cfg} ' + command_info += f'--options ' \ + f'checkpoint_config.max_keep_ckpts=1 ' \ + f'dist_params.port={port} ' + command_info += f'--work-dir work_dirs/{model_name}/{config_name} ' + # Let the script shut up + command_info += '>/dev/null &' + + commands.append(command_info) + commands.append('\n') + + +def main(): + args = parse_args() + if args.out: + out_suffix = args.out.split('.')[-1] + assert args.out.endswith('.sh'), \ + f'Expected out file path suffix is .sh, but get .{out_suffix}' + + root_name = './tools' + script_name = osp.join(root_name, 'slurm_train.sh') + port = args.port + partition_name = 'PARTITION=$1' + + commands = [] + commands.append(partition_name) + commands.append('\n') + commands.append('\n') + + with open(args.txt_path, 'r') as f: + model_cfgs = f.readlines() + for i, cfg in enumerate(model_cfgs): + create_train_bash_info(commands, cfg, script_name, '$PARTITION', + port) + port += 1 + + command_str = ''.join(commands) + if args.out: + with open(args.out, 'w') as f: + f.write(command_str) + + +if __name__ == '__main__': + main() diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 263bc18b25..040af344d3 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -7,6 +7,7 @@ repos: rev: v2.2.0 hooks: - id: seed-isort-config + args: ["--exclude", ".dev"] - repo: https://github.com/timothycrosley/isort rev: 4.3.21 hooks: diff --git a/configs/fastscnn/README.md b/configs/fastscnn/README.md index 82b9b2037c..5b403b6d07 100644 --- a/configs/fastscnn/README.md +++ b/configs/fastscnn/README.md @@ -19,4 +19,4 @@ | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | | --------- | --------- | --------- | ------: | -------- | -------------- | ----: | ------------- | --------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Fast-SCNN | Fast-SCNN | 512x1024 | 160000 | 3.3 | 56.45 | 70.96 | 72.65 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fastscnn/fast_scnn_lr0.12_8x4_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_8x4_160k_lr0.12_cityscapes-0cec9937.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_8x4_160k_lr0.12_cityscapes-20210630_164853.log.json) | +| Fast-SCNN | Fast-SCNN | 512x1024 | 160000 | 3.3 | 56.45 | 70.96 | 72.65 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fastscnn/fast_scnn_lr0.12_8x4_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_lr0.12_8x4_160k_cityscapes/fast_scnn_lr0.12_8x4_160k_cityscapes_20210630_164853-0cec9937.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_lr0.12_8x4_160k_cityscapes/fast_scnn_lr0.12_8x4_160k_cityscapes_20210630_164853.log.json) | diff --git a/configs/fastscnn/fastscnn.yml b/configs/fastscnn/fastscnn.yml index f56e0e9e21..00e7f21315 100644 --- a/configs/fastscnn/fastscnn.yml +++ b/configs/fastscnn/fastscnn.yml @@ -25,4 +25,4 @@ Models: mIoU: 70.96 mIoU(ms+flip): 72.65 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_8x4_160k_lr0.12_cityscapes-0cec9937.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_lr0.12_8x4_160k_cityscapes/fast_scnn_lr0.12_8x4_160k_cityscapes_20210630_164853-0cec9937.pth diff --git a/configs/fcn/README.md b/configs/fcn/README.md index 82dfdb6f1d..396652c533 100644 --- a/configs/fcn/README.md +++ b/configs/fcn/README.md @@ -39,18 +39,18 @@ | FCN | R-18b-D8 | 769x769 | 80000 | 1.7 | 6.70 | 69.66 | 72.07 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r18b-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_769x769_80k_cityscapes/fcn_r18b-d8_769x769_80k_cityscapes_20201226_004430-32d504e5.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_769x769_80k_cityscapes/fcn_r18b-d8_769x769_80k_cityscapes-20201226_004430.log.json) | | FCN | R-50b-D8 | 769x769 | 80000 | 6.3 | 1.82 | 73.83 | 76.60 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r50b-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_769x769_80k_cityscapes/fcn_r50b-d8_769x769_80k_cityscapes_20201225_094223-94552d38.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_769x769_80k_cityscapes/fcn_r50b-d8_769x769_80k_cityscapes-20201225_094223.log.json) | | FCN | R-101b-D8 | 769x769 | 80000 | 10.3 | 1.15 | 77.02 | 78.67 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101b-d8_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_769x769_80k_cityscapes/fcn_r101b-d8_769x769_80k_cityscapes_20201226_170012-82be37e2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_769x769_80k_cityscapes/fcn_r101b-d8_769x769_80k_cityscapes-20201226_170012.log.json) | -| FCN-D6 | R-50-D16 | 512x1024 | 40000 | 3.4 | 10.22 | 77.06 | 78.85 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes/fcn_d6_r50-d16_512x1024_40k_cityscapes-98d5d1bc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes/fcn_d6_r50-d16_512x1024_40k_cityscapes-20210305_130133.log.json) | -| FCN-D6 | R-50-D16 | 512x1024 | 80000 | - | 10.35 | 77.27 | 78.88 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes/fcn_d6_r50-d16_512x1024_40k_cityscapes-98d5d1bc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes/fcn_d6_r50-d16_512x1024_80k_cityscapes-20210306_115604.log.json) | -| FCN-D6 | R-50-D16 | 769x769 | 40000 | 3.7 | 4.17 | 76.82 | 78.22 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes/fcn_d6_r50-d16_769x769_40k_cityscapes-1aab18ed.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes/fcn_d6_r50-d16_769x769_40k_cityscapes-20210305_185744.log.json) | -| FCN-D6 | R-50-D16 | 769x769 | 80000 | - | 4.15 | 77.04 | 78.40 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes/fcn_d6_r50-d16_769x769_80k_cityscapes-109d88eb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes/fcn_d6_r50-d16_769x769_80k_cityscapes-20210305_200413.log.json) | -| FCN-D6 | R-101-D16 | 512x1024 | 40000 | 4.5 | 8.04 | 77.36 | 79.18 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes/fcn_d6_r101-d16_512x1024_40k_cityscapes-9cf2b450.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes/fcn_d6_r101-d16_512x1024_40k_cityscapes-20210305_130337.log.json) | -| FCN-D6 | R-101-D16 | 512x1024 | 80000 | - | 8.26 | 78.46 | 80.42 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes/fcn_d6_r101-d16_512x1024_80k_cityscapes-cb336445.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes/fcn_d6_r101-d16_512x1024_80k_cityscapes-20210308_102747.log.json) | -| FCN-D6 | R-101-D16 | 769x769 | 40000 | 5.0 | 3.12 | 77.28 | 78.95 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes/fcn_d6_r101-d16_769x769_40k_cityscapes-60b114e9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes/fcn_d6_r101-d16_769x769_40k_cityscapes-20210308_102453.log.json) | -| FCN-D6 | R-101-D16 | 769x769 | 80000 | - | 3.21 | 78.06 | 79.58 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes/fcn_d6_r101-d16_769x769_80k_cityscapes-e33adc4f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes/fcn_d6_r101-d16_769x769_80k_cityscapes-20210306_120016.log.json) | -| FCN-D6 | R-50b-D16 | 512x1024 | 80000 | 3.2 | 10.16 | 76.99 | 79.03 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r50b-d16_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_512x1024_80k_cityscapes/fcn_d6_r50b_d16_512x1024_80k_cityscapes-6a0b62e9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_512x1024_80k_cityscapes/fcn_d6_r50b_d16_512x1024_80k_cityscapes-20210311_125550.log.json) | -| FCN-D6 | R-50b-D16 | 769x769 | 80000 | 3.6 | 4.17 | 76.86 | 78.52 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r50b-d16_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_769x769_80k_cityscapes/fcn_d6_r50b_d16_769x769_80k_cityscapes-d665f231.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_769x769_80k_cityscapes/fcn_d6_r50b_d16_769x769_80k_cityscapes-20210311_131012.log.json) | -| FCN-D6 | R-101b-D16 | 512x1024 | 80000 | 4.3 | 8.46 | 77.72 | 79.53 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r101b-d16_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_512x1024_80k_cityscapes/fcn_d6_r101b_d16_512x1024_80k_cityscapes-3f2eb5b4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_512x1024_80k_cityscapes/fcn_d6_r101b_d16_512x1024_80k_cityscapes-20210311_144305.log.json) | -| FCN-D6 | R-101b-D16 | 769x769 | 80000 | 4.8 | 3.32 | 77.34 | 78.91 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r101b-d16_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_769x769_80k_cityscapes/fcn_d6_r101b_d16_769x769_80k_cityscapes-c4d8bfbc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_769x769_80k_cityscapes/fcn_d6_r101b_d16_769x769_80k_cityscapes-20210311_154527.log.json) | +| FCN-D6 | R-50-D16 | 512x1024 | 40000 | 3.4 | 10.22 | 77.06 | 78.85 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes/fcn_d6_r50-d16_512x1024_40k_cityscapes_20210305_130133-98d5d1bc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes/fcn_d6_r50-d16_512x1024_40k_cityscapes-20210305_130133.log.json) | +| FCN-D6 | R-50-D16 | 512x1024 | 80000 | - | 10.35 | 77.27 | 78.88 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes/fcn_d6_r50-d16_512x1024_80k_cityscapes_20210306_115604-133c292f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes/fcn_d6_r50-d16_512x1024_80k_cityscapes-20210306_115604.log.json) | +| FCN-D6 | R-50-D16 | 769x769 | 40000 | 3.7 | 4.17 | 76.82 | 78.22 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes/fcn_d6_r50-d16_769x769_40k_cityscapes_20210305_185744-1aab18ed.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes/fcn_d6_r50-d16_769x769_40k_cityscapes-20210305_185744.log.json) | +| FCN-D6 | R-50-D16 | 769x769 | 80000 | - | 4.15 | 77.04 | 78.40 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes/fcn_d6_r50-d16_769x769_80k_cityscapes_20210305_200413-109d88eb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes/fcn_d6_r50-d16_769x769_80k_cityscapes-20210305_200413.log.json) | +| FCN-D6 | R-101-D16 | 512x1024 | 40000 | 4.5 | 8.04 | 77.36 | 79.18 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes/fcn_d6_r101-d16_512x1024_40k_cityscapes_20210305_130337-9cf2b450.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes/fcn_d6_r101-d16_512x1024_40k_cityscapes-20210305_130337.log.json) | +| FCN-D6 | R-101-D16 | 512x1024 | 80000 | - | 8.26 | 78.46 | 80.42 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes/fcn_d6_r101-d16_512x1024_80k_cityscapes_20210308_102747-cb336445.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes/fcn_d6_r101-d16_512x1024_80k_cityscapes-20210308_102747.log.json) | +| FCN-D6 | R-101-D16 | 769x769 | 40000 | 5.0 | 3.12 | 77.28 | 78.95 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes/fcn_d6_r101-d16_769x769_40k_cityscapes_20210308_102453-60b114e9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes/fcn_d6_r101-d16_769x769_40k_cityscapes-20210308_102453.log.json) | +| FCN-D6 | R-101-D16 | 769x769 | 80000 | - | 3.21 | 78.06 | 79.58 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes/fcn_d6_r101-d16_769x769_80k_cityscapes_20210306_120016-e33adc4f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes/fcn_d6_r101-d16_769x769_80k_cityscapes-20210306_120016.log.json) | +| FCN-D6 | R-50b-D16 | 512x1024 | 80000 | 3.2 | 10.16 | 76.99 | 79.03 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r50b-d16_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b-d16_512x1024_80k_cityscapes/fcn_d6_r50b-d16_512x1024_80k_cityscapes_20210311_125550-6a0b62e9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_512x1024_80k_cityscapes/fcn_d6_r50b_d16_512x1024_80k_cityscapes-20210311_125550.log.json) | +| FCN-D6 | R-50b-D16 | 769x769 | 80000 | 3.6 | 4.17 | 76.86 | 78.52 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r50b-d16_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b-d16_769x769_80k_cityscapes/fcn_d6_r50b-d16_769x769_80k_cityscapes_20210311_131012-d665f231.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_769x769_80k_cityscapes/fcn_d6_r50b_d16_769x769_80k_cityscapes-20210311_131012.log.json) | +| FCN-D6 | R-101b-D16 | 512x1024 | 80000 | 4.3 | 8.46 | 77.72 | 79.53 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r101b-d16_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b-d16_512x1024_80k_cityscapes/fcn_d6_r101b-d16_512x1024_80k_cityscapes_20210311_144305-3f2eb5b4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_512x1024_80k_cityscapes/fcn_d6_r101b_d16_512x1024_80k_cityscapes-20210311_144305.log.json) | +| FCN-D6 | R-101b-D16 | 769x769 | 80000 | 4.8 | 3.32 | 77.34 | 78.91 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r101b-d16_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b-d16_769x769_80k_cityscapes/fcn_d6_r101b-d16_769x769_80k_cityscapes_20210311_154527-c4d8bfbc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_769x769_80k_cityscapes/fcn_d6_r101b_d16_769x769_80k_cityscapes-20210311_154527.log.json) | ### ADE20K @@ -74,8 +74,8 @@ | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | | ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| FCN | R-101-D8 | 480x480 | 40000 | - | 9.93 | 44.43 | 45.63 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101-d8_480x480_40k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context-20210421_154757-b5e97937.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context-20210421_154757.log.json) | -| FCN | R-101-D8 | 480x480 | 80000 | - | - | 44.13 | 45.26 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101-d8_480x480_80k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context-20210421_163310-4711813f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context-20210421_163310.log.json) | +| FCN | R-101-D8 | 480x480 | 40000 | - | 9.93 | 44.43 | 45.63 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101-d8_480x480_40k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context_20210421_154757-b5e97937.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context_20210421_154757.log.json) | +| FCN | R-101-D8 | 480x480 | 80000 | - | - | 44.13 | 45.26 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_r101-d8_480x480_80k_pascal_context.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context_20210421_163310-4711813f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context_20210421_163310.log.json) | ### Pascal Context 59 diff --git a/configs/fcn/fcn.yml b/configs/fcn/fcn.yml index 21ee86736d..965794d713 100644 --- a/configs/fcn/fcn.yml +++ b/configs/fcn/fcn.yml @@ -349,7 +349,7 @@ Models: mIoU: 77.06 mIoU(ms+flip): 78.85 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes/fcn_d6_r50-d16_512x1024_40k_cityscapes-98d5d1bc.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes/fcn_d6_r50-d16_512x1024_40k_cityscapes_20210305_130133-98d5d1bc.pth - Config: configs/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes.py In Collection: fcn Metadata: @@ -370,7 +370,7 @@ Models: mIoU: 77.27 mIoU(ms+flip): 78.88 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes/fcn_d6_r50-d16_512x1024_40k_cityscapes-98d5d1bc.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes/fcn_d6_r50-d16_512x1024_80k_cityscapes_20210306_115604-133c292f.pth - Config: configs/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes.py In Collection: fcn Metadata: @@ -392,7 +392,7 @@ Models: mIoU: 76.82 mIoU(ms+flip): 78.22 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes/fcn_d6_r50-d16_769x769_40k_cityscapes-1aab18ed.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes/fcn_d6_r50-d16_769x769_40k_cityscapes_20210305_185744-1aab18ed.pth - Config: configs/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes.py In Collection: fcn Metadata: @@ -413,7 +413,7 @@ Models: mIoU: 77.04 mIoU(ms+flip): 78.4 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes/fcn_d6_r50-d16_769x769_80k_cityscapes-109d88eb.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes/fcn_d6_r50-d16_769x769_80k_cityscapes_20210305_200413-109d88eb.pth - Config: configs/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes.py In Collection: fcn Metadata: @@ -435,7 +435,7 @@ Models: mIoU: 77.36 mIoU(ms+flip): 79.18 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes/fcn_d6_r101-d16_512x1024_40k_cityscapes-9cf2b450.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes/fcn_d6_r101-d16_512x1024_40k_cityscapes_20210305_130337-9cf2b450.pth - Config: configs/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes.py In Collection: fcn Metadata: @@ -456,7 +456,7 @@ Models: mIoU: 78.46 mIoU(ms+flip): 80.42 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes/fcn_d6_r101-d16_512x1024_80k_cityscapes-cb336445.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes/fcn_d6_r101-d16_512x1024_80k_cityscapes_20210308_102747-cb336445.pth - Config: configs/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes.py In Collection: fcn Metadata: @@ -478,7 +478,7 @@ Models: mIoU: 77.28 mIoU(ms+flip): 78.95 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes/fcn_d6_r101-d16_769x769_40k_cityscapes-60b114e9.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes/fcn_d6_r101-d16_769x769_40k_cityscapes_20210308_102453-60b114e9.pth - Config: configs/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes.py In Collection: fcn Metadata: @@ -499,7 +499,7 @@ Models: mIoU: 78.06 mIoU(ms+flip): 79.58 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes/fcn_d6_r101-d16_769x769_80k_cityscapes-e33adc4f.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes/fcn_d6_r101-d16_769x769_80k_cityscapes_20210306_120016-e33adc4f.pth - Config: configs/fcn/fcn_d6_r50b-d16_512x1024_80k_cityscapes.py In Collection: fcn Metadata: @@ -521,7 +521,7 @@ Models: mIoU: 76.99 mIoU(ms+flip): 79.03 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_512x1024_80k_cityscapes/fcn_d6_r50b_d16_512x1024_80k_cityscapes-6a0b62e9.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b-d16_512x1024_80k_cityscapes/fcn_d6_r50b-d16_512x1024_80k_cityscapes_20210311_125550-6a0b62e9.pth - Config: configs/fcn/fcn_d6_r50b-d16_769x769_80k_cityscapes.py In Collection: fcn Metadata: @@ -543,7 +543,7 @@ Models: mIoU: 76.86 mIoU(ms+flip): 78.52 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_769x769_80k_cityscapes/fcn_d6_r50b_d16_769x769_80k_cityscapes-d665f231.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b-d16_769x769_80k_cityscapes/fcn_d6_r50b-d16_769x769_80k_cityscapes_20210311_131012-d665f231.pth - Config: configs/fcn/fcn_d6_r101b-d16_512x1024_80k_cityscapes.py In Collection: fcn Metadata: @@ -565,7 +565,7 @@ Models: mIoU: 77.72 mIoU(ms+flip): 79.53 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_512x1024_80k_cityscapes/fcn_d6_r101b_d16_512x1024_80k_cityscapes-3f2eb5b4.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b-d16_512x1024_80k_cityscapes/fcn_d6_r101b-d16_512x1024_80k_cityscapes_20210311_144305-3f2eb5b4.pth - Config: configs/fcn/fcn_d6_r101b-d16_769x769_80k_cityscapes.py In Collection: fcn Metadata: @@ -587,7 +587,7 @@ Models: mIoU: 77.34 mIoU(ms+flip): 78.91 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_769x769_80k_cityscapes/fcn_d6_r101b_d16_769x769_80k_cityscapes-c4d8bfbc.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b-d16_769x769_80k_cityscapes/fcn_d6_r101b-d16_769x769_80k_cityscapes_20210311_154527-c4d8bfbc.pth - Config: configs/fcn/fcn_r50-d8_512x512_80k_ade20k.py In Collection: fcn Metadata: @@ -752,7 +752,7 @@ Models: mIoU: 44.43 mIoU(ms+flip): 45.63 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context-20210421_154757-b5e97937.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context_20210421_154757-b5e97937.pth - Config: configs/fcn/fcn_r101-d8_480x480_80k_pascal_context.py In Collection: fcn Metadata: @@ -766,7 +766,7 @@ Models: mIoU: 44.13 mIoU(ms+flip): 45.26 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context-20210421_163310-4711813f.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context_20210421_163310-4711813f.pth - Config: configs/fcn/fcn_r101-d8_480x480_40k_pascal_context_59.py In Collection: fcn Metadata: diff --git a/configs/fp16/README.md b/configs/fp16/README.md index 4b64cd96f2..881598b9bf 100644 --- a/configs/fp16/README.md +++ b/configs/fp16/README.md @@ -19,7 +19,7 @@ | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | | ---------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| FCN | R-101-D8 | 512x1024 | 80000 | 5.37 | 8.64 | 76.80 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes-50245227.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230921.log.json) | -| PSPNet | R-101-D8 | 512x1024 | 80000 | 5.34 | 8.77 | 79.46 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes-ade37931.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230919.log.json) | -| DeepLabV3 | R-101-D8 | 512x1024 | 80000 | 5.75 | 3.86 | 80.48 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes-bc86dc84.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920.log.json) | -| DeepLabV3+ | R-101-D8 | 512x1024 | 80000 | 6.35 | 7.87 | 80.46 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes-cc58bc8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920.log.json) | +| FCN | R-101-D8 | 512x1024 | 80000 | 5.37 | 8.64 | 76.80 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230921-50245227.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230921.log.json) | +| PSPNet | R-101-D8 | 512x1024 | 80000 | 5.34 | 8.77 | 79.46 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230919-ade37931.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230919.log.json) | +| DeepLabV3 | R-101-D8 | 512x1024 | 80000 | 5.75 | 3.86 | 80.48 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920-bc86dc84.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920.log.json) | +| DeepLabV3+ | R-101-D8 | 512x1024 | 80000 | 6.35 | 7.87 | 80.46 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920-cc58bc8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920.log.json) | diff --git a/configs/fp16/fp16.yml b/configs/fp16/fp16.yml index 81a2a912b3..2be79ad761 100644 --- a/configs/fp16/fp16.yml +++ b/configs/fp16/fp16.yml @@ -24,7 +24,7 @@ Models: Metrics: mIoU: 76.8 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes-50245227.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230921-50245227.pth - Config: configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py In Collection: fp16 Metadata: @@ -45,7 +45,7 @@ Models: Metrics: mIoU: 79.46 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes-ade37931.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230919-ade37931.pth - Config: configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py In Collection: fp16 Metadata: @@ -66,7 +66,7 @@ Models: Metrics: mIoU: 80.48 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes-bc86dc84.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920-bc86dc84.pth - Config: configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py In Collection: fp16 Metadata: @@ -87,4 +87,4 @@ Models: Metrics: mIoU: 80.46 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes-cc58bc8d.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920-cc58bc8d.pth diff --git a/configs/hrnet/README.md b/configs/hrnet/README.md index ca51545f63..e97fb388f1 100644 --- a/configs/hrnet/README.md +++ b/configs/hrnet/README.md @@ -34,9 +34,9 @@ | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | | ------ | ------------------ | --------- | ------: | -------- | -------------- | ----: | ------------: | ----------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | FCN | HRNetV2p-W18-Small | 512x512 | 80000 | 3.8 | 38.66 | 31.38 | 32.45 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18s_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_80k_ade20k/fcn_hr18s_512x512_80k_ade20k_20200614_144345-77fc814a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_80k_ade20k/fcn_hr18s_512x512_80k_ade20k_20200614_144345.log.json) | -| FCN | HRNetV2p-W18 | 512x512 | 80000 | 4.9 | 22.57 | 35.51 | 36.80 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_ade20k/fcn_hr18_512x512_80k_ade20k_20200614_185145-66f20cb7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_ade20k/fcn_hr18_512x512_80k_ade20k_20200614_185145.log.json) | +| FCN | HRNetV2p-W18 | 512x512 | 80000 | 4.9 | 22.57 | 36.27 | 37.28 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_ade20k/fcn_hr18_512x512_80k_ade20k_20210827_114910-6c9382c0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_ade20k/fcn_hr18_512x512_80k_ade20k_20210827_114910.log.json) | | FCN | HRNetV2p-W48 | 512x512 | 80000 | 8.2 | 21.23 | 41.90 | 43.27 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr48_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_80k_ade20k/fcn_hr48_512x512_80k_ade20k_20200614_193946-7ba5258d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_80k_ade20k/fcn_hr48_512x512_80k_ade20k_20200614_193946.log.json) | -| FCN | HRNetV2p-W18-Small | 512x512 | 160000 | - | - | 33.00 | 34.55 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18s_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_160k_ade20k/fcn_hr18s_512x512_160k_ade20k_20200614_214413-870f65ac.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_160k_ade20k/fcn_hr18s_512x512_160k_ade20k_20200614_214413.log.json) | +| FCN | HRNetV2p-W18-Small | 512x512 | 160000 | - | - | 33.07 | 34.56 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18s_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_160k_ade20k/fcn_hr18s_512x512_160k_ade20k_20210829_174739-f1e7c2e7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_160k_ade20k/fcn_hr18s_512x512_160k_ade20k_20210829_174739.log.json) | | FCN | HRNetV2p-W18 | 512x512 | 160000 | - | - | 36.79 | 38.58 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_160k_ade20k/fcn_hr18_512x512_160k_ade20k_20200614_214426-ca961836.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_160k_ade20k/fcn_hr18_512x512_160k_ade20k_20200614_214426.log.json) | | FCN | HRNetV2p-W48 | 512x512 | 160000 | - | - | 42.02 | 43.86 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr48_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_160k_ade20k/fcn_hr48_512x512_160k_ade20k_20200614_214407-a52fc02c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_160k_ade20k/fcn_hr48_512x512_160k_ade20k_20200614_214407.log.json) | @@ -44,7 +44,7 @@ | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | | ------ | ------------------ | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| FCN | HRNetV2p-W18-Small | 512x512 | 20000 | 1.8 | 43.36 | 65.20 | 68.55 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18s_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_20k_voc12aug/fcn_hr18s_512x512_20k_voc12aug_20200617_224503-56e36088.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_20k_voc12aug/fcn_hr18s_512x512_20k_voc12aug_20200617_224503.log.json) | +| FCN | HRNetV2p-W18-Small | 512x512 | 20000 | 1.8 | 43.36 | 65.5 | 68.89 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18s_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_20k_voc12aug/fcn_hr18s_512x512_20k_voc12aug_20210829_174910-0aceadb4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_20k_voc12aug/fcn_hr18s_512x512_20k_voc12aug_20210829_174910.log.json) | | FCN | HRNetV2p-W18 | 512x512 | 20000 | 2.9 | 23.48 | 72.30 | 74.71 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_20k_voc12aug/fcn_hr18_512x512_20k_voc12aug_20200617_224503-488d45f7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_20k_voc12aug/fcn_hr18_512x512_20k_voc12aug_20200617_224503.log.json) | | FCN | HRNetV2p-W48 | 512x512 | 20000 | 6.2 | 22.05 | 75.87 | 78.58 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr48_512x512_20k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_20k_voc12aug/fcn_hr48_512x512_20k_voc12aug_20200617_224419-89de05cd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_20k_voc12aug/fcn_hr48_512x512_20k_voc12aug_20200617_224419.log.json) | | FCN | HRNetV2p-W18-Small | 512x512 | 40000 | - | - | 66.61 | 70.00 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18s_512x512_40k_voc12aug.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_40k_voc12aug/fcn_hr18s_512x512_40k_voc12aug_20200614_000648-4f8d6e7f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_40k_voc12aug/fcn_hr18s_512x512_40k_voc12aug_20200614_000648.log.json) | diff --git a/configs/hrnet/hrnet.yml b/configs/hrnet/hrnet.yml index 4dbd88e12c..0a9c0e22c4 100644 --- a/configs/hrnet/hrnet.yml +++ b/configs/hrnet/hrnet.yml @@ -198,10 +198,10 @@ Models: Results: Dataset: ADE20K Metrics: - mIoU: 35.51 - mIoU(ms+flip): 36.8 + mIoU: 36.27 + mIoU(ms+flip): 37.28 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_ade20k/fcn_hr18_512x512_80k_ade20k_20200614_185145-66f20cb7.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_ade20k/fcn_hr18_512x512_80k_ade20k_20210827_114910-6c9382c0.pth - Config: configs/hrnet/fcn_hr48_512x512_80k_ade20k.py In Collection: hrnet Metadata: @@ -234,10 +234,10 @@ Models: Results: Dataset: ADE20K Metrics: - mIoU: 33.0 - mIoU(ms+flip): 34.55 + mIoU: 33.07 + mIoU(ms+flip): 34.56 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_160k_ade20k/fcn_hr18s_512x512_160k_ade20k_20200614_214413-870f65ac.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_160k_ade20k/fcn_hr18s_512x512_160k_ade20k_20210829_174739-f1e7c2e7.pth - Config: configs/hrnet/fcn_hr18_512x512_160k_ade20k.py In Collection: hrnet Metadata: @@ -284,10 +284,10 @@ Models: Results: Dataset: Pascal VOC 2012 + Aug Metrics: - mIoU: 65.2 - mIoU(ms+flip): 68.55 + mIoU: 65.5 + mIoU(ms+flip): 68.89 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_20k_voc12aug/fcn_hr18s_512x512_20k_voc12aug_20200617_224503-56e36088.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_20k_voc12aug/fcn_hr18s_512x512_20k_voc12aug_20210829_174910-0aceadb4.pth - Config: configs/hrnet/fcn_hr18_512x512_20k_voc12aug.py In Collection: hrnet Metadata: diff --git a/configs/nonlocal_net/README.md b/configs/nonlocal_net/README.md index da0924ac60..b98d6d5f3f 100644 --- a/configs/nonlocal_net/README.md +++ b/configs/nonlocal_net/README.md @@ -36,7 +36,7 @@ | NonLocal | R-50-D8 | 512x512 | 80000 | 9.1 | 21.37 | 40.75 | 42.05 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k/nonlocal_r50-d8_512x512_80k_ade20k_20200615_015801-5ae0aa33.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k/nonlocal_r50-d8_512x512_80k_ade20k_20200615_015801.log.json) | | NonLocal | R-101-D8 | 512x512 | 80000 | 12.6 | 13.97 | 42.90 | 44.27 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k/nonlocal_r101-d8_512x512_80k_ade20k_20200615_015758-24105919.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k/nonlocal_r101-d8_512x512_80k_ade20k_20200615_015758.log.json) | | NonLocal | R-50-D8 | 512x512 | 160000 | - | - | 42.03 | 43.04 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k/nonlocal_r50-d8_512x512_160k_ade20k_20200616_005410-baef45e3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k/nonlocal_r50-d8_512x512_160k_ade20k_20200616_005410.log.json) | -| NonLocal | R-101-D8 | 512x512 | 160000 | - | - | 43.36 | 44.83 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k/nonlocal_r101-d8_512x512_160k_ade20k_20200616_003422-affd0f8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k/nonlocal_r101-d8_512x512_160k_ade20k_20200616_003422.log.json) | +| NonLocal | R-101-D8 | 512x512 | 160000 | - | - | 44.63 | 45.79 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k/nonlocal_r101-d8_512x512_160k_ade20k_20210827_221502-7881aa1a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k/nonlocal_r101-d8_512x512_160k_ade20k_20210827_221502.log.json) | ### Pascal VOC 2012 + Aug diff --git a/configs/nonlocal_net/nonlocal_net.yml b/configs/nonlocal_net/nonlocal_net.yml index e349f5c069..daf56bbfca 100644 --- a/configs/nonlocal_net/nonlocal_net.yml +++ b/configs/nonlocal_net/nonlocal_net.yml @@ -214,10 +214,10 @@ Models: Results: Dataset: ADE20K Metrics: - mIoU: 43.36 - mIoU(ms+flip): 44.83 + mIoU: 44.63 + mIoU(ms+flip): 45.79 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k/nonlocal_r101-d8_512x512_160k_ade20k_20200616_003422-affd0f8d.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k/nonlocal_r101-d8_512x512_160k_ade20k_20210827_221502-7881aa1a.pth - Config: configs/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug.py In Collection: nonlocal_net Metadata: diff --git a/configs/ocrnet/README.md b/configs/ocrnet/README.md index 136b49d4b6..68b4bb37b7 100644 --- a/configs/ocrnet/README.md +++ b/configs/ocrnet/README.md @@ -42,9 +42,9 @@ | Method | Backbone | Crop Size | Batch Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | | ------ | -------- | --------- | ---------- | ------- | -------- | -------------- | ----- | ------------: | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| OCRNet | R-101-D8 | 512x1024 | 8 | 40000 | - | - | 80.09 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes/ocrnet_r101-d8_512x1024_40k_b8_cityscapes-02ac0f13.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes/ocrnet_r101-d8_512x1024_40k_b8_cityscapes_20200717_110721.log.json) | -| OCRNet | R-101-D8 | 512x1024 | 16 | 40000 | 8.8 | 3.02 | 80.30 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes/ocrnet_r101-d8_512x1024_40k_b16_cityscapes-db500f80.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes/ocrnet_r101-d8_512x1024_40k_b16_cityscapes_20200723_193726.log.json) | -| OCRNet | R-101-D8 | 512x1024 | 16 | 80000 | 8.8 | 3.02 | 80.81 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes/ocrnet_r101-d8_512x1024_80k_b16_cityscapes-78688424.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes/ocrnet_r101-d8_512x1024_80k_b16_cityscapes_20200723_192421.log.json) | +| OCRNet | R-101-D8 | 512x1024 | 8 | 40000 | - | - | 80.09 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes/ocrnet_r101-d8_512x1024_40k_b8_cityscapes_20200717_110721-02ac0f13.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes/ocrnet_r101-d8_512x1024_40k_b8_cityscapes_20200717_110721.log.json) | +| OCRNet | R-101-D8 | 512x1024 | 16 | 40000 | 8.8 | 3.02 | 80.30 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes/ocrnet_r101-d8_512x1024_40k_b16_cityscapes_20200723_193726-db500f80.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes/ocrnet_r101-d8_512x1024_40k_b16_cityscapes_20200723_193726.log.json) | +| OCRNet | R-101-D8 | 512x1024 | 16 | 80000 | 8.8 | 3.02 | 80.81 | - | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes/ocrnet_r101-d8_512x1024_80k_b16_cityscapes_20200723_192421-78688424.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes/ocrnet_r101-d8_512x1024_80k_b16_cityscapes_20200723_192421.log.json) | ### ADE20K diff --git a/configs/ocrnet/ocrnet.yml b/configs/ocrnet/ocrnet.yml index 63ead6a120..09db262046 100644 --- a/configs/ocrnet/ocrnet.yml +++ b/configs/ocrnet/ocrnet.yml @@ -170,7 +170,7 @@ Models: Metrics: mIoU: 80.09 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes/ocrnet_r101-d8_512x1024_40k_b8_cityscapes-02ac0f13.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes/ocrnet_r101-d8_512x1024_40k_b8_cityscapes_20200717_110721-02ac0f13.pth - Config: configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py In Collection: ocrnet Metadata: @@ -191,7 +191,7 @@ Models: Metrics: mIoU: 80.3 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes/ocrnet_r101-d8_512x1024_40k_b16_cityscapes-db500f80.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes/ocrnet_r101-d8_512x1024_40k_b16_cityscapes_20200723_193726-db500f80.pth - Config: configs/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py In Collection: ocrnet Metadata: @@ -212,7 +212,7 @@ Models: Metrics: mIoU: 80.81 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes/ocrnet_r101-d8_512x1024_80k_b16_cityscapes-78688424.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes/ocrnet_r101-d8_512x1024_80k_b16_cityscapes_20200723_192421-78688424.pth - Config: configs/ocrnet/ocrnet_hr18s_512x512_80k_ade20k.py In Collection: ocrnet Metadata: diff --git a/configs/unet/README.md b/configs/unet/README.md index a0f7d6502b..f05bbb2ca6 100644 --- a/configs/unet/README.md +++ b/configs/unet/README.md @@ -21,7 +21,7 @@ | Method | Backbone | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | config | download | | ----------- | --------- | ---------- | --------- | -----: | ------- | -------- | -------------: | ----: | ------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| FCN | UNet-S5-D16 | 584x565 | 64x64 | 42x42 | 40000 | 0.680 | - | 78.67 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_64x64_40k_drive/unet_s5-d16_64x64_40k_drive_20201223_191051-5daf6d3b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_64x64_40k_drive/fcn_unet_s5-d16_64x64_40k_drive-20201223_191051.log.json) | +| FCN | UNet-S5-D16 | 584x565 | 64x64 | 42x42 | 40000 | 0.680 | - | 78.67 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_64x64_40k_drive/fcn_unet_s5-d16_64x64_40k_drive_20201223_191051-5daf6d3b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_64x64_40k_drive/unet_s5-d16_64x64_40k_drive-20201223_191051.log.json) | | PSPNet | UNet-S5-D16 | 584x565 | 64x64 | 42x42 | 40000 | 0.599 | - | 78.62 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_64x64_40k_drive/pspnet_unet_s5-d16_64x64_40k_drive_20201227_181818-aac73387.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_64x64_40k_drive/pspnet_unet_s5-d16_64x64_40k_drive-20201227_181818.log.json) | | DeepLabV3 | UNet-S5-D16 | 584x565 | 64x64 | 42x42 | 40000 | 0.596 | - | 78.69 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/deeplabv3_unet_s5-d16_64x64_40k_drive.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_64x64_40k_drive/deeplabv3_unet_s5-d16_64x64_40k_drive_20201226_094047-0671ff20.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_64x64_40k_drive/deeplabv3_unet_s5-d16_64x64_40k_drive-20201226_094047.log.json) | @@ -29,7 +29,7 @@ | Method | Backbone | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | config | download | | ----------- | --------- | ---------- | --------- | -----: | ------- | -------- | -------------: | ----: | -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| FCN | UNet-S5-D16 | 605x700 | 128x128 | 85x85 | 40000 | 0.968 | - | 81.02 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_stare/unet_s5-d16_128x128_40k_stare_20201223_191051-7d77e78b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_stare/unet_s5-d16_128x128_40k_stare-20201223_191051.log.json) | +| FCN | UNet-S5-D16 | 605x700 | 128x128 | 85x85 | 40000 | 0.968 | - | 81.02 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_stare/fcn_unet_s5-d16_128x128_40k_stare_20201223_191051-7d77e78b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_stare/unet_s5-d16_128x128_40k_stare-20201223_191051.log.json) | | PSPNet | UNet-S5-D16 | 605x700 | 128x128 | 85x85 | 40000 | 0.982 | - | 81.22 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/pspnet_unet_s5-d16_128x128_40k_stare.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_stare/pspnet_unet_s5-d16_128x128_40k_stare_20201227_181818-3c2923c4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_stare/pspnet_unet_s5-d16_128x128_40k_stare-20201227_181818.log.json) | | DeepLabV3 | UNet-S5-D16 | 605x700 | 128x128 | 85x85 | 40000 | 0.999 | - | 80.93 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_stare.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_stare/deeplabv3_unet_s5-d16_128x128_40k_stare_20201226_094047-93dcb93c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_stare/deeplabv3_unet_s5-d16_128x128_40k_stare-20201226_094047.log.json) | @@ -37,7 +37,7 @@ | Method | Backbone | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | config | download | | ----------- | --------- | ---------- | --------- | -----: | ------- | -------- | -------------: | ----: | -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| FCN | UNet-S5-D16 | 960x999 | 128x128 | 85x85 | 40000 | 0.968 | - | 80.24 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_chase_db1/unet_s5-d16_128x128_40k_chase_db1_20201223_191051-11543527.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_chase_db1/unet_s5-d16_128x128_40k_chase_db1-20201223_191051.log.json) | +| FCN | UNet-S5-D16 | 960x999 | 128x128 | 85x85 | 40000 | 0.968 | - | 80.24 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_chase_db1/fcn_unet_s5-d16_128x128_40k_chase_db1_20201223_191051-11543527.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_chase_db1/unet_s5-d16_128x128_40k_chase_db1-20201223_191051.log.json) | | PSPNet | UNet-S5-D16 | 960x999 | 128x128 | 85x85 | 40000 | 0.982 | - | 80.36 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1/pspnet_unet_s5-d16_128x128_40k_chase_db1_20201227_181818-68d4e609.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1/pspnet_unet_s5-d16_128x128_40k_chase_db1-20201227_181818.log.json) | | DeepLabV3 | UNet-S5-D16 | 960x999 | 128x128 | 85x85 | 40000 | 0.999 | - | 80.47 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1/deeplabv3_unet_s5-d16_128x128_40k_chase_db1_20201226_094047-4c5aefa3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1/deeplabv3_unet_s5-d16_128x128_40k_chase_db1-20201226_094047.log.json) | @@ -45,6 +45,6 @@ | Method | Backbone | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | config | download | | ----------- | --------- | ---------- | --------- | -----: | ------- | -------- | -------------: | ----: | -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| FCN | UNet-S5-D16 | 2336x3504 | 256x256 | 170x170 | 40000 | 2.525 | - | 79.45 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_256x256_40k_hrf/unet_s5-d16_256x256_40k_hrf_20201223_173724-d89cf1ed.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_256x256_40k_hrf/unet_s5-d16_256x256_40k_hrf-20201223_173724.log.json) | +| FCN | UNet-S5-D16 | 2336x3504 | 256x256 | 170x170 | 40000 | 2.525 | - | 79.45 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_256x256_40k_hrf/fcn_unet_s5-d16_256x256_40k_hrf_20201223_173724-d89cf1ed.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_256x256_40k_hrf/unet_s5-d16_256x256_40k_hrf-20201223_173724.log.json) | | PSPNet | UNet-S5-D16 | 2336x3504 | 256x256 | 170x170 | 40000 | 2.588 | - | 80.07 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_256x256_40k_hrf/pspnet_unet_s5-d16_256x256_40k_hrf_20201227_181818-fdb7e29b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_256x256_40k_hrf/pspnet_unet_s5-d16_256x256_40k_hrf-20201227_181818.log.json) | | DeepLabV3 | UNet-S5-D16 | 2336x3504 | 256x256 | 170x170 | 40000 | 2.604 | - | 80.21 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf/deeplabv3_unet_s5-d16_256x256_40k_hrf_20201226_094047-3a1fdf85.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf/deeplabv3_unet_s5-d16_256x256_40k_hrf-20201226_094047.log.json) | diff --git a/configs/unet/unet.yml b/configs/unet/unet.yml index b9275c6d0a..569493d75a 100644 --- a/configs/unet/unet.yml +++ b/configs/unet/unet.yml @@ -20,7 +20,7 @@ Models: Metrics: mIoU: 78.67 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_64x64_40k_drive/unet_s5-d16_64x64_40k_drive_20201223_191051-5daf6d3b.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_64x64_40k_drive/fcn_unet_s5-d16_64x64_40k_drive_20201223_191051-5daf6d3b.pth - Config: configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py In Collection: unet Metadata: @@ -62,7 +62,7 @@ Models: Metrics: mIoU: 81.02 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_stare/unet_s5-d16_128x128_40k_stare_20201223_191051-7d77e78b.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_stare/fcn_unet_s5-d16_128x128_40k_stare_20201223_191051-7d77e78b.pth - Config: configs/unet/pspnet_unet_s5-d16_128x128_40k_stare.py In Collection: unet Metadata: @@ -104,7 +104,7 @@ Models: Metrics: mIoU: 80.24 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_chase_db1/unet_s5-d16_128x128_40k_chase_db1_20201223_191051-11543527.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_chase_db1/fcn_unet_s5-d16_128x128_40k_chase_db1_20201223_191051-11543527.pth - Config: configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py In Collection: unet Metadata: @@ -146,7 +146,7 @@ Models: Metrics: mIoU: 79.45 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_256x256_40k_hrf/unet_s5-d16_256x256_40k_hrf_20201223_173724-d89cf1ed.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_256x256_40k_hrf/fcn_unet_s5-d16_256x256_40k_hrf_20201223_173724-d89cf1ed.pth - Config: configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py In Collection: unet Metadata: diff --git a/configs/vit/README.md b/configs/vit/README.md index 0751ae3415..3218aff7f4 100644 --- a/configs/vit/README.md +++ b/configs/vit/README.md @@ -37,14 +37,14 @@ This script convert model from `PRETRAIN_PATH` and store the converted model in | Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | | ------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ---------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| UPerNet | ViT-B + MLN | 512x512 | 80000 | 9.20 | 6.94 | 47.71 | 49.51 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_vit-b16_mln_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_mln_512x512_80k_ade20k/upernet_vit-b16_mln_512x512_80k_ade20k-0403cee1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_mln_512x512_80k_ade20k/20210624_130547.log.json) | -| UPerNet | ViT-B + MLN | 512x512 | 160000 | 9.20 | 7.58 | 46.75 | 48.46 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_vit-b16_mln_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_mln_512x512_160k_ade20k/upernet_vit-b16_mln_512x512_160k_ade20k-852fa768.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_mln_512x512_160k_ade20k/20210623_192432.log.json) | -| UPerNet | ViT-B + LN + MLN | 512x512 | 160000 | 9.21 | 6.82 | 47.73 | 49.95 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k/upernet_vit-b16_ln_mln_512x512_160k_ade20k-f444c077.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k/20210621_172828.log.json) | -| UPerNet | DeiT-S | 512x512 | 80000 | 4.68 | 29.85 | 42.96 | 43.79 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_deit-s16_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_512x512_80k_ade20k/upernet_deit-s16_512x512_80k_ade20k-afc93ec2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_512x512_80k_ade20k/20210624_095228.log.json) | -| UPerNet | DeiT-S | 512x512 | 160000 | 4.68 | 29.19 | 42.87 | 43.79 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_deit-s16_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_512x512_160k_ade20k/upernet_deit-s16_512x512_160k_ade20k-5110d916.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_512x512_160k_ade20k/20210621_160903.log.json) | -| UPerNet | DeiT-S + MLN | 512x512 | 160000 | 5.69 | 11.18 | 43.82 | 45.07 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_deit-s16_mln_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_mln_512x512_160k_ade20k/upernet_deit-s16_mln_512x512_160k_ade20k-fb9a5dfb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_mln_512x512_160k_ade20k/20210621_161021.log.json) | -| UPerNet | DeiT-S + LN + MLN | 512x512 | 160000 | 5.69 | 12.39 | 43.52 | 45.01 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k/upernet_deit-s16_ln_mln_512x512_160k_ade20k-c0cd652f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k/20210621_161021.log.json) | -| UPerNet | DeiT-B | 512x512 | 80000 | 7.75 | 9.69 | 45.24 | 46.73 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_deit-b16_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_512x512_80k_ade20k/upernet_deit-b16_512x512_80k_ade20k-1e090789.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_512x512_80k_ade20k/20210624_130529.log.json) | -| UPerNet | DeiT-B | 512x512 | 160000 | 7.75 | 10.39 | 45.36 | 47.16 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_deit-b16_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_512x512_160k_ade20k/upernet_deit-b16_512x512_160k_ade20k-828705d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_512x512_160k_ade20k/20210621_180100.log.json) | -| UPerNet | DeiT-B + MLN | 512x512 | 160000 | 9.21 | 7.78 | 45.46 | 47.16 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_deit-b16_mln_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_mln_512x512_160k_ade20k/upernet_deit-b16_mln_512x512_160k_ade20k-4e1450f3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_mln_512x512_160k_ade20k/20210621_191949.log.json) | -| UPerNet | DeiT-B + LN + MLN | 512x512 | 160000 | 9.21 | 7.75 | 45.37 | 47.23 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k/upernet_deit-b16_ln_mln_512x512_160k_ade20k-8a959c14.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k/20210623_153535.log.json) | +| UPerNet | ViT-B + MLN | 512x512 | 80000 | 9.20 | 6.94 | 47.71 | 49.51 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_vit-b16_mln_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_mln_512x512_80k_ade20k/upernet_vit-b16_mln_512x512_80k_ade20k_20210624_130547-0403cee1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_mln_512x512_80k_ade20k/20210624_130547.log.json) | +| UPerNet | ViT-B + MLN | 512x512 | 160000 | 9.20 | 7.58 | 46.75 | 48.46 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_vit-b16_mln_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_mln_512x512_160k_ade20k/upernet_vit-b16_mln_512x512_160k_ade20k_20210624_130547-852fa768.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_mln_512x512_160k_ade20k/20210623_192432.log.json) | +| UPerNet | ViT-B + LN + MLN | 512x512 | 160000 | 9.21 | 6.82 | 47.73 | 49.95 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k/upernet_vit-b16_ln_mln_512x512_160k_ade20k_20210621_172828-f444c077.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k/20210621_172828.log.json) | +| UPerNet | DeiT-S | 512x512 | 80000 | 4.68 | 29.85 | 42.96 | 43.79 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_deit-s16_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_512x512_80k_ade20k/upernet_deit-s16_512x512_80k_ade20k_20210624_095228-afc93ec2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_512x512_80k_ade20k/20210624_095228.log.json) | +| UPerNet | DeiT-S | 512x512 | 160000 | 4.68 | 29.19 | 42.87 | 43.79 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_deit-s16_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_512x512_160k_ade20k/upernet_deit-s16_512x512_160k_ade20k_20210621_160903-5110d916.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_512x512_160k_ade20k/20210621_160903.log.json) | +| UPerNet | DeiT-S + MLN | 512x512 | 160000 | 5.69 | 11.18 | 43.82 | 45.07 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_deit-s16_mln_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_mln_512x512_160k_ade20k/upernet_deit-s16_mln_512x512_160k_ade20k_20210621_161021-fb9a5dfb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_mln_512x512_160k_ade20k/20210621_161021.log.json) | +| UPerNet | DeiT-S + LN + MLN | 512x512 | 160000 | 5.69 | 12.39 | 43.52 | 45.01 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k/upernet_deit-s16_ln_mln_512x512_160k_ade20k_20210621_161021-c0cd652f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k/20210621_161021.log.json) | +| UPerNet | DeiT-B | 512x512 | 80000 | 7.75 | 9.69 | 45.24 | 46.73 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_deit-b16_512x512_80k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_512x512_80k_ade20k/upernet_deit-b16_512x512_80k_ade20k_20210624_130529-1e090789.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_512x512_80k_ade20k/20210624_130529.log.json) | +| UPerNet | DeiT-B | 512x512 | 160000 | 7.75 | 10.39 | 45.36 | 47.16 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_deit-b16_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_512x512_160k_ade20k/upernet_deit-b16_512x512_160k_ade20k_20210621_180100-828705d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_512x512_160k_ade20k/20210621_180100.log.json) | +| UPerNet | DeiT-B + MLN | 512x512 | 160000 | 9.21 | 7.78 | 45.46 | 47.16 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_deit-b16_mln_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_mln_512x512_160k_ade20k/upernet_deit-b16_mln_512x512_160k_ade20k_20210621_191949-4e1450f3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_mln_512x512_160k_ade20k/20210621_191949.log.json) | +| UPerNet | DeiT-B + LN + MLN | 512x512 | 160000 | 9.21 | 7.75 | 45.37 | 47.23 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k/upernet_deit-b16_ln_mln_512x512_160k_ade20k_20210623_153535-8a959c14.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k/20210623_153535.log.json) | diff --git a/configs/vit/vit.yml b/configs/vit/vit.yml index a821e347d9..0d526346e5 100644 --- a/configs/vit/vit.yml +++ b/configs/vit/vit.yml @@ -25,7 +25,7 @@ Models: mIoU: 47.71 mIoU(ms+flip): 49.51 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_mln_512x512_80k_ade20k/upernet_vit-b16_mln_512x512_80k_ade20k-0403cee1.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_mln_512x512_80k_ade20k/upernet_vit-b16_mln_512x512_80k_ade20k_20210624_130547-0403cee1.pth - Config: configs/vit/upernet_vit-b16_mln_512x512_160k_ade20k.py In Collection: vit Metadata: @@ -47,7 +47,7 @@ Models: mIoU: 46.75 mIoU(ms+flip): 48.46 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_mln_512x512_160k_ade20k/upernet_vit-b16_mln_512x512_160k_ade20k-852fa768.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_mln_512x512_160k_ade20k/upernet_vit-b16_mln_512x512_160k_ade20k_20210624_130547-852fa768.pth - Config: configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py In Collection: vit Metadata: @@ -69,7 +69,7 @@ Models: mIoU: 47.73 mIoU(ms+flip): 49.95 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k/upernet_vit-b16_ln_mln_512x512_160k_ade20k-f444c077.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k/upernet_vit-b16_ln_mln_512x512_160k_ade20k_20210621_172828-f444c077.pth - Config: configs/vit/upernet_deit-s16_512x512_80k_ade20k.py In Collection: vit Metadata: @@ -91,7 +91,7 @@ Models: mIoU: 42.96 mIoU(ms+flip): 43.79 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_512x512_80k_ade20k/upernet_deit-s16_512x512_80k_ade20k-afc93ec2.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_512x512_80k_ade20k/upernet_deit-s16_512x512_80k_ade20k_20210624_095228-afc93ec2.pth - Config: configs/vit/upernet_deit-s16_512x512_160k_ade20k.py In Collection: vit Metadata: @@ -113,7 +113,7 @@ Models: mIoU: 42.87 mIoU(ms+flip): 43.79 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_512x512_160k_ade20k/upernet_deit-s16_512x512_160k_ade20k-5110d916.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_512x512_160k_ade20k/upernet_deit-s16_512x512_160k_ade20k_20210621_160903-5110d916.pth - Config: configs/vit/upernet_deit-s16_mln_512x512_160k_ade20k.py In Collection: vit Metadata: @@ -135,7 +135,7 @@ Models: mIoU: 43.82 mIoU(ms+flip): 45.07 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_mln_512x512_160k_ade20k/upernet_deit-s16_mln_512x512_160k_ade20k-fb9a5dfb.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_mln_512x512_160k_ade20k/upernet_deit-s16_mln_512x512_160k_ade20k_20210621_161021-fb9a5dfb.pth - Config: configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py In Collection: vit Metadata: @@ -157,7 +157,7 @@ Models: mIoU: 43.52 mIoU(ms+flip): 45.01 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k/upernet_deit-s16_ln_mln_512x512_160k_ade20k-c0cd652f.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k/upernet_deit-s16_ln_mln_512x512_160k_ade20k_20210621_161021-c0cd652f.pth - Config: configs/vit/upernet_deit-b16_512x512_80k_ade20k.py In Collection: vit Metadata: @@ -179,7 +179,7 @@ Models: mIoU: 45.24 mIoU(ms+flip): 46.73 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_512x512_80k_ade20k/upernet_deit-b16_512x512_80k_ade20k-1e090789.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_512x512_80k_ade20k/upernet_deit-b16_512x512_80k_ade20k_20210624_130529-1e090789.pth - Config: configs/vit/upernet_deit-b16_512x512_160k_ade20k.py In Collection: vit Metadata: @@ -201,7 +201,7 @@ Models: mIoU: 45.36 mIoU(ms+flip): 47.16 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_512x512_160k_ade20k/upernet_deit-b16_512x512_160k_ade20k-828705d7.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_512x512_160k_ade20k/upernet_deit-b16_512x512_160k_ade20k_20210621_180100-828705d7.pth - Config: configs/vit/upernet_deit-b16_mln_512x512_160k_ade20k.py In Collection: vit Metadata: @@ -223,7 +223,7 @@ Models: mIoU: 45.46 mIoU(ms+flip): 47.16 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_mln_512x512_160k_ade20k/upernet_deit-b16_mln_512x512_160k_ade20k-4e1450f3.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_mln_512x512_160k_ade20k/upernet_deit-b16_mln_512x512_160k_ade20k_20210621_191949-4e1450f3.pth - Config: configs/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k.py In Collection: vit Metadata: @@ -245,4 +245,4 @@ Models: mIoU: 45.37 mIoU(ms+flip): 47.23 Task: Semantic Segmentation - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k/upernet_deit-b16_ln_mln_512x512_160k_ade20k-8a959c14.pth + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k/upernet_deit-b16_ln_mln_512x512_160k_ade20k_20210623_153535-8a959c14.pth diff --git a/setup.cfg b/setup.cfg index 0c80b37ce7..6e88c113e2 100644 --- a/setup.cfg +++ b/setup.cfg @@ -8,6 +8,6 @@ line_length = 79 multi_line_output = 0 known_standard_library = setuptools known_first_party = mmseg -known_third_party = PIL,cityscapesscripts,cv2,detail,matplotlib,mmcv,numpy,onnxruntime,oss2,packaging,prettytable,pytest,scipy,seaborn,torch,ts +known_third_party = PIL,cityscapesscripts,cv2,detail,matplotlib,mmcv,numpy,onnxruntime,packaging,prettytable,pytest,scipy,seaborn,torch,ts no_lines_before = STDLIB,LOCALFOLDER default_section = THIRDPARTY diff --git a/tools/test.py b/tools/test.py index 7420a44ad3..d99c153728 100644 --- a/tools/test.py +++ b/tools/test.py @@ -1,7 +1,9 @@ # Copyright (c) OpenMMLab. All rights reserved. import argparse import os +import os.path as osp import shutil +import time import warnings import mmcv @@ -21,6 +23,10 @@ def parse_args(): description='mmseg test (and eval) a model') parser.add_argument('config', help='test config file path') parser.add_argument('checkpoint', help='checkpoint file') + parser.add_argument( + '--work-dir', + help=('if specified, the evaluation metric results will be dumped' + 'into the directory as json')) parser.add_argument( '--aug-test', action='store_true', help='Use Flip and Multi scale aug') parser.add_argument('--out', help='output result file in pickle format') @@ -108,6 +114,13 @@ def main(): distributed = True init_dist(args.launcher, **cfg.dist_params) + rank, _ = get_dist_info() + # allows not to create + if args.work_dir is not None and rank == 0: + mmcv.mkdir_or_exist(osp.abspath(args.work_dir)) + timestamp = time.strftime('%Y%m%d_%H%M%S', time.localtime()) + json_file = osp.join(args.work_dir, f'eval_{timestamp}.json') + # build the dataloader # TODO: support multiple images per gpu (only minor changes are needed) dataset = build_dataset(cfg.data.test) @@ -202,10 +215,13 @@ def main(): print(f'\nwriting results to {args.out}') mmcv.dump(results, args.out) if args.eval: - dataset.evaluate(results, args.eval, **eval_kwargs) - if tmpdir is not None and eval_on_format_results: - # remove tmp dir when cityscapes evaluation - shutil.rmtree(tmpdir) + metric = dataset.evaluate(results, args.eval, **eval_kwargs) + metric_dict = dict(config=args.config, metric=metric) + if args.work_dir is not None and rank == 0: + mmcv.dump(metric_dict, json_file, indent=4) + if tmpdir is not None and eval_on_format_results: + # remove tmp dir when cityscapes evaluation + shutil.rmtree(tmpdir) if __name__ == '__main__': From 6762958ea0ee423003849f2b35c8ae9c664f1579 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Thu, 9 Sep 2021 09:43:17 +0800 Subject: [PATCH 231/706] [Enhancement] Upgrade CI for PyTorch1.9 (#712) * Upgrade CI for PyTorch1.9 * fix typo * merge build_cu101 and build_cu102 to build_cuda * fix substitution bug * test * test * test * test * test * test * test * test * test * test * test * test * remove redudant items * add python 3.9 to CI * add python 3.9 to setup.py * remove some versions of pytorch for python 3.9 test * fix torch version error * delete mim files * update ubuntu version * fix mmcv cuda version --- .github/workflows/build.yml | 94 +++++++++++++++++++++++++------------ setup.py | 1 + 2 files changed, 66 insertions(+), 29 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0136f2b4f8..6bb5a4d144 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,7 +4,7 @@ on: [ push, pull_request ] jobs: lint: - runs-on: ubuntu-latest + runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - name: Set up Python 3.7 @@ -21,26 +21,31 @@ jobs: run: | pip install interrogate interrogate -v --ignore-init-method --ignore-module --ignore-nested-functions --exclude mmseg/ops --ignore-regex "__repr__" --fail-under 80 mmseg - build_cpu: runs-on: ubuntu-18.04 strategy: matrix: - python-version: [ 3.6, 3.7 ] - torch: [ 1.3.0, 1.5.0 ] + python-version: [3.7] + torch: [1.3.0, 1.5.0, 1.7.0, 1.9.0] include: - torch: 1.3.0 torchvision: 0.4.1 - torch: 1.5.0 torchvision: 0.6.0 + - torch: 1.7.0 + torchvision: 0.8.1 + - torch: 1.9.0 + torchvision: 0.10.0 steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} + - name: Upgrade pip + run: pip install pip --upgrade - name: Install Pillow - if: ${{matrix.torchvision < 0.5}} + if: ${{matrix.torchvision == '0.4.1'}} run: pip install Pillow==6.2.2 - name: Install PyTorch run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/torch_stable.html @@ -48,6 +53,7 @@ jobs: run: | pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cpu/torch${{matrix.torch}}/index.html pip install -r requirements.txt + python -c 'import mmcv; print(mmcv.__version__)' - name: Build and install run: rm -rf .eggs && pip install -e . - name: Run unittests and generate coverage report @@ -57,55 +63,84 @@ jobs: coverage report -m build_cuda: + runs-on: ubuntu-18.04 env: - CUDA: 10.1.105-1 - CUDA_SHORT: 10.1 UBUNTU_VERSION: ubuntu1804 - FORCE_CUDA: 1 - MMCV_CUDA_ARGS: -gencode=arch=compute_61,code=sm_61 - runs-on: ubuntu-18.04 strategy: matrix: - python-version: [ 3.6, 3.7 ] - torch: [ 1.5.0, 1.6.0, 1.7.0, 1.8.0 ] + python-version: [3.7] + torch: [1.5.0+cu101, 1.7.0+cu101, 1.8.0+cu101, 1.9.0+cu102] include: - - torch: 1.5.0 - torchvision: 0.6.0 - - torch: 1.6.0 - torchvision: 0.7.0 - - torch: 1.7.0 - torchvision: 0.8.1 - - torch: 1.8.0 - torchvision: 0.9.0 + - torch: 1.5.0+cu101 + torch_version: torch1.5.0 + torchvision: 0.6.0+cu101 + CUDA: 10.1.105-1 + CUDA_SHORT: 10-1 + - torch: 1.7.0+cu101 + torch_version: torch1.7.0 + torchvision: 0.8.1+cu101 + CUDA: 10.1.105-1 + CUDA_SHORT: 10-1 + - torch: 1.8.0+cu101 + torch_version: torch1.8.0 + torchvision: 0.9.0+cu101 + CUDA: 10.1.105-1 + CUDA_SHORT: 10-1 + - torch: 1.9.0+cu102 + torch_version: torch1.9.0 + torchvision: 0.10.0+cu102 + CUDA: 10.2.89-1 + CUDA_SHORT: 10-2 + - python-version: 3.6 + torch: 1.8.0+cu101 + torch_version: torch1.8.0 + torchvision: 0.9.0+cu101 + CUDA: 10.1.105-1 + CUDA_SHORT: 10-1 + - python-version: 3.8 + torch: 1.8.0+cu101 + torch_version: torch1.8.0 + torchvision: 0.9.0+cu101 + CUDA: 10.1.105-1 + CUDA_SHORT: 10-1 + - python-version: 3.9 + torch: 1.8.0+cu101 + torch_version: torch1.8.0 + torchvision: 0.9.0+cu101 + CUDA: 10.1.105-1 + CUDA_SHORT: 10-1 steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} + - name: Upgrade pip + run: pip install pip --upgrade - name: Install CUDA run: | - export INSTALLER=cuda-repo-${UBUNTU_VERSION}_${CUDA}_amd64.deb + export INSTALLER=cuda-repo-${UBUNTU_VERSION}_${{matrix.CUDA}}_amd64.deb wget http://developer.download.nvidia.com/compute/cuda/repos/${UBUNTU_VERSION}/x86_64/${INSTALLER} sudo dpkg -i ${INSTALLER} wget https://developer.download.nvidia.com/compute/cuda/repos/${UBUNTU_VERSION}/x86_64/7fa2af80.pub sudo apt-key add 7fa2af80.pub sudo apt update -qq - sudo apt install -y cuda-${CUDA_SHORT/./-} cuda-cufft-dev-${CUDA_SHORT/./-} + sudo apt install -y cuda-${{matrix.CUDA_SHORT}} cuda-cufft-dev-${{matrix.CUDA_SHORT}} sudo apt clean - export CUDA_HOME=/usr/local/cuda-${CUDA_SHORT} + export CUDA_HOME=/usr/local/cuda-${{matrix.CUDA_SHORT}} export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${CUDA_HOME}/include:${LD_LIBRARY_PATH} export PATH=${CUDA_HOME}/bin:${PATH} sudo apt-get install -y ninja-build - - name: Install Pillow - if: ${{matrix.torchvision < 0.5}} - run: pip install Pillow==6.2.2 - name: Install PyTorch - run: pip install torch==${{matrix.torch}}+cu101 torchvision==${{matrix.torchvision}}+cu101 -f https://download.pytorch.org/whl/torch_stable.html + run: pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html - name: Install mmseg dependencies run: | - pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu101/torch${{matrix.torch}}/index.html + pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/${CUDA_SHORT/-/}/${{matrix.torch_version}}/index.html pip install -r requirements.txt + python -c 'import mmcv; print(mmcv.__version__)' + - name: Install dependencies for compiling onnx when python=3.9 + run: pip install protobuf && sudo apt-get install libprotobuf-dev protobuf-compiler + if: ${{matrix.python-version == '3.9'}} - name: Build and install run: rm -rf .eggs && pip install -e . - name: Run unittests and generate coverage report @@ -115,7 +150,8 @@ jobs: coverage report -m # Only upload coverage report for python3.7 && pytorch1.5 - name: Upload coverage to Codecov - uses: codecov/codecov-action@v1.0.10 + if: ${{matrix.torch == '1.5.0+cu101' && matrix.python-version == '3.7'}} + uses: codecov/codecov-action@v1.0.14 with: file: ./coverage.xml flags: unittests diff --git a/setup.py b/setup.py index 6ae6da2ee4..f428fb2ddf 100755 --- a/setup.py +++ b/setup.py @@ -167,6 +167,7 @@ def add_mim_extension(): 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', ], license='Apache License 2.0', setup_requires=parse_requirements('requirements/build.txt'), From b0787b8be2cdeb5081d6e7a03c5703ccd5b0ccf5 Mon Sep 17 00:00:00 2001 From: Layne Date: Thu, 9 Sep 2021 12:13:53 +0800 Subject: [PATCH 232/706] [Feature] Support ISA module (#70) * add isa module * use more readable names, add more comments and exp results * add unittests * remove redundant docstring * Apply suggestions from code review Co-authored-by: Junjun2016 * fix unittest * Update configs * add results * update yml * Update README Co-authored-by: Junjun2016 Co-authored-by: xiexinch --- README.md | 1 + README_zh-CN.md | 1 + configs/_base_/models/isanet_r50-d8.py | 45 +++ configs/isanet/README.md | 57 +++ configs/isanet/isanet.yml | 360 ++++++++++++++++++ .../isanet_r101-d8_512x1024_40k_cityscapes.py | 2 + .../isanet_r101-d8_512x1024_80k_cityscapes.py | 2 + .../isanet_r101-d8_512x512_160k_ade20k.py | 2 + .../isanet_r101-d8_512x512_20k_voc12aug.py | 2 + .../isanet_r101-d8_512x512_40k_voc12aug.py | 2 + .../isanet_r101-d8_512x512_80k_ade20k.py | 2 + .../isanet_r101-d8_769x769_40k_cityscapes.py | 2 + .../isanet_r101-d8_769x769_80k_cityscapes.py | 2 + .../isanet_r50-d8_512x1024_40k_cityscapes.py | 4 + .../isanet_r50-d8_512x1024_80k_cityscapes.py | 4 + .../isanet_r50-d8_512x512_160k_ade20k.py | 6 + .../isanet_r50-d8_512x512_20k_voc12aug.py | 7 + .../isanet_r50-d8_512x512_40k_voc12aug.py | 7 + .../isanet_r50-d8_512x512_80k_ade20k.py | 6 + .../isanet_r50-d8_769x769_40k_cityscapes.py | 9 + .../isanet_r50-d8_769x769_80k_cityscapes.py | 9 + mmseg/models/decode_heads/__init__.py | 3 +- mmseg/models/decode_heads/isa_head.py | 142 +++++++ model-index.yml | 1 + tests/test_models/test_forward.py | 5 + tests/test_models/test_heads/test_isa_head.py | 20 + 26 files changed, 702 insertions(+), 1 deletion(-) create mode 100644 configs/_base_/models/isanet_r50-d8.py create mode 100644 configs/isanet/README.md create mode 100644 configs/isanet/isanet.yml create mode 100644 configs/isanet/isanet_r101-d8_512x1024_40k_cityscapes.py create mode 100644 configs/isanet/isanet_r101-d8_512x1024_80k_cityscapes.py create mode 100644 configs/isanet/isanet_r101-d8_512x512_160k_ade20k.py create mode 100644 configs/isanet/isanet_r101-d8_512x512_20k_voc12aug.py create mode 100644 configs/isanet/isanet_r101-d8_512x512_40k_voc12aug.py create mode 100644 configs/isanet/isanet_r101-d8_512x512_80k_ade20k.py create mode 100644 configs/isanet/isanet_r101-d8_769x769_40k_cityscapes.py create mode 100644 configs/isanet/isanet_r101-d8_769x769_80k_cityscapes.py create mode 100644 configs/isanet/isanet_r50-d8_512x1024_40k_cityscapes.py create mode 100644 configs/isanet/isanet_r50-d8_512x1024_80k_cityscapes.py create mode 100644 configs/isanet/isanet_r50-d8_512x512_160k_ade20k.py create mode 100644 configs/isanet/isanet_r50-d8_512x512_20k_voc12aug.py create mode 100644 configs/isanet/isanet_r50-d8_512x512_40k_voc12aug.py create mode 100644 configs/isanet/isanet_r50-d8_512x512_80k_ade20k.py create mode 100644 configs/isanet/isanet_r50-d8_769x769_40k_cityscapes.py create mode 100644 configs/isanet/isanet_r50-d8_769x769_80k_cityscapes.py create mode 100644 mmseg/models/decode_heads/isa_head.py create mode 100644 tests/test_models/test_heads/test_isa_head.py diff --git a/README.md b/README.md index 37b43a978c..533e39d740 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,7 @@ Supported methods: - [x] [ANN (ICCV'2019)](configs/ann) - [x] [GCNet (ICCVW'2019/TPAMI'2020)](configs/gcnet) - [x] [Fast-SCNN (ArXiv'2019)](configs/fastscnn) +- [x] [ISANet (ArXiv'2019/IJCV'2021)](configs/isanet) - [x] [OCRNet (ECCV'2020)](configs/ocrnet) - [x] [DNLNet (ECCV'2020)](configs/dnlnet) - [x] [PointRend (CVPR'2020)](configs/point_rend) diff --git a/README_zh-CN.md b/README_zh-CN.md index fe236de148..17bde8a6c0 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -87,6 +87,7 @@ MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 O - [x] [ANN (ICCV'2019)](configs/ann) - [x] [GCNet (ICCVW'2019/TPAMI'2020)](configs/gcnet) - [x] [Fast-SCNN (ArXiv'2019)](configs/fastscnn) +- [x] [ISANet (ArXiv'2019/IJCV'2021)](configs/isanet) - [x] [OCRNet (ECCV'2020)](configs/ocrnet) - [x] [DNLNet (ECCV'2020)](configs/dnlnet) - [x] [PointRend (CVPR'2020)](configs/point_rend) diff --git a/configs/_base_/models/isanet_r50-d8.py b/configs/_base_/models/isanet_r50-d8.py new file mode 100644 index 0000000000..c0221a371d --- /dev/null +++ b/configs/_base_/models/isanet_r50-d8.py @@ -0,0 +1,45 @@ +# model settings +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + type='EncoderDecoder', + pretrained='open-mmlab://resnet50_v1c', + backbone=dict( + type='ResNetV1c', + depth=50, + num_stages=4, + out_indices=(0, 1, 2, 3), + dilations=(1, 1, 2, 4), + strides=(1, 2, 1, 1), + norm_cfg=norm_cfg, + norm_eval=False, + style='pytorch', + contract_dilation=True), + decode_head=dict( + type='ISAHead', + in_channels=2048, + in_index=3, + channels=512, + isa_channels=256, + down_factor=(8, 8), + dropout_ratio=0.1, + num_classes=19, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + auxiliary_head=dict( + type='FCNHead', + in_channels=1024, + in_index=2, + channels=256, + num_convs=1, + concat_input=False, + dropout_ratio=0.1, + num_classes=19, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/isanet/README.md b/configs/isanet/README.md new file mode 100644 index 0000000000..a15bf9a8f1 --- /dev/null +++ b/configs/isanet/README.md @@ -0,0 +1,57 @@ +# Interlaced Sparse Self-Attention for Semantic Segmentation + +## Introduction + + + +``` +@article{huang2019isa, + title={Interlaced Sparse Self-Attention for Semantic Segmentation}, + author={Huang, Lang and Yuan, Yuhui and Guo, Jianyuan and Zhang, Chao and Chen, Xilin and Wang, Jingdong}, + journal={arXiv preprint arXiv:1907.12273}, + year={2019} +} + +The technical report above is also presented at: +@article{yuan2021ocnet, + title={OCNet: Object Context for Semantic Segmentation}, + author={Yuan, Yuhui and Huang, Lang and Guo, Jianyuan and Zhang, Chao and Chen, Xilin and Wang, Jingdong}, + journal={International Journal of Computer Vision}, + pages={1--24}, + year={2021}, + publisher={Springer} +} +``` + +## Results and models + +### Cityscapes + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config |download | +| --------|----------|-----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| ISANet | R-50-D8 | 512x1024 | 40000 | 5.869 | 2.91 | 78.49 | 79.44 |[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/isanet/isanet_r50-d8_512x1024_40k_cityscapes.py)|[model](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_512x1024_40k_cityscapes/isanet_r50-d8_512x1024_40k_cityscapes_20210901_054739-981bd763.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_512x1024_40k_cityscapes/isanet_r50-d8_512x1024_40k_cityscapes_20210901_054739.log.json) | +| ISANet | R-50-D8 | 512x1024 | 80000 | 5.869 | 2.91 | 78.68 | 80.25 |[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/isanet/isanet_r50-d8_512x1024_80k_cityscapes.py)|[model](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_512x1024_80k_cityscapes/isanet_r50-d8_512x1024_80k_cityscapes_20210901_074202-89384497.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_512x1024_80k_cityscapes/isanet_r50-d8_512x1024_80k_cityscapes_20210901_074202.log.json) | +| ISANet | R-50-D8 | 769x769 | 40000 | 6.759 | 1.54 | 78.70 | 80.28 |[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/isanet/isanet_r50-d8_769x769_40k_cityscapes.py)|[model](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_769x769_40k_cityscapes/isanet_r50-d8_769x769_40k_cityscapes_20210903_050200-4ae7e65b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_769x769_40k_cityscapes_20210903_050200.log.json) | +| ISANet | R-50-D8 | 769x769 | 80000 | 6.759 | 1.54 | 79.29 | 80.53 |[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/isanet/isanet_r50-d8_769x769_80k_cityscapes.py)|[model](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_769x769_80k_cityscapes/isanet_r50-d8_769x769_80k_cityscapes_20210903_101126-99b54519.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_769x769_80k_cityscapes/isanet_r50-d8_769x769_80k_cityscapes_20210903_101126.log.json) | +| ISANet | R-101-D8 | 512x1024 | 40000 | 9.425 | 2.35 | 79.58 | 81.05 |[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/isanet/isanet_r101-d8_512x1024_40k_cityscapes.py)|[model](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_512x1024_40k_cityscapes/isanet_r101-d8_512x1024_40k_cityscapes_20210901_145553-293e6bd6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/isanet_r101-d8_512x1024_40k_cityscapes/isanet_r101-d8_512x1024_40k_cityscapes_20210901_145553.log.json) | +| ISANet | R-101-D8 | 512x1024 | 80000 | 9.425 | 2.35 | 80.32 | 81.58 |[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/isanet/isanet_r101-d8_512x1024_80k_cityscapes.py)|[model](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_512x1024_80k_cityscapes/isanet_r101-d8_512x1024_80k_cityscapes_20210901_145243-5b99c9b2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_512x1024_80k_cityscapes/isanet_r101-d8_512x1024_80k_cityscapes_20210901_145243.log.json) | +| ISANet | R-101-D8 | 769x769 | 40000 | 10.815 | 0.92 | 79.68 | 80.95 |[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/isanet/isanet_r101-d8_769x769_40k_cityscapes.py)|[model](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_769x769_40k_cityscapes/isanet_r101-d8_769x769_40k_cityscapes_20210903_111320-509e7224.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_769x769_40k_cityscapes/isanet_r101-d8_769x769_40k_cityscapes_20210903_111320.log.json) | +| ISANet | R-101-D8 | 769x769 | 80000 | 10.815 | 0.92 | 80.61 | 81.59 |[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/isanet/isanet_r101-d8_769x769_80k_cityscapes.py)|[model](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_769x769_80k_cityscapes/isanet_r101-d8_769x769_80k_cityscapes_20210903_111319-24f71dfa.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_769x769_80k_cityscapes/isanet_r101-d8_769x769_80k_cityscapes_20210903_111319.log.json) | + +### ADE20K + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config |download | +| --------|----------|-----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| ISANet | R-50-D8 | 512x512 | 80000 | 9.0 | 22.55 | 41.12 | 42.35 |[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/isanet/isanet_r50-d8_512x512_80k_ade20k.py)|[model](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_512x512_80k_ade20k/isanet_r50-d8_512x512_80k_ade20k_20210903_124557-6ed83a0c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_512x512_80k_ade20k/isanet_r50-d8_512x512_80k_ade20k_20210903_124557.log.json)| +| ISANet | R-50-D8 | 512x512 | 160000 | 9.0 | 22.55 | 42.59 | 43.07 |[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/isanet/isanet_r50-d8_512x512_160k_ade20k.py)|[model](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_512x512_160k_ade20k/isanet_r50-d8_512x512_160k_ade20k_20210903_104850-f752d0a3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_512x512_160k_ade20k/isanet_r50-d8_512x512_160k_ade20k_20210903_104850.log.json)| +| ISANet | R-101-D8 | 512x512 | 80000 | 12.562 | 10.56 | 43.51 | 44.38 |[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/isanet/isanet_r101-d8_512x512_80k_ade20k.py)|[model](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_512x512_80k_ade20k/isanet_r101-d8_512x512_80k_ade20k_20210903_162056-68b235c2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_512x512_80k_ade20k/isanet_r101-d8_512x512_80k_ade20k_20210903_162056.log.json)| +| ISANet | R-101-D8 | 512x512 | 160000 | 12.562 | 10.56 | 43.80 | 45.4 |[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/isanet/isanet_r101-d8_512x512_160k_ade20k.py)|[model](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_512x512_160k_ade20k/isanet_r101-d8_512x512_160k_ade20k_20210903_211431-a7879dcd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_512x512_160k_ade20k/isanet_r101-d8_512x512_160k_ade20k_20210903_211431.log.json)| + +### Pascal VOC 2012 + Aug + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config |download | +| --------|----------|-----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| ISANet | R-50-D8 | 512x512 | 20000 | 5.9 | 23.08 | 76.78 | 77.79 |[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/isanet/isanet_r50-d8_512x512_20k_voc12aug.py)|[model](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_512x512_20k_voc12aug/isanet_r50-d8_512x512_20k_voc12aug_20210901_164838-79d59b80.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_512x512_20k_voc12aug/isanet_r50-d8_512x512_20k_voc12aug_20210901_164838.log.json)| +| ISANet | R-50-D8 | 512x512 | 40000 | 5.9 | 23.08 | 76.20 | 77.22 |[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/isanet/isanet_r50-d8_512x512_40k_voc12aug.py)|[model](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_512x512_40k_voc12aug/isanet_r50-d8_512x512_40k_voc12aug_20210901_151349-7d08a54e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_512x512_40k_voc12aug/isanet_r50-d8_512x512_40k_voc12aug_20210901_151349.log.json)| +| ISANet | R-101-D8 | 512x512 | 20000 | 9.465 | 7.42 | 78.46 | 79.16 |[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/isanet/isanet_r101-d8_512x512_20k_voc12aug.py)|[model](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_512x512_20k_voc12aug/isanet_r101-d8_512x512_20k_voc12aug_20210901_115805-3ccbf355.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_512x512_20k_voc12aug/isanet_r101-d8_512x512_20k_voc12aug_20210901_115805.log.json)| +| ISANet | R-101-D8 | 512x512 | 40000 | 9.465 | 7.42 | 78.12 | 79.04 |[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/isanet/isanet_r101-d8_512x512_40k_voc12aug.py)|[model](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_512x512_40k_voc12aug/isanet_r101-d8_512x512_40k_voc12aug_20210901_145814-bc71233b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_512x512_40k_voc12aug/isanet_r101-d8_512x512_40k_voc12aug_20210901_145814.log.json)| diff --git a/configs/isanet/isanet.yml b/configs/isanet/isanet.yml new file mode 100644 index 0000000000..c73992fedd --- /dev/null +++ b/configs/isanet/isanet.yml @@ -0,0 +1,360 @@ +Collections: +- Metadata: + Training Data: + - Cityscapes + - ADE20K + - Pascal VOC 2012 + Aug + Name: isanet +Models: +- Config: configs/isanet/isanet_r50-d8_512x1024_40k_cityscapes.py + In Collection: isanet + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (512,1024) + value: 343.64 + lr schd: 40000 + memory (GB): 5.869 + Name: isanet_r50-d8_512x1024_40k_cityscapes + Results: + Dataset: Cityscapes + Metrics: + mIoU: 78.49 + mIoU(ms+flip): 79.44 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_512x1024_40k_cityscapes/isanet_r50-d8_512x1024_40k_cityscapes_20210901_054739-981bd763.pth +- Config: configs/isanet/isanet_r50-d8_512x1024_80k_cityscapes.py + In Collection: isanet + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (512,1024) + value: 343.64 + lr schd: 80000 + memory (GB): 5.869 + Name: isanet_r50-d8_512x1024_80k_cityscapes + Results: + Dataset: Cityscapes + Metrics: + mIoU: 78.68 + mIoU(ms+flip): 80.25 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_512x1024_80k_cityscapes/isanet_r50-d8_512x1024_80k_cityscapes_20210901_074202-89384497.pth +- Config: configs/isanet/isanet_r50-d8_769x769_40k_cityscapes.py + In Collection: isanet + Metadata: + backbone: R-50-D8 + crop size: (769,769) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (769,769) + value: 649.35 + lr schd: 40000 + memory (GB): 6.759 + Name: isanet_r50-d8_769x769_40k_cityscapes + Results: + Dataset: Cityscapes + Metrics: + mIoU: 78.7 + mIoU(ms+flip): 80.28 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_769x769_40k_cityscapes/isanet_r50-d8_769x769_40k_cityscapes_20210903_050200-4ae7e65b.pth +- Config: configs/isanet/isanet_r50-d8_769x769_80k_cityscapes.py + In Collection: isanet + Metadata: + backbone: R-50-D8 + crop size: (769,769) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (769,769) + value: 649.35 + lr schd: 80000 + memory (GB): 6.759 + Name: isanet_r50-d8_769x769_80k_cityscapes + Results: + Dataset: Cityscapes + Metrics: + mIoU: 79.29 + mIoU(ms+flip): 80.53 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_769x769_80k_cityscapes/isanet_r50-d8_769x769_80k_cityscapes_20210903_101126-99b54519.pth +- Config: configs/isanet/isanet_r101-d8_512x1024_40k_cityscapes.py + In Collection: isanet + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (512,1024) + value: 425.53 + lr schd: 40000 + memory (GB): 9.425 + Name: isanet_r101-d8_512x1024_40k_cityscapes + Results: + Dataset: Cityscapes + Metrics: + mIoU: 79.58 + mIoU(ms+flip): 81.05 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_512x1024_40k_cityscapes/isanet_r101-d8_512x1024_40k_cityscapes_20210901_145553-293e6bd6.pth +- Config: configs/isanet/isanet_r101-d8_512x1024_80k_cityscapes.py + In Collection: isanet + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (512,1024) + value: 425.53 + lr schd: 80000 + memory (GB): 9.425 + Name: isanet_r101-d8_512x1024_80k_cityscapes + Results: + Dataset: Cityscapes + Metrics: + mIoU: 80.32 + mIoU(ms+flip): 81.58 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_512x1024_80k_cityscapes/isanet_r101-d8_512x1024_80k_cityscapes_20210901_145243-5b99c9b2.pth +- Config: configs/isanet/isanet_r101-d8_769x769_40k_cityscapes.py + In Collection: isanet + Metadata: + backbone: R-101-D8 + crop size: (769,769) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (769,769) + value: 1086.96 + lr schd: 40000 + memory (GB): 10.815 + Name: isanet_r101-d8_769x769_40k_cityscapes + Results: + Dataset: Cityscapes + Metrics: + mIoU: 79.68 + mIoU(ms+flip): 80.95 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_769x769_40k_cityscapes/isanet_r101-d8_769x769_40k_cityscapes_20210903_111320-509e7224.pth +- Config: configs/isanet/isanet_r101-d8_769x769_80k_cityscapes.py + In Collection: isanet + Metadata: + backbone: R-101-D8 + crop size: (769,769) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (769,769) + value: 1086.96 + lr schd: 80000 + memory (GB): 10.815 + Name: isanet_r101-d8_769x769_80k_cityscapes + Results: + Dataset: Cityscapes + Metrics: + mIoU: 80.61 + mIoU(ms+flip): 81.59 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_769x769_80k_cityscapes/isanet_r101-d8_769x769_80k_cityscapes_20210903_111319-24f71dfa.pth +- Config: configs/isanet/isanet_r50-d8_512x512_80k_ade20k.py + In Collection: isanet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (512,512) + value: 44.35 + lr schd: 80000 + memory (GB): 9.0 + Name: isanet_r50-d8_512x512_80k_ade20k + Results: + Dataset: ADE20K + Metrics: + mIoU: 41.12 + mIoU(ms+flip): 42.35 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_512x512_80k_ade20k/isanet_r50-d8_512x512_80k_ade20k_20210903_124557-6ed83a0c.pth +- Config: configs/isanet/isanet_r50-d8_512x512_160k_ade20k.py + In Collection: isanet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (512,512) + value: 44.35 + lr schd: 160000 + memory (GB): 9.0 + Name: isanet_r50-d8_512x512_160k_ade20k + Results: + Dataset: ADE20K + Metrics: + mIoU: 42.59 + mIoU(ms+flip): 43.07 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_512x512_160k_ade20k/isanet_r50-d8_512x512_160k_ade20k_20210903_104850-f752d0a3.pth +- Config: configs/isanet/isanet_r101-d8_512x512_80k_ade20k.py + In Collection: isanet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (512,512) + value: 94.7 + lr schd: 80000 + memory (GB): 12.562 + Name: isanet_r101-d8_512x512_80k_ade20k + Results: + Dataset: ADE20K + Metrics: + mIoU: 43.51 + mIoU(ms+flip): 44.38 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_512x512_80k_ade20k/isanet_r101-d8_512x512_80k_ade20k_20210903_162056-68b235c2.pth +- Config: configs/isanet/isanet_r101-d8_512x512_160k_ade20k.py + In Collection: isanet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (512,512) + value: 94.7 + lr schd: 160000 + memory (GB): 12.562 + Name: isanet_r101-d8_512x512_160k_ade20k + Results: + Dataset: ADE20K + Metrics: + mIoU: 43.8 + mIoU(ms+flip): 45.4 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_512x512_160k_ade20k/isanet_r101-d8_512x512_160k_ade20k_20210903_211431-a7879dcd.pth +- Config: configs/isanet/isanet_r50-d8_512x512_20k_voc12aug.py + In Collection: isanet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (512,512) + value: 43.33 + lr schd: 20000 + memory (GB): 5.9 + Name: isanet_r50-d8_512x512_20k_voc12aug + Results: + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.78 + mIoU(ms+flip): 77.79 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_512x512_20k_voc12aug/isanet_r50-d8_512x512_20k_voc12aug_20210901_164838-79d59b80.pth +- Config: configs/isanet/isanet_r50-d8_512x512_40k_voc12aug.py + In Collection: isanet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (512,512) + value: 43.33 + lr schd: 40000 + memory (GB): 5.9 + Name: isanet_r50-d8_512x512_40k_voc12aug + Results: + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.2 + mIoU(ms+flip): 77.22 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r50-d8_512x512_40k_voc12aug/isanet_r50-d8_512x512_40k_voc12aug_20210901_151349-7d08a54e.pth +- Config: configs/isanet/isanet_r101-d8_512x512_20k_voc12aug.py + In Collection: isanet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (512,512) + value: 134.77 + lr schd: 20000 + memory (GB): 9.465 + Name: isanet_r101-d8_512x512_20k_voc12aug + Results: + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 78.46 + mIoU(ms+flip): 79.16 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_512x512_20k_voc12aug/isanet_r101-d8_512x512_20k_voc12aug_20210901_115805-3ccbf355.pth +- Config: configs/isanet/isanet_r101-d8_512x512_40k_voc12aug.py + In Collection: isanet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (512,512) + value: 134.77 + lr schd: 40000 + memory (GB): 9.465 + Name: isanet_r101-d8_512x512_40k_voc12aug + Results: + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 78.12 + mIoU(ms+flip): 79.04 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/isanet/isanet_r101-d8_512x512_40k_voc12aug/isanet_r101-d8_512x512_40k_voc12aug_20210901_145814-bc71233b.pth diff --git a/configs/isanet/isanet_r101-d8_512x1024_40k_cityscapes.py b/configs/isanet/isanet_r101-d8_512x1024_40k_cityscapes.py new file mode 100644 index 0000000000..f5cd8cbb7c --- /dev/null +++ b/configs/isanet/isanet_r101-d8_512x1024_40k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './isanet_r50-d8_512x1024_40k_cityscapes.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/isanet/isanet_r101-d8_512x1024_80k_cityscapes.py b/configs/isanet/isanet_r101-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..ebc15cbfec --- /dev/null +++ b/configs/isanet/isanet_r101-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './isanet_r50-d8_512x1024_80k_cityscapes.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/isanet/isanet_r101-d8_512x512_160k_ade20k.py b/configs/isanet/isanet_r101-d8_512x512_160k_ade20k.py new file mode 100644 index 0000000000..33290100d5 --- /dev/null +++ b/configs/isanet/isanet_r101-d8_512x512_160k_ade20k.py @@ -0,0 +1,2 @@ +_base_ = './isanet_r50-d8_512x512_160k_ade20k.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/isanet/isanet_r101-d8_512x512_20k_voc12aug.py b/configs/isanet/isanet_r101-d8_512x512_20k_voc12aug.py new file mode 100644 index 0000000000..46fee9155d --- /dev/null +++ b/configs/isanet/isanet_r101-d8_512x512_20k_voc12aug.py @@ -0,0 +1,2 @@ +_base_ = './isanet_r50-d8_512x512_20k_voc12aug.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/isanet/isanet_r101-d8_512x512_40k_voc12aug.py b/configs/isanet/isanet_r101-d8_512x512_40k_voc12aug.py new file mode 100644 index 0000000000..64bd8c1044 --- /dev/null +++ b/configs/isanet/isanet_r101-d8_512x512_40k_voc12aug.py @@ -0,0 +1,2 @@ +_base_ = './isanet_r50-d8_512x512_40k_voc12aug.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/isanet/isanet_r101-d8_512x512_80k_ade20k.py b/configs/isanet/isanet_r101-d8_512x512_80k_ade20k.py new file mode 100644 index 0000000000..6e13e20ca5 --- /dev/null +++ b/configs/isanet/isanet_r101-d8_512x512_80k_ade20k.py @@ -0,0 +1,2 @@ +_base_ = './isanet_r50-d8_512x512_80k_ade20k.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/isanet/isanet_r101-d8_769x769_40k_cityscapes.py b/configs/isanet/isanet_r101-d8_769x769_40k_cityscapes.py new file mode 100644 index 0000000000..cf362aaacb --- /dev/null +++ b/configs/isanet/isanet_r101-d8_769x769_40k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './isanet_r50-d8_769x769_40k_cityscapes.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/isanet/isanet_r101-d8_769x769_80k_cityscapes.py b/configs/isanet/isanet_r101-d8_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..3c2283bdba --- /dev/null +++ b/configs/isanet/isanet_r101-d8_769x769_80k_cityscapes.py @@ -0,0 +1,2 @@ +_base_ = './isanet_r50-d8_769x769_80k_cityscapes.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/isanet/isanet_r50-d8_512x1024_40k_cityscapes.py b/configs/isanet/isanet_r50-d8_512x1024_40k_cityscapes.py new file mode 100644 index 0000000000..f8675e9d6a --- /dev/null +++ b/configs/isanet/isanet_r50-d8_512x1024_40k_cityscapes.py @@ -0,0 +1,4 @@ +_base_ = [ + '../_base_/models/isanet_r50-d8.py', '../_base_/datasets/cityscapes.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' +] diff --git a/configs/isanet/isanet_r50-d8_512x1024_80k_cityscapes.py b/configs/isanet/isanet_r50-d8_512x1024_80k_cityscapes.py new file mode 100644 index 0000000000..46119fbee6 --- /dev/null +++ b/configs/isanet/isanet_r50-d8_512x1024_80k_cityscapes.py @@ -0,0 +1,4 @@ +_base_ = [ + '../_base_/models/isanet_r50-d8.py', '../_base_/datasets/cityscapes.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' +] diff --git a/configs/isanet/isanet_r50-d8_512x512_160k_ade20k.py b/configs/isanet/isanet_r50-d8_512x512_160k_ade20k.py new file mode 100644 index 0000000000..7d5c235ae4 --- /dev/null +++ b/configs/isanet/isanet_r50-d8_512x512_160k_ade20k.py @@ -0,0 +1,6 @@ +_base_ = [ + '../_base_/models/isanet_r50-d8.py', '../_base_/datasets/ade20k.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' +] +model = dict( + decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) diff --git a/configs/isanet/isanet_r50-d8_512x512_20k_voc12aug.py b/configs/isanet/isanet_r50-d8_512x512_20k_voc12aug.py new file mode 100644 index 0000000000..d8b60ba848 --- /dev/null +++ b/configs/isanet/isanet_r50-d8_512x512_20k_voc12aug.py @@ -0,0 +1,7 @@ +_base_ = [ + '../_base_/models/isanet_r50-d8.py', + '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_20k.py' +] +model = dict( + decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21)) diff --git a/configs/isanet/isanet_r50-d8_512x512_40k_voc12aug.py b/configs/isanet/isanet_r50-d8_512x512_40k_voc12aug.py new file mode 100644 index 0000000000..4729899408 --- /dev/null +++ b/configs/isanet/isanet_r50-d8_512x512_40k_voc12aug.py @@ -0,0 +1,7 @@ +_base_ = [ + '../_base_/models/isanet_r50-d8.py', + '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_40k.py' +] +model = dict( + decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21)) diff --git a/configs/isanet/isanet_r50-d8_512x512_80k_ade20k.py b/configs/isanet/isanet_r50-d8_512x512_80k_ade20k.py new file mode 100644 index 0000000000..e35480dad5 --- /dev/null +++ b/configs/isanet/isanet_r50-d8_512x512_80k_ade20k.py @@ -0,0 +1,6 @@ +_base_ = [ + '../_base_/models/isanet_r50-d8.py', '../_base_/datasets/ade20k.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' +] +model = dict( + decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) diff --git a/configs/isanet/isanet_r50-d8_769x769_40k_cityscapes.py b/configs/isanet/isanet_r50-d8_769x769_40k_cityscapes.py new file mode 100644 index 0000000000..201a358732 --- /dev/null +++ b/configs/isanet/isanet_r50-d8_769x769_40k_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = [ + '../_base_/models/isanet_r50-d8.py', + '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_40k.py' +] +model = dict( + decode_head=dict(align_corners=True), + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/configs/isanet/isanet_r50-d8_769x769_80k_cityscapes.py b/configs/isanet/isanet_r50-d8_769x769_80k_cityscapes.py new file mode 100644 index 0000000000..5604350457 --- /dev/null +++ b/configs/isanet/isanet_r50-d8_769x769_80k_cityscapes.py @@ -0,0 +1,9 @@ +_base_ = [ + '../_base_/models/isanet_r50-d8.py', + '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_80k.py' +] +model = dict( + decode_head=dict(align_corners=True), + auxiliary_head=dict(align_corners=True), + test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513))) diff --git a/mmseg/models/decode_heads/__init__.py b/mmseg/models/decode_heads/__init__.py index f13f22035b..14a2b2d6f1 100644 --- a/mmseg/models/decode_heads/__init__.py +++ b/mmseg/models/decode_heads/__init__.py @@ -12,6 +12,7 @@ from .fcn_head import FCNHead from .fpn_head import FPNHead from .gc_head import GCHead +from .isa_head import ISAHead from .lraspp_head import LRASPPHead from .nl_head import NLHead from .ocr_head import OCRHead @@ -30,5 +31,5 @@ 'UPerHead', 'DepthwiseSeparableASPPHead', 'ANNHead', 'DAHead', 'OCRHead', 'EncHead', 'DepthwiseSeparableFCNHead', 'FPNHead', 'EMAHead', 'DNLHead', 'PointHead', 'APCHead', 'DMHead', 'LRASPPHead', 'SETRUPHead', - 'SETRMLAHead', 'DPTHead', 'SETRMLAHead', 'SegformerHead' + 'SETRMLAHead', 'DPTHead', 'SETRMLAHead', 'SegformerHead', 'ISAHead' ] diff --git a/mmseg/models/decode_heads/isa_head.py b/mmseg/models/decode_heads/isa_head.py new file mode 100644 index 0000000000..c9224b6102 --- /dev/null +++ b/mmseg/models/decode_heads/isa_head.py @@ -0,0 +1,142 @@ +import math + +import torch +import torch.nn.functional as F +from mmcv.cnn import ConvModule + +from ..builder import HEADS +from ..utils import SelfAttentionBlock as _SelfAttentionBlock +from .decode_head import BaseDecodeHead + + +class SelfAttentionBlock(_SelfAttentionBlock): + """Self-Attention Module. + + Args: + in_channels (int): Input channels of key/query feature. + channels (int): Output channels of key/query transform. + conv_cfg (dict | None): Config of conv layers. + norm_cfg (dict | None): Config of norm layers. + act_cfg (dict | None): Config of activation layers. + """ + + def __init__(self, in_channels, channels, conv_cfg, norm_cfg, act_cfg): + super(SelfAttentionBlock, self).__init__( + key_in_channels=in_channels, + query_in_channels=in_channels, + channels=channels, + out_channels=in_channels, + share_key_query=False, + query_downsample=None, + key_downsample=None, + key_query_num_convs=2, + key_query_norm=True, + value_out_num_convs=1, + value_out_norm=False, + matmul_norm=True, + with_out=False, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + + self.output_project = self.build_project( + in_channels, + in_channels, + num_convs=1, + use_conv_module=True, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + + def forward(self, x): + """Forward function.""" + context = super(SelfAttentionBlock, self).forward(x, x) + return self.output_project(context) + + +@HEADS.register_module() +class ISAHead(BaseDecodeHead): + """Interlaced Sparse Self-Attention for Semantic Segmentation. + + This head is the implementation of `ISA + `_. + + Args: + isa_channels (int): The channels of ISA Module. + down_factor (tuple[int]): The local group size of ISA. + """ + + def __init__(self, isa_channels, down_factor=(8, 8), **kwargs): + super(ISAHead, self).__init__(**kwargs) + self.down_factor = down_factor + + self.in_conv = ConvModule( + self.in_channels, + self.channels, + 3, + padding=1, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + self.global_relation = SelfAttentionBlock( + self.channels, + isa_channels, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + self.local_relation = SelfAttentionBlock( + self.channels, + isa_channels, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + self.out_conv = ConvModule( + self.channels * 2, + self.channels, + 1, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + + def forward(self, inputs): + """Forward function.""" + x_ = self._transform_inputs(inputs) + x = self.in_conv(x_) + residual = x + + n, c, h, w = x.size() + loc_h, loc_w = self.down_factor # size of local group in H- and W-axes + glb_h, glb_w = math.ceil(h / loc_h), math.ceil(w / loc_w) + pad_h, pad_w = glb_h * loc_h - h, glb_w * loc_w - w + if pad_h > 0 or pad_w > 0: # pad if the size is not divisible + padding = (pad_w // 2, pad_w - pad_w // 2, pad_h // 2, + pad_h - pad_h // 2) + x = F.pad(x, padding) + + # global relation + x = x.view(n, c, glb_h, loc_h, glb_w, loc_w) + # do permutation to gather global group + x = x.permute(0, 3, 5, 1, 2, 4) # (n, loc_h, loc_w, c, glb_h, glb_w) + x = x.reshape(-1, c, glb_h, glb_w) + # apply attention within each global group + x = self.global_relation(x) # (n * loc_h * loc_w, c, glb_h, glb_w) + + # local relation + x = x.view(n, loc_h, loc_w, c, glb_h, glb_w) + # do permutation to gather local group + x = x.permute(0, 4, 5, 3, 1, 2) # (n, glb_h, glb_w, c, loc_h, loc_w) + x = x.reshape(-1, c, loc_h, loc_w) + # apply attention within each local group + x = self.local_relation(x) # (n * glb_h * glb_w, c, loc_h, loc_w) + + # permute each pixel back to its original position + x = x.view(n, glb_h, glb_w, c, loc_h, loc_w) + x = x.permute(0, 3, 1, 4, 2, 5) # (n, c, glb_h, loc_h, glb_w, loc_w) + x = x.reshape(n, c, glb_h * loc_h, glb_w * loc_w) + if pad_h > 0 or pad_w > 0: # remove padding + x = x[:, :, pad_h // 2:pad_h // 2 + h, pad_w // 2:pad_w // 2 + w] + + x = self.out_conv(torch.cat([x, residual], dim=1)) + out = self.cls_seg(x) + + return out diff --git a/model-index.yml b/model-index.yml index d08ad33178..21a1f0bdc9 100644 --- a/model-index.yml +++ b/model-index.yml @@ -16,6 +16,7 @@ Import: - configs/fp16/fp16.yml - configs/gcnet/gcnet.yml - configs/hrnet/hrnet.yml +- configs/isanet/isanet.yml - configs/mobilenet_v2/mobilenet_v2.yml - configs/mobilenet_v3/mobilenet_v3.yml - configs/nonlocal_net/nonlocal_net.yml diff --git a/tests/test_models/test_forward.py b/tests/test_models/test_forward.py index 5aa3a2fe99..c71d131a3c 100644 --- a/tests/test_models/test_forward.py +++ b/tests/test_models/test_forward.py @@ -175,6 +175,11 @@ def test_emanet_forward(): 'emanet/emanet_r50-d8_512x1024_80k_cityscapes.py') +def test_isanet_forward(): + _test_encoder_decoder_forward( + 'isanet/isanet_r50-d8_512x1024_40k_cityscapes.py') + + def get_world_size(process_group): return 1 diff --git a/tests/test_models/test_heads/test_isa_head.py b/tests/test_models/test_heads/test_isa_head.py new file mode 100644 index 0000000000..3d133d0d77 --- /dev/null +++ b/tests/test_models/test_heads/test_isa_head.py @@ -0,0 +1,20 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch + +from mmseg.models.decode_heads import ISAHead +from .utils import to_cuda + + +def test_isa_head(): + + inputs = [torch.randn(1, 32, 45, 45)] + isa_head = ISAHead( + in_channels=32, + channels=16, + num_classes=19, + isa_channels=16, + down_factor=(8, 8)) + if torch.cuda.is_available(): + isa_head, inputs = to_cuda(isa_head, inputs) + output = isa_head(inputs) + assert output.shape == (1, isa_head.num_classes, 45, 45) From 598f5c7fa8c9e7bb52b781bc760f4ffdc41a7858 Mon Sep 17 00:00:00 2001 From: FreyWang Date: Thu, 9 Sep 2021 13:00:23 +0800 Subject: [PATCH 233/706] [Feature] Support eval concate dataset and add tool to show dataset (#833) * [Feature] Add tool to show origin or augmented train data * [Feature] Support eval concate dataset * Add docstring and modify evaluate of concate dataset Signed-off-by: FreyWang * format concat dataset in subfolder of imgfile_prefix Signed-off-by: FreyWang * add unittest of concate dataset Signed-off-by: FreyWang * update unittest for eval dataset with CLASSES is None Signed-off-by: FreyWang * [FIX] bug of generator, which lead metric to nan when pre_eval=False Signed-off-by: FreyWang * format code Signed-off-by: FreyWang * add more unittest * add more unittest * optim concat dataset builder --- mmseg/core/evaluation/metrics.py | 2 - mmseg/datasets/builder.py | 4 +- mmseg/datasets/custom.py | 24 +- mmseg/datasets/dataset_wrappers.py | 143 +++++++++- tests/test_data/test_dataset.py | 343 ++++++++++++++++++++++-- tests/test_data/test_dataset_builder.py | 6 +- tools/browse_dataset.py | 167 ++++++++++++ tools/test.py | 3 +- 8 files changed, 646 insertions(+), 46 deletions(-) create mode 100644 tools/browse_dataset.py diff --git a/mmseg/core/evaluation/metrics.py b/mmseg/core/evaluation/metrics.py index f64967c6c2..b83a798ea9 100644 --- a/mmseg/core/evaluation/metrics.py +++ b/mmseg/core/evaluation/metrics.py @@ -112,8 +112,6 @@ def total_intersect_and_union(results, ndarray: The prediction histogram on all classes. ndarray: The ground truth histogram on all classes. """ - num_imgs = len(results) - assert len(list(gt_seg_maps)) == num_imgs total_area_intersect = torch.zeros((num_classes, ), dtype=torch.float64) total_area_union = torch.zeros((num_classes, ), dtype=torch.float64) total_area_pred_label = torch.zeros((num_classes, ), dtype=torch.float64) diff --git a/mmseg/datasets/builder.py b/mmseg/datasets/builder.py index bfb54ef002..7ab645958d 100644 --- a/mmseg/datasets/builder.py +++ b/mmseg/datasets/builder.py @@ -30,6 +30,8 @@ def _concat_dataset(cfg, default_args=None): img_dir = cfg['img_dir'] ann_dir = cfg.get('ann_dir', None) split = cfg.get('split', None) + # pop 'separate_eval' since it is not a valid key for common datasets. + separate_eval = cfg.pop('separate_eval', True) num_img_dir = len(img_dir) if isinstance(img_dir, (list, tuple)) else 1 if ann_dir is not None: num_ann_dir = len(ann_dir) if isinstance(ann_dir, (list, tuple)) else 1 @@ -57,7 +59,7 @@ def _concat_dataset(cfg, default_args=None): data_cfg['split'] = split[i] datasets.append(build_dataset(data_cfg, default_args)) - return ConcatDataset(datasets) + return ConcatDataset(datasets, separate_eval) def build_dataset(cfg, default_args=None): diff --git a/mmseg/datasets/custom.py b/mmseg/datasets/custom.py index e366c0da2d..9b0efc6f05 100644 --- a/mmseg/datasets/custom.py +++ b/mmseg/datasets/custom.py @@ -2,7 +2,6 @@ import os.path as osp import warnings from collections import OrderedDict -from functools import reduce import mmcv import numpy as np @@ -99,6 +98,9 @@ def __init__(self, self.label_map = None self.CLASSES, self.PALETTE = self.get_classes_and_palette( classes, palette) + if test_mode: + assert self.CLASSES is not None, \ + '`cls.CLASSES` or `classes` should be specified when testing' # join paths if data_root is specified if self.data_root is not None: @@ -339,7 +341,12 @@ def get_palette_for_custom_classes(self, class_names, palette=None): return palette - def evaluate(self, results, metric='mIoU', logger=None, **kwargs): + def evaluate(self, + results, + metric='mIoU', + logger=None, + gt_seg_maps=None, + **kwargs): """Evaluate the dataset. Args: @@ -350,6 +357,8 @@ def evaluate(self, results, metric='mIoU', logger=None, **kwargs): 'mDice' and 'mFscore' are supported. logger (logging.Logger | None | str): Logger used for printing related information during evaluation. Default: None. + gt_seg_maps (generator[ndarray]): Custom gt seg maps as input, + used in ConcatDataset Returns: dict[str, float]: Default metrics. @@ -364,14 +373,9 @@ def evaluate(self, results, metric='mIoU', logger=None, **kwargs): # test a list of files if mmcv.is_list_of(results, np.ndarray) or mmcv.is_list_of( results, str): - gt_seg_maps = self.get_gt_seg_maps() - if self.CLASSES is None: - num_classes = len( - reduce(np.union1d, [np.unique(_) for _ in gt_seg_maps])) - else: - num_classes = len(self.CLASSES) - # reset generator - gt_seg_maps = self.get_gt_seg_maps() + if gt_seg_maps is None: + gt_seg_maps = self.get_gt_seg_maps() + num_classes = len(self.CLASSES) ret_metrics = eval_metrics( results, gt_seg_maps, diff --git a/mmseg/datasets/dataset_wrappers.py b/mmseg/datasets/dataset_wrappers.py index f161f71469..0349332eeb 100644 --- a/mmseg/datasets/dataset_wrappers.py +++ b/mmseg/datasets/dataset_wrappers.py @@ -1,7 +1,14 @@ # Copyright (c) OpenMMLab. All rights reserved. +import bisect +from itertools import chain + +import mmcv +import numpy as np +from mmcv.utils import print_log from torch.utils.data.dataset import ConcatDataset as _ConcatDataset from .builder import DATASETS +from .cityscapes import CityscapesDataset @DATASETS.register_module() @@ -9,16 +16,148 @@ class ConcatDataset(_ConcatDataset): """A wrapper of concatenated dataset. Same as :obj:`torch.utils.data.dataset.ConcatDataset`, but - concat the group flag for image aspect ratio. + support evaluation and formatting results Args: datasets (list[:obj:`Dataset`]): A list of datasets. + separate_eval (bool): Whether to evaluate the concatenated + dataset results separately, Defaults to True. """ - def __init__(self, datasets): + def __init__(self, datasets, separate_eval=True): super(ConcatDataset, self).__init__(datasets) self.CLASSES = datasets[0].CLASSES self.PALETTE = datasets[0].PALETTE + self.separate_eval = separate_eval + assert separate_eval in [True, False], \ + f'separate_eval can only be True or False,' \ + f'but get {separate_eval}' + if any([isinstance(ds, CityscapesDataset) for ds in datasets]): + raise NotImplementedError( + 'Evaluating ConcatDataset containing CityscapesDataset' + 'is not supported!') + + def evaluate(self, results, logger=None, **kwargs): + """Evaluate the results. + + Args: + results (list[tuple[torch.Tensor]] | list[str]]): per image + pre_eval results or predict segmentation map for + computing evaluation metric. + logger (logging.Logger | str | None): Logger used for printing + related information during evaluation. Default: None. + + Returns: + dict[str: float]: evaluate results of the total dataset + or each separate + dataset if `self.separate_eval=True`. + """ + assert len(results) == self.cumulative_sizes[-1], \ + ('Dataset and results have different sizes: ' + f'{self.cumulative_sizes[-1]} v.s. {len(results)}') + + # Check whether all the datasets support evaluation + for dataset in self.datasets: + assert hasattr(dataset, 'evaluate'), \ + f'{type(dataset)} does not implement evaluate function' + + if self.separate_eval: + dataset_idx = -1 + total_eval_results = dict() + for size, dataset in zip(self.cumulative_sizes, self.datasets): + start_idx = 0 if dataset_idx == -1 else \ + self.cumulative_sizes[dataset_idx] + end_idx = self.cumulative_sizes[dataset_idx + 1] + + results_per_dataset = results[start_idx:end_idx] + print_log( + f'\nEvaluateing {dataset.img_dir} with ' + f'{len(results_per_dataset)} images now', + logger=logger) + + eval_results_per_dataset = dataset.evaluate( + results_per_dataset, logger=logger, **kwargs) + dataset_idx += 1 + for k, v in eval_results_per_dataset.items(): + total_eval_results.update({f'{dataset_idx}_{k}': v}) + + return total_eval_results + + if len(set([type(ds) for ds in self.datasets])) != 1: + raise NotImplementedError( + 'All the datasets should have same types when ' + 'self.separate_eval=False') + else: + if mmcv.is_list_of(results, np.ndarray) or mmcv.is_list_of( + results, str): + # merge the generators of gt_seg_maps + gt_seg_maps = chain( + *[dataset.get_gt_seg_maps() for dataset in self.datasets]) + else: + # if the results are `pre_eval` results, + # we do not need gt_seg_maps to evaluate + gt_seg_maps = None + eval_results = self.datasets[0].evaluate( + results, gt_seg_maps=gt_seg_maps, logger=logger, **kwargs) + return eval_results + + def get_dataset_idx_and_sample_idx(self, indice): + """Return dataset and sample index when given an indice of + ConcatDataset. + + Args: + indice (int): indice of sample in ConcatDataset + + Returns: + int: the index of sub dataset the sample belong to + int: the index of sample in its corresponding subset + """ + if indice < 0: + if -indice > len(self): + raise ValueError( + 'absolute value of index should not exceed dataset length') + indice = len(self) + indice + dataset_idx = bisect.bisect_right(self.cumulative_sizes, indice) + if dataset_idx == 0: + sample_idx = indice + else: + sample_idx = indice - self.cumulative_sizes[dataset_idx - 1] + return dataset_idx, sample_idx + + def format_results(self, results, imgfile_prefix, indices=None, **kwargs): + """format result for every sample of ConcatDataset.""" + if indices is None: + indices = list(range(len(self))) + + assert isinstance(results, list), 'results must be a list.' + assert isinstance(indices, list), 'indices must be a list.' + + ret_res = [] + for i, indice in enumerate(indices): + dataset_idx, sample_idx = self.get_dataset_idx_and_sample_idx( + indice) + res = self.datasets[dataset_idx].format_results( + [results[i]], + imgfile_prefix + f'/{dataset_idx}', + indices=[sample_idx], + **kwargs) + ret_res.append(res) + return sum(ret_res, []) + + def pre_eval(self, preds, indices): + """do pre eval for every sample of ConcatDataset.""" + # In order to compat with batch inference + if not isinstance(indices, list): + indices = [indices] + if not isinstance(preds, list): + preds = [preds] + ret_res = [] + for i, indice in enumerate(indices): + dataset_idx, sample_idx = self.get_dataset_idx_and_sample_idx( + indice) + res = self.datasets[dataset_idx].pre_eval(preds[i], sample_idx) + ret_res.append(res) + return sum(ret_res, []) @DATASETS.register_module() diff --git a/tests/test_data/test_dataset.py b/tests/test_data/test_dataset.py index ebc173669d..f1ce7bb880 100644 --- a/tests/test_data/test_dataset.py +++ b/tests/test_data/test_dataset.py @@ -6,12 +6,13 @@ import numpy as np import pytest +import torch from PIL import Image from mmseg.core.evaluation import get_classes, get_palette from mmseg.datasets import (DATASETS, ADE20KDataset, CityscapesDataset, ConcatDataset, CustomDataset, PascalVOCDataset, - RepeatDataset) + RepeatDataset, build_dataset) def test_classes(): @@ -143,7 +144,8 @@ def test_custom_dataset(): test_pipeline, img_dir=osp.join(osp.dirname(__file__), '../data/pseudo_dataset/imgs'), img_suffix='img.jpg', - test_mode=True) + test_mode=True, + classes=('pseudo_class', )) assert len(test_dataset) == 5 # training data get @@ -164,30 +166,21 @@ def test_custom_dataset(): with pytest.raises(NotImplementedError): test_dataset.format_results([], '') - # test past evaluation pseudo_results = [] for gt_seg_map in gt_seg_maps: h, w = gt_seg_map.shape pseudo_results.append(np.random.randint(low=0, high=7, size=(h, w))) - eval_results = train_dataset.evaluate(pseudo_results, metric=['mIoU']) - assert isinstance(eval_results, dict) - assert 'mIoU' in eval_results - assert 'mAcc' in eval_results - assert 'aAcc' in eval_results - eval_results = train_dataset.evaluate(pseudo_results, metric='mDice') - assert isinstance(eval_results, dict) - assert 'mDice' in eval_results - assert 'mAcc' in eval_results - assert 'aAcc' in eval_results + # test past evaluation without CLASSES + with pytest.raises(TypeError): + eval_results = train_dataset.evaluate(pseudo_results, metric=['mIoU']) - eval_results = train_dataset.evaluate( - pseudo_results, metric=['mDice', 'mIoU']) - assert isinstance(eval_results, dict) - assert 'mIoU' in eval_results - assert 'mDice' in eval_results - assert 'mAcc' in eval_results - assert 'aAcc' in eval_results + with pytest.raises(TypeError): + eval_results = train_dataset.evaluate(pseudo_results, metric='mDice') + + with pytest.raises(TypeError): + eval_results = train_dataset.evaluate( + pseudo_results, metric=['mDice', 'mIoU']) # test past evaluation with CLASSES train_dataset.CLASSES = tuple(['a'] * 7) @@ -221,6 +214,14 @@ def test_custom_dataset(): assert 'mPrecision' in eval_results assert 'mRecall' in eval_results + assert not np.isnan(eval_results['mIoU']) + assert not np.isnan(eval_results['mDice']) + assert not np.isnan(eval_results['mAcc']) + assert not np.isnan(eval_results['aAcc']) + assert not np.isnan(eval_results['mFscore']) + assert not np.isnan(eval_results['mPrecision']) + assert not np.isnan(eval_results['mRecall']) + # test evaluation with pre-eval and the dataset.CLASSES is necessary train_dataset.CLASSES = tuple(['a'] * 7) pseudo_results = [] @@ -258,6 +259,223 @@ def test_custom_dataset(): assert 'mPrecision' in eval_results assert 'mRecall' in eval_results + assert not np.isnan(eval_results['mIoU']) + assert not np.isnan(eval_results['mDice']) + assert not np.isnan(eval_results['mAcc']) + assert not np.isnan(eval_results['aAcc']) + assert not np.isnan(eval_results['mFscore']) + assert not np.isnan(eval_results['mPrecision']) + assert not np.isnan(eval_results['mRecall']) + + +@pytest.mark.parametrize('separate_eval', [True, False]) +def test_eval_concat_custom_dataset(separate_eval): + img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], + std=[58.395, 57.12, 57.375], + to_rgb=True) + test_pipeline = [ + dict(type='LoadImageFromFile'), + dict( + type='MultiScaleFlipAug', + img_scale=(128, 256), + # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75], + flip=False, + transforms=[ + dict(type='Resize', keep_ratio=True), + dict(type='RandomFlip'), + dict(type='Normalize', **img_norm_cfg), + dict(type='ImageToTensor', keys=['img']), + dict(type='Collect', keys=['img']), + ]) + ] + data_root = osp.join(osp.dirname(__file__), '../data/pseudo_dataset') + img_dir = 'imgs/' + ann_dir = 'gts/' + + cfg1 = dict( + type='CustomDataset', + pipeline=test_pipeline, + data_root=data_root, + img_dir=img_dir, + ann_dir=ann_dir, + img_suffix='img.jpg', + seg_map_suffix='gt.png', + classes=tuple(['a'] * 7)) + dataset1 = build_dataset(cfg1) + assert len(dataset1) == 5 + # get gt seg map + gt_seg_maps = dataset1.get_gt_seg_maps(efficient_test=True) + assert isinstance(gt_seg_maps, Generator) + gt_seg_maps = list(gt_seg_maps) + assert len(gt_seg_maps) == 5 + + # test past evaluation + pseudo_results = [] + for gt_seg_map in gt_seg_maps: + h, w = gt_seg_map.shape + pseudo_results.append(np.random.randint(low=0, high=7, size=(h, w))) + eval_results1 = dataset1.evaluate( + pseudo_results, metric=['mIoU', 'mDice', 'mFscore']) + + # We use same dir twice for simplicity + # with ann_dir + cfg2 = dict( + type='CustomDataset', + pipeline=test_pipeline, + data_root=data_root, + img_dir=[img_dir, img_dir], + ann_dir=[ann_dir, ann_dir], + img_suffix='img.jpg', + seg_map_suffix='gt.png', + classes=tuple(['a'] * 7), + separate_eval=separate_eval) + dataset2 = build_dataset(cfg2) + assert isinstance(dataset2, ConcatDataset) + assert len(dataset2) == 10 + + eval_results2 = dataset2.evaluate( + pseudo_results * 2, metric=['mIoU', 'mDice', 'mFscore']) + + if separate_eval: + assert eval_results1['mIoU'] == eval_results2[ + '0_mIoU'] == eval_results2['1_mIoU'] + assert eval_results1['mDice'] == eval_results2[ + '0_mDice'] == eval_results2['1_mDice'] + assert eval_results1['mAcc'] == eval_results2[ + '0_mAcc'] == eval_results2['1_mAcc'] + assert eval_results1['aAcc'] == eval_results2[ + '0_aAcc'] == eval_results2['1_aAcc'] + assert eval_results1['mFscore'] == eval_results2[ + '0_mFscore'] == eval_results2['1_mFscore'] + assert eval_results1['mPrecision'] == eval_results2[ + '0_mPrecision'] == eval_results2['1_mPrecision'] + assert eval_results1['mRecall'] == eval_results2[ + '0_mRecall'] == eval_results2['1_mRecall'] + else: + assert eval_results1['mIoU'] == eval_results2['mIoU'] + assert eval_results1['mDice'] == eval_results2['mDice'] + assert eval_results1['mAcc'] == eval_results2['mAcc'] + assert eval_results1['aAcc'] == eval_results2['aAcc'] + assert eval_results1['mFscore'] == eval_results2['mFscore'] + assert eval_results1['mPrecision'] == eval_results2['mPrecision'] + assert eval_results1['mRecall'] == eval_results2['mRecall'] + + # test get dataset_idx and sample_idx from ConcateDataset + dataset_idx, sample_idx = dataset2.get_dataset_idx_and_sample_idx(3) + assert dataset_idx == 0 + assert sample_idx == 3 + + dataset_idx, sample_idx = dataset2.get_dataset_idx_and_sample_idx(7) + assert dataset_idx == 1 + assert sample_idx == 2 + + dataset_idx, sample_idx = dataset2.get_dataset_idx_and_sample_idx(-7) + assert dataset_idx == 0 + assert sample_idx == 3 + + # test negative indice exceed length of dataset + with pytest.raises(ValueError): + dataset_idx, sample_idx = dataset2.get_dataset_idx_and_sample_idx(-11) + + # test negative indice value + indice = -6 + dataset_idx1, sample_idx1 = dataset2.get_dataset_idx_and_sample_idx(indice) + dataset_idx2, sample_idx2 = dataset2.get_dataset_idx_and_sample_idx( + len(dataset2) + indice) + assert dataset_idx1 == dataset_idx2 + assert sample_idx1 == sample_idx2 + + # test evaluation with pre-eval and the dataset.CLASSES is necessary + pseudo_results = [] + eval_results1 = [] + for idx in range(len(dataset1)): + h, w = gt_seg_maps[idx].shape + pseudo_result = np.random.randint(low=0, high=7, size=(h, w)) + pseudo_results.append(pseudo_result) + eval_results1.extend(dataset1.pre_eval(pseudo_result, idx)) + + assert len(eval_results1) == len(dataset1) + assert isinstance(eval_results1[0], tuple) + assert len(eval_results1[0]) == 4 + assert isinstance(eval_results1[0][0], torch.Tensor) + + eval_results1 = dataset1.evaluate( + eval_results1, metric=['mIoU', 'mDice', 'mFscore']) + + pseudo_results = pseudo_results * 2 + eval_results2 = [] + for idx in range(len(dataset2)): + eval_results2.extend(dataset2.pre_eval(pseudo_results[idx], idx)) + + assert len(eval_results2) == len(dataset2) + assert isinstance(eval_results2[0], tuple) + assert len(eval_results2[0]) == 4 + assert isinstance(eval_results2[0][0], torch.Tensor) + + eval_results2 = dataset2.evaluate( + eval_results2, metric=['mIoU', 'mDice', 'mFscore']) + + if separate_eval: + assert eval_results1['mIoU'] == eval_results2[ + '0_mIoU'] == eval_results2['1_mIoU'] + assert eval_results1['mDice'] == eval_results2[ + '0_mDice'] == eval_results2['1_mDice'] + assert eval_results1['mAcc'] == eval_results2[ + '0_mAcc'] == eval_results2['1_mAcc'] + assert eval_results1['aAcc'] == eval_results2[ + '0_aAcc'] == eval_results2['1_aAcc'] + assert eval_results1['mFscore'] == eval_results2[ + '0_mFscore'] == eval_results2['1_mFscore'] + assert eval_results1['mPrecision'] == eval_results2[ + '0_mPrecision'] == eval_results2['1_mPrecision'] + assert eval_results1['mRecall'] == eval_results2[ + '0_mRecall'] == eval_results2['1_mRecall'] + else: + assert eval_results1['mIoU'] == eval_results2['mIoU'] + assert eval_results1['mDice'] == eval_results2['mDice'] + assert eval_results1['mAcc'] == eval_results2['mAcc'] + assert eval_results1['aAcc'] == eval_results2['aAcc'] + assert eval_results1['mFscore'] == eval_results2['mFscore'] + assert eval_results1['mPrecision'] == eval_results2['mPrecision'] + assert eval_results1['mRecall'] == eval_results2['mRecall'] + + # test batch_indices for pre eval + eval_results2 = dataset2.pre_eval(pseudo_results, + list(range(len(pseudo_results)))) + + assert len(eval_results2) == len(dataset2) + assert isinstance(eval_results2[0], tuple) + assert len(eval_results2[0]) == 4 + assert isinstance(eval_results2[0][0], torch.Tensor) + + eval_results2 = dataset2.evaluate( + eval_results2, metric=['mIoU', 'mDice', 'mFscore']) + + if separate_eval: + assert eval_results1['mIoU'] == eval_results2[ + '0_mIoU'] == eval_results2['1_mIoU'] + assert eval_results1['mDice'] == eval_results2[ + '0_mDice'] == eval_results2['1_mDice'] + assert eval_results1['mAcc'] == eval_results2[ + '0_mAcc'] == eval_results2['1_mAcc'] + assert eval_results1['aAcc'] == eval_results2[ + '0_aAcc'] == eval_results2['1_aAcc'] + assert eval_results1['mFscore'] == eval_results2[ + '0_mFscore'] == eval_results2['1_mFscore'] + assert eval_results1['mPrecision'] == eval_results2[ + '0_mPrecision'] == eval_results2['1_mPrecision'] + assert eval_results1['mRecall'] == eval_results2[ + '0_mRecall'] == eval_results2['1_mRecall'] + else: + assert eval_results1['mIoU'] == eval_results2['mIoU'] + assert eval_results1['mDice'] == eval_results2['mDice'] + assert eval_results1['mAcc'] == eval_results2['mAcc'] + assert eval_results1['aAcc'] == eval_results2['aAcc'] + assert eval_results1['mFscore'] == eval_results2['mFscore'] + assert eval_results1['mPrecision'] == eval_results2['mPrecision'] + assert eval_results1['mRecall'] == eval_results2['mRecall'] + def test_ade(): test_dataset = ADE20KDataset( @@ -279,6 +497,44 @@ def test_ade(): shutil.rmtree('.format_ade') +@pytest.mark.parametrize('separate_eval', [True, False]) +def test_concat_ade(separate_eval): + test_dataset = ADE20KDataset( + pipeline=[], + img_dir=osp.join(osp.dirname(__file__), '../data/pseudo_dataset/imgs')) + assert len(test_dataset) == 5 + + concat_dataset = ConcatDataset([test_dataset, test_dataset], + separate_eval=separate_eval) + assert len(concat_dataset) == 10 + # Test format_results + pseudo_results = [] + for _ in range(len(concat_dataset)): + h, w = (2, 2) + pseudo_results.append(np.random.randint(low=0, high=7, size=(h, w))) + + # test format per image + file_paths = [] + for i in range(len(pseudo_results)): + file_paths.extend( + concat_dataset.format_results([pseudo_results[i]], + '.format_ade', + indices=[i])) + assert len(file_paths) == len(concat_dataset) + temp = np.array(Image.open(file_paths[0])) + assert np.allclose(temp, pseudo_results[0] + 1) + + shutil.rmtree('.format_ade') + + # test default argument + file_paths = concat_dataset.format_results(pseudo_results, '.format_ade') + assert len(file_paths) == len(concat_dataset) + temp = np.array(Image.open(file_paths[0])) + assert np.allclose(temp, pseudo_results[0] + 1) + + shutil.rmtree('.format_ade') + + def test_cityscapes(): test_dataset = CityscapesDataset( pipeline=[], @@ -311,6 +567,28 @@ def test_cityscapes(): shutil.rmtree('.format_city') +@pytest.mark.parametrize('separate_eval', [True, False]) +def test_concat_cityscapes(separate_eval): + cityscape_dataset = CityscapesDataset( + pipeline=[], + img_dir=osp.join( + osp.dirname(__file__), + '../data/pseudo_cityscapes_dataset/leftImg8bit'), + ann_dir=osp.join( + osp.dirname(__file__), '../data/pseudo_cityscapes_dataset/gtFine')) + assert len(cityscape_dataset) == 1 + with pytest.raises(NotImplementedError): + _ = ConcatDataset([cityscape_dataset, cityscape_dataset], + separate_eval=separate_eval) + ade_dataset = ADE20KDataset( + pipeline=[], + img_dir=osp.join(osp.dirname(__file__), '../data/pseudo_dataset/imgs')) + assert len(ade_dataset) == 5 + with pytest.raises(NotImplementedError): + _ = ConcatDataset([cityscape_dataset, ade_dataset], + separate_eval=separate_eval) + + @patch('mmseg.datasets.CustomDataset.load_annotations', MagicMock) @patch('mmseg.datasets.CustomDataset.__getitem__', MagicMock(side_effect=lambda idx: idx)) @@ -360,14 +638,23 @@ def test_custom_classes_override_default(dataset, classes): assert custom_dataset.CLASSES == [classes[0]] # Test default behavior - custom_dataset = dataset_class( - pipeline=[], - img_dir=MagicMock(), - split=MagicMock(), - classes=None, - test_mode=True) - - assert custom_dataset.CLASSES == original_classes + if dataset_class is CustomDataset: + with pytest.raises(AssertionError): + custom_dataset = dataset_class( + pipeline=[], + img_dir=MagicMock(), + split=MagicMock(), + classes=None, + test_mode=True) + else: + custom_dataset = dataset_class( + pipeline=[], + img_dir=MagicMock(), + split=MagicMock(), + classes=None, + test_mode=True) + + assert custom_dataset.CLASSES == original_classes @patch('mmseg.datasets.CustomDataset.load_annotations', MagicMock) diff --git a/tests/test_data/test_dataset_builder.py b/tests/test_data/test_dataset_builder.py index c945fe5527..edb82efb93 100644 --- a/tests/test_data/test_dataset_builder.py +++ b/tests/test_data/test_dataset_builder.py @@ -78,7 +78,8 @@ def test_build_dataset(): pipeline=[], data_root=data_root, img_dir=[img_dir, img_dir], - test_mode=True) + test_mode=True, + classes=('pseudo_class', )) dataset = build_dataset(cfg) assert isinstance(dataset, ConcatDataset) assert len(dataset) == 10 @@ -90,7 +91,8 @@ def test_build_dataset(): data_root=data_root, img_dir=[img_dir, img_dir], split=['splits/val.txt', 'splits/val.txt'], - test_mode=True) + test_mode=True, + classes=('pseudo_class', )) dataset = build_dataset(cfg) assert isinstance(dataset, ConcatDataset) assert len(dataset) == 2 diff --git a/tools/browse_dataset.py b/tools/browse_dataset.py new file mode 100644 index 0000000000..2ec414280a --- /dev/null +++ b/tools/browse_dataset.py @@ -0,0 +1,167 @@ +import argparse +import os +import warnings +from pathlib import Path + +import mmcv +import numpy as np +from mmcv import Config + +from mmseg.datasets.builder import build_dataset + + +def parse_args(): + parser = argparse.ArgumentParser(description='Browse a dataset') + parser.add_argument('config', help='train config file path') + parser.add_argument( + '--show-origin', + default=False, + action='store_true', + help='if True, omit all augmentation in pipeline,' + ' show origin image and seg map') + parser.add_argument( + '--skip-type', + type=str, + nargs='+', + default=['DefaultFormatBundle', 'Normalize', 'Collect'], + help='skip some useless pipeline,if `show-origin` is true, ' + 'all pipeline except `Load` will be skipped') + parser.add_argument( + '--output-dir', + default='./output', + type=str, + help='If there is no display interface, you can save it') + parser.add_argument('--show', default=False, action='store_true') + parser.add_argument( + '--show-interval', + type=int, + default=999, + help='the interval of show (ms)') + parser.add_argument( + '--opacity', + type=float, + default=0.5, + help='the opacity of semantic map') + args = parser.parse_args() + return args + + +def imshow_semantic(img, + seg, + class_names, + palette=None, + win_name='', + show=False, + wait_time=0, + out_file=None, + opacity=0.5): + """Draw `result` over `img`. + + Args: + img (str or Tensor): The image to be displayed. + seg (Tensor): The semantic segmentation results to draw over + `img`. + class_names (list[str]): Names of each classes. + palette (list[list[int]]] | np.ndarray | None): The palette of + segmentation map. If None is given, random palette will be + generated. Default: None + win_name (str): The window name. + wait_time (int): Value of waitKey param. + Default: 0. + show (bool): Whether to show the image. + Default: False. + out_file (str or None): The filename to write the image. + Default: None. + opacity(float): Opacity of painted segmentation map. + Default 0.5. + Must be in (0, 1] range. + Returns: + img (Tensor): Only if not `show` or `out_file` + """ + img = mmcv.imread(img) + img = img.copy() + if palette is None: + palette = np.random.randint(0, 255, size=(len(class_names), 3)) + palette = np.array(palette) + assert palette.shape[0] == len(class_names) + assert palette.shape[1] == 3 + assert len(palette.shape) == 2 + assert 0 < opacity <= 1.0 + color_seg = np.zeros((seg.shape[0], seg.shape[1], 3), dtype=np.uint8) + for label, color in enumerate(palette): + color_seg[seg == label, :] = color + # convert to BGR + color_seg = color_seg[..., ::-1] + + img = img * (1 - opacity) + color_seg * opacity + img = img.astype(np.uint8) + # if out_file specified, do not show image in window + if out_file is not None: + show = False + + if show: + mmcv.imshow(img, win_name, wait_time) + if out_file is not None: + mmcv.imwrite(img, out_file) + + if not (show or out_file): + warnings.warn('show==False and out_file is not specified, only ' + 'result image will be returned') + return img + + +def _retrieve_data_cfg(_data_cfg, skip_type, show_origin): + if show_origin is True: + # only keep pipeline of Loading data and ann + _data_cfg['pipeline'] = [ + x for x in _data_cfg.pipeline if 'Load' in x['type'] + ] + else: + _data_cfg['pipeline'] = [ + x for x in _data_cfg.pipeline if x['type'] not in skip_type + ] + + +def retrieve_data_cfg(config_path, skip_type, show_origin=False): + cfg = Config.fromfile(config_path) + train_data_cfg = cfg.data.train + if isinstance(train_data_cfg, list): + for _data_cfg in train_data_cfg: + if 'pipeline' in _data_cfg: + _retrieve_data_cfg(_data_cfg, skip_type, show_origin) + elif 'dataset' in _data_cfg: + _retrieve_data_cfg(_data_cfg['dataset'], skip_type, + show_origin) + else: + raise ValueError + elif 'dataset' in train_data_cfg: + _retrieve_data_cfg(train_data_cfg['dataset'], skip_type, show_origin) + else: + _retrieve_data_cfg(train_data_cfg, skip_type, show_origin) + return cfg + + +def main(): + args = parse_args() + cfg = retrieve_data_cfg(args.config, args.skip_type, args.show_origin) + dataset = build_dataset(cfg.data.train) + progress_bar = mmcv.ProgressBar(len(dataset)) + for item in dataset: + filename = os.path.join(args.output_dir, + Path(item['filename']).name + ) if args.output_dir is not None else None + imshow_semantic( + item['img'], + item['gt_semantic_seg'], + dataset.CLASSES, + dataset.PALETTE, + show=args.show, + wait_time=args.show_interval, + out_file=filename, + opacity=args.opacity, + ) + progress_bar.update() + + +if __name__ == '__main__': + main() diff --git a/tools/test.py b/tools/test.py index d99c153728..3923b77f40 100644 --- a/tools/test.py +++ b/tools/test.py @@ -215,7 +215,8 @@ def main(): print(f'\nwriting results to {args.out}') mmcv.dump(results, args.out) if args.eval: - metric = dataset.evaluate(results, args.eval, **eval_kwargs) + eval_kwargs.update(metric=args.eval) + metric = dataset.evaluate(results, **eval_kwargs) metric_dict = dict(config=args.config, metric=metric) if args.work_dir is not None and rank == 0: mmcv.dump(metric_dict, json_file, indent=4) From f3a49b56a4db48b195a6571173a498d866a9a40b Mon Sep 17 00:00:00 2001 From: FreyWang Date: Sat, 11 Sep 2021 14:33:01 +0800 Subject: [PATCH 234/706] [Fix] Fix iter bug when resuming checkpoint in distributed train (#866) * [Fix] Fix iter bug when resuming checkpoint in distributed train * fix lint error Signed-off-by: FreyWang --- tools/train.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/train.py b/tools/train.py index 490b3ff5f8..f81470537c 100644 --- a/tools/train.py +++ b/tools/train.py @@ -7,7 +7,7 @@ import mmcv import torch -from mmcv.runner import init_dist +from mmcv.runner import get_dist_info, init_dist from mmcv.utils import Config, DictAction, get_git_hash from mmseg import __version__ @@ -94,6 +94,9 @@ def main(): else: distributed = True init_dist(args.launcher, **cfg.dist_params) + # gpu_ids is used to calculate iter when resuming checkpoint, + _, world_size = get_dist_info() + cfg.gpu_ids = range(world_size) # create work_dir mmcv.mkdir_or_exist(osp.abspath(cfg.work_dir)) From 730f36cd8be7516484ccb3bd804a5bf4b248da15 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Sat, 11 Sep 2021 14:34:35 +0800 Subject: [PATCH 235/706] [Fix] Update mmcv installation in dockerfile (#860) * update dockerfile * Update docker/Dockerfile Co-authored-by: Jerry Jiarui XU * add ARG * change dash to bash Co-authored-by: Jerry Jiarui XU --- docker/Dockerfile | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 7481b3a969..a55c685de2 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,6 +1,7 @@ ARG PYTORCH="1.6.0" ARG CUDA="10.1" ARG CUDNN="7" +ARG MMCV="1.3.12" FROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel @@ -12,11 +13,17 @@ RUN apt-get update && apt-get install -y git ninja-build libglib2.0-0 libsm6 lib && apt-get clean \ && rm -rf /var/lib/apt/lists/* -# Install mmsegmentation RUN conda clean --all -RUN pip install mmcv-full==latest+torch1.6.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html +# Install MMCV +ARG PYTORCH +ARG CUDA +ARG MMCV +RUN ["/bin/bash", "-c", "pip install mmcv-full==${MMCV} -f https://download.openmmlab.com/mmcv/dist/cu${CUDA//./}/torch${PYTORCH}/index.html"] + +# Install MMSegmentation RUN git clone https://github.com/open-mmlab/mmsegmentation.git /mmsegmentation WORKDIR /mmsegmentation +ENV FORCE_CUDA="1" RUN pip install -r requirements.txt RUN pip install --no-cache-dir -e . From 4583dc1033ff7414cd63def32e12e9096f65a5ff Mon Sep 17 00:00:00 2001 From: uni19 Date: Wed, 15 Sep 2021 10:16:01 +0800 Subject: [PATCH 236/706] [Enhancement] Support loading GT for evaluation from multi-file backend (#867) * support load gt for evaluation from multi-backend * move some code from get_gt_seg_maps to get_one_gt_seg_map * rename gt_seg_map_loader_conf to gt_seg_map_loader_cfg * fix doc str * rename get_one_gt_seg_map to get_gt_seg_map_by_idx --- mmseg/datasets/custom.py | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/mmseg/datasets/custom.py b/mmseg/datasets/custom.py index 9b0efc6f05..23b347d34b 100644 --- a/mmseg/datasets/custom.py +++ b/mmseg/datasets/custom.py @@ -12,7 +12,7 @@ from mmseg.core import eval_metrics, intersect_and_union, pre_eval_to_metrics from mmseg.utils import get_root_logger from .builder import DATASETS -from .pipelines import Compose +from .pipelines import Compose, LoadAnnotations @DATASETS.register_module() @@ -66,6 +66,8 @@ class CustomDataset(Dataset): The palette of segmentation map. If None is given, and self.PALETTE is None, random palette will be generated. Default: None + gt_seg_map_loader_cfg (dict, optional): build LoadAnnotations to + load gt for evaluation, load from disk by default. Default: None. """ CLASSES = None @@ -84,7 +86,8 @@ def __init__(self, ignore_index=255, reduce_zero_label=False, classes=None, - palette=None): + palette=None, + gt_seg_map_loader_cfg=None): self.pipeline = Compose(pipeline) self.img_dir = img_dir self.img_suffix = img_suffix @@ -98,6 +101,10 @@ def __init__(self, self.label_map = None self.CLASSES, self.PALETTE = self.get_classes_and_palette( classes, palette) + self.gt_seg_map_loader = LoadAnnotations( + ) if gt_seg_map_loader_cfg is None else LoadAnnotations( + **gt_seg_map_loader_cfg) + if test_mode: assert self.CLASSES is not None, \ '`cls.CLASSES` or `classes` should be specified when testing' @@ -232,6 +239,14 @@ def format_results(self, results, imgfile_prefix, indices=None, **kwargs): """Place holder to format result to dataset specific output.""" raise NotImplementedError + def get_gt_seg_map_by_idx(self, index): + """Get one ground truth segmentation map for evaluation.""" + ann_info = self.get_ann_info(index) + results = dict(ann_info=ann_info) + self.pre_pipeline(results) + self.gt_seg_map_loader(results) + return results['gt_semantic_seg'] + def get_gt_seg_maps(self, efficient_test=None): """Get ground truth segmentation maps for evaluation.""" if efficient_test is not None: @@ -240,11 +255,12 @@ def get_gt_seg_maps(self, efficient_test=None): 'since MMSeg v0.16, the ``get_gt_seg_maps()`` is CPU memory ' 'friendly by default. ') - for img_info in self.img_infos: - seg_map = osp.join(self.ann_dir, img_info['ann']['seg_map']) - gt_seg_map = mmcv.imread( - seg_map, flag='unchanged', backend='pillow') - yield gt_seg_map + for idx in range(len(self)): + ann_info = self.get_ann_info(idx) + results = dict(ann_info=ann_info) + self.pre_pipeline(results) + self.gt_seg_map_loader(results) + yield results['gt_semantic_seg'] def pre_eval(self, preds, indices): """Collect eval result from each iteration. @@ -268,9 +284,7 @@ def pre_eval(self, preds, indices): pre_eval_results = [] for pred, index in zip(preds, indices): - seg_map = osp.join(self.ann_dir, - self.img_infos[index]['ann']['seg_map']) - seg_map = mmcv.imread(seg_map, flag='unchanged', backend='pillow') + seg_map = self.get_gt_seg_map_by_idx(index) pre_eval_results.append( intersect_and_union(pred, seg_map, len(self.CLASSES), self.ignore_index, self.label_map, From 9ac053f49a63f38a4e9e4b05cb9ab5c5f6c599a2 Mon Sep 17 00:00:00 2001 From: sennnnn <58427300+sennnnn@users.noreply.github.com> Date: Thu, 16 Sep 2021 00:39:37 +0800 Subject: [PATCH 237/706] [Fix] Convert SyncBN to BN when training on DP (#772) * [Fix] Convert SyncBN to BN when training on DP. * Modify SyncBN2BN. * Add SyncBN2BN unit test. * Resolve some comments. * use mmcv official revert_sync_batchnorm * Remove local syncbn2bn unit tests. * Update mmcv version. * Fix bugs of gather model tools. * Modify warnings. * Modify docker mmcv version. * Update mmcv version table. --- .dev/gather_models.py | 2 +- docker/Dockerfile | 2 +- docker/serve/Dockerfile | 2 +- docs/get_started.md | 2 +- docs/train.md | 8 ++++++++ docs_zh-CN/get_started.md | 2 +- mmseg/__init__.py | 2 +- tests/test_models/test_forward.py | 26 ++------------------------ tools/train.py | 10 ++++++++++ 9 files changed, 26 insertions(+), 30 deletions(-) diff --git a/.dev/gather_models.py b/.dev/gather_models.py index 581d5104c7..3eedf6110b 100644 --- a/.dev/gather_models.py +++ b/.dev/gather_models.py @@ -75,7 +75,7 @@ def get_final_results(log_json_path, iter_num): def parse_args(): parser = argparse.ArgumentParser(description='Gather benchmarked models') parser.add_argument( - '-c', '--config-name', type=str, help='Process the selected config.') + '-f', '--config-name', type=str, help='Process the selected config.') parser.add_argument( '-w', '--work-dir', diff --git a/docker/Dockerfile b/docker/Dockerfile index a55c685de2..6f9acacb95 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,7 +1,7 @@ ARG PYTORCH="1.6.0" ARG CUDA="10.1" ARG CUDNN="7" -ARG MMCV="1.3.12" +ARG MMCV="1.3.13" FROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel diff --git a/docker/serve/Dockerfile b/docker/serve/Dockerfile index 20ad07dff2..d31ec219da 100644 --- a/docker/serve/Dockerfile +++ b/docker/serve/Dockerfile @@ -3,7 +3,7 @@ ARG CUDA="10.1" ARG CUDNN="7" FROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel -ARG MMCV="1.3.12" +ARG MMCV="1.3.13" ARG MMSEG="0.17.0" ENV PYTHONUNBUFFERED TRUE diff --git a/docs/get_started.md b/docs/get_started.md index d8342bfb72..f7d9bf0ec1 100644 --- a/docs/get_started.md +++ b/docs/get_started.md @@ -11,7 +11,7 @@ The compatible MMSegmentation and MMCV versions are as below. Please install the | MMSegmentation version | MMCV version | |:-------------------:|:-------------------:| -| master | mmcv-full>=1.3.7, <1.4.0 | +| master | mmcv-full>=1.3.13, <1.4.0 | | 0.17.0 | mmcv-full>=1.3.7, <1.4.0 | | 0.16.0 | mmcv-full>=1.3.7, <1.4.0 | | 0.15.0 | mmcv-full>=1.3.7, <1.4.0 | diff --git a/docs/train.md b/docs/train.md index 1deac95f7d..5b38ac78b8 100644 --- a/docs/train.md +++ b/docs/train.md @@ -19,6 +19,14 @@ To trade speed with GPU memory, you may pass in `--options model.backbone.with_c ### Train with a single GPU +official support: + +```shell +./tools/dist_train.sh ${CONFIG_FILE} 1 [optional arguments] +``` + +experimental support (Convert SyncBN to BN): + ```shell python tools/train.py ${CONFIG_FILE} [optional arguments] ``` diff --git a/docs_zh-CN/get_started.md b/docs_zh-CN/get_started.md index de2dcda4b9..cb7434afa1 100644 --- a/docs_zh-CN/get_started.md +++ b/docs_zh-CN/get_started.md @@ -11,7 +11,7 @@ | MMSegmentation 版本 | MMCV 版本 | |:-------------------:|:-------------------:| -| master | mmcv-full>=1.3.7, <1.4.0 | +| master | mmcv-full>=1.3.13, <1.4.0 | | 0.17.0 | mmcv-full>=1.3.7, <1.4.0 | | 0.16.0 | mmcv-full>=1.3.7, <1.4.0 | | 0.15.0 | mmcv-full>=1.3.7, <1.4.0 | diff --git a/mmseg/__init__.py b/mmseg/__init__.py index 08c810257b..7e2c89db63 100644 --- a/mmseg/__init__.py +++ b/mmseg/__init__.py @@ -6,7 +6,7 @@ from .version import __version__, version_info -MMCV_MIN = '1.3.7' +MMCV_MIN = '1.3.13' MMCV_MAX = '1.4.0' diff --git a/tests/test_models/test_forward.py b/tests/test_models/test_forward.py index c71d131a3c..ee707b3511 100644 --- a/tests/test_models/test_forward.py +++ b/tests/test_models/test_forward.py @@ -8,7 +8,7 @@ import pytest import torch import torch.nn as nn -from mmcv.utils.parrots_wrapper import SyncBatchNorm, _BatchNorm +from mmcv.cnn.utils import revert_sync_batchnorm def _demo_mm_inputs(input_shape=(2, 3, 8, 16), num_classes=10): @@ -189,28 +189,6 @@ def _check_input_dim(self, inputs): pass -def _convert_batchnorm(module): - module_output = module - if isinstance(module, SyncBatchNorm): - # to be consistent with SyncBN, we hack dim check function in BN - module_output = _BatchNorm(module.num_features, module.eps, - module.momentum, module.affine, - module.track_running_stats) - if module.affine: - module_output.weight.data = module.weight.data.clone().detach() - module_output.bias.data = module.bias.data.clone().detach() - # keep requires_grad unchanged - module_output.weight.requires_grad = module.weight.requires_grad - module_output.bias.requires_grad = module.bias.requires_grad - module_output.running_mean = module.running_mean - module_output.running_var = module.running_var - module_output.num_batches_tracked = module.num_batches_tracked - for name, child in module.named_children(): - module_output.add_module(name, _convert_batchnorm(child)) - del module - return module_output - - @patch('torch.nn.modules.batchnorm._BatchNorm._check_input_dim', _check_input_dim) @patch('torch.distributed.get_world_size', get_world_size) @@ -241,7 +219,7 @@ def _test_encoder_decoder_forward(cfg_file): imgs = imgs.cuda() gt_semantic_seg = gt_semantic_seg.cuda() else: - segmentor = _convert_batchnorm(segmentor) + segmentor = revert_sync_batchnorm(segmentor) # Test forward train losses = segmentor.forward( diff --git a/tools/train.py b/tools/train.py index f81470537c..05bd205ccb 100644 --- a/tools/train.py +++ b/tools/train.py @@ -4,9 +4,11 @@ import os import os.path as osp import time +import warnings import mmcv import torch +from mmcv.cnn.utils import revert_sync_batchnorm from mmcv.runner import get_dist_info, init_dist from mmcv.utils import Config, DictAction, get_git_hash @@ -137,6 +139,14 @@ def main(): test_cfg=cfg.get('test_cfg')) model.init_weights() + # SyncBN is not support for DP + if not distributed: + warnings.warn( + 'SyncBN is only supported with DDP. To be compatible with DP, ' + 'we convert SyncBN to BN. Please use dist_train.sh which can ' + 'avoid this error.') + model = revert_sync_batchnorm(model) + logger.info(model) datasets = [build_dataset(cfg.data.train)] From 9162d058d94987a92e3fdf3c378dc9d9e9f89f87 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Thu, 16 Sep 2021 23:23:50 +0800 Subject: [PATCH 238/706] [Docs] Improve docs style (#879) * Improve docs style * update lists * update the size of image * modify duplicate mmdet3d --- .github/CONTRIBUTING.md | 3 +- configs/deeplabv3/README.md | 4 +- configs/deeplabv3plus/README.md | 3 +- docs/_static/css/readthedocs.css | 6 ++ docs/_static/images/mmsegmentation.png | Bin 0 -> 44728 bytes docs/api.rst | 3 - docs/conf.py | 100 +++++++++++++++-- docs/get_started.md | 7 +- docs/inference.md | 4 +- docs/model_zoo.md | 4 +- docs/tutorials/customize_datasets.md | 4 +- docs/tutorials/customize_runtime.md | 4 +- docs/useful_tools.md | 28 +++-- docs_zh-CN/_static/css/readthedocs.css | 6 ++ docs_zh-CN/_static/images/mmsegmentation.png | Bin 0 -> 44728 bytes docs_zh-CN/api.rst | 3 - docs_zh-CN/conf.py | 106 +++++++++++++++++-- docs_zh-CN/tutorials/data_pipeline.md | 2 +- requirements/docs.txt | 6 +- setup.cfg | 2 +- 20 files changed, 255 insertions(+), 40 deletions(-) create mode 100644 docs/_static/css/readthedocs.css create mode 100644 docs/_static/images/mmsegmentation.png create mode 100644 docs_zh-CN/_static/css/readthedocs.css create mode 100644 docs_zh-CN/_static/images/mmsegmentation.png diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 112527ec88..0bb316f1ab 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -12,11 +12,12 @@ All kinds of contributions are welcome, including but not limited to the followi 3. commit your changes 4. create a PR -Note +:::{note} - If you plan to add some new features that involve large changes, it is encouraged to open an issue for discussion first. - If you are the author of some papers and would like to include your method to mmsegmentation, please contact Kai Chen (chenkaidev[at]gmail[dot]com). We will much appreciate your contribution. +::: ## Code style diff --git a/configs/deeplabv3/README.md b/configs/deeplabv3/README.md index 02c27753ab..06caa337b1 100644 --- a/configs/deeplabv3/README.md +++ b/configs/deeplabv3/README.md @@ -15,7 +15,9 @@ ## Results and models -Note: `D-8` here corresponding to the output stride 8 setting for DeepLab series. +:::{note} +`D-8` here corresponding to the output stride 8 setting for DeepLab series. +::: ### Cityscapes diff --git a/configs/deeplabv3plus/README.md b/configs/deeplabv3plus/README.md index be46e329b6..16702feb39 100644 --- a/configs/deeplabv3plus/README.md +++ b/configs/deeplabv3plus/README.md @@ -15,9 +15,10 @@ ## Results and models -Note: +:::{note} `D-8`/`D-16` here corresponding to the output stride 8/16 setting for DeepLab series. `MG-124` stands for multi-grid dilation in the last stage of ResNet. +::: ### Cityscapes diff --git a/docs/_static/css/readthedocs.css b/docs/_static/css/readthedocs.css new file mode 100644 index 0000000000..2e38d0880b --- /dev/null +++ b/docs/_static/css/readthedocs.css @@ -0,0 +1,6 @@ +.header-logo { + background-image: url("../images/mmsegmentation.png"); + background-size: 201px 40px; + height: 40px; + width: 201px; +} diff --git a/docs/_static/images/mmsegmentation.png b/docs/_static/images/mmsegmentation.png new file mode 100644 index 0000000000000000000000000000000000000000..009083a9e80599a1893591ff362da377c94a0975 GIT binary patch literal 44728 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 literal 0 HcmV?d00001 diff --git a/docs/api.rst b/docs/api.rst index 9c14a67564..8285841dc6 100644 --- a/docs/api.rst +++ b/docs/api.rst @@ -1,6 +1,3 @@ -API Reference -============== - mmseg.apis -------------- .. automodule:: mmseg.apis diff --git a/docs/conf.py b/docs/conf.py index aaea4244b2..4353266ce6 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -15,6 +15,8 @@ import subprocess import sys +import pytorch_sphinx_theme + sys.path.insert(0, os.path.abspath('..')) # -- Project information ----------------------------------------------------- @@ -40,11 +42,8 @@ def get_version(): # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', - 'recommonmark', - 'sphinx_markdown_tables', + 'sphinx.ext.autodoc', 'sphinx.ext.napoleon', 'sphinx.ext.viewcode', + 'sphinx_markdown_tables', 'sphinx_copybutton', 'myst_parser' ] autodoc_mock_imports = [ @@ -75,12 +74,101 @@ def get_version(): # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = 'sphinx_rtd_theme' +# html_theme = 'sphinx_rtd_theme' +html_theme = 'pytorch_sphinx_theme' +html_theme_path = [pytorch_sphinx_theme.get_html_theme_path()] +html_theme_options = { + # 'logo_url': 'https://mmsegmentation.readthedocs.io/en/latest/', + 'menu': [ + { + 'name': + 'Tutorial', + 'url': + 'https://github.com/open-mmlab/mmsegmentation/blob/master/' + 'demo/MMSegmentation_Tutorial.ipynb' + }, + { + 'name': 'GitHub', + 'url': 'https://github.com/open-mmlab/mmsegmentation' + }, + { + 'name': + 'Upstream', + 'children': [ + { + 'name': 'MMCV', + 'url': 'https://github.com/open-mmlab/mmcv', + 'description': 'Foundational library for computer vision' + }, + ] + }, + { + 'name': + 'Projects', + 'children': [ + { + 'name': 'MMAction2', + 'url': 'https://github.com/open-mmlab/mmaction2', + }, + { + 'name': 'MMClassification', + 'url': 'https://github.com/open-mmlab/mmclassification', + }, + { + 'name': 'MMOCR', + 'url': 'https://github.com/open-mmlab/mmocr', + }, + { + 'name': 'MMDetection', + 'url': 'https://github.com/open-mmlab/mmdetection', + }, + { + 'name': 'MMEditing', + 'url': 'https://github.com/open-mmlab/mmediting', + }, + { + 'name': 'MMDetection3D', + 'url': 'https://github.com/open-mmlab/mmdetection3d', + }, + { + 'name': 'MMPose', + 'url': 'https://github.com/open-mmlab/mmpose', + }, + { + 'name': 'MMTracking', + 'url': 'https://github.com/open-mmlab/mmtracking', + }, + { + 'name': 'MMGeneration', + 'url': 'https://github.com/open-mmlab/mmgeneration', + }, + ] + }, + { + 'name': + 'OpenMMLab', + 'children': [ + { + 'name': 'Homepage', + 'url': 'https://openmmlab.com/' + }, + { + 'name': 'GitHub', + 'url': 'https://github.com/open-mmlab/' + }, + ] + }, + ] +} # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] +html_css_files = ['css/readthedocs.css'] + +# Enable ::: for my_st +myst_enable_extensions = ['colon_fence'] language = 'en' diff --git a/docs/get_started.md b/docs/get_started.md index f7d9bf0ec1..90479c9ba7 100644 --- a/docs/get_started.md +++ b/docs/get_started.md @@ -26,8 +26,10 @@ The compatible MMSegmentation and MMCV versions are as below. Please install the | 0.7.0 | mmcv-full>=1.1.2, <1.2.0 | | 0.6.0 | mmcv-full>=1.1.2, <1.2.0 | -Note: You need to run `pip uninstall mmcv` first if you have mmcv installed. +:::{note} +You need to run `pip uninstall mmcv` first if you have mmcv installed. If mmcv and mmcv-full are both installed, there will be `ModuleNotFoundError`. +::: ## Installation @@ -105,7 +107,7 @@ cd mmsegmentation pip install -e . # or "python setup.py develop" ``` -Note: +:::{note} 1. When training or testing models on Windows, please ensure that all the '\\' in paths are replaced with '/'. Add .replace('\\', '/') to your python code wherever path strings occur. 2. The `version+git_hash` will also be saved in trained models meta, e.g. 0.5.0+c415a2e. @@ -114,6 +116,7 @@ Note: you can install it before installing MMCV. 5. Some dependencies are optional. Simply running `pip install -e .` will only install the minimum runtime requirements. To use optional dependencies like `cityscapessripts` either install them manually with `pip install -r requirements/optional.txt` or specify desired extras when calling `pip` (e.g. `pip install -e .[optional]`). Valid keys for the extras field are: `all`, `tests`, `build`, and `optional`. +::: ### A from-scratch setup script diff --git a/docs/inference.md b/docs/inference.md index 65f1e4602b..632400d343 100644 --- a/docs/inference.md +++ b/docs/inference.md @@ -63,8 +63,10 @@ Assume that you have already downloaded the checkpoints to the directory `checkp 4 --out results.pkl --eval mIoU cityscapes ``` - Note: There is some gap (~0.1%) between cityscapes mIoU and our mIoU. The reason is that cityscapes average each class with class size by default. + :::{note} + There is some gap (~0.1%) between cityscapes mIoU and our mIoU. The reason is that cityscapes average each class with class size by default. We use the simple version without average for all datasets. +::: 5. Test PSPNet on cityscapes test split with 4 GPUs, and generate the png files to be submit to the official evaluation server. diff --git a/docs/model_zoo.md b/docs/model_zoo.md index 38064957a5..7babd2e5bd 100644 --- a/docs/model_zoo.md +++ b/docs/model_zoo.md @@ -176,4 +176,6 @@ The training speed is reported as followed, in terms of second per iter (s/iter) | [CASILVision](https://github.com/CSAILVision/semantic-segmentation-pytorch) | 1.15 | N/A | | [vedaseg](https://github.com/Media-Smart/vedaseg) | 0.95 | 1.25 | -Note: The output stride of DeepLabV3+ is 8. +:::{note} +The output stride of DeepLabV3+ is 8. +::: diff --git a/docs/tutorials/customize_datasets.md b/docs/tutorials/customize_datasets.md index 020d51316e..8ed524c2c4 100644 --- a/docs/tutorials/customize_datasets.md +++ b/docs/tutorials/customize_datasets.md @@ -42,8 +42,10 @@ Only `data/my_dataset/ann_dir/train/xxx{seg_map_suffix}`, `data/my_dataset/ann_dir/train/zzz{seg_map_suffix}` will be loaded. -Note: The annotations are images of shape (H, W), the value pixel should fall in range `[0, num_classes - 1]`. +:::{note} +The annotations are images of shape (H, W), the value pixel should fall in range `[0, num_classes - 1]`. You may use `'P'` mode of [pillow](https://pillow.readthedocs.io/en/stable/handbook/concepts.html#palette) to create your annotation image with color. +::: ## Customize datasets by mixing dataset diff --git a/docs/tutorials/customize_runtime.md b/docs/tutorials/customize_runtime.md index dd67ef54f6..3b9097b432 100644 --- a/docs/tutorials/customize_runtime.md +++ b/docs/tutorials/customize_runtime.md @@ -176,12 +176,14 @@ In such case, we can set the workflow as so that 1 epoch for training and 1 epoch for validation will be run iteratively. -**Note**: +:::{note} 1. The parameters of model will not be updated during val epoch. 2. Keyword `total_epochs` in the config only controls the number of training epochs and will not affect the validation workflow. 3. Workflows `[('train', 1), ('val', 1)]` and `[('train', 1)]` will not change the behavior of `EvalHook` because `EvalHook` is called by `after_train_epoch` and validation workflow only affect hooks that are called through `after_val_epoch`. Therefore, the only difference between `[('train', 1), ('val', 1)]` and `[('train', 1)]` is that the runner will calculate losses on validation set after each training epoch. +::: + ## Customize hooks ### Use hooks implemented in MMCV diff --git a/docs/useful_tools.md b/docs/useful_tools.md index b18fd89908..28f9a42efd 100644 --- a/docs/useful_tools.md +++ b/docs/useful_tools.md @@ -19,7 +19,9 @@ Params: 48.98 M ============================== ``` -**Note**: This tool is still experimental and we do not guarantee that the number is correct. You may well use the result for simple comparisons, but double check it before you adopt it in technical reports or papers. +:::{note} +This tool is still experimental and we do not guarantee that the number is correct. You may well use the result for simple comparisons, but double check it before you adopt it in technical reports or papers. +::: (1) FLOPs are related to the input shape while parameters are not. The default input shape is (1, 3, 1280, 800). (2) Some operators are not counted into FLOPs like GN and custom operators. @@ -74,7 +76,9 @@ Description of arguments: - `--dynamic-export`: Determines whether to export ONNX model with dynamic input and output shapes. If not specified, it will be set to `False`. - `--cfg-options`:Update config options. -**Note**: This tool is still experimental. Some customized operators are not supported for now. +:::{note} +This tool is still experimental. Some customized operators are not supported for now. +::: ### Evaluate ONNX model @@ -132,7 +136,9 @@ Description of all arguments | deeplabv3 | deeplabv3_r50-d8_769x769_40k_cityscapes.py | cityscapes | mIoU | 78.5 | 78.3 | | | | deeplabv3+ | deeplabv3plus_r50-d8_769x769_40k_cityscapes.py | cityscapes | mIoU | 78.9 | 78.7 | | | -**Note**: TensorRT is only available on configs with `whole mode`. +:::{note} +TensorRT is only available on configs with `whole mode`. +::: ### Convert to TorchScript (experimental) @@ -158,9 +164,13 @@ Description of arguments: - `--show`: Determines whether to print the traced graph of the exported model. If not specified, it will be set to `False`. - `--verify`: Determines whether to verify the correctness of an exported model. If not specified, it will be set to `False`. -**Note**: It's only support PyTorch>=1.8.0 for now. +:::{note} +It's only support PyTorch>=1.8.0 for now. +::: -**Note**: This tool is still experimental. Some customized operators are not supported for now. +:::{note} +This tool is still experimental. Some customized operators are not supported for now. +::: Examples: @@ -211,7 +221,9 @@ Description of all arguments - `--verify` : Verify the outputs of ONNXRuntime and TensorRT. - `--verbose` : Whether to verbose logging messages while creating TensorRT engine. Defaults to False. -**Note**: Only tested on whole mode. +:::{note} +Only tested on whole mode. +::: ## Miscellaneous @@ -297,7 +309,9 @@ python tools/mmseg2torchserve.py ${CONFIG_FILE} ${CHECKPOINT_FILE} \ --model-name ${MODEL_NAME} ``` -**Note**: ${MODEL_STORE} needs to be an absolute path to a folder. +:::{note} +${MODEL_STORE} needs to be an absolute path to a folder. +::: ### 2. Build `mmseg-serve` docker image diff --git a/docs_zh-CN/_static/css/readthedocs.css b/docs_zh-CN/_static/css/readthedocs.css new file mode 100644 index 0000000000..2e38d0880b --- /dev/null +++ b/docs_zh-CN/_static/css/readthedocs.css @@ -0,0 +1,6 @@ +.header-logo { + background-image: url("../images/mmsegmentation.png"); + background-size: 201px 40px; + height: 40px; + width: 201px; +} diff --git a/docs_zh-CN/_static/images/mmsegmentation.png b/docs_zh-CN/_static/images/mmsegmentation.png new file mode 100644 index 0000000000000000000000000000000000000000..009083a9e80599a1893591ff362da377c94a0975 GIT binary patch literal 44728 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 literal 0 HcmV?d00001 diff --git a/docs_zh-CN/api.rst b/docs_zh-CN/api.rst index 9c14a67564..8285841dc6 100644 --- a/docs_zh-CN/api.rst +++ b/docs_zh-CN/api.rst @@ -1,6 +1,3 @@ -API Reference -============== - mmseg.apis -------------- .. automodule:: mmseg.apis diff --git a/docs_zh-CN/conf.py b/docs_zh-CN/conf.py index ed5eb523f7..f7f47bf8a9 100644 --- a/docs_zh-CN/conf.py +++ b/docs_zh-CN/conf.py @@ -15,6 +15,8 @@ import subprocess import sys +import pytorch_sphinx_theme + sys.path.insert(0, os.path.abspath('..')) # -- Project information ----------------------------------------------------- @@ -40,14 +42,13 @@ def get_version(): # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', - 'recommonmark', - 'sphinx_markdown_tables', + 'sphinx.ext.autodoc', 'sphinx.ext.napoleon', 'sphinx.ext.viewcode', + 'sphinx_markdown_tables', 'sphinx_copybutton', 'myst_parser' ] -autodoc_mock_imports = ['matplotlib', 'pycocotools', 'mmseg.version'] +autodoc_mock_imports = [ + 'matplotlib', 'pycocotools', 'mmseg.version', 'mmcv.ops' +] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] @@ -73,14 +74,103 @@ def get_version(): # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = 'sphinx_rtd_theme' +# html_theme = 'sphinx_rtd_theme' +html_theme = 'pytorch_sphinx_theme' +html_theme_path = [pytorch_sphinx_theme.get_html_theme_path()] +html_theme_options = { + # 'logo_url': 'https://mmsegmentation.readthedocs.io/en/latest/', + 'menu': [ + { + 'name': + 'Tutorial', + 'url': + 'https://github.com/open-mmlab/mmsegmentation/blob/master/' + 'demo/MMSegmentation_Tutorial.ipynb' + }, + { + 'name': 'GitHub', + 'url': 'https://github.com/open-mmlab/mmsegmentation' + }, + { + 'name': + 'Upstream', + 'children': [ + { + 'name': 'MMCV', + 'url': 'https://github.com/open-mmlab/mmcv', + 'description': 'Foundational library for computer vision' + }, + ] + }, + { + 'name': + 'Projects', + 'children': [ + { + 'name': 'MMAction2', + 'url': 'https://github.com/open-mmlab/mmaction2', + }, + { + 'name': 'MMClassification', + 'url': 'https://github.com/open-mmlab/mmclassification', + }, + { + 'name': 'MMOCR', + 'url': 'https://github.com/open-mmlab/mmocr', + }, + { + 'name': 'MMDetection', + 'url': 'https://github.com/open-mmlab/mmdetection', + }, + { + 'name': 'MMEditing', + 'url': 'https://github.com/open-mmlab/mmediting', + }, + { + 'name': 'MMDetection3D', + 'url': 'https://github.com/open-mmlab/mmdetection3d', + }, + { + 'name': 'MMPose', + 'url': 'https://github.com/open-mmlab/mmpose', + }, + { + 'name': 'MMTracking', + 'url': 'https://github.com/open-mmlab/mmtracking', + }, + { + 'name': 'MMGeneration', + 'url': 'https://github.com/open-mmlab/mmgeneration', + }, + ] + }, + { + 'name': + 'OpenMMLab', + 'children': [ + { + 'name': 'Homepage', + 'url': 'https://openmmlab.com/' + }, + { + 'name': 'GitHub', + 'url': 'https://github.com/open-mmlab/' + }, + ] + }, + ] +} # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] +html_css_files = ['css/readthedocs.css'] + +# Enable ::: for my_st +myst_enable_extensions = ['colon_fence'] -language = 'zh_CN' +language = 'zh-CN' def builder_inited_handler(app): diff --git a/docs_zh-CN/tutorials/data_pipeline.md b/docs_zh-CN/tutorials/data_pipeline.md index 64d39934be..f3dfcd832a 100644 --- a/docs_zh-CN/tutorials/data_pipeline.md +++ b/docs_zh-CN/tutorials/data_pipeline.md @@ -9,7 +9,7 @@ 数据的准备流程和数据集是解耦的。通常一个数据集定义了如何处理标注数据(annotations)信息,而一个数据流程定义了准备一个数据字典的所有步骤。一个流程包括了一系列操作,每个操作里都把一个字典作为输入,然后再输出一个新的字典给下一个变换操作。 -这些操作可分为数据加载 (data loading),预处理 (pre-processing),格式变化 (formatting) 和测试时数据增强 (test-time augmentation) 。 +这些操作可分为数据加载 (data loading),预处理 (pre-processing),格式变化 (formatting) 和测试时数据增强 (test-time augmentation)。 下面的例子就是 PSPNet 的一个流程: diff --git a/requirements/docs.txt b/requirements/docs.txt index 866c4d323e..20170845c4 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -1,4 +1,6 @@ -recommonmark +docutils==0.16.0 +myst-parser +-e git+https://github.com/gaotongxiao/pytorch_sphinx_theme.git#egg=pytorch_sphinx_theme sphinx==4.0.2 +sphinx_copybutton sphinx_markdown_tables -sphinx_rtd_theme==0.5.2 diff --git a/setup.cfg b/setup.cfg index 6e88c113e2..75fcedc7cc 100644 --- a/setup.cfg +++ b/setup.cfg @@ -8,6 +8,6 @@ line_length = 79 multi_line_output = 0 known_standard_library = setuptools known_first_party = mmseg -known_third_party = PIL,cityscapesscripts,cv2,detail,matplotlib,mmcv,numpy,onnxruntime,packaging,prettytable,pytest,scipy,seaborn,torch,ts +known_third_party = PIL,cityscapesscripts,cv2,detail,matplotlib,mmcv,numpy,onnxruntime,packaging,prettytable,pytest,pytorch_sphinx_theme,scipy,seaborn,torch,ts no_lines_before = STDLIB,LOCALFOLDER default_section = THIRDPARTY From 6926712820cf876031094fc9cbf7a791949a2721 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Sat, 18 Sep 2021 18:36:43 +0800 Subject: [PATCH 239/706] [Docs] Use Chinese menu (#880) * Use Chinese menu * replace \ with / --- docs/conf.py | 15 ++++++++++++++- docs_zh-CN/conf.py | 25 +++++++++++++++++++------ 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 4353266ce6..50c425fdf7 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -50,6 +50,10 @@ def get_version(): 'matplotlib', 'pycocotools', 'mmseg.version', 'mmcv.ops' ] +# Ignore >>> when copying code +copybutton_prompt_text = r'>>> |\.\.\. ' +copybutton_prompt_is_regexp = True + # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] @@ -78,7 +82,8 @@ def get_version(): html_theme = 'pytorch_sphinx_theme' html_theme_path = [pytorch_sphinx_theme.get_html_theme_path()] html_theme_options = { - # 'logo_url': 'https://mmsegmentation.readthedocs.io/en/latest/', + 'logo_url': + 'https://mmsegmentation.readthedocs.io/en/latest/', 'menu': [ { 'name': @@ -156,6 +161,14 @@ def get_version(): 'name': 'GitHub', 'url': 'https://github.com/open-mmlab/' }, + { + 'name': 'Twitter', + 'url': 'https://twitter.com/OpenMMLab' + }, + { + 'name': 'Zhihu', + 'url': 'https://zhihu.com/people/openmmlab' + }, ] }, ] diff --git a/docs_zh-CN/conf.py b/docs_zh-CN/conf.py index f7f47bf8a9..4cb2bfb899 100644 --- a/docs_zh-CN/conf.py +++ b/docs_zh-CN/conf.py @@ -50,6 +50,10 @@ def get_version(): 'matplotlib', 'pycocotools', 'mmseg.version', 'mmcv.ops' ] +# Ignore >>> when copying code +copybutton_prompt_text = r'>>> |\.\.\. ' +copybutton_prompt_is_regexp = True + # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] @@ -78,11 +82,12 @@ def get_version(): html_theme = 'pytorch_sphinx_theme' html_theme_path = [pytorch_sphinx_theme.get_html_theme_path()] html_theme_options = { - # 'logo_url': 'https://mmsegmentation.readthedocs.io/en/latest/', + 'logo_url': + 'https://mmsegmentation.readthedocs.io/zh-CN/latest/', 'menu': [ { 'name': - 'Tutorial', + '教程', 'url': 'https://github.com/open-mmlab/mmsegmentation/blob/master/' 'demo/MMSegmentation_Tutorial.ipynb' @@ -93,18 +98,18 @@ def get_version(): }, { 'name': - 'Upstream', + '上游库', 'children': [ { 'name': 'MMCV', 'url': 'https://github.com/open-mmlab/mmcv', - 'description': 'Foundational library for computer vision' + 'description': '基础视觉库' }, ] }, { 'name': - 'Projects', + '算法库', 'children': [ { 'name': 'MMAction2', @@ -149,13 +154,21 @@ def get_version(): 'OpenMMLab', 'children': [ { - 'name': 'Homepage', + 'name': '官网', 'url': 'https://openmmlab.com/' }, { 'name': 'GitHub', 'url': 'https://github.com/open-mmlab/' }, + { + 'name': '推特', + 'url': 'https://twitter.com/OpenMMLab' + }, + { + 'name': '知乎', + 'url': 'https://zhihu.com/people/openmmlab' + }, ] }, ] From bf1bdba6231e44d18b7c7168988067f786cea955 Mon Sep 17 00:00:00 2001 From: DerrickWang005 <52530122+DerrickWang005@users.noreply.github.com> Date: Wed, 22 Sep 2021 20:48:08 +0800 Subject: [PATCH 240/706] support coco stuff-10k/164k (#625) * support coco stuff-10k/164k * update docs * fix docs * update docs * fix import lints * Update docs/dataset_prepare.md * Update docs/dataset_prepare.md * Update tools/convert_datasets/coco_stuff164k.py * Update tools/convert_datasets/coco_stuff10k.py * Update tools/convert_datasets/coco_stuff10k.py * Update tools/convert_datasets/coco_stuff10k.py * Update tools/convert_datasets/coco_stuff10k.py * Update coco_stuff.py fix the description of the dataset * Update dataset_prepare.md fix the doc tree of coco stuff 10k * Update coco_stuff10k.py fix img_dir * Update coco_stuff.py fix descriptions * Update coco_stuff164k.py fix out_dir * Update coco_stuff10k.py fix save file name * Update coco_stuff.py fix seg_map_suffix * Update dataset_prepare.md fix -p * Update dataset_prepare.md fix doc tree * modify coco stuff convertor * Remove redundant code * fix 164k convert bug * remove redundant comment * add deeplabv3 configs and more iterations * replace shutil.move with shtil.copyfile * Update deeplabv3_r50-d8_512x512_4x4_80k_coco_stuff10k.py fix wrong config * Update deeplabv3_r101-d8_512x512_4x4_80k_coco_stuff164k.py fix wrong config * fix wrong configs * fix wrong configs * fix wrong path for coco stuff 10k * fix convert bugs * fix seg_filename bug * when nproc=0, use track progress * rename configs: coco_stuff --> coco-stuff * add coco-stuff 10k and 164k to README.md * update configs * add deeplabv3 benchmark * add pspnet benchmark * remove redundant comma Co-authored-by: Junjun2016 --- README.md | 3 + README_zh-CN.md | 2 + configs/_base_/datasets/coco-stuff10k.py | 57 ++++ configs/_base_/datasets/coco-stuff164k.py | 54 ++++ configs/_base_/schedules/schedule_320k.py | 9 + configs/deeplabv3/README.md | 20 ++ configs/deeplabv3/deeplabv3.yml | 174 ++++++++++ ...r101-d8_512x512_4x4_160k_coco-stuff164k.py | 2 + ...3_r101-d8_512x512_4x4_20k_coco-stuff10k.py | 2 + ...r101-d8_512x512_4x4_320k_coco-stuff164k.py | 2 + ...3_r101-d8_512x512_4x4_40k_coco-stuff10k.py | 2 + ..._r101-d8_512x512_4x4_80k_coco-stuff164k.py | 2 + ..._r50-d8_512x512_4x4_160k_coco-stuff164k.py | 7 + ...v3_r50-d8_512x512_4x4_20k_coco-stuff10k.py | 7 + ..._r50-d8_512x512_4x4_320k_coco-stuff164k.py | 7 + ...v3_r50-d8_512x512_4x4_40k_coco-stuff10k.py | 7 + ...3_r50-d8_512x512_4x4_80k_coco-stuff164k.py | 7 + configs/pspnet/README.md | 20 ++ configs/pspnet/pspnet.yml | 174 ++++++++++ ...r101-d8_512x512_4x4_160k_coco-stuff164k.py | 2 + ...t_r101-d8_512x512_4x4_20k_coco-stuff10k.py | 2 + ...r101-d8_512x512_4x4_320k_coco-stuff164k.py | 2 + ...t_r101-d8_512x512_4x4_40k_coco-stuff10k.py | 2 + ..._r101-d8_512x512_4x4_80k_coco-stuff164k.py | 2 + ..._r50-d8_512x512_4x4_160k_coco-stuff164k.py | 7 + ...et_r50-d8_512x512_4x4_20k_coco-stuff10k.py | 6 + ..._r50-d8_512x512_4x4_320k_coco-stuff164k.py | 7 + ...et_r50-d8_512x512_4x4_40k_coco-stuff10k.py | 6 + ...t_r50-d8_512x512_4x4_80k_coco-stuff164k.py | 7 + docs/dataset_prepare.md | 62 ++++ mmseg/datasets/__init__.py | 4 +- mmseg/datasets/coco_stuff.py | 93 ++++++ tools/convert_datasets/coco_stuff10k.py | 306 ++++++++++++++++++ tools/convert_datasets/coco_stuff164k.py | 263 +++++++++++++++ 34 files changed, 1328 insertions(+), 1 deletion(-) create mode 100644 configs/_base_/datasets/coco-stuff10k.py create mode 100644 configs/_base_/datasets/coco-stuff164k.py create mode 100644 configs/_base_/schedules/schedule_320k.py create mode 100644 configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k.py create mode 100644 configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k.py create mode 100644 configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k.py create mode 100644 configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k.py create mode 100644 configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k.py create mode 100644 configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k.py create mode 100644 configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k.py create mode 100644 configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k.py create mode 100644 configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k.py create mode 100644 configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k.py create mode 100644 configs/pspnet/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k.py create mode 100644 configs/pspnet/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k.py create mode 100644 configs/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k.py create mode 100644 configs/pspnet/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k.py create mode 100644 configs/pspnet/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k.py create mode 100644 configs/pspnet/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k.py create mode 100644 configs/pspnet/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k.py create mode 100644 configs/pspnet/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k.py create mode 100644 configs/pspnet/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k.py create mode 100644 configs/pspnet/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k.py create mode 100644 mmseg/datasets/coco_stuff.py create mode 100644 tools/convert_datasets/coco_stuff10k.py create mode 100644 tools/convert_datasets/coco_stuff164k.py diff --git a/README.md b/README.md index 533e39d740..ce2d17712f 100644 --- a/README.md +++ b/README.md @@ -102,12 +102,15 @@ Supported datasets: - [x] [PASCAL VOC](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#pascal-voc) - [x] [ADE20K](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#ade20k) - [x] [Pascal Context](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#pascal-context) +- [x] [COCO-Stuff 10k](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#coco-stuff-10k) +- [x] [COCO-Stuff 164k](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#coco-stuff-164k) - [x] [CHASE_DB1](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#chase-db1) - [x] [DRIVE](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#drive) - [x] [HRF](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#hrf) - [x] [STARE](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#stare) - [x] [Dark Zurich](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#dark-zurich) - [x] [Nighttime Driving](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#nighttime-driving) +- [x] [Nighttime Driving](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#nighttime-driving) ## Installation diff --git a/README_zh-CN.md b/README_zh-CN.md index 17bde8a6c0..7adc191b42 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -101,6 +101,8 @@ MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 O - [x] [PASCAL VOC](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#pascal-voc) - [x] [ADE20K](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#ade20k) - [x] [Pascal Context](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#pascal-context) +- [x] [COCO-Stuff 10k](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#coco-stuff-10k) +- [x] [COCO-Stuff 164k](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#coco-stuff-164k) - [x] [CHASE_DB1](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#chase-db1) - [x] [DRIVE](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#drive) - [x] [HRF](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#hrf) diff --git a/configs/_base_/datasets/coco-stuff10k.py b/configs/_base_/datasets/coco-stuff10k.py new file mode 100644 index 0000000000..ec0496928b --- /dev/null +++ b/configs/_base_/datasets/coco-stuff10k.py @@ -0,0 +1,57 @@ +# dataset settings +dataset_type = 'COCOStuffDataset' +data_root = 'data/coco_stuff10k' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) +crop_size = (512, 512) +train_pipeline = [ + dict(type='LoadImageFromFile'), + dict(type='LoadAnnotations', reduce_zero_label=True), + dict(type='Resize', img_scale=(2048, 512), ratio_range=(0.5, 2.0)), + dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='RandomFlip', prob=0.5), + dict(type='PhotoMetricDistortion'), + dict(type='Normalize', **img_norm_cfg), + dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255), + dict(type='DefaultFormatBundle'), + dict(type='Collect', keys=['img', 'gt_semantic_seg']), +] +test_pipeline = [ + dict(type='LoadImageFromFile'), + dict( + type='MultiScaleFlipAug', + img_scale=(2048, 512), + # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75], + flip=False, + transforms=[ + dict(type='Resize', keep_ratio=True), + dict(type='RandomFlip'), + dict(type='Normalize', **img_norm_cfg), + dict(type='ImageToTensor', keys=['img']), + dict(type='Collect', keys=['img']), + ]) +] +data = dict( + samples_per_gpu=4, + workers_per_gpu=4, + train=dict( + type=dataset_type, + data_root=data_root, + reduce_zero_label=True, + img_dir='images/train2014', + ann_dir='annotations/train2014', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + data_root=data_root, + reduce_zero_label=True, + img_dir='images/test2014', + ann_dir='annotations/test2014', + pipeline=test_pipeline), + test=dict( + type=dataset_type, + data_root=data_root, + reduce_zero_label=True, + img_dir='images/test2014', + ann_dir='annotations/test2014', + pipeline=test_pipeline)) diff --git a/configs/_base_/datasets/coco-stuff164k.py b/configs/_base_/datasets/coco-stuff164k.py new file mode 100644 index 0000000000..a6a38f2ac4 --- /dev/null +++ b/configs/_base_/datasets/coco-stuff164k.py @@ -0,0 +1,54 @@ +# dataset settings +dataset_type = 'COCOStuffDataset' +data_root = 'data/coco_stuff164k' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) +crop_size = (512, 512) +train_pipeline = [ + dict(type='LoadImageFromFile'), + dict(type='LoadAnnotations'), + dict(type='Resize', img_scale=(2048, 512), ratio_range=(0.5, 2.0)), + dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='RandomFlip', prob=0.5), + dict(type='PhotoMetricDistortion'), + dict(type='Normalize', **img_norm_cfg), + dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255), + dict(type='DefaultFormatBundle'), + dict(type='Collect', keys=['img', 'gt_semantic_seg']), +] +test_pipeline = [ + dict(type='LoadImageFromFile'), + dict( + type='MultiScaleFlipAug', + img_scale=(2048, 512), + # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75], + flip=False, + transforms=[ + dict(type='Resize', keep_ratio=True), + dict(type='RandomFlip'), + dict(type='Normalize', **img_norm_cfg), + dict(type='ImageToTensor', keys=['img']), + dict(type='Collect', keys=['img']), + ]) +] +data = dict( + samples_per_gpu=4, + workers_per_gpu=4, + train=dict( + type=dataset_type, + data_root=data_root, + img_dir='images/train2017', + ann_dir='annotations/train2017', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + data_root=data_root, + img_dir='images/val2017', + ann_dir='annotations/val2017', + pipeline=test_pipeline), + test=dict( + type=dataset_type, + data_root=data_root, + img_dir='images/val2017', + ann_dir='annotations/val2017', + pipeline=test_pipeline)) diff --git a/configs/_base_/schedules/schedule_320k.py b/configs/_base_/schedules/schedule_320k.py new file mode 100644 index 0000000000..a0b230626f --- /dev/null +++ b/configs/_base_/schedules/schedule_320k.py @@ -0,0 +1,9 @@ +# optimizer +optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005) +optimizer_config = dict() +# learning policy +lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False) +# runtime settings +runner = dict(type='IterBasedRunner', max_iters=320000) +checkpoint_config = dict(by_epoch=False, interval=32000) +evaluation = dict(interval=32000, metric='mIoU') diff --git a/configs/deeplabv3/README.md b/configs/deeplabv3/README.md index 06caa337b1..b40fe0dfa5 100644 --- a/configs/deeplabv3/README.md +++ b/configs/deeplabv3/README.md @@ -73,3 +73,23 @@ | --------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | DeepLabV3 | R-101-D8 | 480x480 | 40000 | - | - | 52.61 | 54.28 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context_59/deeplabv3_r101-d8_480x480_40k_pascal_context_59_20210416_110332-cb08ea46.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context_59/deeplabv3_r101-d8_480x480_40k_pascal_context_59-20210416_110332.log.json) | | DeepLabV3 | R-101-D8 | 480x480 | 80000 | - | - | 52.46 | 54.09 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context_59/deeplabv3_r101-d8_480x480_80k_pascal_context_59_20210416_113002-26303993.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context_59/deeplabv3_r101-d8_480x480_80k_pascal_context_59-20210416_113002.log.json) | + +### COCO-Stuff 10k + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| --------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| DeepLabV3 | R-50-D8 | 512x512 | 20000 | 9.6 | 10.8 | 34.66 | 36.08 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k/deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k_20210821_043025-b35f789d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k/deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k_20210821_043025.log.json) | +| DeepLabV3 | R-101-D8 | 512x512 | 20000 | 13.2 | 8.7 | 37.30 | 38.42 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k/deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k_20210821_043025-c49752cb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k/deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k_20210821_043025.log.json) | +| DeepLabV3 | R-50-D8 | 512x512 | 40000 | - | - | 35.73 | 37.09 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k/deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k_20210821_043305-dc76f3ff.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k/deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k_20210821_043305.log.json) | +| DeepLabV3 | R-101-D8 | 512x512 | 40000 | - | - | 37.81 | 38.80 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k/deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k_20210821_043305-636cb433.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k/deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k_20210821_043305.log.json) | + +### COCO-Stuff 164k + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| --------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| DeepLabV3 | R-50-D8 | 512x512 | 80000 | 9.6 | 10.8 | 39.38 | 40.03 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k/deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k_20210709_163016-88675c24.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k/deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k_20210709_163016.log.json) | +| DeepLabV3 | R-101-D8 | 512x512 | 80000 | 13.2 | 8.7 | 40.87 | 41.50 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k/deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k_20210709_201252-13600dc2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k/deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k_20210709_201252.log.json) | +| DeepLabV3 | R-50-D8 | 512x512 | 160000 | - | - | 41.09 | 41.69 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k/deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k_20210709_163016-49f2812b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k/deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k_20210709_163016.log.json) | +| DeepLabV3 | R-101-D8 | 512x512 | 160000 | - | - | 41.82 | 42.49 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k_20210709_155402-f035acfd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k_20210709_155402.log.json) | +| DeepLabV3 | R-50-D8 | 512x512 | 320000 | - | - | 41.37 | 42.22 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k_20210709_155403-51b21115.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k_20210709_155403.log.json) | +| DeepLabV3 | R-101-D8 | 512x512 | 320000 | - | - | 42.61 | 43.42 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k_20210709_155402-3cbca14d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k_20210709_155402.log.json) | diff --git a/configs/deeplabv3/deeplabv3.yml b/configs/deeplabv3/deeplabv3.yml index f82ea8e9a9..1d2b7caf1f 100644 --- a/configs/deeplabv3/deeplabv3.yml +++ b/configs/deeplabv3/deeplabv3.yml @@ -6,6 +6,8 @@ Collections: - Pascal VOC 2012 + Aug - Pascal Context - Pascal Context 59 + - COCO-Stuff 10k + - COCO-Stuff 164k Name: deeplabv3 Models: - Config: configs/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes.py @@ -550,3 +552,175 @@ Models: mIoU(ms+flip): 54.09 Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context_59/deeplabv3_r101-d8_480x480_80k_pascal_context_59_20210416_113002-26303993.pth +- Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k.py + In Collection: deeplabv3 + Metadata: + backbone: R-50-D8 + crop size: (512,512) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (512,512) + value: 92.59 + lr schd: 20000 + memory (GB): 9.6 + Name: deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k + Results: + Dataset: COCO-Stuff 10k + Metrics: + mIoU: 34.66 + mIoU(ms+flip): 36.08 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k/deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k_20210821_043025-b35f789d.pth +- Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k.py + In Collection: deeplabv3 + Metadata: + backbone: R-101-D8 + crop size: (512,512) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (512,512) + value: 114.94 + lr schd: 20000 + memory (GB): 13.2 + Name: deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k + Results: + Dataset: COCO-Stuff 10k + Metrics: + mIoU: 37.3 + mIoU(ms+flip): 38.42 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k/deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k_20210821_043025-c49752cb.pth +- Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k.py + In Collection: deeplabv3 + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 40000 + Name: deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k + Results: + Dataset: COCO-Stuff 10k + Metrics: + mIoU: 35.73 + mIoU(ms+flip): 37.09 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k/deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k_20210821_043305-dc76f3ff.pth +- Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k.py + In Collection: deeplabv3 + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 40000 + Name: deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k + Results: + Dataset: COCO-Stuff 10k + Metrics: + mIoU: 37.81 + mIoU(ms+flip): 38.8 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k/deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k_20210821_043305-636cb433.pth +- Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k.py + In Collection: deeplabv3 + Metadata: + backbone: R-50-D8 + crop size: (512,512) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (512,512) + value: 92.59 + lr schd: 80000 + memory (GB): 9.6 + Name: deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k + Results: + Dataset: COCO-Stuff 164k + Metrics: + mIoU: 39.38 + mIoU(ms+flip): 40.03 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k/deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k_20210709_163016-88675c24.pth +- Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k.py + In Collection: deeplabv3 + Metadata: + backbone: R-101-D8 + crop size: (512,512) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (512,512) + value: 114.94 + lr schd: 80000 + memory (GB): 13.2 + Name: deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k + Results: + Dataset: COCO-Stuff 164k + Metrics: + mIoU: 40.87 + mIoU(ms+flip): 41.5 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k/deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k_20210709_201252-13600dc2.pth +- Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k.py + In Collection: deeplabv3 + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 160000 + Name: deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k + Results: + Dataset: COCO-Stuff 164k + Metrics: + mIoU: 41.09 + mIoU(ms+flip): 41.69 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k/deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k_20210709_163016-49f2812b.pth +- Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k.py + In Collection: deeplabv3 + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 160000 + Name: deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k + Results: + Dataset: COCO-Stuff 164k + Metrics: + mIoU: 41.82 + mIoU(ms+flip): 42.49 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k_20210709_155402-f035acfd.pth +- Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k.py + In Collection: deeplabv3 + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 320000 + Name: deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k + Results: + Dataset: COCO-Stuff 164k + Metrics: + mIoU: 41.37 + mIoU(ms+flip): 42.22 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k_20210709_155403-51b21115.pth +- Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k.py + In Collection: deeplabv3 + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 320000 + Name: deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k + Results: + Dataset: COCO-Stuff 164k + Metrics: + mIoU: 42.61 + mIoU(ms+flip): 43.42 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k_20210709_155402-3cbca14d.pth diff --git a/configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k.py b/configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k.py new file mode 100644 index 0000000000..76b124248e --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k.py @@ -0,0 +1,2 @@ +_base_ = './deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k.py b/configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k.py new file mode 100644 index 0000000000..d476c66f4e --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k.py @@ -0,0 +1,2 @@ +_base_ = './deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k.py b/configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k.py new file mode 100644 index 0000000000..50669c864a --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k.py @@ -0,0 +1,2 @@ +_base_ = './deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k.py b/configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k.py new file mode 100644 index 0000000000..37d09cf994 --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k.py @@ -0,0 +1,2 @@ +_base_ = './deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k.py b/configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k.py new file mode 100644 index 0000000000..a0eb3ddfed --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k.py @@ -0,0 +1,2 @@ +_base_ = './deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k.py b/configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k.py new file mode 100644 index 0000000000..22d647ecbe --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k.py @@ -0,0 +1,7 @@ +_base_ = [ + '../_base_/models/deeplabv3_r50-d8.py', + '../_base_/datasets/coco-stuff164k.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_160k.py' +] +model = dict( + decode_head=dict(num_classes=171), auxiliary_head=dict(num_classes=171)) diff --git a/configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k.py b/configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k.py new file mode 100644 index 0000000000..45e0b56146 --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k.py @@ -0,0 +1,7 @@ +_base_ = [ + '../_base_/models/deeplabv3_r50-d8.py', + '../_base_/datasets/coco-stuff10k.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_20k.py' +] +model = dict( + decode_head=dict(num_classes=171), auxiliary_head=dict(num_classes=171)) diff --git a/configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k.py b/configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k.py new file mode 100644 index 0000000000..3e43234bb6 --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k.py @@ -0,0 +1,7 @@ +_base_ = [ + '../_base_/models/deeplabv3_r50-d8.py', + '../_base_/datasets/coco-stuff164k.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_320k.py' +] +model = dict( + decode_head=dict(num_classes=171), auxiliary_head=dict(num_classes=171)) diff --git a/configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k.py b/configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k.py new file mode 100644 index 0000000000..f02772ab04 --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k.py @@ -0,0 +1,7 @@ +_base_ = [ + '../_base_/models/deeplabv3_r50-d8.py', + '../_base_/datasets/coco-stuff10k.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_40k.py' +] +model = dict( + decode_head=dict(num_classes=171), auxiliary_head=dict(num_classes=171)) diff --git a/configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k.py b/configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k.py new file mode 100644 index 0000000000..8697e92849 --- /dev/null +++ b/configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k.py @@ -0,0 +1,7 @@ +_base_ = [ + '../_base_/models/deeplabv3_r50-d8.py', + '../_base_/datasets/coco-stuff164k.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_80k.py' +] +model = dict( + decode_head=dict(num_classes=171), auxiliary_head=dict(num_classes=171)) diff --git a/configs/pspnet/README.md b/configs/pspnet/README.md index 14f6429d81..5bf8da3646 100644 --- a/configs/pspnet/README.md +++ b/configs/pspnet/README.md @@ -83,3 +83,23 @@ We support evaluation results on these two datasets using models above trained o |PSPNet|R-101b-D8|Cityscapes Training set |Dark Zurich |15.54|[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101b-d8_512x1024_80k_dark.py)| [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes_20201226_170012-3a4d38ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes-20201226_170012.log.json) | |PSPNet|R-101b-D8|Cityscapes Training set |Nighttime Driving|22.25|[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101b-d8_512x1024_80k_night_driving.py)| [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes_20201226_170012-3a4d38ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes-20201226_170012.log.json) | |PSPNet|R-101b-D8|Cityscapes Training set |Cityscapes Validation set|79.69|[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes_20201226_170012-3a4d38ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes-20201226_170012.log.json) | + +### COCO-Stuff 10k + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| --------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| PSPNet | R-50-D8 | 512x512 | 20000 | 9.6 | 20.5 | 35.69 | 36.62 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k_20210820_203258-b88df27f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k_20210820_203258.log.json) | +| PSPNet | R-101-D8 | 512x512 | 20000 | 13.2 | 11.1 | 37.26 | 38.52 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k_20210820_232135-76aae482.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k_20210820_232135.log.json) | +| PSPNet | R-50-D8 | 512x512 | 40000 | - | - | 36.33 | 37.24 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k_20210821_030857-92e2902b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k_20210821_030857.log.json) | +| PSPNet | R-101-D8 | 512x512 | 40000 | - | - | 37.76 | 38.86 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k_20210821_014022-831aec95.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k_20210821_014022.log.json) | + +### COCO-Stuff 164k + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| --------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| PSPNet | R-50-D8 | 512x512 | 80000 | 9.6 | 20.5 | 38.80 | 39.19 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k_20210707_152034-0e41b2db.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k_20210707_152034.log.json) | +| PSPNet | R-101-D8 | 512x512 | 80000 | 13.2 | 11.1 | 40.34 | 40.79 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k_20210707_152034-7eb41789.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k_20210707_152034.log.json) | +| PSPNet | R-50-D8 | 512x512 | 160000 | - | - | 39.64 | 39.97 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k_20210707_152004-51276a57.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k_20210707_152004.log.json) | +| PSPNet | R-101-D8 | 512x512 | 160000 | - | - | 41.28 | 41.66 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k_20210707_152004-4af9621b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k_20210707_152004.log.json) | +| PSPNet | R-50-D8 | 512x512 | 320000 | - | - | 40.53 | 40.75 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004-be9610cc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004.log.json) | +| PSPNet | R-101-D8 | 512x512 | 320000 | - | - | 41.95 | 42.42 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004-72220c60.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004.log.json) | diff --git a/configs/pspnet/pspnet.yml b/configs/pspnet/pspnet.yml index 9bc6ae3a62..050751e1d0 100644 --- a/configs/pspnet/pspnet.yml +++ b/configs/pspnet/pspnet.yml @@ -7,6 +7,8 @@ Collections: - Pascal Context - Pascal Context 59 - Dark Zurich and Nighttime Driving + - COCO-Stuff 10k + - COCO-Stuff 164k Name: pspnet Models: - Config: configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py @@ -537,3 +539,175 @@ Models: mIoU(ms+flip): 53.99 Task: Semantic Segmentation Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context_59/pspnet_r101-d8_480x480_80k_pascal_context_59_20210416_114418-fa6caaa2.pth +- Config: configs/pspnet/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k.py + In Collection: pspnet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (512,512) + value: 48.78 + lr schd: 20000 + memory (GB): 9.6 + Name: pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k + Results: + Dataset: COCO-Stuff 10k + Metrics: + mIoU: 35.69 + mIoU(ms+flip): 36.62 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k_20210820_203258-b88df27f.pth +- Config: configs/pspnet/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k.py + In Collection: pspnet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (512,512) + value: 90.09 + lr schd: 20000 + memory (GB): 13.2 + Name: pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k + Results: + Dataset: COCO-Stuff 10k + Metrics: + mIoU: 37.26 + mIoU(ms+flip): 38.52 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k_20210820_232135-76aae482.pth +- Config: configs/pspnet/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k.py + In Collection: pspnet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 40000 + Name: pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k + Results: + Dataset: COCO-Stuff 10k + Metrics: + mIoU: 36.33 + mIoU(ms+flip): 37.24 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k_20210821_030857-92e2902b.pth +- Config: configs/pspnet/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k.py + In Collection: pspnet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 40000 + Name: pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k + Results: + Dataset: COCO-Stuff 10k + Metrics: + mIoU: 37.76 + mIoU(ms+flip): 38.86 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k_20210821_014022-831aec95.pth +- Config: configs/pspnet/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k.py + In Collection: pspnet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (512,512) + value: 48.78 + lr schd: 80000 + memory (GB): 9.6 + Name: pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k + Results: + Dataset: COCO-Stuff 164k + Metrics: + mIoU: 38.8 + mIoU(ms+flip): 39.19 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k_20210707_152034-0e41b2db.pth +- Config: configs/pspnet/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k.py + In Collection: pspnet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (512,512) + value: 90.09 + lr schd: 80000 + memory (GB): 13.2 + Name: pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k + Results: + Dataset: COCO-Stuff 164k + Metrics: + mIoU: 40.34 + mIoU(ms+flip): 40.79 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k_20210707_152034-7eb41789.pth +- Config: configs/pspnet/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k.py + In Collection: pspnet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 160000 + Name: pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k + Results: + Dataset: COCO-Stuff 164k + Metrics: + mIoU: 39.64 + mIoU(ms+flip): 39.97 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k_20210707_152004-51276a57.pth +- Config: configs/pspnet/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k.py + In Collection: pspnet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 160000 + Name: pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k + Results: + Dataset: COCO-Stuff 164k + Metrics: + mIoU: 41.28 + mIoU(ms+flip): 41.66 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k_20210707_152004-4af9621b.pth +- Config: configs/pspnet/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k.py + In Collection: pspnet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 320000 + Name: pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k + Results: + Dataset: COCO-Stuff 164k + Metrics: + mIoU: 40.53 + mIoU(ms+flip): 40.75 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004-be9610cc.pth +- Config: configs/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k.py + In Collection: pspnet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 320000 + Name: pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k + Results: + Dataset: COCO-Stuff 164k + Metrics: + mIoU: 41.95 + mIoU(ms+flip): 42.42 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004-72220c60.pth diff --git a/configs/pspnet/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k.py b/configs/pspnet/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k.py new file mode 100644 index 0000000000..7ae2061c51 --- /dev/null +++ b/configs/pspnet/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k.py @@ -0,0 +1,2 @@ +_base_ = './pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/pspnet/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k.py b/configs/pspnet/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k.py new file mode 100644 index 0000000000..a448496b13 --- /dev/null +++ b/configs/pspnet/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k.py @@ -0,0 +1,2 @@ +_base_ = './pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k.py b/configs/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k.py new file mode 100644 index 0000000000..90512b8754 --- /dev/null +++ b/configs/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k.py @@ -0,0 +1,2 @@ +_base_ = './pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/pspnet/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k.py b/configs/pspnet/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k.py new file mode 100644 index 0000000000..36aa44385f --- /dev/null +++ b/configs/pspnet/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k.py @@ -0,0 +1,2 @@ +_base_ = './pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/pspnet/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k.py b/configs/pspnet/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k.py new file mode 100644 index 0000000000..fdddec4658 --- /dev/null +++ b/configs/pspnet/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k.py @@ -0,0 +1,2 @@ +_base_ = './pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k.py' +model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101)) diff --git a/configs/pspnet/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k.py b/configs/pspnet/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k.py new file mode 100644 index 0000000000..e1f8887a2b --- /dev/null +++ b/configs/pspnet/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k.py @@ -0,0 +1,7 @@ +_base_ = [ + '../_base_/models/pspnet_r50-d8.py', + '../_base_/datasets/coco-stuff164k.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_160k.py' +] +model = dict( + decode_head=dict(num_classes=171), auxiliary_head=dict(num_classes=171)) diff --git a/configs/pspnet/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k.py b/configs/pspnet/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k.py new file mode 100644 index 0000000000..6cd94f9a04 --- /dev/null +++ b/configs/pspnet/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k.py @@ -0,0 +1,6 @@ +_base_ = [ + '../_base_/models/pspnet_r50-d8.py', '../_base_/datasets/coco-stuff10k.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_20k.py' +] +model = dict( + decode_head=dict(num_classes=171), auxiliary_head=dict(num_classes=171)) diff --git a/configs/pspnet/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k.py b/configs/pspnet/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k.py new file mode 100644 index 0000000000..32b3281d0c --- /dev/null +++ b/configs/pspnet/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k.py @@ -0,0 +1,7 @@ +_base_ = [ + '../_base_/models/pspnet_r50-d8.py', + '../_base_/datasets/coco-stuff164k.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_320k.py' +] +model = dict( + decode_head=dict(num_classes=171), auxiliary_head=dict(num_classes=171)) diff --git a/configs/pspnet/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k.py b/configs/pspnet/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k.py new file mode 100644 index 0000000000..c792bb4e76 --- /dev/null +++ b/configs/pspnet/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k.py @@ -0,0 +1,6 @@ +_base_ = [ + '../_base_/models/pspnet_r50-d8.py', '../_base_/datasets/coco-stuff10k.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py' +] +model = dict( + decode_head=dict(num_classes=171), auxiliary_head=dict(num_classes=171)) diff --git a/configs/pspnet/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k.py b/configs/pspnet/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k.py new file mode 100644 index 0000000000..7f7bc64001 --- /dev/null +++ b/configs/pspnet/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k.py @@ -0,0 +1,7 @@ +_base_ = [ + '../_base_/models/pspnet_r50-d8.py', + '../_base_/datasets/coco-stuff164k.py', '../_base_/default_runtime.py', + '../_base_/schedules/schedule_80k.py' +] +model = dict( + decode_head=dict(num_classes=171), auxiliary_head=dict(num_classes=171)) diff --git a/docs/dataset_prepare.md b/docs/dataset_prepare.md index 65c7e0a8f9..691e63f49e 100644 --- a/docs/dataset_prepare.md +++ b/docs/dataset_prepare.md @@ -41,6 +41,24 @@ mmsegmentation │ │ │ ├── images │ │ │ │ ├── training │ │ │ │ ├── validation +│ ├── coco_stuff10k +│ │ ├── images +│ │ │ ├── train2014 +│ │ │ ├── test2014 +│ │ ├── annotations +│ │ │ ├── train2014 +│ │ │ ├── test2014 +│ │ ├── imagesLists +│ │ │ ├── train.txt +│ │ │ ├── test.txt +│ │ │ ├── all.txt +│ ├── coco_stuff164k +│ │ ├── images +│ │ │ ├── train2017 +│ │ │ ├── val2017 +│ │ ├── annotations +│ │ │ ├── train2017 +│ │ │ ├── val2017 │ ├── CHASE_DB1 │ │ ├── images │ │ │ ├── training @@ -136,6 +154,50 @@ If you would like to use Pascal Context dataset, please install [Detail](https:/ python tools/convert_datasets/pascal_context.py data/VOCdevkit data/VOCdevkit/VOC2010/trainval_merged.json ``` +### COCO Stuff 10k + +The data could be downloaded [here](http://calvin.inf.ed.ac.uk/wp-content/uploads/data/cocostuffdataset/cocostuff-10k-v1.1.zip) by wget. + +For COCO Stuff 10k dataset, please run the following commands to download and convert the dataset. + +```shell +# download +mkdir coco_stuff10k && cd coco_stuff10k +wget http://calvin.inf.ed.ac.uk/wp-content/uploads/data/cocostuffdataset/cocostuff-10k-v1.1.zip + +# unzip +unzip cocostuff-10k-v1.1.zip + +# --nproc means 8 process for conversion, which could be omitted as well. +python tools/convert_datasets/coco_stuff10k.py /path/to/coco_stuff10k --nproc 8 +``` + +By convention, mask labels in `/path/to/coco_stuff164k/annotations/*2014/*_labelTrainIds.png` are used for COCO Stuff 10k training and testing. + +### COCO Stuff 164k + +For COCO Stuff 164k dataset, please run the following commands to download and convert the augmented dataset. + +```shell +# download +mkdir coco_stuff164k && cd coco_stuff164k +wget http://images.cocodataset.org/zips/train2017.zip +wget http://images.cocodataset.org/zips/val2017.zip +wget http://calvin.inf.ed.ac.uk/wp-content/uploads/data/cocostuffdataset/stuffthingmaps_trainval2017.zip + +# unzip +unzip train2017.zip -d images/ +unzip val2017.zip -d images/ +unzip stuffthingmaps_trainval2017.zip -d annotations/ + +# --nproc means 8 process for conversion, which could be omitted as well. +python tools/convert_datasets/coco_stuff164k.py /path/to/coco_stuff164k --nproc 8 +``` + +By convention, mask labels in `/path/to/coco_stuff164k/annotations/*2017/*_labelTrainIds.png` are used for COCO Stuff 164k training and testing. + +The details of this dataset could be found at [here](https://github.com/nightrome/cocostuff#downloads). + ### CHASE DB1 The training and validation set of CHASE DB1 could be download from [here](https://staffnet.kingston.ac.uk/~ku15565/CHASE_DB1/assets/CHASEDB1.zip). diff --git a/mmseg/datasets/__init__.py b/mmseg/datasets/__init__.py index a54f21b8cb..4b8e124cf8 100644 --- a/mmseg/datasets/__init__.py +++ b/mmseg/datasets/__init__.py @@ -3,6 +3,7 @@ from .builder import DATASETS, PIPELINES, build_dataloader, build_dataset from .chase_db1 import ChaseDB1Dataset from .cityscapes import CityscapesDataset +from .coco_stuff import COCOStuffDataset from .custom import CustomDataset from .dark_zurich import DarkZurichDataset from .dataset_wrappers import ConcatDataset, RepeatDataset @@ -18,5 +19,6 @@ 'DATASETS', 'build_dataset', 'PIPELINES', 'CityscapesDataset', 'PascalVOCDataset', 'ADE20KDataset', 'PascalContextDataset', 'PascalContextDataset59', 'ChaseDB1Dataset', 'DRIVEDataset', 'HRFDataset', - 'STAREDataset', 'DarkZurichDataset', 'NightDrivingDataset' + 'STAREDataset', 'DarkZurichDataset', 'NightDrivingDataset', + 'COCOStuffDataset' ] diff --git a/mmseg/datasets/coco_stuff.py b/mmseg/datasets/coco_stuff.py new file mode 100644 index 0000000000..546a014284 --- /dev/null +++ b/mmseg/datasets/coco_stuff.py @@ -0,0 +1,93 @@ +from .builder import DATASETS +from .custom import CustomDataset + + +@DATASETS.register_module() +class COCOStuffDataset(CustomDataset): + """COCO-Stuff dataset. + + In segmentation map annotation for COCO-Stuff, Train-IDs of the 10k version + are from 1 to 171, where 0 is the ignore index, and Train-ID of COCO Stuff + 164k is from 0 to 170, where 255 is the ignore index. So, they are all 171 + semantic categories. ``reduce_zero_label`` is set to True and False for the + 10k and 164k versions, respectively. The ``img_suffix`` is fixed to '.jpg', + and ``seg_map_suffix`` is fixed to '.png'. + """ + CLASSES = ( + 'person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', + 'truck', 'boat', 'traffic light', 'fire hydrant', 'stop sign', + 'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', + 'cow', 'elephant', 'bear', 'zebra', 'giraffe', 'backpack', 'umbrella', + 'handbag', 'tie', 'suitcase', 'frisbee', 'skis', 'snowboard', + 'sports ball', 'kite', 'baseball bat', 'baseball glove', 'skateboard', + 'surfboard', 'tennis racket', 'bottle', 'wine glass', 'cup', 'fork', + 'knife', 'spoon', 'bowl', 'banana', 'apple', 'sandwich', 'orange', + 'broccoli', 'carrot', 'hot dog', 'pizza', 'donut', 'cake', 'chair', + 'couch', 'potted plant', 'bed', 'dining table', 'toilet', 'tv', + 'laptop', 'mouse', 'remote', 'keyboard', 'cell phone', 'microwave', + 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', 'vase', + 'scissors', 'teddy bear', 'hair drier', 'toothbrush', 'banner', + 'blanket', 'branch', 'bridge', 'building-other', 'bush', 'cabinet', + 'cage', 'cardboard', 'carpet', 'ceiling-other', 'ceiling-tile', + 'cloth', 'clothes', 'clouds', 'counter', 'cupboard', 'curtain', + 'desk-stuff', 'dirt', 'door-stuff', 'fence', 'floor-marble', + 'floor-other', 'floor-stone', 'floor-tile', 'floor-wood', + 'flower', 'fog', 'food-other', 'fruit', 'furniture-other', 'grass', + 'gravel', 'ground-other', 'hill', 'house', 'leaves', 'light', 'mat', + 'metal', 'mirror-stuff', 'moss', 'mountain', 'mud', 'napkin', 'net', + 'paper', 'pavement', 'pillow', 'plant-other', 'plastic', 'platform', + 'playingfield', 'railing', 'railroad', 'river', 'road', 'rock', 'roof', + 'rug', 'salad', 'sand', 'sea', 'shelf', 'sky-other', 'skyscraper', + 'snow', 'solid-other', 'stairs', 'stone', 'straw', 'structural-other', + 'table', 'tent', 'textile-other', 'towel', 'tree', 'vegetable', + 'wall-brick', 'wall-concrete', 'wall-other', 'wall-panel', + 'wall-stone', 'wall-tile', 'wall-wood', 'water-other', 'waterdrops', + 'window-blind', 'window-other', 'wood') + + PALETTE = [[0, 192, 64], [0, 192, 64], [0, 64, 96], [128, 192, 192], + [0, 64, 64], [0, 192, 224], [0, 192, 192], [128, 192, 64], + [0, 192, 96], [128, 192, 64], [128, 32, 192], [0, 0, 224], + [0, 0, 64], [0, 160, 192], [128, 0, 96], [128, 0, 192], + [0, 32, 192], [128, 128, 224], [0, 0, 192], [128, 160, 192], + [128, 128, 0], [128, 0, 32], [128, 32, 0], [128, 0, 128], + [64, 128, 32], [0, 160, 0], [0, 0, 0], [192, 128, 160], + [0, 32, 0], [0, 128, 128], [64, 128, 160], [128, 160, 0], + [0, 128, 0], [192, 128, 32], [128, 96, 128], [0, 0, 128], + [64, 0, 32], [0, 224, 128], [128, 0, 0], [192, 0, 160], + [0, 96, 128], [128, 128, 128], [64, 0, 160], [128, 224, 128], + [128, 128, 64], [192, 0, 32], [128, 96, 0], [128, 0, 192], + [0, 128, 32], [64, 224, 0], [0, 0, 64], [128, 128, 160], + [64, 96, 0], [0, 128, 192], [0, 128, 160], [192, 224, 0], + [0, 128, 64], [128, 128, 32], [192, 32, 128], [0, 64, 192], + [0, 0, 32], [64, 160, 128], [128, 64, 64], [128, 0, 160], + [64, 32, 128], [128, 192, 192], [0, 0, 160], [192, 160, 128], + [128, 192, 0], [128, 0, 96], [192, 32, 0], [128, 64, 128], + [64, 128, 96], [64, 160, 0], [0, 64, 0], [192, 128, 224], + [64, 32, 0], [0, 192, 128], [64, 128, 224], [192, 160, 0], + [0, 192, 0], [192, 128, 96], [192, 96, 128], [0, 64, 128], + [64, 0, 96], [64, 224, 128], [128, 64, 0], [192, 0, 224], + [64, 96, 128], [128, 192, 128], [64, 0, 224], [192, 224, 128], + [128, 192, 64], [192, 0, 96], [192, 96, 0], [128, 64, 192], + [0, 128, 96], [0, 224, 0], [64, 64, 64], [128, 128, 224], + [0, 96, 0], [64, 192, 192], [0, 128, 224], [128, 224, 0], + [64, 192, 64], [128, 128, 96], [128, 32, 128], [64, 0, 192], + [0, 64, 96], [0, 160, 128], [192, 0, 64], [128, 64, 224], + [0, 32, 128], [192, 128, 192], [0, 64, 224], [128, 160, 128], + [192, 128, 0], [128, 64, 32], [128, 32, 64], [192, 0, 128], + [64, 192, 32], [0, 160, 64], [64, 0, 0], [192, 192, 160], + [0, 32, 64], [64, 128, 128], [64, 192, 160], [128, 160, 64], + [64, 128, 0], [192, 192, 32], [128, 96, 192], [64, 0, 128], + [64, 64, 32], [0, 224, 192], [192, 0, 0], [192, 64, 160], + [0, 96, 192], [192, 128, 128], [64, 64, 160], [128, 224, 192], + [192, 128, 64], [192, 64, 32], [128, 96, 64], [192, 0, 192], + [0, 192, 32], [64, 224, 64], [64, 0, 64], [128, 192, 160], + [64, 96, 64], [64, 128, 192], [0, 192, 160], [192, 224, 64], + [64, 128, 64], [128, 192, 32], [192, 32, 192], [64, 64, 192], + [0, 64, 32], [64, 160, 192], [192, 64, 64], [128, 64, 160], + [64, 32, 192], [192, 192, 192], [0, 64, 160], [192, 160, 192], + [192, 192, 0], [128, 64, 96], [192, 32, 64], [192, 64, 128], + [64, 192, 96], [64, 160, 64], [64, 64, 0]] + + def __init__(self, **kwargs): + super(COCOStuffDataset, self).__init__( + img_suffix='.jpg', seg_map_suffix='_labelTrainIds.png', **kwargs) diff --git a/tools/convert_datasets/coco_stuff10k.py b/tools/convert_datasets/coco_stuff10k.py new file mode 100644 index 0000000000..4f0fd53060 --- /dev/null +++ b/tools/convert_datasets/coco_stuff10k.py @@ -0,0 +1,306 @@ +import argparse +import os.path as osp +import shutil +from functools import partial + +import mmcv +import numpy as np +from PIL import Image +from scipy.io import loadmat + +COCO_LEN = 10000 + +clsID_to_trID = { + 0: 0, + 1: 1, + 2: 2, + 3: 3, + 4: 4, + 5: 5, + 6: 6, + 7: 7, + 8: 8, + 9: 9, + 10: 10, + 11: 11, + 13: 12, + 14: 13, + 15: 14, + 16: 15, + 17: 16, + 18: 17, + 19: 18, + 20: 19, + 21: 20, + 22: 21, + 23: 22, + 24: 23, + 25: 24, + 27: 25, + 28: 26, + 31: 27, + 32: 28, + 33: 29, + 34: 30, + 35: 31, + 36: 32, + 37: 33, + 38: 34, + 39: 35, + 40: 36, + 41: 37, + 42: 38, + 43: 39, + 44: 40, + 46: 41, + 47: 42, + 48: 43, + 49: 44, + 50: 45, + 51: 46, + 52: 47, + 53: 48, + 54: 49, + 55: 50, + 56: 51, + 57: 52, + 58: 53, + 59: 54, + 60: 55, + 61: 56, + 62: 57, + 63: 58, + 64: 59, + 65: 60, + 67: 61, + 70: 62, + 72: 63, + 73: 64, + 74: 65, + 75: 66, + 76: 67, + 77: 68, + 78: 69, + 79: 70, + 80: 71, + 81: 72, + 82: 73, + 84: 74, + 85: 75, + 86: 76, + 87: 77, + 88: 78, + 89: 79, + 90: 80, + 92: 81, + 93: 82, + 94: 83, + 95: 84, + 96: 85, + 97: 86, + 98: 87, + 99: 88, + 100: 89, + 101: 90, + 102: 91, + 103: 92, + 104: 93, + 105: 94, + 106: 95, + 107: 96, + 108: 97, + 109: 98, + 110: 99, + 111: 100, + 112: 101, + 113: 102, + 114: 103, + 115: 104, + 116: 105, + 117: 106, + 118: 107, + 119: 108, + 120: 109, + 121: 110, + 122: 111, + 123: 112, + 124: 113, + 125: 114, + 126: 115, + 127: 116, + 128: 117, + 129: 118, + 130: 119, + 131: 120, + 132: 121, + 133: 122, + 134: 123, + 135: 124, + 136: 125, + 137: 126, + 138: 127, + 139: 128, + 140: 129, + 141: 130, + 142: 131, + 143: 132, + 144: 133, + 145: 134, + 146: 135, + 147: 136, + 148: 137, + 149: 138, + 150: 139, + 151: 140, + 152: 141, + 153: 142, + 154: 143, + 155: 144, + 156: 145, + 157: 146, + 158: 147, + 159: 148, + 160: 149, + 161: 150, + 162: 151, + 163: 152, + 164: 153, + 165: 154, + 166: 155, + 167: 156, + 168: 157, + 169: 158, + 170: 159, + 171: 160, + 172: 161, + 173: 162, + 174: 163, + 175: 164, + 176: 165, + 177: 166, + 178: 167, + 179: 168, + 180: 169, + 181: 170, + 182: 171 +} + + +def convert_to_trainID(tuple_path, in_img_dir, in_ann_dir, out_img_dir, + out_mask_dir, is_train): + imgpath, maskpath = tuple_path + shutil.copyfile( + osp.join(in_img_dir, imgpath), + osp.join(out_img_dir, 'train2014', imgpath) if is_train else osp.join( + out_img_dir, 'test2014', imgpath)) + annotate = loadmat(osp.join(in_ann_dir, maskpath)) + mask = annotate['S'].astype(np.uint8) + mask_copy = mask.copy() + for clsID, trID in clsID_to_trID.items(): + mask_copy[mask == clsID] = trID + seg_filename = osp.join(out_mask_dir, 'train2014', + maskpath.split('.')[0] + + '_labelTrainIds.png') if is_train else osp.join( + out_mask_dir, 'test2014', + maskpath.split('.')[0] + '_labelTrainIds.png') + Image.fromarray(mask_copy).save(seg_filename, 'PNG') + + +def generate_coco_list(folder): + train_list = osp.join(folder, 'imageLists', 'train.txt') + test_list = osp.join(folder, 'imageLists', 'test.txt') + train_paths = [] + test_paths = [] + + with open(train_list) as f: + for filename in f: + basename = filename.strip() + imgpath = basename + '.jpg' + maskpath = basename + '.mat' + train_paths.append((imgpath, maskpath)) + + with open(test_list) as f: + for filename in f: + basename = filename.strip() + imgpath = basename + '.jpg' + maskpath = basename + '.mat' + test_paths.append((imgpath, maskpath)) + + return train_paths, test_paths + + +def parse_args(): + parser = argparse.ArgumentParser( + description=\ + 'Convert COCO Stuff 10k annotations to mmsegmentation format') # noqa + parser.add_argument('coco_path', help='coco stuff path') + parser.add_argument('-o', '--out_dir', help='output path') + parser.add_argument( + '--nproc', default=16, type=int, help='number of process') + args = parser.parse_args() + return args + + +def main(): + args = parse_args() + coco_path = args.coco_path + nproc = args.nproc + + out_dir = args.out_dir or coco_path + out_img_dir = osp.join(out_dir, 'images') + out_mask_dir = osp.join(out_dir, 'annotations') + + mmcv.mkdir_or_exist(osp.join(out_img_dir, 'train2014')) + mmcv.mkdir_or_exist(osp.join(out_img_dir, 'test2014')) + mmcv.mkdir_or_exist(osp.join(out_mask_dir, 'train2014')) + mmcv.mkdir_or_exist(osp.join(out_mask_dir, 'test2014')) + + train_list, test_list = generate_coco_list(coco_path) + assert (len(train_list) + + len(test_list)) == COCO_LEN, 'Wrong length of list {} & {}'.format( + len(train_list), len(test_list)) + + if args.nproc > 1: + mmcv.track_parallel_progress( + partial( + convert_to_trainID, + in_img_dir=osp.join(coco_path, 'images'), + in_ann_dir=osp.join(coco_path, 'annotations'), + out_img_dir=out_img_dir, + out_mask_dir=out_mask_dir, + is_train=True), + train_list, + nproc=nproc) + mmcv.track_parallel_progress( + partial( + convert_to_trainID, + in_img_dir=osp.join(coco_path, 'images'), + in_ann_dir=osp.join(coco_path, 'annotations'), + out_img_dir=out_img_dir, + out_mask_dir=out_mask_dir, + is_train=False), + test_list, + nproc=nproc) + else: + mmcv.track_progress( + partial( + convert_to_trainID, + in_img_dir=osp.join(coco_path, 'images'), + in_ann_dir=osp.join(coco_path, 'annotations'), + out_img_dir=out_img_dir, + out_mask_dir=out_mask_dir, + is_train=True), train_list) + mmcv.track_progress( + partial( + convert_to_trainID, + in_img_dir=osp.join(coco_path, 'images'), + in_ann_dir=osp.join(coco_path, 'annotations'), + out_img_dir=out_img_dir, + out_mask_dir=out_mask_dir, + is_train=False), test_list) + + print('Done!') + + +if __name__ == '__main__': + main() diff --git a/tools/convert_datasets/coco_stuff164k.py b/tools/convert_datasets/coco_stuff164k.py new file mode 100644 index 0000000000..4533bf53b6 --- /dev/null +++ b/tools/convert_datasets/coco_stuff164k.py @@ -0,0 +1,263 @@ +import argparse +import os.path as osp +import shutil +from functools import partial +from glob import glob + +import mmcv +import numpy as np +from PIL import Image + +COCO_LEN = 123287 + +clsID_to_trID = { + 0: 0, + 1: 1, + 2: 2, + 3: 3, + 4: 4, + 5: 5, + 6: 6, + 7: 7, + 8: 8, + 9: 9, + 10: 10, + 12: 11, + 13: 12, + 14: 13, + 15: 14, + 16: 15, + 17: 16, + 18: 17, + 19: 18, + 20: 19, + 21: 20, + 22: 21, + 23: 22, + 24: 23, + 26: 24, + 27: 25, + 30: 26, + 31: 27, + 32: 28, + 33: 29, + 34: 30, + 35: 31, + 36: 32, + 37: 33, + 38: 34, + 39: 35, + 40: 36, + 41: 37, + 42: 38, + 43: 39, + 45: 40, + 46: 41, + 47: 42, + 48: 43, + 49: 44, + 50: 45, + 51: 46, + 52: 47, + 53: 48, + 54: 49, + 55: 50, + 56: 51, + 57: 52, + 58: 53, + 59: 54, + 60: 55, + 61: 56, + 62: 57, + 63: 58, + 64: 59, + 66: 60, + 69: 61, + 71: 62, + 72: 63, + 73: 64, + 74: 65, + 75: 66, + 76: 67, + 77: 68, + 78: 69, + 79: 70, + 80: 71, + 81: 72, + 83: 73, + 84: 74, + 85: 75, + 86: 76, + 87: 77, + 88: 78, + 89: 79, + 91: 80, + 92: 81, + 93: 82, + 94: 83, + 95: 84, + 96: 85, + 97: 86, + 98: 87, + 99: 88, + 100: 89, + 101: 90, + 102: 91, + 103: 92, + 104: 93, + 105: 94, + 106: 95, + 107: 96, + 108: 97, + 109: 98, + 110: 99, + 111: 100, + 112: 101, + 113: 102, + 114: 103, + 115: 104, + 116: 105, + 117: 106, + 118: 107, + 119: 108, + 120: 109, + 121: 110, + 122: 111, + 123: 112, + 124: 113, + 125: 114, + 126: 115, + 127: 116, + 128: 117, + 129: 118, + 130: 119, + 131: 120, + 132: 121, + 133: 122, + 134: 123, + 135: 124, + 136: 125, + 137: 126, + 138: 127, + 139: 128, + 140: 129, + 141: 130, + 142: 131, + 143: 132, + 144: 133, + 145: 134, + 146: 135, + 147: 136, + 148: 137, + 149: 138, + 150: 139, + 151: 140, + 152: 141, + 153: 142, + 154: 143, + 155: 144, + 156: 145, + 157: 146, + 158: 147, + 159: 148, + 160: 149, + 161: 150, + 162: 151, + 163: 152, + 164: 153, + 165: 154, + 166: 155, + 167: 156, + 168: 157, + 169: 158, + 170: 159, + 171: 160, + 172: 161, + 173: 162, + 174: 163, + 175: 164, + 176: 165, + 177: 166, + 178: 167, + 179: 168, + 180: 169, + 181: 170, + 255: 255 +} + + +def convert_to_trainID(maskpath, out_mask_dir, is_train): + mask = np.array(Image.open(maskpath)) + mask_copy = mask.copy() + for clsID, trID in clsID_to_trID.items(): + mask_copy[mask == clsID] = trID + seg_filename = osp.join( + out_mask_dir, 'train2017', + osp.basename(maskpath).split('.')[0] + + '_labelTrainIds.png') if is_train else osp.join( + out_mask_dir, 'val2017', + osp.basename(maskpath).split('.')[0] + '_labelTrainIds.png') + Image.fromarray(mask_copy).save(seg_filename, 'PNG') + + +def parse_args(): + parser = argparse.ArgumentParser( + description=\ + 'Convert COCO Stuff 164k annotations to mmsegmentation format') # noqa + parser.add_argument('coco_path', help='coco stuff path') + parser.add_argument('-o', '--out_dir', help='output path') + parser.add_argument( + '--nproc', default=16, type=int, help='number of process') + args = parser.parse_args() + return args + + +def main(): + args = parse_args() + coco_path = args.coco_path + nproc = args.nproc + + out_dir = args.out_dir or coco_path + out_img_dir = osp.join(out_dir, 'images') + out_mask_dir = osp.join(out_dir, 'annotations') + + mmcv.mkdir_or_exist(osp.join(out_mask_dir, 'train2017')) + mmcv.mkdir_or_exist(osp.join(out_mask_dir, 'val2017')) + + if out_dir != coco_path: + shutil.copytree(osp.join(coco_path, 'images'), out_img_dir) + + train_list = glob(osp.join(coco_path, 'annotations', 'train2017', '*.png')) + train_list = [file for file in train_list if '_labelTrainIds' not in file] + test_list = glob(osp.join(coco_path, 'annotations', 'val2017', '*.png')) + test_list = [file for file in test_list if '_labelTrainIds' not in file] + assert (len(train_list) + + len(test_list)) == COCO_LEN, 'Wrong length of list {} & {}'.format( + len(train_list), len(test_list)) + + if args.nproc > 1: + mmcv.track_parallel_progress( + partial( + convert_to_trainID, out_mask_dir=out_mask_dir, is_train=True), + train_list, + nproc=nproc) + mmcv.track_parallel_progress( + partial( + convert_to_trainID, out_mask_dir=out_mask_dir, is_train=False), + test_list, + nproc=nproc) + else: + mmcv.track_progress( + partial( + convert_to_trainID, out_mask_dir=out_mask_dir, is_train=True), + train_list) + mmcv.track_progress( + partial( + convert_to_trainID, out_mask_dir=out_mask_dir, is_train=False), + test_list) + + print('Done!') + + +if __name__ == '__main__': + main() From 749abaa78c1accee1250ff1917935e8ced8b0026 Mon Sep 17 00:00:00 2001 From: MengzhangLI Date: Thu, 23 Sep 2021 08:19:19 +0800 Subject: [PATCH 241/706] Fixing README (#896) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index ce2d17712f..1ca1735346 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,6 @@ Supported datasets: - [x] [STARE](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#stare) - [x] [Dark Zurich](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#dark-zurich) - [x] [Nighttime Driving](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#nighttime-driving) -- [x] [Nighttime Driving](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#nighttime-driving) ## Installation From e13076adef521b9c082f767e12bd69c96f6496bb Mon Sep 17 00:00:00 2001 From: VVsssssk <88368822+VVsssssk@users.noreply.github.com> Date: Thu, 23 Sep 2021 19:14:52 +0800 Subject: [PATCH 242/706] [Fix] fix_torchserver1.1 (#844) * test_torchserver1.1 * test_torchserver1.2 * update * update mmseg_handler.py * update docs * update torchserver * tranfer torchserver to torchserve * update docs --- docs/useful_tools.md | 19 ++++++- setup.cfg | 2 +- tools/{ => torchserve}/mmseg2torchserve.py | 0 tools/{ => torchserve}/mmseg_handler.py | 9 ++-- tools/torchserve/test_torchserve.py | 59 ++++++++++++++++++++++ 5 files changed, 84 insertions(+), 5 deletions(-) rename tools/{ => torchserve}/mmseg2torchserve.py (100%) rename tools/{ => torchserve}/mmseg_handler.py (86%) create mode 100644 tools/torchserve/test_torchserve.py diff --git a/docs/useful_tools.md b/docs/useful_tools.md index 28f9a42efd..8cec9b7024 100644 --- a/docs/useful_tools.md +++ b/docs/useful_tools.md @@ -304,7 +304,7 @@ In order to serve an `MMSegmentation` model with [`TorchServe`](https://pytorch. ### 1. Convert model from MMSegmentation to TorchServe ```shell -python tools/mmseg2torchserve.py ${CONFIG_FILE} ${CHECKPOINT_FILE} \ +python tools/torchserve/mmseg2torchserve.py ${CONFIG_FILE} ${CHECKPOINT_FILE} \ --output-folder ${MODEL_STORE} \ --model-name ${MODEL_NAME} ``` @@ -359,3 +359,20 @@ plt.show() You should see something similar to: ![3dogs_mask](../resources/3dogs_mask.png) + +And you can use `test_torchserve.py` to compare result of torchserve and pytorch, and visualize them. + +```shell +python tools/torchserve/test_torchserve.py ${IMAGE_FILE} ${CONFIG_FILE} ${CHECKPOINT_FILE} ${MODEL_NAME} +[--inference-addr ${INFERENCE_ADDR}] [--result-image ${RESULT_IMAGE}] [--device ${DEVICE}] +``` + +Example: + +```shell +python tools/torchserve/test_torchserve.py \ +demo/demo.png \ +configs/fcn/fcn_r50-d8_512x1024_40k_cityscapes.py \ +checkpoint/fcn_r50-d8_512x1024_40k_cityscapes_20200604_192608-efe53f0d.pth \ +fcn +``` diff --git a/setup.cfg b/setup.cfg index 75fcedc7cc..8605ae9393 100644 --- a/setup.cfg +++ b/setup.cfg @@ -8,6 +8,6 @@ line_length = 79 multi_line_output = 0 known_standard_library = setuptools known_first_party = mmseg -known_third_party = PIL,cityscapesscripts,cv2,detail,matplotlib,mmcv,numpy,onnxruntime,packaging,prettytable,pytest,pytorch_sphinx_theme,scipy,seaborn,torch,ts +known_third_party = PIL,cityscapesscripts,cv2,detail,matplotlib,mmcv,numpy,onnxruntime,packaging,prettytable,pytest,pytorch_sphinx_theme,requests,scipy,seaborn,torch,ts no_lines_before = STDLIB,LOCALFOLDER default_section = THIRDPARTY diff --git a/tools/mmseg2torchserve.py b/tools/torchserve/mmseg2torchserve.py similarity index 100% rename from tools/mmseg2torchserve.py rename to tools/torchserve/mmseg2torchserve.py diff --git a/tools/mmseg_handler.py b/tools/torchserve/mmseg_handler.py similarity index 86% rename from tools/mmseg_handler.py rename to tools/torchserve/mmseg_handler.py index 7fabd46b9c..e195f6d5d4 100644 --- a/tools/mmseg_handler.py +++ b/tools/torchserve/mmseg_handler.py @@ -1,11 +1,11 @@ # Copyright (c) OpenMMLab. All rights reserved. import base64 -import io import os import cv2 import mmcv import torch +from mmcv.cnn.utils.sync_bn import revert_sync_batchnorm from ts.torch_handler.base_handler import BaseHandler from mmseg.apis import inference_segmentor, init_segmentor @@ -27,6 +27,7 @@ def initialize(self, context): self.config_file = os.path.join(model_dir, 'config.py') self.model = init_segmentor(self.config_file, checkpoint, self.device) + self.model = revert_sync_batchnorm(self.model) self.initialized = True def preprocess(self, data): @@ -47,8 +48,10 @@ def inference(self, data, *args, **kwargs): def postprocess(self, data): output = [] + for image_result in data: - buffer = io.BytesIO() _, buffer = cv2.imencode('.png', image_result[0].astype('uint8')) - output.append(buffer.tobytes()) + bast64_data = base64.b64encode(buffer.tobytes()) + bast64_str = str(bast64_data, 'utf-8') + output.append(bast64_str) return output diff --git a/tools/torchserve/test_torchserve.py b/tools/torchserve/test_torchserve.py new file mode 100644 index 0000000000..824dee952b --- /dev/null +++ b/tools/torchserve/test_torchserve.py @@ -0,0 +1,59 @@ +import base64 +from argparse import ArgumentParser +from io import BytesIO + +import matplotlib.pyplot as plt +import mmcv +import requests + +from mmseg.apis import inference_segmentor, init_segmentor + + +def parse_args(): + parser = ArgumentParser( + description='Compare result of torchserve and pytorch,' + 'and visualize them.') + parser.add_argument('img', help='Image file') + parser.add_argument('config', help='Config file') + parser.add_argument('checkpoint', help='Checkpoint file') + parser.add_argument('model_name', help='The model name in the server') + parser.add_argument( + '--inference-addr', + default='127.0.0.1:8080', + help='Address and port of the inference server') + parser.add_argument( + '--result-image', + type=str, + default=None, + help='save server output in result-image') + parser.add_argument( + '--device', default='cuda:0', help='Device used for inference') + + args = parser.parse_args() + return args + + +def main(args): + url = 'http://' + args.inference_addr + '/predictions/' + args.model_name + with open(args.img, 'rb') as image: + tmp_res = requests.post(url, image) + base64_str = tmp_res.content + buffer = base64.b64decode(base64_str) + if args.result_image: + with open(args.result_image, 'wb') as out_image: + out_image.write(buffer) + plt.imshow(mmcv.imread(args.result_image, 'grayscale')) + plt.show() + else: + plt.imshow(plt.imread(BytesIO(buffer))) + plt.show() + model = init_segmentor(args.config, args.checkpoint, args.device) + image = mmcv.imread(args.img) + result = inference_segmentor(model, image) + plt.imshow(result[0]) + plt.show() + + +if __name__ == '__main__': + args = parse_args() + main(args) From 0fd3972c41d92e77a463d1cbff5a707df1b206cf Mon Sep 17 00:00:00 2001 From: MengzhangLI Date: Fri, 24 Sep 2021 15:08:28 +0800 Subject: [PATCH 243/706] [Feature] Support multiple losses during training (#818) * multiple losses * fix lint error * fix typos * fix typos * Adding Attribute * Fixing loss_ prefix * Fixing loss_ prefix * Fixing loss_ prefix * Add Same * loss_name must has 'loss_' prefix * Fix unittest * Fix unittest * Fix unittest * Update mmseg/models/decode_heads/decode_head.py Co-authored-by: Junjun2016 --- docs/tutorials/training_tricks.md | 18 ++++ docs_zh-CN/tutorials/training_tricks.md | 19 ++++ mmseg/core/seg/sampler/ohem_pixel_sampler.py | 14 +-- mmseg/models/decode_heads/decode_head.py | 43 +++++++-- mmseg/models/decode_heads/point_head.py | 5 +- mmseg/models/losses/cross_entropy_loss.py | 21 ++++- mmseg/models/losses/dice_loss.py | 19 ++++ mmseg/models/losses/lovasz_loss.py | 21 ++++- .../test_heads/test_decode_head.py | 89 +++++++++++++++++++ tests/test_models/test_losses/test_ce_loss.py | 17 +++- .../test_models/test_losses/test_dice_loss.py | 24 ++++- .../test_losses/test_lovasz_loss.py | 40 +++++++-- 12 files changed, 297 insertions(+), 33 deletions(-) diff --git a/docs/tutorials/training_tricks.md b/docs/tutorials/training_tricks.md index 98a201fa64..1c8fe06b94 100644 --- a/docs/tutorials/training_tricks.md +++ b/docs/tutorials/training_tricks.md @@ -50,3 +50,21 @@ model=dict( ``` `class_weight` will be passed into `CrossEntropyLoss` as `weight` argument. Please refer to [PyTorch Doc](https://pytorch.org/docs/stable/nn.html?highlight=crossentropy#torch.nn.CrossEntropyLoss) for details. + +## Multiple Losses + +For loss calculation, we support multiple losses training concurrently. Here is an example config of training `unet` on `DRIVE` dataset, whose loss function is `1:3` weighted sum of `CrossEntropyLoss` and `DiceLoss`: + +```python +_base_ = './fcn_unet_s5-d16_64x64_40k_drive.py' +model = dict( + decode_head=dict(loss_decode=[dict(type='CrossEntropyLoss', loss_name='loss_ce', loss_weight=1.0), + dict(type='DiceLoss', loss_name='loss_dice', loss_weight=3.0)]), + auxiliary_head=dict(loss_decode=[dict(type='CrossEntropyLoss', loss_name='loss_ce',loss_weight=1.0), + dict(type='DiceLoss', loss_name='loss_dice', loss_weight=3.0)]), + ) +``` + +In this way, `loss_weight` and `loss_name` will be weight and name in training log of corresponding loss, respectively. + +Note: If you want this loss item to be included into the backward graph, `loss_` must be the prefix of the name. diff --git a/docs_zh-CN/tutorials/training_tricks.md b/docs_zh-CN/tutorials/training_tricks.md index 9248e5a14b..be9112cabd 100644 --- a/docs_zh-CN/tutorials/training_tricks.md +++ b/docs_zh-CN/tutorials/training_tricks.md @@ -49,3 +49,22 @@ model=dict( ``` `class_weight` 将被作为 `weight` 参数,传递给 `CrossEntropyLoss`。详细信息请参照 [PyTorch 文档](https://pytorch.org/docs/stable/nn.html?highlight=crossentropy#torch.nn.CrossEntropyLoss) 。 + +## 同时使用多种损失函数 (Multiple Losses) + +对于训练时损失函数的计算,我们目前支持多个损失函数同时使用。 以 `unet` 使用 `DRIVE` 数据集训练为例, +使用 `CrossEntropyLoss` 和 `DiceLoss` 的 `1:3` 的加权和作为损失函数。配置文件写为: + +```python +_base_ = './fcn_unet_s5-d16_64x64_40k_drive.py' +model = dict( + decode_head=dict(loss_decode=[dict(type='CrossEntropyLoss', loss_name='loss_ce', loss_weight=1.0), + dict(type='DiceLoss', loss_name='loss_dice', loss_weight=3.0)]), + auxiliary_head=dict(loss_decode=[dict(type='CrossEntropyLoss', loss_name='loss_ce',loss_weight=1.0), + dict(type='DiceLoss', loss_name='loss_dice', loss_weight=3.0)]), + ) +``` + +通过这种方式,确定训练过程中损失函数的权重 `loss_weight` 和在训练日志里的名字 `loss_name`。 + +注意: `loss_name` 的名字必须带有 `loss_` 前缀,这样它才能被包括在反传的图里。 diff --git a/mmseg/core/seg/sampler/ohem_pixel_sampler.py b/mmseg/core/seg/sampler/ohem_pixel_sampler.py index bcd481a965..72ba941f03 100644 --- a/mmseg/core/seg/sampler/ohem_pixel_sampler.py +++ b/mmseg/core/seg/sampler/ohem_pixel_sampler.py @@ -62,12 +62,14 @@ def sample(self, seg_logit, seg_label): threshold = max(min_threshold, self.thresh) valid_seg_weight[seg_prob[valid_mask] < threshold] = 1. else: - losses = self.context.loss_decode( - seg_logit, - seg_label, - weight=None, - ignore_index=self.context.ignore_index, - reduction_override='none') + losses = 0.0 + for loss_module in self.context.loss_decode: + losses += loss_module( + seg_logit, + seg_label, + weight=None, + ignore_index=self.context.ignore_index, + reduction_override='none') # faster than topk according to https://github.com/pytorch/pytorch/issues/22812 # noqa _, sort_indices = losses[valid_mask].sort(descending=True) valid_seg_weight[sort_indices[:batch_kept]] = 1. diff --git a/mmseg/models/decode_heads/decode_head.py b/mmseg/models/decode_heads/decode_head.py index b38701a92e..c36555eaf2 100644 --- a/mmseg/models/decode_heads/decode_head.py +++ b/mmseg/models/decode_heads/decode_head.py @@ -33,10 +33,17 @@ class BaseDecodeHead(BaseModule, metaclass=ABCMeta): a list and passed into decode head. None: Only one select feature map is allowed. Default: None. - loss_decode (dict): Config of decode loss. + loss_decode (dict | Sequence[dict]): Config of decode loss. + The `loss_name` is property of corresponding loss function which + could be shown in training log. If you want this loss + item to be included into the backward graph, `loss_` must be the + prefix of the name. Defaults to 'loss_ce'. + e.g. dict(type='CrossEntropyLoss'), + [dict(type='CrossEntropyLoss', loss_name='loss_ce'), + dict(type='DiceLoss', loss_name='loss_dice')] Default: dict(type='CrossEntropyLoss'). ignore_index (int | None): The label index to be ignored. When using - masked BCE loss, ignore_index should be set to None. Default: 255 + masked BCE loss, ignore_index should be set to None. Default: 255. sampler (dict|None): The config of segmentation map sampler. Default: None. align_corners (bool): align_corners argument of F.interpolate. @@ -73,9 +80,20 @@ def __init__(self, self.norm_cfg = norm_cfg self.act_cfg = act_cfg self.in_index = in_index - self.loss_decode = build_loss(loss_decode) + self.ignore_index = ignore_index self.align_corners = align_corners + self.loss_decode = nn.ModuleList() + + if isinstance(loss_decode, dict): + self.loss_decode.append(build_loss(loss_decode)) + elif isinstance(loss_decode, (list, tuple)): + for loss in loss_decode: + self.loss_decode.append(build_loss(loss)) + else: + raise TypeError(f'loss_decode must be a dict or sequence of dict,\ + but got {type(loss_decode)}') + if sampler is not None: self.sampler = build_pixel_sampler(sampler, context=self) else: @@ -224,10 +242,19 @@ def losses(self, seg_logit, seg_label): else: seg_weight = None seg_label = seg_label.squeeze(1) - loss['loss_seg'] = self.loss_decode( - seg_logit, - seg_label, - weight=seg_weight, - ignore_index=self.ignore_index) + for loss_decode in self.loss_decode: + if loss_decode.loss_name not in loss: + loss[loss_decode.loss_name] = loss_decode( + seg_logit, + seg_label, + weight=seg_weight, + ignore_index=self.ignore_index) + else: + loss[loss_decode.loss_name] += loss_decode( + seg_logit, + seg_label, + weight=seg_weight, + ignore_index=self.ignore_index) + loss['acc_seg'] = accuracy(seg_logit, seg_label) return loss diff --git a/mmseg/models/decode_heads/point_head.py b/mmseg/models/decode_heads/point_head.py index 4470571144..56dfd4ed8b 100644 --- a/mmseg/models/decode_heads/point_head.py +++ b/mmseg/models/decode_heads/point_head.py @@ -249,8 +249,9 @@ def forward_test(self, inputs, prev_output, img_metas, test_cfg): def losses(self, point_logits, point_label): """Compute segmentation loss.""" loss = dict() - loss['loss_point'] = self.loss_decode( - point_logits, point_label, ignore_index=self.ignore_index) + for loss_module in self.loss_decode: + loss['point' + loss_module.loss_name] = loss_module( + point_logits, point_label, ignore_index=self.ignore_index) loss['acc_point'] = accuracy(point_logits, point_label) return loss diff --git a/mmseg/models/losses/cross_entropy_loss.py b/mmseg/models/losses/cross_entropy_loss.py index 9a7ccea937..ee489a888f 100644 --- a/mmseg/models/losses/cross_entropy_loss.py +++ b/mmseg/models/losses/cross_entropy_loss.py @@ -150,6 +150,9 @@ class CrossEntropyLoss(nn.Module): class_weight (list[float] | str, optional): Weight of each class. If in str format, read them from a file. Defaults to None. loss_weight (float, optional): Weight of the loss. Defaults to 1.0. + loss_name (str, optional): Name of the loss item. If you want this loss + item to be included into the backward graph, `loss_` must be the + prefix of the name. Defaults to 'loss_ce'. """ def __init__(self, @@ -157,7 +160,8 @@ def __init__(self, use_mask=False, reduction='mean', class_weight=None, - loss_weight=1.0): + loss_weight=1.0, + loss_name='loss_ce'): super(CrossEntropyLoss, self).__init__() assert (use_sigmoid is False) or (use_mask is False) self.use_sigmoid = use_sigmoid @@ -172,6 +176,7 @@ def __init__(self, self.cls_criterion = mask_cross_entropy else: self.cls_criterion = cross_entropy + self._loss_name = loss_name def forward(self, cls_score, @@ -197,3 +202,17 @@ def forward(self, avg_factor=avg_factor, **kwargs) return loss_cls + + @property + def loss_name(self): + """Loss Name. + + This function must be implemented and will return the name of this + loss function. This name will be used to combine different loss items + by simple sum operation. In addition, if you want this loss item to be + included into the backward graph, `loss_` must be the prefix of the + name. + Returns: + str: The name of this loss item. + """ + return self._loss_name diff --git a/mmseg/models/losses/dice_loss.py b/mmseg/models/losses/dice_loss.py index 0b07e97648..774bd1aea2 100644 --- a/mmseg/models/losses/dice_loss.py +++ b/mmseg/models/losses/dice_loss.py @@ -68,6 +68,9 @@ class DiceLoss(nn.Module): str format, read them from a file. Defaults to None. loss_weight (float, optional): Weight of the loss. Default to 1.0. ignore_index (int | None): The label index to be ignored. Default: 255. + loss_name (str, optional): Name of the loss item. If you want this loss + item to be included into the backward graph, `loss_` must be the + prefix of the name. Defaults to 'loss_dice'. """ def __init__(self, @@ -77,6 +80,7 @@ def __init__(self, class_weight=None, loss_weight=1.0, ignore_index=255, + loss_name='loss_dice', **kwards): super(DiceLoss, self).__init__() self.smooth = smooth @@ -85,6 +89,7 @@ def __init__(self, self.class_weight = get_class_weight(class_weight) self.loss_weight = loss_weight self.ignore_index = ignore_index + self._loss_name = loss_name def forward(self, pred, @@ -118,3 +123,17 @@ def forward(self, class_weight=class_weight, ignore_index=self.ignore_index) return loss + + @property + def loss_name(self): + """Loss Name. + + This function must be implemented and will return the name of this + loss function. This name will be used to combine different loss items + by simple sum operation. In addition, if you want this loss item to be + included into the backward graph, `loss_` must be the prefix of the + name. + Returns: + str: The name of this loss item. + """ + return self._loss_name diff --git a/mmseg/models/losses/lovasz_loss.py b/mmseg/models/losses/lovasz_loss.py index 275c4c5432..2bb0fad393 100644 --- a/mmseg/models/losses/lovasz_loss.py +++ b/mmseg/models/losses/lovasz_loss.py @@ -244,6 +244,9 @@ class LovaszLoss(nn.Module): class_weight (list[float] | str, optional): Weight of each class. If in str format, read them from a file. Defaults to None. loss_weight (float, optional): Weight of the loss. Defaults to 1.0. + loss_name (str, optional): Name of the loss item. If you want this loss + item to be included into the backward graph, `loss_` must be the + prefix of the name. Defaults to 'loss_lovasz'. """ def __init__(self, @@ -252,7 +255,8 @@ def __init__(self, per_image=False, reduction='mean', class_weight=None, - loss_weight=1.0): + loss_weight=1.0, + loss_name='loss_lovasz'): super(LovaszLoss, self).__init__() assert loss_type in ('binary', 'multi_class'), "loss_type should be \ 'binary' or 'multi_class'." @@ -271,6 +275,7 @@ def __init__(self, self.reduction = reduction self.loss_weight = loss_weight self.class_weight = get_class_weight(class_weight) + self._loss_name = loss_name def forward(self, cls_score, @@ -302,3 +307,17 @@ def forward(self, avg_factor=avg_factor, **kwargs) return loss_cls + + @property + def loss_name(self): + """Loss Name. + + This function must be implemented and will return the name of this + loss function. This name will be used to combine different loss items + by simple sum operation. In addition, if you want this loss item to be + included into the backward graph, `loss_` must be the prefix of the + name. + Returns: + str: The name of this loss item. + """ + return self._loss_name diff --git a/tests/test_models/test_heads/test_decode_head.py b/tests/test_models/test_heads/test_decode_head.py index 421043d398..cb9ab97181 100644 --- a/tests/test_models/test_heads/test_decode_head.py +++ b/tests/test_models/test_heads/test_decode_head.py @@ -74,3 +74,92 @@ def test_decode_head(): assert head.input_transform == 'resize_concat' transformed_inputs = head._transform_inputs(inputs) assert transformed_inputs.shape == (1, 48, 45, 45) + + # test multi-loss, loss_decode is dict + with pytest.raises(TypeError): + # loss_decode must be a dict or sequence of dict. + BaseDecodeHead(3, 16, num_classes=19, loss_decode=['CrossEntropyLoss']) + + inputs = torch.randn(2, 19, 8, 8).float() + target = torch.ones(2, 1, 64, 64).long() + head = BaseDecodeHead( + 3, + 16, + num_classes=19, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + head, target = to_cuda(head, target) + loss = head.losses(seg_logit=inputs, seg_label=target) + assert 'loss_ce' in loss + + # test multi-loss, loss_decode is list of dict + inputs = torch.randn(2, 19, 8, 8).float() + target = torch.ones(2, 1, 64, 64).long() + head = BaseDecodeHead( + 3, + 16, + num_classes=19, + loss_decode=[ + dict(type='CrossEntropyLoss', loss_name='loss_1'), + dict(type='CrossEntropyLoss', loss_name='loss_2') + ]) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + head, target = to_cuda(head, target) + loss = head.losses(seg_logit=inputs, seg_label=target) + assert 'loss_1' in loss + assert 'loss_2' in loss + + # 'loss_decode' must be a dict or sequence of dict + with pytest.raises(TypeError): + BaseDecodeHead(3, 16, num_classes=19, loss_decode=['CrossEntropyLoss']) + with pytest.raises(TypeError): + BaseDecodeHead(3, 16, num_classes=19, loss_decode=0) + + # test multi-loss, loss_decode is list of dict + inputs = torch.randn(2, 19, 8, 8).float() + target = torch.ones(2, 1, 64, 64).long() + head = BaseDecodeHead( + 3, + 16, + num_classes=19, + loss_decode=(dict(type='CrossEntropyLoss', loss_name='loss_1'), + dict(type='CrossEntropyLoss', loss_name='loss_2'), + dict(type='CrossEntropyLoss', loss_name='loss_3'))) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + head, target = to_cuda(head, target) + loss = head.losses(seg_logit=inputs, seg_label=target) + assert 'loss_1' in loss + assert 'loss_2' in loss + assert 'loss_3' in loss + + # test multi-loss, loss_decode is list of dict, names of them are identical + inputs = torch.randn(2, 19, 8, 8).float() + target = torch.ones(2, 1, 64, 64).long() + head = BaseDecodeHead( + 3, + 16, + num_classes=19, + loss_decode=(dict(type='CrossEntropyLoss', loss_name='loss_ce'), + dict(type='CrossEntropyLoss', loss_name='loss_ce'), + dict(type='CrossEntropyLoss', loss_name='loss_ce'))) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + head, target = to_cuda(head, target) + loss_3 = head.losses(seg_logit=inputs, seg_label=target) + + head = BaseDecodeHead( + 3, + 16, + num_classes=19, + loss_decode=(dict(type='CrossEntropyLoss', loss_name='loss_ce'))) + if torch.cuda.is_available(): + head, inputs = to_cuda(head, inputs) + head, target = to_cuda(head, target) + loss = head.losses(seg_logit=inputs, seg_label=target) + assert 'loss_ce' in loss + assert 'loss_ce' in loss_3 + assert loss_3['loss_ce'] == 3 * loss['loss_ce'] diff --git a/tests/test_models/test_losses/test_ce_loss.py b/tests/test_models/test_losses/test_ce_loss.py index 73217ec8c0..03bc3beef9 100644 --- a/tests/test_models/test_losses/test_ce_loss.py +++ b/tests/test_models/test_losses/test_ce_loss.py @@ -20,7 +20,8 @@ def test_ce_loss(): type='CrossEntropyLoss', use_sigmoid=False, class_weight=[0.8, 0.2], - loss_weight=1.0) + loss_weight=1.0, + loss_name='loss_ce') loss_cls = build_loss(loss_cls_cfg) fake_pred = torch.Tensor([[100, -100]]) fake_label = torch.Tensor([1]).long() @@ -38,7 +39,8 @@ def test_ce_loss(): type='CrossEntropyLoss', use_sigmoid=False, class_weight=f'{tmp_file.name}.pkl', - loss_weight=1.0) + loss_weight=1.0, + loss_name='loss_ce') loss_cls = build_loss(loss_cls_cfg) assert torch.allclose(loss_cls(fake_pred, fake_label), torch.tensor(40.)) @@ -47,7 +49,8 @@ def test_ce_loss(): type='CrossEntropyLoss', use_sigmoid=False, class_weight=f'{tmp_file.name}.npy', - loss_weight=1.0) + loss_weight=1.0, + loss_name='loss_ce') loss_cls = build_loss(loss_cls_cfg) assert torch.allclose(loss_cls(fake_pred, fake_label), torch.tensor(40.)) tmp_file.close() @@ -74,4 +77,12 @@ def test_ce_loss(): torch.tensor(0.9354), atol=1e-4) + # test cross entropy loss has name `loss_ce` + loss_cls_cfg = dict( + type='CrossEntropyLoss', + use_sigmoid=False, + loss_weight=1.0, + loss_name='loss_ce') + loss_cls = build_loss(loss_cls_cfg) + assert loss_cls.loss_name == 'loss_ce' # TODO test use_mask diff --git a/tests/test_models/test_losses/test_dice_loss.py b/tests/test_models/test_losses/test_dice_loss.py index 05d1b1e053..d6f10439d8 100644 --- a/tests/test_models/test_losses/test_dice_loss.py +++ b/tests/test_models/test_losses/test_dice_loss.py @@ -11,7 +11,8 @@ def test_dice_lose(): reduction='none', class_weight=[1.0, 2.0, 3.0], loss_weight=1.0, - ignore_index=1) + ignore_index=1, + loss_name='loss_dice') dice_loss = build_loss(loss_cfg) logits = torch.rand(8, 3, 4, 4) labels = (torch.rand(8, 4, 4) * 3).long() @@ -30,7 +31,8 @@ def test_dice_lose(): reduction='none', class_weight=f'{tmp_file.name}.pkl', loss_weight=1.0, - ignore_index=1) + ignore_index=1, + loss_name='loss_dice') dice_loss = build_loss(loss_cfg) dice_loss(logits, labels, ignore_index=None) @@ -40,7 +42,8 @@ def test_dice_lose(): reduction='none', class_weight=f'{tmp_file.name}.pkl', loss_weight=1.0, - ignore_index=1) + ignore_index=1, + loss_name='loss_dice') dice_loss = build_loss(loss_cfg) dice_loss(logits, labels, ignore_index=None) tmp_file.close() @@ -54,8 +57,21 @@ def test_dice_lose(): exponent=3, reduction='sum', loss_weight=1.0, - ignore_index=0) + ignore_index=0, + loss_name='loss_dice') dice_loss = build_loss(loss_cfg) logits = torch.rand(8, 2, 4, 4) labels = (torch.rand(8, 4, 4) * 2).long() dice_loss(logits, labels) + + # test dice loss has name `loss_dice` + loss_cfg = dict( + type='DiceLoss', + smooth=2, + exponent=3, + reduction='sum', + loss_weight=1.0, + ignore_index=0, + loss_name='loss_dice') + dice_loss = build_loss(loss_cfg) + assert dice_loss.loss_name == 'loss_dice' diff --git a/tests/test_models/test_losses/test_lovasz_loss.py b/tests/test_models/test_losses/test_lovasz_loss.py index e2dee81de8..74ddb48d8e 100644 --- a/tests/test_models/test_losses/test_lovasz_loss.py +++ b/tests/test_models/test_losses/test_lovasz_loss.py @@ -12,16 +12,24 @@ def test_lovasz_loss(): type='LovaszLoss', loss_type='Binary', reduction='none', - loss_weight=1.0) + loss_weight=1.0, + loss_name='loss_lovasz') build_loss(loss_cfg) # reduction should be 'none' when per_image is False. with pytest.raises(AssertionError): - loss_cfg = dict(type='LovaszLoss', loss_type='multi_class') + loss_cfg = dict( + type='LovaszLoss', + loss_type='multi_class', + loss_name='loss_lovasz') build_loss(loss_cfg) # test lovasz loss with loss_type = 'multi_class' and per_image = False - loss_cfg = dict(type='LovaszLoss', reduction='none', loss_weight=1.0) + loss_cfg = dict( + type='LovaszLoss', + reduction='none', + loss_weight=1.0, + loss_name='loss_lovasz') lovasz_loss = build_loss(loss_cfg) logits = torch.rand(1, 3, 4, 4) labels = (torch.rand(1, 4, 4) * 2).long() @@ -33,7 +41,8 @@ def test_lovasz_loss(): per_image=True, reduction='mean', class_weight=[1.0, 2.0, 3.0], - loss_weight=1.0) + loss_weight=1.0, + loss_name='loss_lovasz') lovasz_loss = build_loss(loss_cfg) logits = torch.rand(1, 3, 4, 4) labels = (torch.rand(1, 4, 4) * 2).long() @@ -52,7 +61,8 @@ def test_lovasz_loss(): per_image=True, reduction='mean', class_weight=f'{tmp_file.name}.pkl', - loss_weight=1.0) + loss_weight=1.0, + loss_name='loss_lovasz') lovasz_loss = build_loss(loss_cfg) lovasz_loss(logits, labels, ignore_index=None) @@ -62,7 +72,8 @@ def test_lovasz_loss(): per_image=True, reduction='mean', class_weight=f'{tmp_file.name}.npy', - loss_weight=1.0) + loss_weight=1.0, + loss_name='loss_lovasz') lovasz_loss = build_loss(loss_cfg) lovasz_loss(logits, labels, ignore_index=None) tmp_file.close() @@ -74,7 +85,8 @@ def test_lovasz_loss(): type='LovaszLoss', loss_type='binary', reduction='none', - loss_weight=1.0) + loss_weight=1.0, + loss_name='loss_lovasz') lovasz_loss = build_loss(loss_cfg) logits = torch.rand(2, 4, 4) labels = (torch.rand(2, 4, 4)).long() @@ -86,8 +98,20 @@ def test_lovasz_loss(): loss_type='binary', per_image=True, reduction='mean', - loss_weight=1.0) + loss_weight=1.0, + loss_name='loss_lovasz') lovasz_loss = build_loss(loss_cfg) logits = torch.rand(2, 4, 4) labels = (torch.rand(2, 4, 4)).long() lovasz_loss(logits, labels, ignore_index=None) + + # test lovasz loss has name `loss_lovasz` + loss_cfg = dict( + type='LovaszLoss', + loss_type='binary', + per_image=True, + reduction='mean', + loss_weight=1.0, + loss_name='loss_lovasz') + lovasz_loss = build_loss(loss_cfg) + assert lovasz_loss.loss_name == 'loss_lovasz' From 575ee039579ae3a5b6cb72e424a9ae8f5bb0311c Mon Sep 17 00:00:00 2001 From: kira <39787375+yangrisheng@users.noreply.github.com> Date: Sun, 26 Sep 2021 00:07:41 +0800 Subject: [PATCH 244/706] The path of the annotation is wrong in the tutorial (#907) * Update config.md * Update config.md --- docs/tutorials/config.md | 2 +- docs_zh-CN/tutorials/config.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tutorials/config.md b/docs/tutorials/config.md index d94e31a9a1..65efa04fdb 100644 --- a/docs/tutorials/config.md +++ b/docs/tutorials/config.md @@ -48,7 +48,7 @@ model = dict( type='EncoderDecoder', # Name of segmentor pretrained='open-mmlab://resnet50_v1c', # The ImageNet pretrained backbone to be loaded backbone=dict( - type='ResNetV1c', # The type of backbone. Please refer to mmseg/backbone/resnet.py for details. + type='ResNetV1c', # The type of backbone. Please refer to mmseg/models/backbones/resnet.py for details. depth=50, # Depth of backbone. Normally 50, 101 are used. num_stages=4, # Number of stages of backbone. out_indices=(0, 1, 2, 3), # The index of output feature maps produced in each stages. diff --git a/docs_zh-CN/tutorials/config.md b/docs_zh-CN/tutorials/config.md index 48e9da11f0..927037d73e 100644 --- a/docs_zh-CN/tutorials/config.md +++ b/docs_zh-CN/tutorials/config.md @@ -44,7 +44,7 @@ model = dict( type='EncoderDecoder', # 分割器(segmentor)的名字 pretrained='open-mmlab://resnet50_v1c', # 将被加载的 ImageNet 预训练主干网络 backbone=dict( - type='ResNetV1c', # 主干网络的类别。 可用选项请参考 mmseg/backbone/resnet.py + type='ResNetV1c', # 主干网络的类别。 可用选项请参考 mmseg/models/backbones/resnet.py depth=50, # 主干网络的深度。通常为 50 和 101。 num_stages=4, # 主干网络状态(stages)的数目,这些状态产生的特征图作为后续的 head 的输入。 out_indices=(0, 1, 2, 3), # 每个状态产生的特征图输出的索引。 From 96b369bd5554745430ddb405f21483f979fcedcd Mon Sep 17 00:00:00 2001 From: Julius Zhang Date: Sun, 26 Sep 2021 09:17:40 +0800 Subject: [PATCH 245/706] [Fix] Fix loss parse in val_step (#906) * [Fix] Fix loss parse in val_step * Add val_step unittest * Add train_step unittest --- mmseg/models/segmentors/base.py | 13 ++++++++++--- tests/test_models/test_segmentors/utils.py | 20 ++++++++++++++++++++ 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/mmseg/models/segmentors/base.py b/mmseg/models/segmentors/base.py index 906c6fe564..944da0f2e4 100644 --- a/mmseg/models/segmentors/base.py +++ b/mmseg/models/segmentors/base.py @@ -145,15 +145,22 @@ def train_step(self, data_batch, optimizer, **kwargs): return outputs - def val_step(self, data_batch, **kwargs): + def val_step(self, data_batch, optimizer=None, **kwargs): """The iteration step during validation. This method shares the same signature as :func:`train_step`, but used during val epochs. Note that the evaluation after training epochs is not implemented with this method, but an evaluation hook. """ - output = self(**data_batch, **kwargs) - return output + losses = self(**data_batch) + loss, log_vars = self._parse_losses(losses) + + outputs = dict( + loss=loss, + log_vars=log_vars, + num_samples=len(data_batch['img_metas'])) + + return outputs @staticmethod def _parse_losses(losses): diff --git a/tests/test_models/test_segmentors/utils.py b/tests/test_models/test_segmentors/utils.py index 0f51a4b1f5..1826dbf859 100644 --- a/tests/test_models/test_segmentors/utils.py +++ b/tests/test_models/test_segmentors/utils.py @@ -101,6 +101,26 @@ def _segmentor_forward_train_test(segmentor): imgs, img_metas, gt_semantic_seg=gt_semantic_seg, return_loss=True) assert isinstance(losses, dict) + # Test train_step + data_batch = dict( + img=imgs, img_metas=img_metas, gt_semantic_seg=gt_semantic_seg) + outputs = segmentor.train_step(data_batch, None) + assert isinstance(outputs, dict) + assert 'loss' in outputs + assert 'log_vars' in outputs + assert 'num_samples' in outputs + + # Test val_step + with torch.no_grad(): + segmentor.eval() + data_batch = dict( + img=imgs, img_metas=img_metas, gt_semantic_seg=gt_semantic_seg) + outputs = segmentor.val_step(data_batch, None) + assert isinstance(outputs, dict) + assert 'loss' in outputs + assert 'log_vars' in outputs + assert 'num_samples' in outputs + # Test forward simple test with torch.no_grad(): segmentor.eval() From f82e4d6fc99ae22e8129b2f324ade65608e611b6 Mon Sep 17 00:00:00 2001 From: MengzhangLI Date: Sun, 26 Sep 2021 18:52:16 +0800 Subject: [PATCH 246/706] [Feature] Support BiSeNetV2 (#804) * BiSeNetV2 first commit * BiSeNetV2 unittest * remove pytest * add pytest module * fix ConvModule input name * fix pytest error * fix unittest * refactor * BiSeNetV2 Refactory * fix docstrings and add some small changes * use_sigmoid=False * fix potential bugs about upsampling * Use ConvModule instead * Use ConvModule instead * fix typos * fix typos * fix typos * discard nn.conv2d * discard nn.conv2d * discard nn.conv2d * delete **kwargs * uploading markdown and model * final commit * BiSeNetV2 adding Unittest for its modules * BiSeNetV2 adding Unittest for its modules * BiSeNetV2 adding Unittest for its modules * BiSeNetV2 adding Unittest for its modules * BiSeNetV2 adding Unittest for its modules * BiSeNetV2 adding Unittest for its modules * BiSeNetV2 adding Unittest for its modules * Fix README conflict * Fix unittest problem * Fix unittest problem * BiSeNetV2 * Fixing fps * Fixing typpos * bisenetv2 --- README.md | 1 + README_zh-CN.md | 1 + .../_base_/datasets/cityscapes_1024x1024.py | 35 + configs/_base_/models/bisenetv2.py | 80 +++ configs/bisenetv2/README.md | 33 + configs/bisenetv2/bisenetv2.yml | 80 +++ ...netv2_fcn_4x4_1024x1024_160k_cityscapes.py | 11 + ...netv2_fcn_4x8_1024x1024_160k_cityscapes.py | 11 + ..._fcn_fp16_4x4_1024x1024_160k_cityscapes.py | 5 + ..._fcn_ohem_4x4_1024x1024_160k_cityscapes.py | 12 + mmseg/models/backbones/__init__.py | 3 +- mmseg/models/backbones/bisenetv2.py | 622 ++++++++++++++++++ mmseg/models/backbones/swin.py | 1 + model-index.yml | 1 + .../test_backbones/test_bisenetv2.py | 57 ++ 15 files changed, 952 insertions(+), 1 deletion(-) create mode 100644 configs/_base_/datasets/cityscapes_1024x1024.py create mode 100644 configs/_base_/models/bisenetv2.py create mode 100644 configs/bisenetv2/README.md create mode 100644 configs/bisenetv2/bisenetv2.yml create mode 100644 configs/bisenetv2/bisenetv2_fcn_4x4_1024x1024_160k_cityscapes.py create mode 100644 configs/bisenetv2/bisenetv2_fcn_4x8_1024x1024_160k_cityscapes.py create mode 100644 configs/bisenetv2/bisenetv2_fcn_fp16_4x4_1024x1024_160k_cityscapes.py create mode 100644 configs/bisenetv2/bisenetv2_fcn_ohem_4x4_1024x1024_160k_cityscapes.py create mode 100644 mmseg/models/backbones/bisenetv2.py create mode 100644 tests/test_models/test_backbones/test_bisenetv2.py diff --git a/README.md b/README.md index 1ca1735346..21c08021ba 100644 --- a/README.md +++ b/README.md @@ -94,6 +94,7 @@ Supported methods: - [x] [PointRend (CVPR'2020)](configs/point_rend) - [x] [CGNet (TIP'2020)](configs/cgnet) - [x] [SETR (CVPR'2021)](configs/setr) +- [x] [BiSeNetV2 (IJCV'2021)](configs/bisenetv2) - [x] [SegFormer (ArXiv'2021)](configs/segformer) Supported datasets: diff --git a/README_zh-CN.md b/README_zh-CN.md index 7adc191b42..51e78f7ab1 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -93,6 +93,7 @@ MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 O - [x] [PointRend (CVPR'2020)](configs/point_rend) - [x] [CGNet (TIP'2020)](configs/cgnet) - [x] [SETR (CVPR'2021)](configs/setr) +- [x] [BiSeNetV2 (IJCV'2021)](configs/bisenetv2) - [x] [SegFormer (ArXiv'2021)](configs/segformer) 已支持的数据集: diff --git a/configs/_base_/datasets/cityscapes_1024x1024.py b/configs/_base_/datasets/cityscapes_1024x1024.py new file mode 100644 index 0000000000..f98d929723 --- /dev/null +++ b/configs/_base_/datasets/cityscapes_1024x1024.py @@ -0,0 +1,35 @@ +_base_ = './cityscapes.py' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) +crop_size = (1024, 1024) +train_pipeline = [ + dict(type='LoadImageFromFile'), + dict(type='LoadAnnotations'), + dict(type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)), + dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='RandomFlip', prob=0.5), + dict(type='PhotoMetricDistortion'), + dict(type='Normalize', **img_norm_cfg), + dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255), + dict(type='DefaultFormatBundle'), + dict(type='Collect', keys=['img', 'gt_semantic_seg']), +] +test_pipeline = [ + dict(type='LoadImageFromFile'), + dict( + type='MultiScaleFlipAug', + img_scale=(2048, 1024), + # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75], + flip=False, + transforms=[ + dict(type='Resize', keep_ratio=True), + dict(type='RandomFlip'), + dict(type='Normalize', **img_norm_cfg), + dict(type='ImageToTensor', keys=['img']), + dict(type='Collect', keys=['img']), + ]) +] +data = dict( + train=dict(pipeline=train_pipeline), + val=dict(pipeline=test_pipeline), + test=dict(pipeline=test_pipeline)) diff --git a/configs/_base_/models/bisenetv2.py b/configs/_base_/models/bisenetv2.py new file mode 100644 index 0000000000..f8fffeecad --- /dev/null +++ b/configs/_base_/models/bisenetv2.py @@ -0,0 +1,80 @@ +# model settings +norm_cfg = dict(type='SyncBN', requires_grad=True) +model = dict( + type='EncoderDecoder', + pretrained=None, + backbone=dict( + type='BiSeNetV2', + detail_channels=(64, 64, 128), + semantic_channels=(16, 32, 64, 128), + semantic_expansion_ratio=6, + bga_channels=128, + out_indices=(0, 1, 2, 3, 4), + init_cfg=None, + align_corners=False), + decode_head=dict( + type='FCNHead', + in_channels=128, + in_index=0, + channels=1024, + num_convs=1, + concat_input=False, + dropout_ratio=0.1, + num_classes=19, + norm_cfg=norm_cfg, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + auxiliary_head=[ + dict( + type='FCNHead', + in_channels=16, + channels=16, + num_convs=2, + num_classes=19, + in_index=1, + norm_cfg=norm_cfg, + concat_input=False, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + dict( + type='FCNHead', + in_channels=32, + channels=64, + num_convs=2, + num_classes=19, + in_index=2, + norm_cfg=norm_cfg, + concat_input=False, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + dict( + type='FCNHead', + in_channels=64, + channels=256, + num_convs=2, + num_classes=19, + in_index=3, + norm_cfg=norm_cfg, + concat_input=False, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + dict( + type='FCNHead', + in_channels=128, + channels=1024, + num_convs=2, + num_classes=19, + in_index=4, + norm_cfg=norm_cfg, + concat_input=False, + align_corners=False, + loss_decode=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)), + ], + # model training and testing settings + train_cfg=dict(), + test_cfg=dict(mode='whole')) diff --git a/configs/bisenetv2/README.md b/configs/bisenetv2/README.md new file mode 100644 index 0000000000..48ecf06557 --- /dev/null +++ b/configs/bisenetv2/README.md @@ -0,0 +1,33 @@ +# Bisenet v2: Bilateral Network with Guided Aggregation for Real-time Semantic Segmentation + +## Introduction + + + +```latex +@article{yu2021bisenet, + title={Bisenet v2: Bilateral network with guided aggregation for real-time semantic segmentation}, + author={Yu, Changqian and Gao, Changxin and Wang, Jingbo and Yu, Gang and Shen, Chunhua and Sang, Nong}, + journal={International Journal of Computer Vision}, + pages={1--18}, + year={2021}, + publisher={Springer} +} +``` + +## Results and models + +### Cityscapes + +| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download | +| ------ | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | --------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| BiSeNetV2 | BiSeNetV2 | 1024x1024 | 160000 | 7.64 | 31.77 | 73.21 | 75.74 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/bisenetv2/bisenetv2_fcn_4x4_1024x1024_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv2/bisenetv2_fcn_4x4_1024x1024_160k_cityscapes/bisenetv2_fcn_4x4_1024x1024_160k_cityscapes_20210902_015551-bcf10f09.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv2/bisenetv2_fcn_4x4_1024x1024_160k_cityscapes/bisenetv2_fcn_4x4_1024x1024_160k_cityscapes_20210902_015551.log.json) | +| BiSeNetV2 (OHEM) | BiSeNetV2 | 1024x1024 | 160000 | 7.64 | - | 73.57 | 75.80 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/bisenetv2/bisenetv2_fcn_ohem_4x4_1024x1024_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv2/bisenetv2_fcn_ohem_4x4_1024x1024_160k_cityscapes/bisenetv2_fcn_ohem_4x4_1024x1024_160k_cityscapes_20210902_112947-5f8103b4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv2/bisenetv2_fcn_ohem_4x4_1024x1024_160k_cityscapes/bisenetv2_fcn_ohem_4x4_1024x1024_160k_cityscapes_20210902_112947.log.json) | +| BiSeNetV2 (4x8) | BiSeNetV2 | 1024x1024 | 160000 | 15.05 | - | 75.76 | 77.79 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/bisenetv2/bisenetv2_fcn_4x8_1024x1024_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv2/bisenetv2_fcn_4x8_1024x1024_160k_cityscapes/bisenetv2_fcn_4x8_1024x1024_160k_cityscapes_20210903_000032-e1a2eed6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv2/bisenetv2_fcn_4x8_1024x1024_160k_cityscapes/bisenetv2_fcn_4x8_1024x1024_160k_cityscapes_20210903_000032.log.json) | +| BiSeNetV2 (FP16) | BiSeNetV2 | 1024x1024 | 160000 | 5.77 | 36.65 | 73.07 | 75.13 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/bisenetv2/bisenetv2_fcn_fp16_4x4_1024x1024_160k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv2/bisenetv2_fcn_fp16_4x4_1024x1024_160k_cityscapes/bisenetv2_fcn_fp16_4x4_1024x1024_160k_cityscapes_20210902_045942-b979777b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv2/bisenetv2_fcn_fp16_4x4_1024x1024_160k_cityscapes/bisenetv2_fcn_fp16_4x4_1024x1024_160k_cityscapes_20210902_045942.log.json) | + +Note: + +- `OHEM` means Online Hard Example Mining (OHEM) is adopted in training. +- `FP16` means Mixed Precision (FP16) is adopted in training. +- `4x8` means 4 GPUs with 8 samples per GPU in training. diff --git a/configs/bisenetv2/bisenetv2.yml b/configs/bisenetv2/bisenetv2.yml new file mode 100644 index 0000000000..7c98dd23d1 --- /dev/null +++ b/configs/bisenetv2/bisenetv2.yml @@ -0,0 +1,80 @@ +Collections: +- Metadata: + Training Data: + - Cityscapes + Name: bisenetv2 +Models: +- Config: configs/bisenetv2/bisenetv2_fcn_4x4_1024x1024_160k_cityscapes.py + In Collection: bisenetv2 + Metadata: + backbone: BiSeNetV2 + crop size: (1024,1024) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (1024,1024) + value: 31.48 + lr schd: 160000 + memory (GB): 7.64 + Name: bisenetv2_fcn_4x4_1024x1024_160k_cityscapes + Results: + Dataset: Cityscapes + Metrics: + mIoU: 73.21 + mIoU(ms+flip): 75.74 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv2/bisenetv2_fcn_4x4_1024x1024_160k_cityscapes/bisenetv2_fcn_4x4_1024x1024_160k_cityscapes_20210902_015551-bcf10f09.pth +- Config: configs/bisenetv2/bisenetv2_fcn_ohem_4x4_1024x1024_160k_cityscapes.py + In Collection: bisenetv2 + Metadata: + backbone: BiSeNetV2 + crop size: (1024,1024) + lr schd: 160000 + memory (GB): 7.64 + Name: bisenetv2_fcn_ohem_4x4_1024x1024_160k_cityscapes + Results: + Dataset: Cityscapes + Metrics: + mIoU: 73.57 + mIoU(ms+flip): 75.8 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv2/bisenetv2_fcn_ohem_4x4_1024x1024_160k_cityscapes/bisenetv2_fcn_ohem_4x4_1024x1024_160k_cityscapes_20210902_112947-5f8103b4.pth +- Config: configs/bisenetv2/bisenetv2_fcn_4x8_1024x1024_160k_cityscapes.py + In Collection: bisenetv2 + Metadata: + backbone: BiSeNetV2 + crop size: (1024,1024) + lr schd: 160000 + memory (GB): 15.05 + Name: bisenetv2_fcn_4x8_1024x1024_160k_cityscapes + Results: + Dataset: Cityscapes + Metrics: + mIoU: 75.76 + mIoU(ms+flip): 77.79 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv2/bisenetv2_fcn_4x8_1024x1024_160k_cityscapes/bisenetv2_fcn_4x8_1024x1024_160k_cityscapes_20210903_000032-e1a2eed6.pth +- Config: configs/bisenetv2/bisenetv2_fcn_fp16_4x4_1024x1024_160k_cityscapes.py + In Collection: bisenetv2 + Metadata: + backbone: BiSeNetV2 + crop size: (1024,1024) + inference time (ms/im): + - backend: PyTorch + batch size: 1 + hardware: V100 + mode: FP32 + resolution: (1024,1024) + value: 27.29 + lr schd: 160000 + memory (GB): 5.77 + Name: bisenetv2_fcn_fp16_4x4_1024x1024_160k_cityscapes + Results: + Dataset: Cityscapes + Metrics: + mIoU: 73.07 + mIoU(ms+flip): 75.13 + Task: Semantic Segmentation + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/bisenetv2/bisenetv2_fcn_fp16_4x4_1024x1024_160k_cityscapes/bisenetv2_fcn_fp16_4x4_1024x1024_160k_cityscapes_20210902_045942-b979777b.pth diff --git a/configs/bisenetv2/bisenetv2_fcn_4x4_1024x1024_160k_cityscapes.py b/configs/bisenetv2/bisenetv2_fcn_4x4_1024x1024_160k_cityscapes.py new file mode 100644 index 0000000000..1248bd87aa --- /dev/null +++ b/configs/bisenetv2/bisenetv2_fcn_4x4_1024x1024_160k_cityscapes.py @@ -0,0 +1,11 @@ +_base_ = [ + '../_base_/models/bisenetv2.py', + '../_base_/datasets/cityscapes_1024x1024.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' +] +lr_config = dict(warmup='linear', warmup_iters=1000) +optimizer = dict(lr=0.05) +data = dict( + samples_per_gpu=4, + workers_per_gpu=4, +) diff --git a/configs/bisenetv2/bisenetv2_fcn_4x8_1024x1024_160k_cityscapes.py b/configs/bisenetv2/bisenetv2_fcn_4x8_1024x1024_160k_cityscapes.py new file mode 100644 index 0000000000..babc2cd74a --- /dev/null +++ b/configs/bisenetv2/bisenetv2_fcn_4x8_1024x1024_160k_cityscapes.py @@ -0,0 +1,11 @@ +_base_ = [ + '../_base_/models/bisenetv2.py', + '../_base_/datasets/cityscapes_1024x1024.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' +] +lr_config = dict(warmup='linear', warmup_iters=1000) +optimizer = dict(lr=0.05) +data = dict( + samples_per_gpu=8, + workers_per_gpu=8, +) diff --git a/configs/bisenetv2/bisenetv2_fcn_fp16_4x4_1024x1024_160k_cityscapes.py b/configs/bisenetv2/bisenetv2_fcn_fp16_4x4_1024x1024_160k_cityscapes.py new file mode 100644 index 0000000000..0196214b7d --- /dev/null +++ b/configs/bisenetv2/bisenetv2_fcn_fp16_4x4_1024x1024_160k_cityscapes.py @@ -0,0 +1,5 @@ +_base_ = './bisenetv2_fcn_4x4_1024x1024_160k_cityscapes.py' +# fp16 settings +optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.) +# fp16 placeholder +fp16 = dict() diff --git a/configs/bisenetv2/bisenetv2_fcn_ohem_4x4_1024x1024_160k_cityscapes.py b/configs/bisenetv2/bisenetv2_fcn_ohem_4x4_1024x1024_160k_cityscapes.py new file mode 100644 index 0000000000..f14e528130 --- /dev/null +++ b/configs/bisenetv2/bisenetv2_fcn_ohem_4x4_1024x1024_160k_cityscapes.py @@ -0,0 +1,12 @@ +_base_ = [ + '../_base_/models/bisenetv2.py', + '../_base_/datasets/cityscapes_1024x1024.py', + '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py' +] +sampler = dict(type='OHEMPixelSampler', thresh=0.7, min_kept=10000) +lr_config = dict(warmup='linear', warmup_iters=1000) +optimizer = dict(lr=0.05) +data = dict( + samples_per_gpu=4, + workers_per_gpu=4, +) diff --git a/mmseg/models/backbones/__init__.py b/mmseg/models/backbones/__init__.py index 75ef2c3a86..24e2397235 100644 --- a/mmseg/models/backbones/__init__.py +++ b/mmseg/models/backbones/__init__.py @@ -1,4 +1,5 @@ # Copyright (c) OpenMMLab. All rights reserved. +from .bisenetv2 import BiSeNetV2 from .cgnet import CGNet from .fast_scnn import FastSCNN from .hrnet import HRNet @@ -15,5 +16,5 @@ __all__ = [ 'ResNet', 'ResNetV1c', 'ResNetV1d', 'ResNeXt', 'HRNet', 'FastSCNN', 'ResNeSt', 'MobileNetV2', 'UNet', 'CGNet', 'MobileNetV3', - 'VisionTransformer', 'SwinTransformer', 'MixVisionTransformer' + 'VisionTransformer', 'SwinTransformer', 'MixVisionTransformer', 'BiSeNetV2' ] diff --git a/mmseg/models/backbones/bisenetv2.py b/mmseg/models/backbones/bisenetv2.py new file mode 100644 index 0000000000..eb05e10d52 --- /dev/null +++ b/mmseg/models/backbones/bisenetv2.py @@ -0,0 +1,622 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +import torch.nn as nn +from mmcv.cnn import (ConvModule, DepthwiseSeparableConvModule, + build_activation_layer, build_norm_layer) +from mmcv.runner import BaseModule + +from mmseg.ops import resize +from ..builder import BACKBONES + + +class DetailBranch(BaseModule): + """Detail Branch with wide channels and shallow layers to capture low-level + details and generate high-resolution feature representation. + + Args: + detail_channels (Tuple[int]): Size of channel numbers of each stage + in Detail Branch, in paper it has 3 stages. + Default: (64, 64, 128). + in_channels (int): Number of channels of input image. Default: 3. + conv_cfg (dict | None): Config of conv layers. + Default: None. + norm_cfg (dict | None): Config of norm layers. + Default: dict(type='BN'). + act_cfg (dict): Config of activation layers. + Default: dict(type='ReLU'). + init_cfg (dict or list[dict], optional): Initialization config dict. + Default: None. + Returns: + x (torch.Tensor): Feature map of Detail Branch. + """ + + def __init__(self, + detail_channels=(64, 64, 128), + in_channels=3, + conv_cfg=None, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + init_cfg=None): + super(DetailBranch, self).__init__(init_cfg=init_cfg) + detail_branch = [] + for i in range(len(detail_channels)): + if i == 0: + detail_branch.append( + nn.Sequential( + ConvModule( + in_channels=in_channels, + out_channels=detail_channels[i], + kernel_size=3, + stride=2, + padding=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg), + ConvModule( + in_channels=detail_channels[i], + out_channels=detail_channels[i], + kernel_size=3, + stride=1, + padding=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg))) + else: + detail_branch.append( + nn.Sequential( + ConvModule( + in_channels=detail_channels[i - 1], + out_channels=detail_channels[i], + kernel_size=3, + stride=2, + padding=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg), + ConvModule( + in_channels=detail_channels[i], + out_channels=detail_channels[i], + kernel_size=3, + stride=1, + padding=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg), + ConvModule( + in_channels=detail_channels[i], + out_channels=detail_channels[i], + kernel_size=3, + stride=1, + padding=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg))) + self.detail_branch = nn.ModuleList(detail_branch) + + def forward(self, x): + for stage in self.detail_branch: + x = stage(x) + return x + + +class StemBlock(BaseModule): + """Stem Block at the beginning of Semantic Branch. + + Args: + in_channels (int): Number of input channels. + Default: 3. + out_channels (int): Number of output channels. + Default: 16. + conv_cfg (dict | None): Config of conv layers. + Default: None. + norm_cfg (dict | None): Config of norm layers. + Default: dict(type='BN'). + act_cfg (dict): Config of activation layers. + Default: dict(type='ReLU'). + init_cfg (dict or list[dict], optional): Initialization config dict. + Default: None. + Returns: + x (torch.Tensor): First feature map in Semantic Branch. + """ + + def __init__(self, + in_channels=3, + out_channels=16, + conv_cfg=None, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + init_cfg=None): + super(StemBlock, self).__init__(init_cfg=init_cfg) + + self.conv_first = ConvModule( + in_channels=in_channels, + out_channels=out_channels, + kernel_size=3, + stride=2, + padding=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + self.convs = nn.Sequential( + ConvModule( + in_channels=out_channels, + out_channels=out_channels // 2, + kernel_size=1, + stride=1, + padding=0, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg), + ConvModule( + in_channels=out_channels // 2, + out_channels=out_channels, + kernel_size=3, + stride=2, + padding=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg)) + self.pool = nn.MaxPool2d( + kernel_size=3, stride=2, padding=1, ceil_mode=False) + self.fuse_last = ConvModule( + in_channels=out_channels * 2, + out_channels=out_channels, + kernel_size=3, + stride=1, + padding=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + + def forward(self, x): + x = self.conv_first(x) + x_left = self.convs(x) + x_right = self.pool(x) + x = self.fuse_last(torch.cat([x_left, x_right], dim=1)) + return x + + +class GELayer(BaseModule): + """Gather-and-Expansion Layer. + + Args: + in_channels (int): Number of input channels. + out_channels (int): Number of output channels. + exp_ratio (int): Expansion ratio for middle channels. + Default: 6. + stride (int): Stride of GELayer. Default: 1 + conv_cfg (dict | None): Config of conv layers. + Default: None. + norm_cfg (dict | None): Config of norm layers. + Default: dict(type='BN'). + act_cfg (dict): Config of activation layers. + Default: dict(type='ReLU'). + init_cfg (dict or list[dict], optional): Initialization config dict. + Default: None. + Returns: + x (torch.Tensor): Intermidiate feature map in + Semantic Branch. + """ + + def __init__(self, + in_channels, + out_channels, + exp_ratio=6, + stride=1, + conv_cfg=None, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + init_cfg=None): + super(GELayer, self).__init__(init_cfg=init_cfg) + mid_channel = in_channels * exp_ratio + self.conv1 = ConvModule( + in_channels=in_channels, + out_channels=in_channels, + kernel_size=3, + stride=1, + padding=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + if stride == 1: + self.dwconv = nn.Sequential( + # ReLU in ConvModule not shown in paper + ConvModule( + in_channels=in_channels, + out_channels=mid_channel, + kernel_size=3, + stride=stride, + padding=1, + groups=in_channels, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg)) + self.shortcut = None + else: + self.dwconv = nn.Sequential( + ConvModule( + in_channels=in_channels, + out_channels=mid_channel, + kernel_size=3, + stride=stride, + padding=1, + groups=in_channels, + bias=False, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=None), + # ReLU in ConvModule not shown in paper + ConvModule( + in_channels=mid_channel, + out_channels=mid_channel, + kernel_size=3, + stride=1, + padding=1, + groups=mid_channel, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg), + ) + self.shortcut = nn.Sequential( + DepthwiseSeparableConvModule( + in_channels=in_channels, + out_channels=out_channels, + kernel_size=3, + stride=stride, + padding=1, + dw_norm_cfg=norm_cfg, + dw_act_cfg=None, + pw_norm_cfg=norm_cfg, + pw_act_cfg=None, + )) + + self.conv2 = nn.Sequential( + ConvModule( + in_channels=mid_channel, + out_channels=out_channels, + kernel_size=1, + stride=1, + padding=0, + bias=False, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=None, + )) + + self.act = build_activation_layer(act_cfg) + + def forward(self, x): + identity = x + x = self.conv1(x) + x = self.dwconv(x) + x = self.conv2(x) + if self.shortcut is not None: + shortcut = self.shortcut(identity) + x = x + shortcut + else: + x = x + identity + x = self.act(x) + return x + + +class CEBlock(BaseModule): + """Context Embedding Block for large receptive filed in Semantic Branch. + + Args: + in_channels (int): Number of input channels. + Default: 3. + out_channels (int): Number of output channels. + Default: 16. + conv_cfg (dict | None): Config of conv layers. + Default: None. + norm_cfg (dict | None): Config of norm layers. + Default: dict(type='BN'). + act_cfg (dict): Config of activation layers. + Default: dict(type='ReLU'). + init_cfg (dict or list[dict], optional): Initialization config dict. + Default: None. + Returns: + x (torch.Tensor): Last feature map in Semantic Branch. + """ + + def __init__(self, + in_channels=3, + out_channels=16, + conv_cfg=None, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + init_cfg=None): + super(CEBlock, self).__init__(init_cfg=init_cfg) + self.in_channels = in_channels + self.out_channels = out_channels + self.gap = nn.Sequential( + nn.AdaptiveAvgPool2d((1, 1)), + build_norm_layer(norm_cfg, self.in_channels)[1]) + self.conv_gap = ConvModule( + in_channels=self.in_channels, + out_channels=self.out_channels, + kernel_size=1, + stride=1, + padding=0, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + # Note: in paper here is naive conv2d, no bn-relu + self.conv_last = ConvModule( + in_channels=self.out_channels, + out_channels=self.out_channels, + kernel_size=3, + stride=1, + padding=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + + def forward(self, x): + identity = x + x = self.gap(x) + x = self.conv_gap(x) + x = identity + x + x = self.conv_last(x) + return x + + +class SemanticBranch(BaseModule): + """Semantic Branch which is lightweight with narrow channels and deep + layers to obtain high-level semantic context. + + Args: + semantic_channels(Tuple[int]): Size of channel numbers of + various stages in Semantic Branch. + Default: (16, 32, 64, 128). + in_channels (int): Number of channels of input image. Default: 3. + exp_ratio (int): Expansion ratio for middle channels. + Default: 6. + init_cfg (dict or list[dict], optional): Initialization config dict. + Default: None. + Returns: + semantic_outs (List[torch.Tensor]): List of several feature maps + for auxiliary heads (Booster) and Bilateral + Guided Aggregation Layer. + """ + + def __init__(self, + semantic_channels=(16, 32, 64, 128), + in_channels=3, + exp_ratio=6, + init_cfg=None): + super(SemanticBranch, self).__init__(init_cfg=init_cfg) + self.in_channels = in_channels + self.semantic_channels = semantic_channels + self.semantic_stages = [] + for i in range(len(semantic_channels)): + stage_name = f'stage{i + 1}' + self.semantic_stages.append(stage_name) + if i == 0: + self.add_module( + stage_name, + StemBlock(self.in_channels, semantic_channels[i])) + elif i == (len(semantic_channels) - 1): + self.add_module( + stage_name, + nn.Sequential( + GELayer(semantic_channels[i - 1], semantic_channels[i], + exp_ratio, 2), + GELayer(semantic_channels[i], semantic_channels[i], + exp_ratio, 1), + GELayer(semantic_channels[i], semantic_channels[i], + exp_ratio, 1), + GELayer(semantic_channels[i], semantic_channels[i], + exp_ratio, 1))) + else: + self.add_module( + stage_name, + nn.Sequential( + GELayer(semantic_channels[i - 1], semantic_channels[i], + exp_ratio, 2), + GELayer(semantic_channels[i], semantic_channels[i], + exp_ratio, 1))) + + self.add_module(f'stage{len(semantic_channels)}_CEBlock', + CEBlock(semantic_channels[-1], semantic_channels[-1])) + self.semantic_stages.append(f'stage{len(semantic_channels)}_CEBlock') + + def forward(self, x): + semantic_outs = [] + for stage_name in self.semantic_stages: + semantic_stage = getattr(self, stage_name) + x = semantic_stage(x) + semantic_outs.append(x) + return semantic_outs + + +class BGALayer(BaseModule): + """Bilateral Guided Aggregation Layer to fuse the complementary information + from both Detail Branch and Semantic Branch. + + Args: + out_channels (int): Number of output channels. + Default: 128. + align_corners (bool): align_corners argument of F.interpolate. + Default: False. + conv_cfg (dict | None): Config of conv layers. + Default: None. + norm_cfg (dict | None): Config of norm layers. + Default: dict(type='BN'). + act_cfg (dict): Config of activation layers. + Default: dict(type='ReLU'). + init_cfg (dict or list[dict], optional): Initialization config dict. + Default: None. + Returns: + output (torch.Tensor): Output feature map for Segment heads. + """ + + def __init__(self, + out_channels=128, + align_corners=False, + conv_cfg=None, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + init_cfg=None): + super(BGALayer, self).__init__(init_cfg=init_cfg) + self.out_channels = out_channels + self.align_corners = align_corners + self.detail_dwconv = nn.Sequential( + DepthwiseSeparableConvModule( + in_channels=self.out_channels, + out_channels=self.out_channels, + kernel_size=3, + stride=1, + padding=1, + dw_norm_cfg=norm_cfg, + dw_act_cfg=None, + pw_norm_cfg=None, + pw_act_cfg=None, + )) + self.detail_down = nn.Sequential( + ConvModule( + in_channels=self.out_channels, + out_channels=self.out_channels, + kernel_size=3, + stride=2, + padding=1, + bias=False, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=None), + nn.AvgPool2d(kernel_size=3, stride=2, padding=1, ceil_mode=False)) + self.semantic_conv = nn.Sequential( + ConvModule( + in_channels=self.out_channels, + out_channels=self.out_channels, + kernel_size=3, + stride=1, + padding=1, + bias=False, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=None)) + self.semantic_dwconv = nn.Sequential( + DepthwiseSeparableConvModule( + in_channels=self.out_channels, + out_channels=self.out_channels, + kernel_size=3, + stride=1, + padding=1, + dw_norm_cfg=norm_cfg, + dw_act_cfg=None, + pw_norm_cfg=None, + pw_act_cfg=None, + )) + self.conv = ConvModule( + in_channels=self.out_channels, + out_channels=self.out_channels, + kernel_size=3, + stride=1, + padding=1, + inplace=True, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg, + ) + + def forward(self, x_d, x_s): + detail_dwconv = self.detail_dwconv(x_d) + detail_down = self.detail_down(x_d) + semantic_conv = self.semantic_conv(x_s) + semantic_dwconv = self.semantic_dwconv(x_s) + semantic_conv = resize( + input=semantic_conv, + size=detail_dwconv.shape[2:], + mode='bilinear', + align_corners=self.align_corners) + fuse_1 = detail_dwconv * torch.sigmoid(semantic_conv) + fuse_2 = detail_down * torch.sigmoid(semantic_dwconv) + fuse_2 = resize( + input=fuse_2, + size=fuse_1.shape[2:], + mode='bilinear', + align_corners=self.align_corners) + output = self.conv(fuse_1 + fuse_2) + return output + + +@BACKBONES.register_module() +class BiSeNetV2(BaseModule): + """BiSeNetV2: Bilateral Network with Guided Aggregation for + Real-time Semantic Segmentation. + + This backbone is the implementation of + `BiSeNetV2 `_. + + Args: + in_channels (int): Number of channel of input image. Default: 3. + detail_channels (Tuple[int], optional): Channels of each stage + in Detail Branch. Default: (64, 64, 128). + semantic_channels (Tuple[int], optional): Channels of each stage + in Semantic Branch. Default: (16, 32, 64, 128). + See Table 1 and Figure 3 of paper for more details. + semantic_expansion_ratio (int, optional): The expansion factor + expanding channel number of middle channels in Semantic Branch. + Default: 6. + bga_channels (int, optional): Number of middle channels in + Bilateral Guided Aggregation Layer. Default: 128. + out_indices (Tuple[int] | int, optional): Output from which stages. + Default: (0, 1, 2, 3, 4). + align_corners (bool, optional): The align_corners argument of + resize operation in Bilateral Guided Aggregation Layer. + Default: False. + conv_cfg (dict | None): Config of conv layers. + Default: None. + norm_cfg (dict | None): Config of norm layers. + Default: dict(type='BN'). + act_cfg (dict): Config of activation layers. + Default: dict(type='ReLU'). + init_cfg (dict or list[dict], optional): Initialization config dict. + Default: None. + """ + + def __init__(self, + in_channels=3, + detail_channels=(64, 64, 128), + semantic_channels=(16, 32, 64, 128), + semantic_expansion_ratio=6, + bga_channels=128, + out_indices=(0, 1, 2, 3, 4), + align_corners=False, + conv_cfg=None, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU'), + init_cfg=None): + if init_cfg is None: + init_cfg = [ + dict(type='Kaiming', layer='Conv2d'), + dict( + type='Constant', val=1, layer=['_BatchNorm', 'GroupNorm']) + ] + super(BiSeNetV2, self).__init__(init_cfg=init_cfg) + self.in_channels = in_channels + self.out_indices = out_indices + self.detail_channels = detail_channels + self.semantic_channels = semantic_channels + self.semantic_expansion_ratio = semantic_expansion_ratio + self.bga_channels = bga_channels + self.align_corners = align_corners + self.conv_cfg = conv_cfg + self.norm_cfg = norm_cfg + self.act_cfg = act_cfg + + self.detail = DetailBranch(self.detail_channels, self.in_channels) + self.semantic = SemanticBranch(self.semantic_channels, + self.in_channels, + self.semantic_expansion_ratio) + self.bga = BGALayer(self.bga_channels, self.align_corners) + + def forward(self, x): + # stole refactoring code from Coin Cheung, thanks + x_detail = self.detail(x) + x_semantic_lst = self.semantic(x) + x_head = self.bga(x_detail, x_semantic_lst[-1]) + outs = [x_head] + x_semantic_lst[:-1] + outs = [outs[i] for i in self.out_indices] + return tuple(outs) diff --git a/mmseg/models/backbones/swin.py b/mmseg/models/backbones/swin.py index 424c456cb3..7de1883678 100644 --- a/mmseg/models/backbones/swin.py +++ b/mmseg/models/backbones/swin.py @@ -25,6 +25,7 @@ class PatchMerging(BaseModule): This layer use nn.Unfold to group feature map by kernel_size, and use norm and linear layer to embed grouped feature map. + Args: in_channels (int): The num of input channels. out_channels (int): The num of output channels. diff --git a/model-index.yml b/model-index.yml index 21a1f0bdc9..1fa927ad92 100644 --- a/model-index.yml +++ b/model-index.yml @@ -1,6 +1,7 @@ Import: - configs/ann/ann.yml - configs/apcnet/apcnet.yml +- configs/bisenetv2/bisenetv2.yml - configs/ccnet/ccnet.yml - configs/cgnet/cgnet.yml - configs/danet/danet.yml diff --git a/tests/test_models/test_backbones/test_bisenetv2.py b/tests/test_models/test_backbones/test_bisenetv2.py new file mode 100644 index 0000000000..a1d1adc5f9 --- /dev/null +++ b/tests/test_models/test_backbones/test_bisenetv2.py @@ -0,0 +1,57 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +from mmcv.cnn import ConvModule + +from mmseg.models.backbones import BiSeNetV2 +from mmseg.models.backbones.bisenetv2 import (BGALayer, DetailBranch, + SemanticBranch) + + +def test_bisenetv2_backbone(): + # Test BiSeNetV2 Standard Forward + model = BiSeNetV2() + model.init_weights() + model.train() + batch_size = 2 + imgs = torch.randn(batch_size, 3, 512, 1024) + feat = model(imgs) + + assert len(feat) == 5 + # output for segment Head + assert feat[0].shape == torch.Size([batch_size, 128, 64, 128]) + # for auxiliary head 1 + assert feat[1].shape == torch.Size([batch_size, 16, 128, 256]) + # for auxiliary head 2 + assert feat[2].shape == torch.Size([batch_size, 32, 64, 128]) + # for auxiliary head 3 + assert feat[3].shape == torch.Size([batch_size, 64, 32, 64]) + # for auxiliary head 4 + assert feat[4].shape == torch.Size([batch_size, 128, 16, 32]) + + # Test input with rare shape + batch_size = 2 + imgs = torch.randn(batch_size, 3, 527, 952) + feat = model(imgs) + assert len(feat) == 5 + + +def test_bisenetv2_DetailBranch(): + x = torch.randn(1, 3, 512, 1024) + detail_branch = DetailBranch(detail_channels=(64, 64, 128)) + assert isinstance(detail_branch.detail_branch[0][0], ConvModule) + x_out = detail_branch(x) + assert x_out.shape == torch.Size([1, 128, 64, 128]) + + +def test_bisenetv2_SemanticBranch(): + semantic_branch = SemanticBranch(semantic_channels=(16, 32, 64, 128)) + assert semantic_branch.stage1.pool.stride == 2 + + +def test_bisenetv2_BGALayer(): + x_a = torch.randn(1, 128, 64, 128) + x_b = torch.randn(1, 128, 16, 32) + bga = BGALayer() + assert isinstance(bga.conv, ConvModule) + x_out = bga(x_a, x_b) + assert x_out.shape == torch.Size([1, 128, 64, 128]) From d96937a003049944491feceb13b01085a4f35c92 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Mon, 27 Sep 2021 13:25:21 +0800 Subject: [PATCH 247/706] [Enhancement] Using docker to skip CUDA installation in CI (#882) * Use docker to skip CUDA installation in CI * Update .github/workflows/build.yml Co-authored-by: Jerry Jiarui XU * Remove Install system dependencies * Add Install system dependencies for cuda usage * Add Install system dependencies and requirements * fix requirements error Co-authored-by: Jerry Jiarui XU --- .github/workflows/build.yml | 201 +++++++++++++++++++++++------------- 1 file changed, 131 insertions(+), 70 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6bb5a4d144..d655564acd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,6 +1,6 @@ name: build -on: [ push, pull_request ] +on: [push, pull_request] jobs: lint: @@ -8,7 +8,7 @@ jobs: steps: - uses: actions/checkout@v2 - name: Set up Python 3.7 - uses: actions/setup-python@v1 + uses: actions/setup-python@v2 with: python-version: 3.7 - name: Install pre-commit hook @@ -17,25 +17,36 @@ jobs: pre-commit install - name: Linting run: pre-commit run --all-files - - name: Check docstring + - name: Check docstring coverage run: | pip install interrogate interrogate -v --ignore-init-method --ignore-module --ignore-nested-functions --exclude mmseg/ops --ignore-regex "__repr__" --fail-under 80 mmseg + build_cpu: runs-on: ubuntu-18.04 strategy: matrix: python-version: [3.7] - torch: [1.3.0, 1.5.0, 1.7.0, 1.9.0] + torch: [1.3.1, 1.5.1, 1.6.0, 1.7.0, 1.8.0, 1.9.0] include: - - torch: 1.3.0 - torchvision: 0.4.1 - - torch: 1.5.0 - torchvision: 0.6.0 + - torch: 1.3.1 + torchvision: 0.4.2 + mmcv: "latest+torch1.3.0+cpu" + - torch: 1.5.1 + torchvision: 0.6.1 + mmcv: "latest+torch1.5.0+cpu" + - torch: 1.6.0 + torchvision: 0.7.0 + mmcv: "latest+torch1.6.0+cpu" - torch: 1.7.0 torchvision: 0.8.1 + mmcv: "latest+torch1.7.0+cpu" + - torch: 1.8.0 + torchvision: 0.9.0 + mmcv: "latest+torch1.8.0+cpu" - torch: 1.9.0 torchvision: 0.10.0 + mmcv: "latest+torch1.9.0+cpu" steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} @@ -45,15 +56,17 @@ jobs: - name: Upgrade pip run: pip install pip --upgrade - name: Install Pillow - if: ${{matrix.torchvision == '0.4.1'}} run: pip install Pillow==6.2.2 + if: ${{matrix.torchvision == '0.4.2'}} - name: Install PyTorch run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/torch_stable.html - - name: Install mmseg dependencies + - name: Install MMCV run: | pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cpu/torch${{matrix.torch}}/index.html - pip install -r requirements.txt python -c 'import mmcv; print(mmcv.__version__)' + - name: Install unittest dependencies + run: | + pip install -r requirements.txt - name: Build and install run: rm -rf .eggs && pip install -e . - name: Run unittests and generate coverage report @@ -62,98 +75,146 @@ jobs: coverage xml coverage report -m - build_cuda: + build_cuda101: runs-on: ubuntu-18.04 - env: - UBUNTU_VERSION: ubuntu1804 + container: + image: pytorch/pytorch:1.6.0-cuda10.1-cudnn7-devel + strategy: matrix: python-version: [3.7] - torch: [1.5.0+cu101, 1.7.0+cu101, 1.8.0+cu101, 1.9.0+cu102] + torch: + [ + 1.3.1, + 1.5.1+cu101, + 1.6.0+cu101, + 1.7.0+cu101, + 1.8.0+cu101 + ] include: - - torch: 1.5.0+cu101 - torch_version: torch1.5.0 - torchvision: 0.6.0+cu101 - CUDA: 10.1.105-1 - CUDA_SHORT: 10-1 + - torch: 1.3.1 + torch_version: torch1.3.1 + torchvision: 0.4.2 + mmcv_link: "torch1.3.0" + - torch: 1.5.1+cu101 + torch_version: torch1.5.1 + torchvision: 0.6.1+cu101 + mmcv_link: "torch1.5.0" + - torch: 1.6.0+cu101 + torch_version: torch1.6.0 + torchvision: 0.7.0+cu101 + mmcv_link: "torch1.6.0" - torch: 1.7.0+cu101 torch_version: torch1.7.0 torchvision: 0.8.1+cu101 - CUDA: 10.1.105-1 - CUDA_SHORT: 10-1 + mmcv_link: "torch1.7.0" - torch: 1.8.0+cu101 torch_version: torch1.8.0 torchvision: 0.9.0+cu101 - CUDA: 10.1.105-1 - CUDA_SHORT: 10-1 + mmcv_link: "torch1.8.0" + + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install system dependencies + run: | + apt-get update && apt-get install -y ffmpeg libsm6 libxext6 git ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 python${{matrix.python-version}}-dev + apt-get clean + rm -rf /var/lib/apt/lists/* + - name: Install Pillow + run: python -m pip install Pillow==6.2.2 + if: ${{matrix.torchvision < 0.5}} + - name: Install PyTorch + run: python -m pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html + - name: Install dependencies for compiling onnx when python=3.9 + run: python -m pip install protobuf && apt-get install libprotobuf-dev protobuf-compiler + if: ${{matrix.python-version == '3.9'}} + - name: Install mmseg dependencies + run: | + python -V + python -m pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu101/${{matrix.mmcv_link}}/index.html + python -m pip install -r requirements.txt + python -c 'import mmcv; print(mmcv.__version__)' + - name: Build and install + run: | + rm -rf .eggs + python setup.py check -m -s + TORCH_CUDA_ARCH_LIST=7.0 pip install . + - name: Run unittests and generate coverage report + run: | + coverage run --branch --source mmseg -m pytest tests/ + coverage xml + coverage report -m + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v1.0.10 + with: + file: ./coverage.xml + flags: unittests + env_vars: OS,PYTHON + name: codecov-umbrella + fail_ci_if_error: false + + build_cuda102: + runs-on: ubuntu-18.04 + container: + image: pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel + + strategy: + matrix: + python-version: [3.6, 3.7, 3.8, 3.9-dev] + torch: [1.9.0+cu102] + include: - torch: 1.9.0+cu102 torch_version: torch1.9.0 torchvision: 0.10.0+cu102 - CUDA: 10.2.89-1 - CUDA_SHORT: 10-2 - - python-version: 3.6 - torch: 1.8.0+cu101 - torch_version: torch1.8.0 - torchvision: 0.9.0+cu101 - CUDA: 10.1.105-1 - CUDA_SHORT: 10-1 - - python-version: 3.8 - torch: 1.8.0+cu101 - torch_version: torch1.8.0 - torchvision: 0.9.0+cu101 - CUDA: 10.1.105-1 - CUDA_SHORT: 10-1 - - python-version: 3.9 - torch: 1.8.0+cu101 - torch_version: torch1.8.0 - torchvision: 0.9.0+cu101 - CUDA: 10.1.105-1 - CUDA_SHORT: 10-1 + mmcv_link: "torch1.9.0" + steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - - name: Upgrade pip - run: pip install pip --upgrade - - name: Install CUDA + - name: Install python-dev + run: apt-get update && apt-get install -y python${{matrix.python-version}}-dev + if: ${{matrix.python-version != '3.9-dev'}} + - name: Install system dependencies run: | - export INSTALLER=cuda-repo-${UBUNTU_VERSION}_${{matrix.CUDA}}_amd64.deb - wget http://developer.download.nvidia.com/compute/cuda/repos/${UBUNTU_VERSION}/x86_64/${INSTALLER} - sudo dpkg -i ${INSTALLER} - wget https://developer.download.nvidia.com/compute/cuda/repos/${UBUNTU_VERSION}/x86_64/7fa2af80.pub - sudo apt-key add 7fa2af80.pub - sudo apt update -qq - sudo apt install -y cuda-${{matrix.CUDA_SHORT}} cuda-cufft-dev-${{matrix.CUDA_SHORT}} - sudo apt clean - export CUDA_HOME=/usr/local/cuda-${{matrix.CUDA_SHORT}} - export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${CUDA_HOME}/include:${LD_LIBRARY_PATH} - export PATH=${CUDA_HOME}/bin:${PATH} - sudo apt-get install -y ninja-build + apt-get update && apt-get install -y ffmpeg libsm6 libxext6 git ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 + apt-get clean + rm -rf /var/lib/apt/lists/* + - name: Install Pillow + run: python -m pip install Pillow==6.2.2 + if: ${{matrix.torchvision < 0.5}} - name: Install PyTorch - run: pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html + run: python -m pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html + - name: Install dependencies for compiling onnx when python=3.9 + run: python -m pip install protobuf && apt-get update && apt-get -y install libprotobuf-dev protobuf-compiler cmake + if: ${{matrix.python-version == '3.9-dev'}} - name: Install mmseg dependencies run: | - pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/${CUDA_SHORT/-/}/${{matrix.torch_version}}/index.html - pip install -r requirements.txt + python -V + python -m pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu102/${{matrix.mmcv_link}}/index.html + python -m pip install pycocotools + python -m pip install -r requirements.txt python -c 'import mmcv; print(mmcv.__version__)' - - name: Install dependencies for compiling onnx when python=3.9 - run: pip install protobuf && sudo apt-get install libprotobuf-dev protobuf-compiler - if: ${{matrix.python-version == '3.9'}} - name: Build and install - run: rm -rf .eggs && pip install -e . + run: | + rm -rf .eggs + python setup.py check -m -s + TORCH_CUDA_ARCH_LIST=7.0 pip install . - name: Run unittests and generate coverage report run: | coverage run --branch --source mmseg -m pytest tests/ coverage xml coverage report -m - # Only upload coverage report for python3.7 && pytorch1.5 - name: Upload coverage to Codecov - if: ${{matrix.torch == '1.5.0+cu101' && matrix.python-version == '3.7'}} - uses: codecov/codecov-action@v1.0.14 + uses: codecov/codecov-action@v2 with: - file: ./coverage.xml + files: ./coverage.xml flags: unittests env_vars: OS,PYTHON name: codecov-umbrella From 2800d43507c7ccf54143fa27eea4341fec392187 Mon Sep 17 00:00:00 2001 From: sennnnn <58427300+sennnnn@users.noreply.github.com> Date: Tue, 28 Sep 2021 16:25:37 +0800 Subject: [PATCH 248/706] [Enhancement] Change readme style and Update metafiles. (#895) * [Enhancement] Change readme style and prepare for metafiles update. * Update apcnet github repo url. * add code snippet. * split code snippet & official repo. * update md2yml hook. * Update metafiles. * Add converted from attribute. * process conflict. * Put defualt variable value. * update bisenet v2 metafile. * checkout to ubuntu environment. * pop empty attribute & make task attribute list. * update readme style * update readme style * update metafiles Co-authored-by: Junjun2016 --- .dev/md2yml.py | 112 +++++- .pre-commit-config.yaml | 2 +- README.md | 3 +- README_zh-CN.md | 3 +- configs/ann/README.md | 9 + configs/ann/ann.yml | 173 +++++---- configs/apcnet/README.md | 9 + configs/apcnet/apcnet.yml | 133 ++++--- configs/bisenetv2/README.md | 9 + configs/bisenetv2/bisenetv2.yml | 52 +-- configs/ccnet/README.md | 9 + configs/ccnet/ccnet.yml | 173 +++++---- configs/cgnet/README.md | 9 + configs/cgnet/cgnet.yml | 41 +- configs/danet/README.md | 9 + configs/danet/danet.yml | 173 +++++---- configs/deeplabv3/README.md | 9 + configs/deeplabv3/deeplabv3.yml | 415 ++++++++++---------- configs/deeplabv3plus/README.md | 9 + configs/deeplabv3plus/deeplabv3plus.yml | 356 ++++++++--------- configs/dmnet/README.md | 9 + configs/dmnet/dmnet.yml | 133 ++++--- configs/dnlnet/README.md | 9 + configs/dnlnet/dnlnet.yml | 133 ++++--- configs/dpt/README.md | 9 + configs/dpt/dpt.yml | 27 +- configs/emanet/README.md | 9 + configs/emanet/emanet.yml | 69 ++-- configs/encnet/README.md | 9 + configs/encnet/encnet.yml | 133 ++++--- configs/fastscnn/README.md | 9 + configs/fastscnn/fastscnn.yml | 25 +- configs/fcn/README.md | 9 + configs/fcn/fcn.yml | 485 ++++++++++++------------ configs/fp16/README.md | 9 + configs/fp16/fp16.yml | 69 ++-- configs/gcnet/README.md | 9 + configs/gcnet/gcnet.yml | 173 +++++---- configs/hrnet/README.md | 9 + configs/hrnet/hrnet.yml | 243 ++++++------ configs/isanet/README.md | 9 + configs/isanet/isanet.yml | 237 ++++++------ configs/mobilenet_v2/README.md | 9 + configs/mobilenet_v2/mobilenet_v2.yml | 125 +++--- configs/mobilenet_v3/README.md | 9 + configs/mobilenet_v3/mobilenet_v3.yml | 69 ++-- configs/nonlocal_net/README.md | 9 + configs/nonlocal_net/nonlocal_net.yml | 173 +++++---- configs/ocrnet/README.md | 9 + configs/ocrnet/ocrnet.yml | 271 ++++++------- configs/point_rend/README.md | 9 + configs/point_rend/point_rend.yml | 69 ++-- configs/psanet/README.md | 9 + configs/psanet/psanet.yml | 173 +++++---- configs/pspnet/README.md | 9 + configs/pspnet/pspnet.yml | 409 ++++++++++---------- configs/resnest/README.md | 9 + configs/resnest/resnest.yml | 125 +++--- configs/segformer/README.md | 9 + configs/segformer/segformer.yml | 111 +++--- configs/sem_fpn/README.md | 9 + configs/sem_fpn/sem_fpn.yml | 69 ++-- configs/setr/README.md | 13 + configs/setr/setr.yml | 62 +-- configs/swin/README.md | 9 + configs/swin/swin.yml | 81 ++-- configs/unet/README.md | 9 + configs/unet/unet.yml | 85 +++-- configs/upernet/README.md | 9 + configs/upernet/upernet.yml | 173 +++++---- configs/vit/README.md | 9 + configs/vit/vit.yml | 167 ++++---- 72 files changed, 3262 insertions(+), 2573 deletions(-) diff --git a/.dev/md2yml.py b/.dev/md2yml.py index 3f118c12a2..82368df9d3 100755 --- a/.dev/md2yml.py +++ b/.dev/md2yml.py @@ -9,25 +9,28 @@ import glob import os import os.path as osp +import re import sys import mmcv +from lxml import etree MMSEG_ROOT = osp.dirname(osp.dirname((osp.dirname(__file__)))) -def dump_yaml_and_check_difference(obj, filename): +def dump_yaml_and_check_difference(obj, filename, sort_keys=False): """Dump object to a yaml file, and check if the file content is different from the original. Args: obj (any): The python object to be dumped. filename (str): YAML filename to dump the object to. + sort_keys (str); Sort key by dictionary order. Returns: Bool: If the target YAML file is different from the original. """ - str_dump = mmcv.dump(obj, None, file_format='yaml', sort_keys=True) + str_dump = mmcv.dump(obj, None, file_format='yaml', sort_keys=sort_keys) if osp.isfile(filename): file_exists = True with open(filename, 'r', encoding='utf-8') as f: @@ -54,12 +57,29 @@ def parse_md(md_file): Returns: Bool: If the target YAML file is different from the original. """ - collection_name = osp.dirname(md_file).split('/')[-1] + collection_name = osp.split(osp.dirname(md_file))[1] configs = os.listdir(osp.dirname(md_file)) - collection = dict(Name=collection_name, Metadata={'Training Data': []}) + collection = dict( + Name=collection_name, + Metadata={'Training Data': []}, + Paper={ + 'URL': '', + 'Title': '' + }, + README=md_file, + Code={ + 'URL': '', + 'Version': '' + }) + collection.update({'Converted From': {'Weights': '', 'Code': ''}}) models = [] datasets = [] + paper_url = None + paper_title = None + code_url = None + code_version = None + repo_url = None with open(md_file, 'r') as md: lines = md.readlines() @@ -70,7 +90,36 @@ def parse_md(md_file): if len(line) == 0: i += 1 continue - if line[:3] == '###': + if line[:2] == '# ': + paper_title = line.replace('# ', '') + i += 1 + elif line[:3] == '
    +Official Repo + +Code Snippet + +

    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 z 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 literal 0 HcmV?d00001 diff --git a/setup.cfg b/setup.cfg index 43ba4a4d78..0dbe479fa7 100644 --- a/setup.cfg +++ b/setup.cfg @@ -8,6 +8,6 @@ line_length = 79 multi_line_output = 0 known_standard_library = setuptools known_first_party = mmseg -known_third_party = PIL,cityscapesscripts,cv2,detail,matplotlib,mmcv,numpy,onnxruntime,oss2,prettytable,pytest,scipy,seaborn,torch +known_third_party = PIL,cityscapesscripts,cv2,detail,matplotlib,mmcv,numpy,onnxruntime,oss2,prettytable,pytest,scipy,seaborn,torch,ts no_lines_before = STDLIB,LOCALFOLDER default_section = THIRDPARTY diff --git a/tools/mmseg2torchserve.py b/tools/mmseg2torchserve.py new file mode 100644 index 0000000000..373f5cae16 --- /dev/null +++ b/tools/mmseg2torchserve.py @@ -0,0 +1,110 @@ +from argparse import ArgumentParser, Namespace +from pathlib import Path +from tempfile import TemporaryDirectory + +import mmcv + +try: + from model_archiver.model_packaging import package_model + from model_archiver.model_packaging_utils import ModelExportUtils +except ImportError: + package_model = None + + +def mmseg2torchserve( + config_file: str, + checkpoint_file: str, + output_folder: str, + model_name: str, + model_version: str = '1.0', + force: bool = False, +): + """Converts mmsegmentation model (config + checkpoint) to TorchServe + `.mar`. + + Args: + config_file: + In MMSegmentation config format. + The contents vary for each task repository. + checkpoint_file: + In MMSegmentation checkpoint format. + The contents vary for each task repository. + output_folder: + Folder where `{model_name}.mar` will be created. + The file created will be in TorchServe archive format. + model_name: + If not None, used for naming the `{model_name}.mar` file + that will be created under `output_folder`. + If None, `{Path(checkpoint_file).stem}` will be used. + model_version: + Model's version. + force: + If True, if there is an existing `{model_name}.mar` + file under `output_folder` it will be overwritten. + """ + mmcv.mkdir_or_exist(output_folder) + + config = mmcv.Config.fromfile(config_file) + + with TemporaryDirectory() as tmpdir: + config.dump(f'{tmpdir}/config.py') + + args = Namespace( + **{ + 'model_file': f'{tmpdir}/config.py', + 'serialized_file': checkpoint_file, + 'handler': f'{Path(__file__).parent}/mmseg_handler.py', + 'model_name': model_name or Path(checkpoint_file).stem, + 'version': model_version, + 'export_path': output_folder, + 'force': force, + 'requirements_file': None, + 'extra_files': None, + 'runtime': 'python', + 'archive_format': 'default' + }) + manifest = ModelExportUtils.generate_manifest_json(args) + package_model(args, manifest) + + +def parse_args(): + parser = ArgumentParser( + description='Convert mmseg models to TorchServe `.mar` format.') + parser.add_argument('config', type=str, help='config file path') + parser.add_argument('checkpoint', type=str, help='checkpoint file path') + parser.add_argument( + '--output-folder', + type=str, + required=True, + help='Folder where `{model_name}.mar` will be created.') + parser.add_argument( + '--model-name', + type=str, + default=None, + help='If not None, used for naming the `{model_name}.mar`' + 'file that will be created under `output_folder`.' + 'If None, `{Path(checkpoint_file).stem}` will be used.') + parser.add_argument( + '--model-version', + type=str, + default='1.0', + help='Number used for versioning.') + parser.add_argument( + '-f', + '--force', + action='store_true', + help='overwrite the existing `{model_name}.mar`') + args = parser.parse_args() + + return args + + +if __name__ == '__main__': + args = parse_args() + + if package_model is None: + raise ImportError('`torch-model-archiver` is required.' + 'Try: pip install torch-model-archiver') + + mmseg2torchserve(args.config, args.checkpoint, args.output_folder, + args.model_name, args.model_version, args.force) diff --git a/tools/mmseg_handler.py b/tools/mmseg_handler.py new file mode 100644 index 0000000000..b0cb248866 --- /dev/null +++ b/tools/mmseg_handler.py @@ -0,0 +1,53 @@ +import base64 +import io +import os + +import cv2 +import mmcv +import torch +from ts.torch_handler.base_handler import BaseHandler + +from mmseg.apis import inference_segmentor, init_segmentor + + +class MMsegHandler(BaseHandler): + + def initialize(self, context): + properties = context.system_properties + self.map_location = 'cuda' if torch.cuda.is_available() else 'cpu' + self.device = torch.device(self.map_location + ':' + + str(properties.get('gpu_id')) if torch.cuda. + is_available() else self.map_location) + self.manifest = context.manifest + + model_dir = properties.get('model_dir') + serialized_file = self.manifest['model']['serializedFile'] + checkpoint = os.path.join(model_dir, serialized_file) + self.config_file = os.path.join(model_dir, 'config.py') + + self.model = init_segmentor(self.config_file, checkpoint, self.device) + self.initialized = True + + def preprocess(self, data): + images = [] + + for row in data: + image = row.get('data') or row.get('body') + if isinstance(image, str): + image = base64.b64decode(image) + image = mmcv.imfrombytes(image) + images.append(image) + + return images + + def inference(self, data, *args, **kwargs): + results = [inference_segmentor(self.model, img) for img in data] + return results + + def postprocess(self, data): + output = [] + for image_result in data: + buffer = io.BytesIO() + _, buffer = cv2.imencode('.png', image_result[0].astype('uint8')) + output.append(buffer.tobytes()) + return output From fef381845d1a38283bbba825214d3421a3a21e97 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Tue, 6 Jul 2021 17:19:45 +0800 Subject: [PATCH 181/706] fix mmcv installation (#676) --- docs/get_started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/get_started.md b/docs/get_started.md index 1956c7adef..cc018d7c06 100644 --- a/docs/get_started.md +++ b/docs/get_started.md @@ -124,7 +124,7 @@ conda create -n open-mmlab python=3.7 -y conda activate open-mmlab conda install pytorch=1.6.0 torchvision cudatoolkit=10.1 -c pytorch -pip install mmcv-full==latest+torch1.6.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html +pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.6.0/index.html git clone https://github.com/open-mmlab/mmsegmentation.git cd mmsegmentation pip install -e . # or "python setup.py develop" From b785c95583444a693c0e9fd7e19a94417524fd69 Mon Sep 17 00:00:00 2001 From: keke1u Date: Wed, 7 Jul 2021 16:19:45 +0800 Subject: [PATCH 182/706] Update config.md (#678) Fixed some typos. --- docs/tutorials/config.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/tutorials/config.md b/docs/tutorials/config.md index b243c06d5b..ae80ee5eb0 100644 --- a/docs/tutorials/config.md +++ b/docs/tutorials/config.md @@ -238,12 +238,12 @@ lr_config = dict( policy='poly', # The policy of scheduler, also support Step, CosineAnnealing, Cyclic, etc. Refer to details of supported LrUpdater from https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/lr_updater.py#L9. power=0.9, # The power of polynomial decay. min_lr=0.0001, # The minimum learning rate to stable the training. - by_epoch=False) # Whethe count by epoch or not. + by_epoch=False) # Whether count by epoch or not. runner = dict( type='IterBasedRunner', # Type of runner to use (i.e. IterBasedRunner or EpochBasedRunner) max_iters=40000) # Total number of iterations. For EpochBasedRunner use `max_epochs` checkpoint_config = dict( # Config to set the checkpoint hook, Refer to https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/checkpoint.py for implementation. - by_epoch=False, # Whethe count by epoch or not. + by_epoch=False, # Whether count by epoch or not. interval=4000) # The save interval. evaluation = dict( # The config to build the evaluation hook. Please refer to mmseg/core/evaulation/eval_hook.py for details. interval=4000, # The interval of evaluation. @@ -321,7 +321,7 @@ model = dict( auxiliary_head=dict(...)) ``` -The `_delete_=True` would replace all old keys in `backbone` field with new keys new keys. +The `_delete_=True` would replace all old keys in `backbone` field with new keys. ### Use intermediate variables in configs From 813222a116340c2dd485d21a81b1771569203369 Mon Sep 17 00:00:00 2001 From: BigDong Date: Thu, 8 Jul 2021 19:14:56 +0800 Subject: [PATCH 183/706] [Fix] fix url error in config docs (#680) * [Fix] fix url error in config docs * Fix URL * Fix URL --- docs/tutorials/config.md | 4 ++-- docs_zh-CN/tutorials/config.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/tutorials/config.md b/docs/tutorials/config.md index ae80ee5eb0..d94e31a9a1 100644 --- a/docs/tutorials/config.md +++ b/docs/tutorials/config.md @@ -17,7 +17,7 @@ For example, if some modification is made base on DeepLabV3, user may first inhe If you are building an entirely new method that does not share the structure with any of the existing methods, you may create a folder `xxxnet` under `configs`, -Please refer to [mmcv](https://mmcv.readthedocs.io/en/latest/utils.html#config) for detailed documentation. +Please refer to [mmcv](https://mmcv.readthedocs.io/en/latest/understand_mmcv/config.html) for detailed documentation. ## Config Name Style @@ -257,7 +257,7 @@ evaluation = dict( # The config to build the evaluation hook. Please refer to m ### Ignore some fields in the base configs Sometimes, you may set `_delete_=True` to ignore some of fields in base configs. -You may refer to [mmcv](https://mmcv.readthedocs.io/en/latest/utils.html#inherit-from-base-config-with-ignored-fields) for simple inllustration. +You may refer to [mmcv](https://mmcv.readthedocs.io/en/latest/understand_mmcv/config.html#inherit-from-base-config-with-ignored-fields) for simple inllustration. In MMSegmentation, for example, to change the backbone of PSPNet with the following config. diff --git a/docs_zh-CN/tutorials/config.md b/docs_zh-CN/tutorials/config.md index 91ffaab5ef..72d8659a1b 100644 --- a/docs_zh-CN/tutorials/config.md +++ b/docs_zh-CN/tutorials/config.md @@ -14,7 +14,7 @@ 例如,如果一些修改是基于 DeepLabV3,使用者首先首先应该通过指定 `_base_ = ../deeplabv3/deeplabv3_r50_512x1024_40ki_cityscapes.py`来继承基础 DeepLabV3 结构,再去修改配置文件里其他内容以完成继承。 如果您正在构建一个完整的新模型,它完全没有和已有的方法共享一些结构,您可能需要在 `configs` 下面创建一个文件夹 `xxxnet`。 -更详细的文档,请参照 [mmcv](https://mmcv.readthedocs.io/en/latest/utils.html#config) 。 +更详细的文档,请参照 [mmcv](https://mmcv.readthedocs.io/en/latest/understand_mmcv/config.html) 。 ## 配置文件命名风格 @@ -253,7 +253,7 @@ evaluation = dict( # 构建评估钩 (evaluation hook) 的配置文件。细节 ### 忽略基础配置文件里的一些域内容。 有时,您也许会设置 `_delete_=True` 去忽略基础配置文件里的一些域内容。 -您也许可以参照 [mmcv](https://mmcv.readthedocs.io/en/latest/utils.html#inherit-from-base-config-with-ignored-fields) 来获得一些简单的指导。 +您也许可以参照 [mmcv](https://mmcv.readthedocs.io/en/latest/understand_mmcv/config.html#inherit-from-base-config-with-ignored-fields) 来获得一些简单的指导。 在 MMSegmentation 里,例如为了改变 PSPNet 的主干网络的某些内容: From 259eeb08c8c9a1cbbd15cd54f4aceed1da39c8ef Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Thu, 15 Jul 2021 11:42:33 +0800 Subject: [PATCH 184/706] fix efficient test bug (#702) --- mmseg/core/evaluation/eval_hooks.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/mmseg/core/evaluation/eval_hooks.py b/mmseg/core/evaluation/eval_hooks.py index ce5809146f..928f2ba612 100644 --- a/mmseg/core/evaluation/eval_hooks.py +++ b/mmseg/core/evaluation/eval_hooks.py @@ -31,7 +31,11 @@ def _do_evaluate(self, runner): return from mmseg.apis import single_gpu_test - results = single_gpu_test(runner.model, self.dataloader, show=False) + results = single_gpu_test( + runner.model, + self.dataloader, + show=False, + efficient_test=self.efficient_test) runner.log_buffer.output['eval_iter_num'] = len(self.dataloader) key_score = self.evaluate(runner, results) if self.save_best: @@ -84,7 +88,8 @@ def _do_evaluate(self, runner): runner.model, self.dataloader, tmpdir=tmpdir, - gpu_collect=self.gpu_collect) + gpu_collect=self.gpu_collect, + efficient_test=self.efficient_test) if runner.rank == 0: print('\n') runner.log_buffer.output['eval_iter_num'] = len(self.dataloader) From 00defd6b7fa673cd2357bb17e12c6d3d07cbd507 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Thu, 15 Jul 2021 11:43:21 +0800 Subject: [PATCH 185/706] update resource limit (#700) --- mmseg/datasets/builder.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mmseg/datasets/builder.py b/mmseg/datasets/builder.py index e6284e5c96..5994ab233b 100644 --- a/mmseg/datasets/builder.py +++ b/mmseg/datasets/builder.py @@ -14,8 +14,9 @@ # https://github.com/pytorch/pytorch/issues/973 import resource rlimit = resource.getrlimit(resource.RLIMIT_NOFILE) + base_soft_limit = rlimit[0] hard_limit = rlimit[1] - soft_limit = min(4096, hard_limit) + soft_limit = min(max(4096, base_soft_limit), hard_limit) resource.setrlimit(resource.RLIMIT_NOFILE, (soft_limit, hard_limit)) DATASETS = Registry('dataset') From 55085a85c3b32bf29f764a3400d6a7a497f49406 Mon Sep 17 00:00:00 2001 From: Ivan Rubachev Date: Thu, 15 Jul 2021 06:45:14 +0300 Subject: [PATCH 186/706] Fix init_cfg in resnet backbone (#697) --- mmseg/models/backbones/resnet.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mmseg/models/backbones/resnet.py b/mmseg/models/backbones/resnet.py index e52e9122d7..0ff1fe9de9 100644 --- a/mmseg/models/backbones/resnet.py +++ b/mmseg/models/backbones/resnet.py @@ -400,7 +400,7 @@ def __init__(self, zero_init_residual=True, pretrained=None, init_cfg=None): - super(ResNet, self).__init__() + super(ResNet, self).__init__(init_cfg) if depth not in self.arch_settings: raise KeyError(f'invalid depth {depth} for resnet') From 5184c6a8db4f91c64d11e3a05bfba5c3136bca83 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Thu, 15 Jul 2021 12:13:03 -0700 Subject: [PATCH 187/706] [Bug fix] Fix efficient test for multi-node (#707) * [Bug fix] Fix efficient test for multi-node * fixed CI * add efficient test dir * remove unused args --- mmseg/apis/test.py | 101 +++++++-------------------------------------- 1 file changed, 14 insertions(+), 87 deletions(-) diff --git a/mmseg/apis/test.py b/mmseg/apis/test.py index 9728de4c68..0034159689 100644 --- a/mmseg/apis/test.py +++ b/mmseg/apis/test.py @@ -1,17 +1,15 @@ import os.path as osp -import pickle -import shutil import tempfile import mmcv import numpy as np import torch -import torch.distributed as dist +from mmcv.engine import collect_results_cpu, collect_results_gpu from mmcv.image import tensor2imgs from mmcv.runner import get_dist_info -def np2tmp(array, temp_file_name=None): +def np2tmp(array, temp_file_name=None, tmpdir=None): """Save ndarray to local numpy file. Args: @@ -19,6 +17,7 @@ def np2tmp(array, temp_file_name=None): temp_file_name (str): Numpy file name. If 'temp_file_name=None', this function will generate a file name with tempfile.NamedTemporaryFile to save ndarray. Default: None. + tmpdir (str): Temporary directory to save Ndarray files. Default: None. Returns: str: The numpy file name. @@ -26,7 +25,7 @@ def np2tmp(array, temp_file_name=None): if temp_file_name is None: temp_file_name = tempfile.NamedTemporaryFile( - suffix='.npy', delete=False).name + suffix='.npy', delete=False, dir=tmpdir).name np.save(temp_file_name, array) return temp_file_name @@ -58,6 +57,8 @@ def single_gpu_test(model, results = [] dataset = data_loader.dataset prog_bar = mmcv.ProgressBar(len(dataset)) + if efficient_test: + mmcv.mkdir_or_exist('.efficient_test') for i, data in enumerate(data_loader): with torch.no_grad(): result = model(return_loss=False, **data) @@ -90,11 +91,11 @@ def single_gpu_test(model, if isinstance(result, list): if efficient_test: - result = [np2tmp(_) for _ in result] + result = [np2tmp(_, tmpdir='.efficient_test') for _ in result] results.extend(result) else: if efficient_test: - result = np2tmp(result) + result = np2tmp(result, tmpdir='.efficient_test') results.append(result) batch_size = len(result) @@ -120,7 +121,8 @@ def multi_gpu_test(model, model (nn.Module): Model to be tested. data_loader (utils.data.Dataloader): Pytorch data loader. tmpdir (str): Path of directory to save the temporary results from - different gpus under cpu mode. + different gpus under cpu mode. The same path is used for efficient + test. gpu_collect (bool): Option to use either gpu or cpu to collect results. efficient_test (bool): Whether save the results as local numpy files to save CPU memory during evaluation. Default: False. @@ -135,17 +137,19 @@ def multi_gpu_test(model, rank, world_size = get_dist_info() if rank == 0: prog_bar = mmcv.ProgressBar(len(dataset)) + if efficient_test: + mmcv.mkdir_or_exist('.efficient_test') for i, data in enumerate(data_loader): with torch.no_grad(): result = model(return_loss=False, rescale=True, **data) if isinstance(result, list): if efficient_test: - result = [np2tmp(_) for _ in result] + result = [np2tmp(_, tmpdir='.efficient_test') for _ in result] results.extend(result) else: if efficient_test: - result = np2tmp(result) + result = np2tmp(result, tmpdir='.efficient_test') results.append(result) if rank == 0: @@ -159,80 +163,3 @@ def multi_gpu_test(model, else: results = collect_results_cpu(results, len(dataset), tmpdir) return results - - -def collect_results_cpu(result_part, size, tmpdir=None): - """Collect results with CPU.""" - rank, world_size = get_dist_info() - # create a tmp dir if it is not specified - if tmpdir is None: - MAX_LEN = 512 - # 32 is whitespace - dir_tensor = torch.full((MAX_LEN, ), - 32, - dtype=torch.uint8, - device='cuda') - if rank == 0: - tmpdir = tempfile.mkdtemp() - tmpdir = torch.tensor( - bytearray(tmpdir.encode()), dtype=torch.uint8, device='cuda') - dir_tensor[:len(tmpdir)] = tmpdir - dist.broadcast(dir_tensor, 0) - tmpdir = dir_tensor.cpu().numpy().tobytes().decode().rstrip() - else: - mmcv.mkdir_or_exist(tmpdir) - # dump the part result to the dir - mmcv.dump(result_part, osp.join(tmpdir, 'part_{}.pkl'.format(rank))) - dist.barrier() - # collect all parts - if rank != 0: - return None - else: - # load results of all parts from tmp dir - part_list = [] - for i in range(world_size): - part_file = osp.join(tmpdir, 'part_{}.pkl'.format(i)) - part_list.append(mmcv.load(part_file)) - # sort the results - ordered_results = [] - for res in zip(*part_list): - ordered_results.extend(list(res)) - # the dataloader may pad some samples - ordered_results = ordered_results[:size] - # remove tmp dir - shutil.rmtree(tmpdir) - return ordered_results - - -def collect_results_gpu(result_part, size): - """Collect results with GPU.""" - rank, world_size = get_dist_info() - # dump result part to tensor with pickle - part_tensor = torch.tensor( - bytearray(pickle.dumps(result_part)), dtype=torch.uint8, device='cuda') - # gather all result part tensor shape - shape_tensor = torch.tensor(part_tensor.shape, device='cuda') - shape_list = [shape_tensor.clone() for _ in range(world_size)] - dist.all_gather(shape_list, shape_tensor) - # padding result part tensor to max length - shape_max = torch.tensor(shape_list).max() - part_send = torch.zeros(shape_max, dtype=torch.uint8, device='cuda') - part_send[:shape_tensor[0]] = part_tensor - part_recv_list = [ - part_tensor.new_zeros(shape_max) for _ in range(world_size) - ] - # gather all result part - dist.all_gather(part_recv_list, part_send) - - if rank == 0: - part_list = [] - for recv, shape in zip(part_recv_list, shape_list): - part_list.append( - pickle.loads(recv[:shape[0]].cpu().numpy().tobytes())) - # sort the results - ordered_results = [] - for res in zip(*part_list): - ordered_results.extend(list(res)) - # the dataloader may pad some samples - ordered_results = ordered_results[:size] - return ordered_results From f6246d6eaaf00df716ebcba9fa3eec67d4d8fdf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=98=95=E8=BE=B0?= Date: Tue, 20 Jul 2021 00:27:10 +0800 Subject: [PATCH 188/706] [Fix] fix patch_embed and pos_embed mismatch error (#685) * fix patch_embed and pos_embed mismatch error * add docstring * update unittest * use downsampled image shape * use tuple * remove unused parameters and add doc * fix init weights function * revise docstring * Update vit.py If -> Whether * fix lint Co-authored-by: Junjun2016 --- .../_base_/models/upernet_vit-b16_ln_mln.py | 1 - mmseg/models/backbones/vit.py | 68 +++++++++---------- tests/test_models/test_backbones/test_vit.py | 22 +++--- 3 files changed, 48 insertions(+), 43 deletions(-) diff --git a/configs/_base_/models/upernet_vit-b16_ln_mln.py b/configs/_base_/models/upernet_vit-b16_ln_mln.py index 573612e13a..1a5a569729 100644 --- a/configs/_base_/models/upernet_vit-b16_ln_mln.py +++ b/configs/_base_/models/upernet_vit-b16_ln_mln.py @@ -21,7 +21,6 @@ norm_cfg=dict(type='LN', eps=1e-6), act_cfg=dict(type='GELU'), norm_eval=False, - out_shape='NCHW', interpolate_mode='bicubic'), neck=dict( type='MultiLevelNeck', diff --git a/mmseg/models/backbones/vit.py b/mmseg/models/backbones/vit.py index 1ad20a1ca6..33176351ea 100644 --- a/mmseg/models/backbones/vit.py +++ b/mmseg/models/backbones/vit.py @@ -118,8 +118,10 @@ class VisionTransformer(BaseModule): attn_drop_rate (float): The drop out rate for attention layer. Default 0.0 drop_path_rate (float): stochastic depth rate. Default 0.0 - with_cls_token (bool): If concatenating class token into image tokens - as transformer input. Default: True. + with_cls_token (bool): Whether concatenating class token into image + tokens as transformer input. Default: True. + output_cls_token (bool): Whether output the cls_token. If set True, + `with_cls_token` must be True. Default: False. norm_cfg (dict): Config dict for normalization layer. Default: dict(type='LN') act_cfg (dict): The activation config for FFNs. @@ -128,8 +130,6 @@ class VisionTransformer(BaseModule): Default: False. final_norm (bool): Whether to add a additional layer to normalize final feature map. Default: False. - out_shape (str): Select the output format of feature information. - Default: NCHW. interpolate_mode (str): Select the interpolate mode for position embeding vector resize. Default: bicubic. num_fcs (int): The number of fully-connected layers for FFNs. @@ -160,11 +160,11 @@ def __init__(self, attn_drop_rate=0., drop_path_rate=0., with_cls_token=True, + output_cls_token=False, norm_cfg=dict(type='LN'), act_cfg=dict(type='GELU'), patch_norm=False, final_norm=False, - out_shape='NCHW', interpolate_mode='bicubic', num_fcs=2, norm_eval=False, @@ -185,8 +185,9 @@ def __init__(self, assert pretrain_style in ['timm', 'mmcls'] - assert out_shape in ['NLC', - 'NCHW'], 'output shape must be "NLC" or "NCHW".' + if output_cls_token: + assert with_cls_token is True, f'with_cls_token must be True if' \ + f'set output_cls_token to True, but got {with_cls_token}' if isinstance(pretrained, str) or pretrained is None: warnings.warn('DeprecationWarning: pretrained is a deprecated, ' @@ -196,7 +197,6 @@ def __init__(self, self.img_size = img_size self.patch_size = patch_size - self.out_shape = out_shape self.interpolate_mode = interpolate_mode self.norm_eval = norm_eval self.with_cp = with_cp @@ -218,6 +218,7 @@ def __init__(self, (img_size[1] // patch_size) self.with_cls_token = with_cls_token + self.output_cls_token = output_cls_token self.cls_token = nn.Parameter(torch.zeros(1, 1, embed_dims)) self.pos_embed = nn.Parameter( torch.zeros(1, num_patches + 1, embed_dims)) @@ -253,7 +254,6 @@ def __init__(self, batch_first=True)) self.final_norm = final_norm - self.out_shape = out_shape if final_norm: self.norm1_name, norm1 = build_norm_layer( norm_cfg, embed_dims, postfix=1) @@ -290,8 +290,9 @@ def init_weights(self): pos_size = int( math.sqrt(state_dict['pos_embed'].shape[1] - 1)) state_dict['pos_embed'] = self.resize_pos_embed( - state_dict['pos_embed'], (h, w), (pos_size, pos_size), - self.patch_size, self.interpolate_mode) + state_dict['pos_embed'], + (h // self.patch_size, w // self.patch_size), + (pos_size, pos_size), self.interpolate_mode) self.load_state_dict(state_dict, False) @@ -317,16 +318,15 @@ def init_weights(self): constant_init(m.bias, 0) constant_init(m.weight, 1.0) - def _pos_embeding(self, img, patched_img, pos_embed): + def _pos_embeding(self, patched_img, hw_shape, pos_embed): """Positiong embeding method. Resize the pos_embed, if the input image size doesn't match the training size. Args: - img (torch.Tensor): The inference image tensor, the shape - must be [B, C, H, W]. patched_img (torch.Tensor): The patched image, it should be shape of [B, L1, C]. + hw_shape (tuple): The downsampled image resolution. pos_embed (torch.Tensor): The pos_embed weighs, it should be shape of [B, L2, c]. Return: @@ -344,36 +344,36 @@ def _pos_embeding(self, img, patched_img, pos_embed): raise ValueError( 'Unexpected shape of pos_embed, got {}.'.format( pos_embed.shape)) - pos_embed = self.resize_pos_embed(pos_embed, img.shape[2:], - (pos_h, pos_w), self.patch_size, + pos_embed = self.resize_pos_embed(pos_embed, hw_shape, + (pos_h, pos_w), self.interpolate_mode) return self.drop_after_pos(patched_img + pos_embed) @staticmethod - def resize_pos_embed(pos_embed, input_shpae, pos_shape, patch_size, mode): + def resize_pos_embed(pos_embed, input_shpae, pos_shape, mode): """Resize pos_embed weights. Resize pos_embed using bicubic interpolate method. Args: - pos_embed (torch.Tensor): pos_embed weights. - input_shpae (tuple): Tuple for (input_h, intput_w). - pos_shape (tuple): Tuple for (pos_h, pos_w). - patch_size (int): Patch size. + pos_embed (torch.Tensor): Position embedding weights. + input_shpae (tuple): Tuple for (downsampled input image height, + downsampled input image width). + pos_shape (tuple): The resolution of downsampled origin training + image. + mode (str): Algorithm used for upsampling: + ``'nearest'`` | ``'linear'`` | ``'bilinear'`` | ``'bicubic'`` | + ``'trilinear'``. Default: ``'nearest'`` Return: torch.Tensor: The resized pos_embed of shape [B, L_new, C] """ assert pos_embed.ndim == 3, 'shape of pos_embed must be [B, L, C]' - input_h, input_w = input_shpae pos_h, pos_w = pos_shape cls_token_weight = pos_embed[:, 0] pos_embed_weight = pos_embed[:, (-1 * pos_h * pos_w):] pos_embed_weight = pos_embed_weight.reshape( 1, pos_h, pos_w, pos_embed.shape[2]).permute(0, 3, 1, 2) pos_embed_weight = F.interpolate( - pos_embed_weight, - size=[input_h // patch_size, input_w // patch_size], - align_corners=False, - mode=mode) + pos_embed_weight, size=input_shpae, align_corners=False, mode=mode) cls_token_weight = cls_token_weight.unsqueeze(1) pos_embed_weight = torch.flatten(pos_embed_weight, 2).transpose(1, 2) pos_embed = torch.cat((cls_token_weight, pos_embed_weight), dim=1) @@ -382,12 +382,12 @@ def resize_pos_embed(pos_embed, input_shpae, pos_shape, patch_size, mode): def forward(self, inputs): B = inputs.shape[0] - x = self.patch_embed(inputs) - + x, hw_shape = self.patch_embed(inputs), (self.patch_embed.DH, + self.patch_embed.DW) # stole cls_tokens impl from Phil Wang, thanks cls_tokens = self.cls_token.expand(B, -1, -1) x = torch.cat((cls_tokens, x), dim=1) - x = self._pos_embeding(inputs, x, self.pos_embed) + x = self._pos_embeding(x, hw_shape, self.pos_embed) if not self.with_cls_token: # Remove class token for transformer encoder input @@ -405,11 +405,11 @@ def forward(self, inputs): out = x[:, 1:] else: out = x - if self.out_shape == 'NCHW': - B, _, C = out.shape - out = out.reshape(B, inputs.shape[2] // self.patch_size, - inputs.shape[3] // self.patch_size, - C).permute(0, 3, 1, 2) + B, _, C = out.shape + out = out.reshape(B, hw_shape[0], hw_shape[1], + C).permute(0, 3, 1, 2) + if self.output_cls_token: + out = [out, x[:, 0]] outs.append(out) return tuple(outs) diff --git a/tests/test_models/test_backbones/test_vit.py b/tests/test_models/test_backbones/test_vit.py index 4577b97b86..16d6aba68f 100644 --- a/tests/test_models/test_backbones/test_vit.py +++ b/tests/test_models/test_backbones/test_vit.py @@ -39,8 +39,8 @@ def test_vit_backbone(): VisionTransformer(pretrained=123) with pytest.raises(AssertionError): - # out_shape must be 'NLC' or 'NCHW;' - VisionTransformer(out_shape='NCL') + # with_cls_token must be True when output_cls_token == True + VisionTransformer(with_cls_token=False, output_cls_token=True) # Test img_size isinstance tuple imgs = torch.randn(1, 3, 224, 224) @@ -88,6 +88,11 @@ def test_vit_backbone(): feat = model(imgs) assert feat[-1].shape == (1, 768, 7, 14) + # Test irregular input image + imgs = torch.randn(1, 3, 234, 345) + feat = model(imgs) + assert feat[-1].shape == (1, 768, 15, 22) + # Test with_cp=True model = VisionTransformer(with_cp=True) imgs = torch.randn(1, 3, 224, 224) @@ -100,12 +105,6 @@ def test_vit_backbone(): feat = model(imgs) assert feat[-1].shape == (1, 768, 14, 14) - # Test out_shape == 'NLC' - model = VisionTransformer(out_shape='NLC') - imgs = torch.randn(1, 3, 224, 224) - feat = model(imgs) - assert feat[-1].shape == (1, 196, 768) - # Test final norm model = VisionTransformer(final_norm=True) imgs = torch.randn(1, 3, 224, 224) @@ -117,3 +116,10 @@ def test_vit_backbone(): imgs = torch.randn(1, 3, 224, 224) feat = model(imgs) assert feat[-1].shape == (1, 768, 14, 14) + + # Test output_cls_token + model = VisionTransformer(with_cls_token=True, output_cls_token=True) + imgs = torch.randn(1, 3, 224, 224) + feat = model(imgs) + assert feat[0][0].shape == (1, 768, 14, 14) + assert feat[0][1].shape == (1, 768) From 095ed243c04a3d00751c1cf2f657a548cae34155 Mon Sep 17 00:00:00 2001 From: sennnnn <58427300+sennnnn@users.noreply.github.com> Date: Tue, 20 Jul 2021 00:40:40 +0800 Subject: [PATCH 189/706] [Feature] Segformer backbone re-implementation (#594) * [Feature]Segformer re-implementation * Using act_cfg and norm_cfg to control activation and normalization * Split this PR into several little PRs * Fix lint error * Remove SegFormerHead * parameters init refactor * 1. Refactor segformer backbone parameters init; 2. Remove rebundant functions and unit tests; * Remove rebundant codes * 1. Remove rebundant codes; 2. Modify module name; * Refactor the backbone of segformer using mmcv.cnn.bricks.transformer.py * Fix some code logic bugs. * Add mit_convert.py to match pretrain keys of segformer. * Resolve some comments. * 1. Add some assert to ensure right params; 2. Support flexible peconv position; * Add pe_index assert and fix unit test. * 1. Add doc string for MixVisionTransformer; 2. Add some unit tests for MixVisionTransformer; * Use hw_shape to pass shape of feature map. * 1. Fix doc string of MixVisionTransformer; 2. Simplify MixFFN; 3. Modify H, W to hw_shape; * Add more unit tests. * Add doc string for shape convertion functions. * Add some unit tests to improve code coverage. * Fix Segformer backbone pretrain weights match bug. * resolve the shape convertion functions doc string. * Add pad_to_patch_size arg. * Modify default value of pad_to_patch_size arg. --- mmseg/models/backbones/__init__.py | 3 +- mmseg/models/backbones/mit.py | 416 +++++++++++++++++++ mmseg/models/backbones/swin.py | 1 + mmseg/models/backbones/vit.py | 1 + mmseg/models/utils/__init__.py | 5 +- mmseg/models/utils/ckpt_convert.py | 49 +++ mmseg/models/utils/embed.py | 26 +- mmseg/models/utils/shape_convert.py | 28 ++ tests/test_models/test_backbones/test_mit.py | 60 +++ 9 files changed, 578 insertions(+), 11 deletions(-) create mode 100644 mmseg/models/backbones/mit.py create mode 100644 mmseg/models/utils/shape_convert.py create mode 100644 tests/test_models/test_backbones/test_mit.py diff --git a/mmseg/models/backbones/__init__.py b/mmseg/models/backbones/__init__.py index 43690d6c87..b8c17b2184 100644 --- a/mmseg/models/backbones/__init__.py +++ b/mmseg/models/backbones/__init__.py @@ -1,6 +1,7 @@ from .cgnet import CGNet from .fast_scnn import FastSCNN from .hrnet import HRNet +from .mit import MixVisionTransformer from .mobilenet_v2 import MobileNetV2 from .mobilenet_v3 import MobileNetV3 from .resnest import ResNeSt @@ -13,5 +14,5 @@ __all__ = [ 'ResNet', 'ResNetV1c', 'ResNetV1d', 'ResNeXt', 'HRNet', 'FastSCNN', 'ResNeSt', 'MobileNetV2', 'UNet', 'CGNet', 'MobileNetV3', - 'VisionTransformer', 'SwinTransformer' + 'VisionTransformer', 'SwinTransformer', 'MixVisionTransformer' ] diff --git a/mmseg/models/backbones/mit.py b/mmseg/models/backbones/mit.py new file mode 100644 index 0000000000..cad0b43134 --- /dev/null +++ b/mmseg/models/backbones/mit.py @@ -0,0 +1,416 @@ +import math +import warnings + +import torch +import torch.nn as nn +from mmcv.cnn import (Conv2d, build_activation_layer, build_norm_layer, + constant_init, normal_init, trunc_normal_init) +from mmcv.cnn.bricks.drop import build_dropout +from mmcv.cnn.bricks.transformer import MultiheadAttention +from mmcv.runner import BaseModule, ModuleList, Sequential, _load_checkpoint + +from ...utils import get_root_logger +from ..builder import BACKBONES +from ..utils import PatchEmbed, mit_convert, nchw_to_nlc, nlc_to_nchw + + +class MixFFN(BaseModule): + """An implementation of MixFFN of Segformer. + + The differences between MixFFN & FFN: + 1. Use 1X1 Conv to replace Linear layer. + 2. Introduce 3X3 Conv to encode positional information. + + Args: + embed_dims (int): The feature dimension. Same as + `MultiheadAttention`. Defaults: 256. + feedforward_channels (int): The hidden dimension of FFNs. + Defaults: 1024. + act_cfg (dict, optional): The activation config for FFNs. + Default: dict(type='ReLU') + ffn_drop (float, optional): Probability of an element to be + zeroed in FFN. Default 0.0. + dropout_layer (obj:`ConfigDict`): The dropout_layer used + when adding the shortcut. + init_cfg (obj:`mmcv.ConfigDict`): The Config for initialization. + Default: None. + """ + + def __init__(self, + embed_dims, + feedforward_channels, + act_cfg=dict(type='GELU'), + ffn_drop=0., + dropout_layer=None, + init_cfg=None): + super(MixFFN, self).__init__(init_cfg) + + self.embed_dims = embed_dims + self.feedforward_channels = feedforward_channels + self.act_cfg = act_cfg + self.activate = build_activation_layer(act_cfg) + + in_channels = embed_dims + fc1 = Conv2d( + in_channels=in_channels, + out_channels=feedforward_channels, + kernel_size=1, + stride=1, + bias=True) + # 3x3 depth wise conv to provide positional encode information + pe_conv = Conv2d( + in_channels=feedforward_channels, + out_channels=feedforward_channels, + kernel_size=3, + stride=1, + padding=(3 - 1) // 2, + bias=True, + groups=feedforward_channels) + fc2 = Conv2d( + in_channels=feedforward_channels, + out_channels=in_channels, + kernel_size=1, + stride=1, + bias=True) + drop = nn.Dropout(ffn_drop) + layers = [fc1, pe_conv, self.activate, drop, fc2, drop] + self.layers = Sequential(*layers) + self.dropout_layer = build_dropout( + dropout_layer) if dropout_layer else torch.nn.Identity() + + def forward(self, x, hw_shape, identity=None): + out = nlc_to_nchw(x, hw_shape) + out = self.layers(out) + out = nchw_to_nlc(out) + if identity is None: + identity = x + return identity + self.dropout_layer(out) + + +class EfficientMultiheadAttention(MultiheadAttention): + """An implementation of Efficient Multi-head Attention of Segformer. + + This module is modified from MultiheadAttention which is a module from + mmcv.cnn.bricks.transformer. + + Args: + embed_dims (int): The embedding dimension. + num_heads (int): Parallel attention heads. + attn_drop (float): A Dropout layer on attn_output_weights. + Default: 0.0. + proj_drop (float): A Dropout layer after `nn.MultiheadAttention`. + Default: 0.0. + dropout_layer (obj:`ConfigDict`): The dropout_layer used + when adding the shortcut. Default: None. + init_cfg (obj:`mmcv.ConfigDict`): The Config for initialization. + Default: None. + batch_first (bool): Key, Query and Value are shape of + (batch, n, embed_dim) + or (n, batch, embed_dim). Default: False. + qkv_bias (bool): enable bias for qkv if True. Default True. + norm_cfg (dict): Config dict for normalization layer. + Default: dict(type='LN'). + sr_ratio (int): The ratio of spatial reduction of Efficient Multi-head + Attention of Segformer. Default: 1. + """ + + def __init__(self, + embed_dims, + num_heads, + attn_drop=0., + proj_drop=0., + dropout_layer=None, + init_cfg=None, + batch_first=True, + qkv_bias=False, + norm_cfg=dict(type='LN'), + sr_ratio=1): + super().__init__( + embed_dims, + num_heads, + attn_drop, + proj_drop, + dropout_layer=dropout_layer, + init_cfg=init_cfg, + batch_first=batch_first, + bias=qkv_bias) + + self.sr_ratio = sr_ratio + if sr_ratio > 1: + self.sr = Conv2d( + in_channels=embed_dims, + out_channels=embed_dims, + kernel_size=sr_ratio, + stride=sr_ratio) + # The ret[0] of build_norm_layer is norm name. + self.norm = build_norm_layer(norm_cfg, embed_dims)[1] + + def forward(self, x, hw_shape, identity=None): + + x_q = x + if self.sr_ratio > 1: + x_kv = nlc_to_nchw(x, hw_shape) + x_kv = self.sr(x_kv) + x_kv = nchw_to_nlc(x_kv) + x_kv = self.norm(x_kv) + else: + x_kv = x + + if identity is None: + identity = x_q + + out = self.attn(query=x_q, key=x_kv, value=x_kv)[0] + + return identity + self.dropout_layer(self.proj_drop(out)) + + +class TransformerEncoderLayer(BaseModule): + """Implements one encoder layer in Segformer. + + Args: + embed_dims (int): The feature dimension. + num_heads (int): Parallel attention heads. + feedforward_channels (int): The hidden dimension for FFNs. + drop_rate (float): Probability of an element to be zeroed. + after the feed forward layer. Default 0.0. + attn_drop_rate (float): The drop out rate for attention layer. + Default 0.0. + drop_path_rate (float): stochastic depth rate. Default 0.0. + qkv_bias (bool): enable bias for qkv if True. + Default: True. + act_cfg (dict): The activation config for FFNs. + Defalut: dict(type='GELU'). + norm_cfg (dict): Config dict for normalization layer. + Default: dict(type='LN'). + batch_first (bool): Key, Query and Value are shape of + (batch, n, embed_dim) + or (n, batch, embed_dim). Default: False. + init_cfg (dict, optional): Initialization config dict. + Default:None. + sr_ratio (int): The ratio of spatial reduction of Efficient Multi-head + Attention of Segformer. Default: 1. + """ + + def __init__(self, + embed_dims, + num_heads, + feedforward_channels, + drop_rate=0., + attn_drop_rate=0., + drop_path_rate=0., + qkv_bias=True, + act_cfg=dict(type='GELU'), + norm_cfg=dict(type='LN'), + batch_first=True, + sr_ratio=1): + super(TransformerEncoderLayer, self).__init__() + + # The ret[0] of build_norm_layer is norm name. + self.norm1 = build_norm_layer(norm_cfg, embed_dims)[1] + + self.attn = EfficientMultiheadAttention( + embed_dims=embed_dims, + num_heads=num_heads, + attn_drop=attn_drop_rate, + proj_drop=drop_rate, + dropout_layer=dict(type='DropPath', drop_prob=drop_path_rate), + batch_first=batch_first, + qkv_bias=qkv_bias, + norm_cfg=norm_cfg, + sr_ratio=sr_ratio) + + # The ret[0] of build_norm_layer is norm name. + self.norm2 = build_norm_layer(norm_cfg, embed_dims)[1] + + self.ffn = MixFFN( + embed_dims=embed_dims, + feedforward_channels=feedforward_channels, + ffn_drop=drop_rate, + dropout_layer=dict(type='DropPath', drop_prob=drop_path_rate), + act_cfg=act_cfg) + + def forward(self, x, hw_shape): + x = self.attn(self.norm1(x), hw_shape, identity=x) + x = self.ffn(self.norm2(x), hw_shape, identity=x) + return x + + +@BACKBONES.register_module() +class MixVisionTransformer(BaseModule): + """The backbone of Segformer. + + A PyTorch implement of : `SegFormer: Simple and Efficient Design for + Semantic Segmentation with Transformers` - + https://arxiv.org/pdf/2105.15203.pdf + + Args: + in_channels (int): Number of input channels. Default: 3. + embed_dims (int): Embedding dimension. Default: 768. + num_stags (int): The num of stages. Default: 4. + num_layers (Sequence[int]): The layer number of each transformer encode + layer. Default: [3, 4, 6, 3]. + num_heads (Sequence[int]): The attention heads of each transformer + encode layer. Default: [1, 2, 4, 8]. + patch_sizes (Sequence[int]): The patch_size of each overlapped patch + embedding. Default: [7, 3, 3, 3]. + strides (Sequence[int]): The stride of each overlapped patch embedding. + Default: [4, 2, 2, 2]. + sr_ratios (Sequence[int]): The spatial reduction rate of each + transformer encode layer. Default: [8, 4, 2, 1]. + out_indices (Sequence[int] | int): Output from which stages. + Default: (0, 1, 2, 3). + mlp_ratio (int): ratio of mlp hidden dim to embedding dim. + Default: 4. + qkv_bias (bool): Enable bias for qkv if True. Default: True. + drop_rate (float): Probability of an element to be zeroed. + Default 0.0 + attn_drop_rate (float): The drop out rate for attention layer. + Default 0.0 + drop_path_rate (float): stochastic depth rate. Default 0.0 + norm_cfg (dict): Config dict for normalization layer. + Default: dict(type='LN') + act_cfg (dict): The activation config for FFNs. + Defalut: dict(type='GELU'). + pretrain_style (str): Choose to use official or mmcls pretrain weights. + Default: official. + pretrained (str, optional): model pretrained path. Default: None. + init_cfg (dict or list[dict], optional): Initialization config dict. + Default: None. + """ + + def __init__(self, + in_channels=3, + embed_dims=64, + num_stages=4, + num_layers=[3, 4, 6, 3], + num_heads=[1, 2, 4, 8], + patch_sizes=[7, 3, 3, 3], + strides=[4, 2, 2, 2], + sr_ratios=[8, 4, 2, 1], + out_indices=(0, 1, 2, 3), + mlp_ratio=4, + qkv_bias=True, + drop_rate=0., + attn_drop_rate=0., + drop_path_rate=0., + act_cfg=dict(type='GELU'), + norm_cfg=dict(type='LN', eps=1e-6), + pretrain_style='official', + pretrained=None, + init_cfg=None): + super().__init__() + + assert pretrain_style in [ + 'official', 'mmcls' + ], 'we only support official weights or mmcls weights.' + + if isinstance(pretrained, str) or pretrained is None: + warnings.warn('DeprecationWarning: pretrained is a deprecated, ' + 'please use "init_cfg" instead') + else: + raise TypeError('pretrained must be a str or None') + + self.embed_dims = embed_dims + + self.num_stages = num_stages + self.num_layers = num_layers + self.num_heads = num_heads + self.patch_sizes = patch_sizes + self.strides = strides + self.sr_ratios = sr_ratios + assert num_stages == len(num_layers) == len(num_heads) \ + == len(patch_sizes) == len(strides) == len(sr_ratios) + + self.out_indices = out_indices + assert max(out_indices) < self.num_stages + self.pretrain_style = pretrain_style + self.pretrained = pretrained + self.init_cfg = init_cfg + + # transformer encoder + dpr = [ + x.item() + for x in torch.linspace(0, drop_path_rate, sum(num_layers)) + ] # stochastic num_layer decay rule + + cur = 0 + self.layers = ModuleList() + for i, num_layer in enumerate(num_layers): + embed_dims_i = embed_dims * num_heads[i] + patch_embed = PatchEmbed( + in_channels=in_channels, + embed_dims=embed_dims_i, + kernel_size=patch_sizes[i], + stride=strides[i], + padding=patch_sizes[i] // 2, + pad_to_patch_size=False, + norm_cfg=norm_cfg) + layer = ModuleList([ + TransformerEncoderLayer( + embed_dims=embed_dims_i, + num_heads=num_heads[i], + feedforward_channels=mlp_ratio * embed_dims_i, + drop_rate=drop_rate, + attn_drop_rate=attn_drop_rate, + drop_path_rate=dpr[cur + idx], + qkv_bias=qkv_bias, + act_cfg=act_cfg, + norm_cfg=norm_cfg, + sr_ratio=sr_ratios[i]) for idx in range(num_layer) + ]) + in_channels = embed_dims_i + # The ret[0] of build_norm_layer is norm name. + norm = build_norm_layer(norm_cfg, embed_dims_i)[1] + self.layers.append(ModuleList([patch_embed, layer, norm])) + cur += num_layer + + def init_weights(self): + if self.pretrained is None: + for m in self.modules(): + if isinstance(m, nn.Linear): + trunc_normal_init(m.weight, std=.02) + if m.bias is not None: + constant_init(m.bias, 0) + elif isinstance(m, nn.LayerNorm): + constant_init(m.bias, 0) + constant_init(m.weight, 1.0) + elif isinstance(m, nn.Conv2d): + fan_out = m.kernel_size[0] * m.kernel_size[ + 1] * m.out_channels + fan_out //= m.groups + normal_init(m.weight, 0, math.sqrt(2.0 / fan_out)) + if m.bias is not None: + constant_init(m.bias, 0) + elif isinstance(self.pretrained, str): + logger = get_root_logger() + checkpoint = _load_checkpoint( + self.pretrained, logger=logger, map_location='cpu') + if 'state_dict' in checkpoint: + state_dict = checkpoint['state_dict'] + elif 'model' in checkpoint: + state_dict = checkpoint['model'] + else: + state_dict = checkpoint + + if self.pretrain_style == 'official': + # Because segformer backbone is not support by mmcls, + # so we need to convert pretrain weights to match this + # implementation. + state_dict = mit_convert(state_dict) + + self.load_state_dict(state_dict, False) + + def forward(self, x): + outs = [] + + for i, layer in enumerate(self.layers): + x, H, W = layer[0](x), layer[0].DH, layer[0].DW + hw_shape = (H, W) + for block in layer[1]: + x = block(x, hw_shape) + x = layer[2](x) + x = nlc_to_nchw(x, hw_shape) + if i in self.out_indices: + outs.append(x) + + return outs diff --git a/mmseg/models/backbones/swin.py b/mmseg/models/backbones/swin.py index a798ad1ebf..1ea6389fa4 100644 --- a/mmseg/models/backbones/swin.py +++ b/mmseg/models/backbones/swin.py @@ -628,6 +628,7 @@ def __init__(self, conv_type='Conv2d', kernel_size=patch_size, stride=strides[0], + pad_to_patch_size=True, norm_cfg=norm_cfg if patch_norm else None, init_cfg=None) diff --git a/mmseg/models/backbones/vit.py b/mmseg/models/backbones/vit.py index 33176351ea..021bf09331 100644 --- a/mmseg/models/backbones/vit.py +++ b/mmseg/models/backbones/vit.py @@ -210,6 +210,7 @@ def __init__(self, conv_type='Conv2d', kernel_size=patch_size, stride=patch_size, + pad_to_patch_size=True, norm_cfg=norm_cfg if patch_norm else None, init_cfg=None, ) diff --git a/mmseg/models/utils/__init__.py b/mmseg/models/utils/__init__.py index 277dd2676b..32a953b834 100644 --- a/mmseg/models/utils/__init__.py +++ b/mmseg/models/utils/__init__.py @@ -1,14 +1,15 @@ -from .ckpt_convert import swin_convert, vit_convert +from .ckpt_convert import mit_convert, swin_convert, vit_convert from .embed import PatchEmbed from .inverted_residual import InvertedResidual, InvertedResidualV3 from .make_divisible import make_divisible from .res_layer import ResLayer from .se_layer import SELayer from .self_attention_block import SelfAttentionBlock +from .shape_convert import nchw_to_nlc, nlc_to_nchw from .up_conv_block import UpConvBlock __all__ = [ 'ResLayer', 'SelfAttentionBlock', 'make_divisible', 'InvertedResidual', 'UpConvBlock', 'InvertedResidualV3', 'SELayer', 'vit_convert', - 'swin_convert', 'PatchEmbed' + 'mit_convert', 'swin_convert', 'PatchEmbed', 'nchw_to_nlc', 'nlc_to_nchw' ] diff --git a/mmseg/models/utils/ckpt_convert.py b/mmseg/models/utils/ckpt_convert.py index 0b1b27707d..26a1b96df9 100644 --- a/mmseg/models/utils/ckpt_convert.py +++ b/mmseg/models/utils/ckpt_convert.py @@ -1,5 +1,7 @@ from collections import OrderedDict +import torch + def swin_convert(ckpt): new_ckpt = OrderedDict() @@ -88,3 +90,50 @@ def vit_convert(ckpt): new_ckpt[new_k] = v return new_ckpt + + +def mit_convert(ckpt): + new_ckpt = OrderedDict() + # Process the concat between q linear weights and kv linear weights + for k, v in ckpt.items(): + if k.startswith('head'): + continue + elif k.startswith('patch_embed'): + stage_i = int(k.split('.')[0].replace('patch_embed', '')) + new_k = k.replace(f'patch_embed{stage_i}', f'layers.{stage_i-1}.0') + new_v = v + if 'proj.' in new_k: + new_k = new_k.replace('proj.', 'projection.') + elif k.startswith('block'): + stage_i = int(k.split('.')[0].replace('block', '')) + new_k = k.replace(f'block{stage_i}', f'layers.{stage_i-1}.1') + new_v = v + if 'attn.q.' in new_k: + sub_item_k = k.replace('q.', 'kv.') + new_k = new_k.replace('q.', 'attn.in_proj_') + new_v = torch.cat([v, ckpt[sub_item_k]], dim=0) + elif 'attn.kv.' in new_k: + continue + elif 'attn.proj.' in new_k: + new_k = new_k.replace('proj.', 'attn.out_proj.') + elif 'attn.sr.' in new_k: + new_k = new_k.replace('sr.', 'sr.') + elif 'mlp.' in new_k: + string = f'{new_k}-' + new_k = new_k.replace('mlp.', 'ffn.layers.') + if 'fc1.weight' in new_k or 'fc2.weight' in new_k: + new_v = v.reshape((*v.shape, 1, 1)) + new_k = new_k.replace('fc1.', '0.') + new_k = new_k.replace('dwconv.dwconv.', '1.') + new_k = new_k.replace('fc2.', '4.') + string += f'{new_k} {v.shape}-{new_v.shape}' + # print(string) + elif k.startswith('norm'): + stage_i = int(k.split('.')[0].replace('norm', '')) + new_k = k.replace(f'norm{stage_i}', f'layers.{stage_i-1}.2') + new_v = v + else: + new_k = k + new_v = v + new_ckpt[new_k] = new_v + return new_ckpt diff --git a/mmseg/models/utils/embed.py b/mmseg/models/utils/embed.py index 3bbb45b37a..73d8ed1f11 100644 --- a/mmseg/models/utils/embed.py +++ b/mmseg/models/utils/embed.py @@ -19,6 +19,8 @@ class PatchEmbed(BaseModule): Default: None (Default to be equal with kernel_size). padding (int): The padding length of embedding conv. Default: 0. dilation (int): The dilation rate of embedding conv. Default: 1. + pad_to_patch_size (bool, optional): Whether to pad feature map shape + to multiple patch size. Default: True. norm_cfg (dict, optional): Config dict for normalization layer. init_cfg (`mmcv.ConfigDict`, optional): The Config for initialization. Default: None. @@ -32,6 +34,7 @@ def __init__(self, stride=16, padding=0, dilation=1, + pad_to_patch_size=True, norm_cfg=None, init_cfg=None): super(PatchEmbed, self).__init__() @@ -42,7 +45,9 @@ def __init__(self, if stride is None: stride = kernel_size - # The default setting of patch size is eaual to kernel size. + self.pad_to_patch_size = pad_to_patch_size + + # The default setting of patch size is equal to kernel size. patch_size = kernel_size if isinstance(patch_size, int): patch_size = to_2tuple(patch_size) @@ -56,7 +61,7 @@ def __init__(self, self.patch_size = patch_size # Use conv layer to embed - conv_type = conv_type or dict(type='Conv2d') + conv_type = conv_type or 'Conv2d' self.projection = build_conv_layer( dict(type=conv_type), in_channels=in_channels, @@ -73,12 +78,17 @@ def __init__(self, def forward(self, x): H, W = x.shape[2], x.shape[3] - if H % self.patch_size[0] != 0: - x = F.pad(x, - (0, 0, 0, self.patch_size[0] - H % self.patch_size[0])) - if W % self.patch_size[1] != 0: - x = F.pad(x, - (0, self.patch_size[1] - W % self.patch_size[1], 0, 0)) + + # TODO: Process overlapping op + if self.pad_to_patch_size: + # Modify H, W to multiple of patch size. + if H % self.patch_size[0] != 0: + x = F.pad( + x, (0, 0, 0, self.patch_size[0] - H % self.patch_size[0])) + if W % self.patch_size[1] != 0: + x = F.pad( + x, (0, self.patch_size[1] - W % self.patch_size[1], 0, 0)) + x = self.projection(x) self.DH, self.DW = x.shape[2], x.shape[3] x = x.flatten(2).transpose(1, 2) diff --git a/mmseg/models/utils/shape_convert.py b/mmseg/models/utils/shape_convert.py new file mode 100644 index 0000000000..744416092c --- /dev/null +++ b/mmseg/models/utils/shape_convert.py @@ -0,0 +1,28 @@ +def nlc_to_nchw(x, hw_shape): + """Convert [N, L, C] shape tensor to [N, C, H, W] shape tensor. + + Args: + x (Tensor): The input tensor of shape [N, L, C] before convertion. + hw_shape (Sequence[int]): The height and width of output feature map. + + Returns: + Tensor: The output tensor of shape [N, C, H, W] after convertion. + """ + H, W = hw_shape + assert len(x.shape) == 3 + B, L, C = x.shape + assert L == H * W, 'The seq_len doesn\'t match H, W' + return x.transpose(1, 2).reshape(B, C, H, W) + + +def nchw_to_nlc(x): + """Flatten [N, C, H, W] shape tensor to [N, L, C] shape tensor. + + Args: + x (Tensor): The input tensor of shape [N, C, H, W] before convertion. + + Returns: + Tensor: The output tensor of shape [N, L, C] after convertion. + """ + assert len(x.shape) == 4 + return x.flatten(2).transpose(1, 2).contiguous() diff --git a/tests/test_models/test_backbones/test_mit.py b/tests/test_models/test_backbones/test_mit.py new file mode 100644 index 0000000000..bf6cca1649 --- /dev/null +++ b/tests/test_models/test_backbones/test_mit.py @@ -0,0 +1,60 @@ +import pytest +import torch + +from mmseg.models.backbones import MixVisionTransformer +from mmseg.models.backbones.mit import EfficientMultiheadAttention, MixFFN + + +def test_mit(): + with pytest.raises(AssertionError): + # It's only support official style and mmcls style now. + MixVisionTransformer(pretrain_style='timm') + + with pytest.raises(TypeError): + # Pretrained represents pretrain url and must be str or None. + MixVisionTransformer(pretrained=123) + + # Test normal input + H, W = (224, 224) + temp = torch.randn((1, 3, H, W)) + model = MixVisionTransformer( + embed_dims=32, num_heads=[1, 2, 5, 8], out_indices=(0, 1, 2, 3)) + model.init_weights() + outs = model(temp) + assert outs[0].shape == (1, 32, H // 4, W // 4) + assert outs[1].shape == (1, 64, H // 8, W // 8) + assert outs[2].shape == (1, 160, H // 16, W // 16) + assert outs[3].shape == (1, 256, H // 32, W // 32) + + # Test non-squared input + H, W = (224, 320) + temp = torch.randn((1, 3, H, W)) + outs = model(temp) + assert outs[0].shape == (1, 32, H // 4, W // 4) + assert outs[1].shape == (1, 64, H // 8, W // 8) + assert outs[2].shape == (1, 160, H // 16, W // 16) + assert outs[3].shape == (1, 256, H // 32, W // 32) + + # Test MixFFN + FFN = MixFFN(128, 512) + hw_shape = (32, 32) + token_len = 32 * 32 + temp = torch.randn((1, token_len, 128)) + # Self identity + out = FFN(temp, hw_shape) + assert out.shape == (1, token_len, 128) + # Out identity + outs = FFN(temp, hw_shape, temp) + assert out.shape == (1, token_len, 128) + + # Test EfficientMHA + MHA = EfficientMultiheadAttention(128, 2) + hw_shape = (32, 32) + token_len = 32 * 32 + temp = torch.randn((1, token_len, 128)) + # Self identity + out = MHA(temp, hw_shape) + assert out.shape == (1, token_len, 128) + # Out identity + outs = MHA(temp, hw_shape, temp) + assert out.shape == (1, token_len, 128) From ef819df1b92bba731ee7b200eb1492fd2e58ead1 Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Sun, 25 Jul 2021 11:04:14 -0700 Subject: [PATCH 190/706] [Doc] Fixed doc api display (#725) * [Doc] Fixed doc api display * add missing pretty table --- docs/conf.py | 6 ++++-- requirements/readthedocs.txt | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 72c8c5210c..758b5ff8ff 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -46,7 +46,9 @@ def get_version(): 'sphinx_markdown_tables', ] -autodoc_mock_imports = ['matplotlib', 'pycocotools', 'mmseg.version'] +autodoc_mock_imports = [ + 'matplotlib', 'pycocotools', 'mmseg.version', 'mmcv.ops' +] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] @@ -79,7 +81,7 @@ def get_version(): # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] -language = 'zh_CN' +language = 'en' def builder_inited_handler(app): diff --git a/requirements/readthedocs.txt b/requirements/readthedocs.txt index 0542bfce6d..22a894bd71 100644 --- a/requirements/readthedocs.txt +++ b/requirements/readthedocs.txt @@ -1,3 +1,4 @@ mmcv +prettytable torch torchvision From e0a186036982e045f44bffeb4d3eaf3a924e1edd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=98=95=E8=BE=B0?= Date: Tue, 27 Jul 2021 15:43:32 +0800 Subject: [PATCH 191/706] [Feature] support mim (#717) * support mim * remove mim demo --- .gitignore | 1 + MANIFEST.in | 7 +++---- README.md | 1 + setup.py | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 59 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 9b7cffbc88..6bbdaec225 100644 --- a/.gitignore +++ b/.gitignore @@ -112,6 +112,7 @@ data *.pkl.json *.log.json work_dirs/ +mmseg/.mim # Pytorch *.pth diff --git a/MANIFEST.in b/MANIFEST.in index 54f5b5ca80..e307d81817 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,5 +1,4 @@ - include requirements/*.txt -include mmseg/model-index.yml -recursive-include mmseg/configs *.py *.yml -recursive-include mmseg/tools *.sh *.py +include mmseg/.mim/model-index.yml +recursive-include mmseg/.mim/configs *.py *.yml +recursive-include mmseg/.mim/tools *.py *.sh diff --git a/README.md b/README.md index 20e8f93831..5526b161f4 100644 --- a/README.md +++ b/README.md @@ -142,3 +142,4 @@ and develop their own new semantic segmentation methods. - [MMEditing](https://github.com/open-mmlab/mmediting): OpenMMLab image and video editing toolbox. - [MMOCR](https://github.com/open-mmlab/mmocr): A Comprehensive Toolbox for Text Detection, Recognition and Understanding. - [MMGeneration](https://github.com/open-mmlab/mmgeneration): A powerful toolkit for generative models. +- [MIM](https://github.com/open-mmlab/mim): MIM Installs OpenMMLab Packages. diff --git a/setup.py b/setup.py index 321664bcdd..92c0950462 100755 --- a/setup.py +++ b/setup.py @@ -1,3 +1,8 @@ +import os +import os.path as osp +import shutil +import sys +import warnings from setuptools import find_packages, setup @@ -92,7 +97,56 @@ def gen_packages_items(): return packages +def add_mim_extention(): + """Add extra files that are required to support MIM into the package. + + These files will be added by creating a symlink to the originals if the + package is installed in `editable` mode (e.g. pip install -e .), or by + copying from the originals otherwise. + """ + + # parse installment mode + if 'develop' in sys.argv: + # installed by `pip install -e .` + mode = 'symlink' + elif 'sdist' in sys.argv or 'bdist_wheel' in sys.argv: + # installed by `pip install .` + # or create source distribution by `python setup.py sdist` + mode = 'copy' + else: + return + + filenames = ['tools', 'configs', 'model-index.yml'] + repo_path = osp.dirname(__file__) + mim_path = osp.join(repo_path, 'mmseg', '.mim') + os.makedirs(mim_path, exist_ok=True) + + for filename in filenames: + if osp.exists(filename): + src_path = osp.join(repo_path, filename) + tar_path = osp.join(mim_path, filename) + + if osp.isfile(tar_path) or osp.islink(tar_path): + os.remove(tar_path) + elif osp.isdir(tar_path): + shutil.rmtree(tar_path) + + if mode == 'symlink': + src_relpath = osp.relpath(src_path, osp.dirname(tar_path)) + os.symlink(src_relpath, tar_path) + elif mode == 'copy': + if osp.isfile(src_path): + shutil.copyfile(src_path, tar_path) + elif osp.isdir(src_path): + shutil.copytree(src_path, tar_path) + else: + warnings.warn(f'Cannot copy file {src_path}.') + else: + raise ValueError(f'Invalid mode {mode}') + + if __name__ == '__main__': + add_mim_extention() setup( name='mmsegmentation', version=get_version(), From 2b021e3168fd5f08aaa732fc6f81dd9087e53f9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=98=95=E8=BE=B0?= Date: Tue, 27 Jul 2021 19:07:36 +0800 Subject: [PATCH 192/706] skip wrong iter number (#716) --- tools/analyze_logs.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/analyze_logs.py b/tools/analyze_logs.py index c3a468b554..fb017efaaf 100644 --- a/tools/analyze_logs.py +++ b/tools/analyze_logs.py @@ -30,6 +30,9 @@ def plot_curve(log_dicts, args): plot_epochs = [] plot_iters = [] plot_values = [] + # In some log files, iters number is not correct, `pre_iter` is + # used to prevent generate wrong lines. + pre_iter = -1 for epoch in epochs: epoch_logs = log_dict[epoch] if metric not in epoch_logs.keys(): @@ -39,6 +42,9 @@ def plot_curve(log_dicts, args): plot_values.append(epoch_logs[metric][0]) else: for idx in range(len(epoch_logs[metric])): + if pre_iter > epoch_logs['iter'][idx]: + continue + pre_iter = epoch_logs['iter'][idx] plot_iters.append(epoch_logs['iter'][idx]) plot_values.append(epoch_logs[metric][idx]) ax = plt.gca() From b5ae7a7f69a1b0667bd5f039cdaa02f247b5ce33 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Tue, 27 Jul 2021 23:19:12 +0800 Subject: [PATCH 193/706] [Fix] Fix ATTENTION registry (#729) * register ATTENTION registry from the parent ATTENTION registry of MMCV to avoid conflict with other repos * remove redundant file --- mmseg/models/backbones/swin.py | 3 +-- mmseg/models/builder.py | 2 ++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/mmseg/models/backbones/swin.py b/mmseg/models/backbones/swin.py index 1ea6389fa4..ef027dc0d9 100644 --- a/mmseg/models/backbones/swin.py +++ b/mmseg/models/backbones/swin.py @@ -5,7 +5,6 @@ import torch.nn as nn import torch.nn.functional as F from mmcv.cnn import build_norm_layer, trunc_normal_init -from mmcv.cnn.bricks.registry import ATTENTION from mmcv.cnn.bricks.transformer import FFN, build_dropout from mmcv.cnn.utils.weight_init import constant_init from mmcv.runner import _load_checkpoint @@ -15,7 +14,7 @@ from torch.nn.modules.utils import _pair as to_2tuple from ...utils import get_root_logger -from ..builder import BACKBONES +from ..builder import ATTENTION, BACKBONES from ..utils import PatchEmbed, swin_convert diff --git a/mmseg/models/builder.py b/mmseg/models/builder.py index 9b68ff888c..05d0606807 100644 --- a/mmseg/models/builder.py +++ b/mmseg/models/builder.py @@ -1,9 +1,11 @@ import warnings from mmcv.cnn import MODELS as MMCV_MODELS +from mmcv.cnn.bricks.registry import ATTENTION as MMCV_ATTENTION from mmcv.utils import Registry MODELS = Registry('models', parent=MMCV_MODELS) +ATTENTION = Registry('attention', parent=MMCV_ATTENTION) BACKBONES = MODELS NECKS = MODELS From 50461efe854bc922d1c345b8344a7c3aa59817aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miguel=20M=C3=A9ndez?= Date: Wed, 28 Jul 2021 10:56:22 +0200 Subject: [PATCH 194/706] [Fix] Replace interpolate with resize (#731) * Replace interpolate with resize * Replace nn.Upsample with ops.Upsample * Fix test --- mmseg/models/backbones/swin.py | 3 ++- mmseg/models/backbones/unet.py | 3 ++- mmseg/models/backbones/vit.py | 4 ++-- mmseg/models/decode_heads/fpn_head.py | 4 ++-- mmseg/models/decode_heads/setr_mla_head.py | 3 ++- mmseg/models/decode_heads/setr_up_head.py | 3 ++- mmseg/models/necks/fpn.py | 6 +++--- mmseg/models/necks/multilevel_neck.py | 4 ++-- tests/test_models/test_backbones/test_unet.py | 10 +++++----- tools/deploy_test.py | 5 +++-- tools/pytorch2onnx.py | 6 ++---- 11 files changed, 27 insertions(+), 24 deletions(-) diff --git a/mmseg/models/backbones/swin.py b/mmseg/models/backbones/swin.py index ef027dc0d9..68a989b5d7 100644 --- a/mmseg/models/backbones/swin.py +++ b/mmseg/models/backbones/swin.py @@ -13,6 +13,7 @@ from torch.nn.modules.normalization import LayerNorm from torch.nn.modules.utils import _pair as to_2tuple +from mmseg.ops import resize from ...utils import get_root_logger from ..builder import ATTENTION, BACKBONES from ..utils import PatchEmbed, swin_convert @@ -745,7 +746,7 @@ def init_weights(self): if L1 != L2: S1 = int(L1**0.5) S2 = int(L2**0.5) - table_pretrained_resized = F.interpolate( + table_pretrained_resized = resize( table_pretrained.permute(1, 0).reshape( 1, nH1, S1, S1), size=(S2, S2), diff --git a/mmseg/models/backbones/unet.py b/mmseg/models/backbones/unet.py index a8cbe57f6c..705dd2b8f8 100644 --- a/mmseg/models/backbones/unet.py +++ b/mmseg/models/backbones/unet.py @@ -7,6 +7,7 @@ from mmcv.runner import BaseModule from mmcv.utils.parrots_wrapper import _BatchNorm +from mmseg.ops import Upsample from ..builder import BACKBONES from ..utils import UpConvBlock @@ -203,7 +204,7 @@ def __init__(self, conv_cfg=conv_cfg, norm_cfg=norm_cfg, act_cfg=act_cfg) - upsample = nn.Upsample(**upsample_cfg) + upsample = Upsample(**upsample_cfg) if conv_first: self.interp_upsample = nn.Sequential(conv, upsample) else: diff --git a/mmseg/models/backbones/vit.py b/mmseg/models/backbones/vit.py index 021bf09331..e4f1839bdb 100644 --- a/mmseg/models/backbones/vit.py +++ b/mmseg/models/backbones/vit.py @@ -3,7 +3,6 @@ import torch import torch.nn as nn -import torch.nn.functional as F from mmcv.cnn import (build_norm_layer, constant_init, kaiming_init, normal_init, trunc_normal_init) from mmcv.cnn.bricks.transformer import FFN, MultiheadAttention @@ -11,6 +10,7 @@ from torch.nn.modules.batchnorm import _BatchNorm from torch.nn.modules.utils import _pair as to_2tuple +from mmseg.ops import resize from mmseg.utils import get_root_logger from ..builder import BACKBONES from ..utils import PatchEmbed, vit_convert @@ -373,7 +373,7 @@ def resize_pos_embed(pos_embed, input_shpae, pos_shape, mode): pos_embed_weight = pos_embed[:, (-1 * pos_h * pos_w):] pos_embed_weight = pos_embed_weight.reshape( 1, pos_h, pos_w, pos_embed.shape[2]).permute(0, 3, 1, 2) - pos_embed_weight = F.interpolate( + pos_embed_weight = resize( pos_embed_weight, size=input_shpae, align_corners=False, mode=mode) cls_token_weight = cls_token_weight.unsqueeze(1) pos_embed_weight = torch.flatten(pos_embed_weight, 2).transpose(1, 2) diff --git a/mmseg/models/decode_heads/fpn_head.py b/mmseg/models/decode_heads/fpn_head.py index 9b6ada0059..1e5bfd63fc 100644 --- a/mmseg/models/decode_heads/fpn_head.py +++ b/mmseg/models/decode_heads/fpn_head.py @@ -2,7 +2,7 @@ import torch.nn as nn from mmcv.cnn import ConvModule -from mmseg.ops import resize +from mmseg.ops import Upsample, resize from ..builder import HEADS from .decode_head import BaseDecodeHead @@ -45,7 +45,7 @@ def __init__(self, feature_strides, **kwargs): act_cfg=self.act_cfg)) if feature_strides[i] != feature_strides[0]: scale_head.append( - nn.Upsample( + Upsample( scale_factor=2, mode='bilinear', align_corners=self.align_corners)) diff --git a/mmseg/models/decode_heads/setr_mla_head.py b/mmseg/models/decode_heads/setr_mla_head.py index 016a82a41c..86e493d2e8 100644 --- a/mmseg/models/decode_heads/setr_mla_head.py +++ b/mmseg/models/decode_heads/setr_mla_head.py @@ -2,6 +2,7 @@ import torch.nn as nn from mmcv.cnn import ConvModule +from mmseg.ops import Upsample from ..builder import HEADS from .decode_head import BaseDecodeHead @@ -46,7 +47,7 @@ def __init__(self, mla_channels=128, up_scale=4, **kwargs): padding=1, norm_cfg=self.norm_cfg, act_cfg=self.act_cfg), - nn.Upsample( + Upsample( scale_factor=up_scale, mode='bilinear', align_corners=self.align_corners))) diff --git a/mmseg/models/decode_heads/setr_up_head.py b/mmseg/models/decode_heads/setr_up_head.py index 322a56dc79..d64896f76b 100644 --- a/mmseg/models/decode_heads/setr_up_head.py +++ b/mmseg/models/decode_heads/setr_up_head.py @@ -1,6 +1,7 @@ import torch.nn as nn from mmcv.cnn import ConvModule, build_norm_layer +from mmseg.ops import Upsample from ..builder import HEADS from .decode_head import BaseDecodeHead @@ -59,7 +60,7 @@ def __init__(self, padding=int(kernel_size - 1) // 2, norm_cfg=self.norm_cfg, act_cfg=self.act_cfg), - nn.Upsample( + Upsample( scale_factor=up_scale, mode='bilinear', align_corners=self.align_corners))) diff --git a/mmseg/models/necks/fpn.py b/mmseg/models/necks/fpn.py index 4ba128ed48..5e1bd21836 100644 --- a/mmseg/models/necks/fpn.py +++ b/mmseg/models/necks/fpn.py @@ -3,6 +3,7 @@ from mmcv.cnn import ConvModule from mmcv.runner import BaseModule, auto_fp16 +from mmseg.ops import resize from ..builder import NECKS @@ -173,11 +174,10 @@ def forward(self, inputs): # In some cases, fixing `scale factor` (e.g. 2) is preferred, but # it cannot co-exist with `size` in `F.interpolate`. if 'scale_factor' in self.upsample_cfg: - laterals[i - 1] += F.interpolate(laterals[i], - **self.upsample_cfg) + laterals[i - 1] += resize(laterals[i], **self.upsample_cfg) else: prev_shape = laterals[i - 1].shape[2:] - laterals[i - 1] += F.interpolate( + laterals[i - 1] += resize( laterals[i], size=prev_shape, **self.upsample_cfg) # build outputs diff --git a/mmseg/models/necks/multilevel_neck.py b/mmseg/models/necks/multilevel_neck.py index eb32240bc6..9f638932f4 100644 --- a/mmseg/models/necks/multilevel_neck.py +++ b/mmseg/models/necks/multilevel_neck.py @@ -1,7 +1,7 @@ import torch.nn as nn -import torch.nn.functional as F from mmcv.cnn import ConvModule, xavier_init +from mmseg.ops import resize from ..builder import NECKS @@ -70,7 +70,7 @@ def forward(self, inputs): inputs = [inputs[0] for _ in range(self.num_outs)] outs = [] for i in range(self.num_outs): - x_resize = F.interpolate( + x_resize = resize( inputs[i], scale_factor=self.scales[i], mode='bilinear') outs.append(self.convs[i](x_resize)) return tuple(outs) diff --git a/tests/test_models/test_backbones/test_unet.py b/tests/test_models/test_backbones/test_unet.py index defdf39216..52f2123a3c 100644 --- a/tests/test_models/test_backbones/test_unet.py +++ b/tests/test_models/test_backbones/test_unet.py @@ -1,10 +1,10 @@ import pytest import torch from mmcv.cnn import ConvModule -from torch import nn from mmseg.models.backbones.unet import (BasicConvBlock, DeconvModule, InterpConv, UNet, UpConvBlock) +from mmseg.ops import Upsample from .utils import check_norm_state @@ -145,7 +145,7 @@ def test_interp_conv(): block = InterpConv(64, 32, conv_first=False) x = torch.randn(1, 64, 128, 128) x_out = block(x) - assert isinstance(block.interp_upsample[0], nn.Upsample) + assert isinstance(block.interp_upsample[0], Upsample) assert isinstance(block.interp_upsample[1], ConvModule) assert x_out.shape == torch.Size([1, 32, 256, 256]) @@ -154,7 +154,7 @@ def test_interp_conv(): x = torch.randn(1, 64, 128, 128) x_out = block(x) assert isinstance(block.interp_upsample[0], ConvModule) - assert isinstance(block.interp_upsample[1], nn.Upsample) + assert isinstance(block.interp_upsample[1], Upsample) assert x_out.shape == torch.Size([1, 32, 256, 256]) # test InterpConv with bilinear upsample for upsample 2X. @@ -166,7 +166,7 @@ def test_interp_conv(): scale_factor=2, mode='bilinear', align_corners=False)) x = torch.randn(1, 64, 128, 128) x_out = block(x) - assert isinstance(block.interp_upsample[0], nn.Upsample) + assert isinstance(block.interp_upsample[0], Upsample) assert isinstance(block.interp_upsample[1], ConvModule) assert x_out.shape == torch.Size([1, 32, 256, 256]) assert block.interp_upsample[0].mode == 'bilinear' @@ -179,7 +179,7 @@ def test_interp_conv(): upsample_cfg=dict(scale_factor=2, mode='nearest')) x = torch.randn(1, 64, 128, 128) x_out = block(x) - assert isinstance(block.interp_upsample[0], nn.Upsample) + assert isinstance(block.interp_upsample[0], Upsample) assert isinstance(block.interp_upsample[1], ConvModule) assert x_out.shape == torch.Size([1, 32, 256, 256]) assert block.interp_upsample[0].mode == 'nearest' diff --git a/tools/deploy_test.py b/tools/deploy_test.py index bef3512d71..51f16b4a2a 100644 --- a/tools/deploy_test.py +++ b/tools/deploy_test.py @@ -14,6 +14,7 @@ from mmseg.apis import single_gpu_test from mmseg.datasets import build_dataloader, build_dataset from mmseg.models.segmentors.base import BaseSegmentor +from mmseg.ops import resize class ONNXRuntimeSegmentor(BaseSegmentor): @@ -79,7 +80,7 @@ def simple_test(self, img: torch.Tensor, img_meta: Iterable, if not (ori_shape[0] == seg_pred.shape[-2] and ori_shape[1] == seg_pred.shape[-1]): seg_pred = torch.from_numpy(seg_pred).float() - seg_pred = torch.nn.functional.interpolate( + seg_pred = resize( seg_pred, size=tuple(ori_shape[:2]), mode='nearest') seg_pred = seg_pred.long().detach().cpu().numpy() seg_pred = seg_pred[0] @@ -127,7 +128,7 @@ def simple_test(self, img: torch.Tensor, img_meta: Iterable, if not (ori_shape[0] == seg_pred.shape[-2] and ori_shape[1] == seg_pred.shape[-1]): seg_pred = torch.from_numpy(seg_pred).float() - seg_pred = torch.nn.functional.interpolate( + seg_pred = resize( seg_pred, size=tuple(ori_shape[:2]), mode='nearest') seg_pred = seg_pred.long().detach().cpu().numpy() seg_pred = seg_pred[0] diff --git a/tools/pytorch2onnx.py b/tools/pytorch2onnx.py index 14f25056d5..17f10932a6 100644 --- a/tools/pytorch2onnx.py +++ b/tools/pytorch2onnx.py @@ -16,6 +16,7 @@ from mmseg.apis.inference import LoadImage from mmseg.datasets.pipelines import Compose from mmseg.models import build_segmentor +from mmseg.ops import resize torch.manual_seed(3) @@ -210,10 +211,7 @@ def pytorch2onnx(model, if dynamic_export and test_mode == 'whole': # scale image for dynamic shape test - img_list = [ - nn.functional.interpolate(_, scale_factor=1.5) - for _ in img_list - ] + img_list = [resize(_, scale_factor=1.5) for _ in img_list] # concate flip image for batch test flip_img_list = [_.flip(-1) for _ in img_list] img_list = [ From e09c700f15bc23c486e51302b816f0c4a5fb8a39 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Wed, 28 Jul 2021 17:33:15 +0800 Subject: [PATCH 195/706] [Enhancement] Refine the docstring of ResNet (#723) * refine docstring of resnet * refine docstring --- mmseg/models/backbones/resnet.py | 42 +++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/mmseg/models/backbones/resnet.py b/mmseg/models/backbones/resnet.py index 0ff1fe9de9..f7238f02f6 100644 --- a/mmseg/models/backbones/resnet.py +++ b/mmseg/models/backbones/resnet.py @@ -312,25 +312,38 @@ class ResNet(BaseModule): Args: depth (int): Depth of resnet, from {18, 34, 50, 101, 152}. - in_channels (int): Number of input image channels. Default" 3. + in_channels (int): Number of input image channels. Default: 3. stem_channels (int): Number of stem channels. Default: 64. base_channels (int): Number of base channels of res layer. Default: 64. - num_stages (int): Resnet stages, normally 4. + num_stages (int): Resnet stages, normally 4. Default: 4. strides (Sequence[int]): Strides of the first block of each stage. + Default: (1, 2, 2, 2). dilations (Sequence[int]): Dilation of each stage. + Default: (1, 1, 1, 1). out_indices (Sequence[int]): Output from which stages. + Default: (0, 1, 2, 3). style (str): `pytorch` or `caffe`. If set to "pytorch", the stride-two layer is the 3x3 conv layer, otherwise the stride-two layer is - the first 1x1 conv layer. - deep_stem (bool): Replace 7x7 conv in input stem with 3 3x3 conv + the first 1x1 conv layer. Default: 'pytorch'. + deep_stem (bool): Replace 7x7 conv in input stem with 3 3x3 conv. + Default: False. avg_down (bool): Use AvgPool instead of stride conv when - downsampling in the bottleneck. + downsampling in the bottleneck. Default: False. frozen_stages (int): Stages to be frozen (stop grad and set eval mode). - -1 means not freezing any parameters. + -1 means not freezing any parameters. Default: -1. + conv_cfg (dict | None): Dictionary to construct and config conv layer. + When conv_cfg is None, cfg will be set to dict(type='Conv2d'). + Default: None. norm_cfg (dict): Dictionary to construct and config norm layer. + Default: dict(type='BN', requires_grad=True). norm_eval (bool): Whether to set norm layers to eval mode, namely, freeze running stats (mean and var). Note: Effect on Batch Norm - and its variants only. + and its variants only. Default: False. + dcn (dict | None): Dictionary to construct and config DCN conv layer. + When dcn is not None, conv_cfg must be None. Default: None. + stage_with_dcn (Sequence[bool]): Whether to set DCN conv for each + stage. The length of stage_with_dcn is equal to num_stages. + Default: (False, False, False, False). plugins (list[dict]): List of plugins for stages, each dict contains: - cfg (dict, required): Cfg dict to build plugin. @@ -339,18 +352,19 @@ class ResNet(BaseModule): options: 'after_conv1', 'after_conv2', 'after_conv3'. - stages (tuple[bool], optional): Stages to apply plugin, length - should be same as 'num_stages' + should be same as 'num_stages'. + Default: None. multi_grid (Sequence[int]|None): Multi grid dilation rates of last - stage. Default: None + stage. Default: None. contract_dilation (bool): Whether contract first dilation of each layer - Default: False + Default: False. with_cp (bool): Use checkpoint or not. Using checkpoint will save some - memory while slowing down the training speed. + memory while slowing down the training speed. Default: False. zero_init_residual (bool): Whether to use zero init for last norm layer - in resblocks to let them behave as identity. - pretrained (str, optional): model pretrained path. Default: None + in resblocks to let them behave as identity. Default: True. + pretrained (str, optional): model pretrained path. Default: None. init_cfg (dict or list[dict], optional): Initialization config dict. - Default: None + Default: None. Example: >>> from mmseg.models import ResNet From 6f11a8fa553437a7ffb794940b7e8685331c6463 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Sat, 31 Jul 2021 17:05:05 +0800 Subject: [PATCH 196/706] add more format for readthedocs (#742) --- .readthedocs.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.readthedocs.yml b/.readthedocs.yml index 73ea4cb7e9..6cfbf5d310 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -1,7 +1,9 @@ version: 2 +formats: all + python: - version: 3.7 - install: - - requirements: requirements/docs.txt - - requirements: requirements/readthedocs.txt + version: 3.7 + install: + - requirements: requirements/docs.txt + - requirements: requirements/readthedocs.txt From 8ed5975b81ba0f2e93137d3a1e2488c729fc9edd Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Sun, 1 Aug 2021 00:29:15 +0800 Subject: [PATCH 197/706] add reimplementation questions template (#741) --- .../reimplementation_questions.md | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/reimplementation_questions.md diff --git a/.github/ISSUE_TEMPLATE/reimplementation_questions.md b/.github/ISSUE_TEMPLATE/reimplementation_questions.md new file mode 100644 index 0000000000..c82397baed --- /dev/null +++ b/.github/ISSUE_TEMPLATE/reimplementation_questions.md @@ -0,0 +1,70 @@ +--- +name: Reimplementation Questions +about: Ask about questions during model reimplementation +title: '' +labels: 'reimplementation' +assignees: '' + +--- + +If you feel we have helped you, give us a STAR! :satisfied: + +**Notice** + +There are several common situations in the reimplementation issues as below + +1. Reimplement a model in the model zoo using the provided configs +2. Reimplement a model in the model zoo on other datasets (e.g., custom datasets) +3. Reimplement a custom model but all the components are implemented in MMSegmentation +4. Reimplement a custom model with new modules implemented by yourself + +There are several things to do for different cases as below. + +- For cases 1 & 3, please follow the steps in the following sections thus we could help to quickly identify the issue. +- For cases 2 & 4, please understand that we are not able to do much help here because we usually do not know the full code, and the users should be responsible for the code they write. +- One suggestion for cases 2 & 4 is that the users should first check whether the bug lies in the self-implemented code or the original code. For example, users can first make sure that the same model runs well on supported datasets. If you still need help, please describe what you have done and what you obtain in the issue, and follow the steps in the following sections, and try as clear as possible so that we can better help you. + +**Checklist** + +1. I have searched related issues but cannot get the expected help. +2. The issue has not been fixed in the latest version. + +**Describe the issue** + +A clear and concise description of the problem you meet and what you have done. + +**Reproduction** + +1. What command or script did you run? + +``` +A placeholder for the command. +``` + +2. What config dir you run? + +``` +A placeholder for the config. +``` + +3. Did you make any modifications to the code or config? Did you understand what you have modified? +4. What dataset did you use? + +**Environment** + +1. Please run `PYTHONPATH=${PWD}:$PYTHONPATH python mmseg/utils/collect_env.py` to collect the necessary environment information and paste it here. +2. You may add an addition that may be helpful for locating the problem, such as + 1. How you installed PyTorch [e.g., pip, conda, source] + 2. Other environment variables that may be related (such as `$PATH`, `$LD_LIBRARY_PATH`, `$PYTHONPATH`, etc.) + +**Results** + +If applicable, paste the related results here, e.g., what you expect and what you get. + +``` +A placeholder for results comparison +``` + +**Issue fix** + +If you have already identified the reason, you can provide the information here. If you are willing to create a PR to fix it, please also leave a comment here and that would be much appreciated! From 2f3f027c3d32f2bd1948b8e70258be78a157b855 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=98=95=E8=BE=B0?= Date: Sun, 1 Aug 2021 00:31:58 +0800 Subject: [PATCH 198/706] [Enhancement] md2yml pre-commit hook (#732) * init script * update scripts and generate new yml * fix lint: deeplabv3plus.yml * modify resolution representation * remove field * format crop_size --- .dev/md2yml.py | 193 ++++++ .pre-commit-config.yaml | 9 + configs/ann/ann.yml | 296 +++++++++ configs/ann/metafile.yml | 311 --------- configs/apcnet/apcnet.yml | 223 +++++++ configs/apcnet/metafile.yml | 234 ------- configs/ccnet/ccnet.yml | 296 +++++++++ configs/ccnet/metafile.yml | 311 --------- configs/cgnet/cgnet.yml | 50 ++ configs/cgnet/metafile.yml | 43 -- configs/danet/danet.yml | 292 +++++++++ configs/danet/metafile.yml | 311 --------- configs/deeplabv3/deeplabv3.yml | 552 ++++++++++++++++ configs/deeplabv3/metafile.yml | 578 ----------------- configs/deeplabv3plus/deeplabv3plus.yml | 574 +++++++++++++++++ configs/deeplabv3plus/metafile.yml | 578 ----------------- configs/dmnet/dmnet.yml | 223 +++++++ configs/dmnet/metafile.yml | 234 ------- configs/dnlnet/dnlnet.yml | 219 +++++++ configs/dnlnet/metafile.yml | 234 ------- configs/emanet/emanet.yml | 94 +++ configs/emanet/metafile.yml | 81 --- configs/encnet/encnet.yml | 223 +++++++ configs/encnet/metafile.yml | 235 ------- configs/fastscnn/fastscnn.yml | 28 + configs/fastscnn/metafile.yml | 24 - configs/fcn/README.md | 8 +- configs/fcn/fcn.yml | 797 ++++++++++++++++++++++++ configs/fcn/metafile.yml | 699 --------------------- configs/fp16/fp16.yml | 90 +++ configs/fp16/metafile.yml | 76 --- configs/gcnet/gcnet.yml | 296 +++++++++ configs/gcnet/metafile.yml | 311 --------- configs/hrnet/hrnet.yml | 440 +++++++++++++ configs/hrnet/metafile.yml | 473 -------------- configs/mobilenet_v2/metafile.yml | 152 ----- configs/mobilenet_v2/mobilenet_v2.yml | 175 ++++++ configs/mobilenet_v3/metafile.yml | 81 --- configs/mobilenet_v3/mobilenet_v3.yml | 94 +++ configs/nonlocal_net/metafile.yml | 311 --------- configs/nonlocal_net/nonlocal_net.yml | 292 +++++++++ configs/ocrnet/metafile.yml | 463 -------------- configs/ocrnet/ocrnet.yml | 431 +++++++++++++ configs/point_rend/metafile.yml | 82 --- configs/point_rend/point_rend.yml | 95 +++ configs/psanet/metafile.yml | 311 --------- configs/psanet/psanet.yml | 296 +++++++++ configs/pspnet/metafile.yml | 540 ---------------- configs/pspnet/pspnet.yml | 538 ++++++++++++++++ configs/resnest/metafile.yml | 158 ----- configs/resnest/resnest.yml | 183 ++++++ configs/sem_fpn/metafile.yml | 83 --- configs/sem_fpn/sem_fpn.yml | 95 +++ configs/setr/setr.yml | 87 +++ configs/swin/swin.yml | 122 ++++ configs/unet/README.md | 32 +- configs/unet/metafile.yml | 227 ------- configs/unet/unet.yml | 177 ++++++ configs/upernet/metafile.yml | 311 --------- configs/upernet/upernet.yml | 296 +++++++++ configs/vit/vit.yml | 248 ++++++++ model-index.yml | 56 +- 62 files changed, 8074 insertions(+), 7498 deletions(-) create mode 100755 .dev/md2yml.py create mode 100644 configs/ann/ann.yml delete mode 100644 configs/ann/metafile.yml create mode 100644 configs/apcnet/apcnet.yml delete mode 100644 configs/apcnet/metafile.yml create mode 100644 configs/ccnet/ccnet.yml delete mode 100644 configs/ccnet/metafile.yml create mode 100644 configs/cgnet/cgnet.yml delete mode 100644 configs/cgnet/metafile.yml create mode 100644 configs/danet/danet.yml delete mode 100644 configs/danet/metafile.yml create mode 100644 configs/deeplabv3/deeplabv3.yml delete mode 100644 configs/deeplabv3/metafile.yml create mode 100644 configs/deeplabv3plus/deeplabv3plus.yml delete mode 100644 configs/deeplabv3plus/metafile.yml create mode 100644 configs/dmnet/dmnet.yml delete mode 100644 configs/dmnet/metafile.yml create mode 100644 configs/dnlnet/dnlnet.yml delete mode 100644 configs/dnlnet/metafile.yml create mode 100644 configs/emanet/emanet.yml delete mode 100644 configs/emanet/metafile.yml create mode 100644 configs/encnet/encnet.yml delete mode 100644 configs/encnet/metafile.yml create mode 100644 configs/fastscnn/fastscnn.yml delete mode 100644 configs/fastscnn/metafile.yml create mode 100644 configs/fcn/fcn.yml delete mode 100644 configs/fcn/metafile.yml create mode 100644 configs/fp16/fp16.yml delete mode 100644 configs/fp16/metafile.yml create mode 100644 configs/gcnet/gcnet.yml delete mode 100644 configs/gcnet/metafile.yml create mode 100644 configs/hrnet/hrnet.yml delete mode 100644 configs/hrnet/metafile.yml delete mode 100644 configs/mobilenet_v2/metafile.yml create mode 100644 configs/mobilenet_v2/mobilenet_v2.yml delete mode 100644 configs/mobilenet_v3/metafile.yml create mode 100644 configs/mobilenet_v3/mobilenet_v3.yml delete mode 100644 configs/nonlocal_net/metafile.yml create mode 100644 configs/nonlocal_net/nonlocal_net.yml delete mode 100644 configs/ocrnet/metafile.yml create mode 100644 configs/ocrnet/ocrnet.yml delete mode 100644 configs/point_rend/metafile.yml create mode 100644 configs/point_rend/point_rend.yml delete mode 100644 configs/psanet/metafile.yml create mode 100644 configs/psanet/psanet.yml delete mode 100644 configs/pspnet/metafile.yml create mode 100644 configs/pspnet/pspnet.yml delete mode 100644 configs/resnest/metafile.yml create mode 100644 configs/resnest/resnest.yml delete mode 100644 configs/sem_fpn/metafile.yml create mode 100644 configs/sem_fpn/sem_fpn.yml create mode 100644 configs/setr/setr.yml create mode 100644 configs/swin/swin.yml delete mode 100644 configs/unet/metafile.yml create mode 100644 configs/unet/unet.yml delete mode 100644 configs/upernet/metafile.yml create mode 100644 configs/upernet/upernet.yml create mode 100644 configs/vit/vit.yml diff --git a/.dev/md2yml.py b/.dev/md2yml.py new file mode 100755 index 0000000000..5ffebbc187 --- /dev/null +++ b/.dev/md2yml.py @@ -0,0 +1,193 @@ +#!/usr/bin/env python + +# This tool is used to update model-index.yml which is required by MIM, and +# will be automatically called as a pre-commit hook. The updating will be +# triggered if any change of model information (.md files in configs/) has been +# detected before a commit. + +import glob +import os +import os.path as osp +import sys + +import mmcv + +MMSEG_ROOT = osp.dirname(osp.dirname((osp.dirname(__file__)))) + + +def dump_yaml_and_check_difference(obj, filename): + """Dump object to a yaml file, and check if the file content is different + from the original. + + Args: + obj (any): The python object to be dumped. + filename (str): YAML filename to dump the object to. + Returns: + Bool: If the target YAML file is different from the original. + """ + original = None + if osp.isfile(filename): + with open(filename, 'r', encoding='utf-8') as f: + original = f.read() + with open(filename, 'w', encoding='utf-8') as f: + mmcv.dump(obj, f, file_format='yaml', sort_keys=False) + is_different = True + if original is not None: + with open(filename, 'r') as f: + new = f.read() + is_different = (original != new) + return is_different + + +def parse_md(md_file): + """Parse .md file and convert it to a .yml file which can be used for MIM. + + Args: + md_file (str): Path to .md file. + Returns: + Bool: If the target YAML file is different from the original. + """ + collection_name = osp.dirname(md_file).split('/')[-1] + configs = os.listdir(osp.dirname(md_file)) + + collection = dict(Name=collection_name, Metadata={'Training Data': []}) + models = [] + datasets = [] + + with open(md_file, 'r') as md: + lines = md.readlines() + i = 0 + current_dataset = '' + while i < len(lines): + line = lines[i].strip() + if len(line) == 0: + i += 1 + continue + if line[:3] == '###': + datasets.append(line[4:]) + current_dataset = line[4:] + i += 2 + elif line[0] == '|' and ( + i + 1) < len(lines) and lines[i + 1][:3] == '| -': + cols = [col.strip() for col in line.split('|')] + backbone_id = cols.index('Backbone') + crop_size_id = cols.index('Crop Size') + lr_schd_id = cols.index('Lr schd') + mem_id = cols.index('Mem (GB)') + fps_id = cols.index('Inf time (fps)') + try: + ss_id = cols.index('mIoU') + except ValueError: + ss_id = cols.index('Dice') + try: + ms_id = cols.index('mIoU(ms+flip)') + except ValueError: + ms_id = False + config_id = cols.index('config') + download_id = cols.index('download') + j = i + 2 + while j < len(lines) and lines[j][0] == '|': + els = [el.strip() for el in lines[j].split('|')] + config = '' + model_name = '' + weight = '' + for fn in configs: + if fn in els[config_id]: + left = els[download_id].index( + 'https://download.openmmlab.com') + right = els[download_id].index('.pth') + 4 + weight = els[download_id][left:right] + config = f'configs/{collection_name}/{fn}' + model_name = fn[:-3] + fps = els[fps_id] if els[fps_id] != '-' and els[ + fps_id] != '' else -1 + mem = els[mem_id] if els[mem_id] != '-' and els[ + mem_id] != '' else -1 + crop_size = els[crop_size_id].split('x') + assert len(crop_size) == 2 + model = { + 'Name': model_name, + 'In Collection': collection_name, + 'Metadata': { + 'backbone': els[backbone_id], + 'crop size': f'({crop_size[0]},{crop_size[1]})', + 'lr schd': int(els[lr_schd_id]), + }, + 'Results': { + 'Task': 'Semantic Segmentation', + 'Dataset': current_dataset, + 'Metrics': { + 'mIoU': float(els[ss_id]), + }, + }, + 'Config': config, + 'Weights': weight, + } + if fps != -1: + try: + fps = float(fps) + except Exception: + j += 1 + continue + model['Metadata']['inference time (ms/im)'] = [{ + 'value': + round(1000 / float(fps), 2), + 'hardware': + 'V100', + 'backend': + 'PyTorch', + 'batch size': + 1, + 'mode': + 'FP32', + 'resolution': + f'({crop_size[0]},{crop_size[1]})' + }] + if mem != -1: + model['Metadata']['memory (GB)'] = float(mem) + if ms_id and els[ms_id] != '-' and els[ms_id] != '': + model['Results']['Metrics']['mIoU(ms+flip)'] = float( + els[ms_id]) + models.append(model) + j += 1 + i = j + else: + i += 1 + collection['Metadata']['Training Data'] = datasets + result = {'Collections': [collection], 'Models': models} + yml_file = f'{md_file[:-9]}{collection_name}.yml' + return dump_yaml_and_check_difference(result, yml_file) + + +def update_model_index(): + """Update model-index.yml according to model .md files. + + Returns: + Bool: If the updated model-index.yml is different from the original. + """ + configs_dir = osp.join(MMSEG_ROOT, 'configs') + yml_files = glob.glob(osp.join(configs_dir, '**', '*.yml'), recursive=True) + yml_files.sort() + + model_index = { + 'Import': + [osp.relpath(yml_file, MMSEG_ROOT) for yml_file in yml_files] + } + model_index_file = osp.join(MMSEG_ROOT, 'model-index.yml') + is_different = dump_yaml_and_check_difference(model_index, + model_index_file) + + return is_different + + +if __name__ == '__main__': + file_list = [fn for fn in sys.argv[1:] if osp.basename(fn) == 'README.md'] + if not file_list: + exit(0) + file_modified = False + for fn in file_list: + file_modified |= parse_md(fn) + + file_modified |= update_model_index() + + exit(1 if file_modified else 0) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d3395dc284..4a63054362 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -38,3 +38,12 @@ repos: hooks: - id: docformatter args: ["--in-place", "--wrap-descriptions", "79"] + - repo: local + hooks: + - id: update-model-index + name: update-model-index + description: Collect model information and update model-index.yml + entry: .dev/md2yml.py + additional_dependencies: [mmcv] + language: python + files: ^configs/.*\.md$ diff --git a/configs/ann/ann.yml b/configs/ann/ann.yml new file mode 100644 index 0000000000..77589d835d --- /dev/null +++ b/configs/ann/ann.yml @@ -0,0 +1,296 @@ +Collections: +- Name: ann + Metadata: + Training Data: + - Cityscapes + - ADE20K + - Pascal VOC 2012 + Aug +Models: +- Name: ann_r50-d8_512x1024_40k_cityscapes + In Collection: ann + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 269.54 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 6.0 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.4 + mIoU(ms+flip): 78.57 + Config: configs/ann/ann_r50-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_40k_cityscapes/ann_r50-d8_512x1024_40k_cityscapes_20200605_095211-049fc292.pth +- Name: ann_r101-d8_512x1024_40k_cityscapes + In Collection: ann + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 392.16 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 9.5 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.55 + mIoU(ms+flip): 78.85 + Config: configs/ann/ann_r101-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_40k_cityscapes/ann_r101-d8_512x1024_40k_cityscapes_20200605_095243-adf6eece.pth +- Name: ann_r50-d8_769x769_40k_cityscapes + In Collection: ann + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 588.24 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 6.8 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.89 + mIoU(ms+flip): 80.46 + Config: configs/ann/ann_r50-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_40k_cityscapes/ann_r50-d8_769x769_40k_cityscapes_20200530_025712-2b46b04d.pth +- Name: ann_r101-d8_769x769_40k_cityscapes + In Collection: ann + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 869.57 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 10.7 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.32 + mIoU(ms+flip): 80.94 + Config: configs/ann/ann_r101-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_40k_cityscapes/ann_r101-d8_769x769_40k_cityscapes_20200530_025720-059bff28.pth +- Name: ann_r50-d8_512x1024_80k_cityscapes + In Collection: ann + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.34 + mIoU(ms+flip): 78.65 + Config: configs/ann/ann_r50-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_80k_cityscapes/ann_r50-d8_512x1024_80k_cityscapes_20200607_101911-5a9ad545.pth +- Name: ann_r101-d8_512x1024_80k_cityscapes + In Collection: ann + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.14 + mIoU(ms+flip): 78.81 + Config: configs/ann/ann_r101-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_80k_cityscapes/ann_r101-d8_512x1024_80k_cityscapes_20200607_013728-aceccc6e.pth +- Name: ann_r50-d8_769x769_80k_cityscapes + In Collection: ann + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.88 + mIoU(ms+flip): 80.57 + Config: configs/ann/ann_r50-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_80k_cityscapes/ann_r50-d8_769x769_80k_cityscapes_20200607_044426-cc7ff323.pth +- Name: ann_r101-d8_769x769_80k_cityscapes + In Collection: ann + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.8 + mIoU(ms+flip): 80.34 + Config: configs/ann/ann_r101-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_80k_cityscapes/ann_r101-d8_769x769_80k_cityscapes_20200607_013713-a9d4be8d.pth +- Name: ann_r50-d8_512x512_80k_ade20k + In Collection: ann + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 47.6 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 9.1 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 41.01 + mIoU(ms+flip): 42.3 + Config: configs/ann/ann_r50-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_80k_ade20k/ann_r50-d8_512x512_80k_ade20k_20200615_014818-26f75e11.pth +- Name: ann_r101-d8_512x512_80k_ade20k + In Collection: ann + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 70.82 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 12.5 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.94 + mIoU(ms+flip): 44.18 + Config: configs/ann/ann_r101-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_80k_ade20k/ann_r101-d8_512x512_80k_ade20k_20200615_014818-c0153543.pth +- Name: ann_r50-d8_512x512_160k_ade20k + In Collection: ann + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 41.74 + mIoU(ms+flip): 42.62 + Config: configs/ann/ann_r50-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_160k_ade20k/ann_r50-d8_512x512_160k_ade20k_20200615_231733-892247bc.pth +- Name: ann_r101-d8_512x512_160k_ade20k + In Collection: ann + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.94 + mIoU(ms+flip): 44.06 + Config: configs/ann/ann_r101-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_160k_ade20k/ann_r101-d8_512x512_160k_ade20k_20200615_231733-955eb1ec.pth +- Name: ann_r50-d8_512x512_20k_voc12aug + In Collection: ann + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 47.8 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 6.0 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 74.86 + mIoU(ms+flip): 76.13 + Config: configs/ann/ann_r50-d8_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_20k_voc12aug/ann_r50-d8_512x512_20k_voc12aug_20200617_222246-dfcb1c62.pth +- Name: ann_r101-d8_512x512_20k_voc12aug + In Collection: ann + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 71.74 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 9.5 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.47 + mIoU(ms+flip): 78.7 + Config: configs/ann/ann_r101-d8_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_20k_voc12aug/ann_r101-d8_512x512_20k_voc12aug_20200617_222246-2fad0042.pth +- Name: ann_r50-d8_512x512_40k_voc12aug + In Collection: ann + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.56 + mIoU(ms+flip): 77.51 + Config: configs/ann/ann_r50-d8_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_40k_voc12aug/ann_r50-d8_512x512_40k_voc12aug_20200613_231314-b5dac322.pth +- Name: ann_r101-d8_512x512_40k_voc12aug + In Collection: ann + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.7 + mIoU(ms+flip): 78.06 + Config: configs/ann/ann_r101-d8_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_40k_voc12aug/ann_r101-d8_512x512_40k_voc12aug_20200613_231314-bd205bbe.pth diff --git a/configs/ann/metafile.yml b/configs/ann/metafile.yml deleted file mode 100644 index 485da6c481..0000000000 --- a/configs/ann/metafile.yml +++ /dev/null @@ -1,311 +0,0 @@ -Collections: - - Name: ANN - Metadata: - Training Data: - - Cityscapes - - Pascal VOC 2012 + Aug - - ADE20K - -Models: - - - Name: ann_r50-d8_512x1024_40k_cityscapes - In Collection: ANN - Metadata: - inference time (ms/im): - - value: 269.54 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.40 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_40k_cityscapes/ann_r50-d8_512x1024_40k_cityscapes_20200605_095211-049fc292.pth - Config: configs/ann/ann_r50-d8_512x1024_40k_cityscapes.py - - - - - Name: ann_r101-d8_512x1024_40k_cityscapes - In Collection: ANN - Metadata: - inference time (ms/im): - - value: 392.16 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 76.55 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_40k_cityscapes/ann_r101-d8_512x1024_40k_cityscapes_20200605_095243-adf6eece.pth - Config: configs/ann/ann_r101-d8_512x1024_40k_cityscapes.py - - - - - Name: ann_r50-d8_769x769_40k_cityscapes - In Collection: ANN - Metadata: - inference time (ms/im): - - value: 588.24 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.89 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_40k_cityscapes/ann_r50-d8_769x769_40k_cityscapes_20200530_025712-2b46b04d.pth - Config: configs/ann/ann_r50-d8_769x769_40k_cityscapes.py - - - - - Name: ann_r101-d8_769x769_40k_cityscapes - In Collection: ANN - Metadata: - inference time (ms/im): - - value: 869.57 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.32 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_40k_cityscapes/ann_r101-d8_769x769_40k_cityscapes_20200530_025720-059bff28.pth - Config: configs/ann/ann_r101-d8_769x769_40k_cityscapes.py - - - - - Name: ann_r50-d8_512x1024_80k_cityscapes - In Collection: ANN - Metadata: - inference time (ms/im): - - value: 269.54 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.34 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_80k_cityscapes/ann_r50-d8_512x1024_80k_cityscapes_20200607_101911-5a9ad545.pth - Config: configs/ann/ann_r50-d8_512x1024_80k_cityscapes.py - - - - - Name: ann_r101-d8_512x1024_80k_cityscapes - In Collection: ANN - Metadata: - inference time (ms/im): - - value: 392.16 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.14 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_80k_cityscapes/ann_r101-d8_512x1024_80k_cityscapes_20200607_013728-aceccc6e.pth - Config: configs/ann/ann_r101-d8_512x1024_80k_cityscapes.py - - - - - Name: ann_r50-d8_769x769_80k_cityscapes - In Collection: ANN - Metadata: - inference time (ms/im): - - value: 588.24 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.88 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_80k_cityscapes/ann_r50-d8_769x769_80k_cityscapes_20200607_044426-cc7ff323.pth - Config: configs/ann/ann_r50-d8_769x769_80k_cityscapes.py - - - - - Name: ann_r101-d8_769x769_80k_cityscapes - In Collection: ANN - Metadata: - inference time (ms/im): - - value: 869.57 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.80 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_80k_cityscapes/ann_r101-d8_769x769_80k_cityscapes_20200607_013713-a9d4be8d.pth - Config: configs/ann/ann_r101-d8_769x769_80k_cityscapes.py - - - - - Name: ann_r50-d8_512x512_80k_ade20k - In Collection: ANN - Metadata: - inference time (ms/im): - - value: 47.6 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 41.01 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_80k_ade20k/ann_r50-d8_512x512_80k_ade20k_20200615_014818-26f75e11.pth - Config: configs/ann/ann_r50-d8_512x512_80k_ade20k.py - - - - - Name: ann_r101-d8_512x512_80k_ade20k - In Collection: ANN - Metadata: - inference time (ms/im): - - value: 70.82 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 42.94 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_80k_ade20k/ann_r101-d8_512x512_80k_ade20k_20200615_014818-c0153543.pth - Config: configs/ann/ann_r101-d8_512x512_80k_ade20k.py - - - - - Name: ann_r50-d8_512x512_160k_ade20k - In Collection: ANN - Metadata: - inference time (ms/im): - - value: 47.6 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 41.74 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_160k_ade20k/ann_r50-d8_512x512_160k_ade20k_20200615_231733-892247bc.pth - Config: configs/ann/ann_r50-d8_512x512_160k_ade20k.py - - - - - Name: ann_r101-d8_512x512_160k_ade20k - In Collection: ANN - Metadata: - inference time (ms/im): - - value: 70.82 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 42.94 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_160k_ade20k/ann_r101-d8_512x512_160k_ade20k_20200615_231733-955eb1ec.pth - Config: configs/ann/ann_r101-d8_512x512_160k_ade20k.py - - - - - Name: ann_r50-d8_512x512_20k_voc12aug - In Collection: ANN - Metadata: - inference time (ms/im): - - value: 47.8 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 74.86 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_20k_voc12aug/ann_r50-d8_512x512_20k_voc12aug_20200617_222246-dfcb1c62.pth - Config: configs/ann/ann_r50-d8_512x512_20k_voc12aug.py - - - - - Name: ann_r101-d8_512x512_20k_voc12aug - In Collection: ANN - Metadata: - inference time (ms/im): - - value: 71.74 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 77.47 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_20k_voc12aug/ann_r101-d8_512x512_20k_voc12aug_20200617_222246-2fad0042.pth - Config: configs/ann/ann_r101-d8_512x512_20k_voc12aug.py - - - - - Name: ann_r50-d8_512x512_40k_voc12aug - In Collection: ANN - Metadata: - inference time (ms/im): - - value: 47.8 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 76.56 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_40k_voc12aug/ann_r50-d8_512x512_40k_voc12aug_20200613_231314-b5dac322.pth - Config: configs/ann/ann_r50-d8_512x512_40k_voc12aug.py - - - - - Name: ann_r101-d8_512x512_40k_voc12aug - In Collection: ANN - Metadata: - inference time (ms/im): - - value: 71.74 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 76.70 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_40k_voc12aug/ann_r101-d8_512x512_40k_voc12aug_20200613_231314-bd205bbe.pth - Config: configs/ann/ann_r101-d8_512x512_40k_voc12aug.py diff --git a/configs/apcnet/apcnet.yml b/configs/apcnet/apcnet.yml new file mode 100644 index 0000000000..053636523e --- /dev/null +++ b/configs/apcnet/apcnet.yml @@ -0,0 +1,223 @@ +Collections: +- Name: apcnet + Metadata: + Training Data: + - Cityscapes + - ADE20K +Models: +- Name: apcnet_r50-d8_512x1024_40k_cityscapes + In Collection: apcnet + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 280.11 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 7.7 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.02 + mIoU(ms+flip): 79.26 + Config: configs/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes/apcnet_r50-d8_512x1024_40k_cityscapes_20201214_115717-5e88fa33.pth +- Name: apcnet_r101-d8_512x1024_40k_cityscapes + In Collection: apcnet + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 465.12 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 11.2 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.08 + mIoU(ms+flip): 80.34 + Config: configs/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes/apcnet_r101-d8_512x1024_40k_cityscapes_20201214_115716-abc9d111.pth +- Name: apcnet_r50-d8_769x769_40k_cityscapes + In Collection: apcnet + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 657.89 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 8.7 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.89 + mIoU(ms+flip): 79.75 + Config: configs/apcnet/apcnet_r50-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_40k_cityscapes/apcnet_r50-d8_769x769_40k_cityscapes_20201214_115717-2a2628d7.pth +- Name: apcnet_r101-d8_769x769_40k_cityscapes + In Collection: apcnet + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 970.87 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 12.7 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.96 + mIoU(ms+flip): 79.24 + Config: configs/apcnet/apcnet_r101-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_40k_cityscapes/apcnet_r101-d8_769x769_40k_cityscapes_20201214_115718-b650de90.pth +- Name: apcnet_r50-d8_512x1024_80k_cityscapes + In Collection: apcnet + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.96 + mIoU(ms+flip): 79.94 + Config: configs/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes/apcnet_r50-d8_512x1024_80k_cityscapes_20201214_115716-987f51e3.pth +- Name: apcnet_r101-d8_512x1024_80k_cityscapes + In Collection: apcnet + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.64 + mIoU(ms+flip): 80.61 + Config: configs/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes/apcnet_r101-d8_512x1024_80k_cityscapes_20201214_115705-b1ff208a.pth +- Name: apcnet_r50-d8_769x769_80k_cityscapes + In Collection: apcnet + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.79 + mIoU(ms+flip): 80.35 + Config: configs/apcnet/apcnet_r50-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_80k_cityscapes/apcnet_r50-d8_769x769_80k_cityscapes_20201214_115718-7ea9fa12.pth +- Name: apcnet_r101-d8_769x769_80k_cityscapes + In Collection: apcnet + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.45 + mIoU(ms+flip): 79.91 + Config: configs/apcnet/apcnet_r101-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_80k_cityscapes/apcnet_r101-d8_769x769_80k_cityscapes_20201214_115716-a7fbc2ab.pth +- Name: apcnet_r50-d8_512x512_80k_ade20k + In Collection: apcnet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 50.99 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 10.1 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.2 + mIoU(ms+flip): 43.3 + Config: configs/apcnet/apcnet_r50-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_80k_ade20k/apcnet_r50-d8_512x512_80k_ade20k_20201214_115705-a8626293.pth +- Name: apcnet_r101-d8_512x512_80k_ade20k + In Collection: apcnet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 76.34 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 13.6 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 45.54 + mIoU(ms+flip): 46.65 + Config: configs/apcnet/apcnet_r101-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_80k_ade20k/apcnet_r101-d8_512x512_80k_ade20k_20201214_115704-c656c3fb.pth +- Name: apcnet_r50-d8_512x512_160k_ade20k + In Collection: apcnet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.4 + mIoU(ms+flip): 43.94 + Config: configs/apcnet/apcnet_r50-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_160k_ade20k/apcnet_r50-d8_512x512_160k_ade20k_20201214_115706-25fb92c2.pth +- Name: apcnet_r101-d8_512x512_160k_ade20k + In Collection: apcnet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 45.41 + mIoU(ms+flip): 46.63 + Config: configs/apcnet/apcnet_r101-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_160k_ade20k/apcnet_r101-d8_512x512_160k_ade20k_20201214_115705-73f9a8d7.pth diff --git a/configs/apcnet/metafile.yml b/configs/apcnet/metafile.yml deleted file mode 100644 index 1bf635ef82..0000000000 --- a/configs/apcnet/metafile.yml +++ /dev/null @@ -1,234 +0,0 @@ -Collections: - - Name: APCNet - Metadata: - Training Data: - - Cityscapes - - ADE20K - -Models: - - - Name: apcnet_r50-d8_512x1024_40k_cityscapes - In Collection: APCNet - Metadata: - inference time (ms/im): - - value: 280.11 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.02 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes/apcnet_r50-d8_512x1024_40k_cityscapes_20201214_115717-5e88fa33.pth - Config: configs/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes.py - - - - - Name: apcnet_r101-d8_512x1024_40k_cityscapes - In Collection: APCNet - Metadata: - inference time (ms/im): - - value: 465.12 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.08 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes/apcnet_r101-d8_512x1024_40k_cityscapes_20201214_115716-abc9d111.pth - Config: configs/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes.py - - - - - Name: apcnet_r50-d8_769x769_40k_cityscapes - In Collection: APCNet - Metadata: - inference time (ms/im): - - value: 657.89 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.89 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_40k_cityscapes/apcnet_r50-d8_769x769_40k_cityscapes_20201214_115717-2a2628d7.pth - Config: configs/apcnet/apcnet_r50-d8_769x769_40k_cityscapes.py - - - - - Name: apcnet_r101-d8_769x769_40k_cityscapes - In Collection: APCNet - Metadata: - inference time (ms/im): - - value: 970.87 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.96 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_40k_cityscapes/apcnet_r101-d8_769x769_40k_cityscapes_20201214_115718-b650de90.pth - Config: configs/apcnet/apcnet_r101-d8_769x769_40k_cityscapes.py - - - - - Name: apcnet_r50-d8_512x1024_80k_cityscapes - In Collection: APCNet - Metadata: - inference time (ms/im): - - value: 280.11 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.96 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes/apcnet_r50-d8_512x1024_80k_cityscapes_20201214_115716-987f51e3.pth - Config: configs/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes.py - - - - - Name: apcnet_r101-d8_512x1024_80k_cityscapes - In Collection: APCNet - Metadata: - inference time (ms/im): - - value: 465.12 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.64 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes/apcnet_r101-d8_512x1024_80k_cityscapes_20201214_115705-b1ff208a.pth - Config: configs/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes.py - - - - - Name: apcnet_r50-d8_769x769_80k_cityscapes - In Collection: APCNet - Metadata: - inference time (ms/im): - - value: 657.89 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.79 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_80k_cityscapes/apcnet_r50-d8_769x769_80k_cityscapes_20201214_115718-7ea9fa12.pth - Config: configs/apcnet/apcnet_r50-d8_769x769_80k_cityscapes.py - - - - - Name: apcnet_r101-d8_769x769_80k_cityscapes - In Collection: APCNet - Metadata: - inference time (ms/im): - - value: 970.87 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.45 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_80k_cityscapes/apcnet_r101-d8_769x769_80k_cityscapes_20201214_115716-a7fbc2ab.pth - Config: configs/apcnet/apcnet_r101-d8_769x769_80k_cityscapes.py - - - - - Name: apcnet_r50-d8_512x512_80k_ade20k - In Collection: APCNet - Metadata: - inference time (ms/im): - - value: 50.99 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 42.20 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_80k_ade20k/apcnet_r50-d8_512x512_80k_ade20k_20201214_115705-a8626293.pth - Config: configs/apcnet/apcnet_r50-d8_512x512_80k_ade20k.py - - - - - Name: apcnet_r101-d8_512x512_80k_ade20k - In Collection: APCNet - Metadata: - inference time (ms/im): - - value: 76.34 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 45.54 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_80k_ade20k/apcnet_r101-d8_512x512_80k_ade20k_20201214_115704-c656c3fb.pth - Config: configs/apcnet/apcnet_r101-d8_512x512_80k_ade20k.py - - - - - Name: apcnet_r50-d8_512x512_160k_ade20k - In Collection: APCNet - Metadata: - inference time (ms/im): - - value: 50.99 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 43.40 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_160k_ade20k/apcnet_r50-d8_512x512_160k_ade20k_20201214_115706-25fb92c2.pth - Config: configs/apcnet/apcnet_r50-d8_512x512_160k_ade20k.py - - - - - Name: apcnet_r101-d8_512x512_160k_ade20k - In Collection: APCNet - Metadata: - inference time (ms/im): - - value: 76.34 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 45.41 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_160k_ade20k/apcnet_r101-d8_512x512_160k_ade20k_20201214_115705-73f9a8d7.pth - Config: configs/apcnet/apcnet_r101-d8_512x512_160k_ade20k.py diff --git a/configs/ccnet/ccnet.yml b/configs/ccnet/ccnet.yml new file mode 100644 index 0000000000..f29a7ca555 --- /dev/null +++ b/configs/ccnet/ccnet.yml @@ -0,0 +1,296 @@ +Collections: +- Name: ccnet + Metadata: + Training Data: + - Cityscapes + - ADE20K + - Pascal VOC 2012 + Aug +Models: +- Name: ccnet_r50-d8_512x1024_40k_cityscapes + In Collection: ccnet + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 301.2 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 6.0 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.76 + mIoU(ms+flip): 78.87 + Config: configs/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes/ccnet_r50-d8_512x1024_40k_cityscapes_20200616_142517-4123f401.pth +- Name: ccnet_r101-d8_512x1024_40k_cityscapes + In Collection: ccnet + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 432.9 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 9.5 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.35 + mIoU(ms+flip): 78.19 + Config: configs/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes/ccnet_r101-d8_512x1024_40k_cityscapes_20200616_142540-a3b84ba6.pth +- Name: ccnet_r50-d8_769x769_40k_cityscapes + In Collection: ccnet + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 699.3 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 6.8 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.46 + mIoU(ms+flip): 79.93 + Config: configs/ccnet/ccnet_r50-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_40k_cityscapes/ccnet_r50-d8_769x769_40k_cityscapes_20200616_145125-76d11884.pth +- Name: ccnet_r101-d8_769x769_40k_cityscapes + In Collection: ccnet + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 990.1 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 10.7 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.94 + mIoU(ms+flip): 78.62 + Config: configs/ccnet/ccnet_r101-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_40k_cityscapes/ccnet_r101-d8_769x769_40k_cityscapes_20200617_101428-4f57c8d0.pth +- Name: ccnet_r50-d8_512x1024_80k_cityscapes + In Collection: ccnet + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.03 + mIoU(ms+flip): 80.16 + Config: configs/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes/ccnet_r50-d8_512x1024_80k_cityscapes_20200617_010421-869a3423.pth +- Name: ccnet_r101-d8_512x1024_80k_cityscapes + In Collection: ccnet + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.87 + mIoU(ms+flip): 79.9 + Config: configs/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes/ccnet_r101-d8_512x1024_80k_cityscapes_20200617_203935-ffae8917.pth +- Name: ccnet_r50-d8_769x769_80k_cityscapes + In Collection: ccnet + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.29 + mIoU(ms+flip): 81.08 + Config: configs/ccnet/ccnet_r50-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_80k_cityscapes/ccnet_r50-d8_769x769_80k_cityscapes_20200617_010421-73eed8ca.pth +- Name: ccnet_r101-d8_769x769_80k_cityscapes + In Collection: ccnet + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.45 + mIoU(ms+flip): 80.66 + Config: configs/ccnet/ccnet_r101-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_80k_cityscapes/ccnet_r101-d8_769x769_80k_cityscapes_20200618_011502-ad3cd481.pth +- Name: ccnet_r50-d8_512x512_80k_ade20k + In Collection: ccnet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 47.87 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 8.8 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 41.78 + mIoU(ms+flip): 42.98 + Config: configs/ccnet/ccnet_r50-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_80k_ade20k/ccnet_r50-d8_512x512_80k_ade20k_20200615_014848-aa37f61e.pth +- Name: ccnet_r101-d8_512x512_80k_ade20k + In Collection: ccnet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 70.87 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 12.2 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.97 + mIoU(ms+flip): 45.13 + Config: configs/ccnet/ccnet_r101-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_80k_ade20k/ccnet_r101-d8_512x512_80k_ade20k_20200615_014848-1f4929a3.pth +- Name: ccnet_r50-d8_512x512_160k_ade20k + In Collection: ccnet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.08 + mIoU(ms+flip): 43.13 + Config: configs/ccnet/ccnet_r50-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_160k_ade20k/ccnet_r50-d8_512x512_160k_ade20k_20200616_084435-7c97193b.pth +- Name: ccnet_r101-d8_512x512_160k_ade20k + In Collection: ccnet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.71 + mIoU(ms+flip): 45.04 + Config: configs/ccnet/ccnet_r101-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_160k_ade20k/ccnet_r101-d8_512x512_160k_ade20k_20200616_000644-e849e007.pth +- Name: ccnet_r50-d8_512x512_20k_voc12aug + In Collection: ccnet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 48.9 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 6.0 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.17 + mIoU(ms+flip): 77.51 + Config: configs/ccnet/ccnet_r50-d8_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_20k_voc12aug/ccnet_r50-d8_512x512_20k_voc12aug_20200617_193212-fad81784.pth +- Name: ccnet_r101-d8_512x512_20k_voc12aug + In Collection: ccnet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 73.31 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 9.5 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.27 + mIoU(ms+flip): 79.02 + Config: configs/ccnet/ccnet_r101-d8_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_20k_voc12aug/ccnet_r101-d8_512x512_20k_voc12aug_20200617_193212-0007b61d.pth +- Name: ccnet_r50-d8_512x512_40k_voc12aug + In Collection: ccnet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 75.96 + mIoU(ms+flip): 77.04 + Config: configs/ccnet/ccnet_r50-d8_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_40k_voc12aug/ccnet_r50-d8_512x512_40k_voc12aug_20200613_232127-c2a15f02.pth +- Name: ccnet_r101-d8_512x512_40k_voc12aug + In Collection: ccnet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.87 + mIoU(ms+flip): 78.9 + Config: configs/ccnet/ccnet_r101-d8_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_40k_voc12aug/ccnet_r101-d8_512x512_40k_voc12aug_20200613_232127-c30da577.pth diff --git a/configs/ccnet/metafile.yml b/configs/ccnet/metafile.yml deleted file mode 100644 index 3f3c2dd4fd..0000000000 --- a/configs/ccnet/metafile.yml +++ /dev/null @@ -1,311 +0,0 @@ -Collections: - - Name: CCNet - Metadata: - Training Data: - - Cityscapes - - Pascal VOC 2012 + Aug - - ADE20K - -Models: - - - Name: ccnet_r50-d8_512x1024_40k_cityscapes - In Collection: CCNet - Metadata: - inference time (ms/im): - - value: 301.2 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.76 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes/ccnet_r50-d8_512x1024_40k_cityscapes_20200616_142517-4123f401.pth - Config: configs/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes.py - - - - - Name: ccnet_r101-d8_512x1024_40k_cityscapes - In Collection: CCNet - Metadata: - inference time (ms/im): - - value: 432.9 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 76.35 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes/ccnet_r101-d8_512x1024_40k_cityscapes_20200616_142540-a3b84ba6.pth - Config: configs/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes.py - - - - - Name: ccnet_r50-d8_769x769_40k_cityscapes - In Collection: CCNet - Metadata: - inference time (ms/im): - - value: 699.3 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.46 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_40k_cityscapes/ccnet_r50-d8_769x769_40k_cityscapes_20200616_145125-76d11884.pth - Config: configs/ccnet/ccnet_r50-d8_769x769_40k_cityscapes.py - - - - - Name: ccnet_r101-d8_769x769_40k_cityscapes - In Collection: CCNet - Metadata: - inference time (ms/im): - - value: 990.1 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 76.94 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_40k_cityscapes/ccnet_r101-d8_769x769_40k_cityscapes_20200617_101428-4f57c8d0.pth - Config: configs/ccnet/ccnet_r101-d8_769x769_40k_cityscapes.py - - - - - Name: ccnet_r50-d8_512x1024_80k_cityscapes - In Collection: CCNet - Metadata: - inference time (ms/im): - - value: 301.2 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.03 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes/ccnet_r50-d8_512x1024_80k_cityscapes_20200617_010421-869a3423.pth - Config: configs/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes.py - - - - - Name: ccnet_r101-d8_512x1024_80k_cityscapes - In Collection: CCNet - Metadata: - inference time (ms/im): - - value: 432.9 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.87 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes/ccnet_r101-d8_512x1024_80k_cityscapes_20200617_203935-ffae8917.pth - Config: configs/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes.py - - - - - Name: ccnet_r50-d8_769x769_80k_cityscapes - In Collection: CCNet - Metadata: - inference time (ms/im): - - value: 699.3 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.29 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_80k_cityscapes/ccnet_r50-d8_769x769_80k_cityscapes_20200617_010421-73eed8ca.pth - Config: configs/ccnet/ccnet_r50-d8_769x769_80k_cityscapes.py - - - - - Name: ccnet_r101-d8_769x769_80k_cityscapes - In Collection: CCNet - Metadata: - inference time (ms/im): - - value: 990.1 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.45 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_80k_cityscapes/ccnet_r101-d8_769x769_80k_cityscapes_20200618_011502-ad3cd481.pth - Config: configs/ccnet/ccnet_r101-d8_769x769_80k_cityscapes.py - - - - - Name: ccnet_r50-d8_512x512_80k_ade20k - In Collection: CCNet - Metadata: - inference time (ms/im): - - value: 47.87 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 41.78 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_80k_ade20k/ccnet_r50-d8_512x512_80k_ade20k_20200615_014848-aa37f61e.pth - Config: configs/ccnet/ccnet_r50-d8_512x512_80k_ade20k.py - - - - - Name: ccnet_r101-d8_512x512_80k_ade20k - In Collection: CCNet - Metadata: - inference time (ms/im): - - value: 70.87 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 43.97 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_80k_ade20k/ccnet_r101-d8_512x512_80k_ade20k_20200615_014848-1f4929a3.pth - Config: configs/ccnet/ccnet_r101-d8_512x512_80k_ade20k.py - - - - - Name: ccnet_r50-d8_512x512_160k_ade20k - In Collection: CCNet - Metadata: - inference time (ms/im): - - value: 47.87 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 42.08 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_160k_ade20k/ccnet_r50-d8_512x512_160k_ade20k_20200616_084435-7c97193b.pth - Config: configs/ccnet/ccnet_r50-d8_512x512_160k_ade20k.py - - - - - Name: ccnet_r101-d8_512x512_160k_ade20k - In Collection: CCNet - Metadata: - inference time (ms/im): - - value: 70.87 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 43.71 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_160k_ade20k/ccnet_r101-d8_512x512_160k_ade20k_20200616_000644-e849e007.pth - Config: configs/ccnet/ccnet_r101-d8_512x512_160k_ade20k.py - - - - - Name: ccnet_r50-d8_512x512_20k_voc12aug - In Collection: CCNet - Metadata: - inference time (ms/im): - - value: 48.9 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 76.17 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_20k_voc12aug/ccnet_r50-d8_512x512_20k_voc12aug_20200617_193212-fad81784.pth - Config: configs/ccnet/ccnet_r50-d8_512x512_20k_voc12aug.py - - - - - Name: ccnet_r101-d8_512x512_20k_voc12aug - In Collection: CCNet - Metadata: - inference time (ms/im): - - value: 73.31 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 77.27 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_20k_voc12aug/ccnet_r101-d8_512x512_20k_voc12aug_20200617_193212-0007b61d.pth - Config: configs/ccnet/ccnet_r101-d8_512x512_20k_voc12aug.py - - - - - Name: ccnet_r50-d8_512x512_40k_voc12aug - In Collection: CCNet - Metadata: - inference time (ms/im): - - value: 48.9 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 75.96 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_40k_voc12aug/ccnet_r50-d8_512x512_40k_voc12aug_20200613_232127-c2a15f02.pth - Config: configs/ccnet/ccnet_r50-d8_512x512_40k_voc12aug.py - - - - - Name: ccnet_r101-d8_512x512_40k_voc12aug - In Collection: CCNet - Metadata: - inference time (ms/im): - - value: 73.31 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 77.87 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_40k_voc12aug/ccnet_r101-d8_512x512_40k_voc12aug_20200613_232127-c30da577.pth - Config: configs/ccnet/ccnet_r101-d8_512x512_40k_voc12aug.py diff --git a/configs/cgnet/cgnet.yml b/configs/cgnet/cgnet.yml new file mode 100644 index 0000000000..e7a517d59f --- /dev/null +++ b/configs/cgnet/cgnet.yml @@ -0,0 +1,50 @@ +Collections: +- Name: cgnet + Metadata: + Training Data: + - Cityscapes +Models: +- Name: cgnet_680x680_60k_cityscapes + In Collection: cgnet + Metadata: + backbone: M3N21 + crop size: (680,680) + lr schd: 60000 + inference time (ms/im): + - value: 32.78 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (680,680) + memory (GB): 7.5 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 65.63 + mIoU(ms+flip): 68.04 + Config: configs/cgnet/cgnet_680x680_60k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_680x680_60k_cityscapes/cgnet_680x680_60k_cityscapes_20201101_110253-4c0b2f2d.pth +- Name: cgnet_512x1024_60k_cityscapes + In Collection: cgnet + Metadata: + backbone: M3N21 + crop size: (512,1024) + lr schd: 60000 + inference time (ms/im): + - value: 32.11 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 8.3 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 68.27 + mIoU(ms+flip): 70.33 + Config: configs/cgnet/cgnet_512x1024_60k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_512x1024_60k_cityscapes/cgnet_512x1024_60k_cityscapes_20201101_110254-124ea03b.pth diff --git a/configs/cgnet/metafile.yml b/configs/cgnet/metafile.yml deleted file mode 100644 index b138ae68ab..0000000000 --- a/configs/cgnet/metafile.yml +++ /dev/null @@ -1,43 +0,0 @@ -Collections: - - Name: CGNet - Metadata: - Training Data: - - Cityscapes - -Models: - - - Name: cgnet_680x680_60k_cityscapes - In Collection: CGNet - Metadata: - inference time (ms/im): - - value: 32.78 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 65.63 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_680x680_60k_cityscapes/cgnet_680x680_60k_cityscapes_20201101_110253-4c0b2f2d.pth - Config: configs/cgnet/cgnet_680x680_60k_cityscapes.py - - - - - Name: cgnet_512x1024_60k_cityscapes - In Collection: CGNet - Metadata: - inference time (ms/im): - - value: 32.11 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 68.27 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_512x1024_60k_cityscapes/cgnet_512x1024_60k_cityscapes_20201101_110254-124ea03b.pth - Config: configs/cgnet/cgnet_512x1024_60k_cityscapes.py diff --git a/configs/danet/danet.yml b/configs/danet/danet.yml new file mode 100644 index 0000000000..236bc2980a --- /dev/null +++ b/configs/danet/danet.yml @@ -0,0 +1,292 @@ +Collections: +- Name: danet + Metadata: + Training Data: + - Cityscapes + - ADE20K + - Pascal VOC 2012 + Aug +Models: +- Name: danet_r50-d8_512x1024_40k_cityscapes + In Collection: danet + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 375.94 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 7.4 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.74 + Config: configs/danet/danet_r50-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_40k_cityscapes/danet_r50-d8_512x1024_40k_cityscapes_20200605_191324-c0dbfa5f.pth +- Name: danet_r101-d8_512x1024_40k_cityscapes + In Collection: danet + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 502.51 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 10.9 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.52 + Config: configs/danet/danet_r101-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_40k_cityscapes/danet_r101-d8_512x1024_40k_cityscapes_20200605_200831-c57a7157.pth +- Name: danet_r50-d8_769x769_40k_cityscapes + In Collection: danet + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 641.03 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 8.8 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.88 + mIoU(ms+flip): 80.62 + Config: configs/danet/danet_r50-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_40k_cityscapes/danet_r50-d8_769x769_40k_cityscapes_20200530_025703-76681c60.pth +- Name: danet_r101-d8_769x769_40k_cityscapes + In Collection: danet + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 934.58 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 12.8 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.88 + mIoU(ms+flip): 81.47 + Config: configs/danet/danet_r101-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_40k_cityscapes/danet_r101-d8_769x769_40k_cityscapes_20200530_025717-dcb7fd4e.pth +- Name: danet_r50-d8_512x1024_80k_cityscapes + In Collection: danet + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.34 + Config: configs/danet/danet_r50-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_80k_cityscapes/danet_r50-d8_512x1024_80k_cityscapes_20200607_133029-2bfa2293.pth +- Name: danet_r101-d8_512x1024_80k_cityscapes + In Collection: danet + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.41 + Config: configs/danet/danet_r101-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_80k_cityscapes/danet_r101-d8_512x1024_80k_cityscapes_20200607_132918-955e6350.pth +- Name: danet_r50-d8_769x769_80k_cityscapes + In Collection: danet + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.27 + mIoU(ms+flip): 80.96 + Config: configs/danet/danet_r50-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_80k_cityscapes/danet_r50-d8_769x769_80k_cityscapes_20200607_132954-495689b4.pth +- Name: danet_r101-d8_769x769_80k_cityscapes + In Collection: danet + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.47 + mIoU(ms+flip): 82.02 + Config: configs/danet/danet_r101-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_80k_cityscapes/danet_r101-d8_769x769_80k_cityscapes_20200607_132918-f3a929e7.pth +- Name: danet_r50-d8_512x512_80k_ade20k + In Collection: danet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 47.17 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 11.5 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 41.66 + mIoU(ms+flip): 42.9 + Config: configs/danet/danet_r50-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_80k_ade20k/danet_r50-d8_512x512_80k_ade20k_20200615_015125-edb18e08.pth +- Name: danet_r101-d8_512x512_80k_ade20k + In Collection: danet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 70.52 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 15.0 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.64 + mIoU(ms+flip): 45.19 + Config: configs/danet/danet_r101-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_80k_ade20k/danet_r101-d8_512x512_80k_ade20k_20200615_015126-d0357c73.pth +- Name: danet_r50-d8_512x512_160k_ade20k + In Collection: danet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.45 + mIoU(ms+flip): 43.25 + Config: configs/danet/danet_r50-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_160k_ade20k/danet_r50-d8_512x512_160k_ade20k_20200616_082340-9cb35dcd.pth +- Name: danet_r101-d8_512x512_160k_ade20k + In Collection: danet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 44.17 + mIoU(ms+flip): 45.02 + Config: configs/danet/danet_r101-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_160k_ade20k/danet_r101-d8_512x512_160k_ade20k_20200616_082348-23bf12f9.pth +- Name: danet_r50-d8_512x512_20k_voc12aug + In Collection: danet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 47.76 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 6.5 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 74.45 + mIoU(ms+flip): 75.69 + Config: configs/danet/danet_r50-d8_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_20k_voc12aug/danet_r50-d8_512x512_20k_voc12aug_20200618_070026-9e9e3ab3.pth +- Name: danet_r101-d8_512x512_20k_voc12aug + In Collection: danet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 72.67 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 9.9 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.02 + mIoU(ms+flip): 77.23 + Config: configs/danet/danet_r101-d8_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_20k_voc12aug/danet_r101-d8_512x512_20k_voc12aug_20200618_070026-d48d23b2.pth +- Name: danet_r50-d8_512x512_40k_voc12aug + In Collection: danet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.37 + mIoU(ms+flip): 77.29 + Config: configs/danet/danet_r50-d8_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_40k_voc12aug/danet_r50-d8_512x512_40k_voc12aug_20200613_235526-426e3a64.pth +- Name: danet_r101-d8_512x512_40k_voc12aug + In Collection: danet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.51 + mIoU(ms+flip): 77.32 + Config: configs/danet/danet_r101-d8_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_40k_voc12aug/danet_r101-d8_512x512_40k_voc12aug_20200613_223031-788e232a.pth diff --git a/configs/danet/metafile.yml b/configs/danet/metafile.yml deleted file mode 100644 index d4b537c27e..0000000000 --- a/configs/danet/metafile.yml +++ /dev/null @@ -1,311 +0,0 @@ -Collections: - - Name: DANet - Metadata: - Training Data: - - Cityscapes - - Pascal VOC 2012 + Aug - - ADE20K - -Models: - - - Name: danet_r50-d8_512x1024_40k_cityscapes - In Collection: DANet - Metadata: - inference time (ms/im): - - value: 375.94 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.74 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_40k_cityscapes/danet_r50-d8_512x1024_40k_cityscapes_20200605_191324-c0dbfa5f.pth - Config: configs/danet/danet_r50-d8_512x1024_40k_cityscapes.py - - - - - Name: danet_r101-d8_512x1024_40k_cityscapes - In Collection: DANet - Metadata: - inference time (ms/im): - - value: 502.51 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 80.52 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_40k_cityscapes/danet_r101-d8_512x1024_40k_cityscapes_20200605_200831-c57a7157.pth - Config: configs/danet/danet_r101-d8_512x1024_40k_cityscapes.py - - - - - Name: danet_r50-d8_769x769_40k_cityscapes - In Collection: DANet - Metadata: - inference time (ms/im): - - value: 641.03 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.88 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_40k_cityscapes/danet_r50-d8_769x769_40k_cityscapes_20200530_025703-76681c60.pth - Config: configs/danet/danet_r50-d8_769x769_40k_cityscapes.py - - - - - Name: danet_r101-d8_769x769_40k_cityscapes - In Collection: DANet - Metadata: - inference time (ms/im): - - value: 934.58 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.88 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_40k_cityscapes/danet_r101-d8_769x769_40k_cityscapes_20200530_025717-dcb7fd4e.pth - Config: configs/danet/danet_r101-d8_769x769_40k_cityscapes.py - - - - - Name: danet_r50-d8_512x1024_80k_cityscapes - In Collection: DANet - Metadata: - inference time (ms/im): - - value: 375.94 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.34 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_80k_cityscapes/danet_r50-d8_512x1024_80k_cityscapes_20200607_133029-2bfa2293.pth - Config: configs/danet/danet_r50-d8_512x1024_80k_cityscapes.py - - - - - Name: danet_r101-d8_512x1024_80k_cityscapes - In Collection: DANet - Metadata: - inference time (ms/im): - - value: 502.51 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 80.41 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_80k_cityscapes/danet_r101-d8_512x1024_80k_cityscapes_20200607_132918-955e6350.pth - Config: configs/danet/danet_r101-d8_512x1024_80k_cityscapes.py - - - - - Name: danet_r50-d8_769x769_80k_cityscapes - In Collection: DANet - Metadata: - inference time (ms/im): - - value: 641.03 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.27 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_80k_cityscapes/danet_r50-d8_769x769_80k_cityscapes_20200607_132954-495689b4.pth - Config: configs/danet/danet_r50-d8_769x769_80k_cityscapes.py - - - - - Name: danet_r101-d8_769x769_80k_cityscapes - In Collection: DANet - Metadata: - inference time (ms/im): - - value: 934.58 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 80.47 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_80k_cityscapes/danet_r101-d8_769x769_80k_cityscapes_20200607_132918-f3a929e7.pth - Config: configs/danet/danet_r101-d8_769x769_80k_cityscapes.py - - - - - Name: danet_r50-d8_512x512_80k_ade20k - In Collection: DANet - Metadata: - inference time (ms/im): - - value: 47.17 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 41.66 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_80k_ade20k/danet_r50-d8_512x512_80k_ade20k_20200615_015125-edb18e08.pth - Config: configs/danet/danet_r50-d8_512x512_80k_ade20k.py - - - - - Name: danet_r101-d8_512x512_80k_ade20k - In Collection: DANet - Metadata: - inference time (ms/im): - - value: 70.52 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 43.64 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_80k_ade20k/danet_r101-d8_512x512_80k_ade20k_20200615_015126-d0357c73.pth - Config: configs/danet/danet_r101-d8_512x512_80k_ade20k.py - - - - - Name: danet_r50-d8_512x512_160k_ade20k - In Collection: DANet - Metadata: - inference time (ms/im): - - value: 47.17 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 42.45 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_160k_ade20k/danet_r50-d8_512x512_160k_ade20k_20200616_082340-9cb35dcd.pth - Config: configs/danet/danet_r50-d8_512x512_160k_ade20k.py - - - - - Name: danet_r101-d8_512x512_160k_ade20k - In Collection: DANet - Metadata: - inference time (ms/im): - - value: 70.52 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 44.17 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_160k_ade20k/danet_r101-d8_512x512_160k_ade20k_20200616_082348-23bf12f9.pth - Config: configs/danet/danet_r101-d8_512x512_160k_ade20k.py - - - - - Name: danet_r50-d8_512x512_20k_voc12aug - In Collection: DANet - Metadata: - inference time (ms/im): - - value: 47.76 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 74.45 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_20k_voc12aug/danet_r50-d8_512x512_20k_voc12aug_20200618_070026-9e9e3ab3.pth - Config: configs/danet/danet_r50-d8_512x512_20k_voc12aug.py - - - - - Name: danet_r101-d8_512x512_20k_voc12aug - In Collection: DANet - Metadata: - inference time (ms/im): - - value: 72.67 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 76.02 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_20k_voc12aug/danet_r101-d8_512x512_20k_voc12aug_20200618_070026-d48d23b2.pth - Config: configs/danet/danet_r101-d8_512x512_20k_voc12aug.py - - - - - Name: danet_r50-d8_512x512_40k_voc12aug - In Collection: DANet - Metadata: - inference time (ms/im): - - value: 47.76 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 76.37 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_40k_voc12aug/danet_r50-d8_512x512_40k_voc12aug_20200613_235526-426e3a64.pth - Config: configs/danet/danet_r50-d8_512x512_40k_voc12aug.py - - - - - Name: danet_r101-d8_512x512_40k_voc12aug - In Collection: DANet - Metadata: - inference time (ms/im): - - value: 72.67 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 76.51 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_40k_voc12aug/danet_r101-d8_512x512_40k_voc12aug_20200613_223031-788e232a.pth - Config: configs/danet/danet_r101-d8_512x512_40k_voc12aug.py diff --git a/configs/deeplabv3/deeplabv3.yml b/configs/deeplabv3/deeplabv3.yml new file mode 100644 index 0000000000..e4e051956b --- /dev/null +++ b/configs/deeplabv3/deeplabv3.yml @@ -0,0 +1,552 @@ +Collections: +- Name: deeplabv3 + Metadata: + Training Data: + - Cityscapes + - ADE20K + - Pascal VOC 2012 + Aug + - Pascal Context + - Pascal Context 59 +Models: +- Name: deeplabv3_r50-d8_512x1024_40k_cityscapes + In Collection: deeplabv3 + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 389.11 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 6.1 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.09 + mIoU(ms+flip): 80.45 + Config: configs/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes/deeplabv3_r50-d8_512x1024_40k_cityscapes_20200605_022449-acadc2f8.pth +- Name: deeplabv3_r101-d8_512x1024_40k_cityscapes + In Collection: deeplabv3 + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 520.83 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 9.6 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.12 + mIoU(ms+flip): 79.61 + Config: configs/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes/deeplabv3_r101-d8_512x1024_40k_cityscapes_20200605_012241-7fd3f799.pth +- Name: deeplabv3_r50-d8_769x769_40k_cityscapes + In Collection: deeplabv3 + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 900.9 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 6.9 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.58 + mIoU(ms+flip): 79.89 + Config: configs/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes/deeplabv3_r50-d8_769x769_40k_cityscapes_20200606_113723-7eda553c.pth +- Name: deeplabv3_r101-d8_769x769_40k_cityscapes + In Collection: deeplabv3 + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 1204.82 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 10.9 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.27 + mIoU(ms+flip): 80.11 + Config: configs/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes/deeplabv3_r101-d8_769x769_40k_cityscapes_20200606_113809-c64f889f.pth +- Name: deeplabv3_r18-d8_512x1024_80k_cityscapes + In Collection: deeplabv3 + Metadata: + backbone: R-18-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 72.57 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 1.7 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.7 + mIoU(ms+flip): 78.27 + Config: configs/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes/deeplabv3_r18-d8_512x1024_80k_cityscapes_20201225_021506-23dffbe2.pth +- Name: deeplabv3_r50-d8_512x1024_80k_cityscapes + In Collection: deeplabv3 + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.32 + mIoU(ms+flip): 80.57 + Config: configs/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes/deeplabv3_r50-d8_512x1024_80k_cityscapes_20200606_113404-b92cfdd4.pth +- Name: deeplabv3_r101-d8_512x1024_80k_cityscapes + In Collection: deeplabv3 + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.2 + mIoU(ms+flip): 81.21 + Config: configs/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes/deeplabv3_r101-d8_512x1024_80k_cityscapes_20200606_113503-9e428899.pth +- Name: deeplabv3_r18-d8_769x769_80k_cityscapes + In Collection: deeplabv3 + Metadata: + backbone: R-18-D8 + crop size: (769,769) + lr schd: 80000 + inference time (ms/im): + - value: 180.18 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 1.9 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.6 + mIoU(ms+flip): 78.26 + Config: configs/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes/deeplabv3_r18-d8_769x769_80k_cityscapes_20201225_021506-6452126a.pth +- Name: deeplabv3_r50-d8_769x769_80k_cityscapes + In Collection: deeplabv3 + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.89 + mIoU(ms+flip): 81.06 + Config: configs/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes/deeplabv3_r50-d8_769x769_80k_cityscapes_20200606_221338-788d6228.pth +- Name: deeplabv3_r101-d8_769x769_80k_cityscapes + In Collection: deeplabv3 + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.67 + mIoU(ms+flip): 80.81 + Config: configs/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes/deeplabv3_r101-d8_769x769_80k_cityscapes_20200607_013353-60e95418.pth +- Name: deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes + In Collection: deeplabv3 + Metadata: + backbone: R-101-D16-MG124 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.36 + mIoU(ms+flip): 79.84 + Config: configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes_20200908_005644-57bb8425.pth +- Name: deeplabv3_r18b-d8_512x1024_80k_cityscapes + In Collection: deeplabv3 + Metadata: + backbone: R-18b-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 71.79 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 1.6 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.26 + mIoU(ms+flip): 77.88 + Config: configs/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes/deeplabv3_r18b-d8_512x1024_80k_cityscapes_20201225_094144-46040cef.pth +- Name: deeplabv3_r50b-d8_512x1024_80k_cityscapes + In Collection: deeplabv3 + Metadata: + backbone: R-50b-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 364.96 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 6.0 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.63 + mIoU(ms+flip): 80.98 + Config: configs/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes/deeplabv3_r50b-d8_512x1024_80k_cityscapes_20201225_155148-ec368954.pth +- Name: deeplabv3_r101b-d8_512x1024_80k_cityscapes + In Collection: deeplabv3 + Metadata: + backbone: R-101b-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 552.49 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 9.5 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.01 + mIoU(ms+flip): 81.21 + Config: configs/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes/deeplabv3_r101b-d8_512x1024_80k_cityscapes_20201226_171821-8fd49503.pth +- Name: deeplabv3_r18b-d8_769x769_80k_cityscapes + In Collection: deeplabv3 + Metadata: + backbone: R-18b-D8 + crop size: (769,769) + lr schd: 80000 + inference time (ms/im): + - value: 172.71 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 1.8 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.63 + mIoU(ms+flip): 77.51 + Config: configs/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes/deeplabv3_r18b-d8_769x769_80k_cityscapes_20201225_094144-fdc985d9.pth +- Name: deeplabv3_r50b-d8_769x769_80k_cityscapes + In Collection: deeplabv3 + Metadata: + backbone: R-50b-D8 + crop size: (769,769) + lr schd: 80000 + inference time (ms/im): + - value: 862.07 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 6.8 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.8 + mIoU(ms+flip): 80.27 + Config: configs/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes/deeplabv3_r50b-d8_769x769_80k_cityscapes_20201225_155404-87fb0cf4.pth +- Name: deeplabv3_r101b-d8_769x769_80k_cityscapes + In Collection: deeplabv3 + Metadata: + backbone: R-101b-D8 + crop size: (769,769) + lr schd: 80000 + inference time (ms/im): + - value: 1219.51 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 10.7 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.41 + mIoU(ms+flip): 80.73 + Config: configs/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes/deeplabv3_r101b-d8_769x769_80k_cityscapes_20201226_190843-9142ee57.pth +- Name: deeplabv3_r50-d8_512x512_80k_ade20k + In Collection: deeplabv3 + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 67.75 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 8.9 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.42 + mIoU(ms+flip): 43.28 + Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k/deeplabv3_r50-d8_512x512_80k_ade20k_20200614_185028-0bb3f844.pth +- Name: deeplabv3_r101-d8_512x512_80k_ade20k + In Collection: deeplabv3 + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 98.62 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 12.4 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 44.08 + mIoU(ms+flip): 45.19 + Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k/deeplabv3_r101-d8_512x512_80k_ade20k_20200615_021256-d89c7fa4.pth +- Name: deeplabv3_r50-d8_512x512_160k_ade20k + In Collection: deeplabv3 + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.66 + mIoU(ms+flip): 44.09 + Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k/deeplabv3_r50-d8_512x512_160k_ade20k_20200615_123227-5d0ee427.pth +- Name: deeplabv3_r101-d8_512x512_160k_ade20k + In Collection: deeplabv3 + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 45.0 + mIoU(ms+flip): 46.66 + Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k/deeplabv3_r101-d8_512x512_160k_ade20k_20200615_105816-b1f72b3b.pth +- Name: deeplabv3_r50-d8_512x512_20k_voc12aug + In Collection: deeplabv3 + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 72.05 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 6.1 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.17 + mIoU(ms+flip): 77.42 + Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug/deeplabv3_r50-d8_512x512_20k_voc12aug_20200617_010906-596905ef.pth +- Name: deeplabv3_r101-d8_512x512_20k_voc12aug + In Collection: deeplabv3 + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 101.94 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 9.6 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 78.7 + mIoU(ms+flip): 79.95 + Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug/deeplabv3_r101-d8_512x512_20k_voc12aug_20200617_010932-8d13832f.pth +- Name: deeplabv3_r50-d8_512x512_40k_voc12aug + In Collection: deeplabv3 + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.68 + mIoU(ms+flip): 78.78 + Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug/deeplabv3_r50-d8_512x512_40k_voc12aug_20200613_161546-2ae96e7e.pth +- Name: deeplabv3_r101-d8_512x512_40k_voc12aug + In Collection: deeplabv3 + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.92 + mIoU(ms+flip): 79.18 + Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug/deeplabv3_r101-d8_512x512_40k_voc12aug_20200613_161432-0017d784.pth +- Name: deeplabv3_r101-d8_480x480_40k_pascal_context + In Collection: deeplabv3 + Metadata: + backbone: R-101-D8 + crop size: (480,480) + lr schd: 40000 + inference time (ms/im): + - value: 141.04 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (480,480) + memory (GB): 9.2 + Results: + Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 46.55 + mIoU(ms+flip): 47.81 + Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context/deeplabv3_r101-d8_480x480_40k_pascal_context_20200911_204118-1aa27336.pth +- Name: deeplabv3_r101-d8_480x480_80k_pascal_context + In Collection: deeplabv3 + Metadata: + backbone: R-101-D8 + crop size: (480,480) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 46.42 + mIoU(ms+flip): 47.53 + Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context/deeplabv3_r101-d8_480x480_80k_pascal_context_20200911_170155-2a21fff3.pth +- Name: deeplabv3_r101-d8_480x480_40k_pascal_context_59 + In Collection: deeplabv3 + Metadata: + backbone: R-101-D8 + crop size: (480,480) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal Context 59 + Metrics: + mIoU: 52.61 + mIoU(ms+flip): 54.28 + Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context_59.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context_59/deeplabv3_r101-d8_480x480_40k_pascal_context_59_20210416_110332-cb08ea46.pth +- Name: deeplabv3_r101-d8_480x480_80k_pascal_context_59 + In Collection: deeplabv3 + Metadata: + backbone: R-101-D8 + crop size: (480,480) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Pascal Context 59 + Metrics: + mIoU: 52.46 + mIoU(ms+flip): 54.09 + Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context_59.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context_59/deeplabv3_r101-d8_480x480_80k_pascal_context_59_20210416_113002-26303993.pth diff --git a/configs/deeplabv3/metafile.yml b/configs/deeplabv3/metafile.yml deleted file mode 100644 index bf8c490c68..0000000000 --- a/configs/deeplabv3/metafile.yml +++ /dev/null @@ -1,578 +0,0 @@ -Collections: - - Name: DeepLabV3 - Metadata: - Training Data: - - Cityscapes - - Pascal Context - - Pascal VOC 2012 + Aug - - ADE20K - -Models: - - - Name: deeplabv3_r50-d8_512x1024_40k_cityscapes - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 389.11 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.09 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes/deeplabv3_r50-d8_512x1024_40k_cityscapes_20200605_022449-acadc2f8.pth - Config: configs/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes.py - - - - - Name: deeplabv3_r101-d8_512x1024_40k_cityscapes - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 520.83 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.12 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes/deeplabv3_r101-d8_512x1024_40k_cityscapes_20200605_012241-7fd3f799.pth - Config: configs/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes.py - - - - - Name: deeplabv3_r50-d8_769x769_40k_cityscapes - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 900.9 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.58 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes/deeplabv3_r50-d8_769x769_40k_cityscapes_20200606_113723-7eda553c.pth - Config: configs/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes.py - - - - - Name: deeplabv3_r101-d8_769x769_40k_cityscapes - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 1204.82 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.27 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes/deeplabv3_r101-d8_769x769_40k_cityscapes_20200606_113809-c64f889f.pth - Config: configs/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes.py - - - - - Name: deeplabv3_r18-d8_512x1024_80k_cityscapes - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 72.57 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 76.70 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes/deeplabv3_r18-d8_512x1024_80k_cityscapes_20201225_021506-23dffbe2.pth - Config: configs/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes.py - - - - - Name: deeplabv3_r50-d8_512x1024_80k_cityscapes - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 389.11 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.32 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes/deeplabv3_r50-d8_512x1024_80k_cityscapes_20200606_113404-b92cfdd4.pth - Config: configs/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes.py - - - - - Name: deeplabv3_r101-d8_512x1024_80k_cityscapes - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 520.83 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 80.20 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes/deeplabv3_r101-d8_512x1024_80k_cityscapes_20200606_113503-9e428899.pth - Config: configs/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py - - - - - Name: deeplabv3_r18-d8_769x769_80k_cityscapes - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 180.18 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 76.60 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes/deeplabv3_r18-d8_769x769_80k_cityscapes_20201225_021506-6452126a.pth - Config: configs/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes.py - - - - - Name: deeplabv3_r50-d8_769x769_80k_cityscapes - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 900.9 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.89 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes/deeplabv3_r50-d8_769x769_80k_cityscapes_20200606_221338-788d6228.pth - Config: configs/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes.py - - - - - Name: deeplabv3_r101-d8_769x769_80k_cityscapes - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 1204.82 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.67 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes/deeplabv3_r101-d8_769x769_80k_cityscapes_20200607_013353-60e95418.pth - Config: configs/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes.py - - - - - Name: deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 143.68 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 76.71 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes_20200908_005644-67b0c992.pth - Config: configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py - - - - - Name: deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 143.68 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.36 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes_20200908_005644-57bb8425.pth - Config: configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py - - - - - Name: deeplabv3_r18b-d8_512x1024_80k_cityscapes - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 71.79 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 76.26 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes/deeplabv3_r18b-d8_512x1024_80k_cityscapes_20201225_094144-46040cef.pth - Config: configs/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes.py - - - - - Name: deeplabv3_r50b-d8_512x1024_80k_cityscapes - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 364.96 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.63 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes/deeplabv3_r50b-d8_512x1024_80k_cityscapes_20201225_155148-ec368954.pth - Config: configs/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes.py - - - - - Name: deeplabv3_r101b-d8_512x1024_80k_cityscapes - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 552.49 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 80.01 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes/deeplabv3_r101b-d8_512x1024_80k_cityscapes_20201226_171821-8fd49503.pth - Config: configs/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes.py - - - - - Name: deeplabv3_r18b-d8_769x769_80k_cityscapes - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 172.71 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 76.63 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes/deeplabv3_r18b-d8_769x769_80k_cityscapes_20201225_094144-fdc985d9.pth - Config: configs/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes.py - - - - - Name: deeplabv3_r50b-d8_769x769_80k_cityscapes - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 862.07 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.80 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes/deeplabv3_r50b-d8_769x769_80k_cityscapes_20201225_155404-87fb0cf4.pth - Config: configs/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes.py - - - - - Name: deeplabv3_r101b-d8_769x769_80k_cityscapes - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 1219.51 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.41 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes/deeplabv3_r101b-d8_769x769_80k_cityscapes_20201226_190843-9142ee57.pth - Config: configs/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes.py - - - - - Name: deeplabv3_r50-d8_512x512_80k_ade20k - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 67.75 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 42.42 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k/deeplabv3_r50-d8_512x512_80k_ade20k_20200614_185028-0bb3f844.pth - Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k.py - - - - - Name: deeplabv3_r101-d8_512x512_80k_ade20k - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 98.62 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 44.08 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k/deeplabv3_r101-d8_512x512_80k_ade20k_20200615_021256-d89c7fa4.pth - Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k.py - - - - - Name: deeplabv3_r50-d8_512x512_160k_ade20k - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 67.75 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 42.66 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k/deeplabv3_r50-d8_512x512_160k_ade20k_20200615_123227-5d0ee427.pth - Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k.py - - - - - Name: deeplabv3_r101-d8_512x512_160k_ade20k - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 98.62 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 45.00 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k/deeplabv3_r101-d8_512x512_160k_ade20k_20200615_105816-b1f72b3b.pth - Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k.py - - - - - Name: deeplabv3_r50-d8_512x512_20k_voc12aug - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 72.05 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 76.17 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug/deeplabv3_r50-d8_512x512_20k_voc12aug_20200617_010906-596905ef.pth - Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug.py - - - - - Name: deeplabv3_r101-d8_512x512_20k_voc12aug - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 101.94 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 78.70 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug/deeplabv3_r101-d8_512x512_20k_voc12aug_20200617_010932-8d13832f.pth - Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug.py - - - - - Name: deeplabv3_r50-d8_512x512_40k_voc12aug - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 72.05 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 77.68 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug/deeplabv3_r50-d8_512x512_40k_voc12aug_20200613_161546-2ae96e7e.pth - Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug.py - - - - - Name: deeplabv3_r101-d8_512x512_40k_voc12aug - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 101.94 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 77.92 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug/deeplabv3_r101-d8_512x512_40k_voc12aug_20200613_161432-0017d784.pth - Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug.py - - - - - Name: deeplabv3_r101-d8_480x480_40k_pascal_context - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 141.04 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal Context - Metrics: - mIoU: 46.55 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context/deeplabv3_r101-d8_480x480_40k_pascal_context_20200911_204118-1aa27336.pth - Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context.py - - - - - Name: deeplabv3_r101-d8_480x480_80k_pascal_context - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 141.04 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal Context - Metrics: - mIoU: 46.42 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context/deeplabv3_r101-d8_480x480_80k_pascal_context_20200911_170155-2a21fff3.pth - Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context.py - - - - - Name: deeplabv3_r101-d8_480x480_40k_pascal_context - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: None - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal Context - Metrics: - mIoU: 52.61 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context_59/deeplabv3_r101-d8_480x480_40k_pascal_context_59_20210416_110332-cb08ea46.pth - Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context.py - - - - - Name: deeplabv3_r101-d8_480x480_80k_pascal_context_59 - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: None - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal Context - Metrics: - mIoU: 52.46 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context_59/deeplabv3_r101-d8_480x480_80k_pascal_context_59_20210416_113002-26303993.pth - Config: configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context_59.py diff --git a/configs/deeplabv3plus/deeplabv3plus.yml b/configs/deeplabv3plus/deeplabv3plus.yml new file mode 100644 index 0000000000..c84dbcac65 --- /dev/null +++ b/configs/deeplabv3plus/deeplabv3plus.yml @@ -0,0 +1,574 @@ +Collections: +- Name: deeplabv3plus + Metadata: + Training Data: + - Cityscapes + - ADE20K + - ' Pascal VOC 2012 + Aug' + - ' Pascal Context' + - ' Pascal Context 59' +Models: +- Name: deeplabv3plus_r50-d8_512x1024_40k_cityscapes + In Collection: deeplabv3plus + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 253.81 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 7.5 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.61 + mIoU(ms+flip): 81.01 + Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes/deeplabv3plus_r50-d8_512x1024_40k_cityscapes_20200605_094610-d222ffcd.pth +- Name: deeplabv3plus_r101-d8_512x1024_40k_cityscapes + In Collection: deeplabv3plus + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 384.62 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 11.0 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.21 + mIoU(ms+flip): 81.82 + Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes/deeplabv3plus_r101-d8_512x1024_40k_cityscapes_20200605_094614-3769eecf.pth +- Name: deeplabv3plus_r50-d8_769x769_40k_cityscapes + In Collection: deeplabv3plus + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 581.4 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 8.5 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.97 + mIoU(ms+flip): 80.46 + Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes/deeplabv3plus_r50-d8_769x769_40k_cityscapes_20200606_114143-1dcb0e3c.pth +- Name: deeplabv3plus_r101-d8_769x769_40k_cityscapes + In Collection: deeplabv3plus + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 869.57 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 12.5 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.46 + mIoU(ms+flip): 80.5 + Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes/deeplabv3plus_r101-d8_769x769_40k_cityscapes_20200606_114304-ff414b9e.pth +- Name: deeplabv3plus_r18-d8_512x1024_80k_cityscapes + In Collection: deeplabv3plus + Metadata: + backbone: R-18-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 70.08 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 2.2 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.89 + mIoU(ms+flip): 78.76 + Config: configs/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes/deeplabv3plus_r18-d8_512x1024_80k_cityscapes_20201226_080942-cff257fe.pth +- Name: deeplabv3plus_r50-d8_512x1024_80k_cityscapes + In Collection: deeplabv3plus + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.09 + mIoU(ms+flip): 81.13 + Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes/deeplabv3plus_r50-d8_512x1024_80k_cityscapes_20200606_114049-f9fb496d.pth +- Name: deeplabv3plus_r101-d8_512x1024_80k_cityscapes + In Collection: deeplabv3plus + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.97 + mIoU(ms+flip): 82.03 + Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143-068fcfe9.pth +- Name: deeplabv3plus_r18-d8_769x769_80k_cityscapes + In Collection: deeplabv3plus + Metadata: + backbone: R-18-D8 + crop size: (769,769) + lr schd: 80000 + inference time (ms/im): + - value: 174.22 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 2.5 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.26 + mIoU(ms+flip): 77.91 + Config: configs/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes/deeplabv3plus_r18-d8_769x769_80k_cityscapes_20201226_083346-f326e06a.pth +- Name: deeplabv3plus_r50-d8_769x769_80k_cityscapes + In Collection: deeplabv3plus + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.83 + mIoU(ms+flip): 81.48 + Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes/deeplabv3plus_r50-d8_769x769_80k_cityscapes_20200606_210233-0e9dfdc4.pth +- Name: deeplabv3plus_r101-d8_769x769_80k_cityscapes + In Collection: deeplabv3plus + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.98 + mIoU(ms+flip): 82.18 + Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes/deeplabv3plus_r101-d8_769x769_80k_cityscapes_20200607_000405-a7573d20.pth +- Name: deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes + In Collection: deeplabv3plus + Metadata: + backbone: R-101-D16-MG124 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 133.69 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 5.8 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.09 + mIoU(ms+flip): 80.36 + Config: configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes_20200908_005644-cf9ce186.pth +- Name: deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes + In Collection: deeplabv3plus + Metadata: + backbone: R-101-D16-MG124 + crop size: (512,1024) + lr schd: 80000 + memory (GB): 9.9 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.9 + mIoU(ms+flip): 81.33 + Config: configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes_20200908_005644-ee6158e0.pth +- Name: deeplabv3plus_r18b-d8_512x1024_80k_cityscapes + In Collection: deeplabv3plus + Metadata: + backbone: R-18b-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 66.89 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 2.1 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 75.87 + mIoU(ms+flip): 77.52 + Config: configs/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes_20201226_090828-e451abd9.pth +- Name: deeplabv3plus_r50b-d8_512x1024_80k_cityscapes + In Collection: deeplabv3plus + Metadata: + backbone: R-50b-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 253.81 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 7.4 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.28 + mIoU(ms+flip): 81.44 + Config: configs/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes_20201225_213645-a97e4e43.pth +- Name: deeplabv3plus_r101b-d8_512x1024_80k_cityscapes + In Collection: deeplabv3plus + Metadata: + backbone: R-101b-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 384.62 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 10.9 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.16 + mIoU(ms+flip): 81.41 + Config: configs/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes_20201226_190843-9c3c93a4.pth +- Name: deeplabv3plus_r18b-d8_769x769_80k_cityscapes + In Collection: deeplabv3plus + Metadata: + backbone: R-18b-D8 + crop size: (769,769) + lr schd: 80000 + inference time (ms/im): + - value: 167.79 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 2.4 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.36 + mIoU(ms+flip): 78.24 + Config: configs/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes/deeplabv3plus_r18b-d8_769x769_80k_cityscapes_20201226_151312-2c868aff.pth +- Name: deeplabv3plus_r50b-d8_769x769_80k_cityscapes + In Collection: deeplabv3plus + Metadata: + backbone: R-50b-D8 + crop size: (769,769) + lr schd: 80000 + inference time (ms/im): + - value: 581.4 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 8.4 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.41 + mIoU(ms+flip): 80.56 + Config: configs/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes/deeplabv3plus_r50b-d8_769x769_80k_cityscapes_20201225_224655-8b596d1c.pth +- Name: deeplabv3plus_r101b-d8_769x769_80k_cityscapes + In Collection: deeplabv3plus + Metadata: + backbone: R-101b-D8 + crop size: (769,769) + lr schd: 80000 + inference time (ms/im): + - value: 909.09 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 12.3 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.88 + mIoU(ms+flip): 81.46 + Config: configs/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes/deeplabv3plus_r101b-d8_769x769_80k_cityscapes_20201226_205041-227cdf7c.pth +- Name: deeplabv3plus_r50-d8_512x512_80k_ade20k + In Collection: deeplabv3plus + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 47.6 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 10.6 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.72 + mIoU(ms+flip): 43.75 + Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k/deeplabv3plus_r50-d8_512x512_80k_ade20k_20200614_185028-bf1400d8.pth +- Name: deeplabv3plus_r101-d8_512x512_80k_ade20k + In Collection: deeplabv3plus + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 70.62 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 14.1 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 44.6 + mIoU(ms+flip): 46.06 + Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k/deeplabv3plus_r101-d8_512x512_80k_ade20k_20200615_014139-d5730af7.pth +- Name: deeplabv3plus_r50-d8_512x512_160k_ade20k + In Collection: deeplabv3plus + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.95 + mIoU(ms+flip): 44.93 + Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k/deeplabv3plus_r50-d8_512x512_160k_ade20k_20200615_124504-6135c7e0.pth +- Name: deeplabv3plus_r101-d8_512x512_160k_ade20k + In Collection: deeplabv3plus + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 45.47 + mIoU(ms+flip): 46.35 + Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k/deeplabv3plus_r101-d8_512x512_160k_ade20k_20200615_123232-38ed86bb.pth +- Name: deeplabv3plus_r50-d8_512x512_20k_voc12aug + In Collection: deeplabv3plus + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 47.62 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 7.6 + Results: + Task: Semantic Segmentation + Dataset: ' Pascal VOC 2012 + Aug' + Metrics: + mIoU: 75.93 + mIoU(ms+flip): 77.5 + Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug/deeplabv3plus_r50-d8_512x512_20k_voc12aug_20200617_102323-aad58ef1.pth +- Name: deeplabv3plus_r101-d8_512x512_20k_voc12aug + In Collection: deeplabv3plus + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 72.05 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 11.0 + Results: + Task: Semantic Segmentation + Dataset: ' Pascal VOC 2012 + Aug' + Metrics: + mIoU: 77.22 + mIoU(ms+flip): 78.59 + Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug/deeplabv3plus_r101-d8_512x512_20k_voc12aug_20200617_102345-c7ff3d56.pth +- Name: deeplabv3plus_r50-d8_512x512_40k_voc12aug + In Collection: deeplabv3plus + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: ' Pascal VOC 2012 + Aug' + Metrics: + mIoU: 76.81 + mIoU(ms+flip): 77.57 + Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug/deeplabv3plus_r50-d8_512x512_40k_voc12aug_20200613_161759-e1b43aa9.pth +- Name: deeplabv3plus_r101-d8_512x512_40k_voc12aug + In Collection: deeplabv3plus + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: ' Pascal VOC 2012 + Aug' + Metrics: + mIoU: 78.62 + mIoU(ms+flip): 79.53 + Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug/deeplabv3plus_r101-d8_512x512_40k_voc12aug_20200613_205333-faf03387.pth +- Name: deeplabv3plus_r101-d8_480x480_40k_pascal_context + In Collection: deeplabv3plus + Metadata: + backbone: R-101-D8 + crop size: (480,480) + lr schd: 40000 + inference time (ms/im): + - value: 110.01 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (480,480) + Results: + Task: Semantic Segmentation + Dataset: ' Pascal Context' + Metrics: + mIoU: 47.3 + mIoU(ms+flip): 48.47 + Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context/deeplabv3plus_r101-d8_480x480_40k_pascal_context_20200911_165459-d3c8a29e.pth +- Name: deeplabv3plus_r101-d8_480x480_80k_pascal_context + In Collection: deeplabv3plus + Metadata: + backbone: R-101-D8 + crop size: (480,480) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: ' Pascal Context' + Metrics: + mIoU: 47.23 + mIoU(ms+flip): 48.26 + Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context/deeplabv3plus_r101-d8_480x480_80k_pascal_context_20200911_155322-145d3ee8.pth +- Name: deeplabv3plus_r101-d8_480x480_40k_pascal_context_59 + In Collection: deeplabv3plus + Metadata: + backbone: R-101-D8 + crop size: (480,480) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: ' Pascal Context 59' + Metrics: + mIoU: 52.86 + mIoU(ms+flip): 54.54 + Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59_20210416_111233-ed937f15.pth +- Name: deeplabv3plus_r101-d8_480x480_80k_pascal_context_59 + In Collection: deeplabv3plus + Metadata: + backbone: R-101-D8 + crop size: (480,480) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: ' Pascal Context 59' + Metrics: + mIoU: 53.2 + mIoU(ms+flip): 54.67 + Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59_20210416_111127-7ca0331d.pth diff --git a/configs/deeplabv3plus/metafile.yml b/configs/deeplabv3plus/metafile.yml deleted file mode 100644 index f2bbc551a3..0000000000 --- a/configs/deeplabv3plus/metafile.yml +++ /dev/null @@ -1,578 +0,0 @@ -Collections: - - Name: DeepLabV3+ - Metadata: - Training Data: - - Cityscapes - - Pascal Context - - Pascal VOC 2012 + Aug - - ADE20K - -Models: - - - Name: deeplabv3plus_r50-d8_512x1024_40k_cityscapes - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 253.81 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.61 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes/deeplabv3plus_r50-d8_512x1024_40k_cityscapes_20200605_094610-d222ffcd.pth - Config: configs/deeplabv3+/deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py - - - - - Name: deeplabv3plus_r101-d8_512x1024_40k_cityscapes - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 384.62 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 80.21 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes/deeplabv3plus_r101-d8_512x1024_40k_cityscapes_20200605_094614-3769eecf.pth - Config: configs/deeplabv3+/deeplabv3plus_r101-d8_512x1024_40k_cityscapes.py - - - - - Name: deeplabv3plus_r50-d8_769x769_40k_cityscapes - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 581.4 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.97 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes/deeplabv3plus_r50-d8_769x769_40k_cityscapes_20200606_114143-1dcb0e3c.pth - Config: configs/deeplabv3+/deeplabv3plus_r50-d8_769x769_40k_cityscapes.py - - - - - Name: deeplabv3plus_r101-d8_769x769_40k_cityscapes - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 869.57 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.46 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes/deeplabv3plus_r101-d8_769x769_40k_cityscapes_20200606_114304-ff414b9e.pth - Config: configs/deeplabv3+/deeplabv3plus_r101-d8_769x769_40k_cityscapes.py - - - - - Name: deeplabv3plus_r18-d8_512x1024_80k_cityscapes - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 70.08 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 76.89 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes/deeplabv3plus_r18-d8_512x1024_80k_cityscapes_20201226_080942-cff257fe.pth - Config: configs/deeplabv3+/deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py - - - - - Name: deeplabv3plus_r50-d8_512x1024_80k_cityscapes - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 253.81 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 80.09 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes/deeplabv3plus_r50-d8_512x1024_80k_cityscapes_20200606_114049-f9fb496d.pth - Config: configs/deeplabv3+/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py - - - - - Name: deeplabv3plus_r101-d8_512x1024_80k_cityscapes - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 384.62 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 80.97 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143-068fcfe9.pth - Config: configs/deeplabv3+/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py - - - - - Name: deeplabv3plus_r18-d8_769x769_80k_cityscapes - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 174.22 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 76.26 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes/deeplabv3plus_r18-d8_769x769_80k_cityscapes_20201226_083346-f326e06a.pth - Config: configs/deeplabv3+/deeplabv3plus_r18-d8_769x769_80k_cityscapes.py - - - - - Name: deeplabv3plus_r50-d8_769x769_80k_cityscapes - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 581.4 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.83 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes/deeplabv3plus_r50-d8_769x769_80k_cityscapes_20200606_210233-0e9dfdc4.pth - Config: configs/deeplabv3+/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py - - - - - Name: deeplabv3plus_r101-d8_769x769_80k_cityscapes - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 869.57 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 80.98 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes/deeplabv3plus_r101-d8_769x769_80k_cityscapes_20200607_000405-a7573d20.pth - Config: configs/deeplabv3+/deeplabv3plus_r101-d8_769x769_80k_cityscapes.py - - - - - Name: deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 133.69 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.09 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes_20200908_005644-cf9ce186.pth - Config: configs/deeplabv3+/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py - - - - - Name: deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 133.69 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.90 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes_20200908_005644-ee6158e0.pth - Config: configs/deeplabv3+/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py - - - - - Name: deeplabv3plus_r18b-d8_512x1024_80k_cityscapes - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 66.89 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 75.87 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes_20201226_090828-e451abd9.pth - Config: configs/deeplabv3+/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py - - - - - Name: deeplabv3plus_r50b-d8_512x1024_80k_cityscapes - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 253.81 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 80.28 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes_20201225_213645-a97e4e43.pth - Config: configs/deeplabv3+/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes.py - - - - - Name: deeplabv3plus_r101b-d8_512x1024_80k_cityscapes - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 384.62 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 80.16 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes_20201226_190843-9c3c93a4.pth - Config: configs/deeplabv3+/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py - - - - - Name: deeplabv3plus_r18b-d8_769x769_80k_cityscapes - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 167.79 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 76.36 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes/deeplabv3plus_r18b-d8_769x769_80k_cityscapes_20201226_151312-2c868aff.pth - Config: configs/deeplabv3+/deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py - - - - - Name: deeplabv3plus_r50b-d8_769x769_80k_cityscapes - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 581.4 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.41 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes/deeplabv3plus_r50b-d8_769x769_80k_cityscapes_20201225_224655-8b596d1c.pth - Config: configs/deeplabv3+/deeplabv3plus_r50b-d8_769x769_80k_cityscapes.py - - - - - Name: deeplabv3plus_r101b-d8_769x769_80k_cityscapes - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 909.09 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.88 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes/deeplabv3plus_r101b-d8_769x769_80k_cityscapes_20201226_205041-227cdf7c.pth - Config: configs/deeplabv3+/deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py - - - - - Name: deeplabv3plus_r50-d8_512x512_80k_ade20k - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 47.6 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 42.72 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k/deeplabv3plus_r50-d8_512x512_80k_ade20k_20200614_185028-bf1400d8.pth - Config: configs/deeplabv3+/deeplabv3plus_r50-d8_512x512_80k_ade20k.py - - - - - Name: deeplabv3plus_r101-d8_512x512_80k_ade20k - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 70.62 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 44.60 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k/deeplabv3plus_r101-d8_512x512_80k_ade20k_20200615_014139-d5730af7.pth - Config: configs/deeplabv3+/deeplabv3plus_r101-d8_512x512_80k_ade20k.py - - - - - Name: deeplabv3plus_r50-d8_512x512_160k_ade20k - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 47.6 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 43.95 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k/deeplabv3plus_r50-d8_512x512_160k_ade20k_20200615_124504-6135c7e0.pth - Config: configs/deeplabv3+/deeplabv3plus_r50-d8_512x512_160k_ade20k.py - - - - - Name: deeplabv3plus_r101-d8_512x512_160k_ade20k - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 70.62 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 45.47 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k/deeplabv3plus_r101-d8_512x512_160k_ade20k_20200615_123232-38ed86bb.pth - Config: configs/deeplabv3+/deeplabv3plus_r101-d8_512x512_160k_ade20k.py - - - - - Name: deeplabv3plus_r50-d8_512x512_20k_voc12aug - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 47.62 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 75.93 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug/deeplabv3plus_r50-d8_512x512_20k_voc12aug_20200617_102323-aad58ef1.pth - Config: configs/deeplabv3+/deeplabv3plus_r50-d8_512x512_20k_voc12aug.py - - - - - Name: deeplabv3plus_r101-d8_512x512_20k_voc12aug - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 72.05 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 77.22 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug/deeplabv3plus_r101-d8_512x512_20k_voc12aug_20200617_102345-c7ff3d56.pth - Config: configs/deeplabv3+/deeplabv3plus_r101-d8_512x512_20k_voc12aug.py - - - - - Name: deeplabv3plus_r50-d8_512x512_40k_voc12aug - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 47.62 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 76.81 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug/deeplabv3plus_r50-d8_512x512_40k_voc12aug_20200613_161759-e1b43aa9.pth - Config: configs/deeplabv3+/deeplabv3plus_r50-d8_512x512_40k_voc12aug.py - - - - - Name: deeplabv3plus_r101-d8_512x512_40k_voc12aug - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 72.05 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 78.62 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug/deeplabv3plus_r101-d8_512x512_40k_voc12aug_20200613_205333-faf03387.pth - Config: configs/deeplabv3+/deeplabv3plus_r101-d8_512x512_40k_voc12aug.py - - - - - Name: deeplabv3plus_r101-d8_480x480_40k_pascal_context - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 110.01 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal Context - Metrics: - mIoU: 47.30 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context/deeplabv3plus_r101-d8_480x480_40k_pascal_context_20200911_165459-d3c8a29e.pth - Config: configs/deeplabv3+/deeplabv3plus_r101-d8_480x480_40k_pascal_context.py - - - - - Name: deeplabv3plus_r101-d8_480x480_80k_pascal_context - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 110.01 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal Context - Metrics: - mIoU: 47.23 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context/deeplabv3plus_r101-d8_480x480_80k_pascal_context_20200911_155322-145d3ee8.pth - Config: configs/deeplabv3+/deeplabv3plus_r101-d8_480x480_80k_pascal_context.py - - - - - Name: deeplabv3plus_r101-d8_480x480_40k_pascal_context - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: None - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal Context - Metrics: - mIoU: 52.86 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59_20210416_111233-ed937f15.pth - Config: configs/deeplabv3+/deeplabv3plus_r101-d8_480x480_40k_pascal_context.py - - - - - Name: deeplabv3plus_r101-d8_480x480_80k_pascal_context - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: None - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal Context - Metrics: - mIoU: 53.2 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59_20210416_111127-7ca0331d.pth - Config: configs/deeplabv3+/deeplabv3plus_r101-d8_480x480_80k_pascal_context.py diff --git a/configs/dmnet/dmnet.yml b/configs/dmnet/dmnet.yml new file mode 100644 index 0000000000..e4e4fcb84e --- /dev/null +++ b/configs/dmnet/dmnet.yml @@ -0,0 +1,223 @@ +Collections: +- Name: dmnet + Metadata: + Training Data: + - Cityscapes + - ADE20K +Models: +- Name: dmnet_r50-d8_512x1024_40k_cityscapes + In Collection: dmnet + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 273.22 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 7.0 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.78 + mIoU(ms+flip): 79.14 + Config: configs/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes/dmnet_r50-d8_512x1024_40k_cityscapes_20201215_042326-615373cf.pth +- Name: dmnet_r101-d8_512x1024_40k_cityscapes + In Collection: dmnet + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 393.7 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 10.6 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.37 + mIoU(ms+flip): 79.72 + Config: configs/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes/dmnet_r101-d8_512x1024_40k_cityscapes_20201215_043100-8291e976.pth +- Name: dmnet_r50-d8_769x769_40k_cityscapes + In Collection: dmnet + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 636.94 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 7.9 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.49 + mIoU(ms+flip): 80.27 + Config: configs/dmnet/dmnet_r50-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_40k_cityscapes/dmnet_r50-d8_769x769_40k_cityscapes_20201215_093706-e7f0e23e.pth +- Name: dmnet_r101-d8_769x769_40k_cityscapes + In Collection: dmnet + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 990.1 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 12.0 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.62 + mIoU(ms+flip): 78.94 + Config: configs/dmnet/dmnet_r101-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_40k_cityscapes/dmnet_r101-d8_769x769_40k_cityscapes_20201215_081348-a74261f6.pth +- Name: dmnet_r50-d8_512x1024_80k_cityscapes + In Collection: dmnet + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.07 + mIoU(ms+flip): 80.22 + Config: configs/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes/dmnet_r50-d8_512x1024_80k_cityscapes_20201215_053728-3c8893b9.pth +- Name: dmnet_r101-d8_512x1024_80k_cityscapes + In Collection: dmnet + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.64 + mIoU(ms+flip): 80.67 + Config: configs/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes/dmnet_r101-d8_512x1024_80k_cityscapes_20201215_031718-fa081cb8.pth +- Name: dmnet_r50-d8_769x769_80k_cityscapes + In Collection: dmnet + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.22 + mIoU(ms+flip): 80.55 + Config: configs/dmnet/dmnet_r50-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_80k_cityscapes/dmnet_r50-d8_769x769_80k_cityscapes_20201215_034006-6060840e.pth +- Name: dmnet_r101-d8_769x769_80k_cityscapes + In Collection: dmnet + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.19 + mIoU(ms+flip): 80.65 + Config: configs/dmnet/dmnet_r101-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_80k_cityscapes/dmnet_r101-d8_769x769_80k_cityscapes_20201215_082810-7f0de59a.pth +- Name: dmnet_r50-d8_512x512_80k_ade20k + In Collection: dmnet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 47.73 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 9.4 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.37 + mIoU(ms+flip): 43.62 + Config: configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_80k_ade20k/dmnet_r50-d8_512x512_80k_ade20k_20201215_144744-f89092a6.pth +- Name: dmnet_r101-d8_512x512_80k_ade20k + In Collection: dmnet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 72.05 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 13.0 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 45.34 + mIoU(ms+flip): 46.13 + Config: configs/dmnet/dmnet_r101-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_80k_ade20k/dmnet_r101-d8_512x512_80k_ade20k_20201215_104812-bfa45311.pth +- Name: dmnet_r50-d8_512x512_160k_ade20k + In Collection: dmnet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.15 + mIoU(ms+flip): 44.17 + Config: configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_160k_ade20k/dmnet_r50-d8_512x512_160k_ade20k_20201215_115313-025ab3f9.pth +- Name: dmnet_r101-d8_512x512_160k_ade20k + In Collection: dmnet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 45.42 + mIoU(ms+flip): 46.76 + Config: configs/dmnet/dmnet_r101-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_160k_ade20k/dmnet_r101-d8_512x512_160k_ade20k_20201215_111145-a0bc02ef.pth diff --git a/configs/dmnet/metafile.yml b/configs/dmnet/metafile.yml deleted file mode 100644 index 8ab1baa7a1..0000000000 --- a/configs/dmnet/metafile.yml +++ /dev/null @@ -1,234 +0,0 @@ -Collections: - - Name: DMNet - Metadata: - Training Data: - - Cityscapes - - ADE20K - -Models: - - - Name: dmnet_r50-d8_512x1024_40k_cityscapes - In Collection: DMNet - Metadata: - inference time (ms/im): - - value: 273.22 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.78 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes/dmnet_r50-d8_512x1024_40k_cityscapes_20201214_115717-5e88fa33.pth - Config: configs/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes.py - - - - - Name: dmnet_r101-d8_512x1024_40k_cityscapes - In Collection: DMNet - Metadata: - inference time (ms/im): - - value: 393.7 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.37 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes/dmnet_r101-d8_512x1024_40k_cityscapes_20201214_115716-abc9d111.pth - Config: configs/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes.py - - - - - Name: dmnet_r50-d8_769x769_40k_cityscapes - In Collection: DMNet - Metadata: - inference time (ms/im): - - value: 636.94 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.49 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_40k_cityscapes/dmnet_r50-d8_769x769_40k_cityscapes_20201214_115717-2a2628d7.pth - Config: configs/dmnet/dmnet_r50-d8_769x769_40k_cityscapes.py - - - - - Name: dmnet_r101-d8_769x769_40k_cityscapes - In Collection: DMNet - Metadata: - inference time (ms/im): - - value: 990.1 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.62 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_40k_cityscapes/dmnet_r101-d8_769x769_40k_cityscapes_20201214_115718-b650de90.pth - Config: configs/dmnet/dmnet_r101-d8_769x769_40k_cityscapes.py - - - - - Name: dmnet_r50-d8_512x1024_80k_cityscapes - In Collection: DMNet - Metadata: - inference time (ms/im): - - value: 273.22 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.07 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes/dmnet_r50-d8_512x1024_80k_cityscapes_20201214_115716-987f51e3.pth - Config: configs/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes.py - - - - - Name: dmnet_r101-d8_512x1024_80k_cityscapes - In Collection: DMNet - Metadata: - inference time (ms/im): - - value: 393.7 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.64 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes/dmnet_r101-d8_512x1024_80k_cityscapes_20201214_115705-b1ff208a.pth - Config: configs/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes.py - - - - - Name: dmnet_r50-d8_769x769_80k_cityscapes - In Collection: DMNet - Metadata: - inference time (ms/im): - - value: 636.94 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.22 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_80k_cityscapes/dmnet_r50-d8_769x769_80k_cityscapes_20201214_115718-7ea9fa12.pth - Config: configs/dmnet/dmnet_r50-d8_769x769_80k_cityscapes.py - - - - - Name: dmnet_r101-d8_769x769_80k_cityscapes - In Collection: DMNet - Metadata: - inference time (ms/im): - - value: 990.1 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.19 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_80k_cityscapes/dmnet_r101-d8_769x769_80k_cityscapes_20201214_115716-a7fbc2ab.pth - Config: configs/dmnet/dmnet_r101-d8_769x769_80k_cityscapes.py - - - - - Name: dmnet_r50-d8_512x512_80k_ade20k - In Collection: DMNet - Metadata: - inference time (ms/im): - - value: 47.73 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 42.37 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_80k_ade20k/dmnet_r50-d8_512x512_80k_ade20k_20201214_115705-a8626293.pth - Config: configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py - - - - - Name: dmnet_r101-d8_512x512_80k_ade20k - In Collection: DMNet - Metadata: - inference time (ms/im): - - value: 72.05 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 45.34 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_80k_ade20k/dmnet_r101-d8_512x512_80k_ade20k_20201214_115704-c656c3fb.pth - Config: configs/dmnet/dmnet_r101-d8_512x512_80k_ade20k.py - - - - - Name: dmnet_r50-d8_512x512_160k_ade20k - In Collection: DMNet - Metadata: - inference time (ms/im): - - value: 47.73 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 43.15 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_160k_ade20k/dmnet_r50-d8_512x512_160k_ade20k_20201214_115706-25fb92c2.pth - Config: configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py - - - - - Name: dmnet_r101-d8_512x512_160k_ade20k - In Collection: DMNet - Metadata: - inference time (ms/im): - - value: 72.05 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 45.42 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_160k_ade20k/dmnet_r101-d8_512x512_160k_ade20k_20201214_115705-73f9a8d7.pth - Config: configs/dmnet/dmnet_r101-d8_512x512_160k_ade20k.py diff --git a/configs/dnlnet/dnlnet.yml b/configs/dnlnet/dnlnet.yml new file mode 100644 index 0000000000..20cd36f626 --- /dev/null +++ b/configs/dnlnet/dnlnet.yml @@ -0,0 +1,219 @@ +Collections: +- Name: dnlnet + Metadata: + Training Data: + - Cityscapes + - ADE20K +Models: +- Name: dnl_r50-d8_512x1024_40k_cityscapes + In Collection: dnlnet + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 390.62 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 7.3 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.61 + Config: configs/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes/dnl_r50-d8_512x1024_40k_cityscapes_20200904_233629-53d4ea93.pth +- Name: dnl_r101-d8_512x1024_40k_cityscapes + In Collection: dnlnet + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 510.2 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 10.9 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.31 + Config: configs/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes/dnl_r101-d8_512x1024_40k_cityscapes_20200904_233629-9928ffef.pth +- Name: dnl_r50-d8_769x769_40k_cityscapes + In Collection: dnlnet + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 666.67 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 9.2 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.44 + mIoU(ms+flip): 80.27 + Config: configs/dnlnet/dnl_r50-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_40k_cityscapes/dnl_r50-d8_769x769_40k_cityscapes_20200820_232206-0f283785.pth +- Name: dnl_r101-d8_769x769_40k_cityscapes + In Collection: dnlnet + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 980.39 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 12.6 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.39 + mIoU(ms+flip): 77.77 + Config: configs/dnlnet/dnl_r101-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_40k_cityscapes/dnl_r101-d8_769x769_40k_cityscapes_20200820_171256-76c596df.pth +- Name: dnl_r50-d8_512x1024_80k_cityscapes + In Collection: dnlnet + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.33 + Config: configs/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes/dnl_r50-d8_512x1024_80k_cityscapes_20200904_233629-58b2f778.pth +- Name: dnl_r101-d8_512x1024_80k_cityscapes + In Collection: dnlnet + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.41 + Config: configs/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes/dnl_r101-d8_512x1024_80k_cityscapes_20200904_233629-758e2dd4.pth +- Name: dnl_r50-d8_769x769_80k_cityscapes + In Collection: dnlnet + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.36 + mIoU(ms+flip): 80.7 + Config: configs/dnlnet/dnl_r50-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_80k_cityscapes/dnl_r50-d8_769x769_80k_cityscapes_20200820_011925-366bc4c7.pth +- Name: dnl_r101-d8_769x769_80k_cityscapes + In Collection: dnlnet + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.41 + mIoU(ms+flip): 80.68 + Config: configs/dnlnet/dnl_r101-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_80k_cityscapes/dnl_r101-d8_769x769_80k_cityscapes_20200821_051111-95ff84ab.pth +- Name: dnl_r50-d8_512x512_80k_ade20k + In Collection: dnlnet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 48.4 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 8.8 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 41.76 + mIoU(ms+flip): 42.99 + Config: configs/dnlnet/dnl_r50-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_80k_ade20k/dnl_r50-d8_512x512_80k_ade20k_20200826_183354-1cf6e0c1.pth +- Name: dnl_r101-d8_512x512_80k_ade20k + In Collection: dnlnet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 79.74 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 12.8 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.76 + mIoU(ms+flip): 44.91 + Config: configs/dnlnet/dnl_r101-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_80k_ade20k/dnl_r101-d8_512x512_80k_ade20k_20200826_183354-d820d6ea.pth +- Name: dnl_r50-d8_512x512_160k_ade20k + In Collection: dnlnet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 41.87 + mIoU(ms+flip): 43.01 + Config: configs/dnlnet/dnl_r50-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_160k_ade20k/dnl_r50-d8_512x512_160k_ade20k_20200826_183350-37837798.pth +- Name: dnl_r101-d8_512x512_160k_ade20k + In Collection: dnlnet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 44.25 + mIoU(ms+flip): 45.78 + Config: configs/dnlnet/dnl_r101-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_160k_ade20k/dnl_r101-d8_512x512_160k_ade20k_20200826_183350-ed522c61.pth diff --git a/configs/dnlnet/metafile.yml b/configs/dnlnet/metafile.yml deleted file mode 100644 index 2ae289be14..0000000000 --- a/configs/dnlnet/metafile.yml +++ /dev/null @@ -1,234 +0,0 @@ -Collections: - - Name: dnl - Metadata: - Training Data: - - Cityscapes - - ADE20K - -Models: - - - Name: dnl_r50-d8_512x1024_40k_cityscapes - In Collection: dnl - Metadata: - inference time (ms/im): - - value: 390.62 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.61 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes/dnl_r50-d8_512x1024_40k_cityscapes_20200904_233629-53d4ea93.pth - Config: configs/dnl/dnl_r50-d8_512x1024_40k_cityscapes.py - - - - - Name: dnl_r101-d8_512x1024_40k_cityscapes - In Collection: dnl - Metadata: - inference time (ms/im): - - value: 510.2 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.31 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes/dnl_r101-d8_512x1024_40k_cityscapes_20200904_233629-9928ffef.pth - Config: configs/dnl/dnl_r101-d8_512x1024_40k_cityscapes.py - - - - - Name: dnl_r50-d8_769x769_40k_cityscapes - In Collection: dnl - Metadata: - inference time (ms/im): - - value: 666.67 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.44 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_40k_cityscapes/dnl_r50-d8_769x769_40k_cityscapes_20200820_232206-0f283785.pth - Config: configs/dnl/dnl_r50-d8_769x769_40k_cityscapes.py - - - - - Name: dnl_r101-d8_769x769_40k_cityscapes - In Collection: dnl - Metadata: - inference time (ms/im): - - value: 980.39 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 76.39 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_40k_cityscapes/dnl_r101-d8_769x769_40k_cityscapes_20200820_171256-76c596df.pth - Config: configs/dnl/dnl_r101-d8_769x769_40k_cityscapes.py - - - - - Name: dnl_r50-d8_512x1024_80k_cityscapes - In Collection: dnl - Metadata: - inference time (ms/im): - - value: 390.62 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.33 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes/dnl_r50-d8_512x1024_80k_cityscapes_20200904_233629-58b2f778.pth - Config: configs/dnl/dnl_r50-d8_512x1024_80k_cityscapes.py - - - - - Name: dnl_r101-d8_512x1024_80k_cityscapes - In Collection: dnl - Metadata: - inference time (ms/im): - - value: 510.2 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 80.41 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes/dnl_r101-d8_512x1024_80k_cityscapes_20200904_233629-758e2dd4.pth - Config: configs/dnl/dnl_r101-d8_512x1024_80k_cityscapes.py - - - - - Name: dnl_r50-d8_769x769_80k_cityscapes - In Collection: dnl - Metadata: - inference time (ms/im): - - value: 666.67 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.36 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_80k_cityscapes/dnl_r50-d8_769x769_80k_cityscapes_20200820_011925-366bc4c7.pth - Config: configs/dnl/dnl_r50-d8_769x769_80k_cityscapes.py - - - - - Name: dnl_r101-d8_769x769_80k_cityscapes - In Collection: dnl - Metadata: - inference time (ms/im): - - value: 980.39 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.41 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_80k_cityscapes/dnl_r101-d8_769x769_80k_cityscapes_20200821_051111-95ff84ab.pth - Config: configs/dnl/dnl_r101-d8_769x769_80k_cityscapes.py - - - - - Name: dnl_r50-d8_512x512_80k_ade20k - In Collection: dnl - Metadata: - inference time (ms/im): - - value: 48.4 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 41.76 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_80k_ade20k/dnl_r50-d8_512x512_80k_ade20k_20200826_183354-1cf6e0c1.pth - Config: configs/dnl/dnl_r50-d8_512x512_80k_ade20k.py - - - - - Name: dnl_r101-d8_512x512_80k_ade20k - In Collection: dnl - Metadata: - inference time (ms/im): - - value: 79.74 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 43.76 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_80k_ade20k/dnl_r101-d8_512x512_80k_ade20k_20200826_183354-d820d6ea.pth - Config: configs/dnl/dnl_r101-d8_512x512_80k_ade20k.py - - - - - Name: dnl_r50-d8_512x512_160k_ade20k - In Collection: dnl - Metadata: - inference time (ms/im): - - value: 48.4 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 41.87 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_160k_ade20k/dnl_r50-d8_512x512_160k_ade20k_20200826_183350-37837798.pth - Config: configs/dnl/dnl_r50-d8_512x512_160k_ade20k.py - - - - - Name: dnl_r101-d8_512x512_160k_ade20k - In Collection: dnl - Metadata: - inference time (ms/im): - - value: 79.74 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 44.25 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_160k_ade20k/dnl_r101-d8_512x512_160k_ade20k_20200826_183350-ed522c61.pth - Config: configs/dnl/dnl_r101-d8_512x512_160k_ade20k.py diff --git a/configs/emanet/emanet.yml b/configs/emanet/emanet.yml new file mode 100644 index 0000000000..031b98f87e --- /dev/null +++ b/configs/emanet/emanet.yml @@ -0,0 +1,94 @@ +Collections: +- Name: emanet + Metadata: + Training Data: + - Cityscapes +Models: +- Name: emanet_r50-d8_512x1024_80k_cityscapes + In Collection: emanet + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 218.34 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 5.4 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.59 + mIoU(ms+flip): 79.44 + Config: configs/emanet/emanet_r50-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_512x1024_80k_cityscapes/emanet_r50-d8_512x1024_80k_cityscapes_20200901_100301-c43fcef1.pth +- Name: emanet_r101-d8_512x1024_80k_cityscapes + In Collection: emanet + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 348.43 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 6.2 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.1 + mIoU(ms+flip): 81.21 + Config: configs/emanet/emanet_r101-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_512x1024_80k_cityscapes/emanet_r101-d8_512x1024_80k_cityscapes_20200901_100301-2d970745.pth +- Name: emanet_r50-d8_769x769_80k_cityscapes + In Collection: emanet + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 80000 + inference time (ms/im): + - value: 507.61 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 8.9 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.33 + mIoU(ms+flip): 80.49 + Config: configs/emanet/emanet_r50-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_769x769_80k_cityscapes/emanet_r50-d8_769x769_80k_cityscapes_20200901_100301-16f8de52.pth +- Name: emanet_r101-d8_769x769_80k_cityscapes + In Collection: emanet + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 80000 + inference time (ms/im): + - value: 819.67 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 10.1 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.62 + mIoU(ms+flip): 81.0 + Config: configs/emanet/emanet_r101-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_769x769_80k_cityscapes/emanet_r101-d8_769x769_80k_cityscapes_20200901_100301-47a324ce.pth diff --git a/configs/emanet/metafile.yml b/configs/emanet/metafile.yml deleted file mode 100644 index 0fa562abd6..0000000000 --- a/configs/emanet/metafile.yml +++ /dev/null @@ -1,81 +0,0 @@ -Collections: - - Name: EMANet - Metadata: - Training Data: - - Cityscapes - -Models: - - - Name: emanet_r50-d8_512x1024_80k_cityscapes - In Collection: EMANet - Metadata: - inference time (ms/im): - - value: 218.34 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.59 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_512x1024_80k_cityscapes/emanet_r50-d8_512x1024_80k_cityscapes_20200901_100301-c43fcef1.pth - Config: configs/emanet/emanet_r50-d8_512x1024_80k_cityscapes.py - - - - - Name: emanet_r101-d8_512x1024_80k_cityscapes - In Collection: EMANet - Metadata: - inference time (ms/im): - - value: 348.43 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.10 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_512x1024_80k_cityscapes/emanet_r101-d8_512x1024_80k_cityscapes_20200901_100301-2d970745.pth - Config: configs/emanet/emanet_r101-d8_512x1024_80k_cityscapes.py - - - - - Name: emanet_r50-d8_769x769_80k_cityscapes - In Collection: EMANet - Metadata: - inference time (ms/im): - - value: 507.61 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.33 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_769x769_80k_cityscapes/emanet_r50-d8_769x769_80k_cityscapes_20200901_100301-16f8de52.pth - Config: configs/emanet/emanet_r50-d8_769x769_80k_cityscapes.py - - - - - Name: emanet_r101-d8_769x769_80k_cityscapes - In Collection: EMANet - Metadata: - inference time (ms/im): - - value: 819.67 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.62 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_769x769_80k_cityscapes/emanet_r101-d8_769x769_80k_cityscapes_20200901_100301-47a324ce.pth - Config: configs/emanet/emanet_r101-d8_769x769_80k_cityscapes.py diff --git a/configs/encnet/encnet.yml b/configs/encnet/encnet.yml new file mode 100644 index 0000000000..7bbeea6a12 --- /dev/null +++ b/configs/encnet/encnet.yml @@ -0,0 +1,223 @@ +Collections: +- Name: encnet + Metadata: + Training Data: + - Cityscapes + - ADE20K +Models: +- Name: encnet_r50-d8_512x1024_40k_cityscapes + In Collection: encnet + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 218.34 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 8.6 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 75.67 + mIoU(ms+flip): 77.08 + Config: configs/encnet/encnet_r50-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_40k_cityscapes/encnet_r50-d8_512x1024_40k_cityscapes_20200621_220958-68638a47.pth +- Name: encnet_r101-d8_512x1024_40k_cityscapes + In Collection: encnet + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 375.94 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 12.1 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 75.81 + mIoU(ms+flip): 77.21 + Config: configs/encnet/encnet_r101-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_40k_cityscapes/encnet_r101-d8_512x1024_40k_cityscapes_20200621_220933-35e0a3e8.pth +- Name: encnet_r50-d8_769x769_40k_cityscapes + In Collection: encnet + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 549.45 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 9.8 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.24 + mIoU(ms+flip): 77.85 + Config: configs/encnet/encnet_r50-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_40k_cityscapes/encnet_r50-d8_769x769_40k_cityscapes_20200621_220958-3bcd2884.pth +- Name: encnet_r101-d8_769x769_40k_cityscapes + In Collection: encnet + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 793.65 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 13.7 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 74.25 + mIoU(ms+flip): 76.25 + Config: configs/encnet/encnet_r101-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_40k_cityscapes/encnet_r101-d8_769x769_40k_cityscapes_20200621_220933-2fafed55.pth +- Name: encnet_r50-d8_512x1024_80k_cityscapes + In Collection: encnet + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.94 + mIoU(ms+flip): 79.13 + Config: configs/encnet/encnet_r50-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_80k_cityscapes/encnet_r50-d8_512x1024_80k_cityscapes_20200622_003554-fc5c5624.pth +- Name: encnet_r101-d8_512x1024_80k_cityscapes + In Collection: encnet + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.55 + mIoU(ms+flip): 79.47 + Config: configs/encnet/encnet_r101-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_80k_cityscapes/encnet_r101-d8_512x1024_80k_cityscapes_20200622_003555-1de64bec.pth +- Name: encnet_r50-d8_769x769_80k_cityscapes + In Collection: encnet + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.44 + mIoU(ms+flip): 78.72 + Config: configs/encnet/encnet_r50-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_80k_cityscapes/encnet_r50-d8_769x769_80k_cityscapes_20200622_003554-55096dcb.pth +- Name: encnet_r101-d8_769x769_80k_cityscapes + In Collection: encnet + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.1 + mIoU(ms+flip): 76.97 + Config: configs/encnet/encnet_r101-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_80k_cityscapes/encnet_r101-d8_769x769_80k_cityscapes_20200622_003555-470ef79d.pth +- Name: encnet_r50-d8_512x512_80k_ade20k + In Collection: encnet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 43.84 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 10.1 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 39.53 + mIoU(ms+flip): 41.17 + Config: configs/encnet/encnet_r50-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_80k_ade20k/encnet_r50-d8_512x512_80k_ade20k_20200622_042412-44b46b04.pth +- Name: encnet_r101-d8_512x512_80k_ade20k + In Collection: encnet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 67.25 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 13.6 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.11 + mIoU(ms+flip): 43.61 + Config: configs/encnet/encnet_r101-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_80k_ade20k/encnet_r101-d8_512x512_80k_ade20k_20200622_101128-dd35e237.pth +- Name: encnet_r50-d8_512x512_160k_ade20k + In Collection: encnet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 40.1 + mIoU(ms+flip): 41.71 + Config: configs/encnet/encnet_r50-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_160k_ade20k/encnet_r50-d8_512x512_160k_ade20k_20200622_101059-b2db95e0.pth +- Name: encnet_r101-d8_512x512_160k_ade20k + In Collection: encnet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.61 + mIoU(ms+flip): 44.01 + Config: configs/encnet/encnet_r101-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_160k_ade20k/encnet_r101-d8_512x512_160k_ade20k_20200622_073348-7989641f.pth diff --git a/configs/encnet/metafile.yml b/configs/encnet/metafile.yml deleted file mode 100644 index 1e97baa509..0000000000 --- a/configs/encnet/metafile.yml +++ /dev/null @@ -1,235 +0,0 @@ -Collections: - - Name: encnet - Metadata: - Training Data: - - Cityscapes - - Pascal VOC 2012 + Aug - - ADE20K - -Models: - - - Name: encnet_r50-d8_512x1024_40k_cityscapes - In Collection: encnet - Metadata: - inference time (ms/im): - - value: 218.34 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 75.67 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_40k_cityscapes/encnet_r50-d8_512x1024_40k_cityscapes_20200621_220958-68638a47.pth - Config: configs/encnet/encnet_r50-d8_512x1024_40k_cityscapes.py - - - - - Name: encnet_r101-d8_512x1024_40k_cityscapes - In Collection: encnet - Metadata: - inference time (ms/im): - - value: 375.94 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 75.81 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_40k_cityscapes/encnet_r101-d8_512x1024_40k_cityscapes_20200621_220933-35e0a3e8.pth - Config: configs/encnet/encnet_r101-d8_512x1024_40k_cityscapes.py - - - - - Name: encnet_r50-d8_769x769_40k_cityscapes - In Collection: encnet - Metadata: - inference time (ms/im): - - value: 549.45 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 76.24 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_40k_cityscapes/encnet_r50-d8_769x769_40k_cityscapes_20200621_220958-3bcd2884.pth - Config: configs/encnet/encnet_r50-d8_769x769_40k_cityscapes.py - - - - - Name: encnet_r101-d8_769x769_40k_cityscapes - In Collection: encnet - Metadata: - inference time (ms/im): - - value: 793.65 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 74.25 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_40k_cityscapes/encnet_r101-d8_769x769_40k_cityscapes_20200621_220933-2fafed55.pth - Config: configs/encnet/encnet_r101-d8_769x769_40k_cityscapes.py - - - - - Name: encnet_r50-d8_512x1024_80k_cityscapes - In Collection: encnet - Metadata: - inference time (ms/im): - - value: 218.34 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.94 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_80k_cityscapes/encnet_r50-d8_512x1024_80k_cityscapes_20200622_003554-fc5c5624.pth - Config: configs/encnet/encnet_r50-d8_512x1024_80k_cityscapes.py - - - - - Name: encnet_r101-d8_512x1024_80k_cityscapes - In Collection: encnet - Metadata: - inference time (ms/im): - - value: 375.94 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.55 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_80k_cityscapes/encnet_r101-d8_512x1024_80k_cityscapes_20200622_003555-1de64bec.pth - Config: configs/encnet/encnet_r101-d8_512x1024_80k_cityscapes.py - - - - - Name: encnet_r50-d8_769x769_80k_cityscapes - In Collection: encnet - Metadata: - inference time (ms/im): - - value: 549.45 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.44 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_80k_cityscapes/encnet_r50-d8_769x769_80k_cityscapes_20200622_003554-55096dcb.pth - Config: configs/encnet/encnet_r50-d8_769x769_80k_cityscapes.py - - - - - Name: encnet_r101-d8_769x769_80k_cityscapes - In Collection: encnet - Metadata: - inference time (ms/im): - - value: 793.65 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 76.10 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_80k_cityscapes/encnet_r101-d8_769x769_80k_cityscapes_20200622_003555-470ef79d.pth - Config: configs/encnet/encnet_r101-d8_769x769_80k_cityscapes.py - - - - - Name: encnet_r50-d8_512x512_80k_ade20k - In Collection: encnet - Metadata: - inference time (ms/im): - - value: 43.84 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 39.53 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_80k_ade20k/encnet_r50-d8_512x512_80k_ade20k_20200622_042412-44b46b04.pth - Config: configs/encnet/encnet_r50-d8_512x512_80k_ade20k.py - - - - - Name: encnet_r101-d8_512x512_80k_ade20k - In Collection: encnet - Metadata: - inference time (ms/im): - - value: 67.25 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 42.11 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_80k_ade20k/encnet_r101-d8_512x512_80k_ade20k_20200622_101128-dd35e237.pth - Config: configs/encnet/encnet_r101-d8_512x512_80k_ade20k.py - - - - - Name: encnet_r50-d8_512x512_160k_ade20k - In Collection: encnet - Metadata: - inference time (ms/im): - - value: 43.84 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 40.10 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_160k_ade20k/encnet_r50-d8_512x512_160k_ade20k_20200622_101059-b2db95e0.pth - Config: configs/encnet/encnet_r50-d8_512x512_160k_ade20k.py - - - - - Name: encnet_r101-d8_512x512_160k_ade20k - In Collection: encnet - Metadata: - inference time (ms/im): - - value: 67.25 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 42.61 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_160k_ade20k/encnet_r101-d8_512x512_160k_ade20k_20200622_073348-7989641f.pth - Config: configs/encnet/encnet_r101-d8_512x512_160k_ade20k.py diff --git a/configs/fastscnn/fastscnn.yml b/configs/fastscnn/fastscnn.yml new file mode 100644 index 0000000000..daf5119696 --- /dev/null +++ b/configs/fastscnn/fastscnn.yml @@ -0,0 +1,28 @@ +Collections: +- Name: fastscnn + Metadata: + Training Data: + - Cityscapes +Models: +- Name: '' + In Collection: fastscnn + Metadata: + backbone: Fast-SCNN + crop size: (512,1024) + lr schd: 160000 + inference time (ms/im): + - value: 17.71 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 3.3 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 70.96 + mIoU(ms+flip): 72.65 + Config: '' + Weights: '' diff --git a/configs/fastscnn/metafile.yml b/configs/fastscnn/metafile.yml deleted file mode 100644 index 019f1d2fdb..0000000000 --- a/configs/fastscnn/metafile.yml +++ /dev/null @@ -1,24 +0,0 @@ -Collections: - - Name: Fast-SCNN - Metadata: - Training Data: - - Cityscapes - -Models: - - - Name: fast_scnn_4x8_80k_lr0.12_cityscapes - In Collection: Fast-SCNN - Metadata: - inference time (ms/im): - - value: 15.72 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 69.06 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_4x8_80k_lr0.12_cityscapes-f5096c79.pth - Config: configs/fast-scnn/fast_scnn_4x8_80k_lr0.12_cityscapes.py diff --git a/configs/fcn/README.md b/configs/fcn/README.md index 270781b48b..82dfdb6f1d 100644 --- a/configs/fcn/README.md +++ b/configs/fcn/README.md @@ -47,10 +47,10 @@ | FCN-D6 | R-101-D16 | 512x1024 | 80000 | - | 8.26 | 78.46 | 80.42 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes/fcn_d6_r101-d16_512x1024_80k_cityscapes-cb336445.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes/fcn_d6_r101-d16_512x1024_80k_cityscapes-20210308_102747.log.json) | | FCN-D6 | R-101-D16 | 769x769 | 40000 | 5.0 | 3.12 | 77.28 | 78.95 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes/fcn_d6_r101-d16_769x769_40k_cityscapes-60b114e9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes/fcn_d6_r101-d16_769x769_40k_cityscapes-20210308_102453.log.json) | | FCN-D6 | R-101-D16 | 769x769 | 80000 | - | 3.21 | 78.06 | 79.58 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes/fcn_d6_r101-d16_769x769_80k_cityscapes-e33adc4f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes/fcn_d6_r101-d16_769x769_80k_cityscapes-20210306_120016.log.json) | -| FCN-D6 | R-50b-D16 | 512x1024 | 80000 | 3.2 | 10.16 | 76.99 | 79.03 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r50b_d16_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_512x1024_80k_cityscapes/fcn_d6_r50b_d16_512x1024_80k_cityscapes-6a0b62e9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_512x1024_80k_cityscapes/fcn_d6_r50b_d16_512x1024_80k_cityscapes-20210311_125550.log.json) | -| FCN-D6 | R-50b-D16 | 769x769 | 80000 | 3.6 | 4.17 | 76.86 | 78.52 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r50b_d16_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_769x769_80k_cityscapes/fcn_d6_r50b_d16_769x769_80k_cityscapes-d665f231.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_769x769_80k_cityscapes/fcn_d6_r50b_d16_769x769_80k_cityscapes-20210311_131012.log.json) | -| FCN-D6 | R-101b-D16 | 512x1024 | 80000 | 4.3 | 8.46 | 77.72 | 79.53 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r101b_d16_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_512x1024_80k_cityscapes/fcn_d6_r101b_d16_512x1024_80k_cityscapes-3f2eb5b4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_512x1024_80k_cityscapes/fcn_d6_r101b_d16_512x1024_80k_cityscapes-20210311_144305.log.json) | -| FCN-D6 | R-101b-D16 | 769x769 | 80000 | 4.8 | 3.32 | 77.34 | 78.91 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r101b_d16_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_769x769_80k_cityscapes/fcn_d6_r101b_d16_769x769_80k_cityscapes-c4d8bfbc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_769x769_80k_cityscapes/fcn_d6_r101b_d16_769x769_80k_cityscapes-20210311_154527.log.json) | +| FCN-D6 | R-50b-D16 | 512x1024 | 80000 | 3.2 | 10.16 | 76.99 | 79.03 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r50b-d16_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_512x1024_80k_cityscapes/fcn_d6_r50b_d16_512x1024_80k_cityscapes-6a0b62e9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_512x1024_80k_cityscapes/fcn_d6_r50b_d16_512x1024_80k_cityscapes-20210311_125550.log.json) | +| FCN-D6 | R-50b-D16 | 769x769 | 80000 | 3.6 | 4.17 | 76.86 | 78.52 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r50b-d16_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_769x769_80k_cityscapes/fcn_d6_r50b_d16_769x769_80k_cityscapes-d665f231.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_769x769_80k_cityscapes/fcn_d6_r50b_d16_769x769_80k_cityscapes-20210311_131012.log.json) | +| FCN-D6 | R-101b-D16 | 512x1024 | 80000 | 4.3 | 8.46 | 77.72 | 79.53 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r101b-d16_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_512x1024_80k_cityscapes/fcn_d6_r101b_d16_512x1024_80k_cityscapes-3f2eb5b4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_512x1024_80k_cityscapes/fcn_d6_r101b_d16_512x1024_80k_cityscapes-20210311_144305.log.json) | +| FCN-D6 | R-101b-D16 | 769x769 | 80000 | 4.8 | 3.32 | 77.34 | 78.91 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn/fcn_d6_r101b-d16_769x769_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_769x769_80k_cityscapes/fcn_d6_r101b_d16_769x769_80k_cityscapes-c4d8bfbc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_769x769_80k_cityscapes/fcn_d6_r101b_d16_769x769_80k_cityscapes-20210311_154527.log.json) | ### ADE20K diff --git a/configs/fcn/fcn.yml b/configs/fcn/fcn.yml new file mode 100644 index 0000000000..995dc36af3 --- /dev/null +++ b/configs/fcn/fcn.yml @@ -0,0 +1,797 @@ +Collections: +- Name: fcn + Metadata: + Training Data: + - Cityscapes + - ADE20K + - Pascal VOC 2012 + Aug + - Pascal Context + - Pascal Context 59 +Models: +- Name: fcn_r50-d8_512x1024_40k_cityscapes + In Collection: fcn + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 239.81 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 5.7 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 72.25 + mIoU(ms+flip): 73.36 + Config: configs/fcn/fcn_r50-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_40k_cityscapes/fcn_r50-d8_512x1024_40k_cityscapes_20200604_192608-efe53f0d.pth +- Name: fcn_r101-d8_512x1024_40k_cityscapes + In Collection: fcn + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 375.94 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 9.2 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 75.45 + mIoU(ms+flip): 76.58 + Config: configs/fcn/fcn_r101-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_40k_cityscapes/fcn_r101-d8_512x1024_40k_cityscapes_20200604_181852-a883d3a1.pth +- Name: fcn_r50-d8_769x769_40k_cityscapes + In Collection: fcn + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 555.56 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 6.5 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 71.47 + mIoU(ms+flip): 72.54 + Config: configs/fcn/fcn_r50-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_40k_cityscapes/fcn_r50-d8_769x769_40k_cityscapes_20200606_113104-977b5d02.pth +- Name: fcn_r101-d8_769x769_40k_cityscapes + In Collection: fcn + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 840.34 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 10.4 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 73.93 + mIoU(ms+flip): 75.14 + Config: configs/fcn/fcn_r101-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_40k_cityscapes/fcn_r101-d8_769x769_40k_cityscapes_20200606_113208-7d4ab69c.pth +- Name: fcn_r18-d8_512x1024_80k_cityscapes + In Collection: fcn + Metadata: + backbone: R-18-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 68.26 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 1.7 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 71.11 + mIoU(ms+flip): 72.91 + Config: configs/fcn/fcn_r18-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_512x1024_80k_cityscapes/fcn_r18-d8_512x1024_80k_cityscapes_20201225_021327-6c50f8b4.pth +- Name: fcn_r50-d8_512x1024_80k_cityscapes + In Collection: fcn + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 73.61 + mIoU(ms+flip): 74.24 + Config: configs/fcn/fcn_r50-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_80k_cityscapes/fcn_r50-d8_512x1024_80k_cityscapes_20200606_113019-03aa804d.pth +- Name: fcn_r101-d8_512x1024_80k_cityscapes + In Collection: fcn + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 75.13 + mIoU(ms+flip): 75.94 + Config: configs/fcn/fcn_r101-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_80k_cityscapes/fcn_r101-d8_512x1024_80k_cityscapes_20200606_113038-3fb937eb.pth +- Name: fcn_r18-d8_769x769_80k_cityscapes + In Collection: fcn + Metadata: + backbone: R-18-D8 + crop size: (769,769) + lr schd: 80000 + inference time (ms/im): + - value: 156.25 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 1.9 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 70.8 + mIoU(ms+flip): 73.16 + Config: configs/fcn/fcn_r18-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_769x769_80k_cityscapes/fcn_r18-d8_769x769_80k_cityscapes_20201225_021451-9739d1b8.pth +- Name: fcn_r50-d8_769x769_80k_cityscapes + In Collection: fcn + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 72.64 + mIoU(ms+flip): 73.32 + Config: configs/fcn/fcn_r50-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_80k_cityscapes/fcn_r50-d8_769x769_80k_cityscapes_20200606_195749-f5caeabc.pth +- Name: fcn_r101-d8_769x769_80k_cityscapes + In Collection: fcn + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 75.52 + mIoU(ms+flip): 76.61 + Config: configs/fcn/fcn_r101-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_80k_cityscapes/fcn_r101-d8_769x769_80k_cityscapes_20200606_214354-45cbac68.pth +- Name: fcn_r18b-d8_512x1024_80k_cityscapes + In Collection: fcn + Metadata: + backbone: R-18b-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 59.74 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 1.6 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 70.24 + mIoU(ms+flip): 72.77 + Config: configs/fcn/fcn_r18b-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_512x1024_80k_cityscapes/fcn_r18b-d8_512x1024_80k_cityscapes_20201225_230143-92c0f445.pth +- Name: fcn_r50b-d8_512x1024_80k_cityscapes + In Collection: fcn + Metadata: + backbone: R-50b-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 238.1 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 5.6 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 75.65 + mIoU(ms+flip): 77.59 + Config: configs/fcn/fcn_r50b-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_512x1024_80k_cityscapes/fcn_r50b-d8_512x1024_80k_cityscapes_20201225_094221-82957416.pth +- Name: fcn_r101b-d8_512x1024_80k_cityscapes + In Collection: fcn + Metadata: + backbone: R-101b-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 366.3 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 9.1 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.37 + mIoU(ms+flip): 78.77 + Config: configs/fcn/fcn_r101b-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_512x1024_80k_cityscapes/fcn_r101b-d8_512x1024_80k_cityscapes_20201226_160213-4543858f.pth +- Name: fcn_r18b-d8_769x769_80k_cityscapes + In Collection: fcn + Metadata: + backbone: R-18b-D8 + crop size: (769,769) + lr schd: 80000 + inference time (ms/im): + - value: 149.25 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 1.7 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 69.66 + mIoU(ms+flip): 72.07 + Config: configs/fcn/fcn_r18b-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_769x769_80k_cityscapes/fcn_r18b-d8_769x769_80k_cityscapes_20201226_004430-32d504e5.pth +- Name: fcn_r50b-d8_769x769_80k_cityscapes + In Collection: fcn + Metadata: + backbone: R-50b-D8 + crop size: (769,769) + lr schd: 80000 + inference time (ms/im): + - value: 549.45 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 6.3 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 73.83 + mIoU(ms+flip): 76.6 + Config: configs/fcn/fcn_r50b-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_769x769_80k_cityscapes/fcn_r50b-d8_769x769_80k_cityscapes_20201225_094223-94552d38.pth +- Name: fcn_r101b-d8_769x769_80k_cityscapes + In Collection: fcn + Metadata: + backbone: R-101b-D8 + crop size: (769,769) + lr schd: 80000 + inference time (ms/im): + - value: 869.57 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 10.3 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.02 + mIoU(ms+flip): 78.67 + Config: configs/fcn/fcn_r101b-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_769x769_80k_cityscapes/fcn_r101b-d8_769x769_80k_cityscapes_20201226_170012-82be37e2.pth +- Name: fcn_d6_r50-d16_512x1024_40k_cityscapes + In Collection: fcn + Metadata: + backbone: R-50-D16 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 97.85 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 3.4 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.06 + mIoU(ms+flip): 78.85 + Config: configs/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes/fcn_d6_r50-d16_512x1024_40k_cityscapes-98d5d1bc.pth +- Name: fcn_d6_r50-d16_512x1024_80k_cityscapes + In Collection: fcn + Metadata: + backbone: R-50-D16 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 96.62 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.27 + mIoU(ms+flip): 78.88 + Config: configs/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes/fcn_d6_r50-d16_512x1024_40k_cityscapes-98d5d1bc.pth +- Name: fcn_d6_r50-d16_769x769_40k_cityscapes + In Collection: fcn + Metadata: + backbone: R-50-D16 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 239.81 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 3.7 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.82 + mIoU(ms+flip): 78.22 + Config: configs/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes/fcn_d6_r50-d16_769x769_40k_cityscapes-1aab18ed.pth +- Name: fcn_d6_r50-d16_769x769_80k_cityscapes + In Collection: fcn + Metadata: + backbone: R-50-D16 + crop size: (769,769) + lr schd: 80000 + inference time (ms/im): + - value: 240.96 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.04 + mIoU(ms+flip): 78.4 + Config: configs/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes/fcn_d6_r50-d16_769x769_80k_cityscapes-109d88eb.pth +- Name: fcn_d6_r101-d16_512x1024_40k_cityscapes + In Collection: fcn + Metadata: + backbone: R-101-D16 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 124.38 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 4.5 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.36 + mIoU(ms+flip): 79.18 + Config: configs/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes/fcn_d6_r101-d16_512x1024_40k_cityscapes-9cf2b450.pth +- Name: fcn_d6_r101-d16_512x1024_80k_cityscapes + In Collection: fcn + Metadata: + backbone: R-101-D16 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 121.07 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.46 + mIoU(ms+flip): 80.42 + Config: configs/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes/fcn_d6_r101-d16_512x1024_80k_cityscapes-cb336445.pth +- Name: fcn_d6_r101-d16_769x769_40k_cityscapes + In Collection: fcn + Metadata: + backbone: R-101-D16 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 320.51 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 5.0 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.28 + mIoU(ms+flip): 78.95 + Config: configs/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes/fcn_d6_r101-d16_769x769_40k_cityscapes-60b114e9.pth +- Name: fcn_d6_r101-d16_769x769_80k_cityscapes + In Collection: fcn + Metadata: + backbone: R-101-D16 + crop size: (769,769) + lr schd: 80000 + inference time (ms/im): + - value: 311.53 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.06 + mIoU(ms+flip): 79.58 + Config: configs/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes/fcn_d6_r101-d16_769x769_80k_cityscapes-e33adc4f.pth +- Name: fcn_d6_r50b-d16_512x1024_80k_cityscapes + In Collection: fcn + Metadata: + backbone: R-50b-D16 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 98.43 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 3.2 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.99 + mIoU(ms+flip): 79.03 + Config: configs/fcn/fcn_d6_r50b-d16_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_512x1024_80k_cityscapes/fcn_d6_r50b_d16_512x1024_80k_cityscapes-6a0b62e9.pth +- Name: fcn_d6_r50b-d16_769x769_80k_cityscapes + In Collection: fcn + Metadata: + backbone: R-50b-D16 + crop size: (769,769) + lr schd: 80000 + inference time (ms/im): + - value: 239.81 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 3.6 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.86 + mIoU(ms+flip): 78.52 + Config: configs/fcn/fcn_d6_r50b-d16_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50b_d16_769x769_80k_cityscapes/fcn_d6_r50b_d16_769x769_80k_cityscapes-d665f231.pth +- Name: fcn_d6_r101b-d16_512x1024_80k_cityscapes + In Collection: fcn + Metadata: + backbone: R-101b-D16 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 118.2 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 4.3 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.72 + mIoU(ms+flip): 79.53 + Config: configs/fcn/fcn_d6_r101b-d16_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_512x1024_80k_cityscapes/fcn_d6_r101b_d16_512x1024_80k_cityscapes-3f2eb5b4.pth +- Name: fcn_d6_r101b-d16_769x769_80k_cityscapes + In Collection: fcn + Metadata: + backbone: R-101b-D16 + crop size: (769,769) + lr schd: 80000 + inference time (ms/im): + - value: 301.2 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 4.8 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.34 + mIoU(ms+flip): 78.91 + Config: configs/fcn/fcn_d6_r101b-d16_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101b_d16_769x769_80k_cityscapes/fcn_d6_r101b_d16_769x769_80k_cityscapes-c4d8bfbc.pth +- Name: fcn_r50-d8_512x512_80k_ade20k + In Collection: fcn + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 42.57 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 8.5 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 35.94 + mIoU(ms+flip): 37.94 + Config: configs/fcn/fcn_r50-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_80k_ade20k/fcn_r50-d8_512x512_80k_ade20k_20200614_144016-f8ac5082.pth +- Name: fcn_r101-d8_512x512_80k_ade20k + In Collection: fcn + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 67.66 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 12.0 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 39.61 + mIoU(ms+flip): 40.83 + Config: configs/fcn/fcn_r101-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_80k_ade20k/fcn_r101-d8_512x512_80k_ade20k_20200615_014143-bc1809f7.pth +- Name: fcn_r50-d8_512x512_160k_ade20k + In Collection: fcn + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 36.1 + mIoU(ms+flip): 38.08 + Config: configs/fcn/fcn_r50-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_160k_ade20k/fcn_r50-d8_512x512_160k_ade20k_20200615_100713-4edbc3b4.pth +- Name: fcn_r101-d8_512x512_160k_ade20k + In Collection: fcn + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 39.91 + mIoU(ms+flip): 41.4 + Config: configs/fcn/fcn_r101-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_160k_ade20k/fcn_r101-d8_512x512_160k_ade20k_20200615_105816-fd192bd5.pth +- Name: fcn_r50-d8_512x512_20k_voc12aug + In Collection: fcn + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 42.96 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 5.7 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 67.08 + mIoU(ms+flip): 69.94 + Config: configs/fcn/fcn_r50-d8_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_20k_voc12aug/fcn_r50-d8_512x512_20k_voc12aug_20200617_010715-52dc5306.pth +- Name: fcn_r101-d8_512x512_20k_voc12aug + In Collection: fcn + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 67.52 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 9.2 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 71.16 + mIoU(ms+flip): 73.57 + Config: configs/fcn/fcn_r101-d8_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_20k_voc12aug/fcn_r101-d8_512x512_20k_voc12aug_20200617_010842-0bb4e798.pth +- Name: fcn_r50-d8_512x512_40k_voc12aug + In Collection: fcn + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 66.97 + mIoU(ms+flip): 69.04 + Config: configs/fcn/fcn_r50-d8_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_40k_voc12aug/fcn_r50-d8_512x512_40k_voc12aug_20200613_161222-5e2dbf40.pth +- Name: fcn_r101-d8_512x512_40k_voc12aug + In Collection: fcn + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 69.91 + mIoU(ms+flip): 72.38 + Config: configs/fcn/fcn_r101-d8_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_40k_voc12aug/fcn_r101-d8_512x512_40k_voc12aug_20200613_161240-4c8bcefd.pth +- Name: fcn_r101-d8_480x480_40k_pascal_context + In Collection: fcn + Metadata: + backbone: R-101-D8 + crop size: (480,480) + lr schd: 40000 + inference time (ms/im): + - value: 100.7 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (480,480) + Results: + Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 44.43 + mIoU(ms+flip): 45.63 + Config: configs/fcn/fcn_r101-d8_480x480_40k_pascal_context.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context-20210421_154757-b5e97937.pth +- Name: fcn_r101-d8_480x480_80k_pascal_context + In Collection: fcn + Metadata: + backbone: R-101-D8 + crop size: (480,480) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 44.13 + mIoU(ms+flip): 45.26 + Config: configs/fcn/fcn_r101-d8_480x480_80k_pascal_context.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context-20210421_163310-4711813f.pth +- Name: fcn_r101-d8_480x480_40k_pascal_context_59 + In Collection: fcn + Metadata: + backbone: R-101-D8 + crop size: (480,480) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal Context 59 + Metrics: + mIoU: 48.42 + mIoU(ms+flip): 50.4 + Config: configs/fcn/fcn_r101-d8_480x480_40k_pascal_context_59.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context_59/fcn_r101-d8_480x480_40k_pascal_context_59_20210415_230724-8cf83682.pth +- Name: fcn_r101-d8_480x480_80k_pascal_context_59 + In Collection: fcn + Metadata: + backbone: R-101-D8 + crop size: (480,480) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Pascal Context 59 + Metrics: + mIoU: 49.35 + mIoU(ms+flip): 51.38 + Config: configs/fcn/fcn_r101-d8_480x480_80k_pascal_context_59.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context_59/fcn_r101-d8_480x480_80k_pascal_context_59_20210416_110804-9a6f2c94.pth diff --git a/configs/fcn/metafile.yml b/configs/fcn/metafile.yml deleted file mode 100644 index 530de45559..0000000000 --- a/configs/fcn/metafile.yml +++ /dev/null @@ -1,699 +0,0 @@ -Collections: - - Name: FCN - Metadata: - Training Data: - - Cityscapes - - Pascal Context - - Pascal VOC 2012 + Aug - - ADE20K - - Name: FCN-D6 - Metadata: - Training Data: - - Cityscapes - - Pascal Context - - Pascal VOC 2012 + Aug - - ADE20K - -Models: - - - Name: fcn_r50-d8_512x1024_40k_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 239.81 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 72.25 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_40k_cityscapes/fcn_r50-d8_512x1024_40k_cityscapes_20200604_192608-efe53f0d.pth - Config: configs/fcn/fcn_r50-d8_512x1024_40k_cityscapes.py - - - - - Name: fcn_r101-d8_512x1024_40k_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 375.94 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 75.45 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_40k_cityscapes/fcn_r101-d8_512x1024_40k_cityscapes_20200604_181852-a883d3a1.pth - Config: configs/fcn/fcn_r101-d8_512x1024_40k_cityscapes.py - - - - - Name: fcn_r50-d8_769x769_40k_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 555.56 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 71.47 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_40k_cityscapes/fcn_r50-d8_769x769_40k_cityscapes_20200606_113104-977b5d02.pth - Config: configs/fcn/fcn_r50-d8_769x769_40k_cityscapes.py - - - - - Name: fcn_r101-d8_769x769_40k_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 840.34 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 73.93 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_40k_cityscapes/fcn_r101-d8_769x769_40k_cityscapes_20200606_113208-7d4ab69c.pth - Config: configs/fcn/fcn_r101-d8_769x769_40k_cityscapes.py - - - - - Name: fcn_r18-d8_512x1024_80k_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 68.26 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 71.11 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_512x1024_80k_cityscapes/fcn_r18-d8_512x1024_80k_cityscapes_20201225_021327-6c50f8b4.pth - Config: configs/fcn/fcn_r18-d8_512x1024_80k_cityscapes.py - - - - - Name: fcn_r50-d8_512x1024_80k_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 239.81 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 73.61 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_80k_cityscapes/fcn_r50-d8_512x1024_80k_cityscapes_20200606_113019-03aa804d.pth - Config: configs/fcn/fcn_r50-d8_512x1024_80k_cityscapes.py - - - - - Name: fcn_r101-d8_512x1024_80k_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 375.94 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 75.13 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_80k_cityscapes/fcn_r101-d8_512x1024_80k_cityscapes_20200606_113038-3fb937eb.pth - Config: configs/fcn/fcn_r101-d8_512x1024_80k_cityscapes.py - - - - - Name: fcn_r18-d8_769x769_80k_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 156.25 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 70.80 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_769x769_80k_cityscapes/fcn_r18-d8_769x769_80k_cityscapes_20201225_021451-9739d1b8.pth - Config: configs/fcn/fcn_r18-d8_769x769_80k_cityscapes.py - - - - - Name: fcn_r50-d8_769x769_80k_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 555.56 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 72.64 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_80k_cityscapes/fcn_r50-d8_769x769_80k_cityscapes_20200606_195749-f5caeabc.pth - Config: configs/fcn/fcn_r50-d8_769x769_80k_cityscapes.py - - - - - Name: fcn_r101-d8_769x769_80k_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 840.34 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 75.52 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_80k_cityscapes/fcn_r101-d8_769x769_80k_cityscapes_20200606_214354-45cbac68.pth - Config: configs/fcn/fcn_r101-d8_769x769_80k_cityscapes.py - - - - - Name: fcn_r18b-d8_512x1024_80k_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 59.74 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 70.24 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_512x1024_80k_cityscapes/fcn_r18b-d8_512x1024_80k_cityscapes_20201225_230143-92c0f445.pth - Config: configs/fcn/fcn_r18b-d8_512x1024_80k_cityscapes.py - - - - - Name: fcn_r50b-d8_512x1024_80k_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 238.1 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 75.65 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_512x1024_80k_cityscapes/fcn_r50b-d8_512x1024_80k_cityscapes_20201225_094221-82957416.pth - Config: configs/fcn/fcn_r50b-d8_512x1024_80k_cityscapes.py - - - - - Name: fcn_r101b-d8_512x1024_80k_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 366.3 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.37 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_512x1024_80k_cityscapes/fcn_r101b-d8_512x1024_80k_cityscapes_20201226_160213-4543858f.pth - Config: configs/fcn/fcn_r101b-d8_512x1024_80k_cityscapes.py - - - - - Name: fcn_r18b-d8_769x769_80k_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 149.25 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 69.66 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_769x769_80k_cityscapes/fcn_r18b-d8_769x769_80k_cityscapes_20201226_004430-32d504e5.pth - Config: configs/fcn/fcn_r18b-d8_769x769_80k_cityscapes.py - - - - - Name: fcn_r50b-d8_769x769_80k_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 549.45 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 73.83 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_769x769_80k_cityscapes/fcn_r50b-d8_769x769_80k_cityscapes_20201225_094223-94552d38.pth - Config: configs/fcn/fcn_r50b-d8_769x769_80k_cityscapes.py - - - - - Name: fcn_r101b-d8_769x769_80k_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 869.57 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.02 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_769x769_80k_cityscapes/fcn_r101b-d8_769x769_80k_cityscapes_20201226_170012-82be37e2.pth - Config: configs/fcn/fcn_r101b-d8_769x769_80k_cityscapes.py - - - - - Name: fcn_d6_r50-d16_512x1024_40k_cityscapes - In Collection: FCN-D6 - Metadata: - inference time (ms/im): - - value: 97.85 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.06 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_40k_cityscapes/fcn_d6_r50-d16_512x1024_40k_cityscapes-98d5d1bc.pth - Config: configs/fcn-d6/fcn_d6_r50-d16_512x1024_40k_cityscapes.py - - - - - Name: fcn_d6_r50-d16_512x1024_80k_cityscapes - In Collection: FCN-D6 - Metadata: - inference time (ms/im): - - value: 96.62 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.27 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_512x1024_80k_cityscapes/fcn_d6_r50-d16_512x1024_40k_cityscapes-98d5d1bc.pth - Config: configs/fcn-d6/fcn_d6_r50-d16_512x1024_80k_cityscapes.py - - - - - Name: fcn_d6_r50-d16_769x769_40k_cityscapes - In Collection: FCN-D6 - Metadata: - inference time (ms/im): - - value: 239.81 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 76.82 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_40k_cityscapes/fcn_d6_r50-d16_769x769_40k_cityscapes-1aab18ed.pth - Config: configs/fcn-d6/fcn_d6_r50-d16_769x769_40k_cityscapes.py - - - - - Name: fcn_d6_r50-d16_769x769_80k_cityscapes - In Collection: FCN-D6 - Metadata: - inference time (ms/im): - - value: 240.96 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.04 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r50-d16_769x769_80k_cityscapes/fcn_d6_r50-d16_769x769_80k_cityscapes-109d88eb.pth - Config: configs/fcn-d6/fcn_d6_r50-d16_769x769_80k_cityscapes.py - - - - - Name: fcn_d6_r101-d16_512x1024_40k_cityscapes - In Collection: FCN-D6 - Metadata: - inference time (ms/im): - - value: 124.38 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.36 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_40k_cityscapes/fcn_d6_r101-d16_512x1024_40k_cityscapes-9cf2b450.pth - Config: configs/fcn-d6/fcn_d6_r101-d16_512x1024_40k_cityscapes.py - - - - - Name: fcn_d6_r101-d16_512x1024_80k_cityscapes - In Collection: FCN-D6 - Metadata: - inference time (ms/im): - - value: 121.07 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.46 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_512x1024_80k_cityscapes/fcn_d6_r101-d16_512x1024_80k_cityscapes-cb336445.pth - Config: configs/fcn-d6/fcn_d6_r101-d16_512x1024_80k_cityscapes.py - - - - - Name: fcn_d6_r101-d16_769x769_40k_cityscapes - In Collection: FCN-D6 - Metadata: - inference time (ms/im): - - value: 320.51 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.28 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_40k_cityscapes/fcn_d6_r101-d16_769x769_40k_cityscapes-60b114e9.pth - Config: configs/fcn-d6/fcn_d6_r101-d16_769x769_40k_cityscapes.py - - - - - Name: fcn_d6_r101-d16_769x769_80k_cityscapes - In Collection: FCN-D6 - Metadata: - inference time (ms/im): - - value: 311.53 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.06 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_d6_r101-d16_769x769_80k_cityscapes/fcn_d6_r101-d16_769x769_80k_cityscapes-e33adc4f.pth - Config: configs/fcn-d6/fcn_d6_r101-d16_769x769_80k_cityscapes.py - - - - - Name: fcn_r50-d8_512x512_80k_ade20k - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 42.57 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 35.94 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_80k_ade20k/fcn_r50-d8_512x512_80k_ade20k_20200614_144016-f8ac5082.pth - Config: configs/fcn/fcn_r50-d8_512x512_80k_ade20k.py - - - - - Name: fcn_r101-d8_512x512_80k_ade20k - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 67.66 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 39.61 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_80k_ade20k/fcn_r101-d8_512x512_80k_ade20k_20200615_014143-bc1809f7.pth - Config: configs/fcn/fcn_r101-d8_512x512_80k_ade20k.py - - - - - Name: fcn_r50-d8_512x512_160k_ade20k - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 42.57 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 36.10 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_160k_ade20k/fcn_r50-d8_512x512_160k_ade20k_20200615_100713-4edbc3b4.pth - Config: configs/fcn/fcn_r50-d8_512x512_160k_ade20k.py - - - - - Name: fcn_r101-d8_512x512_160k_ade20k - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 67.66 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 39.91 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_160k_ade20k/fcn_r101-d8_512x512_160k_ade20k_20200615_105816-fd192bd5.pth - Config: configs/fcn/fcn_r101-d8_512x512_160k_ade20k.py - - - - - Name: fcn_r50-d8_512x512_20k_voc12aug - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 42.96 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 67.08 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_20k_voc12aug/fcn_r50-d8_512x512_20k_voc12aug_20200617_010715-52dc5306.pth - Config: configs/fcn/fcn_r50-d8_512x512_20k_voc12aug.py - - - - - Name: fcn_r101-d8_512x512_20k_voc12aug - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 67.52 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 71.16 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_20k_voc12aug/fcn_r101-d8_512x512_20k_voc12aug_20200617_010842-0bb4e798.pth - Config: configs/fcn/fcn_r101-d8_512x512_20k_voc12aug.py - - - - - Name: fcn_r50-d8_512x512_40k_voc12aug - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 42.96 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 66.97 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_40k_voc12aug/fcn_r50-d8_512x512_40k_voc12aug_20200613_161222-5e2dbf40.pth - Config: configs/fcn/fcn_r50-d8_512x512_40k_voc12aug.py - - - - - Name: fcn_r101-d8_512x512_40k_voc12aug - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 67.52 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 69.91 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_40k_voc12aug/fcn_r101-d8_512x512_40k_voc12aug_20200613_161240-4c8bcefd.pth - Config: configs/fcn/fcn_r101-d8_512x512_40k_voc12aug.py - - - - - Name: fcn_r101-d8_480x480_40k_pascal_context - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 100.7 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal Context - Metrics: - mIoU: 44.43 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context-20210421_154757-b5e97937.pth - Config: configs/fcn/fcn_r101-d8_480x480_40k_pascal_context.py - - - - - Name: fcn_r101-d8_480x480_80k_pascal_context - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 100.7 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal Context - Metrics: - mIoU: 44.13 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context-20210421_163310-4711813f.pth - Config: configs/fcn/fcn_r101-d8_480x480_80k_pascal_context.py - - - - - Name: fcn_r101-d8_480x480_40k_pascal_context_59 - In Collection: FCN - Metadata: - inference time (ms/im): - - value: None - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal Context - Metrics: - mIoU: 48.42 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context_59/fcn_r101-d8_480x480_40k_pascal_context_59_20210415_230724-8cf83682.pth - Config: configs/fcn/fcn_r101-d8_480x480_40k_pascal_context_59.py - - - - - Name: fcn_r101-d8_480x480_80k_pascal_context_59 - In Collection: FCN - Metadata: - inference time (ms/im): - - value: None - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal Context - Metrics: - mIoU: 49.35 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context_59/fcn_r101-d8_480x480_80k_pascal_context_59_20210416_110804-9a6f2c94.pth - Config: configs/fcn/fcn_r101-d8_480x480_80k_pascal_context_59.py diff --git a/configs/fp16/fp16.yml b/configs/fp16/fp16.yml new file mode 100644 index 0000000000..18f2104fa8 --- /dev/null +++ b/configs/fp16/fp16.yml @@ -0,0 +1,90 @@ +Collections: +- Name: fp16 + Metadata: + Training Data: + - Cityscapes +Models: +- Name: fcn_r101-d8_512x1024_80k_fp16_cityscapes + In Collection: fp16 + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 115.74 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 5.37 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.8 + Config: configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes-50245227.pth +- Name: pspnet_r101-d8_512x1024_80k_fp16_cityscapes + In Collection: fp16 + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 114.03 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 5.34 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.46 + Config: configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes-ade37931.pth +- Name: deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes + In Collection: fp16 + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 259.07 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 5.75 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.48 + Config: configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes-bc86dc84.pth +- Name: deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes + In Collection: fp16 + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 127.06 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 6.35 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.46 + Config: configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes-cc58bc8d.pth diff --git a/configs/fp16/metafile.yml b/configs/fp16/metafile.yml deleted file mode 100644 index 841429b361..0000000000 --- a/configs/fp16/metafile.yml +++ /dev/null @@ -1,76 +0,0 @@ - -Models: - - - Name: fcn_r101-d8_512x1024_80k_fp16_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 115.74 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 76.80 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes-50245227.pth - Config: configs/fcn/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py - - - - - Name: pspnet_r101-d8_512x1024_80k_fp16_cityscapes - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 114.03 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.46 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes-ade37931.pth - Config: configs/pspnet/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py - - - - - Name: deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 259.07 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 80.48 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes-bc86dc84.pth - Config: configs/deeplabv3/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py - - - - - Name: deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 127.06 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 80.46 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes-cc58bc8d.pth - Config: configs/deeplabv3+/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py diff --git a/configs/gcnet/gcnet.yml b/configs/gcnet/gcnet.yml new file mode 100644 index 0000000000..61436a2f73 --- /dev/null +++ b/configs/gcnet/gcnet.yml @@ -0,0 +1,296 @@ +Collections: +- Name: gcnet + Metadata: + Training Data: + - Cityscapes + - ADE20K + - Pascal VOC 2012 + Aug +Models: +- Name: gcnet_r50-d8_512x1024_40k_cityscapes + In Collection: gcnet + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 254.45 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 5.8 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.69 + mIoU(ms+flip): 78.56 + Config: configs/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes/gcnet_r50-d8_512x1024_40k_cityscapes_20200618_074436-4b0fd17b.pth +- Name: gcnet_r101-d8_512x1024_40k_cityscapes + In Collection: gcnet + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 383.14 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 9.2 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.28 + mIoU(ms+flip): 79.34 + Config: configs/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes/gcnet_r101-d8_512x1024_40k_cityscapes_20200618_074436-5e62567f.pth +- Name: gcnet_r50-d8_769x769_40k_cityscapes + In Collection: gcnet + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 598.8 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 6.5 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.12 + mIoU(ms+flip): 80.09 + Config: configs/gcnet/gcnet_r50-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_40k_cityscapes/gcnet_r50-d8_769x769_40k_cityscapes_20200618_182814-a26f4471.pth +- Name: gcnet_r101-d8_769x769_40k_cityscapes + In Collection: gcnet + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 884.96 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 10.5 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.95 + mIoU(ms+flip): 80.71 + Config: configs/gcnet/gcnet_r101-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_40k_cityscapes/gcnet_r101-d8_769x769_40k_cityscapes_20200619_092550-ca4f0a84.pth +- Name: gcnet_r50-d8_512x1024_80k_cityscapes + In Collection: gcnet + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.48 + mIoU(ms+flip): 80.01 + Config: configs/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes/gcnet_r50-d8_512x1024_80k_cityscapes_20200618_074450-ef8f069b.pth +- Name: gcnet_r101-d8_512x1024_80k_cityscapes + In Collection: gcnet + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.03 + mIoU(ms+flip): 79.84 + Config: configs/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes/gcnet_r101-d8_512x1024_80k_cityscapes_20200618_074450-778ebf69.pth +- Name: gcnet_r50-d8_769x769_80k_cityscapes + In Collection: gcnet + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.68 + mIoU(ms+flip): 80.66 + Config: configs/gcnet/gcnet_r50-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_80k_cityscapes/gcnet_r50-d8_769x769_80k_cityscapes_20200619_092516-4839565b.pth +- Name: gcnet_r101-d8_769x769_80k_cityscapes + In Collection: gcnet + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.18 + mIoU(ms+flip): 80.71 + Config: configs/gcnet/gcnet_r101-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_80k_cityscapes/gcnet_r101-d8_769x769_80k_cityscapes_20200619_092628-8e043423.pth +- Name: gcnet_r50-d8_512x512_80k_ade20k + In Collection: gcnet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 42.77 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 8.5 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 41.47 + mIoU(ms+flip): 42.85 + Config: configs/gcnet/gcnet_r50-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_80k_ade20k/gcnet_r50-d8_512x512_80k_ade20k_20200614_185146-91a6da41.pth +- Name: gcnet_r101-d8_512x512_80k_ade20k + In Collection: gcnet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 65.79 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 12.0 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.82 + mIoU(ms+flip): 44.54 + Config: configs/gcnet/gcnet_r101-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_80k_ade20k/gcnet_r101-d8_512x512_80k_ade20k_20200615_020811-c3fcb6dd.pth +- Name: gcnet_r50-d8_512x512_160k_ade20k + In Collection: gcnet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.37 + mIoU(ms+flip): 43.52 + Config: configs/gcnet/gcnet_r50-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_160k_ade20k/gcnet_r50-d8_512x512_160k_ade20k_20200615_224122-d95f3e1f.pth +- Name: gcnet_r101-d8_512x512_160k_ade20k + In Collection: gcnet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.69 + mIoU(ms+flip): 45.21 + Config: configs/gcnet/gcnet_r101-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_160k_ade20k/gcnet_r101-d8_512x512_160k_ade20k_20200615_225406-615528d7.pth +- Name: gcnet_r50-d8_512x512_20k_voc12aug + In Collection: gcnet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 42.83 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 5.8 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.42 + mIoU(ms+flip): 77.51 + Config: configs/gcnet/gcnet_r50-d8_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_20k_voc12aug/gcnet_r50-d8_512x512_20k_voc12aug_20200617_165701-3cbfdab1.pth +- Name: gcnet_r101-d8_512x512_20k_voc12aug + In Collection: gcnet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 67.57 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 9.2 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.41 + mIoU(ms+flip): 78.56 + Config: configs/gcnet/gcnet_r101-d8_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_20k_voc12aug/gcnet_r101-d8_512x512_20k_voc12aug_20200617_165713-6c720aa9.pth +- Name: gcnet_r50-d8_512x512_40k_voc12aug + In Collection: gcnet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.24 + mIoU(ms+flip): 77.63 + Config: configs/gcnet/gcnet_r50-d8_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_40k_voc12aug/gcnet_r50-d8_512x512_40k_voc12aug_20200613_195105-9797336d.pth +- Name: gcnet_r101-d8_512x512_40k_voc12aug + In Collection: gcnet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.84 + mIoU(ms+flip): 78.59 + Config: configs/gcnet/gcnet_r101-d8_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_40k_voc12aug/gcnet_r101-d8_512x512_40k_voc12aug_20200613_185806-1e38208d.pth diff --git a/configs/gcnet/metafile.yml b/configs/gcnet/metafile.yml deleted file mode 100644 index c1ddc1c0b2..0000000000 --- a/configs/gcnet/metafile.yml +++ /dev/null @@ -1,311 +0,0 @@ -Collections: - - Name: GCNet - Metadata: - Training Data: - - Cityscapes - - Pascal VOC 2012 + Aug - - ADE20K - -Models: - - - Name: gcnet_r50-d8_512x1024_40k_cityscapes - In Collection: GCNet - Metadata: - inference time (ms/im): - - value: 254.45 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.69 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes/gcnet_r50-d8_512x1024_40k_cityscapes_20200618_074436-4b0fd17b.pth - Config: configs/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes.py - - - - - Name: gcnet_r101-d8_512x1024_40k_cityscapes - In Collection: GCNet - Metadata: - inference time (ms/im): - - value: 383.14 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.28 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes/gcnet_r101-d8_512x1024_40k_cityscapes_20200618_074436-5e62567f.pth - Config: configs/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes.py - - - - - Name: gcnet_r50-d8_769x769_40k_cityscapes - In Collection: GCNet - Metadata: - inference time (ms/im): - - value: 598.8 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.12 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_40k_cityscapes/gcnet_r50-d8_769x769_40k_cityscapes_20200618_182814-a26f4471.pth - Config: configs/gcnet/gcnet_r50-d8_769x769_40k_cityscapes.py - - - - - Name: gcnet_r101-d8_769x769_40k_cityscapes - In Collection: GCNet - Metadata: - inference time (ms/im): - - value: 884.96 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.95 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_40k_cityscapes/gcnet_r101-d8_769x769_40k_cityscapes_20200619_092550-ca4f0a84.pth - Config: configs/gcnet/gcnet_r101-d8_769x769_40k_cityscapes.py - - - - - Name: gcnet_r50-d8_512x1024_80k_cityscapes - In Collection: GCNet - Metadata: - inference time (ms/im): - - value: 254.45 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.48 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes/gcnet_r50-d8_512x1024_80k_cityscapes_20200618_074450-ef8f069b.pth - Config: configs/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes.py - - - - - Name: gcnet_r101-d8_512x1024_80k_cityscapes - In Collection: GCNet - Metadata: - inference time (ms/im): - - value: 383.14 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.03 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes/gcnet_r101-d8_512x1024_80k_cityscapes_20200618_074450-778ebf69.pth - Config: configs/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes.py - - - - - Name: gcnet_r50-d8_769x769_80k_cityscapes - In Collection: GCNet - Metadata: - inference time (ms/im): - - value: 598.8 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.68 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_80k_cityscapes/gcnet_r50-d8_769x769_80k_cityscapes_20200619_092516-4839565b.pth - Config: configs/gcnet/gcnet_r50-d8_769x769_80k_cityscapes.py - - - - - Name: gcnet_r101-d8_769x769_80k_cityscapes - In Collection: GCNet - Metadata: - inference time (ms/im): - - value: 884.96 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.18 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_80k_cityscapes/gcnet_r101-d8_769x769_80k_cityscapes_20200619_092628-8e043423.pth - Config: configs/gcnet/gcnet_r101-d8_769x769_80k_cityscapes.py - - - - - Name: gcnet_r50-d8_512x512_80k_ade20k - In Collection: GCNet - Metadata: - inference time (ms/im): - - value: 42.77 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 41.47 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_80k_ade20k/gcnet_r50-d8_512x512_80k_ade20k_20200614_185146-91a6da41.pth - Config: configs/gcnet/gcnet_r50-d8_512x512_80k_ade20k.py - - - - - Name: gcnet_r101-d8_512x512_80k_ade20k - In Collection: GCNet - Metadata: - inference time (ms/im): - - value: 65.79 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 42.82 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_80k_ade20k/gcnet_r101-d8_512x512_80k_ade20k_20200615_020811-c3fcb6dd.pth - Config: configs/gcnet/gcnet_r101-d8_512x512_80k_ade20k.py - - - - - Name: gcnet_r50-d8_512x512_160k_ade20k - In Collection: GCNet - Metadata: - inference time (ms/im): - - value: 42.77 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 42.37 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_160k_ade20k/gcnet_r50-d8_512x512_160k_ade20k_20200615_224122-d95f3e1f.pth - Config: configs/gcnet/gcnet_r50-d8_512x512_160k_ade20k.py - - - - - Name: gcnet_r101-d8_512x512_160k_ade20k - In Collection: GCNet - Metadata: - inference time (ms/im): - - value: 65.79 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 43.69 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_160k_ade20k/gcnet_r101-d8_512x512_160k_ade20k_20200615_225406-615528d7.pth - Config: configs/gcnet/gcnet_r101-d8_512x512_160k_ade20k.py - - - - - Name: gcnet_r50-d8_512x512_20k_voc12aug - In Collection: GCNet - Metadata: - inference time (ms/im): - - value: 42.83 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 76.42 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_20k_voc12aug/gcnet_r50-d8_512x512_20k_voc12aug_20200617_165701-3cbfdab1.pth - Config: configs/gcnet/gcnet_r50-d8_512x512_20k_voc12aug.py - - - - - Name: gcnet_r101-d8_512x512_20k_voc12aug - In Collection: GCNet - Metadata: - inference time (ms/im): - - value: 67.57 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 77.41 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_20k_voc12aug/gcnet_r101-d8_512x512_20k_voc12aug_20200617_165713-6c720aa9.pth - Config: configs/gcnet/gcnet_r101-d8_512x512_20k_voc12aug.py - - - - - Name: gcnet_r50-d8_512x512_40k_voc12aug - In Collection: GCNet - Metadata: - inference time (ms/im): - - value: 42.83 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 76.24 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_40k_voc12aug/gcnet_r50-d8_512x512_40k_voc12aug_20200613_195105-9797336d.pth - Config: configs/gcnet/gcnet_r50-d8_512x512_40k_voc12aug.py - - - - - Name: gcnet_r101-d8_512x512_40k_voc12aug - In Collection: GCNet - Metadata: - inference time (ms/im): - - value: 67.57 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 77.84 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_40k_voc12aug/gcnet_r101-d8_512x512_40k_voc12aug_20200613_185806-1e38208d.pth - Config: configs/gcnet/gcnet_r101-d8_512x512_40k_voc12aug.py diff --git a/configs/hrnet/hrnet.yml b/configs/hrnet/hrnet.yml new file mode 100644 index 0000000000..3686f6913c --- /dev/null +++ b/configs/hrnet/hrnet.yml @@ -0,0 +1,440 @@ +Collections: +- Name: hrnet + Metadata: + Training Data: + - Cityscapes + - ADE20K + - Pascal VOC 2012 + Aug + - Pascal Context + - Pascal Context 59 +Models: +- Name: fcn_hr18s_512x1024_40k_cityscapes + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W18-Small + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 42.12 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 1.7 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 73.86 + mIoU(ms+flip): 75.91 + Config: configs/hrnet/fcn_hr18s_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_40k_cityscapes/fcn_hr18s_512x1024_40k_cityscapes_20200601_014216-93db27d0.pth +- Name: fcn_hr18_512x1024_40k_cityscapes + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W18 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 77.1 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 2.9 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.19 + mIoU(ms+flip): 78.92 + Config: configs/hrnet/fcn_hr18_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_40k_cityscapes/fcn_hr18_512x1024_40k_cityscapes_20200601_014216-f196fb4e.pth +- Name: fcn_hr48_512x1024_40k_cityscapes + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W48 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 155.76 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 6.2 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.48 + mIoU(ms+flip): 79.69 + Config: configs/hrnet/fcn_hr48_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_40k_cityscapes/fcn_hr48_512x1024_40k_cityscapes_20200601_014240-a989b146.pth +- Name: fcn_hr18s_512x1024_80k_cityscapes + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W18-Small + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 75.31 + mIoU(ms+flip): 77.48 + Config: configs/hrnet/fcn_hr18s_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_80k_cityscapes/fcn_hr18s_512x1024_80k_cityscapes_20200601_202700-1462b75d.pth +- Name: fcn_hr18_512x1024_80k_cityscapes + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W18 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.65 + mIoU(ms+flip): 80.35 + Config: configs/hrnet/fcn_hr18_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_80k_cityscapes/fcn_hr18_512x1024_80k_cityscapes_20200601_223255-4e7b345e.pth +- Name: fcn_hr48_512x1024_80k_cityscapes + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W48 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.93 + mIoU(ms+flip): 80.72 + Config: configs/hrnet/fcn_hr48_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_80k_cityscapes/fcn_hr48_512x1024_80k_cityscapes_20200601_202606-58ea95d6.pth +- Name: fcn_hr18s_512x1024_160k_cityscapes + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W18-Small + crop size: (512,1024) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.31 + mIoU(ms+flip): 78.31 + Config: configs/hrnet/fcn_hr18s_512x1024_160k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_160k_cityscapes/fcn_hr18s_512x1024_160k_cityscapes_20200602_190901-4a0797ea.pth +- Name: fcn_hr18_512x1024_160k_cityscapes + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W18 + crop size: (512,1024) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.8 + mIoU(ms+flip): 80.74 + Config: configs/hrnet/fcn_hr18_512x1024_160k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_160k_cityscapes/fcn_hr18_512x1024_160k_cityscapes_20200602_190822-221e4a4f.pth +- Name: fcn_hr48_512x1024_160k_cityscapes + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W48 + crop size: (512,1024) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.65 + mIoU(ms+flip): 81.92 + Config: configs/hrnet/fcn_hr48_512x1024_160k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_160k_cityscapes/fcn_hr48_512x1024_160k_cityscapes_20200602_190946-59b7973e.pth +- Name: fcn_hr18s_512x512_80k_ade20k + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W18-Small + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 25.87 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 3.8 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 31.38 + mIoU(ms+flip): 32.45 + Config: configs/hrnet/fcn_hr18s_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_80k_ade20k/fcn_hr18s_512x512_80k_ade20k_20200614_144345-77fc814a.pth +- Name: fcn_hr18_512x512_80k_ade20k + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W18 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 44.31 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 4.9 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 35.51 + mIoU(ms+flip): 36.8 + Config: configs/hrnet/fcn_hr18_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_ade20k/fcn_hr18_512x512_80k_ade20k_20200614_185145-66f20cb7.pth +- Name: fcn_hr48_512x512_80k_ade20k + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W48 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 47.1 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 8.2 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 41.9 + mIoU(ms+flip): 43.27 + Config: configs/hrnet/fcn_hr48_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_80k_ade20k/fcn_hr48_512x512_80k_ade20k_20200614_193946-7ba5258d.pth +- Name: fcn_hr18s_512x512_160k_ade20k + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W18-Small + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 33.0 + mIoU(ms+flip): 34.55 + Config: configs/hrnet/fcn_hr18s_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_160k_ade20k/fcn_hr18s_512x512_160k_ade20k_20200614_214413-870f65ac.pth +- Name: fcn_hr18_512x512_160k_ade20k + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W18 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 36.79 + mIoU(ms+flip): 38.58 + Config: configs/hrnet/fcn_hr18_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_160k_ade20k/fcn_hr18_512x512_160k_ade20k_20200614_214426-ca961836.pth +- Name: fcn_hr48_512x512_160k_ade20k + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W48 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.02 + mIoU(ms+flip): 43.86 + Config: configs/hrnet/fcn_hr48_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_160k_ade20k/fcn_hr48_512x512_160k_ade20k_20200614_214407-a52fc02c.pth +- Name: fcn_hr18s_512x512_20k_voc12aug + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W18-Small + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 23.06 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 1.8 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 65.2 + mIoU(ms+flip): 68.55 + Config: configs/hrnet/fcn_hr18s_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_20k_voc12aug/fcn_hr18s_512x512_20k_voc12aug_20200617_224503-56e36088.pth +- Name: fcn_hr18_512x512_20k_voc12aug + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W18 + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 42.59 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 2.9 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 72.3 + mIoU(ms+flip): 74.71 + Config: configs/hrnet/fcn_hr18_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_20k_voc12aug/fcn_hr18_512x512_20k_voc12aug_20200617_224503-488d45f7.pth +- Name: fcn_hr48_512x512_20k_voc12aug + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W48 + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 45.35 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 6.2 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 75.87 + mIoU(ms+flip): 78.58 + Config: configs/hrnet/fcn_hr48_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_20k_voc12aug/fcn_hr48_512x512_20k_voc12aug_20200617_224419-89de05cd.pth +- Name: fcn_hr18s_512x512_40k_voc12aug + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W18-Small + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 66.61 + mIoU(ms+flip): 70.0 + Config: configs/hrnet/fcn_hr18s_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_40k_voc12aug/fcn_hr18s_512x512_40k_voc12aug_20200614_000648-4f8d6e7f.pth +- Name: fcn_hr18_512x512_40k_voc12aug + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W18 + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 72.9 + mIoU(ms+flip): 75.59 + Config: configs/hrnet/fcn_hr18_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_40k_voc12aug/fcn_hr18_512x512_40k_voc12aug_20200613_224401-1b4b76cd.pth +- Name: fcn_hr48_512x512_40k_voc12aug + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W48 + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.24 + mIoU(ms+flip): 78.49 + Config: configs/hrnet/fcn_hr48_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_40k_voc12aug/fcn_hr48_512x512_40k_voc12aug_20200613_222111-1b0f18bc.pth +- Name: fcn_hr48_480x480_40k_pascal_context + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W48 + crop size: (480,480) + lr schd: 40000 + inference time (ms/im): + - value: 112.87 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (480,480) + memory (GB): 6.1 + Results: + Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 45.14 + mIoU(ms+flip): 47.42 + Config: configs/hrnet/fcn_hr48_480x480_40k_pascal_context.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context/fcn_hr48_480x480_40k_pascal_context_20200911_164852-667d00b0.pth +- Name: fcn_hr48_480x480_80k_pascal_context + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W48 + crop size: (480,480) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 45.84 + mIoU(ms+flip): 47.84 + Config: configs/hrnet/fcn_hr48_480x480_80k_pascal_context.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context/fcn_hr48_480x480_80k_pascal_context_20200911_155322-847a6711.pth +- Name: fcn_hr48_480x480_40k_pascal_context_59 + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W48 + crop size: (480,480) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal Context 59 + Metrics: + mIoU: 50.33 + mIoU(ms+flip): 52.83 + Config: configs/hrnet/fcn_hr48_480x480_40k_pascal_context_59.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context_59/fcn_hr48_480x480_40k_pascal_context_59_20210410_122738-b808b8b2.pth +- Name: fcn_hr48_480x480_80k_pascal_context_59 + In Collection: hrnet + Metadata: + backbone: HRNetV2p-W48 + crop size: (480,480) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Pascal Context 59 + Metrics: + mIoU: 51.12 + mIoU(ms+flip): 53.56 + Config: configs/hrnet/fcn_hr48_480x480_80k_pascal_context_59.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context_59/fcn_hr48_480x480_80k_pascal_context_59_20210411_003240-3ae7081e.pth diff --git a/configs/hrnet/metafile.yml b/configs/hrnet/metafile.yml deleted file mode 100644 index b57776bc56..0000000000 --- a/configs/hrnet/metafile.yml +++ /dev/null @@ -1,473 +0,0 @@ -Models: - - Name: fcn_hr18s_512x1024_40k_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 42.12 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 73.86 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_40k_cityscapes/fcn_hr18s_512x1024_40k_cityscapes_20200601_014216-93db27d0.pth - Config: configs/fcn/fcn_hr18s_512x1024_40k_cityscapes.py - - - - - Name: fcn_hr18_512x1024_40k_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 77.1 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.19 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_40k_cityscapes/fcn_hr18_512x1024_40k_cityscapes_20200601_014216-f196fb4e.pth - Config: configs/fcn/fcn_hr18_512x1024_40k_cityscapes.py - - - - - Name: fcn_hr48_512x1024_40k_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 155.76 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.48 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_40k_cityscapes/fcn_hr48_512x1024_40k_cityscapes_20200601_014240-a989b146.pth - Config: configs/fcn/fcn_hr48_512x1024_40k_cityscapes.py - - - - - Name: fcn_hr18s_512x1024_80k_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 42.12 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 75.31 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_80k_cityscapes/fcn_hr18s_512x1024_80k_cityscapes_20200601_202700-1462b75d.pth - Config: configs/fcn/fcn_hr18s_512x1024_80k_cityscapes.py - - - - - Name: fcn_hr18_512x1024_80k_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 77.1 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.65 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_80k_cityscapes/fcn_hr18_512x1024_80k_cityscapes_20200601_223255-4e7b345e.pth - Config: configs/fcn/fcn_hr18_512x1024_80k_cityscapes.py - - - - - Name: fcn_hr48_512x1024_80k_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 155.76 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.93 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_80k_cityscapes/fcn_hr48_512x1024_80k_cityscapes_20200601_202606-58ea95d6.pth - Config: configs/fcn/fcn_hr48_512x1024_80k_cityscapes.py - - - - - Name: fcn_hr18s_512x1024_160k_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 42.12 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 76.31 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_160k_cityscapes/fcn_hr18s_512x1024_160k_cityscapes_20200602_190901-4a0797ea.pth - Config: configs/fcn/fcn_hr18s_512x1024_160k_cityscapes.py - - - - - Name: fcn_hr18_512x1024_160k_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 77.1 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.80 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_160k_cityscapes/fcn_hr18_512x1024_160k_cityscapes_20200602_190822-221e4a4f.pth - Config: configs/fcn/fcn_hr18_512x1024_160k_cityscapes.py - - - - - Name: fcn_hr48_512x1024_160k_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 155.76 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 80.65 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_160k_cityscapes/fcn_hr48_512x1024_160k_cityscapes_20200602_190946-59b7973e.pth - Config: configs/fcn/fcn_hr48_512x1024_160k_cityscapes.py - - - - - Name: fcn_hr18s_512x512_80k_ade20k - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 25.87 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 31.38 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_80k_ade20k/fcn_hr18s_512x512_80k_ade20k_20200614_144345-77fc814a.pth - Config: configs/fcn/fcn_hr18s_512x512_80k_ade20k.py - - - - - Name: fcn_hr18_512x512_80k_ade20k - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 44.31 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 35.51 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_ade20k/fcn_hr18_512x512_80k_ade20k_20200614_185145-66f20cb7.pth - Config: configs/fcn/fcn_hr18_512x512_80k_ade20k.py - - - - - Name: fcn_hr48_512x512_80k_ade20k - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 47.1 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 41.90 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_80k_ade20k/fcn_hr48_512x512_80k_ade20k_20200614_193946-7ba5258d.pth - Config: configs/fcn/fcn_hr48_512x512_80k_ade20k.py - - - - - Name: fcn_hr18s_512x512_160k_ade20k - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 25.87 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 33.00 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_160k_ade20k/fcn_hr18s_512x512_160k_ade20k_20200614_214413-870f65ac.pth - Config: configs/fcn/fcn_hr18s_512x512_160k_ade20k.py - - - - - Name: fcn_hr18_512x512_160k_ade20k - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 44.31 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 36.79 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_160k_ade20k/fcn_hr18_512x512_160k_ade20k_20200614_214426-ca961836.pth - Config: configs/fcn/fcn_hr18_512x512_160k_ade20k.py - - - - - Name: fcn_hr48_512x512_160k_ade20k - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 47.1 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 42.02 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_160k_ade20k/fcn_hr48_512x512_160k_ade20k_20200614_214407-a52fc02c.pth - Config: configs/fcn/fcn_hr48_512x512_160k_ade20k.py - - - - - Name: fcn_hr18s_512x512_20k_voc12aug - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 23.06 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 65.20 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_20k_voc12aug/fcn_hr18s_512x512_20k_voc12aug_20200617_224503-56e36088.pth - Config: configs/fcn/fcn_hr18s_512x512_20k_voc12aug.py - - - - - Name: fcn_hr18_512x512_20k_voc12aug - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 42.59 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 72.30 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_20k_voc12aug/fcn_hr18_512x512_20k_voc12aug_20200617_224503-488d45f7.pth - Config: configs/fcn/fcn_hr18_512x512_20k_voc12aug.py - - - - - Name: fcn_hr48_512x512_20k_voc12aug - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 45.35 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 75.87 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_20k_voc12aug/fcn_hr48_512x512_20k_voc12aug_20200617_224419-89de05cd.pth - Config: configs/fcn/fcn_hr48_512x512_20k_voc12aug.py - - - - - Name: fcn_hr18s_512x512_40k_voc12aug - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 23.06 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 66.61 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_40k_voc12aug/fcn_hr18s_512x512_40k_voc12aug_20200614_000648-4f8d6e7f.pth - Config: configs/fcn/fcn_hr18s_512x512_40k_voc12aug.py - - - - - Name: fcn_hr18_512x512_40k_voc12aug - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 42.59 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 72.90 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_40k_voc12aug/fcn_hr18_512x512_40k_voc12aug_20200613_224401-1b4b76cd.pth - Config: configs/fcn/fcn_hr18_512x512_40k_voc12aug.py - - - - - Name: fcn_hr48_512x512_40k_voc12aug - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 45.35 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 76.24 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_40k_voc12aug/fcn_hr48_512x512_40k_voc12aug_20200613_222111-1b0f18bc.pth - Config: configs/fcn/fcn_hr48_512x512_40k_voc12aug.py - - - - - Name: fcn_hr48_480x480_40k_pascal_context - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 112.87 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal Context - Metrics: - mIoU: 45.14 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context/fcn_hr48_480x480_40k_pascal_context_20200911_164852-667d00b0.pth - Config: configs/fcn/fcn_hr48_480x480_40k_pascal_context.py - - - - - Name: fcn_hr48_480x480_80k_pascal_context - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 112.87 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal Context - Metrics: - mIoU: 45.84 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context/fcn_hr48_480x480_80k_pascal_context_20200911_155322-847a6711.pth - Config: configs/fcn/fcn_hr48_480x480_80k_pascal_context.py - - - - - Name: fcn_hr48_480x480_40k_pascal_context_59 - In Collection: FCN - Metadata: - inference time (ms/im): - - value: None - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal Context - Metrics: - mIoU: 50.33 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context_59/fcn_hr48_480x480_40k_pascal_context_59_20210410_122738-b808b8b2.pth - Config: configs/fcn/fcn_hr48_480x480_40k_pascal_context_59.py - - - - - Name: fcn_hr48_480x480_80k_pascal_context - In Collection: FCN - Metadata: - inference time (ms/im): - - value: None - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal Context - Metrics: - mIoU: 51.12 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context_59/fcn_hr48_480x480_80k_pascal_context_59_20210411_003240-3ae7081e.pth - Config: configs/fcn/fcn_hr48_480x480_80k_pascal_context.py diff --git a/configs/mobilenet_v2/metafile.yml b/configs/mobilenet_v2/metafile.yml deleted file mode 100644 index 627a88d5f3..0000000000 --- a/configs/mobilenet_v2/metafile.yml +++ /dev/null @@ -1,152 +0,0 @@ - -Models: - - - Name: fcn_m-v2-d8_512x1024_80k_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 70.42 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 61.54 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes/fcn_m-v2-d8_512x1024_80k_cityscapes_20200825_124817-d24c28c1.pth - Config: configs/fcn/fcn_m-v2-d8_512x1024_80k_cityscapes.py - - - - - Name: pspnet_m-v2-d8_512x1024_80k_cityscapes - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 89.29 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 70.23 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes/pspnet_m-v2-d8_512x1024_80k_cityscapes_20200825_124817-19e81d51.pth - Config: configs/pspnet/pspnet_m-v2-d8_512x1024_80k_cityscapes.py - - - - - Name: deeplabv3_m-v2-d8_512x1024_80k_cityscapes - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 119.05 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 73.84 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes/deeplabv3_m-v2-d8_512x1024_80k_cityscapes_20200825_124836-bef03590.pth - Config: configs/deeplabv3/deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py - - - - - Name: deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 119.05 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 75.20 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes_20200825_124836-d256dd4b.pth - Config: configs/deeplabv3+/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py - - - - - Name: fcn_m-v2-d8_512x512_160k_ade20k - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 15.53 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 19.71 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k/fcn_m-v2-d8_512x512_160k_ade20k_20200825_214953-c40e1095.pth - Config: configs/fcn/fcn_m-v2-d8_512x512_160k_ade20k.py - - - - - Name: pspnet_m-v2-d8_512x512_160k_ade20k - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 17.33 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 29.68 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k/pspnet_m-v2-d8_512x512_160k_ade20k_20200825_214953-f5942f7a.pth - Config: configs/pspnet/pspnet_m-v2-d8_512x512_160k_ade20k.py - - - - - Name: deeplabv3_m-v2-d8_512x512_160k_ade20k - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 25.06 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 34.08 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k/deeplabv3_m-v2-d8_512x512_160k_ade20k_20200825_223255-63986343.pth - Config: configs/deeplabv3/deeplabv3_m-v2-d8_512x512_160k_ade20k.py - - - - - Name: deeplabv3plus_m-v2-d8_512x512_160k_ade20k - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 23.2 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 34.02 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k/deeplabv3plus_m-v2-d8_512x512_160k_ade20k_20200825_223255-465a01d4.pth - Config: configs/deeplabv3+/deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py diff --git a/configs/mobilenet_v2/mobilenet_v2.yml b/configs/mobilenet_v2/mobilenet_v2.yml new file mode 100644 index 0000000000..17d2af1273 --- /dev/null +++ b/configs/mobilenet_v2/mobilenet_v2.yml @@ -0,0 +1,175 @@ +Collections: +- Name: mobilenet_v2 + Metadata: + Training Data: + - Cityscapes + - ADE20k +Models: +- Name: fcn_m-v2-d8_512x1024_80k_cityscapes + In Collection: mobilenet_v2 + Metadata: + backbone: M-V2-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 70.42 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 3.4 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 61.54 + Config: configs/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes/fcn_m-v2-d8_512x1024_80k_cityscapes_20200825_124817-d24c28c1.pth +- Name: pspnet_m-v2-d8_512x1024_80k_cityscapes + In Collection: mobilenet_v2 + Metadata: + backbone: M-V2-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 89.29 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 3.6 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 70.23 + Config: configs/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes/pspnet_m-v2-d8_512x1024_80k_cityscapes_20200825_124817-19e81d51.pth +- Name: deeplabv3_m-v2-d8_512x1024_80k_cityscapes + In Collection: mobilenet_v2 + Metadata: + backbone: M-V2-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 119.05 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 3.9 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 73.84 + Config: configs/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes/deeplabv3_m-v2-d8_512x1024_80k_cityscapes_20200825_124836-bef03590.pth +- Name: deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes + In Collection: mobilenet_v2 + Metadata: + backbone: M-V2-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 119.05 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 5.1 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 75.2 + Config: configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes_20200825_124836-d256dd4b.pth +- Name: fcn_m-v2-d8_512x512_160k_ade20k + In Collection: mobilenet_v2 + Metadata: + backbone: M-V2-D8 + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 15.53 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 6.5 + Results: + Task: Semantic Segmentation + Dataset: ADE20k + Metrics: + mIoU: 19.71 + Config: configs/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k/fcn_m-v2-d8_512x512_160k_ade20k_20200825_214953-c40e1095.pth +- Name: pspnet_m-v2-d8_512x512_160k_ade20k + In Collection: mobilenet_v2 + Metadata: + backbone: M-V2-D8 + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 17.33 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 6.5 + Results: + Task: Semantic Segmentation + Dataset: ADE20k + Metrics: + mIoU: 29.68 + Config: configs/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k/pspnet_m-v2-d8_512x512_160k_ade20k_20200825_214953-f5942f7a.pth +- Name: deeplabv3_m-v2-d8_512x512_160k_ade20k + In Collection: mobilenet_v2 + Metadata: + backbone: M-V2-D8 + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 25.06 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 6.8 + Results: + Task: Semantic Segmentation + Dataset: ADE20k + Metrics: + mIoU: 34.08 + Config: configs/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k/deeplabv3_m-v2-d8_512x512_160k_ade20k_20200825_223255-63986343.pth +- Name: deeplabv3plus_m-v2-d8_512x512_160k_ade20k + In Collection: mobilenet_v2 + Metadata: + backbone: M-V2-D8 + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 23.2 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 8.2 + Results: + Task: Semantic Segmentation + Dataset: ADE20k + Metrics: + mIoU: 34.02 + Config: configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k/deeplabv3plus_m-v2-d8_512x512_160k_ade20k_20200825_223255-465a01d4.pth diff --git a/configs/mobilenet_v3/metafile.yml b/configs/mobilenet_v3/metafile.yml deleted file mode 100644 index 22da770e92..0000000000 --- a/configs/mobilenet_v3/metafile.yml +++ /dev/null @@ -1,81 +0,0 @@ -Collections: - - Name: LRASPP - Metadata: - Training Data: - - Cityscapes - -Models: - - - Name: lraspp_m-v3-d8_512x1024_320k_cityscapes - In Collection: LRASPP - Metadata: - inference time (ms/im): - - value: 65.7 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 69.54 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes/lraspp_m-v3-d8_512x1024_320k_cityscapes_20201224_220337-cfe8fb07.pth - Config: configs/lraspp/lraspp_m-v3-d8_512x1024_320k_cityscapes.py - - - - - Name: lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes - In Collection: LRASPP - Metadata: - inference time (ms/im): - - value: 67.7 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 67.87 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes_20201224_220337-9f29cd72.pth - Config: configs/lraspp/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py - - - - - Name: lraspp_m-v3s-d8_512x1024_320k_cityscapes - In Collection: LRASPP - Metadata: - inference time (ms/im): - - value: 42.3 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 64.11 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes/lraspp_m-v3s-d8_512x1024_320k_cityscapes_20201224_223935-61565b34.pth - Config: configs/lraspp/lraspp_m-v3s-d8_512x1024_320k_cityscapes.py - - - - - Name: lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes - In Collection: LRASPP - Metadata: - inference time (ms/im): - - value: 40.82 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 62.74 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes_20201224_223935-03daeabb.pth - Config: configs/lraspp/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py diff --git a/configs/mobilenet_v3/mobilenet_v3.yml b/configs/mobilenet_v3/mobilenet_v3.yml new file mode 100644 index 0000000000..8240cfffd6 --- /dev/null +++ b/configs/mobilenet_v3/mobilenet_v3.yml @@ -0,0 +1,94 @@ +Collections: +- Name: mobilenet_v3 + Metadata: + Training Data: + - Cityscapes +Models: +- Name: lraspp_m-v3-d8_512x1024_320k_cityscapes + In Collection: mobilenet_v3 + Metadata: + backbone: M-V3-D8 + crop size: (512,1024) + lr schd: 320000 + inference time (ms/im): + - value: 65.7 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 8.9 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 69.54 + mIoU(ms+flip): 70.89 + Config: configs/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes/lraspp_m-v3-d8_512x1024_320k_cityscapes_20201224_220337-cfe8fb07.pth +- Name: lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes + In Collection: mobilenet_v3 + Metadata: + backbone: M-V3-D8 (scratch) + crop size: (512,1024) + lr schd: 320000 + inference time (ms/im): + - value: 67.7 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 8.9 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 67.87 + mIoU(ms+flip): 69.78 + Config: configs/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes_20201224_220337-9f29cd72.pth +- Name: lraspp_m-v3s-d8_512x1024_320k_cityscapes + In Collection: mobilenet_v3 + Metadata: + backbone: M-V3s-D8 + crop size: (512,1024) + lr schd: 320000 + inference time (ms/im): + - value: 42.3 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 5.3 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 64.11 + mIoU(ms+flip): 66.42 + Config: configs/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes/lraspp_m-v3s-d8_512x1024_320k_cityscapes_20201224_223935-61565b34.pth +- Name: lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes + In Collection: mobilenet_v3 + Metadata: + backbone: M-V3s-D8 (scratch) + crop size: (512,1024) + lr schd: 320000 + inference time (ms/im): + - value: 40.82 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 5.3 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 62.74 + mIoU(ms+flip): 65.01 + Config: configs/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes_20201224_223935-03daeabb.pth diff --git a/configs/nonlocal_net/metafile.yml b/configs/nonlocal_net/metafile.yml deleted file mode 100644 index aae1b54643..0000000000 --- a/configs/nonlocal_net/metafile.yml +++ /dev/null @@ -1,311 +0,0 @@ -Collections: - - Name: NonLocal - Metadata: - Training Data: - - Cityscapes - - Pascal VOC 2012 + Aug - - ADE20K - -Models: - - - Name: nonlocal_r50-d8_512x1024_40k_cityscapes - In Collection: NonLocal - Metadata: - inference time (ms/im): - - value: 367.65 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.24 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes/nonlocal_r50-d8_512x1024_40k_cityscapes_20200605_210748-c75e81e3.pth - Config: configs/nonlocal/nonlocal_r50-d8_512x1024_40k_cityscapes.py - - - - - Name: nonlocal_r101-d8_512x1024_40k_cityscapes - In Collection: NonLocal - Metadata: - inference time (ms/im): - - value: 512.82 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.66 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes/nonlocal_r101-d8_512x1024_40k_cityscapes_20200605_210748-d63729fa.pth - Config: configs/nonlocal/nonlocal_r101-d8_512x1024_40k_cityscapes.py - - - - - Name: nonlocal_r50-d8_769x769_40k_cityscapes - In Collection: NonLocal - Metadata: - inference time (ms/im): - - value: 657.89 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.33 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes/nonlocal_r50-d8_769x769_40k_cityscapes_20200530_045243-82ef6749.pth - Config: configs/nonlocal/nonlocal_r50-d8_769x769_40k_cityscapes.py - - - - - Name: nonlocal_r101-d8_769x769_40k_cityscapes - In Collection: NonLocal - Metadata: - inference time (ms/im): - - value: 952.38 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.57 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes/nonlocal_r101-d8_769x769_40k_cityscapes_20200530_045348-8fe9a9dc.pth - Config: configs/nonlocal/nonlocal_r101-d8_769x769_40k_cityscapes.py - - - - - Name: nonlocal_r50-d8_512x1024_80k_cityscapes - In Collection: NonLocal - Metadata: - inference time (ms/im): - - value: 367.65 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.01 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes/nonlocal_r50-d8_512x1024_80k_cityscapes_20200607_193518-d6839fae.pth - Config: configs/nonlocal/nonlocal_r50-d8_512x1024_80k_cityscapes.py - - - - - Name: nonlocal_r101-d8_512x1024_80k_cityscapes - In Collection: NonLocal - Metadata: - inference time (ms/im): - - value: 512.82 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.93 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes/nonlocal_r101-d8_512x1024_80k_cityscapes_20200607_183411-32700183.pth - Config: configs/nonlocal/nonlocal_r101-d8_512x1024_80k_cityscapes.py - - - - - Name: nonlocal_r50-d8_769x769_80k_cityscapes - In Collection: NonLocal - Metadata: - inference time (ms/im): - - value: 657.89 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.05 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes/nonlocal_r50-d8_769x769_80k_cityscapes_20200607_193506-1f9792f6.pth - Config: configs/nonlocal/nonlocal_r50-d8_769x769_80k_cityscapes.py - - - - - Name: nonlocal_r101-d8_769x769_80k_cityscapes - In Collection: NonLocal - Metadata: - inference time (ms/im): - - value: 952.38 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.40 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes/nonlocal_r101-d8_769x769_80k_cityscapes_20200607_183428-0e1fa4f9.pth - Config: configs/nonlocal/nonlocal_r101-d8_769x769_80k_cityscapes.py - - - - - Name: nonlocal_r50-d8_512x512_80k_ade20k - In Collection: NonLocal - Metadata: - inference time (ms/im): - - value: 46.79 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 40.75 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k/nonlocal_r50-d8_512x512_80k_ade20k_20200615_015801-5ae0aa33.pth - Config: configs/nonlocal/nonlocal_r50-d8_512x512_80k_ade20k.py - - - - - Name: nonlocal_r101-d8_512x512_80k_ade20k - In Collection: NonLocal - Metadata: - inference time (ms/im): - - value: 71.58 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 42.90 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k/nonlocal_r101-d8_512x512_80k_ade20k_20200615_015758-24105919.pth - Config: configs/nonlocal/nonlocal_r101-d8_512x512_80k_ade20k.py - - - - - Name: nonlocal_r50-d8_512x512_160k_ade20k - In Collection: NonLocal - Metadata: - inference time (ms/im): - - value: 46.79 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 42.03 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k/nonlocal_r50-d8_512x512_160k_ade20k_20200616_005410-baef45e3.pth - Config: configs/nonlocal/nonlocal_r50-d8_512x512_160k_ade20k.py - - - - - Name: nonlocal_r101-d8_512x512_160k_ade20k - In Collection: NonLocal - Metadata: - inference time (ms/im): - - value: 71.58 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 43.36 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k/nonlocal_r101-d8_512x512_160k_ade20k_20200616_003422-affd0f8d.pth - Config: configs/nonlocal/nonlocal_r101-d8_512x512_160k_ade20k.py - - - - - Name: nonlocal_r50-d8_512x512_20k_voc12aug - In Collection: NonLocal - Metadata: - inference time (ms/im): - - value: 47.15 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 76.20 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug/nonlocal_r50-d8_512x512_20k_voc12aug_20200617_222613-07f2a57c.pth - Config: configs/nonlocal/nonlocal_r50-d8_512x512_20k_voc12aug.py - - - - - Name: nonlocal_r101-d8_512x512_20k_voc12aug - In Collection: NonLocal - Metadata: - inference time (ms/im): - - value: 71.38 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 78.15 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug/nonlocal_r101-d8_512x512_20k_voc12aug_20200617_222615-948c68ab.pth - Config: configs/nonlocal/nonlocal_r101-d8_512x512_20k_voc12aug.py - - - - - Name: nonlocal_r50-d8_512x512_40k_voc12aug - In Collection: NonLocal - Metadata: - inference time (ms/im): - - value: 47.15 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 76.65 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug/nonlocal_r50-d8_512x512_40k_voc12aug_20200614_000028-0139d4a9.pth - Config: configs/nonlocal/nonlocal_r50-d8_512x512_40k_voc12aug.py - - - - - Name: nonlocal_r101-d8_512x512_40k_voc12aug - In Collection: NonLocal - Metadata: - inference time (ms/im): - - value: 71.38 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 78.27 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug/nonlocal_r101-d8_512x512_40k_voc12aug_20200614_000028-7e5ff470.pth - Config: configs/nonlocal/nonlocal_r101-d8_512x512_40k_voc12aug.py diff --git a/configs/nonlocal_net/nonlocal_net.yml b/configs/nonlocal_net/nonlocal_net.yml new file mode 100644 index 0000000000..53ac230cf0 --- /dev/null +++ b/configs/nonlocal_net/nonlocal_net.yml @@ -0,0 +1,292 @@ +Collections: +- Name: nonlocal_net + Metadata: + Training Data: + - Cityscapes + - ADE20K + - Pascal VOC 2012 + Aug +Models: +- Name: nonlocal_r50-d8_512x1024_40k_cityscapes + In Collection: nonlocal_net + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 367.65 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 7.4 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.24 + Config: configs/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes/nonlocal_r50-d8_512x1024_40k_cityscapes_20200605_210748-c75e81e3.pth +- Name: nonlocal_r101-d8_512x1024_40k_cityscapes + In Collection: nonlocal_net + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 512.82 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 10.9 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.66 + Config: configs/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes/nonlocal_r101-d8_512x1024_40k_cityscapes_20200605_210748-d63729fa.pth +- Name: nonlocal_r50-d8_769x769_40k_cityscapes + In Collection: nonlocal_net + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 657.89 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 8.9 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.33 + mIoU(ms+flip): 79.92 + Config: configs/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes/nonlocal_r50-d8_769x769_40k_cityscapes_20200530_045243-82ef6749.pth +- Name: nonlocal_r101-d8_769x769_40k_cityscapes + In Collection: nonlocal_net + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 952.38 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 12.8 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.57 + mIoU(ms+flip): 80.29 + Config: configs/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes/nonlocal_r101-d8_769x769_40k_cityscapes_20200530_045348-8fe9a9dc.pth +- Name: nonlocal_r50-d8_512x1024_80k_cityscapes + In Collection: nonlocal_net + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.01 + Config: configs/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes/nonlocal_r50-d8_512x1024_80k_cityscapes_20200607_193518-d6839fae.pth +- Name: nonlocal_r101-d8_512x1024_80k_cityscapes + In Collection: nonlocal_net + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.93 + Config: configs/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes/nonlocal_r101-d8_512x1024_80k_cityscapes_20200607_183411-32700183.pth +- Name: nonlocal_r50-d8_769x769_80k_cityscapes + In Collection: nonlocal_net + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.05 + mIoU(ms+flip): 80.68 + Config: configs/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes/nonlocal_r50-d8_769x769_80k_cityscapes_20200607_193506-1f9792f6.pth +- Name: nonlocal_r101-d8_769x769_80k_cityscapes + In Collection: nonlocal_net + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.4 + mIoU(ms+flip): 80.85 + Config: configs/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes/nonlocal_r101-d8_769x769_80k_cityscapes_20200607_183428-0e1fa4f9.pth +- Name: nonlocal_r50-d8_512x512_80k_ade20k + In Collection: nonlocal_net + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 46.79 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 9.1 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 40.75 + mIoU(ms+flip): 42.05 + Config: configs/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k/nonlocal_r50-d8_512x512_80k_ade20k_20200615_015801-5ae0aa33.pth +- Name: nonlocal_r101-d8_512x512_80k_ade20k + In Collection: nonlocal_net + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 71.58 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 12.6 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.9 + mIoU(ms+flip): 44.27 + Config: configs/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k/nonlocal_r101-d8_512x512_80k_ade20k_20200615_015758-24105919.pth +- Name: nonlocal_r50-d8_512x512_160k_ade20k + In Collection: nonlocal_net + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.03 + mIoU(ms+flip): 43.04 + Config: configs/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k/nonlocal_r50-d8_512x512_160k_ade20k_20200616_005410-baef45e3.pth +- Name: nonlocal_r101-d8_512x512_160k_ade20k + In Collection: nonlocal_net + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.36 + mIoU(ms+flip): 44.83 + Config: configs/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k/nonlocal_r101-d8_512x512_160k_ade20k_20200616_003422-affd0f8d.pth +- Name: nonlocal_r50-d8_512x512_20k_voc12aug + In Collection: nonlocal_net + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 47.15 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 6.4 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.2 + mIoU(ms+flip): 77.12 + Config: configs/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug/nonlocal_r50-d8_512x512_20k_voc12aug_20200617_222613-07f2a57c.pth +- Name: nonlocal_r101-d8_512x512_20k_voc12aug + In Collection: nonlocal_net + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 71.38 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 9.8 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 78.15 + mIoU(ms+flip): 78.86 + Config: configs/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug/nonlocal_r101-d8_512x512_20k_voc12aug_20200617_222615-948c68ab.pth +- Name: nonlocal_r50-d8_512x512_40k_voc12aug + In Collection: nonlocal_net + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.65 + mIoU(ms+flip): 77.47 + Config: configs/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug/nonlocal_r50-d8_512x512_40k_voc12aug_20200614_000028-0139d4a9.pth +- Name: nonlocal_r101-d8_512x512_40k_voc12aug + In Collection: nonlocal_net + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 78.27 + mIoU(ms+flip): 79.12 + Config: configs/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug/nonlocal_r101-d8_512x512_40k_voc12aug_20200614_000028-7e5ff470.pth diff --git a/configs/ocrnet/metafile.yml b/configs/ocrnet/metafile.yml deleted file mode 100644 index b3383776f9..0000000000 --- a/configs/ocrnet/metafile.yml +++ /dev/null @@ -1,463 +0,0 @@ -Collections: - - Name: OCRNet - Metadata: - Training Data: - - Cityscapes - - Pascal VOC 2012 + Aug - - ADE20K - -Models: - - - Name: ocrnet_hr18s_512x1024_40k_cityscapes - In Collection: OCRNet - Metadata: - inference time (ms/im): - - value: 95.69 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 74.30 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes/ocrnet_hr18s_512x1024_40k_cityscapes_20200601_033304-fa2436c2.pth - Config: configs/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes.py - - - - - Name: ocrnet_hr18_512x1024_40k_cityscapes - In Collection: OCRNet - Metadata: - inference time (ms/im): - - value: 133.33 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.72 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes/ocrnet_hr18_512x1024_40k_cityscapes_20200601_033320-401c5bdd.pth - Config: configs/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes.py - - - - - Name: ocrnet_hr48_512x1024_40k_cityscapes - In Collection: OCRNet - Metadata: - inference time (ms/im): - - value: 236.97 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 80.58 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes/ocrnet_hr48_512x1024_40k_cityscapes_20200601_033336-55b32491.pth - Config: configs/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes.py - - - - - Name: ocrnet_hr18s_512x1024_80k_cityscapes - In Collection: OCRNet - Metadata: - inference time (ms/im): - - value: 95.69 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.16 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes/ocrnet_hr18s_512x1024_80k_cityscapes_20200601_222735-55979e63.pth - Config: configs/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes.py - - - - - Name: ocrnet_hr18_512x1024_80k_cityscapes - In Collection: OCRNet - Metadata: - inference time (ms/im): - - value: 133.33 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.57 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes/ocrnet_hr18_512x1024_80k_cityscapes_20200614_230521-c2e1dd4a.pth - Config: configs/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes.py - - - - - Name: ocrnet_hr48_512x1024_80k_cityscapes - In Collection: OCRNet - Metadata: - inference time (ms/im): - - value: 236.97 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 80.70 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes/ocrnet_hr48_512x1024_80k_cityscapes_20200601_222752-9076bcdf.pth - Config: configs/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes.py - - - - - Name: ocrnet_hr18s_512x1024_160k_cityscapes - In Collection: OCRNet - Metadata: - inference time (ms/im): - - value: 95.69 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.45 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes/ocrnet_hr18s_512x1024_160k_cityscapes_20200602_191005-f4a7af28.pth - Config: configs/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes.py - - - - - Name: ocrnet_hr18_512x1024_160k_cityscapes - In Collection: OCRNet - Metadata: - inference time (ms/im): - - value: 133.33 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.47 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes/ocrnet_hr18_512x1024_160k_cityscapes_20200602_191001-b9172d0c.pth - Config: configs/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes.py - - - - - Name: ocrnet_hr48_512x1024_160k_cityscapes - In Collection: OCRNet - Metadata: - inference time (ms/im): - - value: 236.97 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 81.35 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes/ocrnet_hr48_512x1024_160k_cityscapes_20200602_191037-dfbf1b0c.pth - Config: configs/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes.py - - - - - Name: ocrnet_r101-d8_512x1024_40k_b8_cityscapes - In Collection: OCRNet - Metadata: - inference time (ms/im): - - value: None - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: - Weights: https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py - Config: configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py - - - - - Name: ocrnet_r101-d8_512x1024_40k_b16_cityscapes - In Collection: OCRNet - Metadata: - inference time (ms/im): - - value: 113.64 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 3.02 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes/ocrnet_r101-d8_512x1024_40k_b8_cityscapes-02ac0f13.pth - Config: configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py - - - - - Name: ocrnet_r101-d8_512x1024_80k_b16_cityscapes - In Collection: OCRNet - Metadata: - inference time (ms/im): - - value: 113.64 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 3.02 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes/ocrnet_r101-d8_512x1024_40k_b16_cityscapes-db500f80.pth - Config: configs/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py - - - - - Name: ocrnet_hr18s_512x512_80k_ade20k - In Collection: OCRNet - Metadata: - inference time (ms/im): - - value: 34.51 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 35.06 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_80k_ade20k/ocrnet_hr18s_512x512_80k_ade20k_20200615_055600-e80b62af.pth - Config: configs/ocrnet/ocrnet_hr18s_512x512_80k_ade20k.py - - - - - Name: ocrnet_hr18_512x512_80k_ade20k - In Collection: OCRNet - Metadata: - inference time (ms/im): - - value: 52.83 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 37.79 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_80k_ade20k/ocrnet_hr18_512x512_80k_ade20k_20200615_053157-d173d83b.pth - Config: configs/ocrnet/ocrnet_hr18_512x512_80k_ade20k.py - - - - - Name: ocrnet_hr48_512x512_80k_ade20k - In Collection: OCRNet - Metadata: - inference time (ms/im): - - value: 58.86 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 43.00 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_80k_ade20k/ocrnet_hr48_512x512_80k_ade20k_20200615_021518-d168c2d1.pth - Config: configs/ocrnet/ocrnet_hr48_512x512_80k_ade20k.py - - - - - Name: ocrnet_hr18s_512x512_160k_ade20k - In Collection: OCRNet - Metadata: - inference time (ms/im): - - value: 34.51 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 37.19 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_160k_ade20k/ocrnet_hr18s_512x512_160k_ade20k_20200615_184505-8e913058.pth - Config: configs/ocrnet/ocrnet_hr18s_512x512_160k_ade20k.py - - - - - Name: ocrnet_hr18_512x512_160k_ade20k - In Collection: OCRNet - Metadata: - inference time (ms/im): - - value: 52.83 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 39.32 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_160k_ade20k/ocrnet_hr18_512x512_160k_ade20k_20200615_200940-d8fcd9d1.pth - Config: configs/ocrnet/ocrnet_hr18_512x512_160k_ade20k.py - - - - - Name: ocrnet_hr48_512x512_160k_ade20k - In Collection: OCRNet - Metadata: - inference time (ms/im): - - value: 58.86 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 43.25 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_160k_ade20k/ocrnet_hr48_512x512_160k_ade20k_20200615_184705-a073726d.pth - Config: configs/ocrnet/ocrnet_hr48_512x512_160k_ade20k.py - - - - - Name: ocrnet_hr18s_512x512_20k_voc12aug - In Collection: OCRNet - Metadata: - inference time (ms/im): - - value: 31.7 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 71.70 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug/ocrnet_hr18s_512x512_20k_voc12aug_20200617_233913-02b04fcb.pth - Config: configs/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug.py - - - - - Name: ocrnet_hr18_512x512_20k_voc12aug - In Collection: OCRNet - Metadata: - inference time (ms/im): - - value: 50.23 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 74.75 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_20k_voc12aug/ocrnet_hr18_512x512_20k_voc12aug_20200617_233932-8954cbb7.pth - Config: configs/ocrnet/ocrnet_hr18_512x512_20k_voc12aug.py - - - - - Name: ocrnet_hr48_512x512_20k_voc12aug - In Collection: OCRNet - Metadata: - inference time (ms/im): - - value: 56.09 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 77.72 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_20k_voc12aug/ocrnet_hr48_512x512_20k_voc12aug_20200617_233932-9e82080a.pth - Config: configs/ocrnet/ocrnet_hr48_512x512_20k_voc12aug.py - - - - - Name: ocrnet_hr18s_512x512_40k_voc12aug - In Collection: OCRNet - Metadata: - inference time (ms/im): - - value: 31.7 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 72.76 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug/ocrnet_hr18s_512x512_40k_voc12aug_20200614_002025-42b587ac.pth - Config: configs/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug.py - - - - - Name: ocrnet_hr18_512x512_40k_voc12aug - In Collection: OCRNet - Metadata: - inference time (ms/im): - - value: 50.23 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 74.98 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_40k_voc12aug/ocrnet_hr18_512x512_40k_voc12aug_20200614_015958-714302be.pth - Config: configs/ocrnet/ocrnet_hr18_512x512_40k_voc12aug.py - - - - - Name: ocrnet_hr48_512x512_40k_voc12aug - In Collection: OCRNet - Metadata: - inference time (ms/im): - - value: 56.09 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 77.14 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_40k_voc12aug/ocrnet_hr48_512x512_40k_voc12aug_20200614_015958-255bc5ce.pth - Config: configs/ocrnet/ocrnet_hr48_512x512_40k_voc12aug.py diff --git a/configs/ocrnet/ocrnet.yml b/configs/ocrnet/ocrnet.yml new file mode 100644 index 0000000000..8e93f2e941 --- /dev/null +++ b/configs/ocrnet/ocrnet.yml @@ -0,0 +1,431 @@ +Collections: +- Name: ocrnet + Metadata: + Training Data: + - Cityscapes + - ' HRNet backbone' + - ' ResNet backbone' + - ADE20K + - Pascal VOC 2012 + Aug +Models: +- Name: ocrnet_hr18s_512x1024_40k_cityscapes + In Collection: ocrnet + Metadata: + backbone: HRNetV2p-W18-Small + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 95.69 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 3.5 + Results: + Task: Semantic Segmentation + Dataset: ' HRNet backbone' + Metrics: + mIoU: 74.3 + mIoU(ms+flip): 75.95 + Config: configs/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes/ocrnet_hr18s_512x1024_40k_cityscapes_20200601_033304-fa2436c2.pth +- Name: ocrnet_hr18_512x1024_40k_cityscapes + In Collection: ocrnet + Metadata: + backbone: HRNetV2p-W18 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 133.33 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 4.7 + Results: + Task: Semantic Segmentation + Dataset: ' HRNet backbone' + Metrics: + mIoU: 77.72 + mIoU(ms+flip): 79.49 + Config: configs/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes/ocrnet_hr18_512x1024_40k_cityscapes_20200601_033320-401c5bdd.pth +- Name: ocrnet_hr48_512x1024_40k_cityscapes + In Collection: ocrnet + Metadata: + backbone: HRNetV2p-W48 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 236.97 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 8.0 + Results: + Task: Semantic Segmentation + Dataset: ' HRNet backbone' + Metrics: + mIoU: 80.58 + mIoU(ms+flip): 81.79 + Config: configs/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes/ocrnet_hr48_512x1024_40k_cityscapes_20200601_033336-55b32491.pth +- Name: ocrnet_hr18s_512x1024_80k_cityscapes + In Collection: ocrnet + Metadata: + backbone: HRNetV2p-W18-Small + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: ' HRNet backbone' + Metrics: + mIoU: 77.16 + mIoU(ms+flip): 78.66 + Config: configs/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes/ocrnet_hr18s_512x1024_80k_cityscapes_20200601_222735-55979e63.pth +- Name: ocrnet_hr18_512x1024_80k_cityscapes + In Collection: ocrnet + Metadata: + backbone: HRNetV2p-W18 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: ' HRNet backbone' + Metrics: + mIoU: 78.57 + mIoU(ms+flip): 80.46 + Config: configs/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes/ocrnet_hr18_512x1024_80k_cityscapes_20200614_230521-c2e1dd4a.pth +- Name: ocrnet_hr48_512x1024_80k_cityscapes + In Collection: ocrnet + Metadata: + backbone: HRNetV2p-W48 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: ' HRNet backbone' + Metrics: + mIoU: 80.7 + mIoU(ms+flip): 81.87 + Config: configs/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes/ocrnet_hr48_512x1024_80k_cityscapes_20200601_222752-9076bcdf.pth +- Name: ocrnet_hr18s_512x1024_160k_cityscapes + In Collection: ocrnet + Metadata: + backbone: HRNetV2p-W18-Small + crop size: (512,1024) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ' HRNet backbone' + Metrics: + mIoU: 78.45 + mIoU(ms+flip): 79.97 + Config: configs/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes/ocrnet_hr18s_512x1024_160k_cityscapes_20200602_191005-f4a7af28.pth +- Name: ocrnet_hr18_512x1024_160k_cityscapes + In Collection: ocrnet + Metadata: + backbone: HRNetV2p-W18 + crop size: (512,1024) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ' HRNet backbone' + Metrics: + mIoU: 79.47 + mIoU(ms+flip): 80.91 + Config: configs/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes/ocrnet_hr18_512x1024_160k_cityscapes_20200602_191001-b9172d0c.pth +- Name: ocrnet_hr48_512x1024_160k_cityscapes + In Collection: ocrnet + Metadata: + backbone: HRNetV2p-W48 + crop size: (512,1024) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ' HRNet backbone' + Metrics: + mIoU: 81.35 + mIoU(ms+flip): 82.7 + Config: configs/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes/ocrnet_hr48_512x1024_160k_cityscapes_20200602_191037-dfbf1b0c.pth +- Name: ocrnet_r101-d8_512x1024_40k_b8_cityscapes + In Collection: ocrnet + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: ' ResNet backbone' + Metrics: + mIoU: 80.09 + Config: configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes/ocrnet_r101-d8_512x1024_40k_b8_cityscapes-02ac0f13.pth +- Name: ocrnet_r101-d8_512x1024_40k_b16_cityscapes + In Collection: ocrnet + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 331.13 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 8.8 + Results: + Task: Semantic Segmentation + Dataset: ' ResNet backbone' + Metrics: + mIoU: 80.3 + Config: configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes/ocrnet_r101-d8_512x1024_40k_b16_cityscapes-db500f80.pth +- Name: ocrnet_r101-d8_512x1024_80k_b16_cityscapes + In Collection: ocrnet + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 331.13 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 8.8 + Results: + Task: Semantic Segmentation + Dataset: ' ResNet backbone' + Metrics: + mIoU: 80.81 + Config: configs/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes/ocrnet_r101-d8_512x1024_80k_b16_cityscapes-78688424.pth +- Name: ocrnet_hr18s_512x512_80k_ade20k + In Collection: ocrnet + Metadata: + backbone: HRNetV2p-W18-Small + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 34.51 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 6.7 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 35.06 + mIoU(ms+flip): 35.8 + Config: configs/ocrnet/ocrnet_hr18s_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_80k_ade20k/ocrnet_hr18s_512x512_80k_ade20k_20200615_055600-e80b62af.pth +- Name: ocrnet_hr18_512x512_80k_ade20k + In Collection: ocrnet + Metadata: + backbone: HRNetV2p-W18 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 52.83 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 7.9 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 37.79 + mIoU(ms+flip): 39.16 + Config: configs/ocrnet/ocrnet_hr18_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_80k_ade20k/ocrnet_hr18_512x512_80k_ade20k_20200615_053157-d173d83b.pth +- Name: ocrnet_hr48_512x512_80k_ade20k + In Collection: ocrnet + Metadata: + backbone: HRNetV2p-W48 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 58.86 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 11.2 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.0 + mIoU(ms+flip): 44.3 + Config: configs/ocrnet/ocrnet_hr48_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_80k_ade20k/ocrnet_hr48_512x512_80k_ade20k_20200615_021518-d168c2d1.pth +- Name: ocrnet_hr18s_512x512_160k_ade20k + In Collection: ocrnet + Metadata: + backbone: HRNetV2p-W18-Small + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 37.19 + mIoU(ms+flip): 38.4 + Config: configs/ocrnet/ocrnet_hr18s_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_160k_ade20k/ocrnet_hr18s_512x512_160k_ade20k_20200615_184505-8e913058.pth +- Name: ocrnet_hr18_512x512_160k_ade20k + In Collection: ocrnet + Metadata: + backbone: HRNetV2p-W18 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 39.32 + mIoU(ms+flip): 40.8 + Config: configs/ocrnet/ocrnet_hr18_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_160k_ade20k/ocrnet_hr18_512x512_160k_ade20k_20200615_200940-d8fcd9d1.pth +- Name: ocrnet_hr48_512x512_160k_ade20k + In Collection: ocrnet + Metadata: + backbone: HRNetV2p-W48 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.25 + mIoU(ms+flip): 44.88 + Config: configs/ocrnet/ocrnet_hr48_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_160k_ade20k/ocrnet_hr48_512x512_160k_ade20k_20200615_184705-a073726d.pth +- Name: ocrnet_hr18s_512x512_20k_voc12aug + In Collection: ocrnet + Metadata: + backbone: HRNetV2p-W18-Small + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 31.7 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 3.5 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 71.7 + mIoU(ms+flip): 73.84 + Config: configs/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug/ocrnet_hr18s_512x512_20k_voc12aug_20200617_233913-02b04fcb.pth +- Name: ocrnet_hr18_512x512_20k_voc12aug + In Collection: ocrnet + Metadata: + backbone: HRNetV2p-W18 + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 50.23 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 4.7 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 74.75 + mIoU(ms+flip): 77.11 + Config: configs/ocrnet/ocrnet_hr18_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_20k_voc12aug/ocrnet_hr18_512x512_20k_voc12aug_20200617_233932-8954cbb7.pth +- Name: ocrnet_hr48_512x512_20k_voc12aug + In Collection: ocrnet + Metadata: + backbone: HRNetV2p-W48 + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 56.09 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 8.1 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.72 + mIoU(ms+flip): 79.87 + Config: configs/ocrnet/ocrnet_hr48_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_20k_voc12aug/ocrnet_hr48_512x512_20k_voc12aug_20200617_233932-9e82080a.pth +- Name: ocrnet_hr18s_512x512_40k_voc12aug + In Collection: ocrnet + Metadata: + backbone: HRNetV2p-W18-Small + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 72.76 + mIoU(ms+flip): 74.6 + Config: configs/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug/ocrnet_hr18s_512x512_40k_voc12aug_20200614_002025-42b587ac.pth +- Name: ocrnet_hr18_512x512_40k_voc12aug + In Collection: ocrnet + Metadata: + backbone: HRNetV2p-W18 + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 74.98 + mIoU(ms+flip): 77.4 + Config: configs/ocrnet/ocrnet_hr18_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_40k_voc12aug/ocrnet_hr18_512x512_40k_voc12aug_20200614_015958-714302be.pth +- Name: ocrnet_hr48_512x512_40k_voc12aug + In Collection: ocrnet + Metadata: + backbone: HRNetV2p-W48 + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.14 + mIoU(ms+flip): 79.71 + Config: configs/ocrnet/ocrnet_hr48_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_40k_voc12aug/ocrnet_hr48_512x512_40k_voc12aug_20200614_015958-255bc5ce.pth diff --git a/configs/point_rend/metafile.yml b/configs/point_rend/metafile.yml deleted file mode 100644 index 72682fa081..0000000000 --- a/configs/point_rend/metafile.yml +++ /dev/null @@ -1,82 +0,0 @@ -Collections: - - Name: PointRend - Metadata: - Training Data: - - Cityscapes - - ADE20K - -Models: - - - Name: pointrend_r50_512x1024_80k_cityscapes - In Collection: PointRend - Metadata: - inference time (ms/im): - - value: 117.92 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 76.47 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x1024_80k_cityscapes/pointrend_r50_512x1024_80k_cityscapes_20200711_015821-bb1ff523.pth - Config: configs/pointrend/pointrend_r50_512x1024_80k_cityscapes.py - - - - - Name: pointrend_r101_512x1024_80k_cityscapes - In Collection: PointRend - Metadata: - inference time (ms/im): - - value: 142.86 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.30 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x1024_80k_cityscapes/pointrend_r101_512x1024_80k_cityscapes_20200711_170850-d0ca84be.pth - Config: configs/pointrend/pointrend_r101_512x1024_80k_cityscapes.py - - - - - Name: pointrend_r50_512x512_160k_ade20k - In Collection: PointRend - Metadata: - inference time (ms/im): - - value: 57.77 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 37.64 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x512_160k_ade20k/pointrend_r50_512x512_160k_ade20k_20200807_232644-ac3febf2.pth - Config: configs/pointrend/pointrend_r50_512x512_160k_ade20k.py - - - - - Name: pointrend_r101_512x512_160k_ade20k - In Collection: PointRend - Metadata: - inference time (ms/im): - - value: 64.52 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 40.02 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x512_160k_ade20k/pointrend_r101_512x512_160k_ade20k_20200808_030852-8834902a.pth - Config: configs/pointrend/pointrend_r101_512x512_160k_ade20k.py diff --git a/configs/point_rend/point_rend.yml b/configs/point_rend/point_rend.yml new file mode 100644 index 0000000000..ecb443a659 --- /dev/null +++ b/configs/point_rend/point_rend.yml @@ -0,0 +1,95 @@ +Collections: +- Name: point_rend + Metadata: + Training Data: + - Cityscapes + - ADE20K +Models: +- Name: pointrend_r50_512x1024_80k_cityscapes + In Collection: point_rend + Metadata: + backbone: R-50 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 117.92 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 3.1 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 76.47 + mIoU(ms+flip): 78.13 + Config: configs/point_rend/pointrend_r50_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x1024_80k_cityscapes/pointrend_r50_512x1024_80k_cityscapes_20200711_015821-bb1ff523.pth +- Name: pointrend_r101_512x1024_80k_cityscapes + In Collection: point_rend + Metadata: + backbone: R-101 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 142.86 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 4.2 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.3 + mIoU(ms+flip): 79.97 + Config: configs/point_rend/pointrend_r101_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x1024_80k_cityscapes/pointrend_r101_512x1024_80k_cityscapes_20200711_170850-d0ca84be.pth +- Name: pointrend_r50_512x512_160k_ade20k + In Collection: point_rend + Metadata: + backbone: R-50 + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 57.77 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 5.1 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 37.64 + mIoU(ms+flip): 39.17 + Config: configs/point_rend/pointrend_r50_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x512_160k_ade20k/pointrend_r50_512x512_160k_ade20k_20200807_232644-ac3febf2.pth +- Name: pointrend_r101_512x512_160k_ade20k + In Collection: point_rend + Metadata: + backbone: R-101 + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 64.52 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 6.1 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 40.02 + mIoU(ms+flip): 41.6 + Config: configs/point_rend/pointrend_r101_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x512_160k_ade20k/pointrend_r101_512x512_160k_ade20k_20200808_030852-8834902a.pth diff --git a/configs/psanet/metafile.yml b/configs/psanet/metafile.yml deleted file mode 100644 index 2372494554..0000000000 --- a/configs/psanet/metafile.yml +++ /dev/null @@ -1,311 +0,0 @@ -Collections: - - Name: PSANet - Metadata: - Training Data: - - Cityscapes - - Pascal VOC 2012 + Aug - - ADE20K - -Models: - - - Name: psanet_r50-d8_512x1024_40k_cityscapes - In Collection: PSANet - Metadata: - inference time (ms/im): - - value: 315.46 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.63 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_40k_cityscapes/psanet_r50-d8_512x1024_40k_cityscapes_20200606_103117-99fac37c.pth - Config: configs/psanet/psanet_r50-d8_512x1024_40k_cityscapes.py - - - - - Name: psanet_r101-d8_512x1024_40k_cityscapes - In Collection: PSANet - Metadata: - inference time (ms/im): - - value: 454.55 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.14 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_40k_cityscapes/psanet_r101-d8_512x1024_40k_cityscapes_20200606_001418-27b9cfa7.pth - Config: configs/psanet/psanet_r101-d8_512x1024_40k_cityscapes.py - - - - - Name: psanet_r50-d8_769x769_40k_cityscapes - In Collection: PSANet - Metadata: - inference time (ms/im): - - value: 714.29 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.99 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_40k_cityscapes/psanet_r50-d8_769x769_40k_cityscapes_20200530_033717-d5365506.pth - Config: configs/psanet/psanet_r50-d8_769x769_40k_cityscapes.py - - - - - Name: psanet_r101-d8_769x769_40k_cityscapes - In Collection: PSANet - Metadata: - inference time (ms/im): - - value: 1020.41 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.43 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_40k_cityscapes/psanet_r101-d8_769x769_40k_cityscapes_20200530_035107-997da1e6.pth - Config: configs/psanet/psanet_r101-d8_769x769_40k_cityscapes.py - - - - - Name: psanet_r50-d8_512x1024_80k_cityscapes - In Collection: PSANet - Metadata: - inference time (ms/im): - - value: 315.46 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.24 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_80k_cityscapes/psanet_r50-d8_512x1024_80k_cityscapes_20200606_161842-ab60a24f.pth - Config: configs/psanet/psanet_r50-d8_512x1024_80k_cityscapes.py - - - - - Name: psanet_r101-d8_512x1024_80k_cityscapes - In Collection: PSANet - Metadata: - inference time (ms/im): - - value: 454.55 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.31 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_80k_cityscapes/psanet_r101-d8_512x1024_80k_cityscapes_20200606_161823-0f73a169.pth - Config: configs/psanet/psanet_r101-d8_512x1024_80k_cityscapes.py - - - - - Name: psanet_r50-d8_769x769_80k_cityscapes - In Collection: PSANet - Metadata: - inference time (ms/im): - - value: 714.29 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.31 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_80k_cityscapes/psanet_r50-d8_769x769_80k_cityscapes_20200606_225134-fe42f49e.pth - Config: configs/psanet/psanet_r50-d8_769x769_80k_cityscapes.py - - - - - Name: psanet_r101-d8_769x769_80k_cityscapes - In Collection: PSANet - Metadata: - inference time (ms/im): - - value: 1020.41 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.69 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_80k_cityscapes/psanet_r101-d8_769x769_80k_cityscapes_20200606_214550-7665827b.pth - Config: configs/psanet/psanet_r101-d8_769x769_80k_cityscapes.py - - - - - Name: psanet_r50-d8_512x512_80k_ade20k - In Collection: PSANet - Metadata: - inference time (ms/im): - - value: 52.88 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 41.14 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_80k_ade20k/psanet_r50-d8_512x512_80k_ade20k_20200614_144141-835e4b97.pth - Config: configs/psanet/psanet_r50-d8_512x512_80k_ade20k.py - - - - - Name: psanet_r101-d8_512x512_80k_ade20k - In Collection: PSANet - Metadata: - inference time (ms/im): - - value: 76.16 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 43.80 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_80k_ade20k/psanet_r101-d8_512x512_80k_ade20k_20200614_185117-1fab60d4.pth - Config: configs/psanet/psanet_r101-d8_512x512_80k_ade20k.py - - - - - Name: psanet_r50-d8_512x512_160k_ade20k - In Collection: PSANet - Metadata: - inference time (ms/im): - - value: 52.88 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 41.67 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_160k_ade20k/psanet_r50-d8_512x512_160k_ade20k_20200615_161258-148077dd.pth - Config: configs/psanet/psanet_r50-d8_512x512_160k_ade20k.py - - - - - Name: psanet_r101-d8_512x512_160k_ade20k - In Collection: PSANet - Metadata: - inference time (ms/im): - - value: 76.16 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 43.74 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_160k_ade20k/psanet_r101-d8_512x512_160k_ade20k_20200615_161537-dbfa564c.pth - Config: configs/psanet/psanet_r101-d8_512x512_160k_ade20k.py - - - - - Name: psanet_r50-d8_512x512_20k_voc12aug - In Collection: PSANet - Metadata: - inference time (ms/im): - - value: 54.82 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 76.39 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_20k_voc12aug/psanet_r50-d8_512x512_20k_voc12aug_20200617_102413-2f1bbaa1.pth - Config: configs/psanet/psanet_r50-d8_512x512_20k_voc12aug.py - - - - - Name: psanet_r101-d8_512x512_20k_voc12aug - In Collection: PSANet - Metadata: - inference time (ms/im): - - value: 79.18 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 77.91 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_20k_voc12aug/psanet_r101-d8_512x512_20k_voc12aug_20200617_110624-946fef11.pth - Config: configs/psanet/psanet_r101-d8_512x512_20k_voc12aug.py - - - - - Name: psanet_r50-d8_512x512_40k_voc12aug - In Collection: PSANet - Metadata: - inference time (ms/im): - - value: 54.82 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 76.30 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_40k_voc12aug/psanet_r50-d8_512x512_40k_voc12aug_20200613_161946-f596afb5.pth - Config: configs/psanet/psanet_r50-d8_512x512_40k_voc12aug.py - - - - - Name: psanet_r101-d8_512x512_40k_voc12aug - In Collection: PSANet - Metadata: - inference time (ms/im): - - value: 79.18 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 77.73 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_40k_voc12aug/psanet_r101-d8_512x512_40k_voc12aug_20200613_161946-1f560f9e.pth - Config: configs/psanet/psanet_r101-d8_512x512_40k_voc12aug.py diff --git a/configs/psanet/psanet.yml b/configs/psanet/psanet.yml new file mode 100644 index 0000000000..a542e5cf3b --- /dev/null +++ b/configs/psanet/psanet.yml @@ -0,0 +1,296 @@ +Collections: +- Name: psanet + Metadata: + Training Data: + - Cityscapes + - ADE20K + - Pascal VOC 2012 + Aug +Models: +- Name: psanet_r50-d8_512x1024_40k_cityscapes + In Collection: psanet + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 315.46 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 7.0 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.63 + mIoU(ms+flip): 79.04 + Config: configs/psanet/psanet_r50-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_40k_cityscapes/psanet_r50-d8_512x1024_40k_cityscapes_20200606_103117-99fac37c.pth +- Name: psanet_r101-d8_512x1024_40k_cityscapes + In Collection: psanet + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 454.55 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 10.5 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.14 + mIoU(ms+flip): 80.19 + Config: configs/psanet/psanet_r101-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_40k_cityscapes/psanet_r101-d8_512x1024_40k_cityscapes_20200606_001418-27b9cfa7.pth +- Name: psanet_r50-d8_769x769_40k_cityscapes + In Collection: psanet + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 714.29 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 7.9 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.99 + mIoU(ms+flip): 79.64 + Config: configs/psanet/psanet_r50-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_40k_cityscapes/psanet_r50-d8_769x769_40k_cityscapes_20200530_033717-d5365506.pth +- Name: psanet_r101-d8_769x769_40k_cityscapes + In Collection: psanet + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 1020.41 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 11.9 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.43 + mIoU(ms+flip): 80.26 + Config: configs/psanet/psanet_r101-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_40k_cityscapes/psanet_r101-d8_769x769_40k_cityscapes_20200530_035107-997da1e6.pth +- Name: psanet_r50-d8_512x1024_80k_cityscapes + In Collection: psanet + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.24 + mIoU(ms+flip): 78.69 + Config: configs/psanet/psanet_r50-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_80k_cityscapes/psanet_r50-d8_512x1024_80k_cityscapes_20200606_161842-ab60a24f.pth +- Name: psanet_r101-d8_512x1024_80k_cityscapes + In Collection: psanet + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.31 + mIoU(ms+flip): 80.53 + Config: configs/psanet/psanet_r101-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_80k_cityscapes/psanet_r101-d8_512x1024_80k_cityscapes_20200606_161823-0f73a169.pth +- Name: psanet_r50-d8_769x769_80k_cityscapes + In Collection: psanet + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.31 + mIoU(ms+flip): 80.91 + Config: configs/psanet/psanet_r50-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_80k_cityscapes/psanet_r50-d8_769x769_80k_cityscapes_20200606_225134-fe42f49e.pth +- Name: psanet_r101-d8_769x769_80k_cityscapes + In Collection: psanet + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.69 + mIoU(ms+flip): 80.89 + Config: configs/psanet/psanet_r101-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_80k_cityscapes/psanet_r101-d8_769x769_80k_cityscapes_20200606_214550-7665827b.pth +- Name: psanet_r50-d8_512x512_80k_ade20k + In Collection: psanet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 52.88 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 9.0 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 41.14 + mIoU(ms+flip): 41.91 + Config: configs/psanet/psanet_r50-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_80k_ade20k/psanet_r50-d8_512x512_80k_ade20k_20200614_144141-835e4b97.pth +- Name: psanet_r101-d8_512x512_80k_ade20k + In Collection: psanet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 76.16 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 12.5 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.8 + mIoU(ms+flip): 44.75 + Config: configs/psanet/psanet_r101-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_80k_ade20k/psanet_r101-d8_512x512_80k_ade20k_20200614_185117-1fab60d4.pth +- Name: psanet_r50-d8_512x512_160k_ade20k + In Collection: psanet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 41.67 + mIoU(ms+flip): 42.95 + Config: configs/psanet/psanet_r50-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_160k_ade20k/psanet_r50-d8_512x512_160k_ade20k_20200615_161258-148077dd.pth +- Name: psanet_r101-d8_512x512_160k_ade20k + In Collection: psanet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.74 + mIoU(ms+flip): 45.38 + Config: configs/psanet/psanet_r101-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_160k_ade20k/psanet_r101-d8_512x512_160k_ade20k_20200615_161537-dbfa564c.pth +- Name: psanet_r50-d8_512x512_20k_voc12aug + In Collection: psanet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 54.82 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 6.9 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.39 + mIoU(ms+flip): 77.34 + Config: configs/psanet/psanet_r50-d8_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_20k_voc12aug/psanet_r50-d8_512x512_20k_voc12aug_20200617_102413-2f1bbaa1.pth +- Name: psanet_r101-d8_512x512_20k_voc12aug + In Collection: psanet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 79.18 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 10.4 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.91 + mIoU(ms+flip): 79.3 + Config: configs/psanet/psanet_r101-d8_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_20k_voc12aug/psanet_r101-d8_512x512_20k_voc12aug_20200617_110624-946fef11.pth +- Name: psanet_r50-d8_512x512_40k_voc12aug + In Collection: psanet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.3 + mIoU(ms+flip): 77.35 + Config: configs/psanet/psanet_r50-d8_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_40k_voc12aug/psanet_r50-d8_512x512_40k_voc12aug_20200613_161946-f596afb5.pth +- Name: psanet_r101-d8_512x512_40k_voc12aug + In Collection: psanet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.73 + mIoU(ms+flip): 79.05 + Config: configs/psanet/psanet_r101-d8_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_40k_voc12aug/psanet_r101-d8_512x512_40k_voc12aug_20200613_161946-1f560f9e.pth diff --git a/configs/pspnet/metafile.yml b/configs/pspnet/metafile.yml deleted file mode 100644 index 992708a2eb..0000000000 --- a/configs/pspnet/metafile.yml +++ /dev/null @@ -1,540 +0,0 @@ -Collections: - - Name: PSPNet - Metadata: - Training Data: - - Cityscapes - - Pascal Context - - Pascal VOC 2012 + Aug - - ADE20K - -Models: - - - Name: pspnet_r50-d8_512x1024_40k_cityscapes - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 245.7 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.85 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth - Config: configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py - - - - - Name: pspnet_r101-d8_512x1024_40k_cityscapes - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 373.13 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.34 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes/pspnet_r101-d8_512x1024_40k_cityscapes_20200604_232751-467e7cf4.pth - Config: configs/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes.py - - - - - Name: pspnet_r50-d8_769x769_40k_cityscapes - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 568.18 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.26 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_40k_cityscapes/pspnet_r50-d8_769x769_40k_cityscapes_20200606_112725-86638686.pth - Config: configs/pspnet/pspnet_r50-d8_769x769_40k_cityscapes.py - - - - - Name: pspnet_r101-d8_769x769_40k_cityscapes - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 869.57 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.08 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_40k_cityscapes/pspnet_r101-d8_769x769_40k_cityscapes_20200606_112753-61c6f5be.pth - Config: configs/pspnet/pspnet_r101-d8_769x769_40k_cityscapes.py - - - - - Name: pspnet_r18-d8_512x1024_80k_cityscapes - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 63.65 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 74.87 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes/pspnet_r18-d8_512x1024_80k_cityscapes_20201225_021458-09ffa746.pth - Config: configs/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes.py - - - - - Name: pspnet_r50-d8_512x1024_80k_cityscapes - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 245.7 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.55 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes/pspnet_r50-d8_512x1024_80k_cityscapes_20200606_112131-2376f12b.pth - Config: configs/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes.py - - - - - Name: pspnet_r101-d8_512x1024_80k_cityscapes - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 373.13 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.76 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes/pspnet_r101-d8_512x1024_80k_cityscapes_20200606_112211-e1e1100f.pth - Config: configs/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py - - - - - Name: pspnet_r18-d8_769x769_80k_cityscapes - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 161.29 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 75.90 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_769x769_80k_cityscapes/pspnet_r18-d8_769x769_80k_cityscapes_20201225_021458-3deefc62.pth - Config: configs/pspnet/pspnet_r18-d8_769x769_80k_cityscapes.py - - - - - Name: pspnet_r50-d8_769x769_80k_cityscapes - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 568.18 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.59 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_80k_cityscapes/pspnet_r50-d8_769x769_80k_cityscapes_20200606_210121-5ccf03dd.pth - Config: configs/pspnet/pspnet_r50-d8_769x769_80k_cityscapes.py - - - - - Name: pspnet_r101-d8_769x769_80k_cityscapes - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 869.57 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.77 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_80k_cityscapes/pspnet_r101-d8_769x769_80k_cityscapes_20200606_225055-dba412fa.pth - Config: configs/pspnet/pspnet_r101-d8_769x769_80k_cityscapes.py - - - - - Name: pspnet_r18b-d8_512x1024_80k_cityscapes - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 61.43 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 74.23 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes/pspnet_r18b-d8_512x1024_80k_cityscapes_20201226_063116-26928a60.pth - Config: configs/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes.py - - - - - Name: pspnet_r50b-d8_512x1024_80k_cityscapes - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 232.56 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.22 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes/pspnet_r50b-d8_512x1024_80k_cityscapes_20201225_094315-6344287a.pth - Config: configs/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes.py - - - - - Name: pspnet_r101b-d8_512x1024_80k_cityscapes - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 362.32 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.69 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes_20201226_170012-3a4d38ab.pth - Config: configs/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes.py - - - - - Name: pspnet_r18b-d8_769x769_80k_cityscapes - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 156.01 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 74.92 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes/pspnet_r18b-d8_769x769_80k_cityscapes_20201226_080942-bf98d186.pth - Config: configs/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes.py - - - - - Name: pspnet_r50b-d8_769x769_80k_cityscapes - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 531.91 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.50 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes/pspnet_r50b-d8_769x769_80k_cityscapes_20201225_094316-4c643cf6.pth - Config: configs/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes.py - - - - - Name: pspnet_r101b-d8_769x769_80k_cityscapes - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 854.7 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.87 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes/pspnet_r101b-d8_769x769_80k_cityscapes_20201226_171823-f0e7c293.pth - Config: configs/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes.py - - - - - Name: pspnet_r50-d8_512x512_80k_ade20k - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 42.5 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 41.13 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_80k_ade20k/pspnet_r50-d8_512x512_80k_ade20k_20200615_014128-15a8b914.pth - Config: configs/pspnet/pspnet_r50-d8_512x512_80k_ade20k.py - - - - - Name: pspnet_r101-d8_512x512_80k_ade20k - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 65.36 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 43.57 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_80k_ade20k/pspnet_r101-d8_512x512_80k_ade20k_20200614_031423-b6e782f0.pth - Config: configs/pspnet/pspnet_r101-d8_512x512_80k_ade20k.py - - - - - Name: pspnet_r50-d8_512x512_160k_ade20k - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 42.5 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 42.48 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_160k_ade20k/pspnet_r50-d8_512x512_160k_ade20k_20200615_184358-1890b0bd.pth - Config: configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py - - - - - Name: pspnet_r101-d8_512x512_160k_ade20k - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 65.36 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 44.39 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_160k_ade20k/pspnet_r101-d8_512x512_160k_ade20k_20200615_100650-967c316f.pth - Config: configs/pspnet/pspnet_r101-d8_512x512_160k_ade20k.py - - - - - Name: pspnet_r50-d8_512x512_20k_voc12aug - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 42.39 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 76.78 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_20k_voc12aug/pspnet_r50-d8_512x512_20k_voc12aug_20200617_101958-ed5dfbd9.pth - Config: configs/pspnet/pspnet_r50-d8_512x512_20k_voc12aug.py - - - - - Name: pspnet_r101-d8_512x512_20k_voc12aug - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 66.58 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 78.47 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_20k_voc12aug/pspnet_r101-d8_512x512_20k_voc12aug_20200617_102003-4aef3c9a.pth - Config: configs/pspnet/pspnet_r101-d8_512x512_20k_voc12aug.py - - - - - Name: pspnet_r50-d8_512x512_40k_voc12aug - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 42.39 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 77.29 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_40k_voc12aug/pspnet_r50-d8_512x512_40k_voc12aug_20200613_161222-ae9c1b8c.pth - Config: configs/pspnet/pspnet_r50-d8_512x512_40k_voc12aug.py - - - - - Name: pspnet_r101-d8_512x512_40k_voc12aug - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 66.58 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 78.52 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_40k_voc12aug/pspnet_r101-d8_512x512_40k_voc12aug_20200613_161222-bc933b18.pth - Config: configs/pspnet/pspnet_r101-d8_512x512_40k_voc12aug.py - - - - - Name: pspnet_r101-d8_480x480_40k_pascal_context - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 103.31 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal Context - Metrics: - mIoU: 46.60 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context/pspnet_r101-d8_480x480_40k_pascal_context_20200911_211210-bf0f5d7c.pth - Config: configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context.py - - - - - Name: pspnet_r101-d8_480x480_80k_pascal_context - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 103.31 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal Context - Metrics: - mIoU: 46.03 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context/pspnet_r101-d8_480x480_80k_pascal_context_20200911_190530-c86d6233.pth - Config: configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context.py - - - - - Name: pspnet_r101-d8_480x480_40k_pascal_context - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: None - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal Context - Metrics: - mIoU: 52.02 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context_59/pspnet_r101-d8_480x480_40k_pascal_context_59_20210416_114524-86d44cd4.pth - Config: configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context.py - - - - - Name: pspnet_r101-d8_480x480_80k_pascal_context_59 - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: None - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal Context - Metrics: - mIoU: 52.47 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context_59/pspnet_r101-d8_480x480_80k_pascal_context_59_20210416_114418-fa6caaa2.pth - Config: configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context_59.py diff --git a/configs/pspnet/pspnet.yml b/configs/pspnet/pspnet.yml new file mode 100644 index 0000000000..bf0f3a79ec --- /dev/null +++ b/configs/pspnet/pspnet.yml @@ -0,0 +1,538 @@ +Collections: +- Name: pspnet + Metadata: + Training Data: + - Cityscapes + - ADE20K + - Pascal VOC 2012 + Aug + - Pascal Context + - Pascal Context 59 +Models: +- Name: pspnet_r50-d8_512x1024_40k_cityscapes + In Collection: pspnet + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 245.7 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 6.1 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.85 + mIoU(ms+flip): 79.18 + Config: configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth +- Name: pspnet_r101-d8_512x1024_40k_cityscapes + In Collection: pspnet + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 373.13 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 9.6 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.34 + mIoU(ms+flip): 79.74 + Config: configs/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes/pspnet_r101-d8_512x1024_40k_cityscapes_20200604_232751-467e7cf4.pth +- Name: pspnet_r50-d8_769x769_40k_cityscapes + In Collection: pspnet + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 568.18 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 6.9 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.26 + mIoU(ms+flip): 79.88 + Config: configs/pspnet/pspnet_r50-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_40k_cityscapes/pspnet_r50-d8_769x769_40k_cityscapes_20200606_112725-86638686.pth +- Name: pspnet_r101-d8_769x769_40k_cityscapes + In Collection: pspnet + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 869.57 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 10.9 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.08 + mIoU(ms+flip): 80.28 + Config: configs/pspnet/pspnet_r101-d8_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_40k_cityscapes/pspnet_r101-d8_769x769_40k_cityscapes_20200606_112753-61c6f5be.pth +- Name: pspnet_r18-d8_512x1024_80k_cityscapes + In Collection: pspnet + Metadata: + backbone: R-18-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 63.65 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 1.7 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 74.87 + mIoU(ms+flip): 76.04 + Config: configs/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes/pspnet_r18-d8_512x1024_80k_cityscapes_20201225_021458-09ffa746.pth +- Name: pspnet_r50-d8_512x1024_80k_cityscapes + In Collection: pspnet + Metadata: + backbone: R-50-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.55 + mIoU(ms+flip): 79.79 + Config: configs/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes/pspnet_r50-d8_512x1024_80k_cityscapes_20200606_112131-2376f12b.pth +- Name: pspnet_r101-d8_512x1024_80k_cityscapes + In Collection: pspnet + Metadata: + backbone: R-101-D8 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.76 + mIoU(ms+flip): 81.01 + Config: configs/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes/pspnet_r101-d8_512x1024_80k_cityscapes_20200606_112211-e1e1100f.pth +- Name: pspnet_r18-d8_769x769_80k_cityscapes + In Collection: pspnet + Metadata: + backbone: R-18-D8 + crop size: (769,769) + lr schd: 80000 + inference time (ms/im): + - value: 161.29 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 1.9 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 75.9 + mIoU(ms+flip): 77.86 + Config: configs/pspnet/pspnet_r18-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_769x769_80k_cityscapes/pspnet_r18-d8_769x769_80k_cityscapes_20201225_021458-3deefc62.pth +- Name: pspnet_r50-d8_769x769_80k_cityscapes + In Collection: pspnet + Metadata: + backbone: R-50-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.59 + mIoU(ms+flip): 80.69 + Config: configs/pspnet/pspnet_r50-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_80k_cityscapes/pspnet_r50-d8_769x769_80k_cityscapes_20200606_210121-5ccf03dd.pth +- Name: pspnet_r101-d8_769x769_80k_cityscapes + In Collection: pspnet + Metadata: + backbone: R-101-D8 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.77 + mIoU(ms+flip): 81.06 + Config: configs/pspnet/pspnet_r101-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_80k_cityscapes/pspnet_r101-d8_769x769_80k_cityscapes_20200606_225055-dba412fa.pth +- Name: pspnet_r18b-d8_512x1024_80k_cityscapes + In Collection: pspnet + Metadata: + backbone: R-18b-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 61.43 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 1.5 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 74.23 + mIoU(ms+flip): 75.79 + Config: configs/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes/pspnet_r18b-d8_512x1024_80k_cityscapes_20201226_063116-26928a60.pth +- Name: pspnet_r50b-d8_512x1024_80k_cityscapes + In Collection: pspnet + Metadata: + backbone: R-50b-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 232.56 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 6.0 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.22 + mIoU(ms+flip): 79.46 + Config: configs/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes/pspnet_r50b-d8_512x1024_80k_cityscapes_20201225_094315-6344287a.pth +- Name: pspnet_r101b-d8_512x1024_80k_cityscapes + In Collection: pspnet + Metadata: + backbone: R-101b-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 362.32 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 9.5 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.69 + mIoU(ms+flip): 80.79 + Config: configs/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes_20201226_170012-3a4d38ab.pth +- Name: pspnet_r18b-d8_769x769_80k_cityscapes + In Collection: pspnet + Metadata: + backbone: R-18b-D8 + crop size: (769,769) + lr schd: 80000 + inference time (ms/im): + - value: 156.01 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 1.7 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 74.92 + mIoU(ms+flip): 76.9 + Config: configs/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes/pspnet_r18b-d8_769x769_80k_cityscapes_20201226_080942-bf98d186.pth +- Name: pspnet_r50b-d8_769x769_80k_cityscapes + In Collection: pspnet + Metadata: + backbone: R-50b-D8 + crop size: (769,769) + lr schd: 80000 + inference time (ms/im): + - value: 531.91 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 6.8 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.5 + mIoU(ms+flip): 79.96 + Config: configs/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes/pspnet_r50b-d8_769x769_80k_cityscapes_20201225_094316-4c643cf6.pth +- Name: pspnet_r101b-d8_769x769_80k_cityscapes + In Collection: pspnet + Metadata: + backbone: R-101b-D8 + crop size: (769,769) + lr schd: 80000 + inference time (ms/im): + - value: 854.7 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 10.8 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.87 + mIoU(ms+flip): 80.04 + Config: configs/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes/pspnet_r101b-d8_769x769_80k_cityscapes_20201226_171823-f0e7c293.pth +- Name: pspnet_r50-d8_512x512_80k_ade20k + In Collection: pspnet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 42.5 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 8.5 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 41.13 + mIoU(ms+flip): 41.94 + Config: configs/pspnet/pspnet_r50-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_80k_ade20k/pspnet_r50-d8_512x512_80k_ade20k_20200615_014128-15a8b914.pth +- Name: pspnet_r101-d8_512x512_80k_ade20k + In Collection: pspnet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 65.36 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 12.0 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.57 + mIoU(ms+flip): 44.35 + Config: configs/pspnet/pspnet_r101-d8_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_80k_ade20k/pspnet_r101-d8_512x512_80k_ade20k_20200614_031423-b6e782f0.pth +- Name: pspnet_r50-d8_512x512_160k_ade20k + In Collection: pspnet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.48 + mIoU(ms+flip): 43.44 + Config: configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_160k_ade20k/pspnet_r50-d8_512x512_160k_ade20k_20200615_184358-1890b0bd.pth +- Name: pspnet_r101-d8_512x512_160k_ade20k + In Collection: pspnet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 44.39 + mIoU(ms+flip): 45.35 + Config: configs/pspnet/pspnet_r101-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_160k_ade20k/pspnet_r101-d8_512x512_160k_ade20k_20200615_100650-967c316f.pth +- Name: pspnet_r50-d8_512x512_20k_voc12aug + In Collection: pspnet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 42.39 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 6.1 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 76.78 + mIoU(ms+flip): 77.61 + Config: configs/pspnet/pspnet_r50-d8_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_20k_voc12aug/pspnet_r50-d8_512x512_20k_voc12aug_20200617_101958-ed5dfbd9.pth +- Name: pspnet_r101-d8_512x512_20k_voc12aug + In Collection: pspnet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 66.58 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 9.6 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 78.47 + mIoU(ms+flip): 79.25 + Config: configs/pspnet/pspnet_r101-d8_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_20k_voc12aug/pspnet_r101-d8_512x512_20k_voc12aug_20200617_102003-4aef3c9a.pth +- Name: pspnet_r50-d8_512x512_40k_voc12aug + In Collection: pspnet + Metadata: + backbone: R-50-D8 + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.29 + mIoU(ms+flip): 78.48 + Config: configs/pspnet/pspnet_r50-d8_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_40k_voc12aug/pspnet_r50-d8_512x512_40k_voc12aug_20200613_161222-ae9c1b8c.pth +- Name: pspnet_r101-d8_512x512_40k_voc12aug + In Collection: pspnet + Metadata: + backbone: R-101-D8 + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 78.52 + mIoU(ms+flip): 79.57 + Config: configs/pspnet/pspnet_r101-d8_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_40k_voc12aug/pspnet_r101-d8_512x512_40k_voc12aug_20200613_161222-bc933b18.pth +- Name: pspnet_r101-d8_480x480_40k_pascal_context + In Collection: pspnet + Metadata: + backbone: R-101-D8 + crop size: (480,480) + lr schd: 40000 + inference time (ms/im): + - value: 103.31 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (480,480) + memory (GB): 8.8 + Results: + Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 46.6 + mIoU(ms+flip): 47.78 + Config: configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context/pspnet_r101-d8_480x480_40k_pascal_context_20200911_211210-bf0f5d7c.pth +- Name: pspnet_r101-d8_480x480_80k_pascal_context + In Collection: pspnet + Metadata: + backbone: R-101-D8 + crop size: (480,480) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Pascal Context + Metrics: + mIoU: 46.03 + mIoU(ms+flip): 47.15 + Config: configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context/pspnet_r101-d8_480x480_80k_pascal_context_20200911_190530-c86d6233.pth +- Name: pspnet_r101-d8_480x480_40k_pascal_context_59 + In Collection: pspnet + Metadata: + backbone: R-101-D8 + crop size: (480,480) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal Context 59 + Metrics: + mIoU: 52.02 + mIoU(ms+flip): 53.54 + Config: configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context_59.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context_59/pspnet_r101-d8_480x480_40k_pascal_context_59_20210416_114524-86d44cd4.pth +- Name: pspnet_r101-d8_480x480_80k_pascal_context_59 + In Collection: pspnet + Metadata: + backbone: R-101-D8 + crop size: (480,480) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Pascal Context 59 + Metrics: + mIoU: 52.47 + mIoU(ms+flip): 53.99 + Config: configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context_59.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context_59/pspnet_r101-d8_480x480_80k_pascal_context_59_20210416_114418-fa6caaa2.pth diff --git a/configs/resnest/metafile.yml b/configs/resnest/metafile.yml deleted file mode 100644 index a778a85757..0000000000 --- a/configs/resnest/metafile.yml +++ /dev/null @@ -1,158 +0,0 @@ -Collections: - - Name: ResNeSt - Metadata: - Training Data: - - Cityscapes - - ADE20K - -Models: - - - Name: fcn_s101-d8_512x1024_80k_cityscapes - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 418.41 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.56 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x1024_80k_cityscapes/fcn_s101-d8_512x1024_80k_cityscapes_20200807_140631-f8d155b3.pth - Config: configs/fcn/fcn_s101-d8_512x1024_80k_cityscapes.py - - - - - Name: pspnet_s101-d8_512x1024_80k_cityscapes - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 396.83 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.57 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x1024_80k_cityscapes/pspnet_s101-d8_512x1024_80k_cityscapes_20200807_140631-c75f3b99.pth - Config: configs/pspnet/pspnet_s101-d8_512x1024_80k_cityscapes.py - - - - - Name: deeplabv3_s101-d8_512x1024_80k_cityscapes - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 531.91 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.67 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes/deeplabv3_s101-d8_512x1024_80k_cityscapes_20200807_144429-b73c4270.pth - Config: configs/deeplabv3/deeplabv3_s101-d8_512x1024_80k_cityscapes.py - - - - - Name: deeplabv3plus_s101-d8_512x1024_80k_cityscapes - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 423.73 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.62 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes/deeplabv3plus_s101-d8_512x1024_80k_cityscapes_20200807_144429-1239eb43.pth - Config: configs/deeplabv3+/deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py - - - - - Name: fcn_s101-d8_512x512_160k_ade20k - In Collection: FCN - Metadata: - inference time (ms/im): - - value: 77.76 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 45.62 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x512_160k_ade20k/fcn_s101-d8_512x512_160k_ade20k_20200807_145416-d3160329.pth - Config: configs/fcn/fcn_s101-d8_512x512_160k_ade20k.py - - - - - Name: pspnet_s101-d8_512x512_160k_ade20k - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: 76.8 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 45.44 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x512_160k_ade20k/pspnet_s101-d8_512x512_160k_ade20k_20200807_145416-a6daa92a.pth - Config: configs/pspnet/pspnet_s101-d8_512x512_160k_ade20k.py - - - - - Name: deeplabv3_s101-d8_512x512_160k_ade20k - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: 107.76 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 45.71 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x512_160k_ade20k/deeplabv3_s101-d8_512x512_160k_ade20k_20200807_144503-17ecabe5.pth - Config: configs/deeplabv3/deeplabv3_s101-d8_512x512_160k_ade20k.py - - - - - Name: deeplabv3plus_s101-d8_512x512_160k_ade20k - In Collection: DeepLabV3+ - Metadata: - inference time (ms/im): - - value: 83.61 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 46.47 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k/deeplabv3plus_s101-d8_512x512_160k_ade20k_20200807_144503-27b26226.pth - Config: configs/deeplabv3+/deeplabv3plus_s101-d8_512x512_160k_ade20k.py diff --git a/configs/resnest/resnest.yml b/configs/resnest/resnest.yml new file mode 100644 index 0000000000..0da8342160 --- /dev/null +++ b/configs/resnest/resnest.yml @@ -0,0 +1,183 @@ +Collections: +- Name: resnest + Metadata: + Training Data: + - Cityscapes + - ADE20k +Models: +- Name: fcn_s101-d8_512x1024_80k_cityscapes + In Collection: resnest + Metadata: + backbone: S-101-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 418.41 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 11.4 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.56 + mIoU(ms+flip): 78.98 + Config: configs/resnest/fcn_s101-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x1024_80k_cityscapes/fcn_s101-d8_512x1024_80k_cityscapes_20200807_140631-f8d155b3.pth +- Name: pspnet_s101-d8_512x1024_80k_cityscapes + In Collection: resnest + Metadata: + backbone: S-101-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 396.83 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 11.8 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.57 + mIoU(ms+flip): 79.19 + Config: configs/resnest/pspnet_s101-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x1024_80k_cityscapes/pspnet_s101-d8_512x1024_80k_cityscapes_20200807_140631-c75f3b99.pth +- Name: deeplabv3_s101-d8_512x1024_80k_cityscapes + In Collection: resnest + Metadata: + backbone: S-101-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 531.91 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 11.9 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.67 + mIoU(ms+flip): 80.51 + Config: configs/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes/deeplabv3_s101-d8_512x1024_80k_cityscapes_20200807_144429-b73c4270.pth +- Name: deeplabv3plus_s101-d8_512x1024_80k_cityscapes + In Collection: resnest + Metadata: + backbone: S-101-D8 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 423.73 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 13.2 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.62 + mIoU(ms+flip): 80.27 + Config: configs/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes/deeplabv3plus_s101-d8_512x1024_80k_cityscapes_20200807_144429-1239eb43.pth +- Name: fcn_s101-d8_512x512_160k_ade20k + In Collection: resnest + Metadata: + backbone: S-101-D8 + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 77.76 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 14.2 + Results: + Task: Semantic Segmentation + Dataset: ADE20k + Metrics: + mIoU: 45.62 + mIoU(ms+flip): 46.16 + Config: configs/resnest/fcn_s101-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x512_160k_ade20k/fcn_s101-d8_512x512_160k_ade20k_20200807_145416-d3160329.pth +- Name: pspnet_s101-d8_512x512_160k_ade20k + In Collection: resnest + Metadata: + backbone: S-101-D8 + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 76.8 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 14.2 + Results: + Task: Semantic Segmentation + Dataset: ADE20k + Metrics: + mIoU: 45.44 + mIoU(ms+flip): 46.28 + Config: configs/resnest/pspnet_s101-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x512_160k_ade20k/pspnet_s101-d8_512x512_160k_ade20k_20200807_145416-a6daa92a.pth +- Name: deeplabv3_s101-d8_512x512_160k_ade20k + In Collection: resnest + Metadata: + backbone: S-101-D8 + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 107.76 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 14.6 + Results: + Task: Semantic Segmentation + Dataset: ADE20k + Metrics: + mIoU: 45.71 + mIoU(ms+flip): 46.59 + Config: configs/resnest/deeplabv3_s101-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x512_160k_ade20k/deeplabv3_s101-d8_512x512_160k_ade20k_20200807_144503-17ecabe5.pth +- Name: deeplabv3plus_s101-d8_512x512_160k_ade20k + In Collection: resnest + Metadata: + backbone: S-101-D8 + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 83.61 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 16.2 + Results: + Task: Semantic Segmentation + Dataset: ADE20k + Metrics: + mIoU: 46.47 + mIoU(ms+flip): 47.27 + Config: configs/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k/deeplabv3plus_s101-d8_512x512_160k_ade20k_20200807_144503-27b26226.pth diff --git a/configs/sem_fpn/metafile.yml b/configs/sem_fpn/metafile.yml deleted file mode 100644 index 52cd379797..0000000000 --- a/configs/sem_fpn/metafile.yml +++ /dev/null @@ -1,83 +0,0 @@ -Collections: - - Name: FPN - Metadata: - Training Data: - - Cityscapes - - Pascal VOC 2012 + Aug - - ADE20K - -Models: - - - Name: fpn_r50_512x1024_80k_cityscapes - In Collection: FPN - Metadata: - inference time (ms/im): - - value: 73.86 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 74.52 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x1024_80k_cityscapes/fpn_r50_512x1024_80k_cityscapes_20200717_021437-94018a0d.pth - Config: configs/fpn/fpn_r50_512x1024_80k_cityscapes.py - - - - - Name: fpn_r101_512x1024_80k_cityscapes - In Collection: FPN - Metadata: - inference time (ms/im): - - value: 97.18 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 75.80 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x1024_80k_cityscapes/fpn_r101_512x1024_80k_cityscapes_20200717_012416-c5800d4c.pth - Config: configs/fpn/fpn_r101_512x1024_80k_cityscapes.py - - - - - Name: fpn_r50_512x512_160k_ade20k - In Collection: FPN - Metadata: - inference time (ms/im): - - value: 17.93 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 37.49 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x512_160k_ade20k/fpn_r50_512x512_160k_ade20k_20200718_131734-5b5a6ab9.pth - Config: configs/fpn/fpn_r50_512x512_160k_ade20k.py - - - - - Name: fpn_r101_512x512_160k_ade20k - In Collection: FPN - Metadata: - inference time (ms/im): - - value: 24.64 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 39.35 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x512_160k_ade20k/fpn_r101_512x512_160k_ade20k_20200718_131734-306b5004.pth - Config: configs/fpn/fpn_r101_512x512_160k_ade20k.py diff --git a/configs/sem_fpn/sem_fpn.yml b/configs/sem_fpn/sem_fpn.yml new file mode 100644 index 0000000000..4de85aa5f8 --- /dev/null +++ b/configs/sem_fpn/sem_fpn.yml @@ -0,0 +1,95 @@ +Collections: +- Name: sem_fpn + Metadata: + Training Data: + - Cityscapes + - ADE20K +Models: +- Name: fpn_r50_512x1024_80k_cityscapes + In Collection: sem_fpn + Metadata: + backbone: R-50 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 73.86 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 2.8 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 74.52 + mIoU(ms+flip): 76.08 + Config: configs/sem_fpn/fpn_r50_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x1024_80k_cityscapes/fpn_r50_512x1024_80k_cityscapes_20200717_021437-94018a0d.pth +- Name: fpn_r101_512x1024_80k_cityscapes + In Collection: sem_fpn + Metadata: + backbone: R-101 + crop size: (512,1024) + lr schd: 80000 + inference time (ms/im): + - value: 97.18 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 3.9 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 75.8 + mIoU(ms+flip): 77.4 + Config: configs/sem_fpn/fpn_r101_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x1024_80k_cityscapes/fpn_r101_512x1024_80k_cityscapes_20200717_012416-c5800d4c.pth +- Name: fpn_r50_512x512_160k_ade20k + In Collection: sem_fpn + Metadata: + backbone: R-50 + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 17.93 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 4.9 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 37.49 + mIoU(ms+flip): 39.09 + Config: configs/sem_fpn/fpn_r50_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x512_160k_ade20k/fpn_r50_512x512_160k_ade20k_20200718_131734-5b5a6ab9.pth +- Name: fpn_r101_512x512_160k_ade20k + In Collection: sem_fpn + Metadata: + backbone: R-101 + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 24.64 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 5.9 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 39.35 + mIoU(ms+flip): 40.72 + Config: configs/sem_fpn/fpn_r101_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x512_160k_ade20k/fpn_r101_512x512_160k_ade20k_20200718_131734-306b5004.pth diff --git a/configs/setr/setr.yml b/configs/setr/setr.yml new file mode 100644 index 0000000000..4a0fb6f55a --- /dev/null +++ b/configs/setr/setr.yml @@ -0,0 +1,87 @@ +Collections: +- Name: setr + Metadata: + Training Data: + - ADE20K +Models: +- Name: setr_naive_512x512_160k_b16_ade20k + In Collection: setr + Metadata: + backbone: ViT-L + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 211.86 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 18.4 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 48.28 + mIoU(ms+flip): 49.56 + Config: configs/setr/setr_naive_512x512_160k_b16_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/setr/setr_naive_512x512_160k_b16_ade20k/setr_naive_512x512_160k_b16_ade20k_20210619_191258-061f24f5.pth +- Name: setr_pup_512x512_160k_b16_ade20k + In Collection: setr + Metadata: + backbone: ViT-L + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 222.22 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 19.54 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 48.24 + mIoU(ms+flip): 49.99 + Config: configs/setr/setr_pup_512x512_160k_b16_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/setr/setr_pup_512x512_160k_b16_ade20k/setr_pup_512x512_160k_b16_ade20k_20210619_191343-7e0ce826.pth +- Name: setr_mla_512x512_160k_b8_ade20k + In Collection: setr + Metadata: + backbone: ViT-L + crop size: (512,512) + lr schd: 160000 + memory (GB): 10.96 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 47.34 + mIoU(ms+flip): 49.05 + Config: configs/setr/setr_mla_512x512_160k_b8_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/setr/setr_mla_512x512_160k_b8_ade20k/setr_mla_512x512_160k_b8_ade20k_20210619_191118-c6d21df0.pth +- Name: setr_mla_512x512_160k_b16_ade20k + In Collection: setr + Metadata: + backbone: ViT-L + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 190.48 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 17.3 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 47.54 + mIoU(ms+flip): 49.37 + Config: configs/setr/setr_mla_512x512_160k_b16_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/setr/setr_mla_512x512_160k_b16_ade20k/setr_mla_512x512_160k_b16_ade20k_20210619_191057-f9741de7.pth diff --git a/configs/swin/swin.yml b/configs/swin/swin.yml new file mode 100644 index 0000000000..0f7c769793 --- /dev/null +++ b/configs/swin/swin.yml @@ -0,0 +1,122 @@ +Collections: +- Name: swin + Metadata: + Training Data: + - ADE20K +Models: +- Name: upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K + In Collection: swin + Metadata: + backbone: Swin-T + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 47.48 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 5.02 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 44.41 + mIoU(ms+flip): 45.79 + Config: configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K_20210531_112542-e380ad3e.pth +- Name: upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K + In Collection: swin + Metadata: + backbone: Swin-S + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 67.93 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 6.17 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 47.72 + mIoU(ms+flip): 49.24 + Config: configs/swin/upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K/upernet_swin_small_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K_20210526_192015-ee2fff1c.pth +- Name: upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K + In Collection: swin + Metadata: + backbone: Swin-B + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 79.05 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 7.61 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 47.99 + mIoU(ms+flip): 49.57 + Config: configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_1K_20210526_192340-593b0e13.pth +- Name: upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K + In Collection: swin + Metadata: + backbone: Swin-B + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 50.31 + mIoU(ms+flip): 51.9 + Config: configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K/upernet_swin_base_patch4_window7_512x512_160k_ade20k_pretrain_224x224_22K_20210526_211650-762e2178.pth +- Name: upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K + In Collection: swin + Metadata: + backbone: Swin-B + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 82.64 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 8.52 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 48.35 + mIoU(ms+flip): 49.65 + Config: configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_1K_20210531_132020-05b22ea4.pth +- Name: upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K + In Collection: swin + Metadata: + backbone: Swin-B + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 50.76 + mIoU(ms+flip): 52.4 + Config: configs/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/swin/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K/upernet_swin_base_patch4_window12_512x512_160k_ade20k_pretrain_384x384_22K_20210531_125459-429057bf.pth diff --git a/configs/unet/README.md b/configs/unet/README.md index 19eef45a1c..a0f7d6502b 100644 --- a/configs/unet/README.md +++ b/configs/unet/README.md @@ -19,32 +19,32 @@ ### DRIVE -| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | config | download | +| Method | Backbone | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | config | download | | ----------- | --------- | ---------- | --------- | -----: | ------- | -------- | -------------: | ----: | ------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| UNet-S5-D16 | FCN | 584x565 | 64x64 | 42x42 | 40000 | 0.680 | - | 78.67 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_64x64_40k_drive/unet_s5-d16_64x64_40k_drive_20201223_191051-5daf6d3b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_64x64_40k_drive/fcn_unet_s5-d16_64x64_40k_drive-20201223_191051.log.json) | -| UNet-S5-D16 | PSPNet | 584x565 | 64x64 | 42x42 | 40000 | 0.599 | - | 78.62 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_64x64_40k_drive/pspnet_unet_s5-d16_64x64_40k_drive_20201227_181818-aac73387.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_64x64_40k_drive/pspnet_unet_s5-d16_64x64_40k_drive-20201227_181818.log.json) | -| UNet-S5-D16 | DeepLabV3 | 584x565 | 64x64 | 42x42 | 40000 | 0.596 | - | 78.69 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/deeplabv3_unet_s5-d16_64x64_40k_drive.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_64x64_40k_drive/deeplabv3_unet_s5-d16_64x64_40k_drive_20201226_094047-0671ff20.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_64x64_40k_drive/deeplabv3_unet_s5-d16_64x64_40k_drive-20201226_094047.log.json) | +| FCN | UNet-S5-D16 | 584x565 | 64x64 | 42x42 | 40000 | 0.680 | - | 78.67 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_64x64_40k_drive/unet_s5-d16_64x64_40k_drive_20201223_191051-5daf6d3b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_64x64_40k_drive/fcn_unet_s5-d16_64x64_40k_drive-20201223_191051.log.json) | +| PSPNet | UNet-S5-D16 | 584x565 | 64x64 | 42x42 | 40000 | 0.599 | - | 78.62 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_64x64_40k_drive/pspnet_unet_s5-d16_64x64_40k_drive_20201227_181818-aac73387.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_64x64_40k_drive/pspnet_unet_s5-d16_64x64_40k_drive-20201227_181818.log.json) | +| DeepLabV3 | UNet-S5-D16 | 584x565 | 64x64 | 42x42 | 40000 | 0.596 | - | 78.69 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/deeplabv3_unet_s5-d16_64x64_40k_drive.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_64x64_40k_drive/deeplabv3_unet_s5-d16_64x64_40k_drive_20201226_094047-0671ff20.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_64x64_40k_drive/deeplabv3_unet_s5-d16_64x64_40k_drive-20201226_094047.log.json) | ### STARE -| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | config | download | +| Method | Backbone | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | config | download | | ----------- | --------- | ---------- | --------- | -----: | ------- | -------- | -------------: | ----: | -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| UNet-S5-D16 | FCN | 605x700 | 128x128 | 85x85 | 40000 | 0.968 | - | 81.02 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_stare/unet_s5-d16_128x128_40k_stare_20201223_191051-7d77e78b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_stare/unet_s5-d16_128x128_40k_stare-20201223_191051.log.json) | -| UNet-S5-D16 | PSPNet | 605x700 | 128x128 | 85x85 | 40000 | 0.982 | - | 81.22 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/pspnet_unet_s5-d16_128x128_40k_stare.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_stare/pspnet_unet_s5-d16_128x128_40k_stare_20201227_181818-3c2923c4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_stare/pspnet_unet_s5-d16_128x128_40k_stare-20201227_181818.log.json) | -| UNet-S5-D16 | DeepLabV3 | 605x700 | 128x128 | 85x85 | 40000 | 0.999 | - | 80.93 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_stare.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_stare/deeplabv3_unet_s5-d16_128x128_40k_stare_20201226_094047-93dcb93c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_stare/deeplabv3_unet_s5-d16_128x128_40k_stare-20201226_094047.log.json) | +| FCN | UNet-S5-D16 | 605x700 | 128x128 | 85x85 | 40000 | 0.968 | - | 81.02 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_stare/unet_s5-d16_128x128_40k_stare_20201223_191051-7d77e78b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_stare/unet_s5-d16_128x128_40k_stare-20201223_191051.log.json) | +| PSPNet | UNet-S5-D16 | 605x700 | 128x128 | 85x85 | 40000 | 0.982 | - | 81.22 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/pspnet_unet_s5-d16_128x128_40k_stare.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_stare/pspnet_unet_s5-d16_128x128_40k_stare_20201227_181818-3c2923c4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_stare/pspnet_unet_s5-d16_128x128_40k_stare-20201227_181818.log.json) | +| DeepLabV3 | UNet-S5-D16 | 605x700 | 128x128 | 85x85 | 40000 | 0.999 | - | 80.93 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_stare.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_stare/deeplabv3_unet_s5-d16_128x128_40k_stare_20201226_094047-93dcb93c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_stare/deeplabv3_unet_s5-d16_128x128_40k_stare-20201226_094047.log.json) | ### CHASE_DB1 -| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | config | download | +| Method | Backbone | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | config | download | | ----------- | --------- | ---------- | --------- | -----: | ------- | -------- | -------------: | ----: | -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| UNet-S5-D16 | FCN | 960x999 | 128x128 | 85x85 | 40000 | 0.968 | - | 80.24 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_chase_db1/unet_s5-d16_128x128_40k_chase_db1_20201223_191051-11543527.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_chase_db1/unet_s5-d16_128x128_40k_chase_db1-20201223_191051.log.json) | -| UNet-S5-D16 | PSPNet | 960x999 | 128x128 | 85x85 | 40000 | 0.982 | - | 80.36 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1/pspnet_unet_s5-d16_128x128_40k_chase_db1_20201227_181818-68d4e609.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1/pspnet_unet_s5-d16_128x128_40k_chase_db1-20201227_181818.log.json) | -| UNet-S5-D16 | DeepLabV3 | 960x999 | 128x128 | 85x85 | 40000 | 0.999 | - | 80.47 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1/deeplabv3_unet_s5-d16_128x128_40k_chase_db1_20201226_094047-4c5aefa3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1/deeplabv3_unet_s5-d16_128x128_40k_chase_db1-20201226_094047.log.json) | +| FCN | UNet-S5-D16 | 960x999 | 128x128 | 85x85 | 40000 | 0.968 | - | 80.24 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_chase_db1/unet_s5-d16_128x128_40k_chase_db1_20201223_191051-11543527.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_chase_db1/unet_s5-d16_128x128_40k_chase_db1-20201223_191051.log.json) | +| PSPNet | UNet-S5-D16 | 960x999 | 128x128 | 85x85 | 40000 | 0.982 | - | 80.36 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1/pspnet_unet_s5-d16_128x128_40k_chase_db1_20201227_181818-68d4e609.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1/pspnet_unet_s5-d16_128x128_40k_chase_db1-20201227_181818.log.json) | +| DeepLabV3 | UNet-S5-D16 | 960x999 | 128x128 | 85x85 | 40000 | 0.999 | - | 80.47 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1/deeplabv3_unet_s5-d16_128x128_40k_chase_db1_20201226_094047-4c5aefa3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1/deeplabv3_unet_s5-d16_128x128_40k_chase_db1-20201226_094047.log.json) | ### HRF -| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | config | download | +| Method | Backbone | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | config | download | | ----------- | --------- | ---------- | --------- | -----: | ------- | -------- | -------------: | ----: | -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| UNet-S5-D16 | FCN | 2336x3504 | 256x256 | 170x170 | 40000 | 2.525 | - | 79.45 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_256x256_40k_hrf/unet_s5-d16_256x256_40k_hrf_20201223_173724-d89cf1ed.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_256x256_40k_hrf/unet_s5-d16_256x256_40k_hrf-20201223_173724.log.json) | -| UNet-S5-D16 | PSPNet | 2336x3504 | 256x256 | 170x170 | 40000 | 2.588 | - | 80.07 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_256x256_40k_hrf/pspnet_unet_s5-d16_256x256_40k_hrf_20201227_181818-fdb7e29b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_256x256_40k_hrf/pspnet_unet_s5-d16_256x256_40k_hrf-20201227_181818.log.json) | -| UNet-S5-D16 | DeepLabV3 | 2336x3504 | 256x256 | 170x170 | 40000 | 2.604 | - | 80.21 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf/deeplabv3_unet_s5-d16_256x256_40k_hrf_20201226_094047-3a1fdf85.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf/deeplabv3_unet_s5-d16_256x256_40k_hrf-20201226_094047.log.json) | +| FCN | UNet-S5-D16 | 2336x3504 | 256x256 | 170x170 | 40000 | 2.525 | - | 79.45 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_256x256_40k_hrf/unet_s5-d16_256x256_40k_hrf_20201223_173724-d89cf1ed.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_256x256_40k_hrf/unet_s5-d16_256x256_40k_hrf-20201223_173724.log.json) | +| PSPNet | UNet-S5-D16 | 2336x3504 | 256x256 | 170x170 | 40000 | 2.588 | - | 80.07 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_256x256_40k_hrf/pspnet_unet_s5-d16_256x256_40k_hrf_20201227_181818-fdb7e29b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_256x256_40k_hrf/pspnet_unet_s5-d16_256x256_40k_hrf-20201227_181818.log.json) | +| DeepLabV3 | UNet-S5-D16 | 2336x3504 | 256x256 | 170x170 | 40000 | 2.604 | - | 80.21 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf/deeplabv3_unet_s5-d16_256x256_40k_hrf_20201226_094047-3a1fdf85.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf/deeplabv3_unet_s5-d16_256x256_40k_hrf-20201226_094047.log.json) | diff --git a/configs/unet/metafile.yml b/configs/unet/metafile.yml deleted file mode 100644 index 7e22509656..0000000000 --- a/configs/unet/metafile.yml +++ /dev/null @@ -1,227 +0,0 @@ -Models: - - - Name: fcn_unet_s5-d16_64x64_40k_drive - In Collection: FCN - Metadata: - inference time (ms/im): - - value: None - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: DRIVE - Metrics: - mIoU: 0.680 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_64x64_40k_drive/fcn_unet_s5-d16_64x64_40k_drive_20201223_191051-26cee593.pth - Config: configs/unet-s5-d16/fcn_unet_s5-d16_64x64_40k_drive.py - - - - - Name: pspnet_unet_s5-d16_64x64_40k_drive - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: None - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: DRIVE - Metrics: - mIoU: 0.599 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_64x64_40k_drive/pspnet_unet_s5-d16_64x64_40k_drive_20201227_181818-aac73387.pth - Config: configs/unet-s5-d16/pspnet_unet_s5-d16_64x64_40k_drive.py - - - - - Name: deeplabv3_unet_s5-d16_64x64_40k_drive - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: None - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: DRIVE - Metrics: - mIoU: 0.596 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_64x64_40k_drive/deeplabv3_unet_s5-d16_64x64_40k_drive_20201226_094047-0671ff20.pth - Config: configs/unet-s5-d16/deeplabv3_unet_s5-d16_64x64_40k_drive.py - - - - - Name: fcn_unet_s5-d16_128x128_40k_stare - In Collection: FCN - Metadata: - inference time (ms/im): - - value: None - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: STARE - Metrics: - mIoU: 0.968 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_stare/fcn_unet_s5-d16_128x128_40k_stare_20201223_191051-6ea7cfda.pth - Config: configs/unet-s5-d16/fcn_unet_s5-d16_128x128_40k_stare.py - - - - - Name: pspnet_unet_s5-d16_128x128_40k_stare - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: None - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: STARE - Metrics: - mIoU: 0.982 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_stare/pspnet_unet_s5-d16_128x128_40k_stare_20201227_181818-3c2923c4.pth - Config: configs/unet-s5-d16/pspnet_unet_s5-d16_128x128_40k_stare.py - - - - - Name: deeplabv3_unet_s5-d16_128x128_40k_stare - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: None - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: STARE - Metrics: - mIoU: 0.999 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_stare/deeplabv3_unet_s5-d16_128x128_40k_stare_20201226_094047-93dcb93c.pth - Config: configs/unet-s5-d16/deeplabv3_unet_s5-d16_128x128_40k_stare.py - - - - - Name: fcn_unet_s5-d16_128x128_40k_chase_db1 - In Collection: FCN - Metadata: - inference time (ms/im): - - value: None - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: CHASE_DB1 - Metrics: - mIoU: 0.968 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_chase_db1/fcn_unet_s5-d16_128x128_40k_chase_db1_20201223_191051-95852f45.pth - Config: configs/unet-s5-d16/fcn_unet_s5-d16_128x128_40k_chase_db1.py - - - - - Name: pspnet_unet_s5-d16_128x128_40k_chase_db1 - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: None - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: CHASE_DB1 - Metrics: - mIoU: 0.982 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1/pspnet_unet_s5-d16_128x128_40k_chase_db1_20201227_181818-68d4e609.pth - Config: configs/unet-s5-d16/pspnet_unet_s5-d16_128x128_40k_chase_db1.py - - - - - Name: deeplabv3_unet_s5-d16_128x128_40k_chase_db1 - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: None - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: CHASE_DB1 - Metrics: - mIoU: 0.999 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1/deeplabv3_unet_s5-d16_128x128_40k_chase_db1_20201226_094047-4c5aefa3.pth - Config: configs/unet-s5-d16/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py - - - - - Name: fcn_unet_s5-d16_256x256_40k_hrf - In Collection: FCN - Metadata: - inference time (ms/im): - - value: None - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: HRF - Metrics: - mIoU: 2.525 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_256x256_40k_hrf/fcn_unet_s5-d16_256x256_40k_hrf_20201223_173724-df3ec8c4.pth - Config: configs/unet-s5-d16/fcn_unet_s5-d16_256x256_40k_hrf.py - - - - - Name: pspnet_unet_s5-d16_256x256_40k_hrf - In Collection: PSPNet - Metadata: - inference time (ms/im): - - value: None - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: HRF - Metrics: - mIoU: 2.588 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_256x256_40k_hrf/pspnet_unet_s5-d16_256x256_40k_hrf_20201227_181818-fdb7e29b.pth - Config: configs/unet-s5-d16/pspnet_unet_s5-d16_256x256_40k_hrf.py - - - - - Name: deeplabv3_unet_s5-d16_256x256_40k_hrf - In Collection: DeepLabV3 - Metadata: - inference time (ms/im): - - value: None - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: HRF - Metrics: - mIoU: 2.604 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf/deeplabv3_unet_s5-d16_256x256_40k_hrf_20201226_094047-3a1fdf85.pth - Config: configs/unet-s5-d16/deeplabv3_unet_s5-d16_256x256_40k_hrf.py diff --git a/configs/unet/unet.yml b/configs/unet/unet.yml new file mode 100644 index 0000000000..22967323c6 --- /dev/null +++ b/configs/unet/unet.yml @@ -0,0 +1,177 @@ +Collections: +- Name: unet + Metadata: + Training Data: + - DRIVE + - STARE + - CHASE_DB1 + - HRF +Models: +- Name: fcn_unet_s5-d16_64x64_40k_drive + In Collection: unet + Metadata: + backbone: UNet-S5-D16 + crop size: (64,64) + lr schd: 40000 + memory (GB): 0.68 + Results: + Task: Semantic Segmentation + Dataset: DRIVE + Metrics: + mIoU: 78.67 + Config: configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_64x64_40k_drive/unet_s5-d16_64x64_40k_drive_20201223_191051-5daf6d3b.pth +- Name: pspnet_unet_s5-d16_64x64_40k_drive + In Collection: unet + Metadata: + backbone: UNet-S5-D16 + crop size: (64,64) + lr schd: 40000 + memory (GB): 0.599 + Results: + Task: Semantic Segmentation + Dataset: DRIVE + Metrics: + mIoU: 78.62 + Config: configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_64x64_40k_drive/pspnet_unet_s5-d16_64x64_40k_drive_20201227_181818-aac73387.pth +- Name: deeplabv3_unet_s5-d16_64x64_40k_drive + In Collection: unet + Metadata: + backbone: UNet-S5-D16 + crop size: (64,64) + lr schd: 40000 + memory (GB): 0.596 + Results: + Task: Semantic Segmentation + Dataset: DRIVE + Metrics: + mIoU: 78.69 + Config: configs/unet/deeplabv3_unet_s5-d16_64x64_40k_drive.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_64x64_40k_drive/deeplabv3_unet_s5-d16_64x64_40k_drive_20201226_094047-0671ff20.pth +- Name: fcn_unet_s5-d16_128x128_40k_stare + In Collection: unet + Metadata: + backbone: UNet-S5-D16 + crop size: (128,128) + lr schd: 40000 + memory (GB): 0.968 + Results: + Task: Semantic Segmentation + Dataset: STARE + Metrics: + mIoU: 81.02 + Config: configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_stare/unet_s5-d16_128x128_40k_stare_20201223_191051-7d77e78b.pth +- Name: pspnet_unet_s5-d16_128x128_40k_stare + In Collection: unet + Metadata: + backbone: UNet-S5-D16 + crop size: (128,128) + lr schd: 40000 + memory (GB): 0.982 + Results: + Task: Semantic Segmentation + Dataset: STARE + Metrics: + mIoU: 81.22 + Config: configs/unet/pspnet_unet_s5-d16_128x128_40k_stare.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_stare/pspnet_unet_s5-d16_128x128_40k_stare_20201227_181818-3c2923c4.pth +- Name: deeplabv3_unet_s5-d16_128x128_40k_stare + In Collection: unet + Metadata: + backbone: UNet-S5-D16 + crop size: (128,128) + lr schd: 40000 + memory (GB): 0.999 + Results: + Task: Semantic Segmentation + Dataset: STARE + Metrics: + mIoU: 80.93 + Config: configs/unet/deeplabv3_unet_s5-d16_128x128_40k_stare.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_stare/deeplabv3_unet_s5-d16_128x128_40k_stare_20201226_094047-93dcb93c.pth +- Name: fcn_unet_s5-d16_128x128_40k_chase_db1 + In Collection: unet + Metadata: + backbone: UNet-S5-D16 + crop size: (128,128) + lr schd: 40000 + memory (GB): 0.968 + Results: + Task: Semantic Segmentation + Dataset: CHASE_DB1 + Metrics: + mIoU: 80.24 + Config: configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_128x128_40k_chase_db1/unet_s5-d16_128x128_40k_chase_db1_20201223_191051-11543527.pth +- Name: pspnet_unet_s5-d16_128x128_40k_chase_db1 + In Collection: unet + Metadata: + backbone: UNet-S5-D16 + crop size: (128,128) + lr schd: 40000 + memory (GB): 0.982 + Results: + Task: Semantic Segmentation + Dataset: CHASE_DB1 + Metrics: + mIoU: 80.36 + Config: configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1/pspnet_unet_s5-d16_128x128_40k_chase_db1_20201227_181818-68d4e609.pth +- Name: deeplabv3_unet_s5-d16_128x128_40k_chase_db1 + In Collection: unet + Metadata: + backbone: UNet-S5-D16 + crop size: (128,128) + lr schd: 40000 + memory (GB): 0.999 + Results: + Task: Semantic Segmentation + Dataset: CHASE_DB1 + Metrics: + mIoU: 80.47 + Config: configs/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1/deeplabv3_unet_s5-d16_128x128_40k_chase_db1_20201226_094047-4c5aefa3.pth +- Name: fcn_unet_s5-d16_256x256_40k_hrf + In Collection: unet + Metadata: + backbone: UNet-S5-D16 + crop size: (256,256) + lr schd: 40000 + memory (GB): 2.525 + Results: + Task: Semantic Segmentation + Dataset: HRF + Metrics: + mIoU: 79.45 + Config: configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/unet_s5-d16_256x256_40k_hrf/unet_s5-d16_256x256_40k_hrf_20201223_173724-d89cf1ed.pth +- Name: pspnet_unet_s5-d16_256x256_40k_hrf + In Collection: unet + Metadata: + backbone: UNet-S5-D16 + crop size: (256,256) + lr schd: 40000 + memory (GB): 2.588 + Results: + Task: Semantic Segmentation + Dataset: HRF + Metrics: + mIoU: 80.07 + Config: configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_256x256_40k_hrf/pspnet_unet_s5-d16_256x256_40k_hrf_20201227_181818-fdb7e29b.pth +- Name: deeplabv3_unet_s5-d16_256x256_40k_hrf + In Collection: unet + Metadata: + backbone: UNet-S5-D16 + crop size: (256,256) + lr schd: 40000 + memory (GB): 2.604 + Results: + Task: Semantic Segmentation + Dataset: HRF + Metrics: + mIoU: 80.21 + Config: configs/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf/deeplabv3_unet_s5-d16_256x256_40k_hrf_20201226_094047-3a1fdf85.pth diff --git a/configs/upernet/metafile.yml b/configs/upernet/metafile.yml deleted file mode 100644 index 53361b6290..0000000000 --- a/configs/upernet/metafile.yml +++ /dev/null @@ -1,311 +0,0 @@ -Collections: - - Name: UPerNet - Metadata: - Training Data: - - Cityscapes - - Pascal VOC 2012 + Aug - - ADE20K - -Models: - - - Name: upernet_r50_512x1024_40k_cityscapes - In Collection: UPerNet - Metadata: - inference time (ms/im): - - value: 235.29 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.10 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_40k_cityscapes/upernet_r50_512x1024_40k_cityscapes_20200605_094827-aa54cb54.pth - Config: configs/upernet/upernet_r50_512x1024_40k_cityscapes.py - - - - - Name: upernet_r101_512x1024_40k_cityscapes - In Collection: UPerNet - Metadata: - inference time (ms/im): - - value: 263.85 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.69 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_40k_cityscapes/upernet_r101_512x1024_40k_cityscapes_20200605_094933-ebce3b10.pth - Config: configs/upernet/upernet_r101_512x1024_40k_cityscapes.py - - - - - Name: upernet_r50_769x769_40k_cityscapes - In Collection: UPerNet - Metadata: - inference time (ms/im): - - value: 568.18 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 77.98 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_40k_cityscapes/upernet_r50_769x769_40k_cityscapes_20200530_033048-92d21539.pth - Config: configs/upernet/upernet_r50_769x769_40k_cityscapes.py - - - - - Name: upernet_r101_769x769_40k_cityscapes - In Collection: UPerNet - Metadata: - inference time (ms/im): - - value: 641.03 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.03 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_40k_cityscapes/upernet_r101_769x769_40k_cityscapes_20200530_040819-83c95d01.pth - Config: configs/upernet/upernet_r101_769x769_40k_cityscapes.py - - - - - Name: upernet_r50_512x1024_80k_cityscapes - In Collection: UPerNet - Metadata: - inference time (ms/im): - - value: 235.29 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 78.19 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_80k_cityscapes/upernet_r50_512x1024_80k_cityscapes_20200607_052207-848beca8.pth - Config: configs/upernet/upernet_r50_512x1024_80k_cityscapes.py - - - - - Name: upernet_r101_512x1024_80k_cityscapes - In Collection: UPerNet - Metadata: - inference time (ms/im): - - value: 263.85 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.40 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_80k_cityscapes/upernet_r101_512x1024_80k_cityscapes_20200607_002403-f05f2345.pth - Config: configs/upernet/upernet_r101_512x1024_80k_cityscapes.py - - - - - Name: upernet_r50_769x769_80k_cityscapes - In Collection: UPerNet - Metadata: - inference time (ms/im): - - value: 568.18 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 79.39 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_80k_cityscapes/upernet_r50_769x769_80k_cityscapes_20200607_005107-82ae7d15.pth - Config: configs/upernet/upernet_r50_769x769_80k_cityscapes.py - - - - - Name: upernet_r101_769x769_80k_cityscapes - In Collection: UPerNet - Metadata: - inference time (ms/im): - - value: 641.03 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Cityscapes - Metrics: - mIoU: 80.10 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_80k_cityscapes/upernet_r101_769x769_80k_cityscapes_20200607_001014-082fc334.pth - Config: configs/upernet/upernet_r101_769x769_80k_cityscapes.py - - - - - Name: upernet_r50_512x512_80k_ade20k - In Collection: UPerNet - Metadata: - inference time (ms/im): - - value: 42.74 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 40.70 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_80k_ade20k/upernet_r50_512x512_80k_ade20k_20200614_144127-ecc8377b.pth - Config: configs/upernet/upernet_r50_512x512_80k_ade20k.py - - - - - Name: upernet_r101_512x512_80k_ade20k - In Collection: UPerNet - Metadata: - inference time (ms/im): - - value: 49.16 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 42.91 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_80k_ade20k/upernet_r101_512x512_80k_ade20k_20200614_185117-32e4db94.pth - Config: configs/upernet/upernet_r101_512x512_80k_ade20k.py - - - - - Name: upernet_r50_512x512_160k_ade20k - In Collection: UPerNet - Metadata: - inference time (ms/im): - - value: 42.74 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 42.05 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_160k_ade20k/upernet_r50_512x512_160k_ade20k_20200615_184328-8534de8d.pth - Config: configs/upernet/upernet_r50_512x512_160k_ade20k.py - - - - - Name: upernet_r101_512x512_160k_ade20k - In Collection: UPerNet - Metadata: - inference time (ms/im): - - value: 49.16 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: ADE20K - Metrics: - mIoU: 43.82 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_160k_ade20k/upernet_r101_512x512_160k_ade20k_20200615_161951-91b32684.pth - Config: configs/upernet/upernet_r101_512x512_160k_ade20k.py - - - - - Name: upernet_r50_512x512_20k_voc12aug - In Collection: UPerNet - Metadata: - inference time (ms/im): - - value: 43.16 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 74.82 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_20k_voc12aug/upernet_r50_512x512_20k_voc12aug_20200617_165330-5b5890a7.pth - Config: configs/upernet/upernet_r50_512x512_20k_voc12aug.py - - - - - Name: upernet_r101_512x512_20k_voc12aug - In Collection: UPerNet - Metadata: - inference time (ms/im): - - value: 50.05 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 77.10 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_20k_voc12aug/upernet_r101_512x512_20k_voc12aug_20200617_165629-f14e7f27.pth - Config: configs/upernet/upernet_r101_512x512_20k_voc12aug.py - - - - - Name: upernet_r50_512x512_40k_voc12aug - In Collection: UPerNet - Metadata: - inference time (ms/im): - - value: 43.16 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 75.92 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_40k_voc12aug/upernet_r50_512x512_40k_voc12aug_20200613_162257-ca9bcc6b.pth - Config: configs/upernet/upernet_r50_512x512_40k_voc12aug.py - - - - - Name: upernet_r101_512x512_40k_voc12aug - In Collection: UPerNet - Metadata: - inference time (ms/im): - - value: 50.05 - hardware: V100 - backend: PyTorch - batch size: 1 - mode: FP32 - Results: - - Task: Semantic Segmentation - Dataset: Pascal VOC 2012 + Aug - Metrics: - mIoU: 77.43 - Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_40k_voc12aug/upernet_r101_512x512_40k_voc12aug_20200613_163549-e26476ac.pth - Config: configs/upernet/upernet_r101_512x512_40k_voc12aug.py diff --git a/configs/upernet/upernet.yml b/configs/upernet/upernet.yml new file mode 100644 index 0000000000..f95747a49c --- /dev/null +++ b/configs/upernet/upernet.yml @@ -0,0 +1,296 @@ +Collections: +- Name: upernet + Metadata: + Training Data: + - Cityscapes + - ADE20K + - Pascal VOC 2012 + Aug +Models: +- Name: upernet_r50_512x1024_40k_cityscapes + In Collection: upernet + Metadata: + backbone: R-50 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 235.29 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 6.4 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.1 + mIoU(ms+flip): 78.37 + Config: configs/upernet/upernet_r50_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_40k_cityscapes/upernet_r50_512x1024_40k_cityscapes_20200605_094827-aa54cb54.pth +- Name: upernet_r101_512x1024_40k_cityscapes + In Collection: upernet + Metadata: + backbone: R-101 + crop size: (512,1024) + lr schd: 40000 + inference time (ms/im): + - value: 263.85 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,1024) + memory (GB): 7.4 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.69 + mIoU(ms+flip): 80.11 + Config: configs/upernet/upernet_r101_512x1024_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_40k_cityscapes/upernet_r101_512x1024_40k_cityscapes_20200605_094933-ebce3b10.pth +- Name: upernet_r50_769x769_40k_cityscapes + In Collection: upernet + Metadata: + backbone: R-50 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 568.18 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 7.2 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 77.98 + mIoU(ms+flip): 79.7 + Config: configs/upernet/upernet_r50_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_40k_cityscapes/upernet_r50_769x769_40k_cityscapes_20200530_033048-92d21539.pth +- Name: upernet_r101_769x769_40k_cityscapes + In Collection: upernet + Metadata: + backbone: R-101 + crop size: (769,769) + lr schd: 40000 + inference time (ms/im): + - value: 641.03 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (769,769) + memory (GB): 8.4 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.03 + mIoU(ms+flip): 80.77 + Config: configs/upernet/upernet_r101_769x769_40k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_40k_cityscapes/upernet_r101_769x769_40k_cityscapes_20200530_040819-83c95d01.pth +- Name: upernet_r50_512x1024_80k_cityscapes + In Collection: upernet + Metadata: + backbone: R-50 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 78.19 + mIoU(ms+flip): 79.19 + Config: configs/upernet/upernet_r50_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_80k_cityscapes/upernet_r50_512x1024_80k_cityscapes_20200607_052207-848beca8.pth +- Name: upernet_r101_512x1024_80k_cityscapes + In Collection: upernet + Metadata: + backbone: R-101 + crop size: (512,1024) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.4 + mIoU(ms+flip): 80.46 + Config: configs/upernet/upernet_r101_512x1024_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_80k_cityscapes/upernet_r101_512x1024_80k_cityscapes_20200607_002403-f05f2345.pth +- Name: upernet_r50_769x769_80k_cityscapes + In Collection: upernet + Metadata: + backbone: R-50 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 79.39 + mIoU(ms+flip): 80.92 + Config: configs/upernet/upernet_r50_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_80k_cityscapes/upernet_r50_769x769_80k_cityscapes_20200607_005107-82ae7d15.pth +- Name: upernet_r101_769x769_80k_cityscapes + In Collection: upernet + Metadata: + backbone: R-101 + crop size: (769,769) + lr schd: 80000 + Results: + Task: Semantic Segmentation + Dataset: Cityscapes + Metrics: + mIoU: 80.1 + mIoU(ms+flip): 81.49 + Config: configs/upernet/upernet_r101_769x769_80k_cityscapes.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_80k_cityscapes/upernet_r101_769x769_80k_cityscapes_20200607_001014-082fc334.pth +- Name: upernet_r50_512x512_80k_ade20k + In Collection: upernet + Metadata: + backbone: R-50 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 42.74 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 8.1 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 40.7 + mIoU(ms+flip): 41.81 + Config: configs/upernet/upernet_r50_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_80k_ade20k/upernet_r50_512x512_80k_ade20k_20200614_144127-ecc8377b.pth +- Name: upernet_r101_512x512_80k_ade20k + In Collection: upernet + Metadata: + backbone: R-101 + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 49.16 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 9.1 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.91 + mIoU(ms+flip): 43.96 + Config: configs/upernet/upernet_r101_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_80k_ade20k/upernet_r101_512x512_80k_ade20k_20200614_185117-32e4db94.pth +- Name: upernet_r50_512x512_160k_ade20k + In Collection: upernet + Metadata: + backbone: R-50 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.05 + mIoU(ms+flip): 42.78 + Config: configs/upernet/upernet_r50_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_160k_ade20k/upernet_r50_512x512_160k_ade20k_20200615_184328-8534de8d.pth +- Name: upernet_r101_512x512_160k_ade20k + In Collection: upernet + Metadata: + backbone: R-101 + crop size: (512,512) + lr schd: 160000 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.82 + mIoU(ms+flip): 44.85 + Config: configs/upernet/upernet_r101_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_160k_ade20k/upernet_r101_512x512_160k_ade20k_20200615_161951-91b32684.pth +- Name: upernet_r50_512x512_20k_voc12aug + In Collection: upernet + Metadata: + backbone: R-50 + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 43.16 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 6.4 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 74.82 + mIoU(ms+flip): 76.35 + Config: configs/upernet/upernet_r50_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_20k_voc12aug/upernet_r50_512x512_20k_voc12aug_20200617_165330-5b5890a7.pth +- Name: upernet_r101_512x512_20k_voc12aug + In Collection: upernet + Metadata: + backbone: R-101 + crop size: (512,512) + lr schd: 20000 + inference time (ms/im): + - value: 50.05 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 7.5 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.1 + mIoU(ms+flip): 78.29 + Config: configs/upernet/upernet_r101_512x512_20k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_20k_voc12aug/upernet_r101_512x512_20k_voc12aug_20200617_165629-f14e7f27.pth +- Name: upernet_r50_512x512_40k_voc12aug + In Collection: upernet + Metadata: + backbone: R-50 + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 75.92 + mIoU(ms+flip): 77.44 + Config: configs/upernet/upernet_r50_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_40k_voc12aug/upernet_r50_512x512_40k_voc12aug_20200613_162257-ca9bcc6b.pth +- Name: upernet_r101_512x512_40k_voc12aug + In Collection: upernet + Metadata: + backbone: R-101 + crop size: (512,512) + lr schd: 40000 + Results: + Task: Semantic Segmentation + Dataset: Pascal VOC 2012 + Aug + Metrics: + mIoU: 77.43 + mIoU(ms+flip): 78.56 + Config: configs/upernet/upernet_r101_512x512_40k_voc12aug.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_40k_voc12aug/upernet_r101_512x512_40k_voc12aug_20200613_163549-e26476ac.pth diff --git a/configs/vit/vit.yml b/configs/vit/vit.yml new file mode 100644 index 0000000000..3430915281 --- /dev/null +++ b/configs/vit/vit.yml @@ -0,0 +1,248 @@ +Collections: +- Name: vit + Metadata: + Training Data: + - ADE20K +Models: +- Name: upernet_vit-b16_mln_512x512_80k_ade20k + In Collection: vit + Metadata: + backbone: ViT-B + MLN + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 144.09 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 9.2 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 47.71 + mIoU(ms+flip): 49.51 + Config: configs/vit/upernet_vit-b16_mln_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_mln_512x512_80k_ade20k/upernet_vit-b16_mln_512x512_80k_ade20k-0403cee1.pth +- Name: upernet_vit-b16_mln_512x512_160k_ade20k + In Collection: vit + Metadata: + backbone: ViT-B + MLN + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 131.93 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 9.2 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 46.75 + mIoU(ms+flip): 48.46 + Config: configs/vit/upernet_vit-b16_mln_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_mln_512x512_160k_ade20k/upernet_vit-b16_mln_512x512_160k_ade20k-852fa768.pth +- Name: upernet_vit-b16_ln_mln_512x512_160k_ade20k + In Collection: vit + Metadata: + backbone: ViT-B + LN + MLN + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 146.63 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 9.21 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 47.73 + mIoU(ms+flip): 49.95 + Config: configs/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_vit-b16_ln_mln_512x512_160k_ade20k/upernet_vit-b16_ln_mln_512x512_160k_ade20k-f444c077.pth +- Name: upernet_deit-s16_512x512_80k_ade20k + In Collection: vit + Metadata: + backbone: DeiT-S + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 33.5 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 4.68 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.96 + mIoU(ms+flip): 43.79 + Config: configs/vit/upernet_deit-s16_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_512x512_80k_ade20k/upernet_deit-s16_512x512_80k_ade20k-afc93ec2.pth +- Name: upernet_deit-s16_512x512_160k_ade20k + In Collection: vit + Metadata: + backbone: DeiT-S + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 34.26 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 4.68 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 42.87 + mIoU(ms+flip): 43.79 + Config: configs/vit/upernet_deit-s16_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_512x512_160k_ade20k/upernet_deit-s16_512x512_160k_ade20k-5110d916.pth +- Name: upernet_deit-s16_mln_512x512_160k_ade20k + In Collection: vit + Metadata: + backbone: DeiT-S + MLN + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 89.45 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 5.69 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.82 + mIoU(ms+flip): 45.07 + Config: configs/vit/upernet_deit-s16_mln_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_mln_512x512_160k_ade20k/upernet_deit-s16_mln_512x512_160k_ade20k-fb9a5dfb.pth +- Name: upernet_deit-s16_ln_mln_512x512_160k_ade20k + In Collection: vit + Metadata: + backbone: DeiT-S + LN + MLN + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 80.71 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 5.69 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 43.52 + mIoU(ms+flip): 45.01 + Config: configs/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-s16_ln_mln_512x512_160k_ade20k/upernet_deit-s16_ln_mln_512x512_160k_ade20k-c0cd652f.pth +- Name: upernet_deit-b16_512x512_80k_ade20k + In Collection: vit + Metadata: + backbone: DeiT-B + crop size: (512,512) + lr schd: 80000 + inference time (ms/im): + - value: 103.2 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 7.75 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 45.24 + mIoU(ms+flip): 46.73 + Config: configs/vit/upernet_deit-b16_512x512_80k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_512x512_80k_ade20k/upernet_deit-b16_512x512_80k_ade20k-1e090789.pth +- Name: upernet_deit-b16_512x512_160k_ade20k + In Collection: vit + Metadata: + backbone: DeiT-B + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 96.25 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 7.75 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 45.36 + mIoU(ms+flip): 47.16 + Config: configs/vit/upernet_deit-b16_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_512x512_160k_ade20k/upernet_deit-b16_512x512_160k_ade20k-828705d7.pth +- Name: upernet_deit-b16_mln_512x512_160k_ade20k + In Collection: vit + Metadata: + backbone: DeiT-B + MLN + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 128.53 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 9.21 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 45.46 + mIoU(ms+flip): 47.16 + Config: configs/vit/upernet_deit-b16_mln_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_mln_512x512_160k_ade20k/upernet_deit-b16_mln_512x512_160k_ade20k-4e1450f3.pth +- Name: upernet_deit-b16_ln_mln_512x512_160k_ade20k + In Collection: vit + Metadata: + backbone: DeiT-B + LN + MLN + crop size: (512,512) + lr schd: 160000 + inference time (ms/im): + - value: 129.03 + hardware: V100 + backend: PyTorch + batch size: 1 + mode: FP32 + resolution: (512,512) + memory (GB): 9.21 + Results: + Task: Semantic Segmentation + Dataset: ADE20K + Metrics: + mIoU: 45.37 + mIoU(ms+flip): 47.23 + Config: configs/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k.py + Weights: https://download.openmmlab.com/mmsegmentation/v0.5/vit/upernet_deit-b16_ln_mln_512x512_160k_ade20k/upernet_deit-b16_ln_mln_512x512_160k_ade20k-8a959c14.pth diff --git a/model-index.yml b/model-index.yml index 6a95f49c32..f834162e26 100644 --- a/model-index.yml +++ b/model-index.yml @@ -1,27 +1,31 @@ Import: - - configs/ann/metafile.yml - - configs/apcnet/metafile.yml - - configs/ccnet/metafile.yml - - configs/cgnet/metafile.yml - - configs/danet/metafile.yml - - configs/deeplabv3/metafile.yml - - configs/deeplabv3plus/metafile.yml - - configs/dnlnet/metafile.yml - - configs/emanet/metafile.yml - - configs/encnet/metafile.yml - - configs/fastscnn/metafile.yml - - configs/fcn/metafile.yml - - configs/fp16/metafile.yml - - configs/gcnet/metafile.yml - - configs/hrnet/metafile.yml - - configs/mobilenet_v2/metafile.yml - - configs/mobilenet_v3/metafile.yml - - configs/nonlocal_net/metafile.yml - - configs/ocrnet/metafile.yml - - configs/point_rend/metafile.yml - - configs/psanet/metafile.yml - - configs/pspnet/metafile.yml - - configs/resnest/metafile.yml - - configs/sem_fpn/metafile.yml - - configs/unet/metafile.yml - - configs/upernet/metafile.yml +- configs/ann/ann.yml +- configs/apcnet/apcnet.yml +- configs/ccnet/ccnet.yml +- configs/cgnet/cgnet.yml +- configs/danet/danet.yml +- configs/deeplabv3/deeplabv3.yml +- configs/deeplabv3plus/deeplabv3plus.yml +- configs/dmnet/dmnet.yml +- configs/dnlnet/dnlnet.yml +- configs/emanet/emanet.yml +- configs/encnet/encnet.yml +- configs/fastscnn/fastscnn.yml +- configs/fcn/fcn.yml +- configs/fp16/fp16.yml +- configs/gcnet/gcnet.yml +- configs/hrnet/hrnet.yml +- configs/mobilenet_v2/mobilenet_v2.yml +- configs/mobilenet_v3/mobilenet_v3.yml +- configs/nonlocal_net/nonlocal_net.yml +- configs/ocrnet/ocrnet.yml +- configs/point_rend/point_rend.yml +- configs/psanet/psanet.yml +- configs/pspnet/pspnet.yml +- configs/resnest/resnest.yml +- configs/sem_fpn/sem_fpn.yml +- configs/setr/setr.yml +- configs/swin/swin.yml +- configs/unet/unet.yml +- configs/upernet/upernet.yml +- configs/vit/vit.yml From 778961dd2ed0fd9998db86648ab1a56d49bbf11e Mon Sep 17 00:00:00 2001 From: sshuair Date: Wed, 4 Aug 2021 00:45:42 +0800 Subject: [PATCH 199/706] [Enhancement] Support hrnet frozen stage (#743) * support hrnet frozen stage * support hrnet frozen stage --- mmseg/models/backbones/hrnet.py | 33 ++++++++++ .../test_models/test_backbones/test_hrnet.py | 63 +++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100644 tests/test_models/test_backbones/test_hrnet.py diff --git a/mmseg/models/backbones/hrnet.py b/mmseg/models/backbones/hrnet.py index 055fc985bb..0f064cff7d 100644 --- a/mmseg/models/backbones/hrnet.py +++ b/mmseg/models/backbones/hrnet.py @@ -230,6 +230,8 @@ class HRNet(BaseModule): and its variants only. with_cp (bool): Use checkpoint or not. Using checkpoint will save some memory while slowing down the training speed. + frozen_stages (int): Stages to be frozen (stop grad and set eval mode). + -1 means not freezing any parameters. Default: -1. zero_init_residual (bool): whether to use zero init for last norm layer in resblocks to let them behave as identity. pretrained (str, optional): model pretrained path. Default: None @@ -285,6 +287,7 @@ def __init__(self, norm_cfg=dict(type='BN', requires_grad=True), norm_eval=False, with_cp=False, + frozen_stages=-1, zero_init_residual=False, pretrained=None, init_cfg=None): @@ -315,6 +318,7 @@ def __init__(self, self.norm_cfg = norm_cfg self.norm_eval = norm_eval self.with_cp = with_cp + self.frozen_stages = frozen_stages # stem net self.norm1_name, norm1 = build_norm_layer(self.norm_cfg, 64, postfix=1) @@ -388,6 +392,8 @@ def __init__(self, self.stage4, pre_stage_channels = self._make_stage( self.stage4_cfg, num_channels) + self._freeze_stages() + @property def norm1(self): """nn.Module: the normalization layer named "norm1" """ @@ -534,6 +540,32 @@ def _make_stage(self, layer_config, in_channels, multiscale_output=True): return Sequential(*hr_modules), in_channels + def _freeze_stages(self): + """Freeze stages param and norm stats.""" + if self.frozen_stages >= 0: + + self.norm1.eval() + self.norm2.eval() + for m in [self.conv1, self.norm1, self.conv2, self.norm2]: + for param in m.parameters(): + param.requires_grad = False + + for i in range(1, self.frozen_stages + 1): + if i == 1: + m = getattr(self, f'layer{i}') + t = getattr(self, f'transition{i}') + elif i == 4: + m = getattr(self, f'stage{i}') + else: + m = getattr(self, f'stage{i}') + t = getattr(self, f'transition{i}') + m.eval() + for param in m.parameters(): + param.requires_grad = False + t.eval() + for param in t.parameters(): + param.requires_grad = False + def forward(self, x): """Forward function.""" @@ -575,6 +607,7 @@ def train(self, mode=True): """Convert the model into training mode will keeping the normalization layer freezed.""" super(HRNet, self).train(mode) + self._freeze_stages() if mode and self.norm_eval: for m in self.modules(): # trick: eval have effect on BatchNorm only diff --git a/tests/test_models/test_backbones/test_hrnet.py b/tests/test_models/test_backbones/test_hrnet.py new file mode 100644 index 0000000000..81611a0d11 --- /dev/null +++ b/tests/test_models/test_backbones/test_hrnet.py @@ -0,0 +1,63 @@ +from mmcv.utils.parrots_wrapper import _BatchNorm + +from mmseg.models.backbones import HRNet + + +def test_hrnet_backbone(): + # Test HRNET with two stage frozen + + extra = dict( + stage1=dict( + num_modules=1, + num_branches=1, + block='BOTTLENECK', + num_blocks=(4, ), + num_channels=(64, )), + stage2=dict( + num_modules=1, + num_branches=2, + block='BASIC', + num_blocks=(4, 4), + num_channels=(32, 64)), + stage3=dict( + num_modules=4, + num_branches=3, + block='BASIC', + num_blocks=(4, 4, 4), + num_channels=(32, 64, 128)), + stage4=dict( + num_modules=3, + num_branches=4, + block='BASIC', + num_blocks=(4, 4, 4, 4), + num_channels=(32, 64, 128, 256))) + frozen_stages = 2 + model = HRNet(extra, frozen_stages=frozen_stages) + model.init_weights() + model.train() + assert model.norm1.training is False + + for layer in [model.conv1, model.norm1]: + for param in layer.parameters(): + assert param.requires_grad is False + for i in range(1, frozen_stages + 1): + if i == 1: + layer = getattr(model, f'layer{i}') + transition = getattr(model, f'transition{i}') + elif i == 4: + layer = getattr(model, f'stage{i}') + else: + layer = getattr(model, f'stage{i}') + transition = getattr(model, f'transition{i}') + + for mod in layer.modules(): + if isinstance(mod, _BatchNorm): + assert mod.training is False + for param in layer.parameters(): + assert param.requires_grad is False + + for mod in transition.modules(): + if isinstance(mod, _BatchNorm): + assert mod.training is False + for param in transition.parameters(): + assert param.requires_grad is False From 06f0c5de339e776a70222af4d65ed12d45a7a539 Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Wed, 4 Aug 2021 17:17:39 +0800 Subject: [PATCH 200/706] Bump to v0.16.0 (#749) * Bump to v0.16.0 * fix doc * fix changelog * fix changelog --- README.md | 2 +- README_zh-CN.md | 2 +- docs/changelog.md | 43 +++++++++++++++++++++++++++++++++++++++ docs/get_started.md | 1 + docs_zh-CN/get_started.md | 1 + mmseg/version.py | 2 +- 6 files changed, 48 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5526b161f4..152955531b 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ This project is released under the [Apache 2.0 license](LICENSE). ## Changelog -v0.15.0 was released in 07/04/2021. +v0.16.0 was released in 08/04/2021. Please refer to [changelog.md](docs/changelog.md) for details and release history. ## Benchmark and model zoo diff --git a/README_zh-CN.md b/README_zh-CN.md index 325f4deedb..19556c8099 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -47,7 +47,7 @@ MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 O ## 更新日志 -最新的月度版本 v0.15.0 在 2021.07.04 发布。 +最新的月度版本 v0.16.0 在 2021.08.04 发布。 如果想了解更多版本更新细节和历史信息,请阅读[更新日志](docs/changelog.md)。 ## 基准测试和模型库 diff --git a/docs/changelog.md b/docs/changelog.md index 54edfa1238..7b8c5f184b 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,5 +1,48 @@ ## Changelog +### V0.16 (08/04/2021) + +**Highlights** + +- Support PyTorch 1.9 +- Support SegFormer backbone MiT +- Support md2yml pre-commit hook +- Support frozen stage for HRNet + +**New Features** + +- Support SegFormer backbone MiT ([#594](https://github.com/open-mmlab/mmsegmentation/pull/594)) +- Support md2yml pre-commit hook ([#732](https://github.com/open-mmlab/mmsegmentation/pull/732)) +- Support mim ([#717](https://github.com/open-mmlab/mmsegmentation/pull/717)) +- Add mmseg2torchserve tool ([#552](https://github.com/open-mmlab/mmsegmentation/pull/552)) + +**Improvements** + +- Support hrnet frozen stage ([#743](https://github.com/open-mmlab/mmsegmentation/pull/743)) +- Add template of reimplementation questions ([#741](https://github.com/open-mmlab/mmsegmentation/pull/741)) +- Output pdf and epub formats for readthedocs ([#742](https://github.com/open-mmlab/mmsegmentation/pull/742)) +- Refine the docstring of ResNet ([#723](https://github.com/open-mmlab/mmsegmentation/pull/723)) +- Replace interpolate with resize ([#731](https://github.com/open-mmlab/mmsegmentation/pull/731)) +- Update resource limit ([#700](https://github.com/open-mmlab/mmsegmentation/pull/700)) +- Update config.md ([#678](https://github.com/open-mmlab/mmsegmentation/pull/678)) + +**Bug Fixes** + +- Fix ATTENTION registry ([#729](https://github.com/open-mmlab/mmsegmentation/pull/729)) +- Fix analyze log script ([#716](https://github.com/open-mmlab/mmsegmentation/pull/716)) +- Fix doc api display ([#725](https://github.com/open-mmlab/mmsegmentation/pull/725)) +- Fix patch_embed and pos_embed mismatch error ([#685](https://github.com/open-mmlab/mmsegmentation/pull/685)) +- Fix efficient test for multi-node ([#707](https://github.com/open-mmlab/mmsegmentation/pull/707)) +- Fix init_cfg in resnet backbone ([#697](https://github.com/open-mmlab/mmsegmentation/pull/697)) +- Fix efficient test bug ([#702](https://github.com/open-mmlab/mmsegmentation/pull/702)) +- Fix url error in config docs ([#680](https://github.com/open-mmlab/mmsegmentation/pull/680)) +- Fix mmcv installation ([#676](https://github.com/open-mmlab/mmsegmentation/pull/676)) +- Fix torch version ([#670](https://github.com/open-mmlab/mmsegmentation/pull/670)) + +**Contributors** + +@sshuair @xiexinch @Junjun2016 @mmeendez8 @xvjiarui @sennnnn @puhsu @BIGWangYuDong @keke1u @daavoo + ### V0.15 (07/04/2021) **Highlights** diff --git a/docs/get_started.md b/docs/get_started.md index cc018d7c06..ccf9d94321 100644 --- a/docs/get_started.md +++ b/docs/get_started.md @@ -12,6 +12,7 @@ The compatible MMSegmentation and MMCV versions are as below. Please install the | MMSegmentation version | MMCV version | |:-------------------:|:-------------------:| | master | mmcv-full>=1.3.7, <1.4.0 | +| 0.16.0 | mmcv-full>=1.3.7, <1.4.0 | | 0.15.0 | mmcv-full>=1.3.7, <1.4.0 | | 0.14.1 | mmcv-full>=1.3.7, <1.4.0 | | 0.14.0 | mmcv-full>=1.3.1, <1.3.2 | diff --git a/docs_zh-CN/get_started.md b/docs_zh-CN/get_started.md index e74cd7538a..a15748bb35 100644 --- a/docs_zh-CN/get_started.md +++ b/docs_zh-CN/get_started.md @@ -12,6 +12,7 @@ | MMSegmentation 版本 | MMCV 版本 | |:-------------------:|:-------------------:| | master | mmcv-full>=1.3.7, <1.4.0 | +| 0.16.0 | mmcv-full>=1.3.7, <1.4.0 | | 0.15.0 | mmcv-full>=1.3.7, <1.4.0 | | 0.14.1 | mmcv-full>=1.3.7, <1.4.0 | | 0.14.0 | mmcv-full>=1.3.1, <1.4.0 | diff --git a/mmseg/version.py b/mmseg/version.py index 32ea1c548d..34877bdff8 100644 --- a/mmseg/version.py +++ b/mmseg/version.py @@ -1,6 +1,6 @@ # Copyright (c) Open-MMLab. All rights reserved. -__version__ = '0.15.0' +__version__ = '0.16.0' def parse_version_info(version_str): From 9a05fe9fd6101b34b6945c73783189a2575abc15 Mon Sep 17 00:00:00 2001 From: zhangrui_wolf Date: Thu, 5 Aug 2021 16:24:01 +0800 Subject: [PATCH 201/706] Correct docs (#696) * Correct get_started.md * Correct dataset_prepare.md * Correct model_zoo.md * Correct train.md * Correct inference.md * Correct config.md * Correct customize_datasets.md * Correct data_pipeline.md * Correct customize_models.md * Correct training_tricks.md * Correct customize_runtime.md * Correct useful_tools.md and translate "model serving" * Fix typos * fix lint * Modify the content of useful_tools.md to meet the requirements, and modify some of the content by referring to the Chinese documentation of mmcls. * Modify the use_tools.md file based on feedback. Adjusted some translations according to "English-Chinese terminology comparison". * Modify get_start.md . Adjusted some translations according to "English-Chinese terminology comparison". * Modify dataset_prepare.md. * Modify the English version and the Chinese version of model_zoo.md. Adjusted some translations according to "English-Chinese terminology comparison". * Modify train.md. Adjusted some translations according to "English-Chinese terminology comparison". * Modify inference.md. Adjusted some translations according to "English-Chinese terminology comparison". * Modify config.md. Adjusted some translations according to "English-Chinese terminology comparison". * Modify customize_datasets.md. * Modify data_pipeline.md. Adjusted some translations according to "English-Chinese terminology comparison". The main corrected term is: pipeline. * Modify customize_models.md. * Modify training_tricks.md. * Modify customize_runtime.md. Adjusted some translations according to "English-Chinese terminology comparison". * fix full point usage in items * fix typo * fix typo * fix typo * fix typo * Update useful_tools.md Co-authored-by: Junjun2016 Co-authored-by: MengzhangLI --- docs/model_zoo.md | 16 +++ docs_zh-CN/dataset_prepare.md | 6 +- docs_zh-CN/get_started.md | 46 +++++---- docs_zh-CN/inference.md | 24 ++--- docs_zh-CN/model_zoo.md | 18 ++-- docs_zh-CN/train.md | 12 +-- docs_zh-CN/tutorials/config.md | 14 +-- docs_zh-CN/tutorials/customize_datasets.md | 10 +- docs_zh-CN/tutorials/customize_models.md | 10 +- docs_zh-CN/tutorials/customize_runtime.md | 18 ++-- docs_zh-CN/tutorials/data_pipeline.md | 14 +-- docs_zh-CN/useful_tools.md | 110 ++++++++++----------- 12 files changed, 161 insertions(+), 137 deletions(-) diff --git a/docs/model_zoo.md b/docs/model_zoo.md index b514d84312..38064957a5 100644 --- a/docs/model_zoo.md +++ b/docs/model_zoo.md @@ -131,6 +131,22 @@ Please refer to [CGNet](https://github.com/open-mmlab/mmsegmentation/blob/master Please refer [Mixed Precision (FP16) Training](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16) for details. +### U-Net + +Please refer to [U-Net](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/unet/README.md) for details. + +### ViT + +Please refer to [ViT](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/vit/README.md) for details. + +### Swin + +Please refer to [Swin](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/swin/README.md) for details. + +### SETR + +Please refer to [SETR](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/setr/README.md) for details. + ## Speed benchmark ### Hardware diff --git a/docs_zh-CN/dataset_prepare.md b/docs_zh-CN/dataset_prepare.md index 5f566d40fa..55d5649a00 100644 --- a/docs_zh-CN/dataset_prepare.md +++ b/docs_zh-CN/dataset_prepare.md @@ -97,7 +97,7 @@ Pascal VOC 2012 可以在 [这里](http://host.robots.ox.ac.uk/pascal/VOC/voc201 python tools/convert_datasets/voc_aug.py data/VOCdevkit data/VOCdevkit/VOCaug --nproc 8 ``` -关于如何拼接数据集 (concatenate) 并一起训练它们,更多细节请参考 [拼接连接 数据集](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/tutorials/new_dataset.md#concatenate-dataset) 。 +关于如何拼接数据集 (concatenate) 并一起训练它们,更多细节请参考 [拼接连接数据集](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/tutorials/new_dataset.md#concatenate-dataset) 。 ### ADE20K @@ -146,7 +146,7 @@ python tools/convert_datasets/drive.py /path/to/training.zip /path/to/test.zip ### HRF -首先,下载 [healthy.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/healthy.zip), [glaucoma.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/glaucoma.zip), [diabetic_retinopathy.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/diabetic_retinopathy.zip), [healthy_manualsegm.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/healthy_manualsegm.zip), [glaucoma_manualsegm.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/glaucoma_manualsegm.zip) 以及 [diabetic_retinopathy_manualsegm.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/diabetic_retinopathy_manualsegm.zip). +首先,下载 [healthy.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/healthy.zip) [glaucoma.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/glaucoma.zip), [diabetic_retinopathy.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/diabetic_retinopathy.zip), [healthy_manualsegm.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/healthy_manualsegm.zip), [glaucoma_manualsegm.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/glaucoma_manualsegm.zip) 以及 [diabetic_retinopathy_manualsegm.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/diabetic_retinopathy_manualsegm.zip) 。 为了将 HRF 数据集转换成 MMSegmentation 格式,您需要运行如下命令: @@ -158,7 +158,7 @@ python tools/convert_datasets/hrf.py /path/to/healthy.zip /path/to/healthy_manua ### STARE -首先,下载 [stare-images.tar](http://cecas.clemson.edu/~ahoover/stare/probing/stare-images.tar), [labels-ah.tar](http://cecas.clemson.edu/~ahoover/stare/probing/labels-ah.tar) 和 [labels-vk.tar](http://cecas.clemson.edu/~ahoover/stare/probing/labels-vk.tar). +首先,下载 [stare-images.tar](http://cecas.clemson.edu/~ahoover/stare/probing/stare-images.tar), [labels-ah.tar](http://cecas.clemson.edu/~ahoover/stare/probing/labels-ah.tar) 和 [labels-vk.tar](http://cecas.clemson.edu/~ahoover/stare/probing/labels-vk.tar) 。 为了将 STARE 数据集转换成 MMSegmentation 格式,您需要运行如下命令: diff --git a/docs_zh-CN/get_started.md b/docs_zh-CN/get_started.md index a15748bb35..2f5730e105 100644 --- a/docs_zh-CN/get_started.md +++ b/docs_zh-CN/get_started.md @@ -25,11 +25,12 @@ | 0.7.0 | mmcv-full>=1.1.2, <1.2.0 | | 0.6.0 | mmcv-full>=1.1.2, <1.2.0 | -注意: 如果您已经安装好 mmcv, 您首先需要运行 `pip uninstall mmcv`。如果 mmcv 和 mmcv-full 同时被安装,会报错 `ModuleNotFoundError`。 +注意: 如果您已经安装好 mmcv, 您首先需要运行 `pip uninstall mmcv`。 +如果 mmcv 和 mmcv-full 同时被安装,会报错 `ModuleNotFoundError`。 ## 安装 -a. 创建一个 conda 虚拟环境并激活它。 +a. 创建一个 conda 虚拟环境并激活它 ```shell conda create -n open-mmlab python=3.7 -y @@ -37,18 +38,19 @@ conda activate open-mmlab ``` -b. 按照[官方教程](https://pytorch.org/) 安装 PyTorch 和 totchvision。 -这里我们使用 PyTorch1.6.0 和 CUDA10.1。 -您也可以切换至其他版本。 +b. 按照[官方教程](https://pytorch.org/) 安装 PyTorch 和 totchvision, +这里我们使用 PyTorch1.6.0 和 CUDA10.1, +您也可以切换至其他版本 ```shell conda install pytorch=1.6.0 torchvision cudatoolkit=10.1 -c pytorch ``` -c. 按照 [官方教程](https://mmcv.readthedocs.io/en/latest/#installation) 安装 [MMCV](https://mmcv.readthedocs.io/en/latest/) 。 -`mmcv` 或 `mmcv-full` 和 MMSegmentation 均兼容,但对于 CCNet 和 PSANet,`mmcv-full` 里的 CUDA 运算是必须的。 +c. 按照 [官方教程](https://mmcv.readthedocs.io/en/latest/#installation) +安装 [MMCV](https://mmcv.readthedocs.io/en/latest/) , +`mmcv` 或 `mmcv-full` 和 MMSegmentation 均兼容,但对于 CCNet 和 PSANet,`mmcv-full` 里的 CUDA 运算是必须的 -**在 Linux 下安装 mmcv:** +**在 Linux 下安装 mmcv:** 通过运行 @@ -59,9 +61,9 @@ pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.5 可以安装好 mmcv-full (PyTorch 1.5 和 CUDA 10.1) 版本。 其他 PyTorch 和 CUDA 版本的 MMCV 安装请参照[这里](https://mmcv.readthedocs.io/en/latest/#install-with-pip) -**在 Windows 下安装 mmcv (有风险):** +**在 Windows 下安装 mmcv (有风险):** -对于 Windows, MMCV 的安装需要本地 C++ 编译工具, 例如 cl.exe. 请添加编译工具至 %PATH%. +对于 Windows, MMCV 的安装需要本地 C++ 编译工具, 例如 cl.exe。 请添加编译工具至 %PATH%。 如果您已经在电脑上安装好Windows SDK 和 Visual Studio,cl.exe 的一个典型路径看起来如下: @@ -87,7 +89,7 @@ pip install mmcv 当前,mmcv-full 并不完全在 windows 上支持。 -d. 安装 MMSegmentation. +d. 安装 MMSegmentation ```shell pip install mmsegmentation # 安装最新版本 @@ -109,11 +111,14 @@ pip install -e . # 或者 "python setup.py develop" 注意: -1. 当在 windows 下训练和测试模型时,请确保路径下所有的'\\' 被替换成 '/'。在 python 代码里可以使用`.replace('\\', '/')`处理路径的字符串。 -2. `version+git_hash` 也将被保存进 meta 训练模型里,即0.5.0+c415a2e。 -3. 当 MMsegmentation 以 `dev` 模式被安装时,本地对代码的修改将不需要重新安装即可产生作用。 -4. 如果您想使用 `opencv-python-headless` 替换 `opencv-python`,您可以在安装 MMCV 前安装它。 -5. 一些依赖项是可选的。简单的运行 `pip install -e .` 将仅安装最必要的一些依赖。为了使用可选的依赖项如`cityscapessripts`,要么手动使用 `pip install -r requirements/optional.txt` 安装,要么专门从pip下安装(即 `pip install -e .[optional]`, 其中选项可设置为 `all`, `tests`, `build`, 和 `optional`). +1. 当在 windows 下训练和测试模型时,请确保路径下所有的'\\' 被替换成 '/', + 在 python 代码里可以使用`.replace('\\', '/')`处理路径的字符串 +2. `version+git_hash` 也将被保存进 meta 训练模型里,即0.5.0+c415a2e +3. 当 MMsegmentation 以 `dev` 模式被安装时,本地对代码的修改将不需要重新安装即可产生作用 +4. 如果您想使用 `opencv-python-headless` 替换 `opencv-python`,您可以在安装 MMCV 前安装它 +5. 一些依赖项是可选的。简单的运行 `pip install -e .` 将仅安装最必要的一些依赖。为了使用可选的依赖项如`cityscapessripts`, + 要么手动使用 `pip install -r requirements/optional.txt` 安装,要么专门从pip下安装(即 `pip install -e .[optional]`, + 其中选项可设置为 `all`, `tests`, `build`, 和 `optional`) ### 完成的安装脚本 @@ -135,9 +140,10 @@ mkdir data ln -s $DATA_ROOT data ``` -#### Windows(有风险) +#### Windows (有风险) -这里便是一个完整安装 MMSegmentation 的脚本,使用 conda 并链接了数据集的路径(以您的数据集路径为 %DATA_ROOT% 来安装)。注意:它必须是一个绝对路径。 +这里便是一个完整安装 MMSegmentation 的脚本,使用 conda 并链接了数据集的路径(以您的数据集路径为 %DATA_ROOT% 来安装)。 +注意:它必须是一个绝对路径。 ```shell conda create -n open-mmlab python=3.7 -y @@ -196,7 +202,7 @@ for frame in video: 当您完成 MMSegmentation 的安装时,上述代码应该可以成功运行。 -我们还提供一个 demo 脚本去可视化单张图片 +我们还提供一个 demo 脚本去可视化单张图片。 ```shell python demo/image_demo.py ${IMAGE_FILE} ${CONFIG_FILE} ${CHECKPOINT_FILE} [--device ${DEVICE_NAME}] [--palette-thr ${PALETTE}] @@ -209,4 +215,4 @@ python demo/image_demo.py demo/demo.jpg configs/pspnet/pspnet_r50-d8_512x1024_40 checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth --device cuda:0 --palette cityscapes ``` -推理的 demo 文档可在此查询:[demo/inference_demo.ipynb](../demo/inference_demo.ipynb). +推理的 demo 文档可在此查询:[demo/inference_demo.ipynb](../demo/inference_demo.ipynb) 。 diff --git a/docs_zh-CN/inference.md b/docs_zh-CN/inference.md index 669ef7989b..85d9ff0857 100644 --- a/docs_zh-CN/inference.md +++ b/docs_zh-CN/inference.md @@ -1,6 +1,6 @@ ## 使用预训练模型推理 -我们提供测试脚本来评估完整数据集(Cityscapes, PASCAL VOC, ADE20k 等) 上的结果,同时为了使其他项目的整合更容易,也提供一些高级 API。 +我们提供测试脚本来评估完整数据集(Cityscapes, PASCAL VOC, ADE20k 等)上的结果,同时为了使其他项目的整合更容易,也提供一些高级 API。 ### 测试一个数据集 @@ -20,17 +20,17 @@ python tools/test.py ${配置文件} ${检查点文件} [--out ${结果文件}] 可选参数: -- `RESULT_FILE`: pickle 格式的输出结果的文件名,如果不专门指定,结果将不会被专门保存成文件。 -- `EVAL_METRICS`: 在结果里将被评估的指标。这主要取决于数据集, `mIoU` 对于所有数据集都可获得,像 Cityscapes 数据集可以通过 `cityscapes` 命令来专门评估,就像标准的 `mIoU`一样。 -- `--show`: 如果被指定,分割结果将会在一张图像里画出来并且在另一个窗口展示。它仅仅是用来调试与可视化,并且仅针对单卡 GPU 测试。请确认 GUI 在您的环境里可用,否则您也许会遇到报错 `cannot connect to X server` -- `--show-dir`: 如果被指定,分割结果将会在一张图像里画出来并且保存在指定文件夹里。它仅仅是用来调试与可视化,并且仅针对单卡GPU测试。使用该参数时,您的环境不需要 GUI。 -- `--eval-options`: 评估时的可选参数,当设置 `efficient_test=True` 时,它将会保存中间结果至本地文件里以节约 CPU 内存。请确认您本地硬盘有足够的存储空间(大于20GB)。 +- `RESULT_FILE`: pickle 格式的输出结果的文件名,如果不专门指定,结果将不会被专门保存成文件 +- `EVAL_METRICS`: 在结果里将被评估的指标,这主要取决于数据集, `mIoU` 对于所有数据集都可获得,像 Cityscapes 数据集可以通过 `cityscapes` 命令来专门评估,就像标准的 `mIoU`一样 +- `--show`: 如果被指定,分割结果将会在一张图像里画出来并且在另一个窗口展示,它仅仅是用来调试与可视化,并且仅针对单卡 GPU 测试,请确认 GUI 在您的环境里可用,否则您也许会遇到报错 `cannot connect to X server` +- `--show-dir`: 如果被指定,分割结果将会在一张图像里画出来并且保存在指定文件夹里,它仅仅是用来调试与可视化,并且仅针对单卡GPU测试,使用该参数时,您的环境不需要 GUI +- `--eval-options`: 评估时的可选参数,当设置 `efficient_test=True` 时,它将会保存中间结果至本地文件里以节约 CPU 内存,请确认您本地硬盘有足够的存储空间(大于20GB) 例子: 假设您已经下载检查点文件至文件夹 `checkpoints/` 里。 -1. 测试 PSPNet 并可视化结果。按下任何键会进行到下一张图。 +1. 测试 PSPNet 并可视化结果。按下任何键会进行到下一张图 ```shell python tools/test.py configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \ @@ -38,7 +38,7 @@ python tools/test.py ${配置文件} ${检查点文件} [--out ${结果文件}] --show ``` -2. 测试 PSPNet 并保存画出的图以便于之后的可视化。 +2. 测试 PSPNet 并保存画出的图以便于之后的可视化 ```shell python tools/test.py configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \ @@ -46,7 +46,7 @@ python tools/test.py ${配置文件} ${检查点文件} [--out ${结果文件}] --show-dir psp_r50_512x1024_40ki_cityscapes_results ``` -3. 在数据集 PASCAL VOC (不保存测试结果) 上测试 PSPNet 并评估 mIoU。 +3. 在数据集 PASCAL VOC (不保存测试结果) 上测试 PSPNet 并评估 mIoU ```shell python tools/test.py configs/pspnet/pspnet_r50-d8_512x1024_20k_voc12aug.py \ @@ -54,7 +54,7 @@ python tools/test.py ${配置文件} ${检查点文件} [--out ${结果文件}] --eval mAP ``` -4. 使用4卡 GPU 测试 PSPNet,并且在标准 mIoU 和 cityscapes 指标里评估模型。 +4. 使用4卡 GPU 测试 PSPNet,并且在标准 mIoU 和 cityscapes 指标里评估模型 ```shell ./tools/dist_test.sh configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \ @@ -64,7 +64,7 @@ python tools/test.py ${配置文件} ${检查点文件} [--out ${结果文件}] 注意:在 cityscapes mIoU 和我们的 mIoU 指标会有一些差异 (~0.1%) 。因为 cityscapes 默认是根据类别样本数的多少进行加权平均,而我们对所有的数据集都是采取直接平均的方法来得到 mIoU。 -5. 在 cityscapes 数据集上4卡 GPU 测试 PSPNet, 并生成 png 文件以便提交给官方评估服务器。 +5. 在 cityscapes 数据集上4卡 GPU 测试 PSPNet, 并生成 png 文件以便提交给官方评估服务器 首先,在配置文件里添加内容: `configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py`, @@ -86,7 +86,7 @@ python tools/test.py ${配置文件} ${检查点文件} [--out ${结果文件}] 您会在文件夹 `./pspnet_test_results` 里得到生成的 png 文件。 您也许可以运行 `zip -r results.zip pspnet_test_results/` 并提交 zip 文件给 [evaluation server](https://www.cityscapes-dataset.com/submit/)。 -6. 在 Cityscapes 数据集上使用 CPU 高效内存选项来测试 DeeplabV3+ `mIoU` 指标 (没有保存测试结果)。 +6. 在 Cityscapes 数据集上使用 CPU 高效内存选项来测试 DeeplabV3+ `mIoU` 指标 (没有保存测试结果) ```shell python tools/test.py \ diff --git a/docs_zh-CN/model_zoo.md b/docs_zh-CN/model_zoo.md index 56fb663a23..e5674f0519 100644 --- a/docs_zh-CN/model_zoo.md +++ b/docs_zh-CN/model_zoo.md @@ -4,16 +4,16 @@ * 我们默认使用 4 卡分布式训练 * 所有 PyTorch 风格的 ImageNet 预训练网络由我们自己训练,和 [论文](https://arxiv.org/pdf/1812.01187.pdf) 保持一致。 - 我们的 ResNet 网络是基于 ResNetV1c 的变种,在这里输入层的 7x7 卷积被 3个 3x3 取代。 + 我们的 ResNet 网络是基于 ResNetV1c 的变种,在这里输入层的 7x7 卷积被 3个 3x3 取代 * 为了在不同的硬件上保持一致,我们以 `torch.cuda.max_memory_allocated()` 的最大值作为 GPU 占用率,同时设置 `torch.backends.cudnn.benchmark=False`。 - 注意,这通常比 `nvidia-smi` 显示的要少。 -* 我们以网络 forward 和后处理的时间加和作为推理时间,除去数据加载时间。我们使用脚本 `tools/benchmark.py` 来获取推理时间,它在 `torch.backends.cudnn.benchmark=False` 的设定下,计算 200 张图片的平均推理时间。 -* 在框架中,有两种推理模式。 + 注意,这通常比 `nvidia-smi` 显示的要少 +* 我们以网络 forward 和后处理的时间加和作为推理时间,除去数据加载时间。我们使用脚本 `tools/benchmark.py` 来获取推理时间,它在 `torch.backends.cudnn.benchmark=False` 的设定下,计算 200 张图片的平均推理时间 +* 在框架中,有两种推理模式 * `slide` 模式(滑动模式):测试的配置文件字段 `test_cfg` 会是 `dict(mode='slide', crop_size=(769, 769), stride=(513, 513))`. - 在这个模式下,从原图中裁剪多个小图分别输入网络中进行推理。小图的大小和小图之间的距离由 `crop_size` 和 `stride` 决定,重合区域会进行平均。 - * `whole` 模式 (全图模式):测试的配置文件字段 `test_cfg` 会是 `dict(mode='whole')`. 在这个模式下,全图会被直接输入到网络中进行推理。 - 对于 769x769 下训练的模型,我们默认使用 `slide` 进行推理,其余模型用 `whole` 进行推理。 -* 对于输入大小为 8x+1 (比如769),我们使用 `align_corners=True`。其余情况,对于输入大小为 8x+1 (比如 512,1024),我们使用 `align_corners=False`。 + 在这个模式下,从原图中裁剪多个小图分别输入网络中进行推理。小图的大小和小图之间的距离由 `crop_size` 和 `stride` 决定,重合区域会进行平均 + * `whole` 模式 (全图模式):测试的配置文件字段 `test_cfg` 会是 `dict(mode='whole')`. 在这个模式下,全图会被直接输入到网络中进行推理。 + 对于 769x769 下训练的模型,我们默认使用 `slide` 进行推理,其余模型用 `whole` 进行推理 +* 对于输入大小为 8x+1 (比如769),我们使用 `align_corners=True`。其余情况,对于输入大小为 8x+1 (比如 512,1024),我们使用 `align_corners=False` ## 基线 @@ -149,4 +149,4 @@ Please refer [Mixed Precision (FP16) Training](https://github.com/open-mmlab/mms | [CASILVision](https://github.com/CSAILVision/semantic-segmentation-pytorch) | 1.15 | N/A | | [vedaseg](https://github.com/Media-Smart/vedaseg) | 0.95 | 1.25 | -注意:DeepLabV3+ 的输出步长为 8。 +注意:DeepLabV3+ 的输出步长为 8 diff --git a/docs_zh-CN/train.md b/docs_zh-CN/train.md index 52fd9cffdf..b03b95debf 100644 --- a/docs_zh-CN/train.md +++ b/docs_zh-CN/train.md @@ -31,15 +31,15 @@ python tools/train.py ${配置文件} [可选参数] 可选参数可以为: -- `--no-validate` (**不推荐**): 训练时代码库默认会在每 k 轮迭代后在验证集上进行评估,如果不需评估使用命令 `--no-validate`。 -- `--work-dir ${工作路径}`: 在配置文件里重写工作路径文件夹。 -- `--resume-from ${检查点文件}`: 继续使用先前的检查点 (checkpoint) 文件(可以继续训练过程)。 -- `--load-from ${检查点文件}`: 从一个检查点 (checkpoint) 文件里加载权重(对另一个任务进行精调)。 +- `--no-validate` (**不推荐**): 训练时代码库默认会在每 k 轮迭代后在验证集上进行评估,如果不需评估使用命令 `--no-validate` +- `--work-dir ${工作路径}`: 在配置文件里重写工作路径文件夹 +- `--resume-from ${检查点文件}`: 继续使用先前的检查点 (checkpoint) 文件(可以继续训练过程) +- `--load-from ${检查点文件}`: 从一个检查点 (checkpoint) 文件里加载权重(对另一个任务进行精调) `resume-from` 和 `load-from` 的区别: -- `resume-from` 加载出模型权重和优化器状态包括迭代轮数等。 -- `load-from` 仅加载模型权重,从第0轮开始训练。 +- `resume-from` 加载出模型权重和优化器状态包括迭代轮数等 +- `load-from` 仅加载模型权重,从第0轮开始训练 ### 使用多个机器训练 diff --git a/docs_zh-CN/tutorials/config.md b/docs_zh-CN/tutorials/config.md index 72d8659a1b..48e9da11f0 100644 --- a/docs_zh-CN/tutorials/config.md +++ b/docs_zh-CN/tutorials/config.md @@ -18,7 +18,7 @@ ## 配置文件命名风格 -我们按照下面的风格去命名配置文件。社区贡献者被建议使用同样的风格。 +我们按照下面的风格去命名配置文件,社区贡献者被建议使用同样的风格。 ``` {model}_{backbone}_[misc]_[gpu x batch_per_gpu]_{resolution}_{schedule}_{dataset} @@ -26,12 +26,12 @@ `{xxx}` 是被要求的文件 `[yyy]` 是可选的。 -- `{model}`: 模型种类,例如 `psp`, `deeplabv3` 等等。 -- `{backbone}`: 主干网络种类,例如 `r50` (ResNet-50), `x101` (ResNeXt-101)。 -- `[misc]`: 模型中各式各样的设置/插件,例如 `dconv`, `gcb`, `attention`, `mstrain`。 -- `[gpu x batch_per_gpu]`: GPU数目 和每个 GPU 的样本数, 默认为 `8x2` 。 -- `{schedule}`: 训练方案, `20ki` 意思是 20k 迭代轮数. -- `{dataset}`: 数据集,如 `cityscapes`, `voc12aug`, `ade`。 +- `{model}`: 模型种类,例如 `psp`, `deeplabv3` 等等 +- `{backbone}`: 主干网络种类,例如 `r50` (ResNet-50), `x101` (ResNeXt-101) +- `[misc]`: 模型中各式各样的设置/插件,例如 `dconv`, `gcb`, `attention`, `mstrain` +- `[gpu x batch_per_gpu]`: GPU数目 和每个 GPU 的样本数, 默认为 `8x2` +- `{schedule}`: 训练方案, `20ki` 意思是 20k 迭代轮数 +- `{dataset}`: 数据集,如 `cityscapes`, `voc12aug`, `ade` ## PSPNet 的一个例子 diff --git a/docs_zh-CN/tutorials/customize_datasets.md b/docs_zh-CN/tutorials/customize_datasets.md index fc4975a259..fb62a9167c 100644 --- a/docs_zh-CN/tutorials/customize_datasets.md +++ b/docs_zh-CN/tutorials/customize_datasets.md @@ -75,7 +75,7 @@ dataset_A_train = dict( 1. 如果您想拼接的数据集是同样的类型,但有不同的标注文件, 您可以按如下操作去拼接数据集的配置文件: - 1. 您也许可以拼接两个标注文件夹 `ann_dir`。 + 1. 您也许可以拼接两个标注文件夹 `ann_dir` ```python dataset_A_train = dict( @@ -86,7 +86,7 @@ dataset_A_train = dict( ) ``` - 2. 您也可以去拼接两个 `split` 文件列表。 + 2. 您也可以去拼接两个 `split` 文件列表 ```python dataset_A_train = dict( @@ -98,7 +98,7 @@ dataset_A_train = dict( ) ``` - 3. 您也可以同时拼接 `ann_dir` 文件夹和 `split` 文件列表。 + 3. 您也可以同时拼接 `ann_dir` 文件夹和 `split` 文件列表 ```python dataset_A_train = dict( @@ -110,7 +110,7 @@ dataset_A_train = dict( ) ``` - 在这样的情况下, `ann_dir_1` 和 `ann_dir_2` 分别对应于 `split_1.txt` 和 `split_2.txt`。 + 在这样的情况下, `ann_dir_1` 和 `ann_dir_2` 分别对应于 `split_1.txt` 和 `split_2.txt` 2. 如果您想拼接不同的数据集,您可以如下去拼接数据集的配置文件: @@ -130,7 +130,7 @@ dataset_A_train = dict( ) ``` -一个更复杂的例子如下:分别重复 `Dataset_A` 和 `Dataset_B` N 次和 M 次,然后再去拼接重复后的数据集。 +一个更复杂的例子如下:分别重复 `Dataset_A` 和 `Dataset_B` N 次和 M 次,然后再去拼接重复后的数据集 ```python dataset_A_train = dict( diff --git a/docs_zh-CN/tutorials/customize_models.md b/docs_zh-CN/tutorials/customize_models.md index 6d929dc22d..c92d7db238 100644 --- a/docs_zh-CN/tutorials/customize_models.md +++ b/docs_zh-CN/tutorials/customize_models.md @@ -71,14 +71,14 @@ class CocktailOptimizerConstructor(object): MMSegmentation 里主要有2种组件: -- 主干网络 (backbone): 通常是卷积网络的堆叠,来做特征提取,例如 ResNet, HRNet。 -- 解码头 (decoder head): 用于语义分割图的解码的组件(得到分割结果)。 +- 主干网络 (backbone): 通常是卷积网络的堆叠,来做特征提取,例如 ResNet, HRNet +- 解码头 (decoder head): 用于语义分割图的解码的组件(得到分割结果) ### 添加新的主干网络 这里我们以 MobileNet 为例,展示如何增加新的主干组件: -1. 创建一个新的文件 `mmseg/models/backbones/mobilenet.py`. +1. 创建一个新的文件 `mmseg/models/backbones/mobilenet.py` ```python import torch.nn as nn @@ -99,13 +99,13 @@ class MobileNet(nn.Module): pass ``` -2. 在 `mmseg/models/backbones/__init__.py` 里面导入模块。 +2. 在 `mmseg/models/backbones/__init__.py` 里面导入模块 ```python from .mobilenet import MobileNet ``` -3. 在您的配置文件里使用它。 +3. 在您的配置文件里使用它 ```python model = dict( diff --git a/docs_zh-CN/tutorials/customize_runtime.md b/docs_zh-CN/tutorials/customize_runtime.md index f67dd00b8a..6331789397 100644 --- a/docs_zh-CN/tutorials/customize_runtime.md +++ b/docs_zh-CN/tutorials/customize_runtime.md @@ -15,7 +15,7 @@ optimizer = dict(type='Adam', lr=0.0003, weight_decay=0.0001) 使用者可以参照 PyTorch 的 [API 文档](https://pytorch.org/docs/stable/optim.html?highlight=optim#module-torch.optim) 直接设置参数。 -### 自定义 自己实现的优化器 +### 自定义自己实现的优化器 #### 1. 定义一个新的优化器 @@ -42,15 +42,15 @@ class MyOptimizer(Optimizer): 为了让上述定义的模块被框架发现,首先这个模块应该被导入到主命名空间 (main namespace) 里。 有两种方式可以实现它。 -- 修改 `mmseg/core/optimizer/__init__.py` 来导入它。 +- 修改 `mmseg/core/optimizer/__init__.py` 来导入它 - 新的被定义的模块应该被导入到 `mmseg/core/optimizer/__init__.py` 这样注册表将会发现新的模块并添加它。 + 新的被定义的模块应该被导入到 `mmseg/core/optimizer/__init__.py` 这样注册表将会发现新的模块并添加它 ```python from .my_optimizer import MyOptimizer ``` -- 在配置文件里使用 `custom_imports` 去手动导入它。 +- 在配置文件里使用 `custom_imports` 去手动导入它 ```python custom_imports = dict(imports=['mmseg.core.optimizer.my_optimizer'], allow_failed_imports=False) @@ -109,7 +109,8 @@ class MyOptimizerConstructor(object): 如果您有更多的设置,欢迎在 PR 和 issue 里面提交。 - __使用梯度截断 (gradient clip) 去稳定训练__: - 一些模型需要梯度截断去稳定训练过程,如下所示: + + 一些模型需要梯度截断去稳定训练过程,如下所示 ```python optimizer_config = dict( @@ -119,6 +120,7 @@ class MyOptimizerConstructor(object): 如果您的配置继承自已经设置了 `optimizer_config` 的基础配置 (base config),您可能需要 `_delete_=True` 来重写那些不需要的设置。更多细节请参照 [配置文件文档](https://mmsegmentation.readthedocs.io/en/latest/config.html) 。 - __使用动量计划表 (momentum schedule) 去加速模型收敛__: + 我们支持动量计划表去让模型基于学习率修改动量,这样可能让模型收敛地更快。 动量计划表经常和学习率计划表 (LR scheduler) 一起使用,例如如下配置文件就在 3D 检测里经常使用以加速收敛。 更多细节请参考 [CyclicLrUpdater](https://github.com/open-mmlab/mmcv/blob/f48241a65aebfe07db122e9db320c31b685dc674/mmcv/runner/hooks/lr_updater.py#L327) 和 [CyclicMomentumUpdater](https://github.com/open-mmlab/mmcv/blob/f48241a65aebfe07db122e9db320c31b685dc674/mmcv/runner/hooks/momentum_updater.py#L130) 的实现。 @@ -179,11 +181,11 @@ workflow = [('train', 1)] **注意**: -1. 模型的参数在验证的阶段不会被自动更新。 -2. 配置文件里的关键词 `total_epochs` 仅控制训练的 epochs 数目,而不会影响验证时的工作流。 +1. 模型的参数在验证的阶段不会被自动更新 +2. 配置文件里的关键词 `total_epochs` 仅控制训练的 epochs 数目,而不会影响验证时的工作流 3. 工作流 `[('train', 1), ('val', 1)]` 和 `[('train', 1)]` 将不会改变 `EvalHook` 的行为,因为 `EvalHook` 被 `after_train_epoch` 调用而且验证的工作流仅仅影响通过调用 `after_val_epoch` 的钩子 (hooks)。因此, `[('train', 1), ('val', 1)]` 和 `[('train', 1)]` - 的区别仅在于 runner 将在每次训练 epoch 结束后计算在验证集上的损失。 + 的区别仅在于 runner 将在每次训练 epoch 结束后计算在验证集上的损失 ## 自定义钩 (hooks) diff --git a/docs_zh-CN/tutorials/data_pipeline.md b/docs_zh-CN/tutorials/data_pipeline.md index 6ac16aec68..64d39934be 100644 --- a/docs_zh-CN/tutorials/data_pipeline.md +++ b/docs_zh-CN/tutorials/data_pipeline.md @@ -5,13 +5,13 @@ 按照通常的惯例,我们使用 `Dataset` 和 `DataLoader` 做多线程的数据加载。`Dataset` 返回一个数据内容的字典,里面对应于模型前传方法的各个参数。 因为在语义分割中,输入的图像数据具有不同的大小,我们在 MMCV 里引入一个新的 `DataContainer` 类别去帮助收集和分发不同大小的输入数据。 -更多细节,请查看[这里](https://github.com/open-mmlab/mmcv/blob/master/mmcv/parallel/data_container.py). +更多细节,请查看[这里](https://github.com/open-mmlab/mmcv/blob/master/mmcv/parallel/data_container.py) 。 数据的准备流程和数据集是解耦的。通常一个数据集定义了如何处理标注数据(annotations)信息,而一个数据流程定义了准备一个数据字典的所有步骤。一个流程包括了一系列操作,每个操作里都把一个字典作为输入,然后再输出一个新的字典给下一个变换操作。 这些操作可分为数据加载 (data loading),预处理 (pre-processing),格式变化 (formatting) 和测试时数据增强 (test-time augmentation) 。 -下面的例子就是 PSPNet 的一个流程: +下面的例子就是 PSPNet 的一个流程: ```python img_norm_cfg = dict( @@ -96,19 +96,19 @@ test_pipeline = [ `ToTensor` -- 更新: 由 `keys` 指定. +- 更新: 由 `keys` 指定 `ImageToTensor` -- 更新: 由 `keys` 指定. +- 更新: 由 `keys` 指定 `Transpose` -- 更新: 由 `keys` 指定. +- 更新: 由 `keys` 指定 `ToDataContainer` -- 更新: 由 `keys` 指定. +- 更新: 由 `keys` 指定 `DefaultFormatBundle` @@ -125,7 +125,7 @@ test_pipeline = [ ## 拓展和使用自定义的流程 -1. 在任何一个文件里写一个新的流程,例如 `my_pipeline.py`。它以一个字典作为输入并且输出一个字典。 +1. 在任何一个文件里写一个新的流程,例如 `my_pipeline.py`,它以一个字典作为输入并且输出一个字典 ```python from mmseg.datasets import PIPELINES diff --git a/docs_zh-CN/useful_tools.md b/docs_zh-CN/useful_tools.md index e274fee834..65b571d23d 100644 --- a/docs_zh-CN/useful_tools.md +++ b/docs_zh-CN/useful_tools.md @@ -43,7 +43,7 @@ python tools/publish_model.py ${INPUT_FILENAME} ${OUTPUT_FILENAME} python tools/publish_model.py work_dirs/pspnet/latest.pth psp_r50_hszhao_200ep.pth ``` -最终输出文件将是 `psp_r50_512x1024_40ki_cityscapes-{hash id}.pth`. +最终输出文件将是 `psp_r50_512x1024_40ki_cityscapes-{hash id}.pth`。 ### 导出 ONNX (试验性) @@ -67,18 +67,18 @@ python tools/pytorch2onnx.py \ 各个参数的描述: -- `config` : 模型配置文件的路径。 -- `--checkpoint` : 模型检查点文件的路径。 -- `--output-file`: 输出的 ONNX 模型的路径。如果没有专门指定,它默认是 `tmp.onnx`。 -- `--input-img` : 用来转换和可视化的一张输入图像的路径。 -- `--shape`: 模型的输入张量的高和宽。如果没有专门指定,它将被设置成 `test_pipeline` 的 `img_scale`。 -- `--rescale-shape`: 改变输出的形状。设置这个值来避免 OOM,它仅在 `slide` 模式下可以用。 -- `--show`: 是否打印输出模型的结构。如果没有被专门指定,它将被设置成 `False`。 -- `--verify`: 是否验证一个输出模型的正确性 (correctness)。如果没有被专门指定,它将被设置成 `False`。 -- `--dynamic-export`: 是否导出形状变化的输入与输出的 ONNX 模型。如果没有被专门指定,它将被设置成 `False`。 -- `--cfg-options`: 更新配置选项。 +- `config` : 模型配置文件的路径 +- `--checkpoint` : 模型检查点文件的路径 +- `--output-file`: 输出的 ONNX 模型的路径。如果没有专门指定,它默认是 `tmp.onnx` +- `--input-img` : 用来转换和可视化的一张输入图像的路径 +- `--shape`: 模型的输入张量的高和宽。如果没有专门指定,它将被设置成 `test_pipeline` 的 `img_scale` +- `--rescale-shape`: 改变输出的形状。设置这个值来避免 OOM,它仅在 `slide` 模式下可以用 +- `--show`: 是否打印输出模型的结构。如果没有被专门指定,它将被设置成 `False` +- `--verify`: 是否验证一个输出模型的正确性 (correctness)。如果没有被专门指定,它将被设置成 `False` +- `--dynamic-export`: 是否导出形状变化的输入与输出的 ONNX 模型。如果没有被专门指定,它将被设置成 `False` +- `--cfg-options`: 更新配置选项 -**注意**: 这个工具仍然是试验性的,目前一些自定义操作还没有被支持。 +**注意**: 这个工具仍然是试验性的,目前一些自定义操作还没有被支持 ### 评估 ONNX 模型 @@ -92,7 +92,7 @@ python tools/pytorch2onnx.py \ pip install onnx onnxruntime-gpu ``` -- 参考 [如何在 MMCV 里构建 tensorrt 插件](https://mmcv.readthedocs.io/en/latest/tensorrt_plugin.html#how-to-build-tensorrt-plugins-in-mmcv) 安装TensorRT (可选)。 +- 参考 [如何在 MMCV 里构建 tensorrt 插件](https://mmcv.readthedocs.io/en/latest/tensorrt_plugin.html#how-to-build-tensorrt-plugins-in-mmcv) 安装TensorRT (可选) #### 使用方法 @@ -112,21 +112,21 @@ python tools/deploy_test.py \ 各个参数的描述: -- `config`: 模型配置文件的路径。 -- `model`: 被转换的模型文件的路径。 -- `backend`: 推理的后端,可选项:`onnxruntime`, `tensorrt`。 -- `--out`: 输出结果成 pickle 格式文件的路径。 +- `config`: 模型配置文件的路径 +- `model`: 被转换的模型文件的路径 +- `backend`: 推理的后端,可选项:`onnxruntime`, `tensorrt` +- `--out`: 输出结果成 pickle 格式文件的路径 - `--format-only` : 不评估直接给输出结果的格式。通常用在当您想把结果输出成一些测试服务器需要的特定格式时。如果没有被专门指定,它将被设置成 `False`。 注意这个参数是用 `--eval` 来 **手动添加** -- `--eval`: 评估指标,取决于每个数据集的要求,例如 "mIoU" 是大多数据集的指标而 "cityscapes" 仅针对 Cityscapes 数据集。注意这个参数是用 `--format-only` 来 **手动添加**。 +- `--eval`: 评估指标,取决于每个数据集的要求,例如 "mIoU" 是大多数据集的指标而 "cityscapes" 仅针对 Cityscapes 数据集。注意这个参数是用 `--format-only` 来 **手动添加** - `--show`: 是否展示结果 -- `--show-dir`: 涂上结果的图像被保存的文件夹的路径。 -- `--options`: 重写配置文件里的一些设置。`xxx=yyy` 格式的键值对将被覆盖到配置文件里。 -- `--eval-options`: 自定义的评估的选项。 `xxx=yyy` 格式的键值对将成为 `dataset.evaluate()` 函数的参数变量。 -- `--opacity`: 涂上结果的分割图的透明度。范围在 (0, 1] 之间。 +- `--show-dir`: 涂上结果的图像被保存的文件夹的路径 +- `--options`: 重写配置文件里的一些设置,`xxx=yyy` 格式的键值对将被覆盖到配置文件里 +- `--eval-options`: 自定义的评估的选项, `xxx=yyy` 格式的键值对将成为 `dataset.evaluate()` 函数的参数变量 +- `--opacity`: 涂上结果的分割图的透明度,范围在 (0, 1] 之间 #### 结果和模型 -| 模型 | 配置文件 | 数据集 | 评价指标 | PyTorch | ONNX 运行时间 | TensorRT-fp32 | TensorRT-fp16 | +| 模型 | 配置文件 | 数据集 | 评价指标 | PyTorch | ONNXRuntime | TensorRT-fp32 | TensorRT-fp16 | | :--------: | :---------------------------------------------: | :--------: | :----: | :-----: | :---------: | :-----------: | :-----------: | | FCN | fcn_r50-d8_512x1024_40k_cityscapes.py | cityscapes | mIoU | 72.2 | 72.2 | 72.2 | 72.2 | | PSPNet | pspnet_r50-d8_512x1024_40k_cityscapes.py | cityscapes | mIoU | 77.8 | 77.8 | 77.8 | 77.8 | @@ -155,21 +155,21 @@ python tools/pytorch2torchscript.py \ 各个参数的描述: -- `config` : pytorch 模型的配置文件的路径。 -- `--checkpoint` : pytorch 模型的检查点文件的路径。 -- `--output-file`: TorchScript 模型输出的路径。 如果没有被专门指定,它将被设置成 `tmp.pt`。 -- `--input-img` : 用来转换和可视化的输入图像的路径。 -- `--shape`: 模型的输入张量的宽和高。如果没有被专门指定,它将被设置成 `512 512`。 -- `--show`: 是否打印输出模型的追踪图 (traced graph)。如果没有被专门指定,它将被设置成 `False`。 -- `--verify`: 是否验证一个输出模型的正确性 (correctness)。如果没有被专门指定,它将被设置成 `False`。 +- `config` : pytorch 模型的配置文件的路径 +- `--checkpoint` : pytorch 模型的检查点文件的路径 +- `--output-file`: TorchScript 模型输出的路径,如果没有被专门指定,它将被设置成 `tmp.pt` +- `--input-img` : 用来转换和可视化的输入图像的路径 +- `--shape`: 模型的输入张量的宽和高。如果没有被专门指定,它将被设置成 `512 512` +- `--show`: 是否打印输出模型的追踪图 (traced graph),如果没有被专门指定,它将被设置成 `False` +- `--verify`: 是否验证一个输出模型的正确性 (correctness),如果没有被专门指定,它将被设置成 `False` -**注意**: 目前仅支持 PyTorch>=1.8.0 版本. +**注意**: 目前仅支持 PyTorch>=1.8.0 版本 -**注意**: 这个工具仍然是试验性的,一些自定义操作符目前还不被支持。 +**注意**: 这个工具仍然是试验性的,一些自定义操作符目前还不被支持 例子: -- 导出 PSPNet 在 cityscapes 数据集上的 pytorch 模型。 +- 导出 PSPNet 在 cityscapes 数据集上的 pytorch 模型 ```shell python tools/pytorch2torchscript.py configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \ @@ -180,12 +180,12 @@ python tools/pytorch2torchscript.py \ ### 导出 TensorRT (试验性) -一个导出 [ONNX](https://github.com/onnx/onnx) 模型成 [TensorRT](https://developer.nvidia.com/tensorrt) 格式的脚本。 +一个导出 [ONNX](https://github.com/onnx/onnx) 模型成 [TensorRT](https://developer.nvidia.com/tensorrt) 格式的脚本 先决条件 -- 按照 [ONNXRuntime in mmcv](https://mmcv.readthedocs.io/en/latest/onnxruntime_op.html) 和 [TensorRT plugin in mmcv](https://github.com/open-mmlab/mmcv/blob/master/docs/tensorrt_plugin.md) ,用 ONNXRuntime 自定义运算 (custom ops) 和 TensorRT 插件安装 `mmcv-full`。 -- 使用 [pytorch2onnx](#convert-to-onnx-experimental) 将模型从 PyTorch 转成 ONNX。 +- 按照 [ONNXRuntime in mmcv](https://mmcv.readthedocs.io/en/latest/onnxruntime_op.html) 和 [TensorRT plugin in mmcv](https://github.com/open-mmlab/mmcv/blob/master/docs/tensorrt_plugin.md) ,用 ONNXRuntime 自定义运算 (custom ops) 和 TensorRT 插件安装 `mmcv-full` +- 使用 [pytorch2onnx](#convert-to-onnx-experimental) 将模型从 PyTorch 转成 ONNX 使用方法 @@ -203,20 +203,20 @@ python ${MMSEG_PATH}/tools/onnx2tensorrt.py \ 各个参数的描述: -- `config` : 模型的配置文件。 -- `model` : 输入的 ONNX 模型的路径。 -- `--trt-file` : 输出的 TensorRT 引擎的路径。 -- `--max-shape` : 模型的输入的最大形状。 -- `--min-shape` : 模型的输入的最小形状。 -- `--fp16` : 做 fp16 模型转换。 -- `--workspace-size` : 在 GiB 里的最大工作空间大小 (Max workspace size)。 -- `--input-img` : 用来可视化的图像。 -- `--show` : 做结果的可视化。 -- `--dataset` : Palette provider, 默认为 `CityscapesDataset`。 -- `--verify` : 验证 ONNXRuntime 和 TensorRT 的输出。 -- `--verbose` : 当创建 TensorRT 引擎时,是否详细做信息日志。默认为 False。 - -**注意**: 仅在全图测试模式 (whole mode) 下测试过。 +- `config` : 模型的配置文件 +- `model` : 输入的 ONNX 模型的路径 +- `--trt-file` : 输出的 TensorRT 引擎的路径 +- `--max-shape` : 模型的输入的最大形状 +- `--min-shape` : 模型的输入的最小形状 +- `--fp16` : 做 fp16 模型转换 +- `--workspace-size` : 在 GiB 里的最大工作空间大小 (Max workspace size) +- `--input-img` : 用来可视化的图像 +- `--show` : 做结果的可视化 +- `--dataset` : Palette provider, 默认为 `CityscapesDataset` +- `--verify` : 验证 ONNXRuntime 和 TensorRT 的输出 +- `--verbose` : 当创建 TensorRT 引擎时,是否详细做信息日志。默认为 False + +**注意**: 仅在全图测试模式 (whole mode) 下测试过 ## 其他内容 @@ -233,9 +233,9 @@ python tools/print_config.py \ 各个参数的描述: -- `config` : pytorch 模型的配置文件的路径。 -- `--graph` : 是否打印模型的图 (models graph)。 -- `--options`: 自定义替换配置文件的选项。 +- `config` : pytorch 模型的配置文件的路径 +- `--graph` : 是否打印模型的图 (models graph) +- `--options`: 自定义替换配置文件的选项 ### 对训练日志 (training logs) 画图 @@ -247,13 +247,13 @@ python tools/analyze_logs.py xxx.log.json [--keys ${KEYS}] [--legend ${LEGEND}] 示例: -- 对 mIoU, mAcc, aAcc 指标画图。 +- 对 mIoU, mAcc, aAcc 指标画图 ```shell python tools/analyze_logs.py log.json --keys mIoU mAcc aAcc --legend mIoU mAcc aAcc ``` -- 对 loss 指标画图。 +- 对 loss 指标画图 ```shell python tools/analyze_logs.py log.json --keys loss --legend loss From a4da293a14e8e5835b05c55a18db9e248857c065 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miguel=20M=C3=A9ndez?= Date: Thu, 5 Aug 2021 14:09:33 +0200 Subject: [PATCH 202/706] [Enhancement] Add mmcv arg expansion (#748) * Add dynamic mmcv install * Declare ARG after FROM --- docker/serve/Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docker/serve/Dockerfile b/docker/serve/Dockerfile index b9c5589eb1..5b71998686 100644 --- a/docker/serve/Dockerfile +++ b/docker/serve/Dockerfile @@ -24,7 +24,9 @@ RUN export FORCE_CUDA=1 RUN pip install torchserve torch-model-archiver # MMLAB -RUN pip install mmcv-full==${MMCV} -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.6.0/index.html +ARG PYTORCH +ARG CUDA +RUN ["/bin/bash", "-c", "pip install mmcv-full==${MMCV} -f https://download.openmmlab.com/mmcv/dist/cu${CUDA//./}/torch${PYTORCH}/index.html"] RUN pip install mmsegmentation==${MMSEG} RUN useradd -m model-server \ From da28313f528670a859a3d618de4b3dcf44b075d0 Mon Sep 17 00:00:00 2001 From: zhaoxiaoliu <88317969+zhaoxiaoliu@users.noreply.github.com> Date: Fri, 6 Aug 2021 15:18:01 +0800 Subject: [PATCH 203/706] [Enhancing] Add new QQ qr-code (#756) * Update README_zh-CN.md * fix lint Co-authored-by: xiexinch --- README_zh-CN.md | 4 ++-- docs_zh-CN/imgs/seggroup_qrcode.jpg | Bin 0 -> 71187 bytes 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 docs_zh-CN/imgs/seggroup_qrcode.jpg diff --git a/README_zh-CN.md b/README_zh-CN.md index 19556c8099..01536b86f1 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -141,10 +141,10 @@ MMSegmentation 是一个由来自不同高校和企业的研发人员共同参 ## 欢迎加入 OpenMMLab 社区 - 扫描下方的二维码可关注 OpenMMLab 团队的 [知乎官方账号](https://www.zhihu.com/people/openmmlab),加入 OpenMMLab 团队的 [官方交流 QQ 群](https://jq.qq.com/?_wv=1027&k=aCvMxdr3) + 扫描下方的二维码可关注 OpenMMLab 团队的 [知乎官方账号](https://www.zhihu.com/people/openmmlab),加入 [OpenMMLab 团队](https://jq.qq.com/?_wv=1027&k=aCvMxdr3) 以及 [MMSegmentation](https://jq.qq.com/?_wv=1027&k=ukevz6Ie) 的 QQ 群。